@centrifuge/sdk 1.7.2 → 1.7.4
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/dist/Centrifuge.d.ts +10 -10
- package/dist/abi/Currency.abi.d.ts +1 -1
- package/dist/abi/Currency.abi.d.ts.map +1 -1
- package/dist/abi/Currency.abi.js +2 -0
- package/dist/abi/Currency.abi.js.map +1 -1
- package/dist/abi/index.d.ts +35 -0
- package/dist/abi/index.d.ts.map +1 -1
- package/dist/utils/permit.d.ts.map +1 -1
- package/dist/utils/permit.js +34 -14
- package/dist/utils/permit.js.map +1 -1
- package/package.json +1 -1
package/dist/Centrifuge.d.ts
CHANGED
|
@@ -85,9 +85,9 @@ export declare class Centrifuge {
|
|
|
85
85
|
authorizationList?: undefined;
|
|
86
86
|
hash: import("viem").Hash;
|
|
87
87
|
yParity?: undefined;
|
|
88
|
+
chainId?: number | undefined;
|
|
88
89
|
input: import("viem").Hex;
|
|
89
90
|
typeHex: import("viem").Hex | null;
|
|
90
|
-
chainId?: number | undefined;
|
|
91
91
|
blockNumber: (blockTag extends "pending" ? true : false) extends infer T ? T extends (blockTag extends "pending" ? true : false) ? T extends true ? null : bigint : never : never;
|
|
92
92
|
blockHash: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : `0x${string}` : never : never;
|
|
93
93
|
transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
|
|
@@ -110,9 +110,9 @@ export declare class Centrifuge {
|
|
|
110
110
|
authorizationList?: undefined;
|
|
111
111
|
hash: import("viem").Hash;
|
|
112
112
|
yParity: number;
|
|
113
|
+
chainId: number;
|
|
113
114
|
input: import("viem").Hex;
|
|
114
115
|
typeHex: import("viem").Hex | null;
|
|
115
|
-
chainId: number;
|
|
116
116
|
blockNumber: (blockTag extends "pending" ? true : false) extends infer T ? T extends (blockTag extends "pending" ? true : false) ? T extends true ? null : bigint : never : never;
|
|
117
117
|
blockHash: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : `0x${string}` : never : never;
|
|
118
118
|
transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
|
|
@@ -135,9 +135,9 @@ export declare class Centrifuge {
|
|
|
135
135
|
authorizationList?: undefined;
|
|
136
136
|
hash: import("viem").Hash;
|
|
137
137
|
yParity: number;
|
|
138
|
+
chainId: number;
|
|
138
139
|
input: import("viem").Hex;
|
|
139
140
|
typeHex: import("viem").Hex | null;
|
|
140
|
-
chainId: number;
|
|
141
141
|
blockNumber: (blockTag extends "pending" ? true : false) extends infer T ? T extends (blockTag extends "pending" ? true : false) ? T extends true ? null : bigint : never : never;
|
|
142
142
|
blockHash: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : `0x${string}` : never : never;
|
|
143
143
|
transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
|
|
@@ -160,9 +160,9 @@ export declare class Centrifuge {
|
|
|
160
160
|
authorizationList?: undefined;
|
|
161
161
|
hash: import("viem").Hash;
|
|
162
162
|
yParity: number;
|
|
163
|
+
chainId: number;
|
|
163
164
|
input: import("viem").Hex;
|
|
164
165
|
typeHex: import("viem").Hex | null;
|
|
165
|
-
chainId: number;
|
|
166
166
|
blockNumber: (blockTag extends "pending" ? true : false) extends infer T ? T extends (blockTag extends "pending" ? true : false) ? T extends true ? null : bigint : never : never;
|
|
167
167
|
blockHash: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : `0x${string}` : never : never;
|
|
168
168
|
transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
|
|
@@ -185,9 +185,9 @@ export declare class Centrifuge {
|
|
|
185
185
|
authorizationList: import("viem").SignedAuthorizationList;
|
|
186
186
|
hash: import("viem").Hash;
|
|
187
187
|
yParity: number;
|
|
188
|
+
chainId: number;
|
|
188
189
|
input: import("viem").Hex;
|
|
189
190
|
typeHex: import("viem").Hex | null;
|
|
190
|
-
chainId: number;
|
|
191
191
|
blockNumber: (blockTag extends "pending" ? true : false) extends infer T ? T extends (blockTag extends "pending" ? true : false) ? T extends true ? null : bigint : never : never;
|
|
192
192
|
blockHash: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : `0x${string}` : never : never;
|
|
193
193
|
transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
|
|
@@ -235,9 +235,9 @@ export declare class Centrifuge {
|
|
|
235
235
|
authorizationList?: undefined;
|
|
236
236
|
hash: import("viem").Hash;
|
|
237
237
|
yParity?: undefined;
|
|
238
|
+
chainId?: number | undefined;
|
|
238
239
|
input: import("viem").Hex;
|
|
239
240
|
typeHex: import("viem").Hex | null;
|
|
240
|
-
chainId?: number | undefined;
|
|
241
241
|
blockNumber: (blockTag extends "pending" ? true : false) extends infer T ? T extends (blockTag extends "pending" ? true : false) ? T extends true ? null : bigint : never : never;
|
|
242
242
|
blockHash: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : `0x${string}` : never : never;
|
|
243
243
|
transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
|
|
@@ -260,9 +260,9 @@ export declare class Centrifuge {
|
|
|
260
260
|
authorizationList?: undefined;
|
|
261
261
|
hash: import("viem").Hash;
|
|
262
262
|
yParity: number;
|
|
263
|
+
chainId: number;
|
|
263
264
|
input: import("viem").Hex;
|
|
264
265
|
typeHex: import("viem").Hex | null;
|
|
265
|
-
chainId: number;
|
|
266
266
|
blockNumber: (blockTag extends "pending" ? true : false) extends infer T ? T extends (blockTag extends "pending" ? true : false) ? T extends true ? null : bigint : never : never;
|
|
267
267
|
blockHash: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : `0x${string}` : never : never;
|
|
268
268
|
transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
|
|
@@ -285,9 +285,9 @@ export declare class Centrifuge {
|
|
|
285
285
|
authorizationList?: undefined;
|
|
286
286
|
hash: import("viem").Hash;
|
|
287
287
|
yParity: number;
|
|
288
|
+
chainId: number;
|
|
288
289
|
input: import("viem").Hex;
|
|
289
290
|
typeHex: import("viem").Hex | null;
|
|
290
|
-
chainId: number;
|
|
291
291
|
blockNumber: (blockTag extends "pending" ? true : false) extends infer T ? T extends (blockTag extends "pending" ? true : false) ? T extends true ? null : bigint : never : never;
|
|
292
292
|
blockHash: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : `0x${string}` : never : never;
|
|
293
293
|
transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
|
|
@@ -310,9 +310,9 @@ export declare class Centrifuge {
|
|
|
310
310
|
authorizationList?: undefined;
|
|
311
311
|
hash: import("viem").Hash;
|
|
312
312
|
yParity: number;
|
|
313
|
+
chainId: number;
|
|
313
314
|
input: import("viem").Hex;
|
|
314
315
|
typeHex: import("viem").Hex | null;
|
|
315
|
-
chainId: number;
|
|
316
316
|
blockNumber: (blockTag extends "pending" ? true : false) extends infer T ? T extends (blockTag extends "pending" ? true : false) ? T extends true ? null : bigint : never : never;
|
|
317
317
|
blockHash: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : `0x${string}` : never : never;
|
|
318
318
|
transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
|
|
@@ -335,9 +335,9 @@ export declare class Centrifuge {
|
|
|
335
335
|
authorizationList: import("viem").SignedAuthorizationList;
|
|
336
336
|
hash: import("viem").Hash;
|
|
337
337
|
yParity: number;
|
|
338
|
+
chainId: number;
|
|
338
339
|
input: import("viem").Hex;
|
|
339
340
|
typeHex: import("viem").Hex | null;
|
|
340
|
-
chainId: number;
|
|
341
341
|
blockNumber: (blockTag extends "pending" ? true : false) extends infer T ? T extends (blockTag extends "pending" ? true : false) ? T extends true ? null : bigint : never : never;
|
|
342
342
|
blockHash: (blockTag extends "pending" ? true : false) extends infer T_1 ? T_1 extends (blockTag extends "pending" ? true : false) ? T_1 extends true ? null : `0x${string}` : never : never;
|
|
343
343
|
transactionIndex: (blockTag extends "pending" ? true : false) extends infer T_2 ? T_2 extends (blockTag extends "pending" ? true : false) ? T_2 extends true ? null : number : never : never;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const _default: readonly ["event Approval(address indexed owner, address indexed spender, uint256 value)", "event Transfer(address indexed from, address indexed to, uint256 value)", "function PERMIT_TYPEHASH() view returns (bytes32)", "function nonces(address) view returns (uint256)", "function approve(address, uint) external returns (bool)", "function transfer(address, uint) external returns (bool)", "function balanceOf(address) view returns (uint)", "function allowance(address owner, address spender) view returns (uint)", "function decimals() view returns (uint8)", "function name() view returns (string)", "function symbol() view returns (string)", "function checkTransferRestriction(address, address, uint) view returns (bool)", "function hook() view returns (address)"];
|
|
1
|
+
declare const _default: readonly ["event Approval(address indexed owner, address indexed spender, uint256 value)", "event Transfer(address indexed from, address indexed to, uint256 value)", "function PERMIT_TYPEHASH() view returns (bytes32)", "function nonces(address) view returns (uint256)", "function version() view returns (string)", "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)", "function approve(address, uint) external returns (bool)", "function transfer(address, uint) external returns (bool)", "function balanceOf(address) view returns (uint)", "function allowance(address owner, address spender) view returns (uint)", "function decimals() view returns (uint8)", "function name() view returns (string)", "function symbol() view returns (string)", "function checkTransferRestriction(address, address, uint) view returns (bool)", "function hook() view returns (address)"];
|
|
2
2
|
export default _default;
|
|
3
3
|
//# sourceMappingURL=Currency.abi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Currency.abi.d.ts","sourceRoot":"","sources":["../../src/abi/Currency.abi.ts"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"Currency.abi.d.ts","sourceRoot":"","sources":["../../src/abi/Currency.abi.ts"],"names":[],"mappings":";AAAA,wBAgBU"}
|
package/dist/abi/Currency.abi.js
CHANGED
|
@@ -3,6 +3,8 @@ export default [
|
|
|
3
3
|
'event Transfer(address indexed from, address indexed to, uint256 value)',
|
|
4
4
|
'function PERMIT_TYPEHASH() view returns (bytes32)',
|
|
5
5
|
'function nonces(address) view returns (uint256)',
|
|
6
|
+
'function version() view returns (string)',
|
|
7
|
+
'function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)',
|
|
6
8
|
'function approve(address, uint) external returns (bool)',
|
|
7
9
|
'function transfer(address, uint) external returns (bool)',
|
|
8
10
|
'function balanceOf(address) view returns (uint)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Currency.abi.js","sourceRoot":"","sources":["../../src/abi/Currency.abi.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,+EAA+E;IAC/E,yEAAyE;IACzE,mDAAmD;IACnD,iDAAiD;IACjD,yDAAyD;IACzD,0DAA0D;IAC1D,iDAAiD;IACjD,wEAAwE;IACxE,0CAA0C;IAC1C,uCAAuC;IACvC,yCAAyC;IACzC,+EAA+E;IAC/E,wCAAwC;CAChC,CAAA"}
|
|
1
|
+
{"version":3,"file":"Currency.abi.js","sourceRoot":"","sources":["../../src/abi/Currency.abi.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,+EAA+E;IAC/E,yEAAyE;IACzE,mDAAmD;IACnD,iDAAiD;IACjD,0CAA0C;IAC1C,mKAAmK;IACnK,yDAAyD;IACzD,0DAA0D;IAC1D,iDAAiD;IACjD,wEAAwE;IACxE,0CAA0C;IAC1C,uCAAuC;IACvC,yCAAyC;IACzC,+EAA+E;IAC/E,wCAAwC;CAChC,CAAA"}
|
package/dist/abi/index.d.ts
CHANGED
|
@@ -3239,6 +3239,41 @@ export declare const ABI: {
|
|
|
3239
3239
|
readonly outputs: readonly [{
|
|
3240
3240
|
readonly type: "uint256";
|
|
3241
3241
|
}];
|
|
3242
|
+
}, {
|
|
3243
|
+
readonly name: "version";
|
|
3244
|
+
readonly type: "function";
|
|
3245
|
+
readonly stateMutability: "view";
|
|
3246
|
+
readonly inputs: readonly [];
|
|
3247
|
+
readonly outputs: readonly [{
|
|
3248
|
+
readonly type: "string";
|
|
3249
|
+
}];
|
|
3250
|
+
}, {
|
|
3251
|
+
readonly name: "eip712Domain";
|
|
3252
|
+
readonly type: "function";
|
|
3253
|
+
readonly stateMutability: "view";
|
|
3254
|
+
readonly inputs: readonly [];
|
|
3255
|
+
readonly outputs: readonly [{
|
|
3256
|
+
readonly type: "bytes1";
|
|
3257
|
+
readonly name: "fields";
|
|
3258
|
+
}, {
|
|
3259
|
+
readonly type: "string";
|
|
3260
|
+
readonly name: "name";
|
|
3261
|
+
}, {
|
|
3262
|
+
readonly type: "string";
|
|
3263
|
+
readonly name: "version";
|
|
3264
|
+
}, {
|
|
3265
|
+
readonly type: "uint256";
|
|
3266
|
+
readonly name: "chainId";
|
|
3267
|
+
}, {
|
|
3268
|
+
readonly type: "address";
|
|
3269
|
+
readonly name: "verifyingContract";
|
|
3270
|
+
}, {
|
|
3271
|
+
readonly type: "bytes32";
|
|
3272
|
+
readonly name: "salt";
|
|
3273
|
+
}, {
|
|
3274
|
+
readonly type: "uint256[]";
|
|
3275
|
+
readonly name: "extensions";
|
|
3276
|
+
}];
|
|
3242
3277
|
}, {
|
|
3243
3278
|
readonly name: "approve";
|
|
3244
3279
|
readonly type: "function";
|
package/dist/abi/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abi/index.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abi/index.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Bf,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permit.d.ts","sourceRoot":"","sources":["../../src/utils/permit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,MAAM,CAAA;AAGzD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,MAAM,MAAM,GAAG;IACnB,CAAC,EAAE,SAAS,CAAA;IACZ,CAAC,EAAE,SAAS,CAAA;IACZ,CAAC,EAAE,MAAM,CAAA;IACT,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAA;AAE1G,wBAAsB,UAAU,CAC9B,GAAG,EAAE,kBAAkB,EACvB,eAAe,EAAE,SAAS,EAC1B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"permit.d.ts","sourceRoot":"","sources":["../../src/utils/permit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,MAAM,CAAA;AAGzD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,MAAM,MAAM,GAAG;IACnB,CAAC,EAAE,SAAS,CAAA;IACZ,CAAC,EAAE,SAAS,CAAA;IACZ,CAAC,EAAE,MAAM,CAAA;IACT,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAA;AAE1G,wBAAsB,UAAU,CAC9B,GAAG,EAAE,kBAAkB,EACvB,eAAe,EAAE,SAAS,EAC1B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,mBAQf;AA0CD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,kBAAkB,EACvB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,SAAS,GAAG,MAAM,EACpC,OAAO,EAAE,SAAS,EAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAChC,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAsCjB"}
|
package/dist/utils/permit.js
CHANGED
|
@@ -1,24 +1,44 @@
|
|
|
1
1
|
import { hexToNumber, maxUint256, slice } from 'viem';
|
|
2
2
|
import { ABI } from '../abi/index.js';
|
|
3
3
|
export async function signPermit(ctx, currencyAddress, spender, amount) {
|
|
4
|
-
let domainOrCurrency = currencyAddress;
|
|
5
|
-
const USDC = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';
|
|
6
4
|
const chainId = await ctx.root._idToChain(ctx.centrifugeId);
|
|
7
|
-
|
|
8
|
-
// USDC has a custom version
|
|
9
|
-
domainOrCurrency = { name: 'USD Coin', version: '2', chainId, verifyingContract: currencyAddress };
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
const chainConfig = await ctx.root.getChainConfig(ctx.centrifugeId);
|
|
13
|
-
if (chainConfig.testnet) {
|
|
14
|
-
// Assume that the currencies used on testnets have our custom domain
|
|
15
|
-
domainOrCurrency = { name: 'Centrifuge', version: '1', chainId, verifyingContract: currencyAddress };
|
|
16
|
-
}
|
|
17
|
-
}
|
|
5
|
+
const domain = await resolvePermitDomain(ctx, currencyAddress, chainId);
|
|
18
6
|
const deadline = Math.floor(Date.now() / 1000) + 3600; // 1 hour
|
|
19
|
-
const permit = await signERC2612Permit(ctx, chainId,
|
|
7
|
+
const permit = await signERC2612Permit(ctx, chainId, domain, spender, amount, deadline);
|
|
20
8
|
return permit;
|
|
21
9
|
}
|
|
10
|
+
async function resolvePermitDomain(ctx, currencyAddress, chainId) {
|
|
11
|
+
// Prefer EIP-5267 eip712Domain() — authoritative when the token implements it (e.g. Circle's FiatTokenV2).
|
|
12
|
+
try {
|
|
13
|
+
const result = await ctx.publicClient.readContract({
|
|
14
|
+
address: currencyAddress,
|
|
15
|
+
abi: ABI.Currency,
|
|
16
|
+
functionName: 'eip712Domain',
|
|
17
|
+
});
|
|
18
|
+
const name = result[1];
|
|
19
|
+
const version = result[2];
|
|
20
|
+
const verifyingContract = result[4];
|
|
21
|
+
if (name && version) {
|
|
22
|
+
return { name, version, chainId, verifyingContract: verifyingContract ?? currencyAddress };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch { }
|
|
26
|
+
// Fallback for tokens that don't implement eip712Domain(). Centrifuge's own ERC20
|
|
27
|
+
// (used for testnet mock currencies) hardcodes the domain to name="Centrifuge", version="1"
|
|
28
|
+
// and doesn't expose version() or eip712Domain(), so we apply that domain on testnets.
|
|
29
|
+
const chainConfig = await ctx.root.getChainConfig(ctx.centrifugeId);
|
|
30
|
+
if (chainConfig.testnet) {
|
|
31
|
+
return { name: 'Centrifuge', version: '1', chainId, verifyingContract: currencyAddress };
|
|
32
|
+
}
|
|
33
|
+
// Mainnet fallback: read name() and version() individually; default version to '1'.
|
|
34
|
+
const [name, version] = await Promise.all([
|
|
35
|
+
getName(ctx.publicClient, currencyAddress),
|
|
36
|
+
ctx.publicClient
|
|
37
|
+
.readContract({ address: currencyAddress, abi: ABI.Currency, functionName: 'version' })
|
|
38
|
+
.catch(() => '1'),
|
|
39
|
+
]);
|
|
40
|
+
return { name, version, chainId, verifyingContract: currencyAddress };
|
|
41
|
+
}
|
|
22
42
|
export async function signERC2612Permit(ctx, chainId, currencyOrDomain, spender, value, deadline, nonce) {
|
|
23
43
|
const types = {
|
|
24
44
|
Permit: [
|
package/dist/utils/permit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permit.js","sourceRoot":"","sources":["../../src/utils/permit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAarC,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAuB,EACvB,eAA0B,EAC1B,OAAkB,EAClB,MAAc;IAEd,IAAI,
|
|
1
|
+
{"version":3,"file":"permit.js","sourceRoot":"","sources":["../../src/utils/permit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAarC,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAuB,EACvB,eAA0B,EAC1B,OAAkB,EAClB,MAAc;IAEd,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;IAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA,CAAC,SAAS;IAC/D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACvF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,GAAuB,EACvB,eAA0B,EAC1B,OAAe;IAEf,2GAA2G;IAC3G,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC;YACjD,OAAO,EAAE,eAAe;YACxB,GAAG,EAAE,GAAG,CAAC,QAAQ;YACjB,YAAY,EAAE,cAAc;SAC7B,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAEnC,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,IAAI,eAAe,EAAE,CAAA;QAC5F,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,kFAAkF;IAClF,4FAA4F;IAC5F,uFAAuF;IACvF,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACnE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAA;IAC1F,CAAC;IAED,oFAAoF;IACpF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC;QAC1C,GAAG,CAAC,YAAY;aACb,YAAY,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;aACtF,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;KACpB,CAAC,CAAA;IACF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAA;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAuB,EACvB,OAAe,EACf,gBAAoC,EACpC,OAAkB,EAClB,KAAgC,EAChC,QAAiB,EACjB,KAAc;IAEd,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;SACtC;KACF,CAAA;IACD,MAAM,UAAU,GACd,OAAO,gBAAgB,KAAK,QAAQ;QAClC,CAAC,CAAC;YACE,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC;YACvD,OAAO,EAAE,GAAG;YACZ,OAAO;YACP,iBAAiB,EAAE,gBAAgB;SACpC;QACH,CAAC,CAAC,gBAAgB,CAAA;IACtB,MAAM,KAAK,GAAG,GAAG,CAAC,cAAc,CAAA;IAChC,MAAM,OAAO,GAAG;QACd,KAAK;QACL,OAAO;QACP,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;QACzC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,iBAA8B,EAAE,KAAK,CAAC,CAAC;QACpG,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU;KACnD,CAAA;IAED,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC;QACrD,OAAO;QACP,MAAM,EAAE,UAAU;QAClB,WAAW,EAAE,QAAQ;QACrB,KAAK;KACN,CAAC,CAAA;IACF,OAAO;QACL,GAAG,cAAc,CAAC,SAAS,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,SAAoB;IAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IACjC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAClC,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAC/C,OAAO;QACL,CAAC;QACD,CAAC;QACD,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;KACvB,CAAA;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,YAA0B,EAAE,eAA0B;IAC3E,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;QAC3C,OAAO,EAAE,eAAe;QACxB,GAAG,EAAE,GAAG,CAAC,QAAQ;QACjB,YAAY,EAAE,MAAM;KACrB,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,YAA0B,EAAE,eAA0B,EAAE,YAAuB;IACrG,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;QAC5C,OAAO,EAAE,eAAe;QACxB,GAAG,EAAE,GAAG,CAAC,QAAQ;QACjB,YAAY,EAAE,QAAQ;QACtB,IAAI,EAAE,CAAC,YAAY,CAAC;KACrB,CAAC,CAAA;IACF,OAAO,KAAK,CAAA;AACd,CAAC"}
|