@across-protocol/sdk 4.3.50 → 4.3.51
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/clients/BundleDataClient/utils/DataworkerUtils.d.ts +22 -1
- package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js +79 -10
- package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +2 -2
- package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.d.ts +22 -1
- package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js +132 -12
- package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +2 -2
- package/dist/types/clients/BundleDataClient/utils/DataworkerUtils.d.ts +22 -1
- package/dist/types/clients/BundleDataClient/utils/DataworkerUtils.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +2 -2
- package/package.json +1 -1
- package/src/clients/BundleDataClient/utils/DataworkerUtils.ts +249 -22
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { BundleDepositsV3, BundleExcessSlowFills, BundleFillsV3, BundleSlowFills, CombinedRefunds, ExpiredDepositsToRefundV3 } from "../../../interfaces";
|
|
1
|
+
import { BundleDepositsV3, BundleExcessSlowFills, BundleFillsV3, BundleSlowFills, CombinedRefunds, ExpiredDepositsToRefundV3, RunningBalances, SpokePoolClientsByChain } from "../../../interfaces";
|
|
2
2
|
import { AnyObject } from "../../../utils";
|
|
3
3
|
import { PoolRebalanceRoot } from "./PoolRebalanceUtils";
|
|
4
4
|
import { AcrossConfigStoreClient } from "../../AcrossConfigStoreClient";
|
|
5
5
|
import { HubPoolClient } from "../../HubPoolClient";
|
|
6
|
+
import { BundleDataClient } from "../../BundleDataClient";
|
|
6
7
|
export declare function getRefundsFromBundle(bundleFillsV3: BundleFillsV3, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3): CombinedRefunds;
|
|
7
8
|
export declare function prettyPrintV3SpokePoolEvents(bundleDepositsV3: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, unexecutableSlowFills: BundleExcessSlowFills): AnyObject;
|
|
8
9
|
export declare function getEndBlockBuffers(chainIdListForBundleEvaluationBlockNumbers: number[], blockRangeEndBlockBuffer: {
|
|
@@ -11,4 +12,24 @@ export declare function getEndBlockBuffers(chainIdListForBundleEvaluationBlockNu
|
|
|
11
12
|
export declare function _buildPoolRebalanceRoot(latestMainnetBlock: number, mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
12
13
|
hubPoolClient: HubPoolClient;
|
|
13
14
|
configStoreClient: AcrossConfigStoreClient;
|
|
15
|
+
bundleDataClient: BundleDataClient;
|
|
16
|
+
spokePoolClients: SpokePoolClientsByChain;
|
|
17
|
+
}, maxL1TokenCountOverride?: number): Promise<PoolRebalanceRoot>;
|
|
18
|
+
export declare function _buildHistoricalPoolRebalanceRoot(latestMainnetBlock: number, mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
19
|
+
hubPoolClient: HubPoolClient;
|
|
20
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
14
21
|
}, maxL1TokenCountOverride?: number): PoolRebalanceRoot;
|
|
22
|
+
export declare function _buildOptimisticPoolRebalanceRoot(latestMainnetBlock: number, mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
23
|
+
hubPoolClient: HubPoolClient;
|
|
24
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
25
|
+
bundleDataClient: BundleDataClient;
|
|
26
|
+
spokePoolClients: SpokePoolClientsByChain;
|
|
27
|
+
}, maxL1TokenCountOverride?: number): Promise<PoolRebalanceRoot>;
|
|
28
|
+
export declare function _getMarginalRunningBalances(mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
29
|
+
hubPoolClient: HubPoolClient;
|
|
30
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
31
|
+
}): {
|
|
32
|
+
chainWithRefundsOnly: Set<number>;
|
|
33
|
+
realizedLpFees: RunningBalances;
|
|
34
|
+
runningBalances: RunningBalances;
|
|
35
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports._buildPoolRebalanceRoot = exports.getEndBlockBuffers = exports.prettyPrintV3SpokePoolEvents = exports.getRefundsFromBundle = void 0;
|
|
3
|
+
exports._getMarginalRunningBalances = exports._buildOptimisticPoolRebalanceRoot = exports._buildHistoricalPoolRebalanceRoot = exports._buildPoolRebalanceRoot = exports.getEndBlockBuffers = exports.prettyPrintV3SpokePoolEvents = exports.getRefundsFromBundle = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
6
|
var utils_1 = require("../../../utils");
|
|
@@ -62,6 +62,82 @@ function getEndBlockBuffers(chainIdListForBundleEvaluationBlockNumbers, blockRan
|
|
|
62
62
|
}
|
|
63
63
|
exports.getEndBlockBuffers = getEndBlockBuffers;
|
|
64
64
|
function _buildPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients, maxL1TokenCountOverride) {
|
|
65
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
66
|
+
return tslib_1.__generator(this, function (_a) {
|
|
67
|
+
switch (_a.label) {
|
|
68
|
+
case 0:
|
|
69
|
+
if (!(clients.hubPoolClient.hasPendingProposal() &&
|
|
70
|
+
clients.hubPoolClient.getPendingRootBundle().bundleEvaluationBlockNumbers[0] < mainnetBundleEndBlock)) return [3, 2];
|
|
71
|
+
return [4, _buildOptimisticPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients, maxL1TokenCountOverride)];
|
|
72
|
+
case 1: return [2, _a.sent()];
|
|
73
|
+
case 2: return [2, _buildHistoricalPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients, maxL1TokenCountOverride)];
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
exports._buildPoolRebalanceRoot = _buildPoolRebalanceRoot;
|
|
79
|
+
function _buildHistoricalPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients, maxL1TokenCountOverride) {
|
|
80
|
+
var _a = _getMarginalRunningBalances(mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients), runningBalances = _a.runningBalances, realizedLpFees = _a.realizedLpFees, chainWithRefundsOnly = _a.chainWithRefundsOnly;
|
|
81
|
+
(0, PoolRebalanceUtils_1.addLastRunningBalance)(latestMainnetBlock, runningBalances, clients.hubPoolClient);
|
|
82
|
+
var leaves = (0, PoolRebalanceUtils_1.constructPoolRebalanceLeaves)(mainnetBundleEndBlock, runningBalances, realizedLpFees, Array.from(chainWithRefundsOnly).filter(function (chainId) { return !Object.keys(runningBalances).includes(chainId.toString()); }), clients.configStoreClient, maxL1TokenCountOverride);
|
|
83
|
+
return {
|
|
84
|
+
runningBalances: runningBalances,
|
|
85
|
+
realizedLpFees: realizedLpFees,
|
|
86
|
+
leaves: leaves,
|
|
87
|
+
tree: (0, MerkleTreeUtils_1.buildPoolRebalanceLeafTree)(leaves),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
exports._buildHistoricalPoolRebalanceRoot = _buildHistoricalPoolRebalanceRoot;
|
|
91
|
+
function _buildOptimisticPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients, maxL1TokenCountOverride) {
|
|
92
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
93
|
+
var _a, runningBalances, realizedLpFees, chainWithRefundsOnly, mostRecentProposedRootBundle, blockRangesForChains, pendingRootBundleData, _b, leaves, tree, poolRebalanceLeaves;
|
|
94
|
+
return tslib_1.__generator(this, function (_c) {
|
|
95
|
+
switch (_c.label) {
|
|
96
|
+
case 0:
|
|
97
|
+
_a = _getMarginalRunningBalances(mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients), runningBalances = _a.runningBalances, realizedLpFees = _a.realizedLpFees, chainWithRefundsOnly = _a.chainWithRefundsOnly;
|
|
98
|
+
mostRecentProposedRootBundle = clients.hubPoolClient.getLatestProposedRootBundle();
|
|
99
|
+
blockRangesForChains = (0, utils_1.getImpliedBundleBlockRanges)(clients.hubPoolClient, clients.configStoreClient, mostRecentProposedRootBundle);
|
|
100
|
+
return [4, clients.bundleDataClient.loadData(blockRangesForChains, clients.spokePoolClients, true)];
|
|
101
|
+
case 1:
|
|
102
|
+
pendingRootBundleData = _c.sent();
|
|
103
|
+
_b = _buildHistoricalPoolRebalanceRoot(latestMainnetBlock, blockRangesForChains[0][1], pendingRootBundleData.bundleDepositsV3, pendingRootBundleData.bundleFillsV3, pendingRootBundleData.bundleSlowFillsV3, pendingRootBundleData.unexecutableSlowFills, pendingRootBundleData.expiredDepositsToRefundV3, clients, maxL1TokenCountOverride), leaves = _b.leaves, tree = _b.tree;
|
|
104
|
+
(0, assert_1.default)(tree.getHexRoot() === mostRecentProposedRootBundle.poolRebalanceRoot);
|
|
105
|
+
Object.keys(runningBalances).forEach(function (_repaymentChainId) {
|
|
106
|
+
Object.keys(runningBalances[Number(_repaymentChainId)]).forEach(function (_l1TokenAddress) {
|
|
107
|
+
var repaymentChainId = Number(_repaymentChainId);
|
|
108
|
+
var l1TokenAddress = utils_1.EvmAddress.from(_l1TokenAddress);
|
|
109
|
+
var pendingPoolRebalanceLeaf = leaves.find(function (leaf) { return leaf.chainId === repaymentChainId && leaf.l1Tokens.some(function (l1Token) { return l1Token.eq(l1TokenAddress); }); });
|
|
110
|
+
if ((0, utils_1.isDefined)(pendingPoolRebalanceLeaf)) {
|
|
111
|
+
var pendingLeafTokenIdx = pendingPoolRebalanceLeaf.l1Tokens.findIndex(function (l1Token) {
|
|
112
|
+
return l1Token.eq(l1TokenAddress);
|
|
113
|
+
});
|
|
114
|
+
(0, assert_1.default)(pendingLeafTokenIdx !== -1);
|
|
115
|
+
var pendingRunningBalanceAmount = pendingPoolRebalanceLeaf.runningBalances[pendingLeafTokenIdx];
|
|
116
|
+
if (!pendingRunningBalanceAmount.eq(utils_1.bnZero)) {
|
|
117
|
+
(0, PoolRebalanceUtils_1.updateRunningBalance)(runningBalances, repaymentChainId, _l1TokenAddress, pendingRunningBalanceAmount);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
var lastExecutedBundleRunningBalance = clients.hubPoolClient.getRunningBalanceBeforeBlockForChain(latestMainnetBlock, repaymentChainId, l1TokenAddress).runningBalance;
|
|
122
|
+
if (!lastExecutedBundleRunningBalance.eq(utils_1.bnZero)) {
|
|
123
|
+
(0, PoolRebalanceUtils_1.updateRunningBalance)(runningBalances, repaymentChainId, _l1TokenAddress, lastExecutedBundleRunningBalance);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
poolRebalanceLeaves = (0, PoolRebalanceUtils_1.constructPoolRebalanceLeaves)(mainnetBundleEndBlock, runningBalances, realizedLpFees, Array.from(chainWithRefundsOnly).filter(function (chainId) { return !Object.keys(runningBalances).includes(chainId.toString()); }), clients.configStoreClient, maxL1TokenCountOverride);
|
|
129
|
+
return [2, {
|
|
130
|
+
runningBalances: runningBalances,
|
|
131
|
+
realizedLpFees: realizedLpFees,
|
|
132
|
+
leaves: poolRebalanceLeaves,
|
|
133
|
+
tree: (0, MerkleTreeUtils_1.buildPoolRebalanceLeafTree)(poolRebalanceLeaves),
|
|
134
|
+
}];
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
exports._buildOptimisticPoolRebalanceRoot = _buildOptimisticPoolRebalanceRoot;
|
|
140
|
+
function _getMarginalRunningBalances(mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients) {
|
|
65
141
|
var runningBalances = {};
|
|
66
142
|
var realizedLpFees = {};
|
|
67
143
|
var chainWithRefundsOnly = new Set();
|
|
@@ -132,14 +208,7 @@ function _buildPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBlock, bund
|
|
|
132
208
|
});
|
|
133
209
|
});
|
|
134
210
|
});
|
|
135
|
-
|
|
136
|
-
var leaves = (0, PoolRebalanceUtils_1.constructPoolRebalanceLeaves)(mainnetBundleEndBlock, runningBalances, realizedLpFees, Array.from(chainWithRefundsOnly).filter(function (chainId) { return !Object.keys(runningBalances).includes(chainId.toString()); }), clients.configStoreClient, maxL1TokenCountOverride);
|
|
137
|
-
return {
|
|
138
|
-
runningBalances: runningBalances,
|
|
139
|
-
realizedLpFees: realizedLpFees,
|
|
140
|
-
leaves: leaves,
|
|
141
|
-
tree: (0, MerkleTreeUtils_1.buildPoolRebalanceLeafTree)(leaves),
|
|
142
|
-
};
|
|
211
|
+
return { runningBalances: runningBalances, chainWithRefundsOnly: chainWithRefundsOnly, realizedLpFees: realizedLpFees };
|
|
143
212
|
}
|
|
144
|
-
exports.
|
|
213
|
+
exports._getMarginalRunningBalances = _getMarginalRunningBalances;
|
|
145
214
|
//# sourceMappingURL=DataworkerUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataworkerUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/DataworkerUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataworkerUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/DataworkerUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,8 +74,8 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
74
74
|
transactionHash?: string | undefined;
|
|
75
75
|
transactionIndex?: number | undefined;
|
|
76
76
|
}[];
|
|
77
|
-
refunds: Record<string, BigNumber>;
|
|
78
77
|
realizedLpFees: BigNumber;
|
|
78
|
+
refunds: Record<string, BigNumber>;
|
|
79
79
|
totalRefundAmount: BigNumber;
|
|
80
80
|
}>>;
|
|
81
81
|
bundleSlowFillsV3: Record<string, Record<string, {
|
|
@@ -334,8 +334,8 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
334
334
|
transactionHash?: string | undefined;
|
|
335
335
|
transactionIndex?: number | undefined;
|
|
336
336
|
}[];
|
|
337
|
-
refunds: Record<string, BigNumber>;
|
|
338
337
|
realizedLpFees: BigNumber;
|
|
338
|
+
refunds: Record<string, BigNumber>;
|
|
339
339
|
totalRefundAmount: BigNumber;
|
|
340
340
|
}>>, null>;
|
|
341
341
|
}>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { BundleDepositsV3, BundleExcessSlowFills, BundleFillsV3, BundleSlowFills, CombinedRefunds, ExpiredDepositsToRefundV3 } from "../../../interfaces";
|
|
1
|
+
import { BundleDepositsV3, BundleExcessSlowFills, BundleFillsV3, BundleSlowFills, CombinedRefunds, ExpiredDepositsToRefundV3, RunningBalances, SpokePoolClientsByChain } from "../../../interfaces";
|
|
2
2
|
import { AnyObject } from "../../../utils";
|
|
3
3
|
import { PoolRebalanceRoot } from "./PoolRebalanceUtils";
|
|
4
4
|
import { AcrossConfigStoreClient } from "../../AcrossConfigStoreClient";
|
|
5
5
|
import { HubPoolClient } from "../../HubPoolClient";
|
|
6
|
+
import { BundleDataClient } from "../../BundleDataClient";
|
|
6
7
|
export declare function getRefundsFromBundle(bundleFillsV3: BundleFillsV3, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3): CombinedRefunds;
|
|
7
8
|
export declare function prettyPrintV3SpokePoolEvents(bundleDepositsV3: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, unexecutableSlowFills: BundleExcessSlowFills): AnyObject;
|
|
8
9
|
export declare function getEndBlockBuffers(chainIdListForBundleEvaluationBlockNumbers: number[], blockRangeEndBlockBuffer: {
|
|
@@ -11,4 +12,24 @@ export declare function getEndBlockBuffers(chainIdListForBundleEvaluationBlockNu
|
|
|
11
12
|
export declare function _buildPoolRebalanceRoot(latestMainnetBlock: number, mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
12
13
|
hubPoolClient: HubPoolClient;
|
|
13
14
|
configStoreClient: AcrossConfigStoreClient;
|
|
15
|
+
bundleDataClient: BundleDataClient;
|
|
16
|
+
spokePoolClients: SpokePoolClientsByChain;
|
|
17
|
+
}, maxL1TokenCountOverride?: number): Promise<PoolRebalanceRoot>;
|
|
18
|
+
export declare function _buildHistoricalPoolRebalanceRoot(latestMainnetBlock: number, mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
19
|
+
hubPoolClient: HubPoolClient;
|
|
20
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
14
21
|
}, maxL1TokenCountOverride?: number): PoolRebalanceRoot;
|
|
22
|
+
export declare function _buildOptimisticPoolRebalanceRoot(latestMainnetBlock: number, mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
23
|
+
hubPoolClient: HubPoolClient;
|
|
24
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
25
|
+
bundleDataClient: BundleDataClient;
|
|
26
|
+
spokePoolClients: SpokePoolClientsByChain;
|
|
27
|
+
}, maxL1TokenCountOverride?: number): Promise<PoolRebalanceRoot>;
|
|
28
|
+
export declare function _getMarginalRunningBalances(mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
29
|
+
hubPoolClient: HubPoolClient;
|
|
30
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
31
|
+
}): {
|
|
32
|
+
chainWithRefundsOnly: Set<number>;
|
|
33
|
+
realizedLpFees: RunningBalances;
|
|
34
|
+
runningBalances: RunningBalances;
|
|
35
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
1
|
+
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
2
|
// Create a combined `refunds` object containing refunds for V2 + V3 fills
|
|
3
3
|
import assert from "assert";
|
|
4
|
-
import { bnZero, fixedPointAdjustment, count2DDictionaryValues, count3DDictionaryValues, toAddressType, } from "../../../utils";
|
|
4
|
+
import { bnZero, fixedPointAdjustment, count2DDictionaryValues, count3DDictionaryValues, toAddressType, getImpliedBundleBlockRanges, isDefined, EvmAddress, } from "../../../utils";
|
|
5
5
|
import { addLastRunningBalance, constructPoolRebalanceLeaves, updateRunningBalance, updateRunningBalanceForDeposit, } from "./PoolRebalanceUtils";
|
|
6
6
|
import { buildPoolRebalanceLeafTree } from "./MerkleTreeUtils";
|
|
7
7
|
// and expired deposits.
|
|
@@ -73,7 +73,136 @@ export function getEndBlockBuffers(chainIdListForBundleEvaluationBlockNumbers, b
|
|
|
73
73
|
// filled during the challenge period.
|
|
74
74
|
return chainIdListForBundleEvaluationBlockNumbers.map(function (chainId) { var _a; return (_a = blockRangeEndBlockBuffer[chainId]) !== null && _a !== void 0 ? _a : 0; });
|
|
75
75
|
}
|
|
76
|
+
/*
|
|
77
|
+
* @notice Constructs a new pool rebalance root given the input bundle data.
|
|
78
|
+
* @dev It is assumed that the input bundle data corresponds to the block ranges of the input mainnetBundleEndBlock.
|
|
79
|
+
* If the mainnetBundleEndBlock does not correspond to any historical or pending root bundle, then the output pool rebalance
|
|
80
|
+
* root will be constructed under the assumption that the pending root bundle is valid and passes liveness.
|
|
81
|
+
* @param latestMainnetBlock The latest mainnet block number.
|
|
82
|
+
* @param mainnetBundleEndBlock The end block number of the block range corresponding to the bundle data.
|
|
83
|
+
* @param bundleV3Deposits Deposit bundle data for the implied block range given by the mainnetBundleEndBlock.
|
|
84
|
+
* @param bundleFillsV3 Fill bundle data.
|
|
85
|
+
* @param bundleSlowFillsV3 Slow fill bundle data.
|
|
86
|
+
* @param unexecutableSlowFills Expired slow fill bundle data.
|
|
87
|
+
* @param expiredDepositsToRefundV3 Expired deposit bundle data.
|
|
88
|
+
* @param clients Clients required to construct a new pool rebalance root.
|
|
89
|
+
* @maxL1TokenCountOverride Optional parameter to cap the number of tokens in a single pool rebalance leaf.
|
|
90
|
+
*/
|
|
76
91
|
export function _buildPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients, maxL1TokenCountOverride) {
|
|
92
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
93
|
+
return __generator(this, function (_a) {
|
|
94
|
+
switch (_a.label) {
|
|
95
|
+
case 0:
|
|
96
|
+
if (!(clients.hubPoolClient.hasPendingProposal() &&
|
|
97
|
+
clients.hubPoolClient.getPendingRootBundle().bundleEvaluationBlockNumbers[0] < mainnetBundleEndBlock)) return [3 /*break*/, 2];
|
|
98
|
+
return [4 /*yield*/, _buildOptimisticPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients, maxL1TokenCountOverride)];
|
|
99
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
100
|
+
case 2:
|
|
101
|
+
// Otherwise, we can synchronously reconstruct a historical pool rebalance root from the input data.
|
|
102
|
+
return [2 /*return*/, _buildHistoricalPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients, maxL1TokenCountOverride)];
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/*
|
|
108
|
+
* @notice Constructs a new pool rebalance root given historical bundle data.
|
|
109
|
+
* @param latestMainnetBlock The latest mainnet block number.
|
|
110
|
+
* @param mainnetBundleEndBlock The end block number of the block range corresponding to the bundle data.
|
|
111
|
+
* @param bundleV3Deposits Deposit bundle data for the implied block range given by the mainnetBundleEndBlock.
|
|
112
|
+
* @param bundleFillsV3 Fill bundle data.
|
|
113
|
+
* @param bundleSlowFillsV3 Slow fill bundle data.
|
|
114
|
+
* @param unexecutableSlowFills Expired slow fill bundle data.
|
|
115
|
+
* @param expiredDepositsToRefundV3 Expired deposit bundle data.
|
|
116
|
+
* @param clients Clients required to construct a new pool rebalance root.
|
|
117
|
+
* @maxL1TokenCountOverride Optional parameter to cap the number of tokens in a single pool rebalance leaf.
|
|
118
|
+
*/
|
|
119
|
+
export function _buildHistoricalPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients, maxL1TokenCountOverride) {
|
|
120
|
+
var _a = _getMarginalRunningBalances(mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients), runningBalances = _a.runningBalances, realizedLpFees = _a.realizedLpFees, chainWithRefundsOnly = _a.chainWithRefundsOnly;
|
|
121
|
+
addLastRunningBalance(latestMainnetBlock, runningBalances, clients.hubPoolClient);
|
|
122
|
+
var leaves = constructPoolRebalanceLeaves(mainnetBundleEndBlock, runningBalances, realizedLpFees, Array.from(chainWithRefundsOnly).filter(function (chainId) { return !Object.keys(runningBalances).includes(chainId.toString()); }), clients.configStoreClient, maxL1TokenCountOverride);
|
|
123
|
+
return {
|
|
124
|
+
runningBalances: runningBalances,
|
|
125
|
+
realizedLpFees: realizedLpFees,
|
|
126
|
+
leaves: leaves,
|
|
127
|
+
tree: buildPoolRebalanceLeafTree(leaves),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/*
|
|
131
|
+
* @notice Constructs a new pool rebalance root given the input bundle data. This function assumes there is a pending root bundle which will eventually clear liveness.
|
|
132
|
+
* @param latestMainnetBlock The latest mainnet block number.
|
|
133
|
+
* @param mainnetBundleEndBlock The end block number of the block range corresponding to the bundle data.
|
|
134
|
+
* @param bundleV3Deposits Deposit bundle data for the implied block range given by the mainnetBundleEndBlock.
|
|
135
|
+
* @param bundleFillsV3 Fill bundle data.
|
|
136
|
+
* @param bundleSlowFillsV3 Slow fill bundle data.
|
|
137
|
+
* @param unexecutableSlowFills Expired slow fill bundle data.
|
|
138
|
+
* @param expiredDepositsToRefundV3 Expired deposit bundle data.
|
|
139
|
+
* @param clients Clients required to construct a new pool rebalance root.
|
|
140
|
+
* @maxL1TokenCountOverride Optional parameter to cap the number of tokens in a single pool rebalance leaf.
|
|
141
|
+
*/
|
|
142
|
+
export function _buildOptimisticPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients, maxL1TokenCountOverride) {
|
|
143
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
144
|
+
var _a, runningBalances, realizedLpFees, chainWithRefundsOnly, mostRecentProposedRootBundle, blockRangesForChains, pendingRootBundleData, _b, leaves, tree, poolRebalanceLeaves;
|
|
145
|
+
return __generator(this, function (_c) {
|
|
146
|
+
switch (_c.label) {
|
|
147
|
+
case 0:
|
|
148
|
+
_a = _getMarginalRunningBalances(mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients), runningBalances = _a.runningBalances, realizedLpFees = _a.realizedLpFees, chainWithRefundsOnly = _a.chainWithRefundsOnly;
|
|
149
|
+
mostRecentProposedRootBundle = clients.hubPoolClient.getLatestProposedRootBundle();
|
|
150
|
+
blockRangesForChains = getImpliedBundleBlockRanges(clients.hubPoolClient, clients.configStoreClient, mostRecentProposedRootBundle);
|
|
151
|
+
return [4 /*yield*/, clients.bundleDataClient.loadData(blockRangesForChains, clients.spokePoolClients, true)];
|
|
152
|
+
case 1:
|
|
153
|
+
pendingRootBundleData = _c.sent();
|
|
154
|
+
_b = _buildHistoricalPoolRebalanceRoot(latestMainnetBlock, blockRangesForChains[0][1], pendingRootBundleData.bundleDepositsV3, pendingRootBundleData.bundleFillsV3, pendingRootBundleData.bundleSlowFillsV3, pendingRootBundleData.unexecutableSlowFills, pendingRootBundleData.expiredDepositsToRefundV3, clients, maxL1TokenCountOverride), leaves = _b.leaves, tree = _b.tree;
|
|
155
|
+
// Assert that the rebuilt pool rebalance root matches the pending root bundle's value. If it does not, then we likely misconstructed the pending root bundle and should throw.
|
|
156
|
+
assert(tree.getHexRoot() === mostRecentProposedRootBundle.poolRebalanceRoot);
|
|
157
|
+
// Only add marginal pending running balances if there is already an entry in `runningBalances`. If there is no entry in `runningBalances`, then
|
|
158
|
+
// The running balance for this entry was unchanged since the last root bundle.
|
|
159
|
+
Object.keys(runningBalances).forEach(function (_repaymentChainId) {
|
|
160
|
+
Object.keys(runningBalances[Number(_repaymentChainId)]).forEach(function (_l1TokenAddress) {
|
|
161
|
+
var repaymentChainId = Number(_repaymentChainId);
|
|
162
|
+
var l1TokenAddress = EvmAddress.from(_l1TokenAddress);
|
|
163
|
+
var pendingPoolRebalanceLeaf = leaves.find(function (leaf) { return leaf.chainId === repaymentChainId && leaf.l1Tokens.some(function (l1Token) { return l1Token.eq(l1TokenAddress); }); });
|
|
164
|
+
// If the pending pool rebalance root has running balances defined, then add it to `runningBalances`.
|
|
165
|
+
if (isDefined(pendingPoolRebalanceLeaf)) {
|
|
166
|
+
var pendingLeafTokenIdx = pendingPoolRebalanceLeaf.l1Tokens.findIndex(function (l1Token) {
|
|
167
|
+
return l1Token.eq(l1TokenAddress);
|
|
168
|
+
});
|
|
169
|
+
assert(pendingLeafTokenIdx !== -1);
|
|
170
|
+
var pendingRunningBalanceAmount = pendingPoolRebalanceLeaf.runningBalances[pendingLeafTokenIdx];
|
|
171
|
+
if (!pendingRunningBalanceAmount.eq(bnZero)) {
|
|
172
|
+
updateRunningBalance(runningBalances, repaymentChainId, _l1TokenAddress, pendingRunningBalanceAmount);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// Otherwise, add the last running balance for this token.
|
|
177
|
+
var lastExecutedBundleRunningBalance = clients.hubPoolClient.getRunningBalanceBeforeBlockForChain(latestMainnetBlock, repaymentChainId, l1TokenAddress).runningBalance;
|
|
178
|
+
if (!lastExecutedBundleRunningBalance.eq(bnZero)) {
|
|
179
|
+
updateRunningBalance(runningBalances, repaymentChainId, _l1TokenAddress, lastExecutedBundleRunningBalance);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
poolRebalanceLeaves = constructPoolRebalanceLeaves(mainnetBundleEndBlock, runningBalances, realizedLpFees, Array.from(chainWithRefundsOnly).filter(function (chainId) { return !Object.keys(runningBalances).includes(chainId.toString()); }), clients.configStoreClient, maxL1TokenCountOverride);
|
|
185
|
+
return [2 /*return*/, {
|
|
186
|
+
runningBalances: runningBalances,
|
|
187
|
+
realizedLpFees: realizedLpFees,
|
|
188
|
+
leaves: poolRebalanceLeaves,
|
|
189
|
+
tree: buildPoolRebalanceLeafTree(poolRebalanceLeaves),
|
|
190
|
+
}];
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
/*
|
|
196
|
+
* @notice Gets the running balance amounts derived from the input bundle data.
|
|
197
|
+
* @param mainnetBundleEndBlock The end block number of the block range corresponding to the bundle data.
|
|
198
|
+
* @param bundleV3Deposits Deposit bundle data for the implied block range given by the mainnetBundleEndBlock.
|
|
199
|
+
* @param bundleFillsV3 Fill bundle data.
|
|
200
|
+
* @param bundleSlowFillsV3 Slow fill bundle data.
|
|
201
|
+
* @param unexecutableSlowFills Expired slow fill bundle data.
|
|
202
|
+
* @param expiredDepositsToRefundV3 Expired deposit bundle data.
|
|
203
|
+
* @param clients Clients required to construct a new pool rebalance root.
|
|
204
|
+
*/
|
|
205
|
+
export function _getMarginalRunningBalances(mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients) {
|
|
77
206
|
// Running balances are the amount of tokens that we need to send to each SpokePool to pay for all instant and
|
|
78
207
|
// slow relay refunds. They are decreased by the amount of funds already held by the SpokePool. Balances are keyed
|
|
79
208
|
// by the SpokePool's network and L1 token equivalent of the L2 token to refund.
|
|
@@ -190,15 +319,6 @@ export function _buildPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBloc
|
|
|
190
319
|
});
|
|
191
320
|
});
|
|
192
321
|
});
|
|
193
|
-
|
|
194
|
-
// combination if found.
|
|
195
|
-
addLastRunningBalance(latestMainnetBlock, runningBalances, clients.hubPoolClient);
|
|
196
|
-
var leaves = constructPoolRebalanceLeaves(mainnetBundleEndBlock, runningBalances, realizedLpFees, Array.from(chainWithRefundsOnly).filter(function (chainId) { return !Object.keys(runningBalances).includes(chainId.toString()); }), clients.configStoreClient, maxL1TokenCountOverride);
|
|
197
|
-
return {
|
|
198
|
-
runningBalances: runningBalances,
|
|
199
|
-
realizedLpFees: realizedLpFees,
|
|
200
|
-
leaves: leaves,
|
|
201
|
-
tree: buildPoolRebalanceLeafTree(leaves),
|
|
202
|
-
};
|
|
322
|
+
return { runningBalances: runningBalances, chainWithRefundsOnly: chainWithRefundsOnly, realizedLpFees: realizedLpFees };
|
|
203
323
|
}
|
|
204
324
|
//# sourceMappingURL=DataworkerUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataworkerUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/DataworkerUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataworkerUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/DataworkerUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,8 +74,8 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
74
74
|
transactionHash?: string | undefined;
|
|
75
75
|
transactionIndex?: number | undefined;
|
|
76
76
|
}[];
|
|
77
|
-
refunds: Record<string, BigNumber>;
|
|
78
77
|
realizedLpFees: BigNumber;
|
|
78
|
+
refunds: Record<string, BigNumber>;
|
|
79
79
|
totalRefundAmount: BigNumber;
|
|
80
80
|
}>>;
|
|
81
81
|
bundleSlowFillsV3: Record<string, Record<string, {
|
|
@@ -334,8 +334,8 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
334
334
|
transactionHash?: string | undefined;
|
|
335
335
|
transactionIndex?: number | undefined;
|
|
336
336
|
}[];
|
|
337
|
-
refunds: Record<string, BigNumber>;
|
|
338
337
|
realizedLpFees: BigNumber;
|
|
338
|
+
refunds: Record<string, BigNumber>;
|
|
339
339
|
totalRefundAmount: BigNumber;
|
|
340
340
|
}>>, null>;
|
|
341
341
|
}>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { BundleDepositsV3, BundleExcessSlowFills, BundleFillsV3, BundleSlowFills, CombinedRefunds, ExpiredDepositsToRefundV3 } from "../../../interfaces";
|
|
1
|
+
import { BundleDepositsV3, BundleExcessSlowFills, BundleFillsV3, BundleSlowFills, CombinedRefunds, ExpiredDepositsToRefundV3, RunningBalances, SpokePoolClientsByChain } from "../../../interfaces";
|
|
2
2
|
import { AnyObject } from "../../../utils";
|
|
3
3
|
import { PoolRebalanceRoot } from "./PoolRebalanceUtils";
|
|
4
4
|
import { AcrossConfigStoreClient } from "../../AcrossConfigStoreClient";
|
|
5
5
|
import { HubPoolClient } from "../../HubPoolClient";
|
|
6
|
+
import { BundleDataClient } from "../../BundleDataClient";
|
|
6
7
|
export declare function getRefundsFromBundle(bundleFillsV3: BundleFillsV3, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3): CombinedRefunds;
|
|
7
8
|
export declare function prettyPrintV3SpokePoolEvents(bundleDepositsV3: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, unexecutableSlowFills: BundleExcessSlowFills): AnyObject;
|
|
8
9
|
export declare function getEndBlockBuffers(chainIdListForBundleEvaluationBlockNumbers: number[], blockRangeEndBlockBuffer: {
|
|
@@ -11,5 +12,25 @@ export declare function getEndBlockBuffers(chainIdListForBundleEvaluationBlockNu
|
|
|
11
12
|
export declare function _buildPoolRebalanceRoot(latestMainnetBlock: number, mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
12
13
|
hubPoolClient: HubPoolClient;
|
|
13
14
|
configStoreClient: AcrossConfigStoreClient;
|
|
15
|
+
bundleDataClient: BundleDataClient;
|
|
16
|
+
spokePoolClients: SpokePoolClientsByChain;
|
|
17
|
+
}, maxL1TokenCountOverride?: number): Promise<PoolRebalanceRoot>;
|
|
18
|
+
export declare function _buildHistoricalPoolRebalanceRoot(latestMainnetBlock: number, mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
19
|
+
hubPoolClient: HubPoolClient;
|
|
20
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
14
21
|
}, maxL1TokenCountOverride?: number): PoolRebalanceRoot;
|
|
22
|
+
export declare function _buildOptimisticPoolRebalanceRoot(latestMainnetBlock: number, mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
23
|
+
hubPoolClient: HubPoolClient;
|
|
24
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
25
|
+
bundleDataClient: BundleDataClient;
|
|
26
|
+
spokePoolClients: SpokePoolClientsByChain;
|
|
27
|
+
}, maxL1TokenCountOverride?: number): Promise<PoolRebalanceRoot>;
|
|
28
|
+
export declare function _getMarginalRunningBalances(mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
29
|
+
hubPoolClient: HubPoolClient;
|
|
30
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
31
|
+
}): {
|
|
32
|
+
chainWithRefundsOnly: Set<number>;
|
|
33
|
+
realizedLpFees: RunningBalances;
|
|
34
|
+
runningBalances: RunningBalances;
|
|
35
|
+
};
|
|
15
36
|
//# sourceMappingURL=DataworkerUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataworkerUtils.d.ts","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/DataworkerUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,
|
|
1
|
+
{"version":3,"file":"DataworkerUtils.d.ts","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/DataworkerUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,8 +74,8 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
74
74
|
transactionHash?: string | undefined;
|
|
75
75
|
transactionIndex?: number | undefined;
|
|
76
76
|
}[];
|
|
77
|
-
refunds: Record<string, BigNumber>;
|
|
78
77
|
realizedLpFees: BigNumber;
|
|
78
|
+
refunds: Record<string, BigNumber>;
|
|
79
79
|
totalRefundAmount: BigNumber;
|
|
80
80
|
}>>;
|
|
81
81
|
bundleSlowFillsV3: Record<string, Record<string, {
|
|
@@ -334,8 +334,8 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
334
334
|
transactionHash?: string | undefined;
|
|
335
335
|
transactionIndex?: number | undefined;
|
|
336
336
|
}[];
|
|
337
|
-
refunds: Record<string, BigNumber>;
|
|
338
337
|
realizedLpFees: BigNumber;
|
|
338
|
+
refunds: Record<string, BigNumber>;
|
|
339
339
|
totalRefundAmount: BigNumber;
|
|
340
340
|
}>>, null>;
|
|
341
341
|
}>;
|
package/package.json
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
PoolRebalanceLeaf,
|
|
11
11
|
Refund,
|
|
12
12
|
RunningBalances,
|
|
13
|
+
SpokePoolClientsByChain,
|
|
13
14
|
} from "../../../interfaces";
|
|
14
15
|
import {
|
|
15
16
|
bnZero,
|
|
@@ -18,6 +19,9 @@ import {
|
|
|
18
19
|
count2DDictionaryValues,
|
|
19
20
|
count3DDictionaryValues,
|
|
20
21
|
toAddressType,
|
|
22
|
+
getImpliedBundleBlockRanges,
|
|
23
|
+
isDefined,
|
|
24
|
+
EvmAddress,
|
|
21
25
|
} from "../../../utils";
|
|
22
26
|
import {
|
|
23
27
|
addLastRunningBalance,
|
|
@@ -28,6 +32,7 @@ import {
|
|
|
28
32
|
} from "./PoolRebalanceUtils";
|
|
29
33
|
import { AcrossConfigStoreClient } from "../../AcrossConfigStoreClient";
|
|
30
34
|
import { HubPoolClient } from "../../HubPoolClient";
|
|
35
|
+
import { BundleDataClient } from "../../BundleDataClient";
|
|
31
36
|
import { buildPoolRebalanceLeafTree } from "./MerkleTreeUtils";
|
|
32
37
|
|
|
33
38
|
// and expired deposits.
|
|
@@ -114,7 +119,22 @@ export function getEndBlockBuffers(
|
|
|
114
119
|
return chainIdListForBundleEvaluationBlockNumbers.map((chainId: number) => blockRangeEndBlockBuffer[chainId] ?? 0);
|
|
115
120
|
}
|
|
116
121
|
|
|
117
|
-
|
|
122
|
+
/*
|
|
123
|
+
* @notice Constructs a new pool rebalance root given the input bundle data.
|
|
124
|
+
* @dev It is assumed that the input bundle data corresponds to the block ranges of the input mainnetBundleEndBlock.
|
|
125
|
+
* If the mainnetBundleEndBlock does not correspond to any historical or pending root bundle, then the output pool rebalance
|
|
126
|
+
* root will be constructed under the assumption that the pending root bundle is valid and passes liveness.
|
|
127
|
+
* @param latestMainnetBlock The latest mainnet block number.
|
|
128
|
+
* @param mainnetBundleEndBlock The end block number of the block range corresponding to the bundle data.
|
|
129
|
+
* @param bundleV3Deposits Deposit bundle data for the implied block range given by the mainnetBundleEndBlock.
|
|
130
|
+
* @param bundleFillsV3 Fill bundle data.
|
|
131
|
+
* @param bundleSlowFillsV3 Slow fill bundle data.
|
|
132
|
+
* @param unexecutableSlowFills Expired slow fill bundle data.
|
|
133
|
+
* @param expiredDepositsToRefundV3 Expired deposit bundle data.
|
|
134
|
+
* @param clients Clients required to construct a new pool rebalance root.
|
|
135
|
+
* @maxL1TokenCountOverride Optional parameter to cap the number of tokens in a single pool rebalance leaf.
|
|
136
|
+
*/
|
|
137
|
+
export async function _buildPoolRebalanceRoot(
|
|
118
138
|
latestMainnetBlock: number,
|
|
119
139
|
mainnetBundleEndBlock: number,
|
|
120
140
|
bundleV3Deposits: BundleDepositsV3,
|
|
@@ -122,9 +142,235 @@ export function _buildPoolRebalanceRoot(
|
|
|
122
142
|
bundleSlowFillsV3: BundleSlowFills,
|
|
123
143
|
unexecutableSlowFills: BundleExcessSlowFills,
|
|
124
144
|
expiredDepositsToRefundV3: ExpiredDepositsToRefundV3,
|
|
125
|
-
clients: {
|
|
145
|
+
clients: {
|
|
146
|
+
hubPoolClient: HubPoolClient;
|
|
147
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
148
|
+
bundleDataClient: BundleDataClient;
|
|
149
|
+
spokePoolClients: SpokePoolClientsByChain;
|
|
150
|
+
},
|
|
151
|
+
maxL1TokenCountOverride?: number
|
|
152
|
+
): Promise<PoolRebalanceRoot> {
|
|
153
|
+
// If there is a pending proposal and the mainnet bundle end block is greater than the pending proposal's mainnet end block, then this pool rebalance root is being built during the liveness
|
|
154
|
+
// of a different root bundle, so running balance calculations will be slightly different.
|
|
155
|
+
if (
|
|
156
|
+
clients.hubPoolClient.hasPendingProposal() &&
|
|
157
|
+
clients.hubPoolClient.getPendingRootBundle()!.bundleEvaluationBlockNumbers[0] < mainnetBundleEndBlock
|
|
158
|
+
) {
|
|
159
|
+
return await _buildOptimisticPoolRebalanceRoot(
|
|
160
|
+
latestMainnetBlock,
|
|
161
|
+
mainnetBundleEndBlock,
|
|
162
|
+
bundleV3Deposits,
|
|
163
|
+
bundleFillsV3,
|
|
164
|
+
bundleSlowFillsV3,
|
|
165
|
+
unexecutableSlowFills,
|
|
166
|
+
expiredDepositsToRefundV3,
|
|
167
|
+
clients,
|
|
168
|
+
maxL1TokenCountOverride
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
// Otherwise, we can synchronously reconstruct a historical pool rebalance root from the input data.
|
|
172
|
+
return _buildHistoricalPoolRebalanceRoot(
|
|
173
|
+
latestMainnetBlock,
|
|
174
|
+
mainnetBundleEndBlock,
|
|
175
|
+
bundleV3Deposits,
|
|
176
|
+
bundleFillsV3,
|
|
177
|
+
bundleSlowFillsV3,
|
|
178
|
+
unexecutableSlowFills,
|
|
179
|
+
expiredDepositsToRefundV3,
|
|
180
|
+
clients,
|
|
181
|
+
maxL1TokenCountOverride
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/*
|
|
186
|
+
* @notice Constructs a new pool rebalance root given historical bundle data.
|
|
187
|
+
* @param latestMainnetBlock The latest mainnet block number.
|
|
188
|
+
* @param mainnetBundleEndBlock The end block number of the block range corresponding to the bundle data.
|
|
189
|
+
* @param bundleV3Deposits Deposit bundle data for the implied block range given by the mainnetBundleEndBlock.
|
|
190
|
+
* @param bundleFillsV3 Fill bundle data.
|
|
191
|
+
* @param bundleSlowFillsV3 Slow fill bundle data.
|
|
192
|
+
* @param unexecutableSlowFills Expired slow fill bundle data.
|
|
193
|
+
* @param expiredDepositsToRefundV3 Expired deposit bundle data.
|
|
194
|
+
* @param clients Clients required to construct a new pool rebalance root.
|
|
195
|
+
* @maxL1TokenCountOverride Optional parameter to cap the number of tokens in a single pool rebalance leaf.
|
|
196
|
+
*/
|
|
197
|
+
export function _buildHistoricalPoolRebalanceRoot(
|
|
198
|
+
latestMainnetBlock: number,
|
|
199
|
+
mainnetBundleEndBlock: number,
|
|
200
|
+
bundleV3Deposits: BundleDepositsV3,
|
|
201
|
+
bundleFillsV3: BundleFillsV3,
|
|
202
|
+
bundleSlowFillsV3: BundleSlowFills,
|
|
203
|
+
unexecutableSlowFills: BundleExcessSlowFills,
|
|
204
|
+
expiredDepositsToRefundV3: ExpiredDepositsToRefundV3,
|
|
205
|
+
clients: {
|
|
206
|
+
hubPoolClient: HubPoolClient;
|
|
207
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
208
|
+
},
|
|
126
209
|
maxL1TokenCountOverride?: number
|
|
127
210
|
): PoolRebalanceRoot {
|
|
211
|
+
const { runningBalances, realizedLpFees, chainWithRefundsOnly } = _getMarginalRunningBalances(
|
|
212
|
+
mainnetBundleEndBlock,
|
|
213
|
+
bundleV3Deposits,
|
|
214
|
+
bundleFillsV3,
|
|
215
|
+
bundleSlowFillsV3,
|
|
216
|
+
unexecutableSlowFills,
|
|
217
|
+
expiredDepositsToRefundV3,
|
|
218
|
+
clients
|
|
219
|
+
);
|
|
220
|
+
addLastRunningBalance(latestMainnetBlock, runningBalances, clients.hubPoolClient);
|
|
221
|
+
const leaves: PoolRebalanceLeaf[] = constructPoolRebalanceLeaves(
|
|
222
|
+
mainnetBundleEndBlock,
|
|
223
|
+
runningBalances,
|
|
224
|
+
realizedLpFees,
|
|
225
|
+
Array.from(chainWithRefundsOnly).filter((chainId) => !Object.keys(runningBalances).includes(chainId.toString())),
|
|
226
|
+
clients.configStoreClient,
|
|
227
|
+
maxL1TokenCountOverride
|
|
228
|
+
);
|
|
229
|
+
return {
|
|
230
|
+
runningBalances,
|
|
231
|
+
realizedLpFees,
|
|
232
|
+
leaves,
|
|
233
|
+
tree: buildPoolRebalanceLeafTree(leaves),
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/*
|
|
238
|
+
* @notice Constructs a new pool rebalance root given the input bundle data. This function assumes there is a pending root bundle which will eventually clear liveness.
|
|
239
|
+
* @param latestMainnetBlock The latest mainnet block number.
|
|
240
|
+
* @param mainnetBundleEndBlock The end block number of the block range corresponding to the bundle data.
|
|
241
|
+
* @param bundleV3Deposits Deposit bundle data for the implied block range given by the mainnetBundleEndBlock.
|
|
242
|
+
* @param bundleFillsV3 Fill bundle data.
|
|
243
|
+
* @param bundleSlowFillsV3 Slow fill bundle data.
|
|
244
|
+
* @param unexecutableSlowFills Expired slow fill bundle data.
|
|
245
|
+
* @param expiredDepositsToRefundV3 Expired deposit bundle data.
|
|
246
|
+
* @param clients Clients required to construct a new pool rebalance root.
|
|
247
|
+
* @maxL1TokenCountOverride Optional parameter to cap the number of tokens in a single pool rebalance leaf.
|
|
248
|
+
*/
|
|
249
|
+
export async function _buildOptimisticPoolRebalanceRoot(
|
|
250
|
+
latestMainnetBlock: number,
|
|
251
|
+
mainnetBundleEndBlock: number,
|
|
252
|
+
bundleV3Deposits: BundleDepositsV3,
|
|
253
|
+
bundleFillsV3: BundleFillsV3,
|
|
254
|
+
bundleSlowFillsV3: BundleSlowFills,
|
|
255
|
+
unexecutableSlowFills: BundleExcessSlowFills,
|
|
256
|
+
expiredDepositsToRefundV3: ExpiredDepositsToRefundV3,
|
|
257
|
+
clients: {
|
|
258
|
+
hubPoolClient: HubPoolClient;
|
|
259
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
260
|
+
bundleDataClient: BundleDataClient;
|
|
261
|
+
spokePoolClients: SpokePoolClientsByChain;
|
|
262
|
+
},
|
|
263
|
+
maxL1TokenCountOverride?: number
|
|
264
|
+
): Promise<PoolRebalanceRoot> {
|
|
265
|
+
const { runningBalances, realizedLpFees, chainWithRefundsOnly } = _getMarginalRunningBalances(
|
|
266
|
+
mainnetBundleEndBlock,
|
|
267
|
+
bundleV3Deposits,
|
|
268
|
+
bundleFillsV3,
|
|
269
|
+
bundleSlowFillsV3,
|
|
270
|
+
unexecutableSlowFills,
|
|
271
|
+
expiredDepositsToRefundV3,
|
|
272
|
+
clients
|
|
273
|
+
);
|
|
274
|
+
// Get the pool rebalance root for the pending bundle so that we may account for its calculated running balances.
|
|
275
|
+
// @dev It is safe to index the hub pool client's proposed root bundles here since there is guaranteed to be a pending proposal in this code block.
|
|
276
|
+
const mostRecentProposedRootBundle = clients.hubPoolClient.getLatestProposedRootBundle();
|
|
277
|
+
const blockRangesForChains = getImpliedBundleBlockRanges(
|
|
278
|
+
clients.hubPoolClient,
|
|
279
|
+
clients.configStoreClient,
|
|
280
|
+
mostRecentProposedRootBundle
|
|
281
|
+
);
|
|
282
|
+
// We are loading data from a pending root bundle which should be well into liveness, so we want to use arweave if possible.
|
|
283
|
+
const pendingRootBundleData = await clients.bundleDataClient.loadData(
|
|
284
|
+
blockRangesForChains,
|
|
285
|
+
clients.spokePoolClients,
|
|
286
|
+
true
|
|
287
|
+
);
|
|
288
|
+
// Build the pool rebalance root for the pending root bundle.
|
|
289
|
+
const { leaves, tree } = _buildHistoricalPoolRebalanceRoot(
|
|
290
|
+
latestMainnetBlock,
|
|
291
|
+
blockRangesForChains[0][1],
|
|
292
|
+
pendingRootBundleData.bundleDepositsV3,
|
|
293
|
+
pendingRootBundleData.bundleFillsV3,
|
|
294
|
+
pendingRootBundleData.bundleSlowFillsV3,
|
|
295
|
+
pendingRootBundleData.unexecutableSlowFills,
|
|
296
|
+
pendingRootBundleData.expiredDepositsToRefundV3,
|
|
297
|
+
clients,
|
|
298
|
+
maxL1TokenCountOverride
|
|
299
|
+
);
|
|
300
|
+
// Assert that the rebuilt pool rebalance root matches the pending root bundle's value. If it does not, then we likely misconstructed the pending root bundle and should throw.
|
|
301
|
+
assert(tree.getHexRoot() === mostRecentProposedRootBundle.poolRebalanceRoot);
|
|
302
|
+
|
|
303
|
+
// Only add marginal pending running balances if there is already an entry in `runningBalances`. If there is no entry in `runningBalances`, then
|
|
304
|
+
// The running balance for this entry was unchanged since the last root bundle.
|
|
305
|
+
Object.keys(runningBalances).forEach((_repaymentChainId) => {
|
|
306
|
+
Object.keys(runningBalances[Number(_repaymentChainId)]).forEach((_l1TokenAddress) => {
|
|
307
|
+
const repaymentChainId = Number(_repaymentChainId);
|
|
308
|
+
const l1TokenAddress = EvmAddress.from(_l1TokenAddress);
|
|
309
|
+
const pendingPoolRebalanceLeaf = leaves.find(
|
|
310
|
+
(leaf) => leaf.chainId === repaymentChainId && leaf.l1Tokens.some((l1Token) => l1Token.eq(l1TokenAddress))
|
|
311
|
+
);
|
|
312
|
+
// If the pending pool rebalance root has running balances defined, then add it to `runningBalances`.
|
|
313
|
+
if (isDefined(pendingPoolRebalanceLeaf)) {
|
|
314
|
+
const pendingLeafTokenIdx = pendingPoolRebalanceLeaf.l1Tokens.findIndex((l1Token) =>
|
|
315
|
+
l1Token.eq(l1TokenAddress)
|
|
316
|
+
);
|
|
317
|
+
assert(pendingLeafTokenIdx !== -1);
|
|
318
|
+
const pendingRunningBalanceAmount = pendingPoolRebalanceLeaf.runningBalances[pendingLeafTokenIdx];
|
|
319
|
+
if (!pendingRunningBalanceAmount.eq(bnZero)) {
|
|
320
|
+
updateRunningBalance(runningBalances, repaymentChainId, _l1TokenAddress, pendingRunningBalanceAmount);
|
|
321
|
+
}
|
|
322
|
+
} else {
|
|
323
|
+
// Otherwise, add the last running balance for this token.
|
|
324
|
+
const { runningBalance: lastExecutedBundleRunningBalance } =
|
|
325
|
+
clients.hubPoolClient.getRunningBalanceBeforeBlockForChain(
|
|
326
|
+
latestMainnetBlock,
|
|
327
|
+
repaymentChainId,
|
|
328
|
+
l1TokenAddress
|
|
329
|
+
);
|
|
330
|
+
if (!lastExecutedBundleRunningBalance.eq(bnZero)) {
|
|
331
|
+
updateRunningBalance(runningBalances, repaymentChainId, _l1TokenAddress, lastExecutedBundleRunningBalance);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
});
|
|
336
|
+
const poolRebalanceLeaves: PoolRebalanceLeaf[] = constructPoolRebalanceLeaves(
|
|
337
|
+
mainnetBundleEndBlock,
|
|
338
|
+
runningBalances,
|
|
339
|
+
realizedLpFees,
|
|
340
|
+
Array.from(chainWithRefundsOnly).filter((chainId) => !Object.keys(runningBalances).includes(chainId.toString())),
|
|
341
|
+
clients.configStoreClient,
|
|
342
|
+
maxL1TokenCountOverride
|
|
343
|
+
);
|
|
344
|
+
return {
|
|
345
|
+
runningBalances,
|
|
346
|
+
realizedLpFees,
|
|
347
|
+
leaves: poolRebalanceLeaves,
|
|
348
|
+
tree: buildPoolRebalanceLeafTree(poolRebalanceLeaves),
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/*
|
|
353
|
+
* @notice Gets the running balance amounts derived from the input bundle data.
|
|
354
|
+
* @param mainnetBundleEndBlock The end block number of the block range corresponding to the bundle data.
|
|
355
|
+
* @param bundleV3Deposits Deposit bundle data for the implied block range given by the mainnetBundleEndBlock.
|
|
356
|
+
* @param bundleFillsV3 Fill bundle data.
|
|
357
|
+
* @param bundleSlowFillsV3 Slow fill bundle data.
|
|
358
|
+
* @param unexecutableSlowFills Expired slow fill bundle data.
|
|
359
|
+
* @param expiredDepositsToRefundV3 Expired deposit bundle data.
|
|
360
|
+
* @param clients Clients required to construct a new pool rebalance root.
|
|
361
|
+
*/
|
|
362
|
+
export function _getMarginalRunningBalances(
|
|
363
|
+
mainnetBundleEndBlock: number,
|
|
364
|
+
bundleV3Deposits: BundleDepositsV3,
|
|
365
|
+
bundleFillsV3: BundleFillsV3,
|
|
366
|
+
bundleSlowFillsV3: BundleSlowFills,
|
|
367
|
+
unexecutableSlowFills: BundleExcessSlowFills,
|
|
368
|
+
expiredDepositsToRefundV3: ExpiredDepositsToRefundV3,
|
|
369
|
+
clients: {
|
|
370
|
+
hubPoolClient: HubPoolClient;
|
|
371
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
372
|
+
}
|
|
373
|
+
): { chainWithRefundsOnly: Set<number>; realizedLpFees: RunningBalances; runningBalances: RunningBalances } {
|
|
128
374
|
// Running balances are the amount of tokens that we need to send to each SpokePool to pay for all instant and
|
|
129
375
|
// slow relay refunds. They are decreased by the amount of funds already held by the SpokePool. Balances are keyed
|
|
130
376
|
// by the SpokePool's network and L1 token equivalent of the L2 token to refund.
|
|
@@ -296,24 +542,5 @@ export function _buildPoolRebalanceRoot(
|
|
|
296
542
|
});
|
|
297
543
|
});
|
|
298
544
|
});
|
|
299
|
-
|
|
300
|
-
// Add to the running balance value from the last valid root bundle proposal for {chainId, l1Token}
|
|
301
|
-
// combination if found.
|
|
302
|
-
addLastRunningBalance(latestMainnetBlock, runningBalances, clients.hubPoolClient);
|
|
303
|
-
|
|
304
|
-
const leaves: PoolRebalanceLeaf[] = constructPoolRebalanceLeaves(
|
|
305
|
-
mainnetBundleEndBlock,
|
|
306
|
-
runningBalances,
|
|
307
|
-
realizedLpFees,
|
|
308
|
-
Array.from(chainWithRefundsOnly).filter((chainId) => !Object.keys(runningBalances).includes(chainId.toString())),
|
|
309
|
-
clients.configStoreClient,
|
|
310
|
-
maxL1TokenCountOverride
|
|
311
|
-
);
|
|
312
|
-
|
|
313
|
-
return {
|
|
314
|
-
runningBalances,
|
|
315
|
-
realizedLpFees,
|
|
316
|
-
leaves,
|
|
317
|
-
tree: buildPoolRebalanceLeafTree(leaves),
|
|
318
|
-
};
|
|
545
|
+
return { runningBalances, chainWithRefundsOnly, realizedLpFees };
|
|
319
546
|
}
|