@sentio/sdk 2.7.4-rc.2 → 2.8.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/aptos/context.d.ts +2 -0
- package/lib/aptos/context.js +8 -2
- package/lib/aptos/context.js.map +1 -1
- package/lib/aptos/ext/aptos-dex.js +2 -0
- package/lib/aptos/ext/aptos-dex.js.map +1 -1
- package/lib/core/base-context.d.ts +1 -0
- package/lib/core/base-context.js.map +1 -1
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.d.ts +2 -1
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.js +3 -2
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.js.map +1 -1
- package/lib/eth/builtin/internal/eacaggregatorproxy-test-utils.js +4 -4
- package/lib/eth/builtin/internal/eacaggregatorproxy-test-utils.js.map +1 -1
- package/lib/eth/builtin/internal/erc1155-processor.d.ts +2 -1
- package/lib/eth/builtin/internal/erc1155-processor.js +3 -2
- package/lib/eth/builtin/internal/erc1155-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc1155-test-utils.js +4 -4
- package/lib/eth/builtin/internal/erc1155-test-utils.js.map +1 -1
- package/lib/eth/builtin/internal/erc20-processor.d.ts +2 -1
- package/lib/eth/builtin/internal/erc20-processor.js +3 -2
- package/lib/eth/builtin/internal/erc20-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc20-test-utils.js +3 -3
- package/lib/eth/builtin/internal/erc20-test-utils.js.map +1 -1
- package/lib/eth/builtin/internal/erc20bytes-processor.d.ts +2 -1
- package/lib/eth/builtin/internal/erc20bytes-processor.js +3 -2
- package/lib/eth/builtin/internal/erc20bytes-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc20bytes-test-utils.js +2 -2
- package/lib/eth/builtin/internal/erc20bytes-test-utils.js.map +1 -1
- package/lib/eth/builtin/internal/erc721-processor.d.ts +2 -1
- package/lib/eth/builtin/internal/erc721-processor.js +3 -2
- package/lib/eth/builtin/internal/erc721-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc721-test-utils.js +3 -3
- package/lib/eth/builtin/internal/erc721-test-utils.js.map +1 -1
- package/lib/eth/builtin/internal/weth9-processor.d.ts +2 -1
- package/lib/eth/builtin/internal/weth9-processor.js +3 -2
- package/lib/eth/builtin/internal/weth9-processor.js.map +1 -1
- package/lib/eth/builtin/internal/weth9-test-utils.js +4 -4
- package/lib/eth/builtin/internal/weth9-test-utils.js.map +1 -1
- package/lib/eth/codegen/file.js +5 -3
- package/lib/eth/codegen/file.js.map +1 -1
- package/lib/eth/context.d.ts +1 -0
- package/lib/eth/context.js +3 -0
- package/lib/eth/context.js.map +1 -1
- package/lib/eth/index.d.ts +1 -1
- package/lib/eth/index.js +1 -1
- package/lib/eth/index.js.map +1 -1
- package/lib/eth/provider.d.ts +3 -1
- package/lib/eth/provider.js +9 -2
- package/lib/eth/provider.js.map +1 -1
- package/lib/solana/solana-context.d.ts +1 -0
- package/lib/solana/solana-context.js +4 -1
- package/lib/solana/solana-context.js.map +1 -1
- package/lib/sui/context.d.ts +1 -0
- package/lib/sui/context.js +4 -1
- package/lib/sui/context.js.map +1 -1
- package/lib/utils/erc20.test.js.map +1 -1
- package/lib/utils/token.d.ts +4 -2
- package/lib/utils/token.js +5 -3
- package/lib/utils/token.js.map +1 -1
- package/package.json +4 -4
- package/src/aptos/context.ts +10 -2
- package/src/aptos/ext/aptos-dex.ts +2 -0
- package/src/core/base-context.ts +2 -0
- package/src/eth/builtin/internal/eacaggregatorproxy-processor.ts +4 -1
- package/src/eth/builtin/internal/eacaggregatorproxy-test-utils.ts +4 -4
- package/src/eth/builtin/internal/erc1155-processor.ts +4 -1
- package/src/eth/builtin/internal/erc1155-test-utils.ts +4 -4
- package/src/eth/builtin/internal/erc20-processor.ts +4 -1
- package/src/eth/builtin/internal/erc20-test-utils.ts +3 -3
- package/src/eth/builtin/internal/erc20bytes-processor.ts +4 -1
- package/src/eth/builtin/internal/erc20bytes-test-utils.ts +2 -2
- package/src/eth/builtin/internal/erc721-processor.ts +4 -1
- package/src/eth/builtin/internal/erc721-test-utils.ts +3 -3
- package/src/eth/builtin/internal/weth9-processor.ts +4 -1
- package/src/eth/builtin/internal/weth9-test-utils.ts +4 -4
- package/src/eth/codegen/file.ts +7 -3
- package/src/eth/context.ts +4 -0
- package/src/eth/index.ts +1 -1
- package/src/eth/provider.ts +10 -2
- package/src/solana/solana-context.ts +5 -1
- package/src/sui/context.ts +5 -1
- package/src/utils/token.ts +10 -4
package/lib/eth/provider.js
CHANGED
@@ -1,19 +1,26 @@
|
|
1
1
|
import { Network, JsonRpcProvider } from 'ethers';
|
2
2
|
import PQueue from 'p-queue';
|
3
3
|
import { Endpoints } from '@sentio/runtime';
|
4
|
+
import { BaseContext } from '../core/index.js';
|
4
5
|
export const DummyProvider = new JsonRpcProvider('', Network.from(1));
|
5
6
|
const providers = new Map();
|
6
|
-
export function
|
7
|
+
export function getNetworkFromCtxOrNetworkish(networkish) {
|
7
8
|
if (!networkish) {
|
8
9
|
networkish = 1;
|
9
10
|
}
|
11
|
+
if (networkish instanceof BaseContext) {
|
12
|
+
networkish = networkish.getChainId();
|
13
|
+
}
|
10
14
|
if (typeof networkish === 'string') {
|
11
15
|
const id = parseInt(networkish);
|
12
16
|
if (!isNaN(id)) {
|
13
17
|
networkish = 1;
|
14
18
|
}
|
15
19
|
}
|
16
|
-
|
20
|
+
return Network.from(networkish);
|
21
|
+
}
|
22
|
+
export function getProvider(networkish) {
|
23
|
+
const network = getNetworkFromCtxOrNetworkish(networkish);
|
17
24
|
// TODO check if other key needed
|
18
25
|
const address = Endpoints.INSTANCE.chainServer.get(network.chainId.toString());
|
19
26
|
const key = network.chainId.toString() + '-' + address;
|
package/lib/eth/provider.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/eth/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAG3D,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/eth/provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { Provider, Network, JsonRpcProvider } from 'ethers'\nimport { Networkish } from 'ethers/providers'\n\nimport PQueue from 'p-queue'\nimport { Endpoints } from '@sentio/runtime'\nimport { BaseContext } from '../core/index.js'\n\nexport const DummyProvider = new JsonRpcProvider('', Network.from(1))\n\nconst providers = new Map<string, JsonRpcProvider>()\n\nexport function getNetworkFromCtxOrNetworkish(networkish?: BaseContext | Networkish) {\n if (!networkish) {\n networkish = 1\n }\n if (networkish instanceof BaseContext) {\n networkish = networkish.getChainId()\n }\n if (typeof networkish === 'string') {\n const id = parseInt(networkish)\n if (!isNaN(id)) {\n networkish = 1\n }\n }\n return Network.from(networkish)\n}\n\nexport function getProvider(networkish?: Networkish): Provider {\n const network = getNetworkFromCtxOrNetworkish(networkish)\n // TODO check if other key needed\n\n const address = Endpoints.INSTANCE.chainServer.get(network.chainId.toString())\n const key = network.chainId.toString() + '-' + address\n let provider = providers.get(key)\n\n if (provider) {\n return provider\n }\n\n if (address === undefined) {\n throw Error(\n 'Provider not found for chain ' +\n network.chainId +\n ', configured chains: ' +\n [...Endpoints.INSTANCE.chainServer.keys()].join(' ')\n )\n }\n provider = new QueuedStaticJsonRpcProvider(address, Network.from(network), Endpoints.INSTANCE.concurrency)\n providers.set(network.chainId.toString(), provider)\n return provider\n}\n\nfunction getTag(prefix: string, value: any): string {\n return (\n prefix +\n ':' +\n JSON.stringify(value, (k, v) => {\n if (v == null) {\n return 'null'\n }\n if (typeof v === 'bigint') {\n return `bigint:${v.toString()}`\n }\n if (typeof v === 'string') {\n return v.toLowerCase()\n }\n\n // Sort object keys\n if (typeof v === 'object' && !Array.isArray(v)) {\n const keys = Object.keys(v)\n keys.sort()\n return keys.reduce((accum, key) => {\n accum[key] = v[key]\n return accum\n }, <any>{})\n }\n\n return v\n })\n )\n}\n\nclass QueuedStaticJsonRpcProvider extends JsonRpcProvider {\n executor: PQueue\n #performCache = new Map<string, Promise<any>>()\n\n constructor(url: string, network: Network, concurrency: number) {\n // TODO re-enable match when possible\n super(url, network, { staticNetwork: network, batchMaxCount: 1 })\n this.executor = new PQueue({ concurrency: concurrency })\n }\n\n async send(method: string, params: Array<any>): Promise<any> {\n const tag = getTag(method, params)\n const block = params[params.length - 1]\n let perform = this.#performCache.get(tag)\n if (!perform) {\n perform = this.executor.add(() => super.send(method, params))\n this.#performCache.set(tag, perform)\n // For non latest block call, we cache permanently, otherwise we cache for one minute\n if (block === 'latest') {\n setTimeout(() => {\n if (this.#performCache.get(tag) === perform) {\n this.#performCache.delete(tag)\n }\n }, 60 * 1000)\n }\n }\n\n const result = await perform\n if (!result) {\n throw Error('Unexpected null response')\n }\n return result\n }\n}\n"]}
|
@@ -5,5 +5,6 @@ export declare class SolanaContext extends BaseContext {
|
|
5
5
|
programName: string;
|
6
6
|
blockNumber: bigint;
|
7
7
|
constructor(programName: string, network: string, address: string, slot: bigint);
|
8
|
+
getChainId(): string;
|
8
9
|
getMetaData(name: string, labels: Labels): RecordMetaData;
|
9
10
|
}
|
@@ -11,6 +11,9 @@ export class SolanaContext extends BaseContext {
|
|
11
11
|
this.address = address;
|
12
12
|
this.blockNumber = slot;
|
13
13
|
}
|
14
|
+
getChainId() {
|
15
|
+
return this.network;
|
16
|
+
}
|
14
17
|
getMetaData(name, labels) {
|
15
18
|
return {
|
16
19
|
address: this.address,
|
@@ -19,7 +22,7 @@ export class SolanaContext extends BaseContext {
|
|
19
22
|
transactionIndex: 0,
|
20
23
|
transactionHash: '',
|
21
24
|
logIndex: 0,
|
22
|
-
chainId: this.
|
25
|
+
chainId: this.getChainId(),
|
23
26
|
name: name,
|
24
27
|
labels: normalizeLabels(labels),
|
25
28
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solana-context.js","sourceRoot":"","sources":["../../src/solana/solana-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,WAAW,EAAkB,SAAS,EAAE,MAAM,aAAa,CAAA;AAE7F,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAQ;IACf,OAAO,CAAQ;IACf,WAAW,CAAQ;IACnB,WAAW,CAAQ;IAEnB,YAAY,WAAmB,EAAE,OAAe,EAAE,OAAe,EAAE,IAAY;QAC7E,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,SAAS,CAAC,cAAc,CAAA;QAClD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,EAAE;YACnB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,CAAC,
|
1
|
+
{"version":3,"file":"solana-context.js","sourceRoot":"","sources":["../../src/solana/solana-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,WAAW,EAAkB,SAAS,EAAE,MAAM,aAAa,CAAA;AAE7F,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAQ;IACf,OAAO,CAAQ;IACf,WAAW,CAAQ;IACnB,WAAW,CAAQ;IAEnB,YAAY,WAAmB,EAAE,OAAe,EAAE,OAAe,EAAE,IAAY;QAC7E,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,SAAS,CAAC,cAAc,CAAA;QAClD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,EAAE;YACnB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF","sourcesContent":["import { normalizeLabels, Labels, BaseContext, RecordMetaData, CHAIN_IDS } from '@sentio/sdk'\n\nexport class SolanaContext extends BaseContext {\n network: string\n address: string\n programName: string\n blockNumber: bigint\n\n constructor(programName: string, network: string, address: string, slot: bigint) {\n super()\n this.network = network || CHAIN_IDS.SOLANA_MAINNET\n this.programName = programName\n this.address = address\n this.blockNumber = slot\n }\n\n getChainId(): string {\n return this.network\n }\n\n getMetaData(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: this.programName,\n blockNumber: this.blockNumber,\n transactionIndex: 0,\n transactionHash: '', // TODO add\n logIndex: 0,\n chainId: this.getChainId(),\n name: name,\n labels: normalizeLabels(labels),\n }\n }\n}\n"]}
|
package/lib/sui/context.d.ts
CHANGED
@@ -10,5 +10,6 @@ export declare class SuiContext extends BaseContext {
|
|
10
10
|
slot: bigint;
|
11
11
|
transaction: SuiTransactionResponse;
|
12
12
|
constructor(moduleName: string, network: SuiNetwork, address: string, timestamp: Date, slot: bigint, transaction?: SuiTransactionResponse);
|
13
|
+
getChainId(): string;
|
13
14
|
getMetaData(name: string, labels: Labels): RecordMetaData;
|
14
15
|
}
|
package/lib/sui/context.js
CHANGED
@@ -18,6 +18,9 @@ export class SuiContext extends BaseContext {
|
|
18
18
|
this.transaction = transaction;
|
19
19
|
}
|
20
20
|
}
|
21
|
+
getChainId() {
|
22
|
+
return getChainId(this.network);
|
23
|
+
}
|
21
24
|
getMetaData(name, labels) {
|
22
25
|
return {
|
23
26
|
address: this.address,
|
@@ -26,7 +29,7 @@ export class SuiContext extends BaseContext {
|
|
26
29
|
transactionIndex: 0,
|
27
30
|
transactionHash: this.transaction?.certificate.transactionDigest || '',
|
28
31
|
logIndex: 0,
|
29
|
-
chainId: getChainId(
|
32
|
+
chainId: this.getChainId(),
|
30
33
|
name: name,
|
31
34
|
labels: normalizeLabels(labels),
|
32
35
|
};
|
package/lib/sui/context.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/sui/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAc,UAAU,EAAE,MAAM,cAAc,CAAA;AAGrD,MAAM,OAAO,UAAW,SAAQ,WAAW;IACzC,OAAO,CAAQ;IACf,OAAO,CAAY;IACnB,UAAU,CAAQ;IAClB,SAAS,CAAM;IACf,IAAI,CAAQ;IACZ,WAAW,CAAwB;IAEnC,YACE,UAAkB,EAClB,OAAmB,EACnB,OAAe,EACf,SAAe,EACf,IAAY,EACZ,WAAoC;QAEpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;SAC/B;IACH,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,iBAAiB,IAAI,EAAE;YACtE,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/sui/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAc,UAAU,EAAE,MAAM,cAAc,CAAA;AAGrD,MAAM,OAAO,UAAW,SAAQ,WAAW;IACzC,OAAO,CAAQ;IACf,OAAO,CAAY;IACnB,UAAU,CAAQ;IAClB,SAAS,CAAM;IACf,IAAI,CAAQ;IACZ,WAAW,CAAwB;IAEnC,YACE,UAAkB,EAClB,OAAmB,EACnB,OAAe,EACf,SAAe,EACf,IAAY,EACZ,WAAoC;QAEpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;SAC/B;IACH,CAAC;IAED,UAAU;QACR,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,iBAAiB,IAAI,EAAE;YACtE,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF","sourcesContent":["import { RecordMetaData } from '@sentio/protos'\nimport { type Labels, BaseContext, normalizeLabels } from '../index.js'\nimport { SuiNetwork, getChainId } from './network.js'\nimport { SuiTransactionResponse } from '@mysten/sui.js'\n\nexport class SuiContext extends BaseContext {\n address: string\n network: SuiNetwork\n moduleName: string\n timestamp: Date\n slot: bigint\n transaction: SuiTransactionResponse\n\n constructor(\n moduleName: string,\n network: SuiNetwork,\n address: string,\n timestamp: Date,\n slot: bigint,\n transaction?: SuiTransactionResponse\n ) {\n super()\n this.address = address.toLowerCase()\n this.network = network\n this.moduleName = moduleName\n this.timestamp = timestamp\n this.slot = slot\n if (transaction) {\n this.transaction = transaction\n }\n }\n\n getChainId(): string {\n return getChainId(this.network)\n }\n\n getMetaData(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: this.moduleName,\n blockNumber: this.slot,\n transactionIndex: 0,\n transactionHash: this.transaction?.certificate.transactionDigest || '', // TODO\n logIndex: 0,\n chainId: this.getChainId(),\n name: name,\n labels: normalizeLabels(labels),\n }\n }\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"erc20.test.js","sourceRoot":"","sources":["../../src/utils/erc20.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAEtE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,oBAAoB;IAEpB,MAAM,aAAa,GAAG,wBAAwB,CAAC,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,iBAAiB,CAAC,4CAA4C,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"erc20.test.js","sourceRoot":"","sources":["../../src/utils/erc20.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAEtE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,oBAAoB;IAEpB,MAAM,aAAa,GAAG,wBAAwB,CAAC,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,iBAAiB,CAAC,4CAA4C,EAAE,CAAC,CAAC,CAAA;QAErF,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,iBAAiB,CAAC,4CAA4C,EAAE,CAAC,CAAC,CAAA;QAErF,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 } from '@sentio/runtime'\nimport { getERC20TokenInfo } from './token.js'\nimport { loadTestProvidersFromEnv } from '../testing/test-provider.js'\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', 1)\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', 1)\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/token.d.ts
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
import { BigDecimal } from '../core/big-decimal.js';
|
2
|
+
import { Networkish } from 'ethers';
|
3
|
+
import { BaseContext } from '../core/index.js';
|
2
4
|
export interface TokenInfo {
|
3
5
|
symbol: string;
|
4
6
|
name: string;
|
@@ -9,5 +11,5 @@ export declare const NATIVE_ETH: {
|
|
9
11
|
decimal: number;
|
10
12
|
name: string;
|
11
13
|
};
|
12
|
-
export declare function getERC20TokenInfo(tokenAddress: string,
|
13
|
-
export declare function getER20NormalizedAmount(tokenAddress: string, amount: bigint,
|
14
|
+
export declare function getERC20TokenInfo(tokenAddress: string, contextOrNetworkish: BaseContext | Networkish): Promise<TokenInfo>;
|
15
|
+
export declare function getER20NormalizedAmount(tokenAddress: string, amount: bigint, contextOrNetworkish: BaseContext | Networkish): Promise<BigDecimal>;
|
package/lib/utils/token.js
CHANGED
@@ -2,6 +2,7 @@ import { getERC20Contract } from '../eth/builtin/erc20.js';
|
|
2
2
|
import { getERC20BytesContract } from '../eth/builtin/erc20bytes.js';
|
3
3
|
import { scaleDown } from '../core/big-decimal.js';
|
4
4
|
import { decodeBytes32String } from 'ethers';
|
5
|
+
import { getNetworkFromCtxOrNetworkish } from '../eth/index.js';
|
5
6
|
export const NATIVE_ETH = {
|
6
7
|
symbol: 'ETH',
|
7
8
|
decimal: 18,
|
@@ -15,7 +16,8 @@ async function getTokenInfoPromise(symbol, name, decimal) {
|
|
15
16
|
decimal: Number(await decimal),
|
16
17
|
};
|
17
18
|
}
|
18
|
-
export async function getERC20TokenInfo(tokenAddress,
|
19
|
+
export async function getERC20TokenInfo(tokenAddress, contextOrNetworkish) {
|
20
|
+
const chainId = getNetworkFromCtxOrNetworkish(contextOrNetworkish).chainId.toString();
|
19
21
|
const key = chainId + tokenAddress;
|
20
22
|
const res = TOKEN_INFOS.get(key);
|
21
23
|
if (res) {
|
@@ -42,8 +44,8 @@ export async function getERC20TokenInfo(tokenAddress, chainId = 1) {
|
|
42
44
|
TOKEN_INFOS.set(key, info);
|
43
45
|
return info;
|
44
46
|
}
|
45
|
-
export async function getER20NormalizedAmount(tokenAddress, amount,
|
46
|
-
const tokenInfo = await getERC20TokenInfo(tokenAddress,
|
47
|
+
export async function getER20NormalizedAmount(tokenAddress, amount, contextOrNetworkish) {
|
48
|
+
const tokenInfo = await getERC20TokenInfo(tokenAddress, contextOrNetworkish);
|
47
49
|
return scaleDown(amount, tokenInfo.decimal);
|
48
50
|
}
|
49
51
|
//# 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":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAc,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,mBAAmB,
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/utils/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAc,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAc,MAAM,QAAQ,CAAA;AAExD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAA;AAQ/D,MAAM,CAAC,MAAM,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;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,YAAoB,EACpB,mBAA6C;IAE7C,MAAM,OAAO,GAAG,6BAA6B,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;IACrF,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,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,aAAa,GAAG,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAElE,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI;QACF,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;KAC7B;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,GAAG,mBAAmB,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;KACvD;IAED,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI;QACF,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAA;KACjC;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,GAAG,mBAAmB,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,CAAA;KAC3D;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAA;IACzC,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAEvD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,YAAoB,EACpB,MAAc,EACd,mBAA6C;IAE7C,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAA;IAC5E,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;AAC7C,CAAC","sourcesContent":["import { getERC20Contract } from '../eth/builtin/erc20.js'\nimport { getERC20BytesContract } from '../eth/builtin/erc20bytes.js'\nimport { BigDecimal, scaleDown } from '../core/big-decimal.js'\nimport { PromiseOrValue } from '../eth/builtin/internal/common.js'\nimport { decodeBytes32String, Networkish } from 'ethers'\nimport { BaseContext } from '../core/index.js'\nimport { getNetworkFromCtxOrNetworkish } from '../eth/index.js'\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(\n tokenAddress: string,\n contextOrNetworkish: BaseContext | Networkish\n): Promise<TokenInfo> {\n const chainId = getNetworkFromCtxOrNetworkish(contextOrNetworkish).chainId.toString()\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 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}\n\nexport async function getER20NormalizedAmount(\n tokenAddress: string,\n amount: bigint,\n contextOrNetworkish: BaseContext | Networkish\n): Promise<BigDecimal> {\n const tokenInfo = await getERC20TokenInfo(tokenAddress, contextOrNetworkish)\n return scaleDown(amount, tokenInfo.decimal)\n}\n"]}
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sentio/sdk",
|
3
3
|
"license": "Apache-2.0",
|
4
|
-
"version": "2.
|
4
|
+
"version": "2.8.0-rc.2",
|
5
5
|
"type": "module",
|
6
6
|
"scripts": {
|
7
7
|
"compile": "tsc && cp src/utils/*.csv lib/utils && cp src/tsup.config.ts lib",
|
@@ -23,8 +23,8 @@
|
|
23
23
|
"@project-serum/anchor": "^0.26.0",
|
24
24
|
"@sentio/bigdecimal": "^9.1.1-patch.3",
|
25
25
|
"@sentio/ethers-v6": "^1.0.25",
|
26
|
-
"@sentio/protos": "^2.
|
27
|
-
"@sentio/runtime": "^2.
|
26
|
+
"@sentio/protos": "^2.8.0-rc.2",
|
27
|
+
"@sentio/runtime": "^2.8.0-rc.2",
|
28
28
|
"@solana/web3.js": "^1.73.2",
|
29
29
|
"@types/prettier": "^2.7.2",
|
30
30
|
"aptos-sdk": "npm:aptos@^1.7.1",
|
@@ -80,5 +80,5 @@
|
|
80
80
|
"engines": {
|
81
81
|
"node": ">=16"
|
82
82
|
},
|
83
|
-
"gitHead": "
|
83
|
+
"gitHead": "1ec4e97cc7cf3f0cca1bba30d11f89d77b87e85c"
|
84
84
|
}
|
package/src/aptos/context.ts
CHANGED
@@ -27,6 +27,10 @@ export class AptosContext extends BaseContext {
|
|
27
27
|
}
|
28
28
|
}
|
29
29
|
|
30
|
+
getChainId(): string {
|
31
|
+
return getChainId(this.network)
|
32
|
+
}
|
33
|
+
|
30
34
|
getMetaData(name: string, labels: Labels): RecordMetaData {
|
31
35
|
return {
|
32
36
|
address: this.address,
|
@@ -35,7 +39,7 @@ export class AptosContext extends BaseContext {
|
|
35
39
|
transactionIndex: 0,
|
36
40
|
transactionHash: this.transaction?.hash || '', // TODO
|
37
41
|
logIndex: 0,
|
38
|
-
chainId: getChainId(
|
42
|
+
chainId: this.getChainId(),
|
39
43
|
name: name,
|
40
44
|
labels: normalizeLabels(labels),
|
41
45
|
}
|
@@ -56,6 +60,10 @@ export class AptosResourceContext extends BaseContext {
|
|
56
60
|
this.timestampInMicros = timestampInMicros
|
57
61
|
}
|
58
62
|
|
63
|
+
getChainId(): string {
|
64
|
+
return getChainId(this.network)
|
65
|
+
}
|
66
|
+
|
59
67
|
getMetaData(name: string, labels: Labels): RecordMetaData {
|
60
68
|
return {
|
61
69
|
address: this.address,
|
@@ -64,7 +72,7 @@ export class AptosResourceContext extends BaseContext {
|
|
64
72
|
transactionIndex: 0,
|
65
73
|
transactionHash: '',
|
66
74
|
logIndex: 0,
|
67
|
-
chainId: getChainId(
|
75
|
+
chainId: this.getChainId(),
|
68
76
|
name: name,
|
69
77
|
labels: normalizeLabels(labels),
|
70
78
|
}
|
@@ -84,12 +84,14 @@ export class AptosDex<T> {
|
|
84
84
|
if (resultX.gt(0)) {
|
85
85
|
this.volumeByCoin.record(ctx, resultX, {
|
86
86
|
coin: coinXInfo.symbol,
|
87
|
+
bridge: coinXInfo.bridge,
|
87
88
|
type: coinXInfo.token_type.type,
|
88
89
|
})
|
89
90
|
}
|
90
91
|
if (resultY.gt(0)) {
|
91
92
|
this.volumeByCoin.record(ctx, resultY, {
|
92
93
|
coin: coinYInfo.symbol,
|
94
|
+
bridge: coinYInfo.bridge,
|
93
95
|
type: coinYInfo.token_type.type,
|
94
96
|
})
|
95
97
|
}
|
package/src/core/base-context.ts
CHANGED
@@ -19,7 +19,9 @@ import {
|
|
19
19
|
ContractView,
|
20
20
|
DummyProvider,
|
21
21
|
TypedCallTrace,
|
22
|
+
getNetworkFromCtxOrNetworkish,
|
22
23
|
} from "@sentio/sdk/eth";
|
24
|
+
import { BaseContext } from "@sentio/sdk";
|
23
25
|
import { EthFetchConfig } from "@sentio/protos";
|
24
26
|
|
25
27
|
import { EACAggregatorProxy, EACAggregatorProxy__factory } from "./index.js";
|
@@ -1086,8 +1088,9 @@ export class EACAggregatorProxyProcessorTemplate extends BaseProcessorTemplate<
|
|
1086
1088
|
|
1087
1089
|
export function getEACAggregatorProxyContract(
|
1088
1090
|
address: string,
|
1089
|
-
|
1091
|
+
contextOrNetwork: BaseContext | Networkish
|
1090
1092
|
): EACAggregatorProxyContractView {
|
1093
|
+
const network = getNetworkFromCtxOrNetworkish(contextOrNetwork);
|
1091
1094
|
let contract = getContractByABI(
|
1092
1095
|
"EACAggregatorProxy",
|
1093
1096
|
address,
|
@@ -24,7 +24,7 @@ export function mockAnswerUpdatedLog(
|
|
24
24
|
contractAddress: string,
|
25
25
|
event: AnswerUpdatedEventObject
|
26
26
|
): LogParams {
|
27
|
-
const contract = getEACAggregatorProxyContract(contractAddress);
|
27
|
+
const contract = getEACAggregatorProxyContract(contractAddress, 1);
|
28
28
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
29
29
|
"AnswerUpdated(int256,uint256,uint256)",
|
30
30
|
[event.current, event.roundId, event.updatedAt]
|
@@ -42,7 +42,7 @@ export function mockNewRoundLog(
|
|
42
42
|
contractAddress: string,
|
43
43
|
event: NewRoundEventObject
|
44
44
|
): LogParams {
|
45
|
-
const contract = getEACAggregatorProxyContract(contractAddress);
|
45
|
+
const contract = getEACAggregatorProxyContract(contractAddress, 1);
|
46
46
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
47
47
|
"NewRound(uint256,address,uint256)",
|
48
48
|
[event.roundId, event.startedBy, event.startedAt]
|
@@ -60,7 +60,7 @@ export function mockOwnershipTransferRequestedLog(
|
|
60
60
|
contractAddress: string,
|
61
61
|
event: OwnershipTransferRequestedEventObject
|
62
62
|
): LogParams {
|
63
|
-
const contract = getEACAggregatorProxyContract(contractAddress);
|
63
|
+
const contract = getEACAggregatorProxyContract(contractAddress, 1);
|
64
64
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
65
65
|
"OwnershipTransferRequested(address,address)",
|
66
66
|
[event.from, event.to]
|
@@ -78,7 +78,7 @@ export function mockOwnershipTransferredLog(
|
|
78
78
|
contractAddress: string,
|
79
79
|
event: OwnershipTransferredEventObject
|
80
80
|
): LogParams {
|
81
|
-
const contract = getEACAggregatorProxyContract(contractAddress);
|
81
|
+
const contract = getEACAggregatorProxyContract(contractAddress, 1);
|
82
82
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
83
83
|
"OwnershipTransferred(address,address)",
|
84
84
|
[event.from, event.to]
|
@@ -19,7 +19,9 @@ import {
|
|
19
19
|
ContractView,
|
20
20
|
DummyProvider,
|
21
21
|
TypedCallTrace,
|
22
|
+
getNetworkFromCtxOrNetworkish,
|
22
23
|
} from "@sentio/sdk/eth";
|
24
|
+
import { BaseContext } from "@sentio/sdk";
|
23
25
|
import { EthFetchConfig } from "@sentio/protos";
|
24
26
|
|
25
27
|
import { ERC1155, ERC1155__factory } from "./index.js";
|
@@ -509,8 +511,9 @@ export class ERC1155ProcessorTemplate extends BaseProcessorTemplate<
|
|
509
511
|
|
510
512
|
export function getERC1155Contract(
|
511
513
|
address: string,
|
512
|
-
|
514
|
+
contextOrNetwork: BaseContext | Networkish
|
513
515
|
): ERC1155ContractView {
|
516
|
+
const network = getNetworkFromCtxOrNetworkish(contextOrNetwork);
|
514
517
|
let contract = getContractByABI(
|
515
518
|
"ERC1155",
|
516
519
|
address,
|
@@ -24,7 +24,7 @@ export function mockApprovalForAllLog(
|
|
24
24
|
contractAddress: string,
|
25
25
|
event: ApprovalForAllEventObject
|
26
26
|
): LogParams {
|
27
|
-
const contract = getERC1155Contract(contractAddress);
|
27
|
+
const contract = getERC1155Contract(contractAddress, 1);
|
28
28
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
29
29
|
"ApprovalForAll(address,address,bool)",
|
30
30
|
[event.account, event.operator, event.approved]
|
@@ -42,7 +42,7 @@ export function mockTransferBatchLog(
|
|
42
42
|
contractAddress: string,
|
43
43
|
event: TransferBatchEventObject
|
44
44
|
): LogParams {
|
45
|
-
const contract = getERC1155Contract(contractAddress);
|
45
|
+
const contract = getERC1155Contract(contractAddress, 1);
|
46
46
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
47
47
|
"TransferBatch(address,address,address,uint256[],uint256[])",
|
48
48
|
[event.operator, event.from, event.to, event.ids, event.values]
|
@@ -60,7 +60,7 @@ export function mockTransferSingleLog(
|
|
60
60
|
contractAddress: string,
|
61
61
|
event: TransferSingleEventObject
|
62
62
|
): LogParams {
|
63
|
-
const contract = getERC1155Contract(contractAddress);
|
63
|
+
const contract = getERC1155Contract(contractAddress, 1);
|
64
64
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
65
65
|
"TransferSingle(address,address,address,uint256,uint256)",
|
66
66
|
[event.operator, event.from, event.to, event.id, event.value]
|
@@ -78,7 +78,7 @@ export function mockURILog(
|
|
78
78
|
contractAddress: string,
|
79
79
|
event: URIEventObject
|
80
80
|
): LogParams {
|
81
|
-
const contract = getERC1155Contract(contractAddress);
|
81
|
+
const contract = getERC1155Contract(contractAddress, 1);
|
82
82
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
83
83
|
"URI(string,uint256)",
|
84
84
|
[event.value, event.id]
|
@@ -19,7 +19,9 @@ import {
|
|
19
19
|
ContractView,
|
20
20
|
DummyProvider,
|
21
21
|
TypedCallTrace,
|
22
|
+
getNetworkFromCtxOrNetworkish,
|
22
23
|
} from "@sentio/sdk/eth";
|
24
|
+
import { BaseContext } from "@sentio/sdk";
|
23
25
|
import { EthFetchConfig } from "@sentio/protos";
|
24
26
|
|
25
27
|
import { ERC20, ERC20__factory } from "./index.js";
|
@@ -622,8 +624,9 @@ export class ERC20ProcessorTemplate extends BaseProcessorTemplate<
|
|
622
624
|
|
623
625
|
export function getERC20Contract(
|
624
626
|
address: string,
|
625
|
-
|
627
|
+
contextOrNetwork: BaseContext | Networkish
|
626
628
|
): ERC20ContractView {
|
629
|
+
const network = getNetworkFromCtxOrNetworkish(contextOrNetwork);
|
627
630
|
let contract = getContractByABI(
|
628
631
|
"ERC20",
|
629
632
|
address,
|
@@ -23,7 +23,7 @@ export function mockApprovalLog(
|
|
23
23
|
contractAddress: string,
|
24
24
|
event: ApprovalEventObject
|
25
25
|
): LogParams {
|
26
|
-
const contract = getERC20Contract(contractAddress);
|
26
|
+
const contract = getERC20Contract(contractAddress, 1);
|
27
27
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
28
28
|
"Approval(address,address,uint256)",
|
29
29
|
[event.owner, event.spender, event.value]
|
@@ -41,7 +41,7 @@ export function mockOwnershipTransferredLog(
|
|
41
41
|
contractAddress: string,
|
42
42
|
event: OwnershipTransferredEventObject
|
43
43
|
): LogParams {
|
44
|
-
const contract = getERC20Contract(contractAddress);
|
44
|
+
const contract = getERC20Contract(contractAddress, 1);
|
45
45
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
46
46
|
"OwnershipTransferred(address,address)",
|
47
47
|
[event.previousOwner, event.newOwner]
|
@@ -59,7 +59,7 @@ export function mockTransferLog(
|
|
59
59
|
contractAddress: string,
|
60
60
|
event: TransferEventObject
|
61
61
|
): LogParams {
|
62
|
-
const contract = getERC20Contract(contractAddress);
|
62
|
+
const contract = getERC20Contract(contractAddress, 1);
|
63
63
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
64
64
|
"Transfer(address,address,uint256)",
|
65
65
|
[event.from, event.to, event.value]
|
@@ -19,7 +19,9 @@ import {
|
|
19
19
|
ContractView,
|
20
20
|
DummyProvider,
|
21
21
|
TypedCallTrace,
|
22
|
+
getNetworkFromCtxOrNetworkish,
|
22
23
|
} from "@sentio/sdk/eth";
|
24
|
+
import { BaseContext } from "@sentio/sdk";
|
23
25
|
import { EthFetchConfig } from "@sentio/protos";
|
24
26
|
|
25
27
|
import { ERC20Bytes, ERC20Bytes__factory } from "./index.js";
|
@@ -418,8 +420,9 @@ export class ERC20BytesProcessorTemplate extends BaseProcessorTemplate<
|
|
418
420
|
|
419
421
|
export function getERC20BytesContract(
|
420
422
|
address: string,
|
421
|
-
|
423
|
+
contextOrNetwork: BaseContext | Networkish
|
422
424
|
): ERC20BytesContractView {
|
425
|
+
const network = getNetworkFromCtxOrNetworkish(contextOrNetwork);
|
423
426
|
let contract = getContractByABI(
|
424
427
|
"ERC20Bytes",
|
425
428
|
address,
|
@@ -19,7 +19,7 @@ export function mockApprovalLog(
|
|
19
19
|
contractAddress: string,
|
20
20
|
event: ApprovalEventObject
|
21
21
|
): LogParams {
|
22
|
-
const contract = getERC20BytesContract(contractAddress);
|
22
|
+
const contract = getERC20BytesContract(contractAddress, 1);
|
23
23
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
24
24
|
"Approval(address,address,uint256)",
|
25
25
|
[event.owner, event.spender, event.value]
|
@@ -37,7 +37,7 @@ export function mockTransferLog(
|
|
37
37
|
contractAddress: string,
|
38
38
|
event: TransferEventObject
|
39
39
|
): LogParams {
|
40
|
-
const contract = getERC20BytesContract(contractAddress);
|
40
|
+
const contract = getERC20BytesContract(contractAddress, 1);
|
41
41
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
42
42
|
"Transfer(address,address,uint256)",
|
43
43
|
[event.from, event.to, event.value]
|
@@ -19,7 +19,9 @@ import {
|
|
19
19
|
ContractView,
|
20
20
|
DummyProvider,
|
21
21
|
TypedCallTrace,
|
22
|
+
getNetworkFromCtxOrNetworkish,
|
22
23
|
} from "@sentio/sdk/eth";
|
24
|
+
import { BaseContext } from "@sentio/sdk";
|
23
25
|
import { EthFetchConfig } from "@sentio/protos";
|
24
26
|
|
25
27
|
import { ERC721, ERC721__factory } from "./index.js";
|
@@ -639,8 +641,9 @@ export class ERC721ProcessorTemplate extends BaseProcessorTemplate<
|
|
639
641
|
|
640
642
|
export function getERC721Contract(
|
641
643
|
address: string,
|
642
|
-
|
644
|
+
contextOrNetwork: BaseContext | Networkish
|
643
645
|
): ERC721ContractView {
|
646
|
+
const network = getNetworkFromCtxOrNetworkish(contextOrNetwork);
|
644
647
|
let contract = getContractByABI(
|
645
648
|
"ERC721",
|
646
649
|
address,
|
@@ -23,7 +23,7 @@ export function mockApprovalLog(
|
|
23
23
|
contractAddress: string,
|
24
24
|
event: ApprovalEventObject
|
25
25
|
): LogParams {
|
26
|
-
const contract = getERC721Contract(contractAddress);
|
26
|
+
const contract = getERC721Contract(contractAddress, 1);
|
27
27
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
28
28
|
"Approval(address,address,uint256)",
|
29
29
|
[event.owner, event.approved, event.tokenId]
|
@@ -41,7 +41,7 @@ export function mockApprovalForAllLog(
|
|
41
41
|
contractAddress: string,
|
42
42
|
event: ApprovalForAllEventObject
|
43
43
|
): LogParams {
|
44
|
-
const contract = getERC721Contract(contractAddress);
|
44
|
+
const contract = getERC721Contract(contractAddress, 1);
|
45
45
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
46
46
|
"ApprovalForAll(address,address,bool)",
|
47
47
|
[event.owner, event.operator, event.approved]
|
@@ -59,7 +59,7 @@ export function mockTransferLog(
|
|
59
59
|
contractAddress: string,
|
60
60
|
event: TransferEventObject
|
61
61
|
): LogParams {
|
62
|
-
const contract = getERC721Contract(contractAddress);
|
62
|
+
const contract = getERC721Contract(contractAddress, 1);
|
63
63
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
64
64
|
"Transfer(address,address,uint256)",
|
65
65
|
[event.from, event.to, event.tokenId]
|
@@ -19,7 +19,9 @@ import {
|
|
19
19
|
ContractView,
|
20
20
|
DummyProvider,
|
21
21
|
TypedCallTrace,
|
22
|
+
getNetworkFromCtxOrNetworkish,
|
22
23
|
} from "@sentio/sdk/eth";
|
24
|
+
import { BaseContext } from "@sentio/sdk";
|
23
25
|
import { EthFetchConfig } from "@sentio/protos";
|
24
26
|
|
25
27
|
import { WETH9, WETH9__factory } from "./index.js";
|
@@ -492,8 +494,9 @@ export class WETH9ProcessorTemplate extends BaseProcessorTemplate<
|
|
492
494
|
|
493
495
|
export function getWETH9Contract(
|
494
496
|
address: string,
|
495
|
-
|
497
|
+
contextOrNetwork: BaseContext | Networkish
|
496
498
|
): WETH9ContractView {
|
499
|
+
const network = getNetworkFromCtxOrNetworkish(contextOrNetwork);
|
497
500
|
let contract = getContractByABI(
|
498
501
|
"WETH9",
|
499
502
|
address,
|
@@ -24,7 +24,7 @@ export function mockApprovalLog(
|
|
24
24
|
contractAddress: string,
|
25
25
|
event: ApprovalEventObject
|
26
26
|
): LogParams {
|
27
|
-
const contract = getWETH9Contract(contractAddress);
|
27
|
+
const contract = getWETH9Contract(contractAddress, 1);
|
28
28
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
29
29
|
"Approval(address,address,uint256)",
|
30
30
|
[event.src, event.guy, event.wad]
|
@@ -42,7 +42,7 @@ export function mockTransferLog(
|
|
42
42
|
contractAddress: string,
|
43
43
|
event: TransferEventObject
|
44
44
|
): LogParams {
|
45
|
-
const contract = getWETH9Contract(contractAddress);
|
45
|
+
const contract = getWETH9Contract(contractAddress, 1);
|
46
46
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
47
47
|
"Transfer(address,address,uint256)",
|
48
48
|
[event.src, event.dst, event.wad]
|
@@ -60,7 +60,7 @@ export function mockDepositLog(
|
|
60
60
|
contractAddress: string,
|
61
61
|
event: DepositEventObject
|
62
62
|
): LogParams {
|
63
|
-
const contract = getWETH9Contract(contractAddress);
|
63
|
+
const contract = getWETH9Contract(contractAddress, 1);
|
64
64
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
65
65
|
"Deposit(address,uint256)",
|
66
66
|
[event.dst, event.wad]
|
@@ -78,7 +78,7 @@ export function mockWithdrawalLog(
|
|
78
78
|
contractAddress: string,
|
79
79
|
event: WithdrawalEventObject
|
80
80
|
): LogParams {
|
81
|
-
const contract = getWETH9Contract(contractAddress);
|
81
|
+
const contract = getWETH9Contract(contractAddress, 1);
|
82
82
|
const encodedLog = contract.rawContract.interface.encodeEventLog(
|
83
83
|
"Withdrawal(address,uint256)",
|
84
84
|
[event.src, event.wad]
|