@lifi/sdk 3.5.0-beta.0 → 3.5.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/package.json +7 -7
- package/src/_cjs/constants.js +2 -4
- package/src/_cjs/constants.js.map +1 -1
- package/src/_cjs/core/EVM/EVM.js +4 -0
- package/src/_cjs/core/EVM/EVM.js.map +1 -1
- package/src/_cjs/core/EVM/EVMStepExecutor.js +77 -98
- package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_cjs/core/EVM/abi.js +43 -36
- package/src/_cjs/core/EVM/abi.js.map +1 -1
- package/src/_cjs/core/EVM/checkAllowance.js +30 -36
- package/src/_cjs/core/EVM/checkAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/getAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/getEVMBalance.js.map +1 -1
- package/src/_cjs/core/EVM/multisig.js +29 -0
- package/src/_cjs/core/EVM/multisig.js.map +1 -0
- package/src/_cjs/core/EVM/parseEVMErrors.js +0 -3
- package/src/_cjs/core/EVM/parseEVMErrors.js.map +1 -1
- package/src/_cjs/core/EVM/setAllowance.js +6 -4
- package/src/_cjs/core/EVM/setAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/switchChain.js +3 -2
- package/src/_cjs/core/EVM/switchChain.js.map +1 -1
- package/src/_cjs/core/EVM/types.js.map +1 -1
- package/src/_cjs/core/EVM/utils.js +1 -2
- package/src/_cjs/core/EVM/utils.js.map +1 -1
- package/src/_cjs/core/checkBalance.js +3 -3
- package/src/_cjs/core/checkBalance.js.map +1 -1
- package/src/_cjs/index.js.map +1 -1
- package/src/_cjs/version.js +1 -1
- package/src/_cjs/version.js.map +1 -1
- package/src/_esm/constants.js +1 -3
- package/src/_esm/constants.js.map +1 -1
- package/src/_esm/core/EVM/EVM.js +4 -0
- package/src/_esm/core/EVM/EVM.js.map +1 -1
- package/src/_esm/core/EVM/EVMStepExecutor.js +87 -126
- package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_esm/core/EVM/abi.js +42 -37
- package/src/_esm/core/EVM/abi.js.map +1 -1
- package/src/_esm/core/EVM/checkAllowance.js +32 -41
- package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
- package/src/_esm/core/EVM/getAllowance.js.map +1 -1
- package/src/_esm/core/EVM/getEVMBalance.js.map +1 -1
- package/src/_esm/core/EVM/multisig.js +25 -0
- package/src/_esm/core/EVM/multisig.js.map +1 -0
- package/src/_esm/core/EVM/parseEVMErrors.js +0 -8
- package/src/_esm/core/EVM/parseEVMErrors.js.map +1 -1
- package/src/_esm/core/EVM/setAllowance.js +6 -4
- package/src/_esm/core/EVM/setAllowance.js.map +1 -1
- package/src/_esm/core/EVM/switchChain.js +3 -2
- package/src/_esm/core/EVM/switchChain.js.map +1 -1
- package/src/_esm/core/EVM/types.js.map +1 -1
- package/src/_esm/core/EVM/utils.js +1 -2
- package/src/_esm/core/EVM/utils.js.map +1 -1
- package/src/_esm/core/checkBalance.js +3 -3
- package/src/_esm/core/checkBalance.js.map +1 -1
- package/src/_esm/index.js.map +1 -1
- package/src/_esm/version.js +1 -1
- package/src/_esm/version.js.map +1 -1
- package/src/_types/constants.d.ts +1 -3
- package/src/_types/constants.d.ts.map +1 -1
- package/src/_types/core/EVM/EVM.d.ts.map +1 -1
- package/src/_types/core/EVM/EVMStepExecutor.d.ts +4 -7
- package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
- package/src/_types/core/EVM/abi.d.ts +5 -202
- package/src/_types/core/EVM/abi.d.ts.map +1 -1
- package/src/_types/core/EVM/checkAllowance.d.ts +2 -12
- package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/getAllowance.d.ts +4 -5
- package/src/_types/core/EVM/getAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/getEVMBalance.d.ts +1 -2
- package/src/_types/core/EVM/getEVMBalance.d.ts.map +1 -1
- package/src/_types/core/EVM/multisig.d.ts +6 -0
- package/src/_types/core/EVM/multisig.d.ts.map +1 -0
- package/src/_types/core/EVM/setAllowance.d.ts +2 -2
- package/src/_types/core/EVM/setAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/switchChain.d.ts.map +1 -1
- package/src/_types/core/EVM/types.d.ts +18 -1
- package/src/_types/core/EVM/types.d.ts.map +1 -1
- package/src/_types/core/EVM/utils.d.ts +2 -2
- package/src/_types/core/EVM/utils.d.ts.map +1 -1
- package/src/_types/core/checkBalance.d.ts.map +1 -1
- package/src/_types/index.d.ts +1 -1
- package/src/_types/index.d.ts.map +1 -1
- package/src/_types/version.d.ts +1 -1
- package/src/_types/version.d.ts.map +1 -1
- package/src/constants.ts +1 -6
- package/src/core/EVM/EVM.ts +4 -0
- package/src/core/EVM/EVMStepExecutor.ts +145 -174
- package/src/core/EVM/abi.ts +43 -40
- package/src/core/EVM/checkAllowance.ts +92 -96
- package/src/core/EVM/getAllowance.ts +8 -8
- package/src/core/EVM/getEVMBalance.ts +2 -2
- package/src/core/EVM/multisig.ts +54 -0
- package/src/core/EVM/parseEVMErrors.ts +0 -8
- package/src/core/EVM/setAllowance.ts +21 -15
- package/src/core/EVM/switchChain.ts +12 -3
- package/src/core/EVM/types.ts +27 -1
- package/src/core/EVM/utils.ts +3 -4
- package/src/core/checkBalance.ts +3 -6
- package/src/index.ts +3 -0
- package/src/version.ts +1 -1
- package/src/_cjs/core/EVM/getNativePermit.js +0 -90
- package/src/_cjs/core/EVM/getNativePermit.js.map +0 -1
- package/src/_cjs/core/EVM/permit2/allowanceTransfer.js +0 -100
- package/src/_cjs/core/EVM/permit2/allowanceTransfer.js.map +0 -1
- package/src/_cjs/core/EVM/permit2/constants.js +0 -12
- package/src/_cjs/core/EVM/permit2/constants.js.map +0 -1
- package/src/_cjs/core/EVM/permit2/domain.js +0 -12
- package/src/_cjs/core/EVM/permit2/domain.js.map +0 -1
- package/src/_cjs/core/EVM/permit2/signatureTransfer.js +0 -121
- package/src/_cjs/core/EVM/permit2/signatureTransfer.js.map +0 -1
- package/src/_cjs/core/EVM/signPermitMessage.js +0 -168
- package/src/_cjs/core/EVM/signPermitMessage.js.map +0 -1
- package/src/_cjs/core/EVM/waitForBatchTransactionReceipt.js +0 -29
- package/src/_cjs/core/EVM/waitForBatchTransactionReceipt.js.map +0 -1
- package/src/_cjs/utils/invariant.js +0 -17
- package/src/_cjs/utils/invariant.js.map +0 -1
- package/src/_esm/core/EVM/getNativePermit.js +0 -95
- package/src/_esm/core/EVM/getNativePermit.js.map +0 -1
- package/src/_esm/core/EVM/permit2/allowanceTransfer.js +0 -93
- package/src/_esm/core/EVM/permit2/allowanceTransfer.js.map +0 -1
- package/src/_esm/core/EVM/permit2/constants.js +0 -9
- package/src/_esm/core/EVM/permit2/constants.js.map +0 -1
- package/src/_esm/core/EVM/permit2/domain.js +0 -9
- package/src/_esm/core/EVM/permit2/domain.js.map +0 -1
- package/src/_esm/core/EVM/permit2/signatureTransfer.js +0 -117
- package/src/_esm/core/EVM/permit2/signatureTransfer.js.map +0 -1
- package/src/_esm/core/EVM/signPermitMessage.js +0 -162
- package/src/_esm/core/EVM/signPermitMessage.js.map +0 -1
- package/src/_esm/core/EVM/waitForBatchTransactionReceipt.js +0 -25
- package/src/_esm/core/EVM/waitForBatchTransactionReceipt.js.map +0 -1
- package/src/_esm/utils/invariant.js +0 -43
- package/src/_esm/utils/invariant.js.map +0 -1
- package/src/_types/core/EVM/getNativePermit.d.ts +0 -18
- package/src/_types/core/EVM/getNativePermit.d.ts.map +0 -1
- package/src/_types/core/EVM/permit2/allowanceTransfer.d.ts +0 -41
- package/src/_types/core/EVM/permit2/allowanceTransfer.d.ts.map +0 -1
- package/src/_types/core/EVM/permit2/constants.d.ts +0 -8
- package/src/_types/core/EVM/permit2/constants.d.ts.map +0 -1
- package/src/_types/core/EVM/permit2/domain.d.ts +0 -8
- package/src/_types/core/EVM/permit2/domain.d.ts.map +0 -1
- package/src/_types/core/EVM/permit2/signatureTransfer.d.ts +0 -42
- package/src/_types/core/EVM/permit2/signatureTransfer.d.ts.map +0 -1
- package/src/_types/core/EVM/signPermitMessage.d.ts +0 -22
- package/src/_types/core/EVM/signPermitMessage.d.ts.map +0 -1
- package/src/_types/core/EVM/waitForBatchTransactionReceipt.d.ts +0 -4
- package/src/_types/core/EVM/waitForBatchTransactionReceipt.d.ts.map +0 -1
- package/src/_types/utils/invariant.d.ts +0 -22
- package/src/_types/utils/invariant.d.ts.map +0 -1
- package/src/core/EVM/getNativePermit.ts +0 -113
- package/src/core/EVM/permit2/allowanceTransfer.ts +0 -168
- package/src/core/EVM/permit2/constants.ts +0 -11
- package/src/core/EVM/permit2/domain.ts +0 -20
- package/src/core/EVM/permit2/signatureTransfer.ts +0 -214
- package/src/core/EVM/signPermitMessage.ts +0 -248
- package/src/core/EVM/waitForBatchTransactionReceipt.ts +0 -49
- package/src/utils/invariant.ts +0 -51
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { type Address, type TypedData, type TypedDataDomain } from 'viem';
|
|
2
|
-
export declare const MaxAllowanceTransferAmount: bigint;
|
|
3
|
-
export declare const MaxAllowanceExpiration: bigint;
|
|
4
|
-
export declare const MaxOrderedNonce: bigint;
|
|
5
|
-
export interface PermitDetails {
|
|
6
|
-
token: Address;
|
|
7
|
-
amount: bigint;
|
|
8
|
-
expiration: number;
|
|
9
|
-
nonce: number;
|
|
10
|
-
}
|
|
11
|
-
export interface PermitSingle {
|
|
12
|
-
details: PermitDetails;
|
|
13
|
-
spender: Address;
|
|
14
|
-
sigDeadline: bigint;
|
|
15
|
-
}
|
|
16
|
-
export interface PermitBatch {
|
|
17
|
-
details: PermitDetails[];
|
|
18
|
-
spender: Address;
|
|
19
|
-
sigDeadline: bigint;
|
|
20
|
-
}
|
|
21
|
-
export type PermitSingleData = {
|
|
22
|
-
domain: TypedDataDomain;
|
|
23
|
-
types: TypedData;
|
|
24
|
-
values: PermitSingle;
|
|
25
|
-
};
|
|
26
|
-
export type PermitBatchData = {
|
|
27
|
-
domain: TypedDataDomain;
|
|
28
|
-
types: TypedData;
|
|
29
|
-
values: PermitBatch;
|
|
30
|
-
};
|
|
31
|
-
export declare function getPermitSingleData(permit: PermitSingle, permit2Address: Address, chainId: number): {
|
|
32
|
-
domain: TypedDataDomain;
|
|
33
|
-
values: PermitSingle;
|
|
34
|
-
};
|
|
35
|
-
export declare function getPermitBatchData(permit: PermitBatch, permit2Address: Address, chainId: number): {
|
|
36
|
-
domain: TypedDataDomain;
|
|
37
|
-
values: PermitBatch;
|
|
38
|
-
};
|
|
39
|
-
export declare function getPermitData(permit: PermitSingle | PermitBatch, permit2Address: Address, chainId: number): PermitSingleData | PermitBatchData;
|
|
40
|
-
export declare function hash(permit: PermitSingle | PermitBatch, permit2Address: Address, chainId: number): string;
|
|
41
|
-
//# sourceMappingURL=allowanceTransfer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"allowanceTransfer.d.ts","sourceRoot":"","sources":["../../../../core/EVM/permit2/allowanceTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,eAAe,EAErB,MAAM,MAAM,CAAA;AAMb,eAAO,MAAM,0BAA0B,QAAa,CAAA;AACpD,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAC/C,eAAO,MAAM,eAAe,QAAY,CAAA;AAExC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,YAAY,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,WAAW,CAAA;CACpB,CAAA;AA+BD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM;;;EAWhB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM;;;EAWhB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,GAAG,WAAW,EAClC,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,eAAe,CAkBpC;AAED,wBAAgB,IAAI,CAClB,MAAM,EAAE,YAAY,GAAG,WAAW,EAClC,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,GACd,MAAM,CAuBR"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare const MaxAllowanceTransferAmount: bigint;
|
|
2
|
-
export declare const MaxAllowanceExpiration: bigint;
|
|
3
|
-
export declare const MaxOrderedNonce: bigint;
|
|
4
|
-
export declare const MaxSignatureTransferAmount: bigint;
|
|
5
|
-
export declare const MaxUnorderedNonce: bigint;
|
|
6
|
-
export declare const MaxSigDeadline: bigint;
|
|
7
|
-
export declare const InstantExpiration = 0n;
|
|
8
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../core/EVM/permit2/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B,QAAa,CAAA;AACpD,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAC/C,eAAO,MAAM,eAAe,QAAY,CAAA;AAExC,eAAO,MAAM,0BAA0B,QAAa,CAAA;AACpD,eAAO,MAAM,iBAAiB,QAAa,CAAA;AAC3C,eAAO,MAAM,cAAc,QAAa,CAAA;AAExC,eAAO,MAAM,iBAAiB,KAAK,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Address, TypedData, TypedDataDomain } from 'viem';
|
|
2
|
-
export declare function permit2Domain(permit2Address: Address, chainId: number): TypedDataDomain;
|
|
3
|
-
export type PermitData = {
|
|
4
|
-
domain: TypedDataDomain;
|
|
5
|
-
types: TypedData;
|
|
6
|
-
values: any;
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../core/EVM/permit2/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAI/D,wBAAgB,aAAa,CAC3B,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,GACd,eAAe,CAMjB;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,GAAG,CAAA;CACZ,CAAA"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { Address, TypedData, TypedDataDomain } from 'viem';
|
|
2
|
-
export interface Witness {
|
|
3
|
-
witness: any;
|
|
4
|
-
witnessTypeName: string;
|
|
5
|
-
witnessType: {
|
|
6
|
-
[key: string]: {
|
|
7
|
-
name: string;
|
|
8
|
-
type: string;
|
|
9
|
-
}[];
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
export interface TokenPermissions {
|
|
13
|
-
token: Address;
|
|
14
|
-
amount: bigint;
|
|
15
|
-
}
|
|
16
|
-
export interface PermitTransferFrom {
|
|
17
|
-
permitted: TokenPermissions;
|
|
18
|
-
spender: Address;
|
|
19
|
-
nonce: bigint;
|
|
20
|
-
deadline: bigint;
|
|
21
|
-
}
|
|
22
|
-
export interface PermitBatchTransferFrom {
|
|
23
|
-
permitted: TokenPermissions[];
|
|
24
|
-
spender: Address;
|
|
25
|
-
nonce: bigint;
|
|
26
|
-
deadline: bigint;
|
|
27
|
-
}
|
|
28
|
-
export type PermitTransferFromData = {
|
|
29
|
-
domain: TypedDataDomain;
|
|
30
|
-
types: TypedData;
|
|
31
|
-
values: PermitTransferFrom;
|
|
32
|
-
};
|
|
33
|
-
export type PermitBatchTransferFromData = {
|
|
34
|
-
domain: TypedDataDomain;
|
|
35
|
-
types: TypedData;
|
|
36
|
-
values: PermitBatchTransferFrom;
|
|
37
|
-
};
|
|
38
|
-
export declare function getPermitTransferData(permit: PermitTransferFrom, permit2Address: Address, chainId: number, witness?: Witness): PermitTransferFromData;
|
|
39
|
-
export declare function getPermitBatchTransferData(permit: PermitBatchTransferFrom, permit2Address: Address, chainId: number, witness?: Witness): PermitBatchTransferFromData;
|
|
40
|
-
export declare function getPermitData(permit: PermitTransferFrom | PermitBatchTransferFrom, permit2Address: Address, chainId: number, witness?: Witness): PermitTransferFromData | PermitBatchTransferFromData;
|
|
41
|
-
export declare function hash(permit: PermitTransferFrom | PermitBatchTransferFrom, permit2Address: Address, chainId: number, witness?: Witness): `0x${string}`;
|
|
42
|
-
//# sourceMappingURL=signatureTransfer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signatureTransfer.d.ts","sourceRoot":"","sources":["../../../../core/EVM/permit2/signatureTransfer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAS/D,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,GAAG,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAA;CACjE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,gBAAgB,CAAA;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,gBAAgB,EAAE,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,kBAAkB,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,uBAAuB,CAAA;CAChC,CAAA;AAiCD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,kBAAkB,EAC1B,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,sBAAsB,CA+BxB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,uBAAuB,EAC/B,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,2BAA2B,CA+B7B;AAID,wBAAgB,aAAa,CAC3B,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,EACpD,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,sBAAsB,GAAG,2BAA2B,CAKtD;AAED,wBAAgB,IAAI,CAClB,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,EACpD,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,iBAkClB"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { ExtendedChain } from '@lifi/types';
|
|
2
|
-
import type { Client } from 'viem';
|
|
3
|
-
import type { Address } from 'viem';
|
|
4
|
-
import type { TransactionParameters } from '../types.js';
|
|
5
|
-
import { type NativePermitData } from './getNativePermit.js';
|
|
6
|
-
export declare const signNativePermitMessage: (client: Client, transactionRequest: TransactionParameters, chain: ExtendedChain, tokenAddress: Address, amount: bigint, nativePermit: NativePermitData) => Promise<{
|
|
7
|
-
signature: `0x${string}`;
|
|
8
|
-
data: `0x${string}`;
|
|
9
|
-
}>;
|
|
10
|
-
export declare const signPermit2Message: (client: Client, transactionRequest: TransactionParameters, chain: ExtendedChain, tokenAddress: Address, amount: bigint) => Promise<{
|
|
11
|
-
signature: `0x${string}`;
|
|
12
|
-
data: `0x${string}`;
|
|
13
|
-
}>;
|
|
14
|
-
export declare const signPermit2WitnessMessage: (client: Client, transactionRequest: TransactionParameters, chain: ExtendedChain, tokenAddress: Address, amount: bigint) => Promise<{
|
|
15
|
-
signature: `0x${string}`;
|
|
16
|
-
data: `0x${string}`;
|
|
17
|
-
}>;
|
|
18
|
-
export declare const signPermitMessage: (client: Client, transactionRequest: TransactionParameters, chain: ExtendedChain, tokenAddress: Address, amount: bigint, nativePermit?: NativePermitData, useWitness?: boolean) => Promise<{
|
|
19
|
-
signature: `0x${string}`;
|
|
20
|
-
data: `0x${string}`;
|
|
21
|
-
}>;
|
|
22
|
-
//# sourceMappingURL=signPermitMessage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signPermitMessage.d.ts","sourceRoot":"","sources":["../../../core/EVM/signPermitMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAO,MAAM,MAAM,CAAA;AAGvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,sBAAsB,CAAA;AAM7E,eAAO,MAAM,uBAAuB,WAC1B,MAAM,sBACM,qBAAqB,SAClC,aAAa,gBACN,OAAO,UACb,MAAM,gBACA,gBAAgB;;;EA+C/B,CAAA;AAED,eAAO,MAAM,kBAAkB,WACrB,MAAM,sBACM,qBAAqB,SAClC,aAAa,gBACN,OAAO,UACb,MAAM;;;EAmDf,CAAA;AAED,eAAO,MAAM,yBAAyB,WAC5B,MAAM,sBACM,qBAAqB,SAClC,aAAa,gBACN,OAAO,UACb,MAAM;;;EAqEf,CAAA;AAED,eAAO,MAAM,iBAAiB,WACpB,MAAM,sBACM,qBAAqB,SAClC,aAAa,gBACN,OAAO,UACb,MAAM,iBACC,gBAAgB;;;EAqChC,CAAA"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { Client, Hash, WalletCallReceipt as _WalletCallReceipt } from 'viem';
|
|
2
|
-
export type WalletCallReceipt = _WalletCallReceipt<bigint, 'success' | 'reverted'>;
|
|
3
|
-
export declare const waitForBatchTransactionReceipt: (client: Client, batchHash: Hash) => Promise<WalletCallReceipt>;
|
|
4
|
-
//# sourceMappingURL=waitForBatchTransactionReceipt.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"waitForBatchTransactionReceipt.d.ts","sourceRoot":"","sources":["../../../core/EVM/waitForBatchTransactionReceipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,IAAI,EACJ,iBAAiB,IAAI,kBAAkB,EACxC,MAAM,MAAM,CAAA;AAMb,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAChD,MAAM,EACN,SAAS,GAAG,UAAU,CACvB,CAAA;AAED,eAAO,MAAM,8BAA8B,WACjC,MAAM,aACH,IAAI,KACd,OAAO,CAAC,iBAAiB,CA8B3B,CAAA"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `invariant` is used to [assert](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions) that the `condition` is [truthy](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy).
|
|
3
|
-
*
|
|
4
|
-
* 💥 `invariant` will `throw` an `Error` if the `condition` is [falsey](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy)
|
|
5
|
-
*
|
|
6
|
-
* 🤏 `message`s are not displayed in production environments to help keep bundles small
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
*
|
|
10
|
-
* ```ts
|
|
11
|
-
* const value: Person | null = { name: 'Alex' };
|
|
12
|
-
* invariant(value, 'Expected value to be a person');
|
|
13
|
-
* // type of `value`` has been narrowed to `Person`
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
export declare function invariant(condition: any,
|
|
17
|
-
/**
|
|
18
|
-
* Can provide a string, or a function that returns a string for cases where
|
|
19
|
-
* the message takes a fair amount of effort to compute
|
|
20
|
-
*/
|
|
21
|
-
message?: string | (() => string)): asserts condition;
|
|
22
|
-
//# sourceMappingURL=invariant.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invariant.d.ts","sourceRoot":"","sources":["../../utils/invariant.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,GAAG;AAEd;;;GAGG;AACH,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAChC,OAAO,CAAC,SAAS,CAsBnB"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import type { ExtendedChain } from '@lifi/types'
|
|
2
|
-
import type { Address, Client } from 'viem'
|
|
3
|
-
import { multicall, readContract } from 'viem/actions'
|
|
4
|
-
import { eip2612Abi } from './abi.js'
|
|
5
|
-
import { getMulticallAddress } from './utils.js'
|
|
6
|
-
|
|
7
|
-
export type NativePermitData = {
|
|
8
|
-
name: string
|
|
9
|
-
version: string
|
|
10
|
-
nonce: bigint
|
|
11
|
-
supported: boolean
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Retrieves native permit data (EIP-2612) for a token on a specific chain
|
|
15
|
-
* @link https://eips.ethereum.org/EIPS/eip-2612
|
|
16
|
-
* @param client - The Viem client instance
|
|
17
|
-
* @param chain - The extended chain object containing chain details
|
|
18
|
-
* @param tokenAddress - The address of the token to check for permit support
|
|
19
|
-
* @returns {Promise<NativePermitData>} Object containing permit data including name, version, nonce and support status
|
|
20
|
-
*/
|
|
21
|
-
export const getNativePermit = async (
|
|
22
|
-
client: Client,
|
|
23
|
-
chain: ExtendedChain,
|
|
24
|
-
tokenAddress: Address
|
|
25
|
-
): Promise<NativePermitData> => {
|
|
26
|
-
try {
|
|
27
|
-
const multicallAddress = await getMulticallAddress(chain.id)
|
|
28
|
-
|
|
29
|
-
if (multicallAddress) {
|
|
30
|
-
const [nameResult, domainSeparatorResult, noncesResult, versionResult] =
|
|
31
|
-
await multicall(client, {
|
|
32
|
-
contracts: [
|
|
33
|
-
{
|
|
34
|
-
address: tokenAddress,
|
|
35
|
-
abi: eip2612Abi,
|
|
36
|
-
functionName: 'name',
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
address: tokenAddress,
|
|
40
|
-
abi: eip2612Abi,
|
|
41
|
-
functionName: 'DOMAIN_SEPARATOR',
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
address: tokenAddress,
|
|
45
|
-
abi: eip2612Abi,
|
|
46
|
-
functionName: 'nonces',
|
|
47
|
-
args: [client.account!.address],
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
address: tokenAddress,
|
|
51
|
-
abi: eip2612Abi,
|
|
52
|
-
functionName: 'version',
|
|
53
|
-
},
|
|
54
|
-
],
|
|
55
|
-
multicallAddress,
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
const supported =
|
|
59
|
-
nameResult.status === 'success' &&
|
|
60
|
-
domainSeparatorResult.status === 'success' &&
|
|
61
|
-
noncesResult.status === 'success' &&
|
|
62
|
-
!!nameResult.result &&
|
|
63
|
-
!!domainSeparatorResult.result &&
|
|
64
|
-
noncesResult.result !== undefined
|
|
65
|
-
|
|
66
|
-
return {
|
|
67
|
-
name: nameResult.result!,
|
|
68
|
-
version: versionResult.result ?? '1',
|
|
69
|
-
nonce: noncesResult.result!,
|
|
70
|
-
supported,
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// Fallback to individual calls
|
|
75
|
-
const [name, domainSeparator, nonce, version] = await Promise.all([
|
|
76
|
-
readContract(client, {
|
|
77
|
-
address: tokenAddress,
|
|
78
|
-
abi: eip2612Abi,
|
|
79
|
-
functionName: 'name',
|
|
80
|
-
}),
|
|
81
|
-
readContract(client, {
|
|
82
|
-
address: tokenAddress,
|
|
83
|
-
abi: eip2612Abi,
|
|
84
|
-
functionName: 'DOMAIN_SEPARATOR',
|
|
85
|
-
}),
|
|
86
|
-
readContract(client, {
|
|
87
|
-
address: tokenAddress,
|
|
88
|
-
abi: eip2612Abi,
|
|
89
|
-
functionName: 'nonces',
|
|
90
|
-
args: [client.account!.address],
|
|
91
|
-
}),
|
|
92
|
-
readContract(client, {
|
|
93
|
-
address: tokenAddress,
|
|
94
|
-
abi: eip2612Abi,
|
|
95
|
-
functionName: 'version',
|
|
96
|
-
}),
|
|
97
|
-
])
|
|
98
|
-
|
|
99
|
-
return {
|
|
100
|
-
name,
|
|
101
|
-
version: version ?? '1',
|
|
102
|
-
nonce,
|
|
103
|
-
supported: !!name && !!domainSeparator && nonce !== undefined,
|
|
104
|
-
}
|
|
105
|
-
} catch {
|
|
106
|
-
return {
|
|
107
|
-
name: '',
|
|
108
|
-
version: '1',
|
|
109
|
-
nonce: 0n,
|
|
110
|
-
supported: false,
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type Address,
|
|
3
|
-
type TypedData,
|
|
4
|
-
type TypedDataDomain,
|
|
5
|
-
hashTypedData,
|
|
6
|
-
} from 'viem'
|
|
7
|
-
import { MaxUint48, MaxUint160 } from '../../../constants.js'
|
|
8
|
-
import { invariant } from '../../../utils/invariant.js'
|
|
9
|
-
import { MaxSigDeadline } from './constants.js'
|
|
10
|
-
import { permit2Domain } from './domain.js'
|
|
11
|
-
|
|
12
|
-
export const MaxAllowanceTransferAmount = MaxUint160
|
|
13
|
-
export const MaxAllowanceExpiration = MaxUint48
|
|
14
|
-
export const MaxOrderedNonce = MaxUint48
|
|
15
|
-
|
|
16
|
-
export interface PermitDetails {
|
|
17
|
-
token: Address
|
|
18
|
-
amount: bigint
|
|
19
|
-
expiration: number
|
|
20
|
-
nonce: number
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface PermitSingle {
|
|
24
|
-
details: PermitDetails
|
|
25
|
-
spender: Address
|
|
26
|
-
sigDeadline: bigint
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface PermitBatch {
|
|
30
|
-
details: PermitDetails[]
|
|
31
|
-
spender: Address
|
|
32
|
-
sigDeadline: bigint
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export type PermitSingleData = {
|
|
36
|
-
domain: TypedDataDomain
|
|
37
|
-
types: TypedData
|
|
38
|
-
values: PermitSingle
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export type PermitBatchData = {
|
|
42
|
-
domain: TypedDataDomain
|
|
43
|
-
types: TypedData
|
|
44
|
-
values: PermitBatch
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const PERMIT_DETAILS = [
|
|
48
|
-
{ name: 'token', type: 'address' },
|
|
49
|
-
{ name: 'amount', type: 'uint160' },
|
|
50
|
-
{ name: 'expiration', type: 'uint48' },
|
|
51
|
-
{ name: 'nonce', type: 'uint48' },
|
|
52
|
-
] as const
|
|
53
|
-
|
|
54
|
-
const PERMIT_TYPES = {
|
|
55
|
-
PermitDetails: PERMIT_DETAILS,
|
|
56
|
-
PermitSingle: [
|
|
57
|
-
{ name: 'details', type: 'PermitDetails' },
|
|
58
|
-
{ name: 'spender', type: 'address' },
|
|
59
|
-
{ name: 'sigDeadline', type: 'uint256' },
|
|
60
|
-
],
|
|
61
|
-
} as const
|
|
62
|
-
|
|
63
|
-
const PERMIT_BATCH_TYPES = {
|
|
64
|
-
PermitDetails: PERMIT_DETAILS,
|
|
65
|
-
PermitBatch: [
|
|
66
|
-
{ name: 'details', type: 'PermitDetails[]' },
|
|
67
|
-
{ name: 'spender', type: 'address' },
|
|
68
|
-
{ name: 'sigDeadline', type: 'uint256' },
|
|
69
|
-
],
|
|
70
|
-
} as const
|
|
71
|
-
|
|
72
|
-
function isPermit(permit: PermitSingle | PermitBatch): permit is PermitSingle {
|
|
73
|
-
return !Array.isArray(permit.details)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export function getPermitSingleData(
|
|
77
|
-
permit: PermitSingle,
|
|
78
|
-
permit2Address: Address,
|
|
79
|
-
chainId: number
|
|
80
|
-
) {
|
|
81
|
-
invariant(MaxSigDeadline >= permit.sigDeadline, 'SIG_DEADLINE_OUT_OF_RANGE')
|
|
82
|
-
|
|
83
|
-
const domain = permit2Domain(permit2Address, chainId)
|
|
84
|
-
validatePermitDetails(permit.details)
|
|
85
|
-
|
|
86
|
-
return {
|
|
87
|
-
domain,
|
|
88
|
-
values: permit,
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export function getPermitBatchData(
|
|
93
|
-
permit: PermitBatch,
|
|
94
|
-
permit2Address: Address,
|
|
95
|
-
chainId: number
|
|
96
|
-
) {
|
|
97
|
-
invariant(MaxSigDeadline >= permit.sigDeadline, 'SIG_DEADLINE_OUT_OF_RANGE')
|
|
98
|
-
|
|
99
|
-
const domain = permit2Domain(permit2Address, chainId)
|
|
100
|
-
permit.details.forEach(validatePermitDetails)
|
|
101
|
-
|
|
102
|
-
return {
|
|
103
|
-
domain,
|
|
104
|
-
values: permit,
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export function getPermitData(
|
|
109
|
-
permit: PermitSingle | PermitBatch,
|
|
110
|
-
permit2Address: Address,
|
|
111
|
-
chainId: number
|
|
112
|
-
): PermitSingleData | PermitBatchData {
|
|
113
|
-
invariant(MaxSigDeadline >= permit.sigDeadline, 'SIG_DEADLINE_OUT_OF_RANGE')
|
|
114
|
-
|
|
115
|
-
const domain = permit2Domain(permit2Address, chainId)
|
|
116
|
-
if (isPermit(permit)) {
|
|
117
|
-
validatePermitDetails(permit.details)
|
|
118
|
-
return {
|
|
119
|
-
domain,
|
|
120
|
-
types: PERMIT_TYPES,
|
|
121
|
-
values: permit,
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
permit.details.forEach(validatePermitDetails)
|
|
125
|
-
return {
|
|
126
|
-
domain,
|
|
127
|
-
types: PERMIT_BATCH_TYPES,
|
|
128
|
-
values: permit,
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export function hash(
|
|
133
|
-
permit: PermitSingle | PermitBatch,
|
|
134
|
-
permit2Address: Address,
|
|
135
|
-
chainId: number
|
|
136
|
-
): string {
|
|
137
|
-
if (isPermit(permit)) {
|
|
138
|
-
const { domain, values } = getPermitSingleData(
|
|
139
|
-
permit,
|
|
140
|
-
permit2Address,
|
|
141
|
-
chainId
|
|
142
|
-
)
|
|
143
|
-
|
|
144
|
-
return hashTypedData({
|
|
145
|
-
domain,
|
|
146
|
-
types: PERMIT_TYPES,
|
|
147
|
-
primaryType: 'PermitSingle',
|
|
148
|
-
message: values,
|
|
149
|
-
})
|
|
150
|
-
}
|
|
151
|
-
const { domain, values } = getPermitBatchData(permit, permit2Address, chainId)
|
|
152
|
-
|
|
153
|
-
return hashTypedData({
|
|
154
|
-
domain,
|
|
155
|
-
types: PERMIT_BATCH_TYPES,
|
|
156
|
-
primaryType: 'PermitBatch',
|
|
157
|
-
message: values,
|
|
158
|
-
})
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
function validatePermitDetails(details: PermitDetails) {
|
|
162
|
-
invariant(MaxOrderedNonce >= details.nonce, 'NONCE_OUT_OF_RANGE')
|
|
163
|
-
invariant(MaxAllowanceTransferAmount >= details.amount, 'AMOUNT_OUT_OF_RANGE')
|
|
164
|
-
invariant(
|
|
165
|
-
MaxAllowanceExpiration >= details.expiration,
|
|
166
|
-
'EXPIRATION_OUT_OF_RANGE'
|
|
167
|
-
)
|
|
168
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { MaxUint48, MaxUint160, MaxUint256 } from '../../../constants.js'
|
|
2
|
-
|
|
3
|
-
export const MaxAllowanceTransferAmount = MaxUint160
|
|
4
|
-
export const MaxAllowanceExpiration = MaxUint48
|
|
5
|
-
export const MaxOrderedNonce = MaxUint48
|
|
6
|
-
|
|
7
|
-
export const MaxSignatureTransferAmount = MaxUint256
|
|
8
|
-
export const MaxUnorderedNonce = MaxUint256
|
|
9
|
-
export const MaxSigDeadline = MaxUint256
|
|
10
|
-
|
|
11
|
-
export const InstantExpiration = 0n
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Address, TypedData, TypedDataDomain } from 'viem'
|
|
2
|
-
|
|
3
|
-
const PERMIT2_DOMAIN_NAME = 'Permit2'
|
|
4
|
-
|
|
5
|
-
export function permit2Domain(
|
|
6
|
-
permit2Address: Address,
|
|
7
|
-
chainId: number
|
|
8
|
-
): TypedDataDomain {
|
|
9
|
-
return {
|
|
10
|
-
name: PERMIT2_DOMAIN_NAME,
|
|
11
|
-
chainId,
|
|
12
|
-
verifyingContract: permit2Address,
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export type PermitData = {
|
|
17
|
-
domain: TypedDataDomain
|
|
18
|
-
types: TypedData
|
|
19
|
-
values: any
|
|
20
|
-
}
|