@sentio/sdk 1.0.0-development → 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 -42
- 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 -161
- 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 -76
- 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 -66
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"generic-processor.test.js","sourceRoot":"","sources":["../../src/core/generic-processor.test.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO move out of this package\n\nimport { expect } from 'chai'\n\nimport { HandlerType } from '../gen'\n\nimport { GenericProcessor } from './generic-processor'\nimport { TestProcessorServer, firstCounterValue } from '../testing'\n\ndescribe('Test Generic Processor', () => {\n const service = new TestProcessorServer(() => {\n GenericProcessor.bind(\n [\n 'event Transfer(address indexed from, address indexed to, uint256 value)',\n 'event Approval(address indexed from, address indexed to, uint256 value)',\n ],\n { address: '0x1E4EDE388cbc9F4b5c79681B7f94d36a11ABEBC9' }\n ).onAllEvents(function (log, ctx) {\n ctx.meter.Counter('event_num').add(1)\n })\n\n GenericProcessor.bind('event WalletCreated(address wallet, address owner)', {\n address: '0x57E037F4d2c8BEa011Ad8a9A5AF4AaEEd508650f',\n }).onAllEvents(function (log, ctx) {\n ctx.meter.Counter('wallet').add(1)\n })\n })\n\n beforeAll(async () => {\n await service.start()\n })\n\n test('check configuration', async () => {\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(2)\n expect(config.contractConfigs?.[0].contract?.name).equals('Generic')\n })\n\n test('Check log dispatch', async () => {\n const res = await service.testLogs([logData, logData])\n const counters = res.result?.counters\n expect(counters).length(2)\n expect(firstCounterValue(res.result, 'event_num')).equals(1n)\n expect(counters?.[0].runtimeInfo?.from).equals(HandlerType.ETH_LOG)\n })\n\n test('Check log dispatch no buffer over rune', async () => {\n const logStr =\n '{\"address\":\"0x57e037f4d2c8bea011ad8a9a5af4aaeed508650f\",\"topics\":[\"0x5b03bfed1c14a02bdeceb5fa582eb1a5765fc0bc64ca0e6af4c20afc9487f081\"],\"data\":\"0x00000000000000000000000093269483a70c68d5c5bb63aac1e8f4ac59f498800000000000000000000000000c520e51c055cf63bab075715c1b860b2e9b8e24\",\"blockNumber\":\"0xc9d6d7\",\"transactionHash\":\"0x208af3250499672c2f07138b9aa236153c65c78ae4341b23c2763017afdd61a2\",\"transactionIndex\":\"0xf3\",\"blockHash\":\"0x6e3b100c34b510049e922fbe1c1dab1b0793be3d1229b632688e6a518cdd11b6\",\"logIndex\":\"0x14b\",\"removed\":false}'\n const res = await service.testLog(JSON.parse(logStr))\n console.log(JSON.stringify(res))\n })\n\n const logData = {\n blockNumber: 14213252,\n blockHash: '0x83d646fac9350b281def8c4c37626f9d8efc95df801287b848c719edf35cdbaf',\n transactionIndex: 347,\n removed: false,\n address: '0x1E4EDE388cbc9F4b5c79681B7f94d36a11ABEBC9',\n data: '0x00000000000000000000000000000000000000000000009a71db64810aaa0000',\n topics: [\n '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',\n '0x0000000000000000000000000000000000000000000000000000000000000000',\n '0x000000000000000000000000b329e39ebefd16f40d38f07643652ce17ca5bac1',\n ],\n transactionHash: '0x93355e0cb2c3490cb8a747029ff2dc8cdbde2407025b8391398436955afae303',\n logIndex: 428,\n }\n})\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { BigDecimal } from './big-decimal';
|
|
2
|
+
export { ContractContext, ContractView, BoundContractView } from './context';
|
|
3
|
+
export { CounterBinding, Meter, GaugeBinding, Counter, Gauge, MetricOptions } from './meter';
|
|
4
|
+
export { EventTracker, AccountEventTracker } from './event-tracker';
|
|
5
|
+
export { type Numberish, toBigInteger, toMetricValue } from './numberish';
|
|
6
|
+
export { BindOptions } from './bind-options';
|
|
7
|
+
export { BaseProcessor } from './base-processor';
|
|
8
|
+
export { GenericProcessor } from './generic-processor';
|
|
9
|
+
export { BaseProcessorTemplate } from './base-processor-template';
|
|
10
|
+
export { SuiBaseProcessor, SuiBindOptions } from './sui-processor';
|
|
11
|
+
export { SolanaContext } from './solana-context';
|
|
12
|
+
export { SolanaBindOptions } from './solana-options';
|
|
13
|
+
export { SolanaBaseProcessor } from './solana-processor';
|
|
14
|
+
export type { TypedCallTrace, Trace } from './trace';
|
|
15
|
+
export { EthPlugin } from './eth-plugin';
|
|
16
|
+
export { SolanaPlugin } from './solana-plugin';
|
|
17
|
+
export { SuiPlugin } from './sui-plugin';
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SuiPlugin = exports.SolanaPlugin = exports.EthPlugin = exports.SolanaBaseProcessor = exports.SolanaBindOptions = exports.SolanaContext = exports.SuiBindOptions = exports.SuiBaseProcessor = exports.BaseProcessorTemplate = exports.GenericProcessor = exports.BaseProcessor = exports.BindOptions = exports.toMetricValue = exports.toBigInteger = exports.AccountEventTracker = exports.EventTracker = exports.MetricOptions = exports.Gauge = exports.Counter = exports.GaugeBinding = exports.Meter = exports.CounterBinding = exports.BoundContractView = exports.ContractView = exports.ContractContext = exports.BigDecimal = void 0;
|
|
4
|
+
var big_decimal_1 = require("./big-decimal");
|
|
5
|
+
Object.defineProperty(exports, "BigDecimal", { enumerable: true, get: function () { return big_decimal_1.BigDecimal; } });
|
|
6
|
+
var context_1 = require("./context");
|
|
7
|
+
Object.defineProperty(exports, "ContractContext", { enumerable: true, get: function () { return context_1.ContractContext; } });
|
|
8
|
+
Object.defineProperty(exports, "ContractView", { enumerable: true, get: function () { return context_1.ContractView; } });
|
|
9
|
+
Object.defineProperty(exports, "BoundContractView", { enumerable: true, get: function () { return context_1.BoundContractView; } });
|
|
10
|
+
var meter_1 = require("./meter");
|
|
11
|
+
Object.defineProperty(exports, "CounterBinding", { enumerable: true, get: function () { return meter_1.CounterBinding; } });
|
|
12
|
+
Object.defineProperty(exports, "Meter", { enumerable: true, get: function () { return meter_1.Meter; } });
|
|
13
|
+
Object.defineProperty(exports, "GaugeBinding", { enumerable: true, get: function () { return meter_1.GaugeBinding; } });
|
|
14
|
+
Object.defineProperty(exports, "Counter", { enumerable: true, get: function () { return meter_1.Counter; } });
|
|
15
|
+
Object.defineProperty(exports, "Gauge", { enumerable: true, get: function () { return meter_1.Gauge; } });
|
|
16
|
+
Object.defineProperty(exports, "MetricOptions", { enumerable: true, get: function () { return meter_1.MetricOptions; } });
|
|
17
|
+
var event_tracker_1 = require("./event-tracker");
|
|
18
|
+
Object.defineProperty(exports, "EventTracker", { enumerable: true, get: function () { return event_tracker_1.EventTracker; } });
|
|
19
|
+
Object.defineProperty(exports, "AccountEventTracker", { enumerable: true, get: function () { return event_tracker_1.AccountEventTracker; } });
|
|
20
|
+
var numberish_1 = require("./numberish");
|
|
21
|
+
Object.defineProperty(exports, "toBigInteger", { enumerable: true, get: function () { return numberish_1.toBigInteger; } });
|
|
22
|
+
Object.defineProperty(exports, "toMetricValue", { enumerable: true, get: function () { return numberish_1.toMetricValue; } });
|
|
23
|
+
var bind_options_1 = require("./bind-options");
|
|
24
|
+
Object.defineProperty(exports, "BindOptions", { enumerable: true, get: function () { return bind_options_1.BindOptions; } });
|
|
25
|
+
var base_processor_1 = require("./base-processor");
|
|
26
|
+
Object.defineProperty(exports, "BaseProcessor", { enumerable: true, get: function () { return base_processor_1.BaseProcessor; } });
|
|
27
|
+
var generic_processor_1 = require("./generic-processor");
|
|
28
|
+
Object.defineProperty(exports, "GenericProcessor", { enumerable: true, get: function () { return generic_processor_1.GenericProcessor; } });
|
|
29
|
+
var base_processor_template_1 = require("./base-processor-template");
|
|
30
|
+
Object.defineProperty(exports, "BaseProcessorTemplate", { enumerable: true, get: function () { return base_processor_template_1.BaseProcessorTemplate; } });
|
|
31
|
+
var sui_processor_1 = require("./sui-processor");
|
|
32
|
+
Object.defineProperty(exports, "SuiBaseProcessor", { enumerable: true, get: function () { return sui_processor_1.SuiBaseProcessor; } });
|
|
33
|
+
Object.defineProperty(exports, "SuiBindOptions", { enumerable: true, get: function () { return sui_processor_1.SuiBindOptions; } });
|
|
34
|
+
var solana_context_1 = require("./solana-context");
|
|
35
|
+
Object.defineProperty(exports, "SolanaContext", { enumerable: true, get: function () { return solana_context_1.SolanaContext; } });
|
|
36
|
+
var solana_options_1 = require("./solana-options");
|
|
37
|
+
Object.defineProperty(exports, "SolanaBindOptions", { enumerable: true, get: function () { return solana_options_1.SolanaBindOptions; } });
|
|
38
|
+
var solana_processor_1 = require("./solana-processor");
|
|
39
|
+
Object.defineProperty(exports, "SolanaBaseProcessor", { enumerable: true, get: function () { return solana_processor_1.SolanaBaseProcessor; } });
|
|
40
|
+
var eth_plugin_1 = require("./eth-plugin");
|
|
41
|
+
Object.defineProperty(exports, "EthPlugin", { enumerable: true, get: function () { return eth_plugin_1.EthPlugin; } });
|
|
42
|
+
var solana_plugin_1 = require("./solana-plugin");
|
|
43
|
+
Object.defineProperty(exports, "SolanaPlugin", { enumerable: true, get: function () { return solana_plugin_1.SolanaPlugin; } });
|
|
44
|
+
var sui_plugin_1 = require("./sui-plugin");
|
|
45
|
+
Object.defineProperty(exports, "SuiPlugin", { enumerable: true, get: function () { return sui_plugin_1.SuiPlugin; } });
|
|
46
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAAjC,yGAAA,UAAU,OAAA;AACnB,qCAA4E;AAAnE,0GAAA,eAAe,OAAA;AAAE,uGAAA,YAAY,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AACzD,iCAA4F;AAAnF,uGAAA,cAAc,OAAA;AAAE,8FAAA,KAAK,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,gGAAA,OAAO,OAAA;AAAE,8FAAA,KAAK,OAAA;AAAE,sGAAA,aAAa,OAAA;AAC3E,iDAAmE;AAA1D,6GAAA,YAAY,OAAA;AAAE,oHAAA,mBAAmB,OAAA;AAC1C,yCAAyE;AAAhD,yGAAA,YAAY,OAAA;AAAE,0GAAA,aAAa,OAAA;AAEpD,+CAA4C;AAAnC,2GAAA,WAAW,OAAA;AAEpB,mDAAgD;AAAvC,+GAAA,aAAa,OAAA;AACtB,yDAAsD;AAA7C,qHAAA,gBAAgB,OAAA;AACzB,qEAAiE;AAAxD,gIAAA,qBAAqB,OAAA;AAC9B,iDAAkE;AAAzD,iHAAA,gBAAgB,OAAA;AAAE,+GAAA,cAAc,OAAA;AAEzC,mDAAgD;AAAvC,+GAAA,aAAa,OAAA;AACtB,mDAAoD;AAA3C,mHAAA,iBAAiB,OAAA;AAC1B,uDAAwD;AAA/C,uHAAA,mBAAmB,OAAA;AAI5B,2CAAwC;AAA/B,uGAAA,SAAS,OAAA;AAClB,iDAA8C;AAArC,6GAAA,YAAY,OAAA;AACrB,2CAAwC;AAA/B,uGAAA,SAAS,OAAA","sourcesContent":["export { BigDecimal } from './big-decimal'\nexport { ContractContext, ContractView, BoundContractView } from './context'\nexport { CounterBinding, Meter, GaugeBinding, Counter, Gauge, MetricOptions } from './meter'\nexport { EventTracker, AccountEventTracker } from './event-tracker'\nexport { type Numberish, toBigInteger, toMetricValue } from './numberish'\n\nexport { BindOptions } from './bind-options'\n\nexport { BaseProcessor } from './base-processor'\nexport { GenericProcessor } from './generic-processor'\nexport { BaseProcessorTemplate } from './base-processor-template'\nexport { SuiBaseProcessor, SuiBindOptions } from './sui-processor'\n\nexport { SolanaContext } from './solana-context'\nexport { SolanaBindOptions } from './solana-options'\nexport { SolanaBaseProcessor } from './solana-processor'\n\nexport type { TypedCallTrace, Trace } from './trace'\n\nexport { EthPlugin } from './eth-plugin'\nexport { SolanaPlugin } from './solana-plugin'\nexport { SuiPlugin } from './sui-plugin'\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseContext } from './base-context';
|
|
2
|
+
import { LogLevel } from '../gen';
|
|
3
|
+
import { NamedResultDescriptor } from './metadata';
|
|
4
|
+
export declare type Attributes = Record<string, any>;
|
|
5
|
+
export declare class Logger extends NamedResultDescriptor {
|
|
6
|
+
private readonly ctx;
|
|
7
|
+
constructor(ctx: BaseContext, name?: string);
|
|
8
|
+
withName(name: string): Logger;
|
|
9
|
+
log(level: LogLevel, message: any, attributes?: Attributes): void;
|
|
10
|
+
info(msg: any, attributes?: Attributes): void;
|
|
11
|
+
warn(msg: any, attributes?: Attributes): void;
|
|
12
|
+
error(msg: any, attributes?: Attributes): void;
|
|
13
|
+
critical(msg: any, attributes?: Attributes): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Logger = void 0;
|
|
4
|
+
const gen_1 = require("../gen");
|
|
5
|
+
const metadata_1 = require("./metadata");
|
|
6
|
+
class Logger extends metadata_1.NamedResultDescriptor {
|
|
7
|
+
ctx;
|
|
8
|
+
constructor(ctx, name = '') {
|
|
9
|
+
super(name);
|
|
10
|
+
this.ctx = ctx;
|
|
11
|
+
}
|
|
12
|
+
withName(name) {
|
|
13
|
+
return new Logger(this.ctx, name);
|
|
14
|
+
}
|
|
15
|
+
log(level, message, attributes = {}) {
|
|
16
|
+
if (typeof message !== 'string' && !(message instanceof String)) {
|
|
17
|
+
message = JSON.stringify(message);
|
|
18
|
+
}
|
|
19
|
+
this.ctx.res.logs.push({
|
|
20
|
+
// name: this.name,
|
|
21
|
+
metadata: this.ctx.getMetaData(this.name, {}),
|
|
22
|
+
level,
|
|
23
|
+
message,
|
|
24
|
+
attributes: JSON.stringify(attributes),
|
|
25
|
+
runtimeInfo: undefined,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
info(msg, attributes = {}) {
|
|
29
|
+
this.log(gen_1.LogLevel.INFO, msg, attributes);
|
|
30
|
+
}
|
|
31
|
+
warn(msg, attributes = {}) {
|
|
32
|
+
this.log(gen_1.LogLevel.WARNING, msg, attributes);
|
|
33
|
+
}
|
|
34
|
+
error(msg, attributes = {}) {
|
|
35
|
+
this.log(gen_1.LogLevel.ERROR, msg, attributes);
|
|
36
|
+
}
|
|
37
|
+
critical(msg, attributes = {}) {
|
|
38
|
+
this.log(gen_1.LogLevel.CRITICAL, msg, attributes);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.Logger = Logger;
|
|
42
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":";;;AACA,gCAAiC;AACjC,yCAAkD;AAIlD,MAAa,MAAO,SAAQ,gCAAqB;IAC9B,GAAG,CAAa;IAEjC,YAAY,GAAgB,EAAE,IAAI,GAAG,EAAE;QACrC,KAAK,CAAC,IAAI,CAAC,CAAA;QACX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,GAAG,CAAC,KAAe,EAAE,OAAY,EAAE,aAAyB,EAAE;QAC5D,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,YAAY,MAAM,CAAC,EAAE;YAC/D,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACrB,mBAAmB;YACnB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,KAAK;YACL,OAAO;YACP,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;YACtC,WAAW,EAAE,SAAS;SACvB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC,GAAQ,EAAE,aAAyB,EAAE;QACxC,IAAI,CAAC,GAAG,CAAC,cAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,CAAC,GAAQ,EAAE,aAAyB,EAAE;QACxC,IAAI,CAAC,GAAG,CAAC,cAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,GAAQ,EAAE,aAAyB,EAAE;QACzC,IAAI,CAAC,GAAG,CAAC,cAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;IAC3C,CAAC;IAED,QAAQ,CAAC,GAAQ,EAAE,aAAyB,EAAE;QAC5C,IAAI,CAAC,GAAG,CAAC,cAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;IAC9C,CAAC;CACF;AA1CD,wBA0CC","sourcesContent":["import { BaseContext } from './base-context'\nimport { LogLevel } from '../gen'\nimport { NamedResultDescriptor } from './metadata'\n\nexport type Attributes = Record<string, any>\n\nexport class Logger extends NamedResultDescriptor {\n private readonly ctx: BaseContext\n\n constructor(ctx: BaseContext, name = '') {\n super(name)\n this.ctx = ctx\n }\n\n withName(name: string) {\n return new Logger(this.ctx, name)\n }\n\n log(level: LogLevel, message: any, attributes: Attributes = {}) {\n if (typeof message !== 'string' && !(message instanceof String)) {\n message = JSON.stringify(message)\n }\n\n this.ctx.res.logs.push({\n // name: this.name,\n metadata: this.ctx.getMetaData(this.name, {}), // GetRecordMetaData(this.ctx, this, {}),\n level,\n message,\n attributes: JSON.stringify(attributes),\n runtimeInfo: undefined,\n })\n }\n\n info(msg: any, attributes: Attributes = {}) {\n this.log(LogLevel.INFO, msg, attributes)\n }\n\n warn(msg: any, attributes: Attributes = {}) {\n this.log(LogLevel.WARNING, msg, attributes)\n }\n\n error(msg: any, attributes: Attributes = {}) {\n this.log(LogLevel.ERROR, msg, attributes)\n }\n\n critical(msg: any, attributes: Attributes = {}) {\n this.log(LogLevel.CRITICAL, msg, attributes)\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NamedResultDescriptor = void 0;
|
|
4
|
+
const meter_1 = require("./meter");
|
|
5
|
+
class NamedResultDescriptor {
|
|
6
|
+
name;
|
|
7
|
+
constructor(name) {
|
|
8
|
+
this.name = (0, meter_1.normalizeName)(name);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.NamedResultDescriptor = NamedResultDescriptor;
|
|
12
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/core/metadata.ts"],"names":[],"mappings":";;;AAAA,mCAAuC;AAIvC,MAAa,qBAAqB;IAChC,IAAI,CAAQ;IAEZ,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAA;IACjC,CAAC;CACF;AAND,sDAMC","sourcesContent":["import { normalizeName } from './meter'\n\nexport type Labels = { [key: string]: string }\n\nexport class NamedResultDescriptor {\n name: string\n\n constructor(name: string) {\n this.name = normalizeName(name)\n }\n}\n"]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { BaseContext } from './base-context';
|
|
2
|
+
import { Numberish } from './numberish';
|
|
3
|
+
import { Labels, NamedResultDescriptor } from './metadata';
|
|
4
|
+
import { AggregationConfig, MetricConfig, MetricType } from '../gen';
|
|
5
|
+
import { MapStateStorage } from '../state/state-storage';
|
|
6
|
+
export declare function normalizeName(name: string): string;
|
|
7
|
+
export declare function normalizeKey(name: string): string;
|
|
8
|
+
export declare function normalizeValue(name: string): string;
|
|
9
|
+
export declare function normalizeLabels(labels: Labels): Labels;
|
|
10
|
+
export declare class MetricOptions {
|
|
11
|
+
unit?: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
sparse?: boolean;
|
|
14
|
+
aggregationConfig?: Partial<AggregationConfig>;
|
|
15
|
+
}
|
|
16
|
+
export declare class CounterOptions {
|
|
17
|
+
unit?: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
sparse?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare class Metric extends NamedResultDescriptor {
|
|
22
|
+
config: MetricConfig;
|
|
23
|
+
constructor(type: MetricType, name: string, option?: MetricOptions);
|
|
24
|
+
}
|
|
25
|
+
export declare class MetricState extends MapStateStorage<Metric> {
|
|
26
|
+
static INSTANCE: MetricState;
|
|
27
|
+
getOrRegisterMetric(type: MetricType, name: string, option?: CounterOptions | MetricOptions): Metric;
|
|
28
|
+
}
|
|
29
|
+
export declare class Counter extends Metric {
|
|
30
|
+
static register(name: string, option?: CounterOptions): Counter;
|
|
31
|
+
constructor(name: string, option?: MetricOptions);
|
|
32
|
+
add(ctx: BaseContext, value: Numberish, labels?: Labels): void;
|
|
33
|
+
sub(ctx: BaseContext, value: Numberish, labels?: Labels): void;
|
|
34
|
+
private record;
|
|
35
|
+
}
|
|
36
|
+
export declare class CounterBinding {
|
|
37
|
+
private readonly ctx;
|
|
38
|
+
private readonly counter;
|
|
39
|
+
constructor(name: string, ctx: BaseContext);
|
|
40
|
+
add(value: Numberish, labels?: Labels): void;
|
|
41
|
+
sub(value: Numberish, labels?: Labels): void;
|
|
42
|
+
}
|
|
43
|
+
export declare class Gauge extends Metric {
|
|
44
|
+
static register(name: string, option?: MetricOptions): Gauge;
|
|
45
|
+
constructor(name: string, option?: MetricOptions);
|
|
46
|
+
record(ctx: BaseContext, value: Numberish, labels?: Labels): void;
|
|
47
|
+
}
|
|
48
|
+
export declare class GaugeBinding {
|
|
49
|
+
private readonly gauge;
|
|
50
|
+
private readonly ctx;
|
|
51
|
+
constructor(name: string, ctx: BaseContext);
|
|
52
|
+
record(value: Numberish, labels?: Labels): void;
|
|
53
|
+
}
|
|
54
|
+
export declare class Meter {
|
|
55
|
+
private readonly ctx;
|
|
56
|
+
constructor(ctx: BaseContext);
|
|
57
|
+
Counter(name: string): CounterBinding;
|
|
58
|
+
Gauge(name: string): GaugeBinding;
|
|
59
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Meter = exports.GaugeBinding = exports.Gauge = exports.CounterBinding = exports.Counter = exports.MetricState = exports.Metric = exports.CounterOptions = exports.MetricOptions = exports.normalizeLabels = exports.normalizeValue = exports.normalizeKey = exports.normalizeName = void 0;
|
|
4
|
+
const numberish_1 = require("./numberish");
|
|
5
|
+
const metadata_1 = require("./metadata");
|
|
6
|
+
const gen_1 = require("../gen");
|
|
7
|
+
const state_storage_1 = require("../state/state-storage");
|
|
8
|
+
function normalizeName(name) {
|
|
9
|
+
const regex = new RegExp('![_.a-zA-Z0-9]');
|
|
10
|
+
return name.slice(0, 100).replace(regex, '_');
|
|
11
|
+
}
|
|
12
|
+
exports.normalizeName = normalizeName;
|
|
13
|
+
function normalizeKey(name) {
|
|
14
|
+
if (name === 'labels') {
|
|
15
|
+
return 'labels_';
|
|
16
|
+
}
|
|
17
|
+
return normalizeName(name);
|
|
18
|
+
}
|
|
19
|
+
exports.normalizeKey = normalizeKey;
|
|
20
|
+
function normalizeValue(name) {
|
|
21
|
+
return name.slice(0, 100);
|
|
22
|
+
}
|
|
23
|
+
exports.normalizeValue = normalizeValue;
|
|
24
|
+
function normalizeLabels(labels) {
|
|
25
|
+
const normLabels = {};
|
|
26
|
+
for (const key in labels) {
|
|
27
|
+
normLabels[normalizeKey(key)] = normalizeValue(labels[key]);
|
|
28
|
+
}
|
|
29
|
+
return normLabels;
|
|
30
|
+
}
|
|
31
|
+
exports.normalizeLabels = normalizeLabels;
|
|
32
|
+
class MetricOptions {
|
|
33
|
+
unit;
|
|
34
|
+
description;
|
|
35
|
+
sparse;
|
|
36
|
+
aggregationConfig;
|
|
37
|
+
}
|
|
38
|
+
exports.MetricOptions = MetricOptions;
|
|
39
|
+
class CounterOptions {
|
|
40
|
+
unit;
|
|
41
|
+
description;
|
|
42
|
+
sparse;
|
|
43
|
+
}
|
|
44
|
+
exports.CounterOptions = CounterOptions;
|
|
45
|
+
// enum MetricType {
|
|
46
|
+
// Counter = 0,
|
|
47
|
+
// Gauge = 1,
|
|
48
|
+
// }
|
|
49
|
+
class Metric extends metadata_1.NamedResultDescriptor {
|
|
50
|
+
config;
|
|
51
|
+
constructor(type, name, option) {
|
|
52
|
+
super(name);
|
|
53
|
+
this.config = gen_1.MetricConfig.fromPartial({ name: this.name, type: type, ...option });
|
|
54
|
+
const aggregationConfig = this.config.aggregationConfig;
|
|
55
|
+
if (aggregationConfig && aggregationConfig.intervalInMinutes.length) {
|
|
56
|
+
if (aggregationConfig.intervalInMinutes.length > 1) {
|
|
57
|
+
console.error('current only support one intervalInMinutes, only first interval will be used for', name);
|
|
58
|
+
}
|
|
59
|
+
if (aggregationConfig.intervalInMinutes[0] > 0 && aggregationConfig.types.length === 0) {
|
|
60
|
+
aggregationConfig.types = [gen_1.AggregationType.SUM, gen_1.AggregationType.COUNT];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.Metric = Metric;
|
|
66
|
+
class MetricState extends state_storage_1.MapStateStorage {
|
|
67
|
+
static INSTANCE = new MetricState();
|
|
68
|
+
getOrRegisterMetric(type, name, option) {
|
|
69
|
+
const metricMap = this.getOrRegister();
|
|
70
|
+
let metric = metricMap.get(name);
|
|
71
|
+
if (metric && metric.config.type !== type) {
|
|
72
|
+
throw Error(`redefine ${name} of metric type ${type} that is previously ${metric.config.type}`);
|
|
73
|
+
}
|
|
74
|
+
if (!metric) {
|
|
75
|
+
if (type === gen_1.MetricType.COUNTER) {
|
|
76
|
+
metric = new Counter(name, option);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
metric = new Gauge(name, option);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
metricMap.set(name, metric);
|
|
83
|
+
return metric;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.MetricState = MetricState;
|
|
87
|
+
class Counter extends Metric {
|
|
88
|
+
static register(name, option) {
|
|
89
|
+
return MetricState.INSTANCE.getOrRegisterMetric(gen_1.MetricType.COUNTER, name, option);
|
|
90
|
+
}
|
|
91
|
+
constructor(name, option) {
|
|
92
|
+
super(gen_1.MetricType.COUNTER, name, option);
|
|
93
|
+
}
|
|
94
|
+
add(ctx, value, labels = {}) {
|
|
95
|
+
this.record(ctx, value, labels, true);
|
|
96
|
+
}
|
|
97
|
+
sub(ctx, value, labels = {}) {
|
|
98
|
+
this.record(ctx, value, labels, false);
|
|
99
|
+
}
|
|
100
|
+
record(ctx, value, labels, add) {
|
|
101
|
+
ctx.res.counters.push({
|
|
102
|
+
metadata: ctx.getMetaData(this.name, labels),
|
|
103
|
+
metricValue: (0, numberish_1.toMetricValue)(value),
|
|
104
|
+
add: add,
|
|
105
|
+
runtimeInfo: undefined,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.Counter = Counter;
|
|
110
|
+
class CounterBinding {
|
|
111
|
+
ctx;
|
|
112
|
+
counter;
|
|
113
|
+
constructor(name, ctx) {
|
|
114
|
+
this.counter = new Counter(name);
|
|
115
|
+
this.ctx = ctx;
|
|
116
|
+
}
|
|
117
|
+
add(value, labels = {}) {
|
|
118
|
+
this.counter.add(this.ctx, value, labels);
|
|
119
|
+
}
|
|
120
|
+
sub(value, labels = {}) {
|
|
121
|
+
this.counter.sub(this.ctx, value, labels);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.CounterBinding = CounterBinding;
|
|
125
|
+
class Gauge extends Metric {
|
|
126
|
+
static register(name, option) {
|
|
127
|
+
return MetricState.INSTANCE.getOrRegisterMetric(gen_1.MetricType.GAUGE, name, option);
|
|
128
|
+
}
|
|
129
|
+
constructor(name, option) {
|
|
130
|
+
super(gen_1.MetricType.GAUGE, name, option);
|
|
131
|
+
}
|
|
132
|
+
record(ctx, value, labels = {}) {
|
|
133
|
+
ctx.res.gauges.push({
|
|
134
|
+
metadata: ctx.getMetaData(this.config.name, labels),
|
|
135
|
+
metricValue: (0, numberish_1.toMetricValue)(value),
|
|
136
|
+
runtimeInfo: undefined,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.Gauge = Gauge;
|
|
141
|
+
class GaugeBinding {
|
|
142
|
+
gauge;
|
|
143
|
+
ctx;
|
|
144
|
+
constructor(name, ctx) {
|
|
145
|
+
this.gauge = new Gauge(name);
|
|
146
|
+
this.ctx = ctx;
|
|
147
|
+
}
|
|
148
|
+
record(value, labels = {}) {
|
|
149
|
+
this.gauge.record(this.ctx, value, labels);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.GaugeBinding = GaugeBinding;
|
|
153
|
+
class Meter {
|
|
154
|
+
ctx;
|
|
155
|
+
constructor(ctx) {
|
|
156
|
+
this.ctx = ctx;
|
|
157
|
+
}
|
|
158
|
+
Counter(name) {
|
|
159
|
+
return new CounterBinding(name, this.ctx);
|
|
160
|
+
}
|
|
161
|
+
Gauge(name) {
|
|
162
|
+
return new GaugeBinding(name, this.ctx);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.Meter = Meter;
|
|
166
|
+
//# sourceMappingURL=meter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meter.js","sourceRoot":"","sources":["../../src/core/meter.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseContext } from './base-context'\nimport { Numberish, toMetricValue } from './numberish'\nimport { Labels, NamedResultDescriptor } from './metadata'\nimport { AggregationConfig, AggregationType, MetricConfig, MetricType } from '../gen'\nimport { MapStateStorage } from '../state/state-storage'\n\nexport function normalizeName(name: string): string {\n const regex = new RegExp('![_.a-zA-Z0-9]')\n return name.slice(0, 100).replace(regex, '_')\n}\n\nexport function normalizeKey(name: string): string {\n if (name === 'labels') {\n return 'labels_'\n }\n return normalizeName(name)\n}\n\nexport function normalizeValue(name: string): string {\n return name.slice(0, 100)\n}\n\nexport function normalizeLabels(labels: Labels): Labels {\n const normLabels: Labels = {}\n for (const key in labels) {\n normLabels[normalizeKey(key)] = normalizeValue(labels[key])\n }\n return normLabels\n}\n\nexport class MetricOptions {\n unit?: string\n description?: string\n sparse?: boolean\n aggregationConfig?: Partial<AggregationConfig>\n}\n\nexport class CounterOptions {\n unit?: string\n description?: string\n sparse?: boolean\n}\n\n// enum MetricType {\n// Counter = 0,\n// Gauge = 1,\n// }\n\nexport class Metric extends NamedResultDescriptor {\n config: MetricConfig\n constructor(type: MetricType, name: string, option?: MetricOptions) {\n super(name)\n this.config = MetricConfig.fromPartial({ name: this.name, type: type, ...option })\n const aggregationConfig = this.config.aggregationConfig\n if (aggregationConfig && aggregationConfig.intervalInMinutes.length) {\n if (aggregationConfig.intervalInMinutes.length > 1) {\n console.error('current only support one intervalInMinutes, only first interval will be used for', name)\n }\n if (aggregationConfig.intervalInMinutes[0] > 0 && aggregationConfig.types.length === 0) {\n aggregationConfig.types = [AggregationType.SUM, AggregationType.COUNT]\n }\n }\n }\n}\n\nexport class MetricState extends MapStateStorage<Metric> {\n static INSTANCE = new MetricState()\n\n getOrRegisterMetric(type: MetricType, name: string, option?: CounterOptions | MetricOptions): Metric {\n const metricMap = this.getOrRegister()\n let metric = metricMap.get(name)\n if (metric && metric.config.type !== type) {\n throw Error(`redefine ${name} of metric type ${type} that is previously ${metric.config.type}`)\n }\n\n if (!metric) {\n if (type === MetricType.COUNTER) {\n metric = new Counter(name, option)\n } else {\n metric = new Gauge(name, option)\n }\n }\n metricMap.set(name, metric)\n return metric\n }\n}\n\nexport class Counter extends Metric {\n static register(name: string, option?: CounterOptions): Counter {\n return MetricState.INSTANCE.getOrRegisterMetric(MetricType.COUNTER, name, option) as Counter\n }\n\n constructor(name: string, option?: MetricOptions) {\n super(MetricType.COUNTER, name, option)\n }\n\n add(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n this.record(ctx, value, labels, true)\n }\n\n sub(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n this.record(ctx, value, labels, false)\n }\n\n private record(ctx: BaseContext, value: Numberish, labels: Labels, add: boolean) {\n ctx.res.counters.push({\n metadata: ctx.getMetaData(this.name, labels),\n metricValue: toMetricValue(value),\n add: add,\n runtimeInfo: undefined,\n })\n }\n}\n\nexport class CounterBinding {\n private readonly ctx: BaseContext\n private readonly counter: Counter\n\n constructor(name: string, ctx: BaseContext) {\n this.counter = new Counter(name)\n this.ctx = ctx\n }\n\n add(value: Numberish, labels: Labels = {}) {\n this.counter.add(this.ctx, value, labels)\n }\n\n sub(value: Numberish, labels: Labels = {}) {\n this.counter.sub(this.ctx, value, labels)\n }\n}\n\nexport class Gauge extends Metric {\n static register(name: string, option?: MetricOptions): Gauge {\n return MetricState.INSTANCE.getOrRegisterMetric(MetricType.GAUGE, name, option) as Gauge\n }\n\n constructor(name: string, option?: MetricOptions) {\n super(MetricType.GAUGE, name, option)\n }\n\n record(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n ctx.res.gauges.push({\n metadata: ctx.getMetaData(this.config.name, labels),\n metricValue: toMetricValue(value),\n runtimeInfo: undefined,\n })\n }\n}\n\nexport class GaugeBinding {\n private readonly gauge: Gauge\n private readonly ctx: BaseContext\n\n constructor(name: string, ctx: BaseContext) {\n this.gauge = new Gauge(name)\n this.ctx = ctx\n }\n\n record(value: Numberish, labels: Labels = {}) {\n this.gauge.record(this.ctx, value, labels)\n }\n}\n\nexport class Meter {\n private readonly ctx: BaseContext\n\n constructor(ctx: BaseContext) {\n this.ctx = ctx\n }\n\n Counter(name: string): CounterBinding {\n return new CounterBinding(name, this.ctx)\n }\n\n Gauge(name: string): GaugeBinding {\n return new GaugeBinding(name, this.ctx)\n }\n}\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meter.test.js","sourceRoot":"","sources":["../../src/core/meter.test.ts"],"names":[],"mappings":";;AAAA,+BAA6B;AAC7B,mCAAwD;AAExD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACrC,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAA;QACtC,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,OAAO,CAAC,KAAK,OAAO,CAAC,CAAA;QAC1C,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAA;QAE9C,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,UAAU,CAAC,KAAK,KAAK,CAAC,CAAA;QAC3C,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAA;QAC9C,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAA;QAEtC,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QAC9B,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC,MAAM,CAAC,CAAA;QAEvC,IAAA,aAAM,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { expect } from 'chai'\nimport { normalizeLabels, normalizeName } from './meter'\n\ndescribe('meter tests', () => {\n test('test normalization ', async () => {\n expect(normalizeName('abc') === 'abc')\n expect(normalizeName('a-b-c') === 'a-b-c')\n expect(normalizeName('_a-B-1.') === '_a-B-1.')\n\n expect(normalizeName('a/b\\\\c\\n') === 'abc')\n expect(normalizeName('abc abc') === 'abc_abc')\n expect(normalizeName('*&~') === '___')\n\n expect(normalizeName('x'.repeat(200)).length === 100)\n })\n\n test('test labels', async () => {\n const labels = { labels: '0' }\n const updated = normalizeLabels(labels)\n\n expect(updated['labels_']).to.eq('0')\n })\n})\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BigNumber } from 'ethers';
|
|
2
|
+
import { BigInteger, MetricValue } from '../gen';
|
|
3
|
+
import { BigDecimal } from '.';
|
|
4
|
+
import Long from 'long';
|
|
5
|
+
export declare type Numberish = number | BigNumber | bigint | BigDecimal;
|
|
6
|
+
export declare function toMetricValue(value: Numberish): MetricValue;
|
|
7
|
+
export declare function toBigInteger(a: Numberish): BigInteger;
|
|
8
|
+
export declare function toBigInt(v: Long): bigint;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toBigInt = exports.toBigInteger = exports.toMetricValue = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const gen_1 = require("../gen");
|
|
6
|
+
const _1 = require(".");
|
|
7
|
+
const anchor_1 = require("@project-serum/anchor");
|
|
8
|
+
function toMetricValue(value) {
|
|
9
|
+
if (value instanceof ethers_1.BigNumber) {
|
|
10
|
+
return gen_1.MetricValue.fromPartial({
|
|
11
|
+
bigInteger: toBigInteger(value.toBigInt()),
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
if (value instanceof _1.BigDecimal) {
|
|
15
|
+
// Carefully consider the use case here
|
|
16
|
+
if (value.isInteger()) {
|
|
17
|
+
return gen_1.MetricValue.fromPartial({
|
|
18
|
+
bigInteger: bigDecimalToBigInteger(value),
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
if (value.isNaN()) {
|
|
23
|
+
throw new Error('Cannot record NaN value');
|
|
24
|
+
}
|
|
25
|
+
if (!value.isFinite()) {
|
|
26
|
+
// NaN also not finite
|
|
27
|
+
throw new Error('Cannot record infinite value');
|
|
28
|
+
}
|
|
29
|
+
return gen_1.MetricValue.fromPartial({
|
|
30
|
+
bigDecimal: value.toString(), // e.g. -7.350918e-428
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (anchor_1.BN.isBN(value)) {
|
|
35
|
+
return gen_1.MetricValue.fromPartial({
|
|
36
|
+
bigInteger: bnToBigInteger(value),
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (typeof value === 'bigint' || Number.isInteger(value)) {
|
|
40
|
+
return gen_1.MetricValue.fromPartial({
|
|
41
|
+
bigInteger: toBigInteger(value),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (typeof value === 'number') {
|
|
45
|
+
if (Number.isNaN(value)) {
|
|
46
|
+
throw new Error('Cannot record NaN value');
|
|
47
|
+
}
|
|
48
|
+
if (!Number.isFinite(value)) {
|
|
49
|
+
throw new Error('Cannot record infinite value');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return gen_1.MetricValue.fromPartial({
|
|
53
|
+
doubleValue: Number(value),
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
exports.toMetricValue = toMetricValue;
|
|
57
|
+
function bigDecimalToBigInteger(a) {
|
|
58
|
+
const negative = a.isNegative();
|
|
59
|
+
if (negative) {
|
|
60
|
+
a = a.abs();
|
|
61
|
+
}
|
|
62
|
+
return hexToBigInteger(a.toString(16), negative);
|
|
63
|
+
}
|
|
64
|
+
function bnToBigInteger(a) {
|
|
65
|
+
const negative = a.isNeg();
|
|
66
|
+
if (negative) {
|
|
67
|
+
a = a.abs();
|
|
68
|
+
}
|
|
69
|
+
return hexToBigInteger(a.toString(16), negative);
|
|
70
|
+
}
|
|
71
|
+
function intToBigInteger(a) {
|
|
72
|
+
const negative = a < 0;
|
|
73
|
+
if (negative) {
|
|
74
|
+
a = -a;
|
|
75
|
+
}
|
|
76
|
+
return hexToBigInteger(a.toString(16), negative);
|
|
77
|
+
}
|
|
78
|
+
function toBigInteger(a) {
|
|
79
|
+
if (a instanceof _1.BigDecimal) {
|
|
80
|
+
return bigDecimalToBigInteger(a);
|
|
81
|
+
}
|
|
82
|
+
if (a instanceof anchor_1.BN) {
|
|
83
|
+
return bnToBigInteger(a);
|
|
84
|
+
}
|
|
85
|
+
if (a instanceof ethers_1.BigNumber) {
|
|
86
|
+
return intToBigInteger(a.toBigInt());
|
|
87
|
+
}
|
|
88
|
+
return intToBigInteger(a);
|
|
89
|
+
// Following code is actually very slow
|
|
90
|
+
// while (a > 0) {
|
|
91
|
+
// const d = a & 0xffn
|
|
92
|
+
// a >>= 8n
|
|
93
|
+
// value.push(Number(d))
|
|
94
|
+
// }
|
|
95
|
+
//
|
|
96
|
+
// return {
|
|
97
|
+
// negative, value: new Uint8Array(value.reverse()),
|
|
98
|
+
// }
|
|
99
|
+
}
|
|
100
|
+
exports.toBigInteger = toBigInteger;
|
|
101
|
+
function hexToBigInteger(hex, negative) {
|
|
102
|
+
if (hex.length % 2 === 1) {
|
|
103
|
+
hex = '0' + hex;
|
|
104
|
+
}
|
|
105
|
+
const buffer = Buffer.from(hex, 'hex');
|
|
106
|
+
return {
|
|
107
|
+
negative: negative,
|
|
108
|
+
data: new Uint8Array(buffer),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function toBigInt(v) {
|
|
112
|
+
return BigInt(v.toString());
|
|
113
|
+
}
|
|
114
|
+
exports.toBigInt = toBigInt;
|
|
115
|
+
//# sourceMappingURL=numberish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numberish.js","sourceRoot":"","sources":["../../src/core/numberish.ts"],"names":[],"mappings":"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","sourcesContent":["import { BigNumber } from 'ethers'\nimport { BigInteger, MetricValue } from '../gen'\nimport { BigDecimal } from '.'\nimport { BN } from '@project-serum/anchor'\nimport Long from 'long'\n\nexport type Numberish = number | BigNumber | bigint | BigDecimal\n\nexport function toMetricValue(value: Numberish): MetricValue {\n if (value instanceof BigNumber) {\n return MetricValue.fromPartial({\n bigInteger: toBigInteger(value.toBigInt()),\n })\n }\n if (value instanceof BigDecimal) {\n // Carefully consider the use case here\n if (value.isInteger()) {\n return MetricValue.fromPartial({\n bigInteger: bigDecimalToBigInteger(value),\n })\n } else {\n if (value.isNaN()) {\n throw new Error('Cannot record NaN value')\n }\n if (!value.isFinite()) {\n // NaN also not finite\n throw new Error('Cannot record infinite value')\n }\n return MetricValue.fromPartial({\n bigDecimal: value.toString(), // e.g. -7.350918e-428\n })\n }\n }\n if (BN.isBN(value)) {\n return MetricValue.fromPartial({\n bigInteger: bnToBigInteger(value),\n })\n }\n if (typeof value === 'bigint' || Number.isInteger(value)) {\n return MetricValue.fromPartial({\n bigInteger: toBigInteger(value),\n })\n }\n\n if (typeof value === 'number') {\n if (Number.isNaN(value)) {\n throw new Error('Cannot record NaN value')\n }\n if (!Number.isFinite(value)) {\n throw new Error('Cannot record infinite value')\n }\n }\n\n return MetricValue.fromPartial({\n doubleValue: Number(value),\n })\n}\n\nfunction bigDecimalToBigInteger(a: BigDecimal): BigInteger {\n const negative = a.isNegative()\n if (negative) {\n a = a.abs()\n }\n return hexToBigInteger(a.toString(16), negative)\n}\n\nfunction bnToBigInteger(a: BN): BigInteger {\n const negative = a.isNeg()\n if (negative) {\n a = a.abs()\n }\n return hexToBigInteger(a.toString(16), negative)\n}\n\nfunction intToBigInteger(a: bigint | number): BigInteger {\n const negative = a < 0\n if (negative) {\n a = -a\n }\n return hexToBigInteger(a.toString(16), negative)\n}\n\nexport function toBigInteger(a: Numberish): BigInteger {\n if (a instanceof BigDecimal) {\n return bigDecimalToBigInteger(a)\n }\n if (a instanceof BN) {\n return bnToBigInteger(a)\n }\n if (a instanceof BigNumber) {\n return intToBigInteger(a.toBigInt())\n }\n return intToBigInteger(a)\n\n // Following code is actually very slow\n // while (a > 0) {\n // const d = a & 0xffn\n // a >>= 8n\n // value.push(Number(d))\n // }\n //\n // return {\n // negative, value: new Uint8Array(value.reverse()),\n // }\n}\n\nfunction hexToBigInteger(hex: string, negative: boolean): BigInteger {\n if (hex.length % 2 === 1) {\n hex = '0' + hex\n }\n const buffer = Buffer.from(hex, 'hex')\n\n return {\n negative: negative,\n data: new Uint8Array(buffer),\n }\n}\n\nexport function toBigInt(v: Long): bigint {\n return BigInt(v.toString())\n}\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numberish.test.js","sourceRoot":"","sources":["../../src/core/numberish.test.ts"],"names":[],"mappings":";;AAAA,+BAA6B;AAC7B,2CAAyD;AACzD,mCAAkC;AAClC,mCAAkC;AAClC,2CAAwC;AAExC,wBAA8B;AAE9B,oCAAoC;AACpC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,MAAM,GAAa,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,sCAAsC,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC,CAAA;IAE3G,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACrD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;YACtB,MAAM,CAAC,GAAG,IAAA,wBAAY,EAAC,CAAC,CAAC,CAAA;YACzB,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;YAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAC3B,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;SAC1B;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,kBAAS,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;YAC7D,MAAM,CAAC,GAAG,kBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;YAC3C,MAAM,CAAC,GAAG,IAAA,wBAAY,EAAC,CAAC,CAAC,CAAA;YAEzB,IAAA,aAAM,EAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;SACrD;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QACrD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACvB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAElB,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC7B,uCAAuC;YACvC,MAAM,MAAM,GAAG,kBAAS,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;YAC7D,MAAM,CAAC,GAAG,kBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;YAE3C,IAAI,KAAK,GAAG,wBAAW,CAAC,GAAG,EAAE,CAAA;YAC7B,IAAA,wBAAY,EAAC,CAAC,CAAC,CAAA;YACf,MAAM,IAAI,wBAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;YAEnC,KAAK,GAAG,wBAAW,CAAC,GAAG,EAAE,CAAA;YACzB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACd,MAAM,IAAI,wBAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;SACpC;QAED,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC3B,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,OAAO,GAAG,iGAAiG,CAAA;QACjH,IAAA,aAAM,EAAC,IAAA,yBAAa,EAAC,IAAI,aAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,CAAA;QAEpE,MAAM,UAAU,GAAG,gBAAgB,CAAA;QACnC,IAAA,aAAM,EAAC,IAAA,yBAAa,EAAC,IAAI,aAAU,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,CAAA;QAE1E,IAAA,aAAM,EAAC,kBAAkB,CAAC,IAAA,yBAAa,EAAC,IAAI,aAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAW,CAAC,KAAK,OAAO,CAAC,CAAA;IAC7F,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,uBAAuB;AACvB,SAAS,eAAe,CAAC,CAAa;IACpC,IAAI,GAAG,GAAG,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACxD,IAAI,CAAC,CAAC,QAAQ,EAAE;QACd,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;KAChB;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAa;IACvC,IAAI,GAAG,GAAG,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC3C,IAAI,CAAC,CAAC,QAAQ,EAAE;QACd,GAAG,GAAG,CAAC,GAAG,CAAA;KACX;IACD,OAAO,GAAG,CAAA;AACZ,CAAC","sourcesContent":["import { expect } from 'chai'\nimport { toBigInteger, toMetricValue } from './numberish'\nimport { webcrypto } from 'crypto'\nimport { BigNumber } from 'ethers'\nimport { performance } from 'perf_hooks'\nimport { BigInteger } from '../gen'\nimport { BigDecimal } from '.'\n\n// TODO add test for type conversion\ndescribe('Numberish tests', () => {\n const values: bigint[] = [0n, -0n, 3815372408723498172304781320847103784n, 2132n, -18708707n, 123n << 100n]\n\n test('big integer conversion correctness ', async () => {\n for (const v of values) {\n const b = toBigInteger(v)\n const hex1 = BigIntegerToHex(b)\n const hex2 = v.toString(16)\n expect(hex1).equals(hex2)\n }\n })\n\n test('random big integer conversion correctness ', async () => {\n for (let i = 0; i < 1000; i++) {\n const random = webcrypto.getRandomValues(new Uint8Array(256))\n const v = BigNumber.from(random).toBigInt()\n const b = toBigInteger(v)\n\n expect(BigNumber.from(b.data).eq(v)).to.equals(true)\n }\n })\n\n test.skip('random big integer performance', async () => {\n jest.setTimeout(100000)\n jest.retryTimes(3)\n\n let timer1 = 0\n let timer2 = 0\n for (let i = 0; i < 1000; i++) {\n // Use higher value for local debugging\n const random = webcrypto.getRandomValues(new Uint8Array(256))\n const v = BigNumber.from(random).toBigInt()\n\n let start = performance.now()\n toBigInteger(v)\n timer1 += performance.now() - start\n\n start = performance.now()\n v.toString(16)\n timer2 += performance.now() - start\n }\n\n console.log(timer1, timer2)\n expect(timer1).to.lessThan(timer2 * 3)\n })\n\n test('metric values', async () => {\n const longDec = '12.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002'\n expect(toMetricValue(new BigDecimal(longDec)).bigDecimal == longDec)\n\n const complexDec = '-7.350918e-428'\n expect(toMetricValue(new BigDecimal(complexDec)).bigDecimal == complexDec)\n\n expect(BigIntegerToBigInt(toMetricValue(new BigDecimal('100000')).bigInteger!) === 100000n)\n })\n})\n\n// Performance very bad\nfunction BigIntegerToHex(b: BigInteger): string {\n let res = BigNumber.from(b.data).toBigInt().toString(16)\n if (b.negative) {\n res = '-' + res\n }\n return res\n}\n\nfunction BigIntegerToBigInt(b: BigInteger): bigint {\n let res = BigNumber.from(b.data).toBigInt()\n if (b.negative) {\n res = -res\n }\n return res\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseContext } from './base-context';
|
|
2
|
+
import Long from 'long';
|
|
3
|
+
import { Labels } from './metadata';
|
|
4
|
+
import { RecordMetaData } from '@sentio/sdk';
|
|
5
|
+
export declare class SolanaContext extends BaseContext {
|
|
6
|
+
network: string;
|
|
7
|
+
address: string;
|
|
8
|
+
programName: string;
|
|
9
|
+
blockNumber: Long;
|
|
10
|
+
constructor(programName: string, network: string, address: string, slot: Long);
|
|
11
|
+
getMetaData(name: string, labels: Labels): RecordMetaData;
|
|
12
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SolanaContext = void 0;
|
|
4
|
+
const base_context_1 = require("./base-context");
|
|
5
|
+
const chain_1 = require("../utils/chain");
|
|
6
|
+
const meter_1 = require("./meter");
|
|
7
|
+
class SolanaContext extends base_context_1.BaseContext {
|
|
8
|
+
network;
|
|
9
|
+
address;
|
|
10
|
+
programName;
|
|
11
|
+
blockNumber;
|
|
12
|
+
constructor(programName, network, address, slot) {
|
|
13
|
+
super();
|
|
14
|
+
this.network = network || chain_1.CHAIN_IDS.SOLANA_MAINNET;
|
|
15
|
+
this.programName = programName;
|
|
16
|
+
this.address = address;
|
|
17
|
+
this.blockNumber = slot;
|
|
18
|
+
}
|
|
19
|
+
getMetaData(name, labels) {
|
|
20
|
+
return {
|
|
21
|
+
address: this.address,
|
|
22
|
+
contractName: this.programName,
|
|
23
|
+
blockNumber: this.blockNumber,
|
|
24
|
+
transactionIndex: 0,
|
|
25
|
+
transactionHash: '',
|
|
26
|
+
logIndex: 0,
|
|
27
|
+
chainId: this.network,
|
|
28
|
+
name: name,
|
|
29
|
+
labels: (0, meter_1.normalizeLabels)(labels),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.SolanaContext = SolanaContext;
|
|
34
|
+
//# sourceMappingURL=solana-context.js.map
|