@sentio/cli 2.9.1 → 2.9.2-rc.1

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 CHANGED
@@ -1,4 +1,4 @@
1
- import { ChainId } from './chain.js';
1
+ import { ChainId } from '@sentio/chain';
2
2
  export declare const ETH_API_URL_MAP: Record<string, string>;
3
3
  export declare function getABI(chain: ChainId, address: string, name: string | undefined): Promise<{
4
4
  name?: string;
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 './chain.js';
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":"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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 './chain.js'\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"]}
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"]}
@@ -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,YAAY,CAAA;AACnD,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 './chain.js'\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"]}
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"]}
@@ -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 '../chain.js';
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":"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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 '../chain.js'\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"]}
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
@@ -1,4 +1,4 @@
1
- import { ChainId } from './chain.js';
1
+ import { ChainId } from '@sentio/chain';
2
2
  export interface YamlContractConfig {
3
3
  address: string;
4
4
  chain: ChainId;
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 './chain.js'\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"]}
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.1",
3
+ "version": "2.9.2-rc.1",
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 './chain.js'
8
+ import { AptosChainId, ChainId, EthChainId, SuiChainId } from '@sentio/chain'
9
9
 
10
10
  export const ETH_API_URL_MAP: Record<string, string> = {}
11
11
 
@@ -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 '../chain.js'
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
@@ -1,4 +1,4 @@
1
- import { ChainId } from './chain.js'
1
+ import { ChainId } from '@sentio/chain'
2
2
 
3
3
  const HostMap: { [host: string]: string } = {
4
4
  local: 'http://localhost:10000',
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
- }