@metamask/delegation-core 2.0.0 → 2.2.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 +15 -1
- package/dist/index.cjs +71 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +27 -15
- package/dist/index.d.ts +27 -15
- package/dist/index.mjs +70 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -42,13 +42,13 @@ declare function createTimestampTerms(terms: TimestampTerms, encodingOptions?: E
|
|
|
42
42
|
declare function createTimestampTerms(terms: TimestampTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
43
43
|
declare function decodeTimestampTerms(terms: BytesLike): TimestampTerms;
|
|
44
44
|
|
|
45
|
-
type NativeTokenPeriodTransferTerms = {
|
|
45
|
+
type NativeTokenPeriodTransferTerms<TDuration extends number | bigint = number> = {
|
|
46
46
|
periodAmount: bigint;
|
|
47
|
-
periodDuration:
|
|
47
|
+
periodDuration: TDuration;
|
|
48
48
|
startDate: number;
|
|
49
49
|
};
|
|
50
|
-
declare function createNativeTokenPeriodTransferTerms(terms: NativeTokenPeriodTransferTerms
|
|
51
|
-
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;
|
|
52
52
|
declare function decodeNativeTokenPeriodTransferTerms(terms: BytesLike): NativeTokenPeriodTransferTerms;
|
|
53
53
|
|
|
54
54
|
type ExactCalldataTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
@@ -143,14 +143,14 @@ declare function createERC20StreamingTerms(terms: ERC20StreamingTerms, encodingO
|
|
|
143
143
|
declare function decodeERC20StreamingTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): ERC20StreamingTerms<DecodedBytesLike<'hex'>>;
|
|
144
144
|
declare function decodeERC20StreamingTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): ERC20StreamingTerms<DecodedBytesLike<'bytes'>>;
|
|
145
145
|
|
|
146
|
-
type ERC20TokenPeriodTransferTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
146
|
+
type ERC20TokenPeriodTransferTerms<TBytesLike extends BytesLike = BytesLike, TDuration extends number | bigint = number> = {
|
|
147
147
|
tokenAddress: TBytesLike;
|
|
148
148
|
periodAmount: bigint;
|
|
149
|
-
periodDuration:
|
|
149
|
+
periodDuration: TDuration;
|
|
150
150
|
startDate: number;
|
|
151
151
|
};
|
|
152
|
-
declare function createERC20TokenPeriodTransferTerms(terms: ERC20TokenPeriodTransferTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
153
|
-
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;
|
|
154
154
|
declare function decodeERC20TokenPeriodTransferTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): ERC20TokenPeriodTransferTerms<DecodedBytesLike<'hex'>>;
|
|
155
155
|
declare function decodeERC20TokenPeriodTransferTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): ERC20TokenPeriodTransferTerms<DecodedBytesLike<'bytes'>>;
|
|
156
156
|
|
|
@@ -239,6 +239,18 @@ declare function createAllowedTargetsTerms(terms: AllowedTargetsTerms, encodingO
|
|
|
239
239
|
declare function decodeAllowedTargetsTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): AllowedTargetsTerms<DecodedBytesLike<'hex'>>;
|
|
240
240
|
declare function decodeAllowedTargetsTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): AllowedTargetsTerms<DecodedBytesLike<'bytes'>>;
|
|
241
241
|
|
|
242
|
+
type ApprovalRevocationTerms = {
|
|
243
|
+
erc20Approve: boolean;
|
|
244
|
+
erc721Approve: boolean;
|
|
245
|
+
erc721SetApprovalForAll: boolean;
|
|
246
|
+
permit2ApproveZero: boolean;
|
|
247
|
+
permit2Lockdown: boolean;
|
|
248
|
+
permit2InvalidateNonces: boolean;
|
|
249
|
+
};
|
|
250
|
+
declare function createApprovalRevocationTerms(terms: ApprovalRevocationTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
251
|
+
declare function createApprovalRevocationTerms(terms: ApprovalRevocationTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
252
|
+
declare function decodeApprovalRevocationTerms(terms: BytesLike): ApprovalRevocationTerms;
|
|
253
|
+
|
|
242
254
|
type ArgsEqualityCheckTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
243
255
|
args: TBytesLike;
|
|
244
256
|
};
|
|
@@ -279,17 +291,17 @@ declare function createLimitedCallsTerms(terms: LimitedCallsTerms, encodingOptio
|
|
|
279
291
|
declare function createLimitedCallsTerms(terms: LimitedCallsTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
280
292
|
declare function decodeLimitedCallsTerms(terms: BytesLike): LimitedCallsTerms;
|
|
281
293
|
|
|
282
|
-
type TokenPeriodConfig<TBytesLike extends BytesLike = BytesLike> = {
|
|
294
|
+
type TokenPeriodConfig<TBytesLike extends BytesLike = BytesLike, TDuration extends number | bigint = number> = {
|
|
283
295
|
token: TBytesLike;
|
|
284
296
|
periodAmount: bigint;
|
|
285
|
-
periodDuration:
|
|
297
|
+
periodDuration: TDuration;
|
|
286
298
|
startDate: number;
|
|
287
299
|
};
|
|
288
|
-
type MultiTokenPeriodTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
289
|
-
tokenConfigs: TokenPeriodConfig<TBytesLike>[];
|
|
300
|
+
type MultiTokenPeriodTerms<TBytesLike extends BytesLike = BytesLike, TDuration extends number | bigint = number> = {
|
|
301
|
+
tokenConfigs: TokenPeriodConfig<TBytesLike, TDuration>[];
|
|
290
302
|
};
|
|
291
|
-
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
292
|
-
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
303
|
+
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms<BytesLike, number | bigint>, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
304
|
+
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms<BytesLike, number | bigint>, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
293
305
|
declare function decodeMultiTokenPeriodTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): MultiTokenPeriodTerms<DecodedBytesLike<'hex'>>;
|
|
294
306
|
declare function decodeMultiTokenPeriodTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): MultiTokenPeriodTerms<DecodedBytesLike<'bytes'>>;
|
|
295
307
|
|
|
@@ -352,4 +364,4 @@ declare function decodeDelegation(encoded: BytesLike, options: EncodingOptions<'
|
|
|
352
364
|
declare function hashDelegation(delegation: DelegationStruct, options?: EncodingOptions<'hex'>): Hex;
|
|
353
365
|
declare function hashDelegation(delegation: DelegationStruct, options: EncodingOptions<'bytes'>): Uint8Array;
|
|
354
366
|
|
|
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 };
|
|
367
|
+
export { ANY_BENEFICIARY, type ApprovalRevocationTerms, BalanceChangeType, CAVEAT_TYPEHASH, type CaveatStruct as Caveat, DELEGATION_TYPEHASH, type DelegationStruct as Delegation, ROOT_AUTHORITY, createAllowedCalldataTerms, createAllowedMethodsTerms, createAllowedTargetsTerms, createApprovalRevocationTerms, 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, decodeApprovalRevocationTerms, 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
|
@@ -42,13 +42,13 @@ declare function createTimestampTerms(terms: TimestampTerms, encodingOptions?: E
|
|
|
42
42
|
declare function createTimestampTerms(terms: TimestampTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
43
43
|
declare function decodeTimestampTerms(terms: BytesLike): TimestampTerms;
|
|
44
44
|
|
|
45
|
-
type NativeTokenPeriodTransferTerms = {
|
|
45
|
+
type NativeTokenPeriodTransferTerms<TDuration extends number | bigint = number> = {
|
|
46
46
|
periodAmount: bigint;
|
|
47
|
-
periodDuration:
|
|
47
|
+
periodDuration: TDuration;
|
|
48
48
|
startDate: number;
|
|
49
49
|
};
|
|
50
|
-
declare function createNativeTokenPeriodTransferTerms(terms: NativeTokenPeriodTransferTerms
|
|
51
|
-
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;
|
|
52
52
|
declare function decodeNativeTokenPeriodTransferTerms(terms: BytesLike): NativeTokenPeriodTransferTerms;
|
|
53
53
|
|
|
54
54
|
type ExactCalldataTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
@@ -143,14 +143,14 @@ declare function createERC20StreamingTerms(terms: ERC20StreamingTerms, encodingO
|
|
|
143
143
|
declare function decodeERC20StreamingTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): ERC20StreamingTerms<DecodedBytesLike<'hex'>>;
|
|
144
144
|
declare function decodeERC20StreamingTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): ERC20StreamingTerms<DecodedBytesLike<'bytes'>>;
|
|
145
145
|
|
|
146
|
-
type ERC20TokenPeriodTransferTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
146
|
+
type ERC20TokenPeriodTransferTerms<TBytesLike extends BytesLike = BytesLike, TDuration extends number | bigint = number> = {
|
|
147
147
|
tokenAddress: TBytesLike;
|
|
148
148
|
periodAmount: bigint;
|
|
149
|
-
periodDuration:
|
|
149
|
+
periodDuration: TDuration;
|
|
150
150
|
startDate: number;
|
|
151
151
|
};
|
|
152
|
-
declare function createERC20TokenPeriodTransferTerms(terms: ERC20TokenPeriodTransferTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
153
|
-
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;
|
|
154
154
|
declare function decodeERC20TokenPeriodTransferTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): ERC20TokenPeriodTransferTerms<DecodedBytesLike<'hex'>>;
|
|
155
155
|
declare function decodeERC20TokenPeriodTransferTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): ERC20TokenPeriodTransferTerms<DecodedBytesLike<'bytes'>>;
|
|
156
156
|
|
|
@@ -239,6 +239,18 @@ declare function createAllowedTargetsTerms(terms: AllowedTargetsTerms, encodingO
|
|
|
239
239
|
declare function decodeAllowedTargetsTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): AllowedTargetsTerms<DecodedBytesLike<'hex'>>;
|
|
240
240
|
declare function decodeAllowedTargetsTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): AllowedTargetsTerms<DecodedBytesLike<'bytes'>>;
|
|
241
241
|
|
|
242
|
+
type ApprovalRevocationTerms = {
|
|
243
|
+
erc20Approve: boolean;
|
|
244
|
+
erc721Approve: boolean;
|
|
245
|
+
erc721SetApprovalForAll: boolean;
|
|
246
|
+
permit2ApproveZero: boolean;
|
|
247
|
+
permit2Lockdown: boolean;
|
|
248
|
+
permit2InvalidateNonces: boolean;
|
|
249
|
+
};
|
|
250
|
+
declare function createApprovalRevocationTerms(terms: ApprovalRevocationTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
251
|
+
declare function createApprovalRevocationTerms(terms: ApprovalRevocationTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
252
|
+
declare function decodeApprovalRevocationTerms(terms: BytesLike): ApprovalRevocationTerms;
|
|
253
|
+
|
|
242
254
|
type ArgsEqualityCheckTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
243
255
|
args: TBytesLike;
|
|
244
256
|
};
|
|
@@ -279,17 +291,17 @@ declare function createLimitedCallsTerms(terms: LimitedCallsTerms, encodingOptio
|
|
|
279
291
|
declare function createLimitedCallsTerms(terms: LimitedCallsTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
280
292
|
declare function decodeLimitedCallsTerms(terms: BytesLike): LimitedCallsTerms;
|
|
281
293
|
|
|
282
|
-
type TokenPeriodConfig<TBytesLike extends BytesLike = BytesLike> = {
|
|
294
|
+
type TokenPeriodConfig<TBytesLike extends BytesLike = BytesLike, TDuration extends number | bigint = number> = {
|
|
283
295
|
token: TBytesLike;
|
|
284
296
|
periodAmount: bigint;
|
|
285
|
-
periodDuration:
|
|
297
|
+
periodDuration: TDuration;
|
|
286
298
|
startDate: number;
|
|
287
299
|
};
|
|
288
|
-
type MultiTokenPeriodTerms<TBytesLike extends BytesLike = BytesLike> = {
|
|
289
|
-
tokenConfigs: TokenPeriodConfig<TBytesLike>[];
|
|
300
|
+
type MultiTokenPeriodTerms<TBytesLike extends BytesLike = BytesLike, TDuration extends number | bigint = number> = {
|
|
301
|
+
tokenConfigs: TokenPeriodConfig<TBytesLike, TDuration>[];
|
|
290
302
|
};
|
|
291
|
-
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
292
|
-
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
303
|
+
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms<BytesLike, number | bigint>, encodingOptions?: EncodingOptions<'hex'>): Hex;
|
|
304
|
+
declare function createMultiTokenPeriodTerms(terms: MultiTokenPeriodTerms<BytesLike, number | bigint>, encodingOptions: EncodingOptions<'bytes'>): Uint8Array;
|
|
293
305
|
declare function decodeMultiTokenPeriodTerms(terms: BytesLike, encodingOptions?: EncodingOptions<'hex'>): MultiTokenPeriodTerms<DecodedBytesLike<'hex'>>;
|
|
294
306
|
declare function decodeMultiTokenPeriodTerms(terms: BytesLike, encodingOptions: EncodingOptions<'bytes'>): MultiTokenPeriodTerms<DecodedBytesLike<'bytes'>>;
|
|
295
307
|
|
|
@@ -352,4 +364,4 @@ declare function decodeDelegation(encoded: BytesLike, options: EncodingOptions<'
|
|
|
352
364
|
declare function hashDelegation(delegation: DelegationStruct, options?: EncodingOptions<'hex'>): Hex;
|
|
353
365
|
declare function hashDelegation(delegation: DelegationStruct, options: EncodingOptions<'bytes'>): Uint8Array;
|
|
354
366
|
|
|
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 };
|
|
367
|
+
export { ANY_BENEFICIARY, type ApprovalRevocationTerms, BalanceChangeType, CAVEAT_TYPEHASH, type CaveatStruct as Caveat, DELEGATION_TYPEHASH, type DelegationStruct as Delegation, ROOT_AUTHORITY, createAllowedCalldataTerms, createAllowedMethodsTerms, createAllowedTargetsTerms, createApprovalRevocationTerms, 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, decodeApprovalRevocationTerms, 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
|
@@ -975,6 +975,74 @@ function decodeAllowedTargetsTerms(terms, encodingOptions = defaultOptions) {
|
|
|
975
975
|
return { targets };
|
|
976
976
|
}
|
|
977
977
|
|
|
978
|
+
// src/caveats/approvalRevocationEnforcer.ts
|
|
979
|
+
var BIT_ERC20_APPROVE_ZERO = 1;
|
|
980
|
+
var BIT_ERC721_PER_TOKEN_CLEAR = 2;
|
|
981
|
+
var BIT_SET_APPROVAL_FOR_ALL_REVOKE = 4;
|
|
982
|
+
var BIT_PERMIT2_APPROVE_ZERO = 8;
|
|
983
|
+
var BIT_PERMIT2_LOCKDOWN = 16;
|
|
984
|
+
var BIT_PERMIT2_INVALIDATE_NONCES = 32;
|
|
985
|
+
var ALLOWED_APPROVAL_REVOCATION_MAX_MASK = BIT_ERC20_APPROVE_ZERO | BIT_ERC721_PER_TOKEN_CLEAR | BIT_SET_APPROVAL_FOR_ALL_REVOKE | BIT_PERMIT2_APPROVE_ZERO | BIT_PERMIT2_LOCKDOWN | BIT_PERMIT2_INVALIDATE_NONCES;
|
|
986
|
+
var NO_FLAGS_SET_ERROR = "Invalid ApprovalRevocation terms: at least one revocation primitive must be enabled";
|
|
987
|
+
function termsToMask(terms) {
|
|
988
|
+
let mask = 0;
|
|
989
|
+
if (terms.erc20Approve) {
|
|
990
|
+
mask |= BIT_ERC20_APPROVE_ZERO;
|
|
991
|
+
}
|
|
992
|
+
if (terms.erc721Approve) {
|
|
993
|
+
mask |= BIT_ERC721_PER_TOKEN_CLEAR;
|
|
994
|
+
}
|
|
995
|
+
if (terms.erc721SetApprovalForAll) {
|
|
996
|
+
mask |= BIT_SET_APPROVAL_FOR_ALL_REVOKE;
|
|
997
|
+
}
|
|
998
|
+
if (terms.permit2ApproveZero) {
|
|
999
|
+
mask |= BIT_PERMIT2_APPROVE_ZERO;
|
|
1000
|
+
}
|
|
1001
|
+
if (terms.permit2Lockdown) {
|
|
1002
|
+
mask |= BIT_PERMIT2_LOCKDOWN;
|
|
1003
|
+
}
|
|
1004
|
+
if (terms.permit2InvalidateNonces) {
|
|
1005
|
+
mask |= BIT_PERMIT2_INVALIDATE_NONCES;
|
|
1006
|
+
}
|
|
1007
|
+
if (mask === 0) {
|
|
1008
|
+
throw new Error(NO_FLAGS_SET_ERROR);
|
|
1009
|
+
}
|
|
1010
|
+
return mask;
|
|
1011
|
+
}
|
|
1012
|
+
function maskToTerms(mask) {
|
|
1013
|
+
if (mask > ALLOWED_APPROVAL_REVOCATION_MAX_MASK) {
|
|
1014
|
+
throw new Error(
|
|
1015
|
+
"Invalid ApprovalRevocation terms: reserved bits must be zero (only bits 0-5 are defined)"
|
|
1016
|
+
);
|
|
1017
|
+
}
|
|
1018
|
+
if (mask === 0) {
|
|
1019
|
+
throw new Error(NO_FLAGS_SET_ERROR);
|
|
1020
|
+
}
|
|
1021
|
+
return {
|
|
1022
|
+
erc20Approve: (mask & BIT_ERC20_APPROVE_ZERO) !== 0,
|
|
1023
|
+
erc721Approve: (mask & BIT_ERC721_PER_TOKEN_CLEAR) !== 0,
|
|
1024
|
+
erc721SetApprovalForAll: (mask & BIT_SET_APPROVAL_FOR_ALL_REVOKE) !== 0,
|
|
1025
|
+
permit2ApproveZero: (mask & BIT_PERMIT2_APPROVE_ZERO) !== 0,
|
|
1026
|
+
permit2Lockdown: (mask & BIT_PERMIT2_LOCKDOWN) !== 0,
|
|
1027
|
+
permit2InvalidateNonces: (mask & BIT_PERMIT2_INVALIDATE_NONCES) !== 0
|
|
1028
|
+
};
|
|
1029
|
+
}
|
|
1030
|
+
function createApprovalRevocationTerms(terms, encodingOptions = defaultOptions) {
|
|
1031
|
+
const mask = termsToMask(terms);
|
|
1032
|
+
const hexValue = `0x${toHexString({ value: mask, size: 1 })}`;
|
|
1033
|
+
return prepareResult(hexValue, encodingOptions);
|
|
1034
|
+
}
|
|
1035
|
+
function decodeApprovalRevocationTerms(terms) {
|
|
1036
|
+
const hexTerms = bytesLikeToHex(terms);
|
|
1037
|
+
assertHexByteExactLength(
|
|
1038
|
+
hexTerms,
|
|
1039
|
+
1,
|
|
1040
|
+
"Invalid ApprovalRevocation terms: must be exactly 1 byte"
|
|
1041
|
+
);
|
|
1042
|
+
const mask = extractNumber(hexTerms, 0, 1);
|
|
1043
|
+
return maskToTerms(mask);
|
|
1044
|
+
}
|
|
1045
|
+
|
|
978
1046
|
// src/caveats/argsEqualityCheck.ts
|
|
979
1047
|
function createArgsEqualityCheckTerms(terms, encodingOptions = defaultOptions) {
|
|
980
1048
|
const { args } = terms;
|
|
@@ -1513,6 +1581,7 @@ export {
|
|
|
1513
1581
|
createAllowedCalldataTerms,
|
|
1514
1582
|
createAllowedMethodsTerms,
|
|
1515
1583
|
createAllowedTargetsTerms,
|
|
1584
|
+
createApprovalRevocationTerms,
|
|
1516
1585
|
createArgsEqualityCheckTerms,
|
|
1517
1586
|
createBlockNumberTerms,
|
|
1518
1587
|
createDeployedTerms,
|
|
@@ -1546,6 +1615,7 @@ export {
|
|
|
1546
1615
|
decodeAllowedCalldataTerms,
|
|
1547
1616
|
decodeAllowedMethodsTerms,
|
|
1548
1617
|
decodeAllowedTargetsTerms,
|
|
1618
|
+
decodeApprovalRevocationTerms,
|
|
1549
1619
|
decodeArgsEqualityCheckTerms,
|
|
1550
1620
|
decodeBlockNumberTerms,
|
|
1551
1621
|
decodeDelegation,
|