@across-protocol/sdk 4.3.118 → 4.3.120-alpha.1
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/cjs/src/clients/BundleDataClient/BundleDataClient.js +26 -16
- package/dist/cjs/src/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/cjs/src/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -0
- package/dist/cjs/src/clients/BundleDataClient/utils/PoolRebalanceUtils.js +4 -0
- package/dist/cjs/src/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/cjs/test/constants.d.ts +58 -8
- package/dist/cjs/test/constants.js +70 -13
- package/dist/cjs/test/constants.js.map +1 -1
- package/dist/cjs/test/fixtures/MerkleLib.Fixture.d.ts +4 -0
- package/dist/cjs/test/fixtures/MerkleLib.Fixture.js +22 -0
- package/dist/cjs/test/fixtures/MerkleLib.Fixture.js.map +1 -0
- package/dist/cjs/test/fixtures/SpokePool.Fixture.d.ts +91 -1
- package/dist/cjs/test/fixtures/SpokePool.Fixture.js +196 -1
- package/dist/cjs/test/fixtures/SpokePool.Fixture.js.map +1 -1
- package/dist/cjs/test/types/index.d.ts +10 -11
- package/dist/cjs/test/utils/MerkleLib.utils.d.ts +26 -1
- package/dist/cjs/test/utils/MerkleLib.utils.js +40 -0
- package/dist/cjs/test/utils/MerkleLib.utils.js.map +1 -1
- package/dist/cjs/test/utils/index.d.ts +0 -1
- package/dist/cjs/test/utils/index.js +1 -2
- package/dist/cjs/test/utils/index.js.map +1 -1
- package/dist/cjs/test/utils/utils.d.ts +44 -17
- package/dist/cjs/test/utils/utils.js +223 -37
- package/dist/cjs/test/utils/utils.js.map +1 -1
- package/dist/esm/src/clients/BundleDataClient/BundleDataClient.js +32 -17
- package/dist/esm/src/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/esm/src/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -0
- package/dist/esm/src/clients/BundleDataClient/utils/PoolRebalanceUtils.js +3 -0
- package/dist/esm/src/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/esm/test/constants.d.ts +58 -8
- package/dist/esm/test/constants.js +87 -13
- package/dist/esm/test/constants.js.map +1 -1
- package/dist/esm/test/fixtures/MerkleLib.Fixture.d.ts +4 -0
- package/dist/esm/test/fixtures/MerkleLib.Fixture.js +19 -0
- package/dist/esm/test/fixtures/MerkleLib.Fixture.js.map +1 -0
- package/dist/esm/test/fixtures/SpokePool.Fixture.d.ts +92 -1
- package/dist/esm/test/fixtures/SpokePool.Fixture.js +201 -1
- package/dist/esm/test/fixtures/SpokePool.Fixture.js.map +1 -1
- package/dist/esm/test/types/index.d.ts +10 -11
- package/dist/esm/test/utils/MerkleLib.utils.d.ts +32 -1
- package/dist/esm/test/utils/MerkleLib.utils.js +44 -0
- package/dist/esm/test/utils/MerkleLib.utils.js.map +1 -1
- package/dist/esm/test/utils/index.d.ts +0 -1
- package/dist/esm/test/utils/index.js +0 -2
- package/dist/esm/test/utils/index.js.map +1 -1
- package/dist/esm/test/utils/utils.d.ts +44 -17
- package/dist/esm/test/utils/utils.js +205 -29
- package/dist/esm/test/utils/utils.js.map +1 -1
- package/dist/types/src/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
- package/dist/types/src/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -0
- package/dist/types/src/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts.map +1 -1
- package/dist/types/test/constants.d.ts +58 -8
- package/dist/types/test/constants.d.ts.map +1 -1
- package/dist/types/test/fixtures/MerkleLib.Fixture.d.ts +5 -0
- package/dist/types/test/fixtures/MerkleLib.Fixture.d.ts.map +1 -0
- package/dist/types/test/fixtures/SpokePool.Fixture.d.ts +92 -1
- package/dist/types/test/fixtures/SpokePool.Fixture.d.ts.map +1 -1
- package/dist/types/test/types/index.d.ts +10 -11
- package/dist/types/test/types/index.d.ts.map +1 -1
- package/dist/types/test/utils/MerkleLib.utils.d.ts +32 -1
- package/dist/types/test/utils/MerkleLib.utils.d.ts.map +1 -1
- package/dist/types/test/utils/index.d.ts +0 -1
- package/dist/types/test/utils/index.d.ts.map +1 -1
- package/dist/types/test/utils/utils.d.ts +44 -17
- package/dist/types/test/utils/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/clients/BundleDataClient/BundleDataClient.ts +28 -9
- package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +4 -0
|
@@ -2,9 +2,100 @@ import "@nomiclabs/hardhat-ethers";
|
|
|
2
2
|
import "@openzeppelin/hardhat-upgrades";
|
|
3
3
|
import "hardhat-deploy";
|
|
4
4
|
import hre from "hardhat";
|
|
5
|
-
import { Contract } from "ethers";
|
|
5
|
+
import { BigNumber, Contract } from "ethers";
|
|
6
|
+
import type { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
|
|
6
7
|
import { zeroAddress } from "../constants";
|
|
7
8
|
export { zeroAddress };
|
|
9
|
+
/** V2-era relay data with string chain IDs / deposit IDs */
|
|
10
|
+
export interface ContractRelayData {
|
|
11
|
+
depositor: string;
|
|
12
|
+
recipient: string;
|
|
13
|
+
destinationToken: string;
|
|
14
|
+
amount: BigNumber;
|
|
15
|
+
realizedLpFeePct: BigNumber;
|
|
16
|
+
relayerFeePct: BigNumber;
|
|
17
|
+
depositId: string;
|
|
18
|
+
originChainId: string;
|
|
19
|
+
destinationChainId: string;
|
|
20
|
+
message: string;
|
|
21
|
+
}
|
|
22
|
+
export interface V3RelayData {
|
|
23
|
+
depositor: string;
|
|
24
|
+
recipient: string;
|
|
25
|
+
exclusiveRelayer: string;
|
|
26
|
+
inputToken: string;
|
|
27
|
+
outputToken: string;
|
|
28
|
+
inputAmount: BigNumber;
|
|
29
|
+
outputAmount: BigNumber;
|
|
30
|
+
originChainId: number;
|
|
31
|
+
depositId: BigNumber;
|
|
32
|
+
fillDeadline: number;
|
|
33
|
+
exclusivityDeadline: number;
|
|
34
|
+
message: string;
|
|
35
|
+
}
|
|
36
|
+
export interface V3RelayExecutionParams {
|
|
37
|
+
relay: V3RelayData;
|
|
38
|
+
relayHash: string;
|
|
39
|
+
updatedOutputAmount: BigNumber;
|
|
40
|
+
updatedRecipient: string;
|
|
41
|
+
updatedMessage: string;
|
|
42
|
+
repaymentChainId: number;
|
|
43
|
+
}
|
|
44
|
+
export interface SlowFill {
|
|
45
|
+
relayData: ContractRelayData;
|
|
46
|
+
payoutAdjustmentPct: BigNumber;
|
|
47
|
+
}
|
|
48
|
+
export interface V3SlowFill {
|
|
49
|
+
relayData: V3RelayData;
|
|
50
|
+
chainId: number;
|
|
51
|
+
updatedOutputAmount: BigNumber;
|
|
52
|
+
}
|
|
53
|
+
export interface UpdatedRelayerFeeData {
|
|
54
|
+
newRelayerFeePct: string;
|
|
55
|
+
depositorMessageHash: string;
|
|
56
|
+
depositorSignature: string;
|
|
57
|
+
}
|
|
58
|
+
export declare const enum FillType {
|
|
59
|
+
FastFill = 0,
|
|
60
|
+
ReplacedSlowFill = 1,
|
|
61
|
+
SlowFill = 2
|
|
62
|
+
}
|
|
63
|
+
export declare const enum FillStatus {
|
|
64
|
+
Unfilled = 0,
|
|
65
|
+
RequestedSlowFill = 1,
|
|
66
|
+
Filled = 2
|
|
67
|
+
}
|
|
68
|
+
export declare function getRelayHash(_depositor: string, _recipient: string, _depositId: number, _originChainId: number, _destinationChainId: number, _destinationToken: string, _amount?: BigNumber, _realizedLpFeePct?: BigNumber, _relayerFeePct?: BigNumber, _message?: string): {
|
|
69
|
+
relayHash: string;
|
|
70
|
+
relayData: ContractRelayData;
|
|
71
|
+
};
|
|
72
|
+
export declare function getV3RelayHash(relayData: V3RelayData, destChainId: number): string;
|
|
73
|
+
export declare function getLegacyV3RelayHash(relayData: V3RelayData, destChainId: number): string;
|
|
74
|
+
export declare function getDepositParams(args: {
|
|
75
|
+
recipient?: string;
|
|
76
|
+
originToken: string;
|
|
77
|
+
amount: BigNumber;
|
|
78
|
+
destinationChainId: number;
|
|
79
|
+
relayerFeePct: BigNumber;
|
|
80
|
+
quoteTimestamp: number;
|
|
81
|
+
message?: string;
|
|
82
|
+
maxCount?: BigNumber;
|
|
83
|
+
}): string[];
|
|
84
|
+
export declare function getFillRelayParams(_relayData: ContractRelayData, _maxTokensToSend: BigNumber, _repaymentChain?: number, _maxCount?: BigNumber): string[];
|
|
85
|
+
export declare function getFillRelayUpdatedFeeParams(_relayData: ContractRelayData, _maxTokensToSend: BigNumber, _updatedFee: BigNumber, _signature: string, _repaymentChain?: number, _updatedRecipient?: string, _updatedMessage?: string, _maxCount?: BigNumber): string[];
|
|
86
|
+
export declare function getExecuteSlowRelayParams(_depositor: string, _recipient: string, _destToken: string, _amount: BigNumber, _originChainId: number, _realizedLpFeePct: BigNumber, _relayerFeePct: BigNumber, _depositId: number, _relayerRefundId: number, _message: string, _payoutAdjustment: BigNumber, _proof: string[]): (string | string[])[];
|
|
87
|
+
export declare function modifyRelayHelper(modifiedRelayerFeePct: BigNumber, depositId: string, originChainId: string, depositor: SignerWithAddress, updatedRecipient: string, updatedMessage: string): Promise<{
|
|
88
|
+
signature: string;
|
|
89
|
+
}>;
|
|
90
|
+
export declare function getUpdatedV3DepositSignature(depositor: SignerWithAddress, depositId: BigNumber, originChainId: number, updatedOutputAmount: BigNumber, updatedRecipient: string, updatedMessage: string): Promise<string>;
|
|
91
|
+
export declare function deployMockSpokePoolCaller(spokePool: Contract, rootBundleId: number, leaf: {
|
|
92
|
+
amountToReturn: BigNumber;
|
|
93
|
+
chainId: BigNumber;
|
|
94
|
+
refundAmounts: BigNumber[];
|
|
95
|
+
leafId: BigNumber;
|
|
96
|
+
l2TokenAddress: string;
|
|
97
|
+
refundAddresses: string[];
|
|
98
|
+
}, proof: string[]): Promise<Contract>;
|
|
8
99
|
/**
|
|
9
100
|
* Deploys a SpokePool with associated tokens for testing.
|
|
10
101
|
* This is a local implementation that uses our local getContractFactory
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpokePool.Fixture.d.ts","sourceRoot":"","sources":["../../../../test/fixtures/SpokePool.Fixture.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,OAAO,gCAAgC,CAAC;AACxC,OAAO,gBAAgB,CAAC;AACxB,OAAO,GAAG,MAAM,SAAS,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"SpokePool.Fixture.d.ts","sourceRoot":"","sources":["../../../../test/fixtures/SpokePool.Fixture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { HardhatEthersHelpers } from "@nomiclabs/hardhat-ethers/types";
|
|
2
|
-
import type { ethers } from "ethers";
|
|
2
|
+
import type { ethers, Contract, BigNumber } from "ethers";
|
|
3
3
|
import winston from "winston";
|
|
4
|
-
import * as utils from "@across-protocol/contracts/dist/test-utils";
|
|
5
4
|
import { sinon } from "../utils";
|
|
6
5
|
export type EthersTestLibrary = typeof ethers & HardhatEthersHelpers;
|
|
7
6
|
export type SpyLoggerResult = {
|
|
@@ -9,20 +8,20 @@ export type SpyLoggerResult = {
|
|
|
9
8
|
spyLogger: winston.Logger;
|
|
10
9
|
};
|
|
11
10
|
export type SpokePoolDeploymentResult = {
|
|
12
|
-
weth:
|
|
13
|
-
erc20:
|
|
14
|
-
spokePool:
|
|
15
|
-
unwhitelistedErc20:
|
|
16
|
-
destErc20:
|
|
11
|
+
weth: Contract;
|
|
12
|
+
erc20: Contract;
|
|
13
|
+
spokePool: Contract;
|
|
14
|
+
unwhitelistedErc20: Contract;
|
|
15
|
+
destErc20: Contract;
|
|
17
16
|
deploymentBlock: number;
|
|
18
17
|
};
|
|
19
18
|
export type ContractsV2SlowFillRelayData = {
|
|
20
19
|
depositor: string;
|
|
21
20
|
recipient: string;
|
|
22
21
|
destinationToken: string;
|
|
23
|
-
amount:
|
|
24
|
-
realizedLpFeePct:
|
|
25
|
-
relayerFeePct:
|
|
22
|
+
amount: BigNumber;
|
|
23
|
+
realizedLpFeePct: BigNumber;
|
|
24
|
+
relayerFeePct: BigNumber;
|
|
26
25
|
depositId: string;
|
|
27
26
|
originChainId: string;
|
|
28
27
|
destinationChainId: string;
|
|
@@ -30,6 +29,6 @@ export type ContractsV2SlowFillRelayData = {
|
|
|
30
29
|
};
|
|
31
30
|
export type ContractsV2SlowFill = {
|
|
32
31
|
relayData: ContractsV2SlowFillRelayData;
|
|
33
|
-
payoutAdjustmentPct:
|
|
32
|
+
payoutAdjustmentPct: BigNumber;
|
|
34
33
|
};
|
|
35
34
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../test/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../test/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,MAAM,iBAAiB,GAAG,OAAO,MAAM,GAAG,oBAAoB,CAAC;AACrE,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,QAAQ,CAAC;IACpB,kBAAkB,EAAE,QAAQ,CAAC;IAC7B,SAAS,EAAE,QAAQ,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,SAAS,CAAC;IAClB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,aAAa,EAAE,SAAS,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,4BAA4B,CAAC;IACxC,mBAAmB,EAAE,SAAS,CAAC;CAChC,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* These are reimplementations of the utilities from @across-protocol/contracts
|
|
4
4
|
* to avoid dependency on their getContractFactory which looks for Hardhat artifacts.
|
|
5
5
|
*/
|
|
6
|
-
import { BigNumber, ethers } from "ethers";
|
|
6
|
+
import { BigNumber, Contract, ethers } from "ethers";
|
|
7
7
|
import { MerkleTree } from "@across-protocol/contracts/dist/utils/MerkleTree";
|
|
8
8
|
/**
|
|
9
9
|
* Get the parameter type for a contract function parameter.
|
|
@@ -64,4 +64,35 @@ export declare function buildSlowRelayTree(slowFills: unknown[]): Promise<Merkle
|
|
|
64
64
|
* Build a V3 slow relay Merkle tree.
|
|
65
65
|
*/
|
|
66
66
|
export declare function buildV3SlowRelayTree(slowFills: unknown[]): Promise<MerkleTree<unknown>>;
|
|
67
|
+
/**
|
|
68
|
+
* Construct a single-leaf relayer refund tree.
|
|
69
|
+
*/
|
|
70
|
+
export declare function constructSingleRelayerRefundTree(l2Token: Contract | string, destinationChainId: number, amount?: BigNumber): Promise<{
|
|
71
|
+
leaves: {
|
|
72
|
+
leafId: BigNumber;
|
|
73
|
+
chainId: BigNumber;
|
|
74
|
+
amountToReturn: BigNumber;
|
|
75
|
+
l2TokenAddress: string;
|
|
76
|
+
refundAddresses: string[];
|
|
77
|
+
refundAmounts: BigNumber[];
|
|
78
|
+
}[];
|
|
79
|
+
tree: MerkleTree<unknown>;
|
|
80
|
+
}>;
|
|
81
|
+
/**
|
|
82
|
+
* Construct a single-chain pool rebalance tree.
|
|
83
|
+
*/
|
|
84
|
+
export declare function constructSingleChainTree(token: string, scalingSize?: number, repaymentChain?: number, decimals?: number): Promise<{
|
|
85
|
+
tokensSendToL2: BigNumber;
|
|
86
|
+
realizedLpFees: BigNumber;
|
|
87
|
+
leaves: {
|
|
88
|
+
leafId: BigNumber;
|
|
89
|
+
chainId: BigNumber;
|
|
90
|
+
groupIndex: BigNumber;
|
|
91
|
+
bundleLpFees: BigNumber[];
|
|
92
|
+
netSendAmounts: BigNumber[];
|
|
93
|
+
runningBalances: BigNumber[];
|
|
94
|
+
l1Tokens: string[];
|
|
95
|
+
}[];
|
|
96
|
+
tree: MerkleTree<unknown>;
|
|
97
|
+
}>;
|
|
67
98
|
//# sourceMappingURL=MerkleLib.utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MerkleLib.utils.d.ts","sourceRoot":"","sources":["../../../../test/utils/MerkleLib.utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"MerkleLib.utils.d.ts","sourceRoot":"","sources":["../../../../test/utils/MerkleLib.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../test/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../test/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
|
@@ -1,47 +1,74 @@
|
|
|
1
1
|
import { AcrossConfigStore } from "@across-protocol/contracts";
|
|
2
|
-
import * as utils from "@across-protocol/contracts/dist/test-utils";
|
|
3
2
|
import chai, { expect } from "chai";
|
|
4
|
-
import { Contract, providers } from "ethers";
|
|
3
|
+
import { ethers, BaseContract, Contract, providers, Signer } from "ethers";
|
|
4
|
+
import { FakeContract } from "@defi-wonderland/smock";
|
|
5
5
|
import sinon from "sinon";
|
|
6
6
|
import winston from "winston";
|
|
7
|
+
import type { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
|
|
7
8
|
import { AcrossConfigStoreClient as ConfigStoreClient } from "../../src/clients";
|
|
8
9
|
import { Deposit, DepositWithBlock, FillWithBlock, RelayData, SlowFillRequestWithBlock } from "../../src/interfaces";
|
|
9
10
|
import { Address, BigNumber, BigNumberish, toBN, toBNWei, toWei, utf8ToHex } from "../../src/utils";
|
|
11
|
+
import { randomAddress, zeroAddress } from "../constants";
|
|
10
12
|
import { SpokePoolDeploymentResult, SpyLoggerResult } from "../types";
|
|
11
13
|
declare const chaiAssert: Chai.AssertStatic;
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export {
|
|
14
|
+
export { ethers };
|
|
15
|
+
export type { SignerWithAddress };
|
|
16
|
+
export { getDepositParams, getUpdatedV3DepositSignature, modifyRelayHelper, getRelayHash, getV3RelayHash, getLegacyV3RelayHash, getFillRelayParams, getFillRelayUpdatedFeeParams, getExecuteSlowRelayParams, deployMockSpokePoolCaller, } from "../fixtures/SpokePool.Fixture";
|
|
17
|
+
export type { ContractRelayData, V3RelayData, V3RelayExecutionParams, SlowFill, V3SlowFill, UpdatedRelayerFeeData, } from "../fixtures/SpokePool.Fixture";
|
|
18
|
+
export { FillType, FillStatus } from "../fixtures/SpokePool.Fixture";
|
|
19
|
+
export { randomAddress, zeroAddress };
|
|
20
|
+
export { buildPoolRebalanceLeafTree, buildPoolRebalanceLeaves, buildRelayerRefundTree, buildRelayerRefundLeaves, buildSlowRelayTree, buildV3SlowRelayTree, getParamType, constructSingleRelayerRefundTree, constructSingleChainTree, } from "./MerkleLib.utils";
|
|
15
21
|
import { getContractFactory } from "./getContractFactory";
|
|
16
22
|
export { getContractFactory };
|
|
17
23
|
import { hubPoolFixture, deployHubPool } from "../fixtures/HubPool.Fixture";
|
|
18
24
|
import { spokePoolFixture, deploySpokePool } from "../fixtures/SpokePool.Fixture";
|
|
19
25
|
export { hubPoolFixture, deployHubPool, spokePoolFixture, deploySpokePool };
|
|
26
|
+
export { merkleLibFixture } from "../fixtures/MerkleLib.Fixture";
|
|
20
27
|
export { BigNumber, Contract, chai, chaiAssert, expect, sinon, toBN, toBNWei, toWei, utf8ToHex, winston };
|
|
28
|
+
declare const defaultAbiCoder: ethers.utils.AbiCoder, keccak256: typeof ethers.utils.keccak256;
|
|
29
|
+
export { defaultAbiCoder, keccak256, Signer, FakeContract };
|
|
30
|
+
export declare const toWeiWithDecimals: (num: string | number | BigNumber, decimals: number) => BigNumber;
|
|
31
|
+
export declare const toBNWeiWithDecimals: (num: string | number | BigNumber, decimals: number) => BigNumber;
|
|
32
|
+
export declare const fromWei: (num: string | number | BigNumber) => string;
|
|
33
|
+
export declare const hexToUtf8: (input: string) => string;
|
|
34
|
+
export declare const hexZeroPad: (input: string, length: number) => string;
|
|
35
|
+
export declare const addressToBytes: (input: string) => string;
|
|
36
|
+
export declare const bytes32ToAddress: (input: string) => string;
|
|
37
|
+
export declare const isBytes32: (input: string) => boolean;
|
|
38
|
+
export declare function randomBigNumber(bytes?: number, signed?: boolean): BigNumber;
|
|
39
|
+
export declare function randomBytes32(): string;
|
|
40
|
+
export declare function seedWallet(walletToFund: Signer, tokens: Contract[], weth: Contract | undefined, amountToSeedWith: number | BigNumber): Promise<void>;
|
|
41
|
+
export declare function seedContract(contract: Contract, walletToFund: Signer, tokens: Contract[], weth: Contract | undefined, amountToSeedWith: number | BigNumber): Promise<void>;
|
|
42
|
+
export declare function createFake(contractName: string, targetAddress?: string): Promise<FakeContract<BaseContract>>;
|
|
43
|
+
export declare function createFakeFromABI(abi: unknown[], targetAddress?: string): Promise<FakeContract<BaseContract>>;
|
|
44
|
+
export declare function createTypedFakeFromABI<T extends BaseContract>(abi: unknown[], targetAddress?: string): Promise<FakeContract<T>>;
|
|
45
|
+
export declare function trimSolanaAddress(bytes32Address: string): string;
|
|
46
|
+
export declare function hashNonEmptyMessage(message: string): string;
|
|
47
|
+
export declare const createRandomBytes32: () => string;
|
|
21
48
|
export declare function deepEqualsWithBigNumber(x: unknown, y: unknown, omitKeys?: string[]): boolean;
|
|
22
49
|
export declare function assertPromiseError<T>(promise: Promise<T>, errMessage?: string): Promise<void>;
|
|
23
50
|
export declare function assertPromisePasses<T>(promise: Promise<T>): Promise<void>;
|
|
24
|
-
export declare function setupTokensForWallet(contractToApprove:
|
|
51
|
+
export declare function setupTokensForWallet(contractToApprove: Contract, wallet: SignerWithAddress, tokens: Contract[], weth?: Contract, seedMultiplier?: number): Promise<void>;
|
|
25
52
|
export declare function createSpyLogger(): SpyLoggerResult;
|
|
26
53
|
export declare function deploySpokePoolWithToken(fromChainId?: number): Promise<SpokePoolDeploymentResult>;
|
|
27
|
-
export declare function deployConfigStore(signer:
|
|
54
|
+
export declare function deployConfigStore(signer: SignerWithAddress, tokensToAdd: Contract[], maxL1TokensPerPoolRebalanceLeaf?: number, maxRefundPerRelayerRefundLeaf?: number, rateModel?: unknown, additionalChainIdIndices?: number[]): Promise<{
|
|
28
55
|
configStore: AcrossConfigStore;
|
|
29
56
|
deploymentBlock: number;
|
|
30
57
|
}>;
|
|
31
|
-
export declare function deployAndConfigureHubPool(signer:
|
|
58
|
+
export declare function deployAndConfigureHubPool(signer: SignerWithAddress, spokePools: {
|
|
32
59
|
l2ChainId: number;
|
|
33
|
-
spokePool:
|
|
60
|
+
spokePool: Contract;
|
|
34
61
|
}[], finderAddress?: string, timerAddress?: string): Promise<{
|
|
35
|
-
hubPool:
|
|
36
|
-
mockAdapter:
|
|
37
|
-
l1Token_1:
|
|
38
|
-
l1Token_2:
|
|
62
|
+
hubPool: Contract;
|
|
63
|
+
mockAdapter: Contract;
|
|
64
|
+
l1Token_1: Contract;
|
|
65
|
+
l1Token_2: Contract;
|
|
39
66
|
hubPoolDeploymentBlock: number;
|
|
40
67
|
}>;
|
|
41
|
-
export declare function enableRoutesOnHubPool(hubPool:
|
|
68
|
+
export declare function enableRoutesOnHubPool(hubPool: Contract, rebalanceRouteTokens: {
|
|
42
69
|
destinationChainId: number;
|
|
43
|
-
l1Token:
|
|
44
|
-
destinationToken:
|
|
70
|
+
l1Token: Contract;
|
|
71
|
+
destinationToken: Contract;
|
|
45
72
|
}[]): Promise<void>;
|
|
46
73
|
/**
|
|
47
74
|
* Takes as input a body and returns a new object with the body and a message property. Used to appease the typescript
|
|
@@ -53,7 +80,7 @@ export declare function appendMessageToResult<T>(body: T): T & {
|
|
|
53
80
|
message: string;
|
|
54
81
|
};
|
|
55
82
|
export declare function getLastBlockTime(provider: providers.Provider): Promise<number>;
|
|
56
|
-
export declare function addLiquidity(signer:
|
|
83
|
+
export declare function addLiquidity(signer: SignerWithAddress, hubPool: Contract, l1Token: Contract, amount: BigNumber): Promise<void>;
|
|
57
84
|
export declare function deposit(spokePool: Contract, destinationChainId: number, signer: SignerWithAddress, inputToken: Address, inputAmount: BigNumber, outputToken: Address, outputAmount: BigNumber, opts?: {
|
|
58
85
|
destinationChainId?: number;
|
|
59
86
|
recipient?: Address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../test/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../test/utils/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -46,6 +46,7 @@ import {
|
|
|
46
46
|
BundleDataSS,
|
|
47
47
|
getRefundInformationFromFill,
|
|
48
48
|
isChainDisabledAtBlock,
|
|
49
|
+
isChainPaused,
|
|
49
50
|
prettyPrintV3SpokePoolEvents,
|
|
50
51
|
V3DepositWithBlock,
|
|
51
52
|
V3FillWithBlock,
|
|
@@ -434,6 +435,15 @@ export class BundleDataClient {
|
|
|
434
435
|
// (2) the fill deadline has passed. We'll need to decrement running balances for these deposits on the
|
|
435
436
|
// destination chain where the slow fill would have been executed.
|
|
436
437
|
|
|
438
|
+
const _isChainDisabled = (chainId: number): boolean => {
|
|
439
|
+
return isChainDisabledAtBlock(chainId, bundleStartBlockForMainnet, this.clients.configStoreClient);
|
|
440
|
+
};
|
|
441
|
+
|
|
442
|
+
const _isChainPaused = (chainId: number): boolean => {
|
|
443
|
+
const blockRangeForChain = getBlockRangeForChain(blockRangesForChains, chainId, chainIds);
|
|
444
|
+
return isChainPaused(blockRangeForChain);
|
|
445
|
+
};
|
|
446
|
+
|
|
437
447
|
const _canCreateSlowFillLeaf = (deposit: DepositWithBlock): boolean => {
|
|
438
448
|
return (
|
|
439
449
|
// Cannot slow fill when input and output tokens are not equivalent.
|
|
@@ -469,11 +479,7 @@ export class BundleDataClient {
|
|
|
469
479
|
// Infer chain ID's to load from number of block ranges passed in.
|
|
470
480
|
const allChainIds = blockRangesForChains
|
|
471
481
|
.map((_blockRange, index) => chainIds[index])
|
|
472
|
-
.filter(
|
|
473
|
-
(chainId) =>
|
|
474
|
-
!isChainDisabledAtBlock(chainId, bundleStartBlockForMainnet, this.clients.configStoreClient) &&
|
|
475
|
-
spokePoolClients[chainId] !== undefined
|
|
476
|
-
);
|
|
482
|
+
.filter((chainId) => !_isChainDisabled(chainId) && spokePoolClients[chainId] !== undefined);
|
|
477
483
|
allChainIds.forEach((chainId) => {
|
|
478
484
|
const spokePoolClient = spokePoolClients[chainId];
|
|
479
485
|
if (!spokePoolClient.isUpdated) {
|
|
@@ -573,8 +579,13 @@ export class BundleDataClient {
|
|
|
573
579
|
});
|
|
574
580
|
throw new Error("Duplicate deposit detected");
|
|
575
581
|
}
|
|
576
|
-
|
|
577
|
-
|
|
582
|
+
// Only save a bundle deposit if the chain is unpaused, otherwise we've already processed this deposit
|
|
583
|
+
// as a "bundle deposit" in the previous bundle because the "paused block range" is equal to the
|
|
584
|
+
// previous bundle's end block.
|
|
585
|
+
if (!_isChainPaused(originChainId)) {
|
|
586
|
+
bundleDepositHashes.push(newBundleDepositHash);
|
|
587
|
+
updateBundleDepositsV3(bundleDepositsV3, deposit);
|
|
588
|
+
}
|
|
578
589
|
} else if (deposit.blockNumber < originChainBlockRange[0]) {
|
|
579
590
|
olderDepositHashes.push(newBundleDepositHash);
|
|
580
591
|
}
|
|
@@ -605,9 +616,11 @@ export class BundleDataClient {
|
|
|
605
616
|
const validatedBundleSlowFills: V3DepositWithBlock[] = [];
|
|
606
617
|
const validatedBundleUnexecutableSlowFills: V3DepositWithBlock[] = [];
|
|
607
618
|
let fillCounter = 0;
|
|
608
|
-
for
|
|
619
|
+
// Only evaluate fills and slow fills for chains that are unpaused.
|
|
620
|
+
const allFillChainIds = allChainIds.filter((chainId) => !_isChainPaused(chainId));
|
|
621
|
+
for (const originChainId of allFillChainIds) {
|
|
609
622
|
const originClient = spokePoolClients[originChainId];
|
|
610
|
-
for (const destinationChainId of
|
|
623
|
+
for (const destinationChainId of allFillChainIds) {
|
|
611
624
|
const destinationClient = spokePoolClients[destinationChainId];
|
|
612
625
|
const destinationChainBlockRange = getBlockRangeForChain(blockRangesForChains, destinationChainId, chainIds);
|
|
613
626
|
const originChainBlockRange = getBlockRangeForChain(blockRangesForChains, originChainId, chainIds);
|
|
@@ -1061,6 +1074,12 @@ export class BundleDataClient {
|
|
|
1061
1074
|
}
|
|
1062
1075
|
const deposit = deposits[index];
|
|
1063
1076
|
const { destinationChainId } = deposit;
|
|
1077
|
+
|
|
1078
|
+
// On the off chance the destination chain is paused at the exact block where the deposit.fillDeadline expires,
|
|
1079
|
+
// where the deposit.fillDeadline expires, then we should not process it.
|
|
1080
|
+
if (_isChainPaused(destinationChainId)) {
|
|
1081
|
+
return;
|
|
1082
|
+
}
|
|
1064
1083
|
const destinationBlockRange = getBlockRangeForChain(blockRangesForChains, destinationChainId, chainIds);
|
|
1065
1084
|
|
|
1066
1085
|
// Only look for deposits that were mined before this bundle and that are newly expired.
|
|
@@ -98,6 +98,10 @@ export async function getWidestPossibleExpectedBlockRange(
|
|
|
98
98
|
});
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
+
export function isChainPaused(blockRangeForChain: number[]): boolean {
|
|
102
|
+
return blockRangeForChain[0] === blockRangeForChain[1];
|
|
103
|
+
}
|
|
104
|
+
|
|
101
105
|
export function isChainDisabledAtBlock(
|
|
102
106
|
chainId: number,
|
|
103
107
|
mainnetBlock: number,
|