@sentio/sdk-bundle 2.44.1-rc.7 → 2.44.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.
Files changed (67) hide show
  1. package/lib/aptos/builtin/0x1.js +1 -1
  2. package/lib/aptos/builtin/0x3.js +1 -1
  3. package/lib/aptos/builtin/index.js +1 -1
  4. package/lib/aptos/codegen/index.js +1 -1
  5. package/lib/aptos/ext/index.js +1 -1
  6. package/lib/aptos/index.js +1 -1
  7. package/lib/{chunk-LN5QJQIM.js → chunk-25F4QQNX.js} +2 -2
  8. package/lib/{chunk-MJCKCRP2.js → chunk-2H6B4JHO.js} +2 -2
  9. package/lib/{chunk-25OJIJMX.js → chunk-2OVRJFN7.js} +2 -2
  10. package/lib/{chunk-HCZJEB6X.js → chunk-33VROINF.js} +2 -2
  11. package/lib/{chunk-XPMKMNUM.js → chunk-3BTJLKUI.js} +2 -2
  12. package/lib/{chunk-ITKCRJVJ.js → chunk-3ITGBVUZ.js} +2 -2
  13. package/lib/{chunk-JOOYR6WO.js → chunk-5TNCLYDH.js} +2 -2
  14. package/lib/{chunk-LKCFAPQL.js → chunk-AKKBTGZE.js} +2 -2
  15. package/lib/{chunk-BEW4I7GR.js → chunk-AQJOPCDS.js} +2 -2
  16. package/lib/{chunk-KDTPDV4Z.js → chunk-BON547TX.js} +2 -2
  17. package/lib/{chunk-XTYX5UX2.js → chunk-CLDWMGEJ.js} +2 -2
  18. package/lib/{chunk-B7CQOW7W.js → chunk-COSU3FF4.js} +2 -2
  19. package/lib/{chunk-IFTVSGN4.js → chunk-ED5RA35S.js} +2 -2
  20. package/lib/chunk-L4PAFISV.js +3 -0
  21. package/lib/chunk-L4PAFISV.js.map +1 -0
  22. package/lib/{chunk-QXO47OU4.js → chunk-P2BQUECZ.js} +2 -2
  23. package/lib/{chunk-CNY6XZBB.js → chunk-PJ5BOSWK.js} +2 -2
  24. package/lib/{chunk-PSL4IHMI.js → chunk-VYLP7EM2.js} +2 -2
  25. package/lib/{chunk-PYAIESZU.js → chunk-YH5ZZGES.js} +2 -2
  26. package/lib/eth/builtin/eacaggregatorproxy.js +1 -1
  27. package/lib/eth/builtin/erc1155.js +1 -1
  28. package/lib/eth/builtin/erc20.js +1 -1
  29. package/lib/eth/builtin/erc721.js +1 -1
  30. package/lib/eth/builtin/index.js +1 -1
  31. package/lib/eth/builtin/weth9.js +1 -1
  32. package/lib/eth/codegen/index.js +1 -1
  33. package/lib/eth/index.js +1 -1
  34. package/lib/fuel/index.js +1 -1
  35. package/lib/solana/builtin/index.js +1 -1
  36. package/lib/solana/index.js +1 -1
  37. package/lib/stark/codegen/index.js +1 -1
  38. package/lib/stark/index.js +1 -1
  39. package/lib/sui/builtin/0x1.js +1 -1
  40. package/lib/sui/builtin/0x2.js +1 -1
  41. package/lib/sui/builtin/0x3.js +1 -1
  42. package/lib/sui/builtin/index.js +1 -1
  43. package/lib/sui/codegen/index.js +1 -1
  44. package/lib/sui/ext/index.js +1 -1
  45. package/lib/sui/index.js +1 -1
  46. package/lib/testing/index.js +1 -1
  47. package/lib/utils/index.js +1 -1
  48. package/package.json +2 -2
  49. package/lib/chunk-S2KNAER3.js +0 -3
  50. package/lib/chunk-S2KNAER3.js.map +0 -1
  51. /package/lib/{chunk-LN5QJQIM.js.map → chunk-25F4QQNX.js.map} +0 -0
  52. /package/lib/{chunk-MJCKCRP2.js.map → chunk-2H6B4JHO.js.map} +0 -0
  53. /package/lib/{chunk-25OJIJMX.js.map → chunk-2OVRJFN7.js.map} +0 -0
  54. /package/lib/{chunk-HCZJEB6X.js.map → chunk-33VROINF.js.map} +0 -0
  55. /package/lib/{chunk-XPMKMNUM.js.map → chunk-3BTJLKUI.js.map} +0 -0
  56. /package/lib/{chunk-ITKCRJVJ.js.map → chunk-3ITGBVUZ.js.map} +0 -0
  57. /package/lib/{chunk-JOOYR6WO.js.map → chunk-5TNCLYDH.js.map} +0 -0
  58. /package/lib/{chunk-LKCFAPQL.js.map → chunk-AKKBTGZE.js.map} +0 -0
  59. /package/lib/{chunk-BEW4I7GR.js.map → chunk-AQJOPCDS.js.map} +0 -0
  60. /package/lib/{chunk-KDTPDV4Z.js.map → chunk-BON547TX.js.map} +0 -0
  61. /package/lib/{chunk-XTYX5UX2.js.map → chunk-CLDWMGEJ.js.map} +0 -0
  62. /package/lib/{chunk-B7CQOW7W.js.map → chunk-COSU3FF4.js.map} +0 -0
  63. /package/lib/{chunk-IFTVSGN4.js.map → chunk-ED5RA35S.js.map} +0 -0
  64. /package/lib/{chunk-QXO47OU4.js.map → chunk-P2BQUECZ.js.map} +0 -0
  65. /package/lib/{chunk-CNY6XZBB.js.map → chunk-PJ5BOSWK.js.map} +0 -0
  66. /package/lib/{chunk-PSL4IHMI.js.map → chunk-VYLP7EM2.js.map} +0 -0
  67. /package/lib/{chunk-PYAIESZU.js.map → chunk-YH5ZZGES.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/@sentio+chain@2.1.10/node_modules/@sentio/chain/src/chain-id.ts","../../../node_modules/.pnpm/@sentio+chain@2.1.10/node_modules/@sentio/chain/src/chain-info.ts","../../../node_modules/.pnpm/@sentio+chain@2.1.10/node_modules/@sentio/chain/src/chain-name.ts","../../../node_modules/.pnpm/@sentio+chain@2.1.10/node_modules/@sentio/chain/src/index.ts"],"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 ChainType {\n SOLANA = 'solana',\n SUI = 'sui',\n APTOS = 'aptos',\n ETH = 'evm',\n BTC = 'btc'\n}\n\nexport enum EthChainId { // Any modify to this must also be modify in EthChainName\n ETHEREUM = '1',\n OPTIMISM = '10',\n CRONOS = '25',\n BINANCE = '56',\n POLYGON = '137',\n MANTA_PACIFIC = '169',\n XLAYER_TESTNET = '195',\n XLAYER_MAINNET = '196',\n B2_MAINNET = '223',\n FANTOM = '250',\n FRAXTAL = '252',\n KUCOIN = '321',\n CRONOS_ZKEVM = '388',\n ZKSYNC_ERA = '324',\n CRONOS_TESTNET = '338',\n ASTAR = '592',\n LYRA = '957',\n POLYGON_ZKEVM = '1101',\n CONFLUX = '1030',\n METIS = '1088',\n MOONBEAM = '1284',\n UNCHAIN_SEPOLIA = '1301',\n SONEIUM_TESTNET = '1946',\n BEVM = '11501',\n MERLIN_MAINNET = '4200',\n MANTLE = '5000',\n BASE = '8453',\n LUMIO_TESTNET = '9990',\n HOLESKY = '17000',\n ASTAR_ZKEVM = '3776',\n MOVEMENT_EVM_TESTNET = '30732',\n MODE = '34443',\n ARBITRUM = '42161',\n AVALANCHE = '43114',\n ZIRCUIT_TESTNET = '48899',\n ZIRCUIT_MAINNET = '48900',\n BOB = '60808',\n LINEA = '59144',\n SONIC_TESTNET = '64165',\n BLAST = '81457',\n CHILIZ = '88888',\n TAIKO = '167000',\n TAIKO_TESTNET = '167008',\n BITLAYER = '200901',\n SCROLL = '534352',\n ZKLINK_NOVA = '810180',\n SEPOLIA = '11155111',\n AURORA = '1313161554',\n BLAST_SEPOLIA = '168587773'\n}\n\nexport enum AptosChainId {\n APTOS_MAINNET = 'aptos_mainnet',\n APTOS_TESTNET = 'aptos_testnet',\n // APTOS_DEVNET = 'aptos_devnet',\n APTOS_MOVEMENT_TESTNET = 'aptos_m2_testnet',\n APTOS_MOVEMENT_MAINNET = 'aptos_m2_mainnet'\n}\n\nexport enum SuiChainId {\n SUI_MAINNET = 'sui_mainnet',\n SUI_TESTNET = 'sui_testnet',\n // SUI_DEVNET = 'sui_devnet',\n SUI_MOVEMENT_TESTNET = 'sui_m2_testnet',\n SUI_MOVEMENT_MAINNET = 'sui_m2_mainnet'\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}\nexport enum FuelChainId {\n FUEL_MAINNET = 'fuel_mainnet',\n FUEL_TESTNET = 'fuel_testnet'\n}\n\nexport enum CosmosChainId {\n INJECTIVE_MAINNET = 'injective_mainnet',\n INJECTIVE_TESTNET = 'injective_testnet'\n}\n\nexport enum StarknetChainId {\n STARKNET_MAINNET = 'starknet_mainnet',\n STARKNET_SEPOLIA = 'starknet_sepolia'\n}\n\nexport enum BTCChainId {\n BTC_MAINNET = 'btc_mainnet',\n BTC_TESTNET = 'btc_testnet'\n}\n\nexport type ChainId =\n | EthChainId\n | AptosChainId\n | SuiChainId\n | SolanaChainId\n | FuelChainId\n | CosmosChainId\n | StarknetChainId\n | BTCChainId\nexport const ChainId = {\n ...EthChainId,\n ...AptosChainId,\n ...SuiChainId,\n ...SolanaChainId,\n ...FuelChainId,\n ...CosmosChainId,\n ...StarknetChainId,\n ...BTCChainId\n}\n\nexport function getChainType(chainId?: string | number): ChainType {\n const id = String(chainId).toLowerCase()\n if (id.startsWith('sol')) {\n return ChainType.SOLANA\n }\n if (id.startsWith('sui')) {\n return ChainType.SUI\n }\n if (id.startsWith('apt')) {\n return ChainType.APTOS\n }\n if (id.startsWith('btc')) {\n return ChainType.BTC\n }\n return ChainType.ETH\n}\n","import { AptosChainId, BTCChainId, ChainId, EthChainId, SolanaChainId, SuiChainId } from './chain-id'\n\nexport enum ExplorerApiType {\n ETHERSCAN = 'etherscan',\n BLOCKSCOUT = 'blockscout',\n L2SCAN = 'l2scan',\n OKLINK = 'oklink'\n}\n\nexport type ChainInfo = {\n name: string\n chainId: ChainId\n explorerUrl: string\n}\n\nexport type EthChainInfo = ChainInfo & {\n mainnetChainId?: EthChainId\n chainId: EthChainId\n tokenAddress: string // native token address\n tokenSymbol: string // native token symbol\n tokenDecimals: number // native token decimals\n priceTokenAddress: string // token address for price\n wrappedTokenAddress: string // wrapped token address with contract, normally Wxxx (Wrapped xxx)\n\n explorerApiType?: string\n explorerApi?: string\n blockscoutUrl?: string\n}\n\n/**\n * EVM chains\n */\nexport const EthChainInfo: Record<EthChainId | string, EthChainInfo> = {\n [EthChainId.ETHEREUM]: {\n name: 'Ethereum',\n chainId: EthChainId.ETHEREUM,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerUrl: 'https://etherscan.io',\n explorerApi: 'https://api.etherscan.io',\n blockscoutUrl: 'https://eth.blockscout.com'\n },\n [EthChainId.SEPOLIA]: {\n name: 'Sepolia',\n chainId: EthChainId.SEPOLIA,\n mainnetChainId: EthChainId.ETHEREUM,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x1ef5f52bdbe11af2377c58ecc914a8c72ea807cf',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerUrl: 'https://sepolia.etherscan.io',\n explorerApi: 'https://api-sepolia.etherscan.io',\n blockscoutUrl: 'https://eth-sepolia.blockscout.com'\n },\n [EthChainId.HOLESKY]: {\n name: 'Holesky',\n chainId: EthChainId.HOLESKY,\n mainnetChainId: EthChainId.ETHEREUM,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x94373a4919B3240D86eA41593D5eBa789FEF3848',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerUrl: 'https://holesky.etherscan.io',\n explorerApi: 'https://api-holesky.etherscan.io',\n blockscoutUrl: 'https://eth-holesky.blockscout.com'\n },\n [EthChainId.BINANCE]: {\n name: 'Binance',\n chainId: EthChainId.BINANCE,\n priceTokenAddress: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',\n tokenSymbol: 'BNB',\n tokenDecimals: 18,\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerUrl: 'https://bscscan.com',\n explorerApi: 'https://api.bscscan.com'\n },\n [EthChainId.POLYGON]: {\n name: 'Polygon',\n chainId: EthChainId.POLYGON,\n priceTokenAddress: '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270', // WMATIC\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270', // WMATIC\n tokenSymbol: 'MATIC',\n tokenDecimals: 18,\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerUrl: 'https://polygonscan.com',\n explorerApi: 'https://api.polygonscan.com'\n // blockscoutBlockPrefix: 'https://polygon.blockscout.com/block/',\n },\n [EthChainId.ARBITRUM]: {\n name: 'Arbitrum',\n chainId: EthChainId.ARBITRUM,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerUrl: 'https://arbiscan.io',\n explorerApi: 'https://api.arbiscan.io'\n },\n [EthChainId.AVALANCHE]: {\n name: 'Avalanche',\n chainId: EthChainId.AVALANCHE,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerUrl: 'https://snowtrace.io',\n explorerApi: 'https://api.routescan.io/v2/network/mainnet/evm/43114/etherscan'\n },\n [EthChainId.POLYGON_ZKEVM]: {\n name: 'Polygon zkEVM',\n chainId: EthChainId.POLYGON_ZKEVM,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x4F9A0e7FD2Bf6067db6994CF12E4495Df938E6e9',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerUrl: 'https://zkevm.polygonscan.com',\n explorerApi: 'https://api-zkevm.polygonscan.com'\n },\n [EthChainId.MOONBEAM]: {\n name: 'Moonbeam',\n chainId: EthChainId.MOONBEAM,\n priceTokenAddress: '0xacc15dc74880c9944775448304b263d191c6077f', // WGLMR\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xacc15dc74880c9944775448304b263d191c6077f',\n tokenSymbol: 'GLMR',\n tokenDecimals: 18,\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerUrl: 'https://moonscan.io',\n explorerApi: 'https://api-moonbeam.moonscan.io'\n },\n [EthChainId.ASTAR]: {\n name: 'Astar',\n chainId: EthChainId.ASTAR,\n priceTokenAddress: '0xaeaaf0e2c81af264101b9129c00f4440ccf0f720', // WASTR\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xaeaaf0e2c81af264101b9129c00f4440ccf0f720',\n tokenSymbol: 'ASTR',\n tokenDecimals: 18,\n explorerApiType: ExplorerApiType.BLOCKSCOUT,\n explorerUrl: 'https://astar.blockscout.com',\n explorerApi: 'https://astar.blockscout.com'\n },\n [EthChainId.ASTAR_ZKEVM]: {\n name: 'Astar zkEVM',\n chainId: EthChainId.ASTAR_ZKEVM,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xE9CC37904875B459Fa5D0FE37680d36F1ED55e38',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://astar-zkevm.explorer.startale.com',\n explorerApiType: ExplorerApiType.BLOCKSCOUT,\n explorerApi: 'https://astar-zkevm.explorer.startale.com'\n },\n [EthChainId.LINEA]: {\n name: 'Linea',\n chainId: EthChainId.LINEA,\n priceTokenAddress: '0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f', // WETH\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://lineascan.build',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.lineascan.build'\n },\n [EthChainId.SCROLL]: {\n name: 'Scroll',\n chainId: EthChainId.SCROLL,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x5300000000000000000000000000000000000004', // TODO questionable\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://scrollscan.com',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.scrollscan.com'\n },\n [EthChainId.TAIKO]: {\n name: 'Taiko Mainnet',\n chainId: EthChainId.TAIKO,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xA51894664A773981C6C112C43ce576f315d5b1B6',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://taikoscan.io',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.taikoscan.io'\n },\n [EthChainId.TAIKO_TESTNET]: {\n name: 'Taiko Testnet',\n chainId: EthChainId.TAIKO_TESTNET,\n mainnetChainId: EthChainId.TAIKO,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xae2C46ddb314B9Ba743C6dEE4878F151881333D9',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://hekla.taikoscan.io',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api-hekla.taikoscan.io'\n },\n [EthChainId.XLAYER_TESTNET]: {\n name: 'X Layer Testnet',\n chainId: EthChainId.XLAYER_TESTNET,\n mainnetChainId: EthChainId.XLAYER_MAINNET,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xa749ad81913cdc19881ebeb64631df72be708335',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://www.oklink.com/xlayer-test',\n explorerApiType: ExplorerApiType.OKLINK,\n explorerApi: 'https://www.oklink.com/api/v5/explorer'\n },\n [EthChainId.XLAYER_MAINNET]: {\n name: 'X Layer Mainnet',\n chainId: EthChainId.XLAYER_MAINNET,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x5a77f1443d16ee5761d310e38b62f77f726bc71c',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://www.oklink.com/xlayer',\n explorerApiType: ExplorerApiType.OKLINK,\n explorerApi: 'https://www.oklink.com/api/v5/explorer'\n },\n [EthChainId.BLAST]: {\n name: 'Blast Mainnet',\n chainId: EthChainId.BLAST,\n priceTokenAddress: '0x4300000000000000000000000000000000000004',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x4300000000000000000000000000000000000004',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://blastscan.io',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.blastscan.io'\n },\n [EthChainId.BLAST_SEPOLIA]: {\n name: 'Blast Mainnet',\n chainId: EthChainId.BLAST_SEPOLIA,\n mainnetChainId: EthChainId.BLAST,\n priceTokenAddress: '0x4200000000000000000000000000000000000023',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x4200000000000000000000000000000000000023',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://sepolia.blastscan.io',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api-sepolia.blastscan.io'\n },\n [EthChainId.BASE]: {\n name: 'Base',\n chainId: EthChainId.BASE,\n priceTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://basescan.org',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.basescan.org'\n },\n [EthChainId.ZKSYNC_ERA]: {\n name: 'zkSync Era',\n chainId: EthChainId.ZKSYNC_ERA,\n priceTokenAddress: '0x000000000000000000000000000000000000800A',\n tokenAddress: '0x000000000000000000000000000000000000800A',\n wrappedTokenAddress: '0x000000000000000000000000000000000000800A',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.zksync.io',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://block-explorer-api.mainnet.zksync.io'\n },\n [EthChainId.ZIRCUIT_TESTNET]: {\n name: 'Zircuit Testnet',\n chainId: EthChainId.ZIRCUIT_TESTNET,\n mainnetChainId: EthChainId.ZIRCUIT_MAINNET,\n priceTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.testnet.zircuit.com'\n },\n [EthChainId.ZIRCUIT_MAINNET]: {\n name: 'Zircuit Mainnet',\n chainId: EthChainId.ZIRCUIT_MAINNET,\n priceTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.zircuit.com'\n },\n [EthChainId.FANTOM]: {\n name: 'Fantom Opera',\n chainId: EthChainId.FANTOM,\n priceTokenAddress: '0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83', // WFTM\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83',\n tokenSymbol: 'WFTM',\n tokenDecimals: 18,\n explorerUrl: 'https://ftmscan.com',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.ftmscan.com'\n },\n [EthChainId.OPTIMISM]: {\n name: 'Optimism Mainnet',\n chainId: EthChainId.OPTIMISM,\n priceTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://optimistic.etherscan.io',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api-optimistic.etherscan.io'\n },\n [EthChainId.CRONOS]: {\n name: 'Cronos Mainnet',\n chainId: EthChainId.CRONOS,\n priceTokenAddress: '0x5c7f8a570d578ed84e63fdfa7b1ee72deae1ae23', // WCRO\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x5c7f8a570d578ed84e63fdfa7b1ee72deae1ae23',\n tokenSymbol: 'CRO',\n tokenDecimals: 18,\n explorerUrl: 'https://cronoscan.com',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.cronoscan.com'\n },\n [EthChainId.CRONOS_TESTNET]: {\n name: 'Cronos Testnet',\n chainId: EthChainId.CRONOS_TESTNET,\n mainnetChainId: EthChainId.CRONOS,\n priceTokenAddress: '0x6a3173618859c7cd40faf6921b5e9eb6a76f1fd4', // WCRO\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x6a3173618859c7cd40faf6921b5e9eb6a76f1fd4',\n tokenSymbol: 'CRO',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.cronos.org/testnet'\n },\n [EthChainId.BITLAYER]: {\n name: 'Bitlayer Mainnet',\n chainId: EthChainId.BITLAYER,\n priceTokenAddress: '0xff204e2681a6fa0e2c3fade68a1b28fb90e4fc5f', // WBTC\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xff204e2681a6fa0e2c3fade68a1b28fb90e4fc5f',\n tokenSymbol: 'BTC',\n tokenDecimals: 18,\n explorerUrl: 'https://www.btrscan.com',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.btrscan.com/scan'\n },\n [EthChainId.MANTA_PACIFIC]: {\n name: 'Manta Pacific',\n chainId: EthChainId.MANTA_PACIFIC,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x0Dc808adcE2099A9F62AA87D9670745AbA741746',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://pacific-explorer.manta.network',\n explorerApiType: ExplorerApiType.BLOCKSCOUT,\n explorerApi: 'https://pacific-explorer.manta.network'\n },\n [EthChainId.MANTLE]: {\n name: 'Mantle',\n chainId: EthChainId.MANTLE,\n priceTokenAddress: '0x78c1b0c915c4faa5fffa6cabf0219da63d7f4cb8', // WMNT\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x78c1b0c915c4faa5fffa6cabf0219da63d7f4cb8',\n tokenSymbol: 'MNT',\n tokenDecimals: 18,\n explorerUrl: 'https://mantlescan.xyz',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.mantlescan.xyz'\n },\n [EthChainId.B2_MAINNET]: {\n name: 'B2 Mainnet',\n chainId: EthChainId.B2_MAINNET,\n priceTokenAddress: '0x4200000000000000000000000000000000000006', // WBTC\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenSymbol: 'BTC',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.bsquared.network',\n explorerApiType: ExplorerApiType.L2SCAN,\n explorerApi: 'https://explorer.bsquared.network/api'\n },\n [EthChainId.MODE]: {\n name: 'Mode Mainnet',\n chainId: EthChainId.MODE,\n priceTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://modescan.io',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.routescan.io/v2/network/mainnet/evm/34443/etherscan'\n },\n [EthChainId.BOB]: {\n name: 'Bob Mainnet',\n chainId: EthChainId.BOB,\n priceTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.gobob.xyz',\n explorerApiType: ExplorerApiType.BLOCKSCOUT,\n explorerApi: 'https://explorer.gobob.xyz'\n },\n [EthChainId.FRAXTAL]: {\n name: 'Fraxtal Mainnet',\n chainId: EthChainId.FRAXTAL,\n priceTokenAddress: '0x0000000000000000000000000000000000000000', // wfrxETH\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xFC00000000000000000000000000000000000006',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://fraxscan.com',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.fraxscan.com'\n },\n [EthChainId.KUCOIN]: {\n name: 'KCC Mainnet',\n chainId: EthChainId.KUCOIN,\n priceTokenAddress: '0x4446Fc4eb47f2f6586f9fAAb68B3498F86C07521', // WCCS\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x4446Fc4eb47f2f6586f9fAAb68B3498F86C07521',\n tokenSymbol: 'KCS',\n tokenDecimals: 18,\n explorerUrl: 'https://scan.kcc.io',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://scan.kcc.io'\n },\n [EthChainId.CONFLUX]: {\n name: 'Conflux eSpace',\n chainId: EthChainId.CONFLUX,\n priceTokenAddress: '0x14b2d3bc65e74dae1030eafd8ac30c533c976a9b', // WCFX\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x14b2d3bc65e74dae1030eafd8ac30c533c976a9b',\n tokenSymbol: 'CFX',\n tokenDecimals: 18,\n explorerUrl: 'https://evm.confluxscan.io',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://evmapi.confluxscan.io'\n },\n [EthChainId.METIS]: {\n name: 'Metis',\n chainId: EthChainId.METIS,\n priceTokenAddress: '0x75cb093E4D61d2A2e65D8e0BBb01DE8d89b53481', // WMETIS\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x75cb093E4D61d2A2e65D8e0BBb01DE8d89b53481',\n tokenSymbol: 'METIS',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.metis.io',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.routescan.io/v2/network/mainnet/evm/1088/etherscan/'\n },\n [EthChainId.BEVM]: {\n name: 'BEVM',\n chainId: EthChainId.BEVM,\n priceTokenAddress: '0xB5136FEba197f5fF4B765E5b50c74db717796dcD', // WBTC\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xB5136FEba197f5fF4B765E5b50c74db717796dcD',\n tokenSymbol: 'BTC',\n tokenDecimals: 18,\n explorerUrl: 'https://scan.bevm.io',\n explorerApiType: ExplorerApiType.BLOCKSCOUT,\n explorerApi: 'https://scan.bevm.io'\n },\n [EthChainId.MERLIN_MAINNET]: {\n name: 'Merlin Mainnet',\n chainId: EthChainId.MERLIN_MAINNET,\n priceTokenAddress: '0xF6D226f9Dc15d9bB51182815b320D3fBE324e1bA', // WBTC\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0xF6D226f9Dc15d9bB51182815b320D3fBE324e1bA',\n tokenSymbol: 'BTC',\n tokenDecimals: 18,\n explorerUrl: 'https://scan.merlinchain.io',\n explorerApiType: ExplorerApiType.L2SCAN,\n explorerApi: 'https://scan.merlinchain.io/api'\n },\n [EthChainId.LUMIO_TESTNET]: {\n name: 'Lumio Testnet',\n chainId: EthChainId.LUMIO_TESTNET,\n priceTokenAddress: '0x1F3dBeBA2513E87642750a278649dc828d054971',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x1F3dBeBA2513E87642750a278649dc828d054971',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.testnet.imola.movementlabs.xyz',\n explorerApiType: ExplorerApiType.BLOCKSCOUT,\n explorerApi: 'https://explorer.testnet.imola.movementlabs.xyz'\n },\n [EthChainId.MOVEMENT_EVM_TESTNET]: {\n name: 'Movement EVM Testnet',\n chainId: EthChainId.MOVEMENT_EVM_TESTNET,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x0000000000000000000000000000000000000000', // TODO\n tokenSymbol: 'MOVE',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.testnet.imola.movementlabs.xyz'\n },\n [EthChainId.CHILIZ]: {\n name: 'Chiliz',\n chainId: EthChainId.CHILIZ,\n priceTokenAddress: '0x721EF6871f1c4Efe730Dce047D40D1743B886946',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x721EF6871f1c4Efe730Dce047D40D1743B886946', // WCHZ\n tokenSymbol: 'CHZ',\n tokenDecimals: 18,\n explorerUrl: 'https://chiliscan.com',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://api.routescan.io/v2/network/mainnet/evm/88888/etherscan'\n },\n [EthChainId.ZKLINK_NOVA]: {\n name: 'zkLink Nova',\n chainId: EthChainId.ZKLINK_NOVA,\n priceTokenAddress: '0x000000000000000000000000000000000000800A',\n tokenAddress: '0x000000000000000000000000000000000000800A', //special\n wrappedTokenAddress: '0x000000000000000000000000000000000000800A',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.zklink.io',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://explorer-api.zklink.io'\n },\n [EthChainId.AURORA]: {\n name: 'Auroa',\n chainId: EthChainId.AURORA,\n priceTokenAddress: '0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB',\n tokenAddress: '0x000000000000000000000000000000000000800A',\n wrappedTokenAddress: '0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.aurora.dev',\n explorerApiType: ExplorerApiType.BLOCKSCOUT,\n explorerApi: 'https://explorer.aurora.dev'\n },\n [EthChainId.SONIC_TESTNET]: {\n name: 'Sonic Testnet',\n chainId: EthChainId.SONIC_TESTNET,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x000000000000000000000000000000000000800A',\n tokenSymbol: 'FTM',\n tokenDecimals: 18,\n explorerUrl: 'https://testnet.soniclabs.com',\n explorerApiType: ExplorerApiType.L2SCAN,\n explorerApi: 'https://testnet.soniclabs.com'\n },\n [EthChainId.SONEIUM_TESTNET]: {\n name: 'Soneium Testnet',\n chainId: EthChainId.SONEIUM_TESTNET,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x728F2745410A56620B50a6E0592743450e08Cac6',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer-testnet.soneium.org',\n explorerApiType: ExplorerApiType.BLOCKSCOUT,\n explorerApi: 'https://explorer-testnet.soneium.org'\n },\n [EthChainId.CRONOS_ZKEVM]: {\n name: 'Cronos zkEVM',\n chainId: EthChainId.CRONOS_ZKEVM,\n priceTokenAddress: '0x000000000000000000000000000000000000800a',\n tokenAddress: '0x000000000000000000000000000000000000800a',\n wrappedTokenAddress: '0xc1bf55ee54e16229d9b369a5502bfe5fc9f20b6d',\n tokenSymbol: 'zkCRO',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.zkevm.cronos.org',\n explorerApiType: ExplorerApiType.ETHERSCAN,\n explorerApi: 'https://explorer.zkevm.cronos.org'\n },\n [EthChainId.LYRA]: {\n name: 'Lyra',\n chainId: EthChainId.LYRA,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x15CEcd5190A43C7798dD2058308781D0662e678E',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://explorer.lyra.finance',\n explorerApiType: ExplorerApiType.BLOCKSCOUT,\n explorerApi: 'https://explorer.lyra.finance'\n },\n [EthChainId.UNCHAIN_SEPOLIA]: {\n name: 'Unchain Sepolia',\n chainId: EthChainId.UNCHAIN_SEPOLIA,\n priceTokenAddress: '0x0000000000000000000000000000000000000000',\n tokenAddress: '0x0000000000000000000000000000000000000000',\n wrappedTokenAddress: '0x4200000000000000000000000000000000000006',\n tokenSymbol: 'ETH',\n tokenDecimals: 18,\n explorerUrl: 'https://unichain-sepolia.blockscout.com',\n explorerApiType: ExplorerApiType.BLOCKSCOUT,\n explorerApi: 'https://unichain-sepolia.blockscout.com'\n }\n}\n\ntype ScanUrlSubType = 'block' | 'address' | 'tx' | 'token'\n\nfunction getEVMChainScanUrl(chainId: string | number, hash: string, subtype: ScanUrlSubType) {\n // TODO l2scan address might be different\n let subtypeStr: string = subtype\n const supportedChain = EthChainInfo[chainId as ChainId]\n if (!supportedChain) {\n return\n }\n if (supportedChain.explorerApiType === ExplorerApiType.L2SCAN) {\n if (subtype === 'block') {\n subtypeStr = 'blocks'\n }\n }\n return `${supportedChain.explorerUrl}/${subtypeStr}/${hash}`\n}\n\n/**\n * BTC chains\n */\nexport const BTCChainInfo: Record<BTCChainId | string, ChainInfo> = {\n [BTCChainId.BTC_MAINNET]: {\n name: 'Bitcoin Mainnet',\n chainId: BTCChainId.BTC_MAINNET,\n explorerUrl: 'https://mempool.space'\n },\n [BTCChainId.BTC_TESTNET]: {\n name: 'Bitcoin Mainnet',\n chainId: BTCChainId.BTC_TESTNET,\n explorerUrl: 'https://mempool.space/testnet4'\n }\n}\n\nconst BtcSubTypePaths: Record<ScanUrlSubType, string | undefined> = {\n block: 'block',\n address: 'address',\n tx: 'tx',\n token: undefined\n}\n\nfunction getBtcChainScanUrl(chainId: string | number, hash: string, subtype: ScanUrlSubType) {\n const hostName = BTCChainInfo[chainId]?.explorerUrl\n const subPath = BtcSubTypePaths[subtype]\n if (!hostName || !subPath) {\n return\n }\n return `${hostName}/${subPath}/${hash}`\n}\n\n/**\n * Aptos chains\n */\nexport const AptosChainInfo: Record<\n AptosChainId | string,\n ChainInfo & {\n suffix: string\n }\n> = {\n [AptosChainId.APTOS_MAINNET]: {\n name: 'Aptos Mainnet',\n chainId: AptosChainId.APTOS_MAINNET,\n explorerUrl: 'https://explorer.aptoslabs.com',\n suffix: '?network=mainnet'\n },\n [AptosChainId.APTOS_TESTNET]: {\n name: 'Aptos Testenet',\n chainId: AptosChainId.APTOS_TESTNET,\n explorerUrl: 'https://explorer.aptoslabs.com',\n suffix: '?network=mainnet'\n },\n [AptosChainId.APTOS_MOVEMENT_MAINNET]: {\n name: 'Movement Mainnet Aptos',\n chainId: AptosChainId.APTOS_MOVEMENT_MAINNET,\n explorerUrl: 'https://explorer.aptoslabs.com',\n suffix: '?network=mainnet'\n },\n [AptosChainId.APTOS_MOVEMENT_TESTNET]: {\n name: 'Movement Testnet Aptos',\n chainId: AptosChainId.APTOS_MOVEMENT_TESTNET,\n explorerUrl: 'https://explorer.aptoslabs.com',\n suffix: '?network=mainnet'\n }\n}\nconst AptosSubTypePaths: Record<ScanUrlSubType, string | undefined> = {\n block: 'block',\n address: 'account',\n tx: 'txn',\n token: undefined\n}\nfunction getAptosChainScanUrl(chainId: string | number, hash: string, subtype: ScanUrlSubType) {\n const { explorerUrl, suffix } = AptosChainInfo[chainId]\n const subPath = AptosSubTypePaths[subtype]\n if (!subPath) {\n return\n }\n return `${explorerUrl}/${subPath}/${hash}${suffix}`\n}\n\n/**\n * Solana\n */\nexport const SolanaChainInfo: Record<\n SolanaChainId | string,\n ChainInfo & {\n suffix: string\n }\n> = {\n [SolanaChainId.SOLANA_MAINNET]: {\n name: 'Solana Mainnet',\n chainId: SolanaChainId.SOLANA_MAINNET,\n explorerUrl: 'https://solscan.io/',\n suffix: ''\n },\n [SolanaChainId.SOLANA_TESTNET]: {\n name: 'Solana Testnet',\n chainId: SolanaChainId.SOLANA_MAINNET,\n explorerUrl: 'https://solscan.io/',\n suffix: '?cluster=testnet'\n }\n}\n\nconst SolanaSubTypePaths: Record<ScanUrlSubType, string | undefined> = {\n block: 'block',\n address: 'address',\n tx: 'tx',\n token: 'token'\n}\n\nfunction getSolanaChainScanUrl(chainId: string | number, hash: string, subtype: ScanUrlSubType) {\n const { explorerUrl, suffix } = SolanaChainInfo[chainId]\n const subPath = SolanaSubTypePaths[subtype]\n if (!subPath) {\n return\n }\n return `${explorerUrl}${subPath}/${hash}${suffix}`\n}\n\n/**\n * Sui\n */\nconst SuiChainInfo: Record<SuiChainId | string, ChainInfo> = {\n [SuiChainId.SUI_MAINNET]: {\n name: 'Sui Mainnet',\n chainId: SuiChainId.SUI_MAINNET,\n explorerUrl: 'https://suivision.xyz'\n },\n [SuiChainId.SUI_TESTNET]: {\n name: 'Sui Testnet',\n chainId: SuiChainId.SUI_TESTNET,\n explorerUrl: 'https://testnet.suivision.xyz'\n }\n}\nconst SuibSubTypePaths: Record<ScanUrlSubType, string | undefined> = {\n block: 'checkpoint',\n address: 'account',\n tx: 'txblock',\n token: undefined\n}\n\nfunction getSuiChainScanUrl(chainId: string | number, hash: string, subtype: ScanUrlSubType) {\n const { explorerUrl } = SuiChainInfo[chainId]\n const subPath = SuibSubTypePaths[subtype]\n if (!subPath) {\n return\n }\n return `${explorerUrl}/${subPath}/${hash}`\n}\n\n/**\n * Generate scan url of target chain and sub types.\n * @param chainId\n * @param hash\n * @param subtype\n * @returns\n */\nexport function getChainExternalUrl(\n chainId?: string | number,\n hash?: string,\n subtype?: ScanUrlSubType\n): string | undefined {\n if (!chainId || !hash || !subtype) {\n return\n }\n const chainIdStr = chainId.toString()\n if (Object.keys(EthChainInfo).includes(chainIdStr)) {\n // EVM\n return getEVMChainScanUrl(chainIdStr, hash, subtype)\n } else if (Object.keys(BTCChainInfo).includes(chainIdStr)) {\n // BTC\n return getBtcChainScanUrl(chainIdStr, hash, subtype)\n } else if (Object.keys(AptosChainInfo).includes(chainIdStr)) {\n // Aptos\n return getAptosChainScanUrl(chainIdStr, hash, subtype)\n } else if (Object.keys(SolanaChainInfo).includes(chainIdStr)) {\n // Solana\n return getSolanaChainScanUrl(chainIdStr, hash, subtype)\n } else if (Object.keys(SuiChainInfo).includes(chainIdStr)) {\n // Sui\n return getSuiChainScanUrl(chainIdStr, hash, subtype)\n }\n return\n}\n\nexport function getChainBlockscoutUrl(\n chainId?: string | number,\n hash?: string,\n subtype?: ScanUrlSubType\n): string | undefined {\n if (!chainId || !hash || !subtype) {\n return\n }\n const supportedChain = EthChainInfo[chainId as ChainId]\n if (!supportedChain) {\n return\n }\n if (!supportedChain.blockscoutUrl) {\n return\n }\n return `${supportedChain.blockscoutUrl}/${subtype}/${hash}`\n}\n","import { ChainId } from './chain-id'\nimport { EthChainInfo } from './chain-info'\n\nexport const CHAIN_MAP: Record<string, string> = {\n [ChainId.APTOS_MOVEMENT_MAINNET]: 'Movement Mainnet Aptos',\n [ChainId.APTOS_MOVEMENT_TESTNET]: 'Movement Testnet Aptos',\n [ChainId.SUI_MOVEMENT_MAINNET]: 'Movement Mainnet Sui',\n [ChainId.SUI_MOVEMENT_TESTNET]: 'Movement Testnet Sui',\n [ChainId.BTC_MAINNET]: 'Bitcoin Mainnet',\n [ChainId.BTC_TESTNET]: 'Bitcoin Testnet'\n}\n\nfor (const [key, value] of Object.entries(ChainId)) {\n if (CHAIN_MAP[value]) {\n continue\n }\n\n const chainInfo = EthChainInfo[value]\n if (chainInfo) {\n CHAIN_MAP[value] = chainInfo.name\n continue\n }\n\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\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\n/**\n * @deprecated use getChainExternalUrl instead TODO(dazhan) to clean up\n * @param chainId\n * @param hash\n * @param subtype\n * @returns\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 let suffix = '?network=mainnet'\n if (chainName.includes('Testnet')) {\n suffix = '?network=testnet'\n } else if (chainName.includes('Devnet')) {\n suffix = '?network=devnet'\n }\n\n if (subtype === 'block') {\n return `https://explorer.aptoslabs.com/block/${hash}/${suffix}`\n } else if (subtype === 'address') {\n return `https://explorer.aptoslabs.com/account/${hash}/${suffix}`\n } else {\n return `https://explorer.aptoslabs.com/txn/${hash}/${suffix}`\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://suivision.xyz/checkpoint/${hash}`\n } else if (subtype === 'address') {\n return `https://suivision.xyz/account/${hash}`\n } else {\n return `https://suivision.xyz/txblock/${hash}`\n }\n }\n return undefined\n}\n","export * from './chain-id'\nexport * from './chain-info'\nexport * from './chain-name'\n"],"mappings":"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","names":["ChainType","exports","EthChainId","AptosChainId","SuiChainId","SolanaChainId","FuelChainId","CosmosChainId","StarknetChainId","BTCChainId","getChainType","chainId","id","chain_id_1","ExplorerApiType","exports","getEVMChainScanUrl","chainId","hash","subtype","subtypeStr","supportedChain","BtcSubTypePaths","getBtcChainScanUrl","hostName","subPath","AptosSubTypePaths","getAptosChainScanUrl","explorerUrl","suffix","SolanaSubTypePaths","getSolanaChainScanUrl","SuiChainInfo","SuibSubTypePaths","getSuiChainScanUrl","getChainExternalUrl","chainIdStr","getChainBlockscoutUrl","chain_id_1","chain_info_1","exports","key","value","chainInfo","parts","part","index","getChainName","chainId","name","getChainScanUrl","hash","subtype","chainName","suffix","__exportStar","exports"]}
@@ -1,3 +1,3 @@
1
1
  import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
2
- import{g as r}from"./chunk-HCZJEB6X.js";import{a as l}from"./chunk-F2HFFA4Z.js";import{i as b}from"./chunk-BEW4I7GR.js";import{a as i,d as m}from"./chunk-4TVQXTHY.js";import{a as u}from"./chunk-S2KNAER3.js";import{e as p}from"./chunk-LLHU72AA.js";var d=p(u(),1);var a=new Map;async function E(){let o=w.coinlist;try{o=(await(await l("https://raw.githubusercontent.com/solflare-wallet/sui-coinlist/master/sui-coinlist.json")).json()).coinlist}catch{console.warn("Can't not fetch newest coin list, use default list")}I(o)}function I(o){for(let e of o){if(e.address.startsWith("0x2::coin::Coin")||e.network!=="mainnet")continue;let s="native";e.name.includes("Celer")&&(s="Celer"),e.name.includes("LayerZero")&&(s="LayerZero"),e.name.includes("Wormhole")&&(s="Wormhole"),a.set(e.address,{token_type:{type:e.address,account_address:e.address.split("::")[0]},symbol:e.symbol,decimals:e.decimals,bridge:s})}}function N(){return a}function k(o){let[e,s,n]=o.split(i),t=[m(e),s,n].join(i);return a.has(t)}function B(o){let e=a.get(o);if(!e){let s=o.split("::");return{token_type:{type:o,account_address:s[0]},symbol:s[2],decimals:8,bridge:"native"}}return e}var g=new Map;async function R(o,e){let s=a.get(o);if(!s){e=e||d.SuiChainId.SUI_MAINNET;let n=e+"_"+o,t=g.get(n);t||(t=r(e).getCoinMetadata({coinType:o}),g.set(n,t));let c=await t;if(c===null)throw Error("Coin not existed "+n);let f=o.split(i);return{token_type:{type:o,account_address:f[0]},symbol:c.symbol,decimals:c.decimals,bridge:"native"}}return s}async function h(o,e){if(!k(o))return 0;let s=new Date(e/1e3);try{return await b(d.SuiChainId.SUI_MAINNET,o,s)||0}catch(n){throw console.log(JSON.stringify(n)),n}}async function D(o,e,s){let n=await h(e.token_type.type,s);return o.scaleDown(e.decimals).multipliedBy(n)}var w={name:"Sui Coin List",timestamp:"2022-12-01T13:34:30.145Z",logoURI:"https://s2.coinmarketcap.com/static/img/coins/128x128/20947.png",coinlist:[{network:"mainnet",address:"0x2::coin::Coin<0x2::sui::SUI>",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"testnet",address:"0x2::coin::Coin<0x2::sui::SUI>",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"devnet",address:"0x2::coin::Coin<0x2::sui::SUI>",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"mainnet",address:"0x2::sui::SUI",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"testnet",address:"0x2::sui::SUI",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"devnet",address:"0x2::sui::SUI",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestTEST",symbol:"TEST",name:"Test Token",logoURI:"https://suiswap.app/images/token/suiswap-test.svg",tags:[],decimals:8,extensions:{}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDT",symbol:"USDT",name:"Tether",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4/logo.png",tags:[],decimals:8,extensions:{coingeckoId:"tether"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDC",symbol:"USDC",name:"USD Coin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"usd-coin"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestSOL",symbol:"SOL",name:"Solana",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png",decimals:8,extensions:{coingeckoId:"solana"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBTC",symbol:"BTC",name:"Bitcoin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"bitcoin"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestDAI",symbol:"DAI",name:"DAI",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/FYpdBuyAHSbdaAyD1sKkxyLWbAP8uUW9h6uvdhK74ij1/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"dai"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBNB",symbol:"BNB",name:"BNB",logoURI:"https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png",decimals:8,tags:[],extensions:{coingeckoId:"binancecoin"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestETH",symbol:"ETH",name:"Ethereum",logoURI:"https://assets.coingecko.com/coins/images/279/large/ethereum.png",decimals:8,tags:[],extensions:{coingeckoId:"ethereum"}},{network:"testnet",address:"0x31b14985adb91360ed90a5786cb0956c83e7f275a8ae6123f38adab9d2b792b1::usdc::USDC",symbol:"USDC",name:"USD Coin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"usd-coin"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestTEST",symbol:"TEST",name:"Test Token",logoURI:"https://suiswap.app/images/token/suiswap-test.svg",tags:[],decimals:8,extensions:{}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDT",symbol:"USDT",name:"Tether",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4/logo.png",tags:[],decimals:8,extensions:{coingeckoId:"tether"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDC",symbol:"USDC",name:"USD Coin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"usd-coin"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestSOL",symbol:"SOL",name:"Solana",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png",decimals:8,extensions:{coingeckoId:"solana"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBTC",symbol:"BTC",name:"Bitcoin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"bitcoin"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestDAI",symbol:"DAI",name:"DAI",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/FYpdBuyAHSbdaAyD1sKkxyLWbAP8uUW9h6uvdhK74ij1/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"dai"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBNB",symbol:"BNB",name:"BNB",logoURI:"https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png",decimals:8,tags:[],extensions:{coingeckoId:"binancecoin"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestETH",symbol:"ETH",name:"Ethereum",logoURI:"https://assets.coingecko.com/coins/images/279/large/ethereum.png",decimals:8,tags:[],extensions:{coingeckoId:"ethereum"}},{network:"mainnet",address:"0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5::coin::COIN",symbol:"wETH",name:"Wrapped Ethereum (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/279/large/ethereum.png",tags:[],extensions:{coingeckoId:"ethereum"}},{network:"mainnet",address:"0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN",symbol:"wUSDT",name:"Tether (Wormhole)",decimals:6,logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4/logo.png",tags:[],extensions:{coingeckoId:"tether"}},{network:"mainnet",address:"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",symbol:"wUSDC",name:"USD Coin (Wormhole)",decimals:6,logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",tags:[],extensions:{coingeckoId:"usd-coin"}},{network:"mainnet",address:"0xa198f3be41cda8c07b3bf3fee02263526e535d682499806979a111e88a5a8d0f::coin::COIN",symbol:"wCELO",name:"Celo (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/11090/large/InjXBNx9_400x400.jpg",tags:[],extensions:{coingeckoId:"celo"}},{network:"mainnet",address:"0xdbe380b13a6d0f5cdedd58de8f04625263f113b3f9db32b3e1983f49e2841676::coin::COIN",symbol:"wMATIC",name:"Wrapped Matic (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/4713/large/matic-token-icon.png",tags:[],extensions:{coingeckoId:"matic-network"}},{network:"mainnet",address:"0xb848cce11ef3a8f62eccea6eb5b35a12c4c2b1ee1af7755d02d7bd6218e8226f::coin::COIN",symbol:"wBNB",name:"Wrapped BNB (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png",tags:[],extensions:{coingeckoId:"binancecoin"}},{network:"mainnet",address:"0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN",symbol:"wBTC",name:"Wrapped Bitcoin (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/1/large/bitcoin.png",tags:[],extensions:{coingeckoId:"bitcoin"}},{network:"mainnet",address:"0x1e8b532cca6569cab9f9b9ebc73f8c13885012ade714729aa3b450e0339ac766::coin::COIN",symbol:"wAVAX",name:"Wrapped AVAX (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/12559/large/Avalanche_Circle_RedWhite_Trans.png",tags:[],extensions:{coingeckoId:"avalanche-2"}},{network:"mainnet",address:"0x6081300950a4f1e2081580e919c210436a1bed49080502834950d31ee55a2396::coin::COIN",symbol:"wFTM",name:"Wrapped Fantom (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/4001/large/Fantom_round.png",tags:[],extensions:{coingeckoId:"fantom"}},{network:"mainnet",address:"0x66f87084e49c38f76502d17f87d17f943f183bb94117561eb573e075fdc5ff75::coin::COIN",symbol:"wGLMR",name:"Wrapped GLMR (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/22459/large/glmr.png",tags:[],extensions:{coingeckoId:"moonbeam"}},{network:"mainnet",address:"0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8::coin::COIN",symbol:"wSOL",name:"Wrapped Solana (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/4128/large/solana.png",tags:[],extensions:{coingeckoId:"solana"}},{network:"mainnet",address:"0xb231fcda8bbddb31f2ef02e6161444aec64a514e2c89279584ac9806ce9cf037::coin::COIN",symbol:"wUSDCsol",name:"USD Coin Solana (Wormhole)",decimals:6,logoURI:"https://assets.coingecko.com/coins/images/6319/large/USD_Coin_icon.png",tags:[],extensions:{coingeckoId:"usd-coin"}}]};process.stdout.write("");export{E as a,N as b,k as c,B as d,R as e,h as f,D as g};
3
- //# sourceMappingURL=chunk-QXO47OU4.js.map
2
+ import{g as r}from"./chunk-33VROINF.js";import{a as l}from"./chunk-F2HFFA4Z.js";import{i as b}from"./chunk-AQJOPCDS.js";import{a as i,d as m}from"./chunk-4TVQXTHY.js";import{a as u}from"./chunk-L4PAFISV.js";import{e as p}from"./chunk-LLHU72AA.js";var d=p(u(),1);var a=new Map;async function E(){let o=w.coinlist;try{o=(await(await l("https://raw.githubusercontent.com/solflare-wallet/sui-coinlist/master/sui-coinlist.json")).json()).coinlist}catch{console.warn("Can't not fetch newest coin list, use default list")}I(o)}function I(o){for(let e of o){if(e.address.startsWith("0x2::coin::Coin")||e.network!=="mainnet")continue;let s="native";e.name.includes("Celer")&&(s="Celer"),e.name.includes("LayerZero")&&(s="LayerZero"),e.name.includes("Wormhole")&&(s="Wormhole"),a.set(e.address,{token_type:{type:e.address,account_address:e.address.split("::")[0]},symbol:e.symbol,decimals:e.decimals,bridge:s})}}function N(){return a}function k(o){let[e,s,n]=o.split(i),t=[m(e),s,n].join(i);return a.has(t)}function B(o){let e=a.get(o);if(!e){let s=o.split("::");return{token_type:{type:o,account_address:s[0]},symbol:s[2],decimals:8,bridge:"native"}}return e}var g=new Map;async function R(o,e){let s=a.get(o);if(!s){e=e||d.SuiChainId.SUI_MAINNET;let n=e+"_"+o,t=g.get(n);t||(t=r(e).getCoinMetadata({coinType:o}),g.set(n,t));let c=await t;if(c===null)throw Error("Coin not existed "+n);let f=o.split(i);return{token_type:{type:o,account_address:f[0]},symbol:c.symbol,decimals:c.decimals,bridge:"native"}}return s}async function h(o,e){if(!k(o))return 0;let s=new Date(e/1e3);try{return await b(d.SuiChainId.SUI_MAINNET,o,s)||0}catch(n){throw console.log(JSON.stringify(n)),n}}async function D(o,e,s){let n=await h(e.token_type.type,s);return o.scaleDown(e.decimals).multipliedBy(n)}var w={name:"Sui Coin List",timestamp:"2022-12-01T13:34:30.145Z",logoURI:"https://s2.coinmarketcap.com/static/img/coins/128x128/20947.png",coinlist:[{network:"mainnet",address:"0x2::coin::Coin<0x2::sui::SUI>",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"testnet",address:"0x2::coin::Coin<0x2::sui::SUI>",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"devnet",address:"0x2::coin::Coin<0x2::sui::SUI>",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"mainnet",address:"0x2::sui::SUI",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"testnet",address:"0x2::sui::SUI",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"devnet",address:"0x2::sui::SUI",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestTEST",symbol:"TEST",name:"Test Token",logoURI:"https://suiswap.app/images/token/suiswap-test.svg",tags:[],decimals:8,extensions:{}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDT",symbol:"USDT",name:"Tether",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4/logo.png",tags:[],decimals:8,extensions:{coingeckoId:"tether"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDC",symbol:"USDC",name:"USD Coin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"usd-coin"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestSOL",symbol:"SOL",name:"Solana",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png",decimals:8,extensions:{coingeckoId:"solana"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBTC",symbol:"BTC",name:"Bitcoin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"bitcoin"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestDAI",symbol:"DAI",name:"DAI",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/FYpdBuyAHSbdaAyD1sKkxyLWbAP8uUW9h6uvdhK74ij1/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"dai"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBNB",symbol:"BNB",name:"BNB",logoURI:"https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png",decimals:8,tags:[],extensions:{coingeckoId:"binancecoin"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestETH",symbol:"ETH",name:"Ethereum",logoURI:"https://assets.coingecko.com/coins/images/279/large/ethereum.png",decimals:8,tags:[],extensions:{coingeckoId:"ethereum"}},{network:"testnet",address:"0x31b14985adb91360ed90a5786cb0956c83e7f275a8ae6123f38adab9d2b792b1::usdc::USDC",symbol:"USDC",name:"USD Coin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"usd-coin"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestTEST",symbol:"TEST",name:"Test Token",logoURI:"https://suiswap.app/images/token/suiswap-test.svg",tags:[],decimals:8,extensions:{}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDT",symbol:"USDT",name:"Tether",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4/logo.png",tags:[],decimals:8,extensions:{coingeckoId:"tether"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDC",symbol:"USDC",name:"USD Coin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"usd-coin"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestSOL",symbol:"SOL",name:"Solana",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png",decimals:8,extensions:{coingeckoId:"solana"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBTC",symbol:"BTC",name:"Bitcoin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"bitcoin"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestDAI",symbol:"DAI",name:"DAI",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/FYpdBuyAHSbdaAyD1sKkxyLWbAP8uUW9h6uvdhK74ij1/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"dai"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBNB",symbol:"BNB",name:"BNB",logoURI:"https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png",decimals:8,tags:[],extensions:{coingeckoId:"binancecoin"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestETH",symbol:"ETH",name:"Ethereum",logoURI:"https://assets.coingecko.com/coins/images/279/large/ethereum.png",decimals:8,tags:[],extensions:{coingeckoId:"ethereum"}},{network:"mainnet",address:"0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5::coin::COIN",symbol:"wETH",name:"Wrapped Ethereum (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/279/large/ethereum.png",tags:[],extensions:{coingeckoId:"ethereum"}},{network:"mainnet",address:"0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN",symbol:"wUSDT",name:"Tether (Wormhole)",decimals:6,logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4/logo.png",tags:[],extensions:{coingeckoId:"tether"}},{network:"mainnet",address:"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",symbol:"wUSDC",name:"USD Coin (Wormhole)",decimals:6,logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",tags:[],extensions:{coingeckoId:"usd-coin"}},{network:"mainnet",address:"0xa198f3be41cda8c07b3bf3fee02263526e535d682499806979a111e88a5a8d0f::coin::COIN",symbol:"wCELO",name:"Celo (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/11090/large/InjXBNx9_400x400.jpg",tags:[],extensions:{coingeckoId:"celo"}},{network:"mainnet",address:"0xdbe380b13a6d0f5cdedd58de8f04625263f113b3f9db32b3e1983f49e2841676::coin::COIN",symbol:"wMATIC",name:"Wrapped Matic (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/4713/large/matic-token-icon.png",tags:[],extensions:{coingeckoId:"matic-network"}},{network:"mainnet",address:"0xb848cce11ef3a8f62eccea6eb5b35a12c4c2b1ee1af7755d02d7bd6218e8226f::coin::COIN",symbol:"wBNB",name:"Wrapped BNB (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png",tags:[],extensions:{coingeckoId:"binancecoin"}},{network:"mainnet",address:"0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN",symbol:"wBTC",name:"Wrapped Bitcoin (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/1/large/bitcoin.png",tags:[],extensions:{coingeckoId:"bitcoin"}},{network:"mainnet",address:"0x1e8b532cca6569cab9f9b9ebc73f8c13885012ade714729aa3b450e0339ac766::coin::COIN",symbol:"wAVAX",name:"Wrapped AVAX (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/12559/large/Avalanche_Circle_RedWhite_Trans.png",tags:[],extensions:{coingeckoId:"avalanche-2"}},{network:"mainnet",address:"0x6081300950a4f1e2081580e919c210436a1bed49080502834950d31ee55a2396::coin::COIN",symbol:"wFTM",name:"Wrapped Fantom (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/4001/large/Fantom_round.png",tags:[],extensions:{coingeckoId:"fantom"}},{network:"mainnet",address:"0x66f87084e49c38f76502d17f87d17f943f183bb94117561eb573e075fdc5ff75::coin::COIN",symbol:"wGLMR",name:"Wrapped GLMR (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/22459/large/glmr.png",tags:[],extensions:{coingeckoId:"moonbeam"}},{network:"mainnet",address:"0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8::coin::COIN",symbol:"wSOL",name:"Wrapped Solana (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/4128/large/solana.png",tags:[],extensions:{coingeckoId:"solana"}},{network:"mainnet",address:"0xb231fcda8bbddb31f2ef02e6161444aec64a514e2c89279584ac9806ce9cf037::coin::COIN",symbol:"wUSDCsol",name:"USD Coin Solana (Wormhole)",decimals:6,logoURI:"https://assets.coingecko.com/coins/images/6319/large/USD_Coin_icon.png",tags:[],extensions:{coingeckoId:"usd-coin"}}]};process.stdout.write("");export{E as a,N as b,k as c,B as d,R as e,h as f,D as g};
3
+ //# sourceMappingURL=chunk-P2BQUECZ.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
2
- import{a as Te}from"./chunk-QXO47OU4.js";import{a as Oe,b as we}from"./chunk-ZGALPNQV.js";import{a as be,b as Se,c as ve,d as Ie,f as S,g as y}from"./chunk-HCZJEB6X.js";import{e as ee,f as Ce}from"./chunk-77WBP3SS.js";import{a as x,d as he,f as E,m as me,n as D,o as q,x as ge}from"./chunk-4TVQXTHY.js";import{a as Ae}from"./chunk-S2KNAER3.js";import{D as m,W as pe,Xc as J,ec as G,fa as fe,wc as z,x as U,za as T}from"./chunk-SF3GAPKY.js";import{e as P,g as w}from"./chunk-LLHU72AA.js";import{ListStateStorage as Ne,mergeProcessResults as Me}from"@sentio/runtime";var u=P(z(),1);var j=class extends ge{bcs=new be(Se());constructor(e){super(new we(e))}load(e,t){let n=this.moduleMapping.get(e.address+"::"+e.name),r=this.moduleMapping.get(t+"::"+e.name);return n&&r||(n=Oe(e),this.loadInternal(n,t)),n}async decode(e,t){switch(t.qname){case"0x1::ascii::Char":if(e!==void 0&&typeof e!="string"){let r=(await super.decode(e,t)).byte;return String.fromCharCode(r)}case"0x1::ascii::String":if(e!==void 0&&typeof e!="string"){let r=(await super.decode(e,t)).bytes;return new TextDecoder().decode(new Uint8Array(r))}case"0x2::object::ID":if(e!==void 0&&typeof e!="string"){let r=(await super.decode(e,t)).bytes;return Ie(r)}case"0x2::url::Url":if(e!==void 0&&typeof e!="string")return(await super.decode(e,t)).url;case"0x2::coin::Coin":if(e!==void 0&&typeof e!="string"){let r=(await super.decode(e,t)).id.id.bytes;return new TextDecoder().decode(new Uint8Array(r))}return e;case"0x2::balance::Balance":return e.value?(await super.decode(e,t)).value:BigInt(e);case"0x1::option::Option":if(e===null)return e;if(e.vec){let r=await super.decode(e,t);return r=r.vec,r.length===0?null:r[0]}return this.decode(e,t.typeArgs[0]);case"Address":return ve(e);case"0x1::string::String":if(typeof e!="string")return new TextDecoder().decode(new Uint8Array(e.bytes));default:return super.decode(e,t)}}decodeEvent(e){return this.decodedStruct(e)}filterAndDecodeEvents(e,t){return typeof e=="string"&&(e=D(e)),this.filterAndDecodeStruct(e,t)}async getDynamicFields(e,t=q,n=q){let r=new me("0x2::dynamic_field::Field");return r.typeArgs=[t,n],(await this.filterAndDecodeObjects(r,e)).map(s=>s.data_decoded)}filterAndDecodeObjects(e,t){return this.filterAndDecodeStruct(e,t)}async decodeFunctionPayload(e,t){let n=[e.package,e.module,e.function].join(x),r=await this.getMoveFunction(n),o=this.adapter.getMeaningfulFunctionParams(r.params),s=[];for(let i of e.arguments||[]){let l=i;if("Input"in l){let b=l.Input,p=t[b];p.type==="pure"?s.push(p.value):(p.type==="object"||console.error("unexpected function arg value"),s.push(void 0))}else s.push(void 0)}let a=await this.decodeArray(s,o,!1);return{...e,arguments_decoded:a}}async _registerBCSType(e){if(this.bcs.hasType(e))return;let t=await this.getMoveStruct(e),n={};for(let s of t.fields)n[s.name]=s.type.getNormalizedSignature();let r=e,o=t.typeParams.map((s,a)=>"T"+a).join(", ");o&&(r=r+"<"+o+">"),this.bcs.registerStructType(r,n);for(let s of t.fields)await this.registerBCSTypes(s.type)}bcsRegistered=new Set;async registerBCSTypes(e){let t=e.getNormalizedSignature();if(!this.bcsRegistered.has(t)){this.bcsRegistered.add(t),await this._registerBCSType("0x1::string::String");for(let n of e.dependedTypes())await this._registerBCSType(n)}}async decodeBCS(e,t,n){return await this.registerBCSTypes(e),this.bcs.de(e.getNormalizedSignature(),t,n)}async decodeDevInspectResult(e){let t=[];if(e.results!=null)for(let n of e.results)if(n.returnValues)for(let r of n.returnValues){let o=D(r[1]),s=await this.decodeBCS(o,new Uint8Array(r[0])),a=await this.decodedType(s,o);t.push(a)}else t.push(null);return{...e,results_decoded:t}}};var xe=new Map;function A(c=S.MAIN_NET){let e=xe.get(c);return e||(e=new j(y(c)),xe.set(c,e)),e}process.stdout.write("");var f=class extends ee{moduleName;timestamp;checkpoint;transaction;eventIndex;coder;constructor(e,t,n,r,o,s,a,i){super(i),this.address=n.toLowerCase(),this.network=t,this.moduleName=e,this.timestamp=r,this.checkpoint=o,this.eventIndex=a,this.coder=A(t),s&&(this.transaction=s)}getChainId(){return this.network}getTimestamp(){return this.timestamp.getDate()}getMetaDataInternal(e,t){return{address:this.address,contractName:this.moduleName,blockNumber:this.checkpoint,transactionIndex:0,transactionHash:this.transaction?.digest||"",logIndex:this.eventIndex,chainId:this.getChainId(),name:e,labels:G(t)}}get client(){return y(this.network)}},$=class extends ee{timestamp;checkpoint;coder;txDigest;constructor(e,t,n,r,o,s){super(s),this.address=t,this.network=e,this.timestamp=n,this.checkpoint=r,this.txDigest=o,this.coder=A(e)}getChainId(){return this.network}getTimestamp(){return this.timestamp.getDate()}getMetaDataInternal(e,t){return{address:this.address,contractName:"*",blockNumber:this.checkpoint,transactionIndex:-1,transactionHash:this.txDigest,logIndex:0,chainId:this.getChainId(),name:e,labels:G(t)}}get client(){return y(this.network)}},te=class extends Ce{address;network;checkpoint;timestamp;coder;contractName="address";constructor(e,t,n,r,o){super(o),this.address=t,this.network=e,this.checkpoint=n,this.timestamp=r,this.coder=A(e)}getChainId(){return this.network}getMetaDataInternal(e,t){return{address:this.address,contractName:this.contractName,blockNumber:this.checkpoint,transactionIndex:0,transactionHash:"",logIndex:0,chainId:this.getChainId(),name:e,labels:G(t)}}get client(){return y(this.network)}getTimestamp(){return this.timestamp.getDate()}},K=class extends te{contractName="object";objectId;constructor(e,t,n,r,o){super(e,t,n,r,o),this.objectId=t}};process.stdout.write("");function ye(c){let e=c.transaction?.data.transaction;if(!e)return[];let t=e.kind==="ProgrammableTransaction"?e:void 0;return t?t.transactions.flatMap(n=>{if("MoveCall"in n){let r=n.MoveCall;return r.package=he(r.package),[r]}return[]}):[]}process.stdout.write("");var H={resourceChanges:!1,allEvents:!1,inputs:!1};function ne(c){return{startCheckpoint:c.startCheckpoint||0n,address:c.address==="*"?"*":E(c.address),network:c.network||S.MAIN_NET,baseLabels:c.baseLabels}}var re=class extends Ne{},N=re;w(N,"INSTANCE",new re);var R=class{moduleName;config;eventHandlers=[];callHandlers=[];objectChangeHandlers=[];coder;constructor(e,t){this.moduleName=e,this.config=ne(t),N.INSTANCE.addValue(this),this.coder=A(this.config.network)}getChainId(){return this.config.network}onMoveEvent(e,t,n){let r=[],o=T.fromPartial({...H,...n});Array.isArray(t)?r=t:r.push(t);let s=this,a=new Set(r.map(i=>i.type));return this.eventHandlers.push({handler:async function(i){if(!i.transaction)throw new u.ServerError(u.Status.INVALID_ARGUMENT,"event is null");let l=i.transaction;if(!l.events||!l.events.length)throw new u.ServerError(u.Status.INVALID_ARGUMENT,"no event in the transactions");let b=[];for(let p of l.events){let M=Number(p.id.eventSeq)||0,[ue,k,X]=D(p.type).qname.split(x);if(!a.has([k,X].join(x)))continue;let V=new f(s.moduleName,s.config.network,s.config.address,i.timestamp||new Date(0),i.slot,l,M,s.config.baseLabels),je=await s.coder.decodeEvent(p);await e(je||p,V),b.push(V.stopAndGetResult())}return Me(b)},filters:r,fetchConfig:o}),this}onEntryFunctionCall(e,t,n){let r=[],o=T.fromPartial({...H,...n});Array.isArray(t)?r=t:r.push(t);let s=this,a=new Set(r.map(i=>i.function));return this.callHandlers.push({handler:async function(i){if(!i.transaction)throw new u.ServerError(u.Status.INVALID_ARGUMENT,"call is null");let l=i.transaction,b=new f(s.moduleName,s.config.network,s.config.address,i.timestamp||new Date(0),i.slot,l,0,s.config.baseLabels);if(l){let p=ye(l),M=l.transaction?.data?.transaction;if(!M)throw new u.ServerError(u.Status.INVALID_ARGUMENT,"Unexpected getTransactionKind get empty");let ue=M.kind==="ProgrammableTransaction"?M:void 0;for(let k of p){let X=[k.module,k.function].join(x);if(!a.has(X))continue;let V=await s.coder.decodeFunctionPayload(k,ue?.inputs||[]);await e(V,b)}}return b.stopAndGetResult()},filters:r,fetchConfig:o}),this}onEvent(e,t){return this.onMoveEvent(e,{type:""},t),this}onTransactionBlock(e,t,n){let r=T.fromPartial({...H,...n}),o=this;return this.callHandlers.push({handler:async function(s){if(!s.transaction)throw new u.ServerError(u.Status.INVALID_ARGUMENT,"transaction is null");let a=s.transaction,i=new f(o.moduleName,o.config.network,o.config.address,s.timestamp||new Date(0),s.slot,a,0,o.config.baseLabels);return a&&await e(a,i),i.stopAndGetResult()},filters:[{...t,function:""}],fetchConfig:r}),this}onObjectChange(e,t){if(this.config.network===S.TEST_NET)throw new u.ServerError(u.Status.INVALID_ARGUMENT,"object change not supported in testnet");let n=this;return this.objectChangeHandlers.push({handler:async function(r){let o=new $(n.config.network,n.config.address,r.timestamp||new Date(0),r.slot,r.txDigest,n.config.baseLabels);return await e(r.changes,o),o.stopAndGetResult()},type:t}),this}},B=class extends R{static bind(e){return new B("*",e)}},_=class extends R{static bind(e){return new _("*",{...e,address:"*"})}onTransactionBlock(e,t,n){return super.onTransactionBlock(e,t,n)}onObjectChange(e,t){return super.onObjectChange(e,t)}};process.stdout.write("");import{ListStateStorage as ke}from"@sentio/runtime";var W=P(z(),1);var oe={owned:!1},se=class extends ke{},g=se;w(g,"INSTANCE",new se);var F=class{config;ownerType;templateId;objectHandlers=[];constructor(e){this.config=ne(e),this.ownerType=e.ownerType,g.INSTANCE.addValue(this)}getChainId(){return this.config.network}onInterval(e,t,n,r,o){let s=this;return this.objectHandlers.push({handler:async function(a){let i=new K(s.config.network,s.config.address,a.slot,a.timestamp||new Date(0),s.config.baseLabels);return await s.doHandle(e,a,i),i.stopAndGetResult()},timeIntervalInMinutes:t,checkPointInterval:n,type:r,fetchConfig:{...oe,...o}}),this}onTimeInterval(e,t=60,n=240,r,o){return this.onInterval(e,{recentInterval:t,backfillInterval:n},void 0,r,o)}onCheckpointInterval(e,t=1e5,n=4e5,r,o){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:n},r,o)}},C=class extends F{callHandlers=[];static bind(e){return new C({...e,ownerType:U.ADDRESS})}doHandle(e,t,n){return e(t.objects,n)}onTransactionBlock(e,t,n){let r=T.fromPartial({...H,...n}),o={fromAndToAddress:{from:"",to:this.config.address},...t},s=this;return this.callHandlers.push({handler:async function(a){if(!a.transaction)throw new W.ServerError(W.Status.INVALID_ARGUMENT,"transaction is null");let i=a.transaction,l=new f("object",s.config.network,s.config.address,a.timestamp||new Date(0),a.slot,i,0,s.config.baseLabels);return i&&await e(i,l),l.stopAndGetResult()},filters:[{...o,function:""}],fetchConfig:r}),this}},v=class extends F{static bind(e){return new v({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:U.OBJECT,baseLabels:e.baseLabels})}doHandle(e,t,n){if(!t.self){console.log(`Sui object not existed in ${n.checkpoint}, please specific a start time`);return}return e(t.self,t.objects,n)}},I=class extends F{static bind(e){return new I({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:U.WRAPPED_OBJECT,baseLabels:e.baseLabels})}doHandle(e,t,n){return e(t.objects,n)}};process.stdout.write("");import{ListStateStorage as Pe}from"@sentio/runtime";var h=P(z(),1);var de=class extends Pe{},O=de;w(O,"INSTANCE",new de);var L=class{id;objectHandlers=[];binds=new Set;constructor(){this.id=O.INSTANCE.getValues().length,O.INSTANCE.addValue(this)}bind(e,t){e.network=e.network||t.network,e.startCheckpoint=e.startCheckpoint||t.checkpoint;let n=e.objectId||e.address;if(n==="*")throw new h.ServerError(h.Status.INVALID_ARGUMENT,"can't bind template instance with *");n=E(n);let r=[e.network,n].join("_");if(this.binds.has(r)){console.log(`Same object id can be bind to one template only once, ignore duplicate bind: ${r}`);return}this.binds.add(r);let o=this.createProcessor(e);for(let a of this.objectHandlers)o.onInterval(a.handler,a.timeIntervalInMinutes,a.checkpointInterval,a.type,a.fetchConfig);let s=o.config;t.update({states:{configUpdated:!0}}),J.INSTANCE.addValue({templateId:this.id,contract:{name:"",chainId:s.network,address:s.address,abi:""},startBlock:s.startCheckpoint,endBlock:0n,baseLabels:s.baseLabels}),console.log(`successfully bind template ${r}`)}unbind(e,t){e.network=e.network||t.network,e.startCheckpoint=e.startCheckpoint||t.checkpoint;let n=e.objectId||e.address;if(n==="*")throw new h.ServerError(h.Status.INVALID_ARGUMENT,"can't delete template instance bind with *");n=E(n);let r=[e.network,n].join("_");if(!this.binds.has(r)){console.log(`the template instance ${r} not existed or already unbind`);return}this.binds.delete(r);let o=0,s=J.INSTANCE.unregister();for(let i of s){if(i.contract?.chainId===e.network&&i.contract.address==n){o++;continue}J.INSTANCE.addValue(i)}if(o!==1)throw new h.ServerError(h.Status.INVALID_ARGUMENT,`Failed to delete template instance ${r}, deleted ${o} times`);let a=g.INSTANCE.unregister();o=0;for(let i of a){if(i.templateId===this.id&&i.config.network==e.network&&i.config.address===n){o++;continue}g.INSTANCE.addValue(i)}if(o!==1)throw new h.ServerError(h.Status.INVALID_ARGUMENT,`Failed to delete processor for template ${this.id}, ${r}. deleted ${o} times`);console.log(`successfully unbind template ${r}`),t.update({states:{configUpdated:!0}})}onInterval(e,t,n,r,o){return this.objectHandlers.push({handler:e,timeIntervalInMinutes:t,checkpointInterval:n,type:r,fetchConfig:{...oe,...o}}),this}onTimeInterval(e,t=60,n=240,r,o){return this.onInterval(e,{recentInterval:t,backfillInterval:n},void 0,r,o)}onCheckpointInterval(e,t=1e5,n=4e5,r,o){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:n},r,o)}};var ie=class extends L{handlers=[];createProcessor(e){let t=C.bind(e);for(let n of this.handlers)t.onTransactionBlock(n.handler,n.filter,n.fetchConfig);return t.templateId=this.id,t}onTransactionBlock(e,t,n){return this.handlers.push({handler:e,filter:t,fetchConfig:n}),this}},ae=class extends L{createProcessor(e){let t=v.bind(e);return t.templateId=this.id,t}},ce=class extends L{createProcessor(e){let t=I.bind(e);return t.templateId=this.id,t}};process.stdout.write("");process.stdout.write("");import{errorString as Y,mergeProcessResults as Z,Plugin as Ee,PluginManager as De,USER_PROCESSOR as He}from"@sentio/runtime";var d=P(z(),1);var le=P(Ae(),1);var Q=class extends Ee{name="SuiPlugin";handlers={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};async start(e){await Te(),console.log("total instances:",e.templateInstances.length);let t=new Set(Object.values(le.SuiChainId));for(let n of e.templateInstances){if(!t.has(n.contract?.chainId||""))continue;console.log("start template instance",n.templateId),O.INSTANCE.getValues()[n.templateId].bind({address:n.contract?.address||"",objectId:n.contract?.address||"",network:n.contract?.chainId||S.MAIN_NET,startCheckpoint:n.startBlock||0n,baseLabels:n.baseLabels},Re)}}async configure(e){let t={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};for(let n of N.INSTANCE.getValues()){let r=pe.fromPartial({transactionConfig:[],processorType:He,contract:{name:n.moduleName,chainId:n.config.network,address:n.config.address,abi:""},startBlock:n.config.startCheckpoint});for(let o of n.eventHandlers){let s=t.suiEventHandlers.push(o.handler)-1,a={filters:o.filters.map(i=>({type:i.type,account:i.account||""})),fetchConfig:o.fetchConfig,handlerId:s};r.moveEventConfigs.push(a)}for(let o of n.callHandlers){let s=t.suiCallHandlers.push(o.handler)-1,a={filters:o.filters.map(i=>({function:i.function,typeArguments:i.typeArguments||[],withTypeArguments:!!i.typeArguments,includeFailed:i.includeFailed||!1,publicKeyPrefix:i.publicKeyPrefix||"",fromAndToAddress:i.fromAndToAddress})),fetchConfig:o.fetchConfig,handlerId:s};r.moveCallConfigs.push(a)}for(let o of n.objectChangeHandlers){let s=t.suiObjectChangeHandlers.push(o.handler)-1,a={type:o.type,handlerId:s};r.moveResourceChangeConfigs.push(a)}e.contractConfigs.push(r)}for(let n of g.INSTANCE.getValues()){let r=fe.fromPartial({address:n.config.address,chainId:n.getChainId(),startBlock:n.config.startCheckpoint});for(let o of n.objectHandlers){let s=t.suiObjectHandlers.push(o.handler)-1;r.moveIntervalConfigs.push({intervalConfig:{handlerId:s,minutes:0,minutesInterval:o.timeIntervalInMinutes,slot:0,slotInterval:o.checkPointInterval,fetchConfig:void 0},type:o.type||"",ownerType:n.ownerType,fetchConfig:o.fetchConfig})}if(n instanceof C)for(let o of n.callHandlers){let s=t.suiCallHandlers.push(o.handler)-1,a={filters:o.filters.map(i=>({function:i.function,typeArguments:i.typeArguments||[],withTypeArguments:!!i.typeArguments,includeFailed:i.includeFailed||!1,publicKeyPrefix:i.publicKeyPrefix||"",fromAndToAddress:i.fromAndToAddress})),fetchConfig:o.fetchConfig,handlerId:s};r.moveCallConfigs.push(a)}e.accountConfigs.push(r)}this.handlers=t}async processSuiEvent(e){if(!e.data?.suiEvent)throw new d.ServerError(d.Status.INVALID_ARGUMENT,"Event can't be empty");let t=[],n=e.data.suiEvent;for(let r of e.handlerIds)t.push(this.handlers.suiEventHandlers[r](n).catch(o=>{throw new d.ServerError(d.Status.INTERNAL,"error processing event: "+JSON.stringify(n)+`
2
+ import{a as Te}from"./chunk-P2BQUECZ.js";import{a as Oe,b as we}from"./chunk-ZGALPNQV.js";import{a as be,b as Se,c as ve,d as Ie,f as S,g as y}from"./chunk-33VROINF.js";import{e as ee,f as Ce}from"./chunk-77WBP3SS.js";import{a as x,d as he,f as E,m as me,n as D,o as q,x as ge}from"./chunk-4TVQXTHY.js";import{a as Ae}from"./chunk-L4PAFISV.js";import{D as m,W as pe,Xc as J,ec as G,fa as fe,wc as z,x as U,za as T}from"./chunk-SF3GAPKY.js";import{e as P,g as w}from"./chunk-LLHU72AA.js";import{ListStateStorage as Ne,mergeProcessResults as Me}from"@sentio/runtime";var u=P(z(),1);var j=class extends ge{bcs=new be(Se());constructor(e){super(new we(e))}load(e,t){let n=this.moduleMapping.get(e.address+"::"+e.name),r=this.moduleMapping.get(t+"::"+e.name);return n&&r||(n=Oe(e),this.loadInternal(n,t)),n}async decode(e,t){switch(t.qname){case"0x1::ascii::Char":if(e!==void 0&&typeof e!="string"){let r=(await super.decode(e,t)).byte;return String.fromCharCode(r)}case"0x1::ascii::String":if(e!==void 0&&typeof e!="string"){let r=(await super.decode(e,t)).bytes;return new TextDecoder().decode(new Uint8Array(r))}case"0x2::object::ID":if(e!==void 0&&typeof e!="string"){let r=(await super.decode(e,t)).bytes;return Ie(r)}case"0x2::url::Url":if(e!==void 0&&typeof e!="string")return(await super.decode(e,t)).url;case"0x2::coin::Coin":if(e!==void 0&&typeof e!="string"){let r=(await super.decode(e,t)).id.id.bytes;return new TextDecoder().decode(new Uint8Array(r))}return e;case"0x2::balance::Balance":return e.value?(await super.decode(e,t)).value:BigInt(e);case"0x1::option::Option":if(e===null)return e;if(e.vec){let r=await super.decode(e,t);return r=r.vec,r.length===0?null:r[0]}return this.decode(e,t.typeArgs[0]);case"Address":return ve(e);case"0x1::string::String":if(typeof e!="string")return new TextDecoder().decode(new Uint8Array(e.bytes));default:return super.decode(e,t)}}decodeEvent(e){return this.decodedStruct(e)}filterAndDecodeEvents(e,t){return typeof e=="string"&&(e=D(e)),this.filterAndDecodeStruct(e,t)}async getDynamicFields(e,t=q,n=q){let r=new me("0x2::dynamic_field::Field");return r.typeArgs=[t,n],(await this.filterAndDecodeObjects(r,e)).map(s=>s.data_decoded)}filterAndDecodeObjects(e,t){return this.filterAndDecodeStruct(e,t)}async decodeFunctionPayload(e,t){let n=[e.package,e.module,e.function].join(x),r=await this.getMoveFunction(n),o=this.adapter.getMeaningfulFunctionParams(r.params),s=[];for(let i of e.arguments||[]){let l=i;if("Input"in l){let b=l.Input,p=t[b];p.type==="pure"?s.push(p.value):(p.type==="object"||console.error("unexpected function arg value"),s.push(void 0))}else s.push(void 0)}let a=await this.decodeArray(s,o,!1);return{...e,arguments_decoded:a}}async _registerBCSType(e){if(this.bcs.hasType(e))return;let t=await this.getMoveStruct(e),n={};for(let s of t.fields)n[s.name]=s.type.getNormalizedSignature();let r=e,o=t.typeParams.map((s,a)=>"T"+a).join(", ");o&&(r=r+"<"+o+">"),this.bcs.registerStructType(r,n);for(let s of t.fields)await this.registerBCSTypes(s.type)}bcsRegistered=new Set;async registerBCSTypes(e){let t=e.getNormalizedSignature();if(!this.bcsRegistered.has(t)){this.bcsRegistered.add(t),await this._registerBCSType("0x1::string::String");for(let n of e.dependedTypes())await this._registerBCSType(n)}}async decodeBCS(e,t,n){return await this.registerBCSTypes(e),this.bcs.de(e.getNormalizedSignature(),t,n)}async decodeDevInspectResult(e){let t=[];if(e.results!=null)for(let n of e.results)if(n.returnValues)for(let r of n.returnValues){let o=D(r[1]),s=await this.decodeBCS(o,new Uint8Array(r[0])),a=await this.decodedType(s,o);t.push(a)}else t.push(null);return{...e,results_decoded:t}}};var xe=new Map;function A(c=S.MAIN_NET){let e=xe.get(c);return e||(e=new j(y(c)),xe.set(c,e)),e}process.stdout.write("");var f=class extends ee{moduleName;timestamp;checkpoint;transaction;eventIndex;coder;constructor(e,t,n,r,o,s,a,i){super(i),this.address=n.toLowerCase(),this.network=t,this.moduleName=e,this.timestamp=r,this.checkpoint=o,this.eventIndex=a,this.coder=A(t),s&&(this.transaction=s)}getChainId(){return this.network}getTimestamp(){return this.timestamp.getDate()}getMetaDataInternal(e,t){return{address:this.address,contractName:this.moduleName,blockNumber:this.checkpoint,transactionIndex:0,transactionHash:this.transaction?.digest||"",logIndex:this.eventIndex,chainId:this.getChainId(),name:e,labels:G(t)}}get client(){return y(this.network)}},$=class extends ee{timestamp;checkpoint;coder;txDigest;constructor(e,t,n,r,o,s){super(s),this.address=t,this.network=e,this.timestamp=n,this.checkpoint=r,this.txDigest=o,this.coder=A(e)}getChainId(){return this.network}getTimestamp(){return this.timestamp.getDate()}getMetaDataInternal(e,t){return{address:this.address,contractName:"*",blockNumber:this.checkpoint,transactionIndex:-1,transactionHash:this.txDigest,logIndex:0,chainId:this.getChainId(),name:e,labels:G(t)}}get client(){return y(this.network)}},te=class extends Ce{address;network;checkpoint;timestamp;coder;contractName="address";constructor(e,t,n,r,o){super(o),this.address=t,this.network=e,this.checkpoint=n,this.timestamp=r,this.coder=A(e)}getChainId(){return this.network}getMetaDataInternal(e,t){return{address:this.address,contractName:this.contractName,blockNumber:this.checkpoint,transactionIndex:0,transactionHash:"",logIndex:0,chainId:this.getChainId(),name:e,labels:G(t)}}get client(){return y(this.network)}getTimestamp(){return this.timestamp.getDate()}},K=class extends te{contractName="object";objectId;constructor(e,t,n,r,o){super(e,t,n,r,o),this.objectId=t}};process.stdout.write("");function ye(c){let e=c.transaction?.data.transaction;if(!e)return[];let t=e.kind==="ProgrammableTransaction"?e:void 0;return t?t.transactions.flatMap(n=>{if("MoveCall"in n){let r=n.MoveCall;return r.package=he(r.package),[r]}return[]}):[]}process.stdout.write("");var H={resourceChanges:!1,allEvents:!1,inputs:!1};function ne(c){return{startCheckpoint:c.startCheckpoint||0n,address:c.address==="*"?"*":E(c.address),network:c.network||S.MAIN_NET,baseLabels:c.baseLabels}}var re=class extends Ne{},N=re;w(N,"INSTANCE",new re);var R=class{moduleName;config;eventHandlers=[];callHandlers=[];objectChangeHandlers=[];coder;constructor(e,t){this.moduleName=e,this.config=ne(t),N.INSTANCE.addValue(this),this.coder=A(this.config.network)}getChainId(){return this.config.network}onMoveEvent(e,t,n){let r=[],o=T.fromPartial({...H,...n});Array.isArray(t)?r=t:r.push(t);let s=this,a=new Set(r.map(i=>i.type));return this.eventHandlers.push({handler:async function(i){if(!i.transaction)throw new u.ServerError(u.Status.INVALID_ARGUMENT,"event is null");let l=i.transaction;if(!l.events||!l.events.length)throw new u.ServerError(u.Status.INVALID_ARGUMENT,"no event in the transactions");let b=[];for(let p of l.events){let M=Number(p.id.eventSeq)||0,[ue,k,X]=D(p.type).qname.split(x);if(!a.has([k,X].join(x)))continue;let V=new f(s.moduleName,s.config.network,s.config.address,i.timestamp||new Date(0),i.slot,l,M,s.config.baseLabels),je=await s.coder.decodeEvent(p);await e(je||p,V),b.push(V.stopAndGetResult())}return Me(b)},filters:r,fetchConfig:o}),this}onEntryFunctionCall(e,t,n){let r=[],o=T.fromPartial({...H,...n});Array.isArray(t)?r=t:r.push(t);let s=this,a=new Set(r.map(i=>i.function));return this.callHandlers.push({handler:async function(i){if(!i.transaction)throw new u.ServerError(u.Status.INVALID_ARGUMENT,"call is null");let l=i.transaction,b=new f(s.moduleName,s.config.network,s.config.address,i.timestamp||new Date(0),i.slot,l,0,s.config.baseLabels);if(l){let p=ye(l),M=l.transaction?.data?.transaction;if(!M)throw new u.ServerError(u.Status.INVALID_ARGUMENT,"Unexpected getTransactionKind get empty");let ue=M.kind==="ProgrammableTransaction"?M:void 0;for(let k of p){let X=[k.module,k.function].join(x);if(!a.has(X))continue;let V=await s.coder.decodeFunctionPayload(k,ue?.inputs||[]);await e(V,b)}}return b.stopAndGetResult()},filters:r,fetchConfig:o}),this}onEvent(e,t){return this.onMoveEvent(e,{type:""},t),this}onTransactionBlock(e,t,n){let r=T.fromPartial({...H,...n}),o=this;return this.callHandlers.push({handler:async function(s){if(!s.transaction)throw new u.ServerError(u.Status.INVALID_ARGUMENT,"transaction is null");let a=s.transaction,i=new f(o.moduleName,o.config.network,o.config.address,s.timestamp||new Date(0),s.slot,a,0,o.config.baseLabels);return a&&await e(a,i),i.stopAndGetResult()},filters:[{...t,function:""}],fetchConfig:r}),this}onObjectChange(e,t){if(this.config.network===S.TEST_NET)throw new u.ServerError(u.Status.INVALID_ARGUMENT,"object change not supported in testnet");let n=this;return this.objectChangeHandlers.push({handler:async function(r){let o=new $(n.config.network,n.config.address,r.timestamp||new Date(0),r.slot,r.txDigest,n.config.baseLabels);return await e(r.changes,o),o.stopAndGetResult()},type:t}),this}},B=class extends R{static bind(e){return new B("*",e)}},_=class extends R{static bind(e){return new _("*",{...e,address:"*"})}onTransactionBlock(e,t,n){return super.onTransactionBlock(e,t,n)}onObjectChange(e,t){return super.onObjectChange(e,t)}};process.stdout.write("");import{ListStateStorage as ke}from"@sentio/runtime";var W=P(z(),1);var oe={owned:!1},se=class extends ke{},g=se;w(g,"INSTANCE",new se);var F=class{config;ownerType;templateId;objectHandlers=[];constructor(e){this.config=ne(e),this.ownerType=e.ownerType,g.INSTANCE.addValue(this)}getChainId(){return this.config.network}onInterval(e,t,n,r,o){let s=this;return this.objectHandlers.push({handler:async function(a){let i=new K(s.config.network,s.config.address,a.slot,a.timestamp||new Date(0),s.config.baseLabels);return await s.doHandle(e,a,i),i.stopAndGetResult()},timeIntervalInMinutes:t,checkPointInterval:n,type:r,fetchConfig:{...oe,...o}}),this}onTimeInterval(e,t=60,n=240,r,o){return this.onInterval(e,{recentInterval:t,backfillInterval:n},void 0,r,o)}onCheckpointInterval(e,t=1e5,n=4e5,r,o){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:n},r,o)}},C=class extends F{callHandlers=[];static bind(e){return new C({...e,ownerType:U.ADDRESS})}doHandle(e,t,n){return e(t.objects,n)}onTransactionBlock(e,t,n){let r=T.fromPartial({...H,...n}),o={fromAndToAddress:{from:"",to:this.config.address},...t},s=this;return this.callHandlers.push({handler:async function(a){if(!a.transaction)throw new W.ServerError(W.Status.INVALID_ARGUMENT,"transaction is null");let i=a.transaction,l=new f("object",s.config.network,s.config.address,a.timestamp||new Date(0),a.slot,i,0,s.config.baseLabels);return i&&await e(i,l),l.stopAndGetResult()},filters:[{...o,function:""}],fetchConfig:r}),this}},v=class extends F{static bind(e){return new v({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:U.OBJECT,baseLabels:e.baseLabels})}doHandle(e,t,n){if(!t.self){console.log(`Sui object not existed in ${n.checkpoint}, please specific a start time`);return}return e(t.self,t.objects,n)}},I=class extends F{static bind(e){return new I({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:U.WRAPPED_OBJECT,baseLabels:e.baseLabels})}doHandle(e,t,n){return e(t.objects,n)}};process.stdout.write("");import{ListStateStorage as Pe}from"@sentio/runtime";var h=P(z(),1);var de=class extends Pe{},O=de;w(O,"INSTANCE",new de);var L=class{id;objectHandlers=[];binds=new Set;constructor(){this.id=O.INSTANCE.getValues().length,O.INSTANCE.addValue(this)}bind(e,t){e.network=e.network||t.network,e.startCheckpoint=e.startCheckpoint||t.checkpoint;let n=e.objectId||e.address;if(n==="*")throw new h.ServerError(h.Status.INVALID_ARGUMENT,"can't bind template instance with *");n=E(n);let r=[e.network,n].join("_");if(this.binds.has(r)){console.log(`Same object id can be bind to one template only once, ignore duplicate bind: ${r}`);return}this.binds.add(r);let o=this.createProcessor(e);for(let a of this.objectHandlers)o.onInterval(a.handler,a.timeIntervalInMinutes,a.checkpointInterval,a.type,a.fetchConfig);let s=o.config;t.update({states:{configUpdated:!0}}),J.INSTANCE.addValue({templateId:this.id,contract:{name:"",chainId:s.network,address:s.address,abi:""},startBlock:s.startCheckpoint,endBlock:0n,baseLabels:s.baseLabels}),console.log(`successfully bind template ${r}`)}unbind(e,t){e.network=e.network||t.network,e.startCheckpoint=e.startCheckpoint||t.checkpoint;let n=e.objectId||e.address;if(n==="*")throw new h.ServerError(h.Status.INVALID_ARGUMENT,"can't delete template instance bind with *");n=E(n);let r=[e.network,n].join("_");if(!this.binds.has(r)){console.log(`the template instance ${r} not existed or already unbind`);return}this.binds.delete(r);let o=0,s=J.INSTANCE.unregister();for(let i of s){if(i.contract?.chainId===e.network&&i.contract.address==n){o++;continue}J.INSTANCE.addValue(i)}if(o!==1)throw new h.ServerError(h.Status.INVALID_ARGUMENT,`Failed to delete template instance ${r}, deleted ${o} times`);let a=g.INSTANCE.unregister();o=0;for(let i of a){if(i.templateId===this.id&&i.config.network==e.network&&i.config.address===n){o++;continue}g.INSTANCE.addValue(i)}if(o!==1)throw new h.ServerError(h.Status.INVALID_ARGUMENT,`Failed to delete processor for template ${this.id}, ${r}. deleted ${o} times`);console.log(`successfully unbind template ${r}`),t.update({states:{configUpdated:!0}})}onInterval(e,t,n,r,o){return this.objectHandlers.push({handler:e,timeIntervalInMinutes:t,checkpointInterval:n,type:r,fetchConfig:{...oe,...o}}),this}onTimeInterval(e,t=60,n=240,r,o){return this.onInterval(e,{recentInterval:t,backfillInterval:n},void 0,r,o)}onCheckpointInterval(e,t=1e5,n=4e5,r,o){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:n},r,o)}};var ie=class extends L{handlers=[];createProcessor(e){let t=C.bind(e);for(let n of this.handlers)t.onTransactionBlock(n.handler,n.filter,n.fetchConfig);return t.templateId=this.id,t}onTransactionBlock(e,t,n){return this.handlers.push({handler:e,filter:t,fetchConfig:n}),this}},ae=class extends L{createProcessor(e){let t=v.bind(e);return t.templateId=this.id,t}},ce=class extends L{createProcessor(e){let t=I.bind(e);return t.templateId=this.id,t}};process.stdout.write("");process.stdout.write("");import{errorString as Y,mergeProcessResults as Z,Plugin as Ee,PluginManager as De,USER_PROCESSOR as He}from"@sentio/runtime";var d=P(z(),1);var le=P(Ae(),1);var Q=class extends Ee{name="SuiPlugin";handlers={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};async start(e){await Te(),console.log("total instances:",e.templateInstances.length);let t=new Set(Object.values(le.SuiChainId));for(let n of e.templateInstances){if(!t.has(n.contract?.chainId||""))continue;console.log("start template instance",n.templateId),O.INSTANCE.getValues()[n.templateId].bind({address:n.contract?.address||"",objectId:n.contract?.address||"",network:n.contract?.chainId||S.MAIN_NET,startCheckpoint:n.startBlock||0n,baseLabels:n.baseLabels},Re)}}async configure(e){let t={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};for(let n of N.INSTANCE.getValues()){let r=pe.fromPartial({transactionConfig:[],processorType:He,contract:{name:n.moduleName,chainId:n.config.network,address:n.config.address,abi:""},startBlock:n.config.startCheckpoint});for(let o of n.eventHandlers){let s=t.suiEventHandlers.push(o.handler)-1,a={filters:o.filters.map(i=>({type:i.type,account:i.account||""})),fetchConfig:o.fetchConfig,handlerId:s};r.moveEventConfigs.push(a)}for(let o of n.callHandlers){let s=t.suiCallHandlers.push(o.handler)-1,a={filters:o.filters.map(i=>({function:i.function,typeArguments:i.typeArguments||[],withTypeArguments:!!i.typeArguments,includeFailed:i.includeFailed||!1,publicKeyPrefix:i.publicKeyPrefix||"",fromAndToAddress:i.fromAndToAddress})),fetchConfig:o.fetchConfig,handlerId:s};r.moveCallConfigs.push(a)}for(let o of n.objectChangeHandlers){let s=t.suiObjectChangeHandlers.push(o.handler)-1,a={type:o.type,handlerId:s};r.moveResourceChangeConfigs.push(a)}e.contractConfigs.push(r)}for(let n of g.INSTANCE.getValues()){let r=fe.fromPartial({address:n.config.address,chainId:n.getChainId(),startBlock:n.config.startCheckpoint});for(let o of n.objectHandlers){let s=t.suiObjectHandlers.push(o.handler)-1;r.moveIntervalConfigs.push({intervalConfig:{handlerId:s,minutes:0,minutesInterval:o.timeIntervalInMinutes,slot:0,slotInterval:o.checkPointInterval,fetchConfig:void 0},type:o.type||"",ownerType:n.ownerType,fetchConfig:o.fetchConfig})}if(n instanceof C)for(let o of n.callHandlers){let s=t.suiCallHandlers.push(o.handler)-1,a={filters:o.filters.map(i=>({function:i.function,typeArguments:i.typeArguments||[],withTypeArguments:!!i.typeArguments,includeFailed:i.includeFailed||!1,publicKeyPrefix:i.publicKeyPrefix||"",fromAndToAddress:i.fromAndToAddress})),fetchConfig:o.fetchConfig,handlerId:s};r.moveCallConfigs.push(a)}e.accountConfigs.push(r)}this.handlers=t}async processSuiEvent(e){if(!e.data?.suiEvent)throw new d.ServerError(d.Status.INVALID_ARGUMENT,"Event can't be empty");let t=[],n=e.data.suiEvent;for(let r of e.handlerIds)t.push(this.handlers.suiEventHandlers[r](n).catch(o=>{throw new d.ServerError(d.Status.INTERNAL,"error processing event: "+JSON.stringify(n)+`
3
3
  `+Y(o))}));return Z(await Promise.all(t))}async processSuiFunctionCall(e){if(!e.data?.suiCall)throw new d.ServerError(d.Status.INVALID_ARGUMENT,"Call can't be empty");let t=e.data.suiCall,n=[];for(let r of e.handlerIds){let o=this.handlers.suiCallHandlers[r](t).catch(s=>{throw new d.ServerError(d.Status.INTERNAL,"error processing call: "+JSON.stringify(t)+`
4
4
  `+Y(s))});n.push(o)}return Z(await Promise.all(n))}async processSuiObject(e){if(!e.data?.suiObject)throw new d.ServerError(d.Status.INVALID_ARGUMENT,"Object can't be empty");let t=e.data.suiObject,n=[];for(let r of e.handlerIds)n.push(this.handlers.suiObjectHandlers[r](t).catch(o=>{throw new d.ServerError(d.Status.INTERNAL,"error processing object: "+JSON.stringify(t)+`
5
5
  `+Y(o))}));return Z(await Promise.all(n))}async processSuiObjectChange(e){if(!e.data?.suiObjectChange)throw new d.ServerError(d.Status.INVALID_ARGUMENT,"Object change can't be empty");let t=e.data.suiObjectChange,n=[];for(let r of e.handlerIds)n.push(this.handlers.suiObjectChangeHandlers[r](t).catch(o=>{throw new d.ServerError(d.Status.INTERNAL,"error processing object change: "+JSON.stringify(t)+`
6
6
  `+Y(o))}));return Z(await Promise.all(n))}supportedHandlers=[m.SUI_EVENT,m.SUI_CALL,m.SUI_OBJECT,m.SUI_OBJECT_CHANGE];processBinding(e){switch(e.handlerType){case m.SUI_EVENT:return this.processSuiEvent(e);case m.SUI_CALL:return this.processSuiFunctionCall(e);case m.SUI_OBJECT:return this.processSuiObject(e);case m.SUI_OBJECT_CHANGE:return this.processSuiObjectChange(e);default:throw new d.ServerError(d.Status.INVALID_ARGUMENT,"No handle type registered "+e.handlerType)}}};De.INSTANCE.register(new Q);var Re=new f("",le.SuiChainId.SUI_MAINNET,"",new Date,0n,{},0,{});process.stdout.write("");process.stdout.write("");export{j as a,A as b,f as c,$ as d,te as e,K as f,ye as g,R as h,B as i,_ as j,C as k,v as l,I as m,ie as n,ae as o,ce as p,Q as q};
7
- //# sourceMappingURL=chunk-CNY6XZBB.js.map
7
+ //# sourceMappingURL=chunk-PJ5BOSWK.js.map