@sentio/sdk 1.17.2 → 1.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/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} +3 -2
- package/lib/{aptos-processor.js → core/aptos-processor.js} +4 -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} +11 -14
- 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 +21 -54
- 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 +10 -3
- 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 +10 -4
- 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/chain.d.ts +7 -0
- package/lib/utils/{chainmap.js → chain.js} +12 -5
- 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 +6 -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} +5 -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} +11 -11
- 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 +32 -54
- 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 +6 -2
- 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 +6 -3
- 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} +13 -3
- 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 +6 -3
- 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.d.ts +0 -2
- package/lib/utils/chainmap.js.map +0 -1
- package/lib/utils/convert.js.map +0 -1
- package/lib/utils/erc20.js.map +0 -1
|
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;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.toBigInteger = exports.toMetricValue = void 0;
|
|
4
4
|
const ethers_1 = require("ethers");
|
|
5
|
-
const processor_1 = require("
|
|
5
|
+
const processor_1 = require("../gen/processor/protos/processor");
|
|
6
6
|
const _1 = require(".");
|
|
7
7
|
const anchor_1 = require("@project-serum/anchor");
|
|
8
8
|
function toMetricValue(value) {
|
|
@@ -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/processor/protos/processor'\nimport { BigDecimal } from '.'\nimport { BN } from '@project-serum/anchor'\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('Record NaN value')\n }\n if (!value.isFinite()) {\n // NaN also not finite\n throw new Error('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 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"]}
|
|
File without changes
|
|
@@ -5,7 +5,7 @@ const numberish_1 = require("./numberish");
|
|
|
5
5
|
const crypto_1 = require("crypto");
|
|
6
6
|
const ethers_1 = require("ethers");
|
|
7
7
|
const perf_hooks_1 = require("perf_hooks");
|
|
8
|
-
const
|
|
8
|
+
const _1 = require(".");
|
|
9
9
|
// TODO add test for type conversion
|
|
10
10
|
describe('Numberish tests', () => {
|
|
11
11
|
const values = [0n, -0n, 3815372408723498172304781320847103784n, 2132n, -18708707n, 123n << 100n];
|
|
@@ -46,10 +46,10 @@ describe('Numberish tests', () => {
|
|
|
46
46
|
});
|
|
47
47
|
test('metric values', async () => {
|
|
48
48
|
const longDec = '12.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002';
|
|
49
|
-
(0, chai_1.expect)((0, numberish_1.toMetricValue)(new
|
|
49
|
+
(0, chai_1.expect)((0, numberish_1.toMetricValue)(new _1.BigDecimal(longDec)).bigDecimal == longDec);
|
|
50
50
|
const complexDec = '-7.350918e-428';
|
|
51
|
-
(0, chai_1.expect)((0, numberish_1.toMetricValue)(new
|
|
52
|
-
(0, chai_1.expect)(BigIntegerToBigInt((0, numberish_1.toMetricValue)(new
|
|
51
|
+
(0, chai_1.expect)((0, numberish_1.toMetricValue)(new _1.BigDecimal(complexDec)).bigDecimal == complexDec);
|
|
52
|
+
(0, chai_1.expect)(BigIntegerToBigInt((0, numberish_1.toMetricValue)(new _1.BigDecimal('100000')).bigInteger) === 100000n);
|
|
53
53
|
});
|
|
54
54
|
});
|
|
55
55
|
// Performance very bad
|
|
@@ -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/processor/protos/processor'\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"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProcessResult } from '
|
|
1
|
+
import { ProcessResult } from '../gen/processor/protos/processor';
|
|
2
2
|
import { SolanaContext } from './context';
|
|
3
3
|
import Long from 'long';
|
|
4
4
|
import { Instruction } from '@project-serum/anchor';
|
|
@@ -26,7 +26,7 @@ export declare class SolanaBaseProcessor {
|
|
|
26
26
|
handleInstruction(ins: string | {
|
|
27
27
|
type: string;
|
|
28
28
|
info: any;
|
|
29
|
-
}): ProcessResult | null;
|
|
29
|
+
}, slot: Long): ProcessResult | null;
|
|
30
30
|
isBind(): boolean;
|
|
31
31
|
startSlot(startSlot: Long | number): this;
|
|
32
32
|
endBlock(endBlock: Long | number): this;
|
|
@@ -44,8 +44,8 @@ class SolanaBaseProcessor {
|
|
|
44
44
|
this.instructionHanlderMap.set(instructionName, handler);
|
|
45
45
|
return this;
|
|
46
46
|
}
|
|
47
|
-
handleInstruction(ins) {
|
|
48
|
-
const ctx = new context_1.SolanaContext(this.address);
|
|
47
|
+
handleInstruction(ins, slot) {
|
|
48
|
+
const ctx = new context_1.SolanaContext(this.address, slot);
|
|
49
49
|
let parsedInstruction = null;
|
|
50
50
|
if (ins) {
|
|
51
51
|
if (ins.info) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana-processor.js","sourceRoot":"","sources":["../../src/core/solana-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { ProcessResult } from '../gen/processor/protos/processor'\nimport { SolanaContext } from './context'\nimport Long from 'long'\nimport { Instruction } from '@project-serum/anchor'\nimport { SolanaBindOptions } from './bind-options'\n\ntype IndexConfigure = {\n startSlot: Long\n endSlot?: Long\n}\n\nexport class SolanaBaseProcessor {\n public instructionHanlderMap: Map<string, (instruction: Instruction, ctx: SolanaContext) => void> = new Map()\n address: string\n endpoint: string\n contractName: string\n processInnerInstruction: boolean\n config: IndexConfigure = { startSlot: new Long(0) }\n decodeInstruction: (rawInstruction: string) => Instruction | null\n fromParsedInstruction: (instruction: { type: string; info: any }) => Instruction | null\n\n constructor(options: SolanaBindOptions) {\n if (options) {\n this.bind(options)\n }\n global.PROCESSOR_STATE.solanaProcessors.push(this)\n }\n\n bind(options: SolanaBindOptions) {\n this.address = options.address\n this.contractName = options.name || ''\n this.processInnerInstruction = options.processInnerInstruction || false\n if (options.startBlock) {\n this.startSlot(options.startBlock)\n }\n if (options.endBlock) {\n this.endBlock(options.endBlock)\n }\n this.endpoint = options.network || 'https://api.mainnet-beta.solana.com'\n }\n\n innerInstruction(flag: boolean) {\n this.processInnerInstruction = flag\n return this\n }\n\n public onInstruction(instructionName: string, handler: (instruction: Instruction, ctx: SolanaContext) => void) {\n if (!this.isBind()) {\n throw new Error(\"Processor doesn't bind to an address\")\n }\n\n this.instructionHanlderMap.set(instructionName, handler)\n\n return this\n }\n\n public handleInstruction(ins: string | { type: string; info: any }, slot: Long): ProcessResult | null {\n const ctx = new SolanaContext(this.address, slot)\n let parsedInstruction: Instruction | null = null\n\n if (ins) {\n if ((ins as { type: string; info: any }).info) {\n if (this.fromParsedInstruction == null) {\n return null\n }\n parsedInstruction = this.fromParsedInstruction(ins as { type: string; info: any })\n } else {\n if (this.decodeInstruction == null) {\n return null\n }\n parsedInstruction = this.decodeInstruction(ins as string)\n }\n if (parsedInstruction) {\n const handler = this.instructionHanlderMap.get(parsedInstruction.name)\n if (handler) {\n handler(parsedInstruction, ctx)\n }\n }\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.startSlot = 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.endSlot = endBlock\n return this\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SuiBindOptions } from './bind-options';
|
|
2
2
|
import { SuiContext } 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 SuiBaseProcessor {
|
|
|
13
13
|
constructor(options: SuiBindOptions);
|
|
14
14
|
bind(options: SuiBindOptions): void;
|
|
15
15
|
onTransaction(handler: (transaction: any, ctx: SuiContext) => 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 SuiBaseProcessor {
|
|
|
32
32
|
this.transactionHanlder = handler;
|
|
33
33
|
return this;
|
|
34
34
|
}
|
|
35
|
-
handleTransaction(txn) {
|
|
36
|
-
const ctx = new context_1.SuiContext(this.address);
|
|
35
|
+
handleTransaction(txn, slot) {
|
|
36
|
+
const ctx = new context_1.SuiContext(this.address, slot);
|
|
37
37
|
if (txn) {
|
|
38
38
|
this.transactionHanlder(txn, ctx);
|
|
39
39
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sui-processor.js","sourceRoot":"","sources":["../../src/core/sui-processor.ts"],"names":[],"mappings":";;;;;;AACA,uCAAsC;AAEtC,gDAAuB;AAOvB,MAAa,gBAAgB;IACpB,kBAAkB,CAA6C;IACtE,OAAO,CAAQ;IACf,MAAM,GAAmB,EAAE,cAAc,EAAE,IAAI,cAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAExD,YAAY,OAAuB;QACjC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACnB;QACD,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,CAAC,OAAuB;QAC1B,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,OAAoD;QACvE,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,oBAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAE9C,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,4CAgEC","sourcesContent":["import { SuiBindOptions } from './bind-options'\nimport { SuiContext } from './context'\nimport { ProcessResult } from '..'\nimport Long from 'long'\n\ntype IndexConfigure = {\n startSeqNumber: Long\n endSeqNumber?: Long\n}\n\nexport class SuiBaseProcessor {\n public transactionHanlder: (transaction: any, ctx: SuiContext) => void\n address: string\n config: IndexConfigure = { startSeqNumber: new Long(0) }\n\n constructor(options: SuiBindOptions) {\n if (options) {\n this.bind(options)\n }\n global.PROCESSOR_STATE.suiProcessors.push(this)\n }\n\n bind(options: SuiBindOptions) {\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: SuiContext) => 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 SuiContext(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"]}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/core/trace.ts"],"names":[],"mappings":";;AA6CA,yBAAyB;AACzB,cAAc;AACd,0DAA0D;AAC1D,wBAAwB;AACxB,oBAAoB;AACpB,aAAa;AACb,sZAAsZ;AACtZ,wDAAwD;AACxD,gCAAgC;AAChC,OAAO;AACP,qFAAqF;AACrF,2BAA2B;AAC3B,gDAAgD;AAChD,kBAAkB;AAClB,sBAAsB;AACtB,2FAA2F;AAC3F,6BAA6B;AAC7B,kBAAkB;AAClB,IAAI;AAEJ,uBAAuB;AACvB,QAAQ;AACR,oBAAoB;AACpB,gEAAgE;AAChE,2BAA2B;AAC3B,0qLAA0qL;AAC1qL,uBAAuB;AACvB,WAAW;AACX,2FAA2F;AAC3F,gCAAgC;AAChC,oBAAoB;AACpB,mEAAmE;AACnE,4yIAA4yI;AAC5yI,6BAA6B;AAC7B,WAAW;AACX,wBAAwB;AACxB,4BAA4B;AAC5B,iGAAiG;AACjG,mCAAmC;AACnC,yBAAyB;AACzB,QAAQ","sourcesContent":["// https://github.com/openethereum/parity-ethereum/blob/55c90d4016505317034e3e98f699af07f5404b63/rpc/src/v1/types/trace.rs#L482\nimport { Result } from '@ethersproject/abi'\n\nexport interface TypedCallTrace<TArgsArray extends Array<any> = any, TArgsObject = any> extends Trace {\n args: TArgsArray & TArgsObject\n}\n\nexport interface Trace {\n args?: Result\n\n action: TraceAction\n blockHash: string\n blockNumber: number\n result: TraceResult\n subtraces: number\n traceAddress: number[]\n transactionHash: string\n transactionPosition: number\n type: string\n error?: string\n}\n// export type CallType = \"call\" | \"callcode\" | \"delegatecall\" | \"staticcall\"\n\nexport interface TraceAction {\n from: string\n to?: string\n value: number\n gas: number\n input?: string\n callType?: string\n\n init?: string\n address?: string\n balance?: string\n refundAddress?: string\n}\n\n// TODO are more field missing for FailedCall, FailedCreate\nexport interface TraceResult {\n gasUsed: number\n output?: string\n address?: string\n code?: string\n}\n\n// const TRACE: Trace = {\n// action: {\n// from: '0xd771111cbfa2bbdafbf9f0e58b49b3f827da31f5',\n// callType: 'call',\n// gas: 0x12154,\n// input:\n// '0xb1a417f4000000000000000000000000d771111cbfa2bbdafbf9f0e58b49b3f827da31f5000000000000000000000000d771111cbfa2bbdafbf9f0e58b49b3f827da31f500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000131888b5aaf000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000',\n// to: '0x0baba1ad5be3a5c0a66e7ac838a129bf948f1ea4',\n// value: 0x131888b5aaf0000,\n// },\n// blockHash: '0x5451711bc530a7c04128fedbe149eb359c10eccd44a83909d448c5244c7eea26',\n// blockNumber: 15533908,\n// result: { gasUsed: 0x114c1, output: '0x' },\n// subtraces: 1,\n// traceAddress: [],\n// transactionHash: '0x66dce11d6217042ed709a38e507e7762c93b1bde4a0447ae7a243493bbdffc0e',\n// transactionPosition: 73,\n// type: 'call',\n// }\n\n// const trac2: Trace =\n// {\n// \"action\": {\n// \"from\": \"0x95ba4cf87d6723ad9c0db21737d862be80e93911\",\n// \"gas\": 0x630d0b,\n// \"init\": \"0x608060405234801561001057600080fd5b50604051602080610b2983398101806040528101908080519060200190929190505050808060405180807f6f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e74617481526020017f696f6e000000000000000000000000000000000000000000000000000000000081525060230190506040518091039020600019167f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3600102600019161415156100c657fe5b6100de81610169640100000000026401000000009004565b5060405180807f6f72672e7a657070656c696e6f732e70726f78792e61646d696e000000000000815250601a0190506040518091039020600019167f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001026000191614151561014a57fe5b6101623361024e640100000000026401000000009004565b5050610290565b60006101878261027d6401000000000261084b176401000000009004565b1515610221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b600080823b905060008111915050919050565b61088a8061029f6000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610360565b005b3480156101ae57600080fd5b506101b761051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610576565b61021161020c610651565b610682565b565b61021b6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d9565b610265565b6102646101f9565b5b50565b6102706106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fa576102ac836106d9565b3073ffffffffffffffffffffffffffffffffffffffff163483836040518083838082843782019150509250505060006040518083038185875af19250505015156102f557600080fd5b610303565b6103026101f9565b5b505050565b60006103126106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103545761034d610651565b905061035d565b61035c6101f9565b5b90565b6103686106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561051257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610466576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048f6106a8565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050d81610748565b61051b565b61051a6101f9565b5b50565b60006105286106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561056a576105636106a8565b9050610573565b6105726101f9565b5b90565b61057e6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610647576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064f610777565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a3573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106e281610779565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b60006107848261084b565b151561081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820a4a547cfc7202c5acaaae74d428e988bc62ad5024eb0165532d3a8f91db4ed2400290000000000000000000000000882477e7895bdc5cea7cb1552ed914ab157fe56\",\n// \"value\": 0x0\n// },\n// \"blockHash\": \"0xb2f6986457f5a24ff088a0beb5567c8c1fe2da02687c78e743507ee7c982b977\",\n// \"blockNumber\": 6082465,\n// \"result\": {\n// \"address\": \"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48\",\n// \"code\": \"0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610360565b005b3480156101ae57600080fd5b506101b761051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610576565b61021161020c610651565b610682565b565b61021b6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d9565b610265565b6102646101f9565b5b50565b6102706106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fa576102ac836106d9565b3073ffffffffffffffffffffffffffffffffffffffff163483836040518083838082843782019150509250505060006040518083038185875af19250505015156102f557600080fd5b610303565b6103026101f9565b5b505050565b60006103126106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103545761034d610651565b905061035d565b61035c6101f9565b5b90565b6103686106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561051257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610466576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048f6106a8565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050d81610748565b61051b565b61051a6101f9565b5b50565b60006105286106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561056a576105636106a8565b9050610573565b6105726101f9565b5b90565b61057e6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610647576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064f610777565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a3573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106e281610779565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b60006107848261084b565b151561081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820a4a547cfc7202c5acaaae74d428e988bc62ad5024eb0165532d3a8f91db4ed240029\",\n// \"gasUsed\": 0x74f42\n// },\n// \"subtraces\": 0,\n// \"traceAddress\": [],\n// \"transactionHash\": \"0xe7e0fe390354509cd08c9a0168536938600ddc552b3f7cb96030ebef62e75895\",\n// \"transactionPosition\": 22,\n// \"type\": \"create\"\n// }\n"]}
|
package/lib/error.d.ts
CHANGED
package/lib/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;AAEA,mCAA+B;AAE/B,MAAa,WAAY,SAAQ,KAAK;IACpC,CAAC,CAAO;IAER,YAAY,OAAe,EAAE,CAAQ;QACnC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;IACtB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;IACrD,CAAC;CACF;AAXD,kCAWC;AAED,SAAgB,mBAAmB,CAAC,CAAQ,EAAE,GAAkC;IAC9E,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,mCAAmC;IACnC,IAAI,CAAC,CAAC,IAAI,KAAK,eAAM,CAAC,cAAc,EAAE;QACpC,mCAAmC;QACnC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE;YACnB,IAAI,GAAG,EAAE;gBACP,GAAG;oBACD,sEAAsE;wBACtE,GAAG,CAAC,OAAO;wBACX,IAAI;wBACJ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;aACpB;iBAAM;gBACL,GAAG,GAAG,8DAA8D,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;aACzF;SACF;QACD,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;KAC/B;IAED,IAAI,CAAC,YAAY,WAAW,EAAE;QAC5B,OAAO,CAAC,CAAA;KACT;IAED,qCAAqC;IAErC,GAAG,GAAG,qBAAqB,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;IACpE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC;AA3BD,kDA2BC","sourcesContent":["// Transform error in more readable format\nimport { Context } from './context'\nimport { errors } from 'ethers'\n\nexport class EthersError extends Error {\n e: Error\n\n constructor(message: string, e: Error) {\n super(message)\n this.stack = e.stack\n }\n\n toString() {\n return this.message + '\\n' + this.stack?.toString()\n }\n}\n\nexport function transformEtherError(e: Error, ctx: Context<any, any> | undefined): Error {\n let msg = ''\n // @ts-ignore expected error fields\n if (e.code === errors.CALL_EXCEPTION) {\n // @ts-ignore expected error fields\n if (e.data === '0x') {\n if (ctx) {\n msg =\n \"jsonrpc eth_call return '0x' (likely contract not existed) at chain \" +\n ctx.chainId +\n ': ' +\n JSON.stringify(e)\n } else {\n msg = \"jsonrpc eth_call return '0x' (likely contract not existed): \" + JSON.stringify(e)\n }\n }\n return new EthersError(msg, e)\n }\n\n if (e instanceof EthersError) {\n return e\n }\n\n // TODO gracefully handle more errors\n\n msg = 'ethers call error\\n' + e.message + '\\n' + e.stack?.toString()\n return new Error(msg)\n}\n"]}
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;AAEA,mCAA+B;AAE/B,MAAa,WAAY,SAAQ,KAAK;IACpC,CAAC,CAAO;IAER,YAAY,OAAe,EAAE,CAAQ;QACnC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;IACtB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;IACrD,CAAC;CACF;AAXD,kCAWC;AAED,SAAgB,mBAAmB,CAAC,CAAQ,EAAE,GAAkC;IAC9E,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,mCAAmC;IACnC,IAAI,CAAC,CAAC,IAAI,KAAK,eAAM,CAAC,cAAc,EAAE;QACpC,mCAAmC;QACnC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE;YACnB,IAAI,GAAG,EAAE;gBACP,GAAG;oBACD,sEAAsE;wBACtE,GAAG,CAAC,OAAO;wBACX,IAAI;wBACJ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;aACpB;iBAAM;gBACL,GAAG,GAAG,8DAA8D,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;aACzF;SACF;QACD,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;KAC/B;IAED,IAAI,CAAC,YAAY,WAAW,EAAE;QAC5B,OAAO,CAAC,CAAA;KACT;IAED,qCAAqC;IAErC,GAAG,GAAG,qBAAqB,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;IACpE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC;AA3BD,kDA2BC","sourcesContent":["// Transform error in more readable format\nimport { Context } from './core/context'\nimport { errors } from 'ethers'\n\nexport class EthersError extends Error {\n e: Error\n\n constructor(message: string, e: Error) {\n super(message)\n this.stack = e.stack\n }\n\n toString() {\n return this.message + '\\n' + this.stack?.toString()\n }\n}\n\nexport function transformEtherError(e: Error, ctx: Context<any, any> | undefined): Error {\n let msg = ''\n // @ts-ignore expected error fields\n if (e.code === errors.CALL_EXCEPTION) {\n // @ts-ignore expected error fields\n if (e.data === '0x') {\n if (ctx) {\n msg =\n \"jsonrpc eth_call return '0x' (likely contract not existed) at chain \" +\n ctx.chainId +\n ': ' +\n JSON.stringify(e)\n } else {\n msg = \"jsonrpc eth_call return '0x' (likely contract not existed): \" + JSON.stringify(e)\n }\n }\n return new EthersError(msg, e)\n }\n\n if (e instanceof EthersError) {\n return e\n }\n\n // TODO gracefully handle more errors\n\n msg = 'ethers call error\\n' + e.message + '\\n' + e.stack?.toString()\n return new Error(msg)\n}\n"]}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,20 +1,9 @@
|
|
|
1
|
-
export { BaseProcessor } from './base-processor';
|
|
2
|
-
export { GenericProcessor } from './generic-processor';
|
|
3
|
-
export { BaseProcessorTemplate } from './base-processor-template';
|
|
4
|
-
export { Context, ContractView, BoundContractView, SolanaContext } from './context';
|
|
5
1
|
export { ProcessorServiceImpl } from './service';
|
|
6
|
-
export { CounterBinding, Meter, GaugeBinding, Counter, Gauge, MetricDescriptorOption } from './meter';
|
|
7
2
|
export { getProvider, setProvider, DummyProvider } from './provider';
|
|
8
|
-
export { SolanaBaseProcessor } from './solana-processor';
|
|
9
|
-
export { SuiBaseProcessor } from './sui-processor';
|
|
10
|
-
export { AptosBaseProcessor } from './aptos-processor';
|
|
11
3
|
export { ContractNamer } from './contract-namer';
|
|
12
|
-
export { BindOptions, SolanaBindOptions, SuiBindOptions, AptosBindOptions } from './bind-options';
|
|
13
4
|
export { transformEtherError } from './error';
|
|
14
5
|
export { ProcessorState } from './processor-state';
|
|
15
|
-
export { BigNumber as BigDecimal } from 'bignumber.js';
|
|
16
6
|
export { EthersError } from './error';
|
|
17
|
-
export type { TypedCallTrace } from './trace';
|
|
18
7
|
export { getProcessor, addProcessor, getContractByABI, addContractByABI, getContractName } from './binds';
|
|
19
8
|
export * from './gen/processor/protos/processor';
|
|
20
|
-
export
|
|
9
|
+
export * from './core';
|
package/lib/index.js
CHANGED
|
@@ -14,50 +14,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
var base_processor_1 = require("./base-processor");
|
|
19
|
-
Object.defineProperty(exports, "BaseProcessor", { enumerable: true, get: function () { return base_processor_1.BaseProcessor; } });
|
|
20
|
-
var generic_processor_1 = require("./generic-processor");
|
|
21
|
-
Object.defineProperty(exports, "GenericProcessor", { enumerable: true, get: function () { return generic_processor_1.GenericProcessor; } });
|
|
22
|
-
var base_processor_template_1 = require("./base-processor-template");
|
|
23
|
-
Object.defineProperty(exports, "BaseProcessorTemplate", { enumerable: true, get: function () { return base_processor_template_1.BaseProcessorTemplate; } });
|
|
24
|
-
var context_1 = require("./context");
|
|
25
|
-
Object.defineProperty(exports, "Context", { enumerable: true, get: function () { return context_1.Context; } });
|
|
26
|
-
Object.defineProperty(exports, "ContractView", { enumerable: true, get: function () { return context_1.ContractView; } });
|
|
27
|
-
Object.defineProperty(exports, "BoundContractView", { enumerable: true, get: function () { return context_1.BoundContractView; } });
|
|
28
|
-
Object.defineProperty(exports, "SolanaContext", { enumerable: true, get: function () { return context_1.SolanaContext; } });
|
|
17
|
+
exports.getContractName = exports.addContractByABI = exports.getContractByABI = exports.addProcessor = exports.getProcessor = exports.EthersError = exports.ProcessorState = exports.transformEtherError = exports.ContractNamer = exports.DummyProvider = exports.setProvider = exports.getProvider = exports.ProcessorServiceImpl = void 0;
|
|
29
18
|
var service_1 = require("./service");
|
|
30
19
|
Object.defineProperty(exports, "ProcessorServiceImpl", { enumerable: true, get: function () { return service_1.ProcessorServiceImpl; } });
|
|
31
|
-
var meter_1 = require("./meter");
|
|
32
|
-
Object.defineProperty(exports, "CounterBinding", { enumerable: true, get: function () { return meter_1.CounterBinding; } });
|
|
33
|
-
Object.defineProperty(exports, "Meter", { enumerable: true, get: function () { return meter_1.Meter; } });
|
|
34
|
-
Object.defineProperty(exports, "GaugeBinding", { enumerable: true, get: function () { return meter_1.GaugeBinding; } });
|
|
35
|
-
Object.defineProperty(exports, "Counter", { enumerable: true, get: function () { return meter_1.Counter; } });
|
|
36
|
-
Object.defineProperty(exports, "Gauge", { enumerable: true, get: function () { return meter_1.Gauge; } });
|
|
37
|
-
Object.defineProperty(exports, "MetricDescriptorOption", { enumerable: true, get: function () { return meter_1.MetricDescriptorOption; } });
|
|
38
20
|
var provider_1 = require("./provider");
|
|
39
21
|
Object.defineProperty(exports, "getProvider", { enumerable: true, get: function () { return provider_1.getProvider; } });
|
|
40
22
|
Object.defineProperty(exports, "setProvider", { enumerable: true, get: function () { return provider_1.setProvider; } });
|
|
41
23
|
Object.defineProperty(exports, "DummyProvider", { enumerable: true, get: function () { return provider_1.DummyProvider; } });
|
|
42
|
-
var solana_processor_1 = require("./solana-processor");
|
|
43
|
-
Object.defineProperty(exports, "SolanaBaseProcessor", { enumerable: true, get: function () { return solana_processor_1.SolanaBaseProcessor; } });
|
|
44
|
-
var sui_processor_1 = require("./sui-processor");
|
|
45
|
-
Object.defineProperty(exports, "SuiBaseProcessor", { enumerable: true, get: function () { return sui_processor_1.SuiBaseProcessor; } });
|
|
46
|
-
var aptos_processor_1 = require("./aptos-processor");
|
|
47
|
-
Object.defineProperty(exports, "AptosBaseProcessor", { enumerable: true, get: function () { return aptos_processor_1.AptosBaseProcessor; } });
|
|
48
24
|
var contract_namer_1 = require("./contract-namer");
|
|
49
25
|
Object.defineProperty(exports, "ContractNamer", { enumerable: true, get: function () { return contract_namer_1.ContractNamer; } });
|
|
50
|
-
var bind_options_1 = require("./bind-options");
|
|
51
|
-
Object.defineProperty(exports, "BindOptions", { enumerable: true, get: function () { return bind_options_1.BindOptions; } });
|
|
52
|
-
Object.defineProperty(exports, "SolanaBindOptions", { enumerable: true, get: function () { return bind_options_1.SolanaBindOptions; } });
|
|
53
|
-
Object.defineProperty(exports, "SuiBindOptions", { enumerable: true, get: function () { return bind_options_1.SuiBindOptions; } });
|
|
54
|
-
Object.defineProperty(exports, "AptosBindOptions", { enumerable: true, get: function () { return bind_options_1.AptosBindOptions; } });
|
|
55
26
|
var error_1 = require("./error");
|
|
56
27
|
Object.defineProperty(exports, "transformEtherError", { enumerable: true, get: function () { return error_1.transformEtherError; } });
|
|
57
28
|
var processor_state_1 = require("./processor-state");
|
|
58
29
|
Object.defineProperty(exports, "ProcessorState", { enumerable: true, get: function () { return processor_state_1.ProcessorState; } });
|
|
59
|
-
var bignumber_js_1 = require("bignumber.js");
|
|
60
|
-
Object.defineProperty(exports, "BigDecimal", { enumerable: true, get: function () { return bignumber_js_1.BigNumber; } });
|
|
61
30
|
var error_2 = require("./error");
|
|
62
31
|
Object.defineProperty(exports, "EthersError", { enumerable: true, get: function () { return error_2.EthersError; } });
|
|
63
32
|
var binds_1 = require("./binds");
|
|
@@ -67,6 +36,5 @@ Object.defineProperty(exports, "getContractByABI", { enumerable: true, get: func
|
|
|
67
36
|
Object.defineProperty(exports, "addContractByABI", { enumerable: true, get: function () { return binds_1.addContractByABI; } });
|
|
68
37
|
Object.defineProperty(exports, "getContractName", { enumerable: true, get: function () { return binds_1.getContractName; } });
|
|
69
38
|
__exportStar(require("./gen/processor/protos/processor"), exports);
|
|
70
|
-
|
|
71
|
-
Object.defineProperty(exports, "SPLTokenProcessor", { enumerable: true, get: function () { return builtin_1.SPLTokenProcessor; } });
|
|
39
|
+
__exportStar(require("./core"), exports);
|
|
72
40
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qCAAgD;AAAvC,+GAAA,oBAAoB,OAAA;AAC7B,uCAAoE;AAA3D,uGAAA,WAAW,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,yGAAA,aAAa,OAAA;AAChD,mDAAgD;AAAvC,+GAAA,aAAa,OAAA;AACtB,iCAA6C;AAApC,4GAAA,mBAAmB,OAAA;AAC5B,qDAAkD;AAAzC,iHAAA,cAAc,OAAA;AACvB,iCAAqC;AAA5B,oGAAA,WAAW,OAAA;AAEpB,iCAAyG;AAAhG,qGAAA,YAAY,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAAE,wGAAA,eAAe,OAAA;AAExF,mEAAgD;AAChD,yCAAsB","sourcesContent":["export { ProcessorServiceImpl } from './service'\nexport { getProvider, setProvider, DummyProvider } from './provider'\nexport { ContractNamer } from './contract-namer'\nexport { transformEtherError } from './error'\nexport { ProcessorState } from './processor-state'\nexport { EthersError } from './error'\n\nexport { getProcessor, addProcessor, getContractByABI, addContractByABI, getContractName } from './binds'\n\nexport * from './gen/processor/protos/processor'\nexport * from './core'\n"]}
|
package/lib/processor-state.d.ts
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import { BaseProcessor } from './
|
|
1
|
+
import { BaseProcessor, BoundContractView, ContractView, BaseProcessorTemplate, SolanaBaseProcessor, SuiBaseProcessor, AptosBaseProcessor } from './core';
|
|
2
2
|
import { BaseContract } from 'ethers';
|
|
3
|
-
import { BoundContractView, ContractView } from './context';
|
|
4
|
-
import { BaseProcessorTemplate } from './base-processor-template';
|
|
5
3
|
import { TemplateInstance } from './gen/processor/protos/processor';
|
|
6
4
|
import { Provider } from '@ethersproject/providers';
|
|
7
|
-
import { SolanaBaseProcessor } from './solana-processor';
|
|
8
|
-
import { SuiBaseProcessor } from './sui-processor';
|
|
9
|
-
import { AptosBaseProcessor } from './aptos-processor';
|
|
10
5
|
export declare class ProcessorState {
|
|
11
6
|
contracts: Map<string, ContractView<BaseContract>>;
|
|
12
7
|
processors: BaseProcessor<BaseContract, BoundContractView<BaseContract, any>>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor-state.js","sourceRoot":"","sources":["../src/processor-state.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"processor-state.js","sourceRoot":"","sources":["../src/processor-state.ts"],"names":[],"mappings":";;;AAaA,MAAa,cAAc;IACzB,mDAAmD;IACnD,SAAS,GAAG,IAAI,GAAG,EAAsC,CAAA;IACzD,qBAAqB;IACrB,UAAU,GAAwE,EAAE,CAAA;IACpF,oCAAoC;IACpC,YAAY,GAAG,IAAI,GAAG,EAAmC,CAAA;IACzD,gBAAgB;IAChB,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAA;IACvC,0BAA0B;IAC1B,SAAS,GAAgF,EAAE,CAAA;IAC3F,wCAAwC;IACxC,kBAAkB,GAAuB,EAAE,CAAA;IAE3C,gBAAgB,GAA0B,EAAE,CAAA;IAE5C,aAAa,GAAuB,EAAE,CAAA;IAEtC,eAAe,GAAyB,EAAE,CAAA;CAC3C;AAnBD,wCAmBC","sourcesContent":["import {\n BaseProcessor,\n BoundContractView,\n ContractView,\n BaseProcessorTemplate,\n SolanaBaseProcessor,\n SuiBaseProcessor,\n AptosBaseProcessor,\n} from './core'\nimport { BaseContract } from 'ethers'\nimport { TemplateInstance } from './gen/processor/protos/processor'\nimport { Provider } from '@ethersproject/providers'\n\nexport class ProcessorState {\n // from abiName_address_chainId => contract wrapper\n contracts = new Map<string, ContractView<BaseContract>>()\n // all evm processors\n processors: BaseProcessor<BaseContract, BoundContractView<BaseContract, any>>[] = []\n // from abiName_options to contracts\n processorMap = new Map<string, BaseProcessor<any, any>>()\n // evm providers\n providers = new Map<number, Provider>()\n // evm processor templates\n templates: BaseProcessorTemplate<BaseContract, BoundContractView<BaseContract, any>>[] = []\n // evm processor template instances spec\n templatesInstances: TemplateInstance[] = []\n\n solanaProcessors: SolanaBaseProcessor[] = []\n\n suiProcessors: SuiBaseProcessor[] = []\n\n aptosProcessors: AptosBaseProcessor[] = []\n}\n"]}
|
package/lib/service.js
CHANGED
|
@@ -5,10 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ProcessorServiceImpl = void 0;
|
|
7
7
|
const nice_grpc_1 = require("nice-grpc");
|
|
8
|
+
const chain_1 = require("./utils/chain");
|
|
8
9
|
const processor_1 = require("./gen/processor/protos/processor");
|
|
9
10
|
const long_1 = __importDefault(require("long"));
|
|
10
11
|
const util_1 = require("util");
|
|
11
12
|
const DEFAULT_MAX_BLOCK = long_1.default.ZERO;
|
|
13
|
+
const USER_PROCESSOR = 'user_processor';
|
|
12
14
|
class ProcessorServiceImpl {
|
|
13
15
|
eventHandlers = [];
|
|
14
16
|
traceHandlers = [];
|
|
@@ -49,7 +51,7 @@ class ProcessorServiceImpl {
|
|
|
49
51
|
const chainId = processor.getChainId();
|
|
50
52
|
// this.processorsByChainId.set(chainId, processor)
|
|
51
53
|
const contractConfig = {
|
|
52
|
-
processorType:
|
|
54
|
+
processorType: USER_PROCESSOR,
|
|
53
55
|
contract: {
|
|
54
56
|
name: processor.config.name,
|
|
55
57
|
chainId: chainId.toString(),
|
|
@@ -116,10 +118,10 @@ class ProcessorServiceImpl {
|
|
|
116
118
|
// Part 2, prepare solana constractors
|
|
117
119
|
for (const solanaProcessor of global.PROCESSOR_STATE.solanaProcessors) {
|
|
118
120
|
const contractConfig = {
|
|
119
|
-
processorType:
|
|
121
|
+
processorType: USER_PROCESSOR,
|
|
120
122
|
contract: {
|
|
121
123
|
name: solanaProcessor.contractName,
|
|
122
|
-
chainId:
|
|
124
|
+
chainId: chain_1.SOL_MAINMET_ID,
|
|
123
125
|
address: solanaProcessor.address,
|
|
124
126
|
abi: '',
|
|
125
127
|
},
|
|
@@ -139,10 +141,10 @@ class ProcessorServiceImpl {
|
|
|
139
141
|
// Part 3, prepare sui constractors
|
|
140
142
|
for (const suiProcessor of global.PROCESSOR_STATE.suiProcessors) {
|
|
141
143
|
const contractConfig = {
|
|
142
|
-
processorType:
|
|
144
|
+
processorType: USER_PROCESSOR,
|
|
143
145
|
contract: {
|
|
144
|
-
name: 'sui
|
|
145
|
-
chainId:
|
|
146
|
+
name: 'sui contract',
|
|
147
|
+
chainId: chain_1.SUI_DEVNET_ID,
|
|
146
148
|
address: suiProcessor.address,
|
|
147
149
|
abi: '',
|
|
148
150
|
},
|
|
@@ -158,10 +160,10 @@ class ProcessorServiceImpl {
|
|
|
158
160
|
// Part 3, prepare aptos constractors
|
|
159
161
|
for (const aptosProcessor of global.PROCESSOR_STATE.aptosProcessors) {
|
|
160
162
|
const contractConfig = {
|
|
161
|
-
processorType:
|
|
163
|
+
processorType: USER_PROCESSOR,
|
|
162
164
|
contract: {
|
|
163
|
-
name:
|
|
164
|
-
chainId:
|
|
165
|
+
name: aptosProcessor.name,
|
|
166
|
+
chainId: chain_1.APTOS_TESTNET_ID,
|
|
165
167
|
address: aptosProcessor.address,
|
|
166
168
|
abi: '',
|
|
167
169
|
},
|
|
@@ -277,20 +279,10 @@ class ProcessorServiceImpl {
|
|
|
277
279
|
for (const txn of request.transactions) {
|
|
278
280
|
processorPromises.push(new Promise((resolve, _) => {
|
|
279
281
|
for (const processor of global.PROCESSOR_STATE.suiProcessors) {
|
|
280
|
-
const res = processor.handleTransaction(JSON.parse(new util_1.TextDecoder().decode(txn.raw)));
|
|
282
|
+
const res = processor.handleTransaction(JSON.parse(new util_1.TextDecoder().decode(txn.raw)), txn.slot ?? long_1.default.fromNumber(0));
|
|
281
283
|
if (res) {
|
|
282
|
-
res.gauges.forEach((g) =>
|
|
283
|
-
|
|
284
|
-
g.metadata.blockNumber = txn.slot;
|
|
285
|
-
}
|
|
286
|
-
result.gauges.push(g);
|
|
287
|
-
});
|
|
288
|
-
res.counters.forEach((c) => {
|
|
289
|
-
if (c.metadata && txn.slot) {
|
|
290
|
-
c.metadata.blockNumber = txn.slot;
|
|
291
|
-
}
|
|
292
|
-
result.counters.push(c);
|
|
293
|
-
});
|
|
284
|
+
res.gauges.forEach((g) => result.gauges.push(g));
|
|
285
|
+
res.counters.forEach((c) => result.counters.push(c));
|
|
294
286
|
}
|
|
295
287
|
}
|
|
296
288
|
resolve();
|
|
@@ -304,20 +296,10 @@ class ProcessorServiceImpl {
|
|
|
304
296
|
processorPromises.push(new Promise((resolve, _) => {
|
|
305
297
|
for (const processor of global.PROCESSOR_STATE.aptosProcessors) {
|
|
306
298
|
if (processor.address === txn.programAccountId) {
|
|
307
|
-
const res = processor.handleTransaction(JSON.parse(new util_1.TextDecoder().decode(txn.raw)));
|
|
299
|
+
const res = processor.handleTransaction(JSON.parse(new util_1.TextDecoder().decode(txn.raw)), txn.slot ?? long_1.default.fromNumber(0));
|
|
308
300
|
if (res) {
|
|
309
|
-
res.gauges.forEach((g) =>
|
|
310
|
-
|
|
311
|
-
g.metadata.blockNumber = txn.slot;
|
|
312
|
-
}
|
|
313
|
-
result.gauges.push(g);
|
|
314
|
-
});
|
|
315
|
-
res.counters.forEach((c) => {
|
|
316
|
-
if (c.metadata && txn.slot) {
|
|
317
|
-
c.metadata.blockNumber = txn.slot;
|
|
318
|
-
}
|
|
319
|
-
result.counters.push(c);
|
|
320
|
-
});
|
|
301
|
+
res.gauges.forEach((g) => result.gauges.push(g));
|
|
302
|
+
res.counters.forEach((c) => result.counters.push(c));
|
|
321
303
|
}
|
|
322
304
|
}
|
|
323
305
|
}
|
|
@@ -352,32 +334,17 @@ class ProcessorServiceImpl {
|
|
|
352
334
|
if (processor.address === instruction.programAccountId) {
|
|
353
335
|
let res;
|
|
354
336
|
if (instruction.parsed) {
|
|
355
|
-
res = processor.handleInstruction(JSON.parse(new util_1.TextDecoder().decode(instruction.parsed)));
|
|
337
|
+
res = processor.handleInstruction(JSON.parse(new util_1.TextDecoder().decode(instruction.parsed)), instruction.slot);
|
|
356
338
|
}
|
|
357
339
|
else if (instruction.instructionData) {
|
|
358
|
-
res = processor.handleInstruction(instruction.instructionData);
|
|
340
|
+
res = processor.handleInstruction(instruction.instructionData, instruction.slot);
|
|
359
341
|
}
|
|
360
342
|
else {
|
|
361
343
|
continue;
|
|
362
344
|
}
|
|
363
345
|
if (res) {
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
if (g.metadata) {
|
|
367
|
-
g.metadata.blockNumber = instruction.slot;
|
|
368
|
-
}
|
|
369
|
-
result.gauges.push(g);
|
|
370
|
-
});
|
|
371
|
-
res.counters.forEach((c) => {
|
|
372
|
-
if (c.metadata) {
|
|
373
|
-
c.metadata.blockNumber = instruction.slot;
|
|
374
|
-
}
|
|
375
|
-
result.counters.push(c);
|
|
376
|
-
});
|
|
377
|
-
}
|
|
378
|
-
catch (e) {
|
|
379
|
-
console.error('error processing instruction ' + errorString(e));
|
|
380
|
-
}
|
|
346
|
+
res.gauges.forEach((g) => result.gauges.push(g));
|
|
347
|
+
res.counters.forEach((c) => result.counters.push(c));
|
|
381
348
|
}
|
|
382
349
|
else {
|
|
383
350
|
console.warn(`Failed to decode the instruction: ${instruction.instructionData} with slot: ${instruction.slot}`);
|