dequanto 0.2.46 → 0.2.47

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 (60) hide show
  1. package/lib/cjs/clients/ClientPool.js +14 -0
  2. package/lib/cjs/clients/ClientPool.js.map +1 -1
  3. package/lib/cjs/clients/Web3Client.js +4 -1
  4. package/lib/cjs/clients/Web3Client.js.map +1 -1
  5. package/lib/cjs/clients/model/ClientStatus.js +1 -0
  6. package/lib/cjs/clients/model/ClientStatus.js.map +1 -1
  7. package/lib/cjs/clients/utils/ClientErrorUtil.js +9 -0
  8. package/lib/cjs/clients/utils/ClientErrorUtil.js.map +1 -1
  9. package/lib/cjs/config/ConfigDefaults.js +0 -3
  10. package/lib/cjs/config/ConfigDefaults.js.map +1 -1
  11. package/lib/cjs/contracts/ContractCreationResolver.js +1 -0
  12. package/lib/cjs/contracts/ContractCreationResolver.js.map +1 -1
  13. package/lib/cjs/rpc/RpcBase.js +4 -1
  14. package/lib/cjs/rpc/RpcBase.js.map +1 -1
  15. package/lib/cjs/solidity/utils/$str.js +1 -1
  16. package/lib/cjs/solidity/utils/$str.js.map +1 -1
  17. package/lib/cjs/utils/$base.js +1 -1
  18. package/lib/cjs/utils/$base.js.map +1 -1
  19. package/lib/cjs/utils/$crypto.js.map +1 -1
  20. package/lib/cjs/utils/$hex.js +15 -3
  21. package/lib/cjs/utils/$hex.js.map +1 -1
  22. package/lib/esm/clients/ClientPool.js.map +1 -1
  23. package/lib/esm/clients/ClientPool.mjs +14 -0
  24. package/lib/esm/clients/Web3Client.js.map +1 -1
  25. package/lib/esm/clients/Web3Client.mjs +4 -1
  26. package/lib/esm/clients/model/ClientStatus.js.map +1 -1
  27. package/lib/esm/clients/model/ClientStatus.mjs +1 -0
  28. package/lib/esm/clients/utils/ClientErrorUtil.js.map +1 -1
  29. package/lib/esm/clients/utils/ClientErrorUtil.mjs +9 -0
  30. package/lib/esm/config/ConfigDefaults.js.map +1 -1
  31. package/lib/esm/config/ConfigDefaults.mjs +0 -3
  32. package/lib/esm/contracts/ContractCreationResolver.js.map +1 -1
  33. package/lib/esm/contracts/ContractCreationResolver.mjs +1 -0
  34. package/lib/esm/rpc/RpcBase.js.map +1 -1
  35. package/lib/esm/rpc/RpcBase.mjs +4 -1
  36. package/lib/esm/solidity/utils/$str.js.map +1 -1
  37. package/lib/esm/solidity/utils/$str.mjs +1 -1
  38. package/lib/esm/utils/$base.js.map +1 -1
  39. package/lib/esm/utils/$base.mjs +1 -1
  40. package/lib/esm/utils/$crypto.js.map +1 -1
  41. package/lib/esm/utils/$hex.js.map +1 -1
  42. package/lib/esm/utils/$hex.mjs +15 -3
  43. package/lib/types/clients/ClientPool.d.ts +2 -0
  44. package/lib/types/clients/model/ClientStatus.d.ts +1 -0
  45. package/lib/types/clients/utils/ClientErrorUtil.d.ts +4 -0
  46. package/lib/types/rpc/RpcBase.d.ts +1 -0
  47. package/lib/types/utils/$crypto.d.ts +3 -0
  48. package/lib/types/utils/$hex.d.ts +2 -0
  49. package/package.json +1 -1
  50. package/src/clients/ClientPool.ts +17 -1
  51. package/src/clients/Web3Client.ts +4 -1
  52. package/src/clients/model/ClientStatus.ts +1 -0
  53. package/src/clients/utils/ClientErrorUtil.ts +8 -0
  54. package/src/config/ConfigDefaults.ts +0 -3
  55. package/src/contracts/ContractCreationResolver.ts +1 -0
  56. package/src/rpc/RpcBase.ts +5 -1
  57. package/src/solidity/utils/$str.ts +1 -1
  58. package/src/utils/$base.ts +1 -1
  59. package/src/utils/$crypto.ts +1 -0
  60. package/src/utils/$hex.ts +12 -3
@@ -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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"}
@@ -22,12 +22,23 @@ export var $hex;
22
22
  * Trims '00' bytes from start or end, e.g. 0x68656c6c6f000000 => 0x68656c6c6f
23
23
  */
24
24
  function trimBytes(hex) {
25
- if (hex.startsWith('0x00') === false && hex.endsWith('00') === false) {
25
+ return trimBytesEnd(trimBytesStart(hex));
26
+ }
27
+ $hex.trimBytes = trimBytes;
28
+ function trimBytesStart(hex) {
29
+ if (hex.startsWith('0x00') === false) {
26
30
  return hex;
27
31
  }
28
- return hex.replace(/^0x(0{2})+/, '0x').replace(/(0{2})+$/, '');
32
+ return hex.replace(/^0x(0{2})+/, '0x');
29
33
  }
30
- $hex.trimBytes = trimBytes;
34
+ $hex.trimBytesStart = trimBytesStart;
35
+ function trimBytesEnd(hex) {
36
+ if (hex.endsWith('00') === false) {
37
+ return hex;
38
+ }
39
+ return hex.replace(/(0{2})+$/, '');
40
+ }
41
+ $hex.trimBytesEnd = trimBytesEnd;
31
42
  function trimLeadingZerosFromNumber(hex) {
32
43
  hex = hex.replace(/^0x0*/, '');
33
44
  return hex === '' ? '0x0' : `0x${hex}`;
@@ -130,6 +141,7 @@ export var $hex;
130
141
  if (typeof mix === 'boolean') {
131
142
  return mix ? '0x1' : '0x0';
132
143
  }
144
+ $require.match(/^(0x)?[\da-f]*$/i, mix, 'NotValidHex');
133
145
  if (mix.startsWith('0x')) {
134
146
  return mix;
135
147
  }
@@ -53,6 +53,8 @@ export interface IPoolWeb3Request {
53
53
  method?: string;
54
54
  batchRequestCount?: number;
55
55
  blockRangeCount?: number;
56
+ /** Try another node when the RPC succeeds but returns null, e.g. tx not found on one provider. */
57
+ tryNextOnNull?: boolean;
56
58
  }
57
59
  export declare class ClientPool {
58
60
  private discoveredPartial;
@@ -2,5 +2,6 @@ export declare enum ClientStatus {
2
2
  Ok = 200,
3
3
  NetworkError = 500,
4
4
  RateLimited = 501,
5
+ NodeConfigurationError = 502,
5
6
  CallError = 400
6
7
  }
@@ -3,6 +3,10 @@ export declare namespace ClientErrorUtil {
3
3
  code?: any;
4
4
  reason?: any;
5
5
  }): boolean;
6
+ function isNodeConfigurationError(error: Error & {
7
+ code?: any;
8
+ reason?: any;
9
+ }): boolean;
6
10
  function isAlreadyKnown(error: Error & {
7
11
  code?: any;
8
12
  reason?: any;
@@ -22,6 +22,7 @@ export declare abstract class RpcBase {
22
22
  private _unwrapBody;
23
23
  private _deserialize;
24
24
  protected abstract returnSchemas: any;
25
+ static unwrapBody(resp: any): any;
25
26
  }
26
27
  export declare namespace TRpc {
27
28
  interface IRpc {
@@ -3,6 +3,9 @@ interface ICrypto {
3
3
  randomBytes(size: number): Uint8Array;
4
4
  randomUUID(): `${string}-${string}-${string}-${string}-${string}`;
5
5
  createECDH(curve: string): any;
6
+ sha256(mix: string | TEth.Hex | Uint8Array, opts?: {
7
+ encoding: 'hex';
8
+ }): Promise<TEth.Hex>;
6
9
  sha256(mix: string | TEth.Hex | Uint8Array): Promise<Uint8Array>;
7
10
  encrypt(buffer: string | TEth.Hex | Uint8Array, opts: IEncryptionParams & {
8
11
  encoding?: undefined | 'binary';
@@ -13,6 +13,8 @@ export declare namespace $hex {
13
13
  * Trims '00' bytes from start or end, e.g. 0x68656c6c6f000000 => 0x68656c6c6f
14
14
  */
15
15
  function trimBytes(hex: TEth.Hex): TEth.Hex;
16
+ function trimBytesStart(hex: TEth.Hex): TEth.Hex;
17
+ function trimBytesEnd(hex: TEth.Hex): TEth.Hex;
16
18
  function trimLeadingZerosFromNumber(hex: string): string;
17
19
  function getBytes(hex: string, offset: number, length: number): TEth.Hex;
18
20
  function getBytesLength(hex: string): number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dequanto",
3
- "version": "0.2.46",
3
+ "version": "0.2.47",
4
4
  "author": {
5
5
  "name": "Alex Kit",
6
6
  "email": "alex.kit@atmajs.com"
@@ -93,6 +93,9 @@ export interface IPoolWeb3Request {
93
93
 
94
94
  // When fetching logs, specifies the desired block range to query
95
95
  blockRangeCount?: number
96
+
97
+ /** Try another node when the RPC succeeds but returns null, e.g. tx not found on one provider. */
98
+ tryNextOnNull?: boolean
96
99
  }
97
100
 
98
101
  export class ClientPool {
@@ -156,12 +159,18 @@ export class ClientPool {
156
159
  // Client - Retries
157
160
  let used = new Map<WClient, number>();
158
161
  let errors = [];
162
+ let dataIsNull: boolean;
159
163
 
160
164
  while (true) {
161
165
  let wClient = await this.next(used, opts);
162
166
  if (wClient == null) {
163
167
  let error = errors.pop();
164
168
  if (error == null) {
169
+ if (dataIsNull) {
170
+ // No provider returned an error, but none found the requested data
171
+ return null;
172
+ }
173
+
165
174
  let urls = this
166
175
  .clients
167
176
  .map(x => ` ${x.config.url}`)
@@ -182,7 +191,6 @@ export class ClientPool {
182
191
  ?.trace
183
192
  ?.onComplete({ status, error, time, url: wClient.config.url })
184
193
 
185
-
186
194
  if (wClientUsage == null) {
187
195
  // By default, NO_RETRIES
188
196
  used.set(wClient, 0);
@@ -194,6 +202,12 @@ export class ClientPool {
194
202
  errors.push(error ?? result);
195
203
 
196
204
  if (status == ClientStatus.Ok) {
205
+ if (opts?.tryNextOnNull === true) {
206
+ if (result == null) {
207
+ dataIsNull = true;
208
+ continue;
209
+ }
210
+ }
197
211
  return result;
198
212
  }
199
213
  if (status == ClientStatus.RateLimited) {
@@ -994,6 +1008,8 @@ export class WClient {
994
1008
  l`yellow<New BatchLimit> for "${this.config.url}" bold<${limit}>`;
995
1009
  this.batchLimit = limit;
996
1010
  }
1011
+ } else if (ClientErrorUtil.isNodeConfigurationError(error)) {
1012
+ status = ClientStatus.NodeConfigurationError;
997
1013
  } else if (ClientErrorUtil.isConnectionFailed(error)) {
998
1014
  status = ClientStatus.NetworkError;
999
1015
  }
@@ -227,7 +227,10 @@ export abstract class Web3Client implements IWeb3Client {
227
227
  getTransaction(txHash: TEth.Hex, opts?: IPoolWeb3Request): Promise<TEth.Tx> {
228
228
  return this.pool.call(web3 => {
229
229
  return web3.rpc.eth_getTransactionByHash(txHash);
230
- }, opts);
230
+ }, {
231
+ tryNextOnNull: true,
232
+ ...(opts ?? {})
233
+ });
231
234
  }
232
235
  getTransactions(txHashes: TEth.Hex[], opts?: IPoolWeb3Request): Promise<TEth.Tx[]> {
233
236
  return this.pool.call(async web3 => {
@@ -2,5 +2,6 @@ export enum ClientStatus {
2
2
  Ok = 200,
3
3
  NetworkError = 500,
4
4
  RateLimited = 501,
5
+ NodeConfigurationError = 502,
5
6
  CallError = 400
6
7
  }
@@ -14,6 +14,14 @@ export namespace ClientErrorUtil {
14
14
  }
15
15
  return false;
16
16
  }
17
+ export function isNodeConfigurationError (error: Error & { code?, reason? }) {
18
+ let str = error.message ?? error.stack;
19
+ let noHistory = /history unavailable/i.test(str);
20
+ if (noHistory) {
21
+ return true;
22
+ }
23
+ return false;
24
+ }
17
25
  export function isAlreadyKnown (error: Error & { code?, reason? }) {
18
26
  return /already known/i.test(error.message);
19
27
  }
@@ -116,9 +116,6 @@ export const ConfigDefaults = <IConfigData> {
116
116
  "chainId": 1,
117
117
  "chainToken": "ETH",
118
118
  "endpoints": [
119
- {
120
- "url": "https://ethereum-rpc.publicnode.com"
121
- },
122
119
  {
123
120
  "url": "https://eth.drpc.org",
124
121
  "rateLimit": "2000/5m"
@@ -72,6 +72,7 @@ class BlockchainExplorerDateResolver {
72
72
  throw error;
73
73
  }
74
74
  let tx = await this.client.getTransaction(info.txHash);
75
+ $require.notNull(tx, `Tx not found: ${info.txHash} in ${this.client.network} (${this.client.options?.endpoints?.[0]?.url})`);
75
76
  let block = await this.client.getBlock(tx.blockNumber);
76
77
  return {
77
78
  tx: tx.hash,
@@ -122,7 +122,7 @@ export abstract class RpcBase {
122
122
  };
123
123
  }
124
124
  private _unwrapBody (resp: any): any {
125
- return resp.result;
125
+ return RpcBase.unwrapBody(resp);
126
126
  }
127
127
  private _deserialize (method: string, result: any) {
128
128
  let { methods, schemas } = this.returnSchemas;
@@ -141,6 +141,10 @@ export abstract class RpcBase {
141
141
 
142
142
 
143
143
  protected abstract returnSchemas
144
+
145
+ static unwrapBody (resp: any) {
146
+ return resp.result;
147
+ }
144
148
  }
145
149
 
146
150
 
@@ -44,7 +44,7 @@ export namespace $str {
44
44
  }
45
45
 
46
46
  export function fromHex(hex: TEth.Hex) {
47
- let trimmed = $hex.trimBytes(hex);
47
+ let trimmed = $hex.trimBytesEnd(hex);
48
48
  return $buffer.fromHex(trimmed).toString();
49
49
  }
50
50
 
@@ -18,7 +18,7 @@ export namespace $base {
18
18
 
19
19
  public encode (hex: TEth.Hex): string {
20
20
  hex = $hex.toHexBuffer(hex);
21
- hex = $hex.trimBytes(hex);
21
+ hex = $hex.trimBytesStart(hex);
22
22
  let buffer = $buffer.fromHex(hex);
23
23
 
24
24
  let result = [];
@@ -8,6 +8,7 @@ interface ICrypto {
8
8
  randomUUID(): `${string}-${string}-${string}-${string}-${string}`;
9
9
  createECDH(curve: string)
10
10
 
11
+ sha256 (mix: string | TEth.Hex | Uint8Array, opts?: { encoding: 'hex' }): Promise<TEth.Hex>;
11
12
  sha256 (mix: string | TEth.Hex | Uint8Array): Promise<Uint8Array>;
12
13
 
13
14
  encrypt(buffer: string | TEth.Hex | Uint8Array, opts: IEncryptionParams & { encoding?: undefined | 'binary' }): Promise<Uint8Array>
package/src/utils/$hex.ts CHANGED
@@ -24,10 +24,19 @@ export namespace $hex {
24
24
  * Trims '00' bytes from start or end, e.g. 0x68656c6c6f000000 => 0x68656c6c6f
25
25
  */
26
26
  export function trimBytes(hex: TEth.Hex): TEth.Hex {
27
- if (hex.startsWith('0x00') === false && hex.endsWith('00') === false) {
27
+ return trimBytesEnd(trimBytesStart(hex));
28
+ }
29
+ export function trimBytesStart(hex: TEth.Hex): TEth.Hex {
30
+ if (hex.startsWith('0x00') === false) {
28
31
  return hex;
29
32
  }
30
- return hex.replace(/^0x(0{2})+/, '0x').replace(/(0{2})+$/, '') as TEth.Hex;
33
+ return hex.replace(/^0x(0{2})+/, '0x') as TEth.Hex;
34
+ }
35
+ export function trimBytesEnd(hex: TEth.Hex): TEth.Hex {
36
+ if (hex.endsWith('00') === false) {
37
+ return hex;
38
+ }
39
+ return hex.replace(/(0{2})+$/, '') as TEth.Hex;
31
40
  }
32
41
  export function trimLeadingZerosFromNumber(hex: string) {
33
42
  hex = hex.replace(/^0x0*/, '');
@@ -114,7 +123,6 @@ export namespace $hex {
114
123
  return hex;
115
124
  }
116
125
 
117
-
118
126
  /**
119
127
  * Adds `0x` to the start if not present
120
128
  */
@@ -131,6 +139,7 @@ export namespace $hex {
131
139
  if (typeof mix ==='boolean') {
132
140
  return mix ? '0x1' : '0x0';
133
141
  }
142
+ $require.match(/^(0x)?[\da-f]*$/i, mix, 'NotValidHex');
134
143
  if (mix.startsWith('0x')) {
135
144
  return mix as TEth.Hex;
136
145
  }