@metamask/delegation-core 1.1.0 → 2.1.0
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 +19 -1
- package/dist/index.cjs +97 -26
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +40 -19
- package/dist/index.d.ts +40 -19
- package/dist/index.mjs +100 -29
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -15,6 +15,11 @@ type DelegationStruct<TBytes extends BytesLike = BytesLike> = {
|
|
|
15
15
|
signature: TBytes;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
+
declare enum BalanceChangeType {
|
|
19
|
+
Increase = 0,
|
|
20
|
+
Decrease = 1
|
|
21
|
+
}
|
|
22
|
+
|
|
18
23
|
type ResultValue = 'hex' | 'bytes';
|
|
19
24
|
type ResultType<TResultValue extends ResultValue> = TResultValue extends 'hex' ? Hex : Uint8Array;
|
|
20
25
|
type DecodedBytesLike<TResultValue extends ResultValue> = ResultType<TResultValue>;
|
|
@@ -37,13 +42,13 @@ declare function createTimestampTerms(terms: TimestampTerms, encodingOptions?: E
|
|
|
37
42
|
declare function createTimestampTerms(terms: TimestampTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
38
43
|
declare function decodeTimestampTerms(terms: BytesLike): TimestampTerms;
|
|
39
44
|
|
|
40
|
-
type NativeTokenPeriodTransferTerms = {
|
|
45
|
+
type NativeTokenPeriodTransferTerms<TDuration extends number | bigint = number> = {
|
|
41
46
|
periodAmount: bigint;
|
|
42
|
-
periodDuration:
|
|
47
|
+
periodDuration: TDuration;
|
|
43
48
|
startDate: number;
|
|
44
49
|
};
|
|
45
|
-
declare function createNativeTokenPeriodTransferTerms(terms: NativeTokenPeriodTransferTerms
|
|
46
|
-
declare function createNativeTokenPeriodTransferTerms(terms: NativeTokenPeriodTransferTerms
|
|
50
|
+
declare function createNativeTokenPeriodTransferTerms(terms: NativeTokenPeriodTransferTerms<number | bigint>, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
51
|
+
declare function createNativeTokenPeriodTransferTerms(terms: NativeTokenPeriodTransferTerms<number | bigint>, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
47
52
|
declare function decodeNativeTokenPeriodTransferTerms(terms: BytesLike): NativeTokenPeriodTransferTerms;
|
|
48
53
|
|
|
49
54
|
type ExactCalldataTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
@@ -119,7 +124,7 @@ declare function decodeNativeTokenPaymentTerms(terms: BytesLike, encodingOptions
|
|
|
119
124
|
type NativeBalanceChangeTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
120
125
|
recipient: TBytesLike;
|
|
121
126
|
balance: bigint;
|
|
122
|
-
changeType:
|
|
127
|
+
changeType: BalanceChangeType;
|
|
123
128
|
};
|
|
124
129
|
declare function createNativeBalanceChangeTerms(terms: NativeBalanceChangeTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
125
130
|
declare function createNativeBalanceChangeTerms(terms: NativeBalanceChangeTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
@@ -138,14 +143,14 @@ declare function createERC20StreamingTerms(terms: ERC20StreamingTerms, encodingO
|
|
|
138
143
|
declare function decodeERC20StreamingTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): ERC20StreamingTerms<DecodedBytesLike<'hex'>>;
|
|
139
144
|
declare function decodeERC20StreamingTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): ERC20StreamingTerms<DecodedBytesLike<'bytes'>>;
|
|
140
145
|
|
|
141
|
-
type ERC20TokenPeriodTransferTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
146
|
+
type ERC20TokenPeriodTransferTerms<TBytesLike extends BytesLike = BytesLike, TDuration extends number | bigint = number> = {
|
|
142
147
|
tokenAddress: TBytesLike;
|
|
143
148
|
periodAmount: bigint;
|
|
144
|
-
periodDuration:
|
|
149
|
+
periodDuration: TDuration;
|
|
145
150
|
startDate: number;
|
|
146
151
|
};
|
|
147
|
-
declare function createERC20TokenPeriodTransferTerms(terms: ERC20TokenPeriodTransferTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
148
|
-
declare function createERC20TokenPeriodTransferTerms(terms: ERC20TokenPeriodTransferTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
152
|
+
declare function createERC20TokenPeriodTransferTerms(terms: ERC20TokenPeriodTransferTerms<BytesLike, number | bigint>, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
153
|
+
declare function createERC20TokenPeriodTransferTerms(terms: ERC20TokenPeriodTransferTerms<BytesLike, number | bigint>, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
149
154
|
declare function decodeERC20TokenPeriodTransferTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): ERC20TokenPeriodTransferTerms<DecodedBytesLike<'hex'>>;
|
|
150
155
|
declare function decodeERC20TokenPeriodTransferTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): ERC20TokenPeriodTransferTerms<DecodedBytesLike<'bytes'>>;
|
|
151
156
|
|
|
@@ -162,7 +167,7 @@ type ERC20BalanceChangeTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
|
162
167
|
tokenAddress: TBytesLike;
|
|
163
168
|
recipient: TBytesLike;
|
|
164
169
|
balance: bigint;
|
|
165
|
-
changeType:
|
|
170
|
+
changeType: BalanceChangeType;
|
|
166
171
|
};
|
|
167
172
|
declare function createERC20BalanceChangeTerms(terms: ERC20BalanceChangeTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
168
173
|
declare function createERC20BalanceChangeTerms(terms: ERC20BalanceChangeTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
@@ -173,7 +178,7 @@ type ERC721BalanceChangeTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
|
173
178
|
tokenAddress: TBytesLike;
|
|
174
179
|
recipient: TBytesLike;
|
|
175
180
|
amount: bigint;
|
|
176
|
-
changeType:
|
|
181
|
+
changeType: BalanceChangeType;
|
|
177
182
|
};
|
|
178
183
|
declare function createERC721BalanceChangeTerms(terms: ERC721BalanceChangeTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
179
184
|
declare function createERC721BalanceChangeTerms(terms: ERC721BalanceChangeTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
@@ -194,7 +199,7 @@ type ERC1155BalanceChangeTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
|
194
199
|
recipient: TBytesLike;
|
|
195
200
|
tokenId: bigint;
|
|
196
201
|
balance: bigint;
|
|
197
|
-
changeType:
|
|
202
|
+
changeType: BalanceChangeType;
|
|
198
203
|
};
|
|
199
204
|
declare function createERC1155BalanceChangeTerms(terms: ERC1155BalanceChangeTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
200
205
|
declare function createERC1155BalanceChangeTerms(terms: ERC1155BalanceChangeTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
@@ -274,17 +279,17 @@ declare function createLimitedCallsTerms(terms: LimitedCallsTerms, encodingOptio
|
|
|
274
279
|
declare function createLimitedCallsTerms(terms: LimitedCallsTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
275
280
|
declare function decodeLimitedCallsTerms(terms: BytesLike): LimitedCallsTerms;
|
|
276
281
|
|
|
277
|
-
type TokenPeriodConfig<TBytesLike extends BytesLike = BytesLike> = {
|
|
282
|
+
type TokenPeriodConfig<TBytesLike extends BytesLike = BytesLike, TDuration extends number | bigint = number> = {
|
|
278
283
|
token: TBytesLike;
|
|
279
284
|
periodAmount: bigint;
|
|
280
|
-
periodDuration:
|
|
285
|
+
periodDuration: TDuration;
|
|
281
286
|
startDate: number;
|
|
282
287
|
};
|
|
283
|
-
type MultiTokenPeriodTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
284
|
-
tokenConfigs: TokenPeriodConfig<TBytesLike>[];
|
|
288
|
+
type MultiTokenPeriodTerms<TBytesLike extends BytesLike = BytesLike, TDuration extends number | bigint = number> = {
|
|
289
|
+
tokenConfigs: TokenPeriodConfig<TBytesLike, TDuration>[];
|
|
285
290
|
};
|
|
286
|
-
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
287
|
-
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
291
|
+
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms<BytesLike, number | bigint>, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
292
|
+
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms<BytesLike, number | bigint>, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
288
293
|
declare function decodeMultiTokenPeriodTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): MultiTokenPeriodTerms<DecodedBytesLike<'hex'>>;
|
|
289
294
|
declare function decodeMultiTokenPeriodTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): MultiTokenPeriodTerms<DecodedBytesLike<'bytes'>>;
|
|
290
295
|
|
|
@@ -316,6 +321,22 @@ declare function createSpecificActionERC20TransferBatchTerms(terms: SpecificActi
|
|
|
316
321
|
declare function decodeSpecificActionERC20TransferBatchTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): SpecificActionERC20TransferBatchTerms<DecodedBytesLike<'hex'>>;
|
|
317
322
|
declare function decodeSpecificActionERC20TransferBatchTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): SpecificActionERC20TransferBatchTerms<DecodedBytesLike<'bytes'>>;
|
|
318
323
|
|
|
324
|
+
type LogicalOrWrapperTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
325
|
+
caveatGroups: CaveatStruct<TBytesLike>[][];
|
|
326
|
+
};
|
|
327
|
+
type LogicalOrWrapperArgs<TBytesLike extends BytesLike = BytesLike> = {
|
|
328
|
+
groupIndex: bigint;
|
|
329
|
+
caveatArgs: TBytesLike[];
|
|
330
|
+
};
|
|
331
|
+
declare function createLogicalOrWrapperTerms(terms: LogicalOrWrapperTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
332
|
+
declare function createLogicalOrWrapperTerms(terms: LogicalOrWrapperTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
333
|
+
declare function decodeLogicalOrWrapperTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): LogicalOrWrapperTerms<DecodedBytesLike<'hex'>>;
|
|
334
|
+
declare function decodeLogicalOrWrapperTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): LogicalOrWrapperTerms<DecodedBytesLike<'bytes'>>;
|
|
335
|
+
declare function createLogicalOrWrapperArgs(args: LogicalOrWrapperArgs, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
336
|
+
declare function createLogicalOrWrapperArgs(args: LogicalOrWrapperArgs, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
337
|
+
declare function decodeLogicalOrWrapperArgs(args: BytesLike, encodingOptions?: EncodingOptions<'hex'>): LogicalOrWrapperArgs<DecodedBytesLike<'hex'>>;
|
|
338
|
+
declare function decodeLogicalOrWrapperArgs(args: BytesLike, encodingOptions: EncodingOptions<'bytes'>): LogicalOrWrapperArgs<DecodedBytesLike<'bytes'>>;
|
|
339
|
+
|
|
319
340
|
declare const ANY_BENEFICIARY: "0x0000000000000000000000000000000000000a11";
|
|
320
341
|
declare const ROOT_AUTHORITY: "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
|
|
321
342
|
declare const DELEGATION_TYPEHASH: "0x88c1d2ecf185adf710588203a5f263f0ff61be0d33da39792cde19ba9aa4331e";
|
|
@@ -331,4 +352,4 @@ declare function decodeDelegation(encoded: BytesLike, options: EncodingOptions<'
|
|
|
331
352
|
declare function hashDelegation(delegation: DelegationStruct, options?: EncodingOptions<'hex'>): Hex;
|
|
332
353
|
declare function hashDelegation(delegation: DelegationStruct, options: EncodingOptions<'bytes'>): Uint8Array;
|
|
333
354
|
|
|
334
|
-
export { ANY_BENEFICIARY, CAVEAT_TYPEHASH, type CaveatStruct as Caveat, DELEGATION_TYPEHASH, type DelegationStruct as Delegation, ROOT_AUTHORITY, createAllowedCalldataTerms, createAllowedMethodsTerms, createAllowedTargetsTerms, createArgsEqualityCheckTerms, createBlockNumberTerms, createDeployedTerms, createERC1155BalanceChangeTerms, createERC20BalanceChangeTerms, createERC20StreamingTerms, createERC20TokenPeriodTransferTerms, createERC20TransferAmountTerms, createERC721BalanceChangeTerms, createERC721TransferTerms, createExactCalldataBatchTerms, createExactCalldataTerms, createExactExecutionBatchTerms, createExactExecutionTerms, createIdTerms, createLimitedCallsTerms, createMultiTokenPeriodTerms, createNativeBalanceChangeTerms, createNativeTokenPaymentTerms, createNativeTokenPeriodTransferTerms, createNativeTokenStreamingTerms, createNativeTokenTransferAmountTerms, createNonceTerms, createOwnershipTransferTerms, createRedeemerTerms, createSpecificActionERC20TransferBatchTerms, createTimestampTerms, createValueLteTerms, decodeAllowedCalldataTerms, decodeAllowedMethodsTerms, decodeAllowedTargetsTerms, decodeArgsEqualityCheckTerms, decodeBlockNumberTerms, decodeDelegation, decodeDelegations, decodeDeployedTerms, decodeERC1155BalanceChangeTerms, decodeERC20BalanceChangeTerms, decodeERC20StreamingTerms, decodeERC20TokenPeriodTransferTerms, decodeERC20TransferAmountTerms, decodeERC721BalanceChangeTerms, decodeERC721TransferTerms, decodeExactCalldataBatchTerms, decodeExactCalldataTerms, decodeExactExecutionBatchTerms, decodeExactExecutionTerms, decodeIdTerms, decodeLimitedCallsTerms, decodeMultiTokenPeriodTerms, decodeNativeBalanceChangeTerms, decodeNativeTokenPaymentTerms, decodeNativeTokenPeriodTransferTerms, decodeNativeTokenStreamingTerms, decodeNativeTokenTransferAmountTerms, decodeNonceTerms, decodeOwnershipTransferTerms, decodeRedeemerTerms, decodeSpecificActionERC20TransferBatchTerms, decodeTimestampTerms, decodeValueLteTerms, encodeDelegation, encodeDelegations, hashDelegation };
|
|
355
|
+
export { ANY_BENEFICIARY, BalanceChangeType, CAVEAT_TYPEHASH, type CaveatStruct as Caveat, DELEGATION_TYPEHASH, type DelegationStruct as Delegation, ROOT_AUTHORITY, createAllowedCalldataTerms, createAllowedMethodsTerms, createAllowedTargetsTerms, createArgsEqualityCheckTerms, createBlockNumberTerms, createDeployedTerms, createERC1155BalanceChangeTerms, createERC20BalanceChangeTerms, createERC20StreamingTerms, createERC20TokenPeriodTransferTerms, createERC20TransferAmountTerms, createERC721BalanceChangeTerms, createERC721TransferTerms, createExactCalldataBatchTerms, createExactCalldataTerms, createExactExecutionBatchTerms, createExactExecutionTerms, createIdTerms, createLimitedCallsTerms, createLogicalOrWrapperArgs, createLogicalOrWrapperTerms, createMultiTokenPeriodTerms, createNativeBalanceChangeTerms, createNativeTokenPaymentTerms, createNativeTokenPeriodTransferTerms, createNativeTokenStreamingTerms, createNativeTokenTransferAmountTerms, createNonceTerms, createOwnershipTransferTerms, createRedeemerTerms, createSpecificActionERC20TransferBatchTerms, createTimestampTerms, createValueLteTerms, decodeAllowedCalldataTerms, decodeAllowedMethodsTerms, decodeAllowedTargetsTerms, decodeArgsEqualityCheckTerms, decodeBlockNumberTerms, decodeDelegation, decodeDelegations, decodeDeployedTerms, decodeERC1155BalanceChangeTerms, decodeERC20BalanceChangeTerms, decodeERC20StreamingTerms, decodeERC20TokenPeriodTransferTerms, decodeERC20TransferAmountTerms, decodeERC721BalanceChangeTerms, decodeERC721TransferTerms, decodeExactCalldataBatchTerms, decodeExactCalldataTerms, decodeExactExecutionBatchTerms, decodeExactExecutionTerms, decodeIdTerms, decodeLimitedCallsTerms, decodeLogicalOrWrapperArgs, decodeLogicalOrWrapperTerms, decodeMultiTokenPeriodTerms, decodeNativeBalanceChangeTerms, decodeNativeTokenPaymentTerms, decodeNativeTokenPeriodTransferTerms, decodeNativeTokenStreamingTerms, decodeNativeTokenTransferAmountTerms, decodeNonceTerms, decodeOwnershipTransferTerms, decodeRedeemerTerms, decodeSpecificActionERC20TransferBatchTerms, decodeTimestampTerms, decodeValueLteTerms, encodeDelegation, encodeDelegations, hashDelegation };
|
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,11 @@ type DelegationStruct<TBytes extends BytesLike = BytesLike> = {
|
|
|
15
15
|
signature: TBytes;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
+
declare enum BalanceChangeType {
|
|
19
|
+
Increase = 0,
|
|
20
|
+
Decrease = 1
|
|
21
|
+
}
|
|
22
|
+
|
|
18
23
|
type ResultValue = 'hex' | 'bytes';
|
|
19
24
|
type ResultType<TResultValue extends ResultValue> = TResultValue extends 'hex' ? Hex : Uint8Array;
|
|
20
25
|
type DecodedBytesLike<TResultValue extends ResultValue> = ResultType<TResultValue>;
|
|
@@ -37,13 +42,13 @@ declare function createTimestampTerms(terms: TimestampTerms, encodingOptions?: E
|
|
|
37
42
|
declare function createTimestampTerms(terms: TimestampTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
38
43
|
declare function decodeTimestampTerms(terms: BytesLike): TimestampTerms;
|
|
39
44
|
|
|
40
|
-
type NativeTokenPeriodTransferTerms = {
|
|
45
|
+
type NativeTokenPeriodTransferTerms<TDuration extends number | bigint = number> = {
|
|
41
46
|
periodAmount: bigint;
|
|
42
|
-
periodDuration:
|
|
47
|
+
periodDuration: TDuration;
|
|
43
48
|
startDate: number;
|
|
44
49
|
};
|
|
45
|
-
declare function createNativeTokenPeriodTransferTerms(terms: NativeTokenPeriodTransferTerms
|
|
46
|
-
declare function createNativeTokenPeriodTransferTerms(terms: NativeTokenPeriodTransferTerms
|
|
50
|
+
declare function createNativeTokenPeriodTransferTerms(terms: NativeTokenPeriodTransferTerms<number | bigint>, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
51
|
+
declare function createNativeTokenPeriodTransferTerms(terms: NativeTokenPeriodTransferTerms<number | bigint>, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
47
52
|
declare function decodeNativeTokenPeriodTransferTerms(terms: BytesLike): NativeTokenPeriodTransferTerms;
|
|
48
53
|
|
|
49
54
|
type ExactCalldataTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
@@ -119,7 +124,7 @@ declare function decodeNativeTokenPaymentTerms(terms: BytesLike, encodingOptions
|
|
|
119
124
|
type NativeBalanceChangeTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
120
125
|
recipient: TBytesLike;
|
|
121
126
|
balance: bigint;
|
|
122
|
-
changeType:
|
|
127
|
+
changeType: BalanceChangeType;
|
|
123
128
|
};
|
|
124
129
|
declare function createNativeBalanceChangeTerms(terms: NativeBalanceChangeTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
125
130
|
declare function createNativeBalanceChangeTerms(terms: NativeBalanceChangeTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
@@ -138,14 +143,14 @@ declare function createERC20StreamingTerms(terms: ERC20StreamingTerms, encodingO
|
|
|
138
143
|
declare function decodeERC20StreamingTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): ERC20StreamingTerms<DecodedBytesLike<'hex'>>;
|
|
139
144
|
declare function decodeERC20StreamingTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): ERC20StreamingTerms<DecodedBytesLike<'bytes'>>;
|
|
140
145
|
|
|
141
|
-
type ERC20TokenPeriodTransferTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
146
|
+
type ERC20TokenPeriodTransferTerms<TBytesLike extends BytesLike = BytesLike, TDuration extends number | bigint = number> = {
|
|
142
147
|
tokenAddress: TBytesLike;
|
|
143
148
|
periodAmount: bigint;
|
|
144
|
-
periodDuration:
|
|
149
|
+
periodDuration: TDuration;
|
|
145
150
|
startDate: number;
|
|
146
151
|
};
|
|
147
|
-
declare function createERC20TokenPeriodTransferTerms(terms: ERC20TokenPeriodTransferTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
148
|
-
declare function createERC20TokenPeriodTransferTerms(terms: ERC20TokenPeriodTransferTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
152
|
+
declare function createERC20TokenPeriodTransferTerms(terms: ERC20TokenPeriodTransferTerms<BytesLike, number | bigint>, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
153
|
+
declare function createERC20TokenPeriodTransferTerms(terms: ERC20TokenPeriodTransferTerms<BytesLike, number | bigint>, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
149
154
|
declare function decodeERC20TokenPeriodTransferTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): ERC20TokenPeriodTransferTerms<DecodedBytesLike<'hex'>>;
|
|
150
155
|
declare function decodeERC20TokenPeriodTransferTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): ERC20TokenPeriodTransferTerms<DecodedBytesLike<'bytes'>>;
|
|
151
156
|
|
|
@@ -162,7 +167,7 @@ type ERC20BalanceChangeTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
|
162
167
|
tokenAddress: TBytesLike;
|
|
163
168
|
recipient: TBytesLike;
|
|
164
169
|
balance: bigint;
|
|
165
|
-
changeType:
|
|
170
|
+
changeType: BalanceChangeType;
|
|
166
171
|
};
|
|
167
172
|
declare function createERC20BalanceChangeTerms(terms: ERC20BalanceChangeTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
168
173
|
declare function createERC20BalanceChangeTerms(terms: ERC20BalanceChangeTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
@@ -173,7 +178,7 @@ type ERC721BalanceChangeTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
|
173
178
|
tokenAddress: TBytesLike;
|
|
174
179
|
recipient: TBytesLike;
|
|
175
180
|
amount: bigint;
|
|
176
|
-
changeType:
|
|
181
|
+
changeType: BalanceChangeType;
|
|
177
182
|
};
|
|
178
183
|
declare function createERC721BalanceChangeTerms(terms: ERC721BalanceChangeTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
179
184
|
declare function createERC721BalanceChangeTerms(terms: ERC721BalanceChangeTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
@@ -194,7 +199,7 @@ type ERC1155BalanceChangeTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
|
194
199
|
recipient: TBytesLike;
|
|
195
200
|
tokenId: bigint;
|
|
196
201
|
balance: bigint;
|
|
197
|
-
changeType:
|
|
202
|
+
changeType: BalanceChangeType;
|
|
198
203
|
};
|
|
199
204
|
declare function createERC1155BalanceChangeTerms(terms: ERC1155BalanceChangeTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
200
205
|
declare function createERC1155BalanceChangeTerms(terms: ERC1155BalanceChangeTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
@@ -274,17 +279,17 @@ declare function createLimitedCallsTerms(terms: LimitedCallsTerms, encodingOptio
|
|
|
274
279
|
declare function createLimitedCallsTerms(terms: LimitedCallsTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
275
280
|
declare function decodeLimitedCallsTerms(terms: BytesLike): LimitedCallsTerms;
|
|
276
281
|
|
|
277
|
-
type TokenPeriodConfig<TBytesLike extends BytesLike = BytesLike> = {
|
|
282
|
+
type TokenPeriodConfig<TBytesLike extends BytesLike = BytesLike, TDuration extends number | bigint = number> = {
|
|
278
283
|
token: TBytesLike;
|
|
279
284
|
periodAmount: bigint;
|
|
280
|
-
periodDuration:
|
|
285
|
+
periodDuration: TDuration;
|
|
281
286
|
startDate: number;
|
|
282
287
|
};
|
|
283
|
-
type MultiTokenPeriodTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
284
|
-
tokenConfigs: TokenPeriodConfig<TBytesLike>[];
|
|
288
|
+
type MultiTokenPeriodTerms<TBytesLike extends BytesLike = BytesLike, TDuration extends number | bigint = number> = {
|
|
289
|
+
tokenConfigs: TokenPeriodConfig<TBytesLike, TDuration>[];
|
|
285
290
|
};
|
|
286
|
-
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
287
|
-
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
291
|
+
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms<BytesLike, number | bigint>, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
292
|
+
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms<BytesLike, number | bigint>, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
288
293
|
declare function decodeMultiTokenPeriodTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): MultiTokenPeriodTerms<DecodedBytesLike<'hex'>>;
|
|
289
294
|
declare function decodeMultiTokenPeriodTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): MultiTokenPeriodTerms<DecodedBytesLike<'bytes'>>;
|
|
290
295
|
|
|
@@ -316,6 +321,22 @@ declare function createSpecificActionERC20TransferBatchTerms(terms: SpecificActi
|
|
|
316
321
|
declare function decodeSpecificActionERC20TransferBatchTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): SpecificActionERC20TransferBatchTerms<DecodedBytesLike<'hex'>>;
|
|
317
322
|
declare function decodeSpecificActionERC20TransferBatchTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): SpecificActionERC20TransferBatchTerms<DecodedBytesLike<'bytes'>>;
|
|
318
323
|
|
|
324
|
+
type LogicalOrWrapperTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
325
|
+
caveatGroups: CaveatStruct<TBytesLike>[][];
|
|
326
|
+
};
|
|
327
|
+
type LogicalOrWrapperArgs<TBytesLike extends BytesLike = BytesLike> = {
|
|
328
|
+
groupIndex: bigint;
|
|
329
|
+
caveatArgs: TBytesLike[];
|
|
330
|
+
};
|
|
331
|
+
declare function createLogicalOrWrapperTerms(terms: LogicalOrWrapperTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
332
|
+
declare function createLogicalOrWrapperTerms(terms: LogicalOrWrapperTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
333
|
+
declare function decodeLogicalOrWrapperTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): LogicalOrWrapperTerms<DecodedBytesLike<'hex'>>;
|
|
334
|
+
declare function decodeLogicalOrWrapperTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): LogicalOrWrapperTerms<DecodedBytesLike<'bytes'>>;
|
|
335
|
+
declare function createLogicalOrWrapperArgs(args: LogicalOrWrapperArgs, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
336
|
+
declare function createLogicalOrWrapperArgs(args: LogicalOrWrapperArgs, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
337
|
+
declare function decodeLogicalOrWrapperArgs(args: BytesLike, encodingOptions?: EncodingOptions<'hex'>): LogicalOrWrapperArgs<DecodedBytesLike<'hex'>>;
|
|
338
|
+
declare function decodeLogicalOrWrapperArgs(args: BytesLike, encodingOptions: EncodingOptions<'bytes'>): LogicalOrWrapperArgs<DecodedBytesLike<'bytes'>>;
|
|
339
|
+
|
|
319
340
|
declare const ANY_BENEFICIARY: "0x0000000000000000000000000000000000000a11";
|
|
320
341
|
declare const ROOT_AUTHORITY: "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
|
|
321
342
|
declare const DELEGATION_TYPEHASH: "0x88c1d2ecf185adf710588203a5f263f0ff61be0d33da39792cde19ba9aa4331e";
|
|
@@ -331,4 +352,4 @@ declare function decodeDelegation(encoded: BytesLike, options: EncodingOptions<'
|
|
|
331
352
|
declare function hashDelegation(delegation: DelegationStruct, options?: EncodingOptions<'hex'>): Hex;
|
|
332
353
|
declare function hashDelegation(delegation: DelegationStruct, options: EncodingOptions<'bytes'>): Uint8Array;
|
|
333
354
|
|
|
334
|
-
export { ANY_BENEFICIARY, CAVEAT_TYPEHASH, type CaveatStruct as Caveat, DELEGATION_TYPEHASH, type DelegationStruct as Delegation, ROOT_AUTHORITY, createAllowedCalldataTerms, createAllowedMethodsTerms, createAllowedTargetsTerms, createArgsEqualityCheckTerms, createBlockNumberTerms, createDeployedTerms, createERC1155BalanceChangeTerms, createERC20BalanceChangeTerms, createERC20StreamingTerms, createERC20TokenPeriodTransferTerms, createERC20TransferAmountTerms, createERC721BalanceChangeTerms, createERC721TransferTerms, createExactCalldataBatchTerms, createExactCalldataTerms, createExactExecutionBatchTerms, createExactExecutionTerms, createIdTerms, createLimitedCallsTerms, createMultiTokenPeriodTerms, createNativeBalanceChangeTerms, createNativeTokenPaymentTerms, createNativeTokenPeriodTransferTerms, createNativeTokenStreamingTerms, createNativeTokenTransferAmountTerms, createNonceTerms, createOwnershipTransferTerms, createRedeemerTerms, createSpecificActionERC20TransferBatchTerms, createTimestampTerms, createValueLteTerms, decodeAllowedCalldataTerms, decodeAllowedMethodsTerms, decodeAllowedTargetsTerms, decodeArgsEqualityCheckTerms, decodeBlockNumberTerms, decodeDelegation, decodeDelegations, decodeDeployedTerms, decodeERC1155BalanceChangeTerms, decodeERC20BalanceChangeTerms, decodeERC20StreamingTerms, decodeERC20TokenPeriodTransferTerms, decodeERC20TransferAmountTerms, decodeERC721BalanceChangeTerms, decodeERC721TransferTerms, decodeExactCalldataBatchTerms, decodeExactCalldataTerms, decodeExactExecutionBatchTerms, decodeExactExecutionTerms, decodeIdTerms, decodeLimitedCallsTerms, decodeMultiTokenPeriodTerms, decodeNativeBalanceChangeTerms, decodeNativeTokenPaymentTerms, decodeNativeTokenPeriodTransferTerms, decodeNativeTokenStreamingTerms, decodeNativeTokenTransferAmountTerms, decodeNonceTerms, decodeOwnershipTransferTerms, decodeRedeemerTerms, decodeSpecificActionERC20TransferBatchTerms, decodeTimestampTerms, decodeValueLteTerms, encodeDelegation, encodeDelegations, hashDelegation };
|
|
355
|
+
export { ANY_BENEFICIARY, BalanceChangeType, CAVEAT_TYPEHASH, type CaveatStruct as Caveat, DELEGATION_TYPEHASH, type DelegationStruct as Delegation, ROOT_AUTHORITY, createAllowedCalldataTerms, createAllowedMethodsTerms, createAllowedTargetsTerms, createArgsEqualityCheckTerms, createBlockNumberTerms, createDeployedTerms, createERC1155BalanceChangeTerms, createERC20BalanceChangeTerms, createERC20StreamingTerms, createERC20TokenPeriodTransferTerms, createERC20TransferAmountTerms, createERC721BalanceChangeTerms, createERC721TransferTerms, createExactCalldataBatchTerms, createExactCalldataTerms, createExactExecutionBatchTerms, createExactExecutionTerms, createIdTerms, createLimitedCallsTerms, createLogicalOrWrapperArgs, createLogicalOrWrapperTerms, createMultiTokenPeriodTerms, createNativeBalanceChangeTerms, createNativeTokenPaymentTerms, createNativeTokenPeriodTransferTerms, createNativeTokenStreamingTerms, createNativeTokenTransferAmountTerms, createNonceTerms, createOwnershipTransferTerms, createRedeemerTerms, createSpecificActionERC20TransferBatchTerms, createTimestampTerms, createValueLteTerms, decodeAllowedCalldataTerms, decodeAllowedMethodsTerms, decodeAllowedTargetsTerms, decodeArgsEqualityCheckTerms, decodeBlockNumberTerms, decodeDelegation, decodeDelegations, decodeDeployedTerms, decodeERC1155BalanceChangeTerms, decodeERC20BalanceChangeTerms, decodeERC20StreamingTerms, decodeERC20TokenPeriodTransferTerms, decodeERC20TransferAmountTerms, decodeERC721BalanceChangeTerms, decodeERC721TransferTerms, decodeExactCalldataBatchTerms, decodeExactCalldataTerms, decodeExactExecutionBatchTerms, decodeExactExecutionTerms, decodeIdTerms, decodeLimitedCallsTerms, decodeLogicalOrWrapperArgs, decodeLogicalOrWrapperTerms, decodeMultiTokenPeriodTerms, decodeNativeBalanceChangeTerms, decodeNativeTokenPaymentTerms, decodeNativeTokenPeriodTransferTerms, decodeNativeTokenStreamingTerms, decodeNativeTokenTransferAmountTerms, decodeNonceTerms, decodeOwnershipTransferTerms, decodeRedeemerTerms, decodeSpecificActionERC20TransferBatchTerms, decodeTimestampTerms, decodeValueLteTerms, encodeDelegation, encodeDelegations, hashDelegation };
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
// src/caveats/types.ts
|
|
2
|
+
var BalanceChangeType = /* @__PURE__ */ ((BalanceChangeType2) => {
|
|
3
|
+
BalanceChangeType2[BalanceChangeType2["Increase"] = 0] = "Increase";
|
|
4
|
+
BalanceChangeType2[BalanceChangeType2["Decrease"] = 1] = "Decrease";
|
|
5
|
+
return BalanceChangeType2;
|
|
6
|
+
})(BalanceChangeType || {});
|
|
7
|
+
|
|
1
8
|
// src/internalUtils.ts
|
|
2
9
|
import {
|
|
3
10
|
bytesToHex,
|
|
@@ -467,7 +474,7 @@ function decodeNativeTokenPaymentTerms(terms, encodingOptions = defaultOptions)
|
|
|
467
474
|
|
|
468
475
|
// src/caveats/nativeBalanceChange.ts
|
|
469
476
|
function createNativeBalanceChangeTerms(terms, encodingOptions = defaultOptions) {
|
|
470
|
-
const { recipient, balance, changeType
|
|
477
|
+
const { recipient, balance, changeType } = terms;
|
|
471
478
|
const recipientHex = normalizeAddressLowercase(
|
|
472
479
|
recipient,
|
|
473
480
|
"Invalid recipient: must be a valid Address"
|
|
@@ -475,7 +482,6 @@ function createNativeBalanceChangeTerms(terms, encodingOptions = defaultOptions)
|
|
|
475
482
|
if (balance <= 0n) {
|
|
476
483
|
throw new Error("Invalid balance: must be a positive number");
|
|
477
484
|
}
|
|
478
|
-
const changeType = changeTypeNumber;
|
|
479
485
|
if (changeType !== 0 /* Increase */ && changeType !== 1 /* Decrease */) {
|
|
480
486
|
throw new Error("Invalid changeType: must be either Increase or Decrease");
|
|
481
487
|
}
|
|
@@ -653,12 +659,7 @@ function decodeERC20TransferAmountTerms(terms, encodingOptions = defaultOptions)
|
|
|
653
659
|
|
|
654
660
|
// src/caveats/erc20BalanceChange.ts
|
|
655
661
|
function createERC20BalanceChangeTerms(terms, encodingOptions = defaultOptions) {
|
|
656
|
-
const {
|
|
657
|
-
tokenAddress,
|
|
658
|
-
recipient,
|
|
659
|
-
balance,
|
|
660
|
-
changeType: changeTypeNumber
|
|
661
|
-
} = terms;
|
|
662
|
+
const { tokenAddress, recipient, balance, changeType } = terms;
|
|
662
663
|
const tokenAddressHex = normalizeAddressLowercase(
|
|
663
664
|
tokenAddress,
|
|
664
665
|
"Invalid tokenAddress: must be a valid address"
|
|
@@ -670,7 +671,6 @@ function createERC20BalanceChangeTerms(terms, encodingOptions = defaultOptions)
|
|
|
670
671
|
if (balance <= 0n) {
|
|
671
672
|
throw new Error("Invalid balance: must be a positive number");
|
|
672
673
|
}
|
|
673
|
-
const changeType = changeTypeNumber;
|
|
674
674
|
if (changeType !== 0 /* Increase */ && changeType !== 1 /* Decrease */) {
|
|
675
675
|
throw new Error("Invalid changeType: must be either Increase or Decrease");
|
|
676
676
|
}
|
|
@@ -705,12 +705,7 @@ function decodeERC20BalanceChangeTerms(terms, encodingOptions = defaultOptions)
|
|
|
705
705
|
|
|
706
706
|
// src/caveats/erc721BalanceChange.ts
|
|
707
707
|
function createERC721BalanceChangeTerms(terms, encodingOptions = defaultOptions) {
|
|
708
|
-
const {
|
|
709
|
-
tokenAddress,
|
|
710
|
-
recipient,
|
|
711
|
-
amount,
|
|
712
|
-
changeType: changeTypeNumber
|
|
713
|
-
} = terms;
|
|
708
|
+
const { tokenAddress, recipient, amount, changeType } = terms;
|
|
714
709
|
const tokenAddressHex = normalizeAddressLowercase(
|
|
715
710
|
tokenAddress,
|
|
716
711
|
"Invalid tokenAddress: must be a valid address"
|
|
@@ -722,7 +717,6 @@ function createERC721BalanceChangeTerms(terms, encodingOptions = defaultOptions)
|
|
|
722
717
|
if (amount <= 0n) {
|
|
723
718
|
throw new Error("Invalid balance: must be a positive number");
|
|
724
719
|
}
|
|
725
|
-
const changeType = changeTypeNumber;
|
|
726
720
|
if (changeType !== 0 /* Increase */ && changeType !== 1 /* Decrease */) {
|
|
727
721
|
throw new Error("Invalid changeType: must be either Increase or Decrease");
|
|
728
722
|
}
|
|
@@ -786,13 +780,7 @@ function decodeERC721TransferTerms(terms, encodingOptions = defaultOptions) {
|
|
|
786
780
|
|
|
787
781
|
// src/caveats/erc1155BalanceChange.ts
|
|
788
782
|
function createERC1155BalanceChangeTerms(terms, encodingOptions = defaultOptions) {
|
|
789
|
-
const {
|
|
790
|
-
tokenAddress,
|
|
791
|
-
recipient,
|
|
792
|
-
tokenId,
|
|
793
|
-
balance,
|
|
794
|
-
changeType: changeTypeNumber
|
|
795
|
-
} = terms;
|
|
783
|
+
const { tokenAddress, recipient, tokenId, balance, changeType } = terms;
|
|
796
784
|
const tokenAddressHex = normalizeAddressLowercase(
|
|
797
785
|
tokenAddress,
|
|
798
786
|
"Invalid tokenAddress: must be a valid address"
|
|
@@ -807,7 +795,6 @@ function createERC1155BalanceChangeTerms(terms, encodingOptions = defaultOptions
|
|
|
807
795
|
if (tokenId < 0n) {
|
|
808
796
|
throw new Error("Invalid tokenId: must be a non-negative number");
|
|
809
797
|
}
|
|
810
|
-
const changeType = changeTypeNumber;
|
|
811
798
|
if (changeType !== 0 /* Increase */ && changeType !== 1 /* Decrease */) {
|
|
812
799
|
throw new Error("Invalid changeType: must be either Increase or Decrease");
|
|
813
800
|
}
|
|
@@ -1311,8 +1298,87 @@ function decodeSpecificActionERC20TransferBatchTerms(terms, encodingOptions = de
|
|
|
1311
1298
|
};
|
|
1312
1299
|
}
|
|
1313
1300
|
|
|
1301
|
+
// src/caveats/logicalOrWrapper.ts
|
|
1302
|
+
import { decodeSingle as decodeSingle3, encodeSingle as encodeSingle3 } from "@metamask/abi-utils";
|
|
1303
|
+
import { bytesToHex as bytesToHex11 } from "@metamask/utils";
|
|
1304
|
+
var CAVEAT_GROUPS_ABI = "((address,bytes,bytes)[])[]";
|
|
1305
|
+
var SELECTED_GROUP_ABI = "(uint256,bytes[])";
|
|
1306
|
+
function assertValidCaveatGroups(groups) {
|
|
1307
|
+
if (!groups?.length) {
|
|
1308
|
+
throw new Error(
|
|
1309
|
+
"Invalid caveatGroups: must provide at least one caveat group"
|
|
1310
|
+
);
|
|
1311
|
+
}
|
|
1312
|
+
for (let i = 0; i < groups.length; i++) {
|
|
1313
|
+
const group = groups[i];
|
|
1314
|
+
if (!group?.length) {
|
|
1315
|
+
throw new Error(
|
|
1316
|
+
`Invalid caveatGroups: group at index ${i} must contain at least one caveat`
|
|
1317
|
+
);
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
}
|
|
1321
|
+
function normalizeCaveatTuple(caveat) {
|
|
1322
|
+
return [
|
|
1323
|
+
normalizeAddress(
|
|
1324
|
+
caveat.enforcer,
|
|
1325
|
+
"Invalid enforcer: must be a valid address"
|
|
1326
|
+
),
|
|
1327
|
+
normalizeHex(caveat.terms, "Invalid terms: must be a valid hex string"),
|
|
1328
|
+
normalizeHex(caveat.args, "Invalid args: must be a valid hex string")
|
|
1329
|
+
];
|
|
1330
|
+
}
|
|
1331
|
+
function encodeCaveatGroupTuple(group) {
|
|
1332
|
+
return [group.map(normalizeCaveatTuple)];
|
|
1333
|
+
}
|
|
1334
|
+
function createLogicalOrWrapperTerms(terms, encodingOptions = defaultOptions) {
|
|
1335
|
+
assertValidCaveatGroups(terms.caveatGroups);
|
|
1336
|
+
const encodableGroups = terms.caveatGroups.map(encodeCaveatGroupTuple);
|
|
1337
|
+
const hexValue = encodeSingle3(CAVEAT_GROUPS_ABI, encodableGroups);
|
|
1338
|
+
return prepareResult(hexValue, encodingOptions);
|
|
1339
|
+
}
|
|
1340
|
+
function decodeLogicalOrWrapperTerms(terms, encodingOptions = defaultOptions) {
|
|
1341
|
+
const hexTerms = bytesLikeToHex(terms);
|
|
1342
|
+
const decoded = decodeSingle3(
|
|
1343
|
+
CAVEAT_GROUPS_ABI,
|
|
1344
|
+
hexTerms
|
|
1345
|
+
);
|
|
1346
|
+
const caveatGroups = decoded.map(
|
|
1347
|
+
([caveats]) => caveats.map(([enforcer, caveatTerms, args]) => ({
|
|
1348
|
+
enforcer: prepareResult(enforcer, encodingOptions),
|
|
1349
|
+
terms: prepareResult(bytesToHex11(caveatTerms), encodingOptions),
|
|
1350
|
+
args: prepareResult(bytesToHex11(args), encodingOptions)
|
|
1351
|
+
}))
|
|
1352
|
+
);
|
|
1353
|
+
return { caveatGroups };
|
|
1354
|
+
}
|
|
1355
|
+
function createLogicalOrWrapperArgs(args, encodingOptions = defaultOptions) {
|
|
1356
|
+
if (args.groupIndex < 0n) {
|
|
1357
|
+
throw new Error("Invalid groupIndex: must be a non-negative number");
|
|
1358
|
+
}
|
|
1359
|
+
const caveatArgsHex = args.caveatArgs.map(
|
|
1360
|
+
(arg) => normalizeHex(arg, "Invalid caveatArgs: must be valid hex strings")
|
|
1361
|
+
);
|
|
1362
|
+
const hexValue = encodeSingle3(SELECTED_GROUP_ABI, [
|
|
1363
|
+
args.groupIndex,
|
|
1364
|
+
caveatArgsHex
|
|
1365
|
+
]);
|
|
1366
|
+
return prepareResult(hexValue, encodingOptions);
|
|
1367
|
+
}
|
|
1368
|
+
function decodeLogicalOrWrapperArgs(args, encodingOptions = defaultOptions) {
|
|
1369
|
+
const hexArgs = bytesLikeToHex(args);
|
|
1370
|
+
const [groupIndex, caveatArgsRaw] = decodeSingle3(
|
|
1371
|
+
SELECTED_GROUP_ABI,
|
|
1372
|
+
hexArgs
|
|
1373
|
+
);
|
|
1374
|
+
const caveatArgs = caveatArgsRaw.map(
|
|
1375
|
+
(arg) => prepareResult(bytesToHex11(arg), encodingOptions)
|
|
1376
|
+
);
|
|
1377
|
+
return { groupIndex, caveatArgs };
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1314
1380
|
// src/delegation.ts
|
|
1315
|
-
import { encode, encodeSingle as
|
|
1381
|
+
import { encode, encodeSingle as encodeSingle4, decodeSingle as decodeSingle4 } from "@metamask/abi-utils";
|
|
1316
1382
|
import { hexToBytes as hexToBytes3 } from "@metamask/utils";
|
|
1317
1383
|
import { keccak_256 as keccak256 } from "@noble/hashes/sha3";
|
|
1318
1384
|
var ANY_BENEFICIARY = "0x0000000000000000000000000000000000000a11";
|
|
@@ -1339,7 +1405,7 @@ function encodeDelegations(delegations, options = defaultOptions) {
|
|
|
1339
1405
|
struct.salt,
|
|
1340
1406
|
struct.signature
|
|
1341
1407
|
]);
|
|
1342
|
-
result =
|
|
1408
|
+
result = encodeSingle4(DELEGATION_ARRAY_ABI_TYPES, encodableStructs);
|
|
1343
1409
|
}
|
|
1344
1410
|
return prepareResult(result, options);
|
|
1345
1411
|
}
|
|
@@ -1356,7 +1422,7 @@ function encodeDelegation(delegation, options = defaultOptions) {
|
|
|
1356
1422
|
delegation.salt,
|
|
1357
1423
|
delegation.signature
|
|
1358
1424
|
];
|
|
1359
|
-
const result =
|
|
1425
|
+
const result = encodeSingle4(DELEGATION_ABI_TYPE, encodableStruct);
|
|
1360
1426
|
return prepareResult(result, options);
|
|
1361
1427
|
}
|
|
1362
1428
|
var delegationFromDecodedDelegation = (decodedDelegation, convertFn) => {
|
|
@@ -1375,7 +1441,7 @@ var delegationFromDecodedDelegation = (decodedDelegation, convertFn) => {
|
|
|
1375
1441
|
};
|
|
1376
1442
|
};
|
|
1377
1443
|
function decodeDelegations(encoded, options = defaultOptions) {
|
|
1378
|
-
const decodedStructs =
|
|
1444
|
+
const decodedStructs = decodeSingle4(
|
|
1379
1445
|
DELEGATION_ARRAY_ABI_TYPES,
|
|
1380
1446
|
encoded
|
|
1381
1447
|
// return types cannot be inferred from complex ABI types, so we must assert the type
|
|
@@ -1390,7 +1456,7 @@ function decodeDelegations(encoded, options = defaultOptions) {
|
|
|
1390
1456
|
);
|
|
1391
1457
|
}
|
|
1392
1458
|
function decodeDelegation(encoded, options = defaultOptions) {
|
|
1393
|
-
const decodedStruct =
|
|
1459
|
+
const decodedStruct = decodeSingle4(
|
|
1394
1460
|
DELEGATION_ABI_TYPE,
|
|
1395
1461
|
encoded
|
|
1396
1462
|
// return types cannot be inferred from complex ABI types, so we must assert the type
|
|
@@ -1440,6 +1506,7 @@ function getCaveatHash(caveat) {
|
|
|
1440
1506
|
}
|
|
1441
1507
|
export {
|
|
1442
1508
|
ANY_BENEFICIARY,
|
|
1509
|
+
BalanceChangeType,
|
|
1443
1510
|
CAVEAT_TYPEHASH,
|
|
1444
1511
|
DELEGATION_TYPEHASH,
|
|
1445
1512
|
ROOT_AUTHORITY,
|
|
@@ -1462,6 +1529,8 @@ export {
|
|
|
1462
1529
|
createExactExecutionTerms,
|
|
1463
1530
|
createIdTerms,
|
|
1464
1531
|
createLimitedCallsTerms,
|
|
1532
|
+
createLogicalOrWrapperArgs,
|
|
1533
|
+
createLogicalOrWrapperTerms,
|
|
1465
1534
|
createMultiTokenPeriodTerms,
|
|
1466
1535
|
createNativeBalanceChangeTerms,
|
|
1467
1536
|
createNativeTokenPaymentTerms,
|
|
@@ -1495,6 +1564,8 @@ export {
|
|
|
1495
1564
|
decodeExactExecutionTerms,
|
|
1496
1565
|
decodeIdTerms,
|
|
1497
1566
|
decodeLimitedCallsTerms,
|
|
1567
|
+
decodeLogicalOrWrapperArgs,
|
|
1568
|
+
decodeLogicalOrWrapperTerms,
|
|
1498
1569
|
decodeMultiTokenPeriodTerms,
|
|
1499
1570
|
decodeNativeBalanceChangeTerms,
|
|
1500
1571
|
decodeNativeTokenPaymentTerms,
|