@metamask/smart-accounts-kit 0.4.0-beta.0 → 0.4.0-beta.2
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/CHANGELOG.md +49 -1
- package/dist/actions/index.cjs +5 -5
- package/dist/actions/index.d.cts +2 -2
- package/dist/actions/index.d.ts +2 -2
- package/dist/actions/index.mjs +4 -4
- package/dist/{chunk-S2Q5ZC64.cjs → chunk-23YXLKTX.cjs} +58 -59
- package/dist/chunk-23YXLKTX.cjs.map +1 -0
- package/dist/{chunk-W6ZI7GWI.mjs → chunk-33AMUJBJ.mjs} +49 -52
- package/dist/chunk-33AMUJBJ.mjs.map +1 -0
- package/dist/{chunk-TEH426Y4.mjs → chunk-C5ZEEH2Z.mjs} +283 -184
- package/dist/chunk-C5ZEEH2Z.mjs.map +1 -0
- package/dist/{chunk-NTZ57GNF.cjs → chunk-DLD377CN.cjs} +17 -33
- package/dist/chunk-DLD377CN.cjs.map +1 -0
- package/dist/{chunk-5BYJZGRI.mjs → chunk-NOCLGZGB.mjs} +174 -129
- package/dist/chunk-NOCLGZGB.mjs.map +1 -0
- package/dist/{chunk-EHIZB5U7.mjs → chunk-QCULIK3O.mjs} +211 -97
- package/dist/chunk-QCULIK3O.mjs.map +1 -0
- package/dist/{chunk-YWRHYLKB.cjs → chunk-QMRKCB7T.cjs} +204 -159
- package/dist/chunk-QMRKCB7T.cjs.map +1 -0
- package/dist/{chunk-TXN7GX6Y.cjs → chunk-SOFB2MXG.cjs} +207 -93
- package/dist/chunk-SOFB2MXG.cjs.map +1 -0
- package/dist/{chunk-RAXFJGCS.cjs → chunk-UUOH2WAW.cjs} +19 -19
- package/dist/chunk-UUOH2WAW.cjs.map +1 -0
- package/dist/{chunk-AUCZDOTJ.mjs → chunk-WPVSFOQM.mjs} +11 -27
- package/dist/chunk-WPVSFOQM.mjs.map +1 -0
- package/dist/{chunk-4A5RMDDC.mjs → chunk-WV2R7BXP.mjs} +49 -50
- package/dist/chunk-WV2R7BXP.mjs.map +1 -0
- package/dist/{chunk-YTGYVHDF.cjs → chunk-XN36L4RX.cjs} +144 -147
- package/dist/chunk-XN36L4RX.cjs.map +1 -0
- package/dist/{chunk-MIP7KJYH.cjs → chunk-YDLLC6PP.cjs} +252 -153
- package/dist/chunk-YDLLC6PP.cjs.map +1 -0
- package/dist/{chunk-DPWYECSV.mjs → chunk-YTELOQ4I.mjs} +9 -9
- package/dist/chunk-YTELOQ4I.mjs.map +1 -0
- package/dist/contracts/index.cjs +5 -5
- package/dist/contracts/index.d.cts +3 -3
- package/dist/contracts/index.d.ts +3 -3
- package/dist/contracts/index.mjs +4 -4
- package/dist/{delegation-DHjM_pVa.d.ts → delegation-DGUfyX-C.d.ts} +52 -26
- package/dist/{delegation-BnhAvKt4.d.cts → delegation-D_TY-tAq.d.cts} +52 -26
- package/dist/experimental/index.cjs +4 -4
- package/dist/experimental/index.cjs.map +1 -1
- package/dist/experimental/index.d.cts +1 -1
- package/dist/experimental/index.d.ts +1 -1
- package/dist/experimental/index.mjs +5 -5
- package/dist/experimental/index.mjs.map +1 -1
- package/dist/{index-CX3hrztI.d.cts → index-B9bsjGqI.d.ts} +240 -38
- package/dist/{index-D04LO0vH.d.cts → index-CZes99jV.d.cts} +95 -62
- package/dist/{index-i8cod4JY.d.ts → index-DvcKJcXi.d.cts} +240 -38
- package/dist/{index-BlgCQ80b.d.ts → index-FpCh2419.d.ts} +95 -62
- package/dist/index.cjs +26 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -11
- package/dist/index.d.ts +9 -11
- package/dist/index.mjs +17 -15
- package/dist/index.mjs.map +1 -1
- package/dist/{smartAccountsEnvironment-SVknZ_3f.d.cts → smartAccountsEnvironment-BU8kjlEv.d.cts} +1 -1
- package/dist/{smartAccountsEnvironment-BOhrxEnt.d.ts → smartAccountsEnvironment-egxuflDO.d.ts} +1 -1
- package/dist/{types-Bwksz_U6.d.ts → types-BLYWtcR3.d.cts} +49 -31
- package/dist/{types-Bwksz_U6.d.cts → types-BLYWtcR3.d.ts} +49 -31
- package/dist/utils/index.cjs +7 -5
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.cts +3 -4
- package/dist/utils/index.d.ts +3 -4
- package/dist/utils/index.mjs +12 -10
- package/package.json +6 -11
- package/dist/chunk-4A5RMDDC.mjs.map +0 -1
- package/dist/chunk-5BYJZGRI.mjs.map +0 -1
- package/dist/chunk-AUCZDOTJ.mjs.map +0 -1
- package/dist/chunk-DPWYECSV.mjs.map +0 -1
- package/dist/chunk-EHIZB5U7.mjs.map +0 -1
- package/dist/chunk-MIP7KJYH.cjs.map +0 -1
- package/dist/chunk-NTZ57GNF.cjs.map +0 -1
- package/dist/chunk-RAXFJGCS.cjs.map +0 -1
- package/dist/chunk-S2Q5ZC64.cjs.map +0 -1
- package/dist/chunk-TEH426Y4.mjs.map +0 -1
- package/dist/chunk-TXN7GX6Y.cjs.map +0 -1
- package/dist/chunk-W6ZI7GWI.mjs.map +0 -1
- package/dist/chunk-YTGYVHDF.cjs.map +0 -1
- package/dist/chunk-YWRHYLKB.cjs.map +0 -1
|
@@ -4,6 +4,70 @@ var __export = (target, all) => {
|
|
|
4
4
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
5
|
};
|
|
6
6
|
|
|
7
|
+
// src/constants.ts
|
|
8
|
+
var Implementation = /* @__PURE__ */ ((Implementation2) => {
|
|
9
|
+
Implementation2["MultiSig"] = "MultiSig";
|
|
10
|
+
Implementation2["Hybrid"] = "Hybrid";
|
|
11
|
+
Implementation2["Stateless7702"] = "Stateless7702";
|
|
12
|
+
return Implementation2;
|
|
13
|
+
})(Implementation || {});
|
|
14
|
+
var TransferWindow = /* @__PURE__ */ ((TransferWindow2) => {
|
|
15
|
+
TransferWindow2[TransferWindow2["Hourly"] = 3600] = "Hourly";
|
|
16
|
+
TransferWindow2[TransferWindow2["Daily"] = 86400] = "Daily";
|
|
17
|
+
TransferWindow2[TransferWindow2["Weekly"] = 604800] = "Weekly";
|
|
18
|
+
TransferWindow2[TransferWindow2["BiWeekly"] = 1209600] = "BiWeekly";
|
|
19
|
+
TransferWindow2[TransferWindow2["Monthly"] = 2592e3] = "Monthly";
|
|
20
|
+
TransferWindow2[TransferWindow2["Quarterly"] = 7776e3] = "Quarterly";
|
|
21
|
+
TransferWindow2[TransferWindow2["Yearly"] = 31536e3] = "Yearly";
|
|
22
|
+
return TransferWindow2;
|
|
23
|
+
})(TransferWindow || {});
|
|
24
|
+
var ScopeType = /* @__PURE__ */ ((ScopeType2) => {
|
|
25
|
+
ScopeType2["Erc20TransferAmount"] = "erc20TransferAmount";
|
|
26
|
+
ScopeType2["Erc20Streaming"] = "erc20Streaming";
|
|
27
|
+
ScopeType2["Erc20PeriodTransfer"] = "erc20PeriodTransfer";
|
|
28
|
+
ScopeType2["NativeTokenTransferAmount"] = "nativeTokenTransferAmount";
|
|
29
|
+
ScopeType2["NativeTokenStreaming"] = "nativeTokenStreaming";
|
|
30
|
+
ScopeType2["NativeTokenPeriodTransfer"] = "nativeTokenPeriodTransfer";
|
|
31
|
+
ScopeType2["Erc721Transfer"] = "erc721Transfer";
|
|
32
|
+
ScopeType2["OwnershipTransfer"] = "ownershipTransfer";
|
|
33
|
+
ScopeType2["FunctionCall"] = "functionCall";
|
|
34
|
+
return ScopeType2;
|
|
35
|
+
})(ScopeType || {});
|
|
36
|
+
var CaveatType = /* @__PURE__ */ ((CaveatType2) => {
|
|
37
|
+
CaveatType2["AllowedMethods"] = "allowedMethods";
|
|
38
|
+
CaveatType2["AllowedTargets"] = "allowedTargets";
|
|
39
|
+
CaveatType2["Deployed"] = "deployed";
|
|
40
|
+
CaveatType2["AllowedCalldata"] = "allowedCalldata";
|
|
41
|
+
CaveatType2["Erc20BalanceChange"] = "erc20BalanceChange";
|
|
42
|
+
CaveatType2["Erc721BalanceChange"] = "erc721BalanceChange";
|
|
43
|
+
CaveatType2["Erc1155BalanceChange"] = "erc1155BalanceChange";
|
|
44
|
+
CaveatType2["ValueLte"] = "valueLte";
|
|
45
|
+
CaveatType2["LimitedCalls"] = "limitedCalls";
|
|
46
|
+
CaveatType2["Id"] = "id";
|
|
47
|
+
CaveatType2["Nonce"] = "nonce";
|
|
48
|
+
CaveatType2["Timestamp"] = "timestamp";
|
|
49
|
+
CaveatType2["BlockNumber"] = "blockNumber";
|
|
50
|
+
CaveatType2["Erc20TransferAmount"] = "erc20TransferAmount";
|
|
51
|
+
CaveatType2["Erc20Streaming"] = "erc20Streaming";
|
|
52
|
+
CaveatType2["NativeTokenStreaming"] = "nativeTokenStreaming";
|
|
53
|
+
CaveatType2["Erc721Transfer"] = "erc721Transfer";
|
|
54
|
+
CaveatType2["NativeTokenTransferAmount"] = "nativeTokenTransferAmount";
|
|
55
|
+
CaveatType2["NativeBalanceChange"] = "nativeBalanceChange";
|
|
56
|
+
CaveatType2["Redeemer"] = "redeemer";
|
|
57
|
+
CaveatType2["NativeTokenPayment"] = "nativeTokenPayment";
|
|
58
|
+
CaveatType2["ArgsEqualityCheck"] = "argsEqualityCheck";
|
|
59
|
+
CaveatType2["SpecificActionERC20TransferBatch"] = "specificActionERC20TransferBatch";
|
|
60
|
+
CaveatType2["Erc20PeriodTransfer"] = "erc20PeriodTransfer";
|
|
61
|
+
CaveatType2["NativeTokenPeriodTransfer"] = "nativeTokenPeriodTransfer";
|
|
62
|
+
CaveatType2["ExactCalldataBatch"] = "exactCalldataBatch";
|
|
63
|
+
CaveatType2["ExactCalldata"] = "exactCalldata";
|
|
64
|
+
CaveatType2["ExactExecution"] = "exactExecution";
|
|
65
|
+
CaveatType2["ExactExecutionBatch"] = "exactExecutionBatch";
|
|
66
|
+
CaveatType2["MultiTokenPeriod"] = "multiTokenPeriod";
|
|
67
|
+
CaveatType2["OwnershipTransfer"] = "ownershipTransfer";
|
|
68
|
+
return CaveatType2;
|
|
69
|
+
})(CaveatType || {});
|
|
70
|
+
|
|
7
71
|
// src/caveatBuilder/caveatBuilder.ts
|
|
8
72
|
var INSECURE_UNRESTRICTED_DELEGATION_ERROR_MESSAGE = "No caveats found. If you definitely want to create an empty caveat collection, set `allowInsecureUnrestrictedDelegation` to `true`.";
|
|
9
73
|
var CaveatBuilder = class _CaveatBuilder {
|
|
@@ -38,7 +102,7 @@ var CaveatBuilder = class _CaveatBuilder {
|
|
|
38
102
|
addCaveat(nameOrCaveat, config) {
|
|
39
103
|
if (typeof nameOrCaveat === "object") {
|
|
40
104
|
const caveat = {
|
|
41
|
-
args: "
|
|
105
|
+
args: "0x00",
|
|
42
106
|
...nameOrCaveat
|
|
43
107
|
};
|
|
44
108
|
this.#results = [...this.#results, caveat];
|
|
@@ -93,12 +157,13 @@ var allowedCalldataBuilder = (environment, config) => {
|
|
|
93
157
|
return {
|
|
94
158
|
enforcer: AllowedCalldataEnforcer,
|
|
95
159
|
terms,
|
|
96
|
-
args: "
|
|
160
|
+
args: "0x00"
|
|
97
161
|
};
|
|
98
162
|
};
|
|
99
163
|
|
|
100
164
|
// src/caveatBuilder/allowedMethodsBuilder.ts
|
|
101
|
-
import {
|
|
165
|
+
import { createAllowedMethodsTerms } from "@metamask/delegation-core";
|
|
166
|
+
import { isHex, toFunctionSelector } from "viem";
|
|
102
167
|
var allowedMethods = "allowedMethods";
|
|
103
168
|
var FUNCTION_SELECTOR_STRING_LENGTH = 10;
|
|
104
169
|
var allowedMethodsBuilder = (environment, config) => {
|
|
@@ -107,7 +172,7 @@ var allowedMethodsBuilder = (environment, config) => {
|
|
|
107
172
|
throw new Error("Invalid selectors: must provide at least one selector");
|
|
108
173
|
}
|
|
109
174
|
const parsedSelectors = selectors.map(parseSelector);
|
|
110
|
-
const terms =
|
|
175
|
+
const terms = createAllowedMethodsTerms({ selectors: parsedSelectors });
|
|
111
176
|
const {
|
|
112
177
|
caveatEnforcers: { AllowedMethodsEnforcer }
|
|
113
178
|
} = environment;
|
|
@@ -117,7 +182,7 @@ var allowedMethodsBuilder = (environment, config) => {
|
|
|
117
182
|
return {
|
|
118
183
|
enforcer: AllowedMethodsEnforcer,
|
|
119
184
|
terms,
|
|
120
|
-
args: "
|
|
185
|
+
args: "0x00"
|
|
121
186
|
};
|
|
122
187
|
};
|
|
123
188
|
function parseSelector(selector) {
|
|
@@ -140,7 +205,8 @@ function parseSelector(selector) {
|
|
|
140
205
|
}
|
|
141
206
|
|
|
142
207
|
// src/caveatBuilder/allowedTargetsBuilder.ts
|
|
143
|
-
import {
|
|
208
|
+
import { createAllowedTargetsTerms } from "@metamask/delegation-core";
|
|
209
|
+
import { isAddress } from "viem";
|
|
144
210
|
var allowedTargets = "allowedTargets";
|
|
145
211
|
var allowedTargetsBuilder = (environment, config) => {
|
|
146
212
|
const { targets } = config;
|
|
@@ -155,7 +221,7 @@ var allowedTargetsBuilder = (environment, config) => {
|
|
|
155
221
|
if (invalidAddresses.length > 0) {
|
|
156
222
|
throw new Error("Invalid targets: must be valid addresses");
|
|
157
223
|
}
|
|
158
|
-
const terms =
|
|
224
|
+
const terms = createAllowedTargetsTerms({ targets });
|
|
159
225
|
const {
|
|
160
226
|
caveatEnforcers: { AllowedTargetsEnforcer }
|
|
161
227
|
} = environment;
|
|
@@ -165,11 +231,12 @@ var allowedTargetsBuilder = (environment, config) => {
|
|
|
165
231
|
return {
|
|
166
232
|
enforcer: AllowedTargetsEnforcer,
|
|
167
233
|
terms,
|
|
168
|
-
args: "
|
|
234
|
+
args: "0x00"
|
|
169
235
|
};
|
|
170
236
|
};
|
|
171
237
|
|
|
172
238
|
// src/caveatBuilder/argsEqualityCheckBuilder.ts
|
|
239
|
+
import { createArgsEqualityCheckTerms } from "@metamask/delegation-core";
|
|
173
240
|
import { isHex as isHex2 } from "viem";
|
|
174
241
|
var argsEqualityCheck = "argsEqualityCheck";
|
|
175
242
|
var argsEqualityCheckBuilder = (environment, config) => {
|
|
@@ -185,13 +252,13 @@ var argsEqualityCheckBuilder = (environment, config) => {
|
|
|
185
252
|
}
|
|
186
253
|
return {
|
|
187
254
|
enforcer: ArgsEqualityCheckEnforcer,
|
|
188
|
-
terms: args,
|
|
189
|
-
args: "
|
|
255
|
+
terms: createArgsEqualityCheckTerms({ args }),
|
|
256
|
+
args: "0x00"
|
|
190
257
|
};
|
|
191
258
|
};
|
|
192
259
|
|
|
193
260
|
// src/caveatBuilder/blockNumberBuilder.ts
|
|
194
|
-
import {
|
|
261
|
+
import { createBlockNumberTerms } from "@metamask/delegation-core";
|
|
195
262
|
var blockNumber = "blockNumber";
|
|
196
263
|
var blockNumberBuilder = (environment, config) => {
|
|
197
264
|
const { afterThreshold, beforeThreshold } = config;
|
|
@@ -205,14 +272,7 @@ var blockNumberBuilder = (environment, config) => {
|
|
|
205
272
|
"Invalid thresholds: afterThreshold must be less than beforeThreshold if both are specified"
|
|
206
273
|
);
|
|
207
274
|
}
|
|
208
|
-
const terms =
|
|
209
|
-
toHex(afterThreshold, {
|
|
210
|
-
size: 16
|
|
211
|
-
}),
|
|
212
|
-
toHex(beforeThreshold, {
|
|
213
|
-
size: 16
|
|
214
|
-
})
|
|
215
|
-
]);
|
|
275
|
+
const terms = createBlockNumberTerms({ afterThreshold, beforeThreshold });
|
|
216
276
|
const {
|
|
217
277
|
caveatEnforcers: { BlockNumberEnforcer }
|
|
218
278
|
} = environment;
|
|
@@ -222,12 +282,13 @@ var blockNumberBuilder = (environment, config) => {
|
|
|
222
282
|
return {
|
|
223
283
|
enforcer: BlockNumberEnforcer,
|
|
224
284
|
terms,
|
|
225
|
-
args: "
|
|
285
|
+
args: "0x00"
|
|
226
286
|
};
|
|
227
287
|
};
|
|
228
288
|
|
|
229
289
|
// src/caveatBuilder/deployedBuilder.ts
|
|
230
|
-
import {
|
|
290
|
+
import { createDeployedTerms } from "@metamask/delegation-core";
|
|
291
|
+
import { isAddress as isAddress2, isHex as isHex3 } from "viem";
|
|
231
292
|
var deployed = "deployed";
|
|
232
293
|
var deployedBuilder = (environment, config) => {
|
|
233
294
|
const { contractAddress, salt, bytecode } = config;
|
|
@@ -242,7 +303,7 @@ var deployedBuilder = (environment, config) => {
|
|
|
242
303
|
if (!isHex3(bytecode)) {
|
|
243
304
|
throw new Error("Invalid bytecode: must be a valid hexadecimal string");
|
|
244
305
|
}
|
|
245
|
-
const terms =
|
|
306
|
+
const terms = createDeployedTerms({ contractAddress, salt, bytecode });
|
|
246
307
|
const {
|
|
247
308
|
caveatEnforcers: { DeployedEnforcer }
|
|
248
309
|
} = environment;
|
|
@@ -252,12 +313,13 @@ var deployedBuilder = (environment, config) => {
|
|
|
252
313
|
return {
|
|
253
314
|
enforcer: DeployedEnforcer,
|
|
254
315
|
terms,
|
|
255
|
-
args: "
|
|
316
|
+
args: "0x00"
|
|
256
317
|
};
|
|
257
318
|
};
|
|
258
319
|
|
|
259
320
|
// src/caveatBuilder/erc1155BalanceChangeBuilder.ts
|
|
260
|
-
import {
|
|
321
|
+
import { createERC1155BalanceChangeTerms } from "@metamask/delegation-core";
|
|
322
|
+
import { isAddress as isAddress3 } from "viem";
|
|
261
323
|
var erc1155BalanceChange = "erc1155BalanceChange";
|
|
262
324
|
var erc1155BalanceChangeBuilder = (environment, config) => {
|
|
263
325
|
const { tokenAddress, recipient, tokenId, balance, changeType } = config;
|
|
@@ -276,10 +338,13 @@ var erc1155BalanceChangeBuilder = (environment, config) => {
|
|
|
276
338
|
if (changeType !== 0 /* Increase */ && changeType !== 1 /* Decrease */) {
|
|
277
339
|
throw new Error("Invalid changeType: must be either Increase or Decrease");
|
|
278
340
|
}
|
|
279
|
-
const terms =
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
341
|
+
const terms = createERC1155BalanceChangeTerms({
|
|
342
|
+
tokenAddress,
|
|
343
|
+
recipient,
|
|
344
|
+
tokenId,
|
|
345
|
+
balance,
|
|
346
|
+
changeType
|
|
347
|
+
});
|
|
283
348
|
const {
|
|
284
349
|
caveatEnforcers: { ERC1155BalanceChangeEnforcer }
|
|
285
350
|
} = environment;
|
|
@@ -289,12 +354,13 @@ var erc1155BalanceChangeBuilder = (environment, config) => {
|
|
|
289
354
|
return {
|
|
290
355
|
enforcer: ERC1155BalanceChangeEnforcer,
|
|
291
356
|
terms,
|
|
292
|
-
args: "
|
|
357
|
+
args: "0x00"
|
|
293
358
|
};
|
|
294
359
|
};
|
|
295
360
|
|
|
296
361
|
// src/caveatBuilder/erc20BalanceChangeBuilder.ts
|
|
297
|
-
import {
|
|
362
|
+
import { createERC20BalanceChangeTerms } from "@metamask/delegation-core";
|
|
363
|
+
import { isAddress as isAddress4 } from "viem";
|
|
298
364
|
var erc20BalanceChange = "erc20BalanceChange";
|
|
299
365
|
var erc20BalanceChangeBuilder = (environment, config) => {
|
|
300
366
|
const { tokenAddress, recipient, balance, changeType } = config;
|
|
@@ -307,10 +373,12 @@ var erc20BalanceChangeBuilder = (environment, config) => {
|
|
|
307
373
|
if (changeType !== 0 /* Increase */ && changeType !== 1 /* Decrease */) {
|
|
308
374
|
throw new Error("Invalid changeType: must be either Increase or Decrease");
|
|
309
375
|
}
|
|
310
|
-
const terms =
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
376
|
+
const terms = createERC20BalanceChangeTerms({
|
|
377
|
+
tokenAddress,
|
|
378
|
+
recipient,
|
|
379
|
+
balance,
|
|
380
|
+
changeType
|
|
381
|
+
});
|
|
314
382
|
const {
|
|
315
383
|
caveatEnforcers: { ERC20BalanceChangeEnforcer }
|
|
316
384
|
} = environment;
|
|
@@ -320,7 +388,7 @@ var erc20BalanceChangeBuilder = (environment, config) => {
|
|
|
320
388
|
return {
|
|
321
389
|
enforcer: ERC20BalanceChangeEnforcer,
|
|
322
390
|
terms,
|
|
323
|
-
args: "
|
|
391
|
+
args: "0x00"
|
|
324
392
|
};
|
|
325
393
|
};
|
|
326
394
|
|
|
@@ -344,7 +412,7 @@ var erc20PeriodTransferBuilder = (environment, config) => {
|
|
|
344
412
|
return {
|
|
345
413
|
enforcer: ERC20PeriodTransferEnforcer,
|
|
346
414
|
terms,
|
|
347
|
-
args: "
|
|
415
|
+
args: "0x00"
|
|
348
416
|
};
|
|
349
417
|
};
|
|
350
418
|
|
|
@@ -369,12 +437,13 @@ var erc20StreamingBuilder = (environment, config) => {
|
|
|
369
437
|
return {
|
|
370
438
|
enforcer: ERC20StreamingEnforcer,
|
|
371
439
|
terms,
|
|
372
|
-
args: "
|
|
440
|
+
args: "0x00"
|
|
373
441
|
};
|
|
374
442
|
};
|
|
375
443
|
|
|
376
444
|
// src/caveatBuilder/erc20TransferAmountBuilder.ts
|
|
377
|
-
import {
|
|
445
|
+
import { createERC20TransferAmountTerms } from "@metamask/delegation-core";
|
|
446
|
+
import { isAddress as isAddress5 } from "viem";
|
|
378
447
|
var erc20TransferAmount = "erc20TransferAmount";
|
|
379
448
|
var erc20TransferAmountBuilder = (environment, config) => {
|
|
380
449
|
const { tokenAddress, maxAmount } = config;
|
|
@@ -384,7 +453,7 @@ var erc20TransferAmountBuilder = (environment, config) => {
|
|
|
384
453
|
if (maxAmount <= 0n) {
|
|
385
454
|
throw new Error("Invalid maxAmount: must be a positive number");
|
|
386
455
|
}
|
|
387
|
-
const terms =
|
|
456
|
+
const terms = createERC20TransferAmountTerms({ tokenAddress, maxAmount });
|
|
388
457
|
const {
|
|
389
458
|
caveatEnforcers: { ERC20TransferAmountEnforcer }
|
|
390
459
|
} = environment;
|
|
@@ -394,12 +463,13 @@ var erc20TransferAmountBuilder = (environment, config) => {
|
|
|
394
463
|
return {
|
|
395
464
|
enforcer: ERC20TransferAmountEnforcer,
|
|
396
465
|
terms,
|
|
397
|
-
args: "
|
|
466
|
+
args: "0x00"
|
|
398
467
|
};
|
|
399
468
|
};
|
|
400
469
|
|
|
401
470
|
// src/caveatBuilder/erc721BalanceChangeBuilder.ts
|
|
402
|
-
import {
|
|
471
|
+
import { createERC721BalanceChangeTerms } from "@metamask/delegation-core";
|
|
472
|
+
import { isAddress as isAddress6 } from "viem";
|
|
403
473
|
var erc721BalanceChange = "erc721BalanceChange";
|
|
404
474
|
var erc721BalanceChangeBuilder = (environment, config) => {
|
|
405
475
|
const { tokenAddress, recipient, amount, changeType } = config;
|
|
@@ -415,10 +485,12 @@ var erc721BalanceChangeBuilder = (environment, config) => {
|
|
|
415
485
|
if (changeType !== 0 /* Increase */ && changeType !== 1 /* Decrease */) {
|
|
416
486
|
throw new Error("Invalid changeType: must be either Increase or Decrease");
|
|
417
487
|
}
|
|
418
|
-
const terms =
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
488
|
+
const terms = createERC721BalanceChangeTerms({
|
|
489
|
+
tokenAddress,
|
|
490
|
+
recipient,
|
|
491
|
+
amount,
|
|
492
|
+
changeType
|
|
493
|
+
});
|
|
422
494
|
const {
|
|
423
495
|
caveatEnforcers: { ERC721BalanceChangeEnforcer }
|
|
424
496
|
} = environment;
|
|
@@ -428,12 +500,13 @@ var erc721BalanceChangeBuilder = (environment, config) => {
|
|
|
428
500
|
return {
|
|
429
501
|
enforcer: ERC721BalanceChangeEnforcer,
|
|
430
502
|
terms,
|
|
431
|
-
args: "
|
|
503
|
+
args: "0x00"
|
|
432
504
|
};
|
|
433
505
|
};
|
|
434
506
|
|
|
435
507
|
// src/caveatBuilder/erc721TransferBuilder.ts
|
|
436
|
-
import {
|
|
508
|
+
import { createERC721TransferTerms } from "@metamask/delegation-core";
|
|
509
|
+
import { isAddress as isAddress7 } from "viem";
|
|
437
510
|
var erc721Transfer = "erc721Transfer";
|
|
438
511
|
var erc721TransferBuilder = (environment, config) => {
|
|
439
512
|
const { tokenAddress, tokenId } = config;
|
|
@@ -443,7 +516,7 @@ var erc721TransferBuilder = (environment, config) => {
|
|
|
443
516
|
if (tokenId < 0n) {
|
|
444
517
|
throw new Error("Invalid tokenId: must be a non-negative number");
|
|
445
518
|
}
|
|
446
|
-
const terms =
|
|
519
|
+
const terms = createERC721TransferTerms({ tokenAddress, tokenId });
|
|
447
520
|
const {
|
|
448
521
|
caveatEnforcers: { ERC721TransferEnforcer }
|
|
449
522
|
} = environment;
|
|
@@ -453,12 +526,13 @@ var erc721TransferBuilder = (environment, config) => {
|
|
|
453
526
|
return {
|
|
454
527
|
enforcer: ERC721TransferEnforcer,
|
|
455
528
|
terms,
|
|
456
|
-
args: "
|
|
529
|
+
args: "0x00"
|
|
457
530
|
};
|
|
458
531
|
};
|
|
459
532
|
|
|
460
533
|
// src/caveatBuilder/exactCalldataBatchBuilder.ts
|
|
461
|
-
import {
|
|
534
|
+
import { createExactCalldataBatchTerms } from "@metamask/delegation-core";
|
|
535
|
+
import { isAddress as isAddress8 } from "viem";
|
|
462
536
|
var exactCalldataBatch = "exactCalldataBatch";
|
|
463
537
|
var exactCalldataBatchBuilder = (environment, config) => {
|
|
464
538
|
const { executions } = config;
|
|
@@ -478,19 +552,7 @@ var exactCalldataBatchBuilder = (environment, config) => {
|
|
|
478
552
|
);
|
|
479
553
|
}
|
|
480
554
|
}
|
|
481
|
-
const terms =
|
|
482
|
-
[
|
|
483
|
-
{
|
|
484
|
-
type: "tuple[]",
|
|
485
|
-
components: [
|
|
486
|
-
{ type: "address", name: "target" },
|
|
487
|
-
{ type: "uint256", name: "value" },
|
|
488
|
-
{ type: "bytes", name: "callData" }
|
|
489
|
-
]
|
|
490
|
-
}
|
|
491
|
-
],
|
|
492
|
-
[executions]
|
|
493
|
-
);
|
|
555
|
+
const terms = createExactCalldataBatchTerms({ executions });
|
|
494
556
|
const {
|
|
495
557
|
caveatEnforcers: { ExactCalldataBatchEnforcer }
|
|
496
558
|
} = environment;
|
|
@@ -500,7 +562,7 @@ var exactCalldataBatchBuilder = (environment, config) => {
|
|
|
500
562
|
return {
|
|
501
563
|
enforcer: ExactCalldataBatchEnforcer,
|
|
502
564
|
terms,
|
|
503
|
-
args: "
|
|
565
|
+
args: "0x00"
|
|
504
566
|
};
|
|
505
567
|
};
|
|
506
568
|
|
|
@@ -519,12 +581,13 @@ var exactCalldataBuilder = (environment, config) => {
|
|
|
519
581
|
return {
|
|
520
582
|
enforcer: ExactCalldataEnforcer,
|
|
521
583
|
terms,
|
|
522
|
-
args: "
|
|
584
|
+
args: "0x00"
|
|
523
585
|
};
|
|
524
586
|
};
|
|
525
587
|
|
|
526
588
|
// src/caveatBuilder/exactExecutionBatchBuilder.ts
|
|
527
|
-
import {
|
|
589
|
+
import { createExactExecutionBatchTerms } from "@metamask/delegation-core";
|
|
590
|
+
import { isAddress as isAddress9 } from "viem";
|
|
528
591
|
var exactExecutionBatch = "exactExecutionBatch";
|
|
529
592
|
var exactExecutionBatchBuilder = (environment, config) => {
|
|
530
593
|
const { executions } = config;
|
|
@@ -544,19 +607,7 @@ var exactExecutionBatchBuilder = (environment, config) => {
|
|
|
544
607
|
);
|
|
545
608
|
}
|
|
546
609
|
}
|
|
547
|
-
const terms =
|
|
548
|
-
[
|
|
549
|
-
{
|
|
550
|
-
type: "tuple[]",
|
|
551
|
-
components: [
|
|
552
|
-
{ type: "address", name: "target" },
|
|
553
|
-
{ type: "uint256", name: "value" },
|
|
554
|
-
{ type: "bytes", name: "callData" }
|
|
555
|
-
]
|
|
556
|
-
}
|
|
557
|
-
],
|
|
558
|
-
[executions]
|
|
559
|
-
);
|
|
610
|
+
const terms = createExactExecutionBatchTerms({ executions });
|
|
560
611
|
const {
|
|
561
612
|
caveatEnforcers: { ExactExecutionBatchEnforcer }
|
|
562
613
|
} = environment;
|
|
@@ -566,12 +617,13 @@ var exactExecutionBatchBuilder = (environment, config) => {
|
|
|
566
617
|
return {
|
|
567
618
|
enforcer: ExactExecutionBatchEnforcer,
|
|
568
619
|
terms,
|
|
569
|
-
args: "
|
|
620
|
+
args: "0x00"
|
|
570
621
|
};
|
|
571
622
|
};
|
|
572
623
|
|
|
573
624
|
// src/caveatBuilder/exactExecutionBuilder.ts
|
|
574
|
-
import {
|
|
625
|
+
import { createExactExecutionTerms } from "@metamask/delegation-core";
|
|
626
|
+
import { isAddress as isAddress10 } from "viem";
|
|
575
627
|
var exactExecution = "exactExecution";
|
|
576
628
|
var exactExecutionBuilder = (environment, config) => {
|
|
577
629
|
const { execution } = config;
|
|
@@ -584,11 +636,7 @@ var exactExecutionBuilder = (environment, config) => {
|
|
|
584
636
|
if (!execution.callData.startsWith("0x")) {
|
|
585
637
|
throw new Error("Invalid calldata: must be a hex string starting with 0x");
|
|
586
638
|
}
|
|
587
|
-
const terms =
|
|
588
|
-
execution.target,
|
|
589
|
-
toHex4(execution.value, { size: 32 }),
|
|
590
|
-
execution.callData
|
|
591
|
-
]);
|
|
639
|
+
const terms = createExactExecutionTerms({ execution });
|
|
592
640
|
const {
|
|
593
641
|
caveatEnforcers: { ExactExecutionEnforcer }
|
|
594
642
|
} = environment;
|
|
@@ -598,12 +646,13 @@ var exactExecutionBuilder = (environment, config) => {
|
|
|
598
646
|
return {
|
|
599
647
|
enforcer: ExactExecutionEnforcer,
|
|
600
648
|
terms,
|
|
601
|
-
args: "
|
|
649
|
+
args: "0x00"
|
|
602
650
|
};
|
|
603
651
|
};
|
|
604
652
|
|
|
605
653
|
// src/caveatBuilder/idBuilder.ts
|
|
606
|
-
import {
|
|
654
|
+
import { createIdTerms } from "@metamask/delegation-core";
|
|
655
|
+
import { maxUint256 } from "viem";
|
|
607
656
|
var id = "id";
|
|
608
657
|
var idBuilder = (environment, config) => {
|
|
609
658
|
const { id: idValue } = config;
|
|
@@ -624,7 +673,7 @@ var idBuilder = (environment, config) => {
|
|
|
624
673
|
if (idBigInt > maxUint256) {
|
|
625
674
|
throw new Error("Invalid id: must be less than 2^256");
|
|
626
675
|
}
|
|
627
|
-
const terms =
|
|
676
|
+
const terms = createIdTerms({ id: idBigInt });
|
|
628
677
|
const {
|
|
629
678
|
caveatEnforcers: { IdEnforcer }
|
|
630
679
|
} = environment;
|
|
@@ -634,12 +683,12 @@ var idBuilder = (environment, config) => {
|
|
|
634
683
|
return {
|
|
635
684
|
enforcer: IdEnforcer,
|
|
636
685
|
terms,
|
|
637
|
-
args: "
|
|
686
|
+
args: "0x00"
|
|
638
687
|
};
|
|
639
688
|
};
|
|
640
689
|
|
|
641
690
|
// src/caveatBuilder/limitedCallsBuilder.ts
|
|
642
|
-
import {
|
|
691
|
+
import { createLimitedCallsTerms } from "@metamask/delegation-core";
|
|
643
692
|
var limitedCalls = "limitedCalls";
|
|
644
693
|
var limitedCallsBuilder = (environment, config) => {
|
|
645
694
|
const { limit } = config;
|
|
@@ -649,7 +698,7 @@ var limitedCallsBuilder = (environment, config) => {
|
|
|
649
698
|
if (limit <= 0) {
|
|
650
699
|
throw new Error("Invalid limit: must be a positive integer");
|
|
651
700
|
}
|
|
652
|
-
const terms =
|
|
701
|
+
const terms = createLimitedCallsTerms({ limit });
|
|
653
702
|
const {
|
|
654
703
|
caveatEnforcers: { LimitedCallsEnforcer }
|
|
655
704
|
} = environment;
|
|
@@ -659,12 +708,13 @@ var limitedCallsBuilder = (environment, config) => {
|
|
|
659
708
|
return {
|
|
660
709
|
enforcer: LimitedCallsEnforcer,
|
|
661
710
|
terms,
|
|
662
|
-
args: "
|
|
711
|
+
args: "0x00"
|
|
663
712
|
};
|
|
664
713
|
};
|
|
665
714
|
|
|
666
715
|
// src/caveatBuilder/multiTokenPeriodBuilder.ts
|
|
667
|
-
import {
|
|
716
|
+
import { createMultiTokenPeriodTerms } from "@metamask/delegation-core";
|
|
717
|
+
import { isAddress as isAddress11 } from "viem";
|
|
668
718
|
var multiTokenPeriod = "multiTokenPeriod";
|
|
669
719
|
var multiTokenPeriodBuilder = (environment, config) => {
|
|
670
720
|
if (!config?.tokenConfigs || config.tokenConfigs.length === 0) {
|
|
@@ -683,17 +733,9 @@ var multiTokenPeriodBuilder = (environment, config) => {
|
|
|
683
733
|
throw new Error("Invalid period duration: must be greater than 0");
|
|
684
734
|
}
|
|
685
735
|
});
|
|
686
|
-
const
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
pad3(token, { size: 20 }),
|
|
690
|
-
toHex7(periodAmount, { size: 32 }),
|
|
691
|
-
toHex7(periodDuration, { size: 32 }),
|
|
692
|
-
toHex7(startDate, { size: 32 })
|
|
693
|
-
],
|
|
694
|
-
[]
|
|
695
|
-
);
|
|
696
|
-
const terms = concat8(termsArray);
|
|
736
|
+
const terms = createMultiTokenPeriodTerms({
|
|
737
|
+
tokenConfigs: config.tokenConfigs
|
|
738
|
+
});
|
|
697
739
|
const {
|
|
698
740
|
caveatEnforcers: { MultiTokenPeriodEnforcer }
|
|
699
741
|
} = environment;
|
|
@@ -703,12 +745,13 @@ var multiTokenPeriodBuilder = (environment, config) => {
|
|
|
703
745
|
return {
|
|
704
746
|
enforcer: MultiTokenPeriodEnforcer,
|
|
705
747
|
terms,
|
|
706
|
-
args: "
|
|
748
|
+
args: "0x00"
|
|
707
749
|
};
|
|
708
750
|
};
|
|
709
751
|
|
|
710
752
|
// src/caveatBuilder/nativeBalanceChangeBuilder.ts
|
|
711
|
-
import {
|
|
753
|
+
import { createNativeBalanceChangeTerms } from "@metamask/delegation-core";
|
|
754
|
+
import { isAddress as isAddress12 } from "viem";
|
|
712
755
|
var nativeBalanceChange = "nativeBalanceChange";
|
|
713
756
|
var nativeBalanceChangeBuilder = (environment, config) => {
|
|
714
757
|
const { recipient, balance, changeType } = config;
|
|
@@ -721,10 +764,11 @@ var nativeBalanceChangeBuilder = (environment, config) => {
|
|
|
721
764
|
if (changeType !== 0 /* Increase */ && changeType !== 1 /* Decrease */) {
|
|
722
765
|
throw new Error("Invalid changeType: must be either Increase or Decrease");
|
|
723
766
|
}
|
|
724
|
-
const terms =
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
767
|
+
const terms = createNativeBalanceChangeTerms({
|
|
768
|
+
recipient,
|
|
769
|
+
balance,
|
|
770
|
+
changeType
|
|
771
|
+
});
|
|
728
772
|
const {
|
|
729
773
|
caveatEnforcers: { NativeBalanceChangeEnforcer }
|
|
730
774
|
} = environment;
|
|
@@ -734,12 +778,13 @@ var nativeBalanceChangeBuilder = (environment, config) => {
|
|
|
734
778
|
return {
|
|
735
779
|
enforcer: NativeBalanceChangeEnforcer,
|
|
736
780
|
terms,
|
|
737
|
-
args: "
|
|
781
|
+
args: "0x00"
|
|
738
782
|
};
|
|
739
783
|
};
|
|
740
784
|
|
|
741
785
|
// src/caveatBuilder/nativeTokenPaymentBuilder.ts
|
|
742
|
-
import {
|
|
786
|
+
import { createNativeTokenPaymentTerms } from "@metamask/delegation-core";
|
|
787
|
+
import { isAddress as isAddress13 } from "viem";
|
|
743
788
|
var nativeTokenPayment = "nativeTokenPayment";
|
|
744
789
|
var nativeTokenPaymentBuilder = (environment, config) => {
|
|
745
790
|
const { recipient, amount } = config;
|
|
@@ -749,7 +794,7 @@ var nativeTokenPaymentBuilder = (environment, config) => {
|
|
|
749
794
|
if (!isAddress13(recipient)) {
|
|
750
795
|
throw new Error("Invalid recipient: must be a valid address");
|
|
751
796
|
}
|
|
752
|
-
const terms =
|
|
797
|
+
const terms = createNativeTokenPaymentTerms({ recipient, amount });
|
|
753
798
|
const {
|
|
754
799
|
caveatEnforcers: { NativeTokenPaymentEnforcer }
|
|
755
800
|
} = environment;
|
|
@@ -759,7 +804,7 @@ var nativeTokenPaymentBuilder = (environment, config) => {
|
|
|
759
804
|
return {
|
|
760
805
|
enforcer: NativeTokenPaymentEnforcer,
|
|
761
806
|
terms,
|
|
762
|
-
args: "
|
|
807
|
+
args: "0x00"
|
|
763
808
|
};
|
|
764
809
|
};
|
|
765
810
|
|
|
@@ -784,7 +829,7 @@ var nativeTokenPeriodTransferBuilder = (environment, config) => {
|
|
|
784
829
|
return {
|
|
785
830
|
enforcer: NativeTokenPeriodTransferEnforcer,
|
|
786
831
|
terms,
|
|
787
|
-
args: "
|
|
832
|
+
args: "0x00"
|
|
788
833
|
};
|
|
789
834
|
};
|
|
790
835
|
|
|
@@ -808,19 +853,19 @@ var nativeTokenStreamingBuilder = (environment, config) => {
|
|
|
808
853
|
return {
|
|
809
854
|
enforcer: NativeTokenStreamingEnforcer,
|
|
810
855
|
terms,
|
|
811
|
-
args: "
|
|
856
|
+
args: "0x00"
|
|
812
857
|
};
|
|
813
858
|
};
|
|
814
859
|
|
|
815
860
|
// src/caveatBuilder/nativeTokenTransferAmountBuilder.ts
|
|
816
|
-
import {
|
|
861
|
+
import { createNativeTokenTransferAmountTerms } from "@metamask/delegation-core";
|
|
817
862
|
var nativeTokenTransferAmount = "nativeTokenTransferAmount";
|
|
818
863
|
var nativeTokenTransferAmountBuilder = (environment, config) => {
|
|
819
864
|
const { maxAmount } = config;
|
|
820
865
|
if (maxAmount < 0n) {
|
|
821
866
|
throw new Error("Invalid maxAmount: must be zero or positive");
|
|
822
867
|
}
|
|
823
|
-
const terms =
|
|
868
|
+
const terms = createNativeTokenTransferAmountTerms({ maxAmount });
|
|
824
869
|
const {
|
|
825
870
|
caveatEnforcers: { NativeTokenTransferAmountEnforcer }
|
|
826
871
|
} = environment;
|
|
@@ -832,7 +877,7 @@ var nativeTokenTransferAmountBuilder = (environment, config) => {
|
|
|
832
877
|
return {
|
|
833
878
|
enforcer: NativeTokenTransferAmountEnforcer,
|
|
834
879
|
terms,
|
|
835
|
-
args: "
|
|
880
|
+
args: "0x00"
|
|
836
881
|
};
|
|
837
882
|
};
|
|
838
883
|
|
|
@@ -851,11 +896,12 @@ var nonceBuilder = (environment, config) => {
|
|
|
851
896
|
return {
|
|
852
897
|
enforcer: NonceEnforcer,
|
|
853
898
|
terms,
|
|
854
|
-
args: "
|
|
899
|
+
args: "0x00"
|
|
855
900
|
};
|
|
856
901
|
};
|
|
857
902
|
|
|
858
903
|
// src/caveatBuilder/ownershipTransferBuilder.ts
|
|
904
|
+
import { createOwnershipTransferTerms } from "@metamask/delegation-core";
|
|
859
905
|
import { isAddress as isAddress14 } from "viem";
|
|
860
906
|
var ownershipTransfer = "ownershipTransfer";
|
|
861
907
|
var ownershipTransferBuilder = (environment, config) => {
|
|
@@ -863,7 +909,7 @@ var ownershipTransferBuilder = (environment, config) => {
|
|
|
863
909
|
if (!isAddress14(contractAddress, { strict: false })) {
|
|
864
910
|
throw new Error("Invalid contractAddress: must be a valid address");
|
|
865
911
|
}
|
|
866
|
-
const terms = contractAddress;
|
|
912
|
+
const terms = createOwnershipTransferTerms({ contractAddress });
|
|
867
913
|
const {
|
|
868
914
|
caveatEnforcers: { OwnershipTransferEnforcer }
|
|
869
915
|
} = environment;
|
|
@@ -873,12 +919,13 @@ var ownershipTransferBuilder = (environment, config) => {
|
|
|
873
919
|
return {
|
|
874
920
|
enforcer: OwnershipTransferEnforcer,
|
|
875
921
|
terms,
|
|
876
|
-
args: "
|
|
922
|
+
args: "0x00"
|
|
877
923
|
};
|
|
878
924
|
};
|
|
879
925
|
|
|
880
926
|
// src/caveatBuilder/redeemerBuilder.ts
|
|
881
|
-
import {
|
|
927
|
+
import { createRedeemerTerms } from "@metamask/delegation-core";
|
|
928
|
+
import { isAddress as isAddress15 } from "viem";
|
|
882
929
|
var redeemer = "redeemer";
|
|
883
930
|
var redeemerBuilder = (environment, config) => {
|
|
884
931
|
const { redeemers } = config;
|
|
@@ -892,7 +939,7 @@ var redeemerBuilder = (environment, config) => {
|
|
|
892
939
|
throw new Error("Invalid redeemers: must be a valid address");
|
|
893
940
|
}
|
|
894
941
|
}
|
|
895
|
-
const terms =
|
|
942
|
+
const terms = createRedeemerTerms({ redeemers });
|
|
896
943
|
const {
|
|
897
944
|
caveatEnforcers: { RedeemerEnforcer }
|
|
898
945
|
} = environment;
|
|
@@ -902,12 +949,13 @@ var redeemerBuilder = (environment, config) => {
|
|
|
902
949
|
return {
|
|
903
950
|
enforcer: RedeemerEnforcer,
|
|
904
951
|
terms,
|
|
905
|
-
args: "
|
|
952
|
+
args: "0x00"
|
|
906
953
|
};
|
|
907
954
|
};
|
|
908
955
|
|
|
909
956
|
// src/caveatBuilder/specificActionERC20TransferBatchBuilder.ts
|
|
910
|
-
import {
|
|
957
|
+
import { createSpecificActionERC20TransferBatchTerms } from "@metamask/delegation-core";
|
|
958
|
+
import { isAddress as isAddress16 } from "viem";
|
|
911
959
|
var specificActionERC20TransferBatch = "specificActionERC20TransferBatch";
|
|
912
960
|
var specificActionERC20TransferBatchBuilder = (environment, config) => {
|
|
913
961
|
const { tokenAddress, recipient, amount, target, calldata } = config;
|
|
@@ -923,13 +971,13 @@ var specificActionERC20TransferBatchBuilder = (environment, config) => {
|
|
|
923
971
|
if (amount <= 0n) {
|
|
924
972
|
throw new Error("Invalid amount: must be a positive number");
|
|
925
973
|
}
|
|
926
|
-
const terms =
|
|
974
|
+
const terms = createSpecificActionERC20TransferBatchTerms({
|
|
927
975
|
tokenAddress,
|
|
928
976
|
recipient,
|
|
929
|
-
|
|
977
|
+
amount,
|
|
930
978
|
target,
|
|
931
979
|
calldata
|
|
932
|
-
|
|
980
|
+
});
|
|
933
981
|
const {
|
|
934
982
|
caveatEnforcers: { SpecificActionERC20TransferBatchEnforcer }
|
|
935
983
|
} = environment;
|
|
@@ -941,7 +989,7 @@ var specificActionERC20TransferBatchBuilder = (environment, config) => {
|
|
|
941
989
|
return {
|
|
942
990
|
enforcer: SpecificActionERC20TransferBatchEnforcer,
|
|
943
991
|
terms,
|
|
944
|
-
args: "
|
|
992
|
+
args: "0x00"
|
|
945
993
|
};
|
|
946
994
|
};
|
|
947
995
|
|
|
@@ -963,7 +1011,7 @@ var timestampBuilder = (environment, config) => {
|
|
|
963
1011
|
return {
|
|
964
1012
|
enforcer: TimestampEnforcer,
|
|
965
1013
|
terms,
|
|
966
|
-
args: "
|
|
1014
|
+
args: "0x00"
|
|
967
1015
|
};
|
|
968
1016
|
};
|
|
969
1017
|
|
|
@@ -982,7 +1030,7 @@ var valueLteBuilder = (environment, config) => {
|
|
|
982
1030
|
return {
|
|
983
1031
|
enforcer: ValueLteEnforcer,
|
|
984
1032
|
terms,
|
|
985
|
-
args: "
|
|
1033
|
+
args: "0x00"
|
|
986
1034
|
};
|
|
987
1035
|
};
|
|
988
1036
|
|
|
@@ -1031,7 +1079,7 @@ function createErc20TransferCaveatBuilder(environment, config) {
|
|
|
1031
1079
|
}
|
|
1032
1080
|
|
|
1033
1081
|
// src/utils.ts
|
|
1034
|
-
import { isHex as isHex4, toHex
|
|
1082
|
+
import { isHex as isHex4, toHex } from "viem";
|
|
1035
1083
|
var hasProperties = (object, properties) => {
|
|
1036
1084
|
return properties.every(
|
|
1037
1085
|
(prop) => prop in object && object[prop] !== void 0
|
|
@@ -1057,7 +1105,7 @@ function toHexOrThrow(value, parameterName) {
|
|
|
1057
1105
|
}
|
|
1058
1106
|
return value;
|
|
1059
1107
|
}
|
|
1060
|
-
return
|
|
1108
|
+
return toHex(value);
|
|
1061
1109
|
}
|
|
1062
1110
|
|
|
1063
1111
|
// src/caveatBuilder/scope/erc721Scope.ts
|
|
@@ -1219,28 +1267,56 @@ function createOwnershipCaveatBuilder(environment, config) {
|
|
|
1219
1267
|
}
|
|
1220
1268
|
|
|
1221
1269
|
// src/caveatBuilder/scope/index.ts
|
|
1270
|
+
var normalizeScopeConfig = (config) => {
|
|
1271
|
+
return {
|
|
1272
|
+
...config,
|
|
1273
|
+
type: config.type
|
|
1274
|
+
};
|
|
1275
|
+
};
|
|
1222
1276
|
var createCaveatBuilderFromScope = (environment, scopeConfig) => {
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
case
|
|
1231
|
-
return
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
case "
|
|
1241
|
-
return
|
|
1277
|
+
const normalizedScopeConfig = normalizeScopeConfig(scopeConfig);
|
|
1278
|
+
switch (normalizedScopeConfig.type) {
|
|
1279
|
+
case "erc20TransferAmount" /* Erc20TransferAmount */:
|
|
1280
|
+
return createErc20TransferCaveatBuilder(
|
|
1281
|
+
environment,
|
|
1282
|
+
normalizedScopeConfig
|
|
1283
|
+
);
|
|
1284
|
+
case "erc20Streaming" /* Erc20Streaming */:
|
|
1285
|
+
return createErc20StreamingCaveatBuilder(
|
|
1286
|
+
environment,
|
|
1287
|
+
normalizedScopeConfig
|
|
1288
|
+
);
|
|
1289
|
+
case "erc20PeriodTransfer" /* Erc20PeriodTransfer */:
|
|
1290
|
+
return createErc20PeriodicCaveatBuilder(
|
|
1291
|
+
environment,
|
|
1292
|
+
normalizedScopeConfig
|
|
1293
|
+
);
|
|
1294
|
+
case "nativeTokenTransferAmount" /* NativeTokenTransferAmount */:
|
|
1295
|
+
return createNativeTokenTransferCaveatBuilder(
|
|
1296
|
+
environment,
|
|
1297
|
+
normalizedScopeConfig
|
|
1298
|
+
);
|
|
1299
|
+
case "nativeTokenStreaming" /* NativeTokenStreaming */:
|
|
1300
|
+
return createNativeTokenStreamingCaveatBuilder(
|
|
1301
|
+
environment,
|
|
1302
|
+
normalizedScopeConfig
|
|
1303
|
+
);
|
|
1304
|
+
case "nativeTokenPeriodTransfer" /* NativeTokenPeriodTransfer */:
|
|
1305
|
+
return createNativeTokenPeriodicCaveatBuilder(
|
|
1306
|
+
environment,
|
|
1307
|
+
normalizedScopeConfig
|
|
1308
|
+
);
|
|
1309
|
+
case "erc721Transfer" /* Erc721Transfer */:
|
|
1310
|
+
return createErc721CaveatBuilder(environment, normalizedScopeConfig);
|
|
1311
|
+
case "ownershipTransfer" /* OwnershipTransfer */:
|
|
1312
|
+
return createOwnershipCaveatBuilder(environment, normalizedScopeConfig);
|
|
1313
|
+
case "functionCall" /* FunctionCall */:
|
|
1314
|
+
return createFunctionCallCaveatBuilder(
|
|
1315
|
+
environment,
|
|
1316
|
+
normalizedScopeConfig
|
|
1317
|
+
);
|
|
1242
1318
|
default:
|
|
1243
|
-
const exhaustivenessCheck =
|
|
1319
|
+
const exhaustivenessCheck = normalizedScopeConfig;
|
|
1244
1320
|
throw new Error(
|
|
1245
1321
|
`Invalid scope type: ${exhaustivenessCheck.type}`
|
|
1246
1322
|
);
|
|
@@ -1279,11 +1355,10 @@ var resolveCaveats = ({
|
|
|
1279
1355
|
|
|
1280
1356
|
// src/caveats.ts
|
|
1281
1357
|
import {
|
|
1282
|
-
|
|
1283
|
-
encodeAbiParameters as encodeAbiParameters3,
|
|
1358
|
+
encodeAbiParameters,
|
|
1284
1359
|
parseAbiParameters,
|
|
1285
1360
|
keccak256,
|
|
1286
|
-
toHex as
|
|
1361
|
+
toHex as toHex2
|
|
1287
1362
|
} from "viem";
|
|
1288
1363
|
var CAVEAT_ABI_TYPE_COMPONENTS = [
|
|
1289
1364
|
{ type: "address", name: "enforcer" },
|
|
@@ -1291,9 +1366,9 @@ var CAVEAT_ABI_TYPE_COMPONENTS = [
|
|
|
1291
1366
|
{ type: "bytes", name: "args" }
|
|
1292
1367
|
];
|
|
1293
1368
|
var CAVEAT_TYPEHASH = keccak256(
|
|
1294
|
-
|
|
1369
|
+
toHex2("Caveat(address enforcer,bytes terms)")
|
|
1295
1370
|
);
|
|
1296
|
-
var createCaveat = (enforcer, terms, args = "
|
|
1371
|
+
var createCaveat = (enforcer, terms, args = "0x00") => ({
|
|
1297
1372
|
enforcer,
|
|
1298
1373
|
terms,
|
|
1299
1374
|
args
|
|
@@ -1303,13 +1378,15 @@ var createCaveat = (enforcer, terms, args = "0x") => ({
|
|
|
1303
1378
|
import {
|
|
1304
1379
|
encodeDelegations as encodeDelegationsCore,
|
|
1305
1380
|
decodeDelegations as decodeDelegationsCore,
|
|
1306
|
-
|
|
1381
|
+
encodeDelegation as encodeDelegationCore,
|
|
1382
|
+
decodeDelegation as decodeDelegationCore,
|
|
1383
|
+
hashDelegation as hashDelegationCore,
|
|
1307
1384
|
ANY_BENEFICIARY,
|
|
1308
1385
|
DELEGATION_TYPEHASH,
|
|
1309
1386
|
CAVEAT_TYPEHASH as CAVEAT_TYPEHASH2,
|
|
1310
1387
|
ROOT_AUTHORITY
|
|
1311
1388
|
} from "@metamask/delegation-core";
|
|
1312
|
-
import {
|
|
1389
|
+
import { toHex as toHex3, getAddress, isHex as isHex5 } from "viem";
|
|
1313
1390
|
import { signTypedData } from "viem/accounts";
|
|
1314
1391
|
var DELEGATION_ABI_TYPE_COMPONENTS = [
|
|
1315
1392
|
{ type: "address", name: "delegate" },
|
|
@@ -1338,25 +1415,38 @@ var toDelegationStruct = (delegation) => {
|
|
|
1338
1415
|
var toDelegation = (delegationStruct) => {
|
|
1339
1416
|
return {
|
|
1340
1417
|
...delegationStruct,
|
|
1341
|
-
salt:
|
|
1418
|
+
salt: toHex3(delegationStruct.salt)
|
|
1342
1419
|
};
|
|
1343
1420
|
};
|
|
1344
1421
|
var encodeDelegations = (delegations) => {
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1422
|
+
if (Array.isArray(delegations)) {
|
|
1423
|
+
const delegationStructs = delegations.map(toDelegationStruct);
|
|
1424
|
+
return encodeDelegationsCore(delegationStructs);
|
|
1425
|
+
}
|
|
1426
|
+
if (isHex5(delegations)) {
|
|
1427
|
+
return delegations;
|
|
1428
|
+
}
|
|
1429
|
+
throw new Error(
|
|
1430
|
+
"Invalid delegations - must be an array of delegations or a hex string"
|
|
1351
1431
|
);
|
|
1352
|
-
return encodedDelegations;
|
|
1353
1432
|
};
|
|
1354
|
-
var
|
|
1355
|
-
|
|
1433
|
+
var encodeDelegation = (delegation) => {
|
|
1434
|
+
const delegationStruct = toDelegationStruct(delegation);
|
|
1435
|
+
return encodeDelegationCore(delegationStruct);
|
|
1436
|
+
};
|
|
1437
|
+
var decodeDelegations = (delegations) => {
|
|
1438
|
+
if (Array.isArray(delegations)) {
|
|
1439
|
+
return delegations;
|
|
1440
|
+
}
|
|
1441
|
+
if (isHex5(delegations)) {
|
|
1442
|
+
return decodeDelegationsCore(delegations).map(toDelegation);
|
|
1443
|
+
}
|
|
1444
|
+
throw new Error(
|
|
1445
|
+
"Invalid delegations - must be an array of delegations or a hex string"
|
|
1446
|
+
);
|
|
1356
1447
|
};
|
|
1357
|
-
var
|
|
1358
|
-
|
|
1359
|
-
return delegationChains;
|
|
1448
|
+
var decodeDelegation = (encoded) => {
|
|
1449
|
+
return toDelegation(decodeDelegationCore(encoded));
|
|
1360
1450
|
};
|
|
1361
1451
|
var SIGNABLE_DELEGATION_TYPED_DATA = {
|
|
1362
1452
|
Caveat: [
|
|
@@ -1375,9 +1465,13 @@ var DELEGATION_ARRAY_ABI_TYPE = {
|
|
|
1375
1465
|
type: "tuple[]",
|
|
1376
1466
|
components: DELEGATION_ABI_TYPE_COMPONENTS
|
|
1377
1467
|
};
|
|
1378
|
-
var
|
|
1468
|
+
var DELEGATION_ABI_TYPE = {
|
|
1469
|
+
type: "tuple",
|
|
1470
|
+
components: DELEGATION_ABI_TYPE_COMPONENTS
|
|
1471
|
+
};
|
|
1472
|
+
var hashDelegation = (input) => {
|
|
1379
1473
|
const delegationStruct = toDelegationStruct(input);
|
|
1380
|
-
return
|
|
1474
|
+
return hashDelegationCore(delegationStruct);
|
|
1381
1475
|
};
|
|
1382
1476
|
var resolveAuthority = (parentDelegation) => {
|
|
1383
1477
|
if (!parentDelegation) {
|
|
@@ -1386,7 +1480,7 @@ var resolveAuthority = (parentDelegation) => {
|
|
|
1386
1480
|
if (typeof parentDelegation === "string") {
|
|
1387
1481
|
return parentDelegation;
|
|
1388
1482
|
}
|
|
1389
|
-
return
|
|
1483
|
+
return hashDelegation(parentDelegation);
|
|
1390
1484
|
};
|
|
1391
1485
|
var createDelegation = (options) => {
|
|
1392
1486
|
return {
|
|
@@ -1394,7 +1488,7 @@ var createDelegation = (options) => {
|
|
|
1394
1488
|
delegator: options.from,
|
|
1395
1489
|
authority: resolveAuthority(options.parentDelegation),
|
|
1396
1490
|
caveats: resolveCaveats(options),
|
|
1397
|
-
salt: options.salt ?? "
|
|
1491
|
+
salt: options.salt ?? "0x00",
|
|
1398
1492
|
signature: "0x"
|
|
1399
1493
|
};
|
|
1400
1494
|
};
|
|
@@ -1404,7 +1498,7 @@ var createOpenDelegation = (options) => {
|
|
|
1404
1498
|
delegator: options.from,
|
|
1405
1499
|
authority: resolveAuthority(options.parentDelegation),
|
|
1406
1500
|
caveats: resolveCaveats(options),
|
|
1407
|
-
salt: options.salt ?? "
|
|
1501
|
+
salt: options.salt ?? "0x00",
|
|
1408
1502
|
signature: "0x"
|
|
1409
1503
|
};
|
|
1410
1504
|
};
|
|
@@ -1462,6 +1556,10 @@ var signDelegation = async ({
|
|
|
1462
1556
|
|
|
1463
1557
|
export {
|
|
1464
1558
|
__export,
|
|
1559
|
+
Implementation,
|
|
1560
|
+
TransferWindow,
|
|
1561
|
+
ScopeType,
|
|
1562
|
+
CaveatType,
|
|
1465
1563
|
CaveatBuilder,
|
|
1466
1564
|
BalanceChangeType,
|
|
1467
1565
|
createCaveatBuilder,
|
|
@@ -1475,15 +1573,16 @@ export {
|
|
|
1475
1573
|
toDelegationStruct,
|
|
1476
1574
|
toDelegation,
|
|
1477
1575
|
encodeDelegations,
|
|
1478
|
-
|
|
1576
|
+
encodeDelegation,
|
|
1479
1577
|
decodeDelegations,
|
|
1480
|
-
|
|
1578
|
+
decodeDelegation,
|
|
1481
1579
|
SIGNABLE_DELEGATION_TYPED_DATA,
|
|
1482
1580
|
DELEGATION_ARRAY_ABI_TYPE,
|
|
1483
|
-
|
|
1581
|
+
DELEGATION_ABI_TYPE,
|
|
1582
|
+
hashDelegation,
|
|
1484
1583
|
createDelegation,
|
|
1485
1584
|
createOpenDelegation,
|
|
1486
1585
|
prepareSignDelegationTypedData,
|
|
1487
1586
|
signDelegation
|
|
1488
1587
|
};
|
|
1489
|
-
//# sourceMappingURL=chunk-
|
|
1588
|
+
//# sourceMappingURL=chunk-C5ZEEH2Z.mjs.map
|