@sentio/sdk 2.0.0-rc.1 → 2.0.0-rc.11
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/builtin/eacaggregatorproxy/index.d.ts +3 -2
- package/lib/builtin/eacaggregatorproxy/index.js +3 -5
- package/lib/builtin/eacaggregatorproxy/index.js.map +1 -1
- package/lib/builtin/eacaggregatorproxy/test-utils.d.ts +1 -1
- package/lib/builtin/eacaggregatorproxy/test-utils.js +9 -16
- package/lib/builtin/eacaggregatorproxy/test-utils.js.map +1 -1
- package/lib/builtin/erc1155/index.d.ts +3 -2
- package/lib/builtin/erc1155/index.js +3 -5
- package/lib/builtin/erc1155/index.js.map +1 -1
- package/lib/builtin/erc1155/test-utils.d.ts +1 -1
- package/lib/builtin/erc1155/test-utils.js +9 -16
- package/lib/builtin/erc1155/test-utils.js.map +1 -1
- package/lib/builtin/erc20/index.d.ts +3 -2
- package/lib/builtin/erc20/index.js +3 -5
- package/lib/builtin/erc20/index.js.map +1 -1
- package/lib/builtin/erc20/test-utils.d.ts +1 -1
- package/lib/builtin/erc20/test-utils.js +7 -13
- package/lib/builtin/erc20/test-utils.js.map +1 -1
- package/lib/builtin/erc20bytes/index.d.ts +3 -2
- package/lib/builtin/erc20bytes/index.js +3 -5
- package/lib/builtin/erc20bytes/index.js.map +1 -1
- package/lib/builtin/erc20bytes/test-utils.d.ts +1 -1
- package/lib/builtin/erc20bytes/test-utils.js +5 -10
- package/lib/builtin/erc20bytes/test-utils.js.map +1 -1
- package/lib/builtin/erc721/index.d.ts +3 -2
- package/lib/builtin/erc721/index.js +3 -5
- package/lib/builtin/erc721/index.js.map +1 -1
- package/lib/builtin/erc721/test-utils.d.ts +1 -1
- package/lib/builtin/erc721/test-utils.js +7 -13
- package/lib/builtin/erc721/test-utils.js.map +1 -1
- package/lib/builtin/index.d.ts +8 -4
- package/lib/builtin/index.js +8 -8
- package/lib/builtin/index.js.map +1 -1
- package/lib/builtin/internal/EACAggregatorProxy.d.ts +6 -6
- package/lib/builtin/internal/EACAggregatorProxy.js +1 -2
- package/lib/builtin/internal/EACAggregatorProxy.js.map +1 -1
- package/lib/builtin/internal/ERC1155.d.ts +6 -6
- package/lib/builtin/internal/ERC1155.js +1 -2
- package/lib/builtin/internal/ERC1155.js.map +1 -1
- package/lib/builtin/internal/ERC20.d.ts +5 -5
- package/lib/builtin/internal/ERC20.js +1 -2
- package/lib/builtin/internal/ERC20.js.map +1 -1
- package/lib/builtin/internal/ERC20Bytes.d.ts +4 -4
- package/lib/builtin/internal/ERC20Bytes.js +1 -2
- package/lib/builtin/internal/ERC20Bytes.js.map +1 -1
- package/lib/builtin/internal/ERC721.d.ts +5 -5
- package/lib/builtin/internal/ERC721.js +1 -2
- package/lib/builtin/internal/ERC721.js.map +1 -1
- package/lib/builtin/internal/WETH9.d.ts +6 -6
- package/lib/builtin/internal/WETH9.js +1 -2
- package/lib/builtin/internal/WETH9.js.map +1 -1
- package/lib/builtin/internal/common.d.ts +4 -2
- package/lib/builtin/internal/common.js +1 -2
- package/lib/builtin/internal/common.js.map +1 -1
- package/lib/builtin/internal/eacaggregatorproxy_processor.d.ts +2 -2
- package/lib/builtin/internal/eacaggregatorproxy_processor.js +69 -77
- package/lib/builtin/internal/eacaggregatorproxy_processor.js.map +1 -1
- package/lib/builtin/internal/erc1155_processor.d.ts +2 -2
- package/lib/builtin/internal/erc1155_processor.js +30 -38
- package/lib/builtin/internal/erc1155_processor.js.map +1 -1
- package/lib/builtin/internal/erc20_processor.d.ts +2 -2
- package/lib/builtin/internal/erc20_processor.js +39 -47
- package/lib/builtin/internal/erc20_processor.js.map +1 -1
- package/lib/builtin/internal/erc20bytes_processor.d.ts +2 -2
- package/lib/builtin/internal/erc20bytes_processor.js +33 -41
- package/lib/builtin/internal/erc20bytes_processor.js.map +1 -1
- package/lib/builtin/internal/erc721_processor.d.ts +2 -2
- package/lib/builtin/internal/erc721_processor.js +42 -50
- package/lib/builtin/internal/erc721_processor.js.map +1 -1
- package/lib/builtin/internal/factories/EACAggregatorProxy__factory.d.ts +1 -1
- package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js +4 -8
- package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js.map +1 -1
- package/lib/builtin/internal/factories/ERC1155__factory.d.ts +1 -1
- package/lib/builtin/internal/factories/ERC1155__factory.js +4 -8
- package/lib/builtin/internal/factories/ERC1155__factory.js.map +1 -1
- package/lib/builtin/internal/factories/ERC20Bytes__factory.d.ts +1 -1
- package/lib/builtin/internal/factories/ERC20Bytes__factory.js +4 -8
- package/lib/builtin/internal/factories/ERC20Bytes__factory.js.map +1 -1
- package/lib/builtin/internal/factories/ERC20__factory.d.ts +1 -1
- package/lib/builtin/internal/factories/ERC20__factory.js +4 -8
- package/lib/builtin/internal/factories/ERC20__factory.js.map +1 -1
- package/lib/builtin/internal/factories/ERC721__factory.d.ts +1 -1
- package/lib/builtin/internal/factories/ERC721__factory.js +4 -8
- package/lib/builtin/internal/factories/ERC721__factory.js.map +1 -1
- package/lib/builtin/internal/factories/WETH9__factory.d.ts +1 -1
- package/lib/builtin/internal/factories/WETH9__factory.js +4 -8
- package/lib/builtin/internal/factories/WETH9__factory.js.map +1 -1
- package/lib/builtin/internal/factories/index.d.ts +6 -6
- package/lib/builtin/internal/factories/index.js +6 -15
- package/lib/builtin/internal/factories/index.js.map +1 -1
- package/lib/builtin/internal/index.d.ts +13 -13
- package/lib/builtin/internal/index.js +7 -17
- package/lib/builtin/internal/index.js.map +1 -1
- package/lib/builtin/internal/weth9_processor.d.ts +2 -2
- package/lib/builtin/internal/weth9_processor.js +33 -41
- package/lib/builtin/internal/weth9_processor.js.map +1 -1
- package/lib/builtin/weth9/index.d.ts +3 -2
- package/lib/builtin/weth9/index.js +3 -5
- package/lib/builtin/weth9/index.js.map +1 -1
- package/lib/builtin/weth9/test-utils.d.ts +1 -1
- package/lib/builtin/weth9/test-utils.js +9 -16
- package/lib/builtin/weth9/test-utils.js.map +1 -1
- package/lib/core/base-context.d.ts +4 -4
- package/lib/core/base-context.js +7 -11
- package/lib/core/base-context.js.map +1 -1
- package/lib/core/big-decimal.js +3 -7
- package/lib/core/big-decimal.js.map +1 -1
- package/lib/core/bind-options.js +6 -13
- package/lib/core/bind-options.js.map +1 -1
- package/lib/core/context.d.ts +5 -5
- package/lib/core/context.js +14 -23
- package/lib/core/context.js.map +1 -1
- package/lib/core/core-plugin.js +9 -13
- package/lib/core/core-plugin.js.map +1 -1
- package/lib/core/event-tracker.d.ts +2 -2
- package/lib/core/event-tracker.js +6 -13
- package/lib/core/event-tracker.js.map +1 -1
- package/lib/core/exporter.d.ts +2 -2
- package/lib/core/exporter.js +4 -9
- package/lib/core/exporter.js.map +1 -1
- package/lib/core/index.d.ts +12 -9
- package/lib/core/index.js +12 -32
- package/lib/core/index.js.map +1 -1
- package/lib/core/logger.d.ts +2 -2
- package/lib/core/logger.js +7 -11
- package/lib/core/logger.js.map +1 -1
- package/lib/core/metadata.d.ts +4 -0
- package/lib/core/metadata.js +21 -7
- package/lib/core/metadata.js.map +1 -1
- package/lib/core/meter.d.ts +3 -7
- package/lib/core/meter.js +22 -57
- package/lib/core/meter.js.map +1 -1
- package/lib/core/meter.test.js.map +1 -1
- package/lib/core/numberish.d.ts +1 -1
- package/lib/core/numberish.js +12 -18
- package/lib/core/numberish.js.map +1 -1
- package/lib/core/numberish.test.js.map +1 -1
- package/lib/core/sui-plugin.js +12 -16
- package/lib/core/sui-plugin.js.map +1 -1
- package/lib/core/sui-processor.d.ts +1 -1
- package/lib/core/sui-processor.js +6 -12
- package/lib/core/sui-processor.js.map +1 -1
- package/lib/error.d.ts +1 -1
- package/lib/error.js +2 -7
- package/lib/error.js.map +1 -1
- package/lib/eth/account-processor-state.d.ts +1 -1
- package/lib/eth/account-processor-state.js +2 -6
- package/lib/eth/account-processor-state.js.map +1 -1
- package/lib/eth/account-processor.d.ts +7 -7
- package/lib/eth/account-processor.js +23 -27
- package/lib/eth/account-processor.js.map +1 -1
- package/lib/eth/base-processor-template.d.ts +9 -9
- package/lib/eth/base-processor-template.js +8 -17
- package/lib/eth/base-processor-template.js.map +1 -1
- package/lib/eth/base-processor.d.ts +8 -8
- package/lib/eth/base-processor.js +22 -31
- package/lib/eth/base-processor.js.map +1 -1
- package/lib/eth/binds.d.ts +3 -3
- package/lib/eth/binds.js +11 -19
- package/lib/eth/binds.js.map +1 -1
- package/lib/eth/eth-event.d.ts +5 -0
- package/lib/eth/eth-event.js +2 -0
- package/lib/eth/eth-event.js.map +1 -0
- package/lib/eth/eth-plugin.js +30 -34
- package/lib/eth/eth-plugin.js.map +1 -1
- package/lib/eth/generic-processor.d.ts +3 -3
- package/lib/eth/generic-processor.js +9 -13
- package/lib/eth/generic-processor.js.map +1 -1
- package/lib/{core → eth}/generic-processor.test.d.ts +0 -0
- package/lib/eth/generic-processor.test.js.map +1 -0
- package/lib/eth/index.d.ts +7 -6
- package/lib/eth/index.js +6 -14
- package/lib/eth/index.js.map +1 -1
- package/lib/eth/provider.js +12 -17
- package/lib/eth/provider.js.map +1 -1
- package/lib/eth/trace.js +1 -2
- package/lib/eth/trace.js.map +1 -1
- package/lib/index.d.ts +4 -5
- package/lib/index.js +5 -16
- package/lib/index.js.map +1 -1
- package/lib/promise-or-void.js +1 -2
- package/lib/target-ethers-sentio/{event-handler.js → event-handler.cjs} +4 -4
- package/lib/target-ethers-sentio/event-handler.cjs.map +1 -0
- package/lib/target-ethers-sentio/{event-handler.d.ts → event-handler.d.cts} +0 -0
- package/lib/target-ethers-sentio/{file.js → file.cjs} +19 -18
- package/lib/target-ethers-sentio/file.cjs.map +1 -0
- package/lib/target-ethers-sentio/{file.d.ts → file.d.cts} +0 -0
- package/lib/target-ethers-sentio/{functions-handler.js → functions-handler.cjs} +6 -7
- package/lib/target-ethers-sentio/functions-handler.cjs.map +1 -0
- package/lib/target-ethers-sentio/{functions-handler.d.ts → functions-handler.d.cts} +0 -0
- package/lib/target-ethers-sentio/{index.js → index.cjs} +8 -5
- package/lib/target-ethers-sentio/index.cjs.map +1 -0
- package/lib/target-ethers-sentio/{index.d.ts → index.d.cts} +0 -0
- package/lib/target-ethers-sentio/{types.js → types.cjs} +1 -1
- package/lib/target-ethers-sentio/types.cjs.map +1 -0
- package/lib/target-ethers-sentio/{types.d.ts → types.d.cts} +0 -0
- package/lib/target-ethers-sentio/{view-function.js → view-function.cjs} +5 -5
- package/lib/target-ethers-sentio/view-function.cjs.map +1 -0
- package/lib/target-ethers-sentio/{view-function.d.ts → view-function.d.cts} +0 -0
- package/lib/testing/index.d.ts +3 -2
- package/lib/testing/index.js +3 -10
- package/lib/testing/index.js.map +1 -1
- package/lib/testing/metric-utils.d.ts +1 -1
- package/lib/testing/metric-utils.js +7 -13
- package/lib/testing/metric-utils.js.map +1 -1
- package/lib/testing/test-processor-server.d.ts +3 -4
- package/lib/testing/test-processor-server.js +24 -29
- package/lib/testing/test-processor-server.js.map +1 -1
- package/lib/testing/test-provider.js +5 -9
- package/lib/testing/test-provider.js.map +1 -1
- package/lib/tsup.config.ts +28 -0
- package/lib/utils/chain.js +7 -12
- package/lib/utils/chain.js.map +1 -1
- package/lib/utils/conversion.d.ts +0 -5
- package/lib/utils/conversion.js +22 -27
- package/lib/utils/conversion.js.map +1 -1
- package/lib/utils/dex-price.js +14 -19
- package/lib/utils/dex-price.js.map +1 -1
- package/lib/utils/dex-price.test.js.map +1 -1
- package/lib/utils/erc20.test.js.map +1 -1
- package/lib/utils/index.d.ts +4 -4
- package/lib/utils/index.js +4 -8
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/price.d.ts +11 -11
- package/lib/utils/price.js +10 -16
- package/lib/utils/price.js.map +1 -1
- package/lib/utils/token.d.ts +1 -1
- package/lib/utils/token.js +15 -21
- package/lib/utils/token.js.map +1 -1
- package/package.json +23 -19
- package/src/builtin/eacaggregatorproxy/index.ts +3 -2
- package/src/builtin/eacaggregatorproxy/test-utils.ts +1 -1
- package/src/builtin/erc1155/index.ts +3 -2
- package/src/builtin/erc1155/test-utils.ts +1 -1
- package/src/builtin/erc20/index.ts +3 -2
- package/src/builtin/erc20/test-utils.ts +1 -1
- package/src/builtin/erc20bytes/index.ts +3 -2
- package/src/builtin/erc20bytes/test-utils.ts +1 -1
- package/src/builtin/erc721/index.ts +3 -2
- package/src/builtin/erc721/test-utils.ts +1 -1
- package/src/builtin/index.ts +8 -4
- package/src/builtin/internal/EACAggregatorProxy.ts +6 -10
- package/src/builtin/internal/ERC1155.ts +6 -10
- package/src/builtin/internal/ERC20.ts +5 -8
- package/src/builtin/internal/ERC20Bytes.ts +4 -6
- package/src/builtin/internal/ERC721.ts +5 -8
- package/src/builtin/internal/WETH9.ts +6 -10
- package/src/builtin/internal/common.ts +5 -29
- package/src/builtin/internal/eacaggregatorproxy_processor.ts +2 -2
- package/src/builtin/internal/erc1155_processor.ts +2 -2
- package/src/builtin/internal/erc20_processor.ts +2 -2
- package/src/builtin/internal/erc20bytes_processor.ts +2 -2
- package/src/builtin/internal/erc721_processor.ts +2 -2
- package/src/builtin/internal/factories/EACAggregatorProxy__factory.ts +1 -1
- package/src/builtin/internal/factories/ERC1155__factory.ts +1 -1
- package/src/builtin/internal/factories/ERC20Bytes__factory.ts +1 -1
- package/src/builtin/internal/factories/ERC20__factory.ts +1 -1
- package/src/builtin/internal/factories/ERC721__factory.ts +1 -1
- package/src/builtin/internal/factories/WETH9__factory.ts +1 -1
- package/src/builtin/internal/factories/index.ts +6 -6
- package/src/builtin/internal/index.ts +13 -13
- package/src/builtin/internal/weth9_processor.ts +2 -2
- package/src/builtin/weth9/index.ts +3 -2
- package/src/builtin/weth9/test-utils.ts +1 -1
- package/src/core/base-context.ts +4 -4
- package/src/core/context.ts +5 -6
- package/src/core/core-plugin.ts +3 -3
- package/src/core/event-tracker.ts +2 -2
- package/src/core/exporter.ts +3 -3
- package/src/core/index.ts +12 -9
- package/src/core/logger.ts +2 -2
- package/src/core/metadata.ts +23 -2
- package/src/core/meter.ts +3 -26
- package/src/core/numberish.ts +1 -1
- package/src/core/sui-plugin.ts +2 -2
- package/src/core/sui-processor.ts +1 -1
- package/src/error.ts +1 -1
- package/src/eth/account-processor-state.ts +1 -1
- package/src/eth/account-processor.ts +11 -11
- package/src/eth/base-processor-template.ts +8 -11
- package/src/eth/base-processor.ts +14 -28
- package/src/eth/binds.ts +3 -3
- package/src/eth/eth-event.ts +6 -0
- package/src/eth/eth-plugin.ts +3 -3
- package/src/eth/generic-processor.ts +5 -5
- package/src/eth/index.ts +8 -6
- package/src/index.ts +4 -6
- package/src/target-ethers-sentio/{event-handler.ts → event-handler.cts} +1 -1
- package/src/target-ethers-sentio/{file.ts → file.cts} +10 -9
- package/src/target-ethers-sentio/{functions-handler.ts → functions-handler.cts} +3 -4
- package/src/target-ethers-sentio/{index.ts → index.cts} +4 -1
- package/src/target-ethers-sentio/tsconfig.json +1 -1
- package/src/target-ethers-sentio/{types.ts → types.cts} +0 -0
- package/src/target-ethers-sentio/{view-function.ts → view-function.cts} +1 -1
- package/src/testing/index.ts +3 -3
- package/src/testing/metric-utils.ts +2 -2
- package/src/testing/test-processor-server.ts +5 -5
- package/src/testing/test-provider.ts +1 -1
- package/src/tsup.config.ts +28 -0
- package/src/utils/conversion.ts +21 -25
- package/src/utils/dex-price.ts +4 -5
- package/src/utils/index.ts +4 -4
- package/src/utils/price.ts +1 -1
- package/src/utils/token.ts +6 -6
- package/lib/core/generic-processor.test.js.map +0 -1
- package/lib/target-ethers-sentio/event-handler.js.map +0 -1
- package/lib/target-ethers-sentio/file.js.map +0 -1
- package/lib/target-ethers-sentio/functions-handler.js.map +0 -1
- package/lib/target-ethers-sentio/index.js.map +0 -1
- package/lib/target-ethers-sentio/types.js.map +0 -1
- package/lib/target-ethers-sentio/view-function.js.map +0 -1
- package/lib/webpack.config.js +0 -50
- package/src/webpack.config.js +0 -50
package/lib/testing/index.js
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var test_processor_server_1 = require("./test-processor-server");
|
|
5
|
-
Object.defineProperty(exports, "TestProcessorServer", { enumerable: true, get: function () { return test_processor_server_1.TestProcessorServer; } });
|
|
6
|
-
var metric_utils_1 = require("./metric-utils");
|
|
7
|
-
Object.defineProperty(exports, "MetricValueToNumber", { enumerable: true, get: function () { return metric_utils_1.MetricValueToNumber; } });
|
|
8
|
-
Object.defineProperty(exports, "firstCounterValue", { enumerable: true, get: function () { return metric_utils_1.firstCounterValue; } });
|
|
9
|
-
Object.defineProperty(exports, "firstGaugeValue", { enumerable: true, get: function () { return metric_utils_1.firstGaugeValue; } });
|
|
10
|
-
// export { loadTestProvidersFromEnv } from './test-provider' // TODO make the interface more standard and then export
|
|
1
|
+
export { TestProcessorServer } from './test-processor-server.js';
|
|
2
|
+
export { MetricValueToNumber, firstCounterValue, firstGaugeValue } from './metric-utils.js';
|
|
3
|
+
export { loadTestProvidersFromEnv } from './test-provider.js'; // TODO make the interface more standard and then export
|
|
11
4
|
//# sourceMappingURL=index.js.map
|
package/lib/testing/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA,CAAC,wDAAwD","sourcesContent":["export { TestProcessorServer } from './test-processor-server.js'\nexport { MetricValueToNumber, firstCounterValue, firstGaugeValue } from './metric-utils.js'\n\nexport { loadTestProvidersFromEnv } from './test-provider.js' // TODO make the interface more standard and then export\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MetricValue, ProcessResult } from '@sentio/protos';
|
|
2
|
-
import { Numberish } from '../core';
|
|
2
|
+
import { Numberish } from '../core/index.js';
|
|
3
3
|
export declare function MetricValueToNumber(v: Partial<MetricValue> | undefined): Numberish | undefined;
|
|
4
4
|
export declare function firstCounterValue(result: ProcessResult | undefined, name: string): Numberish | undefined;
|
|
5
5
|
export declare function firstGaugeValue(result: ProcessResult | undefined, name: string): Numberish | undefined;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const core_1 = require("../core");
|
|
5
|
-
const conversion_1 = require("../utils/conversion");
|
|
6
|
-
function MetricValueToNumber(v) {
|
|
1
|
+
import { BigDecimal } from '../core/index.js';
|
|
2
|
+
import { bytesToBigInt } from '../utils/conversion.js';
|
|
3
|
+
export function MetricValueToNumber(v) {
|
|
7
4
|
if (v === undefined) {
|
|
8
5
|
return undefined;
|
|
9
6
|
}
|
|
@@ -11,19 +8,18 @@ function MetricValueToNumber(v) {
|
|
|
11
8
|
return v.doubleValue;
|
|
12
9
|
}
|
|
13
10
|
if (v.bigInteger !== undefined) {
|
|
14
|
-
let intValue =
|
|
11
|
+
let intValue = bytesToBigInt(v.bigInteger.data);
|
|
15
12
|
if (v.bigInteger.negative) {
|
|
16
13
|
intValue = -intValue;
|
|
17
14
|
}
|
|
18
15
|
return intValue;
|
|
19
16
|
}
|
|
20
17
|
if (v.bigDecimal !== undefined) {
|
|
21
|
-
return new
|
|
18
|
+
return new BigDecimal(v.bigDecimal);
|
|
22
19
|
}
|
|
23
20
|
return undefined;
|
|
24
21
|
}
|
|
25
|
-
|
|
26
|
-
function firstCounterValue(result, name) {
|
|
22
|
+
export function firstCounterValue(result, name) {
|
|
27
23
|
if (!result) {
|
|
28
24
|
return undefined;
|
|
29
25
|
}
|
|
@@ -34,8 +30,7 @@ function firstCounterValue(result, name) {
|
|
|
34
30
|
}
|
|
35
31
|
return undefined;
|
|
36
32
|
}
|
|
37
|
-
|
|
38
|
-
function firstGaugeValue(result, name) {
|
|
33
|
+
export function firstGaugeValue(result, name) {
|
|
39
34
|
if (!result) {
|
|
40
35
|
return undefined;
|
|
41
36
|
}
|
|
@@ -46,5 +41,4 @@ function firstGaugeValue(result, name) {
|
|
|
46
41
|
}
|
|
47
42
|
return undefined;
|
|
48
43
|
}
|
|
49
|
-
exports.firstGaugeValue = firstGaugeValue;
|
|
50
44
|
//# sourceMappingURL=metric-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metric-utils.js","sourceRoot":"","sources":["../../src/testing/metric-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metric-utils.js","sourceRoot":"","sources":["../../src/testing/metric-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAEtD,MAAM,UAAU,mBAAmB,CAAC,CAAmC;IACrE,IAAI,CAAC,KAAK,SAAS,EAAE;QACnB,OAAO,SAAS,CAAA;KACjB;IAED,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE;QAC/B,OAAO,CAAC,CAAC,WAAW,CAAA;KACrB;IACD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE;QAC9B,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE;YACzB,QAAQ,GAAG,CAAC,QAAQ,CAAA;SACrB;QACD,OAAO,QAAQ,CAAA;KAChB;IACD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE;QAC9B,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;KACpC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAiC,EAAE,IAAY;IAC/E,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,SAAS,CAAA;KACjB;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE;QACrC,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,KAAK,IAAI,EAAE;YACnC,OAAO,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;SAChD;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiC,EAAE,IAAY;IAC7E,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,SAAS,CAAA;KACjB;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE;QACjC,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,IAAI,EAAE;YACjC,OAAO,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;SAC9C;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC","sourcesContent":["import { MetricValue, ProcessResult } from '@sentio/protos'\nimport { Numberish, BigDecimal } from '../core/index.js'\nimport { bytesToBigInt } from '../utils/conversion.js'\n\nexport function MetricValueToNumber(v: Partial<MetricValue> | undefined): Numberish | undefined {\n if (v === undefined) {\n return undefined\n }\n\n if (v.doubleValue !== undefined) {\n return v.doubleValue\n }\n if (v.bigInteger !== undefined) {\n let intValue = bytesToBigInt(v.bigInteger.data)\n if (v.bigInteger.negative) {\n intValue = -intValue\n }\n return intValue\n }\n if (v.bigDecimal !== undefined) {\n return new BigDecimal(v.bigDecimal)\n }\n return undefined\n}\n\nexport function firstCounterValue(result: ProcessResult | undefined, name: string): Numberish | undefined {\n if (!result) {\n return undefined\n }\n for (const counter of result.counters) {\n if (counter.metadata?.name === name) {\n return MetricValueToNumber(counter.metricValue)\n }\n }\n return undefined\n}\n\nexport function firstGaugeValue(result: ProcessResult | undefined, name: string): Numberish | undefined {\n if (!result) {\n return undefined\n }\n for (const gauge of result.gauges) {\n if (gauge.metadata?.name === name) {\n return MetricValueToNumber(gauge.metricValue)\n }\n }\n return undefined\n}\n"]}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { AccountConfig, ContractConfig, DataBinding, Data_SolInstruction, ProcessBindingResponse, ProcessBindingsRequest, ProcessConfigRequest, ProcessConfigResponse, ProcessorServiceImplementation, StartRequest } from '@sentio/protos';
|
|
1
|
+
import { AccountConfig, ContractConfig, DataBinding, Data_SolInstruction, ProcessBindingResponse, ProcessBindingsRequest, ProcessConfigRequest, ProcessConfigResponse, ProcessorServiceImplementation, StartRequest, Empty } from '@sentio/protos';
|
|
2
2
|
import { CallContext } from 'nice-grpc-common';
|
|
3
|
-
import { Empty } from '@sentio/protos/lib/google/protobuf/empty';
|
|
4
3
|
import { ProcessorServiceImpl } from '@sentio/runtime';
|
|
5
|
-
import { Trace } from '../eth/trace';
|
|
4
|
+
import { Trace } from '../eth/trace.js';
|
|
6
5
|
import { LogParams, Networkish, BlockParams } from 'ethers/providers';
|
|
7
6
|
import { Block } from 'ethers';
|
|
8
7
|
export declare const TEST_CONTEXT: CallContext;
|
|
@@ -11,7 +10,7 @@ export declare class TestProcessorServer implements ProcessorServiceImplementati
|
|
|
11
10
|
service: ProcessorServiceImpl;
|
|
12
11
|
contractConfigs: ContractConfig[];
|
|
13
12
|
accountConfigs: AccountConfig[];
|
|
14
|
-
constructor(loader: () =>
|
|
13
|
+
constructor(loader: () => Promise<any>, httpEndpoints?: Record<string, string>);
|
|
15
14
|
start(request?: StartRequest, context?: CallContext): Promise<Empty>;
|
|
16
15
|
stop(request: Empty, context?: CallContext): Promise<Empty>;
|
|
17
16
|
getConfig(request: ProcessConfigRequest, context?: CallContext): Promise<ProcessConfigResponse>;
|
|
@@ -1,39 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
exports.TEST_CONTEXT = {};
|
|
9
|
-
function cleanTest() {
|
|
10
|
-
runtime_1.State.reset();
|
|
1
|
+
import { HandlerType, } from '@sentio/protos';
|
|
2
|
+
import { ProcessorServiceImpl, Endpoints, State } from '@sentio/runtime';
|
|
3
|
+
import { CHAIN_MAP } from '../utils/chain.js';
|
|
4
|
+
import { Network } from 'ethers/providers';
|
|
5
|
+
export const TEST_CONTEXT = {};
|
|
6
|
+
export function cleanTest() {
|
|
7
|
+
State.reset();
|
|
11
8
|
// Endpoints.reset()
|
|
12
9
|
}
|
|
13
|
-
|
|
14
|
-
class TestProcessorServer {
|
|
10
|
+
export class TestProcessorServer {
|
|
15
11
|
service;
|
|
16
12
|
contractConfigs;
|
|
17
13
|
accountConfigs;
|
|
18
14
|
constructor(loader, httpEndpoints = {}) {
|
|
19
15
|
cleanTest();
|
|
20
|
-
this.service = new
|
|
21
|
-
for (const k in
|
|
16
|
+
this.service = new ProcessorServiceImpl(loader);
|
|
17
|
+
for (const k in CHAIN_MAP) {
|
|
22
18
|
const http = httpEndpoints[k] || '';
|
|
23
|
-
|
|
19
|
+
Endpoints.INSTANCE.chainServer.set(k, http);
|
|
24
20
|
}
|
|
25
21
|
}
|
|
26
|
-
async start(request = { templateInstances: [] }, context =
|
|
22
|
+
async start(request = { templateInstances: [] }, context = TEST_CONTEXT) {
|
|
27
23
|
const res = await this.service.start(request, context);
|
|
28
24
|
const config = await this.getConfig({});
|
|
29
25
|
this.contractConfigs = config.contractConfigs;
|
|
30
26
|
this.accountConfigs = config.accountConfigs;
|
|
31
27
|
return res;
|
|
32
28
|
}
|
|
33
|
-
stop(request, context =
|
|
29
|
+
stop(request, context = TEST_CONTEXT) {
|
|
34
30
|
return this.service.stop(request, context);
|
|
35
31
|
}
|
|
36
|
-
getConfig(request, context =
|
|
32
|
+
getConfig(request, context = TEST_CONTEXT) {
|
|
37
33
|
return this.service.getConfig(request, context);
|
|
38
34
|
}
|
|
39
35
|
// processLogs(request: ProcessBindingsRequest, context = TEST_CONTEXT): Promise<ProcessBindingResponse> {
|
|
@@ -65,7 +61,7 @@ class TestProcessorServer {
|
|
|
65
61
|
}
|
|
66
62
|
const signature = trace.action.input.slice(0, 10);
|
|
67
63
|
for (const contract of this.contractConfigs) {
|
|
68
|
-
if (contract.contract?.chainId !==
|
|
64
|
+
if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {
|
|
69
65
|
continue;
|
|
70
66
|
}
|
|
71
67
|
if (trace.action.to?.toLowerCase() !== contract.contract?.address.toLowerCase()) {
|
|
@@ -81,7 +77,7 @@ class TestProcessorServer {
|
|
|
81
77
|
},
|
|
82
78
|
},
|
|
83
79
|
handlerIds: [config.handlerId],
|
|
84
|
-
handlerType:
|
|
80
|
+
handlerType: HandlerType.ETH_TRACE,
|
|
85
81
|
};
|
|
86
82
|
}
|
|
87
83
|
}
|
|
@@ -106,7 +102,7 @@ class TestProcessorServer {
|
|
|
106
102
|
}
|
|
107
103
|
buildLogBinding(log, network = 1) {
|
|
108
104
|
for (const contract of this.contractConfigs) {
|
|
109
|
-
if (contract.contract?.chainId !==
|
|
105
|
+
if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {
|
|
110
106
|
continue;
|
|
111
107
|
}
|
|
112
108
|
if (log.address.toLowerCase() !== contract.contract?.address.toLowerCase()) {
|
|
@@ -138,7 +134,7 @@ class TestProcessorServer {
|
|
|
138
134
|
ethLog: { log, timestamp: new Date() },
|
|
139
135
|
},
|
|
140
136
|
handlerIds: [config.handlerId],
|
|
141
|
-
handlerType:
|
|
137
|
+
handlerType: HandlerType.ETH_LOG,
|
|
142
138
|
};
|
|
143
139
|
}
|
|
144
140
|
}
|
|
@@ -164,7 +160,7 @@ class TestProcessorServer {
|
|
|
164
160
|
}
|
|
165
161
|
buildAccountLogBinding(address, log, network = 1) {
|
|
166
162
|
for (const account of this.accountConfigs) {
|
|
167
|
-
if (account.chainId !==
|
|
163
|
+
if (account.chainId !== Network.from(network).chainId.toString()) {
|
|
168
164
|
continue;
|
|
169
165
|
}
|
|
170
166
|
if (address.toLowerCase() !== account.address.toLowerCase()) {
|
|
@@ -196,7 +192,7 @@ class TestProcessorServer {
|
|
|
196
192
|
ethLog: { log, timestamp: new Date() },
|
|
197
193
|
},
|
|
198
194
|
handlerIds: [config.handlerId],
|
|
199
|
-
handlerType:
|
|
195
|
+
handlerType: HandlerType.ETH_LOG,
|
|
200
196
|
};
|
|
201
197
|
}
|
|
202
198
|
}
|
|
@@ -225,11 +221,11 @@ class TestProcessorServer {
|
|
|
225
221
|
data: {
|
|
226
222
|
ethBlock: { block },
|
|
227
223
|
},
|
|
228
|
-
handlerType:
|
|
224
|
+
handlerType: HandlerType.ETH_BLOCK,
|
|
229
225
|
handlerIds: [],
|
|
230
226
|
};
|
|
231
227
|
for (const contract of this.contractConfigs) {
|
|
232
|
-
if (contract.contract?.chainId !==
|
|
228
|
+
if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {
|
|
233
229
|
continue;
|
|
234
230
|
}
|
|
235
231
|
const longBlockNumber = block.number;
|
|
@@ -254,17 +250,16 @@ class TestProcessorServer {
|
|
|
254
250
|
solInstruction: instruction,
|
|
255
251
|
},
|
|
256
252
|
handlerIds: [],
|
|
257
|
-
handlerType:
|
|
253
|
+
handlerType: HandlerType.SOL_INSTRUCTION,
|
|
258
254
|
};
|
|
259
255
|
}),
|
|
260
256
|
});
|
|
261
257
|
}
|
|
262
|
-
processBindings(request, context =
|
|
258
|
+
processBindings(request, context = TEST_CONTEXT) {
|
|
263
259
|
return this.service.processBindings(request, context);
|
|
264
260
|
}
|
|
265
261
|
processBindingsStream(request, context) {
|
|
266
262
|
return this.service.processBindingsStream(request, context);
|
|
267
263
|
}
|
|
268
264
|
}
|
|
269
|
-
exports.TestProcessorServer = TestProcessorServer;
|
|
270
265
|
//# sourceMappingURL=test-processor-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-processor-server.js","sourceRoot":"","sources":["../../src/testing/test-processor-server.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AccountConfig,\n ContractConfig,\n DataBinding,\n HandlerType,\n Data_SolInstruction,\n ProcessBindingResponse,\n ProcessBindingsRequest,\n ProcessConfigRequest,\n ProcessConfigResponse,\n ProcessorServiceImplementation,\n StartRequest,\n} from '@sentio/protos'\nimport { CallContext } from 'nice-grpc-common'\nimport { Empty } from '@sentio/protos/lib/google/protobuf/empty'\nimport { ChainConfig, ProcessorServiceImpl, Endpoints, State } from '@sentio/runtime'\nimport { CHAIN_MAP } from '../utils/chain'\n\nimport { Trace } from '../eth/trace'\nimport { LogParams, Networkish, BlockParams, Network } from 'ethers/providers'\n\nimport { Block, Log } from 'ethers'\n\nexport const TEST_CONTEXT: CallContext = <CallContext>{}\n\nexport function cleanTest() {\n State.reset()\n // Endpoints.reset()\n}\n\nexport class TestProcessorServer implements ProcessorServiceImplementation {\n service: ProcessorServiceImpl\n contractConfigs: ContractConfig[]\n accountConfigs: AccountConfig[]\n\n constructor(loader: () => void, httpEndpoints: Record<string, string> = {}) {\n cleanTest()\n\n this.service = new ProcessorServiceImpl(loader)\n\n for (const k in CHAIN_MAP) {\n const http = httpEndpoints[k] || ''\n Endpoints.INSTANCE.chainServer.set(k, http)\n }\n }\n\n async start(request: StartRequest = { templateInstances: [] }, context = TEST_CONTEXT): Promise<Empty> {\n const res = await this.service.start(request, context)\n const config = await this.getConfig({})\n this.contractConfigs = config.contractConfigs\n this.accountConfigs = config.accountConfigs\n return res\n }\n\n stop(request: Empty, context = TEST_CONTEXT): Promise<Empty> {\n return this.service.stop(request, context)\n }\n\n getConfig(request: ProcessConfigRequest, context = TEST_CONTEXT): Promise<ProcessConfigResponse> {\n return this.service.getConfig(request, context)\n }\n\n // processLogs(request: ProcessBindingsRequest, context = TEST_CONTEXT): Promise<ProcessBindingResponse> {\n // return this.service.processLogs(request, context)\n // }\n //\n // processTraces(request: ProcessBindingsRequest, context: CallContext = TEST_CONTEXT): Promise<ProcessBindingResponse> {\n // return this.service.processTraces(request, context)\n // }\n\n testTrace(trace: Trace, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testTraces([trace], network)\n }\n\n testTraces(traces: Trace[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const trace of traces) {\n const binding = this.buildTraceBinding(trace, network)\n if (!binding) {\n throw Error('Invalid test trace: ' + JSON.stringify(trace))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildTraceBinding(trace: Trace, network: Networkish = 1): DataBinding | undefined {\n if (trace.type !== 'call' || !trace.action.input) {\n throw Error('Invalid test trace: ' + JSON.stringify(trace))\n }\n const signature = trace.action.input.slice(0, 10)\n\n for (const contract of this.contractConfigs) {\n if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n if (trace.action.to?.toLowerCase() !== contract.contract?.address.toLowerCase()) {\n continue\n }\n for (const config of contract.traceConfigs) {\n if (config.signature == signature) {\n return {\n data: {\n ethTrace: {\n trace,\n timestamp: new Date(),\n },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_TRACE,\n }\n }\n }\n }\n return undefined\n }\n\n testLog(log: LogParams, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testLogs([log], network)\n }\n\n testLogs(logs: LogParams[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const log of logs) {\n const binding = this.buildLogBinding(log, network)\n if (!binding) {\n throw Error('Invalid test log: ' + JSON.stringify(log))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildLogBinding(log: LogParams, network: Networkish = 1): DataBinding | undefined {\n for (const contract of this.contractConfigs) {\n if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n if (log.address.toLowerCase() !== contract.contract?.address.toLowerCase()) {\n continue\n }\n for (const config of contract.logConfigs) {\n for (const filter of config.filters) {\n // if (filter.topics.length != log.topics.length) {\n // continue\n // }\n\n let match = true\n for (const topicIdx in filter.topics) {\n const logTopic = log.topics[topicIdx]\n const possibleTopic = filter.topics[topicIdx].hashes\n if (possibleTopic.length === 0) {\n // match all\n continue\n }\n if (possibleTopic.find((e) => e.toLowerCase() === logTopic.toLowerCase())) {\n // find one\n continue\n }\n match = false\n break\n }\n if (match) {\n return {\n data: {\n ethLog: { log, timestamp: new Date() },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_LOG,\n }\n }\n }\n }\n }\n return undefined\n }\n testAccountLog(address: string, log: LogParams, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testAccountLogs(address, [log], network)\n }\n\n testAccountLogs(address: string, logs: LogParams[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const log of logs) {\n const binding = this.buildAccountLogBinding(address, log, network)\n if (!binding) {\n throw Error('Invalid test log: ' + JSON.stringify(log))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildAccountLogBinding(address: string, log: LogParams, network: Networkish = 1): DataBinding | undefined {\n for (const account of this.accountConfigs) {\n if (account.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n if (address.toLowerCase() !== account.address.toLowerCase()) {\n continue\n }\n for (const config of account.logConfigs) {\n for (const filter of config.filters) {\n // if (filter.topics.length != log.topics.length) {\n // continue\n // }\n\n let match = true\n for (const topicIdx in filter.topics) {\n const logTopic = log.topics[topicIdx]\n const possibleTopic = filter.topics[topicIdx].hashes\n if (possibleTopic.length === 0) {\n // match all\n continue\n }\n if (possibleTopic.find((e) => e.toLowerCase() === logTopic.toLowerCase())) {\n // find one\n continue\n }\n match = false\n break\n }\n if (match) {\n return {\n data: {\n ethLog: { log, timestamp: new Date() },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_LOG,\n }\n }\n }\n }\n }\n return undefined\n }\n\n testBlock(\n block: Partial<BlockParams> & { number: number },\n network: Networkish = 1\n ): Promise<ProcessBindingResponse> {\n return this.testBlocks([block], network)\n }\n\n testBlocks(blocks: Partial<BlockParams> & { number: number }[], network: Networkish = 1) {\n const bindings = []\n for (const block of blocks) {\n const binding = this.buildBlockBinding(block, network)\n if (!binding) {\n throw Error('Invalid test block: ' + JSON.stringify(block))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildBlockBinding(block: Partial<Block> & { number: number }, network: Networkish = 1): DataBinding {\n const binding: DataBinding = {\n data: {\n ethBlock: { block },\n },\n handlerType: HandlerType.ETH_BLOCK,\n handlerIds: [],\n }\n for (const contract of this.contractConfigs) {\n if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n const longBlockNumber = block.number\n if (longBlockNumber < contract.startBlock) {\n continue\n }\n if (contract.endBlock !== 0n && longBlockNumber >= contract.endBlock) {\n continue\n }\n\n for (const config of contract.intervalConfigs) {\n binding.handlerIds.push(config.handlerId)\n }\n }\n return binding\n }\n\n testInstructions(instructions: Data_SolInstruction[]): Promise<ProcessBindingResponse> {\n return this.processBindings({\n bindings: instructions.map((instruction) => {\n return {\n data: {\n raw: new Uint8Array(),\n solInstruction: instruction,\n },\n handlerIds: [],\n handlerType: HandlerType.SOL_INSTRUCTION,\n }\n }),\n })\n }\n\n processBindings(\n request: ProcessBindingsRequest,\n context: CallContext = TEST_CONTEXT\n ): Promise<ProcessBindingResponse> {\n return this.service.processBindings(request, context)\n }\n\n processBindingsStream(request: AsyncIterable<DataBinding>, context: CallContext) {\n return this.service.processBindingsStream(request, context)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"test-processor-server.js","sourceRoot":"","sources":["../../src/testing/test-processor-server.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AccountConfig,\n ContractConfig,\n DataBinding,\n HandlerType,\n Data_SolInstruction,\n ProcessBindingResponse,\n ProcessBindingsRequest,\n ProcessConfigRequest,\n ProcessConfigResponse,\n ProcessorServiceImplementation,\n StartRequest,\n Empty,\n} from '@sentio/protos'\nimport { CallContext } from 'nice-grpc-common'\nimport { ProcessorServiceImpl, Endpoints, State } from '@sentio/runtime'\nimport { CHAIN_MAP } from '../utils/chain.js'\n\nimport { Trace } from '../eth/trace.js'\nimport { LogParams, Networkish, BlockParams, Network } from 'ethers/providers'\n\nimport { Block, Log } from 'ethers'\n\nexport const TEST_CONTEXT: CallContext = <CallContext>{}\n\nexport function cleanTest() {\n State.reset()\n // Endpoints.reset()\n}\n\nexport class TestProcessorServer implements ProcessorServiceImplementation {\n service: ProcessorServiceImpl\n contractConfigs: ContractConfig[]\n accountConfigs: AccountConfig[]\n\n constructor(loader: () => Promise<any>, httpEndpoints: Record<string, string> = {}) {\n cleanTest()\n\n this.service = new ProcessorServiceImpl(loader)\n\n for (const k in CHAIN_MAP) {\n const http = httpEndpoints[k] || ''\n Endpoints.INSTANCE.chainServer.set(k, http)\n }\n }\n\n async start(request: StartRequest = { templateInstances: [] }, context = TEST_CONTEXT): Promise<Empty> {\n const res = await this.service.start(request, context)\n const config = await this.getConfig({})\n this.contractConfigs = config.contractConfigs\n this.accountConfigs = config.accountConfigs\n return res\n }\n\n stop(request: Empty, context = TEST_CONTEXT): Promise<Empty> {\n return this.service.stop(request, context)\n }\n\n getConfig(request: ProcessConfigRequest, context = TEST_CONTEXT): Promise<ProcessConfigResponse> {\n return this.service.getConfig(request, context)\n }\n\n // processLogs(request: ProcessBindingsRequest, context = TEST_CONTEXT): Promise<ProcessBindingResponse> {\n // return this.service.processLogs(request, context)\n // }\n //\n // processTraces(request: ProcessBindingsRequest, context: CallContext = TEST_CONTEXT): Promise<ProcessBindingResponse> {\n // return this.service.processTraces(request, context)\n // }\n\n testTrace(trace: Trace, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testTraces([trace], network)\n }\n\n testTraces(traces: Trace[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const trace of traces) {\n const binding = this.buildTraceBinding(trace, network)\n if (!binding) {\n throw Error('Invalid test trace: ' + JSON.stringify(trace))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildTraceBinding(trace: Trace, network: Networkish = 1): DataBinding | undefined {\n if (trace.type !== 'call' || !trace.action.input) {\n throw Error('Invalid test trace: ' + JSON.stringify(trace))\n }\n const signature = trace.action.input.slice(0, 10)\n\n for (const contract of this.contractConfigs) {\n if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n if (trace.action.to?.toLowerCase() !== contract.contract?.address.toLowerCase()) {\n continue\n }\n for (const config of contract.traceConfigs) {\n if (config.signature == signature) {\n return {\n data: {\n ethTrace: {\n trace,\n timestamp: new Date(),\n },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_TRACE,\n }\n }\n }\n }\n return undefined\n }\n\n testLog(log: LogParams, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testLogs([log], network)\n }\n\n testLogs(logs: LogParams[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const log of logs) {\n const binding = this.buildLogBinding(log, network)\n if (!binding) {\n throw Error('Invalid test log: ' + JSON.stringify(log))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildLogBinding(log: LogParams, network: Networkish = 1): DataBinding | undefined {\n for (const contract of this.contractConfigs) {\n if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n if (log.address.toLowerCase() !== contract.contract?.address.toLowerCase()) {\n continue\n }\n for (const config of contract.logConfigs) {\n for (const filter of config.filters) {\n // if (filter.topics.length != log.topics.length) {\n // continue\n // }\n\n let match = true\n for (const topicIdx in filter.topics) {\n const logTopic = log.topics[topicIdx]\n const possibleTopic = filter.topics[topicIdx].hashes\n if (possibleTopic.length === 0) {\n // match all\n continue\n }\n if (possibleTopic.find((e) => e.toLowerCase() === logTopic.toLowerCase())) {\n // find one\n continue\n }\n match = false\n break\n }\n if (match) {\n return {\n data: {\n ethLog: { log, timestamp: new Date() },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_LOG,\n }\n }\n }\n }\n }\n return undefined\n }\n testAccountLog(address: string, log: LogParams, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testAccountLogs(address, [log], network)\n }\n\n testAccountLogs(address: string, logs: LogParams[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const log of logs) {\n const binding = this.buildAccountLogBinding(address, log, network)\n if (!binding) {\n throw Error('Invalid test log: ' + JSON.stringify(log))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildAccountLogBinding(address: string, log: LogParams, network: Networkish = 1): DataBinding | undefined {\n for (const account of this.accountConfigs) {\n if (account.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n if (address.toLowerCase() !== account.address.toLowerCase()) {\n continue\n }\n for (const config of account.logConfigs) {\n for (const filter of config.filters) {\n // if (filter.topics.length != log.topics.length) {\n // continue\n // }\n\n let match = true\n for (const topicIdx in filter.topics) {\n const logTopic = log.topics[topicIdx]\n const possibleTopic = filter.topics[topicIdx].hashes\n if (possibleTopic.length === 0) {\n // match all\n continue\n }\n if (possibleTopic.find((e) => e.toLowerCase() === logTopic.toLowerCase())) {\n // find one\n continue\n }\n match = false\n break\n }\n if (match) {\n return {\n data: {\n ethLog: { log, timestamp: new Date() },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_LOG,\n }\n }\n }\n }\n }\n return undefined\n }\n\n testBlock(\n block: Partial<BlockParams> & { number: number },\n network: Networkish = 1\n ): Promise<ProcessBindingResponse> {\n return this.testBlocks([block], network)\n }\n\n testBlocks(blocks: Partial<BlockParams> & { number: number }[], network: Networkish = 1) {\n const bindings = []\n for (const block of blocks) {\n const binding = this.buildBlockBinding(block, network)\n if (!binding) {\n throw Error('Invalid test block: ' + JSON.stringify(block))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildBlockBinding(block: Partial<Block> & { number: number }, network: Networkish = 1): DataBinding {\n const binding: DataBinding = {\n data: {\n ethBlock: { block },\n },\n handlerType: HandlerType.ETH_BLOCK,\n handlerIds: [],\n }\n for (const contract of this.contractConfigs) {\n if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n const longBlockNumber = block.number\n if (longBlockNumber < contract.startBlock) {\n continue\n }\n if (contract.endBlock !== 0n && longBlockNumber >= contract.endBlock) {\n continue\n }\n\n for (const config of contract.intervalConfigs) {\n binding.handlerIds.push(config.handlerId)\n }\n }\n return binding\n }\n\n testInstructions(instructions: Data_SolInstruction[]): Promise<ProcessBindingResponse> {\n return this.processBindings({\n bindings: instructions.map((instruction) => {\n return {\n data: {\n raw: new Uint8Array(),\n solInstruction: instruction,\n },\n handlerIds: [],\n handlerType: HandlerType.SOL_INSTRUCTION,\n }\n }),\n })\n }\n\n processBindings(\n request: ProcessBindingsRequest,\n context: CallContext = TEST_CONTEXT\n ): Promise<ProcessBindingResponse> {\n return this.service.processBindings(request, context)\n }\n\n processBindingsStream(request: AsyncIterable<DataBinding>, context: CallContext) {\n return this.service.processBindingsStream(request, context)\n }\n}\n"]}
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const runtime_1 = require("@sentio/runtime");
|
|
5
|
-
const chain_1 = require("../utils/chain");
|
|
6
|
-
function loadTestProvidersFromEnv(requiredChainIds) {
|
|
1
|
+
import { Endpoints } from '@sentio/runtime';
|
|
2
|
+
import { CHAIN_MAP } from '../utils/chain.js';
|
|
3
|
+
export function loadTestProvidersFromEnv(requiredChainIds) {
|
|
7
4
|
const found = [];
|
|
8
5
|
if (!Array.isArray(requiredChainIds)) {
|
|
9
6
|
requiredChainIds = [requiredChainIds];
|
|
10
7
|
}
|
|
11
|
-
for (const k of Object.keys(
|
|
8
|
+
for (const k of Object.keys(CHAIN_MAP)) {
|
|
12
9
|
const envKey = 'TEST_ENDPOINT_' + k;
|
|
13
10
|
const http = process.env[envKey];
|
|
14
11
|
if (!http) {
|
|
15
12
|
continue;
|
|
16
13
|
}
|
|
17
14
|
found.push(k);
|
|
18
|
-
|
|
15
|
+
Endpoints.INSTANCE.chainServer.set(k, http);
|
|
19
16
|
}
|
|
20
17
|
for (const id of requiredChainIds) {
|
|
21
18
|
if (!found.includes(id)) {
|
|
@@ -24,5 +21,4 @@ function loadTestProvidersFromEnv(requiredChainIds) {
|
|
|
24
21
|
}
|
|
25
22
|
return true;
|
|
26
23
|
}
|
|
27
|
-
exports.loadTestProvidersFromEnv = loadTestProvidersFromEnv;
|
|
28
24
|
//# sourceMappingURL=test-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-provider.js","sourceRoot":"","sources":["../../src/testing/test-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test-provider.js","sourceRoot":"","sources":["../../src/testing/test-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE7C,MAAM,UAAU,wBAAwB,CAAC,gBAAmC;IAC1E,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QACpC,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,CAAA;KACtC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACtC,MAAM,MAAM,GAAG,gBAAgB,GAAG,CAAC,CAAA;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,EAAE;YACT,SAAQ;SACT;QACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACb,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;KAC5C;IAED,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YACvB,OAAO,KAAK,CAAA;SACb;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import { Endpoints } from '@sentio/runtime'\nimport { CHAIN_MAP } from '../utils/chain.js'\n\nexport function loadTestProvidersFromEnv(requiredChainIds: string[] | string): boolean {\n const found: string[] = []\n\n if (!Array.isArray(requiredChainIds)) {\n requiredChainIds = [requiredChainIds]\n }\n\n for (const k of Object.keys(CHAIN_MAP)) {\n const envKey = 'TEST_ENDPOINT_' + k\n const http = process.env[envKey]\n if (!http) {\n continue\n }\n found.push(k)\n Endpoints.INSTANCE.chainServer.set(k, http)\n }\n\n for (const id of requiredChainIds) {\n if (!found.includes(id)) {\n return false\n }\n }\n return true\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { defineConfig } from 'tsup'
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
esbuildOptions: (options) => {
|
|
5
|
+
options.banner = {
|
|
6
|
+
js: `import { createRequire } from 'module'; const require = createRequire(import.meta.url);`,
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
entry: {
|
|
10
|
+
lib: 'src/processor.ts',
|
|
11
|
+
},
|
|
12
|
+
minify: true,
|
|
13
|
+
sourcemap: 'inline',
|
|
14
|
+
clean: true,
|
|
15
|
+
format: 'esm',
|
|
16
|
+
external: [
|
|
17
|
+
'protobufjs',
|
|
18
|
+
'aptos',
|
|
19
|
+
'aptos-sdk',
|
|
20
|
+
'ethers',
|
|
21
|
+
'bs58',
|
|
22
|
+
'bn.js',
|
|
23
|
+
'csv-parse',
|
|
24
|
+
/^nice-grpc.*$/,
|
|
25
|
+
/^@(ethersproject|solana|project-serum).*$/,
|
|
26
|
+
/^@sentio\/(sdk|runtime|protos|bigdecimal|ethers).*$/,
|
|
27
|
+
],
|
|
28
|
+
})
|
package/lib/utils/chain.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// copy from https://github.com/DefiLlama/chainlist/blob/main/constants/chainIds.js
|
|
3
2
|
// and https://besu.hyperledger.org/en/stable/Concepts/NetworkID-And-ChainID/
|
|
4
|
-
|
|
5
|
-
exports.getChainType = exports.getChainName = exports.CHAIN_MAP = exports.CHAIN_IDS = void 0;
|
|
6
|
-
exports.CHAIN_IDS = {
|
|
3
|
+
export const CHAIN_IDS = {
|
|
7
4
|
KARDIA: '0',
|
|
8
5
|
ETHEREUM: '1',
|
|
9
6
|
EXPANSE: '2',
|
|
@@ -90,29 +87,28 @@ exports.CHAIN_IDS = {
|
|
|
90
87
|
APTOS_MAINNET: 'aptos_mainnet',
|
|
91
88
|
APTOS_TESTNET: 'aptos_testnet',
|
|
92
89
|
};
|
|
93
|
-
|
|
94
|
-
for (const [key, value] of Object.entries(
|
|
90
|
+
export const CHAIN_MAP = {};
|
|
91
|
+
for (const [key, value] of Object.entries(CHAIN_IDS)) {
|
|
95
92
|
const parts = key.split('_');
|
|
96
|
-
|
|
93
|
+
CHAIN_MAP[value] = parts
|
|
97
94
|
.map((part, index) => {
|
|
98
95
|
return part[0] + part.slice(1).toLowerCase();
|
|
99
96
|
})
|
|
100
97
|
.join(' ');
|
|
101
98
|
}
|
|
102
|
-
function getChainName(chainId) {
|
|
99
|
+
export function getChainName(chainId) {
|
|
103
100
|
if (typeof chainId === 'number') {
|
|
104
101
|
chainId = chainId.toString();
|
|
105
102
|
}
|
|
106
103
|
if (chainId) {
|
|
107
|
-
const name =
|
|
104
|
+
const name = CHAIN_MAP[chainId];
|
|
108
105
|
if (name) {
|
|
109
106
|
return name;
|
|
110
107
|
}
|
|
111
108
|
}
|
|
112
109
|
return chainId || '';
|
|
113
110
|
}
|
|
114
|
-
|
|
115
|
-
function getChainType(chainId) {
|
|
111
|
+
export function getChainType(chainId) {
|
|
116
112
|
const id = String(chainId).toLowerCase();
|
|
117
113
|
if (id.startsWith('sol')) {
|
|
118
114
|
return 'solana';
|
|
@@ -125,5 +121,4 @@ function getChainType(chainId) {
|
|
|
125
121
|
}
|
|
126
122
|
return 'EVM';
|
|
127
123
|
}
|
|
128
|
-
exports.getChainType = getChainType;
|
|
129
124
|
//# sourceMappingURL=chain.js.map
|
package/lib/utils/chain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/utils/chain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/utils/chain.ts"],"names":[],"mappings":"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","sourcesContent":["// copy from https://github.com/DefiLlama/chainlist/blob/main/constants/chainIds.js\n// and https://besu.hyperledger.org/en/stable/Concepts/NetworkID-And-ChainID/\n\nexport const CHAIN_IDS = {\n KARDIA: '0',\n ETHEREUM: '1',\n EXPANSE: '2',\n ROPSTEN: '3',\n RINKEBY: '4',\n GOERLI: '5',\n KOTTI: '6',\n UBIQ: '8',\n OPTIMISM: '10',\n SONGBIRD: '19',\n ELASTOS: '20',\n CRONOS: '25',\n RSK: '30',\n TELOS: '40',\n XDC: '50',\n CSC: '52',\n ZYX: '55',\n BINANCE: '56',\n SYSCOIN: '57',\n GOCHAIN: '60',\n ETHCLASSIC: '61',\n MORDOR: '63',\n OKEXCHAIN: '66',\n HOO: '70',\n METER: '82',\n TOMOCHAIN: '88',\n XDAI: '100',\n VELAS: '106',\n THUNDERCORE: '108',\n FUSE: '122',\n HECO: '128',\n POLYGON: '137',\n XDAIARB: '200',\n ASTOR: '212',\n ENERGYWEB: '246',\n FANTOM: '250',\n HPB: '269',\n BOBA: '288',\n KUCOIN: '321',\n SHIDEN: '336',\n THETA: '361',\n SX: '416',\n CANDLE: '534',\n ASTAR: '592',\n CALLISTO: '820',\n WANCHAIN: '888',\n METIS: '1088',\n OMCHAIN: '1246',\n MOONBEAM: '1284',\n MOONRIVER: '1285',\n MOONBASE: '1287',\n DEV: '2018',\n RONIN: '2020',\n KAVA: '2222',\n EZCHAIN: '2612',\n PHI: '4181',\n IOTEX: '4689',\n XLC: '5050',\n NAHMII: '5551',\n NMACTEST: '7777',\n KLAYTN: '8217',\n EVMOS: '9001',\n SMARTBCH: '10000',\n CRYSTALEUM: '103090',\n FUSION: '32659',\n ARBITRUM: '42161',\n CELO: '42220',\n OASIS: '42262',\n AVALANCHE: '43114',\n GODWOKEN: '71402',\n AKROMA: '200625',\n POLIS: '333999',\n ARBITRUM_TEST: '421613',\n SEPOLIA: '11155111',\n AURORA: '1313161554',\n HARMONY: '1666600000',\n PALM: '11297108109',\n CURIO: '836542336838601',\n SOLANA_MAINNET: 'sol_mainnet',\n SOLANA_DEVNET: 'sol_devnet',\n SOLANA_TESTNET: 'sol_testnet',\n SOLANA_PYTH: 'sol_pyth',\n SUI_DEVNET: 'sui_devnet',\n APTOS_MAINNET: 'aptos_mainnet',\n APTOS_TESTNET: 'aptos_testnet',\n}\n\nexport const CHAIN_MAP: Record<string, string> = {}\n\nfor (const [key, value] of Object.entries(CHAIN_IDS)) {\n const parts = key.split('_')\n CHAIN_MAP[value] = parts\n .map((part, index) => {\n return part[0] + part.slice(1).toLowerCase()\n })\n .join(' ')\n}\n\nexport function getChainName(chainId: string | number | null | undefined): string {\n if (typeof chainId === 'number') {\n chainId = chainId.toString()\n }\n if (chainId) {\n const name = CHAIN_MAP[chainId]\n if (name) {\n return name\n }\n }\n return chainId || ''\n}\n\nexport function getChainType(chainId?: string | number): string {\n const id = String(chainId).toLowerCase()\n if (id.startsWith('sol')) {\n return 'solana'\n }\n if (id.startsWith('sui')) {\n return 'sui'\n }\n if (id.startsWith('apt')) {\n return 'aptos'\n }\n return 'EVM'\n}\n"]}
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
import { BigDecimal } from '../core/big-decimal';
|
|
2
|
-
import { Numberish } from '../core';
|
|
3
|
-
import { MetricValue } from '@sentio/protos';
|
|
4
|
-
export declare function toBigDecimal(n: bigint): BigDecimal;
|
|
5
1
|
export declare function bytesToBigInt(bytes: Uint8Array): bigint;
|
|
6
|
-
export declare function metricValueToNumberish(v: MetricValue): Numberish;
|
package/lib/utils/conversion.js
CHANGED
|
@@ -1,34 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function toBigDecimal(n) {
|
|
6
|
-
return new big_decimal_1.BigDecimal(n.toString());
|
|
7
|
-
}
|
|
8
|
-
exports.toBigDecimal = toBigDecimal;
|
|
9
|
-
function bytesToBigInt(bytes) {
|
|
1
|
+
// import { BigDecimal } from '../core/big-decimal.js'
|
|
2
|
+
// import { Numberish } from '../core/index.js'
|
|
3
|
+
// import { MetricValue } from '@sentio/protos'
|
|
4
|
+
export function bytesToBigInt(bytes) {
|
|
10
5
|
let intValue = BigInt(0);
|
|
11
6
|
for (let i = 0; i < bytes.length; i++) {
|
|
12
7
|
intValue = intValue * BigInt(256) + BigInt(bytes[i]);
|
|
13
8
|
}
|
|
14
9
|
return intValue;
|
|
15
10
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
11
|
+
// export function metricValueToNumberish(v: MetricValue): Numberish {
|
|
12
|
+
// if (v.doubleValue) {
|
|
13
|
+
// return v.doubleValue
|
|
14
|
+
// }
|
|
15
|
+
// if (v.bigInteger) {
|
|
16
|
+
// let intValue = bytesToBigInt(v.bigInteger.data)
|
|
17
|
+
// if (v.bigInteger.negative) {
|
|
18
|
+
// intValue = -intValue
|
|
19
|
+
// }
|
|
20
|
+
// return intValue
|
|
21
|
+
// }
|
|
22
|
+
//
|
|
23
|
+
// if (v.bigDecimal) {
|
|
24
|
+
// return new BigDecimal(v.bigDecimal)
|
|
25
|
+
// }
|
|
26
|
+
//
|
|
27
|
+
// throw Error("MetricValue doesn't contain any of possible value")
|
|
28
|
+
// }
|
|
34
29
|
//# sourceMappingURL=conversion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../src/utils/conversion.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../src/utils/conversion.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,+CAA+C;AAC/C,+CAA+C;AAE/C,MAAM,UAAU,aAAa,CAAC,KAAiB;IAC7C,IAAI,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KACrD;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,sEAAsE;AACtE,yBAAyB;AACzB,2BAA2B;AAC3B,MAAM;AACN,wBAAwB;AACxB,sDAAsD;AACtD,mCAAmC;AACnC,6BAA6B;AAC7B,QAAQ;AACR,sBAAsB;AACtB,MAAM;AACN,EAAE;AACF,wBAAwB;AACxB,0CAA0C;AAC1C,MAAM;AACN,EAAE;AACF,qEAAqE;AACrE,IAAI","sourcesContent":["// import { BigDecimal } from '../core/big-decimal.js'\n// import { Numberish } from '../core/index.js'\n// import { MetricValue } from '@sentio/protos'\n\nexport function bytesToBigInt(bytes: Uint8Array) {\n let intValue = BigInt(0)\n for (let i = 0; i < bytes.length; i++) {\n intValue = intValue * BigInt(256) + BigInt(bytes[i])\n }\n return intValue\n}\n\n// export function metricValueToNumberish(v: MetricValue): Numberish {\n// if (v.doubleValue) {\n// return v.doubleValue\n// }\n// if (v.bigInteger) {\n// let intValue = bytesToBigInt(v.bigInteger.data)\n// if (v.bigInteger.negative) {\n// intValue = -intValue\n// }\n// return intValue\n// }\n//\n// if (v.bigDecimal) {\n// return new BigDecimal(v.bigDecimal)\n// }\n//\n// throw Error(\"MetricValue doesn't contain any of possible value\")\n// }\n"]}
|