@sentio/sdk 2.11.1 → 2.11.2-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/core/index.d.ts +1 -0
- package/lib/core/index.js.map +1 -1
- package/lib/core/normalization.test.d.ts +1 -0
- package/lib/core/normalization.test.js.map +1 -0
- package/lib/core/numberish.test.js.map +1 -1
- package/lib/{promise-or-void.d.ts → core/promises.d.ts} +1 -0
- package/lib/core/promises.js +2 -0
- package/lib/core/promises.js.map +1 -0
- package/lib/eth/account-processor.d.ts +1 -2
- package/lib/eth/account-processor.js.map +1 -1
- package/lib/eth/base-processor-template.d.ts +6 -7
- package/lib/eth/base-processor-template.js.map +1 -1
- package/lib/eth/base-processor.d.ts +6 -7
- package/lib/eth/base-processor.js +5 -4
- package/lib/eth/base-processor.js.map +1 -1
- package/lib/eth/builtin/internal/common.d.ts +2 -18
- package/lib/eth/builtin/internal/common.js.map +1 -1
- package/lib/eth/codegen/ethers-sentio.js +11 -32
- package/lib/eth/codegen/ethers-sentio.js.map +1 -1
- package/lib/eth/context.d.ts +1 -1
- package/lib/eth/context.js.map +1 -1
- package/lib/eth/eth.d.ts +49 -4
- package/lib/eth/eth.js +40 -0
- package/lib/eth/eth.js.map +1 -1
- package/lib/eth/index.d.ts +0 -1
- package/lib/eth/index.js.map +1 -1
- package/lib/testing/eth-facet.d.ts +1 -1
- package/lib/testing/eth-facet.js.map +1 -1
- package/package.json +5 -4
- package/src/core/index.ts +1 -0
- package/src/{promise-or-void.ts → core/promises.ts} +1 -0
- package/src/eth/account-processor.ts +3 -4
- package/src/eth/base-processor-template.ts +6 -7
- package/src/eth/base-processor.ts +12 -12
- package/src/eth/builtin/internal/common.ts +2 -25
- package/src/eth/codegen/ethers-sentio.ts +11 -32
- package/src/eth/context.ts +1 -1
- package/src/eth/eth.ts +100 -4
- package/src/eth/index.ts +0 -1
- package/src/testing/eth-facet.ts +1 -1
- package/lib/eth/trace.d.ts +0 -52
- package/lib/eth/trace.js +0 -43
- package/lib/eth/trace.js.map +0 -1
- package/lib/promise-or-void.js +0 -2
- package/lib/promise-or-void.js.map +0 -1
- package/src/eth/trace.ts +0 -104
package/lib/eth/eth.d.ts
CHANGED
@@ -1,11 +1,21 @@
|
|
1
1
|
import { LogParams, TransactionReceiptParams } from 'ethers/providers';
|
2
|
-
import { LogDescription, Result } from 'ethers';
|
2
|
+
import { LogDescription, Result, DeferredTopicFilter } from 'ethers';
|
3
3
|
import { ContractContext } from './context.js';
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
export interface IResult {
|
5
|
+
/**
|
6
|
+
* Returns the Result as a normal Array.
|
7
|
+
*/
|
8
|
+
toArray(): Array<any>;
|
9
|
+
/**
|
10
|
+
* Returns the Result as an Object with each name-value pair.
|
11
|
+
*/
|
12
|
+
toObject(): Record<string, any>;
|
13
|
+
}
|
14
|
+
export interface TypedEvent<TArgsArray extends Array<any> = any, TArgsObject = any> extends LogParams {
|
15
|
+
args: TArgsObject & IResult;
|
7
16
|
name: string;
|
8
17
|
}
|
18
|
+
export type TypedEventFilter<_TEvent extends TypedEvent> = DeferredTopicFilter;
|
9
19
|
export declare class SimpleEthersError extends Error {
|
10
20
|
e: Error;
|
11
21
|
constructor(message: string, e: Error);
|
@@ -26,3 +36,38 @@ export declare function formatEthData(data: {
|
|
26
36
|
transaction: import("ethers").TransactionResponseParams | undefined;
|
27
37
|
transactionReceipt: TransactionReceiptParams | undefined;
|
28
38
|
};
|
39
|
+
export interface TypedCallTrace<TArgsArray extends Array<any> = any, TArgsObject = any> extends Trace {
|
40
|
+
args: TArgsObject & IResult;
|
41
|
+
name: string;
|
42
|
+
functionSignature: string;
|
43
|
+
}
|
44
|
+
export interface Trace {
|
45
|
+
action: TraceAction;
|
46
|
+
blockHash: string;
|
47
|
+
blockNumber: number;
|
48
|
+
result: TraceResult;
|
49
|
+
subtraces: number;
|
50
|
+
traceAddress: number[];
|
51
|
+
transactionHash: string;
|
52
|
+
transactionPosition: number;
|
53
|
+
type: string;
|
54
|
+
error?: string;
|
55
|
+
}
|
56
|
+
export interface TraceAction {
|
57
|
+
from: string;
|
58
|
+
to?: string;
|
59
|
+
value: number;
|
60
|
+
gas: number;
|
61
|
+
input?: string;
|
62
|
+
callType?: string;
|
63
|
+
init?: string;
|
64
|
+
address?: string;
|
65
|
+
balance?: string;
|
66
|
+
refundAddress?: string;
|
67
|
+
}
|
68
|
+
export interface TraceResult {
|
69
|
+
gasUsed: number;
|
70
|
+
output?: string;
|
71
|
+
address?: string;
|
72
|
+
code?: string;
|
73
|
+
}
|
package/lib/eth/eth.js
CHANGED
@@ -93,4 +93,44 @@ export function formatEthData(data) {
|
|
93
93
|
transactionReceipt,
|
94
94
|
};
|
95
95
|
}
|
96
|
+
// const TRACE: Trace = {
|
97
|
+
// action: {
|
98
|
+
// from: '0xd771111cbfa2bbdafbf9f0e58b49b3f827da31f5',
|
99
|
+
// callType: 'call',
|
100
|
+
// gas: 0x12154,
|
101
|
+
// input:
|
102
|
+
// '0xb1a417f4000000000000000000000000d771111cbfa2bbdafbf9f0e58b49b3f827da31f5000000000000000000000000d771111cbfa2bbdafbf9f0e58b49b3f827da31f500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000131888b5aaf000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000',
|
103
|
+
// to: '0x0baba1ad5be3a5c0a66e7ac838a129bf948f1ea4',
|
104
|
+
// value: 0x131888b5aaf0000,
|
105
|
+
// },
|
106
|
+
// blockHash: '0x5451711bc530a7c04128fedbe149eb359c10eccd44a83909d448c5244c7eea26',
|
107
|
+
// blockNumber: 15533908,
|
108
|
+
// result: { gasUsed: 0x114c1, output: '0x' },
|
109
|
+
// subtraces: 1,
|
110
|
+
// traceAddress: [],
|
111
|
+
// transactionHash: '0x66dce11d6217042ed709a38e507e7762c93b1bde4a0447ae7a243493bbdffc0e',
|
112
|
+
// transactionPosition: 73,
|
113
|
+
// type: 'call',
|
114
|
+
// }
|
115
|
+
// const trac2: Trace =
|
116
|
+
// {
|
117
|
+
// "action": {
|
118
|
+
// "from": "0x95ba4cf87d6723ad9c0db21737d862be80e93911",
|
119
|
+
// "gas": 0x630d0b,
|
120
|
+
// "init": "0x608060405234801561001057600080fd5b50604051602080610b2983398101806040528101908080519060200190929190505050808060405180807f6f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e74617481526020017f696f6e000000000000000000000000000000000000000000000000000000000081525060230190506040518091039020600019167f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3600102600019161415156100c657fe5b6100de81610169640100000000026401000000009004565b5060405180807f6f72672e7a657070656c696e6f732e70726f78792e61646d696e000000000000815250601a0190506040518091039020600019167f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001026000191614151561014a57fe5b6101623361024e640100000000026401000000009004565b5050610290565b60006101878261027d6401000000000261084b176401000000009004565b1515610221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b600080823b905060008111915050919050565b61088a8061029f6000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610360565b005b3480156101ae57600080fd5b506101b761051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610576565b61021161020c610651565b610682565b565b61021b6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d9565b610265565b6102646101f9565b5b50565b6102706106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fa576102ac836106d9565b3073ffffffffffffffffffffffffffffffffffffffff163483836040518083838082843782019150509250505060006040518083038185875af19250505015156102f557600080fd5b610303565b6103026101f9565b5b505050565b60006103126106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103545761034d610651565b905061035d565b61035c6101f9565b5b90565b6103686106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561051257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610466576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048f6106a8565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050d81610748565b61051b565b61051a6101f9565b5b50565b60006105286106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561056a576105636106a8565b9050610573565b6105726101f9565b5b90565b61057e6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610647576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064f610777565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a3573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106e281610779565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b60006107848261084b565b151561081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820a4a547cfc7202c5acaaae74d428e988bc62ad5024eb0165532d3a8f91db4ed2400290000000000000000000000000882477e7895bdc5cea7cb1552ed914ab157fe56",
|
121
|
+
// "value": 0x0
|
122
|
+
// },
|
123
|
+
// "blockHash": "0xb2f6986457f5a24ff088a0beb5567c8c1fe2da02687c78e743507ee7c982b977",
|
124
|
+
// "blockNumber": 6082465,
|
125
|
+
// "result": {
|
126
|
+
// "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
127
|
+
// "code": "0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610360565b005b3480156101ae57600080fd5b506101b761051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610576565b61021161020c610651565b610682565b565b61021b6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d9565b610265565b6102646101f9565b5b50565b6102706106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fa576102ac836106d9565b3073ffffffffffffffffffffffffffffffffffffffff163483836040518083838082843782019150509250505060006040518083038185875af19250505015156102f557600080fd5b610303565b6103026101f9565b5b505050565b60006103126106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103545761034d610651565b905061035d565b61035c6101f9565b5b90565b6103686106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561051257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610466576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048f6106a8565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050d81610748565b61051b565b61051a6101f9565b5b50565b60006105286106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561056a576105636106a8565b9050610573565b6105726101f9565b5b90565b61057e6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610647576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064f610777565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a3573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106e281610779565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b60006107848261084b565b151561081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820a4a547cfc7202c5acaaae74d428e988bc62ad5024eb0165532d3a8f91db4ed240029",
|
128
|
+
// "gasUsed": 0x74f42
|
129
|
+
// },
|
130
|
+
// "subtraces": 0,
|
131
|
+
// "traceAddress": [],
|
132
|
+
// "transactionHash": "0xe7e0fe390354509cd08c9a0168536938600ddc552b3f7cb96030ebef62e75895",
|
133
|
+
// "transactionPosition": 22,
|
134
|
+
// "type": "create"
|
135
|
+
// }
|
96
136
|
//# sourceMappingURL=eth.js.map
|
package/lib/eth/eth.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eth.js","sourceRoot":"","sources":["../../src/eth/eth.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n LogParams,\n formatBlock,\n formatLog,\n TransactionReceiptParams,\n formatTransactionResponse,\n allowNull,\n arrayOf,\n formatHash,\n formatReceiptLog,\n object,\n formatData,\n} from 'ethers/providers'\nimport { CallExceptionError, LogDescription, Result } from 'ethers'\nimport { ContractContext } from './context.js'\nimport { Trace } from './trace.js'\nimport { getAddress } from 'ethers/address'\nimport { getBigInt, getNumber, hexlify } from 'ethers/utils'\n\nexport interface EthEvent<TArgsArray extends Array<any> = any, TArgsObject = any> extends LogParams {\n args: TArgsArray & TArgsObject & Result\n name: string\n}\n\nexport class SimpleEthersError extends Error {\n e: Error\n\n constructor(message: string, e: Error) {\n super(message)\n this.stack = e.stack\n }\n\n toString() {\n return this.message + '\\n' + this.stack?.toString()\n }\n}\n\nexport function transformEtherError(e: Error, ctx: ContractContext<any, any> | undefined): Error {\n if (e instanceof SimpleEthersError) {\n return e\n }\n\n const checkPage =\n 'Check here for possible cause and fix: https://docs.sentio.xyz/best-practices/handling-errors#ethers-error'\n\n let msg = ''\n const err = e as CallExceptionError\n if (err.code === 'CALL_EXCEPTION') {\n if (err.data === '0x') {\n if (ctx) {\n msg =\n \"jsonrpc eth_call return '0x' (likely contract not existed) at chain \" +\n ctx.chainId +\n ': ' +\n JSON.stringify(e)\n } else {\n msg = \"jsonrpc eth_call return '0x' (likely contract not existed): \" + JSON.stringify(err)\n }\n msg += '\\n' + checkPage\n return new SimpleEthersError(msg, err)\n }\n }\n\n msg = 'ethers call error\\n' + JSON.stringify(e) + '\\n' + e.stack?.toString() + '\\n' + checkPage\n return new Error(msg)\n}\n\nexport function fixEmptyKey(result: LogDescription): Result {\n const keys = []\n\n for (const [i, arg] of result.fragment.inputs.entries()) {\n if (arg.name === '') {\n keys.push('arg' + i)\n } else {\n keys.push(arg.name)\n }\n }\n return Result.fromItems(Array.from(result.args.values()), keys)\n}\n\nconst _formatTransactionReceipt = object(\n {\n to: allowNull(getAddress, null),\n from: allowNull(getAddress, null),\n contractAddress: allowNull(getAddress, null),\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n index: getNumber,\n root: allowNull(hexlify),\n gasUsed: getBigInt,\n logsBloom: allowNull(formatData),\n blockHash: formatHash,\n hash: formatHash,\n logs: allowNull(arrayOf(formatReceiptLog)), // Only thing that different\n blockNumber: getNumber,\n //confirmations: allowNull(getNumber, null),\n cumulativeGasUsed: getBigInt,\n effectiveGasPrice: allowNull(getBigInt),\n status: allowNull(getNumber),\n type: allowNull(getNumber, 0),\n },\n {\n effectiveGasPrice: ['gasPrice'],\n hash: ['transactionHash'],\n index: ['transactionIndex'],\n }\n)\n\nfunction formatTransactionReceipt(value: any): TransactionReceiptParams {\n return _formatTransactionReceipt(value)\n}\n\nexport function formatEthData(data: {\n log?: any\n block?: any\n trace?: any\n transaction?: any\n transactionReceipt?: any\n}) {\n const log = data.log ? formatLog(data.log) : undefined\n if (data.block && !data.block.transactions) {\n data.block.transactions = []\n }\n const block = data.block ? formatBlock(data.block) : undefined\n const trace = data.trace ? (data.trace as Trace) : undefined\n const transaction = data.transaction ? formatTransactionResponse(data.transaction) : undefined\n const transactionReceipt = data.transactionReceipt ? formatTransactionReceipt(data.transactionReceipt) : undefined\n return {\n log,\n block,\n trace,\n transaction,\n transactionReceipt,\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"eth.js","sourceRoot":"","sources":["../../src/eth/eth.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n LogParams,\n formatBlock,\n formatLog,\n TransactionReceiptParams,\n formatTransactionResponse,\n allowNull,\n arrayOf,\n formatHash,\n formatReceiptLog,\n object,\n formatData,\n} from 'ethers/providers'\nimport { CallExceptionError, LogDescription, Result, DeferredTopicFilter } from 'ethers'\nimport { ContractContext } from './context.js'\nimport { getAddress } from 'ethers/address'\nimport { getBigInt, getNumber, hexlify } from 'ethers/utils'\n\nexport interface IResult {\n /**\n * Returns the Result as a normal Array.\n */\n toArray(): Array<any>\n /**\n * Returns the Result as an Object with each name-value pair.\n */\n toObject(): Record<string, any>\n}\n\nexport interface TypedEvent<TArgsArray extends Array<any> = any, TArgsObject = any> extends LogParams {\n args: TArgsObject & IResult\n name: string\n}\n\nexport type TypedEventFilter<_TEvent extends TypedEvent> = DeferredTopicFilter\n\nexport class SimpleEthersError extends Error {\n e: Error\n\n constructor(message: string, e: Error) {\n super(message)\n this.stack = e.stack\n }\n\n toString() {\n return this.message + '\\n' + this.stack?.toString()\n }\n}\n\nexport function transformEtherError(e: Error, ctx: ContractContext<any, any> | undefined): Error {\n if (e instanceof SimpleEthersError) {\n return e\n }\n\n const checkPage =\n 'Check here for possible cause and fix: https://docs.sentio.xyz/best-practices/handling-errors#ethers-error'\n\n let msg = ''\n const err = e as CallExceptionError\n if (err.code === 'CALL_EXCEPTION') {\n if (err.data === '0x') {\n if (ctx) {\n msg =\n \"jsonrpc eth_call return '0x' (likely contract not existed) at chain \" +\n ctx.chainId +\n ': ' +\n JSON.stringify(e)\n } else {\n msg = \"jsonrpc eth_call return '0x' (likely contract not existed): \" + JSON.stringify(err)\n }\n msg += '\\n' + checkPage\n return new SimpleEthersError(msg, err)\n }\n }\n\n msg = 'ethers call error\\n' + JSON.stringify(e) + '\\n' + e.stack?.toString() + '\\n' + checkPage\n return new Error(msg)\n}\n\nexport function fixEmptyKey(result: LogDescription): Result {\n const keys = []\n\n for (const [i, arg] of result.fragment.inputs.entries()) {\n if (arg.name === '') {\n keys.push('arg' + i)\n } else {\n keys.push(arg.name)\n }\n }\n return Result.fromItems(Array.from(result.args.values()), keys)\n}\n\nconst _formatTransactionReceipt = object(\n {\n to: allowNull(getAddress, null),\n from: allowNull(getAddress, null),\n contractAddress: allowNull(getAddress, null),\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n index: getNumber,\n root: allowNull(hexlify),\n gasUsed: getBigInt,\n logsBloom: allowNull(formatData),\n blockHash: formatHash,\n hash: formatHash,\n logs: allowNull(arrayOf(formatReceiptLog)), // Only thing that different\n blockNumber: getNumber,\n //confirmations: allowNull(getNumber, null),\n cumulativeGasUsed: getBigInt,\n effectiveGasPrice: allowNull(getBigInt),\n status: allowNull(getNumber),\n type: allowNull(getNumber, 0),\n },\n {\n effectiveGasPrice: ['gasPrice'],\n hash: ['transactionHash'],\n index: ['transactionIndex'],\n }\n)\n\nfunction formatTransactionReceipt(value: any): TransactionReceiptParams {\n return _formatTransactionReceipt(value)\n}\n\nexport function formatEthData(data: {\n log?: any\n block?: any\n trace?: any\n transaction?: any\n transactionReceipt?: any\n}) {\n const log = data.log ? formatLog(data.log) : undefined\n if (data.block && !data.block.transactions) {\n data.block.transactions = []\n }\n const block = data.block ? formatBlock(data.block) : undefined\n const trace = data.trace ? (data.trace as Trace) : undefined\n const transaction = data.transaction ? formatTransactionResponse(data.transaction) : undefined\n const transactionReceipt = data.transactionReceipt ? formatTransactionReceipt(data.transactionReceipt) : undefined\n return {\n log,\n block,\n trace,\n transaction,\n transactionReceipt,\n }\n}\n\nexport interface TypedCallTrace<TArgsArray extends Array<any> = any, TArgsObject = any> extends Trace {\n args: TArgsObject & IResult\n name: string\n functionSignature: string\n}\n\nexport interface Trace {\n action: TraceAction\n blockHash: string\n blockNumber: number\n result: TraceResult\n subtraces: number\n traceAddress: number[]\n transactionHash: string\n transactionPosition: number\n type: string\n error?: string\n}\n// export type CallType = \"call\" | \"callcode\" | \"delegatecall\" | \"staticcall\"\n\nexport interface TraceAction {\n from: string\n to?: string\n value: number\n gas: number\n input?: string\n callType?: string\n\n init?: string\n address?: string\n balance?: string\n refundAddress?: string\n}\n\n// TODO are more field missing for FailedCall, FailedCreate\nexport interface TraceResult {\n gasUsed: number\n output?: string\n address?: string\n code?: string\n}\n\n// const TRACE: Trace = {\n// action: {\n// from: '0xd771111cbfa2bbdafbf9f0e58b49b3f827da31f5',\n// callType: 'call',\n// gas: 0x12154,\n// input:\n// '0xb1a417f4000000000000000000000000d771111cbfa2bbdafbf9f0e58b49b3f827da31f5000000000000000000000000d771111cbfa2bbdafbf9f0e58b49b3f827da31f500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000131888b5aaf000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000',\n// to: '0x0baba1ad5be3a5c0a66e7ac838a129bf948f1ea4',\n// value: 0x131888b5aaf0000,\n// },\n// blockHash: '0x5451711bc530a7c04128fedbe149eb359c10eccd44a83909d448c5244c7eea26',\n// blockNumber: 15533908,\n// result: { gasUsed: 0x114c1, output: '0x' },\n// subtraces: 1,\n// traceAddress: [],\n// transactionHash: '0x66dce11d6217042ed709a38e507e7762c93b1bde4a0447ae7a243493bbdffc0e',\n// transactionPosition: 73,\n// type: 'call',\n// }\n\n// const trac2: Trace =\n// {\n// \"action\": {\n// \"from\": \"0x95ba4cf87d6723ad9c0db21737d862be80e93911\",\n// \"gas\": 0x630d0b,\n// \"init\": \"0x608060405234801561001057600080fd5b50604051602080610b2983398101806040528101908080519060200190929190505050808060405180807f6f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e74617481526020017f696f6e000000000000000000000000000000000000000000000000000000000081525060230190506040518091039020600019167f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3600102600019161415156100c657fe5b6100de81610169640100000000026401000000009004565b5060405180807f6f72672e7a657070656c696e6f732e70726f78792e61646d696e000000000000815250601a0190506040518091039020600019167f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001026000191614151561014a57fe5b6101623361024e640100000000026401000000009004565b5050610290565b60006101878261027d6401000000000261084b176401000000009004565b1515610221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b600080823b905060008111915050919050565b61088a8061029f6000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610360565b005b3480156101ae57600080fd5b506101b761051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610576565b61021161020c610651565b610682565b565b61021b6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d9565b610265565b6102646101f9565b5b50565b6102706106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fa576102ac836106d9565b3073ffffffffffffffffffffffffffffffffffffffff163483836040518083838082843782019150509250505060006040518083038185875af19250505015156102f557600080fd5b610303565b6103026101f9565b5b505050565b60006103126106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103545761034d610651565b905061035d565b61035c6101f9565b5b90565b6103686106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561051257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610466576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048f6106a8565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050d81610748565b61051b565b61051a6101f9565b5b50565b60006105286106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561056a576105636106a8565b9050610573565b6105726101f9565b5b90565b61057e6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610647576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064f610777565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a3573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106e281610779565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b60006107848261084b565b151561081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820a4a547cfc7202c5acaaae74d428e988bc62ad5024eb0165532d3a8f91db4ed2400290000000000000000000000000882477e7895bdc5cea7cb1552ed914ab157fe56\",\n// \"value\": 0x0\n// },\n// \"blockHash\": \"0xb2f6986457f5a24ff088a0beb5567c8c1fe2da02687c78e743507ee7c982b977\",\n// \"blockNumber\": 6082465,\n// \"result\": {\n// \"address\": \"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48\",\n// \"code\": \"0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610360565b005b3480156101ae57600080fd5b506101b761051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610576565b61021161020c610651565b610682565b565b61021b6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d9565b610265565b6102646101f9565b5b50565b6102706106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fa576102ac836106d9565b3073ffffffffffffffffffffffffffffffffffffffff163483836040518083838082843782019150509250505060006040518083038185875af19250505015156102f557600080fd5b610303565b6103026101f9565b5b505050565b60006103126106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103545761034d610651565b905061035d565b61035c6101f9565b5b90565b6103686106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561051257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610466576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048f6106a8565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050d81610748565b61051b565b61051a6101f9565b5b50565b60006105286106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561056a576105636106a8565b9050610573565b6105726101f9565b5b90565b61057e6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610647576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064f610777565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a3573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106e281610779565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b60006107848261084b565b151561081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820a4a547cfc7202c5acaaae74d428e988bc62ad5024eb0165532d3a8f91db4ed240029\",\n// \"gasUsed\": 0x74f42\n// },\n// \"subtraces\": 0,\n// \"traceAddress\": [],\n// \"transactionHash\": \"0xe7e0fe390354509cd08c9a0168536938600ddc552b3f7cb96030ebef62e75895\",\n// \"transactionPosition\": 22,\n// \"type\": \"create\"\n// }\n"]}
|
package/lib/eth/index.d.ts
CHANGED
@@ -3,7 +3,6 @@ export { GenericProcessor } from './generic-processor.js';
|
|
3
3
|
export { BaseProcessorTemplate } from './base-processor-template.js';
|
4
4
|
export { AccountProcessor } from './account-processor.js';
|
5
5
|
export { getProvider, DummyProvider, getNetworkFromCtxOrNetworkish } from './provider.js';
|
6
|
-
export type { TypedCallTrace, Trace } from './trace.js';
|
7
6
|
export * from './eth.js';
|
8
7
|
export { BindOptions, AccountBindOptions } from './bind-options.js';
|
9
8
|
export { getProcessor, addProcessor, getContractByABI, addContractByABI } from './binds.js';
|
package/lib/eth/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAA;AACzF,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC3F,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA","sourcesContent":["export { BaseProcessor } from './base-processor.js'\nexport { GenericProcessor } from './generic-processor.js'\nexport { BaseProcessorTemplate } from './base-processor-template.js'\nexport { AccountProcessor } from './account-processor.js'\nexport { getProvider, DummyProvider, getNetworkFromCtxOrNetworkish } from './provider.js'\nexport * from './eth.js'\nexport { BindOptions, AccountBindOptions } from './bind-options.js'\nexport { getProcessor, addProcessor, getContractByABI, addContractByABI } from './binds.js'\nexport { ContractContext, ContractView, BoundContractView } from './context.js'\n\nexport { EthPlugin } from './eth-plugin.js'\n"]}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { TestProcessorServer } from './test-processor-server.js';
|
2
2
|
import { DataBinding, ProcessBindingResponse } from '@sentio/protos';
|
3
|
-
import { Trace } from '../eth/
|
3
|
+
import { Trace } from '../eth/eth.js';
|
4
4
|
import { BlockParams, LogParams, Networkish } from 'ethers/providers';
|
5
5
|
import { Block } from 'ethers';
|
6
6
|
export declare class EthFacet {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eth-facet.js","sourceRoot":"","sources":["../../src/testing/eth-facet.ts"],"names":[],"mappings":"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","sourcesContent":["import { TestProcessorServer } from './test-processor-server.js'\nimport { DataBinding, HandlerType, ProcessBindingResponse } from '@sentio/protos'\nimport { Trace } from '../eth/trace.js'\nimport { BlockParams, LogParams, Networkish } from 'ethers/providers'\nimport { Block } from 'ethers'\nimport { getNetworkFromCtxOrNetworkish } from '../eth/provider.js'\n\nexport class EthFacet {\n server: TestProcessorServer\n\n constructor(server: TestProcessorServer) {\n this.server = server\n }\n\n testTrace(trace: Trace, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testTraces([trace], network)\n }\n\n testTraces(traces: Trace[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const trace of traces) {\n const binding = this.buildTraceBinding(trace, network)\n if (!binding) {\n throw Error('Invalid test trace: ' + JSON.stringify(trace))\n }\n bindings.push(binding)\n }\n return this.server.processBindings({\n bindings: bindings,\n })\n }\n\n buildTraceBinding(trace: Trace, network: Networkish = 1): DataBinding | undefined {\n if (trace.type !== 'call' || !trace.action.input) {\n throw Error('Invalid test trace: ' + JSON.stringify(trace))\n }\n const signature = trace.action.input.slice(0, 10)\n\n for (const contract of this.server.contractConfigs) {\n if (contract.contract?.chainId !== getNetworkFromCtxOrNetworkish(network).chainId.toString()) {\n continue\n }\n if (trace.action.to?.toLowerCase() !== contract.contract?.address.toLowerCase()) {\n continue\n }\n for (const config of contract.traceConfigs) {\n if (config.signature == signature) {\n return {\n data: {\n ethTrace: {\n trace,\n timestamp: new Date(),\n },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_TRACE,\n }\n }\n }\n }\n return undefined\n }\n\n testLog(log: LogParams, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testLogs([log], network)\n }\n\n testLogs(logs: LogParams[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const log of logs) {\n const binding = this.buildLogBinding(log, network)\n if (!binding) {\n throw Error('Invalid test log: ' + JSON.stringify(log))\n }\n bindings.push(binding)\n }\n return this.server.processBindings({\n bindings: bindings,\n })\n }\n\n buildLogBinding(log: LogParams, network: Networkish = 1): DataBinding | undefined {\n for (const contract of this.server.contractConfigs) {\n if (contract.contract?.chainId !== getNetworkFromCtxOrNetworkish(network).chainId.toString()) {\n continue\n }\n if (log.address.toLowerCase() !== contract.contract?.address.toLowerCase()) {\n continue\n }\n for (const config of contract.logConfigs) {\n for (const filter of config.filters) {\n // if (filter.topics.length != log.topics.length) {\n // continue\n // }\n\n let match = true\n for (const topicIdx in filter.topics) {\n const logTopic = log.topics[topicIdx]\n const possibleTopic = filter.topics[topicIdx].hashes\n if (possibleTopic.length === 0) {\n // match all\n continue\n }\n if (possibleTopic.find((e) => e.toLowerCase() === logTopic.toLowerCase())) {\n // find one\n continue\n }\n match = false\n break\n }\n if (match) {\n return {\n data: {\n ethLog: { log, timestamp: new Date() },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_LOG,\n }\n }\n }\n }\n }\n return undefined\n }\n testAccountLog(address: string, log: LogParams, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testAccountLogs(address, [log], network)\n }\n\n testAccountLogs(address: string, logs: LogParams[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const log of logs) {\n const binding = this.buildAccountLogBinding(address, log, network)\n if (!binding) {\n throw Error('Invalid test log: ' + JSON.stringify(log))\n }\n bindings.push(binding)\n }\n return this.server.processBindings({\n bindings: bindings,\n })\n }\n\n buildAccountLogBinding(address: string, log: LogParams, network: Networkish = 1): DataBinding | undefined {\n for (const account of this.server.accountConfigs) {\n if (account.chainId !== getNetworkFromCtxOrNetworkish(network).chainId.toString()) {\n continue\n }\n if (address.toLowerCase() !== account.address.toLowerCase()) {\n continue\n }\n for (const config of account.logConfigs) {\n for (const filter of config.filters) {\n // if (filter.topics.length != log.topics.length) {\n // continue\n // }\n\n let match = true\n for (const topicIdx in filter.topics) {\n const logTopic = log.topics[topicIdx]\n const possibleTopic = filter.topics[topicIdx].hashes\n if (possibleTopic.length === 0) {\n // match all\n continue\n }\n if (possibleTopic.find((e) => e.toLowerCase() === logTopic.toLowerCase())) {\n // find one\n continue\n }\n match = false\n break\n }\n if (match) {\n return {\n data: {\n ethLog: { log, timestamp: new Date() },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_LOG,\n }\n }\n }\n }\n }\n return undefined\n }\n\n testBlock(\n block: Partial<BlockParams> & { number: number },\n network: Networkish = 1\n ): Promise<ProcessBindingResponse> {\n return this.testBlocks([block], network)\n }\n\n testBlocks(blocks: Partial<BlockParams> & { number: number }[], network: Networkish = 1) {\n const bindings = []\n for (const block of blocks) {\n const binding = this.buildBlockBinding(block, network)\n if (!binding) {\n throw Error('Invalid test block: ' + JSON.stringify(block))\n }\n bindings.push(binding)\n }\n return this.server.processBindings({\n bindings: bindings,\n })\n }\n\n buildBlockBinding(block: Partial<Block> & { number: number }, network: Networkish = 1): DataBinding {\n const binding: DataBinding = {\n data: {\n ethBlock: { block },\n },\n handlerType: HandlerType.ETH_BLOCK,\n handlerIds: [],\n }\n for (const contract of this.server.contractConfigs) {\n if (contract.contract?.chainId !== getNetworkFromCtxOrNetworkish(network).chainId.toString()) {\n continue\n }\n const longBlockNumber = block.number\n if (longBlockNumber < contract.startBlock) {\n continue\n }\n if (contract.endBlock !== 0n && longBlockNumber >= contract.endBlock) {\n continue\n }\n\n for (const config of contract.intervalConfigs) {\n binding.handlerIds.push(config.handlerId)\n }\n }\n return binding\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"eth-facet.js","sourceRoot":"","sources":["../../src/testing/eth-facet.ts"],"names":[],"mappings":"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","sourcesContent":["import { TestProcessorServer } from './test-processor-server.js'\nimport { DataBinding, HandlerType, ProcessBindingResponse } from '@sentio/protos'\nimport { Trace } from '../eth/eth.js'\nimport { BlockParams, LogParams, Networkish } from 'ethers/providers'\nimport { Block } from 'ethers'\nimport { getNetworkFromCtxOrNetworkish } from '../eth/provider.js'\n\nexport class EthFacet {\n server: TestProcessorServer\n\n constructor(server: TestProcessorServer) {\n this.server = server\n }\n\n testTrace(trace: Trace, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testTraces([trace], network)\n }\n\n testTraces(traces: Trace[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const trace of traces) {\n const binding = this.buildTraceBinding(trace, network)\n if (!binding) {\n throw Error('Invalid test trace: ' + JSON.stringify(trace))\n }\n bindings.push(binding)\n }\n return this.server.processBindings({\n bindings: bindings,\n })\n }\n\n buildTraceBinding(trace: Trace, network: Networkish = 1): DataBinding | undefined {\n if (trace.type !== 'call' || !trace.action.input) {\n throw Error('Invalid test trace: ' + JSON.stringify(trace))\n }\n const signature = trace.action.input.slice(0, 10)\n\n for (const contract of this.server.contractConfigs) {\n if (contract.contract?.chainId !== getNetworkFromCtxOrNetworkish(network).chainId.toString()) {\n continue\n }\n if (trace.action.to?.toLowerCase() !== contract.contract?.address.toLowerCase()) {\n continue\n }\n for (const config of contract.traceConfigs) {\n if (config.signature == signature) {\n return {\n data: {\n ethTrace: {\n trace,\n timestamp: new Date(),\n },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_TRACE,\n }\n }\n }\n }\n return undefined\n }\n\n testLog(log: LogParams, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testLogs([log], network)\n }\n\n testLogs(logs: LogParams[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const log of logs) {\n const binding = this.buildLogBinding(log, network)\n if (!binding) {\n throw Error('Invalid test log: ' + JSON.stringify(log))\n }\n bindings.push(binding)\n }\n return this.server.processBindings({\n bindings: bindings,\n })\n }\n\n buildLogBinding(log: LogParams, network: Networkish = 1): DataBinding | undefined {\n for (const contract of this.server.contractConfigs) {\n if (contract.contract?.chainId !== getNetworkFromCtxOrNetworkish(network).chainId.toString()) {\n continue\n }\n if (log.address.toLowerCase() !== contract.contract?.address.toLowerCase()) {\n continue\n }\n for (const config of contract.logConfigs) {\n for (const filter of config.filters) {\n // if (filter.topics.length != log.topics.length) {\n // continue\n // }\n\n let match = true\n for (const topicIdx in filter.topics) {\n const logTopic = log.topics[topicIdx]\n const possibleTopic = filter.topics[topicIdx].hashes\n if (possibleTopic.length === 0) {\n // match all\n continue\n }\n if (possibleTopic.find((e) => e.toLowerCase() === logTopic.toLowerCase())) {\n // find one\n continue\n }\n match = false\n break\n }\n if (match) {\n return {\n data: {\n ethLog: { log, timestamp: new Date() },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_LOG,\n }\n }\n }\n }\n }\n return undefined\n }\n testAccountLog(address: string, log: LogParams, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testAccountLogs(address, [log], network)\n }\n\n testAccountLogs(address: string, logs: LogParams[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const log of logs) {\n const binding = this.buildAccountLogBinding(address, log, network)\n if (!binding) {\n throw Error('Invalid test log: ' + JSON.stringify(log))\n }\n bindings.push(binding)\n }\n return this.server.processBindings({\n bindings: bindings,\n })\n }\n\n buildAccountLogBinding(address: string, log: LogParams, network: Networkish = 1): DataBinding | undefined {\n for (const account of this.server.accountConfigs) {\n if (account.chainId !== getNetworkFromCtxOrNetworkish(network).chainId.toString()) {\n continue\n }\n if (address.toLowerCase() !== account.address.toLowerCase()) {\n continue\n }\n for (const config of account.logConfigs) {\n for (const filter of config.filters) {\n // if (filter.topics.length != log.topics.length) {\n // continue\n // }\n\n let match = true\n for (const topicIdx in filter.topics) {\n const logTopic = log.topics[topicIdx]\n const possibleTopic = filter.topics[topicIdx].hashes\n if (possibleTopic.length === 0) {\n // match all\n continue\n }\n if (possibleTopic.find((e) => e.toLowerCase() === logTopic.toLowerCase())) {\n // find one\n continue\n }\n match = false\n break\n }\n if (match) {\n return {\n data: {\n ethLog: { log, timestamp: new Date() },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_LOG,\n }\n }\n }\n }\n }\n return undefined\n }\n\n testBlock(\n block: Partial<BlockParams> & { number: number },\n network: Networkish = 1\n ): Promise<ProcessBindingResponse> {\n return this.testBlocks([block], network)\n }\n\n testBlocks(blocks: Partial<BlockParams> & { number: number }[], network: Networkish = 1) {\n const bindings = []\n for (const block of blocks) {\n const binding = this.buildBlockBinding(block, network)\n if (!binding) {\n throw Error('Invalid test block: ' + JSON.stringify(block))\n }\n bindings.push(binding)\n }\n return this.server.processBindings({\n bindings: bindings,\n })\n }\n\n buildBlockBinding(block: Partial<Block> & { number: number }, network: Networkish = 1): DataBinding {\n const binding: DataBinding = {\n data: {\n ethBlock: { block },\n },\n handlerType: HandlerType.ETH_BLOCK,\n handlerIds: [],\n }\n for (const contract of this.server.contractConfigs) {\n if (contract.contract?.chainId !== getNetworkFromCtxOrNetworkish(network).chainId.toString()) {\n continue\n }\n const longBlockNumber = block.number\n if (longBlockNumber < contract.startBlock) {\n continue\n }\n if (contract.endBlock !== 0n && longBlockNumber >= contract.endBlock) {\n continue\n }\n\n for (const config of contract.intervalConfigs) {\n binding.handlerIds.push(config.handlerId)\n }\n }\n return binding\n }\n}\n"]}
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sentio/sdk",
|
3
3
|
"license": "Apache-2.0",
|
4
|
-
"version": "2.11.
|
4
|
+
"version": "2.11.2-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.28",
|
26
|
-
"@sentio/protos": "^2.11.
|
27
|
-
"@sentio/runtime": "^2.11.
|
26
|
+
"@sentio/protos": "^2.11.2-rc.2",
|
27
|
+
"@sentio/runtime": "^2.11.2-rc.2",
|
28
28
|
"@solana/web3.js": "^1.74.0",
|
29
29
|
"@types/prettier": "^2.7.2",
|
30
30
|
"aptos-sdk": "npm:aptos@^1.7.2",
|
@@ -49,6 +49,7 @@
|
|
49
49
|
},
|
50
50
|
"exports": {
|
51
51
|
".": "./lib/index.js",
|
52
|
+
"./core": "./lib/core/index.js",
|
52
53
|
"./testing": "./lib/testing/index.js",
|
53
54
|
"./utils": "./lib/utils/index.js",
|
54
55
|
"./eth": "./lib/eth/index.js",
|
@@ -84,5 +85,5 @@
|
|
84
85
|
"engines": {
|
85
86
|
"node": ">=16"
|
86
87
|
},
|
87
|
-
"gitHead": "
|
88
|
+
"gitHead": "ba2c47c6e5c327b9386bbc107805c62251e9eb6c"
|
88
89
|
}
|
package/src/core/index.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
export { BigDecimal, scaleDown } from './big-decimal.js'
|
2
|
+
export type { PromiseOrValue, PromiseOrVoid } from './promises.js'
|
2
3
|
export type { PartiallyOptional } from './partial-optional.js'
|
3
4
|
export { BaseContext } from './base-context.js'
|
4
5
|
export { normalizeLabels } from './normalization.js'
|
@@ -1,18 +1,17 @@
|
|
1
1
|
import { ERC20__factory, ERC721__factory } from './builtin/internal/index.js'
|
2
2
|
import { AddressType, EthFetchConfig, ProcessResult } from '@sentio/protos'
|
3
|
-
import { AccountBindOptions } from './bind-options.js'
|
4
3
|
|
4
|
+
import { PromiseOrVoid, PartiallyOptional } from '../core/index.js'
|
5
|
+
|
6
|
+
import { AccountBindOptions } from './bind-options.js'
|
5
7
|
import { TransferEvent as ERC20TransferEvent, ERC20Processor } from './builtin/erc20.js'
|
6
8
|
import { TransferEvent as ERC721TransferEvent, ERC721Processor } from './builtin/erc721.js'
|
7
|
-
|
8
9
|
import { AccountContext } from './context.js'
|
9
|
-
import { PromiseOrVoid } from '../promise-or-void.js'
|
10
10
|
import { AddressOrTypeEventFilter, EventsHandler } from './base-processor.js'
|
11
11
|
import { Block, LogDescription } from 'ethers'
|
12
12
|
import { AccountProcessorState } from './account-processor-state.js'
|
13
13
|
import { formatEthData } from './eth.js'
|
14
14
|
import { getNetworkFromCtxOrNetworkish } from './provider.js'
|
15
|
-
import { PartiallyOptional } from '../core/partial-optional.js'
|
16
15
|
|
17
16
|
const ERC20_INTERFACE = ERC20__factory.createInterface()
|
18
17
|
const ERC721_INTERFACE = ERC721__factory.createInterface()
|
@@ -3,12 +3,11 @@ import { BaseContract } from 'ethers'
|
|
3
3
|
import { BaseProcessor } from './base-processor.js'
|
4
4
|
import { BindOptions, getOptionsSignature } from './bind-options.js'
|
5
5
|
import { EthFetchConfig, HandleInterval, TemplateInstance } from '@sentio/protos'
|
6
|
-
import { PromiseOrVoid } from '../
|
7
|
-
import { Trace } from './trace.js'
|
6
|
+
import { PromiseOrVoid } from '../core/promises.js'
|
8
7
|
import { ListStateStorage } from '@sentio/runtime'
|
9
8
|
import { BlockParams } from 'ethers/providers'
|
10
9
|
import { DeferredTopicFilter } from 'ethers/contract'
|
11
|
-
import {
|
10
|
+
import { TypedEvent, TypedCallTrace } from './eth.js'
|
12
11
|
import { getNetworkFromCtxOrNetworkish } from './provider.js'
|
13
12
|
|
14
13
|
export class ProcessorTemplateProcessorState extends ListStateStorage<
|
@@ -34,11 +33,11 @@ export abstract class BaseProcessorTemplate<
|
|
34
33
|
}[] = []
|
35
34
|
traceHandlers: {
|
36
35
|
signature: string
|
37
|
-
handler: (trace:
|
36
|
+
handler: (trace: TypedCallTrace, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid
|
38
37
|
fetchConfig?: EthFetchConfig
|
39
38
|
}[] = []
|
40
39
|
eventHandlers: {
|
41
|
-
handler: (event:
|
40
|
+
handler: (event: TypedEvent, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid
|
42
41
|
filter: DeferredTopicFilter | DeferredTopicFilter[]
|
43
42
|
fetchConfig?: EthFetchConfig
|
44
43
|
}[] = []
|
@@ -89,7 +88,7 @@ export abstract class BaseProcessorTemplate<
|
|
89
88
|
}
|
90
89
|
|
91
90
|
public onEvent(
|
92
|
-
handler: (event:
|
91
|
+
handler: (event: TypedEvent, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid,
|
93
92
|
filter: DeferredTopicFilter | DeferredTopicFilter[],
|
94
93
|
fetchConfig?: Partial<EthFetchConfig>
|
95
94
|
) {
|
@@ -135,7 +134,7 @@ export abstract class BaseProcessorTemplate<
|
|
135
134
|
|
136
135
|
public onTrace(
|
137
136
|
signature: string,
|
138
|
-
handler: (trace:
|
137
|
+
handler: (trace: TypedCallTrace, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid,
|
139
138
|
fetchConfig?: Partial<EthFetchConfig>
|
140
139
|
) {
|
141
140
|
this.traceHandlers.push({ signature, handler, fetchConfig: EthFetchConfig.fromPartial(fetchConfig || {}) })
|
@@ -12,10 +12,9 @@ import {
|
|
12
12
|
ProcessResult,
|
13
13
|
} from '@sentio/protos'
|
14
14
|
import { BindOptions } from './bind-options.js'
|
15
|
-
import { PromiseOrVoid } from '../
|
16
|
-
import { Trace } from './trace.js'
|
15
|
+
import { PromiseOrVoid } from '../core/promises.js'
|
17
16
|
import { ServerError, Status } from 'nice-grpc'
|
18
|
-
import { fixEmptyKey,
|
17
|
+
import { fixEmptyKey, TypedEvent, TypedCallTrace, formatEthData } from './eth.js'
|
19
18
|
import * as console from 'console'
|
20
19
|
import { getNetworkFromCtxOrNetworkish } from './provider.js'
|
21
20
|
import sha3 from 'js-sha3'
|
@@ -83,7 +82,7 @@ export abstract class BaseProcessor<
|
|
83
82
|
}
|
84
83
|
|
85
84
|
public onEvent(
|
86
|
-
handler: (event:
|
85
|
+
handler: (event: TypedEvent, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid,
|
87
86
|
filter: DeferredTopicFilter | DeferredTopicFilter[],
|
88
87
|
fetchConfig?: Partial<EthFetchConfig>
|
89
88
|
): this {
|
@@ -124,7 +123,7 @@ export abstract class BaseProcessor<
|
|
124
123
|
const parsed = contractView.rawContract.interface.parseLog(logParam)
|
125
124
|
|
126
125
|
if (parsed) {
|
127
|
-
const event:
|
126
|
+
const event: TypedEvent = { ...log, name: parsed.name, args: fixEmptyKey(parsed) }
|
128
127
|
await handler(event, ctx)
|
129
128
|
return ctx.getProcessResult()
|
130
129
|
}
|
@@ -195,7 +194,7 @@ export abstract class BaseProcessor<
|
|
195
194
|
}
|
196
195
|
|
197
196
|
public onAllEvents(
|
198
|
-
handler: (event:
|
197
|
+
handler: (event: TypedEvent, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid,
|
199
198
|
fetchConfig?: Partial<EthFetchConfig>
|
200
199
|
): this {
|
201
200
|
const _filters: DeferredTopicFilter[] = []
|
@@ -218,7 +217,7 @@ export abstract class BaseProcessor<
|
|
218
217
|
|
219
218
|
public onTrace(
|
220
219
|
signatures: string | string[],
|
221
|
-
handler: (trace:
|
220
|
+
handler: (trace: TypedCallTrace, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid,
|
222
221
|
fetchConfig?: Partial<EthFetchConfig>
|
223
222
|
): this {
|
224
223
|
const chainId = this.getChainId()
|
@@ -244,15 +243,16 @@ export abstract class BaseProcessor<
|
|
244
243
|
if (!trace || !fragment) {
|
245
244
|
throw new ServerError(Status.INVALID_ARGUMENT, 'trace is null')
|
246
245
|
}
|
247
|
-
|
248
|
-
|
246
|
+
const typedTrace = trace as TypedCallTrace
|
247
|
+
typedTrace.name = fragment.name
|
248
|
+
typedTrace.functionSignature = fragment.format()
|
249
249
|
// const trace = data.trace as Trace
|
250
250
|
if (!trace?.action.input) {
|
251
251
|
return ProcessResult.fromPartial({})
|
252
252
|
}
|
253
253
|
const traceData = '0x' + trace.action.input.slice(10)
|
254
254
|
try {
|
255
|
-
|
255
|
+
typedTrace.args = contractInterface.getAbiCoder().decode(fragment.inputs, traceData, true)
|
256
256
|
} catch (e) {
|
257
257
|
if (!trace.error) {
|
258
258
|
throw e
|
@@ -270,7 +270,7 @@ export abstract class BaseProcessor<
|
|
270
270
|
transaction,
|
271
271
|
transactionReceipt
|
272
272
|
)
|
273
|
-
await handler(
|
273
|
+
await handler(typedTrace, ctx)
|
274
274
|
return ctx.getProcessResult()
|
275
275
|
},
|
276
276
|
})
|
@@ -278,7 +278,7 @@ export abstract class BaseProcessor<
|
|
278
278
|
}
|
279
279
|
|
280
280
|
public onAllTraces(
|
281
|
-
handler: (event:
|
281
|
+
handler: (event: TypedCallTrace, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid,
|
282
282
|
fetchConfig?: Partial<EthFetchConfig>
|
283
283
|
): this {
|
284
284
|
const tmpContract = this.CreateBoundContractView()
|
@@ -5,28 +5,5 @@
|
|
5
5
|
/* tslint:disable */
|
6
6
|
/* eslint-disable */
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
import { Result } from "ethers";
|
11
|
-
|
12
|
-
export interface TypedEvent<
|
13
|
-
TArgsArray extends Array<any> = any,
|
14
|
-
TArgsObject = any
|
15
|
-
> extends LogParams {
|
16
|
-
args: TArgsObject & {
|
17
|
-
/**
|
18
|
-
* Returns the Result as a normal Array.
|
19
|
-
*/
|
20
|
-
toArray(): Array<any>;
|
21
|
-
/**
|
22
|
-
* Returns the Result as an Object with each name-value pair.
|
23
|
-
*/
|
24
|
-
toObject(): Record<string, any>;
|
25
|
-
};
|
26
|
-
name: string;
|
27
|
-
}
|
28
|
-
|
29
|
-
export interface TypedEventFilter<_TEvent extends TypedEvent>
|
30
|
-
extends DeferredTopicFilter {}
|
31
|
-
|
32
|
-
export type PromiseOrValue<T> = T | Promise<T>;
|
8
|
+
export type { TypedEvent, TypedEventFilter } from "@sentio/sdk/eth";
|
9
|
+
export type { PromiseOrValue } from "@sentio/sdk/core";
|
@@ -116,11 +116,14 @@ ${contract.name}Processor.bind({ address: '${contract.address}', network: ${cont
|
|
116
116
|
})
|
117
117
|
})
|
118
118
|
.onAllTraces(function (trace, ctx) {
|
119
|
-
|
120
|
-
ctx.
|
121
|
-
|
122
|
-
|
123
|
-
|
119
|
+
const succeed = trace.error === undefined
|
120
|
+
ctx.meter.Counter('trace_count').add(1, { name: trace.name, success: String(succeed) })
|
121
|
+
if (succeed) {
|
122
|
+
ctx.eventLogger.emit(trace.name, {
|
123
|
+
distinctId: trace.action.from,
|
124
|
+
...trace.args.toObject(),
|
125
|
+
})
|
126
|
+
}
|
124
127
|
})
|
125
128
|
`
|
126
129
|
exampleContent += content
|
@@ -139,30 +142,6 @@ const COMMON_CONTENT = `/* Autogenerated file. Do not edit manually. */
|
|
139
142
|
/* tslint:disable */
|
140
143
|
/* eslint-disable */
|
141
144
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
export interface TypedEvent<
|
147
|
-
TArgsArray extends Array<any> = any,
|
148
|
-
TArgsObject = any
|
149
|
-
> extends LogParams {
|
150
|
-
args: TArgsObject & {
|
151
|
-
/**
|
152
|
-
* Returns the Result as a normal Array.
|
153
|
-
*/
|
154
|
-
toArray(): Array<any>;
|
155
|
-
/**
|
156
|
-
* Returns the Result as an Object with each name-value pair.
|
157
|
-
*/
|
158
|
-
toObject(): Record<string, any>;
|
159
|
-
};
|
160
|
-
name: string
|
161
|
-
}
|
162
|
-
|
163
|
-
export interface TypedEventFilter<_TEvent extends TypedEvent>
|
164
|
-
extends DeferredTopicFilter {}
|
165
|
-
|
166
|
-
export type PromiseOrValue<T> = T | Promise<T>;
|
167
|
-
|
168
|
-
`
|
145
|
+
export type { TypedEvent, TypedEventFilter } from "@sentio/sdk/eth"
|
146
|
+
export type { PromiseOrValue } from '@sentio/sdk/core'
|
147
|
+
`
|
package/src/eth/context.ts
CHANGED
@@ -2,7 +2,7 @@ import { BaseContract } from 'ethers'
|
|
2
2
|
import { LogParams, BlockParams, TransactionReceiptParams, TransactionResponseParams } from 'ethers/providers'
|
3
3
|
|
4
4
|
import { RecordMetaData } from '@sentio/protos'
|
5
|
-
import { Trace } from './
|
5
|
+
import { Trace } from './eth.js'
|
6
6
|
import { Labels, normalizeLabels } from '../core/index.js'
|
7
7
|
import { BaseContext } from '../core/base-context.js'
|
8
8
|
|