From 613ca50380cf90814be29cc1df6d71a19dc0c4d7 Mon Sep 17 00:00:00 2001 From: Guantong Date: Thu, 30 May 2024 14:04:32 +0800 Subject: [PATCH 1/2] update address and abi --- client/src/App.js | 42 +++- client/src/utils/chains.js | 292 ++++++++++++------------ client/src/utils/ethersHelper.js | 6 +- server/config/chains.js | 122 +++++----- server/plugins/cron.js | 37 +++- server/routes/balance/helper.js | 5 +- server/utils/requests.js | 52 +++++ yarn.lock | 368 ++++++++++++++++++++++++++++++- 8 files changed, 710 insertions(+), 214 deletions(-) create mode 100644 server/utils/requests.js diff --git a/client/src/App.js b/client/src/App.js index 151f257..a829600 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -3,9 +3,10 @@ import './App.css'; import { React, useState, useEffect } from 'react'; import { getAllChains, getChainById } from './utils/chains'; import { Layout, Card, Space, List, ConfigProvider } from 'antd'; -import { unitToEth } from './utils/ethersHelper'; +import { unitToEth, unitToRtx } from './utils/ethersHelper'; import dayjs from "dayjs"; import relativeTime from 'dayjs/plugin/relativeTime'; +import requests from './utils/requests'; dayjs.extend(relativeTime); @@ -61,15 +62,17 @@ function App() { const [submitionCount, setSubmitionCount] = useState({}); async function checkOracleSignerSubmition() { + console.log("===============checkOracleSignerSubmition"); const darwiniaChain = getChainById(46); const subAPIMultisig = darwiniaChain.contract.signcribe; const provider = new ethers.JsonRpcProvider(darwiniaChain.endpoint); const finalized = await provider.getBlock("finalized"); + console.log("finalized: ", finalized); const logs = await provider.getLogs({ - fromBlock: finalized.number - 1000, + fromBlock: finalized.number - 500, toBlock: finalized.number, address: subAPIMultisig, - topics: [ethers.id('SignatureSubmittion(uint256,uint256,address,bytes,bytes)')] + topics: [ethers.id('SignatureSubmittion(uint256,address,address,uint256,bytes,bytes)')] }) console.log(logs); const count = {}; @@ -132,12 +135,33 @@ function App() { continue; } const operatorBalance = {}; - const provider = new ethers.JsonRpcProvider(chain.endpoint); - let relayerBalance = await provider.getBalance(chain.operator.relayer); - operatorBalance.relayer = unitToEth(relayerBalance); - let oracleBalance = await provider.getBalance(chain.operator.oracle); - operatorBalance.oracle = unitToEth(oracleBalance); - operatorBalance.symbol = chain.symbol; + + if (!chain.name.includes("tron")) { + const provider = new ethers.JsonRpcProvider(chain.endpoint); + let relayerBalance = await provider.getBalance(chain.operator.relayer); + operatorBalance.relayer = unitToEth(relayerBalance); + let oracleBalance = await provider.getBalance(chain.operator.oracle); + operatorBalance.oracle = unitToEth(oracleBalance); + operatorBalance.symbol = chain.symbol; + } else { + const relayerBalance = Number((await requests.post(chain.endpoint, { + "method": "eth_getBalance", + "params": [chain.operator.relayer, "latest"], + "id": "1", + "jsonrpc": "2.0" + })).result); + operatorBalance.relayer = unitToRtx(relayerBalance); + + const oracleBalance = Number((await requests.post(chain.endpoint, { + "method": "eth_getBalance", + "params": [chain.operator.oracle, "latest"], + "id": "1", + "jsonrpc": "2.0" + })).result); + operatorBalance.oracle = unitToRtx(oracleBalance); + } + + operatorInfo[chain.id] = operatorBalance; console.log(operatorInfo); setOperatorInfo({ ...operatorInfo }); diff --git a/client/src/utils/chains.js b/client/src/utils/chains.js index e2e67dd..214463f 100644 --- a/client/src/utils/chains.js +++ b/client/src/utils/chains.js @@ -1,143 +1,157 @@ const Chains = [ - { - "name": "crab", - "id": 44, - "endpoint": "https://crab-rpc.darwinia.network", - "indexer": { - "ormp": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/ormpipe-crab", - "signcribe": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/signcribe-darwinia" - }, - "contract": { - "signcribe": "0x57dd62e0986a61a269c769b107a5a7952d73b7ed", - "relayer": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1", - "ormp": "0x00000000001523057a05d6293C1e5171eE33eE0A", - "oracle": "0x0000000003ebeF32D8f0ED406a5CA8805c80AFba", - "multisig": "0x000000000d60704384100A29efb6C9cf8cD72820" - }, - "operator": { - "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", - "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", - "warnBalance": 100, - }, - "symbol": "CRAB", - "scan": "https://crab.subscan.io", - }, - { - "name": "darwinia", - "id": 46, - "endpoint": "https://rpc.darwinia.network", - "indexer": { - "ormp": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/ormpipe-darwinia", - "signcribe": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/signcribe-darwinia" - }, - "contract": { - "signcribe": "0x57dd62e0986a61a269c769b107a5a7952d73b7ed", - "relayer": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1", - "ormp": "0x00000000001523057a05d6293C1e5171eE33eE0A", - "oracle": "0x0000000003ebeF32D8f0ED406a5CA8805c80AFba", - "multisig": "0x000000000d60704384100A29efb6C9cf8cD72820" - }, - "operator": { - "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", - "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", - "warnBalance": 100, - }, - "symbol": "RING", - "scan": "https://darwinia-evm.subscan.io", - }, - { - "name": "arbitrum", - "id": 42161, - "endpoint": "https://arbitrum-one.publicnode.com", - "indexer": { - "ormp": "https://api.studio.thegraph.com/proxy/51152/ormpipe-arbitrum/version/latest", - "signcribe": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/signcribe-darwinia" - }, - "contract": { - "signcribe": "0x57dd62e0986a61a269c769b107a5a7952d73b7ed", - "relayer": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1", - "ormp": "0x00000000001523057a05d6293C1e5171eE33eE0A", - "oracle": "0x0000000003ebeF32D8f0ED406a5CA8805c80AFba", - "multisig": "0x000000000d60704384100A29efb6C9cf8cD72820" - }, - "operator": { - "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", - "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", - "warnBalance": 0.01, - }, - "symbol": "AETH", - "scan": "https://arbiscan.io", - }, - { - "name": "ethereum", - "id": 1, - "endpoint": "https://ethereum.publicnode.com", - "indexer": { - "ormp": "https://api.studio.thegraph.com/proxy/51152/ormpipe-ethereum/version/latest", - "signcribe": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/signcribe-darwinia" - }, - "contract": { - "signcribe": "0x57dd62e0986a61a269c769b107a5a7952d73b7ed", - "relayer": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1", - "ormp": "0x00000000001523057a05d6293C1e5171eE33eE0A", - "oracle": "0x0000000003ebeF32D8f0ED406a5CA8805c80AFba", - "multisig": "0x000000000d60704384100A29efb6C9cf8cD72820" - }, - "operator": { - "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", - "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", - "warnBalance": 0.02, - }, - "symbol": "ETH", - "scan": "https://etherscan.io", - }, - { - "name": "polygon", - "id": 137, - "endpoint": "https://polygon-bor-rpc.publicnode.com", - "indexer": { - "ormp": "https://api.studio.thegraph.com/proxy/51152/ormpipe-polygon/version/latest", - "signcribe": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/signcribe-darwinia" - }, - "contract": { - "signcribe": "0x57dd62e0986a61a269c769b107a5a7952d73b7ed", - "relayer": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1", - "ormp": "0x00000000001523057a05d6293C1e5171eE33eE0A", - "oracle": "0x0000000003ebeF32D8f0ED406a5CA8805c80AFba", - "multisig": "0x000000000d60704384100A29efb6C9cf8cD72820" - }, - "operator": { - "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", - "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", - "warnBalance": 0.1, - }, - "symbol": "MATIC", - "scan": "https://polygonscan.com", - }, - { - "name": "blast", - "id": 81457, - "endpoint": "https://rpc.blast.io", - "indexer": { - "ormp": "https://api.studio.thegraph.com/proxy/51152/ormpipe-blast/version/latest", - "signcribe": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/signcribe-darwinia" - }, - "contract": { - "signcribe": "0x57dd62e0986a61a269c769b107a5a7952d73b7ed", - "relayer": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1", - "ormp": "0x00000000001523057a05d6293C1e5171eE33eE0A", - "oracle": "0x0000000003ebeF32D8f0ED406a5CA8805c80AFba", - "multisig": "0x000000000d60704384100A29efb6C9cf8cD72820" - }, - "operator": { - "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", - "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", - "warnBalance": 0.01, - }, - "symbol": "ETH", - "scan": "https://blastscan.io", - } - ] + { + "name": "crab", + "id": 44, + "endpoint": "https://crab-rpc.darwinia.network", + "contract": { + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" + }, + "operator": { + "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", + "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", + "warnBalance": 100, + }, + "symbol": "CRAB", + "scan": "https://crab.subscan.io", + }, + { + "name": "darwinia", + "id": 46, + "endpoint": "https://rpc.darwinia.network", + "contract": { + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" + }, + "operator": { + "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", + "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", + "warnBalance": 100, + }, + "symbol": "RING", + "scan": "https://darwinia.subscan.io", + }, + { + "name": "arbitrum", + "id": 42161, + "endpoint": "https://arbitrum-one.publicnode.com", + "contract": { + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" + }, + "operator": { + "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", + "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", + "warnBalance": 0.01, + }, + "symbol": "AETH", + "scan": "https://arbiscan.io", + }, + { + "name": "ethereum", + "id": 1, + "endpoint": "https://ethereum.publicnode.com", + "contract": { + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" + }, + "operator": { + "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", + "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", + "warnBalance": 0.02, + }, + "symbol": "ETH", + "scan": "https://etherscan.io", + }, + { + "name": "polygon", + "id": 137, + "endpoint": "https://polygon-bor-rpc.publicnode.com", + "contract": { + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" + }, + "operator": { + "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", + "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", + "warnBalance": 0.1, + }, + "symbol": "MATIC", + "scan": "https://polygonscan.com", + }, + { + "name": "blast", + "id": 81457, + "endpoint": "https://rpc.blast.io", + "contract": { + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" + }, + "operator": { + "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", + "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", + "warnBalance": 0.01, + }, + "symbol": "ETH", + "scan": "https://blastscan.io", + }, + { + "name": "moonbeam", + "id": 1284, + "endpoint": "https://moonbeam-rpc.dwellir.com", + "contract": { + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" + }, + "operator": { + "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", + "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", + "warnBalance": 10, + }, + "symbol": "GLMR", + "scan": "https://moonbeam.subscan.io/", + }, + { + "name": "tron", + "id": 728126428, + "endpoint": "https://api.trongrid.io/jsonrpc", + "contract": { + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xDD9622309aa2798D74CD39C772D289dfe3EEdaD5", + "ormp": "0x152c6DdDD0A4cfD817af7Cf4cf5491D4AC44e886", + "oracle": "0xf7A4217c2c372E50c19fdF68D86b3C7E493d2d21", + "multisig": "0x7D2B4704d72A41817b06df3Bc813161A13550006" + }, + "operator": { + "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", + "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", + "warnBalance": 500, + }, + "symbol": "TRX", + "scan": "https://tronscan.org/#", + } +] function getChainById(id) { for (const item of Chains) { diff --git a/client/src/utils/ethersHelper.js b/client/src/utils/ethersHelper.js index 56e9d07..769d7a4 100644 --- a/client/src/utils/ethersHelper.js +++ b/client/src/utils/ethersHelper.js @@ -2,4 +2,8 @@ function unitToEth(num) { return Number(num) / Math.pow(10, 18); } -export { unitToEth } \ No newline at end of file +function unitToRtx(num) { + return Number(num) / Math.pow(10, 6); +} + +export { unitToEth, unitToRtx } \ No newline at end of file diff --git a/server/config/chains.js b/server/config/chains.js index 794b27e..3e232cb 100644 --- a/server/config/chains.js +++ b/server/config/chains.js @@ -3,16 +3,12 @@ const Chains = [ "name": "crab", "id": 44, "endpoint": "https://crab-rpc.darwinia.network", - "indexer": { - "ormp": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/ormpipe-crab", - "signcribe": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/signcribe-darwinia" - }, "contract": { - "signcribe": "0x57dd62e0986a61a269c769b107a5a7952d73b7ed", - "relayer": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1", - "ormp": "0x00000000001523057a05d6293C1e5171eE33eE0A", - "oracle": "0x0000000003ebeF32D8f0ED406a5CA8805c80AFba", - "multisig": "0x000000000d60704384100A29efb6C9cf8cD72820" + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" }, "operator": { "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", @@ -26,16 +22,12 @@ const Chains = [ "name": "darwinia", "id": 46, "endpoint": "https://rpc.darwinia.network", - "indexer": { - "ormp": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/ormpipe-darwinia", - "signcribe": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/signcribe-darwinia" - }, "contract": { - "signcribe": "0x57dd62e0986a61a269c769b107a5a7952d73b7ed", - "relayer": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1", - "ormp": "0x00000000001523057a05d6293C1e5171eE33eE0A", - "oracle": "0x0000000003ebeF32D8f0ED406a5CA8805c80AFba", - "multisig": "0x000000000d60704384100A29efb6C9cf8cD72820" + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" }, "operator": { "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", @@ -49,16 +41,12 @@ const Chains = [ "name": "arbitrum", "id": 42161, "endpoint": "https://arbitrum-one.publicnode.com", - "indexer": { - "ormp": "https://api.studio.thegraph.com/proxy/51152/ormpipe-arbitrum/version/latest", - "signcribe": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/signcribe-darwinia" - }, "contract": { - "signcribe": "0x57dd62e0986a61a269c769b107a5a7952d73b7ed", - "relayer": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1", - "ormp": "0x00000000001523057a05d6293C1e5171eE33eE0A", - "oracle": "0x0000000003ebeF32D8f0ED406a5CA8805c80AFba", - "multisig": "0x000000000d60704384100A29efb6C9cf8cD72820" + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" }, "operator": { "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", @@ -72,16 +60,12 @@ const Chains = [ "name": "ethereum", "id": 1, "endpoint": "https://ethereum.publicnode.com", - "indexer": { - "ormp": "https://api.studio.thegraph.com/proxy/51152/ormpipe-ethereum/version/latest", - "signcribe": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/signcribe-darwinia" - }, "contract": { - "signcribe": "0x57dd62e0986a61a269c769b107a5a7952d73b7ed", - "relayer": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1", - "ormp": "0x00000000001523057a05d6293C1e5171eE33eE0A", - "oracle": "0x0000000003ebeF32D8f0ED406a5CA8805c80AFba", - "multisig": "0x000000000d60704384100A29efb6C9cf8cD72820" + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" }, "operator": { "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", @@ -95,16 +79,12 @@ const Chains = [ "name": "polygon", "id": 137, "endpoint": "https://polygon-bor-rpc.publicnode.com", - "indexer": { - "ormp": "https://api.studio.thegraph.com/proxy/51152/ormpipe-polygon/version/latest", - "signcribe": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/signcribe-darwinia" - }, "contract": { - "signcribe": "0x57dd62e0986a61a269c769b107a5a7952d73b7ed", - "relayer": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1", - "ormp": "0x00000000001523057a05d6293C1e5171eE33eE0A", - "oracle": "0x0000000003ebeF32D8f0ED406a5CA8805c80AFba", - "multisig": "0x000000000d60704384100A29efb6C9cf8cD72820" + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" }, "operator": { "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", @@ -118,16 +98,12 @@ const Chains = [ "name": "blast", "id": 81457, "endpoint": "https://rpc.blast.io", - "indexer": { - "ormp": "https://api.studio.thegraph.com/proxy/51152/ormpipe-blast/version/latest", - "signcribe": "https://thegraph-g2.darwinia.network/ormpipe/subgraphs/name/signcribe-darwinia" - }, "contract": { - "signcribe": "0x57dd62e0986a61a269c769b107a5a7952d73b7ed", - "relayer": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1", - "ormp": "0x00000000001523057a05d6293C1e5171eE33eE0A", - "oracle": "0x0000000003ebeF32D8f0ED406a5CA8805c80AFba", - "multisig": "0x000000000d60704384100A29efb6C9cf8cD72820" + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" }, "operator": { "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", @@ -136,6 +112,44 @@ const Chains = [ }, "symbol": "ETH", "scan": "https://blastscan.io", + }, + { + "name": "moonbeam", + "id": 1284, + "endpoint": "https://moonbeam-rpc.dwellir.com", + "contract": { + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xaC2b224c2E1eD2E8663097a361A05a72d6671C7D", + "ormp": "0xA72d283015c01807bc0788Bf22C1A774bDbFC8fA", + "oracle": "0x3f938756ceFa33665719Eb528E581FF3f460b7C6", + "multisig": "0x22117Db68370590c1031f52a6D1aDE3DCe0cCf9a" + }, + "operator": { + "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", + "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", + "warnBalance": 10, + }, + "symbol": "GLMR", + "scan": "https://moonbeam.subscan.io/", + }, + { + "name": "tron", + "id": 728126428, + "endpoint": "https://api.trongrid.io/jsonrpc", + "contract": { + "signcribe": "0x57aa601a0377f5ab313c5a955ee874f5d495fc92", + "relayer": "0xDD9622309aa2798D74CD39C772D289dfe3EEdaD5", + "ormp": "0x152c6DdDD0A4cfD817af7Cf4cf5491D4AC44e886", + "oracle": "0xf7A4217c2c372E50c19fdF68D86b3C7E493d2d21", + "multisig": "0x7D2B4704d72A41817b06df3Bc813161A13550006" + }, + "operator": { + "oracle": "0x178E699c9a6bB2Cd624557Fbd85ed219e6faBa77", + "relayer": "0x912D7601569cBc2DF8A7f0aaE50BFd18e8C64d05", + "warnBalance": 500, + }, + "symbol": "TRX", + "scan": "https://tronscan.org/#", } ] diff --git a/server/plugins/cron.js b/server/plugins/cron.js index 38720b1..ce867c9 100644 --- a/server/plugins/cron.js +++ b/server/plugins/cron.js @@ -1,12 +1,13 @@ import fp from 'fastify-plugin' import cron from 'node-cron' import { getAllChains, getChainById } from '../config/chains.js'; -import { unitToEth } from '../routes/balance/helper.js'; +import { unitToEth, unitToRtx } from '../routes/balance/helper.js'; import { ethers } from 'ethers'; import dayjs from 'dayjs'; import relativeTime from 'dayjs/plugin/relativeTime.js'; import axios from "axios"; import qs from "qs"; +import requests from '../utils/requests.js'; dayjs.extend(relativeTime); @@ -32,12 +33,32 @@ export default fp(async (fastify) => { const allChains = getAllChains(); for (const chain of allChains) { const operatorBalance = {}; - const provider = new ethers.JsonRpcProvider(chain.endpoint); - let relayerBalance = await provider.getBalance(chain.operator.relayer); - operatorBalance.relayer = unitToEth(relayerBalance); - let oracleBalance = await provider.getBalance(chain.operator.oracle); - operatorBalance.oracle = unitToEth(oracleBalance); - operatorBalance.symbol = chain.symbol; + + if (!chain.name.includes("tron")) { + const provider = new ethers.JsonRpcProvider(chain.endpoint); + let relayerBalance = await provider.getBalance(chain.operator.relayer); + operatorBalance.relayer = unitToEth(relayerBalance); + let oracleBalance = await provider.getBalance(chain.operator.oracle); + operatorBalance.oracle = unitToEth(oracleBalance); + operatorBalance.symbol = chain.symbol; + } else { + const relayerBalance = Number((await requests.post(chain.endpoint, { + "method": "eth_getBalance", + "params": [chain.operator.relayer, "latest"], + "id": "1", + "jsonrpc": "2.0" + })).result); + operatorBalance.relayer = unitToRtx(relayerBalance); + + const oracleBalance = Number((await requests.post(chain.endpoint, { + "method": "eth_getBalance", + "params": [chain.operator.oracle, "latest"], + "id": "1", + "jsonrpc": "2.0" + })).result); + operatorBalance.oracle = unitToRtx(oracleBalance); + } + if (operatorBalance.relayer < chain.operator.warnBalance) { warns.push(`[${chain.name}] Balance of relayer operator ${chain.operator.relayer} is ${operatorBalance.relayer} ${chain.symbol} less than ${chain.operator.warnBalance}.`) } @@ -84,7 +105,7 @@ export default fp(async (fastify) => { fromBlock: finalized.number - range, toBlock: finalized.number, address: subAPIMultisig, - topics: [ethers.id('SignatureSubmittion(uint256,uint256,address,bytes,bytes)')] + topics: [ethers.id('SignatureSubmittion(uint256,address,address,uint256,bytes,bytes)')] }) const count = {}; const hasCount = {}; diff --git a/server/routes/balance/helper.js b/server/routes/balance/helper.js index 4e6744d..3fce81f 100644 --- a/server/routes/balance/helper.js +++ b/server/routes/balance/helper.js @@ -2,5 +2,8 @@ function unitToEth(num) { return Number(num) / Math.pow(10, 18); } +function unitToRtx(num) { + return Number(num) / Math.pow(10, 6); +} -export { unitToEth } \ No newline at end of file +export { unitToEth, unitToRtx } \ No newline at end of file diff --git a/server/utils/requests.js b/server/utils/requests.js new file mode 100644 index 0000000..7cf1a4e --- /dev/null +++ b/server/utils/requests.js @@ -0,0 +1,52 @@ +import axios from 'axios'; + + +class Requests { + constructor() { + this.instance = axios.create({ + headers: { + 'Content-Type': 'application/json', + }, + }); + } + + async get(endpoint, params = {}) { + try { + const response = await this.instance.get(endpoint, { params }); + return response.data; + } catch (error) { + this.handleError(error); + } + } + + async post(endpoint, data = {}) { + try { + const response = await this.instance.post(endpoint, data); + return response.data; + } catch (error) { + this.handleError(error); + } + } + + async put(endpoint, data = {}) { + try { + const response = await this.instance.put(endpoint, data); + return response.data; + } catch (error) { + this.handleError(error); + } + } + + handleError(error) { + console.error('API error: ', error); + if (error.response) { + throw error.response.data; + } else { + throw error; + } + } +} + +const requests = new Requests(); + +export default requests; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index c3571f0..acc53bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1164,6 +1164,13 @@ resolved "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== +"@babel/runtime@^7.0.0": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.6.tgz#5b76eb89ad45e2e4a0a8db54c456251469a3358e" + integrity sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.0", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.24.0" resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.0.tgz#584c450063ffda59697021430cb47101b085951e" @@ -1368,6 +1375,183 @@ resolved "https://registry.npmmirror.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== +"@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + +"@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + +"@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + +"@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" + +"@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + +"@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + +"@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@fastify/ajv-compiler@^3.5.0": version "3.5.0" resolved "https://registry.npmmirror.com/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz#459bff00fefbf86c96ec30e62e933d2379e46670" @@ -1766,11 +1950,23 @@ dependencies: "@noble/hashes" "1.3.2" +"@noble/curves@1.3.0", "@noble/curves@~1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" + integrity sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== + dependencies: + "@noble/hashes" "1.3.3" + "@noble/hashes@1.3.2": version "1.3.2" resolved "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== +"@noble/hashes@1.3.3", "@noble/hashes@~1.3.2": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" + integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1920,6 +2116,28 @@ resolved "https://registry.npmmirror.com/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz#2d4260033e199b3032a08b41348ac10de21c47e9" integrity sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA== +"@scure/base@~1.1.4": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.6.tgz#8ce5d304b436e4c84f896e0550c83e4d88cb917d" + integrity sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g== + +"@scure/bip32@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.3.tgz#a9624991dc8767087c57999a5d79488f48eae6c8" + integrity sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ== + dependencies: + "@noble/curves" "~1.3.0" + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.4" + +"@scure/bip39@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.2.tgz#f3426813f4ced11a47489cbcf7294aa963966527" + integrity sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA== + dependencies: + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.4" + "@sinclair/typebox@^0.24.1": version "0.24.51" resolved "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" @@ -2107,6 +2325,11 @@ resolved "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== +"@tronweb3/google-protobuf@^3.21.2": + version "3.21.2" + resolved "https://registry.yarnpkg.com/@tronweb3/google-protobuf/-/google-protobuf-3.21.2.tgz#0964cf83ed7826d31c3cb4e4ecf07655681631c9" + integrity sha512-IVcT2GfWX3K6tHUVhs14NP5uzKhQt4KeDya1g9ACxuZsUzsaoGUIGzceK2Ltu7xp1YV94AaHOf4yxLAivlvEkQ== + "@trysound/sax@0.2.0": version "0.2.0" resolved "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" @@ -3170,6 +3393,15 @@ axe-core@=4.7.0: resolved "https://registry.npmmirror.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== +axios@^1.6.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" + integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + axios@^1.6.7: version "1.6.7" resolved "https://registry.npmmirror.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" @@ -3353,6 +3585,11 @@ big.js@^5.2.2: resolved "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +bignumber.js@^9.0.1: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -3363,6 +3600,16 @@ bluebird@^3.7.2: resolved "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + body-parser@1.20.2: version "1.20.2" resolved "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" @@ -3416,6 +3663,11 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + browser-process-hrtime@^1.0.0: version "1.0.0" resolved "https://registry.npmmirror.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" @@ -4443,6 +4695,19 @@ electron-to-chromium@^1.4.668: resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.693.tgz#001bb5dcb57ba404366ec39e1957d11886fc8a93" integrity sha512-/if4Ueg0GUQlhCrW2ZlXwDAm40ipuKo+OgeHInlL8sbjt+hzISxZK949fZeJaVsheamrzANXvw1zQTvbxTvSHw== +elliptic@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emittery@^0.10.2: version "0.10.2" resolved "https://registry.npmmirror.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" @@ -4956,6 +5221,16 @@ etag@~1.8.1: resolved "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== +ethereum-cryptography@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz#1352270ed3b339fe25af5ceeadcf1b9c8e30768a" + integrity sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA== + dependencies: + "@noble/curves" "1.3.0" + "@noble/hashes" "1.3.3" + "@scure/bip32" "1.3.3" + "@scure/bip39" "1.2.2" + ethers@^6.11.1: version "6.11.1" resolved "https://registry.npmmirror.com/ethers/-/ethers-6.11.1.tgz#96aae00b627c2e35f9b0a4d65c7ab658259ee6af" @@ -4969,11 +5244,29 @@ ethers@^6.11.1: tslib "2.4.0" ws "8.5.0" +ethers@^6.6.0: + version "6.12.1" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.12.1.tgz#517ff6d66d4fd5433e38e903051da3e57c87ff37" + integrity sha512-j6wcVoZf06nqEcBbDWkKg8Fp895SS96dSnTCjiXT+8vt2o02raTn4Lo9ERUuIVU5bAjoPYeA+7ytQFexFmLuVw== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.5.0" + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -5316,6 +5609,11 @@ follow-redirects@^1.0.0, follow-redirects@^1.15.4: resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + for-each@^0.3.3: version "0.3.3" resolved "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -5665,6 +5963,14 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.1, has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + hasown@^2.0.0, hasown@^2.0.1: version "2.0.1" resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" @@ -5690,6 +5996,15 @@ help-me@^5.0.0: resolved "https://registry.npmmirror.com/help-me/-/help-me-5.0.0.tgz#b1ebe63b967b74060027c2ac61f9be12d354a6f6" integrity sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg== +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + hoopy@^0.1.4: version "0.1.4" resolved "https://registry.npmmirror.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" @@ -5914,7 +6229,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -5929,6 +6244,11 @@ ini@^1.3.5: resolved "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +injectpromise@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/injectpromise/-/injectpromise-1.0.0.tgz#c621f7df2bbfc1164d714f1fb229adec2079da39" + integrity sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA== + internal-slot@^1.0.4, internal-slot@^1.0.5, internal-slot@^1.0.7: version "1.0.7" resolved "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" @@ -6829,6 +7149,11 @@ joycon@^3.1.1: resolved "https://registry.npmmirror.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== +js-sha3@0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -7295,11 +7620,16 @@ mini-css-extract-plugin@^2.4.5: schema-utils "^4.0.0" tapable "^2.2.1" -minimalistic-assert@^1.0.0: +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -8593,6 +8923,11 @@ qs@^6.12.0: dependencies: side-channel "^1.0.6" +querystring-es3@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== + querystringify@^2.1.1: version "2.2.0" resolved "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -9553,6 +9888,11 @@ selfsigned@^2.1.1: "@types/node-forge" "^1.3.0" node-forge "^1" +semver@^5.6.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" @@ -10330,6 +10670,25 @@ tree-kill@^1.2.2: resolved "https://registry.npmmirror.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== +tronweb@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-5.3.2.tgz#393b0fa0290e2c5aa7a3b3b82956f53ca65a764f" + integrity sha512-iPcIjMCxb6H7FXMntAj47F3L+7jSideyQ7ZOvRj9MeZBh46SHevMrDDR57HzakUa/tT8VvlPFHtqFK4hzTLkXw== + dependencies: + "@babel/runtime" "^7.0.0" + "@ethersproject/abi" "^5.7.0" + "@tronweb3/google-protobuf" "^3.21.2" + axios "^1.6.2" + bignumber.js "^9.0.1" + ethereum-cryptography "^2.0.0" + ethers "^6.6.0" + eventemitter3 "^3.1.0" + injectpromise "^1.0.0" + lodash "^4.17.21" + querystring-es3 "^0.2.1" + semver "^5.6.0" + validator "^13.7.0" + tryer@^1.0.1: version "1.0.1" resolved "https://registry.npmmirror.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" @@ -10616,6 +10975,11 @@ v8-to-istanbul@^9.0.0: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^2.0.0" +validator@^13.7.0: + version "13.12.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f" + integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== + vary@^1.1.2, vary@~1.1.2: version "1.1.2" resolved "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" From 265e5f187226651ddedd54361df3235716513543 Mon Sep 17 00:00:00 2001 From: Guantong Date: Thu, 30 May 2024 14:38:12 +0800 Subject: [PATCH 2/2] check ponder&api --- server/plugins/cron.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/server/plugins/cron.js b/server/plugins/cron.js index ce867c9..7f115fb 100644 --- a/server/plugins/cron.js +++ b/server/plugins/cron.js @@ -22,6 +22,8 @@ export default fp(async (fastify) => { allWarns.push(await checkOracleSignerBalance()); // allWarns.push(await checkOracleSignerSubmition()); allWarns.push(await checkTimeoutRelay()); + allWarns.push(await checkMsgportAPI()); + allWarns.push(await checkPonder()); fastify.log.warn(allWarns); await notify(allWarns, "59154,77764,55181,63157,49833"); }, { @@ -200,6 +202,38 @@ export default fp(async (fastify) => { return warns; } + async function checkMsgportAPI() { + const warns = []; + try { + const result = await axios.get("http://api.msgport.xyz/ormp/fee?from_chain_id=728126428&to_chain_id=46&from_address=0x9F33a4809aA708d7a399fedBa514e0A0d15EfA85&to_address=0x9F33a4809aA708d7a399fedBa514e0A0d15EfA85&payload=0x1841a477000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000002b496f19a420c02490db859fefeccd71edc2c046000000000000000000000000dc0c760c0fb4672d06088515f6446a71df0c64c1000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a4e80f03d0000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000e7578598aac020abfb918f33a20fad5b71d670b4000000000000000000000000092e19c46c9daab7824393f1cd9c22f5bea135600000000000000000000000004ca75992d2750bec270731a72dfdede6b9e71cc700000000000000000000000088a39b052d477cfde47600a7c9950a441ce61cb40000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000018e98a317b100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000c29dcb1f12a1618262ef9fba673b77140adc02d60000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001488a39B052d477CfdE47600a7C9950a441Ce61cb400000000000000000000000000000000000000000000000000000000000000000000000000000000&refund_address=0x9F33a4809aA708d7a399fedBa514e0A0d15EfA85", { timeout: 10000 }); + const data = result.data; + console.log(data); + if (data.code != 0 || !data.data.fee) { + warns.push("Msgport API error" + ` code: ${data.code}, time: ${Date.now()}`); + } + } catch (e) { + fastify.log.error(e); + warns.push("Msgport API error" + e + ", " + Date.now()); + } + return warns; + } + + async function checkPonder() { + const warns = []; + try { + const result = await axios.get("https://ormponder.msgport.xyz/", { timeout: 3000 }); + const data = result.data; + console.log(data); + if (!data.includes("Ponder Playground")) { + warns.push("Msgport Ponder error" + ` time: ${Date.now()}`); + } + } catch (e) { + fastify.log.error(e); + warns.push("Msgport Ponder error" + e + ", " + Date.now()); + } + return warns; + } + async function healthCheck() { await axios.get("https://hc-ping.com/5B4xQyjO7c1ReOiZiaS4yQ/ormonitor"); }