dequanto 0.2.48 → 0.2.50

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 (142) hide show
  1. package/contracts/oz/Proxy.sol +1 -0
  2. package/docs/ai/INDEX.md +4 -3
  3. package/docs/ai/examples/config.spec.ts +113 -0
  4. package/docs/ai/examples/contract-read.spec.ts +81 -13
  5. package/docs/ai/examples/contract-write.spec.ts +61 -9
  6. package/docs/ai/examples/deploy-contract.spec.ts +53 -16
  7. package/docs/ai/examples/erc4337-userop.spec.ts +7 -5
  8. package/docs/ai/examples/explorer-abi.spec.ts +9 -6
  9. package/docs/ai/examples/{generate-client.spec.ts → generate-contract-class.spec.ts} +6 -3
  10. package/docs/ai/examples/index-events.spec.ts +8 -6
  11. package/docs/ai/examples/rpc-read.spec.ts +32 -5
  12. package/docs/ai/examples/safe-batch.spec.ts +5 -4
  13. package/docs/ai/examples/send-transaction.spec.ts +23 -11
  14. package/docs/ai/examples/storage-read.spec.ts +15 -7
  15. package/docs/ai/examples/token-transfer.spec.ts +22 -15
  16. package/docs/ai/references/generation.md +30 -7
  17. package/docs/ai/skill/dequanto/SKILL.md +5 -1
  18. package/lib/cjs/abi/$abi.js +60 -0
  19. package/lib/cjs/abi/$abi.js.map +1 -0
  20. package/lib/cjs/abi/$abiCoder.js +1 -0
  21. package/lib/cjs/abi/$abiCoder.js.map +1 -1
  22. package/lib/cjs/abi/abi-coder.js +1 -1
  23. package/lib/cjs/abi/abi-coder.js.map +1 -1
  24. package/lib/cjs/blocks/BlockDateResolver.js.map +1 -1
  25. package/lib/cjs/clients/Web3Client.js +43 -2
  26. package/lib/cjs/clients/Web3Client.js.map +1 -1
  27. package/lib/cjs/clients/Web3ClientFactory.js +26 -4
  28. package/lib/cjs/clients/Web3ClientFactory.js.map +1 -1
  29. package/lib/cjs/clients/debug/ClientDebugMethods.js +4 -0
  30. package/lib/cjs/clients/debug/ClientDebugMethods.js.map +1 -1
  31. package/lib/cjs/clients/utils/$web3Abi.js +1 -1
  32. package/lib/cjs/clients/utils/$web3Abi.js.map +1 -1
  33. package/lib/cjs/config/Config.js +28 -6
  34. package/lib/cjs/config/Config.js.map +1 -1
  35. package/lib/cjs/config/ConfigDefaults.js +6 -2
  36. package/lib/cjs/config/ConfigDefaults.js.map +1 -1
  37. package/lib/cjs/config/ConfigProvider.js +5 -0
  38. package/lib/cjs/config/ConfigProvider.js.map +1 -1
  39. package/lib/cjs/config/DefaultFactory.js +27 -0
  40. package/lib/cjs/config/DefaultFactory.js.map +1 -0
  41. package/lib/cjs/contracts/ContractBase.js +6 -2
  42. package/lib/cjs/contracts/ContractBase.js.map +1 -1
  43. package/lib/cjs/contracts/ContractReader.js +1 -35
  44. package/lib/cjs/contracts/ContractReader.js.map +1 -1
  45. package/lib/cjs/explorer/BlockchainExplorerFactory.js.map +1 -1
  46. package/lib/cjs/rpc/RpcContract.js +4 -32
  47. package/lib/cjs/rpc/RpcContract.js.map +1 -1
  48. package/lib/cjs/utils/$account.js +5 -0
  49. package/lib/cjs/utils/$account.js.map +1 -1
  50. package/lib/cjs/utils/$config.js +4 -5
  51. package/lib/cjs/utils/$config.js.map +1 -1
  52. package/lib/cjs/utils/$erc20.js +47 -0
  53. package/lib/cjs/utils/$erc20.js.map +1 -0
  54. package/lib/cjs/utils/$hex.js +1 -0
  55. package/lib/cjs/utils/$hex.js.map +1 -1
  56. package/lib/cjs/utils/$require.js +6 -2
  57. package/lib/cjs/utils/$require.js.map +1 -1
  58. package/lib/esm/abi/$abi.js.map +1 -0
  59. package/lib/esm/abi/$abi.mjs +57 -0
  60. package/lib/esm/abi/$abiCoder.js.map +1 -1
  61. package/lib/esm/abi/$abiCoder.mjs +1 -0
  62. package/lib/esm/abi/abi-coder.js.map +1 -1
  63. package/lib/esm/abi/abi-coder.mjs +1 -1
  64. package/lib/esm/blocks/BlockDateResolver.js.map +1 -1
  65. package/lib/esm/clients/Web3Client.js.map +1 -1
  66. package/lib/esm/clients/Web3Client.mjs +43 -2
  67. package/lib/esm/clients/Web3ClientFactory.js.map +1 -1
  68. package/lib/esm/clients/Web3ClientFactory.mjs +26 -4
  69. package/lib/esm/clients/debug/ClientDebugMethods.js.map +1 -1
  70. package/lib/esm/clients/debug/ClientDebugMethods.mjs +4 -0
  71. package/lib/esm/clients/utils/$web3Abi.js.map +1 -1
  72. package/lib/esm/clients/utils/$web3Abi.mjs +1 -1
  73. package/lib/esm/config/Config.js.map +1 -1
  74. package/lib/esm/config/Config.mjs +28 -6
  75. package/lib/esm/config/ConfigDefaults.js.map +1 -1
  76. package/lib/esm/config/ConfigDefaults.mjs +6 -2
  77. package/lib/esm/config/ConfigProvider.js.map +1 -1
  78. package/lib/esm/config/ConfigProvider.mjs +5 -0
  79. package/lib/esm/config/DefaultFactory.js.map +1 -0
  80. package/lib/esm/config/DefaultFactory.mjs +23 -0
  81. package/lib/esm/contracts/ContractBase.js.map +1 -1
  82. package/lib/esm/contracts/ContractBase.mjs +6 -2
  83. package/lib/esm/contracts/ContractReader.js.map +1 -1
  84. package/lib/esm/contracts/ContractReader.mjs +1 -35
  85. package/lib/esm/explorer/BlockchainExplorerFactory.js.map +1 -1
  86. package/lib/esm/rpc/RpcContract.js.map +1 -1
  87. package/lib/esm/rpc/RpcContract.mjs +4 -32
  88. package/lib/esm/utils/$account.js.map +1 -1
  89. package/lib/esm/utils/$account.mjs +5 -0
  90. package/lib/esm/utils/$config.js.map +1 -1
  91. package/lib/esm/utils/$config.mjs +4 -5
  92. package/lib/esm/utils/$erc20.js.map +1 -0
  93. package/lib/esm/utils/$erc20.mjs +41 -0
  94. package/lib/esm/utils/$hex.js.map +1 -1
  95. package/lib/esm/utils/$hex.mjs +1 -0
  96. package/lib/esm/utils/$require.js.map +1 -1
  97. package/lib/esm/utils/$require.mjs +6 -2
  98. package/lib/types/abi/$abi.d.ts +17 -0
  99. package/lib/types/abi/$abiCoder.d.ts +2 -1
  100. package/lib/types/blocks/BlockDateResolver.d.ts +1 -1
  101. package/lib/types/clients/Web3Client.d.ts +1 -1
  102. package/lib/types/clients/Web3ClientFactory.d.ts +10 -2
  103. package/lib/types/clients/debug/ClientDebugMethods.d.ts +1 -1
  104. package/lib/types/config/AConfigBase.d.ts +3 -0
  105. package/lib/types/config/Config.d.ts +2 -1
  106. package/lib/types/config/DefaultFactory.d.ts +2 -0
  107. package/lib/types/config/interface/IConfigData.d.ts +14 -2
  108. package/lib/types/contracts/ContractReader.d.ts +1 -1
  109. package/lib/types/explorer/IBlockchainExplorer.d.ts +6 -0
  110. package/lib/types/models/TPlatform.d.ts +1 -1
  111. package/lib/types/utils/$account.d.ts +1 -0
  112. package/lib/types/utils/$erc20.d.ts +5 -0
  113. package/lib/types/utils/$hex.d.ts +1 -0
  114. package/lib/types/utils/$require.d.ts +6 -6
  115. package/package.json +1 -1
  116. package/src/abi/$abi.ts +69 -0
  117. package/src/abi/$abiCoder.ts +1 -1
  118. package/src/abi/abi-coder.ts +1 -3
  119. package/src/blocks/BlockDateResolver.ts +1 -1
  120. package/src/clients/Web3Client.ts +48 -3
  121. package/src/clients/Web3ClientFactory.ts +33 -5
  122. package/src/clients/debug/ClientDebugMethods.ts +5 -1
  123. package/src/clients/utils/$web3Abi.ts +2 -2
  124. package/src/config/AConfigBase.ts +4 -0
  125. package/src/config/Config.ts +30 -8
  126. package/src/config/ConfigDefaults.ts +6 -2
  127. package/src/config/ConfigProvider.ts +5 -1
  128. package/src/config/DefaultFactory.ts +26 -0
  129. package/src/config/interface/IConfigData.ts +15 -2
  130. package/src/contracts/ContractBase.ts +6 -2
  131. package/src/contracts/ContractReader.ts +3 -40
  132. package/src/explorer/BlockchainExplorerFactory.ts +0 -1
  133. package/src/explorer/IBlockchainExplorer.ts +4 -0
  134. package/src/models/TPlatform.ts +1 -0
  135. package/src/rpc/RpcContract.ts +5 -33
  136. package/src/utils/$account.ts +5 -0
  137. package/src/utils/$config.ts +4 -6
  138. package/src/utils/$erc20.ts +53 -0
  139. package/src/utils/$hex.ts +3 -1
  140. package/src/utils/$require.ts +8 -4
  141. package/tsconfig.json +1 -2
  142. package/tsconfig.umd.json +1 -2
@@ -10,8 +10,8 @@ export var $config;
10
10
  (function ($config) {
11
11
  let envOptions = null;
12
12
  function get(path, $default) {
13
- let value = (typeof $global.app !== 'undefined' ? $global.app.config?.$get?.(path) : null)
14
- ?? obj_getProperty(config, path)
13
+ let value = obj_getProperty(config, path)
14
+ ?? (typeof $global.app !== 'undefined' ? $global.app.config?.$get?.(path) : null)
15
15
  ?? obj_getProperty(envOptions, path);
16
16
  if (value == null && envOptions == null) {
17
17
  envOptions = reloadEnv();
@@ -71,7 +71,7 @@ export var $config;
71
71
  let chains = $config.get('chains', []);
72
72
  let explorerConfig = explorer[platform];
73
73
  let chainConfig = chains.find(x => x.platform === platform || x.aliases?.includes(platform));
74
- $require.notNull(explorerConfig || chainConfig, `Unsupported platform ${platform} for web3 client`);
74
+ $require.notNull(explorerConfig || chainConfig, `Unsupported platform ${platform} for blockchain explorer`);
75
75
  return {
76
76
  platform,
77
77
  ...(chainConfig?.explorers?.[0] ?? {}),
@@ -80,11 +80,10 @@ export var $config;
80
80
  }
81
81
  $config.getExplorerOptions = getExplorerOptions;
82
82
  function set(path, value) {
83
+ obj_setProperty(config, path, value);
83
84
  if (typeof $global.app?.config?.$set === 'function') {
84
85
  $global.app.config.$set(path, value);
85
- return;
86
86
  }
87
- obj_setProperty(config, path, value);
88
87
  }
89
88
  $config.set = set;
90
89
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"$erc20.js","sourceRoot":"","sources":["../../../src/utils/$erc20.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,yCAAsC;AACtC,iCAA8B;AAC9B,uCAAoC;AAGpC,iEAA8D;AAE9D,IAAiB,MAAM,CA4CtB;AA5CD,WAAiB,MAAM;IACZ,KAAK,UAAU,aAAa,CAAC,MAAkB,EAAE,KAAmB,EAAE,OAAqB,EAAE,MAAuB;QACvH,mBAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,sDAAsD,CAAC,CAAC;QAChG,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QAElC,MAAM,GAAG,GAAG,MAAO,KAAK,CAAC,KAAK,EAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE;gBACJ,GAAG;gBACH,QAAQ;gBACR;oBACI,aAAa,EAAE,IAAI;oBACnB,YAAY,EAAE,IAAI;oBAClB,cAAc,EAAE,KAAK;iBACxB;aACJ;SACJ,CAQA,CAAC;QAEF,mBAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,KAAK,EAAE,sCAAsC,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3G,IAAI,QAAQ,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACpF,mBAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;QACtD,mBAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAExD,IAAI,WAAW,GAAG,WAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,KAAK,GAAG,cAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7F,mBAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC/C,IAAI,IAAI,GAAG,WAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAEpD,IAAI,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ;YACpC,CAAC,CAAC,MAAM,iBAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrD,CAAC,CAAC,MAAM,CAAC;QAEb,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,iBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACjF,CAAC;IA1CqB,oBAAa,gBA0ClC,CAAA;AACL,CAAC,EA5CgB,MAAM,GAAN,cAAM,KAAN,cAAM,QA4CtB"}
@@ -0,0 +1,41 @@
1
+ import alot from 'alot';
2
+ import { $require } from './$require.mjs';
3
+ import { $hex } from './$hex.mjs';
4
+ import { $bigint } from './$bigint.mjs';
5
+ import { ERC20 } from '../prebuilt/openzeppelin/ERC20.mjs';
6
+ export var $erc20;
7
+ (function ($erc20) {
8
+ async function setBalanceAny(client, token, account, amount) {
9
+ $require.eq(client.platform, 'hardhat', `Set Balance available only on Hardhat/Forked network`);
10
+ const erc20 = new ERC20(token, client);
11
+ const rpc = await client.getRpc();
12
+ const req = await erc20.$data().balanceOf(account);
13
+ const balanceTrace = await rpc.request({
14
+ method: 'debug_traceCall',
15
+ params: [
16
+ req,
17
+ 'latest',
18
+ {
19
+ disableMemory: true,
20
+ disableStack: true,
21
+ disableStorage: false,
22
+ }
23
+ ]
24
+ });
25
+ $require.True(balanceTrace.failed === false, `erc20 balance retrieval failed for ${await erc20.symbol()}`);
26
+ let returnOp = alot(balanceTrace.structLogs.reverse()).find(x => x.op === 'RETURN');
27
+ $require.notNull(returnOp, `RETURN opcode not found`);
28
+ $require.notNull(returnOp.storage, `Storage not found`);
29
+ let returnValue = $hex.raw(balanceTrace.returnValue);
30
+ let slots = alot.fromObject(returnOp.storage).filter(x => x.value === returnValue).toArray();
31
+ $require.gt(slots.length, 0, `Slot not found`);
32
+ let SLOT = $hex.ensure(slots[slots.length - 1].key);
33
+ let balance = typeof amount === 'number'
34
+ ? await $bigint.toWei(amount, await erc20.decimals())
35
+ : amount;
36
+ await client.debug.setStorageAt(erc20.address, SLOT, $bigint.toHex(balance));
37
+ }
38
+ $erc20.setBalanceAny = setBalanceAny;
39
+ })($erc20 || ($erc20 = {}));
40
+ //# sourceMappingURL=$erc20.js.map
41
+ //# sourceMappingURL=$erc20.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"$hex.js","sourceRoot":"","sources":["../../../src/utils/$hex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"$hex.js","sourceRoot":"","sources":["../../../src/utils/$hex.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { $require } from './$require.mjs';
3
3
  export var $hex;
4
4
  (function ($hex) {
5
5
  $hex.ZERO = '0x';
6
+ $hex.ZERO_Bytes32 = '0x0000000000000000000000000000000000000000000000000000000000000000';
6
7
  /**
7
8
  * Adds '00' bytes to the hex string
8
9
  * @param hex
@@ -1 +1 @@
1
- {"version":3,"file":"$require.js","sourceRoot":"","sources":["../../../src/utils/$require.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"$require.js","sourceRoot":"","sources":["../../../src/utils/$require.ts"],"names":[],"mappings":"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"}
@@ -66,7 +66,7 @@ export var $require;
66
66
  function notNull(val, message, ...logs) {
67
67
  if (val == null) {
68
68
  logs?.forEach(log => console.error(log));
69
- throw new Error(`Value is undefined. ${message}`);
69
+ throw new Error(`Value is undefined. ${message ?? ''}`);
70
70
  }
71
71
  return val;
72
72
  }
@@ -74,7 +74,7 @@ export var $require;
74
74
  function Null(val, message, ...logs) {
75
75
  if (val != null) {
76
76
  logs?.forEach(log => console.error(log));
77
- throw new Error(`Value ${val} expects to be undefined. ${message}`);
77
+ throw new Error(`Value ${val} expects to be undefined. ${message ?? ''}`);
78
78
  }
79
79
  return val;
80
80
  }
@@ -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,17 @@
1
+ import { TAbiInput, TAbiItem, TAbiOutput } 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 function encodeCall(abi: string | TAbiItem, params?: any[]): TEth.Hex;
15
+ export function decodeReturn<T = any>(abi: string | TAbiItem | TAbiOutput[], hex: string): T;
16
+ export {};
17
+ }
@@ -1,4 +1,4 @@
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 {
@@ -14,5 +14,6 @@ export declare namespace $abiCoder {
14
14
  export function decode(types: TAbiType, hex: string, opts?: TDecodeOptions): any;
15
15
  export function decode(types: TAbiType[], hex: string, opts?: TDecodeOptions): any[];
16
16
  export function decodeSingle(type: TAbiType, hex: string, opts?: TDecodeOptions): any;
17
+ export function normalizeType(type: TAbiType): TAbiItem | TAbiType;
17
18
  export {};
18
19
  }
@@ -1,4 +1,4 @@
1
- import { Web3Client } from '../clients/Web3Client';
1
+ import type { Web3Client } from '../clients/Web3Client';
2
2
  export declare class BlockDateResolver {
3
3
  client: Web3Client;
4
4
  private AVG_INITIAL;
@@ -37,7 +37,7 @@ 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?: {
40
+ batchContractCalls(requests: TRpcContractCall[] | Promise<TRpcContractCall>[], options?: {
41
41
  allowErrors?: boolean;
42
42
  }): Promise<any[]>;
43
43
  getEventStream(address: TEth.Address, abi: TAbiItem[], event: string): ClientEventsStream<any>;
@@ -2,8 +2,16 @@ import { TPlatform } from '../models/TPlatform';
2
2
  import { IWeb3EndpointOptions } from './interfaces/IWeb3EndpointOptions';
3
3
  import { EvmWeb3Client } from './EvmWeb3Client';
4
4
  import type { HardhatWeb3Client } from '../hardhat/HardhatWeb3Client';
5
+ import { IConfigData } from '../config/interface/IConfigData';
5
6
  export declare namespace Web3ClientFactory {
6
- function get<TClient extends EvmWeb3Client | HardhatWeb3Client = EvmWeb3Client>(platform: TPlatform | number, opts?: IWeb3EndpointOptions): TClient;
7
+ export function get<TClient extends EvmWeb3Client | HardhatWeb3Client = EvmWeb3Client>(platform: TPlatform | number, opts?: IWeb3EndpointOptions): TClient;
8
+ type HHInMemoryForkData = {
9
+ block?: number;
10
+ url?: string;
11
+ };
7
12
  /** Same as the sync variant, but ensures the config is fetched */
8
- function getAsync<TClient extends EvmWeb3Client | HardhatWeb3Client = EvmWeb3Client>(platform: TPlatform | string | number, opts?: IWeb3EndpointOptions): Promise<TClient>;
13
+ export function getAsync<TClient extends EvmWeb3Client | HardhatWeb3Client = EvmWeb3Client>(platform: TPlatform | string | number, opts?: IWeb3EndpointOptions & HHInMemoryForkData & {
14
+ config?: Partial<IConfigData>;
15
+ }): Promise<TClient>;
16
+ export {};
9
17
  }
@@ -15,7 +15,7 @@ export declare class ClientDebugMethods {
15
15
  * @param intervalSeconds Default: 1 block in 1 second
16
16
  */
17
17
  mine(blocks?: number | bigint | string, intervalSeconds?: number | bigint): Promise<any>;
18
- setBalance(address: TAddress, amount: bigint | string): Promise<any>;
18
+ setBalance(address: TAddress, amount: bigint | number | string): Promise<any>;
19
19
  reset(params?: {
20
20
  forking?: {
21
21
  jsonRpcUrl?: any;
@@ -1,6 +1,9 @@
1
1
  import { IConfigData } from './interface/IConfigData';
2
2
  type TConfigParamsBase = {
3
3
  config?: Partial<IConfigData>;
4
+ rpc?: {
5
+ [platform: string]: string | string[] | IConfigData['web3']['']['endpoints'];
6
+ };
4
7
  };
5
8
  export type TConfigParamsNode = TConfigParamsBase & {
6
9
  dotenv?: boolean;
@@ -4,7 +4,8 @@ import { IConfigData } from './interface/IConfigData';
4
4
  export declare class Config {
5
5
  static fetch(parameters?: TConfigParamsNode | TConfigParamsBrowser): Promise<Appcfg<IConfigData> & IConfigData>;
6
6
  /** Will return a config that was previously loaded by fetch with any parameters or will trigger fetch with default parameters */
7
- static get(): Promise<Appcfg<IConfigData> & IConfigData>;
7
+ static get(config?: Partial<IConfigData>): Promise<Appcfg<IConfigData> & IConfigData>;
8
8
  static extend(json: any): Promise<void>;
9
+ static clean(): Config;
9
10
  }
10
11
  export declare const config: IConfigData;
@@ -0,0 +1,2 @@
1
+ import { IConfigData } from './interface/IConfigData';
2
+ export declare function DefaultFactory(config: IConfigData): IConfigData;
@@ -4,6 +4,7 @@ import { TAddress } from '../../models/TAddress';
4
4
  import { TPlatform } from '../../models/TPlatform';
5
5
  import { IRpcConfig } from '../../clients/ClientPool';
6
6
  import { TChain } from '../../models/TChain';
7
+ import { TEth } from '../../models/TEth';
7
8
  export interface IConfigData {
8
9
  settings: {
9
10
  /** Root path of the dequanto library */
@@ -24,10 +25,10 @@ export interface IConfigData {
24
25
  tokens: ITokenGlob[];
25
26
  blockchainExplorer: {
26
27
  [platform in TPlatform]: {
27
- key: string;
28
+ key?: string;
28
29
  host?: string;
29
30
  api?: string;
30
- wwww?: string;
31
+ www?: string;
31
32
  };
32
33
  };
33
34
  chains: TChain[];
@@ -69,4 +70,15 @@ export interface IConfigData {
69
70
  spotPriceAggregator?: {
70
71
  [platform in TPlatform]: TAddress;
71
72
  };
73
+ ns: {
74
+ [service: string]: {
75
+ [platform: string]: {
76
+ registry: TEth.Address;
77
+ resolver?: TEth.Address;
78
+ };
79
+ };
80
+ };
81
+ oracles: {
82
+ [service: string]: any;
83
+ };
72
84
  }
@@ -48,7 +48,7 @@ export declare class ContractReader implements IContractReader {
48
48
  [key: string]: any;
49
49
  } | any[];
50
50
  }): Promise<RpcTypes.Filter>;
51
- static read(client: Web3Client, address: TAddress, methodAbi: string): Promise<any>;
51
+ static read<TResult = any>(client: Web3Client, address: TAddress, methodAbi: string): Promise<TResult>;
52
52
  }
53
53
  export declare namespace ContractReaderUtils {
54
54
  class DeferredRequest<T = any> {
@@ -4,6 +4,12 @@ import { TEth } from '../models/TEth';
4
4
  import { TAddress } from '../models/TAddress';
5
5
  import { IVerifier } from './verifiers/IVerifier';
6
6
  export interface IBlockchainExplorer extends IAbiProvider, IVerifier {
7
+ config?: {
8
+ api?: {
9
+ url?: string;
10
+ key?: string;
11
+ };
12
+ };
7
13
  inMemoryDb: IContractDetails[];
8
14
  getContractMeta(q: string): Promise<IContractDetails>;
9
15
  getContractCreation(address: TEth.Address): Promise<{
@@ -1 +1 @@
1
- export type TPlatform = 'eth' | 'eth:goerli' | 'bsc' | 'polygon' | 'arbitrum' | 'xdai' | 'boba' | 'hardhat' | 'optimism' | 'avalanche' | `hh:${string}` | string;
1
+ export type TPlatform = 'eth' | 'eth:goerli' | 'bsc' | 'polygon' | 'arbitrum' | 'xdai' | 'boba' | 'hardhat' | 'optimism' | 'avalanche' | 'hh:memory' | `hh:${string}` | string;
@@ -4,4 +4,5 @@ export declare namespace $account {
4
4
  function isSafe(account: TAccount): account is SafeAccount;
5
5
  function isErc4337(account: TAccount): account is Erc4337Account;
6
6
  function isTimelock(account: TAccount): account is TimelockAccount;
7
+ function generate(name: string): EoAccount;
7
8
  }
@@ -0,0 +1,5 @@
1
+ import { TEth } from '../models/TEth';
2
+ import { Web3Client } from '../clients/Web3Client';
3
+ export declare namespace $erc20 {
4
+ function setBalanceAny(client: Web3Client, token: TEth.Address, account: TEth.Address, amount: bigint | number): Promise<void>;
5
+ }
@@ -1,6 +1,7 @@
1
1
  import { TEth } from '../models/TEth';
2
2
  export declare namespace $hex {
3
3
  const ZERO = "0x";
4
+ const ZERO_Bytes32 = "0x0000000000000000000000000000000000000000000000000000000000000000";
4
5
  /**
5
6
  * Adds '00' bytes to the hex string
6
7
  * @param hex
@@ -17,8 +17,8 @@ export declare namespace $require {
17
17
  function Function<T>(val: T, message: string): NonNullable<T>;
18
18
  function Array<T>(val: T, message: string): NonNullable<T>;
19
19
  function String<T>(val: T, message: string): NonNullable<T>;
20
- function notNull<T>(val: T, message: string, ...logs: any[]): NonNullable<T>;
21
- function Null<T>(val: T, message: string, ...logs: any[]): T;
20
+ function notNull<T>(val: T, message?: string, ...logs: any[]): NonNullable<T>;
21
+ function Null<T>(val: T, message?: string, ...logs: any[]): T;
22
22
  function notEmpty<T extends string | Array<any> | {
23
23
  length: number;
24
24
  }>(val: T, message: string): NonNullable<T>;
@@ -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): void;
43
- function gte<T = number | bigint>(a: T, b: T, message?: string): void;
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): void;
48
- function lte<T = number | bigint>(a: T, b: T, message?: string): void;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dequanto",
3
- "version": "0.2.48",
3
+ "version": "0.2.50",
4
4
  "author": {
5
5
  "name": "Alex Kit",
6
6
  "email": "alex.kit@atmajs.com"
@@ -0,0 +1,69 @@
1
+ import { TAbiInput, TAbiItem, TAbiOutput } from '@dequanto/types/TAbi';
2
+ import { ParamType } from './fragments';
3
+ import { TEth } from '@dequanto/models/TEth';
4
+ import { $abiCoder } from './$abiCoder';
5
+ import { $abiUtils } from '@dequanto/utils/$abiUtils';
6
+ import { $abiParser } from '@dequanto/utils/$abiParser';
7
+
8
+ export namespace $abi {
9
+ type TAbiType = string | ParamType | TAbiInput;
10
+ type TDecodeOptions = {
11
+ loose?: boolean
12
+ dynamic?: boolean
13
+ };
14
+
15
+ export function encode(types: TAbiType, values: any): TEth.Hex
16
+ export function encode(types: TAbiType[], values: any[]): TEth.Hex
17
+ export function encode(types: TAbiType | TAbiType[], values: any | any[]): TEth.Hex {
18
+ const isSingle = Array.isArray(types) === false;
19
+ const arr = ensureTypes(types);
20
+ const hex = $abiCoder.encode(arr, isSingle ? [ values ] : values);
21
+ return hex;
22
+ }
23
+
24
+ export function decode(types: TAbiType, hex: string, opts?: TDecodeOptions): any
25
+ export function decode(types: TAbiType[], hex: string, opts?: TDecodeOptions): any[]
26
+ export function decode(types: TAbiType | TAbiType[], hex: string, opts?: TDecodeOptions): any {
27
+ const isSingle = Array.isArray(types) === false;
28
+ const arr = ensureTypes(types);
29
+ let result = $abiCoder.decode(arr, hex, opts);
30
+
31
+ return isSingle ? result[0] : result;
32
+ }
33
+
34
+ export function encodeCall(abi: string | TAbiItem, params?: any[]): TEth.Hex {
35
+ return $abiUtils.serializeMethodCallData(abi, params);
36
+ }
37
+
38
+ export function decodeReturn<T = any>(abi: string | TAbiItem | TAbiOutput[], hex: string): T {
39
+ let outputs = typeof abi === 'string'
40
+ ? ($abiParser.parseMethod(abi).outputs ?? [])
41
+ : (Array.isArray(abi) ? abi : abi.outputs ?? []);
42
+ let returnAbi = outputs;
43
+ let isDynamic: boolean = null;
44
+ if (outputs.length > 1) {
45
+ let isNamedTuple = outputs.every(x => x.name != null && x.name !== '');
46
+ if (isNamedTuple) {
47
+ returnAbi = [{ type: 'tuple', components: outputs, name: null }];
48
+ isDynamic = false;
49
+ }
50
+ }
51
+
52
+ try {
53
+ let arr = $abiCoder.decode(returnAbi as any, hex, {
54
+ dynamic: isDynamic
55
+ });
56
+ return returnAbi.length === 1 ? arr[0] : arr;
57
+ } catch (error) {
58
+ if (outputs.length === 1 && returnAbi.length === 1) {
59
+ return $abiCoder.decodeSingle(returnAbi[0], hex);
60
+ }
61
+ throw error;
62
+ }
63
+ }
64
+
65
+ function ensureTypes (types: TAbiType | TAbiType[]): TAbiType[] {
66
+ let arr = Array.isArray(types) ? types : [ types ];
67
+ return arr.map($abiCoder.normalizeType);
68
+ }
69
+ }
@@ -87,7 +87,7 @@ export namespace $abiCoder {
87
87
  }
88
88
 
89
89
 
90
- function normalizeType (type: TAbiType) {
90
+ export function normalizeType (type: TAbiType) {
91
91
  if (typeof type === 'string' && /\bstruct /.test(type)) {
92
92
  return $abiParser.parseStruct(type);
93
93
  }
@@ -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;
@@ -1,9 +1,9 @@
1
1
  import alot from 'alot';
2
2
  import memd from 'memd';
3
- import { Web3Client } from '@dequanto/clients/Web3Client';
4
3
  import { TEth } from '@dequanto/models/TEth';
5
4
  import { $block } from '@dequanto/utils/$block';
6
5
  import { $date } from '@dequanto/utils/$date';
6
+ import type { Web3Client } from '@dequanto/clients/Web3Client';
7
7
 
8
8
  export class BlockDateResolver {
9
9
  private AVG_INITIAL = {
@@ -32,6 +32,8 @@ import { DataLike } from '@dequanto/utils/types';
32
32
  import { ErrorCode } from './ClientPoolStats';
33
33
  import { $date } from '@dequanto/utils/$date';
34
34
  import { WalletClient } from './WalletClient';
35
+ import alot from 'alot';
36
+ import { $abiParser } from '@dequanto/utils/$abiParser';
35
37
 
36
38
  export abstract class Web3Client implements IWeb3Client {
37
39
 
@@ -108,12 +110,55 @@ export abstract class Web3Client implements IWeb3Client {
108
110
  }
109
111
 
110
112
  // Submit contract calls in a batch and decode the responses.
111
- async batchContractCalls(requests: TRpcContractCall[], options?: {
113
+ async batchContractCalls(requests: TRpcContractCall[] | Promise<TRpcContractCall>[], options?: {
112
114
  allowErrors?: boolean
113
115
  }) {
114
116
  let reader = new RpcContract(this);
115
- let result = await reader.batch(requests, options);
116
- return result;
117
+
118
+ let requestsArrRaw = await Promise.all(requests);
119
+ let requestsArr = await alot(requestsArrRaw).mapAsync(async request => {
120
+ if (request == null) {
121
+ return null;
122
+ }
123
+ let abi = typeof request.abi === 'string'
124
+ ? [ $abiParser.parseMethod(request.abi) ]
125
+ : (Array.isArray(request.abi) ? request.abi : [ request.abi ])
126
+
127
+ let blockNumber = request.blockNumber;
128
+ if (blockNumber instanceof Date) {
129
+ let resolver = di.resolve(BlockDateResolver, this);
130
+ blockNumber = await resolver.getBlockNumberFor(blockNumber);
131
+ }
132
+ let method = request.method;
133
+ if (method == null) {
134
+ $require.eq(abi.length, 1, `No function method is provided, the single ABI item expected`);
135
+ method = abi[0].name;
136
+ }
137
+ return {
138
+ address: request.address,
139
+ abi: abi,
140
+ method: method,
141
+ params: request.params,
142
+ blockNumber: blockNumber,
143
+ options: options
144
+ } as TRpcContractCall;
145
+ }).toArrayAsync();
146
+
147
+ // Skip NULL request: mirror later as the NULL result
148
+ let mapped = [];
149
+ let rpcRequestsNotEmpty = [];
150
+ for (let i = 0; i < requestsArr.length; i++) {
151
+ if (requestsArr[i] == null) {
152
+ continue;
153
+ }
154
+ let idx = rpcRequestsNotEmpty.push(requestsArr[i]) - 1;
155
+ mapped[i] = idx;
156
+ }
157
+
158
+ let outputs = await reader.batch(rpcRequestsNotEmpty, options);
159
+ return requestsArr.map((_, i) => {
160
+ return outputs[mapped[i]] ?? null;
161
+ });
117
162
  }
118
163
 
119
164
  getEventStream(address: TEth.Address, abi: TAbiItem[], event: string) {