@ercworldio/blockchain-shared 1.0.3-dev.4-PROJ-1296.10 → 1.0.3-dev.5
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/build/chains/networks_dev.json +12 -12
- package/build/chains/networks_prod-sh.json +4 -40
- package/build/chains/networks_prod-yb.json +4 -40
- package/build/contracts/Escrow.d.ts +5 -66
- package/build/contracts/Escrow.d.ts.map +1 -1
- package/build/contracts/Escrow.js +2 -93
- package/build/contracts/EscrowErrors.d.ts +1 -85
- package/build/contracts/EscrowErrors.d.ts.map +1 -1
- package/build/contracts/EscrowErrors.js +14 -59
- package/build/contracts/artifacts/Escrow.json +12 -0
- package/build/contracts/contract-events/AccessControlEvents.d.ts +2 -12
- package/build/contracts/contract-events/AccessControlEvents.d.ts.map +1 -1
- package/build/contracts/contract-events/AccessControlEvents.js +5 -29
- package/build/contracts/contract-events/EscrowEvents.d.ts +2 -134
- package/build/contracts/contract-events/EscrowEvents.d.ts.map +1 -1
- package/build/contracts/contract-events/EscrowEvents.js +17 -67
- package/build/contracts/contract-events/types/events.d.ts +1 -35
- package/build/contracts/contract-events/types/events.d.ts.map +1 -1
- package/build/contracts/typechain-types/contracts/escrow/Escrow.d.ts +4 -1
- package/build/contracts/typechain-types/contracts/escrow/Escrow.d.ts.map +1 -1
- package/build/contracts/typechain-types/contracts/lib/Events.d.ts +4 -1
- package/build/contracts/typechain-types/contracts/lib/Events.d.ts.map +1 -1
- package/build/contracts/typechain-types/factories/contracts/escrow/EscrowAccessControl__factory.d.ts +1 -1
- package/build/contracts/typechain-types/factories/contracts/escrow/EscrowAccessControl__factory.js +1 -1
- package/build/contracts/typechain-types/factories/contracts/escrow/Escrow__factory.d.ts +6 -1
- package/build/contracts/typechain-types/factories/contracts/escrow/Escrow__factory.d.ts.map +1 -1
- package/build/contracts/typechain-types/factories/contracts/escrow/Escrow__factory.js +7 -1
- package/build/contracts/typechain-types/factories/contracts/lib/Events__factory.d.ts +6 -1
- package/build/contracts/typechain-types/factories/contracts/lib/Events__factory.d.ts.map +1 -1
- package/build/contracts/typechain-types/factories/contracts/lib/Events__factory.js +7 -1
- package/build/contracts/types/escrow.d.ts +1 -13
- package/build/contracts/types/escrow.d.ts.map +1 -1
- package/build/contracts/types/escrow.js +0 -4
- package/build/entities/AdminOperationThresholds.d.ts +1 -0
- package/build/entities/AdminOperationThresholds.d.ts.map +1 -1
- package/build/entities/AdminOperationThresholds.js +5 -1
- package/build/entities/ClaimJob.d.ts +0 -1
- package/build/entities/ClaimJob.d.ts.map +1 -1
- package/build/entities/ClaimJob.js +0 -4
- package/build/entities/EscrowRoles.js +1 -1
- package/build/entities/GlobalTimelock.d.ts +1 -0
- package/build/entities/GlobalTimelock.d.ts.map +1 -1
- package/build/entities/GlobalTimelock.js +5 -1
- package/build/entities/GranularTimelock .d.ts +1 -0
- package/build/entities/GranularTimelock .d.ts.map +1 -1
- package/build/entities/GranularTimelock .js +4 -0
- package/build/entities/RoleHash.js +1 -1
- package/build/entities/TokenExecutionThresholds.d.ts +1 -0
- package/build/entities/TokenExecutionThresholds.d.ts.map +1 -1
- package/build/entities/TokenExecutionThresholds.js +5 -1
- package/build/errors/errors.d.ts +0 -30
- package/build/errors/errors.d.ts.map +1 -1
- package/build/errors/errors.js +2 -64
- package/build/index.d.ts +9 -6
- package/build/index.d.ts.map +1 -1
- package/build/index.js +11 -22
- package/build/interfaces.d.ts +2 -2
- package/build/interfaces.d.ts.map +1 -1
- package/build/services/AlchemyService.d.ts +1 -2
- package/build/services/AlchemyService.d.ts.map +1 -1
- package/build/services/AlchemyService.js +2 -8
- package/build/services/AlchemyWebhooks.d.ts.map +1 -1
- package/build/services/AlchemyWebhooks.js +29 -36
- package/build/services/AzureEventHubHandler.d.ts.map +1 -1
- package/build/services/AzureEventHubHandler.js +5 -17
- package/build/services/ClaimJobService.d.ts +2 -5
- package/build/services/ClaimJobService.d.ts.map +1 -1
- package/build/services/ClaimJobService.js +24 -135
- package/build/services/SweepJobService.d.ts +3 -3
- package/build/services/SweepJobService.d.ts.map +1 -1
- package/build/services/SweepJobService.js +12 -7
- package/build/services/db/roles/ContractRoles.d.ts +2 -2
- package/build/services/db/roles/ContractRoles.d.ts.map +1 -1
- package/build/services/db/roles/ContractRoles.js +12 -18
- package/build/services/types/azure_event_hub_handler.d.ts +1 -9
- package/build/services/types/azure_event_hub_handler.d.ts.map +1 -1
- package/build/services/types/azure_event_hub_handler.js +0 -8
- package/build/services/types/claim.d.ts +1 -17
- package/build/services/types/claim.d.ts.map +1 -1
- package/build/services/types/claim_job_service.d.ts +1 -9
- package/build/services/types/claim_job_service.d.ts.map +1 -1
- package/build/services/types/index.d.ts +0 -1
- package/build/services/types/index.d.ts.map +1 -1
- package/build/services/types/index.js +0 -1
- package/build/services/utils/alchemy.d.ts.map +1 -1
- package/build/services/utils/alchemy.js +1 -6
- package/build/utils/AsyncTTLCache.d.ts +0 -2
- package/build/utils/AsyncTTLCache.d.ts.map +1 -1
- package/build/utils/AsyncTTLCache.js +2 -18
- package/build/utils/custodial.d.ts +0 -8
- package/build/utils/custodial.d.ts.map +1 -1
- package/build/utils/custodial.js +20 -34
- package/package.json +3 -6
|
@@ -395,12 +395,12 @@
|
|
|
395
395
|
"targetConfirmations": 10,
|
|
396
396
|
"accounting": {
|
|
397
397
|
"funding_wallet": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
|
|
398
|
-
"treasury_receiver": "
|
|
398
|
+
"treasury_receiver": "0x89DecB6b265D7714A69EE05E3Bc50Fd829D7Ef90",
|
|
399
399
|
"overflow_treasury_receiver": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
|
|
400
400
|
"overflow_threshold_decimal": 100000,
|
|
401
401
|
"min_funding_wallet_balance_usd": 5,
|
|
402
402
|
"allowed_receivers": [
|
|
403
|
-
"
|
|
403
|
+
"0x89DecB6b265D7714A69EE05E3Bc50Fd829D7Ef90"
|
|
404
404
|
]
|
|
405
405
|
},
|
|
406
406
|
"custodialAlchemyWebhooks": [
|
|
@@ -436,7 +436,7 @@
|
|
|
436
436
|
}
|
|
437
437
|
],
|
|
438
438
|
"addresses": [
|
|
439
|
-
"
|
|
439
|
+
"0x89DecB6b265D7714A69EE05E3Bc50Fd829D7Ef90"
|
|
440
440
|
]
|
|
441
441
|
},
|
|
442
442
|
{
|
|
@@ -506,12 +506,12 @@
|
|
|
506
506
|
"targetConfirmations": 10,
|
|
507
507
|
"accounting": {
|
|
508
508
|
"funding_wallet": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
|
|
509
|
-
"treasury_receiver": "
|
|
509
|
+
"treasury_receiver": "0xEA8Ad078561B83724EEcDBb5b5A4f03369115Cf8",
|
|
510
510
|
"overflow_treasury_receiver": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
|
|
511
511
|
"overflow_threshold_decimal": 100000,
|
|
512
512
|
"min_funding_wallet_balance_usd": 5,
|
|
513
513
|
"allowed_receivers": [
|
|
514
|
-
"
|
|
514
|
+
"0xEA8Ad078561B83724EEcDBb5b5A4f03369115Cf8"
|
|
515
515
|
]
|
|
516
516
|
},
|
|
517
517
|
"custodialAlchemyWebhooks": [
|
|
@@ -547,7 +547,7 @@
|
|
|
547
547
|
}
|
|
548
548
|
],
|
|
549
549
|
"addresses": [
|
|
550
|
-
"
|
|
550
|
+
"0xEA8Ad078561B83724EEcDBb5b5A4f03369115Cf8"
|
|
551
551
|
]
|
|
552
552
|
},
|
|
553
553
|
{
|
|
@@ -603,12 +603,12 @@
|
|
|
603
603
|
"targetConfirmations": 10,
|
|
604
604
|
"accounting": {
|
|
605
605
|
"funding_wallet": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
|
|
606
|
-
"treasury_receiver": "
|
|
606
|
+
"treasury_receiver": "0x69E1F9316E03Da502B52f4682b0349d36CFBfFfD",
|
|
607
607
|
"overflow_treasury_receiver": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
|
|
608
608
|
"overflow_threshold_decimal": 100000,
|
|
609
609
|
"min_funding_wallet_balance_usd": 1,
|
|
610
610
|
"allowed_receivers": [
|
|
611
|
-
"
|
|
611
|
+
"0x69E1F9316E03Da502B52f4682b0349d36CFBfFfD"
|
|
612
612
|
]
|
|
613
613
|
},
|
|
614
614
|
"custodialAlchemyWebhooks": [
|
|
@@ -644,7 +644,7 @@
|
|
|
644
644
|
}
|
|
645
645
|
],
|
|
646
646
|
"addresses": [
|
|
647
|
-
"
|
|
647
|
+
"0x69E1F9316E03Da502B52f4682b0349d36CFBfFfD"
|
|
648
648
|
]
|
|
649
649
|
},
|
|
650
650
|
{
|
|
@@ -699,12 +699,12 @@
|
|
|
699
699
|
"targetConfirmations": 10,
|
|
700
700
|
"accounting": {
|
|
701
701
|
"funding_wallet": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
|
|
702
|
-
"treasury_receiver": "
|
|
702
|
+
"treasury_receiver": "0xf4BE5695F5eCd281171ab625ceb59bEee081e14f",
|
|
703
703
|
"overflow_treasury_receiver": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
|
|
704
704
|
"overflow_threshold_decimal": 100000,
|
|
705
705
|
"min_funding_wallet_balance_usd": 0.5,
|
|
706
706
|
"allowed_receivers": [
|
|
707
|
-
"
|
|
707
|
+
"0xf4BE5695F5eCd281171ab625ceb59bEee081e14f"
|
|
708
708
|
]
|
|
709
709
|
},
|
|
710
710
|
"custodialAlchemyWebhooks": [
|
|
@@ -747,7 +747,7 @@
|
|
|
747
747
|
}
|
|
748
748
|
],
|
|
749
749
|
"addresses": [
|
|
750
|
-
"
|
|
750
|
+
"0xf4BE5695F5eCd281171ab625ceb59bEee081e14f"
|
|
751
751
|
]
|
|
752
752
|
},
|
|
753
753
|
{
|
|
@@ -48,16 +48,7 @@
|
|
|
48
48
|
"type": "Escrow",
|
|
49
49
|
"version": "1",
|
|
50
50
|
"startingBlock": 24496423,
|
|
51
|
-
"escrowAlchemyWebhooks": [
|
|
52
|
-
{
|
|
53
|
-
"chainId": "1",
|
|
54
|
-
"network_symbol": "eth",
|
|
55
|
-
"network": "ETH_MAINNET",
|
|
56
|
-
"type": "GRAPHQL",
|
|
57
|
-
"endpoint": "webhook/alchemy/escrow-events",
|
|
58
|
-
"source": "contract"
|
|
59
|
-
}
|
|
60
|
-
],
|
|
51
|
+
"escrowAlchemyWebhooks": [],
|
|
61
52
|
"addresses": [
|
|
62
53
|
"0xB28BE79Ffe7CC1f352a8EFF3E3E8f4faFD05a881"
|
|
63
54
|
]
|
|
@@ -166,16 +157,7 @@
|
|
|
166
157
|
"type": "Escrow",
|
|
167
158
|
"version": "1",
|
|
168
159
|
"startingBlock": 82263026,
|
|
169
|
-
"escrowAlchemyWebhooks": [
|
|
170
|
-
{
|
|
171
|
-
"chainId": "56",
|
|
172
|
-
"network_symbol": "bnb",
|
|
173
|
-
"network": "BNB_MAINNET",
|
|
174
|
-
"type": "GRAPHQL",
|
|
175
|
-
"endpoint": "webhook/alchemy/escrow-events",
|
|
176
|
-
"source": "contract"
|
|
177
|
-
}
|
|
178
|
-
],
|
|
160
|
+
"escrowAlchemyWebhooks": [],
|
|
179
161
|
"addresses": [
|
|
180
162
|
"0xa4f0f80b1f4b2dBDD7cE553342Ad5542ba7758Ec"
|
|
181
163
|
]
|
|
@@ -375,16 +357,7 @@
|
|
|
375
357
|
"type": "Escrow",
|
|
376
358
|
"version": "1",
|
|
377
359
|
"startingBlock": 82937871,
|
|
378
|
-
"escrowAlchemyWebhooks": [
|
|
379
|
-
{
|
|
380
|
-
"chainId": "137",
|
|
381
|
-
"network_symbol": "pol",
|
|
382
|
-
"network": "MATIC_MAINNET",
|
|
383
|
-
"type": "GRAPHQL",
|
|
384
|
-
"endpoint": "webhook/alchemy/escrow-events",
|
|
385
|
-
"source": "contract"
|
|
386
|
-
}
|
|
387
|
-
],
|
|
360
|
+
"escrowAlchemyWebhooks": [],
|
|
388
361
|
"addresses": [
|
|
389
362
|
"0x0074D8ed3168bEF415337064670e0bf90981A1F5"
|
|
390
363
|
]
|
|
@@ -479,16 +452,7 @@
|
|
|
479
452
|
"type": "Escrow",
|
|
480
453
|
"version": "1",
|
|
481
454
|
"startingBlock": 78523433,
|
|
482
|
-
"escrowAlchemyWebhooks": [
|
|
483
|
-
{
|
|
484
|
-
"chainId": "43114",
|
|
485
|
-
"network_symbol": "avax",
|
|
486
|
-
"network": "AVAX_MAINNET",
|
|
487
|
-
"type": "GRAPHQL",
|
|
488
|
-
"endpoint": "webhook/alchemy/escrow-events",
|
|
489
|
-
"source": "contract"
|
|
490
|
-
}
|
|
491
|
-
],
|
|
455
|
+
"escrowAlchemyWebhooks": [],
|
|
492
456
|
"addresses": [
|
|
493
457
|
"0x28DE9CeCd83D9b20Ee6A438d39114Add08ED5FF7"
|
|
494
458
|
]
|
|
@@ -48,16 +48,7 @@
|
|
|
48
48
|
"type": "Escrow",
|
|
49
49
|
"version": "1",
|
|
50
50
|
"startingBlock": 24754256,
|
|
51
|
-
"escrowAlchemyWebhooks": [
|
|
52
|
-
{
|
|
53
|
-
"chainId": "1",
|
|
54
|
-
"network_symbol": "eth",
|
|
55
|
-
"network": "ETH_MAINNET",
|
|
56
|
-
"type": "GRAPHQL",
|
|
57
|
-
"endpoint": "webhook/alchemy/escrow-events",
|
|
58
|
-
"source": "contract"
|
|
59
|
-
}
|
|
60
|
-
],
|
|
51
|
+
"escrowAlchemyWebhooks": [],
|
|
61
52
|
"addresses": [
|
|
62
53
|
"0xBC88D756b866854C02410c8d3e62E5648279dc70"
|
|
63
54
|
]
|
|
@@ -166,16 +157,7 @@
|
|
|
166
157
|
"type": "Escrow",
|
|
167
158
|
"version": "1",
|
|
168
159
|
"startingBlock": 89178576,
|
|
169
|
-
"escrowAlchemyWebhooks": [
|
|
170
|
-
{
|
|
171
|
-
"chainId": "56",
|
|
172
|
-
"network_symbol": "bnb",
|
|
173
|
-
"network": "BNB_MAINNET",
|
|
174
|
-
"type": "GRAPHQL",
|
|
175
|
-
"endpoint": "webhook/alchemy/escrow-events",
|
|
176
|
-
"source": "contract"
|
|
177
|
-
}
|
|
178
|
-
],
|
|
160
|
+
"escrowAlchemyWebhooks": [],
|
|
179
161
|
"addresses": [
|
|
180
162
|
"0x0074D8ed3168bEF415337064670e0bf90981A1F5"
|
|
181
163
|
]
|
|
@@ -375,16 +357,7 @@
|
|
|
375
357
|
"type": "Escrow",
|
|
376
358
|
"version": "1",
|
|
377
359
|
"startingBlock": 84779780,
|
|
378
|
-
"escrowAlchemyWebhooks": [
|
|
379
|
-
{
|
|
380
|
-
"chainId": "137",
|
|
381
|
-
"network_symbol": "pol",
|
|
382
|
-
"network": "MATIC_MAINNET",
|
|
383
|
-
"type": "GRAPHQL",
|
|
384
|
-
"endpoint": "webhook/alchemy/escrow-events",
|
|
385
|
-
"source": "contract"
|
|
386
|
-
}
|
|
387
|
-
],
|
|
360
|
+
"escrowAlchemyWebhooks": [],
|
|
388
361
|
"addresses": [
|
|
389
362
|
"0x251824258e218293d79036Be1423388bf3476Ef4"
|
|
390
363
|
]
|
|
@@ -479,16 +452,7 @@
|
|
|
479
452
|
"type": "Escrow",
|
|
480
453
|
"version": "1",
|
|
481
454
|
"startingBlock": 81474572,
|
|
482
|
-
"escrowAlchemyWebhooks": [
|
|
483
|
-
{
|
|
484
|
-
"chainId": "43114",
|
|
485
|
-
"network_symbol": "avax",
|
|
486
|
-
"network": "AVAX_MAINNET",
|
|
487
|
-
"type": "GRAPHQL",
|
|
488
|
-
"endpoint": "webhook/alchemy/escrow-events",
|
|
489
|
-
"source": "contract"
|
|
490
|
-
}
|
|
491
|
-
],
|
|
455
|
+
"escrowAlchemyWebhooks": [],
|
|
492
456
|
"addresses": [
|
|
493
457
|
"0x6d47B7230F5D466677795E271db3aEE4C59c0B47"
|
|
494
458
|
]
|
|
@@ -2,7 +2,7 @@ import { escrow } from "./typechain-types/contracts";
|
|
|
2
2
|
import { Signer, Provider, ethers } from "ethers";
|
|
3
3
|
import { ErrorObject, EscrowErrorMessage } from "./EscrowErrors";
|
|
4
4
|
import Errors from "../errors/TransactionsErrors";
|
|
5
|
-
import { BatchSweepErc20Payload, BatchWithdrawPayload,
|
|
5
|
+
import { BatchSweepErc20Payload, BatchWithdrawPayload, FundWalletsPayload, OpType, TransactionStatus } from "./types/escrow";
|
|
6
6
|
/**
|
|
7
7
|
* Class to interact with the escrow contract
|
|
8
8
|
* @author @0xgio - Georgio Diab
|
|
@@ -44,7 +44,7 @@ declare class EscrowInteraction extends Errors {
|
|
|
44
44
|
transactionHash: null;
|
|
45
45
|
receipt: null;
|
|
46
46
|
error: {
|
|
47
|
-
name: "ContractBusy" | "ContractPaused" | "
|
|
47
|
+
name: "ContractBusy" | "ContractPaused" | "DepositOnlyERC20" | "EtherDirectTransferNotAllowed" | "InsufficientBalance" | "InsufficientReserves" | "InvalidSignature" | "NotAdmin" | "NotAuthorized" | "RequestAlreadyFulfilled" | "SignatureAlreadyUsed" | "TokenNotAllowed" | "TransferError" | "ZeroAddress" | "ZeroValue" | "UnknownError";
|
|
48
48
|
message: string;
|
|
49
49
|
data?: any;
|
|
50
50
|
};
|
|
@@ -61,74 +61,13 @@ declare class EscrowInteraction extends Errors {
|
|
|
61
61
|
transactionHash: null;
|
|
62
62
|
receipt: null;
|
|
63
63
|
error: {
|
|
64
|
-
name: "ContractBusy" | "ContractPaused" | "
|
|
64
|
+
name: "ContractBusy" | "ContractPaused" | "DepositOnlyERC20" | "EtherDirectTransferNotAllowed" | "InsufficientBalance" | "InsufficientReserves" | "InvalidSignature" | "NotAdmin" | "NotAuthorized" | "RequestAlreadyFulfilled" | "SignatureAlreadyUsed" | "TokenNotAllowed" | "TransferError" | "ZeroAddress" | "ZeroValue" | "UnknownError";
|
|
65
65
|
message: string;
|
|
66
66
|
data?: any;
|
|
67
67
|
};
|
|
68
68
|
fee?: undefined;
|
|
69
69
|
}>;
|
|
70
70
|
get_used_request_ids(ids: number[]): Promise<number[]>;
|
|
71
|
-
batch_withdraw(payloads: BatchWithdrawPayload[], token_price: number): Promise<{
|
|
72
|
-
status: TransactionStatus;
|
|
73
|
-
transactionHash: null;
|
|
74
|
-
receipt: null;
|
|
75
|
-
data: {
|
|
76
|
-
success: number[];
|
|
77
|
-
failed: number[];
|
|
78
|
-
dropped: number[];
|
|
79
|
-
cancel: number[];
|
|
80
|
-
};
|
|
81
|
-
fee?: undefined;
|
|
82
|
-
feePerTx?: undefined;
|
|
83
|
-
feePerTxDecimals?: undefined;
|
|
84
|
-
feePerTxUsd?: undefined;
|
|
85
|
-
feePerTxUsdDecimals?: undefined;
|
|
86
|
-
executed_at?: undefined;
|
|
87
|
-
error?: undefined;
|
|
88
|
-
} | {
|
|
89
|
-
status: TransactionStatus;
|
|
90
|
-
transactionHash: string;
|
|
91
|
-
fee: bigint;
|
|
92
|
-
feePerTx: bigint;
|
|
93
|
-
feePerTxDecimals: number;
|
|
94
|
-
feePerTxUsd: bigint;
|
|
95
|
-
feePerTxUsdDecimals: number;
|
|
96
|
-
receipt: ethers.ContractTransactionReceipt;
|
|
97
|
-
executed_at: Date;
|
|
98
|
-
data: {
|
|
99
|
-
success: number[];
|
|
100
|
-
failed: number[];
|
|
101
|
-
dropped: number[];
|
|
102
|
-
cancel: number[];
|
|
103
|
-
};
|
|
104
|
-
error?: undefined;
|
|
105
|
-
} | {
|
|
106
|
-
status: TransactionStatus;
|
|
107
|
-
transactionHash: null;
|
|
108
|
-
receipt: null;
|
|
109
|
-
executed_at: Date;
|
|
110
|
-
error: {
|
|
111
|
-
name: "ContractBusy" | "ContractPaused" | "InvalidSignature" | "SignatureAlreadyUsed" | "ZeroValue" | "ZeroAddress" | "RequestAlreadyFulfilled" | "EtherDirectTransferNotAllowed" | "DepositOnlyERC20" | "TokenNotAllowed" | "InsufficientBalance" | "InsufficientReserves" | "TransferError" | "NotAdmin" | "NotAuthorized" | "ExceedsLimit" | "ExceedsMax" | "UnknownError" | "InvalidNonce" | "TimelockConfigGroupNotSet" | "ConfigGroupNotSet" | "TimelockConfigNotSet" | "CommitmentNotFound" | "AlreadyCreatedTransaction" | "AccountAlreadyHasSignerRole" | "InvalidOperation" | "InvalidConfig" | "InvalidSignatures" | "AdminMultisigConfigNotSet" | "MultisigConfigNotSet" | "RequireTreasuryReceiverRole" | "InvalidMultiSig" | "RequireMultiSig" | "TimelockNotExpired" | "InsufficientExecutiveSigs" | "InsufficientManagerSigs";
|
|
112
|
-
message: string;
|
|
113
|
-
data?: any;
|
|
114
|
-
};
|
|
115
|
-
data: {
|
|
116
|
-
success: number[];
|
|
117
|
-
failed: number[];
|
|
118
|
-
dropped: number[];
|
|
119
|
-
cancel: number[];
|
|
120
|
-
};
|
|
121
|
-
fee?: undefined;
|
|
122
|
-
feePerTx?: undefined;
|
|
123
|
-
feePerTxDecimals?: undefined;
|
|
124
|
-
feePerTxUsd?: undefined;
|
|
125
|
-
feePerTxUsdDecimals?: undefined;
|
|
126
|
-
}>;
|
|
127
|
-
execute_withdrawal(payload: ExecuteWithdrawalPayload): Promise<{
|
|
128
|
-
status: TransactionStatus;
|
|
129
|
-
transactionHash: string;
|
|
130
|
-
fee: bigint;
|
|
131
|
-
}>;
|
|
132
71
|
admin_batch_withdraw(payloads: BatchWithdrawPayload[], token_price: number): Promise<{
|
|
133
72
|
status: TransactionStatus;
|
|
134
73
|
transactionHash: null;
|
|
@@ -169,7 +108,7 @@ declare class EscrowInteraction extends Errors {
|
|
|
169
108
|
receipt: null;
|
|
170
109
|
executed_at: Date;
|
|
171
110
|
error: {
|
|
172
|
-
name: "ContractBusy" | "ContractPaused" | "
|
|
111
|
+
name: "ContractBusy" | "ContractPaused" | "DepositOnlyERC20" | "EtherDirectTransferNotAllowed" | "InsufficientBalance" | "InsufficientReserves" | "InvalidSignature" | "NotAdmin" | "NotAuthorized" | "RequestAlreadyFulfilled" | "SignatureAlreadyUsed" | "TokenNotAllowed" | "TransferError" | "ZeroAddress" | "ZeroValue" | "UnknownError";
|
|
173
112
|
message: string;
|
|
174
113
|
data?: any;
|
|
175
114
|
};
|
|
@@ -209,7 +148,7 @@ declare class EscrowInteraction extends Errors {
|
|
|
209
148
|
transactionHash: null;
|
|
210
149
|
receipt: null;
|
|
211
150
|
error: {
|
|
212
|
-
name: "ContractBusy" | "ContractPaused" | "
|
|
151
|
+
name: "ContractBusy" | "ContractPaused" | "DepositOnlyERC20" | "EtherDirectTransferNotAllowed" | "InsufficientBalance" | "InsufficientReserves" | "InvalidSignature" | "NotAdmin" | "NotAuthorized" | "RequestAlreadyFulfilled" | "SignatureAlreadyUsed" | "TokenNotAllowed" | "TransferError" | "ZeroAddress" | "ZeroValue" | "UnknownError";
|
|
213
152
|
message: string;
|
|
214
153
|
data?: any;
|
|
215
154
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Escrow.d.ts","sourceRoot":"","sources":["../../src/contracts/Escrow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAqC,MAAM,EAA2B,MAAM,QAAQ,CAAC;AAG9G,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAqB,MAAM,gBAAgB,CAAC;AACpF,OAAO,MAAM,MAAM,8BAA8B,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAiB,
|
|
1
|
+
{"version":3,"file":"Escrow.d.ts","sourceRoot":"","sources":["../../src/contracts/Escrow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAqC,MAAM,EAA2B,MAAM,QAAQ,CAAC;AAG9G,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAqB,MAAM,gBAAgB,CAAC;AACpF,OAAO,MAAM,MAAM,8BAA8B,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAiB,kBAAkB,EAAiB,MAAM,EAAa,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGtK;;;GAGG;AACH,cAAM,iBAAkB,SAAQ,MAAM;IAClC,OAAO,CAAC,MAAM,CAAuB;IAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,aAAa,CAAa;gBAEf,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM;IAU7E;;;OAGG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM;IAK/B,uBAAuB;IAEvB;;;;OAIG;IACU,mBAAmB,CAAC,WAAW,EAAE,MAAM;IAYpD;;;;;OAKG;IACU,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAgBzD,uBAAuB;IAEV,WAAW,CAAC,OAAO,EAAE,kBAAkB;;;;;;;;;;;;;;;;;IAiCvC,eAAe,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;IA6BnE,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAYtD,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,EAAE,WAAW,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoEvF;;;;;;;;OAQG;IACU,QAAQ,CACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;YAyCpC,aAAa;YAiCb,aAAa;IA0C3B,iBAAiB,CAAC,KAAK,EAAE,WAAW;CAkBvC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -97,7 +97,7 @@ class EscrowInteraction extends TransactionsErrors_1.default {
|
|
|
97
97
|
throw new Error("Signer not connected to contract.");
|
|
98
98
|
}
|
|
99
99
|
const tx = yield this.escrowContract.fundWallets(payload.wallets, payload.amount);
|
|
100
|
-
const receipt = yield tx.wait(
|
|
100
|
+
const receipt = yield tx.wait();
|
|
101
101
|
if (!receipt)
|
|
102
102
|
throw new Error("Failed to send transaction");
|
|
103
103
|
return {
|
|
@@ -162,97 +162,6 @@ class EscrowInteraction extends TransactionsErrors_1.default {
|
|
|
162
162
|
}
|
|
163
163
|
});
|
|
164
164
|
}
|
|
165
|
-
/// Withdrawal requests with no timelock (no scheduling needed)
|
|
166
|
-
batch_withdraw(payloads, token_price) {
|
|
167
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
168
|
-
let success = [];
|
|
169
|
-
let failed = [];
|
|
170
|
-
let dropped = [];
|
|
171
|
-
let cancel = [];
|
|
172
|
-
const executed_at = new Date();
|
|
173
|
-
try {
|
|
174
|
-
if (!this.signer)
|
|
175
|
-
throw new Error("Signer not set");
|
|
176
|
-
if (!payloads.length)
|
|
177
|
-
return {
|
|
178
|
-
status: escrow_1.TransactionStatus.FAILED,
|
|
179
|
-
transactionHash: null,
|
|
180
|
-
receipt: null,
|
|
181
|
-
data: {
|
|
182
|
-
success,
|
|
183
|
-
failed,
|
|
184
|
-
dropped,
|
|
185
|
-
cancel
|
|
186
|
-
}
|
|
187
|
-
};
|
|
188
|
-
let tx = yield this.escrowContract.batchWithdrawWithTimelock(payloads);
|
|
189
|
-
let receipt = yield tx.wait(this.CONFIRMATIONS);
|
|
190
|
-
if (!receipt)
|
|
191
|
-
throw new Error(this.UnexpectedError("Failed to retrieve transaction receipt"));
|
|
192
|
-
success = payloads.map(p => p.requestId);
|
|
193
|
-
const fee_per_transaction = receipt.fee / BigInt(payloads.length);
|
|
194
|
-
const fee_per_tx_decimals = parseFloat((0, ethers_1.formatEther)(fee_per_transaction));
|
|
195
|
-
const fee_per_tx_usd_decimals = fee_per_tx_decimals * token_price;
|
|
196
|
-
const fee_per_tx_usd = (0, ethers_1.parseUnits)(fee_per_tx_decimals.toFixed(5), 6);
|
|
197
|
-
return {
|
|
198
|
-
status: escrow_1.TransactionStatus.SUCCESS,
|
|
199
|
-
transactionHash: tx.hash,
|
|
200
|
-
fee: receipt.fee,
|
|
201
|
-
feePerTx: fee_per_transaction,
|
|
202
|
-
feePerTxDecimals: fee_per_tx_decimals,
|
|
203
|
-
feePerTxUsd: fee_per_tx_usd,
|
|
204
|
-
feePerTxUsdDecimals: fee_per_tx_usd_decimals,
|
|
205
|
-
receipt,
|
|
206
|
-
executed_at,
|
|
207
|
-
data: {
|
|
208
|
-
success,
|
|
209
|
-
failed,
|
|
210
|
-
dropped,
|
|
211
|
-
cancel
|
|
212
|
-
}
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
catch (e) {
|
|
216
|
-
const errorResult = this.decodeRevertError(e);
|
|
217
|
-
return {
|
|
218
|
-
status: escrow_1.TransactionStatus.FAILED,
|
|
219
|
-
transactionHash: null,
|
|
220
|
-
receipt: null,
|
|
221
|
-
executed_at,
|
|
222
|
-
error: Object.assign({}, errorResult),
|
|
223
|
-
data: {
|
|
224
|
-
success,
|
|
225
|
-
failed,
|
|
226
|
-
dropped,
|
|
227
|
-
cancel
|
|
228
|
-
}
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
// Execute a withdrawal that has a timelock (scheduling needed)
|
|
234
|
-
execute_withdrawal(payload) {
|
|
235
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
236
|
-
const executed_at = new Date();
|
|
237
|
-
try {
|
|
238
|
-
if (!this.signer)
|
|
239
|
-
throw new Error("Signer not set");
|
|
240
|
-
const tx = yield this.escrowContract.executeWithdrawal(payload.amount, payload.requestId, payload.tokenAddress, payload.receiverAddress, payload.executeAt);
|
|
241
|
-
const receipt = yield tx.wait(this.CONFIRMATIONS);
|
|
242
|
-
if (!receipt)
|
|
243
|
-
throw new Error(this.UnexpectedError("Failed to retrieve transaction receipt"));
|
|
244
|
-
return {
|
|
245
|
-
status: escrow_1.TransactionStatus.SUCCESS,
|
|
246
|
-
transactionHash: tx.hash,
|
|
247
|
-
fee: receipt.fee,
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
catch (e) {
|
|
251
|
-
const errorResult = this.decodeRevertError(e);
|
|
252
|
-
throw errorResult;
|
|
253
|
-
}
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
165
|
admin_batch_withdraw(payloads, token_price) {
|
|
257
166
|
return __awaiter(this, void 0, void 0, function* () {
|
|
258
167
|
let success = [];
|
|
@@ -432,7 +341,7 @@ class EscrowInteraction extends TransactionsErrors_1.default {
|
|
|
432
341
|
}
|
|
433
342
|
decodeRevertError(error) {
|
|
434
343
|
// Decode error data
|
|
435
|
-
if (error.data
|
|
344
|
+
if (error.data) {
|
|
436
345
|
const decodedError = this.escrowContract.interface.parseError(error.data);
|
|
437
346
|
if (decodedError) {
|
|
438
347
|
// Decoded error
|
|
@@ -59,91 +59,7 @@ export interface NotAuthorizedError {
|
|
|
59
59
|
name: "NotAuthorized";
|
|
60
60
|
args: [];
|
|
61
61
|
}
|
|
62
|
-
|
|
63
|
-
name: "ExceedsLimit";
|
|
64
|
-
args: [];
|
|
65
|
-
}
|
|
66
|
-
export interface ExceedsMaxError {
|
|
67
|
-
name: "ExceedsMax";
|
|
68
|
-
args: [];
|
|
69
|
-
}
|
|
70
|
-
export interface UnknownError {
|
|
71
|
-
name: "UnknownError";
|
|
72
|
-
args: [];
|
|
73
|
-
}
|
|
74
|
-
export interface InvalidNonceError {
|
|
75
|
-
name: "InvalidNonce";
|
|
76
|
-
args: [];
|
|
77
|
-
}
|
|
78
|
-
export interface TimelockConfigGroupNotSetError {
|
|
79
|
-
name: "TimelockConfigGroupNotSet";
|
|
80
|
-
args: [];
|
|
81
|
-
}
|
|
82
|
-
export interface ConfigGroupNotSetError {
|
|
83
|
-
name: "ConfigGroupNotSet";
|
|
84
|
-
args: [];
|
|
85
|
-
}
|
|
86
|
-
export interface TimelockConfigNotSetError {
|
|
87
|
-
name: "TimelockConfigNotSet";
|
|
88
|
-
args: [];
|
|
89
|
-
}
|
|
90
|
-
export interface CommitmentNotFoundError {
|
|
91
|
-
name: "CommitmentNotFound";
|
|
92
|
-
args: [string];
|
|
93
|
-
}
|
|
94
|
-
export interface AlreadyCreatedTransactionError {
|
|
95
|
-
name: "AlreadyCreatedTransaction";
|
|
96
|
-
args: [number];
|
|
97
|
-
}
|
|
98
|
-
export interface AccountAlreadyHasSignerRoleError {
|
|
99
|
-
name: "AccountAlreadyHasSignerRole";
|
|
100
|
-
args: [string];
|
|
101
|
-
}
|
|
102
|
-
export interface InvalidOperationError {
|
|
103
|
-
name: "InvalidOperation";
|
|
104
|
-
args: [];
|
|
105
|
-
}
|
|
106
|
-
export interface InvalidConfigError {
|
|
107
|
-
name: "InvalidConfig";
|
|
108
|
-
args: [];
|
|
109
|
-
}
|
|
110
|
-
export interface InvalidSignaturesError {
|
|
111
|
-
name: "InvalidSignatures";
|
|
112
|
-
args: [];
|
|
113
|
-
}
|
|
114
|
-
export interface AdminMultisigConfigNotSetError {
|
|
115
|
-
name: "AdminMultisigConfigNotSet";
|
|
116
|
-
args: [];
|
|
117
|
-
}
|
|
118
|
-
export interface MultisigConfigNotSetError {
|
|
119
|
-
name: "MultisigConfigNotSet";
|
|
120
|
-
args: [];
|
|
121
|
-
}
|
|
122
|
-
export interface RequireTreasuryReceiverRoleError {
|
|
123
|
-
name: "RequireTreasuryReceiverRole";
|
|
124
|
-
args: [];
|
|
125
|
-
}
|
|
126
|
-
export interface InvalidMultiSigError {
|
|
127
|
-
name: "InvalidMultiSig";
|
|
128
|
-
args: [];
|
|
129
|
-
}
|
|
130
|
-
export interface RequireMultiSigError {
|
|
131
|
-
name: "RequireMultiSig";
|
|
132
|
-
args: [];
|
|
133
|
-
}
|
|
134
|
-
export interface TimelockNotExpiredError {
|
|
135
|
-
name: "TimelockNotExpired";
|
|
136
|
-
args: [number];
|
|
137
|
-
}
|
|
138
|
-
export interface InsufficientExecutiveSigsError {
|
|
139
|
-
name: "InsufficientExecutiveSigs";
|
|
140
|
-
args: [number, number];
|
|
141
|
-
}
|
|
142
|
-
export interface InsufficientManagerSigsError {
|
|
143
|
-
name: "InsufficientManagerSigs";
|
|
144
|
-
args: [number, number];
|
|
145
|
-
}
|
|
146
|
-
type ErrorName = "NotAuthorized" | "NotAdmin" | "TransferError" | "InsufficientReserves" | "InsufficientBalance" | "TokenNotAllowed" | "DepositOnlyERC20" | "EtherDirectTransferNotAllowed" | "RequestAlreadyFulfilled" | "ZeroAddress" | "ZeroValue" | "SignatureAlreadyUsed" | "InvalidSignature" | "ContractPaused" | "ContractBusy" | "ExceedsLimit" | "ExceedsMax" | "UnknownError" | "InvalidNonce" | "TimelockConfigGroupNotSet" | "ConfigGroupNotSet" | "TimelockConfigNotSet" | "CommitmentNotFound" | "AlreadyCreatedTransaction" | "AccountAlreadyHasSignerRole" | "InvalidOperation" | "InvalidConfig" | "InvalidSignatures" | "AdminMultisigConfigNotSet" | "MultisigConfigNotSet" | "RequireTreasuryReceiverRole" | "InvalidMultiSig" | "RequireMultiSig" | "TimelockNotExpired" | "InsufficientExecutiveSigs" | "InsufficientManagerSigs";
|
|
62
|
+
type ErrorName = "NotAuthorized" | "NotAdmin" | "TransferError" | "InsufficientReserves" | "InsufficientBalance" | "TokenNotAllowed" | "DepositOnlyERC20" | "EtherDirectTransferNotAllowed" | "RequestAlreadyFulfilled" | "ZeroAddress" | "ZeroValue" | "SignatureAlreadyUsed" | "InvalidSignature" | "ContractPaused" | "ContractBusy" | "UnknownError";
|
|
147
63
|
export interface EscrowErrorMessage {
|
|
148
64
|
name: ErrorName;
|
|
149
65
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EscrowErrors.d.ts","sourceRoot":"","sources":["../../src/contracts/EscrowErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,4BAA4B;IACzC,IAAI,EAAE,yBAAyB,CAAC;IAChC,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,kCAAkC;IAC/C,IAAI,EAAE,+BAA+B,CAAC;IACtC,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,EAAE,CAAC;CACZ;
|
|
1
|
+
{"version":3,"file":"EscrowErrors.d.ts","sourceRoot":"","sources":["../../src/contracts/EscrowErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,4BAA4B;IACzC,IAAI,EAAE,yBAAyB,CAAC;IAChC,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,kCAAkC;IAC/C,IAAI,EAAE,+BAA+B,CAAC;IACtC,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,EAAE,CAAC;CACZ;AAID,KAAK,SAAS,GACR,eAAe,GACf,UAAU,GACV,eAAe,GACf,sBAAsB,GACtB,qBAAqB,GACrB,iBAAiB,GACjB,kBAAkB,GAClB,+BAA+B,GAC/B,yBAAyB,GACzB,aAAa,GACb,WAAW,GACX,sBAAsB,GACtB,kBAAkB,GAClB,gBAAgB,GAChB,cAAc,GACd,cAAc,CAAC;AAErB,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,iBAAiB,GAAI,cAAc,gBAAgB,KAAG,kBA2ClE,CAAC"}
|