@centrifuge/sdk 0.13.1 → 0.14.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/README.md +5 -5
- package/dist/config/chains.d.ts +32 -32
- package/dist/config/chains.d.ts.map +1 -1
- package/dist/entities/MerkleProofManager.d.ts +3 -2
- package/dist/entities/MerkleProofManager.d.ts.map +1 -1
- package/dist/entities/MerkleProofManager.js +88 -60
- package/dist/entities/MerkleProofManager.js.map +1 -1
- package/dist/entities/MerkleProofManager.test.js +493 -51
- package/dist/entities/MerkleProofManager.test.js.map +1 -1
- package/dist/entities/OnOffRampManager.test.js +3 -3
- package/dist/entities/OnOffRampManager.test.js.map +1 -1
- package/dist/entities/PoolNetwork.test.js +1 -1
- package/dist/entities/PoolNetwork.test.js.map +1 -1
- package/dist/types/poolMetadata.d.ts +28 -7
- package/dist/types/poolMetadata.d.ts.map +1 -1
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -197,21 +197,21 @@ const report = await pool.reports.sharePrices({
|
|
|
197
197
|
#### Development Mode
|
|
198
198
|
|
|
199
199
|
```bash
|
|
200
|
-
|
|
200
|
+
pnpm dev
|
|
201
201
|
```
|
|
202
202
|
|
|
203
203
|
#### Building
|
|
204
204
|
|
|
205
205
|
```bash
|
|
206
|
-
|
|
206
|
+
pnpm build
|
|
207
207
|
```
|
|
208
208
|
|
|
209
209
|
#### Testing
|
|
210
210
|
|
|
211
211
|
```bash
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
212
|
+
pnpm test # full test suite
|
|
213
|
+
pnpm test:single <file> # test specific file
|
|
214
|
+
pnpm test:simple:single <file>
|
|
215
215
|
# (runs faster excluding setup files)
|
|
216
216
|
```
|
|
217
217
|
|
package/dist/config/chains.d.ts
CHANGED
|
@@ -168,7 +168,7 @@ export declare const chains: ({
|
|
|
168
168
|
gasUsed: bigint;
|
|
169
169
|
hash: `0x${string}` | null;
|
|
170
170
|
logsBloom: `0x${string}` | null;
|
|
171
|
-
miner: import("
|
|
171
|
+
miner: import("viem").Address;
|
|
172
172
|
mixHash: import("viem").Hash;
|
|
173
173
|
nonce: `0x${string}` | null;
|
|
174
174
|
number: bigint | null;
|
|
@@ -194,14 +194,14 @@ export declare const chains: ({
|
|
|
194
194
|
format: (args: import("viem/chains").OpStackRpcTransaction) => ({
|
|
195
195
|
blockHash: `0x${string}` | null;
|
|
196
196
|
blockNumber: bigint | null;
|
|
197
|
-
from: import("
|
|
197
|
+
from: import("viem").Address;
|
|
198
198
|
gas: bigint;
|
|
199
199
|
hash: import("viem").Hash;
|
|
200
200
|
input: import("viem").Hex;
|
|
201
201
|
nonce: number;
|
|
202
202
|
r: import("viem").Hex;
|
|
203
203
|
s: import("viem").Hex;
|
|
204
|
-
to: import("
|
|
204
|
+
to: import("viem").Address | null;
|
|
205
205
|
transactionIndex: number | null;
|
|
206
206
|
typeHex: import("viem").Hex | null;
|
|
207
207
|
v: bigint;
|
|
@@ -219,8 +219,8 @@ export declare const chains: ({
|
|
|
219
219
|
r: import("viem").Hex;
|
|
220
220
|
s: import("viem").Hex;
|
|
221
221
|
v: bigint;
|
|
222
|
-
to: import("
|
|
223
|
-
from: import("
|
|
222
|
+
to: import("viem").Address | null;
|
|
223
|
+
from: import("viem").Address;
|
|
224
224
|
gas: bigint;
|
|
225
225
|
nonce: number;
|
|
226
226
|
value: bigint;
|
|
@@ -246,14 +246,14 @@ export declare const chains: ({
|
|
|
246
246
|
} | {
|
|
247
247
|
blockHash: `0x${string}` | null;
|
|
248
248
|
blockNumber: bigint | null;
|
|
249
|
-
from: import("
|
|
249
|
+
from: import("viem").Address;
|
|
250
250
|
gas: bigint;
|
|
251
251
|
hash: import("viem").Hash;
|
|
252
252
|
input: import("viem").Hex;
|
|
253
253
|
nonce: number;
|
|
254
254
|
r: import("viem").Hex;
|
|
255
255
|
s: import("viem").Hex;
|
|
256
|
-
to: import("
|
|
256
|
+
to: import("viem").Address | null;
|
|
257
257
|
transactionIndex: number | null;
|
|
258
258
|
typeHex: import("viem").Hex | null;
|
|
259
259
|
v: bigint;
|
|
@@ -274,14 +274,14 @@ export declare const chains: ({
|
|
|
274
274
|
} | {
|
|
275
275
|
blockHash: `0x${string}` | null;
|
|
276
276
|
blockNumber: bigint | null;
|
|
277
|
-
from: import("
|
|
277
|
+
from: import("viem").Address;
|
|
278
278
|
gas: bigint;
|
|
279
279
|
hash: import("viem").Hash;
|
|
280
280
|
input: import("viem").Hex;
|
|
281
281
|
nonce: number;
|
|
282
282
|
r: import("viem").Hex;
|
|
283
283
|
s: import("viem").Hex;
|
|
284
|
-
to: import("
|
|
284
|
+
to: import("viem").Address | null;
|
|
285
285
|
transactionIndex: number | null;
|
|
286
286
|
typeHex: import("viem").Hex | null;
|
|
287
287
|
v: bigint;
|
|
@@ -302,14 +302,14 @@ export declare const chains: ({
|
|
|
302
302
|
} | {
|
|
303
303
|
blockHash: `0x${string}` | null;
|
|
304
304
|
blockNumber: bigint | null;
|
|
305
|
-
from: import("
|
|
305
|
+
from: import("viem").Address;
|
|
306
306
|
gas: bigint;
|
|
307
307
|
hash: import("viem").Hash;
|
|
308
308
|
input: import("viem").Hex;
|
|
309
309
|
nonce: number;
|
|
310
310
|
r: import("viem").Hex;
|
|
311
311
|
s: import("viem").Hex;
|
|
312
|
-
to: import("
|
|
312
|
+
to: import("viem").Address | null;
|
|
313
313
|
transactionIndex: number | null;
|
|
314
314
|
typeHex: import("viem").Hex | null;
|
|
315
315
|
v: bigint;
|
|
@@ -330,14 +330,14 @@ export declare const chains: ({
|
|
|
330
330
|
} | {
|
|
331
331
|
blockHash: `0x${string}` | null;
|
|
332
332
|
blockNumber: bigint | null;
|
|
333
|
-
from: import("
|
|
333
|
+
from: import("viem").Address;
|
|
334
334
|
gas: bigint;
|
|
335
335
|
hash: import("viem").Hash;
|
|
336
336
|
input: import("viem").Hex;
|
|
337
337
|
nonce: number;
|
|
338
338
|
r: import("viem").Hex;
|
|
339
339
|
s: import("viem").Hex;
|
|
340
|
-
to: import("
|
|
340
|
+
to: import("viem").Address | null;
|
|
341
341
|
transactionIndex: number | null;
|
|
342
342
|
typeHex: import("viem").Hex | null;
|
|
343
343
|
v: bigint;
|
|
@@ -365,16 +365,16 @@ export declare const chains: ({
|
|
|
365
365
|
blobGasUsed?: bigint | undefined;
|
|
366
366
|
blockHash: import("viem").Hash;
|
|
367
367
|
blockNumber: bigint;
|
|
368
|
-
contractAddress: import("
|
|
368
|
+
contractAddress: import("viem").Address | null | undefined;
|
|
369
369
|
cumulativeGasUsed: bigint;
|
|
370
370
|
effectiveGasPrice: bigint;
|
|
371
|
-
from: import("
|
|
371
|
+
from: import("viem").Address;
|
|
372
372
|
gasUsed: bigint;
|
|
373
373
|
logs: import("viem").Log<bigint, number, false>[];
|
|
374
374
|
logsBloom: import("viem").Hex;
|
|
375
375
|
root?: `0x${string}` | undefined;
|
|
376
376
|
status: "success" | "reverted";
|
|
377
|
-
to: import("
|
|
377
|
+
to: import("viem").Address | null;
|
|
378
378
|
transactionHash: import("viem").Hash;
|
|
379
379
|
transactionIndex: number;
|
|
380
380
|
type: import("viem").TransactionType;
|
|
@@ -475,7 +475,7 @@ export declare const chains: ({
|
|
|
475
475
|
gasUsed: bigint;
|
|
476
476
|
hash: `0x${string}` | null;
|
|
477
477
|
logsBloom: `0x${string}` | null;
|
|
478
|
-
miner: import("
|
|
478
|
+
miner: import("viem").Address;
|
|
479
479
|
mixHash: import("viem").Hash;
|
|
480
480
|
nonce: `0x${string}` | null;
|
|
481
481
|
number: bigint | null;
|
|
@@ -501,14 +501,14 @@ export declare const chains: ({
|
|
|
501
501
|
format: (args: import("viem/chains").OpStackRpcTransaction) => ({
|
|
502
502
|
blockHash: `0x${string}` | null;
|
|
503
503
|
blockNumber: bigint | null;
|
|
504
|
-
from: import("
|
|
504
|
+
from: import("viem").Address;
|
|
505
505
|
gas: bigint;
|
|
506
506
|
hash: import("viem").Hash;
|
|
507
507
|
input: import("viem").Hex;
|
|
508
508
|
nonce: number;
|
|
509
509
|
r: import("viem").Hex;
|
|
510
510
|
s: import("viem").Hex;
|
|
511
|
-
to: import("
|
|
511
|
+
to: import("viem").Address | null;
|
|
512
512
|
transactionIndex: number | null;
|
|
513
513
|
typeHex: import("viem").Hex | null;
|
|
514
514
|
v: bigint;
|
|
@@ -526,8 +526,8 @@ export declare const chains: ({
|
|
|
526
526
|
r: import("viem").Hex;
|
|
527
527
|
s: import("viem").Hex;
|
|
528
528
|
v: bigint;
|
|
529
|
-
to: import("
|
|
530
|
-
from: import("
|
|
529
|
+
to: import("viem").Address | null;
|
|
530
|
+
from: import("viem").Address;
|
|
531
531
|
gas: bigint;
|
|
532
532
|
nonce: number;
|
|
533
533
|
value: bigint;
|
|
@@ -553,14 +553,14 @@ export declare const chains: ({
|
|
|
553
553
|
} | {
|
|
554
554
|
blockHash: `0x${string}` | null;
|
|
555
555
|
blockNumber: bigint | null;
|
|
556
|
-
from: import("
|
|
556
|
+
from: import("viem").Address;
|
|
557
557
|
gas: bigint;
|
|
558
558
|
hash: import("viem").Hash;
|
|
559
559
|
input: import("viem").Hex;
|
|
560
560
|
nonce: number;
|
|
561
561
|
r: import("viem").Hex;
|
|
562
562
|
s: import("viem").Hex;
|
|
563
|
-
to: import("
|
|
563
|
+
to: import("viem").Address | null;
|
|
564
564
|
transactionIndex: number | null;
|
|
565
565
|
typeHex: import("viem").Hex | null;
|
|
566
566
|
v: bigint;
|
|
@@ -581,14 +581,14 @@ export declare const chains: ({
|
|
|
581
581
|
} | {
|
|
582
582
|
blockHash: `0x${string}` | null;
|
|
583
583
|
blockNumber: bigint | null;
|
|
584
|
-
from: import("
|
|
584
|
+
from: import("viem").Address;
|
|
585
585
|
gas: bigint;
|
|
586
586
|
hash: import("viem").Hash;
|
|
587
587
|
input: import("viem").Hex;
|
|
588
588
|
nonce: number;
|
|
589
589
|
r: import("viem").Hex;
|
|
590
590
|
s: import("viem").Hex;
|
|
591
|
-
to: import("
|
|
591
|
+
to: import("viem").Address | null;
|
|
592
592
|
transactionIndex: number | null;
|
|
593
593
|
typeHex: import("viem").Hex | null;
|
|
594
594
|
v: bigint;
|
|
@@ -609,14 +609,14 @@ export declare const chains: ({
|
|
|
609
609
|
} | {
|
|
610
610
|
blockHash: `0x${string}` | null;
|
|
611
611
|
blockNumber: bigint | null;
|
|
612
|
-
from: import("
|
|
612
|
+
from: import("viem").Address;
|
|
613
613
|
gas: bigint;
|
|
614
614
|
hash: import("viem").Hash;
|
|
615
615
|
input: import("viem").Hex;
|
|
616
616
|
nonce: number;
|
|
617
617
|
r: import("viem").Hex;
|
|
618
618
|
s: import("viem").Hex;
|
|
619
|
-
to: import("
|
|
619
|
+
to: import("viem").Address | null;
|
|
620
620
|
transactionIndex: number | null;
|
|
621
621
|
typeHex: import("viem").Hex | null;
|
|
622
622
|
v: bigint;
|
|
@@ -637,14 +637,14 @@ export declare const chains: ({
|
|
|
637
637
|
} | {
|
|
638
638
|
blockHash: `0x${string}` | null;
|
|
639
639
|
blockNumber: bigint | null;
|
|
640
|
-
from: import("
|
|
640
|
+
from: import("viem").Address;
|
|
641
641
|
gas: bigint;
|
|
642
642
|
hash: import("viem").Hash;
|
|
643
643
|
input: import("viem").Hex;
|
|
644
644
|
nonce: number;
|
|
645
645
|
r: import("viem").Hex;
|
|
646
646
|
s: import("viem").Hex;
|
|
647
|
-
to: import("
|
|
647
|
+
to: import("viem").Address | null;
|
|
648
648
|
transactionIndex: number | null;
|
|
649
649
|
typeHex: import("viem").Hex | null;
|
|
650
650
|
v: bigint;
|
|
@@ -672,16 +672,16 @@ export declare const chains: ({
|
|
|
672
672
|
blobGasUsed?: bigint | undefined;
|
|
673
673
|
blockHash: import("viem").Hash;
|
|
674
674
|
blockNumber: bigint;
|
|
675
|
-
contractAddress: import("
|
|
675
|
+
contractAddress: import("viem").Address | null | undefined;
|
|
676
676
|
cumulativeGasUsed: bigint;
|
|
677
677
|
effectiveGasPrice: bigint;
|
|
678
|
-
from: import("
|
|
678
|
+
from: import("viem").Address;
|
|
679
679
|
gasUsed: bigint;
|
|
680
680
|
logs: import("viem").Log<bigint, number, false>[];
|
|
681
681
|
logsBloom: import("viem").Hex;
|
|
682
682
|
root?: `0x${string}` | undefined;
|
|
683
683
|
status: "success" | "reverted";
|
|
684
|
-
to: import("
|
|
684
|
+
to: import("viem").Address | null;
|
|
685
685
|
transactionHash: import("viem").Hash;
|
|
686
686
|
transactionIndex: number;
|
|
687
687
|
type: import("viem").TransactionType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../src/config/chains.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAC+jC,MAAgB;;yBAAyF,MAAgB,qCAAqC,MAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA5K,MAAgB;;yBAAyF,MAAgB,qCAAqC,MAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA68B,MAAgB;;;;kCAAuJ,aAAa;;;;;kCAAwN,MAAgB;;;;;8BAAqM,
|
|
1
|
+
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../src/config/chains.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,8 @@ export declare class MerkleProofManager extends Entity {
|
|
|
31
31
|
value?: bigint;
|
|
32
32
|
}[]): import("../types/transaction.js").Transaction;
|
|
33
33
|
}
|
|
34
|
-
export declare function toHashedPolicyLeaf(policy: MerkleProofPolicy): HexString;
|
|
34
|
+
export declare function toHashedPolicyLeaf(policy: MerkleProofPolicy, argsEncoded: HexString): HexString;
|
|
35
35
|
export declare function getMerkleTree(MerkleTreeConstructor: typeof SimpleMerkleTree, policies: MerkleProofPolicy[]): SimpleMerkleTree;
|
|
36
|
-
export declare function getMerkleProof(tree: SimpleMerkleTree, leaf: MerkleProofPolicy): HexString[];
|
|
36
|
+
export declare function getMerkleProof(tree: SimpleMerkleTree, leaf: MerkleProofPolicy, argsEncoded: HexString): HexString[];
|
|
37
|
+
export declare function generateCombinations(inputs: MerkleProofPolicyInput['inputs']): (`0x${string}` | null)[][];
|
|
37
38
|
//# sourceMappingURL=MerkleProofManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MerkleProofManager.d.ts","sourceRoot":"","sources":["../../src/entities/MerkleProofManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAMjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,MAAM;IAWnC,OAAO,EAAE,WAAW;IAV7B,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,SAAS,CAAA;IAalB,QAAQ,CAAC,UAAU,EAAE,SAAS;;;IAQ9B,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE;
|
|
1
|
+
{"version":3,"file":"MerkleProofManager.d.ts","sourceRoot":"","sources":["../../src/entities/MerkleProofManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAMjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,MAAM;IAWnC,OAAO,EAAE,WAAW;IAV7B,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,SAAS,CAAA;IAalB,QAAQ,CAAC,UAAU,EAAE,SAAS;;;IAQ9B,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE;IAkIzE;;;OAGG;IACH,iBAAiB,CAAC,UAAU,EAAE,SAAS;IAIvC,OAAO,CACL,KAAK,EAAE;QACL,MAAM,EAAE,iBAAiB,CAAA;QACzB,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,EAAE,CAAA;QACtD,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,EAAE;CA+DN;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,GAAG,SAAS,CAO/F;AAED,wBAAgB,aAAa,CAAC,qBAAqB,EAAE,OAAO,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,oBAM1G;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,GACrC,SAAS,EAAE,CAC3E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,8BAuB5E"}
|
|
@@ -43,60 +43,66 @@ export class MerkleProofManager extends Entity {
|
|
|
43
43
|
const { metadata, shareClasses } = poolDetails;
|
|
44
44
|
const client = self._root.getClient(self.chainId);
|
|
45
45
|
// Get the encoded args from chain by calling the decoder contract.
|
|
46
|
-
async function getEncodedArgs(policy) {
|
|
47
|
-
const abi = parseAbiItem(policy.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
46
|
+
async function getEncodedArgs(policy, policyCombinations) {
|
|
47
|
+
const abi = parseAbiItem(policy.selector);
|
|
48
|
+
return Promise.all(policyCombinations.map(async (pc) => {
|
|
49
|
+
const args = pc.map((arg, i) => {
|
|
50
|
+
if (arg !== null)
|
|
51
|
+
return arg;
|
|
52
|
+
const { type } = abi.inputs[i] || {};
|
|
53
|
+
if (!type) {
|
|
54
|
+
throw new Error(`No type found for argument ${i} in abi item "${policy.selector}, inputs: ${policy.inputs}"`);
|
|
55
|
+
}
|
|
56
|
+
if (type === 'address') {
|
|
57
|
+
return NULL_ADDRESS;
|
|
58
|
+
}
|
|
59
|
+
else if (type.includes('int')) {
|
|
60
|
+
return 0;
|
|
61
|
+
}
|
|
62
|
+
else if (type === 'bytes') {
|
|
63
|
+
return '0x';
|
|
64
|
+
}
|
|
65
|
+
else if (type === 'bool') {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
else if (type === 'string') {
|
|
69
|
+
return '';
|
|
70
|
+
}
|
|
71
|
+
else if (type.startsWith('bytes')) {
|
|
72
|
+
return toHex(0, { size: parseInt(type.slice(5)) });
|
|
73
|
+
}
|
|
74
|
+
else if (type.includes('[')) {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
throw new Error(`Unsupported type "${type}" for abi item "${policy.selector}"`);
|
|
78
|
+
});
|
|
79
|
+
abi.outputs = [
|
|
80
|
+
{
|
|
81
|
+
name: 'addressesFound',
|
|
82
|
+
type: 'bytes',
|
|
83
|
+
internalType: 'bytes',
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
const encoded = await client.readContract({
|
|
87
|
+
address: policy.decoder,
|
|
88
|
+
abi: [abi],
|
|
89
|
+
functionName: abi.name,
|
|
90
|
+
args,
|
|
91
|
+
});
|
|
92
|
+
return encoded;
|
|
93
|
+
}));
|
|
92
94
|
}
|
|
93
95
|
const policies = await Promise.all(policyInputs.map(async (input) => {
|
|
94
|
-
const
|
|
96
|
+
const policyCombinations = generateCombinations(input.inputs);
|
|
97
|
+
const argsEncoded = await getEncodedArgs(input, policyCombinations);
|
|
95
98
|
return {
|
|
96
99
|
...input,
|
|
97
100
|
assetId: input.assetId?.toString(),
|
|
98
101
|
valueNonZero: input.valueNonZero ?? false,
|
|
99
|
-
|
|
102
|
+
inputCombinations: policyCombinations.map((inputs, i) => ({
|
|
103
|
+
inputs,
|
|
104
|
+
inputsEncoded: argsEncoded[i],
|
|
105
|
+
})),
|
|
100
106
|
};
|
|
101
107
|
}));
|
|
102
108
|
let rootHash;
|
|
@@ -164,14 +170,15 @@ export class MerkleProofManager extends Entity {
|
|
|
164
170
|
const tree = getMerkleTree(SimpleMerkleTreeConstructor, policiesForStrategist);
|
|
165
171
|
const formattedCalls = calls.map((call) => {
|
|
166
172
|
const { policy, inputs, value } = call;
|
|
167
|
-
const abi = parseAbiItem(policy.
|
|
168
|
-
const args =
|
|
169
|
-
|
|
170
|
-
inputs.forEach((value, i) => {
|
|
171
|
-
const argIndex = inputIndeces[i];
|
|
172
|
-
args[argIndex] = value instanceof BigIntWrapper ? value.toBigInt() : value;
|
|
173
|
+
const abi = parseAbiItem(policy.selector);
|
|
174
|
+
const args = inputs.map((value) => {
|
|
175
|
+
return value instanceof BigIntWrapper ? value.toBigInt() : value;
|
|
173
176
|
});
|
|
174
|
-
const
|
|
177
|
+
const argsEncoded = policy.inputCombinations.find((ic) => ic.inputs.every((input, i) => input === null || inputs[i] === input))?.inputsEncoded;
|
|
178
|
+
if (!argsEncoded) {
|
|
179
|
+
throw new Error(`No encoded args found for policy with selector "${policy.selector}" and inputs [${inputs}]`);
|
|
180
|
+
}
|
|
181
|
+
const proof = getMerkleProof(tree, policy, argsEncoded);
|
|
175
182
|
const targetData = encodeFunctionData({
|
|
176
183
|
abi: [abi],
|
|
177
184
|
functionName: abi.name,
|
|
@@ -197,14 +204,35 @@ export class MerkleProofManager extends Entity {
|
|
|
197
204
|
}, this.chainId);
|
|
198
205
|
}
|
|
199
206
|
}
|
|
200
|
-
export function toHashedPolicyLeaf(policy) {
|
|
201
|
-
return keccak256(encodePacked(['address', 'address', 'bool', 'bytes4', 'bytes'], [policy.decoder, policy.target, policy.valueNonZero, toFunctionSelector(policy.
|
|
207
|
+
export function toHashedPolicyLeaf(policy, argsEncoded) {
|
|
208
|
+
return keccak256(encodePacked(['address', 'address', 'bool', 'bytes4', 'bytes'], [policy.decoder, policy.target, policy.valueNonZero, toFunctionSelector(policy.selector), argsEncoded]));
|
|
202
209
|
}
|
|
203
210
|
export function getMerkleTree(MerkleTreeConstructor, policies) {
|
|
204
|
-
const leaves = policies.map(toHashedPolicyLeaf);
|
|
211
|
+
const leaves = policies.flatMap((policy) => policy.inputCombinations.map(({ inputsEncoded }) => toHashedPolicyLeaf(policy, inputsEncoded)));
|
|
205
212
|
return MerkleTreeConstructor.of(leaves);
|
|
206
213
|
}
|
|
207
|
-
export function getMerkleProof(tree, leaf) {
|
|
208
|
-
return tree.getProof(toHashedPolicyLeaf(leaf));
|
|
214
|
+
export function getMerkleProof(tree, leaf, argsEncoded) {
|
|
215
|
+
return tree.getProof(toHashedPolicyLeaf(leaf, argsEncoded));
|
|
216
|
+
}
|
|
217
|
+
export function generateCombinations(inputs) {
|
|
218
|
+
if (inputs.length === 0)
|
|
219
|
+
throw new Error('No inputs provided for generating combinations');
|
|
220
|
+
function combine(index, current) {
|
|
221
|
+
if (index >= inputs.length)
|
|
222
|
+
return current;
|
|
223
|
+
const nextInput = inputs[index]?.input;
|
|
224
|
+
if (!nextInput) {
|
|
225
|
+
return [];
|
|
226
|
+
}
|
|
227
|
+
const options = nextInput.length > 0 ? nextInput : [null];
|
|
228
|
+
const newCombinations = [];
|
|
229
|
+
for (const combination of current) {
|
|
230
|
+
for (const option of options) {
|
|
231
|
+
newCombinations.push([...combination, option]);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return combine(index + 1, newCombinations);
|
|
235
|
+
}
|
|
236
|
+
return combine(0, [[]]);
|
|
209
237
|
}
|
|
210
238
|
//# sourceMappingURL=MerkleProofManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MerkleProofManager.js","sourceRoot":"","sources":["../../src/entities/MerkleProofManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC1B,OAAO,EAAe,kBAAkB,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AACxH,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAW,aAAa,EAAS,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIpC;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,MAAM;IAWnC;IAVT,IAAI,CAAM;IACV,OAAO,CAAQ;IAEf;;OAEG;IACH,OAAO,CAAW;IAClB,gBAAgB;IAChB,YACE,KAAiB,EACV,OAAoB,EAC3B,OAAkB;QAElB,KAAK,CAAC,KAAK,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAH1E,YAAO,GAAP,OAAO,CAAa;QAI3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,EAAe,CAAA;IACnD,CAAC;IAED,QAAQ,CAAC,UAAqB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAC9D,IAAI,CAAC,IAAI;aACN,QAAQ,EAAE;aACV,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,EAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAClH,CAAA;IACH,CAAC;IAED,WAAW,CAAC,UAAqB,EAAE,YAAsC;QACvE,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG;YACxC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACtG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;gBAChD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACnB,MAAM,CAAC,2BAA2B,CAAC;aACpC,CAAC,CAAA;YACF,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,WAAW,CAAA;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAEjD,mEAAmE;YACnE,KAAK,UAAU,cAAc,CAAC,MAA8B;
|
|
1
|
+
{"version":3,"file":"MerkleProofManager.js","sourceRoot":"","sources":["../../src/entities/MerkleProofManager.ts"],"names":[],"mappings":"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"}
|