@0xtorch/evm 0.0.50 → 0.0.51
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/_cjs/clients/externals/viem/createViemInstance.js +7 -2
- package/_cjs/clients/externals/viem/createViemInstance.js.map +1 -1
- package/_esm/clients/externals/viem/createViemInstance.js +10 -3
- package/_esm/clients/externals/viem/createViemInstance.js.map +1 -1
- package/_types/clients/externals/viem/createViemInstance.d.ts.map +1 -1
- package/clients/externals/viem/createViemInstance.ts +14 -3
- package/package.json +1 -1
|
@@ -34,8 +34,8 @@ exports.createViemInstance = (() => {
|
|
|
34
34
|
}
|
|
35
35
|
throw new Error('No available endpoint');
|
|
36
36
|
};
|
|
37
|
-
const cooldownEndpoint = (endpoint) => {
|
|
38
|
-
cooldownEndpoints.set(endpoint, Date.now() +
|
|
37
|
+
const cooldownEndpoint = (endpoint, time = 60_000) => {
|
|
38
|
+
cooldownEndpoints.set(endpoint, Date.now() + time);
|
|
39
39
|
};
|
|
40
40
|
const call = async (chain, caller, timeout, rpcCondition) => {
|
|
41
41
|
const start = Date.now();
|
|
@@ -50,10 +50,15 @@ exports.createViemInstance = (() => {
|
|
|
50
50
|
return await caller(client);
|
|
51
51
|
}
|
|
52
52
|
catch (error) {
|
|
53
|
+
console.debug(error);
|
|
53
54
|
if (error instanceof viem_1.HttpRequestError && error.status === 429) {
|
|
54
55
|
cooldownEndpoint(endpoint);
|
|
55
56
|
return await call(chain, caller, timeout - (Date.now() - start));
|
|
56
57
|
}
|
|
58
|
+
else if (error instanceof viem_1.TransactionReceiptNotFoundError) {
|
|
59
|
+
cooldownEndpoint(endpoint, 5000);
|
|
60
|
+
return await call(chain, caller, timeout - (Date.now() - start));
|
|
61
|
+
}
|
|
57
62
|
throw error;
|
|
58
63
|
}
|
|
59
64
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createViemInstance.js","sourceRoot":"","sources":["../../../../clients/externals/viem/createViemInstance.ts"],"names":[],"mappings":";;;AAEA,+
|
|
1
|
+
{"version":3,"file":"createViemInstance.js","sourceRoot":"","sources":["../../../../clients/externals/viem/createViemInstance.ts"],"names":[],"mappings":";;;AAEA,+BAKa;AAGb,0CAA0C;AAO7B,QAAA,kBAAkB,GAAG,CAAC,GAAG,EAAE;IACtC,MAAM,aAAa,GAAa,EAAE,CAAA;IAClC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAA;IAClD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAmB,CAAA;IACrD,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAmB,CAAA;IAC3D,MAAM,6BAA6B,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC/D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;IACvC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEnD,MAAM,oBAAoB,GAAG,KAAK,EAChC,OAAe,EACf,OAAe,EACf,YAA2B,EACV,EAAE;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,MAAM,MAAM,GAAG,IAAI,CAAA;QACnB,OAAO,MAAM,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACtB,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAC1C,CAAC,QAAQ,EAAE,EAAE,CACX,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,OAAO;gBAC1C,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC5B,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAC/B,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAE,IAAI,GAAG,CAAC;gBAC1C,CAAC,YAAY,EAAE,SAAS,KAAK,IAAI;oBAC/B,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;gBAC5C,CAAC,YAAY,EAAE,eAAe,KAAK,IAAI;oBACrC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CACrD,CAAA;YAED,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,OAAO,iBAAiB,CAAA;YAC1B,CAAC;YAED,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;YAC5B,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;QAC1D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC1C,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAE,IAAI,GAAG,MAAM,EAAQ,EAAE;QACjE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACpD,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,KAAK,EAChB,KAAY,EACZ,MAA4C,EAC5C,OAAe,EACf,YAA2B,EACf,EAAE;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;QAE5E,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAA;QAC7C,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAE3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,yBAAkB,EAAC;gBAChC,KAAK;gBACL,SAAS,EAAE,IAAA,WAAI,EAAC,QAAQ,CAAC;aAC1B,CAAC,CAAA;YACF,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACpB,IAAI,KAAK,YAAY,uBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC9D,gBAAgB,CAAC,QAAQ,CAAC,CAAA;gBAC1B,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;YAClE,CAAC;iBAAM,IAAI,KAAK,YAAY,sCAA+B,EAAE,CAAC;gBAC5D,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBAChC,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;YAClE,CAAC;YACD,MAAM,KAAK,CAAA;QACb,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,KAAK,EACnB,KAAY,EACZ,EACE,OAAO,EACP,KAAK,EACL,SAAS,EACT,OAAO,GAMR,EACD,OAAe,EACf,EAAE;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAExB,MAAM,QAAQ,GAA2B,EAAE,CAAA;QAC3C,IAAI,oBAAoB,GAAG,SAAS,CAAA;QACpC,IAAI,kBAAkB,GAAG,EAAE,CAAA;QAC3B,OAAO,oBAAoB,IAAI,OAAO,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAA;YAC7C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE;gBAC5D,SAAS,EAAE,IAAI;gBACf,eAAe,EAAE,IAAI;aACtB,CAAC,CAAA;YACF,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC3B,MAAM,oBAAoB,GACxB,6BAA6B,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAA;YAEtD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAA,yBAAkB,EAAC;oBAChC,KAAK;oBACL,SAAS,EAAE,IAAA,WAAI,EAAC,QAAQ,CAAC;iBAC1B,CAAC,CAAA;gBACF,kBAAkB,GAAG,IAAA,iBAAS,EAC5B,oBAAoB,GAAG,oBAAoB,GAAG,EAAE,EAChD,OAAO,CACR,CAAA;gBACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;oBAChC,OAAO;oBACP,KAAK;oBACL,SAAS,EAAE,oBAAoB;oBAC/B,OAAO,EAAE,kBAAkB;iBAC5B,CAAC,CAAA;gBACF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACnB,oBAAoB,GAAG,kBAAkB,GAAG,EAAE,CAAA;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,uBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC9D,gBAAgB,CAAC,QAAQ,CAAC,CAAA;gBAC5B,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,CAAA;gBACb,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ;aACrB,IAAI,EAAE;aACN,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;QAC5D,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,OAAO,CAAC,KAAY,EAAE,IAAwB,EAAE,EAAE;QAChD,KAAK,MAAM,EACT,GAAG,EACH,SAAS,EACT,eAAe,EACf,oBAAoB,GACrB,IAAI,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACvB,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;gBACnC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;gBACtC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;gBAClD,6BAA6B,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAA;YAC9D,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,CACJ,MAA4C,EAC5C,OAAe,EACf,YAA2B,EAC3B,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC;YAC/C,OAAO,EAAE,KAAK,EACZ,UAKC,EACD,OAAe,EACgB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC;SACxE,CAAA;IACH,CAAC,CAAA;AACH,CAAC,CAAC,EAAE,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HttpRequestError, createPublicClient, http } from 'viem';
|
|
1
|
+
import { HttpRequestError, TransactionReceiptNotFoundError, createPublicClient, http, } from 'viem';
|
|
2
2
|
import { bigIntMin } from '../../../utils';
|
|
3
3
|
export const createViemInstance = (() => {
|
|
4
4
|
const mut_endpoints = [];
|
|
@@ -31,12 +31,13 @@ export const createViemInstance = (() => {
|
|
|
31
31
|
}
|
|
32
32
|
throw new Error('No available endpoint');
|
|
33
33
|
};
|
|
34
|
-
const cooldownEndpoint = (endpoint) => {
|
|
35
|
-
cooldownEndpoints.set(endpoint, Date.now() +
|
|
34
|
+
const cooldownEndpoint = (endpoint, time = 60_000) => {
|
|
35
|
+
cooldownEndpoints.set(endpoint, Date.now() + time);
|
|
36
36
|
};
|
|
37
37
|
const call = async (chain, caller, timeout, rpcCondition) => {
|
|
38
38
|
const start = Date.now();
|
|
39
39
|
const endpoint = await getAvailableEndpoint(chain.id, timeout, rpcCondition);
|
|
40
|
+
// TODO 後で消す
|
|
40
41
|
console.debug('Selected endpoint:', endpoint);
|
|
41
42
|
busyEndpoints.add(endpoint);
|
|
42
43
|
try {
|
|
@@ -47,10 +48,16 @@ export const createViemInstance = (() => {
|
|
|
47
48
|
return await caller(client);
|
|
48
49
|
}
|
|
49
50
|
catch (error) {
|
|
51
|
+
// TODO 後で消す
|
|
52
|
+
console.debug(error);
|
|
50
53
|
if (error instanceof HttpRequestError && error.status === 429) {
|
|
51
54
|
cooldownEndpoint(endpoint);
|
|
52
55
|
return await call(chain, caller, timeout - (Date.now() - start));
|
|
53
56
|
}
|
|
57
|
+
else if (error instanceof TransactionReceiptNotFoundError) {
|
|
58
|
+
cooldownEndpoint(endpoint, 5000);
|
|
59
|
+
return await call(chain, caller, timeout - (Date.now() - start));
|
|
60
|
+
}
|
|
54
61
|
throw error;
|
|
55
62
|
}
|
|
56
63
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createViemInstance.js","sourceRoot":"","sources":["../../../../clients/externals/viem/createViemInstance.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"createViemInstance.js","sourceRoot":"","sources":["../../../../clients/externals/viem/createViemInstance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createViemInstance.d.ts","sourceRoot":"","sources":["../../../../clients/externals/viem/createViemInstance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"createViemInstance.d.ts","sourceRoot":"","sources":["../../../../clients/externals/viem/createViemInstance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAOlE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAG9C,KAAK,YAAY,GAAG;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,kBAAkB,UAiJd,KAAK,QAAQ,SAAS,OAAO,EAAE;+BAkBvB,YAAY,0BACpB,MAAM,iBACA,YAAY;;0BAIP,QAAQ;;4BAEN,MAAM;0BACR,MAAM;gBAEjB,MAAM;CAInB,CAAA"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { AbiEvent } from 'abitype'
|
|
2
2
|
import type { Chain, GetLogsReturnType, PublicClient } from 'viem'
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
HttpRequestError,
|
|
5
|
+
TransactionReceiptNotFoundError,
|
|
6
|
+
createPublicClient,
|
|
7
|
+
http,
|
|
8
|
+
} from 'viem'
|
|
4
9
|
import type { HttpRpc } from '../../../chains'
|
|
5
10
|
import type { LowerHex } from '../../../types'
|
|
6
11
|
import { bigIntMin } from '../../../utils'
|
|
@@ -53,8 +58,8 @@ export const createViemInstance = (() => {
|
|
|
53
58
|
throw new Error('No available endpoint')
|
|
54
59
|
}
|
|
55
60
|
|
|
56
|
-
const cooldownEndpoint = (endpoint: string): void => {
|
|
57
|
-
cooldownEndpoints.set(endpoint, Date.now() +
|
|
61
|
+
const cooldownEndpoint = (endpoint: string, time = 60_000): void => {
|
|
62
|
+
cooldownEndpoints.set(endpoint, Date.now() + time)
|
|
58
63
|
}
|
|
59
64
|
|
|
60
65
|
const call = async <T>(
|
|
@@ -65,6 +70,7 @@ export const createViemInstance = (() => {
|
|
|
65
70
|
): Promise<T> => {
|
|
66
71
|
const start = Date.now()
|
|
67
72
|
const endpoint = await getAvailableEndpoint(chain.id, timeout, rpcCondition)
|
|
73
|
+
// TODO 後で消す
|
|
68
74
|
console.debug('Selected endpoint:', endpoint)
|
|
69
75
|
busyEndpoints.add(endpoint)
|
|
70
76
|
|
|
@@ -75,9 +81,14 @@ export const createViemInstance = (() => {
|
|
|
75
81
|
})
|
|
76
82
|
return await caller(client)
|
|
77
83
|
} catch (error) {
|
|
84
|
+
// TODO 後で消す
|
|
85
|
+
console.debug(error)
|
|
78
86
|
if (error instanceof HttpRequestError && error.status === 429) {
|
|
79
87
|
cooldownEndpoint(endpoint)
|
|
80
88
|
return await call(chain, caller, timeout - (Date.now() - start))
|
|
89
|
+
} else if (error instanceof TransactionReceiptNotFoundError) {
|
|
90
|
+
cooldownEndpoint(endpoint, 5000)
|
|
91
|
+
return await call(chain, caller, timeout - (Date.now() - start))
|
|
81
92
|
}
|
|
82
93
|
throw error
|
|
83
94
|
} finally {
|