dequanto 0.2.47 → 0.2.49
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/$abi.js +27 -0
- package/lib/cjs/abi/$abi.js.map +1 -0
- package/lib/cjs/abi/$abiCoder.js +15 -0
- package/lib/cjs/abi/$abiCoder.js.map +1 -1
- package/lib/cjs/abi/abi-coder.js +1 -1
- package/lib/cjs/abi/abi-coder.js.map +1 -1
- package/lib/cjs/clients/Web3Client.js +10 -3
- package/lib/cjs/clients/Web3Client.js.map +1 -1
- package/lib/cjs/clients/Web3ClientFactory.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/$hex.js +1 -0
- package/lib/cjs/utils/$hex.js.map +1 -1
- package/lib/cjs/utils/$require.js +4 -0
- package/lib/cjs/utils/$require.js.map +1 -1
- package/lib/esm/abi/$abi.js.map +1 -0
- package/lib/esm/abi/$abi.mjs +24 -0
- package/lib/esm/abi/$abiCoder.js.map +1 -1
- package/lib/esm/abi/$abiCoder.mjs +15 -0
- package/lib/esm/abi/abi-coder.js.map +1 -1
- package/lib/esm/abi/abi-coder.mjs +1 -1
- package/lib/esm/clients/Web3Client.js.map +1 -1
- package/lib/esm/clients/Web3Client.mjs +10 -3
- package/lib/esm/clients/Web3ClientFactory.js.map +1 -1
- package/lib/esm/utils/$abiParser.js.map +1 -1
- package/lib/esm/utils/$abiParser.mjs +85 -1
- package/lib/esm/utils/$hex.js.map +1 -1
- package/lib/esm/utils/$hex.mjs +1 -0
- package/lib/esm/utils/$require.js.map +1 -1
- package/lib/esm/utils/$require.mjs +4 -0
- package/lib/types/abi/$abi.d.ts +15 -0
- package/lib/types/abi/$abiCoder.d.ts +13 -10
- package/lib/types/clients/Web3Client.d.ts +4 -1
- package/lib/types/clients/Web3ClientFactory.d.ts +3 -2
- 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/utils/$abiParser.d.ts +6 -0
- package/lib/types/utils/$hex.d.ts +1 -0
- package/lib/types/utils/$require.d.ts +4 -4
- package/package.json +1 -1
- package/src/abi/$abi.ts +36 -0
- package/src/abi/$abiCoder.ts +31 -10
- package/src/abi/abi-coder.ts +1 -3
- package/src/clients/Web3Client.ts +16 -6
- package/src/clients/Web3ClientFactory.ts +10 -5
- package/src/contracts/wrappers/FnRequestWrapper.ts +1 -1
- package/src/models/TAccount.ts +1 -1
- package/src/utils/$abiParser.ts +93 -1
- package/src/utils/$hex.ts +3 -1
- package/src/utils/$require.ts +4 -0
|
@@ -59,11 +59,19 @@ export class Web3Client {
|
|
|
59
59
|
return wClient.rpc.request(req);
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
+
// Low-level batch for raw RPC calls.
|
|
63
|
+
// For contract batch calls, use batchContractCalls to decode the responses.
|
|
62
64
|
async batch(requests, options) {
|
|
63
65
|
return this.with(async (web3) => {
|
|
64
66
|
return web3.callBatched(requests, options);
|
|
65
67
|
});
|
|
66
68
|
}
|
|
69
|
+
// Submit contract calls in a batch and decode the responses.
|
|
70
|
+
async batchContractCalls(requests, options) {
|
|
71
|
+
let reader = new RpcContract(this);
|
|
72
|
+
let result = await reader.batch(requests, options);
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
67
75
|
getEventStream(address, abi, event) {
|
|
68
76
|
let eventAbi = abi.find(x => x.type === 'event' && x.name === event);
|
|
69
77
|
if (eventAbi == null) {
|
|
@@ -124,10 +132,9 @@ export class Web3Client {
|
|
|
124
132
|
let result = await reader.request(req);
|
|
125
133
|
return result;
|
|
126
134
|
}
|
|
135
|
+
// Alias for batchContractCalls.
|
|
127
136
|
async readContractBatch(requests, options) {
|
|
128
|
-
|
|
129
|
-
let result = await reader.batch(requests, options);
|
|
130
|
-
return result;
|
|
137
|
+
return this.batchContractCalls(requests, options);
|
|
131
138
|
}
|
|
132
139
|
getBalance(address, blockNumber = 'latest') {
|
|
133
140
|
return this.pool.call(async (web3) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Web3ClientFactory.js","sourceRoot":"","sources":["../../../src/clients/Web3ClientFactory.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAsB;AAGtB,uEAAoE;AACpE,oDAAiD;AACjD,mDAAgD;AAChD,uDAAoD;AACpD,qDAAkD;
|
|
1
|
+
{"version":3,"file":"Web3ClientFactory.js","sourceRoot":"","sources":["../../../src/clients/Web3ClientFactory.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAsB;AAGtB,uEAAoE;AACpE,oDAAiD;AACjD,mDAAgD;AAChD,uDAAoD;AACpD,qDAAkD;AAGlD,IAAiB,iBAAiB,CA4BjC;AA5BD,WAAiB,iBAAiB;IAE9B,SAAgB,GAAG,CAEhB,QAA4B,EAAE,IAA2B;QACxD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;YACxF,IAAI,MAAM,GAAG,cAAE,CAAC,OAAO,CAAC,iCAAe,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACnE,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBAC5B,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3C;YACD,OAAO,MAAiB,CAAC;SAC5B;QAED,IAAI,OAAO,GAAG,iBAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,mBAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,wBAAwB,QAAQ,kBAAkB,CAAC,CAAA;QAC7E,OAAO,IAAI,6BAAa,CAAC;YACrB,GAAG,OAAO;YACV,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;SAClB,CAAY,CAAC;IAClB,CAAC;IAjBe,qBAAG,MAiBlB,CAAA;IAED,kEAAkE;IAC3D,KAAK,UAAU,QAAQ,CAE3B,QAAqC,EAAE,IAA2B;QACjE,IAAI,GAAG,GAAG,MAAM,eAAM,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAU,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IALqB,0BAAQ,WAK7B,CAAA;AACL,CAAC,EA5BgB,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QA4BjC"}
|
|
@@ -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":";;;AACA,yCAAsC;AACtC,wDAAqD;AAOrD,IAAiB,UAAU,CAmP1B;AAnPD,WAAiB,UAAU;IACvB,SAAgB,aAAa,CAAE,GAAa;QACxC,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC1B,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YACxC,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YAC1C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC1B;QACD,IAAI,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE;YACT,OAAO,QAAQ,CAAC;SACnB;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAbe,wBAAa,gBAa5B,CAAA;IACD,SAAgB,sBAAsB,CAAE,OAAqB;QACzD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YACxC,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YAC1C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC1B;QACD,IAAI,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE;YACT,OAAO,QAAQ,CAAC;SACnB;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAZe,iCAAsB,yBAYrC,CAAA;IAED,MAAM,SAAS,GAAG,yGAAyG,CAAC;IAE5H,MAAM,aAAa,GAAG,kDAAkD,CAAC;IACzE,MAAM,eAAe,GAAG,8BAA8B,CAAC;IACvD,MAAM,YAAY,GAAG,UAAU,CAAC;IAChC,MAAM,YAAY,GAAG,iBAAiB,CAAA;IACtC;;;;OAIG;IACH,SAAgB,WAAW,CAAE,SAAiB;QAC1C,IAAI,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,mBAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,sBAAsB,SAAS,kDAAkD,CAAC,CAAC;QAErH,IAAI,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC;QAC/C,IAAI,QAAQ,GAAG,WAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;QACrF,mBAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,2BAA2B,SAAS,kDAAkD,CAAC,CAAC;QAEtI,IAAI,eAAe,GAAG,KAAK,CAAC,CAAC;QAC7B,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,WAAW,EAAE;YACb,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;YACxB,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;YAC7D,QAAQ,GAAG,WAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;SAC3D;QAED,uBAAuB;QACvB,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEtD,IAAI,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtE,IAAI,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3C,OAAkB;YACd,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,eAAe;YAEf,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAClC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU;SAClD,CAAC;IACN,CAAC;IArCe,sBAAW,cAqC1B,CAAA;IAGD;;;;OAIG;IACH,SAAgB,WAAW,CAAE,MAAc;QACvC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,mBAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,uBAAuB,MAAM,EAAE,CAAC,CAAC;QAEhE,IAAI,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC;QACtD,IAAI,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;QAEzC,SAAS,OAAO,CAAE,IAAY;YAC1B,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,MAAM,IAAI,IAAI,EAAE;gBAChB,OAAO,MAAM,CAAC;aACjB;YACD,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,mBAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,IAAI,eAAe,CAAC,CAAC;YAErD,IAAI,KAAK,GAAc;gBACnB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,UAAU,IAAI,EAAE;gBAC9B,UAAU,EAAE,EAAE;aACjB,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACvB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;iBACnD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjD,GAAG,CAAC,cAAc,CAAC,CAAC;YAEzB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,SAAS,cAAc,CAAE,KAAgB;YACrC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE;gBAC5B,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;oBAC1B,OAAO;wBACH,GAAG,KAAK;wBACR,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC;qBACnD,CAAC;iBACL;gBACD,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO;gBACH,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,QAAQ,KAAK,EAAE;gBACrB,YAAY,EAAE,UAAU,IAAI,GAAG,KAAK,EAAE;gBACtC,UAAU,EAAE,KAAK,CAAC,UAAU;aAC/B,CAAC;QACN,CAAC;QAED,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,OAAO;YACH,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;SACC,CAAC;IACzB,CAAC;IAvDe,sBAAW,cAuD1B,CAAA;IAED,UAAU;IACV,YAAY;IACZ,qBAAqB;IACrB,6BAA6B;IAC7B,+BAA+B;IAC/B,gDAAgD;IAChD,SAAgB,cAAc,CAAE,IAAY;QACxC,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;QAEpB,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;YACxB,OAAO,EAAE,CAAC;SACb;QACD,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oDAAoD,CAAC,CAAC;SAChF;QAGD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;YACxB,IAAI,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACxC,IAAI,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAClD,IAAI,OAAO,EAAE;gBACT,OAAO;oBACH;wBACI,IAAI,EAAE,EAAE;wBACR,IAAI,EAAE,SAAS;wBACf,UAAU,EAAE,MAAM;qBACrB;iBACJ,CAAC;aACL;YACD,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;gBAClB,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;aAC3B;YACD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1D,IAAI,SAAS,EAAE;gBACX,IAAI,IAAI,GAAG,OAAO,CAAC;gBACnB,oEAAoE;gBACpE,IAAI,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5C,IAAI,QAAQ,IAAI,IAAI,EAAE;oBAClB,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC1B,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;iBAC9D;gBACD,OAAO;oBACH;wBACI,IAAI,EAAE,SAAS;wBACf,IAAI;wBACJ,UAAU,EAAE,MAAM;qBACrB;iBACJ,CAAC;aACL;YAGD,6BAA6B;YAC7B,6BAA6B;YAE7B,iBAAiB;YACjB,YAAY;YACZ,wBAAwB;YACxB,0BAA0B;YAC1B,aAAa;YACb,SAAS;YACT,IAAI;YAEJ,OAAO,MAAM,CAAC;SACjB;QAED,mBAAmB;QACnB,uDAAuD;QAEvD,oEAAoE;QACpE,yFAAyF;QAEzF,mBAAmB;QACnB,iCAAiC;QACjC,iCAAiC;QACjC,aAAa;QACb,UAAU;QACV,IAAI;QAEJ,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,KAAK,GAAG,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE;YACP,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YACzB,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YAEzB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/D,IAAI,OAAO,KAAK,EAAE,EAAE;gBAChB,IAAI,GAAG,OAAO,CAAC;aAClB;SACJ;QACD,OAAO;YACH;gBACI,IAAI;gBACJ,IAAI;aACP;SACJ,CAAC;IACN,CAAC;IA9Fe,yBAAc,iBA8F7B,CAAA;AACL,CAAC,EAnPgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAmP1B;AAED,IAAU,KAAK,CAyFd;AAzFD,WAAU,KAAK;IACX,qCAAqC;IACrC,SAAgB,cAAc,CAAE,SAAiB;QAC7C,IAAI,GAAG,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAC1C,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACf,gDAAgD;YAChD,8CAA8C;YAC9C,IAAI,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC9C,OAAO;oBACH,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,OAAO;oBACb,UAAU,EAAE,MAAM;iBACD,CAAC;aACzB;YAAA,CAAC;YACF,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACX,CAAC;IAfe,oBAAc,iBAe7B,CAAA;IAED,SAAgB,gBAAgB,CAAE,IAAY,EAAE,SAAiB;QAC7D,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,KAAK,SAAS,EAAE;gBACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5C,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,SAAS;aACZ;YACD,IAAI,CAAC,KAAK,GAAG,EAAE;gBACX,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5B,SAAS;aACZ;SACJ;QACD,aAAa;QACb,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAlBe,sBAAgB,mBAkB/B,CAAA;IAED,SAAgB,WAAW,CAAE,GAAW,EAAE,MAAc,EAAE,QAAgB,EAAE,SAAkB;QAC1F,SAAS,GAAG,SAAS,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACrB,KAAK,EAAE,CAAC;aACX;YACD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;gBACtB,KAAK,EAAE,CAAC;aACX;YACD,IAAI,KAAK,KAAK,CAAC,EAAE;gBACb,OAAO,CAAC,CAAC;aACZ;SACJ;QACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,IAAI,SAAS,OAAO,GAAG,EAAE,CAAC,CAAC;IAClF,CAAC;IAfe,iBAAW,cAe1B,CAAA;IAED,MAAM,WAAW,GAAG;QAChB,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;KACX,CAAC;IAEF,SAAgB,OAAO,CAAE,MAAc;QACnC,IAAI,GAAG,GAAG,mCAAmC,CAAC;QAC9C,IAAI,GAAG,GAAqC,EAAE,CAAC;QAC/C,IAAI,KAAsB,CAAC;QAC3B,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE;YACvC,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC;gBACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;gBACvB,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;aACnD,CAAC,CAAC;YACH,GAAG,CAAC,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;SAC9B;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAde,aAAO,UActB,CAAA;IAED,SAAgB,YAAY,CAAE,IAAY;QACtC,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,OAAO,IAAI,EAAE;YACT,IAAI,KAAK,GAAG,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,KAAK,IAAI,IAAI,EAAE;gBACf,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAC1B;YACD,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YACzB,KAAK,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;SAC3C;IACL,CAAC;IAVe,kBAAY,eAU3B,CAAA;AACL,CAAC,EAzFS,KAAK,KAAL,KAAK,QAyFd"}
|
|
@@ -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":"$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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$require.js","sourceRoot":"","sources":["../../../src/utils/$require.ts"],"names":[],"mappings":";;;AAEA,+BAA4B;AAC5B,yCAAsC;AAGtC,MAAM,MAAM,GAAG,KAAK,CAAC;AACrB,IAAiB,QAAQ,
|
|
1
|
+
{"version":3,"file":"$require.js","sourceRoot":"","sources":["../../../src/utils/$require.ts"],"names":[],"mappings":"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"}
|
|
@@ -211,6 +211,7 @@ export var $require;
|
|
|
211
211
|
if (a <= b) {
|
|
212
212
|
throw new Error(`Expected a(${a}) > b(${b}). ${message}`);
|
|
213
213
|
}
|
|
214
|
+
return a;
|
|
214
215
|
}
|
|
215
216
|
$require.gt = gt;
|
|
216
217
|
function gte(a, b, message = '') {
|
|
@@ -219,6 +220,7 @@ export var $require;
|
|
|
219
220
|
if (a < b) {
|
|
220
221
|
throw new Error(`Expected a(${a}) > b(${b}). ${message}`);
|
|
221
222
|
}
|
|
223
|
+
return a;
|
|
222
224
|
}
|
|
223
225
|
$require.gte = gte;
|
|
224
226
|
/**
|
|
@@ -230,6 +232,7 @@ export var $require;
|
|
|
230
232
|
if (a >= b) {
|
|
231
233
|
throw new Error(`Expected a(${a}) > b(${b}). ${message}`);
|
|
232
234
|
}
|
|
235
|
+
return a;
|
|
233
236
|
}
|
|
234
237
|
$require.lt = lt;
|
|
235
238
|
function lte(a, b, message = '') {
|
|
@@ -238,6 +241,7 @@ export var $require;
|
|
|
238
241
|
if (a > b) {
|
|
239
242
|
throw new Error(`Expected a(${a}) > b(${b}). ${message}`);
|
|
240
243
|
}
|
|
244
|
+
return a;
|
|
241
245
|
}
|
|
242
246
|
$require.lte = lte;
|
|
243
247
|
})($require || ($require = {}));
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TAbiInput } from '../types/TAbi';
|
|
2
|
+
import { ParamType } from './fragments';
|
|
3
|
+
import { TEth } from '../models/TEth';
|
|
4
|
+
export declare namespace $abi {
|
|
5
|
+
type TAbiType = string | ParamType | TAbiInput;
|
|
6
|
+
type TDecodeOptions = {
|
|
7
|
+
loose?: boolean;
|
|
8
|
+
dynamic?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export function encode(types: TAbiType, values: any): TEth.Hex;
|
|
11
|
+
export function encode(types: TAbiType[], values: any[]): TEth.Hex;
|
|
12
|
+
export function decode(types: TAbiType, hex: string, opts?: TDecodeOptions): any;
|
|
13
|
+
export function decode(types: TAbiType[], hex: string, opts?: TDecodeOptions): any[];
|
|
14
|
+
export {};
|
|
15
|
+
}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import { TAbiInput } from '../types/TAbi';
|
|
1
|
+
import { TAbiInput, TAbiItem } 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 function normalizeType(type: TAbiType): TAbiItem | TAbiType;
|
|
18
|
+
export {};
|
|
16
19
|
}
|
|
@@ -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
|
}
|
|
@@ -39,11 +39,11 @@ export declare namespace $require {
|
|
|
39
39
|
/**
|
|
40
40
|
* must be a > b, throws when a <= b
|
|
41
41
|
*/
|
|
42
|
-
function gt<T = number | bigint>(a: T, b: T, message?: string):
|
|
43
|
-
function gte<T = number | bigint>(a: T, b: T, message?: string):
|
|
42
|
+
function gt<T = number | bigint>(a: T, b: T, message?: string): T;
|
|
43
|
+
function gte<T = number | bigint>(a: T, b: T, message?: string): T;
|
|
44
44
|
/**
|
|
45
45
|
* must be a < b, throws when a >= b
|
|
46
46
|
*/
|
|
47
|
-
function lt<T = number | bigint>(a: T, b: T, message?: string):
|
|
48
|
-
function lte<T = number | bigint>(a: T, b: T, message?: string):
|
|
47
|
+
function lt<T = number | bigint>(a: T, b: T, message?: string): T;
|
|
48
|
+
function lte<T = number | bigint>(a: T, b: T, message?: string): T;
|
|
49
49
|
}
|
package/package.json
CHANGED
package/src/abi/$abi.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { TAbiInput } from '@dequanto/types/TAbi';
|
|
2
|
+
import { ParamType } from './fragments';
|
|
3
|
+
import { TEth } from '@dequanto/models/TEth';
|
|
4
|
+
import { $abiCoder } from './$abiCoder';
|
|
5
|
+
|
|
6
|
+
export namespace $abi {
|
|
7
|
+
type TAbiType = string | ParamType | TAbiInput;
|
|
8
|
+
type TDecodeOptions = {
|
|
9
|
+
loose?: boolean
|
|
10
|
+
dynamic?: boolean
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export function encode(types: TAbiType, values: any): TEth.Hex
|
|
14
|
+
export function encode(types: TAbiType[], values: any[]): TEth.Hex
|
|
15
|
+
export function encode(types: TAbiType | TAbiType[], values: any | any[]): TEth.Hex {
|
|
16
|
+
const isSingle = Array.isArray(types) === false;
|
|
17
|
+
const arr = ensureTypes(types);
|
|
18
|
+
const hex = $abiCoder.encode(arr, isSingle ? [ values ] : values);
|
|
19
|
+
return hex;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function decode(types: TAbiType, hex: string, opts?: TDecodeOptions): any
|
|
23
|
+
export function decode(types: TAbiType[], hex: string, opts?: TDecodeOptions): any[]
|
|
24
|
+
export function decode(types: TAbiType | TAbiType[], hex: string, opts?: TDecodeOptions): any {
|
|
25
|
+
const isSingle = Array.isArray(types) === false;
|
|
26
|
+
const arr = ensureTypes(types);
|
|
27
|
+
let result = $abiCoder.decode(arr, hex, opts);
|
|
28
|
+
|
|
29
|
+
return isSingle ? result[0] : result;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function ensureTypes (types: TAbiType | TAbiType[]): TAbiType[] {
|
|
33
|
+
let arr = Array.isArray(types) ? types : [ types ];
|
|
34
|
+
return arr.map($abiCoder.normalizeType);
|
|
35
|
+
}
|
|
36
|
+
}
|
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
|
+
export function normalizeType (type: TAbiType) {
|
|
91
|
+
if (typeof type === 'string' && /\bstruct /.test(type)) {
|
|
92
|
+
return $abiParser.parseStruct(type);
|
|
93
|
+
}
|
|
94
|
+
return type;
|
|
95
|
+
}
|
|
75
96
|
}
|
package/src/abi/abi-coder.ts
CHANGED
|
@@ -116,9 +116,7 @@ export class AbiCoder {
|
|
|
116
116
|
* @returns DataHexstring
|
|
117
117
|
*/
|
|
118
118
|
encodeSingle(type: string | ParamType | TAbiInput, value: any): string {
|
|
119
|
-
|
|
120
|
-
let coder = this.#getCoder(ParamType.from(type));
|
|
121
|
-
|
|
119
|
+
const coder = this.#getCoder(ParamType.from(type));
|
|
122
120
|
const writer = new Writer();
|
|
123
121
|
coder.encode(writer, value);
|
|
124
122
|
return writer.data;
|
|
@@ -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
|
|
|
@@ -412,12 +422,12 @@ export abstract class Web3Client implements IWeb3Client {
|
|
|
412
422
|
// return tx;
|
|
413
423
|
// }
|
|
414
424
|
|
|
415
|
-
async sign(address: TEth.Address, message: string): Promise<
|
|
425
|
+
async sign(address: TEth.Address, message: string): Promise<TEth.Hex> {
|
|
416
426
|
if (this.wallet.isConnected(address)) {
|
|
417
|
-
return this.wallet.eth_sign(address, message)
|
|
427
|
+
return this.wallet.eth_sign(address, message) as Promise<TEth.Hex>;
|
|
418
428
|
}
|
|
419
429
|
return this.pool.call(wClient => {
|
|
420
|
-
return wClient.sign(address, message)
|
|
430
|
+
return wClient.sign(address, message) as Promise<TEth.Hex>;
|
|
421
431
|
}, {
|
|
422
432
|
wallet: true
|
|
423
433
|
});
|