@sentio/sdk 1.40.5 → 1.41.0-rc.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/builtin/eacaggregatorproxy/index.js +3 -16
- package/lib/builtin/eacaggregatorproxy/index.js.map +1 -1
- package/lib/builtin/eacaggregatorproxy/test-utils.d.ts +5 -5
- package/lib/builtin/eacaggregatorproxy/test-utils.js +8 -4
- package/lib/builtin/eacaggregatorproxy/test-utils.js.map +1 -1
- package/lib/builtin/erc1155/index.js +3 -16
- package/lib/builtin/erc1155/index.js.map +1 -1
- package/lib/builtin/erc1155/test-utils.d.ts +5 -5
- package/lib/builtin/erc1155/test-utils.js +8 -4
- package/lib/builtin/erc1155/test-utils.js.map +1 -1
- package/lib/builtin/erc20/index.js +3 -16
- package/lib/builtin/erc20/index.js.map +1 -1
- package/lib/builtin/erc20/test-utils.d.ts +4 -4
- package/lib/builtin/erc20/test-utils.js +6 -3
- package/lib/builtin/erc20/test-utils.js.map +1 -1
- package/lib/builtin/erc20bytes/index.js +3 -16
- package/lib/builtin/erc20bytes/index.js.map +1 -1
- package/lib/builtin/erc20bytes/test-utils.d.ts +3 -3
- package/lib/builtin/erc20bytes/test-utils.js +4 -2
- package/lib/builtin/erc20bytes/test-utils.js.map +1 -1
- package/lib/builtin/erc721/index.js +3 -16
- package/lib/builtin/erc721/index.js.map +1 -1
- package/lib/builtin/erc721/test-utils.d.ts +4 -4
- package/lib/builtin/erc721/test-utils.js +6 -3
- package/lib/builtin/erc721/test-utils.js.map +1 -1
- package/lib/builtin/index.js +5 -27
- package/lib/builtin/index.js.map +1 -1
- package/lib/builtin/internal/EACAggregatorProxy.d.ts +19 -430
- package/lib/builtin/internal/EACAggregatorProxy.js.map +1 -1
- package/lib/builtin/internal/ERC1155.d.ts +18 -161
- package/lib/builtin/internal/ERC1155.js.map +1 -1
- package/lib/builtin/internal/ERC20.d.ts +12 -279
- package/lib/builtin/internal/ERC20.js.map +1 -1
- package/lib/builtin/internal/ERC20Bytes.d.ts +11 -146
- package/lib/builtin/internal/ERC20Bytes.js.map +1 -1
- package/lib/builtin/internal/ERC721.d.ts +12 -222
- package/lib/builtin/internal/ERC721.js.map +1 -1
- package/lib/builtin/internal/WETH9.d.ts +16 -191
- package/lib/builtin/internal/WETH9.js.map +1 -1
- package/lib/builtin/internal/common.d.ts +3 -18
- package/lib/builtin/internal/common.js +6 -0
- package/lib/builtin/internal/common.js.map +1 -1
- package/lib/builtin/internal/eacaggregatorproxy_processor.d.ts +161 -168
- package/lib/builtin/internal/eacaggregatorproxy_processor.js +94 -288
- package/lib/builtin/internal/eacaggregatorproxy_processor.js.map +1 -1
- package/lib/builtin/internal/erc1155_processor.d.ts +45 -50
- package/lib/builtin/internal/erc1155_processor.js +68 -132
- package/lib/builtin/internal/erc1155_processor.js.map +1 -1
- package/lib/builtin/internal/erc20_processor.d.ts +59 -63
- package/lib/builtin/internal/erc20_processor.js +64 -155
- package/lib/builtin/internal/erc20_processor.js.map +1 -1
- package/lib/builtin/internal/erc20bytes_processor.d.ts +37 -40
- package/lib/builtin/internal/erc20bytes_processor.js +50 -118
- package/lib/builtin/internal/erc20bytes_processor.js.map +1 -1
- package/lib/builtin/internal/erc721_processor.d.ts +56 -60
- package/lib/builtin/internal/erc721_processor.js +66 -167
- package/lib/builtin/internal/erc721_processor.js.map +1 -1
- package/lib/builtin/internal/factories/EACAggregatorProxy__factory.d.ts +1 -2
- package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js +1 -1
- package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js.map +1 -1
- package/lib/builtin/internal/factories/ERC1155__factory.d.ts +1 -2
- package/lib/builtin/internal/factories/ERC1155__factory.js +1 -1
- package/lib/builtin/internal/factories/ERC1155__factory.js.map +1 -1
- package/lib/builtin/internal/factories/ERC20Bytes__factory.d.ts +1 -2
- package/lib/builtin/internal/factories/ERC20Bytes__factory.js +1 -1
- package/lib/builtin/internal/factories/ERC20Bytes__factory.js.map +1 -1
- package/lib/builtin/internal/factories/ERC20__factory.d.ts +1 -2
- package/lib/builtin/internal/factories/ERC20__factory.js +1 -1
- package/lib/builtin/internal/factories/ERC20__factory.js.map +1 -1
- package/lib/builtin/internal/factories/ERC721__factory.d.ts +1 -2
- package/lib/builtin/internal/factories/ERC721__factory.js +1 -1
- package/lib/builtin/internal/factories/ERC721__factory.js.map +1 -1
- package/lib/builtin/internal/factories/WETH9__factory.d.ts +1 -2
- package/lib/builtin/internal/factories/WETH9__factory.js +1 -1
- package/lib/builtin/internal/factories/WETH9__factory.js.map +1 -1
- package/lib/builtin/internal/index.js +2 -24
- package/lib/builtin/internal/index.js.map +1 -1
- package/lib/builtin/internal/weth9_processor.d.ts +44 -49
- package/lib/builtin/internal/weth9_processor.js +70 -144
- package/lib/builtin/internal/weth9_processor.js.map +1 -1
- package/lib/builtin/weth9/index.js +3 -16
- package/lib/builtin/weth9/index.js.map +1 -1
- package/lib/builtin/weth9/test-utils.d.ts +5 -5
- package/lib/builtin/weth9/test-utils.js +8 -4
- package/lib/builtin/weth9/test-utils.js.map +1 -1
- package/lib/core/big-decimal.d.ts +6 -0
- package/lib/core/big-decimal.js +6 -2
- package/lib/core/big-decimal.js.map +1 -1
- package/lib/core/bind-options.d.ts +1 -1
- package/lib/core/bind-options.js +2 -2
- package/lib/core/bind-options.js.map +1 -1
- package/lib/core/context.d.ts +8 -14
- package/lib/core/context.js +7 -6
- package/lib/core/context.js.map +1 -1
- package/lib/core/core-plugin.d.ts +1 -1
- package/lib/core/core-plugin.js +1 -1
- package/lib/core/core-plugin.js.map +1 -1
- package/lib/core/generic-processor.test.js.map +1 -1
- package/lib/core/index.d.ts +0 -5
- package/lib/core/index.js +1 -9
- package/lib/core/index.js.map +1 -1
- package/lib/core/numberish.d.ts +2 -3
- package/lib/core/numberish.js +35 -33
- package/lib/core/numberish.js.map +1 -1
- package/lib/core/numberish.test.js.map +1 -1
- package/lib/core/sui-plugin.d.ts +1 -1
- package/lib/core/sui-plugin.js +1 -1
- package/lib/core/sui-plugin.js.map +1 -1
- package/lib/error.js +2 -2
- package/lib/error.js.map +1 -1
- package/lib/eth/account-processor-state.d.ts +5 -0
- package/lib/eth/account-processor-state.js +9 -0
- package/lib/eth/account-processor-state.js.map +1 -0
- package/lib/{core → eth}/account-processor.d.ts +4 -8
- package/lib/{core → eth}/account-processor.js +33 -42
- package/lib/eth/account-processor.js.map +1 -0
- package/lib/{core → eth}/base-processor-template.d.ts +7 -8
- package/lib/{core → eth}/base-processor-template.js +3 -3
- package/lib/eth/base-processor-template.js.map +1 -0
- package/lib/{core → eth}/base-processor.d.ts +7 -7
- package/lib/{core → eth}/base-processor.js +13 -18
- package/lib/eth/base-processor.js.map +1 -0
- package/lib/{binds.d.ts → eth/binds.d.ts} +4 -3
- package/lib/{binds.js → eth/binds.js} +3 -3
- package/lib/eth/binds.js.map +1 -0
- package/lib/{core → eth}/eth-plugin.d.ts +2 -2
- package/lib/{core → eth}/eth-plugin.js +19 -13
- package/lib/eth/eth-plugin.js.map +1 -0
- package/lib/{core → eth}/generic-processor.d.ts +3 -3
- package/lib/{core → eth}/generic-processor.js +5 -5
- package/lib/eth/generic-processor.js.map +1 -0
- package/lib/eth/index.d.ts +6 -0
- package/lib/eth/index.js +15 -0
- package/lib/eth/index.js.map +1 -0
- package/lib/eth/provider.d.ts +4 -0
- package/lib/eth/provider.js +74 -0
- package/lib/eth/provider.js.map +1 -0
- package/lib/{core → eth}/trace.d.ts +2 -2
- package/lib/{core → eth}/trace.js +0 -0
- package/lib/eth/trace.js.map +1 -0
- package/lib/index.d.ts +2 -2
- package/lib/index.js +7 -23
- package/lib/index.js.map +1 -1
- package/lib/target-ethers-sentio/event-handler.d.ts +1 -0
- package/lib/target-ethers-sentio/event-handler.js +21 -5
- package/lib/target-ethers-sentio/event-handler.js.map +1 -1
- package/lib/target-ethers-sentio/file.js +59 -57
- package/lib/target-ethers-sentio/file.js.map +1 -1
- package/lib/target-ethers-sentio/functions-handler.js +7 -4
- package/lib/target-ethers-sentio/functions-handler.js.map +1 -1
- package/lib/target-ethers-sentio/index.d.ts +1 -1
- package/lib/target-ethers-sentio/index.js +3 -5
- package/lib/target-ethers-sentio/index.js.map +1 -1
- package/lib/target-ethers-sentio/view-function.js +15 -15
- package/lib/target-ethers-sentio/view-function.js.map +1 -1
- package/lib/testing/metric-utils.js +2 -2
- package/lib/testing/metric-utils.js.map +1 -1
- package/lib/testing/test-processor-server.d.ts +11 -11
- package/lib/testing/test-processor-server.js +7 -12
- package/lib/testing/test-processor-server.js.map +1 -1
- package/lib/testing/test-provider.js +1 -6
- package/lib/testing/test-provider.js.map +1 -1
- package/lib/utils/conversion.d.ts +2 -2
- package/lib/utils/conversion.js +12 -5
- package/lib/utils/conversion.js.map +1 -1
- package/lib/utils/dex-price.d.ts +1 -1
- package/lib/utils/dex-price.js +5 -6
- 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.js +5 -27
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/token.d.ts +2 -3
- package/lib/utils/token.js +5 -6
- package/lib/utils/token.js.map +1 -1
- package/lib/webpack.config.js +1 -1
- package/package.json +7 -13
- package/src/builtin/eacaggregatorproxy/test-utils.ts +13 -9
- package/src/builtin/erc1155/test-utils.ts +13 -9
- package/src/builtin/erc20/test-utils.ts +10 -7
- package/src/builtin/erc20bytes/test-utils.ts +7 -5
- package/src/builtin/erc721/test-utils.ts +10 -7
- package/src/builtin/internal/EACAggregatorProxy.ts +20 -815
- package/src/builtin/internal/ERC1155.ts +20 -483
- package/src/builtin/internal/ERC20.ts +15 -641
- package/src/builtin/internal/ERC20Bytes.ts +13 -357
- package/src/builtin/internal/ERC721.ts +15 -601
- package/src/builtin/internal/WETH9.ts +20 -439
- package/src/builtin/internal/common.ts +33 -33
- package/src/builtin/internal/eacaggregatorproxy_processor.ts +344 -425
- package/src/builtin/internal/erc1155_processor.ts +202 -209
- package/src/builtin/internal/erc20_processor.ts +191 -225
- package/src/builtin/internal/erc20bytes_processor.ts +136 -165
- package/src/builtin/internal/erc721_processor.ts +218 -242
- package/src/builtin/internal/factories/EACAggregatorProxy__factory.ts +2 -3
- package/src/builtin/internal/factories/ERC1155__factory.ts +2 -3
- package/src/builtin/internal/factories/ERC20Bytes__factory.ts +2 -3
- package/src/builtin/internal/factories/ERC20__factory.ts +2 -3
- package/src/builtin/internal/factories/ERC721__factory.ts +2 -3
- package/src/builtin/internal/factories/WETH9__factory.ts +2 -3
- package/src/builtin/internal/weth9_processor.ts +176 -208
- package/src/builtin/weth9/test-utils.ts +13 -9
- package/src/core/big-decimal.ts +11 -0
- package/src/core/bind-options.ts +2 -3
- package/src/core/context.ts +14 -13
- package/src/core/core-plugin.ts +1 -1
- package/src/core/index.ts +0 -6
- package/src/core/numberish.ts +39 -40
- package/src/core/sui-plugin.ts +1 -1
- package/src/error.ts +1 -1
- package/src/eth/account-processor-state.ts +6 -0
- package/src/{core → eth}/account-processor.ts +40 -50
- package/src/{core → eth}/base-processor-template.ts +11 -12
- package/src/{core → eth}/base-processor.ts +37 -31
- package/src/{binds.ts → eth/binds.ts} +6 -5
- package/src/{core → eth}/eth-plugin.ts +19 -12
- package/src/{core → eth}/generic-processor.ts +5 -5
- package/src/eth/index.ts +6 -0
- package/src/eth/provider.ts +82 -0
- package/src/{core → eth}/trace.ts +2 -3
- package/src/index.ts +2 -3
- package/src/target-ethers-sentio/event-handler.ts +22 -5
- package/src/target-ethers-sentio/file.ts +65 -65
- package/src/target-ethers-sentio/functions-handler.ts +8 -4
- package/src/target-ethers-sentio/index.ts +1 -1
- package/src/target-ethers-sentio/view-function.ts +17 -18
- package/src/testing/metric-utils.ts +2 -2
- package/src/testing/test-processor-server.ts +23 -24
- package/src/testing/test-provider.ts +2 -7
- package/src/utils/conversion.ts +12 -5
- package/src/utils/dex-price.ts +3 -3
- package/src/utils/token.ts +10 -11
- package/src/webpack.config.js +1 -1
- package/lib/binds.js.map +0 -1
- package/lib/core/account-processor.js.map +0 -1
- package/lib/core/base-processor-template.js.map +0 -1
- package/lib/core/base-processor.js.map +0 -1
- package/lib/core/eth-plugin.js.map +0 -1
- package/lib/core/generic-processor.js.map +0 -1
- package/lib/core/trace.js.map +0 -1
|
@@ -4,7 +4,6 @@ exports.loadTestProvidersFromEnv = void 0;
|
|
|
4
4
|
const runtime_1 = require("@sentio/runtime");
|
|
5
5
|
const chain_1 = require("../utils/chain");
|
|
6
6
|
function loadTestProvidersFromEnv(requiredChainIds) {
|
|
7
|
-
const dummyConfig = {};
|
|
8
7
|
const found = [];
|
|
9
8
|
if (!Array.isArray(requiredChainIds)) {
|
|
10
9
|
requiredChainIds = [requiredChainIds];
|
|
@@ -16,12 +15,8 @@ function loadTestProvidersFromEnv(requiredChainIds) {
|
|
|
16
15
|
continue;
|
|
17
16
|
}
|
|
18
17
|
found.push(k);
|
|
19
|
-
|
|
20
|
-
ChainID: k,
|
|
21
|
-
Https: [http],
|
|
22
|
-
};
|
|
18
|
+
runtime_1.Endpoints.INSTANCE.chainServer.set(k, http);
|
|
23
19
|
}
|
|
24
|
-
(0, runtime_1.setProvider)(dummyConfig);
|
|
25
20
|
for (const id of requiredChainIds) {
|
|
26
21
|
if (!found.includes(id)) {
|
|
27
22
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-provider.js","sourceRoot":"","sources":["../../src/testing/test-provider.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"test-provider.js","sourceRoot":"","sources":["../../src/testing/test-provider.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,0CAA0C;AAE1C,SAAgB,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,iBAAS,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,mBAAS,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;AAvBD,4DAuBC","sourcesContent":["import { Endpoints } from '@sentio/runtime'\nimport { CHAIN_MAP } from '../utils/chain'\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"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BigNumber } from 'ethers';
|
|
2
1
|
import { BigDecimal } from '../core/big-decimal';
|
|
3
2
|
import { Numberish } from '../core';
|
|
4
3
|
import { MetricValue } from '@sentio/protos';
|
|
5
|
-
export declare function toBigDecimal(n:
|
|
4
|
+
export declare function toBigDecimal(n: bigint): BigDecimal;
|
|
5
|
+
export declare function bytesToBigInt(bytes: Uint8Array): bigint;
|
|
6
6
|
export declare function metricValueToNumberish(v: MetricValue): Numberish;
|
package/lib/utils/conversion.js
CHANGED
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.metricValueToNumberish = exports.toBigDecimal = void 0;
|
|
4
|
-
const ethers_1 = require("ethers");
|
|
3
|
+
exports.metricValueToNumberish = exports.bytesToBigInt = exports.toBigDecimal = void 0;
|
|
5
4
|
const big_decimal_1 = require("../core/big-decimal");
|
|
6
5
|
function toBigDecimal(n) {
|
|
7
6
|
return new big_decimal_1.BigDecimal(n.toString());
|
|
8
7
|
}
|
|
9
8
|
exports.toBigDecimal = toBigDecimal;
|
|
9
|
+
function bytesToBigInt(bytes) {
|
|
10
|
+
let intValue = BigInt(0);
|
|
11
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
12
|
+
intValue = intValue * BigInt(256) + BigInt(bytes[i]);
|
|
13
|
+
}
|
|
14
|
+
return intValue;
|
|
15
|
+
}
|
|
16
|
+
exports.bytesToBigInt = bytesToBigInt;
|
|
10
17
|
function metricValueToNumberish(v) {
|
|
11
18
|
if (v.doubleValue) {
|
|
12
19
|
return v.doubleValue;
|
|
13
20
|
}
|
|
14
21
|
if (v.bigInteger) {
|
|
15
|
-
|
|
22
|
+
let intValue = bytesToBigInt(v.bigInteger.data);
|
|
16
23
|
if (v.bigInteger.negative) {
|
|
17
|
-
|
|
24
|
+
intValue = -intValue;
|
|
18
25
|
}
|
|
19
|
-
return
|
|
26
|
+
return intValue;
|
|
20
27
|
}
|
|
21
28
|
if (v.bigDecimal) {
|
|
22
29
|
return new big_decimal_1.BigDecimal(v.bigDecimal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../src/utils/conversion.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../src/utils/conversion.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAIhD,SAAgB,YAAY,CAAC,CAAS;IACpC,OAAO,IAAI,wBAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;AACrC,CAAC;AAFD,oCAEC;AAED,SAAgB,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;AAND,sCAMC;AAED,SAAgB,sBAAsB,CAAC,CAAc;IACnD,IAAI,CAAC,CAAC,WAAW,EAAE;QACjB,OAAO,CAAC,CAAC,WAAW,CAAA;KACrB;IACD,IAAI,CAAC,CAAC,UAAU,EAAE;QAChB,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;IAED,IAAI,CAAC,CAAC,UAAU,EAAE;QAChB,OAAO,IAAI,wBAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;KACpC;IAED,MAAM,KAAK,CAAC,mDAAmD,CAAC,CAAA;AAClE,CAAC;AAjBD,wDAiBC","sourcesContent":["import { BigDecimal } from '../core/big-decimal'\nimport { Numberish } from '../core'\nimport { MetricValue } from '@sentio/protos'\n\nexport function toBigDecimal(n: bigint) {\n return new BigDecimal(n.toString())\n}\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\nexport 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"]}
|
package/lib/utils/dex-price.d.ts
CHANGED
package/lib/utils/dex-price.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.GoerliDexPrice = exports.EthereumDexPrice = exports.PriceUnit = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
7
5
|
const eacaggregatorproxy_processor_1 = require("../builtin/internal/eacaggregatorproxy_processor");
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const fs_1 = __importDefault(require("fs"));
|
|
6
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
7
|
+
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
8
|
+
// @ts-ignore type def not provided
|
|
10
9
|
const sync_1 = require("csv-parse/sync");
|
|
11
10
|
const token_1 = require("./token");
|
|
12
11
|
var PriceUnit;
|
|
@@ -88,7 +87,7 @@ class DexPrice {
|
|
|
88
87
|
});
|
|
89
88
|
let decimal = this.ASSETS_INFOS.get(asset);
|
|
90
89
|
if (!decimal) {
|
|
91
|
-
decimal = await contract.decimals();
|
|
90
|
+
decimal = Number(await contract.decimals());
|
|
92
91
|
this.ASSETS_INFOS.set(asset, decimal);
|
|
93
92
|
}
|
|
94
93
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dex-price.js","sourceRoot":"","sources":["../../src/utils/dex-price.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dex-price.js","sourceRoot":"","sources":["../../src/utils/dex-price.ts"],"names":[],"mappings":"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","sourcesContent":["import { getEACAggregatorProxyContract } from '../builtin/internal/eacaggregatorproxy_processor'\nimport path from 'path'\nimport fs from 'fs'\n// @ts-ignore type def not provided\nimport { parse } from 'csv-parse/sync'\nimport { BlockTag } from 'ethers/providers'\nimport { scaleDown } from './token'\n\ntype OralceRecord = {\n Pair: string\n Asset: string\n Type: string\n Address: string\n}\n\nexport enum PriceUnit {\n USD = 0,\n ETH = 1,\n BTC = 2,\n}\n\nexport interface DexPriceResult {\n price?: number\n error?: string\n}\n\n// Load price feed from https://docs.chain.link/docs/data-feeds/price-feeds/addresses/?network=ethereum\n// and then use EACAggregatorProxy contract to get price\nclass DexPrice {\n USD_ORACLE_MAP = new Map<string, string>()\n ETH_ORACLE_MAP = new Map<string, string>()\n BTC_ORACLE_MAP = new Map<string, string>()\n ASSETS_INFOS = new Map<string, number>()\n\n readonly chainId: number\n\n constructor(csvFileName: string, chainId: number) {\n this.chainId = chainId\n const csvFilePath = path.resolve(__dirname, csvFileName)\n const fileContent = fs.readFileSync(csvFilePath, { encoding: 'utf-8' })\n const headers = ['Pair', 'Asset', 'Type', 'Address']\n\n const records: OralceRecord[] = parse(fileContent, {\n delimiter: ',',\n columns: headers,\n skip_empty_lines: true,\n })\n\n for (const record of records) {\n const pair = record.Pair.split('/')\n const asset = pair[0].trim().toLowerCase()\n const target = pair[1].trim().toLowerCase()\n const address = record.Address.toLowerCase()\n if (target === 'usd') {\n this.USD_ORACLE_MAP.set(asset, address)\n } else if (target === 'eth') {\n this.ETH_ORACLE_MAP.set(asset, address)\n } else if (target == 'btc') {\n this.BTC_ORACLE_MAP.set(asset, address)\n } else {\n console.error('wrong asset record:' + JSON.stringify(record))\n }\n\n // console.log(asset, target, address)\n }\n }\n\n // asset: symbol of the asset\n // unit: usd, eth or btc\n // blockTag: blockNumber of block symbol like \"latest\"\n // returns the asset price,\n // throw exception if calling to price feed failed, e.g. due to a invalid block number\n async getPrice(\n asset: string,\n blockTag: BlockTag = 'latest',\n unit: PriceUnit = PriceUnit.USD\n ): Promise<DexPriceResult> {\n // if (chainId !== 1 && chainId !== 5) {\n // return {\n // error: \"current dex price only support chain 1 (mainnet) or 5 (goerli)\"\n // }\n // }\n\n let oracleMap = this.USD_ORACLE_MAP\n switch (unit) {\n case PriceUnit.ETH:\n oracleMap = this.ETH_ORACLE_MAP\n break\n case PriceUnit.BTC:\n oracleMap = this.BTC_ORACLE_MAP\n break\n default:\n }\n\n asset = asset.trim().toLowerCase()\n\n const addr = oracleMap.get(asset)\n if (!addr) {\n return {\n error: 'No price feed found for asset',\n }\n }\n\n const contract = getEACAggregatorProxyContract(addr, this.chainId)\n try {\n const price = await contract.latestAnswer({\n blockTag: blockTag,\n })\n\n let decimal = this.ASSETS_INFOS.get(asset)\n if (!decimal) {\n decimal = Number(await contract.decimals())\n this.ASSETS_INFOS.set(asset, decimal)\n }\n\n return {\n price: scaleDown(price, decimal).toNumber(),\n }\n } catch (e) {\n return {\n error:\n 'Price query error for ' +\n asset +\n ' failed at ' +\n addr +\n ' at chain ' +\n this.chainId +\n '. Details: ' +\n e.toString(),\n }\n }\n }\n}\n\nexport const EthereumDexPrice = new DexPrice('chainlink-oracles.csv', 1)\nexport const GoerliDexPrice = new DexPrice('chainlink-oracles-goerli.csv', 5)\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dex-price.test.js","sourceRoot":"","sources":["../../src/utils/dex-price.test.ts"],"names":[],"mappings":";;AAAA,2CAA8D;AAC9D,6CAAkD;AAClD,4DAAmE;AAEnE,+BAA6B;AAE7B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,eAAK,CAAC,KAAK,EAAE,CAAA;IACb,
|
|
1
|
+
{"version":3,"file":"dex-price.test.js","sourceRoot":"","sources":["../../src/utils/dex-price.test.ts"],"names":[],"mappings":";;AAAA,2CAA8D;AAC9D,6CAAkD;AAClD,4DAAmE;AAEnE,+BAA6B;AAE7B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,eAAK,CAAC,KAAK,EAAE,CAAA;IACb,oBAAoB;IAEpB,MAAM,aAAa,GAAG,IAAA,wCAAwB,EAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IAE1D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAE/C,MAAM,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,IAAI,GAAG,MAAM,4BAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC9D,IAAA,aAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;QAEjC,MAAM,QAAQ,GAAG,MAAM,4BAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAClE,IAAA,aAAM,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,GAAG,GAAG,MAAM,0BAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACzD,IAAA,aAAM,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { EthereumDexPrice, GoerliDexPrice } from './dex-price'\nimport { State, Endpoints } from '@sentio/runtime'\nimport { loadTestProvidersFromEnv } from '../testing/test-provider'\n\nimport { expect } from 'chai'\n\ndescribe('dex price tests', () => {\n State.reset()\n // Endpoints.reset()\n\n const haveProviders = loadTestProvidersFromEnv(['1', '5'])\n\n const testIf = haveProviders ? test : test.skip\n\n testIf('get price at mainnet', async () => {\n const usdc = await EthereumDexPrice.getPrice('usdc', 15677823)\n expect(usdc.price).eq(0.99991649)\n\n const compound = await EthereumDexPrice.getPrice('COMP', 15677823)\n expect(compound.price).eq(60.27)\n })\n\n testIf('get price at goerli', async () => {\n const dai = await GoerliDexPrice.getPrice('DAI', 7712734)\n expect(dai.price).eq(0.99971281)\n })\n})\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20.test.js","sourceRoot":"","sources":["../../src/utils/erc20.test.ts"],"names":[],"mappings":";;AAAA,6CAAkD;AAClD,mCAA2C;AAC3C,4DAAmE;AAEnE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,eAAK,CAAC,KAAK,EAAE,CAAA;IACb,
|
|
1
|
+
{"version":3,"file":"erc20.test.js","sourceRoot":"","sources":["../../src/utils/erc20.test.ts"],"names":[],"mappings":";;AAAA,6CAAkD;AAClD,mCAA2C;AAC3C,4DAAmE;AAEnE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,eAAK,CAAC,KAAK,EAAE,CAAA;IACb,oBAAoB;IAEpB,MAAM,aAAa,GAAG,IAAA,wCAAwB,EAAC,GAAG,CAAC,CAAA;IAEnD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAE/C,MAAM,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAiB,EAAC,4CAA4C,CAAC,CAAA;QAElF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAiB,EAAC,4CAA4C,CAAC,CAAA;QAElF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { State, Endpoints } from '@sentio/runtime'\nimport { getERC20TokenInfo } from './token'\nimport { loadTestProvidersFromEnv } from '../testing/test-provider'\n\ndescribe('erc20 tests', () => {\n State.reset()\n // Endpoints.reset()\n\n const haveProviders = loadTestProvidersFromEnv('1')\n\n const testIf = haveProviders ? test : test.skip\n\n testIf('test bytes32', async () => {\n const info = await getERC20TokenInfo('0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2')\n\n expect(info.decimal).toEqual(18)\n expect(info.symbol).toEqual('MKR')\n expect(info.name).toEqual('Maker')\n })\n\n testIf('test normal', async () => {\n const info = await getERC20TokenInfo('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48')\n\n expect(info.decimal).toEqual(6)\n expect(info.symbol).toEqual('USDC')\n expect(info.name).toEqual('USD Coin')\n })\n})\n"]}
|
package/lib/utils/index.js
CHANGED
|
@@ -1,31 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.dexPrice = exports.token = exports.conversion = exports.chain = void 0;
|
|
27
|
-
|
|
28
|
-
exports.
|
|
29
|
-
exports.
|
|
30
|
-
exports.
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
exports.chain = tslib_1.__importStar(require("./chain"));
|
|
6
|
+
exports.conversion = tslib_1.__importStar(require("./conversion"));
|
|
7
|
+
exports.token = tslib_1.__importStar(require("./token"));
|
|
8
|
+
exports.dexPrice = tslib_1.__importStar(require("./dex-price"));
|
|
31
9
|
//# sourceMappingURL=index.js.map
|
package/lib/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;AAAA,yDAAgC;AAChC,mEAA0C;AAC1C,yDAAgC;AAChC,gEAAuC","sourcesContent":["export * as chain from './chain'\nexport * as conversion from './conversion'\nexport * as token from './token'\nexport * as dexPrice from './dex-price'\n"]}
|
package/lib/utils/token.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
1
|
import { BigDecimal } from '../core/big-decimal';
|
|
3
2
|
export interface TokenInfo {
|
|
4
3
|
symbol: string;
|
|
@@ -11,5 +10,5 @@ export declare const NATIVE_ETH: {
|
|
|
11
10
|
name: string;
|
|
12
11
|
};
|
|
13
12
|
export declare function getERC20TokenInfo(tokenAddress: string, chainId?: number): Promise<TokenInfo>;
|
|
14
|
-
export declare function getER20NormalizedAmount(tokenAddress: string, amount:
|
|
15
|
-
export declare function scaleDown(amount:
|
|
13
|
+
export declare function getER20NormalizedAmount(tokenAddress: string, amount: bigint, chainId: number): Promise<BigDecimal>;
|
|
14
|
+
export declare function scaleDown(amount: bigint, decimal: number | bigint): BigDecimal;
|
package/lib/utils/token.js
CHANGED
|
@@ -5,7 +5,6 @@ const error_1 = require("../error");
|
|
|
5
5
|
const erc20_1 = require("../builtin/erc20");
|
|
6
6
|
const erc20bytes_processor_1 = require("../builtin/internal/erc20bytes_processor");
|
|
7
7
|
const big_decimal_1 = require("../core/big-decimal");
|
|
8
|
-
const conversion_1 = require("./conversion");
|
|
9
8
|
const ethers_1 = require("ethers");
|
|
10
9
|
exports.NATIVE_ETH = {
|
|
11
10
|
symbol: 'ETH',
|
|
@@ -17,7 +16,7 @@ async function getTokenInfoPromise(symbol, name, decimal) {
|
|
|
17
16
|
return {
|
|
18
17
|
symbol: await symbol,
|
|
19
18
|
name: await name,
|
|
20
|
-
decimal: await decimal,
|
|
19
|
+
decimal: Number(await decimal),
|
|
21
20
|
};
|
|
22
21
|
}
|
|
23
22
|
async function getERC20TokenInfo(tokenAddress, chainId = 1) {
|
|
@@ -35,14 +34,14 @@ async function getERC20TokenInfo(tokenAddress, chainId = 1) {
|
|
|
35
34
|
name = await contract.name();
|
|
36
35
|
}
|
|
37
36
|
catch (e) {
|
|
38
|
-
name = ethers_1.
|
|
37
|
+
name = (0, ethers_1.decodeBytes32String)(await bytesContract.name());
|
|
39
38
|
}
|
|
40
39
|
let symbol = '';
|
|
41
40
|
try {
|
|
42
41
|
symbol = await contract.symbol();
|
|
43
42
|
}
|
|
44
43
|
catch (e) {
|
|
45
|
-
symbol = ethers_1.
|
|
44
|
+
symbol = (0, ethers_1.decodeBytes32String)(await bytesContract.symbol());
|
|
46
45
|
}
|
|
47
46
|
const decimal = await contract.decimals();
|
|
48
47
|
const info = getTokenInfoPromise(symbol, name, decimal);
|
|
@@ -60,8 +59,8 @@ async function getER20NormalizedAmount(tokenAddress, amount, chainId) {
|
|
|
60
59
|
}
|
|
61
60
|
exports.getER20NormalizedAmount = getER20NormalizedAmount;
|
|
62
61
|
function scaleDown(amount, decimal) {
|
|
63
|
-
const divider = new big_decimal_1.BigDecimal(10).pow(decimal);
|
|
64
|
-
return
|
|
62
|
+
const divider = new big_decimal_1.BigDecimal(10).pow(Number(decimal));
|
|
63
|
+
return amount.asBigDecimal().dividedBy(divider);
|
|
65
64
|
}
|
|
66
65
|
exports.scaleDown = scaleDown;
|
|
67
66
|
//# sourceMappingURL=token.js.map
|
package/lib/utils/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/utils/token.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/utils/token.ts"],"names":[],"mappings":";;;AAAA,oCAA8C;AAC9C,4CAAmD;AACnD,mFAAgF;AAChF,qDAAgD;AAIhD,mCAA4C;AAQ/B,QAAA,UAAU,GAAG;IACxB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,YAAY;CACnB,CAAA;AAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAA;AAEzD,KAAK,UAAU,mBAAmB,CAChC,MAAuC,EACvC,IAAqC,EACrC,OAA+B;IAE/B,OAAO;QACL,MAAM,EAAE,MAAM,MAAM;QACpB,IAAI,EAAE,MAAM,IAAI;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,OAAO,CAAC;KAC/B,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,YAAoB,EAAE,OAAO,GAAG,CAAC;IACvE,MAAM,GAAG,GAAG,OAAO,GAAG,YAAY,CAAA;IAClC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,GAAG,EAAE;QACP,OAAO,GAAG,CAAA;KACX;IACD,MAAM,QAAQ,GAAG,IAAA,wBAAgB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,aAAa,GAAG,IAAA,4CAAqB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAElE,IAAI;QACF,kEAAkE;QAClE,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,IAAI;YACF,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;SAC7B;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,GAAG,IAAA,4BAAmB,EAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;SACvD;QAED,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI;YACF,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAA;SACjC;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,GAAG,IAAA,4BAAmB,EAAC,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,CAAA;SAC3D;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAA;QACzC,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAEvD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC1B,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAA,2BAAmB,EAAC,CAAC,EAAE,SAAS,CAAC,CAAA;KACxC;AACH,CAAC;AAjCD,8CAiCC;AAEM,KAAK,UAAU,uBAAuB,CAC3C,YAAoB,EACpB,MAAc,EACd,OAAe;IAEf,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAChE,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;AAC7C,CAAC;AAPD,0DAOC;AAED,SAAgB,SAAS,CAAC,MAAc,EAAE,OAAwB;IAChE,MAAM,OAAO,GAAG,IAAI,wBAAU,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IACvD,OAAO,MAAM,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AACjD,CAAC;AAHD,8BAGC","sourcesContent":["import { transformEtherError } from '../error'\nimport { getERC20Contract } from '../builtin/erc20'\nimport { getERC20BytesContract } from '../builtin/internal/erc20bytes_processor'\nimport { BigDecimal } from '../core/big-decimal'\nimport { toBigDecimal } from './conversion'\n// import { utils } from 'ethers'\nimport { PromiseOrValue } from '../builtin/internal/common'\nimport { decodeBytes32String } from 'ethers'\n\nexport interface TokenInfo {\n symbol: string\n name: string\n decimal: number\n}\n\nexport const NATIVE_ETH = {\n symbol: 'ETH',\n decimal: 18,\n name: 'Native ETH',\n}\n\nconst TOKEN_INFOS = new Map<string, Promise<TokenInfo>>()\n\nasync function getTokenInfoPromise(\n symbol: PromiseOrValue<string> | string,\n name: PromiseOrValue<string> | string,\n decimal: PromiseOrValue<bigint>\n): Promise<TokenInfo> {\n return {\n symbol: await symbol,\n name: await name,\n decimal: Number(await decimal),\n }\n}\n\nexport async function getERC20TokenInfo(tokenAddress: string, chainId = 1): Promise<TokenInfo> {\n const key = chainId + tokenAddress\n const res = TOKEN_INFOS.get(key)\n if (res) {\n return res\n }\n const contract = getERC20Contract(tokenAddress, chainId)\n const bytesContract = getERC20BytesContract(tokenAddress, chainId)\n\n try {\n // TODO maybe not do try catch, just do raw call the parse results\n let name = ''\n try {\n name = await contract.name()\n } catch (e) {\n name = decodeBytes32String(await bytesContract.name())\n }\n\n let symbol = ''\n try {\n symbol = await contract.symbol()\n } catch (e) {\n symbol = decodeBytes32String(await bytesContract.symbol())\n }\n\n const decimal = await contract.decimals()\n const info = getTokenInfoPromise(symbol, name, decimal)\n\n TOKEN_INFOS.set(key, info)\n return info\n } catch (e) {\n throw transformEtherError(e, undefined)\n }\n}\n\nexport async function getER20NormalizedAmount(\n tokenAddress: string,\n amount: bigint,\n chainId: number\n): Promise<BigDecimal> {\n const tokenInfo = await getERC20TokenInfo(tokenAddress, chainId)\n return scaleDown(amount, tokenInfo.decimal)\n}\n\nexport function scaleDown(amount: bigint, decimal: number | bigint) {\n const divider = new BigDecimal(10).pow(Number(decimal))\n return amount.asBigDecimal().dividedBy(divider)\n}\n"]}
|
package/lib/webpack.config.js
CHANGED
|
@@ -41,7 +41,7 @@ module.exports = {
|
|
|
41
41
|
if (/^nice-grpc.*$/.test(request)) {
|
|
42
42
|
return callback(null, 'commonjs ' + request)
|
|
43
43
|
}
|
|
44
|
-
if (/^@sentio\/(sdk|runtime|base|protos|bigdecimal).*$/.test(request)) {
|
|
44
|
+
if (/^@sentio\/(sdk|runtime|base|protos|bigdecimal|ethers).*$/.test(request)) {
|
|
45
45
|
return callback(null, 'commonjs ' + request)
|
|
46
46
|
}
|
|
47
47
|
callback()
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentio/sdk",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.41.0-rc.1",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"compile_target": "yarn tsc -b src/target-ethers-sentio/tsconfig.json",
|
|
7
7
|
"compile": "tsc -p . && cp src/utils/*.csv lib/utils && cp src/webpack.config.js lib",
|
|
@@ -17,24 +17,18 @@
|
|
|
17
17
|
"gen_bultin_evm": "typechain --target lib/target-ethers-sentio --out-dir src/builtin/internal 'src/abis/*.json'"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@
|
|
21
|
-
"@sentio/
|
|
22
|
-
"@sentio/protos": "^1.
|
|
23
|
-
"@sentio/runtime": "^1.
|
|
24
|
-
"@typechain/ethers-v5": "^10.0.0",
|
|
25
|
-
"command-line-args": "^5.2.1",
|
|
26
|
-
"command-line-usage": "^6.1.3",
|
|
20
|
+
"@sentio/bigdecimal": "^9.1.1-patch.3",
|
|
21
|
+
"@sentio/ethers-v6": "^1.0.15",
|
|
22
|
+
"@sentio/protos": "^1.41.0-rc.1",
|
|
23
|
+
"@sentio/runtime": "^1.41.0-rc.1",
|
|
27
24
|
"csv-parse": "^5.3.0",
|
|
28
|
-
"ethers": "
|
|
25
|
+
"ethers": "npm:@sentio/ethers@6.0.0-beta-exports.14",
|
|
29
26
|
"google-protobuf": "^3.15.8",
|
|
30
27
|
"nice-grpc": "^2.0.0",
|
|
31
28
|
"typechain": "^8.0.0",
|
|
32
29
|
"winston": "^3.8.2"
|
|
33
30
|
},
|
|
34
31
|
"devDependencies": {
|
|
35
|
-
"@types/command-line-args": "^5.2.0",
|
|
36
|
-
"@types/command-line-usage": "^5.0.2",
|
|
37
|
-
"@types/fs-extra": "^9.0.13",
|
|
38
32
|
"@types/google-protobuf": "^3.15.6"
|
|
39
33
|
},
|
|
40
34
|
"main": "./lib/index.js",
|
|
@@ -51,5 +45,5 @@
|
|
|
51
45
|
"typedoc": {
|
|
52
46
|
"entryPoint": "./src/index.ts"
|
|
53
47
|
},
|
|
54
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "b57184fbc61c5613ee131b32e02c9d01671b64e3"
|
|
55
49
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* Autogenerated file. Do not edit manually. */
|
|
2
2
|
/* tslint:disable */
|
|
3
3
|
/* eslint-disable */
|
|
4
|
-
import {
|
|
4
|
+
import { LogParams } from "ethers/providers";
|
|
5
5
|
import {
|
|
6
6
|
getEACAggregatorProxyContract,
|
|
7
7
|
AnswerUpdatedEventObject,
|
|
@@ -23,14 +23,15 @@ const mockField = {
|
|
|
23
23
|
export function mockAnswerUpdatedLog(
|
|
24
24
|
contractAddress: string,
|
|
25
25
|
event: AnswerUpdatedEventObject
|
|
26
|
-
):
|
|
26
|
+
): LogParams {
|
|
27
27
|
const contract = getEACAggregatorProxyContract(contractAddress);
|
|
28
28
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
29
|
-
|
|
29
|
+
"AnswerUpdated(int256,uint256,uint256)",
|
|
30
30
|
[event.current, event.roundId, event.updatedAt]
|
|
31
31
|
);
|
|
32
32
|
return {
|
|
33
33
|
...mockField,
|
|
34
|
+
index: 0,
|
|
34
35
|
address: contractAddress,
|
|
35
36
|
data: encodedLog.data,
|
|
36
37
|
topics: encodedLog.topics,
|
|
@@ -40,14 +41,15 @@ export function mockAnswerUpdatedLog(
|
|
|
40
41
|
export function mockNewRoundLog(
|
|
41
42
|
contractAddress: string,
|
|
42
43
|
event: NewRoundEventObject
|
|
43
|
-
):
|
|
44
|
+
): LogParams {
|
|
44
45
|
const contract = getEACAggregatorProxyContract(contractAddress);
|
|
45
46
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
46
|
-
|
|
47
|
+
"NewRound(uint256,address,uint256)",
|
|
47
48
|
[event.roundId, event.startedBy, event.startedAt]
|
|
48
49
|
);
|
|
49
50
|
return {
|
|
50
51
|
...mockField,
|
|
52
|
+
index: 0,
|
|
51
53
|
address: contractAddress,
|
|
52
54
|
data: encodedLog.data,
|
|
53
55
|
topics: encodedLog.topics,
|
|
@@ -57,14 +59,15 @@ export function mockNewRoundLog(
|
|
|
57
59
|
export function mockOwnershipTransferRequestedLog(
|
|
58
60
|
contractAddress: string,
|
|
59
61
|
event: OwnershipTransferRequestedEventObject
|
|
60
|
-
):
|
|
62
|
+
): LogParams {
|
|
61
63
|
const contract = getEACAggregatorProxyContract(contractAddress);
|
|
62
64
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
63
|
-
|
|
65
|
+
"OwnershipTransferRequested(address,address)",
|
|
64
66
|
[event.from, event.to]
|
|
65
67
|
);
|
|
66
68
|
return {
|
|
67
69
|
...mockField,
|
|
70
|
+
index: 0,
|
|
68
71
|
address: contractAddress,
|
|
69
72
|
data: encodedLog.data,
|
|
70
73
|
topics: encodedLog.topics,
|
|
@@ -74,14 +77,15 @@ export function mockOwnershipTransferRequestedLog(
|
|
|
74
77
|
export function mockOwnershipTransferredLog(
|
|
75
78
|
contractAddress: string,
|
|
76
79
|
event: OwnershipTransferredEventObject
|
|
77
|
-
):
|
|
80
|
+
): LogParams {
|
|
78
81
|
const contract = getEACAggregatorProxyContract(contractAddress);
|
|
79
82
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
80
|
-
|
|
83
|
+
"OwnershipTransferred(address,address)",
|
|
81
84
|
[event.from, event.to]
|
|
82
85
|
);
|
|
83
86
|
return {
|
|
84
87
|
...mockField,
|
|
88
|
+
index: 0,
|
|
85
89
|
address: contractAddress,
|
|
86
90
|
data: encodedLog.data,
|
|
87
91
|
topics: encodedLog.topics,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* Autogenerated file. Do not edit manually. */
|
|
2
2
|
/* tslint:disable */
|
|
3
3
|
/* eslint-disable */
|
|
4
|
-
import {
|
|
4
|
+
import { LogParams } from "ethers/providers";
|
|
5
5
|
import {
|
|
6
6
|
getERC1155Contract,
|
|
7
7
|
ApprovalForAllEventObject,
|
|
@@ -23,14 +23,15 @@ const mockField = {
|
|
|
23
23
|
export function mockApprovalForAllLog(
|
|
24
24
|
contractAddress: string,
|
|
25
25
|
event: ApprovalForAllEventObject
|
|
26
|
-
):
|
|
26
|
+
): LogParams {
|
|
27
27
|
const contract = getERC1155Contract(contractAddress);
|
|
28
28
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
29
|
-
|
|
29
|
+
"ApprovalForAll(address,address,bool)",
|
|
30
30
|
[event.account, event.operator, event.approved]
|
|
31
31
|
);
|
|
32
32
|
return {
|
|
33
33
|
...mockField,
|
|
34
|
+
index: 0,
|
|
34
35
|
address: contractAddress,
|
|
35
36
|
data: encodedLog.data,
|
|
36
37
|
topics: encodedLog.topics,
|
|
@@ -40,14 +41,15 @@ export function mockApprovalForAllLog(
|
|
|
40
41
|
export function mockTransferBatchLog(
|
|
41
42
|
contractAddress: string,
|
|
42
43
|
event: TransferBatchEventObject
|
|
43
|
-
):
|
|
44
|
+
): LogParams {
|
|
44
45
|
const contract = getERC1155Contract(contractAddress);
|
|
45
46
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
46
|
-
|
|
47
|
+
"TransferBatch(address,address,address,uint256[],uint256[])",
|
|
47
48
|
[event.operator, event.from, event.to, event.ids, event.values]
|
|
48
49
|
);
|
|
49
50
|
return {
|
|
50
51
|
...mockField,
|
|
52
|
+
index: 0,
|
|
51
53
|
address: contractAddress,
|
|
52
54
|
data: encodedLog.data,
|
|
53
55
|
topics: encodedLog.topics,
|
|
@@ -57,14 +59,15 @@ export function mockTransferBatchLog(
|
|
|
57
59
|
export function mockTransferSingleLog(
|
|
58
60
|
contractAddress: string,
|
|
59
61
|
event: TransferSingleEventObject
|
|
60
|
-
):
|
|
62
|
+
): LogParams {
|
|
61
63
|
const contract = getERC1155Contract(contractAddress);
|
|
62
64
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
63
|
-
|
|
65
|
+
"TransferSingle(address,address,address,uint256,uint256)",
|
|
64
66
|
[event.operator, event.from, event.to, event.id, event.value]
|
|
65
67
|
);
|
|
66
68
|
return {
|
|
67
69
|
...mockField,
|
|
70
|
+
index: 0,
|
|
68
71
|
address: contractAddress,
|
|
69
72
|
data: encodedLog.data,
|
|
70
73
|
topics: encodedLog.topics,
|
|
@@ -74,14 +77,15 @@ export function mockTransferSingleLog(
|
|
|
74
77
|
export function mockURILog(
|
|
75
78
|
contractAddress: string,
|
|
76
79
|
event: URIEventObject
|
|
77
|
-
):
|
|
80
|
+
): LogParams {
|
|
78
81
|
const contract = getERC1155Contract(contractAddress);
|
|
79
82
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
80
|
-
|
|
83
|
+
"URI(string,uint256)",
|
|
81
84
|
[event.value, event.id]
|
|
82
85
|
);
|
|
83
86
|
return {
|
|
84
87
|
...mockField,
|
|
88
|
+
index: 0,
|
|
85
89
|
address: contractAddress,
|
|
86
90
|
data: encodedLog.data,
|
|
87
91
|
topics: encodedLog.topics,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* Autogenerated file. Do not edit manually. */
|
|
2
2
|
/* tslint:disable */
|
|
3
3
|
/* eslint-disable */
|
|
4
|
-
import {
|
|
4
|
+
import { LogParams } from "ethers/providers";
|
|
5
5
|
import {
|
|
6
6
|
getERC20Contract,
|
|
7
7
|
ApprovalEventObject,
|
|
@@ -22,14 +22,15 @@ const mockField = {
|
|
|
22
22
|
export function mockApprovalLog(
|
|
23
23
|
contractAddress: string,
|
|
24
24
|
event: ApprovalEventObject
|
|
25
|
-
):
|
|
25
|
+
): LogParams {
|
|
26
26
|
const contract = getERC20Contract(contractAddress);
|
|
27
27
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
28
|
-
|
|
28
|
+
"Approval(address,address,uint256)",
|
|
29
29
|
[event.owner, event.spender, event.value]
|
|
30
30
|
);
|
|
31
31
|
return {
|
|
32
32
|
...mockField,
|
|
33
|
+
index: 0,
|
|
33
34
|
address: contractAddress,
|
|
34
35
|
data: encodedLog.data,
|
|
35
36
|
topics: encodedLog.topics,
|
|
@@ -39,14 +40,15 @@ export function mockApprovalLog(
|
|
|
39
40
|
export function mockOwnershipTransferredLog(
|
|
40
41
|
contractAddress: string,
|
|
41
42
|
event: OwnershipTransferredEventObject
|
|
42
|
-
):
|
|
43
|
+
): LogParams {
|
|
43
44
|
const contract = getERC20Contract(contractAddress);
|
|
44
45
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
45
|
-
|
|
46
|
+
"OwnershipTransferred(address,address)",
|
|
46
47
|
[event.previousOwner, event.newOwner]
|
|
47
48
|
);
|
|
48
49
|
return {
|
|
49
50
|
...mockField,
|
|
51
|
+
index: 0,
|
|
50
52
|
address: contractAddress,
|
|
51
53
|
data: encodedLog.data,
|
|
52
54
|
topics: encodedLog.topics,
|
|
@@ -56,14 +58,15 @@ export function mockOwnershipTransferredLog(
|
|
|
56
58
|
export function mockTransferLog(
|
|
57
59
|
contractAddress: string,
|
|
58
60
|
event: TransferEventObject
|
|
59
|
-
):
|
|
61
|
+
): LogParams {
|
|
60
62
|
const contract = getERC20Contract(contractAddress);
|
|
61
63
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
62
|
-
|
|
64
|
+
"Transfer(address,address,uint256)",
|
|
63
65
|
[event.from, event.to, event.value]
|
|
64
66
|
);
|
|
65
67
|
return {
|
|
66
68
|
...mockField,
|
|
69
|
+
index: 0,
|
|
67
70
|
address: contractAddress,
|
|
68
71
|
data: encodedLog.data,
|
|
69
72
|
topics: encodedLog.topics,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* Autogenerated file. Do not edit manually. */
|
|
2
2
|
/* tslint:disable */
|
|
3
3
|
/* eslint-disable */
|
|
4
|
-
import {
|
|
4
|
+
import { LogParams } from "ethers/providers";
|
|
5
5
|
import {
|
|
6
6
|
getERC20BytesContract,
|
|
7
7
|
ApprovalEventObject,
|
|
@@ -21,14 +21,15 @@ const mockField = {
|
|
|
21
21
|
export function mockApprovalLog(
|
|
22
22
|
contractAddress: string,
|
|
23
23
|
event: ApprovalEventObject
|
|
24
|
-
):
|
|
24
|
+
): LogParams {
|
|
25
25
|
const contract = getERC20BytesContract(contractAddress);
|
|
26
26
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
27
|
-
|
|
27
|
+
"Approval(address,address,uint256)",
|
|
28
28
|
[event.owner, event.spender, event.value]
|
|
29
29
|
);
|
|
30
30
|
return {
|
|
31
31
|
...mockField,
|
|
32
|
+
index: 0,
|
|
32
33
|
address: contractAddress,
|
|
33
34
|
data: encodedLog.data,
|
|
34
35
|
topics: encodedLog.topics,
|
|
@@ -38,14 +39,15 @@ export function mockApprovalLog(
|
|
|
38
39
|
export function mockTransferLog(
|
|
39
40
|
contractAddress: string,
|
|
40
41
|
event: TransferEventObject
|
|
41
|
-
):
|
|
42
|
+
): LogParams {
|
|
42
43
|
const contract = getERC20BytesContract(contractAddress);
|
|
43
44
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
|
44
|
-
|
|
45
|
+
"Transfer(address,address,uint256)",
|
|
45
46
|
[event.from, event.to, event.value]
|
|
46
47
|
);
|
|
47
48
|
return {
|
|
48
49
|
...mockField,
|
|
50
|
+
index: 0,
|
|
49
51
|
address: contractAddress,
|
|
50
52
|
data: encodedLog.data,
|
|
51
53
|
topics: encodedLog.topics,
|