@sentio/cli 2.9.1 → 2.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/abi.d.ts +1 -1
- package/lib/abi.js +1 -1
- package/lib/abi.js.map +1 -1
- package/lib/abi.test.js.map +1 -1
- package/lib/commands/run-add.js +1 -1
- package/lib/commands/run-add.js.map +1 -1
- package/lib/config.d.ts +1 -1
- package/lib/config.js.map +1 -1
- package/package.json +2 -1
- package/src/abi.ts +1 -1
- package/src/commands/run-add.ts +1 -1
- package/src/config.ts +1 -1
- package/lib/chain.d.ts +0 -205
- package/lib/chain.js +0 -236
- package/lib/chain.js.map +0 -1
- package/src/chain.ts +0 -236
package/lib/abi.d.ts
CHANGED
package/lib/abi.js
CHANGED
|
@@ -5,7 +5,7 @@ import process from 'process';
|
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import fs from 'fs-extra';
|
|
7
7
|
import fetch from 'node-fetch';
|
|
8
|
-
import { AptosChainId, EthChainId, SuiChainId } from '
|
|
8
|
+
import { AptosChainId, EthChainId, SuiChainId } from '@sentio/chain';
|
|
9
9
|
export const ETH_API_URL_MAP = {};
|
|
10
10
|
ETH_API_URL_MAP[EthChainId.ETHEREUM] = 'https://api.etherscan.io';
|
|
11
11
|
ETH_API_URL_MAP[EthChainId.GOERLI] = 'https://api-goerli.etherscan.io';
|
package/lib/abi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC5D,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAW,UAAU,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"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","sourcesContent":["import { AptosClient } from 'aptos-sdk'\nimport { JsonRpcProvider, Connection } from '@mysten/sui.js'\nimport chalk from 'chalk'\nimport process from 'process'\nimport path from 'path'\nimport fs from 'fs-extra'\nimport fetch from 'node-fetch'\nimport { AptosChainId, ChainId, EthChainId, SuiChainId } from '@sentio/chain'\n\nexport const ETH_API_URL_MAP: Record<string, string> = {}\n\nETH_API_URL_MAP[EthChainId.ETHEREUM] = 'https://api.etherscan.io'\nETH_API_URL_MAP[EthChainId.GOERLI] = 'https://api-goerli.etherscan.io'\nETH_API_URL_MAP[EthChainId.BINANCE] = 'https://api.bscscan.com'\nETH_API_URL_MAP[EthChainId.POLYGON] = 'https://api.polygonscan.com'\nETH_API_URL_MAP[EthChainId.ARBITRUM] = 'https://api.arbiscan.io'\nETH_API_URL_MAP[EthChainId.OPTIMISM] = 'https://api-optimistic.etherscan.io'\n// ETH_API_URL_MAP[CHAIN_IDS.BASE_GOERLI] = 'https://api-goerli.basescan.org' // didn't see any verified contract\n\nETH_API_URL_MAP[EthChainId.AVALANCHE] = 'https://api.snowtrace.io'\nETH_API_URL_MAP[EthChainId.CRONOS] = 'https://api.cronoscan.com'\nETH_API_URL_MAP[EthChainId.MOONBEAM] = 'https://api-moonbeam.moonscan.io'\nETH_API_URL_MAP[EthChainId.FANTOM] = 'https://api.ftmscan.com'\n\nexport async function getABI(\n chain: ChainId,\n address: string,\n name: string | undefined\n): Promise<{ name?: string; abi: object | string }> {\n let ethApi\n let aptosClient: AptosClient | undefined\n let suiClient: JsonRpcProvider | undefined\n\n switch (chain) {\n case AptosChainId.APTOS_MAINNET:\n aptosClient = new AptosClient('https://mainnet.aptoslabs.com/')\n break\n case AptosChainId.APTOS_TESTNET:\n aptosClient = new AptosClient('https://testnet.aptoslabs.com/')\n break\n case SuiChainId.SUI_MAINNET:\n suiClient = new JsonRpcProvider(new Connection({ fullnode: 'https://fullnode.mainnet.sui.io/' }))\n break\n case SuiChainId.SUI_TESTNET:\n suiClient = new JsonRpcProvider(new Connection({ fullnode: 'https://fullnode.testnet.sui.io/' }))\n break\n default:\n ethApi = ETH_API_URL_MAP[chain]\n if (!ethApi) {\n console.error(chalk.red(`chain ${chain} not supported for direct add, please download the ABI manually`))\n process.exit(1)\n }\n }\n\n const baseErrMsg = chalk.red(\n `Failed to automatic download contract ${address} from ${chain}, please manually download abi and put it into abis/eth directory`\n )\n\n if (aptosClient) {\n try {\n return {\n abi: await aptosClient.getAccountModules(address),\n name,\n }\n } catch (e) {\n console.error(baseErrMsg, e)\n process.exit(1)\n }\n }\n if (suiClient) {\n try {\n return {\n abi: await suiClient.getNormalizedMoveModulesByPackage({ package: address }),\n name,\n }\n } catch (e) {\n console.error(baseErrMsg, e)\n process.exit(1)\n }\n }\n\n try {\n const apiKey = process.env['ETHERSCAN_API_KEY_' + chain]\n if (apiKey) {\n ethApi = `${ethApi}/api?apikey=${apiKey}&`\n } else {\n ethApi = `${ethApi}/api?`\n }\n\n let resp = (await (await fetch(`${ethApi}module=contract&action=getabi&address=${address}`)).json()) as any\n if (resp.status !== '1') {\n throw Error(resp.message)\n }\n const abi = resp.result\n\n if (!name) {\n await new Promise((resolve) => setTimeout(resolve, 5000))\n resp = (await (await fetch(`${ethApi}module=contract&action=getsourcecode&address=${address}`)).json()) as any\n if (resp.status !== '1') {\n throw Error(resp.message)\n }\n const contractName = resp.result[0].ContractName\n if (contractName) {\n name = contractName\n }\n }\n return {\n name,\n abi,\n }\n } catch (e) {\n console.error(baseErrMsg, e)\n process.exit(1)\n }\n}\n\nexport function getABIFilePath(chain: string, name: string): string {\n let subpath\n switch (chain) {\n case AptosChainId.APTOS_MAINNET:\n subpath = 'aptos'\n break\n case AptosChainId.APTOS_TESTNET:\n subpath = 'aptos/testnet'\n break\n case SuiChainId.SUI_MAINNET:\n subpath = 'sui'\n break\n case SuiChainId.SUI_TESTNET:\n subpath = 'sui/testnet'\n break\n default:\n subpath = 'eth'\n }\n\n return path.join('abis', subpath, name + '.json')\n}\n\nexport function writeABIFile(obj: string | object, output: string) {\n if (typeof obj === 'string') {\n obj = JSON.parse(obj)\n }\n const data = JSON.stringify(obj, null, 2)\n fs.mkdirSync(path.dirname(output), { recursive: true })\n fs.writeFileSync(output, data)\n console.log(chalk.green('ABI has been downloaded to', output))\n}\n"]}
|
package/lib/abi.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.test.js","sourceRoot":"","sources":["../src/abi.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"abi.test.js","sourceRoot":"","sources":["../src/abi.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE;QAClB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACjC,OAAM;KACP;IACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAEvB,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACxB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;QACpG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;QACtG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACrB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;QACrG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACxB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;QACpG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACzB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;QACrG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACxB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;QACpG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,UAAU,CAAC,WAAW,EACtB,oEAAoE,EACpE,SAAS,CACV,CAAA;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { getABI } from './abi.js'\nimport { EthChainId, SuiChainId } from '@sentio/chain'\nimport { expect } from 'chai'\nimport { jest } from '@jest/globals'\n\ndescribe('Test ABI get', () => {\n if (process.env.CI) {\n test.todo(`don't run test in ci`)\n return\n }\n jest.setTimeout(100000)\n\n test('cronos', async () => {\n const abi = await getABI(EthChainId.CRONOS, '0xc21223249CA28397B4B6541dfFaEcC539BfF0c59', undefined)\n expect(abi.abi !== undefined).eq(true)\n })\n\n test('optimism', async () => {\n const abi = await getABI(EthChainId.OPTIMISM, '0x7F5c764cBc14f9669B88837ca1490cCa17c31607', undefined)\n expect(abi.abi !== undefined).eq(true)\n })\n\n test('bsc', async () => {\n const abi = await getABI(EthChainId.BINANCE, '0x2170Ed0880ac9A755fd29B2688956BD959F933F8', undefined)\n expect(abi.abi !== undefined).eq(true)\n })\n\n test('goerli', async () => {\n const abi = await getABI(EthChainId.GOERLI, '0xd864C4a1B739B7e0bb9e2ae495583Eb5Da0d37F5', undefined)\n expect(abi.abi !== undefined).eq(true)\n })\n\n test('polygon', async () => {\n const abi = await getABI(EthChainId.POLYGON, '0x7FFB3d637014488b63fb9858E279385685AFc1e2', undefined)\n expect(abi.abi !== undefined).eq(true)\n })\n\n test('fantom', async () => {\n const abi = await getABI(EthChainId.FANTOM, '0x04068DA6C83AFCFA0e13ba15A6696662335D5B75', undefined)\n expect(abi.abi !== undefined).eq(true)\n })\n\n test('sui_test', async () => {\n const abi = await getABI(\n SuiChainId.SUI_TESTNET,\n '0xebaa2ad3eacc230f309cd933958cc52684df0a41ae7ac214d186b80f830867d2',\n undefined\n )\n expect(abi.abi !== undefined).eq(true)\n })\n})\n"]}
|
package/lib/commands/run-add.js
CHANGED
|
@@ -5,7 +5,7 @@ import chalk from 'chalk';
|
|
|
5
5
|
import { codegen } from './build.js';
|
|
6
6
|
import yaml from 'yaml';
|
|
7
7
|
import { getABIFilePath, getABI, writeABIFile, ETH_API_URL_MAP } from '../abi.js';
|
|
8
|
-
import { AptosChainId, getChainName, SuiChainId } from '
|
|
8
|
+
import { AptosChainId, getChainName, SuiChainId } from '@sentio/chain';
|
|
9
9
|
export async function runAdd(argv) {
|
|
10
10
|
const supportedChain = [
|
|
11
11
|
AptosChainId.APTOS_MAINNET,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-add.js","sourceRoot":"","sources":["../../src/commands/run-add.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AACjF,OAAO,EAAE,YAAY,EAAW,YAAY,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"run-add.js","sourceRoot":"","sources":["../../src/commands/run-add.ts"],"names":[],"mappings":"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","sourcesContent":["import commandLineArgs from 'command-line-args'\nimport commandLineUsage from 'command-line-usage'\nimport fs from 'fs-extra'\nimport chalk from 'chalk'\n\nimport { codegen } from './build.js'\n\nimport yaml from 'yaml'\nimport { getABIFilePath, getABI, writeABIFile, ETH_API_URL_MAP } from '../abi.js'\nimport { AptosChainId, ChainId, getChainName, SuiChainId } from '@sentio/chain'\n\nexport async function runAdd(argv: string[]) {\n const supportedChain: string[] = [\n AptosChainId.APTOS_MAINNET,\n AptosChainId.APTOS_TESTNET,\n SuiChainId.SUI_TESTNET,\n SuiChainId.SUI_MAINNET,\n ]\n supportedChain.push(...Object.keys(ETH_API_URL_MAP))\n const supprtedChainMessage = [\n '',\n ...supportedChain.map(\n (chainId, idx) => ` ${getChainName(chainId)}:\\t${chainId}${idx === supportedChain.length - 1 ? '' : '\\n'}`\n ),\n ]\n\n const optionDefinitions = [\n {\n name: 'help',\n alias: 'h',\n type: Boolean,\n description: 'Display this usage guide.',\n },\n {\n name: 'chain',\n alias: 'c',\n type: String,\n defaultValue: '1',\n description: 'Chain id, current support (chain name: id)s are:\\n' + supprtedChainMessage,\n },\n {\n name: 'address',\n defaultOption: true,\n description: 'Address of the contract',\n type: String,\n },\n {\n name: 'name',\n alias: 'n',\n description: 'File name for the downloaded contract, if empty, use address as file name',\n type: String,\n },\n ]\n\n const options = commandLineArgs(optionDefinitions, { argv, partial: true })\n const usage = commandLineUsage([\n {\n header: \"Add contract's ABI to the project\",\n content: 'sentio add [--chain <chain> --name <name>] <address>',\n },\n {\n header: 'Options',\n optionList: optionDefinitions,\n },\n ])\n\n if (options.help || !options.address) {\n console.log(usage)\n } else {\n const chain = options['chain'].toLowerCase() as ChainId\n const address: string = options.address\n if (!address.startsWith('0x')) {\n console.error(chalk.red('Address must start with 0x'))\n console.log(usage)\n process.exit(1)\n }\n\n const abiRes = await getABI(chain, address, options.name)\n const filename = abiRes.name || address\n\n writeABIFile(abiRes.abi, getABIFilePath(chain, filename))\n\n // Write contract info to sentio.yaml\n const yamlDocument: yaml.Document = yaml.parseDocument(fs.readFileSync('sentio.yaml', 'utf8'))\n let contracts = yamlDocument.get('contracts') as yaml.YAMLSeq\n if (!contracts) {\n contracts = new yaml.YAMLSeq()\n yamlDocument.set('contracts', contracts)\n }\n\n let hasContract = false\n for (const item of contracts.items as yaml.YAMLMap[]) {\n if (item.get('chain') === chain && item.get('address') === address) {\n hasContract = true\n }\n }\n\n if (!hasContract) {\n const newContract = new yaml.YAMLMap()\n newContract.set('chain', chain)\n newContract.set('address', address)\n if (address !== filename) {\n newContract.set('name', filename)\n }\n contracts.add(newContract)\n fs.writeFileSync('sentio.yaml', yamlDocument.toString(), 'utf8')\n }\n\n // Run gen\n await codegen(false)\n }\n}\n"]}
|
package/lib/config.d.ts
CHANGED
package/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAA+B;IAC1C,KAAK,EAAE,wBAAwB;IAC/B,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,4BAA4B;IACrC,IAAI,EAAE,wBAAwB;CAC/B,CAAA;AAgBD,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE;QACrC,IAAI,GAAG,MAAM,CAAA;KACd;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IAMxC,IAAI,MAAM,GAAG,EAAE,EACb,QAAQ,GAAG,EAAE,EACb,QAAQ,GAAG,EAAE,EACb,WAAW,GAAG,EAAE,CAAA;IAClB,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO,CAAC,OAAO,CAAC;YACnB,MAAM,GAAG,iCAAiC,CAAA;YAC1C,QAAQ,GAAG,kCAAkC,CAAA;YAC7C,QAAQ,GAAG,0BAA0B,CAAA;YACrC,WAAW,GAAG,qCAAqC,CAAA;YACnD,MAAK;QACP,KAAK,OAAO,CAAC,MAAM,CAAC;YAClB,MAAM,GAAG,yBAAyB,CAAA;YAClC,QAAQ,GAAG,kCAAkC,CAAA;YAC7C,QAAQ,GAAG,+BAA+B,CAAA;YAC1C,WAAW,GAAG,qCAAqC,CAAA;YACnD,MAAK;QACP,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,OAAO,CAAC,SAAS,CAAC;YACrB,MAAM,GAAG,8BAA8B,CAAA;YACvC,QAAQ,GAAG,kCAAkC,CAAA;YAC7C,QAAQ,GAAG,gCAAgC,CAAA;YAC3C,WAAW,GAAG,sCAAsC,CAAA;YACpD,MAAK;QACP;YACE,MAAK;KACR;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAyB;IACpD,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAyB,EAAE,KAAyB,EAAE,IAAwB;IAChH,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAA;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtB,KAAK,GAAG,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7C,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;SACpC;QACD,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACtB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC1B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;aAC1B;iBAAM;gBACL,IAAI,GAAG,IAAI,CAAA;aACZ;SACF;QACD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;KACxD;AACH,CAAC;AAED,4BAA4B;AAC5B,kBAAkB;AAClB,qBAAqB;AACrB,IAAI;AACJ,EAAE;AACF,wCAAwC;AACxC,2BAA2B;AAC3B,iCAAiC","sourcesContent":["import { ChainId } from '
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAA+B;IAC1C,KAAK,EAAE,wBAAwB;IAC/B,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,4BAA4B;IACrC,IAAI,EAAE,wBAAwB;CAC/B,CAAA;AAgBD,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE;QACrC,IAAI,GAAG,MAAM,CAAA;KACd;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IAMxC,IAAI,MAAM,GAAG,EAAE,EACb,QAAQ,GAAG,EAAE,EACb,QAAQ,GAAG,EAAE,EACb,WAAW,GAAG,EAAE,CAAA;IAClB,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO,CAAC,OAAO,CAAC;YACnB,MAAM,GAAG,iCAAiC,CAAA;YAC1C,QAAQ,GAAG,kCAAkC,CAAA;YAC7C,QAAQ,GAAG,0BAA0B,CAAA;YACrC,WAAW,GAAG,qCAAqC,CAAA;YACnD,MAAK;QACP,KAAK,OAAO,CAAC,MAAM,CAAC;YAClB,MAAM,GAAG,yBAAyB,CAAA;YAClC,QAAQ,GAAG,kCAAkC,CAAA;YAC7C,QAAQ,GAAG,+BAA+B,CAAA;YAC1C,WAAW,GAAG,qCAAqC,CAAA;YACnD,MAAK;QACP,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,OAAO,CAAC,SAAS,CAAC;YACrB,MAAM,GAAG,8BAA8B,CAAA;YACvC,QAAQ,GAAG,kCAAkC,CAAA;YAC7C,QAAQ,GAAG,gCAAgC,CAAA;YAC3C,WAAW,GAAG,sCAAsC,CAAA;YACpD,MAAK;QACP;YACE,MAAK;KACR;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAyB;IACpD,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAyB,EAAE,KAAyB,EAAE,IAAwB;IAChH,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAA;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtB,KAAK,GAAG,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7C,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;SACpC;QACD,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACtB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC1B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;aAC1B;iBAAM;gBACL,IAAI,GAAG,IAAI,CAAA;aACZ;SACF;QACD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;KACxD;AACH,CAAC;AAED,4BAA4B;AAC5B,kBAAkB;AAClB,qBAAqB;AACrB,IAAI;AACJ,EAAE;AACF,wCAAwC;AACxC,2BAA2B;AAC3B,iCAAiC","sourcesContent":["import { ChainId } from '@sentio/chain'\n\nconst HostMap: { [host: string]: string } = {\n local: 'http://localhost:10000',\n test: 'https://test.sentio.xyz',\n staging: 'https://staging.sentio.xyz',\n prod: 'https://app.sentio.xyz',\n}\n\nexport interface YamlContractConfig {\n address: string\n chain: ChainId\n name: string\n}\n\nexport interface YamlProjectConfig {\n project: string\n host: string\n build: boolean\n contracts?: YamlContractConfig[]\n debug: boolean\n}\n\nexport function getFinalizedHost(host: string): string {\n if (host === undefined || host === '') {\n host = 'prod'\n }\n return HostMap[host] ?? host\n}\n\nexport function getAuthConfig(host: string): {\n domain: string\n clientId: string\n audience: string\n redirectUri: string\n} {\n let domain = '',\n clientId = '',\n audience = '',\n redirectUri = ''\n switch (host) {\n case HostMap['local']:\n domain = 'https://sentio-dev.us.auth0.com'\n clientId = 'JREam3EysMTM49eFbAjNK02OCykpmda3'\n audience = 'http://localhost:8080/v1'\n redirectUri = 'http://localhost:10000/redirect/sdk'\n break\n case HostMap['prod']:\n domain = 'https://auth.sentio.xyz'\n clientId = '66oqMrep54LVI9ckH97cw8C4GBA1cpKW'\n audience = 'https://app.sentio.xyz/api/v1'\n redirectUri = 'https://app.sentio.xyz/redirect/sdk'\n break\n case HostMap['test']:\n case HostMap['staging']:\n domain = 'https://auth.test.sentio.xyz'\n clientId = '6SH2S1qJ2yYqyYGCQOcEnGsYgoyONTxM'\n audience = 'https://test.sentio.xyz/api/v1'\n redirectUri = 'https://test.sentio.xyz/redirect/sdk'\n break\n default:\n break\n }\n return { domain, clientId, audience, redirectUri }\n}\n\nexport function finalizeHost(config: YamlProjectConfig) {\n config.host = getFinalizedHost(config.host)\n}\n\nexport function FinalizeProjectName(config: YamlProjectConfig, owner: string | undefined, slug: string | undefined) {\n if (owner || slug) {\n let name = config.project\n if (name.includes('/')) {\n owner = owner || config.project.split('/')[0]\n name = config.project.split('/')[1]\n }\n if (slug) {\n if (slug.includes('/')) {\n owner = slug.split('/')[0]\n name = slug.split('/')[1]\n } else {\n name = slug\n }\n }\n config.project = owner ? [owner, name].join('/') : name\n }\n}\n\n// export interface Target {\n// chain: string\n// abisDir?: string\n// }\n//\n// // Supported target chain, lower case\n// export const EVM = 'evm'\n// export const SOLANA = 'solana'\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentio/cli",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.2",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"@jest/globals": "^29.5.0",
|
|
19
19
|
"@jest/types": "^29.5.0",
|
|
20
20
|
"@mysten/sui.js": "npm:@sentio/sui.js@^0.34",
|
|
21
|
+
"@sentio/chain": "^1.0.0",
|
|
21
22
|
"@types/jest": "^29.5.0",
|
|
22
23
|
"@types/node": "^18.11.18",
|
|
23
24
|
"aptos-sdk": "npm:aptos@^1.8.5",
|
package/src/abi.ts
CHANGED
|
@@ -5,7 +5,7 @@ import process from 'process'
|
|
|
5
5
|
import path from 'path'
|
|
6
6
|
import fs from 'fs-extra'
|
|
7
7
|
import fetch from 'node-fetch'
|
|
8
|
-
import { AptosChainId, ChainId, EthChainId, SuiChainId } from '
|
|
8
|
+
import { AptosChainId, ChainId, EthChainId, SuiChainId } from '@sentio/chain'
|
|
9
9
|
|
|
10
10
|
export const ETH_API_URL_MAP: Record<string, string> = {}
|
|
11
11
|
|
package/src/commands/run-add.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { codegen } from './build.js'
|
|
|
7
7
|
|
|
8
8
|
import yaml from 'yaml'
|
|
9
9
|
import { getABIFilePath, getABI, writeABIFile, ETH_API_URL_MAP } from '../abi.js'
|
|
10
|
-
import { AptosChainId, ChainId, getChainName, SuiChainId } from '
|
|
10
|
+
import { AptosChainId, ChainId, getChainName, SuiChainId } from '@sentio/chain'
|
|
11
11
|
|
|
12
12
|
export async function runAdd(argv: string[]) {
|
|
13
13
|
const supportedChain: string[] = [
|
package/src/config.ts
CHANGED
package/lib/chain.d.ts
DELETED
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
export declare enum EthChainId {
|
|
2
|
-
KARDIA = "0",
|
|
3
|
-
ETHEREUM = "1",
|
|
4
|
-
EXPANSE = "2",
|
|
5
|
-
ROPSTEN = "3",
|
|
6
|
-
RINKEBY = "4",
|
|
7
|
-
GOERLI = "5",
|
|
8
|
-
KOTTI = "6",
|
|
9
|
-
UBIQ = "8",
|
|
10
|
-
OPTIMISM = "10",
|
|
11
|
-
SONGBIRD = "19",
|
|
12
|
-
ELASTOS = "20",
|
|
13
|
-
CRONOS = "25",
|
|
14
|
-
RSK = "30",
|
|
15
|
-
TELOS = "40",
|
|
16
|
-
XDC = "50",
|
|
17
|
-
CSC = "52",
|
|
18
|
-
ZYX = "55",
|
|
19
|
-
BINANCE = "56",
|
|
20
|
-
SYSCOIN = "57",
|
|
21
|
-
GOCHAIN = "60",
|
|
22
|
-
ETHCLASSIC = "61",
|
|
23
|
-
MORDOR = "63",
|
|
24
|
-
OKEXCHAIN = "66",
|
|
25
|
-
HOO = "70",
|
|
26
|
-
METER = "82",
|
|
27
|
-
TOMOCHAIN = "88",
|
|
28
|
-
BINANCE_TEST = "97",
|
|
29
|
-
XDAI = "100",
|
|
30
|
-
VELAS = "106",
|
|
31
|
-
THUNDERCORE = "108",
|
|
32
|
-
FUSE = "122",
|
|
33
|
-
HECO = "128",
|
|
34
|
-
POLYGON = "137",
|
|
35
|
-
XDAIARB = "200",
|
|
36
|
-
ASTOR = "212",
|
|
37
|
-
ENERGYWEB = "246",
|
|
38
|
-
FANTOM = "250",
|
|
39
|
-
HPB = "269",
|
|
40
|
-
BOBA = "288",
|
|
41
|
-
KUCOIN = "321",
|
|
42
|
-
ZKSYNC_ERA = "324",
|
|
43
|
-
SHIDEN = "336",
|
|
44
|
-
CRONOS_TESTNET = "338",
|
|
45
|
-
THETA = "361",
|
|
46
|
-
SX = "416",
|
|
47
|
-
CANDLE = "534",
|
|
48
|
-
ASTAR = "592",
|
|
49
|
-
CALLISTO = "820",
|
|
50
|
-
WANCHAIN = "888",
|
|
51
|
-
POLYGON_ZKEVM = "1101",
|
|
52
|
-
CONFLUX = "1030",
|
|
53
|
-
METIS = "1088",
|
|
54
|
-
OMCHAIN = "1246",
|
|
55
|
-
MOONBEAM = "1284",
|
|
56
|
-
MOONRIVER = "1285",
|
|
57
|
-
MOONBASE = "1287",
|
|
58
|
-
DEV = "2018",
|
|
59
|
-
RONIN = "2020",
|
|
60
|
-
KAVA = "2222",
|
|
61
|
-
EZCHAIN = "2612",
|
|
62
|
-
PHI = "4181",
|
|
63
|
-
IOTEX = "4689",
|
|
64
|
-
XLC = "5050",
|
|
65
|
-
NAHMII = "5551",
|
|
66
|
-
NMACTEST = "7777",
|
|
67
|
-
KLAYTN = "8217",
|
|
68
|
-
EVMOS = "9001",
|
|
69
|
-
BASE_GOERLI = "84531",
|
|
70
|
-
SMARTBCH = "10000",
|
|
71
|
-
CRYSTALEUM = "103090",
|
|
72
|
-
FUSION = "32659",
|
|
73
|
-
ARBITRUM = "42161",
|
|
74
|
-
CELO = "42220",
|
|
75
|
-
OASIS = "42262",
|
|
76
|
-
AVALANCHE = "43114",
|
|
77
|
-
GODWOKEN = "71402",
|
|
78
|
-
AKROMA = "200625",
|
|
79
|
-
POLIS = "333999",
|
|
80
|
-
ARBITRUM_GOERLI = "421613",
|
|
81
|
-
SEPOLIA = "11155111",
|
|
82
|
-
AURORA = "1313161554",
|
|
83
|
-
HARMONY = "1666600000",
|
|
84
|
-
PALM = "11297108109",
|
|
85
|
-
CURIO = "836542336838601"
|
|
86
|
-
}
|
|
87
|
-
export declare enum AptosChainId {
|
|
88
|
-
APTOS_MAINNET = "aptos_mainnet",
|
|
89
|
-
APTOS_TESTNET = "aptos_testnet",
|
|
90
|
-
APTOS_DEVNET = "aptos_devnet"
|
|
91
|
-
}
|
|
92
|
-
export declare enum SuiChainId {
|
|
93
|
-
SUI_MAINNET = "sui_mainnet",
|
|
94
|
-
SUI_TESTNET = "sui_testnet",
|
|
95
|
-
SUI_DEVNET = "sui_devnet"
|
|
96
|
-
}
|
|
97
|
-
export declare enum SolanaChainId {
|
|
98
|
-
SOLANA_MAINNET = "sol_mainnet",
|
|
99
|
-
SOLANA_DEVNET = "sol_devnet",
|
|
100
|
-
SOLANA_TESTNET = "sol_testnet",
|
|
101
|
-
SOLANA_PYTH = "sol_pyth"
|
|
102
|
-
}
|
|
103
|
-
export type ChainId = EthChainId | AptosChainId | SuiChainId | SolanaChainId;
|
|
104
|
-
export declare const ChainId: {
|
|
105
|
-
SOLANA_MAINNET: SolanaChainId.SOLANA_MAINNET;
|
|
106
|
-
SOLANA_DEVNET: SolanaChainId.SOLANA_DEVNET;
|
|
107
|
-
SOLANA_TESTNET: SolanaChainId.SOLANA_TESTNET;
|
|
108
|
-
SOLANA_PYTH: SolanaChainId.SOLANA_PYTH;
|
|
109
|
-
SUI_MAINNET: SuiChainId.SUI_MAINNET;
|
|
110
|
-
SUI_TESTNET: SuiChainId.SUI_TESTNET;
|
|
111
|
-
SUI_DEVNET: SuiChainId.SUI_DEVNET;
|
|
112
|
-
APTOS_MAINNET: AptosChainId.APTOS_MAINNET;
|
|
113
|
-
APTOS_TESTNET: AptosChainId.APTOS_TESTNET;
|
|
114
|
-
APTOS_DEVNET: AptosChainId.APTOS_DEVNET;
|
|
115
|
-
KARDIA: EthChainId.KARDIA;
|
|
116
|
-
ETHEREUM: EthChainId.ETHEREUM;
|
|
117
|
-
EXPANSE: EthChainId.EXPANSE;
|
|
118
|
-
ROPSTEN: EthChainId.ROPSTEN;
|
|
119
|
-
RINKEBY: EthChainId.RINKEBY;
|
|
120
|
-
GOERLI: EthChainId.GOERLI;
|
|
121
|
-
KOTTI: EthChainId.KOTTI;
|
|
122
|
-
UBIQ: EthChainId.UBIQ;
|
|
123
|
-
OPTIMISM: EthChainId.OPTIMISM;
|
|
124
|
-
SONGBIRD: EthChainId.SONGBIRD;
|
|
125
|
-
ELASTOS: EthChainId.ELASTOS;
|
|
126
|
-
CRONOS: EthChainId.CRONOS;
|
|
127
|
-
RSK: EthChainId.RSK;
|
|
128
|
-
TELOS: EthChainId.TELOS;
|
|
129
|
-
XDC: EthChainId.XDC;
|
|
130
|
-
CSC: EthChainId.CSC;
|
|
131
|
-
ZYX: EthChainId.ZYX;
|
|
132
|
-
BINANCE: EthChainId.BINANCE;
|
|
133
|
-
SYSCOIN: EthChainId.SYSCOIN;
|
|
134
|
-
GOCHAIN: EthChainId.GOCHAIN;
|
|
135
|
-
ETHCLASSIC: EthChainId.ETHCLASSIC;
|
|
136
|
-
MORDOR: EthChainId.MORDOR;
|
|
137
|
-
OKEXCHAIN: EthChainId.OKEXCHAIN;
|
|
138
|
-
HOO: EthChainId.HOO;
|
|
139
|
-
METER: EthChainId.METER;
|
|
140
|
-
TOMOCHAIN: EthChainId.TOMOCHAIN;
|
|
141
|
-
BINANCE_TEST: EthChainId.BINANCE_TEST;
|
|
142
|
-
XDAI: EthChainId.XDAI;
|
|
143
|
-
VELAS: EthChainId.VELAS;
|
|
144
|
-
THUNDERCORE: EthChainId.THUNDERCORE;
|
|
145
|
-
FUSE: EthChainId.FUSE;
|
|
146
|
-
HECO: EthChainId.HECO;
|
|
147
|
-
POLYGON: EthChainId.POLYGON;
|
|
148
|
-
XDAIARB: EthChainId.XDAIARB;
|
|
149
|
-
ASTOR: EthChainId.ASTOR;
|
|
150
|
-
ENERGYWEB: EthChainId.ENERGYWEB;
|
|
151
|
-
FANTOM: EthChainId.FANTOM;
|
|
152
|
-
HPB: EthChainId.HPB;
|
|
153
|
-
BOBA: EthChainId.BOBA;
|
|
154
|
-
KUCOIN: EthChainId.KUCOIN;
|
|
155
|
-
ZKSYNC_ERA: EthChainId.ZKSYNC_ERA;
|
|
156
|
-
SHIDEN: EthChainId.SHIDEN;
|
|
157
|
-
CRONOS_TESTNET: EthChainId.CRONOS_TESTNET;
|
|
158
|
-
THETA: EthChainId.THETA;
|
|
159
|
-
SX: EthChainId.SX;
|
|
160
|
-
CANDLE: EthChainId.CANDLE;
|
|
161
|
-
ASTAR: EthChainId.ASTAR;
|
|
162
|
-
CALLISTO: EthChainId.CALLISTO;
|
|
163
|
-
WANCHAIN: EthChainId.WANCHAIN;
|
|
164
|
-
POLYGON_ZKEVM: EthChainId.POLYGON_ZKEVM;
|
|
165
|
-
CONFLUX: EthChainId.CONFLUX;
|
|
166
|
-
METIS: EthChainId.METIS;
|
|
167
|
-
OMCHAIN: EthChainId.OMCHAIN;
|
|
168
|
-
MOONBEAM: EthChainId.MOONBEAM;
|
|
169
|
-
MOONRIVER: EthChainId.MOONRIVER;
|
|
170
|
-
MOONBASE: EthChainId.MOONBASE;
|
|
171
|
-
DEV: EthChainId.DEV;
|
|
172
|
-
RONIN: EthChainId.RONIN;
|
|
173
|
-
KAVA: EthChainId.KAVA;
|
|
174
|
-
EZCHAIN: EthChainId.EZCHAIN;
|
|
175
|
-
PHI: EthChainId.PHI;
|
|
176
|
-
IOTEX: EthChainId.IOTEX;
|
|
177
|
-
XLC: EthChainId.XLC;
|
|
178
|
-
NAHMII: EthChainId.NAHMII;
|
|
179
|
-
NMACTEST: EthChainId.NMACTEST;
|
|
180
|
-
KLAYTN: EthChainId.KLAYTN;
|
|
181
|
-
EVMOS: EthChainId.EVMOS;
|
|
182
|
-
BASE_GOERLI: EthChainId.BASE_GOERLI;
|
|
183
|
-
SMARTBCH: EthChainId.SMARTBCH;
|
|
184
|
-
CRYSTALEUM: EthChainId.CRYSTALEUM;
|
|
185
|
-
FUSION: EthChainId.FUSION;
|
|
186
|
-
ARBITRUM: EthChainId.ARBITRUM;
|
|
187
|
-
CELO: EthChainId.CELO;
|
|
188
|
-
OASIS: EthChainId.OASIS;
|
|
189
|
-
AVALANCHE: EthChainId.AVALANCHE;
|
|
190
|
-
GODWOKEN: EthChainId.GODWOKEN;
|
|
191
|
-
AKROMA: EthChainId.AKROMA;
|
|
192
|
-
POLIS: EthChainId.POLIS;
|
|
193
|
-
ARBITRUM_GOERLI: EthChainId.ARBITRUM_GOERLI;
|
|
194
|
-
SEPOLIA: EthChainId.SEPOLIA;
|
|
195
|
-
AURORA: EthChainId.AURORA;
|
|
196
|
-
HARMONY: EthChainId.HARMONY;
|
|
197
|
-
PALM: EthChainId.PALM;
|
|
198
|
-
CURIO: EthChainId.CURIO;
|
|
199
|
-
};
|
|
200
|
-
export declare const CHAIN_MAP: Record<string, string>;
|
|
201
|
-
export declare function getChainName(chainId: string | number | null | undefined): string;
|
|
202
|
-
export declare function getChainType(chainId?: string | number): string;
|
|
203
|
-
export declare function getChainScanUrl(chainId?: string | number, hash?: string, subtype?: 'block' | 'address' | 'transaction'): string | undefined;
|
|
204
|
-
export declare function chainInitialLabel(chainType: string): "Initial start version" | "Initial start checkpoint" | "Initial start block number";
|
|
205
|
-
export declare function chainBlockLabel(chainType: string): "Version" | "Checkpoint" | "Block number";
|
package/lib/chain.js
DELETED
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
// copy from https://github.com/DefiLlama/chainlist/blob/main/constants/chainIds.js
|
|
2
|
-
// and https://besu.hyperledger.org/en/stable/Concepts/NetworkID-And-ChainID/
|
|
3
|
-
export var EthChainId;
|
|
4
|
-
(function (EthChainId) {
|
|
5
|
-
EthChainId["KARDIA"] = "0";
|
|
6
|
-
EthChainId["ETHEREUM"] = "1";
|
|
7
|
-
EthChainId["EXPANSE"] = "2";
|
|
8
|
-
EthChainId["ROPSTEN"] = "3";
|
|
9
|
-
EthChainId["RINKEBY"] = "4";
|
|
10
|
-
EthChainId["GOERLI"] = "5";
|
|
11
|
-
EthChainId["KOTTI"] = "6";
|
|
12
|
-
EthChainId["UBIQ"] = "8";
|
|
13
|
-
EthChainId["OPTIMISM"] = "10";
|
|
14
|
-
EthChainId["SONGBIRD"] = "19";
|
|
15
|
-
EthChainId["ELASTOS"] = "20";
|
|
16
|
-
EthChainId["CRONOS"] = "25";
|
|
17
|
-
EthChainId["RSK"] = "30";
|
|
18
|
-
EthChainId["TELOS"] = "40";
|
|
19
|
-
EthChainId["XDC"] = "50";
|
|
20
|
-
EthChainId["CSC"] = "52";
|
|
21
|
-
EthChainId["ZYX"] = "55";
|
|
22
|
-
EthChainId["BINANCE"] = "56";
|
|
23
|
-
EthChainId["SYSCOIN"] = "57";
|
|
24
|
-
EthChainId["GOCHAIN"] = "60";
|
|
25
|
-
EthChainId["ETHCLASSIC"] = "61";
|
|
26
|
-
EthChainId["MORDOR"] = "63";
|
|
27
|
-
EthChainId["OKEXCHAIN"] = "66";
|
|
28
|
-
EthChainId["HOO"] = "70";
|
|
29
|
-
EthChainId["METER"] = "82";
|
|
30
|
-
EthChainId["TOMOCHAIN"] = "88";
|
|
31
|
-
EthChainId["BINANCE_TEST"] = "97";
|
|
32
|
-
EthChainId["XDAI"] = "100";
|
|
33
|
-
EthChainId["VELAS"] = "106";
|
|
34
|
-
EthChainId["THUNDERCORE"] = "108";
|
|
35
|
-
EthChainId["FUSE"] = "122";
|
|
36
|
-
EthChainId["HECO"] = "128";
|
|
37
|
-
EthChainId["POLYGON"] = "137";
|
|
38
|
-
EthChainId["XDAIARB"] = "200";
|
|
39
|
-
EthChainId["ASTOR"] = "212";
|
|
40
|
-
EthChainId["ENERGYWEB"] = "246";
|
|
41
|
-
EthChainId["FANTOM"] = "250";
|
|
42
|
-
EthChainId["HPB"] = "269";
|
|
43
|
-
EthChainId["BOBA"] = "288";
|
|
44
|
-
EthChainId["KUCOIN"] = "321";
|
|
45
|
-
EthChainId["ZKSYNC_ERA"] = "324";
|
|
46
|
-
EthChainId["SHIDEN"] = "336";
|
|
47
|
-
EthChainId["CRONOS_TESTNET"] = "338";
|
|
48
|
-
EthChainId["THETA"] = "361";
|
|
49
|
-
EthChainId["SX"] = "416";
|
|
50
|
-
EthChainId["CANDLE"] = "534";
|
|
51
|
-
EthChainId["ASTAR"] = "592";
|
|
52
|
-
EthChainId["CALLISTO"] = "820";
|
|
53
|
-
EthChainId["WANCHAIN"] = "888";
|
|
54
|
-
EthChainId["POLYGON_ZKEVM"] = "1101";
|
|
55
|
-
EthChainId["CONFLUX"] = "1030";
|
|
56
|
-
EthChainId["METIS"] = "1088";
|
|
57
|
-
EthChainId["OMCHAIN"] = "1246";
|
|
58
|
-
EthChainId["MOONBEAM"] = "1284";
|
|
59
|
-
EthChainId["MOONRIVER"] = "1285";
|
|
60
|
-
EthChainId["MOONBASE"] = "1287";
|
|
61
|
-
EthChainId["DEV"] = "2018";
|
|
62
|
-
EthChainId["RONIN"] = "2020";
|
|
63
|
-
EthChainId["KAVA"] = "2222";
|
|
64
|
-
EthChainId["EZCHAIN"] = "2612";
|
|
65
|
-
EthChainId["PHI"] = "4181";
|
|
66
|
-
EthChainId["IOTEX"] = "4689";
|
|
67
|
-
EthChainId["XLC"] = "5050";
|
|
68
|
-
EthChainId["NAHMII"] = "5551";
|
|
69
|
-
EthChainId["NMACTEST"] = "7777";
|
|
70
|
-
EthChainId["KLAYTN"] = "8217";
|
|
71
|
-
EthChainId["EVMOS"] = "9001";
|
|
72
|
-
EthChainId["BASE_GOERLI"] = "84531";
|
|
73
|
-
EthChainId["SMARTBCH"] = "10000";
|
|
74
|
-
EthChainId["CRYSTALEUM"] = "103090";
|
|
75
|
-
EthChainId["FUSION"] = "32659";
|
|
76
|
-
EthChainId["ARBITRUM"] = "42161";
|
|
77
|
-
EthChainId["CELO"] = "42220";
|
|
78
|
-
EthChainId["OASIS"] = "42262";
|
|
79
|
-
EthChainId["AVALANCHE"] = "43114";
|
|
80
|
-
EthChainId["GODWOKEN"] = "71402";
|
|
81
|
-
EthChainId["AKROMA"] = "200625";
|
|
82
|
-
EthChainId["POLIS"] = "333999";
|
|
83
|
-
EthChainId["ARBITRUM_GOERLI"] = "421613";
|
|
84
|
-
EthChainId["SEPOLIA"] = "11155111";
|
|
85
|
-
EthChainId["AURORA"] = "1313161554";
|
|
86
|
-
EthChainId["HARMONY"] = "1666600000";
|
|
87
|
-
EthChainId["PALM"] = "11297108109";
|
|
88
|
-
EthChainId["CURIO"] = "836542336838601";
|
|
89
|
-
})(EthChainId || (EthChainId = {}));
|
|
90
|
-
export var AptosChainId;
|
|
91
|
-
(function (AptosChainId) {
|
|
92
|
-
AptosChainId["APTOS_MAINNET"] = "aptos_mainnet";
|
|
93
|
-
AptosChainId["APTOS_TESTNET"] = "aptos_testnet";
|
|
94
|
-
AptosChainId["APTOS_DEVNET"] = "aptos_devnet";
|
|
95
|
-
})(AptosChainId || (AptosChainId = {}));
|
|
96
|
-
export var SuiChainId;
|
|
97
|
-
(function (SuiChainId) {
|
|
98
|
-
SuiChainId["SUI_MAINNET"] = "sui_mainnet";
|
|
99
|
-
SuiChainId["SUI_TESTNET"] = "sui_testnet";
|
|
100
|
-
SuiChainId["SUI_DEVNET"] = "sui_devnet";
|
|
101
|
-
})(SuiChainId || (SuiChainId = {}));
|
|
102
|
-
export var SolanaChainId;
|
|
103
|
-
(function (SolanaChainId) {
|
|
104
|
-
SolanaChainId["SOLANA_MAINNET"] = "sol_mainnet";
|
|
105
|
-
SolanaChainId["SOLANA_DEVNET"] = "sol_devnet";
|
|
106
|
-
SolanaChainId["SOLANA_TESTNET"] = "sol_testnet";
|
|
107
|
-
SolanaChainId["SOLANA_PYTH"] = "sol_pyth";
|
|
108
|
-
})(SolanaChainId || (SolanaChainId = {}));
|
|
109
|
-
export const ChainId = {
|
|
110
|
-
...EthChainId,
|
|
111
|
-
...AptosChainId,
|
|
112
|
-
...SuiChainId,
|
|
113
|
-
...SolanaChainId,
|
|
114
|
-
};
|
|
115
|
-
export const CHAIN_MAP = {};
|
|
116
|
-
for (const [key, value] of Object.entries(ChainId)) {
|
|
117
|
-
if (value === ChainId.POLYGON_ZKEVM) {
|
|
118
|
-
CHAIN_MAP[value] = 'Polygon zkEVM';
|
|
119
|
-
}
|
|
120
|
-
else if (value === ChainId.ZKSYNC_ERA) {
|
|
121
|
-
CHAIN_MAP[value] = 'zkSync Era';
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
const parts = key.split('_');
|
|
125
|
-
CHAIN_MAP[value] = parts
|
|
126
|
-
.map((part, index) => {
|
|
127
|
-
return part[0] + part.slice(1).toLowerCase();
|
|
128
|
-
})
|
|
129
|
-
.join(' ');
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
export function getChainName(chainId) {
|
|
133
|
-
if (typeof chainId === 'number') {
|
|
134
|
-
chainId = chainId.toString();
|
|
135
|
-
}
|
|
136
|
-
if (chainId) {
|
|
137
|
-
const name = CHAIN_MAP[chainId];
|
|
138
|
-
if (name) {
|
|
139
|
-
return name;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
return chainId || '';
|
|
143
|
-
}
|
|
144
|
-
export function getChainType(chainId) {
|
|
145
|
-
const id = String(chainId).toLowerCase();
|
|
146
|
-
if (id.startsWith('sol')) {
|
|
147
|
-
return 'solana';
|
|
148
|
-
}
|
|
149
|
-
if (id.startsWith('sui')) {
|
|
150
|
-
return 'sui';
|
|
151
|
-
}
|
|
152
|
-
if (id.startsWith('apt')) {
|
|
153
|
-
return 'aptos';
|
|
154
|
-
}
|
|
155
|
-
return 'EVM';
|
|
156
|
-
}
|
|
157
|
-
export function getChainScanUrl(chainId, hash, subtype) {
|
|
158
|
-
const chainName = getChainName(chainId);
|
|
159
|
-
if (chainName === 'Ethereum') {
|
|
160
|
-
if (subtype === 'block') {
|
|
161
|
-
return `https://etherscan.io/block/${hash}`;
|
|
162
|
-
}
|
|
163
|
-
else if (subtype === 'address') {
|
|
164
|
-
return `https://etherscan.io/address/${hash}`;
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
return `https://etherscan.io/tx/${hash}`;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
if (chainName === 'Polygon') {
|
|
171
|
-
if (subtype === 'block') {
|
|
172
|
-
return `https://polygonscan.com/block/${hash}`;
|
|
173
|
-
}
|
|
174
|
-
else if (subtype === 'address') {
|
|
175
|
-
return `https://polygonscan.com/address/${hash}`;
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
return `https://polygonscan.com/tx/${hash}`;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
if (chainName.startsWith('Aptos ')) {
|
|
182
|
-
if (subtype === 'block') {
|
|
183
|
-
return `https://explorer.aptos.io/block/${hash}`;
|
|
184
|
-
}
|
|
185
|
-
else if (subtype === 'address') {
|
|
186
|
-
return `https://explorer.aptos.io/account/${hash}`;
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
return `https://explorer.aptos.io/txn/${hash}`;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
if (chainName.startsWith('Solana ')) {
|
|
193
|
-
if (subtype === 'block') {
|
|
194
|
-
return `https://explorer.solana.com/block/${hash}`;
|
|
195
|
-
}
|
|
196
|
-
else if (subtype === 'address') {
|
|
197
|
-
return `https://explorer.solana.com/address/${hash}`;
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
return `https://explorer.solana.io/tx/${hash}`;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
if (chainName.startsWith('Sui ')) {
|
|
204
|
-
if (subtype === 'block') {
|
|
205
|
-
return `https://explorer.sui.io/block/${hash}`;
|
|
206
|
-
}
|
|
207
|
-
else if (subtype === 'address') {
|
|
208
|
-
return `https://explorer.sui.io/address/${hash}`;
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
return `https://explorer.sui.io/transaction/${hash}`;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
return undefined;
|
|
215
|
-
}
|
|
216
|
-
export function chainInitialLabel(chainType) {
|
|
217
|
-
switch (chainType) {
|
|
218
|
-
case 'aptos':
|
|
219
|
-
return 'Initial start version';
|
|
220
|
-
case 'sui':
|
|
221
|
-
return 'Initial start checkpoint';
|
|
222
|
-
default:
|
|
223
|
-
return 'Initial start block number';
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
export function chainBlockLabel(chainType) {
|
|
227
|
-
switch (chainType) {
|
|
228
|
-
case 'aptos':
|
|
229
|
-
return 'Version';
|
|
230
|
-
case 'sui':
|
|
231
|
-
return 'Checkpoint';
|
|
232
|
-
default:
|
|
233
|
-
return 'Block number';
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
//# sourceMappingURL=chain.js.map
|
package/lib/chain.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../src/chain.ts"],"names":[],"mappings":"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","sourcesContent":["// copy from https://github.com/DefiLlama/chainlist/blob/main/constants/chainIds.js\n// and https://besu.hyperledger.org/en/stable/Concepts/NetworkID-And-ChainID/\n\nexport enum EthChainId {\n KARDIA = '0',\n ETHEREUM = '1',\n EXPANSE = '2',\n ROPSTEN = '3',\n RINKEBY = '4',\n GOERLI = '5',\n KOTTI = '6',\n UBIQ = '8',\n OPTIMISM = '10',\n SONGBIRD = '19',\n ELASTOS = '20',\n CRONOS = '25',\n RSK = '30',\n TELOS = '40',\n XDC = '50',\n CSC = '52',\n ZYX = '55',\n BINANCE = '56',\n SYSCOIN = '57',\n GOCHAIN = '60',\n ETHCLASSIC = '61',\n MORDOR = '63',\n OKEXCHAIN = '66',\n HOO = '70',\n METER = '82',\n TOMOCHAIN = '88',\n BINANCE_TEST = '97',\n XDAI = '100',\n VELAS = '106',\n THUNDERCORE = '108',\n FUSE = '122',\n HECO = '128',\n POLYGON = '137',\n XDAIARB = '200',\n ASTOR = '212',\n ENERGYWEB = '246',\n FANTOM = '250',\n HPB = '269',\n BOBA = '288',\n KUCOIN = '321',\n ZKSYNC_ERA = '324',\n SHIDEN = '336',\n CRONOS_TESTNET = '338',\n THETA = '361',\n SX = '416',\n CANDLE = '534',\n ASTAR = '592',\n CALLISTO = '820',\n WANCHAIN = '888',\n POLYGON_ZKEVM = '1101',\n CONFLUX = '1030',\n METIS = '1088',\n OMCHAIN = '1246',\n MOONBEAM = '1284',\n MOONRIVER = '1285',\n MOONBASE = '1287',\n DEV = '2018',\n RONIN = '2020',\n KAVA = '2222',\n EZCHAIN = '2612',\n PHI = '4181',\n IOTEX = '4689',\n XLC = '5050',\n NAHMII = '5551',\n NMACTEST = '7777',\n KLAYTN = '8217',\n EVMOS = '9001',\n BASE_GOERLI = '84531',\n SMARTBCH = '10000',\n CRYSTALEUM = '103090',\n FUSION = '32659',\n ARBITRUM = '42161',\n CELO = '42220',\n OASIS = '42262',\n AVALANCHE = '43114',\n GODWOKEN = '71402',\n AKROMA = '200625',\n POLIS = '333999',\n ARBITRUM_GOERLI = '421613',\n SEPOLIA = '11155111',\n AURORA = '1313161554',\n HARMONY = '1666600000',\n PALM = '11297108109',\n CURIO = '836542336838601',\n}\n\nexport enum AptosChainId {\n APTOS_MAINNET = 'aptos_mainnet',\n APTOS_TESTNET = 'aptos_testnet',\n APTOS_DEVNET = 'aptos_devnet',\n}\n\nexport enum SuiChainId {\n SUI_MAINNET = 'sui_mainnet',\n SUI_TESTNET = 'sui_testnet',\n SUI_DEVNET = 'sui_devnet',\n}\n\nexport enum SolanaChainId {\n SOLANA_MAINNET = 'sol_mainnet',\n SOLANA_DEVNET = 'sol_devnet',\n SOLANA_TESTNET = 'sol_testnet',\n SOLANA_PYTH = 'sol_pyth',\n}\n\nexport type ChainId = EthChainId | AptosChainId | SuiChainId | SolanaChainId\nexport const ChainId = {\n ...EthChainId,\n ...AptosChainId,\n ...SuiChainId,\n ...SolanaChainId,\n}\n\nexport const CHAIN_MAP: Record<string, string> = {}\n\nfor (const [key, value] of Object.entries(ChainId)) {\n if (value === ChainId.POLYGON_ZKEVM) {\n CHAIN_MAP[value] = 'Polygon zkEVM'\n } else if (value === ChainId.ZKSYNC_ERA) {\n CHAIN_MAP[value] = 'zkSync Era'\n } else {\n const parts = key.split('_')\n CHAIN_MAP[value] = parts\n .map((part, index) => {\n return part[0] + part.slice(1).toLowerCase()\n })\n .join(' ')\n }\n}\n\nexport function getChainName(chainId: string | number | null | undefined): string {\n if (typeof chainId === 'number') {\n chainId = chainId.toString()\n }\n if (chainId) {\n const name = CHAIN_MAP[chainId]\n if (name) {\n return name\n }\n }\n return chainId || ''\n}\n\nexport function getChainType(chainId?: string | number): string {\n const id = String(chainId).toLowerCase()\n if (id.startsWith('sol')) {\n return 'solana'\n }\n if (id.startsWith('sui')) {\n return 'sui'\n }\n if (id.startsWith('apt')) {\n return 'aptos'\n }\n return 'EVM'\n}\n\nexport function getChainScanUrl(\n chainId?: string | number,\n hash?: string,\n subtype?: 'block' | 'address' | 'transaction'\n): string | undefined {\n const chainName = getChainName(chainId)\n if (chainName === 'Ethereum') {\n if (subtype === 'block') {\n return `https://etherscan.io/block/${hash}`\n } else if (subtype === 'address') {\n return `https://etherscan.io/address/${hash}`\n } else {\n return `https://etherscan.io/tx/${hash}`\n }\n }\n if (chainName === 'Polygon') {\n if (subtype === 'block') {\n return `https://polygonscan.com/block/${hash}`\n } else if (subtype === 'address') {\n return `https://polygonscan.com/address/${hash}`\n } else {\n return `https://polygonscan.com/tx/${hash}`\n }\n }\n if (chainName.startsWith('Aptos ')) {\n if (subtype === 'block') {\n return `https://explorer.aptos.io/block/${hash}`\n } else if (subtype === 'address') {\n return `https://explorer.aptos.io/account/${hash}`\n } else {\n return `https://explorer.aptos.io/txn/${hash}`\n }\n }\n if (chainName.startsWith('Solana ')) {\n if (subtype === 'block') {\n return `https://explorer.solana.com/block/${hash}`\n } else if (subtype === 'address') {\n return `https://explorer.solana.com/address/${hash}`\n } else {\n return `https://explorer.solana.io/tx/${hash}`\n }\n }\n if (chainName.startsWith('Sui ')) {\n if (subtype === 'block') {\n return `https://explorer.sui.io/block/${hash}`\n } else if (subtype === 'address') {\n return `https://explorer.sui.io/address/${hash}`\n } else {\n return `https://explorer.sui.io/transaction/${hash}`\n }\n }\n return undefined\n}\n\nexport function chainInitialLabel(chainType: string) {\n switch (chainType) {\n case 'aptos':\n return 'Initial start version'\n case 'sui':\n return 'Initial start checkpoint'\n default:\n return 'Initial start block number'\n }\n}\n\nexport function chainBlockLabel(chainType: string) {\n switch (chainType) {\n case 'aptos':\n return 'Version'\n case 'sui':\n return 'Checkpoint'\n default:\n return 'Block number'\n }\n}\n"]}
|
package/src/chain.ts
DELETED
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
// copy from https://github.com/DefiLlama/chainlist/blob/main/constants/chainIds.js
|
|
2
|
-
// and https://besu.hyperledger.org/en/stable/Concepts/NetworkID-And-ChainID/
|
|
3
|
-
|
|
4
|
-
export enum EthChainId {
|
|
5
|
-
KARDIA = '0',
|
|
6
|
-
ETHEREUM = '1',
|
|
7
|
-
EXPANSE = '2',
|
|
8
|
-
ROPSTEN = '3',
|
|
9
|
-
RINKEBY = '4',
|
|
10
|
-
GOERLI = '5',
|
|
11
|
-
KOTTI = '6',
|
|
12
|
-
UBIQ = '8',
|
|
13
|
-
OPTIMISM = '10',
|
|
14
|
-
SONGBIRD = '19',
|
|
15
|
-
ELASTOS = '20',
|
|
16
|
-
CRONOS = '25',
|
|
17
|
-
RSK = '30',
|
|
18
|
-
TELOS = '40',
|
|
19
|
-
XDC = '50',
|
|
20
|
-
CSC = '52',
|
|
21
|
-
ZYX = '55',
|
|
22
|
-
BINANCE = '56',
|
|
23
|
-
SYSCOIN = '57',
|
|
24
|
-
GOCHAIN = '60',
|
|
25
|
-
ETHCLASSIC = '61',
|
|
26
|
-
MORDOR = '63',
|
|
27
|
-
OKEXCHAIN = '66',
|
|
28
|
-
HOO = '70',
|
|
29
|
-
METER = '82',
|
|
30
|
-
TOMOCHAIN = '88',
|
|
31
|
-
BINANCE_TEST = '97',
|
|
32
|
-
XDAI = '100',
|
|
33
|
-
VELAS = '106',
|
|
34
|
-
THUNDERCORE = '108',
|
|
35
|
-
FUSE = '122',
|
|
36
|
-
HECO = '128',
|
|
37
|
-
POLYGON = '137',
|
|
38
|
-
XDAIARB = '200',
|
|
39
|
-
ASTOR = '212',
|
|
40
|
-
ENERGYWEB = '246',
|
|
41
|
-
FANTOM = '250',
|
|
42
|
-
HPB = '269',
|
|
43
|
-
BOBA = '288',
|
|
44
|
-
KUCOIN = '321',
|
|
45
|
-
ZKSYNC_ERA = '324',
|
|
46
|
-
SHIDEN = '336',
|
|
47
|
-
CRONOS_TESTNET = '338',
|
|
48
|
-
THETA = '361',
|
|
49
|
-
SX = '416',
|
|
50
|
-
CANDLE = '534',
|
|
51
|
-
ASTAR = '592',
|
|
52
|
-
CALLISTO = '820',
|
|
53
|
-
WANCHAIN = '888',
|
|
54
|
-
POLYGON_ZKEVM = '1101',
|
|
55
|
-
CONFLUX = '1030',
|
|
56
|
-
METIS = '1088',
|
|
57
|
-
OMCHAIN = '1246',
|
|
58
|
-
MOONBEAM = '1284',
|
|
59
|
-
MOONRIVER = '1285',
|
|
60
|
-
MOONBASE = '1287',
|
|
61
|
-
DEV = '2018',
|
|
62
|
-
RONIN = '2020',
|
|
63
|
-
KAVA = '2222',
|
|
64
|
-
EZCHAIN = '2612',
|
|
65
|
-
PHI = '4181',
|
|
66
|
-
IOTEX = '4689',
|
|
67
|
-
XLC = '5050',
|
|
68
|
-
NAHMII = '5551',
|
|
69
|
-
NMACTEST = '7777',
|
|
70
|
-
KLAYTN = '8217',
|
|
71
|
-
EVMOS = '9001',
|
|
72
|
-
BASE_GOERLI = '84531',
|
|
73
|
-
SMARTBCH = '10000',
|
|
74
|
-
CRYSTALEUM = '103090',
|
|
75
|
-
FUSION = '32659',
|
|
76
|
-
ARBITRUM = '42161',
|
|
77
|
-
CELO = '42220',
|
|
78
|
-
OASIS = '42262',
|
|
79
|
-
AVALANCHE = '43114',
|
|
80
|
-
GODWOKEN = '71402',
|
|
81
|
-
AKROMA = '200625',
|
|
82
|
-
POLIS = '333999',
|
|
83
|
-
ARBITRUM_GOERLI = '421613',
|
|
84
|
-
SEPOLIA = '11155111',
|
|
85
|
-
AURORA = '1313161554',
|
|
86
|
-
HARMONY = '1666600000',
|
|
87
|
-
PALM = '11297108109',
|
|
88
|
-
CURIO = '836542336838601',
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export enum AptosChainId {
|
|
92
|
-
APTOS_MAINNET = 'aptos_mainnet',
|
|
93
|
-
APTOS_TESTNET = 'aptos_testnet',
|
|
94
|
-
APTOS_DEVNET = 'aptos_devnet',
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export enum SuiChainId {
|
|
98
|
-
SUI_MAINNET = 'sui_mainnet',
|
|
99
|
-
SUI_TESTNET = 'sui_testnet',
|
|
100
|
-
SUI_DEVNET = 'sui_devnet',
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export enum SolanaChainId {
|
|
104
|
-
SOLANA_MAINNET = 'sol_mainnet',
|
|
105
|
-
SOLANA_DEVNET = 'sol_devnet',
|
|
106
|
-
SOLANA_TESTNET = 'sol_testnet',
|
|
107
|
-
SOLANA_PYTH = 'sol_pyth',
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
export type ChainId = EthChainId | AptosChainId | SuiChainId | SolanaChainId
|
|
111
|
-
export const ChainId = {
|
|
112
|
-
...EthChainId,
|
|
113
|
-
...AptosChainId,
|
|
114
|
-
...SuiChainId,
|
|
115
|
-
...SolanaChainId,
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export const CHAIN_MAP: Record<string, string> = {}
|
|
119
|
-
|
|
120
|
-
for (const [key, value] of Object.entries(ChainId)) {
|
|
121
|
-
if (value === ChainId.POLYGON_ZKEVM) {
|
|
122
|
-
CHAIN_MAP[value] = 'Polygon zkEVM'
|
|
123
|
-
} else if (value === ChainId.ZKSYNC_ERA) {
|
|
124
|
-
CHAIN_MAP[value] = 'zkSync Era'
|
|
125
|
-
} else {
|
|
126
|
-
const parts = key.split('_')
|
|
127
|
-
CHAIN_MAP[value] = parts
|
|
128
|
-
.map((part, index) => {
|
|
129
|
-
return part[0] + part.slice(1).toLowerCase()
|
|
130
|
-
})
|
|
131
|
-
.join(' ')
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
export function getChainName(chainId: string | number | null | undefined): string {
|
|
136
|
-
if (typeof chainId === 'number') {
|
|
137
|
-
chainId = chainId.toString()
|
|
138
|
-
}
|
|
139
|
-
if (chainId) {
|
|
140
|
-
const name = CHAIN_MAP[chainId]
|
|
141
|
-
if (name) {
|
|
142
|
-
return name
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
return chainId || ''
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
export function getChainType(chainId?: string | number): string {
|
|
149
|
-
const id = String(chainId).toLowerCase()
|
|
150
|
-
if (id.startsWith('sol')) {
|
|
151
|
-
return 'solana'
|
|
152
|
-
}
|
|
153
|
-
if (id.startsWith('sui')) {
|
|
154
|
-
return 'sui'
|
|
155
|
-
}
|
|
156
|
-
if (id.startsWith('apt')) {
|
|
157
|
-
return 'aptos'
|
|
158
|
-
}
|
|
159
|
-
return 'EVM'
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
export function getChainScanUrl(
|
|
163
|
-
chainId?: string | number,
|
|
164
|
-
hash?: string,
|
|
165
|
-
subtype?: 'block' | 'address' | 'transaction'
|
|
166
|
-
): string | undefined {
|
|
167
|
-
const chainName = getChainName(chainId)
|
|
168
|
-
if (chainName === 'Ethereum') {
|
|
169
|
-
if (subtype === 'block') {
|
|
170
|
-
return `https://etherscan.io/block/${hash}`
|
|
171
|
-
} else if (subtype === 'address') {
|
|
172
|
-
return `https://etherscan.io/address/${hash}`
|
|
173
|
-
} else {
|
|
174
|
-
return `https://etherscan.io/tx/${hash}`
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
if (chainName === 'Polygon') {
|
|
178
|
-
if (subtype === 'block') {
|
|
179
|
-
return `https://polygonscan.com/block/${hash}`
|
|
180
|
-
} else if (subtype === 'address') {
|
|
181
|
-
return `https://polygonscan.com/address/${hash}`
|
|
182
|
-
} else {
|
|
183
|
-
return `https://polygonscan.com/tx/${hash}`
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
if (chainName.startsWith('Aptos ')) {
|
|
187
|
-
if (subtype === 'block') {
|
|
188
|
-
return `https://explorer.aptos.io/block/${hash}`
|
|
189
|
-
} else if (subtype === 'address') {
|
|
190
|
-
return `https://explorer.aptos.io/account/${hash}`
|
|
191
|
-
} else {
|
|
192
|
-
return `https://explorer.aptos.io/txn/${hash}`
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
if (chainName.startsWith('Solana ')) {
|
|
196
|
-
if (subtype === 'block') {
|
|
197
|
-
return `https://explorer.solana.com/block/${hash}`
|
|
198
|
-
} else if (subtype === 'address') {
|
|
199
|
-
return `https://explorer.solana.com/address/${hash}`
|
|
200
|
-
} else {
|
|
201
|
-
return `https://explorer.solana.io/tx/${hash}`
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
if (chainName.startsWith('Sui ')) {
|
|
205
|
-
if (subtype === 'block') {
|
|
206
|
-
return `https://explorer.sui.io/block/${hash}`
|
|
207
|
-
} else if (subtype === 'address') {
|
|
208
|
-
return `https://explorer.sui.io/address/${hash}`
|
|
209
|
-
} else {
|
|
210
|
-
return `https://explorer.sui.io/transaction/${hash}`
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
return undefined
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
export function chainInitialLabel(chainType: string) {
|
|
217
|
-
switch (chainType) {
|
|
218
|
-
case 'aptos':
|
|
219
|
-
return 'Initial start version'
|
|
220
|
-
case 'sui':
|
|
221
|
-
return 'Initial start checkpoint'
|
|
222
|
-
default:
|
|
223
|
-
return 'Initial start block number'
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
export function chainBlockLabel(chainType: string) {
|
|
228
|
-
switch (chainType) {
|
|
229
|
-
case 'aptos':
|
|
230
|
-
return 'Version'
|
|
231
|
-
case 'sui':
|
|
232
|
-
return 'Checkpoint'
|
|
233
|
-
default:
|
|
234
|
-
return 'Block number'
|
|
235
|
-
}
|
|
236
|
-
}
|