@agoric/orchestration 0.1.1-dev-d1bb9cd.0.d1bb9cd → 0.1.1-dev-304c8cb.0.304c8cb

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/orchestration",
3
- "version": "0.1.1-dev-d1bb9cd.0.d1bb9cd",
3
+ "version": "0.1.1-dev-304c8cb.0.304c8cb",
4
4
  "description": "Chain abstraction for Agoric's orchestration clients",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -35,19 +35,19 @@
35
35
  },
36
36
  "homepage": "https://github.com/Agoric/agoric-sdk#readme",
37
37
  "dependencies": {
38
- "@agoric/async-flow": "0.1.1-dev-d1bb9cd.0.d1bb9cd",
39
- "@agoric/cosmic-proto": "0.4.1-dev-d1bb9cd.0.d1bb9cd",
40
- "@agoric/ertp": "0.16.3-dev-d1bb9cd.0.d1bb9cd",
41
- "@agoric/internal": "0.3.3-dev-d1bb9cd.0.d1bb9cd",
42
- "@agoric/network": "0.1.1-dev-d1bb9cd.0.d1bb9cd",
43
- "@agoric/notifier": "0.6.3-dev-d1bb9cd.0.d1bb9cd",
44
- "@agoric/store": "0.9.3-dev-d1bb9cd.0.d1bb9cd",
45
- "@agoric/time": "0.3.3-dev-d1bb9cd.0.d1bb9cd",
46
- "@agoric/vat-data": "0.5.3-dev-d1bb9cd.0.d1bb9cd",
47
- "@agoric/vats": "0.15.2-dev-d1bb9cd.0.d1bb9cd",
48
- "@agoric/vow": "0.1.1-dev-d1bb9cd.0.d1bb9cd",
49
- "@agoric/zoe": "0.26.3-dev-d1bb9cd.0.d1bb9cd",
50
- "@agoric/zone": "0.2.3-dev-d1bb9cd.0.d1bb9cd",
38
+ "@agoric/async-flow": "0.1.1-dev-304c8cb.0.304c8cb",
39
+ "@agoric/cosmic-proto": "0.4.1-dev-304c8cb.0.304c8cb",
40
+ "@agoric/ertp": "0.16.3-dev-304c8cb.0.304c8cb",
41
+ "@agoric/internal": "0.3.3-dev-304c8cb.0.304c8cb",
42
+ "@agoric/network": "0.1.1-dev-304c8cb.0.304c8cb",
43
+ "@agoric/notifier": "0.6.3-dev-304c8cb.0.304c8cb",
44
+ "@agoric/store": "0.9.3-dev-304c8cb.0.304c8cb",
45
+ "@agoric/time": "0.3.3-dev-304c8cb.0.304c8cb",
46
+ "@agoric/vat-data": "0.5.3-dev-304c8cb.0.304c8cb",
47
+ "@agoric/vats": "0.15.2-dev-304c8cb.0.304c8cb",
48
+ "@agoric/vow": "0.1.1-dev-304c8cb.0.304c8cb",
49
+ "@agoric/zoe": "0.26.3-dev-304c8cb.0.304c8cb",
50
+ "@agoric/zone": "0.2.3-dev-304c8cb.0.304c8cb",
51
51
  "@cosmjs/encoding": "^0.36.0",
52
52
  "@endo/base64": "^1.0.12",
53
53
  "@endo/errors": "^1.2.13",
@@ -61,7 +61,7 @@
61
61
  "bs58": "^6.0.0"
62
62
  },
63
63
  "devDependencies": {
64
- "@agoric/swingset-liveslots": "0.10.3-dev-d1bb9cd.0.d1bb9cd",
64
+ "@agoric/swingset-liveslots": "0.10.3-dev-304c8cb.0.304c8cb",
65
65
  "@chain-registry/client": "^1.53.194",
66
66
  "@cosmjs/amino": "^0.36.0",
67
67
  "@cosmjs/proto-signing": "^0.36.0",
@@ -105,5 +105,5 @@
105
105
  "typeCoverage": {
106
106
  "atLeast": 97.65
107
107
  },
108
- "gitHead": "d1bb9cd8ec3f764f64cda4b331c66e37ad179a73"
108
+ "gitHead": "304c8cbe29fa2aa182050d213d7e489b91d126e2"
109
109
  }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @file bundling these functions results in something that
3
+ * depends on node APIs such as stream and crypto (viem/utils
4
+ * includes an http client etc.)
5
+ *
6
+ * So we use tsup to do dead code elimination, aka tree-shaking,
7
+ * while preserving type info.
8
+ */
9
+ export { isAddress, isAddressEqual, getAddress } from 'viem/utils';
@@ -15,4 +15,5 @@ export {
15
15
  serializeTypedData,
16
16
  validateTypedData,
17
17
  } from 'viem/utils';
18
+ export { getTypesForEIP712Domain } from 'viem';
18
19
  export { encodeType } from '../utils/viem-utils/hashTypedData.js';
@@ -13,6 +13,7 @@
13
13
  import type { TypedDataToPrimitiveTypes } from 'abitype';
14
14
  import type { Address, TypedData, TypedDataDefinition } from 'viem';
15
15
  import type { TypedDataParameter } from '../abitype.js';
16
+ export declare const PERMIT2_DOMAIN_NAME = "Permit2";
16
17
  interface WitnessDefinition<T extends TypedData = TypedData, TD extends TypedDataParameter<string, Extract<keyof T, string>> = TypedDataParameter<'witness', Extract<keyof T, string>>> {
17
18
  witnessField: TD;
18
19
  witnessTypes: T;
@@ -68,6 +69,13 @@ export declare const PermitBatchTransferFromTypeParams: [{
68
69
  readonly name: "deadline";
69
70
  readonly type: "uint256";
70
71
  }];
72
+ export declare const TokenPermissionTypeParams: [{
73
+ readonly name: "token";
74
+ readonly type: "address";
75
+ }, {
76
+ readonly name: "amount";
77
+ readonly type: "uint256";
78
+ }];
71
79
  export declare const PermitTransferFromTypes: {
72
80
  readonly EIP712Domain: [{
73
81
  readonly name: "name";
@@ -212,9 +220,10 @@ export type PermitBatchWitnessTransferFrom<T extends Record<string, unknown>, TN
212
220
  };
213
221
  export declare function permit2Domain(permit2Address: Address, chainId: number | bigint): {
214
222
  readonly name: "Permit2";
215
- readonly chainId: number | bigint;
223
+ readonly chainId: bigint;
216
224
  readonly verifyingContract: `0x${string}`;
217
225
  };
226
+ export type Permit2Domain = ReturnType<typeof permit2Domain>;
218
227
  export declare function getPermitWitnessTransferFromData<T extends TypedData, TD extends TypedDataParameter<string, Extract<keyof T, string>> = TypedDataParameter<'witness', Extract<keyof T, string>>>(permit: PermitTransferFrom, permit2Address: Address, chainId: number | bigint, witness: Witness<T, TD>): TypedDataDefinition<ReturnType<typeof permitWitnessTransferFromTypes<T, TD>>, 'PermitWitnessTransferFrom', 'PermitWitnessTransferFrom'>;
219
228
  export declare function getPermitBatchWitnessTransferFromData<T extends TypedData, TD extends TypedDataParameter<string, Extract<keyof T, string>> = TypedDataParameter<'witness', Extract<keyof T, string>>>(permit: PermitBatchTransferFrom, permit2Address: Address, chainId: number | bigint, witness: Witness<T, TD>): TypedDataDefinition<ReturnType<typeof permitBatchWitnessTransferFromTypes<T, TD>>, 'PermitBatchWitnessTransferFrom', 'PermitBatchWitnessTransferFrom'>;
220
229
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"signatureTransfer.d.ts","sourceRoot":"","sources":["signatureTransfer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signatureTransfer.d.ts","sourceRoot":"","sources":["signatureTransfer.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- const PERMIT2_DOMAIN_NAME = 'Permit2';
23
+ export const PERMIT2_DOMAIN_NAME = 'Permit2';
24
24
 
25
25
  // TODO: disallow witness type field being another Permit field name
26
26
  ;
@@ -99,7 +99,7 @@ export const PermitBatchTransferFromTypeParams = [
99
99
  { name: 'deadline', type: 'uint256' },
100
100
  ] ;
101
101
 
102
- const TokenPermissionTypeParams = [
102
+ export const TokenPermissionTypeParams = [
103
103
  { name: 'token', type: 'address' },
104
104
  { name: 'amount', type: 'uint256' },
105
105
  ] ;
@@ -186,10 +186,11 @@ export function permit2Domain(
186
186
  ) {
187
187
  return {
188
188
  name: PERMIT2_DOMAIN_NAME,
189
- chainId,
189
+ chainId: BigInt(chainId),
190
190
  verifyingContract: permit2Address,
191
191
  } ;
192
192
  }
193
+ ;
193
194
 
194
195
  // XXX: restore permit to be either PermitTransferFrom or PermitBatchTransferFrom
195
196
  // and remove duplication between the two functions below
@@ -3,11 +3,12 @@
3
3
  * `permitWitnessTransferFrom`.
4
4
  * @see {@link https://docs.uniswap.org/contracts/permit2/reference/signature-transfer}
5
5
  *
6
- * This is original code that was adapted for permit2-sdk, unlike @see ./permit2SignatureTransfer.ts
6
+ * This is original code that was adapted for permit2-sdk, unlike {@link ./permit2SignatureTransfer.ts}
7
7
  */
8
- import type { AbiParameterToPrimitiveType, TypedData } from 'abitype';
8
+ import type { AbiParameterToPrimitiveType, Address, TypedData, TypedDataDomain } from 'abitype';
9
9
  import type { TypedDataParameter } from '../abitype.js';
10
10
  import type { encodeType } from '../viem-utils/hashTypedData.js';
11
+ import { type Permit2Domain, TokenPermissionTypeParams } from './signatureTransfer.js';
11
12
  declare const PrimaryTypes: import("@agoric/internal/src/keyMirror.js").KeyMirrorResult<{
12
13
  PermitBatchWitnessTransferFrom: null;
13
14
  PermitWitnessTransferFrom: null;
@@ -49,6 +50,16 @@ declare const permit2BaseTypeParams: {
49
50
  export declare const makeWitnessTypeStringExtractor: (powers: {
50
51
  encodeType: typeof encodeType;
51
52
  }) => (types: TypedData) => string;
53
+ /**
54
+ * Validate that the TokenPermissions subtype is as expected for a
55
+ * `permitWitnessTransferFrom` call.
56
+ *
57
+ * @param types the types of the permit2 message
58
+ */
59
+ export declare const validateTokenPermissionsType: ({ TokenPermissions, }: {
60
+ TokenPermissions: typeof TokenPermissionTypeParams;
61
+ }) => void;
62
+ export declare function validatePermit2Domain(domain: TypedDataDomain, permit2Addresses?: Partial<Record<number | string, Address>>): asserts domain is Permit2Domain;
52
63
  /**
53
64
  * Confirm that the input is a EIP-712 `types` record with a single struct
54
65
  * definition for the first argument to a `permitWitnessTransferFrom` call
@@ -1 +1 @@
1
- {"version":3,"file":"signatureTransferHelpers.d.ts","sourceRoot":"","sources":["signatureTransferHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signatureTransferHelpers.d.ts","sourceRoot":"","sources":["signatureTransferHelpers.ts"],"names":[],"mappings":"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"}
@@ -3,25 +3,31 @@
3
3
  * `permitWitnessTransferFrom`.
4
4
  * @see {@link https://docs.uniswap.org/contracts/permit2/reference/signature-transfer}
5
5
  *
6
- * This is original code that was adapted for permit2-sdk, unlike @see ./permit2SignatureTransfer.ts
6
+ * This is original code that was adapted for permit2-sdk, unlike {@link ./permit2SignatureTransfer.ts}
7
7
  */
8
8
 
9
9
 
10
10
 
11
11
 
12
12
 
13
+
13
14
 
15
+
14
16
 
15
17
  import { keyMirror } from '@agoric/internal/src/keyMirror.js';
16
18
  import { objectMapMutable } from '@agoric/internal/src/js-utils.js';
17
19
  ;
18
20
  ;
19
21
  import {
22
+ PERMIT2_DOMAIN_NAME,
23
+
20
24
  PermitBatchTransferFromTypeParams,
21
25
  permitBatchWitnessTransferFromTypes,
22
26
  PermitTransferFromTypeParams,
23
27
  permitWitnessTransferFromTypes,
28
+ TokenPermissionTypeParams,
24
29
  } from './signatureTransfer.js';
30
+ import { sameEvmAddress } from '../address.js';
25
31
 
26
32
  const PrimaryTypes = keyMirror({
27
33
  PermitBatchWitnessTransferFrom: null,
@@ -112,6 +118,61 @@ export const makeWitnessTypeStringExtractor = (powers
112
118
 
113
119
 
114
120
 
121
+ /**
122
+ * Validate that the TokenPermissions subtype is as expected for a
123
+ * `permitWitnessTransferFrom` call.
124
+ *
125
+ * @param types the types of the permit2 message
126
+ */
127
+ export const validateTokenPermissionsType = ({
128
+ TokenPermissions,
129
+ }
130
+
131
+ ) => {
132
+ for (const [i, { name, type }] of TokenPermissionTypeParams.entries()) {
133
+ if (
134
+ TokenPermissions[i].name !== name ||
135
+ TokenPermissions[i].type !== type
136
+ ) {
137
+ throw new Error(
138
+ `TokenPermissions field at index ${i} must be \`${type} ${name}\``,
139
+ );
140
+ }
141
+ }
142
+ };
143
+
144
+ export function validatePermit2Domain(
145
+ domain ,
146
+ permit2Addresses ,
147
+ ) {
148
+ if (!domain) {
149
+ throw new Error(`Missing domain in permit2 data`);
150
+ }
151
+
152
+ const { chainId, verifyingContract, name } = domain;
153
+ if (name !== PERMIT2_DOMAIN_NAME) {
154
+ throw new Error(`Invalid permit2 domain name: ${name}`);
155
+ }
156
+ if (typeof chainId !== 'bigint' || !verifyingContract) {
157
+ throw new Error(
158
+ `Permit2 domain must include chainId and verifyingContract`,
159
+ );
160
+ }
161
+
162
+ if (permit2Addresses) {
163
+ const chainIdStr = String(chainId);
164
+
165
+ const expectedAddress = permit2Addresses[chainIdStr];
166
+ if (!sameEvmAddress(verifyingContract, expectedAddress)) {
167
+ throw new Error(
168
+ `Invalid verifying contract for chain ID ${chainId}: ${verifyingContract} (expected ${expectedAddress})`,
169
+ );
170
+ }
171
+ }
172
+
173
+ // XXX: check no extra fields?
174
+ }
175
+
115
176
  /**
116
177
  * Confirm that the input is a EIP-712 `types` record with a single struct
117
178
  * definition for the first argument to a `permitWitnessTransferFrom` call
@@ -1008,6 +1008,7 @@ var require_base64_js = __commonJS({
1008
1008
  // ../../node_modules/ieee754/index.js
1009
1009
  var require_ieee754 = __commonJS({
1010
1010
  "../../node_modules/ieee754/index.js"(exports) {
1011
+ "use strict";
1011
1012
  exports.read = function(buffer, offset, isLE, mLen, nBytes) {
1012
1013
  var e, m;
1013
1014
  var eLen = nBytes * 8 - mLen - 1;
@@ -5583,9 +5584,11 @@ var require_websocket_server = __commonJS({
5583
5584
  abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
5584
5585
  return;
5585
5586
  }
5586
- if (version !== 8 && version !== 13) {
5587
+ if (version !== 13 && version !== 8) {
5587
5588
  const message = "Missing or invalid Sec-WebSocket-Version header";
5588
- abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
5589
+ abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, {
5590
+ "Sec-WebSocket-Version": "13, 8"
5591
+ });
5589
5592
  return;
5590
5593
  }
5591
5594
  if (!this.shouldHandle(req)) {
@@ -5744,13 +5747,13 @@ var require_websocket_server = __commonJS({
5744
5747
  ` + Object.keys(headers).map((h) => `${h}: ${headers[h]}`).join("\r\n") + "\r\n\r\n" + message
5745
5748
  );
5746
5749
  }
5747
- function abortHandshakeOrEmitwsClientError(server, req, socket, code, message) {
5750
+ function abortHandshakeOrEmitwsClientError(server, req, socket, code, message, headers) {
5748
5751
  if (server.listenerCount("wsClientError")) {
5749
5752
  const err = new Error(message);
5750
5753
  Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError);
5751
5754
  server.emit("wsClientError", err, socket, req);
5752
5755
  } else {
5753
- abortHandshake(socket, code, message);
5756
+ abortHandshake(socket, code, message, headers);
5754
5757
  }
5755
5758
  }
5756
5759
  }
@@ -3,7 +3,7 @@ import {
3
3
  offchainLookup,
4
4
  offchainLookupAbiItem,
5
5
  offchainLookupSignature
6
- } from "./chunk-GCI53Z2G.js";
6
+ } from "./chunk-25QYMKH4.js";
7
7
  import "./chunk-4VNS5WPM.js";
8
8
  export {
9
9
  ccipRequest,
@@ -1,5 +1,5 @@
1
1
  // ../../node_modules/abitype/dist/esm/version.js
2
- var version = "1.0.8";
2
+ var version = "1.1.0";
3
3
 
4
4
  // ../../node_modules/abitype/dist/esm/errors.js
5
5
  var BaseError = class _BaseError extends Error {
@@ -530,7 +530,7 @@ function parseFallbackSignature(signature) {
530
530
  stateMutability: match.stateMutability ?? "nonpayable"
531
531
  };
532
532
  }
533
- var abiParameterWithoutTupleRegex = /^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/;
533
+ var abiParameterWithoutTupleRegex = /^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/;
534
534
  var abiParameterWithTupleRegex = /^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/;
535
535
  var dynamicIntegerRegex = /^u?int$/;
536
536
  function parseAbiParameter(param, options) {
@@ -562,6 +562,8 @@ function parseAbiParameter(param, options) {
562
562
  components = { components: structs[match.type] };
563
563
  } else if (dynamicIntegerRegex.test(match.type)) {
564
564
  type = `${match.type}256`;
565
+ } else if (match.type === "address payable") {
566
+ type = "address";
565
567
  } else {
566
568
  type = match.type;
567
569
  if (!(options?.type === "struct") && !isSolidityType(type))
@@ -972,6 +974,19 @@ var multicall3Abi = [
972
974
  ],
973
975
  stateMutability: "view",
974
976
  type: "function"
977
+ },
978
+ {
979
+ inputs: [],
980
+ name: "getCurrentBlockTimestamp",
981
+ outputs: [
982
+ {
983
+ internalType: "uint256",
984
+ name: "timestamp",
985
+ type: "uint256"
986
+ }
987
+ ],
988
+ stateMutability: "view",
989
+ type: "function"
975
990
  }
976
991
  ];
977
992
  var batchGatewayAbi = [
@@ -1027,24 +1042,53 @@ var batchGatewayAbi = [
1027
1042
  ];
1028
1043
  var universalResolverErrors = [
1029
1044
  {
1030
- inputs: [],
1031
- name: "ResolverNotFound",
1045
+ inputs: [
1046
+ {
1047
+ name: "dns",
1048
+ type: "bytes"
1049
+ }
1050
+ ],
1051
+ name: "DNSDecodingFailed",
1052
+ type: "error"
1053
+ },
1054
+ {
1055
+ inputs: [
1056
+ {
1057
+ name: "ens",
1058
+ type: "string"
1059
+ }
1060
+ ],
1061
+ name: "DNSEncodingFailed",
1032
1062
  type: "error"
1033
1063
  },
1034
1064
  {
1035
1065
  inputs: [],
1036
- name: "ResolverWildcardNotSupported",
1066
+ name: "EmptyAddress",
1067
+ type: "error"
1068
+ },
1069
+ {
1070
+ inputs: [
1071
+ {
1072
+ name: "status",
1073
+ type: "uint16"
1074
+ },
1075
+ {
1076
+ name: "message",
1077
+ type: "string"
1078
+ }
1079
+ ],
1080
+ name: "HttpError",
1037
1081
  type: "error"
1038
1082
  },
1039
1083
  {
1040
1084
  inputs: [],
1041
- name: "ResolverNotContract",
1085
+ name: "InvalidBatchGatewayResponse",
1042
1086
  type: "error"
1043
1087
  },
1044
1088
  {
1045
1089
  inputs: [
1046
1090
  {
1047
- name: "returnData",
1091
+ name: "errorData",
1048
1092
  type: "bytes"
1049
1093
  }
1050
1094
  ],
@@ -1054,41 +1098,57 @@ var universalResolverErrors = [
1054
1098
  {
1055
1099
  inputs: [
1056
1100
  {
1057
- components: [
1058
- {
1059
- name: "status",
1060
- type: "uint16"
1061
- },
1062
- {
1063
- name: "message",
1064
- type: "string"
1065
- }
1066
- ],
1067
- name: "errors",
1068
- type: "tuple[]"
1101
+ name: "name",
1102
+ type: "bytes"
1103
+ },
1104
+ {
1105
+ name: "resolver",
1106
+ type: "address"
1069
1107
  }
1070
1108
  ],
1071
- name: "HttpError",
1109
+ name: "ResolverNotContract",
1072
1110
  type: "error"
1073
- }
1074
- ];
1075
- var universalResolverResolveAbi = [
1076
- ...universalResolverErrors,
1111
+ },
1077
1112
  {
1078
- name: "resolve",
1079
- type: "function",
1080
- stateMutability: "view",
1081
1113
  inputs: [
1082
- { name: "name", type: "bytes" },
1083
- { name: "data", type: "bytes" }
1114
+ {
1115
+ name: "name",
1116
+ type: "bytes"
1117
+ }
1084
1118
  ],
1085
- outputs: [
1086
- { name: "", type: "bytes" },
1087
- { name: "address", type: "address" }
1088
- ]
1119
+ name: "ResolverNotFound",
1120
+ type: "error"
1121
+ },
1122
+ {
1123
+ inputs: [
1124
+ {
1125
+ name: "primary",
1126
+ type: "string"
1127
+ },
1128
+ {
1129
+ name: "primaryAddress",
1130
+ type: "bytes"
1131
+ }
1132
+ ],
1133
+ name: "ReverseAddressMismatch",
1134
+ type: "error"
1089
1135
  },
1090
1136
  {
1091
- name: "resolve",
1137
+ inputs: [
1138
+ {
1139
+ internalType: "bytes4",
1140
+ name: "selector",
1141
+ type: "bytes4"
1142
+ }
1143
+ ],
1144
+ name: "UnsupportedResolverProfile",
1145
+ type: "error"
1146
+ }
1147
+ ];
1148
+ var universalResolverResolveAbi = [
1149
+ ...universalResolverErrors,
1150
+ {
1151
+ name: "resolveWithGateways",
1092
1152
  type: "function",
1093
1153
  stateMutability: "view",
1094
1154
  inputs: [
@@ -1105,30 +1165,18 @@ var universalResolverResolveAbi = [
1105
1165
  var universalResolverReverseAbi = [
1106
1166
  ...universalResolverErrors,
1107
1167
  {
1108
- name: "reverse",
1109
- type: "function",
1110
- stateMutability: "view",
1111
- inputs: [{ type: "bytes", name: "reverseName" }],
1112
- outputs: [
1113
- { type: "string", name: "resolvedName" },
1114
- { type: "address", name: "resolvedAddress" },
1115
- { type: "address", name: "reverseResolver" },
1116
- { type: "address", name: "resolver" }
1117
- ]
1118
- },
1119
- {
1120
- name: "reverse",
1168
+ name: "reverseWithGateways",
1121
1169
  type: "function",
1122
1170
  stateMutability: "view",
1123
1171
  inputs: [
1124
1172
  { type: "bytes", name: "reverseName" },
1173
+ { type: "uint256", name: "coinType" },
1125
1174
  { type: "string[]", name: "gateways" }
1126
1175
  ],
1127
1176
  outputs: [
1128
1177
  { type: "string", name: "resolvedName" },
1129
- { type: "address", name: "resolvedAddress" },
1130
- { type: "address", name: "reverseResolver" },
1131
- { type: "address", name: "resolver" }
1178
+ { type: "address", name: "resolver" },
1179
+ { type: "address", name: "reverseResolver" }
1132
1180
  ]
1133
1181
  }
1134
1182
  ];
@@ -1139,9 +1187,10 @@ var aggregate3Signature = "0x82ad56cb";
1139
1187
  // ../../node_modules/viem/_esm/constants/contracts.js
1140
1188
  var deploylessCallViaBytecodeBytecode = "0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe";
1141
1189
  var deploylessCallViaFactoryBytecode = "0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe";
1190
+ var multicall3Bytecode = "0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033";
1142
1191
 
1143
1192
  // ../../node_modules/viem/_esm/errors/version.js
1144
- var version3 = "2.31.0";
1193
+ var version3 = "2.41.2";
1145
1194
 
1146
1195
  // ../../node_modules/viem/_esm/errors/base.js
1147
1196
  var errorConfig = {
@@ -2369,9 +2418,9 @@ function encodeBytes(value, { param }) {
2369
2418
  encoded: concat([padHex(numberToHex(bytesSize, { size: 32 })), value_])
2370
2419
  };
2371
2420
  }
2372
- if (bytesSize !== Number.parseInt(paramSize))
2421
+ if (bytesSize !== Number.parseInt(paramSize, 10))
2373
2422
  throw new AbiEncodingBytesSizeMismatchError({
2374
- expectedSize: Number.parseInt(paramSize),
2423
+ expectedSize: Number.parseInt(paramSize, 10),
2375
2424
  value
2376
2425
  });
2377
2426
  return { dynamic: false, encoded: padHex(value, { dir: "right" }) };
@@ -2562,12 +2611,12 @@ function decodeBytes(cursor, param, { staticPosition }) {
2562
2611
  cursor.setPosition(staticPosition + 32);
2563
2612
  return [bytesToHex(data), 32];
2564
2613
  }
2565
- const value = bytesToHex(cursor.readBytes(Number.parseInt(size3), 32));
2614
+ const value = bytesToHex(cursor.readBytes(Number.parseInt(size3, 10), 32));
2566
2615
  return [value, 32];
2567
2616
  }
2568
2617
  function decodeNumber(cursor, param) {
2569
2618
  const signed = param.type.startsWith("int");
2570
- const size3 = Number.parseInt(param.type.split("int")[1] || "256");
2619
+ const size3 = Number.parseInt(param.type.split("int")[1] || "256", 10);
2571
2620
  const value = cursor.readBytes(32);
2572
2621
  return [
2573
2622
  size3 > 48 ? bytesToBigInt(value, { signed }) : bytesToNumber(value, { signed }),
@@ -2679,7 +2728,7 @@ function getAbiItem(parameters) {
2679
2728
  return void 0;
2680
2729
  if (abiItems.length === 1)
2681
2730
  return abiItems[0];
2682
- let matchedAbiItem = void 0;
2731
+ let matchedAbiItem;
2683
2732
  for (const abiItem of abiItems) {
2684
2733
  if (!("inputs" in abiItem))
2685
2734
  continue;
@@ -2864,14 +2913,6 @@ function prettyPrint(args) {
2864
2913
  const maxLength = entries.reduce((acc, [key]) => Math.max(acc, key.length), 0);
2865
2914
  return entries.map(([key, value]) => ` ${`${key}:`.padEnd(maxLength + 1)} ${value}`).join("\n");
2866
2915
  }
2867
- var FeeConflictError = class extends BaseError3 {
2868
- constructor() {
2869
- super([
2870
- "Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.",
2871
- "Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others."
2872
- ].join("\n"), { name: "FeeConflictError" });
2873
- }
2874
- };
2875
2916
 
2876
2917
  // ../../node_modules/viem/_esm/errors/utils.js
2877
2918
  var getUrl = (url) => url;
@@ -3355,7 +3396,7 @@ var rpcTransactionType = {
3355
3396
  eip4844: "0x3",
3356
3397
  eip7702: "0x4"
3357
3398
  };
3358
- function formatTransactionRequest(request) {
3399
+ function formatTransactionRequest(request, _) {
3359
3400
  const rpcRequest = {};
3360
3401
  if (typeof request.authorizationList !== "undefined")
3361
3402
  rpcRequest.authorizationList = formatAuthorizationList(request.authorizationList);
@@ -3371,6 +3412,8 @@ function formatTransactionRequest(request) {
3371
3412
  }
3372
3413
  if (typeof request.data !== "undefined")
3373
3414
  rpcRequest.data = request.data;
3415
+ if (request.account)
3416
+ rpcRequest.from = request.account.address;
3374
3417
  if (typeof request.from !== "undefined")
3375
3418
  rpcRequest.from = request.from;
3376
3419
  if (typeof request.gas !== "undefined")
@@ -3615,14 +3658,12 @@ var maxUint256 = 2n ** 256n - 1n;
3615
3658
 
3616
3659
  // ../../node_modules/viem/_esm/utils/transaction/assertRequest.js
3617
3660
  function assertRequest(args) {
3618
- const { account: account_, gasPrice, maxFeePerGas, maxPriorityFeePerGas, to } = args;
3661
+ const { account: account_, maxFeePerGas, maxPriorityFeePerGas, to } = args;
3619
3662
  const account = account_ ? parseAccount(account_) : void 0;
3620
3663
  if (account && !isAddress(account.address))
3621
3664
  throw new InvalidAddressError({ address: account.address });
3622
3665
  if (to && !isAddress(to))
3623
3666
  throw new InvalidAddressError({ address: to });
3624
- if (typeof gasPrice !== "undefined" && (typeof maxFeePerGas !== "undefined" || typeof maxPriorityFeePerGas !== "undefined"))
3625
- throw new FeeConflictError();
3626
3667
  if (maxFeePerGas && maxFeePerGas > maxUint256)
3627
3668
  throw new FeeCapTooHighError({ maxFeePerGas });
3628
3669
  if (maxPriorityFeePerGas && maxFeePerGas && maxPriorityFeePerGas > maxFeePerGas)
@@ -3631,7 +3672,7 @@ function assertRequest(args) {
3631
3672
 
3632
3673
  // ../../node_modules/viem/_esm/actions/public/call.js
3633
3674
  async function call(client, args) {
3634
- const { account: account_ = client.account, authorizationList, batch = Boolean(client.batch?.multicall), blockNumber, blockTag = "latest", accessList, blobs, blockOverrides, code, data: data_, factory, factoryData, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, stateOverride, ...rest } = args;
3675
+ const { account: account_ = client.account, authorizationList, batch = Boolean(client.batch?.multicall), blockNumber, blockTag = client.experimental_blockTag ?? "latest", accessList, blobs, blockOverrides, code, data: data_, factory, factoryData, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, stateOverride, ...rest } = args;
3635
3676
  const account = account_ ? parseAccount(account_) : void 0;
3636
3677
  if (code && (factory || factoryData))
3637
3678
  throw new BaseError3("Cannot provide both `code` & `factory`/`factoryData` as parameters.");
@@ -3666,8 +3707,8 @@ async function call(client, args) {
3666
3707
  const request = format({
3667
3708
  // Pick out extra data that might exist on the chain's transaction request type.
3668
3709
  ...extract(rest, { format: chainFormat }),
3669
- from: account?.address,
3670
3710
  accessList,
3711
+ account,
3671
3712
  authorizationList,
3672
3713
  blobs,
3673
3714
  data,
@@ -3679,7 +3720,7 @@ async function call(client, args) {
3679
3720
  nonce,
3680
3721
  to: deploylessCall ? void 0 : to,
3681
3722
  value
3682
- });
3723
+ }, "call");
3683
3724
  if (batch && shouldPerformMulticall({ request }) && !rpcStateOverride && !rpcBlockOverrides) {
3684
3725
  try {
3685
3726
  return await scheduleMulticall(client, {
@@ -3714,7 +3755,7 @@ async function call(client, args) {
3714
3755
  return { data: response };
3715
3756
  } catch (err) {
3716
3757
  const data2 = getRevertErrorData(err);
3717
- const { offchainLookup: offchainLookup2, offchainLookupSignature: offchainLookupSignature2 } = await import("./ccip-34BSSMV5.js");
3758
+ const { offchainLookup: offchainLookup2, offchainLookupSignature: offchainLookupSignature2 } = await import("./ccip-OD5ST5U4.js");
3718
3759
  if (client.ccipRead !== false && data2?.slice(0, 10) === offchainLookupSignature2 && to)
3719
3760
  return { data: await offchainLookup2(client, { data: data2, to }) };
3720
3761
  if (deploylessCall && data2?.slice(0, 10) === "0x101bb98d")
@@ -3739,18 +3780,22 @@ function shouldPerformMulticall({ request }) {
3739
3780
  return true;
3740
3781
  }
3741
3782
  async function scheduleMulticall(client, args) {
3742
- const { batchSize = 1024, wait = 0 } = typeof client.batch?.multicall === "object" ? client.batch.multicall : {};
3743
- const { blockNumber, blockTag = "latest", data, multicallAddress: multicallAddress_, to } = args;
3744
- let multicallAddress = multicallAddress_;
3745
- if (!multicallAddress) {
3746
- if (!client.chain)
3747
- throw new ClientChainNotConfiguredError();
3748
- multicallAddress = getChainContractAddress({
3749
- blockNumber,
3750
- chain: client.chain,
3751
- contract: "multicall3"
3752
- });
3753
- }
3783
+ const { batchSize = 1024, deployless = false, wait = 0 } = typeof client.batch?.multicall === "object" ? client.batch.multicall : {};
3784
+ const { blockNumber, blockTag = client.experimental_blockTag ?? "latest", data, to } = args;
3785
+ const multicallAddress = (() => {
3786
+ if (deployless)
3787
+ return null;
3788
+ if (args.multicallAddress)
3789
+ return args.multicallAddress;
3790
+ if (client.chain) {
3791
+ return getChainContractAddress({
3792
+ blockNumber,
3793
+ chain: client.chain,
3794
+ contract: "multicall3"
3795
+ });
3796
+ }
3797
+ throw new ClientChainNotConfiguredError();
3798
+ })();
3754
3799
  const blockNumberHex = typeof blockNumber === "bigint" ? numberToHex(blockNumber) : void 0;
3755
3800
  const block = blockNumberHex || blockTag;
3756
3801
  const { schedule } = createBatchScheduler({
@@ -3775,8 +3820,12 @@ async function scheduleMulticall(client, args) {
3775
3820
  method: "eth_call",
3776
3821
  params: [
3777
3822
  {
3778
- data: calldata,
3779
- to: multicallAddress
3823
+ ...multicallAddress === null ? {
3824
+ data: toDeploylessCallViaBytecodeData({
3825
+ code: multicall3Bytecode,
3826
+ data: calldata
3827
+ })
3828
+ } : { to: multicallAddress, data: calldata }
3780
3829
  },
3781
3830
  block
3782
3831
  ]
@@ -3948,7 +3997,7 @@ async function localBatchGatewayRequest(parameters) {
3948
3997
  const responses = [];
3949
3998
  await Promise.all(queries.map(async (query, i) => {
3950
3999
  try {
3951
- responses[i] = await ccipRequest2(query);
4000
+ responses[i] = query.urls.includes(localBatchGatewayUrl) ? await localBatchGatewayRequest({ data: query.data, ccipRequest: ccipRequest2 }) : await ccipRequest2(query);
3952
4001
  failures[i] = false;
3953
4002
  } catch (err) {
3954
4003
  failures[i] = true;
@@ -4089,25 +4138,25 @@ async function ccipRequest({ data, sender, urls }) {
4089
4138
 
4090
4139
  export {
4091
4140
  BaseError3 as BaseError,
4092
- stringify,
4141
+ InvalidAddressError,
4093
4142
  isHex,
4094
4143
  size2 as size,
4095
4144
  hexToBigInt,
4096
4145
  hexToNumber,
4097
4146
  toHex,
4098
4147
  numberToHex,
4099
- BytesSizeMismatchError,
4100
4148
  keccak256,
4101
- InvalidAddressError,
4102
4149
  isAddress,
4103
4150
  checksumAddress,
4104
4151
  getAddress,
4152
+ BytesSizeMismatchError,
4105
4153
  concat,
4106
4154
  bytesRegex2 as bytesRegex,
4107
4155
  integerRegex2 as integerRegex,
4108
4156
  encodeAbiParameters,
4109
4157
  decodeAbiParameters,
4110
4158
  encodeFunctionData,
4159
+ stringify,
4111
4160
  isAddressEqual,
4112
4161
  offchainLookupSignature,
4113
4162
  offchainLookupAbiItem,
@@ -18,7 +18,7 @@ import {
18
18
  size,
19
19
  stringify,
20
20
  toHex
21
- } from "./chunk-GCI53Z2G.js";
21
+ } from "./chunk-25QYMKH4.js";
22
22
 
23
23
  // ../../node_modules/viem/_esm/errors/typedData.js
24
24
  var InvalidDomainError = class extends BaseError {
@@ -45,96 +45,6 @@ var InvalidStructTypeError = class extends BaseError {
45
45
  }
46
46
  };
47
47
 
48
- // ../../node_modules/viem/_esm/utils/typedData.js
49
- function serializeTypedData(parameters) {
50
- const { domain: domain_, message: message_, primaryType, types } = parameters;
51
- const normalizeData = (struct, data_) => {
52
- const data = { ...data_ };
53
- for (const param of struct) {
54
- const { name, type } = param;
55
- if (type === "address")
56
- data[name] = data[name].toLowerCase();
57
- }
58
- return data;
59
- };
60
- const domain = (() => {
61
- if (!types.EIP712Domain)
62
- return {};
63
- if (!domain_)
64
- return {};
65
- return normalizeData(types.EIP712Domain, domain_);
66
- })();
67
- const message = (() => {
68
- if (primaryType === "EIP712Domain")
69
- return void 0;
70
- return normalizeData(types[primaryType], message_);
71
- })();
72
- return stringify({ domain, message, primaryType, types });
73
- }
74
- function validateTypedData(parameters) {
75
- const { domain, message, primaryType, types } = parameters;
76
- const validateData = (struct, data) => {
77
- for (const param of struct) {
78
- const { name, type } = param;
79
- const value = data[name];
80
- const integerMatch = type.match(integerRegex);
81
- if (integerMatch && (typeof value === "number" || typeof value === "bigint")) {
82
- const [_type, base, size_] = integerMatch;
83
- numberToHex(value, {
84
- signed: base === "int",
85
- size: Number.parseInt(size_) / 8
86
- });
87
- }
88
- if (type === "address" && typeof value === "string" && !isAddress(value))
89
- throw new InvalidAddressError({ address: value });
90
- const bytesMatch = type.match(bytesRegex);
91
- if (bytesMatch) {
92
- const [_type, size_] = bytesMatch;
93
- if (size_ && size(value) !== Number.parseInt(size_))
94
- throw new BytesSizeMismatchError({
95
- expectedSize: Number.parseInt(size_),
96
- givenSize: size(value)
97
- });
98
- }
99
- const struct2 = types[type];
100
- if (struct2) {
101
- validateReference(type);
102
- validateData(struct2, value);
103
- }
104
- }
105
- };
106
- if (types.EIP712Domain && domain) {
107
- if (typeof domain !== "object")
108
- throw new InvalidDomainError({ domain });
109
- validateData(types.EIP712Domain, domain);
110
- }
111
- if (primaryType !== "EIP712Domain") {
112
- if (types[primaryType])
113
- validateData(types[primaryType], message);
114
- else
115
- throw new InvalidPrimaryTypeError({ primaryType, types });
116
- }
117
- }
118
- function getTypesForEIP712Domain({ domain }) {
119
- return [
120
- typeof domain?.name === "string" && { name: "name", type: "string" },
121
- domain?.version && { name: "version", type: "string" },
122
- (typeof domain?.chainId === "number" || typeof domain?.chainId === "bigint") && {
123
- name: "chainId",
124
- type: "uint256"
125
- },
126
- domain?.verifyingContract && {
127
- name: "verifyingContract",
128
- type: "address"
129
- },
130
- domain?.salt && { name: "salt", type: "bytes32" }
131
- ].filter(Boolean);
132
- }
133
- function validateReference(type) {
134
- if (type === "address" || type === "bool" || type === "string" || type.startsWith("bytes") || type.startsWith("uint") || type.startsWith("int"))
135
- throw new InvalidStructTypeError({ type });
136
- }
137
-
138
48
  // ../../node_modules/viem/_esm/utils/signature/hashTypedData.js
139
49
  function hashTypedData(parameters) {
140
50
  const { domain = {}, message, primaryType } = parameters;
@@ -225,11 +135,8 @@ function encodeField({ types, name, type, value }) {
225
135
  keccak256(encodeData({ data: value, primaryType: type, types }))
226
136
  ];
227
137
  }
228
- if (type === "bytes") {
229
- const prepend = value.length % 2 ? "0" : "";
230
- value = `0x${prepend + value.slice(2)}`;
138
+ if (type === "bytes")
231
139
  return [{ type: "bytes32" }, keccak256(value)];
232
- }
233
140
  if (type === "string")
234
141
  return [{ type: "bytes32" }, keccak256(toHex(value))];
235
142
  if (type.lastIndexOf("]") === type.length - 1) {
@@ -248,6 +155,96 @@ function encodeField({ types, name, type, value }) {
248
155
  return [{ type }, value];
249
156
  }
250
157
 
158
+ // ../../node_modules/viem/_esm/utils/typedData.js
159
+ function serializeTypedData(parameters) {
160
+ const { domain: domain_, message: message_, primaryType, types } = parameters;
161
+ const normalizeData = (struct, data_) => {
162
+ const data = { ...data_ };
163
+ for (const param of struct) {
164
+ const { name, type } = param;
165
+ if (type === "address")
166
+ data[name] = data[name].toLowerCase();
167
+ }
168
+ return data;
169
+ };
170
+ const domain = (() => {
171
+ if (!types.EIP712Domain)
172
+ return {};
173
+ if (!domain_)
174
+ return {};
175
+ return normalizeData(types.EIP712Domain, domain_);
176
+ })();
177
+ const message = (() => {
178
+ if (primaryType === "EIP712Domain")
179
+ return void 0;
180
+ return normalizeData(types[primaryType], message_);
181
+ })();
182
+ return stringify({ domain, message, primaryType, types });
183
+ }
184
+ function validateTypedData(parameters) {
185
+ const { domain, message, primaryType, types } = parameters;
186
+ const validateData = (struct, data) => {
187
+ for (const param of struct) {
188
+ const { name, type } = param;
189
+ const value = data[name];
190
+ const integerMatch = type.match(integerRegex);
191
+ if (integerMatch && (typeof value === "number" || typeof value === "bigint")) {
192
+ const [_type, base, size_] = integerMatch;
193
+ numberToHex(value, {
194
+ signed: base === "int",
195
+ size: Number.parseInt(size_, 10) / 8
196
+ });
197
+ }
198
+ if (type === "address" && typeof value === "string" && !isAddress(value))
199
+ throw new InvalidAddressError({ address: value });
200
+ const bytesMatch = type.match(bytesRegex);
201
+ if (bytesMatch) {
202
+ const [_type, size_] = bytesMatch;
203
+ if (size_ && size(value) !== Number.parseInt(size_, 10))
204
+ throw new BytesSizeMismatchError({
205
+ expectedSize: Number.parseInt(size_, 10),
206
+ givenSize: size(value)
207
+ });
208
+ }
209
+ const struct2 = types[type];
210
+ if (struct2) {
211
+ validateReference(type);
212
+ validateData(struct2, value);
213
+ }
214
+ }
215
+ };
216
+ if (types.EIP712Domain && domain) {
217
+ if (typeof domain !== "object")
218
+ throw new InvalidDomainError({ domain });
219
+ validateData(types.EIP712Domain, domain);
220
+ }
221
+ if (primaryType !== "EIP712Domain") {
222
+ if (types[primaryType])
223
+ validateData(types[primaryType], message);
224
+ else
225
+ throw new InvalidPrimaryTypeError({ primaryType, types });
226
+ }
227
+ }
228
+ function getTypesForEIP712Domain({ domain }) {
229
+ return [
230
+ typeof domain?.name === "string" && { name: "name", type: "string" },
231
+ domain?.version && { name: "version", type: "string" },
232
+ (typeof domain?.chainId === "number" || typeof domain?.chainId === "bigint") && {
233
+ name: "chainId",
234
+ type: "uint256"
235
+ },
236
+ domain?.verifyingContract && {
237
+ name: "verifyingContract",
238
+ type: "address"
239
+ },
240
+ domain?.salt && { name: "salt", type: "bytes32" }
241
+ ].filter(Boolean);
242
+ }
243
+ function validateReference(type) {
244
+ if (type === "address" || type === "bool" || type === "string" || type.startsWith("bytes") || type.startsWith("uint") || type.startsWith("int"))
245
+ throw new InvalidStructTypeError({ type });
246
+ }
247
+
251
248
  // ../../node_modules/viem/_esm/accounts/utils/publicKeyToAddress.js
252
249
  function publicKeyToAddress(publicKey) {
253
250
  const address = keccak256(`0x${publicKey.substring(4)}`).substring(26);
@@ -317,10 +314,11 @@ async function verifyTypedData(parameters) {
317
314
  }
318
315
 
319
316
  export {
320
- hashTypedData,
321
- hashStruct,
322
317
  serializeTypedData,
323
318
  validateTypedData,
319
+ getTypesForEIP712Domain,
320
+ hashTypedData,
321
+ hashStruct,
324
322
  recoverTypedDataAddress,
325
323
  verifyTypedData
326
324
  };
@@ -1,9 +1,9 @@
1
- import "./chunk-ZKSIP2AM.js";
1
+ import "./chunk-5422ZTQA.js";
2
2
  import {
3
3
  decodeAbiParameters,
4
4
  encodeAbiParameters,
5
5
  encodeFunctionData
6
- } from "./chunk-GCI53Z2G.js";
6
+ } from "./chunk-25QYMKH4.js";
7
7
  import "./chunk-4VNS5WPM.js";
8
8
  export {
9
9
  decodeAbiParameters,
@@ -0,0 +1 @@
1
+ export { getAddress, isAddress, isAddressEqual } from 'viem/utils';
@@ -0,0 +1,12 @@
1
+ import "./chunk-5422ZTQA.js";
2
+ import {
3
+ getAddress,
4
+ isAddress,
5
+ isAddressEqual
6
+ } from "./chunk-25QYMKH4.js";
7
+ import "./chunk-4VNS5WPM.js";
8
+ export {
9
+ getAddress,
10
+ isAddress,
11
+ isAddressEqual
12
+ };
@@ -1,4 +1,5 @@
1
1
  export { hashStruct, hashTypedData, isHex, recoverTypedDataAddress, serializeTypedData, validateTypedData, verifyTypedData } from 'viem/utils';
2
+ export { getTypesForEIP712Domain } from 'viem';
2
3
 
3
4
  /**
4
5
  * @file viem internal typedData utils exported for direct usage
@@ -11,6 +12,10 @@ type MessageTypeProperty = {
11
12
  name: string;
12
13
  type: string;
13
14
  };
15
+ /**
16
+ * Serialize an EIP-712 struct definition to a string per
17
+ * https://eips.ethereum.org/EIPS/eip-712#definition-of-encodetype
18
+ */
14
19
  declare function encodeType({ primaryType, types, }: {
15
20
  primaryType: string;
16
21
  types: Record<string, readonly MessageTypeProperty[]>;
@@ -1,14 +1,15 @@
1
1
  import {
2
+ getTypesForEIP712Domain,
2
3
  hashStruct,
3
4
  hashTypedData,
4
5
  recoverTypedDataAddress,
5
6
  serializeTypedData,
6
7
  validateTypedData,
7
8
  verifyTypedData
8
- } from "./chunk-ZKSIP2AM.js";
9
+ } from "./chunk-5422ZTQA.js";
9
10
  import {
10
11
  isHex
11
- } from "./chunk-GCI53Z2G.js";
12
+ } from "./chunk-25QYMKH4.js";
12
13
  import "./chunk-4VNS5WPM.js";
13
14
 
14
15
  // src/utils/viem-utils/hashTypedData.ts
@@ -42,6 +43,7 @@ function findTypeDependencies({
42
43
  }
43
44
  export {
44
45
  encodeType,
46
+ getTypesForEIP712Domain,
45
47
  hashStruct,
46
48
  hashTypedData,
47
49
  isHex,
package/tsup.config.ts CHANGED
@@ -5,10 +5,15 @@
5
5
  import { defineConfig } from 'tsup';
6
6
 
7
7
  export default defineConfig({
8
- entry: ['src/stubs/viem-abi.ts', 'src/stubs/viem-typedData.ts'],
8
+ entry: [
9
+ 'src/stubs/viem-abi.ts',
10
+ 'src/stubs/viem-typedData.ts',
11
+ 'src/stubs/viem-address.ts',
12
+ ],
9
13
  format: ['esm'],
10
14
  outDir: 'src/vendor/viem',
11
15
  target: 'es2020',
16
+ tsconfig: 'tsconfig.tsup.build.json',
12
17
  clean: true,
13
18
  dts: true,
14
19
  bundle: true,