@sentio/sdk 1.17.2 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/binds.d.ts +2 -3
- package/lib/binds.js +1 -1
- package/lib/binds.js.map +1 -1
- package/lib/builtin/eacaggregatorproxy/test-utils.js +4 -4
- package/lib/builtin/eacaggregatorproxy/test-utils.js.map +1 -1
- package/lib/builtin/erc20/test-utils.js +3 -3
- package/lib/builtin/erc20/test-utils.js.map +1 -1
- package/lib/builtin/erc20bytes/test-utils.js +2 -2
- package/lib/builtin/erc20bytes/test-utils.js.map +1 -1
- package/lib/builtin/index.d.ts +5 -0
- package/lib/builtin/index.js +32 -0
- package/lib/builtin/index.js.map +1 -0
- package/lib/{solana/builtin → builtin/solana}/index.d.ts +0 -0
- package/lib/{solana/builtin → builtin/solana}/index.js +0 -0
- package/lib/{solana/builtin → builtin/solana}/index.js.map +1 -1
- package/lib/{solana/builtin → builtin/solana}/spl-token-processor.d.ts +1 -3
- package/lib/{solana/builtin → builtin/solana}/spl-token-processor.js +2 -2
- package/lib/builtin/solana/spl-token-processor.js.map +1 -0
- package/lib/{solana/builtin → builtin/solana}/types.d.ts +27 -27
- package/lib/{solana/builtin → builtin/solana}/types.js +0 -0
- package/lib/{solana/builtin → builtin/solana}/types.js.map +1 -1
- package/lib/{solana/builtin → builtin/solana}/wormhole-processor.d.ts +1 -3
- package/lib/{solana/builtin → builtin/solana}/wormhole-processor.js +2 -2
- package/lib/builtin/solana/wormhole-processor.js.map +1 -0
- package/lib/builtin/weth9/test-utils.js +4 -4
- package/lib/builtin/weth9/test-utils.js.map +1 -1
- package/lib/cli/webpack.config.js +1 -1
- package/lib/{aptos-processor.d.ts → core/aptos-processor.d.ts} +2 -2
- package/lib/{aptos-processor.js → core/aptos-processor.js} +2 -2
- package/lib/core/aptos-processor.js.map +1 -0
- package/lib/{base-processor-template.d.ts → core/base-processor-template.d.ts} +1 -1
- package/lib/{base-processor-template.js → core/base-processor-template.js} +0 -0
- package/lib/core/base-processor-template.js.map +1 -0
- package/lib/{base-processor.d.ts → core/base-processor.d.ts} +2 -2
- package/lib/{base-processor.js → core/base-processor.js} +0 -0
- package/lib/core/base-processor.js.map +1 -0
- package/lib/{bind-options.d.ts → core/bind-options.d.ts} +0 -0
- package/lib/{bind-options.js → core/bind-options.js} +0 -0
- package/lib/core/bind-options.js.map +1 -0
- package/lib/{context.d.ts → core/context.d.ts} +7 -4
- package/lib/{context.js → core/context.js} +12 -6
- package/lib/core/context.js.map +1 -0
- package/lib/{generic-processor.d.ts → core/generic-processor.d.ts} +0 -0
- package/lib/{generic-processor.js → core/generic-processor.js} +2 -2
- package/lib/core/generic-processor.js.map +1 -0
- package/lib/{test → core}/generic-processor.test.d.ts +0 -0
- package/lib/{test → core}/generic-processor.test.js +4 -5
- package/lib/core/generic-processor.test.js.map +1 -0
- package/lib/core/index.d.ts +12 -0
- package/lib/core/index.js +38 -0
- package/lib/core/index.js.map +1 -0
- package/lib/{meter.d.ts → core/meter.d.ts} +1 -1
- package/lib/{meter.js → core/meter.js} +8 -12
- package/lib/core/meter.js.map +1 -0
- package/lib/{meter.test.d.ts → core/meter.test.d.ts} +0 -0
- package/lib/{meter.test.js → core/meter.test.js} +0 -0
- package/lib/core/meter.test.js.map +1 -0
- package/lib/{numberish.d.ts → core/numberish.d.ts} +1 -1
- package/lib/{numberish.js → core/numberish.js} +1 -1
- package/lib/core/numberish.js.map +1 -0
- package/lib/{numberish.test.d.ts → core/numberish.test.d.ts} +0 -0
- package/lib/{numberish.test.js → core/numberish.test.js} +4 -4
- package/lib/core/numberish.test.js.map +1 -0
- package/lib/{solana-processor.d.ts → core/solana-processor.d.ts} +2 -2
- package/lib/{solana-processor.js → core/solana-processor.js} +2 -2
- package/lib/core/solana-processor.js.map +1 -0
- package/lib/{sui-processor.d.ts → core/sui-processor.d.ts} +2 -2
- package/lib/{sui-processor.js → core/sui-processor.js} +2 -2
- package/lib/core/sui-processor.js.map +1 -0
- package/lib/{trace.d.ts → core/trace.d.ts} +0 -0
- package/lib/{trace.js → core/trace.js} +0 -0
- package/lib/core/trace.js.map +1 -0
- package/lib/error.d.ts +1 -1
- package/lib/error.js.map +1 -1
- package/lib/index.d.ts +1 -12
- package/lib/index.js +2 -34
- package/lib/index.js.map +1 -1
- package/lib/processor-state.d.ts +1 -6
- package/lib/processor-state.js.map +1 -1
- package/lib/service.js +10 -45
- package/lib/service.js.map +1 -1
- package/lib/target-ethers-sentio/codegen.js +2 -1
- package/lib/target-ethers-sentio/codegen.js.map +1 -1
- package/lib/{test → testing}/index.d.ts +0 -1
- package/lib/{test → testing}/index.js +2 -3
- package/lib/testing/index.js.map +1 -0
- package/lib/{test → testing}/metric-utils.d.ts +1 -1
- package/lib/{test → testing}/metric-utils.js +0 -0
- package/lib/testing/metric-utils.js.map +1 -0
- package/lib/{test → testing}/test-processor-server.d.ts +1 -1
- package/lib/{test → testing}/test-processor-server.js +2 -2
- package/lib/testing/test-processor-server.js.map +1 -0
- package/lib/{test → testing}/test-provider.d.ts +0 -0
- package/lib/{test → testing}/test-provider.js +5 -3
- package/lib/testing/test-provider.js.map +1 -0
- package/lib/{test → tests}/aptos.test.d.ts +0 -0
- package/lib/{test → tests}/aptos.test.js +8 -2
- package/lib/tests/aptos.test.js.map +1 -0
- package/lib/{test → tests}/codegen.test.d.ts +0 -0
- package/lib/{test → tests}/codegen.test.js +0 -0
- package/lib/tests/codegen.test.js.map +1 -0
- package/lib/{test → tests}/erc20-template.test.d.ts +0 -0
- package/lib/{test → tests}/erc20-template.test.js +2 -2
- package/lib/tests/erc20-template.test.js.map +1 -0
- package/lib/{test → tests}/erc20.d.ts +0 -0
- package/lib/{test → tests}/erc20.js +0 -0
- package/lib/tests/erc20.js.map +1 -0
- package/lib/{test → tests}/erc20.test.d.ts +0 -0
- package/lib/{test → tests}/erc20.test.js +6 -7
- package/lib/tests/erc20.test.js.map +1 -0
- package/lib/{test → tests}/error-capture.test.d.ts +0 -0
- package/lib/{test → tests}/error-capture.test.js +4 -4
- package/lib/tests/error-capture.test.js.map +1 -0
- package/lib/{test → tests}/solana.test.d.ts +0 -0
- package/lib/{test → tests}/solana.test.js +6 -7
- package/lib/tests/solana.test.js.map +1 -0
- package/lib/{test → tests}/souffl3.d.ts +0 -0
- package/lib/{test → tests}/souffl3.js +2 -2
- package/lib/tests/souffl3.js.map +1 -0
- package/lib/{test → tests}/sui.test.d.ts +0 -0
- package/lib/{test → tests}/sui.test.js +8 -3
- package/lib/tests/sui.test.js.map +1 -0
- package/lib/{test → tests}/types/basic_1.d.ts +0 -0
- package/lib/{test → tests}/types/basic_1.js +0 -0
- package/lib/tests/types/basic_1.js.map +1 -0
- package/lib/{test → tests}/types/basic_1_processor.d.ts +0 -0
- package/lib/{test → tests}/types/basic_1_processor.js +0 -0
- package/lib/tests/types/basic_1_processor.js.map +1 -0
- package/lib/{test → tests}/wormhole-token-bridge.d.ts +0 -0
- package/lib/{test → tests}/wormhole-token-bridge.js +3 -4
- package/lib/tests/wormhole-token-bridge.js.map +1 -0
- package/lib/utils/{chainmap.d.ts → chain.d.ts} +0 -0
- package/lib/utils/{chainmap.js → chain.js} +1 -1
- package/lib/utils/chain.js.map +1 -0
- package/lib/utils/{convert.d.ts → conversion.d.ts} +1 -1
- package/lib/utils/{convert.js → conversion.js} +1 -1
- package/lib/utils/conversion.js.map +1 -0
- package/lib/utils/dex-price.d.ts +5 -5
- package/lib/utils/dex-price.js +2 -2
- package/lib/utils/dex-price.js.map +1 -1
- package/lib/utils/dex-price.test.js +2 -2
- package/lib/utils/dex-price.test.js.map +1 -1
- package/lib/utils/erc20.test.js +5 -5
- package/lib/utils/erc20.test.js.map +1 -1
- package/lib/utils/index.d.ts +4 -5
- package/lib/utils/index.js +28 -16
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/{erc20.d.ts → token.d.ts} +1 -1
- package/lib/utils/{erc20.js → token.js} +4 -10
- package/lib/utils/token.js.map +1 -0
- package/package.json +5 -3
- package/src/binds.ts +2 -3
- package/src/builtin/eacaggregatorproxy/test-utils.ts +4 -4
- package/src/builtin/erc20/test-utils.ts +3 -3
- package/src/builtin/erc20bytes/test-utils.ts +2 -2
- package/src/builtin/index.ts +5 -0
- package/src/{solana/builtin → builtin/solana}/index.ts +0 -0
- package/src/{solana/builtin → builtin/solana}/spl-token-processor.ts +1 -3
- package/src/{solana/builtin → builtin/solana}/types.ts +0 -0
- package/src/{solana/builtin → builtin/solana}/wormhole-processor.ts +1 -3
- package/src/builtin/weth9/test-utils.ts +4 -4
- package/src/cli/webpack.config.js +1 -1
- package/src/{aptos-processor.ts → core/aptos-processor.ts} +3 -3
- package/src/{base-processor-template.ts → core/base-processor-template.ts} +2 -2
- package/src/{base-processor.ts → core/base-processor.ts} +2 -2
- package/src/{bind-options.ts → core/bind-options.ts} +0 -0
- package/src/{context.ts → core/context.ts} +13 -7
- package/src/{test → core}/generic-processor.test.ts +2 -3
- package/src/{generic-processor.ts → core/generic-processor.ts} +2 -2
- package/src/core/index.ts +15 -0
- package/src/{meter.test.ts → core/meter.test.ts} +0 -0
- package/src/{meter.ts → core/meter.ts} +8 -8
- package/src/{numberish.test.ts → core/numberish.test.ts} +2 -2
- package/src/{numberish.ts → core/numberish.ts} +1 -1
- package/src/{solana-processor.ts → core/solana-processor.ts} +3 -3
- package/src/{sui-processor.ts → core/sui-processor.ts} +3 -3
- package/src/{trace.ts → core/trace.ts} +0 -0
- package/src/error.ts +1 -1
- package/src/index.ts +1 -13
- package/src/processor-state.ts +9 -6
- package/src/service.ts +22 -45
- package/src/target-ethers-sentio/codegen.ts +3 -1
- package/src/{test → testing}/index.ts +2 -1
- package/src/{test → testing}/metric-utils.ts +1 -1
- package/src/{test → testing}/test-processor-server.ts +2 -2
- package/src/{test → testing}/test-provider.ts +4 -2
- package/src/{test → tests}/abis/evm/CommitmentPool.json +0 -0
- package/src/{test → tests}/abis/evm/Seaport.json +0 -0
- package/src/{test → tests}/abis/evm/anyswapRouter.json +0 -0
- package/src/{test → tests}/abis/solana/basic_1.json +0 -0
- package/src/{test → tests}/aptos.test.ts +4 -1
- package/src/{test → tests}/codegen.test.ts +0 -0
- package/src/{test → tests}/erc20-template.test.ts +1 -1
- package/src/{test → tests}/erc20.test.ts +2 -3
- package/src/{test → tests}/erc20.ts +0 -0
- package/src/{test → tests}/error-capture.test.ts +4 -4
- package/src/{test → tests}/solana.test.ts +3 -4
- package/src/{test → tests}/souffl3.ts +1 -2
- package/src/{test → tests}/sui.test.ts +4 -2
- package/src/{test → tests}/types/basic_1.ts +0 -0
- package/src/{test → tests}/types/basic_1_processor.ts +0 -0
- package/src/{test → tests}/wormhole-token-bridge.ts +1 -2
- package/src/utils/{chainmap.ts → chain.ts} +0 -0
- package/src/utils/{convert.ts → conversion.ts} +1 -1
- package/src/utils/dex-price.test.ts +2 -1
- package/src/utils/dex-price.ts +6 -6
- package/src/utils/erc20.test.ts +2 -2
- package/src/utils/index.ts +4 -5
- package/src/utils/{erc20.ts → token.ts} +2 -2
- package/template/src/processor.test.ts +1 -2
- package/template/src/processor.ts +5 -5
- package/lib/aptos-processor.js.map +0 -1
- package/lib/base-processor-template.js.map +0 -1
- package/lib/base-processor.js.map +0 -1
- package/lib/bind-options.js.map +0 -1
- package/lib/context.js.map +0 -1
- package/lib/generic-processor.js.map +0 -1
- package/lib/meter.js.map +0 -1
- package/lib/meter.test.js.map +0 -1
- package/lib/numberish.js.map +0 -1
- package/lib/numberish.test.js.map +0 -1
- package/lib/solana/builtin/spl-token-processor.js.map +0 -1
- package/lib/solana/builtin/wormhole-processor.js.map +0 -1
- package/lib/solana-processor.js.map +0 -1
- package/lib/sui-processor.js.map +0 -1
- package/lib/test/aptos.test.js.map +0 -1
- package/lib/test/codegen.test.js.map +0 -1
- package/lib/test/erc20-template.test.js.map +0 -1
- package/lib/test/erc20.js.map +0 -1
- package/lib/test/erc20.test.js.map +0 -1
- package/lib/test/error-capture.test.js.map +0 -1
- package/lib/test/generic-processor.test.js.map +0 -1
- package/lib/test/index.js.map +0 -1
- package/lib/test/metric-utils.js.map +0 -1
- package/lib/test/solana.test.js.map +0 -1
- package/lib/test/souffl3.js.map +0 -1
- package/lib/test/sui.test.js.map +0 -1
- package/lib/test/test-processor-server.js.map +0 -1
- package/lib/test/test-provider.js.map +0 -1
- package/lib/test/types/basic_1.js.map +0 -1
- package/lib/test/types/basic_1_processor.js.map +0 -1
- package/lib/test/wormhole-token-bridge.js.map +0 -1
- package/lib/trace.js.map +0 -1
- package/lib/utils/chainmap.js.map +0 -1
- package/lib/utils/convert.js.map +0 -1
- package/lib/utils/erc20.js.map +0 -1
|
@@ -27,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.TokenBridgeProcessor = void 0;
|
|
30
|
-
const
|
|
30
|
+
const sdk_1 = require("@sentio/sdk");
|
|
31
31
|
const borsh = __importStar(require("@project-serum/borsh"));
|
|
32
32
|
const bs58_1 = __importDefault(require("bs58"));
|
|
33
33
|
// https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/lib.rs#L100
|
|
@@ -47,7 +47,7 @@ var TokenBrigeInstruction;
|
|
|
47
47
|
TokenBrigeInstruction[TokenBrigeInstruction["TransferWrappedWithPayload"] = 11] = "TransferWrappedWithPayload";
|
|
48
48
|
TokenBrigeInstruction[TokenBrigeInstruction["TransferNativeWithPayload"] = 12] = "TransferNativeWithPayload";
|
|
49
49
|
})(TokenBrigeInstruction || (TokenBrigeInstruction = {}));
|
|
50
|
-
class TokenBridgeProcessor extends
|
|
50
|
+
class TokenBridgeProcessor extends sdk_1.SolanaBaseProcessor {
|
|
51
51
|
transferDataValues = [
|
|
52
52
|
borsh.u32('nonce'),
|
|
53
53
|
borsh.u64('amount'),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wormhole-processor.js","sourceRoot":"","sources":["../../../src/builtin/solana/wormhole-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { SolanaBaseProcessor, SolanaContext, SolanaBindOptions } from '@sentio/sdk'\nimport { Instruction } from '@project-serum/anchor'\nimport * as borsh from '@project-serum/borsh'\nimport bs58 from 'bs58'\n\n// https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/lib.rs#L100\nenum TokenBrigeInstruction {\n Initialize = 0,\n AttestToken,\n CompleteNative, // no args\n CompleteWrapped, // no args\n TransferWrapped,\n TransferNative,\n RegisterChain, // no args\n CreateWrapped, // no args\n UpgradeContract, // no args\n CompleteNativeWithPayload, // no args\n CompleteWrappedWithPayload, // no args\n TransferWrappedWithPayload,\n TransferNativeWithPayload,\n}\n\nexport class TokenBridgeProcessor extends SolanaBaseProcessor {\n\n private readonly transferDataValues = [\n borsh.u32('nonce'),\n borsh.u64('amount'),\n borsh.u64('fee'),\n borsh.array(borsh.u8(undefined), 32, 'target_address'),\n borsh.u16('target_chain')\n ]\n // https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/api/transfer_payload.rs#L170\n private readonly transferDataWithPayloadValues = [\n borsh.u32('nonce'),\n borsh.u64('amount'),\n borsh.array(borsh.u8(undefined), 32, 'target_address'),\n borsh.u16('target_chain'),\n borsh.vecU8('payload'),\n borsh.option(borsh.publicKey(undefined), 'cpi_program_id')\n ]\n private readonly attestTokenValues = [\n borsh.u32('nonce')\n ]\n private readonly initializeDataValues = [\n borsh.publicKey('bridge')\n ]\n\n static bind(options: SolanaBindOptions): TokenBridgeProcessor {\n return new TokenBridgeProcessor(options)\n }\n\n decodeInstruction: (rawInstruction: string) => Instruction | null = (ins) => {\n const u8Arr = bs58.decode(ins)\n if (u8Arr.length === 0) {\n return null\n }\n\n let data: any\n // wormhole pass intruction's enum value as its first instrcution data\n switch (u8Arr[0]) {\n case TokenBrigeInstruction.Initialize:\n return {\n data: '',\n name: TokenBrigeInstruction[TokenBrigeInstruction.Initialize]\n }\n case TokenBrigeInstruction.TransferNative:\n // struct is defined at: https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/api/transfer.rs#L295\n data = borsh.struct(this.transferDataValues, 'TransferNativeData').decode(Buffer.from(u8Arr.slice(1)))\n return {\n data,\n name: TokenBrigeInstruction[TokenBrigeInstruction.TransferNative]\n }\n case TokenBrigeInstruction.TransferWrapped:\n // stuct is defined at: https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/api/transfer.rs#L295\n data = borsh.struct(this.transferDataValues, 'TransferWrappedData').decode(Buffer.from(u8Arr.slice(1)))\n return {\n data,\n name: TokenBrigeInstruction[TokenBrigeInstruction.TransferWrapped]\n }\n case TokenBrigeInstruction.TransferNativeWithPayload:\n data = borsh.struct(this.transferDataWithPayloadValues, 'TransferNativeWithPayloadData').decode(Buffer.from(u8Arr.slice(1)))\n return {\n data,\n name: TokenBrigeInstruction[TokenBrigeInstruction.TransferNativeWithPayload]\n }\n case TokenBrigeInstruction.TransferWrappedWithPayload:\n data = borsh.struct(this.transferDataWithPayloadValues, 'TransferWrappedWithPayloadData').decode(Buffer.from(u8Arr.slice(1)))\n return {\n data,\n name: TokenBrigeInstruction[TokenBrigeInstruction.TransferWrappedWithPayload]\n }\n case TokenBrigeInstruction.Initialize:\n data = borsh.struct(this.initializeDataValues, 'InitializeData').decode(Buffer.from(u8Arr.slice(1)))\n return {\n data,\n name: TokenBrigeInstruction[TokenBrigeInstruction.Initialize]\n }\n case TokenBrigeInstruction.AttestToken:\n data = borsh.struct(this.attestTokenValues, 'AttestTokenData').decode(Buffer.from(u8Arr.slice(1)))\n return {\n data,\n name: TokenBrigeInstruction[TokenBrigeInstruction.AttestToken]\n }\n case TokenBrigeInstruction.CompleteNative:\n case TokenBrigeInstruction.CompleteNativeWithPayload:\n case TokenBrigeInstruction.CompleteWrapped:\n case TokenBrigeInstruction.CompleteWrappedWithPayload:\n case TokenBrigeInstruction.CreateWrapped:\n case TokenBrigeInstruction.UpgradeContract:\n case TokenBrigeInstruction.RegisterChain:\n return {\n data: '',\n name: TokenBrigeInstruction[u8Arr[0]]\n }\n\n default:\n return null\n }\n }\n\n onInitialize(handler: (args: any, ctx: SolanaContext) => void): TokenBridgeProcessor {\n this.onInstruction('Initialize', (ins: Instruction, ctx) => {\n if (ins) {\n handler(ins.data, ctx)\n }\n })\n return this\n }\n\n onAttestToken(handler: (args: any, ctx: SolanaContext) => void): TokenBridgeProcessor {\n this.onInstruction('AttestToken', (ins: Instruction, ctx) => {\n if (ins) {\n handler(ins.data, ctx)\n }\n })\n return this\n }\n\n\n onTransferWrapped(handler: (args: any, ctx: SolanaContext) => void): TokenBridgeProcessor {\n this.onInstruction('TransferWrapped', (ins: Instruction, ctx) => {\n if (ins) {\n handler(ins.data, ctx)\n }\n })\n return this\n }\n\n onTransferNativeWithPayload(handler: (args: any, ctx: SolanaContext) => void): TokenBridgeProcessor {\n this.onInstruction('TransferNativeWithPayload', (ins: Instruction, ctx) => {\n if (ins) {\n handler(ins.data, ctx)\n }\n })\n return this\n }\n\n onTransferWrappedWithPaylod(handler: (args: any, ctx: SolanaContext) => void): TokenBridgeProcessor {\n this.onInstruction('TransferWrappedWithPaylod', (ins: Instruction, ctx) => {\n if (ins) {\n handler(ins.data, ctx)\n }\n })\n return this\n }\n\n onTransferNative(handler: (args: any, ctx: SolanaContext) => void): TokenBridgeProcessor {\n this.onInstruction('TransferNative', (ins: Instruction, ctx) => {\n if (ins) {\n handler(ins.data, ctx)\n }\n })\n return this\n }\n}\n "]}
|
|
@@ -12,7 +12,7 @@ const mockField = {
|
|
|
12
12
|
};
|
|
13
13
|
function mockApprovalLog(contractAddress, event) {
|
|
14
14
|
const contract = (0, _1.getWETH9Contract)(contractAddress);
|
|
15
|
-
const encodedLog = contract.rawContract.interface.encodeEventLog(contract.rawContract.interface.getEvent("Approval"),
|
|
15
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog(contract.rawContract.interface.getEvent("Approval"), [event.src, event.guy, event.wad]);
|
|
16
16
|
return {
|
|
17
17
|
...mockField,
|
|
18
18
|
address: contractAddress,
|
|
@@ -23,7 +23,7 @@ function mockApprovalLog(contractAddress, event) {
|
|
|
23
23
|
exports.mockApprovalLog = mockApprovalLog;
|
|
24
24
|
function mockTransferLog(contractAddress, event) {
|
|
25
25
|
const contract = (0, _1.getWETH9Contract)(contractAddress);
|
|
26
|
-
const encodedLog = contract.rawContract.interface.encodeEventLog(contract.rawContract.interface.getEvent("Transfer"),
|
|
26
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog(contract.rawContract.interface.getEvent("Transfer"), [event.src, event.dst, event.wad]);
|
|
27
27
|
return {
|
|
28
28
|
...mockField,
|
|
29
29
|
address: contractAddress,
|
|
@@ -34,7 +34,7 @@ function mockTransferLog(contractAddress, event) {
|
|
|
34
34
|
exports.mockTransferLog = mockTransferLog;
|
|
35
35
|
function mockDepositLog(contractAddress, event) {
|
|
36
36
|
const contract = (0, _1.getWETH9Contract)(contractAddress);
|
|
37
|
-
const encodedLog = contract.rawContract.interface.encodeEventLog(contract.rawContract.interface.getEvent("Deposit"),
|
|
37
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog(contract.rawContract.interface.getEvent("Deposit"), [event.dst, event.wad]);
|
|
38
38
|
return {
|
|
39
39
|
...mockField,
|
|
40
40
|
address: contractAddress,
|
|
@@ -45,7 +45,7 @@ function mockDepositLog(contractAddress, event) {
|
|
|
45
45
|
exports.mockDepositLog = mockDepositLog;
|
|
46
46
|
function mockWithdrawalLog(contractAddress, event) {
|
|
47
47
|
const contract = (0, _1.getWETH9Contract)(contractAddress);
|
|
48
|
-
const encodedLog = contract.rawContract.interface.encodeEventLog(contract.rawContract.interface.getEvent("Withdrawal"),
|
|
48
|
+
const encodedLog = contract.rawContract.interface.encodeEventLog(contract.rawContract.interface.getEvent("Withdrawal"), [event.src, event.wad]);
|
|
49
49
|
return {
|
|
50
50
|
...mockField,
|
|
51
51
|
address: contractAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../src/builtin/weth9/test-utils.ts"],"names":[],"mappings":";;;AAIA,wBAMW;AACX,MAAM,SAAS,GAAG;IAChB,SAAS,EACP,oEAAoE;IACtE,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,KAAK;IACd,eAAe,EACb,oEAAoE;IACtE,gBAAgB,EAAE,CAAC;CACpB,CAAC;AAEF,SAAgB,eAAe,CAC7B,eAAuB,EACvB,KAA0B;IAE1B,MAAM,QAAQ,GAAG,IAAA,mBAAgB,EAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EACnD,
|
|
1
|
+
{"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../src/builtin/weth9/test-utils.ts"],"names":[],"mappings":";;;AAIA,wBAMW;AACX,MAAM,SAAS,GAAG;IAChB,SAAS,EACP,oEAAoE;IACtE,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,KAAK;IACd,eAAe,EACb,oEAAoE;IACtE,gBAAgB,EAAE,CAAC;CACpB,CAAC;AAEF,SAAgB,eAAe,CAC7B,eAAuB,EACvB,KAA0B;IAE1B,MAAM,QAAQ,GAAG,IAAA,mBAAgB,EAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EACnD,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAClC,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAfD,0CAeC;AAED,SAAgB,eAAe,CAC7B,eAAuB,EACvB,KAA0B;IAE1B,MAAM,QAAQ,GAAG,IAAA,mBAAgB,EAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EACnD,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAClC,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAfD,0CAeC;AAED,SAAgB,cAAc,CAC5B,eAAuB,EACvB,KAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAA,mBAAgB,EAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAClD,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CACvB,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAfD,wCAeC;AAED,SAAgB,iBAAiB,CAC/B,eAAuB,EACvB,KAA4B;IAE5B,MAAM,QAAQ,GAAG,IAAA,mBAAgB,EAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EACrD,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CACvB,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAfD,8CAeC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { Log } from \"@ethersproject/providers\";\nimport {\n getWETH9Contract,\n ApprovalEventObject,\n TransferEventObject,\n DepositEventObject,\n WithdrawalEventObject,\n} from \".\";\nconst mockField = {\n blockHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n blockNumber: 0,\n logIndex: 0,\n removed: false,\n transactionHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n transactionIndex: 0,\n};\n\nexport function mockApprovalLog(\n contractAddress: string,\n event: ApprovalEventObject\n): Log {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n contract.rawContract.interface.getEvent(\"Approval\"),\n [event.src, event.guy, event.wad]\n );\n return {\n ...mockField,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockTransferLog(\n contractAddress: string,\n event: TransferEventObject\n): Log {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n contract.rawContract.interface.getEvent(\"Transfer\"),\n [event.src, event.dst, event.wad]\n );\n return {\n ...mockField,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockDepositLog(\n contractAddress: string,\n event: DepositEventObject\n): Log {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n contract.rawContract.interface.getEvent(\"Deposit\"),\n [event.dst, event.wad]\n );\n return {\n ...mockField,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockWithdrawalLog(\n contractAddress: string,\n event: WithdrawalEventObject\n): Log {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n contract.rawContract.interface.getEvent(\"Withdrawal\"),\n [event.src, event.wad]\n );\n return {\n ...mockField,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n"]}
|
|
@@ -36,7 +36,7 @@ module.exports = {
|
|
|
36
36
|
if (/^@(ethersproject|solana|project-serum).*$/.test(request)) {
|
|
37
37
|
return callback(null, 'commonjs ' + request)
|
|
38
38
|
}
|
|
39
|
-
if (request.startsWith("@sentio
|
|
39
|
+
if (request.startsWith("@sentio")) {
|
|
40
40
|
return callback(null, 'commonjs2 ' + request)
|
|
41
41
|
}
|
|
42
42
|
callback()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AptosBindOptions } from './bind-options';
|
|
2
2
|
import { AptosContext } from './context';
|
|
3
|
-
import { ProcessResult } from '
|
|
3
|
+
import { ProcessResult } from '..';
|
|
4
4
|
import Long from 'long';
|
|
5
5
|
declare type IndexConfigure = {
|
|
6
6
|
startSeqNumber: Long;
|
|
@@ -13,7 +13,7 @@ export declare class AptosBaseProcessor {
|
|
|
13
13
|
constructor(options: AptosBindOptions);
|
|
14
14
|
bind(options: AptosBindOptions): void;
|
|
15
15
|
onTransaction(handler: (transaction: any, ctx: AptosContext) => void): this;
|
|
16
|
-
handleTransaction(txn: any): ProcessResult | null;
|
|
16
|
+
handleTransaction(txn: any, slot: Long): ProcessResult | null;
|
|
17
17
|
isBind(): boolean;
|
|
18
18
|
startSlot(startSlot: Long | number): this;
|
|
19
19
|
endBlock(endBlock: Long | number): this;
|
|
@@ -32,8 +32,8 @@ class AptosBaseProcessor {
|
|
|
32
32
|
this.transactionHanlder = handler;
|
|
33
33
|
return this;
|
|
34
34
|
}
|
|
35
|
-
handleTransaction(txn) {
|
|
36
|
-
const ctx = new context_1.AptosContext(this.address);
|
|
35
|
+
handleTransaction(txn, slot) {
|
|
36
|
+
const ctx = new context_1.AptosContext(this.address, slot);
|
|
37
37
|
if (txn) {
|
|
38
38
|
this.transactionHanlder(txn, ctx);
|
|
39
39
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aptos-processor.js","sourceRoot":"","sources":["../../src/core/aptos-processor.ts"],"names":[],"mappings":";;;;;;AACA,uCAAwC;AAExC,gDAAuB;AAOvB,MAAa,kBAAkB;IACtB,kBAAkB,CAA+C;IACxE,OAAO,CAAQ;IACf,MAAM,GAAmB,EAAE,cAAc,EAAE,IAAI,cAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAExD,YAAY,OAAyB;QACnC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACnB;QACD,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnD,CAAC;IAED,IAAI,CAAC,OAAyB;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC9B,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;SACnC;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;SAChC;IACH,CAAC;IAEM,aAAa,CAAC,OAAsD;QACzE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;SACxD;QAED,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAA;QAEjC,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,iBAAiB,CAAC,GAAQ,EAAE,IAAU;QAC3C,MAAM,GAAG,GAAG,IAAI,sBAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAEhD,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;SAClC;QACD,OAAO;YACL,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,EAAE;SACT,CAAA;IACH,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAA;IAC9B,CAAC;IAEM,SAAS,CAAC,SAAwB;QACvC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,SAAS,GAAG,cAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;SACvC;QACD,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,SAAS,CAAA;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ,CAAC,QAAuB;QACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,QAAQ,GAAG,cAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;SACrC;QACD,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAhED,gDAgEC","sourcesContent":["import { AptosBindOptions } from './bind-options'\nimport { AptosContext } from './context'\nimport { ProcessResult } from '..'\nimport Long from 'long'\n\ntype IndexConfigure = {\n startSeqNumber: Long\n endSeqNumber?: Long\n}\n\nexport class AptosBaseProcessor {\n public transactionHanlder: (transaction: any, ctx: AptosContext) => void\n address: string\n config: IndexConfigure = { startSeqNumber: new Long(0) }\n\n constructor(options: AptosBindOptions) {\n if (options) {\n this.bind(options)\n }\n global.PROCESSOR_STATE.aptosProcessors.push(this)\n }\n\n bind(options: AptosBindOptions) {\n this.address = options.address\n if (options.startBlock) {\n this.startSlot(options.startBlock)\n }\n if (options.endBlock) {\n this.endBlock(options.endBlock)\n }\n }\n\n public onTransaction(handler: (transaction: any, ctx: AptosContext) => void) {\n if (!this.isBind()) {\n throw new Error(\"Processor doesn't bind to an address\")\n }\n\n this.transactionHanlder = handler\n\n return this\n }\n\n public handleTransaction(txn: any, slot: Long): ProcessResult | null {\n const ctx = new AptosContext(this.address, slot)\n\n if (txn) {\n this.transactionHanlder(txn, ctx)\n }\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: [],\n }\n }\n\n public isBind() {\n return this.address !== null\n }\n\n public startSlot(startSlot: Long | number) {\n if (typeof startSlot === 'number') {\n startSlot = Long.fromNumber(startSlot)\n }\n this.config.startSeqNumber = startSlot\n return this\n }\n\n public endBlock(endBlock: Long | number) {\n if (typeof endBlock === 'number') {\n endBlock = Long.fromNumber(endBlock)\n }\n this.config.endSeqNumber = endBlock\n return this\n }\n}\n"]}
|
|
@@ -4,7 +4,7 @@ import { BaseContract, EventFilter } from 'ethers';
|
|
|
4
4
|
import { Event } from '@ethersproject/contracts';
|
|
5
5
|
import { BaseProcessor } from './base-processor';
|
|
6
6
|
import { BindOptions } from './bind-options';
|
|
7
|
-
import { PromiseOrVoid } from '
|
|
7
|
+
import { PromiseOrVoid } from '../promise-or-void';
|
|
8
8
|
import { Trace } from './trace';
|
|
9
9
|
export declare abstract class BaseProcessorTemplate<TContract extends BaseContract, TBoundContractView extends BoundContractView<TContract, ContractView<TContract>>> {
|
|
10
10
|
id: number;
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-processor-template.js","sourceRoot":"","sources":["../../src/core/base-processor-template.ts"],"names":[],"mappings":"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","sourcesContent":["import { BoundContractView, Context, ContractView } from './context'\nimport { Block } from '@ethersproject/abstract-provider'\nimport { BaseContract, EventFilter } from 'ethers'\nimport { Event } from '@ethersproject/contracts'\nimport { BaseProcessor } from './base-processor'\nimport { BindOptions, getOptionsSignature } from './bind-options'\nimport { TemplateInstance } from '../gen/processor/protos/processor'\nimport Long from 'long'\nimport { getNetwork } from '@ethersproject/providers'\nimport { PromiseOrVoid } from '../promise-or-void'\nimport { Trace } from './trace'\n\nexport abstract class BaseProcessorTemplate<\n TContract extends BaseContract,\n TBoundContractView extends BoundContractView<TContract, ContractView<TContract>>\n> {\n id: number\n binds = new Set<string>()\n blockHandlers: ((block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid)[] = []\n traceHandlers: {\n signature: string\n handler: (trace: Trace, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid\n }[] = []\n eventHandlers: {\n handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid\n filter: EventFilter | EventFilter[]\n }[] = []\n\n constructor() {\n this.id = global.PROCESSOR_STATE.templates.length\n global.PROCESSOR_STATE.templates.push(this)\n }\n\n public bind(options: BindOptions) {\n const sig = getOptionsSignature(options)\n if (this.binds.has(sig)) {\n return\n }\n this.binds.add(sig)\n\n const processor = this.bindInternal(options)\n\n for (const eh of this.eventHandlers) {\n processor.onEvent(eh.handler, eh.filter)\n }\n for (const bh of this.blockHandlers) {\n processor.onBlock(bh)\n }\n\n const instance: TemplateInstance = {\n templateId: this.id,\n contract: {\n address: options.address,\n name: options.name || '',\n chainId: options.network ? getNetwork(options.network).chainId.toString() : '1',\n abi: '',\n },\n startBlock: Long.ZERO,\n endBlock: Long.ZERO,\n }\n if (options.startBlock) {\n if (typeof options.startBlock === 'number') {\n instance.startBlock = Long.fromNumber(options.startBlock)\n } else {\n instance.startBlock = options.startBlock\n }\n }\n if (options.endBlock) {\n if (typeof options.endBlock === 'number') {\n instance.endBlock = Long.fromNumber(options.endBlock)\n } else {\n instance.endBlock = options.endBlock\n }\n }\n global.PROCESSOR_STATE.templatesInstances.push(instance)\n\n return processor\n }\n\n public onEvent(\n handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid,\n filter: EventFilter | EventFilter[]\n ) {\n this.eventHandlers.push({\n handler: handler,\n filter: filter,\n })\n return this\n }\n\n public onBlock(handler: (block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n this.blockHandlers.push(handler)\n return this\n }\n\n public onTrace(\n signature: string,\n handler: (trace: Trace, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid\n ) {\n this.traceHandlers.push({ signature, handler })\n return this\n }\n\n protected abstract bindInternal(options: BindOptions): BaseProcessor<TContract, TBoundContractView>\n}\n"]}
|
|
@@ -2,9 +2,9 @@ import { Event } from '@ethersproject/contracts';
|
|
|
2
2
|
import { Block, Log } from '@ethersproject/providers';
|
|
3
3
|
import { BaseContract, EventFilter } from '@ethersproject/contracts';
|
|
4
4
|
import { BoundContractView, Context, ContractView } from './context';
|
|
5
|
-
import { ProcessResult } from '
|
|
5
|
+
import { ProcessResult } from '../gen/processor/protos/processor';
|
|
6
6
|
import { BindInternalOptions, BindOptions } from './bind-options';
|
|
7
|
-
import { PromiseOrVoid } from '
|
|
7
|
+
import { PromiseOrVoid } from '../promise-or-void';
|
|
8
8
|
import { Trace } from './trace';
|
|
9
9
|
export declare class EventsHandler {
|
|
10
10
|
filters: EventFilter[];
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-processor.js","sourceRoot":"","sources":["../../src/core/base-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Event } from '@ethersproject/contracts'\nimport { BytesLike } from '@ethersproject/bytes'\nimport { Block, Log, getNetwork } from '@ethersproject/providers'\nimport { BaseContract, EventFilter } from '@ethersproject/contracts'\nimport Long from 'long'\n\nimport { BoundContractView, Context, ContractView } from './context'\nimport { ProcessResult } from '../gen/processor/protos/processor'\nimport { BindInternalOptions, BindOptions } from './bind-options'\nimport { PromiseOrVoid } from '../promise-or-void'\nimport { Trace } from './trace'\n\nexport class EventsHandler {\n filters: EventFilter[]\n handler: (event: Log) => Promise<ProcessResult>\n}\n\nexport class TraceHandler {\n signature: string\n handler: (trace: Trace) => Promise<ProcessResult>\n}\n\nexport abstract class BaseProcessor<\n TContract extends BaseContract,\n TBoundContractView extends BoundContractView<TContract, ContractView<TContract>>\n> {\n blockHandlers: ((block: Block) => Promise<ProcessResult>)[] = []\n eventHandlers: EventsHandler[] = []\n traceHandlers: TraceHandler[] = []\n\n name: string\n config: BindInternalOptions\n\n constructor(config: BindOptions) {\n this.config = {\n address: config.address,\n name: config.name || '',\n network: config.network ? config.network : 1,\n startBlock: new Long(0),\n }\n if (config.startBlock) {\n if (typeof config.startBlock === 'number') {\n this.config.startBlock = Long.fromNumber(config.startBlock)\n } else {\n this.config.startBlock = config.startBlock\n }\n }\n if (config.endBlock) {\n if (typeof config.endBlock === 'number') {\n this.config.endBlock = Long.fromNumber(config.endBlock)\n } else {\n this.config.endBlock = config.endBlock\n }\n }\n }\n\n protected abstract CreateBoundContractView(): TBoundContractView\n\n public getChainId(): number {\n return getNetwork(this.config.network).chainId\n }\n\n public onEvent(\n handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid,\n filter: EventFilter | EventFilter[]\n ) {\n const chainId = this.getChainId()\n\n let _filters: EventFilter[] = []\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n const contractView = this.CreateBoundContractView()\n this.eventHandlers.push({\n filters: _filters,\n handler: async function (log) {\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, undefined, log)\n // let event: Event = <Event>deepCopy(log);\n const event: Event = <Event>log\n const parsed = contractView.rawContract.interface.parseLog(log)\n if (parsed) {\n event.args = parsed.args\n event.decode = (data: BytesLike, topics?: Array<any>) => {\n return contractView.rawContract.interface.decodeEventLog(parsed.eventFragment, data, topics)\n }\n event.event = parsed.name\n event.eventSignature = parsed.signature\n\n // TODO fix this bug\n await handler(event, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: [],\n }\n }\n return {\n gauges: [],\n counters: [],\n logs: [],\n }\n },\n })\n return this\n }\n\n public onBlock(handler: (block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n const chainId = this.getChainId()\n const contractView = this.CreateBoundContractView()\n\n this.blockHandlers.push(async function (block: Block) {\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, block, undefined)\n await handler(block, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: [],\n }\n })\n return this\n }\n\n public onAllEvents(handler: (event: Log, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n const _filters: EventFilter[] = []\n const tmpContract = this.CreateBoundContractView()\n\n for (const key in tmpContract.filters) {\n _filters.push(tmpContract.filters[key]())\n }\n return this.onEvent(function (log, ctx) {\n return handler(log, ctx)\n }, _filters)\n }\n\n protected onTrace(\n signature: string,\n handler: (trace: Trace, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid\n ) {\n const chainId = this.getChainId()\n const contractView = this.CreateBoundContractView()\n\n this.traceHandlers.push({\n signature,\n handler: async function (trace: Trace) {\n const contractInterface = contractView.rawContract.interface\n const fragment = contractInterface.getFunction(signature)\n if (!trace.action.input) {\n return {\n gauges: [],\n counters: [],\n logs: [],\n }\n }\n const traceData = '0x' + trace.action.input.slice(10)\n trace.args = contractInterface._abiCoder.decode(fragment.inputs, traceData)\n\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, undefined, undefined, trace)\n await handler(trace, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: [],\n }\n },\n })\n return this\n }\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bind-options.js","sourceRoot":"","sources":["../../src/core/bind-options.ts"],"names":[],"mappings":";;;AAEA,wDAAqD;AAErD,MAAa,WAAW;IACtB,OAAO,CAAQ;IACf,OAAO,GAAgB,CAAC,CAAA;IACxB,IAAI,CAAS;IACb,UAAU,CAAgB;IAC1B,QAAQ,CAAgB;CACzB;AAND,kCAMC;AAED,SAAgB,mBAAmB,CAAC,IAAiB;IACnD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC1B,IAAI,IAAI,CAAC,OAAO,EAAE;QAChB,GAAG,CAAC,IAAI,CAAC,IAAA,sBAAU,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;KACtD;IACD,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACpB;IACD,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAA;KACrC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;KACnC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACtB,CAAC;AAfD,kDAeC;AAED,MAAa,mBAAmB;IAC9B,OAAO,CAAQ;IACf,OAAO,CAAY;IACnB,IAAI,CAAQ;IACZ,UAAU,CAAM;IAChB,QAAQ,CAAO;CAChB;AAND,kDAMC;AAED,MAAa,iBAAkB,SAAQ,WAAW;IAEhD,uBAAuB,CAAU;CAClC;AAHD,8CAGC;AAED,MAAa,cAAe,SAAQ,WAAW;CAAG;AAAlD,wCAAkD;AAClD,MAAa,gBAAiB,SAAQ,WAAW;CAAG;AAApD,4CAAoD","sourcesContent":["import { Networkish } from '@ethersproject/networks'\nimport Long from 'long'\nimport { getNetwork } from '@ethersproject/providers'\n\nexport class BindOptions {\n address: string\n network?: Networkish = 1\n name?: string\n startBlock?: Long | number\n endBlock?: Long | number\n}\n\nexport function getOptionsSignature(opts: BindOptions): string {\n const sig = [opts.address]\n if (opts.network) {\n sig.push(getNetwork(opts.network).chainId.toString())\n }\n if (opts.name) {\n sig.push(opts.name)\n }\n if (opts.startBlock) {\n sig.push(opts.startBlock.toString())\n }\n if (opts.endBlock) {\n sig.push(opts.endBlock.toString())\n }\n return sig.join('_')\n}\n\nexport class BindInternalOptions {\n address: string\n network: Networkish\n name: string\n startBlock: Long\n endBlock?: Long\n}\n\nexport class SolanaBindOptions extends BindOptions {\n declare network?: string\n processInnerInstruction?: boolean\n}\n\nexport class SuiBindOptions extends BindOptions {}\nexport class AptosBindOptions extends BindOptions {}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CounterResult, GaugeResult, LogResult } from '
|
|
1
|
+
import { CounterResult, GaugeResult, LogResult } from '../gen/processor/protos/processor';
|
|
2
2
|
import { BaseContract, EventFilter } from 'ethers';
|
|
3
3
|
import { Block, Log } from '@ethersproject/abstract-provider';
|
|
4
4
|
import { Meter } from './meter';
|
|
@@ -46,13 +46,16 @@ export declare class BoundContractView<TContract extends BaseContract, TContract
|
|
|
46
46
|
}
|
|
47
47
|
export declare class SolanaContext extends BaseContext {
|
|
48
48
|
address: string;
|
|
49
|
-
|
|
49
|
+
blockNumber: Long;
|
|
50
|
+
constructor(address: string, slot: Long);
|
|
50
51
|
}
|
|
51
52
|
export declare class SuiContext extends BaseContext {
|
|
52
53
|
address: string;
|
|
53
|
-
|
|
54
|
+
blockNumber: Long;
|
|
55
|
+
constructor(address: string, slot: Long);
|
|
54
56
|
}
|
|
55
57
|
export declare class AptosContext extends BaseContext {
|
|
56
58
|
address: string;
|
|
57
|
-
|
|
59
|
+
blockNumber: Long;
|
|
60
|
+
constructor(address: string, slot: Long);
|
|
58
61
|
}
|
|
@@ -30,14 +30,14 @@ class EthContext extends BaseContext {
|
|
|
30
30
|
this.block = block;
|
|
31
31
|
this.trace = trace;
|
|
32
32
|
if (log) {
|
|
33
|
-
this.blockNumber = long_1.default.fromNumber(log.blockNumber);
|
|
33
|
+
this.blockNumber = long_1.default.fromNumber(log.blockNumber, true);
|
|
34
34
|
this.transactionHash = log.transactionHash;
|
|
35
35
|
}
|
|
36
36
|
else if (block) {
|
|
37
|
-
this.blockNumber = long_1.default.fromNumber(block.number);
|
|
37
|
+
this.blockNumber = long_1.default.fromNumber(block.number, true);
|
|
38
38
|
}
|
|
39
39
|
if (trace) {
|
|
40
|
-
this.blockNumber = long_1.default.fromNumber(trace.blockNumber);
|
|
40
|
+
this.blockNumber = long_1.default.fromNumber(trace.blockNumber, true);
|
|
41
41
|
this.transactionHash = trace.transactionHash;
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -89,25 +89,31 @@ class BoundContractView {
|
|
|
89
89
|
exports.BoundContractView = BoundContractView;
|
|
90
90
|
class SolanaContext extends BaseContext {
|
|
91
91
|
address;
|
|
92
|
-
|
|
92
|
+
blockNumber;
|
|
93
|
+
constructor(address, slot) {
|
|
93
94
|
super();
|
|
94
95
|
this.address = address;
|
|
96
|
+
this.blockNumber = slot;
|
|
95
97
|
}
|
|
96
98
|
}
|
|
97
99
|
exports.SolanaContext = SolanaContext;
|
|
98
100
|
class SuiContext extends BaseContext {
|
|
99
101
|
address;
|
|
100
|
-
|
|
102
|
+
blockNumber;
|
|
103
|
+
constructor(address, slot) {
|
|
101
104
|
super();
|
|
102
105
|
this.address = address;
|
|
106
|
+
this.blockNumber = slot;
|
|
103
107
|
}
|
|
104
108
|
}
|
|
105
109
|
exports.SuiContext = SuiContext;
|
|
106
110
|
class AptosContext extends BaseContext {
|
|
107
111
|
address;
|
|
108
|
-
|
|
112
|
+
blockNumber;
|
|
113
|
+
constructor(address, slot) {
|
|
109
114
|
super();
|
|
110
115
|
this.address = address;
|
|
116
|
+
this.blockNumber = slot;
|
|
111
117
|
}
|
|
112
118
|
}
|
|
113
119
|
exports.AptosContext = AptosContext;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"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","sourcesContent":["import { CounterResult, GaugeResult, LogResult } from '../gen/processor/protos/processor'\nimport { BaseContract, EventFilter } from 'ethers'\nimport { Block, Log } from '@ethersproject/abstract-provider'\nimport { Meter } from './meter'\nimport Long from 'long'\nimport { Trace } from './trace'\n\nexport class BaseContext {\n gauges: GaugeResult[] = []\n counters: CounterResult[] = []\n logs: LogResult[] = []\n meter: Meter\n\n constructor() {\n this.meter = new Meter(this)\n }\n}\n\nexport class EthContext extends BaseContext {\n chainId: number\n log?: Log\n block?: Block\n trace?: Trace\n blockNumber: Long\n transactionHash?: string\n\n constructor(chainId: number, block?: Block, log?: Log, trace?: Trace) {\n super()\n this.chainId = chainId\n this.log = log\n this.block = block\n this.trace = trace\n if (log) {\n this.blockNumber = Long.fromNumber(log.blockNumber, true)\n this.transactionHash = log.transactionHash\n } else if (block) {\n this.blockNumber = Long.fromNumber(block.number, true)\n }\n if (trace) {\n this.blockNumber = Long.fromNumber(trace.blockNumber, true)\n this.transactionHash = trace.transactionHash\n }\n }\n}\n\nexport class Context<\n TContract extends BaseContract,\n TContractBoundView extends BoundContractView<TContract, ContractView<TContract>>\n> extends EthContext {\n contract: TContractBoundView\n address: string\n\n constructor(view: TContractBoundView, chainId: number, block?: Block, log?: Log, trace?: Trace) {\n super(chainId, block, log, trace)\n view.context = this\n this.contract = view\n this.address = view.rawContract.address\n }\n}\n\nexport class ContractView<TContract extends BaseContract> {\n filters: { [name: string]: (...args: Array<any>) => EventFilter }\n protected contract: TContract\n\n constructor(contract: TContract) {\n this.contract = contract\n this.filters = contract.filters\n }\n\n get rawContract() {\n return this.contract\n }\n\n get provider() {\n return this.contract.provider\n }\n}\n\nexport class BoundContractView<TContract extends BaseContract, TContractView extends ContractView<TContract>> {\n protected view: TContractView\n // context will be set right after context creation (in context's constructor)\n context: Context<TContract, BoundContractView<TContract, TContractView>>\n\n constructor(view: TContractView) {\n this.view = view\n }\n\n get rawContract() {\n return this.view.rawContract\n }\n\n get provider() {\n return this.view.provider\n }\n\n get filters() {\n return this.view.filters\n }\n}\n\nexport class SolanaContext extends BaseContext {\n address: string\n blockNumber: Long\n\n constructor(address: string, slot: Long) {\n super()\n this.address = address\n this.blockNumber = slot\n }\n}\n\nexport class SuiContext extends BaseContext {\n address: string\n blockNumber: Long\n\n constructor(address: string, slot: Long) {\n super()\n this.address = address\n this.blockNumber = slot\n }\n}\n\nexport class AptosContext extends BaseContext {\n address: string\n blockNumber: Long\n\n constructor(address: string, slot: Long) {\n super()\n this.address = address\n this.blockNumber = slot\n }\n}\n"]}
|
|
File without changes
|
|
@@ -4,8 +4,8 @@ exports.GenericProcessor = void 0;
|
|
|
4
4
|
const contracts_1 = require("@ethersproject/contracts");
|
|
5
5
|
const context_1 = require("./context");
|
|
6
6
|
const base_processor_1 = require("./base-processor");
|
|
7
|
-
const provider_1 = require("
|
|
8
|
-
const binds_1 = require("
|
|
7
|
+
const provider_1 = require("../provider");
|
|
8
|
+
const binds_1 = require("../binds");
|
|
9
9
|
class GenericProcessor extends base_processor_1.BaseProcessor {
|
|
10
10
|
eventABI;
|
|
11
11
|
constructor(eventABI, options) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-processor.js","sourceRoot":"","sources":["../../src/core/generic-processor.ts"],"names":[],"mappings":";;;AAAA,wDAAuD;AACvD,uCAA2D;AAE3D,qDAAgD;AAChD,0CAAyC;AACzC,oCAAwD;AAExD,MAAa,gBAAiB,SAAQ,8BAGrC;IACC,QAAQ,CAAU;IAClB,YAAY,QAAkB,EAAE,OAAoB;QAClD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAES,uBAAuB;QAC/B,MAAM,QAAQ,GAAG,IAAI,wBAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAA,sBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACvG,OAAO,IAAI,2BAAiB,CAAC,IAAI,sBAAY,CAAe,QAAQ,CAAC,CAAC,CAAA;IACxE,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,QAA2B,EAAE,OAAoB;QAClE,MAAM,OAAO,GAAG,SAAS,CAAA;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC5B,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAA;SACtB;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAC/C,YAAY,CAAC,IAAI,GAAG,IAAA,uBAAe,EAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5F,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC9D,IAAA,oBAAY,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;QACzC,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AA3BD,4CA2BC","sourcesContent":["import { BaseContract } from '@ethersproject/contracts'\nimport { BoundContractView, ContractView } from './context'\nimport { BindOptions } from './bind-options'\nimport { BaseProcessor } from './base-processor'\nimport { getProvider } from '../provider'\nimport { addProcessor, getContractName } from '../binds'\n\nexport class GenericProcessor extends BaseProcessor<\n BaseContract,\n BoundContractView<BaseContract, ContractView<BaseContract>>\n> {\n eventABI: string[]\n constructor(eventABI: string[], options: BindOptions) {\n super(options)\n this.eventABI = eventABI\n }\n\n protected CreateBoundContractView(): BoundContractView<BaseContract, ContractView<BaseContract>> {\n const contract = new BaseContract(this.config.address, this.eventABI, getProvider(this.config.network))\n return new BoundContractView(new ContractView<BaseContract>(contract))\n }\n\n public static bind(eventABI: string[] | string, options: BindOptions): GenericProcessor {\n const AbiName = 'Generic'\n if (!Array.isArray(eventABI)) {\n eventABI = [eventABI]\n }\n\n const finalOptions = Object.assign({}, options)\n finalOptions.name = getContractName(AbiName, options.name, options.address, options.network)\n const processor = new GenericProcessor(eventABI, finalOptions)\n addProcessor(AbiName, options, processor)\n return processor\n }\n}\n"]}
|
|
File without changes
|
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
const chai_1 = require("chai");
|
|
5
5
|
const __1 = require("..");
|
|
6
|
-
const generic_processor_1 = require("
|
|
7
|
-
const
|
|
8
|
-
const metric_utils_1 = require("./metric-utils");
|
|
6
|
+
const generic_processor_1 = require("./generic-processor");
|
|
7
|
+
const testing_1 = require("../testing");
|
|
9
8
|
describe('Test Generic Processor', () => {
|
|
10
|
-
const service = new
|
|
9
|
+
const service = new testing_1.TestProcessorServer(() => {
|
|
11
10
|
generic_processor_1.GenericProcessor.bind([
|
|
12
11
|
'event Transfer(address indexed from, address indexed to, uint256 value)',
|
|
13
12
|
'event Approval(address indexed from, address indexed to, uint256 value)',
|
|
@@ -32,7 +31,7 @@ describe('Test Generic Processor', () => {
|
|
|
32
31
|
const res = await service.testLogs([logData, logData]);
|
|
33
32
|
const counters = res.result?.counters;
|
|
34
33
|
(0, chai_1.expect)(counters).length(2);
|
|
35
|
-
(0, chai_1.expect)((0,
|
|
34
|
+
(0, chai_1.expect)((0, testing_1.firstCounterValue)(res.result, 'event_num')).equals(1n);
|
|
36
35
|
(0, chai_1.expect)(counters?.[0].runtimeInfo?.from).equals(__1.HandlerType.LOG);
|
|
37
36
|
});
|
|
38
37
|
test('Check log dispatch no buffer over rune', async () => {
|
|
@@ -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 '..'\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.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,12 @@
|
|
|
1
|
+
export { BigNumber as BigDecimal } from 'bignumber.js';
|
|
2
|
+
export { Context, ContractView, BoundContractView, SolanaContext } from './context';
|
|
3
|
+
export { CounterBinding, Meter, GaugeBinding, Counter, Gauge, MetricDescriptorOption } from './meter';
|
|
4
|
+
export { type Numberish, toBigInteger, toMetricValue } from './numberish';
|
|
5
|
+
export { BindOptions, SolanaBindOptions, SuiBindOptions, AptosBindOptions } from './bind-options';
|
|
6
|
+
export { BaseProcessor } from './base-processor';
|
|
7
|
+
export { GenericProcessor } from './generic-processor';
|
|
8
|
+
export { BaseProcessorTemplate } from './base-processor-template';
|
|
9
|
+
export { SolanaBaseProcessor } from './solana-processor';
|
|
10
|
+
export { SuiBaseProcessor } from './sui-processor';
|
|
11
|
+
export { AptosBaseProcessor } from './aptos-processor';
|
|
12
|
+
export type { TypedCallTrace, Trace } from './trace';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AptosBaseProcessor = exports.SuiBaseProcessor = exports.SolanaBaseProcessor = exports.BaseProcessorTemplate = exports.GenericProcessor = exports.BaseProcessor = exports.AptosBindOptions = exports.SuiBindOptions = exports.SolanaBindOptions = exports.BindOptions = exports.toMetricValue = exports.toBigInteger = exports.MetricDescriptorOption = exports.Gauge = exports.Counter = exports.GaugeBinding = exports.Meter = exports.CounterBinding = exports.SolanaContext = exports.BoundContractView = exports.ContractView = exports.Context = exports.BigDecimal = void 0;
|
|
4
|
+
var bignumber_js_1 = require("bignumber.js");
|
|
5
|
+
Object.defineProperty(exports, "BigDecimal", { enumerable: true, get: function () { return bignumber_js_1.BigNumber; } });
|
|
6
|
+
var context_1 = require("./context");
|
|
7
|
+
Object.defineProperty(exports, "Context", { enumerable: true, get: function () { return context_1.Context; } });
|
|
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
|
+
Object.defineProperty(exports, "SolanaContext", { enumerable: true, get: function () { return context_1.SolanaContext; } });
|
|
11
|
+
var meter_1 = require("./meter");
|
|
12
|
+
Object.defineProperty(exports, "CounterBinding", { enumerable: true, get: function () { return meter_1.CounterBinding; } });
|
|
13
|
+
Object.defineProperty(exports, "Meter", { enumerable: true, get: function () { return meter_1.Meter; } });
|
|
14
|
+
Object.defineProperty(exports, "GaugeBinding", { enumerable: true, get: function () { return meter_1.GaugeBinding; } });
|
|
15
|
+
Object.defineProperty(exports, "Counter", { enumerable: true, get: function () { return meter_1.Counter; } });
|
|
16
|
+
Object.defineProperty(exports, "Gauge", { enumerable: true, get: function () { return meter_1.Gauge; } });
|
|
17
|
+
Object.defineProperty(exports, "MetricDescriptorOption", { enumerable: true, get: function () { return meter_1.MetricDescriptorOption; } });
|
|
18
|
+
var numberish_1 = require("./numberish");
|
|
19
|
+
Object.defineProperty(exports, "toBigInteger", { enumerable: true, get: function () { return numberish_1.toBigInteger; } });
|
|
20
|
+
Object.defineProperty(exports, "toMetricValue", { enumerable: true, get: function () { return numberish_1.toMetricValue; } });
|
|
21
|
+
var bind_options_1 = require("./bind-options");
|
|
22
|
+
Object.defineProperty(exports, "BindOptions", { enumerable: true, get: function () { return bind_options_1.BindOptions; } });
|
|
23
|
+
Object.defineProperty(exports, "SolanaBindOptions", { enumerable: true, get: function () { return bind_options_1.SolanaBindOptions; } });
|
|
24
|
+
Object.defineProperty(exports, "SuiBindOptions", { enumerable: true, get: function () { return bind_options_1.SuiBindOptions; } });
|
|
25
|
+
Object.defineProperty(exports, "AptosBindOptions", { enumerable: true, get: function () { return bind_options_1.AptosBindOptions; } });
|
|
26
|
+
var base_processor_1 = require("./base-processor");
|
|
27
|
+
Object.defineProperty(exports, "BaseProcessor", { enumerable: true, get: function () { return base_processor_1.BaseProcessor; } });
|
|
28
|
+
var generic_processor_1 = require("./generic-processor");
|
|
29
|
+
Object.defineProperty(exports, "GenericProcessor", { enumerable: true, get: function () { return generic_processor_1.GenericProcessor; } });
|
|
30
|
+
var base_processor_template_1 = require("./base-processor-template");
|
|
31
|
+
Object.defineProperty(exports, "BaseProcessorTemplate", { enumerable: true, get: function () { return base_processor_template_1.BaseProcessorTemplate; } });
|
|
32
|
+
var solana_processor_1 = require("./solana-processor");
|
|
33
|
+
Object.defineProperty(exports, "SolanaBaseProcessor", { enumerable: true, get: function () { return solana_processor_1.SolanaBaseProcessor; } });
|
|
34
|
+
var sui_processor_1 = require("./sui-processor");
|
|
35
|
+
Object.defineProperty(exports, "SuiBaseProcessor", { enumerable: true, get: function () { return sui_processor_1.SuiBaseProcessor; } });
|
|
36
|
+
var aptos_processor_1 = require("./aptos-processor");
|
|
37
|
+
Object.defineProperty(exports, "AptosBaseProcessor", { enumerable: true, get: function () { return aptos_processor_1.AptosBaseProcessor; } });
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;AAAA,6CAAsD;AAA7C,0GAAA,SAAS,OAAc;AAChC,qCAAmF;AAA1E,kGAAA,OAAO,OAAA;AAAE,uGAAA,YAAY,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAAE,wGAAA,aAAa,OAAA;AAChE,iCAAqG;AAA5F,uGAAA,cAAc,OAAA;AAAE,8FAAA,KAAK,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,gGAAA,OAAO,OAAA;AAAE,8FAAA,KAAK,OAAA;AAAE,+GAAA,sBAAsB,OAAA;AACpF,yCAAyE;AAAhD,yGAAA,YAAY,OAAA;AAAE,0GAAA,aAAa,OAAA;AAEpD,+CAAiG;AAAxF,2GAAA,WAAW,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AAAE,8GAAA,cAAc,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAEzE,mDAAgD;AAAvC,+GAAA,aAAa,OAAA;AACtB,yDAAsD;AAA7C,qHAAA,gBAAgB,OAAA;AACzB,qEAAiE;AAAxD,gIAAA,qBAAqB,OAAA;AAC9B,uDAAwD;AAA/C,uHAAA,mBAAmB,OAAA;AAC5B,iDAAkD;AAAzC,iHAAA,gBAAgB,OAAA;AACzB,qDAAsD;AAA7C,qHAAA,kBAAkB,OAAA","sourcesContent":["export { BigNumber as BigDecimal } from 'bignumber.js'\nexport { Context, ContractView, BoundContractView, SolanaContext } from './context'\nexport { CounterBinding, Meter, GaugeBinding, Counter, Gauge, MetricDescriptorOption } from './meter'\nexport { type Numberish, toBigInteger, toMetricValue } from './numberish'\n\nexport { BindOptions, SolanaBindOptions, SuiBindOptions, AptosBindOptions } from './bind-options'\n\nexport { BaseProcessor } from './base-processor'\nexport { GenericProcessor } from './generic-processor'\nexport { BaseProcessorTemplate } from './base-processor-template'\nexport { SolanaBaseProcessor } from './solana-processor'\nexport { SuiBaseProcessor } from './sui-processor'\nexport { AptosBaseProcessor } from './aptos-processor'\n\nexport type { TypedCallTrace, Trace } from './trace'\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MetricDescriptor } from '
|
|
1
|
+
import { MetricDescriptor } from '../gen/processor/protos/processor';
|
|
2
2
|
import { BaseContext } from './context';
|
|
3
3
|
import { Numberish } from './numberish';
|
|
4
4
|
export declare function normalizeName(name: string): string;
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.Meter = exports.GaugeBinding = exports.Gauge = exports.CounterBinding = exports.Counter = exports.Metric = exports.MetricDescriptorOption = exports.normalizeLabels = exports.normalizeValue = exports.normalizeKey = exports.normalizeName = void 0;
|
|
7
|
-
const processor_1 = require("
|
|
4
|
+
const processor_1 = require("../gen/processor/protos/processor");
|
|
8
5
|
const context_1 = require("./context");
|
|
9
6
|
const numberish_1 = require("./numberish");
|
|
10
|
-
const long_1 = __importDefault(require("long"));
|
|
11
7
|
function normalizeName(name) {
|
|
12
8
|
const regex = new RegExp('![_.a-zA-Z0-9]');
|
|
13
9
|
return name.slice(0, 100).replace(regex, '_');
|
|
@@ -43,7 +39,7 @@ function GetRecordMetaData(ctx, metric, labels) {
|
|
|
43
39
|
if (ctx.log) {
|
|
44
40
|
return {
|
|
45
41
|
contractAddress: ctx.contract.rawContract.address,
|
|
46
|
-
blockNumber:
|
|
42
|
+
blockNumber: ctx.blockNumber,
|
|
47
43
|
transactionIndex: ctx.log.transactionIndex,
|
|
48
44
|
transactionHash: ctx.transactionHash || '',
|
|
49
45
|
logIndex: ctx.log.logIndex,
|
|
@@ -55,7 +51,7 @@ function GetRecordMetaData(ctx, metric, labels) {
|
|
|
55
51
|
if (ctx.block) {
|
|
56
52
|
return {
|
|
57
53
|
contractAddress: ctx.contract.rawContract.address,
|
|
58
|
-
blockNumber:
|
|
54
|
+
blockNumber: ctx.blockNumber,
|
|
59
55
|
transactionIndex: -1,
|
|
60
56
|
transactionHash: '',
|
|
61
57
|
logIndex: -1,
|
|
@@ -67,7 +63,7 @@ function GetRecordMetaData(ctx, metric, labels) {
|
|
|
67
63
|
if (ctx.trace) {
|
|
68
64
|
return {
|
|
69
65
|
contractAddress: ctx.contract.rawContract.address,
|
|
70
|
-
blockNumber:
|
|
66
|
+
blockNumber: ctx.blockNumber,
|
|
71
67
|
transactionIndex: ctx.trace.transactionPosition,
|
|
72
68
|
transactionHash: ctx.transactionHash || '',
|
|
73
69
|
logIndex: -1,
|
|
@@ -80,7 +76,7 @@ function GetRecordMetaData(ctx, metric, labels) {
|
|
|
80
76
|
else if (ctx instanceof context_1.SolanaContext) {
|
|
81
77
|
return {
|
|
82
78
|
contractAddress: ctx.address,
|
|
83
|
-
blockNumber:
|
|
79
|
+
blockNumber: ctx.blockNumber,
|
|
84
80
|
transactionIndex: 0,
|
|
85
81
|
transactionHash: '',
|
|
86
82
|
logIndex: 0,
|
|
@@ -92,7 +88,7 @@ function GetRecordMetaData(ctx, metric, labels) {
|
|
|
92
88
|
else if (ctx instanceof context_1.SuiContext) {
|
|
93
89
|
return {
|
|
94
90
|
contractAddress: ctx.address,
|
|
95
|
-
blockNumber:
|
|
91
|
+
blockNumber: ctx.blockNumber,
|
|
96
92
|
transactionIndex: 0,
|
|
97
93
|
transactionHash: '',
|
|
98
94
|
logIndex: 0,
|
|
@@ -104,11 +100,11 @@ function GetRecordMetaData(ctx, metric, labels) {
|
|
|
104
100
|
else if (ctx instanceof context_1.AptosContext) {
|
|
105
101
|
return {
|
|
106
102
|
contractAddress: ctx.address,
|
|
107
|
-
blockNumber:
|
|
103
|
+
blockNumber: ctx.blockNumber,
|
|
108
104
|
transactionIndex: 0,
|
|
109
105
|
transactionHash: '',
|
|
110
106
|
logIndex: 0,
|
|
111
|
-
chainId: '
|
|
107
|
+
chainId: 'aptos_testnet',
|
|
112
108
|
descriptor: descriptor,
|
|
113
109
|
labels: normalizeLabels(labels),
|
|
114
110
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meter.js","sourceRoot":"","sources":["../../src/core/meter.ts"],"names":[],"mappings":"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","sourcesContent":["import { MetricDescriptor, RecordMetaData } from '../gen/processor/protos/processor'\nimport { AptosContext, BaseContext, Context, SolanaContext, SuiContext } from './context'\nimport { toMetricValue, Numberish } from './numberish'\nimport Long from 'long'\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\nfunction GetRecordMetaData(ctx: BaseContext, metric: Metric, labels: Labels): RecordMetaData {\n let descriptor = metric.descriptor\n if (metric.usage > 0) {\n // Other setting don't need to be write multiple times\n descriptor = MetricDescriptor.fromPartial({ name: descriptor.name })\n }\n\n descriptor.name = normalizeName(descriptor.name)\n\n if (ctx instanceof Context) {\n if (ctx.log) {\n return {\n contractAddress: ctx.contract.rawContract.address,\n blockNumber: ctx.blockNumber,\n transactionIndex: ctx.log.transactionIndex,\n transactionHash: ctx.transactionHash || '',\n logIndex: ctx.log.logIndex,\n chainId: ctx.chainId.toString(),\n descriptor: descriptor,\n labels: normalizeLabels(labels),\n }\n }\n if (ctx.block) {\n return {\n contractAddress: ctx.contract.rawContract.address,\n blockNumber: ctx.blockNumber,\n transactionIndex: -1,\n transactionHash: '',\n logIndex: -1,\n chainId: ctx.chainId.toString(),\n descriptor: descriptor,\n labels: normalizeLabels(labels),\n }\n }\n if (ctx.trace) {\n return {\n contractAddress: ctx.contract.rawContract.address,\n blockNumber: ctx.blockNumber,\n transactionIndex: ctx.trace.transactionPosition,\n transactionHash: ctx.transactionHash || '',\n logIndex: -1,\n chainId: ctx.chainId.toString(),\n descriptor: descriptor,\n labels: normalizeLabels(labels),\n }\n }\n } else if (ctx instanceof SolanaContext) {\n return {\n contractAddress: ctx.address,\n blockNumber: ctx.blockNumber,\n transactionIndex: 0,\n transactionHash: '', // TODO add\n logIndex: 0,\n chainId: 'SOL_mainnet', // TODO set in context\n descriptor: descriptor,\n labels: normalizeLabels(labels),\n }\n } else if (ctx instanceof SuiContext) {\n return {\n contractAddress: ctx.address,\n blockNumber: ctx.blockNumber,\n transactionIndex: 0,\n transactionHash: '', // TODO\n logIndex: 0,\n chainId: 'SUI_devnet', // TODO set in context\n descriptor: descriptor,\n labels: normalizeLabels(labels),\n }\n } else if (ctx instanceof AptosContext) {\n return {\n contractAddress: ctx.address,\n blockNumber: ctx.blockNumber,\n transactionIndex: 0,\n transactionHash: '', // TODO\n logIndex: 0,\n chainId: 'aptos_testnet', // TODO set in context\n descriptor: descriptor,\n labels: normalizeLabels(labels),\n }\n }\n throw new Error(\"This can't happen\")\n}\n\nexport type Labels = { [key: string]: string }\n\nexport class MetricDescriptorOption {\n unit?: string\n description?: string\n sparse?: boolean\n}\n\nexport class Metric {\n descriptor: MetricDescriptor = MetricDescriptor.fromPartial({})\n usage = 0\n\n constructor(name: string, option?: MetricDescriptorOption) {\n this.descriptor.name = name\n if (option) {\n if (option.unit) {\n this.descriptor.unit = option.unit\n }\n if (option.description) {\n this.descriptor.description = option.description\n }\n if (option.sparse) {\n this.descriptor.sparse = option.sparse\n }\n }\n }\n}\n\nexport class Counter extends Metric {\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.counters.push({\n metadata: GetRecordMetaData(ctx, this, labels),\n metricValue: toMetricValue(value),\n add: add,\n runtimeInfo: undefined,\n })\n this.usage++\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 record(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n ctx.gauges.push({\n metadata: GetRecordMetaData(ctx, this, labels),\n metricValue: toMetricValue(value),\n runtimeInfo: undefined,\n })\n this.usage++\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
|
|
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"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BigNumber } from 'ethers';
|
|
2
|
-
import { BigInteger, MetricValue } from '
|
|
2
|
+
import { BigInteger, MetricValue } from '../gen/processor/protos/processor';
|
|
3
3
|
import { BigDecimal } from '.';
|
|
4
4
|
export declare type Numberish = number | BigNumber | bigint | BigDecimal;
|
|
5
5
|
export declare function toMetricValue(value: Numberish): MetricValue;
|