@sentio/sdk 0.6.5 → 1.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +55 -0
- package/lib/aptos/api.d.ts +2 -0
- package/lib/aptos/api.js +14 -0
- package/lib/aptos/api.js.map +1 -0
- package/lib/aptos/aptos-plugin.d.ts +14 -0
- package/lib/aptos/aptos-plugin.js +190 -0
- package/lib/aptos/aptos-plugin.js.map +1 -0
- package/lib/aptos/aptos-processor.d.ts +75 -0
- package/lib/aptos/aptos-processor.js +193 -0
- package/lib/aptos/aptos-processor.js.map +1 -0
- package/lib/aptos/context.d.ts +22 -0
- package/lib/aptos/context.js +69 -0
- package/lib/aptos/context.js.map +1 -0
- package/lib/aptos/index.d.ts +9 -0
- package/lib/aptos/index.js +34 -0
- package/lib/aptos/index.js.map +1 -0
- package/lib/aptos/models.d.ts +23 -0
- package/lib/aptos/models.js +3 -0
- package/lib/aptos/models.js.map +1 -0
- package/lib/aptos/network.d.ts +14 -0
- package/lib/aptos/network.js +46 -0
- package/lib/aptos/network.js.map +1 -0
- package/lib/aptos/runtime.d.ts +2 -0
- package/lib/aptos/runtime.js +16 -0
- package/lib/aptos/runtime.js.map +1 -0
- package/lib/aptos/type-registry.d.ts +21 -0
- package/lib/aptos/type-registry.js +156 -0
- package/lib/aptos/type-registry.js.map +1 -0
- package/lib/aptos/types.d.ts +9 -0
- package/lib/aptos/types.js +135 -0
- package/lib/aptos/types.js.map +1 -0
- package/{dist/numberish.test.d.ts → lib/aptos/types.test.d.ts} +0 -0
- package/lib/aptos/types.test.js.map +1 -0
- package/lib/aptos/utils.d.ts +7 -0
- package/lib/aptos/utils.js +27 -0
- package/lib/aptos/utils.js.map +1 -0
- package/lib/aptos-codegen/codegen.d.ts +23 -0
- package/lib/aptos-codegen/codegen.js +364 -0
- package/lib/aptos-codegen/codegen.js.map +1 -0
- package/lib/aptos-codegen/typegen.d.ts +17 -0
- package/lib/aptos-codegen/typegen.js +142 -0
- package/lib/aptos-codegen/typegen.js.map +1 -0
- package/lib/binds.d.ts +12 -0
- package/lib/binds.js +38 -0
- package/lib/binds.js.map +1 -0
- package/lib/builtin/aptos/0x1.d.ts +1913 -0
- package/lib/builtin/aptos/0x1.js +2748 -0
- package/lib/builtin/aptos/0x1.js.map +1 -0
- package/lib/builtin/aptos/0x3.d.ts +482 -0
- package/lib/builtin/aptos/0x3.js +526 -0
- package/lib/builtin/aptos/0x3.js.map +1 -0
- package/lib/builtin/aptos/index.d.ts +2 -0
- package/{dist/builtin/internal → lib/builtin/aptos}/index.js +3 -4
- package/lib/builtin/aptos/index.js.map +1 -0
- package/lib/builtin/eacaggregatorproxy/index.d.ts +2 -0
- package/lib/builtin/eacaggregatorproxy/index.js +22 -0
- package/lib/builtin/eacaggregatorproxy/index.js.map +1 -0
- package/lib/builtin/eacaggregatorproxy/test-utils.d.ts +6 -0
- package/lib/builtin/eacaggregatorproxy/test-utils.js +57 -0
- package/lib/builtin/eacaggregatorproxy/test-utils.js.map +1 -0
- package/lib/builtin/erc1155/index.d.ts +2 -0
- package/lib/builtin/erc1155/index.js +22 -0
- package/lib/builtin/erc1155/index.js.map +1 -0
- package/lib/builtin/erc1155/test-utils.d.ts +6 -0
- package/lib/builtin/erc1155/test-utils.js +57 -0
- package/lib/builtin/erc1155/test-utils.js.map +1 -0
- package/{dist → lib}/builtin/erc20/index.d.ts +1 -1
- package/{dist → lib}/builtin/erc20/index.js +1 -1
- package/lib/builtin/erc20/index.js.map +1 -0
- package/lib/builtin/erc20/test-utils.d.ts +5 -0
- package/lib/builtin/erc20/test-utils.js +46 -0
- package/lib/builtin/erc20/test-utils.js.map +1 -0
- package/lib/builtin/erc20bytes/index.d.ts +2 -0
- package/lib/builtin/erc20bytes/index.js +22 -0
- package/lib/builtin/erc20bytes/index.js.map +1 -0
- package/lib/builtin/erc20bytes/test-utils.d.ts +4 -0
- package/lib/builtin/erc20bytes/test-utils.js +35 -0
- package/lib/builtin/erc20bytes/test-utils.js.map +1 -0
- package/lib/builtin/erc721/index.d.ts +2 -0
- package/lib/builtin/erc721/index.js +22 -0
- package/lib/builtin/erc721/index.js.map +1 -0
- package/lib/builtin/erc721/test-utils.d.ts +5 -0
- package/lib/builtin/erc721/test-utils.js +46 -0
- package/lib/builtin/erc721/test-utils.js.map +1 -0
- package/lib/builtin/index.d.ts +6 -0
- package/lib/builtin/index.js +33 -0
- package/lib/builtin/index.js.map +1 -0
- package/lib/builtin/internal/EACAggregatorProxy.d.ts +460 -0
- package/lib/builtin/internal/EACAggregatorProxy.js +3 -0
- package/lib/builtin/internal/EACAggregatorProxy.js.map +1 -0
- package/lib/builtin/internal/ERC1155.d.ts +199 -0
- package/lib/builtin/internal/ERC1155.js +3 -0
- package/lib/builtin/internal/ERC1155.js.map +1 -0
- package/lib/builtin/internal/ERC20.d.ts +307 -0
- package/{dist/builtin/internal/Erc20.js → lib/builtin/internal/ERC20.js} +1 -1
- package/lib/builtin/internal/ERC20.js.map +1 -0
- package/{dist/builtin/internal/Erc20.d.ts → lib/builtin/internal/ERC20Bytes.d.ts} +62 -46
- package/lib/builtin/internal/ERC20Bytes.js +3 -0
- package/lib/builtin/internal/ERC20Bytes.js.map +1 -0
- package/lib/builtin/internal/ERC721.d.ts +252 -0
- package/lib/builtin/internal/ERC721.js +3 -0
- package/lib/builtin/internal/ERC721.js.map +1 -0
- package/lib/builtin/internal/WETH9.d.ts +221 -0
- package/lib/builtin/internal/WETH9.js +3 -0
- package/lib/builtin/internal/WETH9.js.map +1 -0
- package/{dist → lib}/builtin/internal/common.d.ts +0 -0
- package/{dist → lib}/builtin/internal/common.js +0 -0
- package/lib/builtin/internal/common.js.map +1 -0
- package/lib/builtin/internal/eacaggregatorproxy_processor.d.ts +294 -0
- package/lib/builtin/internal/eacaggregatorproxy_processor.js +761 -0
- package/lib/builtin/internal/eacaggregatorproxy_processor.js.map +1 -0
- package/lib/builtin/internal/erc1155_processor.d.ts +126 -0
- package/lib/builtin/internal/erc1155_processor.js +313 -0
- package/lib/builtin/internal/erc1155_processor.js.map +1 -0
- package/lib/builtin/internal/erc20_processor.d.ts +166 -0
- package/lib/builtin/internal/erc20_processor.js +418 -0
- package/lib/builtin/internal/erc20_processor.js.map +1 -0
- package/lib/builtin/internal/erc20bytes_processor.d.ts +101 -0
- package/lib/builtin/internal/erc20bytes_processor.js +311 -0
- package/lib/builtin/internal/erc20bytes_processor.js.map +1 -0
- package/lib/builtin/internal/erc721_processor.d.ts +155 -0
- package/lib/builtin/internal/erc721_processor.js +437 -0
- package/lib/builtin/internal/erc721_processor.js.map +1 -0
- package/lib/builtin/internal/factories/EACAggregatorProxy__factory.d.ts +46 -0
- package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js +528 -0
- package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js.map +1 -0
- package/{dist/builtin/internal/factories/Erc20__factory.d.ts → lib/builtin/internal/factories/ERC1155__factory.d.ts} +4 -4
- package/lib/builtin/internal/factories/ERC1155__factory.js +333 -0
- package/lib/builtin/internal/factories/ERC1155__factory.js.map +1 -0
- package/lib/builtin/internal/factories/ERC20Bytes__factory.d.ts +48 -0
- package/{dist/builtin/internal/factories/Erc20__factory.js → lib/builtin/internal/factories/ERC20Bytes__factory.js} +128 -89
- package/lib/builtin/internal/factories/ERC20Bytes__factory.js.map +1 -0
- package/lib/builtin/internal/factories/ERC20__factory.d.ts +42 -0
- package/lib/builtin/internal/factories/ERC20__factory.js +405 -0
- package/lib/builtin/internal/factories/ERC20__factory.js.map +1 -0
- package/lib/builtin/internal/factories/ERC721__factory.d.ts +51 -0
- package/lib/builtin/internal/factories/ERC721__factory.js +365 -0
- package/lib/builtin/internal/factories/ERC721__factory.js.map +1 -0
- package/lib/builtin/internal/factories/WETH9__factory.d.ts +45 -0
- package/lib/builtin/internal/factories/WETH9__factory.js +298 -0
- package/lib/builtin/internal/factories/WETH9__factory.js.map +1 -0
- package/lib/builtin/internal/factories/index.d.ts +6 -0
- package/lib/builtin/internal/factories/index.js +19 -0
- package/lib/builtin/internal/factories/index.js.map +1 -0
- package/lib/builtin/internal/index.d.ts +13 -0
- package/lib/builtin/internal/index.js +40 -0
- package/lib/builtin/internal/index.js.map +1 -0
- package/lib/builtin/internal/weth9_processor.d.ts +115 -0
- package/lib/builtin/internal/weth9_processor.js +353 -0
- package/lib/builtin/internal/weth9_processor.js.map +1 -0
- package/lib/builtin/solana/index.d.ts +2 -0
- package/lib/builtin/solana/index.js +19 -0
- package/lib/builtin/solana/index.js.map +1 -0
- package/lib/builtin/solana/spl-token-processor.d.ts +39 -0
- package/lib/builtin/solana/spl-token-processor.js +258 -0
- package/lib/builtin/solana/spl-token-processor.js.map +1 -0
- package/lib/builtin/solana/types.d.ts +427 -0
- package/lib/builtin/solana/types.js +203 -0
- package/lib/builtin/solana/types.js.map +1 -0
- package/lib/builtin/solana/wormhole-processor.d.ts +16 -0
- package/{dist/test-case/types/wormhole_processor.js → lib/builtin/solana/wormhole-processor.js} +57 -54
- package/lib/builtin/solana/wormhole-processor.js.map +1 -0
- package/lib/builtin/weth9/index.d.ts +2 -0
- package/lib/builtin/weth9/index.js +22 -0
- package/lib/builtin/weth9/index.js.map +1 -0
- package/lib/builtin/weth9/test-utils.d.ts +6 -0
- package/lib/builtin/weth9/test-utils.js +57 -0
- package/lib/builtin/weth9/test-utils.js.map +1 -0
- package/lib/chain-config.d.ts +6 -0
- package/lib/chain-config.js +3 -0
- package/lib/chain-config.js.map +1 -0
- package/lib/core/account-processor.d.ts +58 -0
- package/lib/core/account-processor.js +147 -0
- package/lib/core/account-processor.js.map +1 -0
- package/lib/core/base-context.d.ts +12 -0
- package/lib/core/base-context.js +25 -0
- package/lib/core/base-context.js.map +1 -0
- package/lib/core/base-processor-template.d.ts +42 -0
- package/{dist → lib/core}/base-processor-template.js +32 -6
- package/lib/core/base-processor-template.js.map +1 -0
- package/lib/core/base-processor.d.ts +39 -0
- package/lib/core/base-processor.js +153 -0
- package/lib/core/base-processor.js.map +1 -0
- package/lib/core/big-decimal.d.ts +1 -0
- package/lib/core/big-decimal.js +6 -0
- package/lib/core/big-decimal.js.map +1 -0
- package/{dist → lib/core}/bind-options.d.ts +5 -0
- package/{dist → lib/core}/bind-options.js +10 -1
- package/lib/core/bind-options.js.map +1 -0
- package/lib/core/context.d.ts +55 -0
- package/lib/core/context.js +162 -0
- package/lib/core/context.js.map +1 -0
- package/lib/core/eth-plugin.d.ts +14 -0
- package/lib/core/eth-plugin.js +221 -0
- package/lib/core/eth-plugin.js.map +1 -0
- package/lib/core/event-tracker.d.ts +26 -0
- package/lib/core/event-tracker.js +54 -0
- package/lib/core/event-tracker.js.map +1 -0
- package/lib/core/exporter.d.ts +13 -0
- package/lib/core/exporter.js +30 -0
- package/lib/core/exporter.js.map +1 -0
- package/lib/core/generic-processor.d.ts +10 -0
- package/lib/core/generic-processor.js +32 -0
- package/lib/core/generic-processor.js.map +1 -0
- package/{dist/test-case/erc20-template.test.d.ts → lib/core/generic-processor.test.d.ts} +0 -0
- package/lib/core/generic-processor.test.js.map +1 -0
- package/lib/core/index.d.ts +17 -0
- package/lib/core/index.js +46 -0
- package/lib/core/index.js.map +1 -0
- package/lib/core/logger.d.ts +14 -0
- package/lib/core/logger.js +42 -0
- package/lib/core/logger.js.map +1 -0
- package/lib/core/metadata.d.ts +7 -0
- package/lib/core/metadata.js +12 -0
- package/lib/core/metadata.js.map +1 -0
- package/lib/core/meter.d.ts +59 -0
- package/lib/core/meter.js +166 -0
- package/lib/core/meter.js.map +1 -0
- package/{dist/test-case/erc20.test.d.ts → lib/core/meter.test.d.ts} +0 -0
- package/lib/core/meter.test.js.map +1 -0
- package/lib/core/numberish.d.ts +8 -0
- package/lib/core/numberish.js +115 -0
- package/lib/core/numberish.js.map +1 -0
- package/{dist/test-case/mirrorworld.d.ts → lib/core/numberish.test.d.ts} +0 -0
- package/lib/core/numberish.test.js.map +1 -0
- package/lib/core/solana-context.d.ts +12 -0
- package/lib/core/solana-context.js +34 -0
- package/lib/core/solana-context.js.map +1 -0
- package/lib/core/solana-options.d.ts +9 -0
- package/lib/core/solana-options.js +13 -0
- package/lib/core/solana-options.js.map +1 -0
- package/lib/core/solana-plugin.d.ts +9 -0
- package/lib/core/solana-plugin.js +79 -0
- package/lib/core/solana-plugin.js.map +1 -0
- package/lib/core/solana-processor.d.ts +41 -0
- package/lib/core/solana-processor.js +90 -0
- package/lib/core/solana-processor.js.map +1 -0
- package/lib/core/sui-plugin.d.ts +8 -0
- package/lib/core/sui-plugin.js +46 -0
- package/lib/core/sui-plugin.js.map +1 -0
- package/lib/core/sui-processor.d.ts +26 -0
- package/lib/core/sui-processor.js +59 -0
- package/lib/core/sui-processor.js.map +1 -0
- package/lib/core/trace.d.ts +35 -0
- package/lib/core/trace.js +43 -0
- package/lib/core/trace.js.map +1 -0
- package/lib/endpoints.d.ts +6 -0
- package/lib/endpoints.js +11 -0
- package/lib/endpoints.js.map +1 -0
- package/lib/error.d.ts +7 -0
- package/lib/error.js +43 -0
- package/lib/error.js.map +1 -0
- package/{dist → lib}/gen/builtin.d.ts +0 -0
- package/{dist → lib}/gen/builtin.js +0 -0
- package/lib/gen/builtin.js.map +1 -0
- package/lib/gen/chainquery/protos/chainquery.d.ts +400 -0
- package/lib/gen/chainquery/protos/chainquery.js +972 -0
- package/lib/gen/chainquery/protos/chainquery.js.map +1 -0
- package/{dist → lib}/gen/google/protobuf/empty.d.ts +0 -0
- package/{dist → lib}/gen/google/protobuf/empty.js +0 -0
- package/lib/gen/google/protobuf/empty.js.map +1 -0
- package/lib/gen/google/protobuf/struct.d.ts +73 -0
- package/lib/gen/google/protobuf/struct.js +371 -0
- package/lib/gen/google/protobuf/struct.js.map +1 -0
- package/lib/gen/google/protobuf/timestamp.d.ts +18 -0
- package/lib/gen/google/protobuf/timestamp.js +71 -0
- package/lib/gen/google/protobuf/timestamp.js.map +1 -0
- package/lib/gen/index.d.ts +2 -0
- package/lib/gen/index.js +19 -0
- package/lib/gen/index.js.map +1 -0
- package/lib/gen/processor/protos/processor.d.ts +826 -0
- package/lib/gen/processor/protos/processor.js +3988 -0
- package/lib/gen/processor/protos/processor.js.map +1 -0
- package/lib/gen/service/price/protos/price.d.ts +85 -0
- package/lib/gen/service/price/protos/price.js +269 -0
- package/lib/gen/service/price/protos/price.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +48 -0
- package/lib/index.js.map +1 -0
- package/lib/loader.d.ts +5 -0
- package/lib/loader.js +30 -0
- package/lib/loader.js.map +1 -0
- package/lib/plugin.d.ts +15 -0
- package/lib/plugin.js +32 -0
- package/lib/plugin.js.map +1 -0
- package/{dist → lib}/processor-runner.d.ts +0 -0
- package/lib/processor-runner.js +102 -0
- package/lib/processor-runner.js.map +1 -0
- package/lib/promise-or-void.d.ts +1 -0
- package/lib/promise-or-void.js +3 -0
- package/lib/promise-or-void.js.map +1 -0
- package/{dist → lib}/provider.d.ts +2 -1
- package/{dist → lib}/provider.js +19 -9
- package/lib/provider.js.map +1 -0
- package/lib/service.d.ts +26 -0
- package/lib/service.js +225 -0
- package/lib/service.js.map +1 -0
- package/lib/solana-codegen/codegen.d.ts +1 -0
- package/lib/solana-codegen/codegen.js +113 -0
- package/lib/solana-codegen/codegen.js.map +1 -0
- package/lib/state/processor-state.d.ts +3 -0
- package/lib/state/processor-state.js +8 -0
- package/lib/state/processor-state.js.map +1 -0
- package/lib/state/state-storage.d.ts +17 -0
- package/lib/state/state-storage.js +60 -0
- package/lib/state/state-storage.js.map +1 -0
- package/{dist/test-case/solana.test.d.ts → lib/state/state-storage.test.d.ts} +0 -0
- package/lib/state/state-storage.test.js.map +1 -0
- package/lib/target-ethers-sentio/event-handler.d.ts +3 -0
- package/lib/target-ethers-sentio/event-handler.js +35 -0
- package/lib/target-ethers-sentio/event-handler.js.map +1 -0
- package/{dist/target-ethers-sentio/codegen.d.ts → lib/target-ethers-sentio/file.d.ts} +1 -0
- package/lib/target-ethers-sentio/file.js +226 -0
- package/lib/target-ethers-sentio/file.js.map +1 -0
- package/lib/target-ethers-sentio/functions-handler.d.ts +3 -0
- package/lib/target-ethers-sentio/functions-handler.js +50 -0
- package/lib/target-ethers-sentio/functions-handler.js.map +1 -0
- package/{dist → lib}/target-ethers-sentio/index.d.ts +1 -0
- package/{dist → lib}/target-ethers-sentio/index.js +16 -3
- package/{dist → lib}/target-ethers-sentio/index.js.map +1 -1
- package/lib/target-ethers-sentio/types.d.ts +4 -0
- package/lib/target-ethers-sentio/types.js +46 -0
- package/lib/target-ethers-sentio/types.js.map +1 -0
- package/lib/target-ethers-sentio/view-function.d.ts +5 -0
- package/lib/target-ethers-sentio/view-function.js +74 -0
- package/lib/target-ethers-sentio/view-function.js.map +1 -0
- package/{dist/cli/cli.d.ts → lib/test-abi-code-gen.d.ts} +0 -0
- package/lib/test-abi-code-gen.js +20 -0
- package/lib/test-abi-code-gen.js.map +1 -0
- package/lib/testing/index.d.ts +2 -0
- package/lib/testing/index.js +11 -0
- package/lib/testing/index.js.map +1 -0
- package/lib/testing/metric-utils.d.ts +5 -0
- package/lib/testing/metric-utils.js +50 -0
- package/lib/testing/metric-utils.js.map +1 -0
- package/lib/testing/test-processor-server.d.ts +42 -0
- package/lib/testing/test-processor-server.js +293 -0
- package/lib/testing/test-processor-server.js.map +1 -0
- package/lib/testing/test-provider.d.ts +1 -0
- package/lib/testing/test-provider.js +33 -0
- package/lib/testing/test-provider.js.map +1 -0
- package/lib/utils/chain.d.ts +89 -0
- package/lib/utils/chain.js +128 -0
- package/lib/utils/chain.js.map +1 -0
- package/lib/utils/chainlink-oracles-goerli.csv +8 -0
- package/lib/utils/chainlink-oracles.csv +217 -0
- package/lib/utils/conversion.d.ts +6 -0
- package/lib/utils/conversion.js +27 -0
- package/lib/utils/conversion.js.map +1 -0
- package/lib/utils/dex-price.d.ts +22 -0
- package/lib/utils/dex-price.js +114 -0
- package/lib/utils/dex-price.js.map +1 -0
- package/{dist/test-case/wormhole-token-bridge.d.ts → lib/utils/dex-price.test.d.ts} +0 -0
- package/lib/utils/dex-price.test.js.map +1 -0
- package/lib/utils/erc20.test.d.ts +1 -0
- package/lib/utils/erc20.test.js.map +1 -0
- package/lib/utils/index.d.ts +4 -0
- package/lib/utils/index.js +31 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/price.d.ts +52 -0
- package/lib/utils/price.js +86 -0
- package/lib/utils/price.js.map +1 -0
- package/lib/utils/token.d.ts +15 -0
- package/lib/utils/token.js +60 -0
- package/lib/utils/token.js.map +1 -0
- package/package.json +43 -41
- package/src/abis/EACAggregatorProxy.json +227 -0
- package/src/abis/ERC1155.json +314 -0
- package/src/abis/ERC20.json +174 -0
- package/src/abis/ERC20Bytes.json +236 -0
- package/src/abis/ERC721.json +346 -0
- package/src/abis/WETH9.json +153 -0
- package/src/abis/aptos/0x1.json +9205 -0
- package/src/abis/aptos/0x3.json +1515 -0
- package/src/aptos/api.ts +11 -0
- package/src/aptos/aptos-plugin.ts +217 -0
- package/src/aptos/aptos-processor.ts +305 -0
- package/src/aptos/context.ts +75 -0
- package/src/aptos/index.ts +10 -0
- package/src/aptos/models.ts +34 -0
- package/src/aptos/network.ts +42 -0
- package/src/aptos/runtime.ts +13 -0
- package/src/aptos/type-registry.ts +187 -0
- package/src/aptos/types.ts +149 -0
- package/src/aptos/utils.ts +26 -0
- package/src/aptos-codegen/codegen.ts +428 -0
- package/src/aptos-codegen/tsconfig.json +9 -0
- package/src/aptos-codegen/typegen.ts +153 -0
- package/src/binds.ts +45 -0
- package/src/builtin/aptos/0x1.ts +4210 -0
- package/src/builtin/aptos/0x3.ts +888 -0
- package/src/builtin/aptos/index.ts +2 -0
- package/src/builtin/eacaggregatorproxy/index.ts +6 -0
- package/src/builtin/eacaggregatorproxy/test-utils.ts +89 -0
- package/src/builtin/erc1155/index.ts +6 -0
- package/src/builtin/erc1155/test-utils.ts +89 -0
- package/src/builtin/erc20/index.ts +6 -0
- package/src/builtin/erc20/test-utils.ts +71 -0
- package/src/builtin/erc20bytes/index.ts +6 -0
- package/src/builtin/erc20bytes/test-utils.ts +53 -0
- package/src/builtin/erc721/index.ts +6 -0
- package/src/builtin/erc721/test-utils.ts +71 -0
- package/src/builtin/index.ts +7 -0
- package/src/builtin/internal/EACAggregatorProxy.ts +861 -0
- package/src/builtin/internal/ERC1155.ts +529 -0
- package/src/builtin/internal/ERC20.ts +679 -0
- package/src/builtin/internal/ERC20Bytes.ts +384 -0
- package/src/builtin/internal/ERC721.ts +639 -0
- package/src/builtin/internal/WETH9.ts +480 -0
- package/src/builtin/internal/common.ts +46 -0
- package/src/builtin/internal/eacaggregatorproxy_processor.ts +1219 -0
- package/src/builtin/internal/erc1155_processor.ts +534 -0
- package/src/builtin/internal/erc20_processor.ts +663 -0
- package/src/builtin/internal/erc20bytes_processor.ts +474 -0
- package/src/builtin/internal/erc721_processor.ts +686 -0
- package/src/builtin/internal/factories/EACAggregatorProxy__factory.ts +534 -0
- package/src/builtin/internal/factories/ERC1155__factory.ts +336 -0
- package/src/builtin/internal/factories/ERC20Bytes__factory.ts +258 -0
- package/src/builtin/internal/factories/ERC20__factory.ts +405 -0
- package/src/builtin/internal/factories/ERC721__factory.ts +365 -0
- package/src/builtin/internal/factories/WETH9__factory.ts +298 -0
- package/src/builtin/internal/factories/index.ts +9 -0
- package/src/builtin/internal/index.ts +16 -0
- package/src/builtin/internal/weth9_processor.ts +536 -0
- package/src/builtin/solana/index.ts +2 -0
- package/src/builtin/solana/spl-token-processor.ts +298 -0
- package/src/builtin/solana/types.ts +279 -0
- package/src/builtin/solana/wormhole-processor.ts +178 -0
- package/src/builtin/weth9/index.ts +6 -0
- package/src/builtin/weth9/test-utils.ts +89 -0
- package/src/chain-config.ts +6 -0
- package/src/core/account-processor.ts +217 -0
- package/src/core/base-context.ts +28 -0
- package/src/core/base-processor-template.ts +150 -0
- package/src/core/base-processor.ts +217 -0
- package/src/core/big-decimal.ts +1 -0
- package/src/core/bind-options.ts +45 -0
- package/src/core/context.ts +183 -0
- package/src/core/eth-plugin.ts +255 -0
- package/src/core/event-tracker.ts +69 -0
- package/src/core/exporter.ts +32 -0
- package/src/core/generic-processor.ts +34 -0
- package/src/core/index.ts +22 -0
- package/src/core/logger.ts +49 -0
- package/src/core/metadata.ts +11 -0
- package/src/core/meter.ts +179 -0
- package/src/core/numberish.ts +121 -0
- package/src/core/solana-context.ts +35 -0
- package/src/core/solana-options.ts +10 -0
- package/src/core/solana-plugin.ts +97 -0
- package/src/core/solana-processor.ts +109 -0
- package/src/core/sui-plugin.ts +54 -0
- package/src/core/sui-processor.ts +65 -0
- package/src/core/trace.ts +86 -0
- package/src/endpoints.ts +9 -0
- package/src/error.ts +45 -0
- package/src/gen/builtin.ts +22 -0
- package/src/gen/chainquery/protos/chainquery.ts +1212 -0
- package/src/gen/google/protobuf/empty.ts +58 -0
- package/src/gen/google/protobuf/struct.ts +422 -0
- package/src/gen/google/protobuf/timestamp.ts +85 -0
- package/src/gen/index.ts +3 -0
- package/src/gen/processor/protos/processor.ts +4619 -0
- package/src/gen/service/price/protos/price.ts +329 -0
- package/src/index.ts +13 -0
- package/src/loader.ts +24 -0
- package/src/plugin.ts +41 -0
- package/src/processor-runner.ts +93 -0
- package/src/promise-or-void.ts +1 -0
- package/src/provider.ts +74 -0
- package/src/service.ts +255 -0
- package/src/solana-codegen/codegen.ts +116 -0
- package/src/state/processor-state.ts +3 -0
- package/src/state/state-storage.ts +65 -0
- package/src/target-ethers-sentio/event-handler.ts +31 -0
- package/src/target-ethers-sentio/file.ts +242 -0
- package/src/target-ethers-sentio/functions-handler.ts +57 -0
- package/src/target-ethers-sentio/index.ts +60 -0
- package/src/target-ethers-sentio/tsconfig.json +9 -0
- package/src/target-ethers-sentio/types.ts +42 -0
- package/src/target-ethers-sentio/view-function.ts +79 -0
- package/src/test-abi-code-gen.ts +16 -0
- package/src/testing/index.ts +4 -0
- package/src/testing/metric-utils.ts +48 -0
- package/src/testing/test-processor-server.ts +334 -0
- package/src/testing/test-provider.ts +33 -0
- package/src/types/global.d.ts +15 -0
- package/src/utils/chain.ts +127 -0
- package/src/utils/chainlink-oracles-goerli.csv +8 -0
- package/src/utils/chainlink-oracles.csv +217 -0
- package/src/utils/conversion.ts +27 -0
- package/src/utils/dex-price.ts +136 -0
- package/src/utils/index.ts +4 -0
- package/src/utils/price.ts +95 -0
- package/src/utils/token.ts +70 -0
- package/dist/base-processor-template.d.ts +0 -20
- package/dist/base-processor-template.js.map +0 -1
- package/dist/base-processor.d.ts +0 -22
- package/dist/base-processor.js +0 -103
- package/dist/base-processor.js.map +0 -1
- package/dist/bind-options.js.map +0 -1
- package/dist/binds.d.ts +0 -10
- package/dist/binds.js +0 -58
- package/dist/binds.js.map +0 -1
- package/dist/builtin/erc20/index.js.map +0 -1
- package/dist/builtin/internal/Erc20.js.map +0 -1
- package/dist/builtin/internal/common.js.map +0 -1
- package/dist/builtin/internal/erc20_processor.d.ts +0 -38
- package/dist/builtin/internal/erc20_processor.js +0 -209
- package/dist/builtin/internal/erc20_processor.js.map +0 -1
- package/dist/builtin/internal/factories/Erc20__factory.js.map +0 -1
- package/dist/builtin/internal/factories/index.d.ts +0 -1
- package/dist/builtin/internal/factories/index.js +0 -9
- package/dist/builtin/internal/factories/index.js.map +0 -1
- package/dist/builtin/internal/index.d.ts +0 -3
- package/dist/builtin/internal/index.js.map +0 -1
- package/dist/cli/build.d.ts +0 -3
- package/dist/cli/build.js +0 -160
- package/dist/cli/build.js.map +0 -1
- package/dist/cli/cli.js +0 -212
- package/dist/cli/cli.js.map +0 -1
- package/dist/cli/config.d.ts +0 -14
- package/dist/cli/config.js +0 -24
- package/dist/cli/config.js.map +0 -1
- package/dist/cli/key.d.ts +0 -2
- package/dist/cli/key.js +0 -44
- package/dist/cli/key.js.map +0 -1
- package/dist/cli/solana-code-gen.d.ts +0 -2
- package/dist/cli/solana-code-gen.js +0 -19
- package/dist/cli/solana-code-gen.js.map +0 -1
- package/dist/cli/upload.d.ts +0 -2
- package/dist/cli/upload.js +0 -59
- package/dist/cli/upload.js.map +0 -1
- package/dist/cli/webpack.config.js +0 -41
- package/dist/context.d.ts +0 -39
- package/dist/context.js +0 -75
- package/dist/context.js.map +0 -1
- package/dist/contract-namer.d.ts +0 -6
- package/dist/contract-namer.js +0 -20
- package/dist/contract-namer.js.map +0 -1
- package/dist/error.d.ts +0 -2
- package/dist/error.js +0 -39
- package/dist/error.js.map +0 -1
- package/dist/gen/builtin.js.map +0 -1
- package/dist/gen/google/protobuf/empty.js.map +0 -1
- package/dist/gen/processor/protos/processor.d.ts +0 -598
- package/dist/gen/processor/protos/processor.js +0 -2424
- package/dist/gen/processor/protos/processor.js.map +0 -1
- package/dist/index.d.ts +0 -13
- package/dist/index.js +0 -54
- package/dist/index.js.map +0 -1
- package/dist/meter.d.ts +0 -25
- package/dist/meter.js +0 -114
- package/dist/meter.js.map +0 -1
- package/dist/numberish.d.ts +0 -7
- package/dist/numberish.js +0 -74
- package/dist/numberish.js.map +0 -1
- package/dist/numberish.test.js +0 -54
- package/dist/numberish.test.js.map +0 -1
- package/dist/processor-runner.js +0 -67
- package/dist/processor-runner.js.map +0 -1
- package/dist/processor-state.d.ts +0 -16
- package/dist/processor-state.js +0 -20
- package/dist/processor-state.js.map +0 -1
- package/dist/provider.js.map +0 -1
- package/dist/service.d.ts +0 -22
- package/dist/service.js +0 -361
- package/dist/service.js.map +0 -1
- package/dist/solana/builtin/spl-token-processor.d.ts +0 -25
- package/dist/solana/builtin/spl-token-processor.js +0 -152
- package/dist/solana/builtin/spl-token-processor.js.map +0 -1
- package/dist/solana-processor.d.ts +0 -28
- package/dist/solana-processor.js +0 -79
- package/dist/solana-processor.js.map +0 -1
- package/dist/target-ethers-sentio/codegen.js +0 -201
- package/dist/target-ethers-sentio/codegen.js.map +0 -1
- package/dist/test-case/clean-test.d.ts +0 -1
- package/dist/test-case/clean-test.js +0 -9
- package/dist/test-case/clean-test.js.map +0 -1
- package/dist/test-case/erc20-template.d.ts +0 -1
- package/dist/test-case/erc20-template.js +0 -23
- package/dist/test-case/erc20-template.js.map +0 -1
- package/dist/test-case/erc20-template.test.js +0 -69
- package/dist/test-case/erc20-template.test.js.map +0 -1
- package/dist/test-case/erc20.d.ts +0 -1
- package/dist/test-case/erc20.js +0 -42
- package/dist/test-case/erc20.js.map +0 -1
- package/dist/test-case/erc20.test.js +0 -154
- package/dist/test-case/erc20.test.js.map +0 -1
- package/dist/test-case/mirrorworld.js +0 -42
- package/dist/test-case/mirrorworld.js.map +0 -1
- package/dist/test-case/solana.test.js +0 -58
- package/dist/test-case/solana.test.js.map +0 -1
- package/dist/test-case/types/game_wallet.d.ts +0 -45
- package/dist/test-case/types/game_wallet.js +0 -1396
- package/dist/test-case/types/game_wallet.js.map +0 -1
- package/dist/test-case/types/game_wallet_processor.d.ts +0 -107
- package/dist/test-case/types/game_wallet_processor.js +0 -102
- package/dist/test-case/types/game_wallet_processor.js.map +0 -1
- package/dist/test-case/types/wormhole_processor.d.ts +0 -16
- package/dist/test-case/types/wormhole_processor.js.map +0 -1
- package/dist/test-case/wormhole-token-bridge.js +0 -7
- package/dist/test-case/wormhole-token-bridge.js.map +0 -1
- package/dist/utils/chainmap.d.ts +0 -4
- package/dist/utils/chainmap.js +0 -95
- package/dist/utils/chainmap.js.map +0 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.js +0 -6
- package/dist/utils/index.js.map +0 -1
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// copy from https://github.com/DefiLlama/chainlist/blob/main/constants/chainIds.js
|
|
3
|
+
// and https://besu.hyperledger.org/en/stable/Concepts/NetworkID-And-ChainID/
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.getChainType = exports.getChainName = exports.CHAIN_MAP = exports.CHAIN_IDS = void 0;
|
|
6
|
+
exports.CHAIN_IDS = {
|
|
7
|
+
KARDIA: '0',
|
|
8
|
+
ETHEREUM: '1',
|
|
9
|
+
EXPANSE: '2',
|
|
10
|
+
ROPSTEN: '3',
|
|
11
|
+
RINKEBY: '4',
|
|
12
|
+
GOERLI: '5',
|
|
13
|
+
KOTTI: '6',
|
|
14
|
+
UBIQ: '8',
|
|
15
|
+
OPTIMISM: '10',
|
|
16
|
+
SONGBIRD: '19',
|
|
17
|
+
ELASTOS: '20',
|
|
18
|
+
CRONOS: '25',
|
|
19
|
+
RSK: '30',
|
|
20
|
+
TELOS: '40',
|
|
21
|
+
XDC: '50',
|
|
22
|
+
CSC: '52',
|
|
23
|
+
ZYX: '55',
|
|
24
|
+
BINANCE: '56',
|
|
25
|
+
SYSCOIN: '57',
|
|
26
|
+
GOCHAIN: '60',
|
|
27
|
+
ETHCLASSIC: '61',
|
|
28
|
+
MORDOR: '63',
|
|
29
|
+
OKEXCHAIN: '66',
|
|
30
|
+
HOO: '70',
|
|
31
|
+
METER: '82',
|
|
32
|
+
TOMOCHAIN: '88',
|
|
33
|
+
XDAI: '100',
|
|
34
|
+
VELAS: '106',
|
|
35
|
+
THUNDERCORE: '108',
|
|
36
|
+
FUSE: '122',
|
|
37
|
+
HECO: '128',
|
|
38
|
+
POLYGON: '137',
|
|
39
|
+
XDAIARB: '200',
|
|
40
|
+
ASTOR: '212',
|
|
41
|
+
ENERGYWEB: '246',
|
|
42
|
+
FANTOM: '250',
|
|
43
|
+
HPB: '269',
|
|
44
|
+
BOBA: '288',
|
|
45
|
+
KUCOIN: '321',
|
|
46
|
+
SHIDEN: '336',
|
|
47
|
+
THETA: '361',
|
|
48
|
+
SX: '416',
|
|
49
|
+
CANDLE: '534',
|
|
50
|
+
ASTAR: '592',
|
|
51
|
+
CALLISTO: '820',
|
|
52
|
+
WANCHAIN: '888',
|
|
53
|
+
METIS: '1088',
|
|
54
|
+
OMCHAIN: '1246',
|
|
55
|
+
MOONBEAM: '1284',
|
|
56
|
+
MOONRIVER: '1285',
|
|
57
|
+
DEV: '2018',
|
|
58
|
+
RONIN: '2020',
|
|
59
|
+
KAVA: '2222',
|
|
60
|
+
EZCHAIN: '2612',
|
|
61
|
+
PHI: '4181',
|
|
62
|
+
IOTEX: '4689',
|
|
63
|
+
XLC: '5050',
|
|
64
|
+
NAHMII: '5551',
|
|
65
|
+
NMACTEST: '7777',
|
|
66
|
+
KLAYTN: '8217',
|
|
67
|
+
EVMOS: '9001',
|
|
68
|
+
SMARTBCH: '10000',
|
|
69
|
+
CRYSTALEUM: '103090',
|
|
70
|
+
FUSION: '32659',
|
|
71
|
+
ARBITRUM: '42161',
|
|
72
|
+
CELO: '42220',
|
|
73
|
+
OASIS: '42262',
|
|
74
|
+
AVALANCHE: '43114',
|
|
75
|
+
GODWOKEN: '71402',
|
|
76
|
+
AKROMA: '200625',
|
|
77
|
+
POLIS: '333999',
|
|
78
|
+
ARBITRUM_TEST: '421613',
|
|
79
|
+
SEPOLIA: '11155111',
|
|
80
|
+
AURORA: '1313161554',
|
|
81
|
+
HARMONY: '1666600000',
|
|
82
|
+
PALM: '11297108109',
|
|
83
|
+
CURIO: '836542336838601',
|
|
84
|
+
SOLANA_MAINNET: 'sol_mainnet',
|
|
85
|
+
SOLANA_DEVNET: 'sol_devnet',
|
|
86
|
+
SOLANA_TESTNET: 'sol_testnet',
|
|
87
|
+
SOLANA_PYTH: 'sol_pyth',
|
|
88
|
+
SUI_DEVNET: 'sui_devnet',
|
|
89
|
+
APTOS_MAINNET: 'aptos_mainnet',
|
|
90
|
+
APTOS_TESTNET: 'aptos_testnet',
|
|
91
|
+
};
|
|
92
|
+
exports.CHAIN_MAP = {};
|
|
93
|
+
for (const [key, value] of Object.entries(exports.CHAIN_IDS)) {
|
|
94
|
+
const parts = key.split('_');
|
|
95
|
+
exports.CHAIN_MAP[value] = parts
|
|
96
|
+
.map((part, index) => {
|
|
97
|
+
return part[0] + part.slice(1).toLowerCase();
|
|
98
|
+
})
|
|
99
|
+
.join(' ');
|
|
100
|
+
}
|
|
101
|
+
function getChainName(chainId) {
|
|
102
|
+
if (typeof chainId === 'number') {
|
|
103
|
+
chainId = chainId.toString();
|
|
104
|
+
}
|
|
105
|
+
if (chainId) {
|
|
106
|
+
const name = exports.CHAIN_MAP[chainId];
|
|
107
|
+
if (name) {
|
|
108
|
+
return name;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return chainId || '';
|
|
112
|
+
}
|
|
113
|
+
exports.getChainName = getChainName;
|
|
114
|
+
function getChainType(chainId) {
|
|
115
|
+
const id = String(chainId).toLowerCase();
|
|
116
|
+
if (id.startsWith('sol')) {
|
|
117
|
+
return 'solana';
|
|
118
|
+
}
|
|
119
|
+
if (id.startsWith('sui')) {
|
|
120
|
+
return 'sui';
|
|
121
|
+
}
|
|
122
|
+
if (id.startsWith('apt')) {
|
|
123
|
+
return 'aptos';
|
|
124
|
+
}
|
|
125
|
+
return 'EVM';
|
|
126
|
+
}
|
|
127
|
+
exports.getChainType = getChainType;
|
|
128
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/utils/chain.ts"],"names":[],"mappings":"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","sourcesContent":["// copy from https://github.com/DefiLlama/chainlist/blob/main/constants/chainIds.js\n// and https://besu.hyperledger.org/en/stable/Concepts/NetworkID-And-ChainID/\n\nexport const CHAIN_IDS = {\n KARDIA: '0',\n ETHEREUM: '1',\n EXPANSE: '2',\n ROPSTEN: '3',\n RINKEBY: '4',\n GOERLI: '5',\n KOTTI: '6',\n UBIQ: '8',\n OPTIMISM: '10',\n SONGBIRD: '19',\n ELASTOS: '20',\n CRONOS: '25',\n RSK: '30',\n TELOS: '40',\n XDC: '50',\n CSC: '52',\n ZYX: '55',\n BINANCE: '56',\n SYSCOIN: '57',\n GOCHAIN: '60',\n ETHCLASSIC: '61',\n MORDOR: '63',\n OKEXCHAIN: '66',\n HOO: '70',\n METER: '82',\n TOMOCHAIN: '88',\n XDAI: '100',\n VELAS: '106',\n THUNDERCORE: '108',\n FUSE: '122',\n HECO: '128',\n POLYGON: '137',\n XDAIARB: '200',\n ASTOR: '212',\n ENERGYWEB: '246',\n FANTOM: '250',\n HPB: '269',\n BOBA: '288',\n KUCOIN: '321',\n SHIDEN: '336',\n THETA: '361',\n SX: '416',\n CANDLE: '534',\n ASTAR: '592',\n CALLISTO: '820',\n WANCHAIN: '888',\n METIS: '1088',\n OMCHAIN: '1246',\n MOONBEAM: '1284',\n MOONRIVER: '1285',\n DEV: '2018',\n RONIN: '2020',\n KAVA: '2222',\n EZCHAIN: '2612',\n PHI: '4181',\n IOTEX: '4689',\n XLC: '5050',\n NAHMII: '5551',\n NMACTEST: '7777',\n KLAYTN: '8217',\n EVMOS: '9001',\n SMARTBCH: '10000',\n CRYSTALEUM: '103090',\n FUSION: '32659',\n ARBITRUM: '42161',\n CELO: '42220',\n OASIS: '42262',\n AVALANCHE: '43114',\n GODWOKEN: '71402',\n AKROMA: '200625',\n POLIS: '333999',\n ARBITRUM_TEST: '421613',\n SEPOLIA: '11155111',\n AURORA: '1313161554',\n HARMONY: '1666600000',\n PALM: '11297108109',\n CURIO: '836542336838601',\n SOLANA_MAINNET: 'sol_mainnet',\n SOLANA_DEVNET: 'sol_devnet',\n SOLANA_TESTNET: 'sol_testnet',\n SOLANA_PYTH: 'sol_pyth',\n SUI_DEVNET: 'sui_devnet',\n APTOS_MAINNET: 'aptos_mainnet',\n APTOS_TESTNET: 'aptos_testnet',\n}\n\nexport const CHAIN_MAP: Record<string, string> = {}\n\nfor (const [key, value] of Object.entries(CHAIN_IDS)) {\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\nexport function getChainType(chainId?: string | number): string {\n const id = String(chainId).toLowerCase()\n if (id.startsWith('sol')) {\n return 'solana'\n }\n if (id.startsWith('sui')) {\n return 'sui'\n }\n if (id.startsWith('apt')) {\n return 'aptos'\n }\n return 'EVM'\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
BTC / ETH,,,0x779877A7B0D9E8603169DdbD7836e478b4624789
|
|
2
|
+
BTC / USD,,,0xA39434A63A52E749F02807ae27335515BA4b07F7
|
|
3
|
+
DAI / USD,,,0x0d79df66BE487753B02D015Fb622DED7f0E9798d
|
|
4
|
+
ETH / USD,,,0xD4a33860578De61DBAbDc8BFdb98FD742fA7028e
|
|
5
|
+
FORTH / USD,,,0x7A65Cf6C2ACE993f09231EC1Ea7363fb29C13f2F
|
|
6
|
+
LINK / ETH,,,0xb4c4a493AB6356497713A78FFA6c60FB53517c63
|
|
7
|
+
LINK / USD,,,0x48731cF7e84dc94C5f84577882c14Be11a5B7456
|
|
8
|
+
USDC / USD,,,0xAb5c49580294Aff77670F839ea425f5b78ab3Ae7
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
1INCH / ETH,1inch,Crypto,0x72AFAECF99C9d9C8215fF44C77B94B99C28741e8
|
|
2
|
+
1INCH / USD,1inch,Crypto,0xc929ad75B72593967DE83E7F7Cda0493458261D9
|
|
3
|
+
AAPL / USD,Apple,Equities,0x139C8512Cde1778e9b9a8e721ce1aEbd4dD43587
|
|
4
|
+
AAVE / ETH,Aave,Crypto,0x6Df09E975c830ECae5bd4eD9d90f3A95a4f88012
|
|
5
|
+
AAVE / USD,Aave,Crypto,0x547a514d5e3769680Ce22B2361c10Ea13619e8a9
|
|
6
|
+
ADA / USD,Cardano,Crypto,0xAE48c91dF1fE419994FFDa27da09D5aC69c30f55
|
|
7
|
+
ADX / USD,Adex,Crypto,0x231e764B44b2C1b7Ca171fa8021A24ed520Cde10
|
|
8
|
+
ALBT / USD,Aliiance Block,Crypto,0x057e52Fb830318E096CD96F369f0DB4B196fBfa7
|
|
9
|
+
ALCX / ETH,Alchemix,Crypto,0x194a9AaF2e0b67c35915cD01101585A33Fe25CAa
|
|
10
|
+
ALCX / USD,Alchemix,Crypto,0xc355e4C0B3ff4Ed0B49EaACD55FE29B311f42976
|
|
11
|
+
ALGO / USD,Algorand,Crypto,0xC33c0400dBD8043c5bE09512501Ce59253D499cE
|
|
12
|
+
ALPHA / ETH,Alpha Finance,Crypto,0x89c7926c7c15fD5BFDB1edcFf7E7fC8283B578F6
|
|
13
|
+
AMP / USD,Amp,Crypto,0x8797ABc4641dE76342b8acE9C63e3301DC35e3d8
|
|
14
|
+
AMPL / ETH,Ampleforth,Crypto,0x492575FDD11a0fCf2C6C719867890a7648d526eB
|
|
15
|
+
AMPL / USD,Ampleforth,Crypto,0xe20CA8D7546932360e37E9D72c1a47334af57706
|
|
16
|
+
AMZN / USD,Amazon,Equities,0x8994115d287207144236c13Be5E2bDbf6357D9Fd
|
|
17
|
+
ANKR / USD,Ankr,Crypto,0x7eed379bf00005CfeD29feD4009669dE9Bcc21ce
|
|
18
|
+
ANT / ETH,Aragon,Crypto,0x8f83670260F8f7708143b836a2a6F11eF0aBac01
|
|
19
|
+
APE / ETH,APECoin,Crypto,0xc7de7f4d4C9c991fF62a07D18b3E31e349833A18
|
|
20
|
+
APE / USD,APECoin,Crypto,0xD10aBbC76679a20055E167BB80A24ac851b37056
|
|
21
|
+
ARPA / USD,ARPA Chain,Crypto,0xc40ec815A2f8eb9912BD688d3bdE6B6D50A37ff2
|
|
22
|
+
ATOM / ETH,Cosmos,Crypto,0x15c8eA24Ba2d36671Fa22aD4Cff0a8eafe144352
|
|
23
|
+
ATOM / USD,Cosmos,Crypto,0xDC4BDB458C6361093069Ca2aD30D74cc152EdC75
|
|
24
|
+
AUD / USD,Australian Dollar,Forex,0x77F9710E7d0A19669A13c055F62cd80d313dF022
|
|
25
|
+
AVAX / USD,Avalanche,Crypto,0xFF3EEb22B5E3dE6e705b44749C2559d704923FD7
|
|
26
|
+
AXS / ETH,Axie Infinity,Crypto,0x8B4fC5b68cD50eAc1dD33f695901624a4a1A0A8b
|
|
27
|
+
BADGER / ETH,Badger DAO,Crypto,0x58921Ac140522867bf50b9E009599Da0CA4A2379
|
|
28
|
+
BADGER / USD,Badger DAO,Crypto,0x66a47b7206130e6FF64854EF0E1EDfa237E65339
|
|
29
|
+
BAL / ETH,Balancer,Crypto,0xC1438AA3823A6Ba0C159CfA8D98dF5A994bA120b
|
|
30
|
+
BAL / USD,Balancer,Crypto,0xdF2917806E30300537aEB49A7663062F4d1F2b5F
|
|
31
|
+
BAND / ETH,Band Protocol,Crypto,0x0BDb051e10c9718d1C29efbad442E88D38958274
|
|
32
|
+
BAND / USD,Band Protocol,Crypto,0x919C77ACc7373D000b329c1276C76586ed2Dd19F
|
|
33
|
+
BAT / ETH,Basic Attention Token,Crypto,0x0d16d4528239e9ee52fa531af613AcdB23D88c94
|
|
34
|
+
BAT / USD,Basic Attention Token,Crypto,0x9441D7556e7820B5ca42082cfa99487D56AcA958
|
|
35
|
+
BCH / USD,Bitcoin Cash,Crypto,0x9F0F69428F923D6c95B781F89E165C9b2df9789D
|
|
36
|
+
BETA / ETH,Beta Finance,Crypto,0x8eb7bAe1eCd3dcf87159Eb5BACe78209722F795B
|
|
37
|
+
BIT / USD,BitDAO,Crypto,0x7b33EbfA52F215a30FaD5a71b3FeE57a4831f1F0
|
|
38
|
+
BNB / ETH,BNB,Crypto,0xc546d2d06144F9DD42815b8bA46Ee7B8FcAFa4a2
|
|
39
|
+
BNB / USD,BNB,Crypto,0x14e613AC84a31f709eadbdF89C6CC390fDc9540A
|
|
40
|
+
BNT / ETH,Bancor,Crypto,0xCf61d1841B178fe82C8895fe60c2EDDa08314416
|
|
41
|
+
BNT / USD,Bancor,Crypto,0x1E6cF0D433de4FE882A437ABC654F58E1e78548c
|
|
42
|
+
BOND / ETH,Barnbridge,Crypto,0xdd22A54e05410D8d1007c38b5c7A3eD74b855281
|
|
43
|
+
BRL / USD,Brazilian Real,Forex,0x971E8F1B779A5F1C36e1cd7ef44Ba1Cc2F5EeE0f
|
|
44
|
+
BTC / ETH,Bitcoin,Crypto,0xdeb288F737066589598e9214E782fa5A8eD689e8
|
|
45
|
+
BTC / USD,Bitcoin,Crypto,0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c
|
|
46
|
+
BUSD / ETH,Binance USD,Crypto,0x614715d2Af89E6EC99A233818275142cE88d1Cfd
|
|
47
|
+
BUSD / USD,Binance USD,Crypto,0x833D8Eb16D306ed1FbB5D7A2E019e106B960965A
|
|
48
|
+
C98 / USD,C98,Crypto,0xE95CDc33E1F5BfE7eB26f45E29C6C9032B97db7F
|
|
49
|
+
CAD / USD,Canadian Dollar,Forex,0xa34317DB73e77d453b1B8d04550c44D10e981C8e
|
|
50
|
+
CAKE / USD,Pancakeswap,Crypto,0xEb0adf5C06861d6c07174288ce4D0a8128164003
|
|
51
|
+
CEL / ETH,Celsius,Crypto,0x75FbD83b4bd51dEe765b2a01e8D3aa1B020F9d33
|
|
52
|
+
CELO / ETH,Celo,Crypto,0x9ae96129ed8FE0C707D6eeBa7b90bB1e139e543e
|
|
53
|
+
CHF / USD,Swiss Franc,Forex,0x449d117117838fFA61263B61dA6301AA2a88B13A
|
|
54
|
+
CNY / USD,Chinese Yuan,Forex,0xeF8A4aF35cd47424672E3C590aBD37FBB7A7759a
|
|
55
|
+
COMP / ETH,Compound,Crypto,0x1B39Ee86Ec5979ba5C322b826B3ECb8C79991699
|
|
56
|
+
COMP / USD,Compound,Crypto,0xdbd020CAeF83eFd542f4De03e3cF0C28A4428bd5
|
|
57
|
+
CREAM / ETH,CREAM Finance,Crypto,0x82597CFE6af8baad7c0d441AA82cbC3b51759607
|
|
58
|
+
CRO / ETH,Cronos,Crypto,0xcA696a9Eb93b81ADFE6435759A29aB4cf2991A96
|
|
59
|
+
CRO / USD,Cronos,Crypto,0x00Cb80Cf097D9aA9A3779ad8EE7cF98437eaE050
|
|
60
|
+
CRV / ETH,Curve DAO,Crypto,0x8a12Be339B0cD1829b91Adc01977caa5E9ac121e
|
|
61
|
+
CRV / USD,Curve DAO,Crypto,0xCd627aA160A6fA45Eb793D19Ef54f5062F20f33f
|
|
62
|
+
CSPR / USD,Casper Network,Crypto,0x9e37a8Ee3bFa8eD6783Db031Dc458d200b226074
|
|
63
|
+
CTSI / ETH,Cartesi,Crypto,0x0a1d1b9847d602e789be38B802246161FFA24930
|
|
64
|
+
CVX / ETH,Convex Finance,Crypto,0xC9CbF687f43176B302F03f5e58470b77D07c61c6
|
|
65
|
+
CVX / USD,Convex Finance,Crypto,0xd962fC30A72A84cE50161031391756Bf2876Af5D
|
|
66
|
+
DAI / ETH,DAI,Crypto,0x773616E4d11A78F511299002da57A0a94577F1f4
|
|
67
|
+
DAI / USD,DAI,Crypto,0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9
|
|
68
|
+
DASH / USD,Dash,Crypto,0xFb0cADFEa136E9E343cfb55B863a6Df8348ab912
|
|
69
|
+
DIA / USD,DIA,Equities,0xeE636E1f7A0A846EEc2385E729CeA7D1b339D40D
|
|
70
|
+
DODO / USD,Dodo,Crypto,0x9613A51Ad59EE375e6D8fa12eeef0281f1448739
|
|
71
|
+
DOGE / USD,Dogecoin,Crypto,0x2465CefD3b488BE410b941b1d4b2767088e2A028
|
|
72
|
+
DOT / USD,Polkadot,Crypto,0x1C07AFb8E2B827c5A4739C6d59Ae3A5035f28734
|
|
73
|
+
DPI / USD,DefiPulse Index,Crypto,0xD2A593BF7594aCE1faD597adb697b5645d5edDB2
|
|
74
|
+
DYDX / USD,dYdX,Crypto,0x478909D4D798f3a1F11fFB25E4920C959B4aDe0b
|
|
75
|
+
ENJ / ETH,Enjin Coin,Crypto,0x24D9aB51950F3d62E9144fdC2f3135DAA6Ce8D1B
|
|
76
|
+
ENJ / USD,Enjin Coin,Crypto,0x23905C55dC11D609D5d11Dc604905779545De9a7
|
|
77
|
+
ENS / USD,Ethereum Name Service,Crypto,0x5C00128d4d1c2F4f652C267d7bcdD7aC99C16E16
|
|
78
|
+
EOS / USD,EOS,Crypto,0x10a43289895eAff840E8d45995BBa89f9115ECEe
|
|
79
|
+
ERN / USD,Ethernity Chain,Crypto,0x0a87e12689374A4EF49729582B474a1013cceBf8
|
|
80
|
+
ETC / USD,Ethereum Classic,Crypto,0xaEA2808407B7319A31A383B6F8B60f04BCa23cE2
|
|
81
|
+
ETH / BTC,Ethereum,Crypto,0xAc559F25B1619171CbC396a50854A3240b6A4e99
|
|
82
|
+
ETH / USD,Ethereum,Crypto,0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
|
|
83
|
+
EUR / USD,Euro,Forex,0xb49f677943BC038e9857d61E7d053CaA2C1734C1
|
|
84
|
+
EURT / USD,Tether Euro,Crypto,0x01D391A48f4F7339aC64CA2c83a07C22F95F587a
|
|
85
|
+
FARM / ETH,Harvest Finance,Crypto,0x611E0d2709416E002A3f38085e4e1cf77c015921
|
|
86
|
+
FB / USD,Meta,Equities,0xCe1051646393087e706288C1B57Fd26446657A7f
|
|
87
|
+
FEI / ETH,FEI Protocol,Crypto,0x7F0D2c2838c6AC24443d13e23d99490017bDe370
|
|
88
|
+
FEI / USD,FEI Protocol,Crypto,0x31e0a88fecB6eC0a411DBe0e9E76391498296EE9
|
|
89
|
+
FIL / ETH,Filecoin,Crypto,0x0606Be69451B1C9861Ac6b3626b99093b713E801
|
|
90
|
+
FLOW / USD,Flow,Crypto,0xD9BdD9f5ffa7d89c846A5E3231a093AE4b3469D2
|
|
91
|
+
FOR / USD,ForTube,Crypto,0x456834f736094Fb0AAD40a9BBc9D4a0f37818A54
|
|
92
|
+
FORTH / USD,Ampleforth Governance,Crypto,0x7D77Fd73E468baECe26852776BeaF073CDc55fA0
|
|
93
|
+
FOX / USD,Shapeshift FOX,Crypto,0xccA02FFEFAcE21325befD6616cB4Ba5fCB047480
|
|
94
|
+
FRAX / ETH,FRAX,Crypto,0x14d04Fff8D21bd62987a5cE9ce543d2F1edF5D3E
|
|
95
|
+
FRAX / USD,FRAX,Crypto,0xB9E1E3A9feFf48998E45Fa90847ed4D467E8BcfD
|
|
96
|
+
FTM / ETH,Fantom,Crypto,0x2DE7E4a9488488e0058B95854CC2f7955B35dC9b
|
|
97
|
+
FTT / ETH,FTX Token,Crypto,0xF0985f7E2CaBFf22CecC5a71282a89582c382EFE
|
|
98
|
+
FTT / USD,FTX Token,Crypto,0x84e3946C6df27b453315a1B38e4dECEF23d9F16F
|
|
99
|
+
FXS / USD,Frax Share,Crypto,0x6Ebc52C8C1089be9eB3945C4350B68B8E4C2233f
|
|
100
|
+
GBP / USD,Pound Sterling,Forex,0x5c0Ab2d9b5a7ed9f470386e82BB36A3613cDd4b5
|
|
101
|
+
GHST / ETH,Aavegotchi,Crypto,0x5877385f9F51B46Bbd93F24AD278D681E1Fd2A93
|
|
102
|
+
GLM / USD,Golen,Crypto,0x83441C3A10F4D05de6e0f2E849A850Ccf27E6fa7
|
|
103
|
+
GNO / ETH,Gnosis,Crypto,0xA614953dF476577E90dcf4e3428960e221EA4727
|
|
104
|
+
GOOGL / USD,Alphabet,Equities,0x36D39936BeA501755921beB5A382a88179070219
|
|
105
|
+
GRT / ETH,The Graph,Crypto,0x17D054eCac33D91F7340645341eFB5DE9009F1C1
|
|
106
|
+
GRT / USD,The Graph,Crypto,0x86cF33a451dE9dc61a2862FD94FF4ad4Bd65A5d2
|
|
107
|
+
GTC / ETH,GitCoin,Crypto,0x0e773A17a01E2c92F5d4c53435397E2bd48e215F
|
|
108
|
+
GUSD / ETH,Gemini Dollar,Crypto,0x96d15851CBac05aEe4EFD9eA3a3DD9BDEeC9fC28
|
|
109
|
+
GUSD / USD,Gemini Dollar,Crypto,0xa89f5d2365ce98B3cD68012b6f503ab1416245Fc
|
|
110
|
+
HBAR / USD,Hedera Hashgraph,Crypto,0x38C5ae3ee324ee027D88c5117ee58d07c9b4699b
|
|
111
|
+
HIGH / USD,Highstreet,Crypto,0xe2F95bC12FE8a3C35684Be7586C39fD7c0E5b403
|
|
112
|
+
HT / USD,Huobi Token,Crypto,0xE1329B3f6513912CAf589659777b66011AEE5880
|
|
113
|
+
HUSD / ETH,HUSD,Crypto,0x1B61BAD1495161bCb6C03DDB0E41622c0270bB1A
|
|
114
|
+
ILV / ETH,Illuvium,Crypto,0xf600984CCa37cd562E74E3EE514289e3613ce8E4
|
|
115
|
+
IMX / USD,Immutable X,Crypto,0xBAEbEFc1D023c0feCcc047Bff42E75F15Ff213E6
|
|
116
|
+
INJ / USD,Injective Protocol,Crypto,0xaE2EbE3c4D20cE13cE47cbb49b6d7ee631Cd816e
|
|
117
|
+
INR / USD,Indian Rupee,Forex,0x605D5c2fBCeDb217D7987FC0951B5753069bC360
|
|
118
|
+
IOST / USD,IOST,Crypto,0xd0935838935349401c73a06FCde9d63f719e84E5
|
|
119
|
+
IOTX / USD,IoTeX,Crypto,0x96c45535d235148Dc3ABA1E48A6E3cFB3510f4E2
|
|
120
|
+
JPY / USD,Japanese Yen,Forex,0xBcE206caE7f0ec07b545EddE332A47C2F75bbeb3
|
|
121
|
+
KNC / ETH,Kyber Network Crystal,Crypto,0x656c0544eF4C98A6a98491833A89204Abb045d6b
|
|
122
|
+
KNC / USD,Kyber Network,Crypto,0xf8fF43E991A81e6eC886a3D281A2C6cC19aE70Fc
|
|
123
|
+
KP3R / ETH,Keep3r v1,Crypto,0xe7015CCb7E5F788B8c1010FC22343473EaaC3741
|
|
124
|
+
KRW / USD,Korean Won,Forex,0x01435677FB11763550905594A16B645847C1d0F3
|
|
125
|
+
KSM / USD,Kusama,Crypto,0x06E4164E24E72B879D93360D1B9fA05838A62EB5
|
|
126
|
+
LDO / ETH,Lido DAO,Crypto,0x4e844125952D32AcdF339BE976c98E22F6F318dB
|
|
127
|
+
LINK / ETH,Chainlink,Crypto,0xDC530D9457755926550b59e8ECcdaE7624181557
|
|
128
|
+
LINK / USD,Chainlink,Crypto,0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c
|
|
129
|
+
LON / ETH,Tokenlon,Crypto,0x13A8F2cC27ccC2761ca1b21d2F3E762445f201CE
|
|
130
|
+
LRC / ETH,Loopring,Crypto,0x160AC928A16C93eD4895C2De6f81ECcE9a7eB7b4
|
|
131
|
+
LTC / USD,Litecoin,Crypto,0x6AF09DF7563C363B5763b9102712EbeD3b9e859B
|
|
132
|
+
LUSD / USD,Liquity USD,Crypto,0x3D7aE7E594f2f2091Ad8798313450130d0Aba3a0
|
|
133
|
+
MANA / ETH,Decentraland,Crypto,0x82A44D92D6c329826dc557c5E1Be6ebeC5D5FeB9
|
|
134
|
+
MANA / USD,Decentraland,Crypto,0x56a4857acbcfe3a66965c251628B1c9f1c408C19
|
|
135
|
+
MATIC / USD,Polygon (MATIC),Crypto,0x7bAC85A8a13A4BcD8abb3eB7d6b4d632c5a57676
|
|
136
|
+
MIM / USD,Magic Internet Money,Crypto,0x7A364e8770418566e3eb2001A96116E6138Eb32F
|
|
137
|
+
MKR / ETH,Maker,Crypto,0x24551a8Fb2A7211A25a17B1481f043A8a8adC7f2
|
|
138
|
+
MKR / USD,Maker,Crypto,0xec1D1B3b0443256cc3860e24a46F108e699484Aa
|
|
139
|
+
MLN / ETH,Melon,Crypto,0xDaeA8386611A157B08829ED4997A8A62B557014C
|
|
140
|
+
MSFT / USD,Microsoft,Equities,0x021Fb44bfeafA0999C7b07C4791cf4B859C3b431
|
|
141
|
+
NEAR / USD,NEAR Protocol,Crypto,0xC12A6d1D827e23318266Ef16Ba6F397F2F91dA9b
|
|
142
|
+
NFLX / USD,Netflix,Equities,0x67C2e69c5272B94AF3C90683a9947C39Dc605ddE
|
|
143
|
+
NMR / ETH,Numeraire,Crypto,0x9cB2A01A7E64992d32A34db7cEea4c919C391f6A
|
|
144
|
+
NMR / USD,Numeraire,Crypto,0xcC445B35b3636bC7cC7051f4769D8982ED0d449A
|
|
145
|
+
NZD / USD,New Zealand Dollar,Forex,0x3977CFc9e4f29C184D4675f4EB8e0013236e5f3e
|
|
146
|
+
OCEAN / ETH,Ocean Protocol,Crypto,0x9b0FC4bb9981e5333689d69BdBF66351B9861E62
|
|
147
|
+
OGN / ETH,Origin Protocol,Crypto,0x2c881B6f3f6B5ff6C975813F87A4dad0b241C15b
|
|
148
|
+
OHMv2 / ETH,Olympus v2,Crypto,0x9a72298ae3886221820B1c878d12D872087D3a23
|
|
149
|
+
OKB / USD,OKB,Crypto,0x22134617Ae0f6CA8D89451e5Ae091c94f7D743DC
|
|
150
|
+
OM / USD,Mantra DAO,Crypto,0xb9583cfBdEeacd2705546F392E43F8E03eB92216
|
|
151
|
+
OMG / ETH,Omisego,Crypto,0x57C9aB3e56EE4a83752c181f241120a3DBba06a1
|
|
152
|
+
OMG / USD,Omisego,Crypto,0x7D476f061F8212A8C9317D5784e72B4212436E93
|
|
153
|
+
ONT / USD,Ontology,Crypto,0xcDa3708C5c2907FCca52BB3f9d3e4c2028b89319
|
|
154
|
+
ORN / ETH,Orion Protocol,Crypto,0xbA9B2a360eb8aBdb677d6d7f27E12De11AA052ef
|
|
155
|
+
OXT / USD,Orchid Protocol,Crypto,0xd75AAaE4AF0c398ca13e2667Be57AF2ccA8B5de6
|
|
156
|
+
PAXG / ETH,Pax Gold,Crypto,0x9B97304EA12EFed0FAd976FBeCAad46016bf269e
|
|
157
|
+
PERP / ETH,Perpetual Protocol,Crypto,0x3b41D5571468904D4e53b6a8d93A6BaC43f02dC9
|
|
158
|
+
PERP / USD,Perpetual Protocol,Crypto,0x01cE1210Fe8153500F60f7131d63239373D7E26C
|
|
159
|
+
PHA / USD,Phala Network,Crypto,0x2B1248028fe48864c4f1c305E524e2e6702eAFDF
|
|
160
|
+
PHP / USD,Philippines Peso,Forex,0x9481e7ad8BE6BbB22A8B9F7B9fB7588d1df65DF6
|
|
161
|
+
PLA / USD,Playdapp,Crypto,0xbc535B134DdF81fc83254a3D0Ed2C0C60144405E
|
|
162
|
+
RAI / ETH,RAI Reflex Index,Crypto,0x4ad7B025127e89263242aB68F0f9c4E5C033B489
|
|
163
|
+
RARI / ETH,Rarible,Crypto,0x2a784368b1D492f458Bf919389F42c18315765F5
|
|
164
|
+
REN / ETH,Ren,Crypto,0x3147D7203354Dc06D9fd350c7a2437bcA92387a4
|
|
165
|
+
REN / USD,Ren,Crypto,0x0f59666EDE214281e956cb3b2D0d69415AfF4A01
|
|
166
|
+
REP / ETH,Augur,Crypto,0xD4CE430C3b67b3E2F7026D86E7128588629e2455
|
|
167
|
+
REQ / USD,Request Network,Crypto,0x2F05888D185970f178f40610306a0Cc305e52bBF
|
|
168
|
+
RLC / ETH,iExec RLC,Crypto,0x4cba1e1fdc738D0fe8DB3ee07728E2Bc4DA676c6
|
|
169
|
+
RUNE / ETH,THORChain,Crypto,0x875D60C44cfbC38BaA4Eb2dDB76A767dEB91b97e
|
|
170
|
+
SAND / USD,The Sandbox,Crypto,0x35E3f7E558C04cE7eEE1629258EcbbA03B36Ec56
|
|
171
|
+
SGD / USD,Singapore Dollar,Forex,0xe25277fF4bbF9081C75Ab0EB13B4A13a721f3E13
|
|
172
|
+
SHIB / ETH,Shiba Inu,Crypto,0x8dD1CD88F43aF196ae478e91b9F5E4Ac69A97C61
|
|
173
|
+
SNX / ETH,Synthetix Network,Crypto,0x79291A9d692Df95334B1a0B3B4AE6bC606782f8c
|
|
174
|
+
SNX / USD,Synthetix Network,Crypto,0xDC3EA94CD0AC27d9A86C180091e7f78C683d3699
|
|
175
|
+
SOL / USD,Solana,Crypto,0x4ffC43a60e009B551865A93d232E33Fce9f01507
|
|
176
|
+
SPELL / USD,Spell Token,Crypto,0x8c110B94C5f1d347fAcF5E1E938AB2db60E3c9a8
|
|
177
|
+
SRM / ETH,Serum,Crypto,0x050c048c9a0CD0e76f166E2539F87ef2acCEC58f
|
|
178
|
+
STETH / ETH,Lido Staked ETH,Crypto,0x86392dC19c0b719886221c78AB11eb8Cf5c52812
|
|
179
|
+
SUSD / ETH,sUSD (Synthetix),Crypto,0x8e0b7e6062272B5eF4524250bFFF8e5Bd3497757
|
|
180
|
+
SUSHI / ETH,Sushi,Crypto,0xe572CeF69f43c2E488b33924AF04BDacE19079cf
|
|
181
|
+
SUSHI / USD,Sushi,Crypto,0xCc70F09A6CC17553b2E31954cD36E4A2d89501f7
|
|
182
|
+
SXP / USD,Swipe,Crypto,0xFb0CfD6c19e25DB4a08D8a204a387cEa48Cc138f
|
|
183
|
+
TOKE / USD,Tokemak,Crypto,0x104cD02b2f22972E8d8542867a36bDeDA4f104d8
|
|
184
|
+
TOMO / USD,Tomochain,Crypto,0x3d44925a8E9F9DFd90390E58e92Ec16c996A331b
|
|
185
|
+
TRIBE / ETH,Tribe,Crypto,0x84a24deCA415Acc0c395872a9e6a63E27D6225c8
|
|
186
|
+
TRU / USD,Truefi,Crypto,0x26929b85fE284EeAB939831002e1928183a10fb1
|
|
187
|
+
TRY / USD,Turkish Lira,Forex,0xB09fC5fD3f11Cf9eb5E1C5Dba43114e3C9f477b5
|
|
188
|
+
TSLA / USD,Tesla,Equities,0x1ceDaaB50936881B3e449e47e40A2cDAF5576A4a
|
|
189
|
+
TUSD / ETH,TrueUSD,Crypto,0x3886BA987236181D98F2401c507Fb8BeA7871dF2
|
|
190
|
+
TUSD / USD,True USD,Crypto,0xec746eCF986E2927Abd291a2A1716c940100f8Ba
|
|
191
|
+
UMA / ETH,Uma,Crypto,0xf817B69EA583CAFF291E287CaE00Ea329d22765C
|
|
192
|
+
UMEE / ETH,Umee,Crypto,0xa554F3a8D05f22aC7e105311211AAbAf727e1CcB
|
|
193
|
+
UNI / ETH,Uniswap,Crypto,0xD6aA3D25116d8dA79Ea0246c4826EB951872e02e
|
|
194
|
+
UNI / USD,Uniswap,Crypto,0x553303d460EE0afB37EdFf9bE42922D8FF63220e
|
|
195
|
+
USDC / ETH,Circle USD,Crypto,0x986b5E1e1755e3C2440e960477f25201B0a8bbD4
|
|
196
|
+
USDC / USD,Circle USD,Crypto,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6
|
|
197
|
+
USDK / USD,USDK,Crypto,0xfAC81Ea9Dd29D8E9b212acd6edBEb6dE38Cb43Af
|
|
198
|
+
USDN / USD,Neutrino USD,Crypto,0x7a8544894F7FD0C69cFcBE2b4b2E277B0b9a4355
|
|
199
|
+
USDP / USD,Pax Dollar,Crypto,0x09023c0DA49Aaf8fc3fA3ADF34C6A7016D38D5e3
|
|
200
|
+
USDT / ETH,Tether,Crypto,0xEe9F2375b4bdF6387aa8265dD4FB8F16512A1d46
|
|
201
|
+
USDT / USD,Tether USD,Crypto,0x3E7d1eAB13ad0104d2750B8863b489D65364e32D
|
|
202
|
+
WBTC / BTC,Wrapped Bitcoin,Crypto,0xfdFD9C85aD200c506Cf9e21F1FD8dd01932FBB23
|
|
203
|
+
WING / USD,Wing Finance,Crypto,0x134fE0a225Fb8e6683617C13cEB6B3319fB4fb82
|
|
204
|
+
WNXM / ETH,Wrapped NXM,Crypto,0xe5Dc0A609Ab8bCF15d3f35cFaa1Ff40f521173Ea
|
|
205
|
+
WTI / USD,WTI Crude,Commodities,0xf3584F4dd3b467e73C2339EfD008665a70A4185c
|
|
206
|
+
XAG / USD,Silver,Commodities,0x379589227b15F1a12195D3f2d90bBc9F31f95235
|
|
207
|
+
XAU / USD,Gold,Commodities,0x214eD9Da11D2fbe465a6fc601a91E62EbEc1a0D6
|
|
208
|
+
XCN / USD,Chain,Crypto,0xeb988B77b94C186053282BfcD8B7ED55142D3cAB
|
|
209
|
+
XLM / USD,Stellar,Crypto,0x64168007BAcbB5fF3f52639db22C6300827f5036
|
|
210
|
+
XMR / USD,Monero,Crypto,0xFA66458Cce7Dd15D8650015c4fce4D278271618F
|
|
211
|
+
XRP / USD,Ripple,Crypto,0xCed2660c6Dd1Ffd856A5A82C67f3482d88C50b12
|
|
212
|
+
YFI / ETH,Yearn Finance,Crypto,0x7c5d4F8345e66f68099581Db340cd65B078C41f4
|
|
213
|
+
YFI / USD,Yearn Finance,Crypto,0xA027702dbb89fbd58938e4324ac03B58d812b0E1
|
|
214
|
+
YFII / ETH,YFII Finance,Crypto,0xaaB2f6b45B28E962B3aCd1ee4fC88aEdDf557756
|
|
215
|
+
ZRX / ETH,0x,Crypto,0x2Da4983a622a8498bb1a21FaE9D8F6C664939962
|
|
216
|
+
ZRX / USD,0x,Crypto,0x2885d15b8Af22648b98B122b22FDF4D2a56c6023
|
|
217
|
+
sUSD / USD,sUSD (Synthetix),Crypto,0xad35Bd71b9aFE6e4bDc266B345c198eaDEf9Ad94
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BigNumber } from 'ethers';
|
|
2
|
+
import { BigDecimal } from '../core/big-decimal';
|
|
3
|
+
import { Numberish } from '../core';
|
|
4
|
+
import { MetricValue } from '../gen';
|
|
5
|
+
export declare function toBigDecimal(n: BigNumber | bigint): BigDecimal;
|
|
6
|
+
export declare function metricValueToNumberish(v: MetricValue): Numberish;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.metricValueToNumberish = exports.toBigDecimal = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const big_decimal_1 = require("../core/big-decimal");
|
|
6
|
+
function toBigDecimal(n) {
|
|
7
|
+
return new big_decimal_1.BigDecimal(n.toString());
|
|
8
|
+
}
|
|
9
|
+
exports.toBigDecimal = toBigDecimal;
|
|
10
|
+
function metricValueToNumberish(v) {
|
|
11
|
+
if (v.doubleValue) {
|
|
12
|
+
return v.doubleValue;
|
|
13
|
+
}
|
|
14
|
+
if (v.bigInteger) {
|
|
15
|
+
const bn = ethers_1.BigNumber.from(v.bigInteger.data);
|
|
16
|
+
if (v.bigInteger.negative) {
|
|
17
|
+
return ethers_1.BigNumber.from(0).sub(bn);
|
|
18
|
+
}
|
|
19
|
+
return bn;
|
|
20
|
+
}
|
|
21
|
+
if (v.bigDecimal) {
|
|
22
|
+
return new big_decimal_1.BigDecimal(v.bigDecimal);
|
|
23
|
+
}
|
|
24
|
+
throw Error("MetricValue doesn't contain any of possible value");
|
|
25
|
+
}
|
|
26
|
+
exports.metricValueToNumberish = metricValueToNumberish;
|
|
27
|
+
//# sourceMappingURL=conversion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../src/utils/conversion.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAClC,qDAAgD;AAIhD,SAAgB,YAAY,CAAC,CAAqB;IAChD,OAAO,IAAI,wBAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;AACrC,CAAC;AAFD,oCAEC;AAED,SAAgB,sBAAsB,CAAC,CAAc;IACnD,IAAI,CAAC,CAAC,WAAW,EAAE;QACjB,OAAO,CAAC,CAAC,WAAW,CAAA;KACrB;IACD,IAAI,CAAC,CAAC,UAAU,EAAE;QAChB,MAAM,EAAE,GAAG,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE;YACzB,OAAO,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;SACjC;QACD,OAAO,EAAE,CAAA;KACV;IAED,IAAI,CAAC,CAAC,UAAU,EAAE;QAChB,OAAO,IAAI,wBAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;KACpC;IAED,MAAM,KAAK,CAAC,mDAAmD,CAAC,CAAA;AAClE,CAAC;AAjBD,wDAiBC","sourcesContent":["import { BigNumber } from 'ethers'\nimport { BigDecimal } from '../core/big-decimal'\nimport { Numberish } from '../core'\nimport { MetricValue } from '../gen'\n\nexport function toBigDecimal(n: BigNumber | bigint) {\n return new BigDecimal(n.toString())\n}\n\nexport function metricValueToNumberish(v: MetricValue): Numberish {\n if (v.doubleValue) {\n return v.doubleValue\n }\n if (v.bigInteger) {\n const bn = BigNumber.from(v.bigInteger.data)\n if (v.bigInteger.negative) {\n return BigNumber.from(0).sub(bn)\n }\n return bn\n }\n\n if (v.bigDecimal) {\n return new BigDecimal(v.bigDecimal)\n }\n\n throw Error(\"MetricValue doesn't contain any of possible value\")\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BlockTag } from '@ethersproject/providers';
|
|
2
|
+
export declare enum PriceUnit {
|
|
3
|
+
USD = 0,
|
|
4
|
+
ETH = 1,
|
|
5
|
+
BTC = 2
|
|
6
|
+
}
|
|
7
|
+
export interface DexPriceResult {
|
|
8
|
+
price?: number;
|
|
9
|
+
error?: string;
|
|
10
|
+
}
|
|
11
|
+
declare class DexPrice {
|
|
12
|
+
USD_ORACLE_MAP: Map<string, string>;
|
|
13
|
+
ETH_ORACLE_MAP: Map<string, string>;
|
|
14
|
+
BTC_ORACLE_MAP: Map<string, string>;
|
|
15
|
+
ASSETS_INFOS: Map<string, number>;
|
|
16
|
+
readonly chainId: number;
|
|
17
|
+
constructor(csvFileName: string, chainId: number);
|
|
18
|
+
getPrice(asset: string, blockTag?: BlockTag, unit?: PriceUnit): Promise<DexPriceResult>;
|
|
19
|
+
}
|
|
20
|
+
export declare const EthereumDexPrice: DexPrice;
|
|
21
|
+
export declare const GoerliDexPrice: DexPrice;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GoerliDexPrice = exports.EthereumDexPrice = exports.PriceUnit = void 0;
|
|
7
|
+
const eacaggregatorproxy_processor_1 = require("../builtin/internal/eacaggregatorproxy_processor");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const sync_1 = require("csv-parse/sync");
|
|
11
|
+
const token_1 = require("./token");
|
|
12
|
+
var PriceUnit;
|
|
13
|
+
(function (PriceUnit) {
|
|
14
|
+
PriceUnit[PriceUnit["USD"] = 0] = "USD";
|
|
15
|
+
PriceUnit[PriceUnit["ETH"] = 1] = "ETH";
|
|
16
|
+
PriceUnit[PriceUnit["BTC"] = 2] = "BTC";
|
|
17
|
+
})(PriceUnit = exports.PriceUnit || (exports.PriceUnit = {}));
|
|
18
|
+
// Load price feed from https://docs.chain.link/docs/data-feeds/price-feeds/addresses/?network=ethereum
|
|
19
|
+
// and then use EACAggregatorProxy contract to get price
|
|
20
|
+
class DexPrice {
|
|
21
|
+
USD_ORACLE_MAP = new Map();
|
|
22
|
+
ETH_ORACLE_MAP = new Map();
|
|
23
|
+
BTC_ORACLE_MAP = new Map();
|
|
24
|
+
ASSETS_INFOS = new Map();
|
|
25
|
+
chainId;
|
|
26
|
+
constructor(csvFileName, chainId) {
|
|
27
|
+
this.chainId = chainId;
|
|
28
|
+
const csvFilePath = path_1.default.resolve(__dirname, csvFileName);
|
|
29
|
+
const fileContent = fs_1.default.readFileSync(csvFilePath, { encoding: 'utf-8' });
|
|
30
|
+
const headers = ['Pair', 'Asset', 'Type', 'Address'];
|
|
31
|
+
const records = (0, sync_1.parse)(fileContent, {
|
|
32
|
+
delimiter: ',',
|
|
33
|
+
columns: headers,
|
|
34
|
+
skip_empty_lines: true,
|
|
35
|
+
});
|
|
36
|
+
for (const record of records) {
|
|
37
|
+
const pair = record.Pair.split('/');
|
|
38
|
+
const asset = pair[0].trim().toLowerCase();
|
|
39
|
+
const target = pair[1].trim().toLowerCase();
|
|
40
|
+
const address = record.Address.toLowerCase();
|
|
41
|
+
if (target === 'usd') {
|
|
42
|
+
this.USD_ORACLE_MAP.set(asset, address);
|
|
43
|
+
}
|
|
44
|
+
else if (target === 'eth') {
|
|
45
|
+
this.ETH_ORACLE_MAP.set(asset, address);
|
|
46
|
+
}
|
|
47
|
+
else if (target == 'btc') {
|
|
48
|
+
this.BTC_ORACLE_MAP.set(asset, address);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
console.error('wrong asset record:' + JSON.stringify(record));
|
|
52
|
+
}
|
|
53
|
+
// console.log(asset, target, address)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// asset: symbol of the asset
|
|
57
|
+
// unit: usd, eth or btc
|
|
58
|
+
// blockTag: blockNumber of block symbol like "latest"
|
|
59
|
+
// returns the asset price,
|
|
60
|
+
// throw exception if calling to price feed failed, e.g. due to a invalid block number
|
|
61
|
+
async getPrice(asset, blockTag = 'latest', unit = PriceUnit.USD) {
|
|
62
|
+
// if (chainId !== 1 && chainId !== 5) {
|
|
63
|
+
// return {
|
|
64
|
+
// error: "current dex price only support chain 1 (mainnet) or 5 (goerli)"
|
|
65
|
+
// }
|
|
66
|
+
// }
|
|
67
|
+
let oracleMap = this.USD_ORACLE_MAP;
|
|
68
|
+
switch (unit) {
|
|
69
|
+
case PriceUnit.ETH:
|
|
70
|
+
oracleMap = this.ETH_ORACLE_MAP;
|
|
71
|
+
break;
|
|
72
|
+
case PriceUnit.BTC:
|
|
73
|
+
oracleMap = this.BTC_ORACLE_MAP;
|
|
74
|
+
break;
|
|
75
|
+
default:
|
|
76
|
+
}
|
|
77
|
+
asset = asset.trim().toLowerCase();
|
|
78
|
+
const addr = oracleMap.get(asset);
|
|
79
|
+
if (!addr) {
|
|
80
|
+
return {
|
|
81
|
+
error: 'No price feed found for asset',
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
const contract = (0, eacaggregatorproxy_processor_1.getEACAggregatorProxyContract)(addr, this.chainId);
|
|
85
|
+
try {
|
|
86
|
+
const price = await contract.latestAnswer({
|
|
87
|
+
blockTag: blockTag,
|
|
88
|
+
});
|
|
89
|
+
let decimal = this.ASSETS_INFOS.get(asset);
|
|
90
|
+
if (!decimal) {
|
|
91
|
+
decimal = await contract.decimals();
|
|
92
|
+
this.ASSETS_INFOS.set(asset, decimal);
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
price: (0, token_1.scaleDown)(price, decimal).toNumber(),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
return {
|
|
100
|
+
error: 'Price query error for ' +
|
|
101
|
+
asset +
|
|
102
|
+
' failed at ' +
|
|
103
|
+
addr +
|
|
104
|
+
' at chain ' +
|
|
105
|
+
this.chainId +
|
|
106
|
+
'. Details: ' +
|
|
107
|
+
e.toString(),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.EthereumDexPrice = new DexPrice('chainlink-oracles.csv', 1);
|
|
113
|
+
exports.GoerliDexPrice = new DexPrice('chainlink-oracles-goerli.csv', 5);
|
|
114
|
+
//# sourceMappingURL=dex-price.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dex-price.js","sourceRoot":"","sources":["../../src/utils/dex-price.ts"],"names":[],"mappings":"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","sourcesContent":["import { getEACAggregatorProxyContract } from '../builtin/internal/eacaggregatorproxy_processor'\nimport path from 'path'\nimport fs from 'fs'\n\nimport { parse } from 'csv-parse/sync'\nimport { BlockTag } from '@ethersproject/providers'\nimport { scaleDown } from './token'\n\ntype OralceRecord = {\n Pair: string\n Asset: string\n Type: string\n Address: string\n}\n\nexport enum PriceUnit {\n USD = 0,\n ETH = 1,\n BTC = 2,\n}\n\nexport interface DexPriceResult {\n price?: number\n error?: string\n}\n\n// Load price feed from https://docs.chain.link/docs/data-feeds/price-feeds/addresses/?network=ethereum\n// and then use EACAggregatorProxy contract to get price\nclass DexPrice {\n USD_ORACLE_MAP = new Map<string, string>()\n ETH_ORACLE_MAP = new Map<string, string>()\n BTC_ORACLE_MAP = new Map<string, string>()\n ASSETS_INFOS = new Map<string, number>()\n\n readonly chainId: number\n\n constructor(csvFileName: string, chainId: number) {\n this.chainId = chainId\n const csvFilePath = path.resolve(__dirname, csvFileName)\n const fileContent = fs.readFileSync(csvFilePath, { encoding: 'utf-8' })\n const headers = ['Pair', 'Asset', 'Type', 'Address']\n\n const records: OralceRecord[] = parse(fileContent, {\n delimiter: ',',\n columns: headers,\n skip_empty_lines: true,\n })\n\n for (const record of records) {\n const pair = record.Pair.split('/')\n const asset = pair[0].trim().toLowerCase()\n const target = pair[1].trim().toLowerCase()\n const address = record.Address.toLowerCase()\n if (target === 'usd') {\n this.USD_ORACLE_MAP.set(asset, address)\n } else if (target === 'eth') {\n this.ETH_ORACLE_MAP.set(asset, address)\n } else if (target == 'btc') {\n this.BTC_ORACLE_MAP.set(asset, address)\n } else {\n console.error('wrong asset record:' + JSON.stringify(record))\n }\n\n // console.log(asset, target, address)\n }\n }\n\n // asset: symbol of the asset\n // unit: usd, eth or btc\n // blockTag: blockNumber of block symbol like \"latest\"\n // returns the asset price,\n // throw exception if calling to price feed failed, e.g. due to a invalid block number\n async getPrice(\n asset: string,\n blockTag: BlockTag = 'latest',\n unit: PriceUnit = PriceUnit.USD\n ): Promise<DexPriceResult> {\n // if (chainId !== 1 && chainId !== 5) {\n // return {\n // error: \"current dex price only support chain 1 (mainnet) or 5 (goerli)\"\n // }\n // }\n\n let oracleMap = this.USD_ORACLE_MAP\n switch (unit) {\n case PriceUnit.ETH:\n oracleMap = this.ETH_ORACLE_MAP\n break\n case PriceUnit.BTC:\n oracleMap = this.BTC_ORACLE_MAP\n break\n default:\n }\n\n asset = asset.trim().toLowerCase()\n\n const addr = oracleMap.get(asset)\n if (!addr) {\n return {\n error: 'No price feed found for asset',\n }\n }\n\n const contract = getEACAggregatorProxyContract(addr, this.chainId)\n try {\n const price = await contract.latestAnswer({\n blockTag: blockTag,\n })\n\n let decimal = this.ASSETS_INFOS.get(asset)\n if (!decimal) {\n decimal = await contract.decimals()\n this.ASSETS_INFOS.set(asset, decimal)\n }\n\n return {\n price: scaleDown(price, decimal).toNumber(),\n }\n } catch (e) {\n return {\n error:\n 'Price query error for ' +\n asset +\n ' failed at ' +\n addr +\n ' at chain ' +\n this.chainId +\n '. Details: ' +\n e.toString(),\n }\n }\n }\n}\n\nexport const EthereumDexPrice = new DexPrice('chainlink-oracles.csv', 1)\nexport const GoerliDexPrice = new DexPrice('chainlink-oracles-goerli.csv', 5)\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dex-price.test.js","sourceRoot":"","sources":["../../src/utils/dex-price.test.ts"],"names":[],"mappings":";;AAAA,2CAA8D;AAC9D,8DAAyD;AACzD,4DAAmE;AAEnE,+BAA6B;AAC7B,4CAAwC;AAExC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,CAAC,eAAe,GAAG,IAAI,gCAAc,EAAE,CAAA;IAC7C,MAAM,CAAC,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAA;IAElC,MAAM,aAAa,GAAG,IAAA,wCAAwB,EAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IAE1D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAE/C,MAAM,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,IAAI,GAAG,MAAM,4BAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC9D,IAAA,aAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;QAEjC,MAAM,QAAQ,GAAG,MAAM,4BAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAClE,IAAA,aAAM,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,GAAG,GAAG,MAAM,0BAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACzD,IAAA,aAAM,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { EthereumDexPrice, GoerliDexPrice } from './dex-price'\nimport { ProcessorState } from '../state/processor-state'\nimport { loadTestProvidersFromEnv } from '../testing/test-provider'\n\nimport { expect } from 'chai'\nimport { Endpoints } from '../endpoints'\n\ndescribe('dex price tests', () => {\n global.PROCESSOR_STATE = new ProcessorState()\n global.ENDPOINTS = new Endpoints()\n\n const haveProviders = loadTestProvidersFromEnv(['1', '5'])\n\n const testIf = haveProviders ? test : test.skip\n\n testIf('get price at mainnet', async () => {\n const usdc = await EthereumDexPrice.getPrice('usdc', 15677823)\n expect(usdc.price).eq(0.99991649)\n\n const compound = await EthereumDexPrice.getPrice('COMP', 15677823)\n expect(compound.price).eq(60.27)\n })\n\n testIf('get price at goerli', async () => {\n const dai = await GoerliDexPrice.getPrice('DAI', 7712734)\n expect(dai.price).eq(0.99971281)\n })\n})\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc20.test.js","sourceRoot":"","sources":["../../src/utils/erc20.test.ts"],"names":[],"mappings":";;AAAA,8DAAyD;AACzD,mCAA2C;AAC3C,4DAAmE;AACnE,4CAAwC;AAExC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,MAAM,CAAC,eAAe,GAAG,IAAI,gCAAc,EAAE,CAAA;IAC7C,MAAM,CAAC,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAA;IAElC,MAAM,aAAa,GAAG,IAAA,wCAAwB,EAAC,GAAG,CAAC,CAAA;IAEnD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAE/C,MAAM,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAiB,EAAC,4CAA4C,CAAC,CAAA;QAElF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAiB,EAAC,4CAA4C,CAAC,CAAA;QAElF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { ProcessorState } from '../state/processor-state'\nimport { getERC20TokenInfo } from './token'\nimport { loadTestProvidersFromEnv } from '../testing/test-provider'\nimport { Endpoints } from '../endpoints'\n\ndescribe('erc20 tests', () => {\n global.PROCESSOR_STATE = new ProcessorState()\n global.ENDPOINTS = new Endpoints()\n\n const haveProviders = loadTestProvidersFromEnv('1')\n\n const testIf = haveProviders ? test : test.skip\n\n testIf('test bytes32', async () => {\n const info = await getERC20TokenInfo('0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2')\n\n expect(info.decimal).toEqual(18)\n expect(info.symbol).toEqual('MKR')\n expect(info.name).toEqual('Maker')\n })\n\n testIf('test normal', async () => {\n const info = await getERC20TokenInfo('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48')\n\n expect(info.decimal).toEqual(6)\n expect(info.symbol).toEqual('USDC')\n expect(info.name).toEqual('USD Coin')\n })\n})\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.dexPrice = exports.token = exports.conversion = exports.chain = void 0;
|
|
27
|
+
exports.chain = __importStar(require("./chain"));
|
|
28
|
+
exports.conversion = __importStar(require("./conversion"));
|
|
29
|
+
exports.token = __importStar(require("./token"));
|
|
30
|
+
exports.dexPrice = __importStar(require("./dex-price"));
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAgC;AAChC,2DAA0C;AAC1C,iDAAgC;AAChC,wDAAuC","sourcesContent":["export * as chain from './chain'\nexport * as conversion from './conversion'\nexport * as token from './token'\nexport * as dexPrice from './dex-price'\n"]}
|