dequanto 0.2.46 → 0.2.48
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/docs/ai/INDEX.md +41 -0
- package/docs/ai/examples/contract-read.spec.ts +44 -0
- package/docs/ai/examples/contract-write.spec.ts +16 -0
- package/docs/ai/examples/deploy-contract.spec.ts +32 -0
- package/docs/ai/examples/erc4337-userop.spec.ts +37 -0
- package/docs/ai/examples/explorer-abi.spec.ts +18 -0
- package/docs/ai/examples/generate-client.spec.ts +22 -0
- package/docs/ai/examples/index-events.spec.ts +27 -0
- package/docs/ai/examples/rpc-read.spec.ts +15 -0
- package/docs/ai/examples/safe-batch.spec.ts +55 -0
- package/docs/ai/examples/send-transaction.spec.ts +22 -0
- package/docs/ai/examples/storage-read.spec.ts +27 -0
- package/docs/ai/examples/token-transfer.spec.ts +22 -0
- package/docs/ai/references/contracts.md +111 -0
- package/docs/ai/references/deployments.md +98 -0
- package/docs/ai/references/events-indexing.md +97 -0
- package/docs/ai/references/explorer.md +77 -0
- package/docs/ai/references/generation.md +182 -0
- package/docs/ai/references/migration-from-ethers-viem.md +43 -0
- package/docs/ai/references/rpc-clients.md +115 -0
- package/docs/ai/references/safe-erc4337.md +134 -0
- package/docs/ai/references/storage.md +93 -0
- package/docs/ai/references/tokens-accounts.md +99 -0
- package/docs/ai/references/transactions.md +146 -0
- package/docs/ai/skill/dequanto/SKILL.md +59 -0
- package/lib/cjs/abi/$abiCoder.js +14 -0
- package/lib/cjs/abi/$abiCoder.js.map +1 -1
- package/lib/cjs/clients/ClientPool.js +14 -0
- package/lib/cjs/clients/ClientPool.js.map +1 -1
- package/lib/cjs/clients/Web3Client.js +14 -4
- package/lib/cjs/clients/Web3Client.js.map +1 -1
- package/lib/cjs/clients/Web3ClientFactory.js.map +1 -1
- package/lib/cjs/clients/model/ClientStatus.js +1 -0
- package/lib/cjs/clients/model/ClientStatus.js.map +1 -1
- package/lib/cjs/clients/utils/ClientErrorUtil.js +9 -0
- package/lib/cjs/clients/utils/ClientErrorUtil.js.map +1 -1
- package/lib/cjs/config/ConfigDefaults.js +0 -3
- package/lib/cjs/config/ConfigDefaults.js.map +1 -1
- package/lib/cjs/contracts/ContractCreationResolver.js +1 -0
- package/lib/cjs/contracts/ContractCreationResolver.js.map +1 -1
- package/lib/cjs/rpc/RpcBase.js +4 -1
- package/lib/cjs/rpc/RpcBase.js.map +1 -1
- package/lib/cjs/solidity/utils/$str.js +1 -1
- package/lib/cjs/solidity/utils/$str.js.map +1 -1
- package/lib/cjs/utils/$abiParser.js +85 -1
- package/lib/cjs/utils/$abiParser.js.map +1 -1
- package/lib/cjs/utils/$base.js +1 -1
- package/lib/cjs/utils/$base.js.map +1 -1
- package/lib/cjs/utils/$crypto.js.map +1 -1
- package/lib/cjs/utils/$hex.js +15 -3
- package/lib/cjs/utils/$hex.js.map +1 -1
- package/lib/esm/abi/$abiCoder.js.map +1 -1
- package/lib/esm/abi/$abiCoder.mjs +14 -0
- package/lib/esm/clients/ClientPool.js.map +1 -1
- package/lib/esm/clients/ClientPool.mjs +14 -0
- package/lib/esm/clients/Web3Client.js.map +1 -1
- package/lib/esm/clients/Web3Client.mjs +14 -4
- package/lib/esm/clients/Web3ClientFactory.js.map +1 -1
- package/lib/esm/clients/model/ClientStatus.js.map +1 -1
- package/lib/esm/clients/model/ClientStatus.mjs +1 -0
- package/lib/esm/clients/utils/ClientErrorUtil.js.map +1 -1
- package/lib/esm/clients/utils/ClientErrorUtil.mjs +9 -0
- package/lib/esm/config/ConfigDefaults.js.map +1 -1
- package/lib/esm/config/ConfigDefaults.mjs +0 -3
- package/lib/esm/contracts/ContractCreationResolver.js.map +1 -1
- package/lib/esm/contracts/ContractCreationResolver.mjs +1 -0
- package/lib/esm/rpc/RpcBase.js.map +1 -1
- package/lib/esm/rpc/RpcBase.mjs +4 -1
- package/lib/esm/solidity/utils/$str.js.map +1 -1
- package/lib/esm/solidity/utils/$str.mjs +1 -1
- package/lib/esm/utils/$abiParser.js.map +1 -1
- package/lib/esm/utils/$abiParser.mjs +85 -1
- package/lib/esm/utils/$base.js.map +1 -1
- package/lib/esm/utils/$base.mjs +1 -1
- package/lib/esm/utils/$crypto.js.map +1 -1
- package/lib/esm/utils/$hex.js.map +1 -1
- package/lib/esm/utils/$hex.mjs +15 -3
- package/lib/types/abi/$abiCoder.d.ts +11 -9
- package/lib/types/clients/ClientPool.d.ts +2 -0
- package/lib/types/clients/Web3Client.d.ts +4 -1
- package/lib/types/clients/Web3ClientFactory.d.ts +3 -2
- package/lib/types/clients/model/ClientStatus.d.ts +1 -0
- package/lib/types/clients/utils/ClientErrorUtil.d.ts +4 -0
- package/lib/types/contracts/ContractBase.d.ts +1 -1
- package/lib/types/contracts/wrappers/FnRequestWrapper.d.ts +1 -1
- package/lib/types/models/TAccount.d.ts +1 -1
- package/lib/types/rpc/RpcBase.d.ts +1 -0
- package/lib/types/utils/$abiParser.d.ts +6 -0
- package/lib/types/utils/$crypto.d.ts +3 -0
- package/lib/types/utils/$hex.d.ts +2 -0
- package/package.json +1 -1
- package/src/abi/$abiCoder.ts +31 -10
- package/src/clients/ClientPool.ts +17 -1
- package/src/clients/Web3Client.ts +20 -7
- package/src/clients/Web3ClientFactory.ts +10 -5
- package/src/clients/model/ClientStatus.ts +1 -0
- package/src/clients/utils/ClientErrorUtil.ts +8 -0
- package/src/config/ConfigDefaults.ts +0 -3
- package/src/contracts/ContractCreationResolver.ts +1 -0
- package/src/contracts/wrappers/FnRequestWrapper.ts +1 -1
- package/src/models/TAccount.ts +1 -1
- package/src/rpc/RpcBase.ts +5 -1
- package/src/solidity/utils/$str.ts +1 -1
- package/src/utils/$abiParser.ts +93 -1
- package/src/utils/$base.ts +1 -1
- package/src/utils/$crypto.ts +1 -0
- package/src/utils/$hex.ts +12 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$abiParser.js","sourceRoot":"","sources":["../../../src/utils/$abiParser.ts"],"names":[],"mappings":";;;AACA,yCAAsC;AACtC,wDAAqD;AAOrD,IAAiB,UAAU,
|
|
1
|
+
{"version":3,"file":"$abiParser.js","sourceRoot":"","sources":["../../../src/utils/$abiParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,6 +72,61 @@ export var $abiParser;
|
|
|
72
72
|
};
|
|
73
73
|
}
|
|
74
74
|
$abiParser.parseMethod = parseMethod;
|
|
75
|
+
/**
|
|
76
|
+
* Parses Solidity struct declarations into a tuple ABI component.
|
|
77
|
+
* Supports multiple declarations so later structs can reference earlier ones,
|
|
78
|
+
* and returns the ABI component for the last struct in the input.
|
|
79
|
+
*/
|
|
80
|
+
function parseStruct(struct) {
|
|
81
|
+
let structs = Parse.structs(struct);
|
|
82
|
+
$require.gt(structs.length, 0, `No structs found in ${struct}`);
|
|
83
|
+
let byName = new Map(structs.map(x => [x.name, x]));
|
|
84
|
+
let cache = new Map();
|
|
85
|
+
function toTuple(name) {
|
|
86
|
+
let cached = cache.get(name);
|
|
87
|
+
if (cached != null) {
|
|
88
|
+
return cached;
|
|
89
|
+
}
|
|
90
|
+
let def = byName.get(name);
|
|
91
|
+
$require.notNull(def, `Struct ${name} is not found`);
|
|
92
|
+
let tuple = {
|
|
93
|
+
name: '',
|
|
94
|
+
type: 'tuple',
|
|
95
|
+
internalType: `struct ${name}`,
|
|
96
|
+
components: []
|
|
97
|
+
};
|
|
98
|
+
cache.set(name, tuple);
|
|
99
|
+
tuple.components = Parse.splitByDelimiter(def.body, ';')
|
|
100
|
+
.map(field => $abiParser.parseArguments(field)[0])
|
|
101
|
+
.map(resolveStructs);
|
|
102
|
+
return tuple;
|
|
103
|
+
}
|
|
104
|
+
function resolveStructs(param) {
|
|
105
|
+
let { type, array } = Parse.extractArray(param.type);
|
|
106
|
+
if (byName.has(type) === false) {
|
|
107
|
+
if (param.components != null) {
|
|
108
|
+
return {
|
|
109
|
+
...param,
|
|
110
|
+
components: param.components.map(resolveStructs)
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
return param;
|
|
114
|
+
}
|
|
115
|
+
let tuple = toTuple(type);
|
|
116
|
+
return {
|
|
117
|
+
name: param.name,
|
|
118
|
+
type: `tuple${array}`,
|
|
119
|
+
internalType: `struct ${type}${array}`,
|
|
120
|
+
components: tuple.components
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
let last = structs[structs.length - 1];
|
|
124
|
+
return {
|
|
125
|
+
...toTuple(last.name),
|
|
126
|
+
name: last.name
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
$abiParser.parseStruct = parseStruct;
|
|
75
130
|
// uint256
|
|
76
131
|
// address[]
|
|
77
132
|
// (uint256, uint256)
|
|
@@ -223,8 +278,37 @@ var Parse;
|
|
|
223
278
|
Parse.goToClosing = goToClosing;
|
|
224
279
|
const CLOSE_CHARS = {
|
|
225
280
|
'[': ']',
|
|
226
|
-
'(': ')'
|
|
281
|
+
'(': ')',
|
|
282
|
+
'{': '}'
|
|
227
283
|
};
|
|
284
|
+
function structs(source) {
|
|
285
|
+
let rgx = /\bstruct\s+(?<name>[\w_$]+)\s*\{/g;
|
|
286
|
+
let arr = [];
|
|
287
|
+
let match;
|
|
288
|
+
while ((match = rgx.exec(source)) != null) {
|
|
289
|
+
let openI = source.indexOf('{', match.index);
|
|
290
|
+
let closeI = goToClosing(source, openI, '{');
|
|
291
|
+
arr.push({
|
|
292
|
+
name: match.groups.name,
|
|
293
|
+
body: source.substring(openI + 1, closeI).trim()
|
|
294
|
+
});
|
|
295
|
+
rgx.lastIndex = closeI + 1;
|
|
296
|
+
}
|
|
297
|
+
return arr;
|
|
298
|
+
}
|
|
299
|
+
Parse.structs = structs;
|
|
300
|
+
function extractArray(type) {
|
|
301
|
+
let array = '';
|
|
302
|
+
while (true) {
|
|
303
|
+
let match = /^(?<type>.+?)(?<array>\[[^\]]*\])$/.exec(type);
|
|
304
|
+
if (match == null) {
|
|
305
|
+
return { type, array };
|
|
306
|
+
}
|
|
307
|
+
type = match.groups.type;
|
|
308
|
+
array = `${match.groups.array}${array}`;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
Parse.extractArray = extractArray;
|
|
228
312
|
})(Parse || (Parse = {}));
|
|
229
313
|
//# sourceMappingURL=$abiParser.js.map
|
|
230
314
|
//# sourceMappingURL=$abiParser.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$base.js","sourceRoot":"","sources":["../../../src/utils/$base.ts"],"names":[],"mappings":";;;AACA,iCAA8B;AAC9B,uCAAoC;AAEpC,IAAiB,KAAK,CA8DrB;AA9DD,WAAiB,KAAK;IAClB,iHAAiH;IAEjH,MAAM,IAAI;QAGN,YAAoB,QAAgB;YAAhB,aAAQ,GAAR,QAAQ,CAAQ;YAChC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAChC,IAAI,CAAC,GAAG,CAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACP,CAAC;QAEM,MAAM,CAAE,GAAa;YACxB,GAAG,GAAG,WAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,WAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"$base.js","sourceRoot":"","sources":["../../../src/utils/$base.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/utils/$base.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$crypto.js","sourceRoot":"","sources":["../../../src/utils/$crypto.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AACpC,yCAAsC;AACtC,+BAA4B;
|
|
1
|
+
{"version":3,"file":"$crypto.js","sourceRoot":"","sources":["../../../src/utils/$crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$hex.js","sourceRoot":"","sources":["../../../src/utils/$hex.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AACpC,yCAAsC;AACtC,IAAiB,IAAI,
|
|
1
|
+
{"version":3,"file":"$hex.js","sourceRoot":"","sources":["../../../src/utils/$hex.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/utils/$hex.mjs
CHANGED
|
@@ -22,12 +22,23 @@ export var $hex;
|
|
|
22
22
|
* Trims '00' bytes from start or end, e.g. 0x68656c6c6f000000 => 0x68656c6c6f
|
|
23
23
|
*/
|
|
24
24
|
function trimBytes(hex) {
|
|
25
|
-
|
|
25
|
+
return trimBytesEnd(trimBytesStart(hex));
|
|
26
|
+
}
|
|
27
|
+
$hex.trimBytes = trimBytes;
|
|
28
|
+
function trimBytesStart(hex) {
|
|
29
|
+
if (hex.startsWith('0x00') === false) {
|
|
26
30
|
return hex;
|
|
27
31
|
}
|
|
28
|
-
return hex.replace(/^0x(0{2})+/, '0x')
|
|
32
|
+
return hex.replace(/^0x(0{2})+/, '0x');
|
|
29
33
|
}
|
|
30
|
-
$hex.
|
|
34
|
+
$hex.trimBytesStart = trimBytesStart;
|
|
35
|
+
function trimBytesEnd(hex) {
|
|
36
|
+
if (hex.endsWith('00') === false) {
|
|
37
|
+
return hex;
|
|
38
|
+
}
|
|
39
|
+
return hex.replace(/(0{2})+$/, '');
|
|
40
|
+
}
|
|
41
|
+
$hex.trimBytesEnd = trimBytesEnd;
|
|
31
42
|
function trimLeadingZerosFromNumber(hex) {
|
|
32
43
|
hex = hex.replace(/^0x0*/, '');
|
|
33
44
|
return hex === '' ? '0x0' : `0x${hex}`;
|
|
@@ -130,6 +141,7 @@ export var $hex;
|
|
|
130
141
|
if (typeof mix === 'boolean') {
|
|
131
142
|
return mix ? '0x1' : '0x0';
|
|
132
143
|
}
|
|
144
|
+
$require.match(/^(0x)?[\da-f]*$/i, mix, 'NotValidHex');
|
|
133
145
|
if (mix.startsWith('0x')) {
|
|
134
146
|
return mix;
|
|
135
147
|
}
|
|
@@ -2,15 +2,17 @@ import { TAbiInput } from '../types/TAbi';
|
|
|
2
2
|
import { ParamType } from './fragments';
|
|
3
3
|
import { TEth } from '../models/TEth';
|
|
4
4
|
export declare namespace $abiCoder {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
function encodePacked(types: string[], values: any[]): TEth.Hex;
|
|
8
|
-
function decode(types: (string | ParamType | TAbiInput)[], hex: string, opts?: {
|
|
5
|
+
type TAbiType = string | ParamType | TAbiInput;
|
|
6
|
+
type TDecodeOptions = {
|
|
9
7
|
loose?: boolean;
|
|
10
8
|
dynamic?: boolean;
|
|
11
|
-
}
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
};
|
|
10
|
+
export function encode(types: TAbiType, values: any): TEth.Hex;
|
|
11
|
+
export function encode(types: TAbiType[], values: any[]): TEth.Hex;
|
|
12
|
+
export function encodeSingle(type: TAbiType, value: any): TEth.Hex;
|
|
13
|
+
export function encodePacked(types: string[], values: any[]): TEth.Hex;
|
|
14
|
+
export function decode(types: TAbiType, hex: string, opts?: TDecodeOptions): any;
|
|
15
|
+
export function decode(types: TAbiType[], hex: string, opts?: TDecodeOptions): any[];
|
|
16
|
+
export function decodeSingle(type: TAbiType, hex: string, opts?: TDecodeOptions): any;
|
|
17
|
+
export {};
|
|
16
18
|
}
|
|
@@ -53,6 +53,8 @@ export interface IPoolWeb3Request {
|
|
|
53
53
|
method?: string;
|
|
54
54
|
batchRequestCount?: number;
|
|
55
55
|
blockRangeCount?: number;
|
|
56
|
+
/** Try another node when the RPC succeeds but returns null, e.g. tx not found on one provider. */
|
|
57
|
+
tryNextOnNull?: boolean;
|
|
56
58
|
}
|
|
57
59
|
export declare class ClientPool {
|
|
58
60
|
private discoveredPartial;
|
|
@@ -37,6 +37,9 @@ export declare abstract class Web3Client implements IWeb3Client {
|
|
|
37
37
|
batch(requests: TRpc.IRpcAction[], options?: {
|
|
38
38
|
allowErrors?: boolean;
|
|
39
39
|
}): Promise<any[]>;
|
|
40
|
+
batchContractCalls(requests: TRpcContractCall[], options?: {
|
|
41
|
+
allowErrors?: boolean;
|
|
42
|
+
}): Promise<any[]>;
|
|
40
43
|
getEventStream(address: TEth.Address, abi: TAbiItem[], event: string): ClientEventsStream<any>;
|
|
41
44
|
with<TResult>(fn: (wClient: WClient) => Promise<TResult>): Promise<TResult>;
|
|
42
45
|
getWeb3(options?: IPoolWeb3Request): Promise<void>;
|
|
@@ -86,7 +89,7 @@ export declare abstract class Web3Client implements IWeb3Client {
|
|
|
86
89
|
chainId: number | string;
|
|
87
90
|
}, options: IPoolWeb3Request): Promise<void>;
|
|
88
91
|
sendSignedTransaction(signedTxBuffer: TEth.Hex): PromiseEvent<TEth.TxReceipt>;
|
|
89
|
-
sign(address: TEth.Address, message: string): Promise<
|
|
92
|
+
sign(address: TEth.Address, message: string): Promise<TEth.Hex>;
|
|
90
93
|
signTypedData(address: TEth.Address, typedData: DataLike<RpcTypes.TypedData>): Promise<TEth.Hex>;
|
|
91
94
|
sendTransaction(data: TEth.TxLike): PromiseEvent<TEth.TxReceipt>;
|
|
92
95
|
getBlockNumber(): Promise<number>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { TPlatform } from '../models/TPlatform';
|
|
2
2
|
import { IWeb3EndpointOptions } from './interfaces/IWeb3EndpointOptions';
|
|
3
3
|
import { EvmWeb3Client } from './EvmWeb3Client';
|
|
4
|
+
import type { HardhatWeb3Client } from '../hardhat/HardhatWeb3Client';
|
|
4
5
|
export declare namespace Web3ClientFactory {
|
|
5
|
-
function get(platform: TPlatform | number, opts?: IWeb3EndpointOptions):
|
|
6
|
+
function get<TClient extends EvmWeb3Client | HardhatWeb3Client = EvmWeb3Client>(platform: TPlatform | number, opts?: IWeb3EndpointOptions): TClient;
|
|
6
7
|
/** Same as the sync variant, but ensures the config is fetched */
|
|
7
|
-
function getAsync(platform: TPlatform | string | number, opts?: IWeb3EndpointOptions): Promise<
|
|
8
|
+
function getAsync<TClient extends EvmWeb3Client | HardhatWeb3Client = EvmWeb3Client>(platform: TPlatform | string | number, opts?: IWeb3EndpointOptions): Promise<TClient>;
|
|
8
9
|
}
|
|
@@ -56,7 +56,7 @@ export declare abstract class ContractBase {
|
|
|
56
56
|
from?: TAddress;
|
|
57
57
|
}): any;
|
|
58
58
|
$gas(): any;
|
|
59
|
-
$req(): { [K in keyof this]: this[K] extends (...any: any[]) => Promise<any> ? (...params: Parameters<this[K]>) => ContractReaderUtils.IContractReadParams<Awaited<ReturnType<this[K]
|
|
59
|
+
$req(): { [K in keyof this]: this[K] extends (...any: any[]) => Promise<any> ? (...params: Parameters<this[K]>) => Promise<ContractReaderUtils.IContractReadParams<Awaited<ReturnType<this[K]>>>> : never; };
|
|
60
60
|
$signed(builderConfig?: ITxBuilderOptions, writerConfig?: ITxWriterOptions): any;
|
|
61
61
|
private $signedCreate;
|
|
62
62
|
$receipt<T extends this>(this: T): T;
|
|
@@ -4,6 +4,6 @@ export declare namespace FnRequestWrapper {
|
|
|
4
4
|
function create<T extends ContractBase>($base: T): TRequests<T>;
|
|
5
5
|
}
|
|
6
6
|
type TRequests<T extends ContractBase> = {
|
|
7
|
-
[K in keyof T]: T[K] extends (...any: any[]) => Promise<any> ? (...params: Parameters<T[K]>) => ContractReaderUtils.IContractReadParams<Awaited<ReturnType<T[K]
|
|
7
|
+
[K in keyof T]: T[K] extends (...any: any[]) => Promise<any> ? (...params: Parameters<T[K]>) => Promise<ContractReaderUtils.IContractReadParams<Awaited<ReturnType<T[K]>>>> : never;
|
|
8
8
|
};
|
|
9
9
|
export {};
|
|
@@ -45,7 +45,7 @@ export interface TimelockAccount extends IAccount {
|
|
|
45
45
|
type: 'timelock';
|
|
46
46
|
provider?: 'default' | string;
|
|
47
47
|
platform: TPlatform;
|
|
48
|
-
operator:
|
|
48
|
+
operator: IAccount;
|
|
49
49
|
}
|
|
50
50
|
export type TAccount = string | IAccount | EoAccount | SafeAccount | Erc4337Account;
|
|
51
51
|
export {};
|
|
@@ -8,5 +8,11 @@ export declare namespace $abiParser {
|
|
|
8
8
|
* function foo(uint256) returns (address)
|
|
9
9
|
*/
|
|
10
10
|
function parseMethod(methodAbi: string): TAbiItem;
|
|
11
|
+
/**
|
|
12
|
+
* Parses Solidity struct declarations into a tuple ABI component.
|
|
13
|
+
* Supports multiple declarations so later structs can reference earlier ones,
|
|
14
|
+
* and returns the ABI component for the last struct in the input.
|
|
15
|
+
*/
|
|
16
|
+
function parseStruct(struct: string): TAbiItem;
|
|
11
17
|
function parseArguments(line: string): TAbiInput[];
|
|
12
18
|
}
|
|
@@ -3,6 +3,9 @@ interface ICrypto {
|
|
|
3
3
|
randomBytes(size: number): Uint8Array;
|
|
4
4
|
randomUUID(): `${string}-${string}-${string}-${string}-${string}`;
|
|
5
5
|
createECDH(curve: string): any;
|
|
6
|
+
sha256(mix: string | TEth.Hex | Uint8Array, opts?: {
|
|
7
|
+
encoding: 'hex';
|
|
8
|
+
}): Promise<TEth.Hex>;
|
|
6
9
|
sha256(mix: string | TEth.Hex | Uint8Array): Promise<Uint8Array>;
|
|
7
10
|
encrypt(buffer: string | TEth.Hex | Uint8Array, opts: IEncryptionParams & {
|
|
8
11
|
encoding?: undefined | 'binary';
|
|
@@ -13,6 +13,8 @@ export declare namespace $hex {
|
|
|
13
13
|
* Trims '00' bytes from start or end, e.g. 0x68656c6c6f000000 => 0x68656c6c6f
|
|
14
14
|
*/
|
|
15
15
|
function trimBytes(hex: TEth.Hex): TEth.Hex;
|
|
16
|
+
function trimBytesStart(hex: TEth.Hex): TEth.Hex;
|
|
17
|
+
function trimBytesEnd(hex: TEth.Hex): TEth.Hex;
|
|
16
18
|
function trimLeadingZerosFromNumber(hex: string): string;
|
|
17
19
|
function getBytes(hex: string, offset: number, length: number): TEth.Hex;
|
|
18
20
|
function getBytesLength(hex: string): number;
|
package/package.json
CHANGED
package/src/abi/$abiCoder.ts
CHANGED
|
@@ -6,11 +6,24 @@ import { TEth } from '@dequanto/models/TEth';
|
|
|
6
6
|
import { $abiParser } from '@dequanto/utils/$abiParser';
|
|
7
7
|
|
|
8
8
|
export namespace $abiCoder {
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
type TAbiType = string | ParamType | TAbiInput;
|
|
11
|
+
type TDecodeOptions = {
|
|
12
|
+
loose?: boolean
|
|
13
|
+
dynamic?: boolean
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export function encode(types: TAbiType, values: any): TEth.Hex
|
|
17
|
+
export function encode(types: TAbiType[], values: any[]): TEth.Hex
|
|
18
|
+
export function encode(types: TAbiType | TAbiType[], values: any | any[]): TEth.Hex {
|
|
19
|
+
if (Array.isArray(types) == false) {
|
|
20
|
+
return encodeSingle(types, values)
|
|
21
|
+
}
|
|
10
22
|
let coder = new AbiCoder();
|
|
11
23
|
return coder.encode(types, values) as TEth.Hex;
|
|
12
24
|
}
|
|
13
|
-
export function encodeSingle(type:
|
|
25
|
+
export function encodeSingle(type: TAbiType, value: any): TEth.Hex {
|
|
26
|
+
type = normalizeType(type);
|
|
14
27
|
let coder = new AbiCoder();
|
|
15
28
|
return coder.encodeSingle(type, value) as TEth.Hex;
|
|
16
29
|
}
|
|
@@ -19,20 +32,20 @@ export namespace $abiCoder {
|
|
|
19
32
|
return solidityPacked(types, values) as TEth.Hex;
|
|
20
33
|
}
|
|
21
34
|
|
|
22
|
-
export function decode(types:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
35
|
+
export function decode(types: TAbiType, hex: string, opts?: TDecodeOptions): any
|
|
36
|
+
export function decode(types: TAbiType[], hex: string, opts?: TDecodeOptions): any[]
|
|
37
|
+
export function decode(types: TAbiType| TAbiType[], hex: string, opts?: TDecodeOptions): any {
|
|
38
|
+
if (Array.isArray(types) == false) {
|
|
39
|
+
return decodeSingle(types, hex, opts)
|
|
40
|
+
}
|
|
26
41
|
let coder = new AbiCoder();
|
|
27
42
|
let arr = coder.decode(types, hex, opts);
|
|
28
43
|
return arr.map((x, i) => {
|
|
29
44
|
return unwrap(types[i] as TAbiInput, x);
|
|
30
45
|
});
|
|
31
46
|
}
|
|
32
|
-
export function decodeSingle(type:
|
|
33
|
-
|
|
34
|
-
dynamic?: boolean
|
|
35
|
-
}): any {
|
|
47
|
+
export function decodeSingle(type: TAbiType, hex: string, opts?: TDecodeOptions): any {
|
|
48
|
+
type = normalizeType(type);
|
|
36
49
|
let coder = new AbiCoder();
|
|
37
50
|
let x = coder.decodeSingle(type, hex, opts);
|
|
38
51
|
return unwrap(type as TAbiInput, x);
|
|
@@ -72,4 +85,12 @@ export namespace $abiCoder {
|
|
|
72
85
|
}
|
|
73
86
|
return mixValue;
|
|
74
87
|
}
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
function normalizeType (type: TAbiType) {
|
|
91
|
+
if (typeof type === 'string' && /\bstruct /.test(type)) {
|
|
92
|
+
return $abiParser.parseStruct(type);
|
|
93
|
+
}
|
|
94
|
+
return type;
|
|
95
|
+
}
|
|
75
96
|
}
|
|
@@ -93,6 +93,9 @@ export interface IPoolWeb3Request {
|
|
|
93
93
|
|
|
94
94
|
// When fetching logs, specifies the desired block range to query
|
|
95
95
|
blockRangeCount?: number
|
|
96
|
+
|
|
97
|
+
/** Try another node when the RPC succeeds but returns null, e.g. tx not found on one provider. */
|
|
98
|
+
tryNextOnNull?: boolean
|
|
96
99
|
}
|
|
97
100
|
|
|
98
101
|
export class ClientPool {
|
|
@@ -156,12 +159,18 @@ export class ClientPool {
|
|
|
156
159
|
// Client - Retries
|
|
157
160
|
let used = new Map<WClient, number>();
|
|
158
161
|
let errors = [];
|
|
162
|
+
let dataIsNull: boolean;
|
|
159
163
|
|
|
160
164
|
while (true) {
|
|
161
165
|
let wClient = await this.next(used, opts);
|
|
162
166
|
if (wClient == null) {
|
|
163
167
|
let error = errors.pop();
|
|
164
168
|
if (error == null) {
|
|
169
|
+
if (dataIsNull) {
|
|
170
|
+
// No provider returned an error, but none found the requested data
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
|
|
165
174
|
let urls = this
|
|
166
175
|
.clients
|
|
167
176
|
.map(x => ` ${x.config.url}`)
|
|
@@ -182,7 +191,6 @@ export class ClientPool {
|
|
|
182
191
|
?.trace
|
|
183
192
|
?.onComplete({ status, error, time, url: wClient.config.url })
|
|
184
193
|
|
|
185
|
-
|
|
186
194
|
if (wClientUsage == null) {
|
|
187
195
|
// By default, NO_RETRIES
|
|
188
196
|
used.set(wClient, 0);
|
|
@@ -194,6 +202,12 @@ export class ClientPool {
|
|
|
194
202
|
errors.push(error ?? result);
|
|
195
203
|
|
|
196
204
|
if (status == ClientStatus.Ok) {
|
|
205
|
+
if (opts?.tryNextOnNull === true) {
|
|
206
|
+
if (result == null) {
|
|
207
|
+
dataIsNull = true;
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
197
211
|
return result;
|
|
198
212
|
}
|
|
199
213
|
if (status == ClientStatus.RateLimited) {
|
|
@@ -994,6 +1008,8 @@ export class WClient {
|
|
|
994
1008
|
l`yellow<New BatchLimit> for "${this.config.url}" bold<${limit}>`;
|
|
995
1009
|
this.batchLimit = limit;
|
|
996
1010
|
}
|
|
1011
|
+
} else if (ClientErrorUtil.isNodeConfigurationError(error)) {
|
|
1012
|
+
status = ClientStatus.NodeConfigurationError;
|
|
997
1013
|
} else if (ClientErrorUtil.isConnectionFailed(error)) {
|
|
998
1014
|
status = ClientStatus.NetworkError;
|
|
999
1015
|
}
|
|
@@ -97,6 +97,8 @@ export abstract class Web3Client implements IWeb3Client {
|
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
+
// Low-level batch for raw RPC calls.
|
|
101
|
+
// For contract batch calls, use batchContractCalls to decode the responses.
|
|
100
102
|
async batch(requests: TRpc.IRpcAction[], options?: {
|
|
101
103
|
allowErrors?: boolean
|
|
102
104
|
}): Promise<any[]> {
|
|
@@ -105,6 +107,15 @@ export abstract class Web3Client implements IWeb3Client {
|
|
|
105
107
|
});
|
|
106
108
|
}
|
|
107
109
|
|
|
110
|
+
// Submit contract calls in a batch and decode the responses.
|
|
111
|
+
async batchContractCalls(requests: TRpcContractCall[], options?: {
|
|
112
|
+
allowErrors?: boolean
|
|
113
|
+
}) {
|
|
114
|
+
let reader = new RpcContract(this);
|
|
115
|
+
let result = await reader.batch(requests, options);
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
|
|
108
119
|
getEventStream(address: TEth.Address, abi: TAbiItem[], event: string) {
|
|
109
120
|
let eventAbi = abi.find(x => x.type === 'event' && x.name === event);
|
|
110
121
|
if (eventAbi == null) {
|
|
@@ -189,12 +200,11 @@ export abstract class Web3Client implements IWeb3Client {
|
|
|
189
200
|
return result;
|
|
190
201
|
}
|
|
191
202
|
|
|
203
|
+
// Alias for batchContractCalls.
|
|
192
204
|
async readContractBatch(requests: TRpcContractCall[], options?: {
|
|
193
205
|
allowErrors?: boolean
|
|
194
206
|
}) {
|
|
195
|
-
|
|
196
|
-
let result = await reader.batch(requests, options);
|
|
197
|
-
return result;
|
|
207
|
+
return this.batchContractCalls(requests, options);
|
|
198
208
|
}
|
|
199
209
|
|
|
200
210
|
|
|
@@ -227,7 +237,10 @@ export abstract class Web3Client implements IWeb3Client {
|
|
|
227
237
|
getTransaction(txHash: TEth.Hex, opts?: IPoolWeb3Request): Promise<TEth.Tx> {
|
|
228
238
|
return this.pool.call(web3 => {
|
|
229
239
|
return web3.rpc.eth_getTransactionByHash(txHash);
|
|
230
|
-
},
|
|
240
|
+
}, {
|
|
241
|
+
tryNextOnNull: true,
|
|
242
|
+
...(opts ?? {})
|
|
243
|
+
});
|
|
231
244
|
}
|
|
232
245
|
getTransactions(txHashes: TEth.Hex[], opts?: IPoolWeb3Request): Promise<TEth.Tx[]> {
|
|
233
246
|
return this.pool.call(async web3 => {
|
|
@@ -409,12 +422,12 @@ export abstract class Web3Client implements IWeb3Client {
|
|
|
409
422
|
// return tx;
|
|
410
423
|
// }
|
|
411
424
|
|
|
412
|
-
async sign(address: TEth.Address, message: string): Promise<
|
|
425
|
+
async sign(address: TEth.Address, message: string): Promise<TEth.Hex> {
|
|
413
426
|
if (this.wallet.isConnected(address)) {
|
|
414
|
-
return this.wallet.eth_sign(address, message)
|
|
427
|
+
return this.wallet.eth_sign(address, message) as Promise<TEth.Hex>;
|
|
415
428
|
}
|
|
416
429
|
return this.pool.call(wClient => {
|
|
417
|
-
return wClient.sign(address, message)
|
|
430
|
+
return wClient.sign(address, message) as Promise<TEth.Hex>;
|
|
418
431
|
}, {
|
|
419
432
|
wallet: true
|
|
420
433
|
});
|