diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index d27c21e..a78bd67 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -18,7 +18,6 @@ jobs: - name: Start and test chainlog containers id: start-containers env: - INFURA_KEY: ${{ secrets.INFURA_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} working-directory: ./ run: | diff --git a/api.html b/api.html index d22fa6f..5ce0f09 100644 --- a/api.html +++ b/api.html @@ -44,7 +44,7 @@
- keys = requests.post("https://mainnet.infura.io/v3/" + infura_key, json={
+ keys = requests.post("https://chain.techops.live/eth-mainnet", json={
"jsonrpc": "2.0",
"method": "eth_call",
"params": [{
@@ -55,7 +55,7 @@ Code examples
}).json()["result"][130:]
result = {}
for i in range(0, len(keys), 64):
- address = "0x" + requests.post("https://mainnet.infura.io/v3/" + infura_key, json={
+ address = "0x" + requests.post("https://chain.techops.live/eth-mainnet", json={
"jsonrpc": "2.0",
"method": "eth_call",
"params": [{
diff --git a/deploy/prod/chainlog-logger.yaml b/deploy/prod/chainlog-logger.yaml
index bd60d7e..ce5a487 100644
--- a/deploy/prod/chainlog-logger.yaml
+++ b/deploy/prod/chainlog-logger.yaml
@@ -28,10 +28,6 @@ env:
PYTHONUNBUFFERED:
type: kv
value: "1"
- INFURA_KEY:
- type: parameterStore
- name: infura-key
- parameter_name: /eks/maker-prod/chainlog-logger/infura-key
GITHUB_TOKEN:
type: parameterStore
name: github-token
diff --git a/deploy/staging/chainlog-logger.yaml b/deploy/staging/chainlog-logger.yaml
index ec9f7fc..9f31715 100644
--- a/deploy/staging/chainlog-logger.yaml
+++ b/deploy/staging/chainlog-logger.yaml
@@ -29,10 +29,6 @@ env:
PYTHONUNBUFFERED:
type: kv
value: "1"
- INFURA_KEY:
- type: parameterStore
- name: infura-key
- parameter_name: /eks/maker-staging/chainlog-logger/infura-key
GITHUB_TOKEN:
type: parameterStore
name: github-token
diff --git a/docker-compose.yml b/docker-compose.yml
index b5e8568..704ef79 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -20,7 +20,6 @@ services:
image: chainlog-logger
container_name: chainlog-logger
environment:
- INFURA_KEY: $INFURA_KEY
GITHUB_TOKEN: $GITHUB_TOKEN
CHAINLOG_REPO: "makerdao/chainlog-ui"
PYTHONUNBUFFERED: 1
diff --git a/examples/python.py b/examples/python.py
index 97ce019..785759d 100755
--- a/examples/python.py
+++ b/examples/python.py
@@ -2,8 +2,7 @@
import os, requests
-infura_key = os.environ["INFURA_KEY"]
-keys = requests.post("https://mainnet.infura.io/v3/" + infura_key, json={
+keys = requests.post("https://chain.techops.live/eth-mainnet", json={
"jsonrpc": "2.0",
"method": "eth_call",
"params": [{
@@ -14,7 +13,7 @@
}).json()["result"][130:]
result = {}
for i in range(0, len(keys), 64):
- address = "0x" + requests.post("https://mainnet.infura.io/v3/" + infura_key, json={
+ address = "0x" + requests.post("https://chain.techops.live/eth-mainnet", json={
"jsonrpc": "2.0",
"method": "eth_call",
"params": [{
diff --git a/index.html b/index.html
index 11b8448..356c883 100644
--- a/index.html
+++ b/index.html
@@ -40,7 +40,7 @@
"0x1": "Ethereum mainnet",
"0x3": "Ropsten",
"0x4": "Rinkeby",
- "0x5": "Görli",
+ "0xaa36a7": "Sepolia",
"0x2a": "Kovan"
}
@@ -48,7 +48,7 @@
"0x1": "",
"0x3": "ropsten.",
"0x4": "rinkeby.",
- "0x5": "goerli.",
+ "0xaa36a7": "sepolia.",
"0x2a": "kovan."
}
@@ -56,15 +56,15 @@
"0x1": "",
"0x3": "-ropsten",
"0x4": "-rinkeby",
- "0x5": "-goerli",
+ "0xaa36a7": "-sepolia",
"0x2a": "-kovan"
}
-const infuraPrefixes = {
+const chainSuffixes = {
"0x1": "mainnet",
"0x3": "ropsten",
"0x4": "rinkeby",
- "0x5": "goerli",
+ "0xaa36a7": "sepolia",
"0x2a": "kovan"
}
@@ -79,13 +79,13 @@
}, draw);
}
-let provider, chain, chainPrefix, chainApiPrefix, infuraPrefix, notice;
+let provider, chain, chainPrefix, chainApiPrefix, chainSuffix, notice;
window.addEventListener("load", () => {
if (typeof window.ethereum !== "undefined") {
setTimeout(() => {
if (!window.ethereum.isConnected()) {
- console.log("Metamask connection timed out. Falling back to Infura mainnet");
- setInfura();
+ console.log("Metamask connection timed out. Falling back to TechOps mainnet");
+ setDefaultRPC();
}
}, 1000);
window.ethereum.on("connect", conn => {
@@ -94,8 +94,8 @@
if (!chain) chain = "Unknown";
chainPrefix = chainPrefixes[conn.chainId];
chainApiPrefix = chainApiPrefixes[conn.chainId];
- infuraPrefix = infuraPrefixes[conn.chainId];
- endpoint = "https://" + infuraPrefix + ".infura.io/v3/633f64adbe364bb88127348d4fcc21ef";
+ chainSuffix = chainSuffixes[conn.chainId];
+ endpoint = chainSuffix === "mainnet" ? "https://chain.techops.live/eth-mainnet" : "https://chain.techops.live/eth-" + chainSuffix;
notice = "change this in your Metamask plugin (you don’t need to unlock Metamask)";
setUp();
});
@@ -104,25 +104,25 @@
if (!chain) chain = "Unknown";
chainPrefix = chainPrefixes[chainId];
chainApiPrefix = chainApiPrefixes[chainId];
- infuraPrefix = infuraPrefixes[chainId];
- endpoint = "https://" + infuraPrefix + ".infura.io/v3/633f64adbe364bb88127348d4fcc21ef";
+ chainSuffix = chainSuffixes[chainId];
+ endpoint = chainSuffix === "mainnet" ? "https://chain.techops.live/eth-mainnet" : "https://chain.techops.live/eth-" + chainSuffix;
notice = "";
setUp();
});
} else {
- setInfura();
+ setDefaultRPC();
}
});
-const setInfura = () => {
- provider = "Infura";
+const setDefaultRPC = () => {
+ provider = "TechOps";
chain = "Ethereum mainnet";
chainPrefix = "";
chainApiPrefix = "";
- infuraPrefix = "mainnet";
+ chainSuffix = "mainnet";
notice = "";
chainSelect.removeAttribute("disabled");
- chainSelect.append(chainGoerli);
+ chainSelect.append(chainSepolia);
setUp();
}
@@ -170,14 +170,14 @@
chainOption.innerHTML = "loading…";
chainOption.setAttribute("value", "mainnet");
chainSelect.append(chainOption);
-const chainGoerli = document.createElement("option");
-chainGoerli.innerHTML = "Görli";
-chainGoerli.setAttribute("value", "goerli");
+const chainSepolia = document.createElement("option");
+chainSepolia.innerHTML = "Sepolia";
+chainSepolia.setAttribute("value", "sepolia");
chainSelect.addEventListener("change", () => {
- infuraPrefix = chainSelect.value;
- chainPrefix = infuraPrefix === "mainnet" ? "" : "goerli.";
- chainApiPrefix = infuraPrefix === "mainnet" ? "" : "-goerli";
- endpoint = "https://" + infuraPrefix + ".infura.io/v3/633f64adbe364bb88127348d4fcc21ef";
+ chainSuffix = chainSelect.value;
+ chainPrefix = chainSuffix === "mainnet" ? "" : "sepolia.";
+ chainApiPrefix = chainSuffix === "mainnet" ? "" : "-sepolia";
+ endpoint = chainSuffix === "mainnet" ? "https://chain.techops.live/eth-mainnet" : "https://chain.techops.live/eth-" + chainSuffix;
setUp();
});
chainValue.append(chainSelect);
@@ -191,7 +191,7 @@
canvas.innerHTML = "loading…";
document.body.append(canvas);
-let endpoint = 'https://mainnet.infura.io/v3/633f64adbe364bb88127348d4fcc21ef';
+let endpoint = 'https://chain.techops.live/eth-mainnet';
const chainlog = "0xdA0Ab1e0017DEbCd72Be8599041a2aa3bA7e740F";
const hex2a = hexx => { // adapted from https://stackoverflow.com/a/3745677/15857007
@@ -205,9 +205,12 @@
return str;
}
-const infuraCall = (params, callback) => {
+const rpcCall = (params, callback) => {
const options = {
method: "POST",
+ headers: {
+ "Content-Type": "application/json"
+ },
body: '{"jsonrpc": "2.0", "method": "eth_call", "params": [' + JSON.stringify(params) + ', "latest"], "id": 0}'
};
fetch(endpoint, options).then(response => {
@@ -215,7 +218,7 @@
response.json().then(content => callback(content.result))
} else {
response.json().then(content => {
- console.error("Infura: " + content.error.message);
+ console.error("RPC: " + content.error.message);
canvas.innerHTML = "error";
});
}
@@ -229,11 +232,11 @@
params: [ params, "latest" ]
}).then(response => callback(response))
.catch(error => {
- console.log("falling back to Infura " + infuraPrefix);
- infuraCall(params, callback)
+ console.log("falling back to TechOps RPC " + chainSuffix);
+ rpcCall(params, callback)
});
} else {
- infuraCall(params, callback);
+ rpcCall(params, callback);
}
}
diff --git a/index.ipfs.html b/index.ipfs.html
index 032620b..c80d14f 100644
--- a/index.ipfs.html
+++ b/index.ipfs.html
@@ -40,7 +40,7 @@
"0x1": "Ethereum mainnet",
"0x3": "Ropsten",
"0x4": "Rinkeby",
- "0x5": "Görli",
+ "0xaa36a7": "Sepolia",
"0x2a": "Kovan"
}
@@ -48,7 +48,7 @@
"0x1": "",
"0x3": "ropsten.",
"0x4": "rinkeby.",
- "0x5": "goerli.",
+ "0xaa36a7": "sepolia.",
"0x2a": "kovan."
}
@@ -56,15 +56,15 @@
"0x1": "",
"0x3": "-ropsten",
"0x4": "-rinkeby",
- "0x5": "-goerli",
+ "0xaa36a7": "-sepolia",
"0x2a": "-kovan"
}
-const infuraPrefixes = {
+const chainSuffixes = {
"0x1": "mainnet",
"0x3": "ropsten",
"0x4": "rinkeby",
- "0x5": "goerli",
+ "0xaa36a7": "sepolia",
"0x2a": "kovan"
}
@@ -79,13 +79,13 @@
}, draw);
}
-let provider, chain, chainPrefix, chainApiPrefix, infuraPrefix, notice;
+let provider, chain, chainPrefix, chainApiPrefix, chainSuffix, notice;
window.addEventListener("load", () => {
if (typeof window.ethereum !== "undefined") {
setTimeout(() => {
if (!window.ethereum.isConnected()) {
- console.log("Metamask connection timed out. Falling back to Infura mainnet");
- setInfura();
+ console.log("Metamask connection timed out. Falling back to TechOps mainnet");
+ setDefaultRPC();
}
}, 1000);
window.ethereum.on("connect", conn => {
@@ -94,8 +94,8 @@
if (!chain) chain = "Unknown";
chainPrefix = chainPrefixes[conn.chainId];
chainApiPrefix = chainApiPrefixes[conn.chainId];
- infuraPrefix = infuraPrefixes[conn.chainId];
- endpoint = "https://" + infuraPrefix + ".infura.io/v3/633f64adbe364bb88127348d4fcc21ef";
+ chainSuffix = chainSuffixes[conn.chainId];
+ endpoint = chainSuffix === "mainnet" ? "https://chain.techops.live/eth-mainnet" : "https://chain.techops.live/eth-" + chainSuffix;
notice = "change this in your Metamask plugin (you don’t need to unlock Metamask)";
setUp();
});
@@ -104,25 +104,25 @@
if (!chain) chain = "Unknown";
chainPrefix = chainPrefixes[chainId];
chainApiPrefix = chainApiPrefixes[chainId];
- infuraPrefix = infuraPrefixes[chainId];
- endpoint = "https://" + infuraPrefix + ".infura.io/v3/633f64adbe364bb88127348d4fcc21ef";
+ chainSuffix = chainSuffixes[chainId];
+ endpoint = chainSuffix === "mainnet" ? "https://chain.techops.live/eth-mainnet" : "https://chain.techops.live/eth-" + chainSuffix;
notice = "";
setUp();
});
} else {
- setInfura();
+ setDefaultRPC();
}
});
-const setInfura = () => {
- provider = "Infura";
+const setDefaultRPC = () => {
+ provider = "TechOps";
chain = "Ethereum mainnet";
chainPrefix = "";
chainApiPrefix = "";
- infuraPrefix = "mainnet";
+ chainSuffix = "mainnet";
notice = "";
chainSelect.removeAttribute("disabled");
- chainSelect.append(chainGoerli);
+ chainSelect.append(chainSepolia);
setUp();
}
@@ -170,14 +170,14 @@
chainOption.innerHTML = "loading…";
chainOption.setAttribute("value", "mainnet");
chainSelect.append(chainOption);
-const chainGoerli = document.createElement("option");
-chainGoerli.innerHTML = "Görli";
-chainGoerli.setAttribute("value", "goerli");
+const chainSepolia = document.createElement("option");
+chainSepolia.innerHTML = "Sepolia";
+chainSepolia.setAttribute("value", "sepolia");
chainSelect.addEventListener("change", () => {
- infuraPrefix = chainSelect.value;
- chainPrefix = infuraPrefix === "mainnet" ? "" : "goerli.";
- chainApiPrefix = infuraPrefix === "mainnet" ? "" : "-goerli";
- endpoint = "https://" + infuraPrefix + ".infura.io/v3/633f64adbe364bb88127348d4fcc21ef";
+ chainSuffix = chainSelect.value;
+ chainPrefix = chainSuffix === "mainnet" ? "" : "sepolia.";
+ chainApiPrefix = chainSuffix === "mainnet" ? "" : "-sepolia";
+ endpoint = chainSuffix === "mainnet" ? "https://chain.techops.live/eth-mainnet" : "https://chain.techops.live/eth-" + chainSuffix;
setUp();
});
chainValue.append(chainSelect);
@@ -191,7 +191,7 @@
canvas.innerHTML = "loading…";
document.body.append(canvas);
-let endpoint = 'https://mainnet.infura.io/v3/633f64adbe364bb88127348d4fcc21ef';
+let endpoint = 'https://chain.techops.live/eth-mainnet';
const chainlog = "0xdA0Ab1e0017DEbCd72Be8599041a2aa3bA7e740F";
const hex2a = hexx => { // adapted from https://stackoverflow.com/a/3745677/15857007
@@ -205,9 +205,12 @@
return str;
}
-const infuraCall = (params, callback) => {
+const rpcCall = (params, callback) => {
const options = {
method: "POST",
+ headers: {
+ "Content-Type": "application/json"
+ },
body: '{"jsonrpc": "2.0", "method": "eth_call", "params": [' + JSON.stringify(params) + ', "latest"], "id": 0}'
};
fetch(endpoint, options).then(response => {
@@ -215,7 +218,7 @@
response.json().then(content => callback(content.result))
} else {
response.json().then(content => {
- console.error("Infura: " + content.error.message);
+ console.error("RPC: " + content.error.message);
canvas.innerHTML = "error";
});
}
@@ -229,11 +232,11 @@
params: [ params, "latest" ]
}).then(response => callback(response))
.catch(error => {
- console.log("falling back to Infura " + infuraPrefix);
- infuraCall(params, callback)
+ console.log("falling back to TechOps RPC " + chainSuffix);
+ rpcCall(params, callback)
});
} else {
- infuraCall(params, callback);
+ rpcCall(params, callback);
}
}
diff --git a/logger.py b/logger.py
index 573f5db..29cda5c 100755
--- a/logger.py
+++ b/logger.py
@@ -9,8 +9,12 @@
from github import Github, GithubException
def call(chain, calldata):
- infura_key = os.environ["INFURA_KEY"]
- endpoint = "https://{}.infura.io/v3/{}".format(chain, infura_key)
+ if chain == "mainnet":
+ endpoint = "https://chain.techops.live/eth-mainnet"
+ elif chain == "sepolia":
+ endpoint = "https://chain.techops.live/eth-sepolia"
+ else:
+ endpoint = "https://chain.techops.live/eth-{}".format(chain)
response = requests.post(endpoint, json={
"jsonrpc": "2.0",
"method": "eth_call",