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.
Files changed (107) hide show
  1. package/docs/ai/INDEX.md +41 -0
  2. package/docs/ai/examples/contract-read.spec.ts +44 -0
  3. package/docs/ai/examples/contract-write.spec.ts +16 -0
  4. package/docs/ai/examples/deploy-contract.spec.ts +32 -0
  5. package/docs/ai/examples/erc4337-userop.spec.ts +37 -0
  6. package/docs/ai/examples/explorer-abi.spec.ts +18 -0
  7. package/docs/ai/examples/generate-client.spec.ts +22 -0
  8. package/docs/ai/examples/index-events.spec.ts +27 -0
  9. package/docs/ai/examples/rpc-read.spec.ts +15 -0
  10. package/docs/ai/examples/safe-batch.spec.ts +55 -0
  11. package/docs/ai/examples/send-transaction.spec.ts +22 -0
  12. package/docs/ai/examples/storage-read.spec.ts +27 -0
  13. package/docs/ai/examples/token-transfer.spec.ts +22 -0
  14. package/docs/ai/references/contracts.md +111 -0
  15. package/docs/ai/references/deployments.md +98 -0
  16. package/docs/ai/references/events-indexing.md +97 -0
  17. package/docs/ai/references/explorer.md +77 -0
  18. package/docs/ai/references/generation.md +182 -0
  19. package/docs/ai/references/migration-from-ethers-viem.md +43 -0
  20. package/docs/ai/references/rpc-clients.md +115 -0
  21. package/docs/ai/references/safe-erc4337.md +134 -0
  22. package/docs/ai/references/storage.md +93 -0
  23. package/docs/ai/references/tokens-accounts.md +99 -0
  24. package/docs/ai/references/transactions.md +146 -0
  25. package/docs/ai/skill/dequanto/SKILL.md +59 -0
  26. package/lib/cjs/abi/$abiCoder.js +14 -0
  27. package/lib/cjs/abi/$abiCoder.js.map +1 -1
  28. package/lib/cjs/clients/ClientPool.js +14 -0
  29. package/lib/cjs/clients/ClientPool.js.map +1 -1
  30. package/lib/cjs/clients/Web3Client.js +14 -4
  31. package/lib/cjs/clients/Web3Client.js.map +1 -1
  32. package/lib/cjs/clients/Web3ClientFactory.js.map +1 -1
  33. package/lib/cjs/clients/model/ClientStatus.js +1 -0
  34. package/lib/cjs/clients/model/ClientStatus.js.map +1 -1
  35. package/lib/cjs/clients/utils/ClientErrorUtil.js +9 -0
  36. package/lib/cjs/clients/utils/ClientErrorUtil.js.map +1 -1
  37. package/lib/cjs/config/ConfigDefaults.js +0 -3
  38. package/lib/cjs/config/ConfigDefaults.js.map +1 -1
  39. package/lib/cjs/contracts/ContractCreationResolver.js +1 -0
  40. package/lib/cjs/contracts/ContractCreationResolver.js.map +1 -1
  41. package/lib/cjs/rpc/RpcBase.js +4 -1
  42. package/lib/cjs/rpc/RpcBase.js.map +1 -1
  43. package/lib/cjs/solidity/utils/$str.js +1 -1
  44. package/lib/cjs/solidity/utils/$str.js.map +1 -1
  45. package/lib/cjs/utils/$abiParser.js +85 -1
  46. package/lib/cjs/utils/$abiParser.js.map +1 -1
  47. package/lib/cjs/utils/$base.js +1 -1
  48. package/lib/cjs/utils/$base.js.map +1 -1
  49. package/lib/cjs/utils/$crypto.js.map +1 -1
  50. package/lib/cjs/utils/$hex.js +15 -3
  51. package/lib/cjs/utils/$hex.js.map +1 -1
  52. package/lib/esm/abi/$abiCoder.js.map +1 -1
  53. package/lib/esm/abi/$abiCoder.mjs +14 -0
  54. package/lib/esm/clients/ClientPool.js.map +1 -1
  55. package/lib/esm/clients/ClientPool.mjs +14 -0
  56. package/lib/esm/clients/Web3Client.js.map +1 -1
  57. package/lib/esm/clients/Web3Client.mjs +14 -4
  58. package/lib/esm/clients/Web3ClientFactory.js.map +1 -1
  59. package/lib/esm/clients/model/ClientStatus.js.map +1 -1
  60. package/lib/esm/clients/model/ClientStatus.mjs +1 -0
  61. package/lib/esm/clients/utils/ClientErrorUtil.js.map +1 -1
  62. package/lib/esm/clients/utils/ClientErrorUtil.mjs +9 -0
  63. package/lib/esm/config/ConfigDefaults.js.map +1 -1
  64. package/lib/esm/config/ConfigDefaults.mjs +0 -3
  65. package/lib/esm/contracts/ContractCreationResolver.js.map +1 -1
  66. package/lib/esm/contracts/ContractCreationResolver.mjs +1 -0
  67. package/lib/esm/rpc/RpcBase.js.map +1 -1
  68. package/lib/esm/rpc/RpcBase.mjs +4 -1
  69. package/lib/esm/solidity/utils/$str.js.map +1 -1
  70. package/lib/esm/solidity/utils/$str.mjs +1 -1
  71. package/lib/esm/utils/$abiParser.js.map +1 -1
  72. package/lib/esm/utils/$abiParser.mjs +85 -1
  73. package/lib/esm/utils/$base.js.map +1 -1
  74. package/lib/esm/utils/$base.mjs +1 -1
  75. package/lib/esm/utils/$crypto.js.map +1 -1
  76. package/lib/esm/utils/$hex.js.map +1 -1
  77. package/lib/esm/utils/$hex.mjs +15 -3
  78. package/lib/types/abi/$abiCoder.d.ts +11 -9
  79. package/lib/types/clients/ClientPool.d.ts +2 -0
  80. package/lib/types/clients/Web3Client.d.ts +4 -1
  81. package/lib/types/clients/Web3ClientFactory.d.ts +3 -2
  82. package/lib/types/clients/model/ClientStatus.d.ts +1 -0
  83. package/lib/types/clients/utils/ClientErrorUtil.d.ts +4 -0
  84. package/lib/types/contracts/ContractBase.d.ts +1 -1
  85. package/lib/types/contracts/wrappers/FnRequestWrapper.d.ts +1 -1
  86. package/lib/types/models/TAccount.d.ts +1 -1
  87. package/lib/types/rpc/RpcBase.d.ts +1 -0
  88. package/lib/types/utils/$abiParser.d.ts +6 -0
  89. package/lib/types/utils/$crypto.d.ts +3 -0
  90. package/lib/types/utils/$hex.d.ts +2 -0
  91. package/package.json +1 -1
  92. package/src/abi/$abiCoder.ts +31 -10
  93. package/src/clients/ClientPool.ts +17 -1
  94. package/src/clients/Web3Client.ts +20 -7
  95. package/src/clients/Web3ClientFactory.ts +10 -5
  96. package/src/clients/model/ClientStatus.ts +1 -0
  97. package/src/clients/utils/ClientErrorUtil.ts +8 -0
  98. package/src/config/ConfigDefaults.ts +0 -3
  99. package/src/contracts/ContractCreationResolver.ts +1 -0
  100. package/src/contracts/wrappers/FnRequestWrapper.ts +1 -1
  101. package/src/models/TAccount.ts +1 -1
  102. package/src/rpc/RpcBase.ts +5 -1
  103. package/src/solidity/utils/$str.ts +1 -1
  104. package/src/utils/$abiParser.ts +93 -1
  105. package/src/utils/$base.ts +1 -1
  106. package/src/utils/$crypto.ts +1 -0
  107. package/src/utils/$hex.ts +12 -3
@@ -0,0 +1,93 @@
1
+ # Solidity Storage
2
+
3
+ Use `SlotsParser` to derive layout and `SlotsStorage` to read or write slots. Do not decode raw storage words as ABI payloads.
4
+
5
+ Key source files:
6
+
7
+ - `src/solidity/SlotsParser.ts`
8
+ - `src/solidity/SlotsStorage.ts`
9
+ - `src/solidity/storage/handlers/SlotStructHandler.ts`
10
+ - `src/solidity/storage/handlers/SlotMappingHandler.ts`
11
+ - `src/solidity/storage/handlers/SlotDynamicArrayHandler.ts`
12
+ - `src/solidity/storage/SlotsStorageTransport.ts`
13
+ - `src/gen/GeneratorStorageReader.ts`
14
+
15
+ Useful tests:
16
+
17
+ - `test/solidity/SlotsReader.spec.ts`
18
+ - `test/solidity/Storage.spec.ts`
19
+ - `test/solidity/SlotsParser.spec.ts`
20
+ - `test/generate/slotreader.spec.ts`
21
+
22
+ ## Parse Slots From Solidity
23
+
24
+ ```ts
25
+ import { SlotsParser } from '@dequanto/solidity/SlotsParser';
26
+
27
+ const slots = await SlotsParser.slots({
28
+ path: './contracts/Vault.sol'
29
+ }, 'Vault');
30
+ ```
31
+
32
+ For inline code:
33
+
34
+ ```ts
35
+ const slots = await SlotsParser.slots({ path: '', code }, 'Foo');
36
+ ```
37
+
38
+ ## Parse Slots From ABI Inputs
39
+
40
+ Use this for standalone struct or tuple ABI data:
41
+
42
+ ```ts
43
+ const slots = await SlotsParser.slotsFromAbi(
44
+ '(uint256 foo, address owner, bool enabled)'
45
+ );
46
+ ```
47
+
48
+ ## Read Contract Storage
49
+
50
+ ```ts
51
+ import { SlotsStorage } from '@dequanto/solidity/SlotsStorage';
52
+
53
+ const storage = SlotsStorage.createWithClient(client, contract.address, slots);
54
+
55
+ const owner = await storage.get('owner');
56
+ const user = await storage.get('users[0]');
57
+ const balance = await storage.get(`balances["${account}"]`);
58
+ ```
59
+
60
+ Supported path forms include:
61
+
62
+ - `field`
63
+ - `struct.field`
64
+ - `array[0]`
65
+ - `mapping["0x..."]`
66
+ - `mapping["0x..."].field`
67
+ - `nested[0].balances[1]`
68
+ - breadcrumb arrays such as `['users', account, 'balance']`
69
+
70
+ ## Read Diamond Or Offset Storage
71
+
72
+ For library-selected storage roots:
73
+
74
+ ```ts
75
+ const storage = SlotsStorage.createWithClient(client, contract.address, slots, {
76
+ storageOffset: $contract.keccak256('diamond.app.storage')
77
+ });
78
+ ```
79
+
80
+ ## Write Storage In Tests
81
+
82
+ `SlotsStorage.set(...)` exists and is useful in Hardhat/debug contexts:
83
+
84
+ ```ts
85
+ await storage.set('user.balance', 1000n);
86
+ ```
87
+
88
+ Do not use storage writes in production code unless the transport explicitly supports it and the task requires test/debug mutation.
89
+
90
+ ## Raw Slot Reads
91
+
92
+ Use `client.getStorageAt(address, slot)` or `client.getStorageAtBatched(address, slots)` only when raw words are needed.
93
+
@@ -0,0 +1,99 @@
1
+ # Tokens And Accounts
2
+
3
+ Use dequanto token and account helpers for known token metadata, balances, transfers, and signing.
4
+
5
+ Key source files:
6
+
7
+ - `src/tokens/TokensService.ts`
8
+ - `src/tokens/TokensServiceFactory.ts`
9
+ - `src/tokens/TokenTransferService.ts`
10
+ - `src/ChainAccountService.ts`
11
+ - `src/utils/$sig.ts`
12
+ - `src/utils/$account.ts`
13
+ - `src/models/TAccount.ts`
14
+
15
+ Useful tests:
16
+
17
+ - `test/token.spec.ts`
18
+ - `test/ChainAccount.spec.ts`
19
+ - `test/hardhat/tx.spec.ts`
20
+
21
+ ## Token Metadata
22
+
23
+ ```ts
24
+ import { TokensService } from '@dequanto/tokens/TokensService';
25
+
26
+ const tokens = new TokensService('eth');
27
+ const usdc = await tokens.getKnownToken('USDC');
28
+ ```
29
+
30
+ For forked Hardhat platform strings:
31
+
32
+ ```ts
33
+ import { TokensServiceFactory } from '@dequanto/tokens/TokensServiceFactory';
34
+
35
+ const tokens = await TokensServiceFactory.getAsync('hh:eth');
36
+ ```
37
+
38
+ ## Token Transfer Service
39
+
40
+ ```ts
41
+ import { TokenTransferService } from '@dequanto/tokens/TokenTransferService';
42
+
43
+ const service = new TokenTransferService(client);
44
+ const tx = await service.transfer(sender, receiver, 'USDC', 10);
45
+ await tx.wait();
46
+ ```
47
+
48
+ Amount handling:
49
+
50
+ - `number` amounts are converted with token decimals.
51
+ - `bigint` amounts are already raw smallest units.
52
+ - Native token transfers use `client.getBalance` and native tx value.
53
+ - ERC20 transfers use generated ERC20 wrappers from token metadata.
54
+
55
+ ## Transfer All
56
+
57
+ ```ts
58
+ const tx = await service.transferAll(sender, receiver, 'ETH');
59
+ ```
60
+
61
+ With remainder:
62
+
63
+ ```ts
64
+ const tx = await service.transferAllWithRemainder(sender, receiver, 'USDC', 1);
65
+ ```
66
+
67
+ ## Accounts
68
+
69
+ Generate or derive EOA accounts:
70
+
71
+ ```ts
72
+ import { $sig } from '@dequanto/utils/$sig';
73
+
74
+ const account = $sig.$account.generate();
75
+ const fromMnemonic = await $sig.$account.fromMnemonic(mnemonic, 0);
76
+ const fromKey = await $sig.$account.fromKey(privateKey);
77
+ ```
78
+
79
+ Use `ChainAccountService` for named encrypted account storage:
80
+
81
+ ```ts
82
+ import { ChainAccountService } from '@dequanto/ChainAccountService';
83
+
84
+ const service = new ChainAccountService();
85
+ const account = await service.get('deployer');
86
+ ```
87
+
88
+ ## Account Types
89
+
90
+ Transaction APIs accept several account shapes:
91
+
92
+ - EOA account: `{ address, key }`
93
+ - named account: string resolved through `ChainAccountService`
94
+ - impersonated account in Hardhat
95
+ - Safe account: `{ type: 'safe', address, operator, owners? }`
96
+ - ERC-4337 account: `{ type: 'erc4337', address, operator }`
97
+
98
+ Inspect `src/models/TAccount.ts` before adding a new account shape.
99
+
@@ -0,0 +1,146 @@
1
+ # Transactions
2
+
3
+ Use generated contract write methods for normal contract transactions. Use `TxDataBuilder` and `TxWriter` when code needs lower-level control over gas, nonce, signing, persistence, retry, or raw tx data.
4
+
5
+ Key source files:
6
+
7
+ - `src/txs/TxDataBuilder.ts`
8
+ - `src/txs/TxWriter.ts`
9
+ - `src/txs/agents/BatchAgent.ts`
10
+ - `src/txs/TxNonceManager.ts`
11
+ - `src/contracts/ContractWriter.ts`
12
+ - `src/tokens/TokenTransferService.ts`
13
+ - `src/txs/receipt/TxLogParser.ts`
14
+
15
+ Useful tests:
16
+
17
+ - `test/Web3Client.spec.ts`
18
+ - `test/hardhat/tx.spec.ts`
19
+ - `test/receipt.spec.ts`
20
+ - `test/safe/safe.spec.ts`
21
+ - `test/services/timelock.spec.ts`
22
+
23
+ ## TxWriter Lifecycle
24
+
25
+ Generated write methods return a `TxWriter`.
26
+
27
+ ```ts
28
+ const tx = await contract.setValue(account, 5n);
29
+ const hash = await tx.onSent;
30
+ const receipt = await tx.wait();
31
+ ```
32
+
33
+ `TxWriter` exposes:
34
+
35
+ - `onSent`
36
+ - `onCompleted`
37
+ - `wait()`
38
+ - `on('transactionHash' | 'receipt' | 'error' | 'log', cb)`
39
+ - `builder`
40
+ - `receipt`
41
+ - `tx.knownLogs`
42
+
43
+ ## BatchAgent For Scripts
44
+
45
+ Use `BatchAgent` when a script should run its full transaction flow without immediately submitting transactions on-chain. `BatchAgent` plugs into `TxWriter.DEFAULTS.agent`, intercepts write calls, returns completed mock writers/receipts to the script, and caches the transactions for later review or execution.
46
+
47
+ ```ts
48
+ import { BatchAgent } from '@dequanto/txs/agents/BatchAgent';
49
+
50
+ const batch = new BatchAgent().enable();
51
+
52
+ try {
53
+ await token.$receipt().approve(sender, spender, amount);
54
+ await vault.$receipt().deposit(sender, amount, receiver);
55
+
56
+ console.log(await batch.print());
57
+
58
+ // Submit cached transactions after review.
59
+ const writers = await batch.execute();
60
+ await Promise.all(writers.map(x => x?.wait()));
61
+ } finally {
62
+ batch.disable();
63
+ }
64
+ ```
65
+
66
+ Important behavior:
67
+
68
+ - Use `batch.transactions` or `batch.getTxData()` to inspect cached transactions programmatically.
69
+ - `batch.print()` formats pending transactions and decoded input data for review.
70
+ - `batch.execute()` skips duplicate transactions by default; pass `{ includeDuplicates: true }` when duplicates are intentional.
71
+ - Deployment transactions are ignored by default; pass `new BatchAgent({ ignoreContractCreation: false })` when contract creation should also be intercepted.
72
+ - If the account being submitted is a Safe, `execute()` creates one Safe multicall/batch transaction from many cached single transactions.
73
+ - If the account being submitted is a Timelock, `execute()` creates one Timelock batch/scheduleBatch flow from many cached single transactions.
74
+ - For normal EOA accounts, `execute()` sends each cached transaction on-chain.
75
+
76
+ ## Build And Sign Raw Tx
77
+
78
+ ```ts
79
+ import { TxDataBuilder } from '@dequanto/txs/TxDataBuilder';
80
+
81
+ const builder = new TxDataBuilder(client, sender, {
82
+ to: receiver
83
+ });
84
+
85
+ builder.setValue(10n * 10n ** 18n);
86
+ await builder.setGas();
87
+ await builder.setNonce();
88
+
89
+ const signed = await builder.signToString(sender.key);
90
+ const receipt = await client.sendSignedTransaction(signed);
91
+ ```
92
+
93
+ ## Send Existing Tx Data
94
+
95
+ ```ts
96
+ import { TxWriter } from '@dequanto/txs/TxWriter';
97
+
98
+ const tx = await TxWriter.writeTxData(client, {
99
+ to: receiver,
100
+ value: 1n
101
+ }, sender);
102
+
103
+ await tx.wait();
104
+ ```
105
+
106
+ ## Manual Contract Tx Data
107
+
108
+ Use generated `$data()`:
109
+
110
+ ```ts
111
+ const data = await token.$data().transfer(sender, receiver, amount);
112
+ ```
113
+
114
+ Use manual mode if a writer should be created without immediate submission:
115
+
116
+ ```ts
117
+ const tx = await token
118
+ .$config({ send: 'manual', gasEstimation: false })
119
+ .transfer(sender, receiver, amount);
120
+ ```
121
+
122
+ ## Nonces
123
+
124
+ Use `TxNonceManager.create(client, account)` when submitting multiple pending transactions from one account.
125
+
126
+ ```ts
127
+ const nonce = TxNonceManager.create(client, account);
128
+ const service = new TokenTransferService(client).$config({ nonce });
129
+ ```
130
+
131
+ ## Receipts And Logs
132
+
133
+ Use `TxLogParser` for receipts when no generated contract parser is available.
134
+
135
+ ```ts
136
+ import { TxLogParser } from '@dequanto/txs/receipt/TxLogParser';
137
+
138
+ const parser = new TxLogParser();
139
+ const logs = await parser.parse(receipt, { abi });
140
+ ```
141
+
142
+ ## Avoid
143
+
144
+ - Do not manually manage gas and nonce unless the task needs it.
145
+ - Do not use external wallet clients when a dequanto `TAccount`, `SafeAccount`, or `Erc4337Account` flow is available.
146
+
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: dequanto
3
+ description: Use when implementing EVM, blockchain, smart-contract, token, RPC, event-indexing, Safe, ERC-4337, storage, deployment, or ABI work in TypeScript projects that use the dequanto framework. Prefer dequanto APIs over ethers, viem, web3.js, raw JSON-RPC, manual explorer HTTP calls, or hand-written ABI encoding unless the user explicitly asks otherwise.
4
+ ---
5
+
6
+ # Dequanto
7
+
8
+ Use dequanto as the primary EVM toolkit.
9
+
10
+ ## Workflow
11
+
12
+ 1. Identify the requested blockchain task.
13
+ 2. Read `../../INDEX.md` to choose the dequanto surface.
14
+ 3. Read the matching file in `../../references/`.
15
+ 4. Reuse the nearest example from `../../examples/`.
16
+ 5. Verify unfamiliar APIs in `src/` or `lib/types/` before writing code.
17
+ 6. After TypeScript edits in the dequanto repo, run `npm run typecheck -- --pretty false`.
18
+
19
+ ## Defaults
20
+
21
+ - Use `await Web3ClientFactory.getAsync(platform)` for chain clients so configuration is loaded before RPC, explorer, and chain services are used.
22
+ - Use generated contract classes for ABI calls and transactions: call read-only ABI methods directly as normal TypeScript methods, and call writable ABI methods through `contract.$receipt().someFunction(sender, ...args)`.
23
+ - Use generated `$data()` for calldata.
24
+ - Treat `$receipt()` as a completed `TxWriter` flow that waits for the transaction receipt. The first writable-method argument is an `IAccount`.
25
+ - Read account shapes in `src/models/TAccount.ts` when composing transaction senders:
26
+ - EOA with only `address`: the RPC provider/node is responsible for signing.
27
+ - EOA with `key`: dequanto signs directly; encrypted `p1:0x...` keys require the PIN from environment configuration.
28
+ - `safe`: wrap calldata into a Gnosis Safe transaction. Provide `address` and an `operator`; if enough owners/signers are available, dequanto signs and submits on-chain, otherwise it submits to the Gnosis Safe service for later signing.
29
+ - `timelock`: wrap calldata into an OpenZeppelin Timelock transaction and submit it via `operator`.
30
+ - `erc4337`: wrap calldata into an ERC-4337 user operation and submit it via `operator`.
31
+ - Account agents can be chained. For example, a Timelock account can use a Safe account as `operator`, so the initial calldata is wrapped first as Timelock calldata and then as Safe transaction calldata.
32
+ - Use `EventsIndexer` for resumable historical event indexing.
33
+ - Use `BlockchainExplorerFactory` for explorer ABI, source, creation, transactions, and transfers.
34
+ - Use `SlotsParser` and `SlotsStorage` for Solidity storage decoding.
35
+ - Use `Deployments` for idempotent deployments, proxy deployments, beacon deployments, and verification.
36
+ - Use dequanto account-agent flows when the account type says `safe`, `timelock`, or `erc4337`.
37
+
38
+ ## Reference Routing
39
+
40
+ - Contract reads, writes, generated helper facets: `../../references/contracts.md`
41
+ - RPC clients, blocks, balances, raw logs, subscriptions: `../../references/rpc-clients.md`
42
+ - Transaction builders, tx writer lifecycle, receipts, nonces: `../../references/transactions.md`
43
+ - Contract generation: `../../references/generation.md`
44
+ - Deployment and proxy flows: `../../references/deployments.md`
45
+ - Historical events and indexing: `../../references/events-indexing.md`
46
+ - Explorer integration: `../../references/explorer.md`
47
+ - Solidity storage: `../../references/storage.md`
48
+ - Tokens and accounts: `../../references/tokens-accounts.md`
49
+ - Safe and ERC-4337: `../../references/safe-erc4337.md`
50
+ - Translating ethers/viem habits: `../../references/migration-from-ethers-viem.md`
51
+
52
+ ## Rules
53
+
54
+ - Never guess a dequanto API signature.
55
+ - Inspect generated contract classes before using generated method names or event helper names.
56
+ - Do not add ethers, viem, web3.js, or external Safe/account-abstraction SDKs when dequanto already has a suitable API.
57
+ - Keep code version-specific to the installed dequanto package.
58
+ - Prefer examples that compile in the target project over abstract snippets.
59
+
@@ -7,11 +7,15 @@ const _abiParser_1 = require("../utils/$abiParser.js");
7
7
  var $abiCoder;
8
8
  (function ($abiCoder) {
9
9
  function encode(types, values) {
10
+ if (Array.isArray(types) == false) {
11
+ return encodeSingle(types, values);
12
+ }
10
13
  let coder = new abi_coder_1.AbiCoder();
11
14
  return coder.encode(types, values);
12
15
  }
13
16
  $abiCoder.encode = encode;
14
17
  function encodeSingle(type, value) {
18
+ type = normalizeType(type);
15
19
  let coder = new abi_coder_1.AbiCoder();
16
20
  return coder.encodeSingle(type, value);
17
21
  }
@@ -21,6 +25,9 @@ var $abiCoder;
21
25
  }
22
26
  $abiCoder.encodePacked = encodePacked;
23
27
  function decode(types, hex, opts) {
28
+ if (Array.isArray(types) == false) {
29
+ return decodeSingle(types, hex, opts);
30
+ }
24
31
  let coder = new abi_coder_1.AbiCoder();
25
32
  let arr = coder.decode(types, hex, opts);
26
33
  return arr.map((x, i) => {
@@ -29,6 +36,7 @@ var $abiCoder;
29
36
  }
30
37
  $abiCoder.decode = decode;
31
38
  function decodeSingle(type, hex, opts) {
39
+ type = normalizeType(type);
32
40
  let coder = new abi_coder_1.AbiCoder();
33
41
  let x = coder.decodeSingle(type, hex, opts);
34
42
  return unwrap(type, x);
@@ -64,6 +72,12 @@ var $abiCoder;
64
72
  }
65
73
  return mixValue;
66
74
  }
75
+ function normalizeType(type) {
76
+ if (typeof type === 'string' && /\bstruct /.test(type)) {
77
+ return _abiParser_1.$abiParser.parseStruct(type);
78
+ }
79
+ return type;
80
+ }
67
81
  })($abiCoder = exports.$abiCoder || (exports.$abiCoder = {}));
68
82
  //# sourceMappingURL=$abiCoder.js.map
69
83
  //# sourceMappingURL=$abiCoder.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"$abiCoder.js","sourceRoot":"","sources":["../../../src/abi/$abiCoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"$abiCoder.js","sourceRoot":"","sources":["../../../src/abi/$abiCoder.ts"],"names":[],"mappings":"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"}
@@ -78,11 +78,16 @@ class ClientPool {
78
78
  // Client - Retries
79
79
  let used = new Map();
80
80
  let errors = [];
81
+ let dataIsNull;
81
82
  while (true) {
82
83
  let wClient = await this.next(used, opts);
83
84
  if (wClient == null) {
84
85
  let error = errors.pop();
85
86
  if (error == null) {
87
+ if (dataIsNull) {
88
+ // No provider returned an error, but none found the requested data
89
+ return null;
90
+ }
86
91
  let urls = this
87
92
  .clients
88
93
  .map(x => ` ${x.config.url}`)
@@ -109,6 +114,12 @@ class ClientPool {
109
114
  }
110
115
  errors.push(error ?? result);
111
116
  if (status == ClientStatus_1.ClientStatus.Ok) {
117
+ if (opts?.tryNextOnNull === true) {
118
+ if (result == null) {
119
+ dataIsNull = true;
120
+ continue;
121
+ }
122
+ }
112
123
  return result;
113
124
  }
114
125
  if (status == ClientStatus_1.ClientStatus.RateLimited) {
@@ -778,6 +789,9 @@ class WClient {
778
789
  this.batchLimit = limit;
779
790
  }
780
791
  }
792
+ else if (ClientErrorUtil_1.ClientErrorUtil.isNodeConfigurationError(error)) {
793
+ status = ClientStatus_1.ClientStatus.NodeConfigurationError;
794
+ }
781
795
  else if (ClientErrorUtil_1.ClientErrorUtil.isConnectionFailed(error)) {
782
796
  status = ClientStatus_1.ClientStatus.NetworkError;
783
797
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ClientPool.js","sourceRoot":"","sources":["../../../src/clients/ClientPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientPool.js","sourceRoot":"","sources":["../../../src/clients/ClientPool.ts"],"names":[],"mappings":"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"}