x402-proxy 0.10.7 → 0.10.9

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 (90) hide show
  1. package/CHANGELOG.md +23 -1
  2. package/README.md +7 -1
  3. package/dist/Credential-COZQnr1-.js +2055 -0
  4. package/dist/Mcp-CrCEqLqO.js +10 -0
  5. package/dist/Sse-ChldYgU7.js +9742 -0
  6. package/dist/Sse-kCB38G56.js +16482 -0
  7. package/dist/accounts-DsuvWwph.js +232 -0
  8. package/dist/accounts-DzvAlQRn.js +5 -0
  9. package/dist/accounts-IG-Cmrwy.js +229 -0
  10. package/dist/api-CUzmQvTQ.js +2802 -0
  11. package/dist/auth-DTzQmnZ_.js +1196 -0
  12. package/dist/bin/cli.js +585 -242
  13. package/dist/ccip-Bx-zoUCJ.js +240 -0
  14. package/dist/ccip-C2k1DD1T.js +153 -0
  15. package/dist/ccip-C6CQOJYv.js +152 -0
  16. package/dist/ccip-RZzsZ5Mv.js +156 -0
  17. package/dist/chain-CafcHffR.js +1997 -0
  18. package/dist/chain-DwfP5RGZ.js +1968 -0
  19. package/dist/chunk-DBEY4PJZ.js +16 -0
  20. package/dist/chunk-DjEMn6fM.js +36 -0
  21. package/dist/client-Blw2V7LF.js +657 -0
  22. package/dist/client-C37gWJOZ.js +102 -0
  23. package/dist/client-CEc4NYAA.js +6388 -0
  24. package/dist/client-CVDTUY0l.js +5152 -0
  25. package/dist/config-BUQsit4s.js +3 -0
  26. package/dist/config-DR1Fs_wL.js +6600 -0
  27. package/dist/{config-D9wIR3xc.js → config-rvKA3SYT.js} +10 -5
  28. package/dist/decodeFunctionData-DuFcwhC_.js +4510 -0
  29. package/dist/decodeFunctionData-JPOUdvil.js +4394 -0
  30. package/dist/derive-DNUl8LU9.js +9109 -0
  31. package/dist/dist-C2YO6HSQ.js +6581 -0
  32. package/dist/dist-DM5_F3r5.js +4 -0
  33. package/dist/dist-DxJCYyL5.js +1388 -0
  34. package/dist/hashTypedData-BHmP9dBd.js +859 -0
  35. package/dist/hashTypedData-CtEdfx4y.js +846 -0
  36. package/dist/helpers-CuUSw-tH.js +7125 -0
  37. package/dist/hmac-59IlS_by.js +648 -0
  38. package/dist/http-BAtucMbS.js +2060 -0
  39. package/dist/index.d.ts +1903 -9
  40. package/dist/index.js +18006 -50
  41. package/dist/index.node-CxkL0OFh.js +3592 -0
  42. package/dist/index.node-DvmeuZBj.js +3 -0
  43. package/dist/isAddressEqual-BLrd1Hg1.js +9 -0
  44. package/dist/isAddressEqual-DsAqfQOD.js +10 -0
  45. package/dist/localBatchGatewayRequest-C-RPJyDO.js +6260 -0
  46. package/dist/localBatchGatewayRequest-DOdQ9bR7.js +93 -0
  47. package/dist/localBatchGatewayRequest-DQkbZaSy.js +6261 -0
  48. package/dist/parseUnits-CApwcKSD.js +49 -0
  49. package/dist/parseUnits-cMO2udMe.js +48 -0
  50. package/dist/schemas-BxMFYNbH.js +1270 -0
  51. package/dist/secp256k1-BZpiyffY.js +2525 -0
  52. package/dist/secp256k1-BjenrLl5.js +1877 -0
  53. package/dist/secp256k1-CLPUX17u.js +3 -0
  54. package/dist/sendRawTransactionSync-DvSkhZtW.js +3612 -0
  55. package/dist/server-CSq0IuUq.js +565 -0
  56. package/dist/setup-BY4J49Lv.js +1110 -0
  57. package/dist/setup-wMOAgrsN.js +3 -0
  58. package/dist/sha256-FAs0qeni.js +17 -0
  59. package/dist/sha3-CYkWM8Xa.js +195 -0
  60. package/dist/sha3-DbMJRJ3C.js +194 -0
  61. package/dist/sse-B4LLqBQm.js +408 -0
  62. package/dist/status-Bu23RjW6.js +3 -0
  63. package/dist/{status-DihAcUSC.js → status-X21VnGUO.js} +16 -15
  64. package/dist/stdio-BADqxZdZ.js +85 -0
  65. package/dist/streamableHttp-BHkJypcI.js +358 -0
  66. package/dist/tempo-3nttrxgQ.js +17 -0
  67. package/dist/tempo-DER0P-ul.js +18 -0
  68. package/dist/types-BEKUz-Mf.js +1240 -0
  69. package/dist/types-DatK5vR5.js +3 -0
  70. package/dist/utils-BYjkXZDF.js +444 -0
  71. package/dist/utils-SeGHMW9O.js +445 -0
  72. package/dist/wallet-DKVlrR1S.js +3 -0
  73. package/dist/wallet-DSyht15_.js +17759 -0
  74. package/package.json +18 -71
  75. package/dist/config-B_upkJeK.js +0 -66
  76. package/dist/config-Be35NM5s.js +0 -3
  77. package/dist/config-J1m-CWXT.js +0 -27
  78. package/dist/derive-CL6e8K0Z.js +0 -81
  79. package/dist/openclaw/plugin.d.ts +0 -15
  80. package/dist/openclaw/plugin.js +0 -2067
  81. package/dist/openclaw.plugin.json +0 -93
  82. package/dist/setup-CNyMLnM-.js +0 -197
  83. package/dist/setup-DTIxPe58.js +0 -3
  84. package/dist/status-DZlJ4pS7.js +0 -3
  85. package/dist/wallet-B0S-rma9.js +0 -544
  86. package/dist/wallet-DBrVZJqe.js +0 -3
  87. package/openclaw.plugin.json +0 -93
  88. package/skills/SKILL.md +0 -183
  89. package/skills/references/library.md +0 -85
  90. package/skills/references/openclaw-plugin.md +0 -145
@@ -0,0 +1,240 @@
1
+ import { Ht as toFunctionSelector, It as getUrl, Lt as decodeErrorResult, Ot as HttpRequestError, Vt as getAbiItem, c as batchGatewayAbi, n as call, t as decodeFunctionData, zt as solidityError } from "./decodeFunctionData-JPOUdvil.js";
2
+ import { At as formatAbiItem, B as concat, Dt as BaseError, Et as InvalidArrayError, N as encodeAbiParameters, V as concatHex, k as stringify, kt as isHex, mt as AbiErrorNotFoundError, pt as AbiErrorInputsNotFoundError, vt as AbiFunctionNotFoundError, yt as AbiFunctionOutputsNotFoundError } from "./chain-DwfP5RGZ.js";
3
+ import { t as isAddressEqual } from "./isAddressEqual-BLrd1Hg1.js";
4
+ //#region node_modules/.pnpm/viem@2.47.6_typescript@5.9.3_zod@4.3.6/node_modules/viem/_esm/utils/abi/encodeErrorResult.js
5
+ const docsPath$1 = "/docs/contract/encodeErrorResult";
6
+ function encodeErrorResult(parameters) {
7
+ const { abi, errorName, args } = parameters;
8
+ let abiItem = abi[0];
9
+ if (errorName) {
10
+ const item = getAbiItem({
11
+ abi,
12
+ args,
13
+ name: errorName
14
+ });
15
+ if (!item) throw new AbiErrorNotFoundError(errorName, { docsPath: docsPath$1 });
16
+ abiItem = item;
17
+ }
18
+ if (abiItem.type !== "error") throw new AbiErrorNotFoundError(void 0, { docsPath: docsPath$1 });
19
+ const signature = toFunctionSelector(formatAbiItem(abiItem));
20
+ let data = "0x";
21
+ if (args && args.length > 0) {
22
+ if (!abiItem.inputs) throw new AbiErrorInputsNotFoundError(abiItem.name, { docsPath: docsPath$1 });
23
+ data = encodeAbiParameters(abiItem.inputs, args);
24
+ }
25
+ return concatHex([signature, data]);
26
+ }
27
+ //#endregion
28
+ //#region node_modules/.pnpm/viem@2.47.6_typescript@5.9.3_zod@4.3.6/node_modules/viem/_esm/utils/abi/encodeFunctionResult.js
29
+ const docsPath = "/docs/contract/encodeFunctionResult";
30
+ function encodeFunctionResult(parameters) {
31
+ const { abi, functionName, result } = parameters;
32
+ let abiItem = abi[0];
33
+ if (functionName) {
34
+ const item = getAbiItem({
35
+ abi,
36
+ name: functionName
37
+ });
38
+ if (!item) throw new AbiFunctionNotFoundError(functionName, { docsPath });
39
+ abiItem = item;
40
+ }
41
+ if (abiItem.type !== "function") throw new AbiFunctionNotFoundError(void 0, { docsPath });
42
+ if (!abiItem.outputs) throw new AbiFunctionOutputsNotFoundError(abiItem.name, { docsPath });
43
+ const values = (() => {
44
+ if (abiItem.outputs.length === 0) return [];
45
+ if (abiItem.outputs.length === 1) return [result];
46
+ if (Array.isArray(result)) return result;
47
+ throw new InvalidArrayError(result);
48
+ })();
49
+ return encodeAbiParameters(abiItem.outputs, values);
50
+ }
51
+ async function localBatchGatewayRequest(parameters) {
52
+ const { data, ccipRequest } = parameters;
53
+ const { args: [queries] } = decodeFunctionData({
54
+ abi: batchGatewayAbi,
55
+ data
56
+ });
57
+ const failures = [];
58
+ const responses = [];
59
+ await Promise.all(queries.map(async (query, i) => {
60
+ try {
61
+ responses[i] = query.urls.includes("x-batch-gateway:true") ? await localBatchGatewayRequest({
62
+ data: query.data,
63
+ ccipRequest
64
+ }) : await ccipRequest(query);
65
+ failures[i] = false;
66
+ } catch (err) {
67
+ failures[i] = true;
68
+ responses[i] = encodeError(err);
69
+ }
70
+ }));
71
+ return encodeFunctionResult({
72
+ abi: batchGatewayAbi,
73
+ functionName: "query",
74
+ result: [failures, responses]
75
+ });
76
+ }
77
+ function encodeError(error) {
78
+ if (error.name === "HttpRequestError" && error.status) return encodeErrorResult({
79
+ abi: batchGatewayAbi,
80
+ errorName: "HttpError",
81
+ args: [error.status, error.shortMessage]
82
+ });
83
+ return encodeErrorResult({
84
+ abi: [solidityError],
85
+ errorName: "Error",
86
+ args: ["shortMessage" in error ? error.shortMessage : error.message]
87
+ });
88
+ }
89
+ //#endregion
90
+ //#region node_modules/.pnpm/viem@2.47.6_typescript@5.9.3_zod@4.3.6/node_modules/viem/_esm/errors/ccip.js
91
+ var OffchainLookupError = class extends BaseError {
92
+ constructor({ callbackSelector, cause, data, extraData, sender, urls }) {
93
+ super(cause.shortMessage || "An error occurred while fetching for an offchain result.", {
94
+ cause,
95
+ metaMessages: [
96
+ ...cause.metaMessages || [],
97
+ cause.metaMessages?.length ? "" : [],
98
+ "Offchain Gateway Call:",
99
+ urls && [" Gateway URL(s):", ...urls.map((url) => ` ${getUrl(url)}`)],
100
+ ` Sender: ${sender}`,
101
+ ` Data: ${data}`,
102
+ ` Callback selector: ${callbackSelector}`,
103
+ ` Extra data: ${extraData}`
104
+ ].flat(),
105
+ name: "OffchainLookupError"
106
+ });
107
+ }
108
+ };
109
+ var OffchainLookupResponseMalformedError = class extends BaseError {
110
+ constructor({ result, url }) {
111
+ super("Offchain gateway response is malformed. Response data must be a hex value.", {
112
+ metaMessages: [`Gateway URL: ${getUrl(url)}`, `Response: ${stringify(result)}`],
113
+ name: "OffchainLookupResponseMalformedError"
114
+ });
115
+ }
116
+ };
117
+ var OffchainLookupSenderMismatchError = class extends BaseError {
118
+ constructor({ sender, to }) {
119
+ super("Reverted sender address does not match target contract address (`to`).", {
120
+ metaMessages: [`Contract address: ${to}`, `OffchainLookup sender address: ${sender}`],
121
+ name: "OffchainLookupSenderMismatchError"
122
+ });
123
+ }
124
+ };
125
+ //#endregion
126
+ //#region node_modules/.pnpm/viem@2.47.6_typescript@5.9.3_zod@4.3.6/node_modules/viem/_esm/utils/ccip.js
127
+ const offchainLookupSignature = "0x556f1830";
128
+ const offchainLookupAbiItem = {
129
+ name: "OffchainLookup",
130
+ type: "error",
131
+ inputs: [
132
+ {
133
+ name: "sender",
134
+ type: "address"
135
+ },
136
+ {
137
+ name: "urls",
138
+ type: "string[]"
139
+ },
140
+ {
141
+ name: "callData",
142
+ type: "bytes"
143
+ },
144
+ {
145
+ name: "callbackFunction",
146
+ type: "bytes4"
147
+ },
148
+ {
149
+ name: "extraData",
150
+ type: "bytes"
151
+ }
152
+ ]
153
+ };
154
+ async function offchainLookup(client, { blockNumber, blockTag, data, to }) {
155
+ const { args } = decodeErrorResult({
156
+ data,
157
+ abi: [offchainLookupAbiItem]
158
+ });
159
+ const [sender, urls, callData, callbackSelector, extraData] = args;
160
+ const { ccipRead } = client;
161
+ const ccipRequest_ = ccipRead && typeof ccipRead?.request === "function" ? ccipRead.request : ccipRequest;
162
+ try {
163
+ if (!isAddressEqual(to, sender)) throw new OffchainLookupSenderMismatchError({
164
+ sender,
165
+ to
166
+ });
167
+ const { data: data_ } = await call(client, {
168
+ blockNumber,
169
+ blockTag,
170
+ data: concat([callbackSelector, encodeAbiParameters([{ type: "bytes" }, { type: "bytes" }], [urls.includes("x-batch-gateway:true") ? await localBatchGatewayRequest({
171
+ data: callData,
172
+ ccipRequest: ccipRequest_
173
+ }) : await ccipRequest_({
174
+ data: callData,
175
+ sender,
176
+ urls
177
+ }), extraData])]),
178
+ to
179
+ });
180
+ return data_;
181
+ } catch (err) {
182
+ throw new OffchainLookupError({
183
+ callbackSelector,
184
+ cause: err,
185
+ data,
186
+ extraData,
187
+ sender,
188
+ urls
189
+ });
190
+ }
191
+ }
192
+ async function ccipRequest({ data, sender, urls }) {
193
+ let error = /* @__PURE__ */ new Error("An unknown error occurred.");
194
+ for (let i = 0; i < urls.length; i++) {
195
+ const url = urls[i];
196
+ const method = url.includes("{data}") ? "GET" : "POST";
197
+ const body = method === "POST" ? {
198
+ data,
199
+ sender
200
+ } : void 0;
201
+ const headers = method === "POST" ? { "Content-Type": "application/json" } : {};
202
+ try {
203
+ const response = await fetch(url.replace("{sender}", sender.toLowerCase()).replace("{data}", data), {
204
+ body: JSON.stringify(body),
205
+ headers,
206
+ method
207
+ });
208
+ let result;
209
+ if (response.headers.get("Content-Type")?.startsWith("application/json")) result = (await response.json()).data;
210
+ else result = await response.text();
211
+ if (!response.ok) {
212
+ error = new HttpRequestError({
213
+ body,
214
+ details: result?.error ? stringify(result.error) : response.statusText,
215
+ headers: response.headers,
216
+ status: response.status,
217
+ url
218
+ });
219
+ continue;
220
+ }
221
+ if (!isHex(result)) {
222
+ error = new OffchainLookupResponseMalformedError({
223
+ result,
224
+ url
225
+ });
226
+ continue;
227
+ }
228
+ return result;
229
+ } catch (err) {
230
+ error = new HttpRequestError({
231
+ body,
232
+ details: err.message,
233
+ url
234
+ });
235
+ }
236
+ }
237
+ throw error;
238
+ }
239
+ //#endregion
240
+ export { offchainLookup, offchainLookupSignature };
@@ -0,0 +1,153 @@
1
+ #!/usr/bin/env node
2
+ import { $t as encodeAbiParameters, Dt as HttpRequestError, Ft as getUrl, Gt as stringify, K as isAddressEqual, Kt as decodeErrorResult, Nn as isHex, jn as BaseError, r as call, rn as concat, t as localBatchGatewayRequest } from "./localBatchGatewayRequest-DQkbZaSy.js";
3
+ //#region node_modules/.pnpm/viem@2.47.6_typescript@5.9.3_zod@3.25.76/node_modules/viem/_esm/errors/ccip.js
4
+ var OffchainLookupError = class extends BaseError {
5
+ constructor({ callbackSelector, cause, data, extraData, sender, urls }) {
6
+ super(cause.shortMessage || "An error occurred while fetching for an offchain result.", {
7
+ cause,
8
+ metaMessages: [
9
+ ...cause.metaMessages || [],
10
+ cause.metaMessages?.length ? "" : [],
11
+ "Offchain Gateway Call:",
12
+ urls && [" Gateway URL(s):", ...urls.map((url) => ` ${getUrl(url)}`)],
13
+ ` Sender: ${sender}`,
14
+ ` Data: ${data}`,
15
+ ` Callback selector: ${callbackSelector}`,
16
+ ` Extra data: ${extraData}`
17
+ ].flat(),
18
+ name: "OffchainLookupError"
19
+ });
20
+ }
21
+ };
22
+ var OffchainLookupResponseMalformedError = class extends BaseError {
23
+ constructor({ result, url }) {
24
+ super("Offchain gateway response is malformed. Response data must be a hex value.", {
25
+ metaMessages: [`Gateway URL: ${getUrl(url)}`, `Response: ${stringify(result)}`],
26
+ name: "OffchainLookupResponseMalformedError"
27
+ });
28
+ }
29
+ };
30
+ var OffchainLookupSenderMismatchError = class extends BaseError {
31
+ constructor({ sender, to }) {
32
+ super("Reverted sender address does not match target contract address (`to`).", {
33
+ metaMessages: [`Contract address: ${to}`, `OffchainLookup sender address: ${sender}`],
34
+ name: "OffchainLookupSenderMismatchError"
35
+ });
36
+ }
37
+ };
38
+ //#endregion
39
+ //#region node_modules/.pnpm/viem@2.47.6_typescript@5.9.3_zod@3.25.76/node_modules/viem/_esm/utils/ccip.js
40
+ const offchainLookupSignature = "0x556f1830";
41
+ const offchainLookupAbiItem = {
42
+ name: "OffchainLookup",
43
+ type: "error",
44
+ inputs: [
45
+ {
46
+ name: "sender",
47
+ type: "address"
48
+ },
49
+ {
50
+ name: "urls",
51
+ type: "string[]"
52
+ },
53
+ {
54
+ name: "callData",
55
+ type: "bytes"
56
+ },
57
+ {
58
+ name: "callbackFunction",
59
+ type: "bytes4"
60
+ },
61
+ {
62
+ name: "extraData",
63
+ type: "bytes"
64
+ }
65
+ ]
66
+ };
67
+ async function offchainLookup(client, { blockNumber, blockTag, data, to }) {
68
+ const { args } = decodeErrorResult({
69
+ data,
70
+ abi: [offchainLookupAbiItem]
71
+ });
72
+ const [sender, urls, callData, callbackSelector, extraData] = args;
73
+ const { ccipRead } = client;
74
+ const ccipRequest_ = ccipRead && typeof ccipRead?.request === "function" ? ccipRead.request : ccipRequest;
75
+ try {
76
+ if (!isAddressEqual(to, sender)) throw new OffchainLookupSenderMismatchError({
77
+ sender,
78
+ to
79
+ });
80
+ const { data: data_ } = await call(client, {
81
+ blockNumber,
82
+ blockTag,
83
+ data: concat([callbackSelector, encodeAbiParameters([{ type: "bytes" }, { type: "bytes" }], [urls.includes("x-batch-gateway:true") ? await localBatchGatewayRequest({
84
+ data: callData,
85
+ ccipRequest: ccipRequest_
86
+ }) : await ccipRequest_({
87
+ data: callData,
88
+ sender,
89
+ urls
90
+ }), extraData])]),
91
+ to
92
+ });
93
+ return data_;
94
+ } catch (err) {
95
+ throw new OffchainLookupError({
96
+ callbackSelector,
97
+ cause: err,
98
+ data,
99
+ extraData,
100
+ sender,
101
+ urls
102
+ });
103
+ }
104
+ }
105
+ async function ccipRequest({ data, sender, urls }) {
106
+ let error = /* @__PURE__ */ new Error("An unknown error occurred.");
107
+ for (let i = 0; i < urls.length; i++) {
108
+ const url = urls[i];
109
+ const method = url.includes("{data}") ? "GET" : "POST";
110
+ const body = method === "POST" ? {
111
+ data,
112
+ sender
113
+ } : void 0;
114
+ const headers = method === "POST" ? { "Content-Type": "application/json" } : {};
115
+ try {
116
+ const response = await fetch(url.replace("{sender}", sender.toLowerCase()).replace("{data}", data), {
117
+ body: JSON.stringify(body),
118
+ headers,
119
+ method
120
+ });
121
+ let result;
122
+ if (response.headers.get("Content-Type")?.startsWith("application/json")) result = (await response.json()).data;
123
+ else result = await response.text();
124
+ if (!response.ok) {
125
+ error = new HttpRequestError({
126
+ body,
127
+ details: result?.error ? stringify(result.error) : response.statusText,
128
+ headers: response.headers,
129
+ status: response.status,
130
+ url
131
+ });
132
+ continue;
133
+ }
134
+ if (!isHex(result)) {
135
+ error = new OffchainLookupResponseMalformedError({
136
+ result,
137
+ url
138
+ });
139
+ continue;
140
+ }
141
+ return result;
142
+ } catch (err) {
143
+ error = new HttpRequestError({
144
+ body,
145
+ details: err.message,
146
+ url
147
+ });
148
+ }
149
+ }
150
+ throw error;
151
+ }
152
+ //#endregion
153
+ export { offchainLookup, offchainLookupSignature };
@@ -0,0 +1,152 @@
1
+ import { $t as encodeAbiParameters, Dt as HttpRequestError, Ft as getUrl, Gt as stringify, K as isAddressEqual, Kt as decodeErrorResult, Nn as isHex, jn as BaseError, r as call, rn as concat, t as localBatchGatewayRequest } from "./localBatchGatewayRequest-C-RPJyDO.js";
2
+ //#region node_modules/.pnpm/viem@2.47.6_typescript@5.9.3_zod@3.25.76/node_modules/viem/_esm/errors/ccip.js
3
+ var OffchainLookupError = class extends BaseError {
4
+ constructor({ callbackSelector, cause, data, extraData, sender, urls }) {
5
+ super(cause.shortMessage || "An error occurred while fetching for an offchain result.", {
6
+ cause,
7
+ metaMessages: [
8
+ ...cause.metaMessages || [],
9
+ cause.metaMessages?.length ? "" : [],
10
+ "Offchain Gateway Call:",
11
+ urls && [" Gateway URL(s):", ...urls.map((url) => ` ${getUrl(url)}`)],
12
+ ` Sender: ${sender}`,
13
+ ` Data: ${data}`,
14
+ ` Callback selector: ${callbackSelector}`,
15
+ ` Extra data: ${extraData}`
16
+ ].flat(),
17
+ name: "OffchainLookupError"
18
+ });
19
+ }
20
+ };
21
+ var OffchainLookupResponseMalformedError = class extends BaseError {
22
+ constructor({ result, url }) {
23
+ super("Offchain gateway response is malformed. Response data must be a hex value.", {
24
+ metaMessages: [`Gateway URL: ${getUrl(url)}`, `Response: ${stringify(result)}`],
25
+ name: "OffchainLookupResponseMalformedError"
26
+ });
27
+ }
28
+ };
29
+ var OffchainLookupSenderMismatchError = class extends BaseError {
30
+ constructor({ sender, to }) {
31
+ super("Reverted sender address does not match target contract address (`to`).", {
32
+ metaMessages: [`Contract address: ${to}`, `OffchainLookup sender address: ${sender}`],
33
+ name: "OffchainLookupSenderMismatchError"
34
+ });
35
+ }
36
+ };
37
+ //#endregion
38
+ //#region node_modules/.pnpm/viem@2.47.6_typescript@5.9.3_zod@3.25.76/node_modules/viem/_esm/utils/ccip.js
39
+ const offchainLookupSignature = "0x556f1830";
40
+ const offchainLookupAbiItem = {
41
+ name: "OffchainLookup",
42
+ type: "error",
43
+ inputs: [
44
+ {
45
+ name: "sender",
46
+ type: "address"
47
+ },
48
+ {
49
+ name: "urls",
50
+ type: "string[]"
51
+ },
52
+ {
53
+ name: "callData",
54
+ type: "bytes"
55
+ },
56
+ {
57
+ name: "callbackFunction",
58
+ type: "bytes4"
59
+ },
60
+ {
61
+ name: "extraData",
62
+ type: "bytes"
63
+ }
64
+ ]
65
+ };
66
+ async function offchainLookup(client, { blockNumber, blockTag, data, to }) {
67
+ const { args } = decodeErrorResult({
68
+ data,
69
+ abi: [offchainLookupAbiItem]
70
+ });
71
+ const [sender, urls, callData, callbackSelector, extraData] = args;
72
+ const { ccipRead } = client;
73
+ const ccipRequest_ = ccipRead && typeof ccipRead?.request === "function" ? ccipRead.request : ccipRequest;
74
+ try {
75
+ if (!isAddressEqual(to, sender)) throw new OffchainLookupSenderMismatchError({
76
+ sender,
77
+ to
78
+ });
79
+ const { data: data_ } = await call(client, {
80
+ blockNumber,
81
+ blockTag,
82
+ data: concat([callbackSelector, encodeAbiParameters([{ type: "bytes" }, { type: "bytes" }], [urls.includes("x-batch-gateway:true") ? await localBatchGatewayRequest({
83
+ data: callData,
84
+ ccipRequest: ccipRequest_
85
+ }) : await ccipRequest_({
86
+ data: callData,
87
+ sender,
88
+ urls
89
+ }), extraData])]),
90
+ to
91
+ });
92
+ return data_;
93
+ } catch (err) {
94
+ throw new OffchainLookupError({
95
+ callbackSelector,
96
+ cause: err,
97
+ data,
98
+ extraData,
99
+ sender,
100
+ urls
101
+ });
102
+ }
103
+ }
104
+ async function ccipRequest({ data, sender, urls }) {
105
+ let error = /* @__PURE__ */ new Error("An unknown error occurred.");
106
+ for (let i = 0; i < urls.length; i++) {
107
+ const url = urls[i];
108
+ const method = url.includes("{data}") ? "GET" : "POST";
109
+ const body = method === "POST" ? {
110
+ data,
111
+ sender
112
+ } : void 0;
113
+ const headers = method === "POST" ? { "Content-Type": "application/json" } : {};
114
+ try {
115
+ const response = await fetch(url.replace("{sender}", sender.toLowerCase()).replace("{data}", data), {
116
+ body: JSON.stringify(body),
117
+ headers,
118
+ method
119
+ });
120
+ let result;
121
+ if (response.headers.get("Content-Type")?.startsWith("application/json")) result = (await response.json()).data;
122
+ else result = await response.text();
123
+ if (!response.ok) {
124
+ error = new HttpRequestError({
125
+ body,
126
+ details: result?.error ? stringify(result.error) : response.statusText,
127
+ headers: response.headers,
128
+ status: response.status,
129
+ url
130
+ });
131
+ continue;
132
+ }
133
+ if (!isHex(result)) {
134
+ error = new OffchainLookupResponseMalformedError({
135
+ result,
136
+ url
137
+ });
138
+ continue;
139
+ }
140
+ return result;
141
+ } catch (err) {
142
+ error = new HttpRequestError({
143
+ body,
144
+ details: err.message,
145
+ url
146
+ });
147
+ }
148
+ }
149
+ throw error;
150
+ }
151
+ //#endregion
152
+ export { offchainLookup, offchainLookupSignature };
@@ -0,0 +1,156 @@
1
+ #!/usr/bin/env node
2
+ import { Gt as decodeErrorResult, It as HttpRequestError, Wt as getUrl, n as call } from "./decodeFunctionData-DuFcwhC_.js";
3
+ import { I as encodeAbiParameters, M as stringify, Mt as BaseError, Pt as isHex, U as concat } from "./chain-CafcHffR.js";
4
+ import { t as isAddressEqual } from "./isAddressEqual-DsAqfQOD.js";
5
+ import { t as localBatchGatewayRequest } from "./localBatchGatewayRequest-DOdQ9bR7.js";
6
+ //#region node_modules/.pnpm/viem@2.47.6_typescript@5.9.3_zod@4.3.6/node_modules/viem/_esm/errors/ccip.js
7
+ var OffchainLookupError = class extends BaseError {
8
+ constructor({ callbackSelector, cause, data, extraData, sender, urls }) {
9
+ super(cause.shortMessage || "An error occurred while fetching for an offchain result.", {
10
+ cause,
11
+ metaMessages: [
12
+ ...cause.metaMessages || [],
13
+ cause.metaMessages?.length ? "" : [],
14
+ "Offchain Gateway Call:",
15
+ urls && [" Gateway URL(s):", ...urls.map((url) => ` ${getUrl(url)}`)],
16
+ ` Sender: ${sender}`,
17
+ ` Data: ${data}`,
18
+ ` Callback selector: ${callbackSelector}`,
19
+ ` Extra data: ${extraData}`
20
+ ].flat(),
21
+ name: "OffchainLookupError"
22
+ });
23
+ }
24
+ };
25
+ var OffchainLookupResponseMalformedError = class extends BaseError {
26
+ constructor({ result, url }) {
27
+ super("Offchain gateway response is malformed. Response data must be a hex value.", {
28
+ metaMessages: [`Gateway URL: ${getUrl(url)}`, `Response: ${stringify(result)}`],
29
+ name: "OffchainLookupResponseMalformedError"
30
+ });
31
+ }
32
+ };
33
+ var OffchainLookupSenderMismatchError = class extends BaseError {
34
+ constructor({ sender, to }) {
35
+ super("Reverted sender address does not match target contract address (`to`).", {
36
+ metaMessages: [`Contract address: ${to}`, `OffchainLookup sender address: ${sender}`],
37
+ name: "OffchainLookupSenderMismatchError"
38
+ });
39
+ }
40
+ };
41
+ //#endregion
42
+ //#region node_modules/.pnpm/viem@2.47.6_typescript@5.9.3_zod@4.3.6/node_modules/viem/_esm/utils/ccip.js
43
+ const offchainLookupSignature = "0x556f1830";
44
+ const offchainLookupAbiItem = {
45
+ name: "OffchainLookup",
46
+ type: "error",
47
+ inputs: [
48
+ {
49
+ name: "sender",
50
+ type: "address"
51
+ },
52
+ {
53
+ name: "urls",
54
+ type: "string[]"
55
+ },
56
+ {
57
+ name: "callData",
58
+ type: "bytes"
59
+ },
60
+ {
61
+ name: "callbackFunction",
62
+ type: "bytes4"
63
+ },
64
+ {
65
+ name: "extraData",
66
+ type: "bytes"
67
+ }
68
+ ]
69
+ };
70
+ async function offchainLookup(client, { blockNumber, blockTag, data, to }) {
71
+ const { args } = decodeErrorResult({
72
+ data,
73
+ abi: [offchainLookupAbiItem]
74
+ });
75
+ const [sender, urls, callData, callbackSelector, extraData] = args;
76
+ const { ccipRead } = client;
77
+ const ccipRequest_ = ccipRead && typeof ccipRead?.request === "function" ? ccipRead.request : ccipRequest;
78
+ try {
79
+ if (!isAddressEqual(to, sender)) throw new OffchainLookupSenderMismatchError({
80
+ sender,
81
+ to
82
+ });
83
+ const { data: data_ } = await call(client, {
84
+ blockNumber,
85
+ blockTag,
86
+ data: concat([callbackSelector, encodeAbiParameters([{ type: "bytes" }, { type: "bytes" }], [urls.includes("x-batch-gateway:true") ? await localBatchGatewayRequest({
87
+ data: callData,
88
+ ccipRequest: ccipRequest_
89
+ }) : await ccipRequest_({
90
+ data: callData,
91
+ sender,
92
+ urls
93
+ }), extraData])]),
94
+ to
95
+ });
96
+ return data_;
97
+ } catch (err) {
98
+ throw new OffchainLookupError({
99
+ callbackSelector,
100
+ cause: err,
101
+ data,
102
+ extraData,
103
+ sender,
104
+ urls
105
+ });
106
+ }
107
+ }
108
+ async function ccipRequest({ data, sender, urls }) {
109
+ let error = /* @__PURE__ */ new Error("An unknown error occurred.");
110
+ for (let i = 0; i < urls.length; i++) {
111
+ const url = urls[i];
112
+ const method = url.includes("{data}") ? "GET" : "POST";
113
+ const body = method === "POST" ? {
114
+ data,
115
+ sender
116
+ } : void 0;
117
+ const headers = method === "POST" ? { "Content-Type": "application/json" } : {};
118
+ try {
119
+ const response = await fetch(url.replace("{sender}", sender.toLowerCase()).replace("{data}", data), {
120
+ body: JSON.stringify(body),
121
+ headers,
122
+ method
123
+ });
124
+ let result;
125
+ if (response.headers.get("Content-Type")?.startsWith("application/json")) result = (await response.json()).data;
126
+ else result = await response.text();
127
+ if (!response.ok) {
128
+ error = new HttpRequestError({
129
+ body,
130
+ details: result?.error ? stringify(result.error) : response.statusText,
131
+ headers: response.headers,
132
+ status: response.status,
133
+ url
134
+ });
135
+ continue;
136
+ }
137
+ if (!isHex(result)) {
138
+ error = new OffchainLookupResponseMalformedError({
139
+ result,
140
+ url
141
+ });
142
+ continue;
143
+ }
144
+ return result;
145
+ } catch (err) {
146
+ error = new HttpRequestError({
147
+ body,
148
+ details: err.message,
149
+ url
150
+ });
151
+ }
152
+ }
153
+ throw error;
154
+ }
155
+ //#endregion
156
+ export { offchainLookup, offchainLookupSignature };