@across-protocol/sdk 3.1.27 → 3.1.28
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/BundleDataClient.d.ts +60 -0
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +929 -0
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -0
- package/dist/cjs/clients/BundleDataClient/index.d.ts +2 -0
- package/dist/cjs/clients/BundleDataClient/index.js +6 -0
- package/dist/cjs/clients/BundleDataClient/index.js.map +1 -0
- package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.d.ts +15 -0
- package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js +131 -0
- package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -0
- package/dist/cjs/clients/BundleDataClient/utils/FillUtils.d.ts +6 -0
- package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js +19 -0
- package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js.map +1 -0
- package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.d.ts +3 -0
- package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.js +23 -0
- package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.js.map +1 -0
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +24 -0
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +129 -0
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -0
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +302 -0
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.js +77 -0
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.js.map +1 -0
- package/dist/cjs/clients/BundleDataClient/utils/index.d.ts +6 -0
- package/dist/cjs/clients/BundleDataClient/utils/index.js +10 -0
- package/dist/cjs/clients/BundleDataClient/utils/index.js.map +1 -0
- package/dist/cjs/clients/BundleDataClient/utils/shims.d.ts +8 -0
- package/dist/cjs/clients/BundleDataClient/utils/shims.js +3 -0
- package/dist/cjs/clients/BundleDataClient/utils/shims.js.map +1 -0
- package/dist/cjs/clients/index.d.ts +1 -0
- package/dist/cjs/clients/index.js +2 -1
- package/dist/cjs/clients/index.js.map +1 -1
- package/dist/cjs/interfaces/BundleData.d.ts +63 -0
- package/dist/cjs/interfaces/BundleData.js +3 -0
- package/dist/cjs/interfaces/BundleData.js.map +1 -0
- package/dist/cjs/interfaces/index.d.ts +1 -0
- package/dist/cjs/interfaces/index.js +1 -0
- package/dist/cjs/interfaces/index.js.map +1 -1
- package/dist/cjs/providers/alchemy.js +5 -5
- package/dist/cjs/providers/alchemy.js.map +1 -1
- package/dist/cjs/providers/drpc.d.ts +2 -0
- package/dist/cjs/providers/drpc.js +21 -0
- package/dist/cjs/providers/drpc.js.map +1 -0
- package/dist/cjs/providers/infura.js +5 -5
- package/dist/cjs/providers/infura.js.map +1 -1
- package/dist/cjs/providers/types.d.ts +1 -1
- package/dist/cjs/providers/utils.js +3 -1
- package/dist/cjs/providers/utils.js.map +1 -1
- package/dist/cjs/utils/AddressUtils.d.ts +1 -0
- package/dist/cjs/utils/AddressUtils.js +15 -1
- package/dist/cjs/utils/AddressUtils.js.map +1 -1
- package/dist/cjs/utils/ContractUtils.d.ts +1 -0
- package/dist/cjs/utils/ContractUtils.js +12 -0
- package/dist/cjs/utils/ContractUtils.js.map +1 -0
- package/dist/cjs/utils/Multicall.d.ts +3 -2
- package/dist/cjs/utils/Multicall.js +40 -41
- package/dist/cjs/utils/Multicall.js.map +1 -1
- package/dist/cjs/utils/ObjectUtils.d.ts +18 -0
- package/dist/cjs/utils/ObjectUtils.js +27 -1
- package/dist/cjs/utils/ObjectUtils.js.map +1 -1
- package/dist/cjs/utils/abi/contracts/index.d.ts +1 -0
- package/dist/cjs/utils/abi/contracts/index.js +9 -0
- package/dist/cjs/utils/abi/contracts/index.js.map +1 -0
- package/dist/cjs/utils/abi/typechain/Multicall3.d.ts +289 -0
- package/dist/cjs/utils/abi/typechain/Multicall3.js +3 -0
- package/dist/cjs/utils/abi/typechain/Multicall3.js.map +1 -0
- package/dist/cjs/utils/abi/typechain/common.d.ts +21 -0
- package/dist/cjs/utils/abi/typechain/common.js +3 -0
- package/dist/cjs/utils/abi/typechain/common.js.map +1 -0
- package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.d.ts +339 -0
- package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.js +458 -0
- package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -0
- package/dist/cjs/utils/abi/typechain/factories/index.d.ts +1 -0
- package/dist/cjs/utils/abi/typechain/factories/index.js +6 -0
- package/dist/cjs/utils/abi/typechain/factories/index.js.map +1 -0
- package/dist/cjs/utils/abi/typechain/index.d.ts +3 -0
- package/dist/cjs/utils/abi/typechain/index.js +8 -0
- package/dist/cjs/utils/abi/typechain/index.js.map +1 -0
- package/dist/esm/clients/BundleDataClient/BundleDataClient.d.ts +60 -0
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js +1097 -0
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -0
- package/dist/esm/clients/BundleDataClient/index.d.ts +2 -0
- package/dist/esm/clients/BundleDataClient/index.js +3 -0
- package/dist/esm/clients/BundleDataClient/index.js.map +1 -0
- package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.d.ts +15 -0
- package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js +182 -0
- package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -0
- package/dist/esm/clients/BundleDataClient/utils/FillUtils.d.ts +6 -0
- package/dist/esm/clients/BundleDataClient/utils/FillUtils.js +20 -0
- package/dist/esm/clients/BundleDataClient/utils/FillUtils.js.map +1 -0
- package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.d.ts +3 -0
- package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.js +20 -0
- package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.js.map +1 -0
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +24 -0
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +157 -0
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -0
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +302 -0
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js +79 -0
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js.map +1 -0
- package/dist/esm/clients/BundleDataClient/utils/index.d.ts +6 -0
- package/dist/esm/clients/BundleDataClient/utils/index.js +7 -0
- package/dist/esm/clients/BundleDataClient/utils/index.js.map +1 -0
- package/dist/esm/clients/BundleDataClient/utils/shims.d.ts +8 -0
- package/dist/esm/clients/BundleDataClient/utils/shims.js +2 -0
- package/dist/esm/clients/BundleDataClient/utils/shims.js.map +1 -0
- package/dist/esm/clients/index.d.ts +1 -0
- package/dist/esm/clients/index.js +2 -0
- package/dist/esm/clients/index.js.map +1 -1
- package/dist/esm/interfaces/BundleData.d.ts +63 -0
- package/dist/esm/interfaces/BundleData.js +2 -0
- package/dist/esm/interfaces/BundleData.js.map +1 -0
- package/dist/esm/interfaces/index.d.ts +1 -0
- package/dist/esm/interfaces/index.js +1 -0
- package/dist/esm/interfaces/index.js.map +1 -1
- package/dist/esm/providers/alchemy.js +6 -6
- package/dist/esm/providers/alchemy.js.map +1 -1
- package/dist/esm/providers/drpc.d.ts +2 -0
- package/dist/esm/providers/drpc.js +18 -0
- package/dist/esm/providers/drpc.js.map +1 -0
- package/dist/esm/providers/infura.js +6 -6
- package/dist/esm/providers/infura.js.map +1 -1
- package/dist/esm/providers/types.d.ts +1 -1
- package/dist/esm/providers/utils.js +3 -1
- package/dist/esm/providers/utils.js.map +1 -1
- package/dist/esm/utils/AddressUtils.d.ts +1 -0
- package/dist/esm/utils/AddressUtils.js +16 -1
- package/dist/esm/utils/AddressUtils.js.map +1 -1
- package/dist/esm/utils/ContractUtils.d.ts +1 -0
- package/dist/esm/utils/ContractUtils.js +8 -0
- package/dist/esm/utils/ContractUtils.js.map +1 -0
- package/dist/esm/utils/Multicall.d.ts +3 -2
- package/dist/esm/utils/Multicall.js +39 -42
- package/dist/esm/utils/Multicall.js.map +1 -1
- package/dist/esm/utils/ObjectUtils.d.ts +18 -0
- package/dist/esm/utils/ObjectUtils.js +24 -0
- package/dist/esm/utils/ObjectUtils.js.map +1 -1
- package/dist/esm/utils/abi/contracts/index.d.ts +1 -0
- package/dist/esm/utils/abi/contracts/index.js +2 -0
- package/dist/esm/utils/abi/contracts/index.js.map +1 -0
- package/dist/esm/utils/abi/typechain/Multicall3.d.ts +292 -0
- package/dist/esm/utils/abi/typechain/Multicall3.js +2 -0
- package/dist/esm/utils/abi/typechain/Multicall3.js.map +1 -0
- package/dist/esm/utils/abi/typechain/common.d.ts +21 -0
- package/dist/esm/utils/abi/typechain/common.js +2 -0
- package/dist/esm/utils/abi/typechain/common.js.map +1 -0
- package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.d.ts +339 -0
- package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js +458 -0
- package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -0
- package/dist/esm/utils/abi/typechain/factories/index.d.ts +1 -0
- package/dist/esm/utils/abi/typechain/factories/index.js +5 -0
- package/dist/esm/utils/abi/typechain/factories/index.js.map +1 -0
- package/dist/esm/utils/abi/typechain/index.d.ts +3 -0
- package/dist/esm/utils/abi/typechain/index.js +4 -0
- package/dist/esm/utils/abi/typechain/index.js.map +1 -0
- package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts +61 -0
- package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -0
- package/dist/types/clients/BundleDataClient/index.d.ts +3 -0
- package/dist/types/clients/BundleDataClient/index.d.ts.map +1 -0
- package/dist/types/clients/BundleDataClient/utils/DataworkerUtils.d.ts +16 -0
- package/dist/types/clients/BundleDataClient/utils/DataworkerUtils.d.ts.map +1 -0
- package/dist/types/clients/BundleDataClient/utils/FillUtils.d.ts +7 -0
- package/dist/types/clients/BundleDataClient/utils/FillUtils.d.ts.map +1 -0
- package/dist/types/clients/BundleDataClient/utils/MerkleTreeUtils.d.ts +4 -0
- package/dist/types/clients/BundleDataClient/utils/MerkleTreeUtils.d.ts.map +1 -0
- package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +25 -0
- package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts.map +1 -0
- package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +303 -0
- package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts.map +1 -0
- package/dist/types/clients/BundleDataClient/utils/index.d.ts +7 -0
- package/dist/types/clients/BundleDataClient/utils/index.d.ts.map +1 -0
- package/dist/types/clients/BundleDataClient/utils/shims.d.ts +9 -0
- package/dist/types/clients/BundleDataClient/utils/shims.d.ts.map +1 -0
- package/dist/types/clients/index.d.ts +1 -0
- package/dist/types/clients/index.d.ts.map +1 -1
- package/dist/types/interfaces/BundleData.d.ts +64 -0
- package/dist/types/interfaces/BundleData.d.ts.map +1 -0
- package/dist/types/interfaces/index.d.ts +1 -0
- package/dist/types/interfaces/index.d.ts.map +1 -1
- package/dist/types/providers/drpc.d.ts +3 -0
- package/dist/types/providers/drpc.d.ts.map +1 -0
- package/dist/types/providers/types.d.ts +1 -1
- package/dist/types/providers/types.d.ts.map +1 -1
- package/dist/types/providers/utils.d.ts.map +1 -1
- package/dist/types/utils/AddressUtils.d.ts +1 -0
- package/dist/types/utils/AddressUtils.d.ts.map +1 -1
- package/dist/types/utils/ContractUtils.d.ts +2 -0
- package/dist/types/utils/ContractUtils.d.ts.map +1 -0
- package/dist/types/utils/Multicall.d.ts +3 -2
- package/dist/types/utils/Multicall.d.ts.map +1 -1
- package/dist/types/utils/ObjectUtils.d.ts +18 -0
- package/dist/types/utils/ObjectUtils.d.ts.map +1 -1
- package/dist/types/utils/abi/contracts/index.d.ts +2 -0
- package/dist/types/utils/abi/contracts/index.d.ts.map +1 -0
- package/dist/types/utils/abi/typechain/Multicall3.d.ts +293 -0
- package/dist/types/utils/abi/typechain/Multicall3.d.ts.map +1 -0
- package/dist/types/utils/abi/typechain/common.d.ts +22 -0
- package/dist/types/utils/abi/typechain/common.d.ts.map +1 -0
- package/dist/types/utils/abi/typechain/factories/Multicall3__factory.d.ts +340 -0
- package/dist/types/utils/abi/typechain/factories/Multicall3__factory.d.ts.map +1 -0
- package/dist/types/utils/abi/typechain/factories/index.d.ts +2 -0
- package/dist/types/utils/abi/typechain/factories/index.d.ts.map +1 -0
- package/dist/types/utils/abi/typechain/index.d.ts +4 -0
- package/dist/types/utils/abi/typechain/index.d.ts.map +1 -0
- package/package.json +6 -8
- package/src/clients/BundleDataClient/BundleDataClient.ts +1311 -0
- package/src/clients/BundleDataClient/index.ts +2 -0
- package/src/clients/BundleDataClient/utils/DataworkerUtils.ts +268 -0
- package/src/clients/BundleDataClient/utils/FillUtils.ts +46 -0
- package/src/clients/BundleDataClient/utils/MerkleTreeUtils.ts +26 -0
- package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +238 -0
- package/src/clients/BundleDataClient/utils/SuperstructUtils.ts +132 -0
- package/src/clients/BundleDataClient/utils/index.ts +6 -0
- package/src/clients/BundleDataClient/utils/shims.ts +10 -0
- package/src/clients/index.ts +1 -0
- package/src/interfaces/BundleData.ts +68 -0
- package/src/interfaces/index.ts +1 -0
- package/src/providers/alchemy.ts +6 -6
- package/src/providers/drpc.ts +19 -0
- package/src/providers/infura.ts +6 -6
- package/src/providers/types.ts +1 -1
- package/src/providers/utils.ts +3 -1
- package/src/utils/AddressUtils.ts +15 -1
- package/src/utils/ContractUtils.ts +8 -0
- package/src/utils/Multicall.ts +38 -30
- package/src/utils/ObjectUtils.ts +23 -0
- package/src/utils/abi/contracts/index.ts +1 -0
- package/src/utils/abi/typechain/Multicall3.ts +433 -0
- package/src/utils/abi/typechain/common.ts +30 -0
- package/src/utils/abi/typechain/factories/Multicall3__factory.ts +458 -0
- package/src/utils/abi/typechain/factories/index.ts +4 -0
- package/src/utils/abi/typechain/index.ts +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BundleDataClient.js","sourceRoot":"","sources":["../../../../src/clients/BundleDataClient/BundleDataClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/clients/BundleDataClient/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,kDAAwB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BundleDepositsV3, BundleExcessSlowFills, BundleFillsV3, BundleSlowFills, CombinedRefunds, ExpiredDepositsToRefundV3 } from "../../../interfaces";
|
|
2
|
+
import { AnyObject } from "../../../utils";
|
|
3
|
+
import { PoolRebalanceRoot } from "./PoolRebalanceUtils";
|
|
4
|
+
import { V3FillWithBlock } from "./shims";
|
|
5
|
+
import { AcrossConfigStoreClient } from "../../AcrossConfigStoreClient";
|
|
6
|
+
import { HubPoolClient } from "../../HubPoolClient";
|
|
7
|
+
export declare function getRefundsFromBundle(bundleFillsV3: BundleFillsV3, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3): CombinedRefunds;
|
|
8
|
+
export declare function prettyPrintV3SpokePoolEvents(bundleDepositsV3: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleInvalidFillsV3: V3FillWithBlock[], bundleSlowFillsV3: BundleSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, unexecutableSlowFills: BundleExcessSlowFills): AnyObject;
|
|
9
|
+
export declare function getEndBlockBuffers(chainIdListForBundleEvaluationBlockNumbers: number[], blockRangeEndBlockBuffer: {
|
|
10
|
+
[chainId: number]: number;
|
|
11
|
+
}): number[];
|
|
12
|
+
export declare function _buildPoolRebalanceRoot(latestMainnetBlock: number, mainnetBundleEndBlock: number, bundleV3Deposits: BundleDepositsV3, bundleFillsV3: BundleFillsV3, bundleSlowFillsV3: BundleSlowFills, unexecutableSlowFills: BundleExcessSlowFills, expiredDepositsToRefundV3: ExpiredDepositsToRefundV3, clients: {
|
|
13
|
+
hubPoolClient: HubPoolClient;
|
|
14
|
+
configStoreClient: AcrossConfigStoreClient;
|
|
15
|
+
}, maxL1TokenCountOverride?: number): PoolRebalanceRoot;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._buildPoolRebalanceRoot = exports.getEndBlockBuffers = exports.prettyPrintV3SpokePoolEvents = exports.getRefundsFromBundle = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var utils_1 = require("../../../utils");
|
|
6
|
+
var PoolRebalanceUtils_1 = require("./PoolRebalanceUtils");
|
|
7
|
+
var MerkleTreeUtils_1 = require("./MerkleTreeUtils");
|
|
8
|
+
function getRefundsFromBundle(bundleFillsV3, expiredDepositsToRefundV3) {
|
|
9
|
+
var combinedRefunds = {};
|
|
10
|
+
Object.entries(bundleFillsV3).forEach(function (_a) {
|
|
11
|
+
var _b;
|
|
12
|
+
var repaymentChainId = _a[0], fillsForChain = _a[1];
|
|
13
|
+
(_b = combinedRefunds[repaymentChainId]) !== null && _b !== void 0 ? _b : (combinedRefunds[repaymentChainId] = {});
|
|
14
|
+
Object.entries(fillsForChain).forEach(function (_a) {
|
|
15
|
+
var l2TokenAddress = _a[0], refunds = _a[1].refunds;
|
|
16
|
+
if (refunds === undefined) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
var refundsShallowCopy = tslib_1.__assign({}, refunds);
|
|
20
|
+
if (combinedRefunds[repaymentChainId][l2TokenAddress] === undefined) {
|
|
21
|
+
combinedRefunds[repaymentChainId][l2TokenAddress] = refundsShallowCopy;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
combinedRefunds[repaymentChainId][l2TokenAddress] = tslib_1.__assign(tslib_1.__assign({}, combinedRefunds[repaymentChainId][l2TokenAddress]), refundsShallowCopy);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
Object.entries(expiredDepositsToRefundV3).forEach(function (_a) {
|
|
29
|
+
var _b;
|
|
30
|
+
var originChainId = _a[0], depositsForChain = _a[1];
|
|
31
|
+
(_b = combinedRefunds[originChainId]) !== null && _b !== void 0 ? _b : (combinedRefunds[originChainId] = {});
|
|
32
|
+
Object.entries(depositsForChain).forEach(function (_a) {
|
|
33
|
+
var l2TokenAddress = _a[0], deposits = _a[1];
|
|
34
|
+
deposits.forEach(function (deposit) {
|
|
35
|
+
var _a;
|
|
36
|
+
if (combinedRefunds[originChainId][l2TokenAddress] === undefined) {
|
|
37
|
+
combinedRefunds[originChainId][l2TokenAddress] = (_a = {}, _a[deposit.depositor] = deposit.inputAmount, _a);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
var existingRefundAmount = combinedRefunds[originChainId][l2TokenAddress][deposit.depositor];
|
|
41
|
+
combinedRefunds[originChainId][l2TokenAddress][deposit.depositor] = deposit.inputAmount.add(existingRefundAmount !== null && existingRefundAmount !== void 0 ? existingRefundAmount : utils_1.bnZero);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
return combinedRefunds;
|
|
47
|
+
}
|
|
48
|
+
exports.getRefundsFromBundle = getRefundsFromBundle;
|
|
49
|
+
function prettyPrintV3SpokePoolEvents(bundleDepositsV3, bundleFillsV3, bundleInvalidFillsV3, bundleSlowFillsV3, expiredDepositsToRefundV3, unexecutableSlowFills) {
|
|
50
|
+
return {
|
|
51
|
+
bundleDepositsV3: (0, utils_1.count2DDictionaryValues)(bundleDepositsV3),
|
|
52
|
+
bundleFillsV3: (0, utils_1.count3DDictionaryValues)(bundleFillsV3, "fills"),
|
|
53
|
+
bundleSlowFillsV3: (0, utils_1.count2DDictionaryValues)(bundleSlowFillsV3),
|
|
54
|
+
expiredDepositsToRefundV3: (0, utils_1.count2DDictionaryValues)(expiredDepositsToRefundV3),
|
|
55
|
+
unexecutableSlowFills: (0, utils_1.count2DDictionaryValues)(unexecutableSlowFills),
|
|
56
|
+
allInvalidFillsInRangeByDestinationChainAndRelayer: (0, utils_1.groupObjectCountsByTwoProps)(bundleInvalidFillsV3, "destinationChainId", function (fill) { return "".concat(fill.relayer); }),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
exports.prettyPrintV3SpokePoolEvents = prettyPrintV3SpokePoolEvents;
|
|
60
|
+
function getEndBlockBuffers(chainIdListForBundleEvaluationBlockNumbers, blockRangeEndBlockBuffer) {
|
|
61
|
+
return chainIdListForBundleEvaluationBlockNumbers.map(function (chainId) { var _a; return (_a = blockRangeEndBlockBuffer[chainId]) !== null && _a !== void 0 ? _a : 0; });
|
|
62
|
+
}
|
|
63
|
+
exports.getEndBlockBuffers = getEndBlockBuffers;
|
|
64
|
+
function _buildPoolRebalanceRoot(latestMainnetBlock, mainnetBundleEndBlock, bundleV3Deposits, bundleFillsV3, bundleSlowFillsV3, unexecutableSlowFills, expiredDepositsToRefundV3, clients, maxL1TokenCountOverride) {
|
|
65
|
+
var runningBalances = {};
|
|
66
|
+
var realizedLpFees = {};
|
|
67
|
+
Object.entries(bundleFillsV3).forEach(function (_a) {
|
|
68
|
+
var _repaymentChainId = _a[0], fillsForChain = _a[1];
|
|
69
|
+
var repaymentChainId = Number(_repaymentChainId);
|
|
70
|
+
Object.entries(fillsForChain).forEach(function (_a) {
|
|
71
|
+
var l2TokenAddress = _a[0], _b = _a[1], totalRealizedLpFee = _b.realizedLpFees, totalRefundAmount = _b.totalRefundAmount;
|
|
72
|
+
var l1TokenCounterpart = clients.hubPoolClient.getL1TokenForL2TokenAtBlock(l2TokenAddress, repaymentChainId, mainnetBundleEndBlock);
|
|
73
|
+
(0, PoolRebalanceUtils_1.updateRunningBalance)(runningBalances, repaymentChainId, l1TokenCounterpart, totalRefundAmount);
|
|
74
|
+
(0, PoolRebalanceUtils_1.updateRunningBalance)(realizedLpFees, repaymentChainId, l1TokenCounterpart, totalRealizedLpFee);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
Object.entries(bundleSlowFillsV3).forEach(function (_a) {
|
|
78
|
+
var _destinationChainId = _a[0], depositsForChain = _a[1];
|
|
79
|
+
var destinationChainId = Number(_destinationChainId);
|
|
80
|
+
Object.entries(depositsForChain).forEach(function (_a) {
|
|
81
|
+
var outputToken = _a[0], deposits = _a[1];
|
|
82
|
+
deposits.forEach(function (deposit) {
|
|
83
|
+
var l1TokenCounterpart = clients.hubPoolClient.getL1TokenForL2TokenAtBlock(outputToken, destinationChainId, mainnetBundleEndBlock);
|
|
84
|
+
var lpFee = deposit.lpFeePct.mul(deposit.inputAmount).div(utils_1.fixedPointAdjustment);
|
|
85
|
+
(0, PoolRebalanceUtils_1.updateRunningBalance)(runningBalances, destinationChainId, l1TokenCounterpart, deposit.inputAmount.sub(lpFee));
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
Object.entries(unexecutableSlowFills).forEach(function (_a) {
|
|
90
|
+
var _destinationChainId = _a[0], slowFilledDepositsForChain = _a[1];
|
|
91
|
+
var destinationChainId = Number(_destinationChainId);
|
|
92
|
+
Object.entries(slowFilledDepositsForChain).forEach(function (_a) {
|
|
93
|
+
var outputToken = _a[0], slowFilledDeposits = _a[1];
|
|
94
|
+
slowFilledDeposits.forEach(function (deposit) {
|
|
95
|
+
var l1TokenCounterpart = clients.hubPoolClient.getL1TokenForL2TokenAtBlock(outputToken, destinationChainId, mainnetBundleEndBlock);
|
|
96
|
+
var lpFee = deposit.lpFeePct.mul(deposit.inputAmount).div(utils_1.fixedPointAdjustment);
|
|
97
|
+
(0, PoolRebalanceUtils_1.updateRunningBalance)(runningBalances, destinationChainId, l1TokenCounterpart, lpFee.sub(deposit.inputAmount));
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
Object.entries(bundleV3Deposits).forEach(function (_a) {
|
|
102
|
+
var depositsForChain = _a[1];
|
|
103
|
+
Object.entries(depositsForChain).forEach(function (_a) {
|
|
104
|
+
var deposits = _a[1];
|
|
105
|
+
deposits.forEach(function (deposit) {
|
|
106
|
+
(0, PoolRebalanceUtils_1.updateRunningBalanceForDeposit)(runningBalances, clients.hubPoolClient, deposit, deposit.inputAmount.mul(-1));
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
Object.entries(expiredDepositsToRefundV3).forEach(function (_a) {
|
|
111
|
+
var _originChainId = _a[0], depositsForChain = _a[1];
|
|
112
|
+
var originChainId = Number(_originChainId);
|
|
113
|
+
Object.entries(depositsForChain).forEach(function (_a) {
|
|
114
|
+
var inputToken = _a[0], deposits = _a[1];
|
|
115
|
+
deposits.forEach(function (deposit) {
|
|
116
|
+
var l1TokenCounterpart = clients.hubPoolClient.getL1TokenForL2TokenAtBlock(inputToken, originChainId, mainnetBundleEndBlock);
|
|
117
|
+
(0, PoolRebalanceUtils_1.updateRunningBalance)(runningBalances, originChainId, l1TokenCounterpart, deposit.inputAmount);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
(0, PoolRebalanceUtils_1.addLastRunningBalance)(latestMainnetBlock, runningBalances, clients.hubPoolClient);
|
|
122
|
+
var leaves = (0, PoolRebalanceUtils_1.constructPoolRebalanceLeaves)(mainnetBundleEndBlock, runningBalances, realizedLpFees, clients.configStoreClient, maxL1TokenCountOverride);
|
|
123
|
+
return {
|
|
124
|
+
runningBalances: runningBalances,
|
|
125
|
+
realizedLpFees: realizedLpFees,
|
|
126
|
+
leaves: leaves,
|
|
127
|
+
tree: (0, MerkleTreeUtils_1.buildPoolRebalanceLeafTree)(leaves),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
exports._buildPoolRebalanceRoot = _buildPoolRebalanceRoot;
|
|
131
|
+
//# sourceMappingURL=DataworkerUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataworkerUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/DataworkerUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Fill } from "../../../interfaces";
|
|
2
|
+
import { HubPoolClient } from "../../HubPoolClient";
|
|
3
|
+
export declare function getRefundInformationFromFill(fill: Fill, hubPoolClient: HubPoolClient, blockRangesForChains: number[][], chainIdListForBundleEvaluationBlockNumbers: number[], fromLiteChain: boolean): {
|
|
4
|
+
chainToSendRefundTo: number;
|
|
5
|
+
repaymentToken: string;
|
|
6
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRefundInformationFromFill = void 0;
|
|
4
|
+
var utils_1 = require("../../../utils");
|
|
5
|
+
function getRefundInformationFromFill(fill, hubPoolClient, blockRangesForChains, chainIdListForBundleEvaluationBlockNumbers, fromLiteChain) {
|
|
6
|
+
var chainToSendRefundTo = (0, utils_1.isSlowFill)(fill) ? fill.destinationChainId : fill.repaymentChainId;
|
|
7
|
+
if (fromLiteChain) {
|
|
8
|
+
chainToSendRefundTo = fill.originChainId;
|
|
9
|
+
}
|
|
10
|
+
var endBlockForMainnet = (0, utils_1.getBlockRangeForChain)(blockRangesForChains, hubPoolClient.chainId, chainIdListForBundleEvaluationBlockNumbers)[1];
|
|
11
|
+
var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(fill.inputToken, fill.originChainId, endBlockForMainnet);
|
|
12
|
+
var repaymentToken = hubPoolClient.getL2TokenForL1TokenAtBlock(l1TokenCounterpart, chainToSendRefundTo, endBlockForMainnet);
|
|
13
|
+
return {
|
|
14
|
+
chainToSendRefundTo: chainToSendRefundTo,
|
|
15
|
+
repaymentToken: repaymentToken,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.getRefundInformationFromFill = getRefundInformationFromFill;
|
|
19
|
+
//# sourceMappingURL=FillUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FillUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/FillUtils.ts"],"names":[],"mappings":";;;AACA,wCAAmE;AAGnE,SAAgB,4BAA4B,CAC1C,IAAU,EACV,aAA4B,EAC5B,oBAAgC,EAChC,0CAAoD,EACpD,aAAsB;IAOtB,IAAI,mBAAmB,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAG7F,IAAI,aAAa,EAAE;QACjB,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC;KAC1C;IAGD,IAAM,kBAAkB,GAAG,IAAA,6BAAqB,EAC9C,oBAAoB,EACpB,aAAa,CAAC,OAAO,EACrB,0CAA0C,CAC3C,CAAC,CAAC,CAAC,CAAC;IAEL,IAAM,kBAAkB,GAAG,aAAa,CAAC,2BAA2B,CAClE,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,aAAa,EAClB,kBAAkB,CACnB,CAAC;IAEF,IAAM,cAAc,GAAG,aAAa,CAAC,2BAA2B,CAC9D,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,CACnB,CAAC;IACF,OAAO;QACL,mBAAmB,qBAAA;QACnB,cAAc,gBAAA;KACf,CAAC;AACJ,CAAC;AAzCD,oEAyCC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildPoolRebalanceLeafTree = void 0;
|
|
4
|
+
var contracts_1 = require("@across-protocol/contracts");
|
|
5
|
+
var ContractUtils_1 = require("../../../utils/ContractUtils");
|
|
6
|
+
var ethers_1 = require("ethers");
|
|
7
|
+
function buildPoolRebalanceLeafTree(poolRebalanceLeaves) {
|
|
8
|
+
for (var i = 0; i < poolRebalanceLeaves.length; i++) {
|
|
9
|
+
if (poolRebalanceLeaves[i].l1Tokens.length !== poolRebalanceLeaves[i].bundleLpFees.length ||
|
|
10
|
+
poolRebalanceLeaves[i].netSendAmounts.length !== poolRebalanceLeaves[i].bundleLpFees.length) {
|
|
11
|
+
throw new Error("Provided lef arrays are not of equal length");
|
|
12
|
+
}
|
|
13
|
+
if (poolRebalanceLeaves[i].runningBalances.length !== poolRebalanceLeaves[i].bundleLpFees.length * 2 &&
|
|
14
|
+
poolRebalanceLeaves[i].runningBalances.length !== poolRebalanceLeaves[i].bundleLpFees.length) {
|
|
15
|
+
throw new Error("Running balances length unexpected");
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
var paramType = (0, ContractUtils_1.getParamType)("MerkleLibTest", "verifyPoolRebalance", "rebalance");
|
|
19
|
+
var hashFn = function (input) { return ethers_1.utils.keccak256(ethers_1.utils.defaultAbiCoder.encode([paramType], [input])); };
|
|
20
|
+
return new contracts_1.MerkleTree(poolRebalanceLeaves, hashFn);
|
|
21
|
+
}
|
|
22
|
+
exports.buildPoolRebalanceLeafTree = buildPoolRebalanceLeafTree;
|
|
23
|
+
//# sourceMappingURL=MerkleTreeUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MerkleTreeUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/MerkleTreeUtils.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AAExD,8DAA4D;AAC5D,iCAA+B;AAE/B,SAAgB,0BAA0B,CAAC,mBAAwC;IACjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAEnD,IACE,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM;YACrF,mBAAmB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAC3F;YACA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAChE;QACD,IACE,mBAAmB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAChG,mBAAmB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAC5F;YACA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;KACF;IAED,IAAM,SAAS,GAAG,IAAA,4BAAY,EAAC,eAAe,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACpF,IAAM,MAAM,GAAG,UAAC,KAAwB,IAAK,OAAA,cAAK,CAAC,SAAS,CAAC,cAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAnE,CAAmE,CAAC;IACjH,OAAO,IAAI,sBAAU,CAAoB,mBAAmB,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC;AApBD,gEAoBC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { MerkleTree } from "@across-protocol/contracts/dist/utils/MerkleTree";
|
|
2
|
+
import { RunningBalances, PoolRebalanceLeaf, Clients, SpokePoolTargetBalance } from "../../../interfaces";
|
|
3
|
+
import { SpokePoolClient } from "../../SpokePoolClient";
|
|
4
|
+
import { BigNumber } from "ethers";
|
|
5
|
+
import { HubPoolClient } from "../../HubPoolClient";
|
|
6
|
+
import { V3DepositWithBlock } from "./shims";
|
|
7
|
+
import { AcrossConfigStoreClient } from "../../AcrossConfigStoreClient";
|
|
8
|
+
export type PoolRebalanceRoot = {
|
|
9
|
+
runningBalances: RunningBalances;
|
|
10
|
+
realizedLpFees: RunningBalances;
|
|
11
|
+
leaves: PoolRebalanceLeaf[];
|
|
12
|
+
tree: MerkleTree<PoolRebalanceLeaf>;
|
|
13
|
+
};
|
|
14
|
+
export declare function getWidestPossibleExpectedBlockRange(chainIdListForBundleEvaluationBlockNumbers: number[], spokeClients: {
|
|
15
|
+
[chainId: number]: SpokePoolClient;
|
|
16
|
+
}, endBlockBuffers: number[], clients: Clients, latestMainnetBlock: number, enabledChains: number[]): number[][];
|
|
17
|
+
export declare function isChainDisabled(blockRangeForChain: number[]): boolean;
|
|
18
|
+
export declare function computeDesiredTransferAmountToSpoke(runningBalance: BigNumber, spokePoolTargetBalance: SpokePoolTargetBalance): BigNumber;
|
|
19
|
+
export declare function getNetSendAmountForL1Token(spokePoolTargetBalance: SpokePoolTargetBalance, runningBalance: BigNumber): BigNumber;
|
|
20
|
+
export declare function getRunningBalanceForL1Token(spokePoolTargetBalance: SpokePoolTargetBalance, runningBalance: BigNumber): BigNumber;
|
|
21
|
+
export declare function updateRunningBalance(runningBalances: RunningBalances, l2ChainId: number, l1Token: string, updateAmount: BigNumber): void;
|
|
22
|
+
export declare function addLastRunningBalance(latestMainnetBlock: number, runningBalances: RunningBalances, hubPoolClient: HubPoolClient): void;
|
|
23
|
+
export declare function updateRunningBalanceForDeposit(runningBalances: RunningBalances, hubPoolClient: HubPoolClient, deposit: V3DepositWithBlock, updateAmount: BigNumber): void;
|
|
24
|
+
export declare function constructPoolRebalanceLeaves(latestMainnetBlock: number, runningBalances: RunningBalances, realizedLpFees: RunningBalances, configStoreClient: AcrossConfigStoreClient, maxL1TokenCount?: number): PoolRebalanceLeaf[];
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.constructPoolRebalanceLeaves = exports.updateRunningBalanceForDeposit = exports.addLastRunningBalance = exports.updateRunningBalance = exports.getRunningBalanceForL1Token = exports.getNetSendAmountForL1Token = exports.computeDesiredTransferAmountToSpoke = exports.isChainDisabled = exports.getWidestPossibleExpectedBlockRange = void 0;
|
|
4
|
+
var utils_1 = require("../../../utils");
|
|
5
|
+
function getWidestPossibleExpectedBlockRange(chainIdListForBundleEvaluationBlockNumbers, spokeClients, endBlockBuffers, clients, latestMainnetBlock, enabledChains) {
|
|
6
|
+
var latestPossibleBundleEndBlockNumbers = chainIdListForBundleEvaluationBlockNumbers.map(function (chainId, index) {
|
|
7
|
+
return spokeClients[chainId] && Math.max(spokeClients[chainId].latestBlockSearched - endBlockBuffers[index], 0);
|
|
8
|
+
});
|
|
9
|
+
return chainIdListForBundleEvaluationBlockNumbers.map(function (chainId, index) {
|
|
10
|
+
var lastEndBlockForChain = clients.hubPoolClient.getLatestBundleEndBlockForChain(chainIdListForBundleEvaluationBlockNumbers, latestMainnetBlock, chainId);
|
|
11
|
+
if (!enabledChains.includes(chainId)) {
|
|
12
|
+
return [lastEndBlockForChain, lastEndBlockForChain];
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
if (lastEndBlockForChain >= latestPossibleBundleEndBlockNumbers[index]) {
|
|
16
|
+
return [lastEndBlockForChain, lastEndBlockForChain];
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return [
|
|
20
|
+
clients.hubPoolClient.getNextBundleStartBlockNumber(chainIdListForBundleEvaluationBlockNumbers, latestMainnetBlock, chainId),
|
|
21
|
+
latestPossibleBundleEndBlockNumbers[index],
|
|
22
|
+
];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
exports.getWidestPossibleExpectedBlockRange = getWidestPossibleExpectedBlockRange;
|
|
28
|
+
function isChainDisabled(blockRangeForChain) {
|
|
29
|
+
return blockRangeForChain[0] === blockRangeForChain[1];
|
|
30
|
+
}
|
|
31
|
+
exports.isChainDisabled = isChainDisabled;
|
|
32
|
+
function computeDesiredTransferAmountToSpoke(runningBalance, spokePoolTargetBalance) {
|
|
33
|
+
if (runningBalance.gte(0)) {
|
|
34
|
+
return runningBalance;
|
|
35
|
+
}
|
|
36
|
+
if (runningBalance.abs().lt(spokePoolTargetBalance.threshold)) {
|
|
37
|
+
return utils_1.bnZero;
|
|
38
|
+
}
|
|
39
|
+
var transferSize = runningBalance.abs().sub(spokePoolTargetBalance.target);
|
|
40
|
+
if (transferSize.lt(0)) {
|
|
41
|
+
return utils_1.bnZero;
|
|
42
|
+
}
|
|
43
|
+
return transferSize.mul(-1);
|
|
44
|
+
}
|
|
45
|
+
exports.computeDesiredTransferAmountToSpoke = computeDesiredTransferAmountToSpoke;
|
|
46
|
+
function getNetSendAmountForL1Token(spokePoolTargetBalance, runningBalance) {
|
|
47
|
+
return computeDesiredTransferAmountToSpoke(runningBalance, spokePoolTargetBalance);
|
|
48
|
+
}
|
|
49
|
+
exports.getNetSendAmountForL1Token = getNetSendAmountForL1Token;
|
|
50
|
+
function getRunningBalanceForL1Token(spokePoolTargetBalance, runningBalance) {
|
|
51
|
+
var desiredTransferAmount = computeDesiredTransferAmountToSpoke(runningBalance, spokePoolTargetBalance);
|
|
52
|
+
return runningBalance.sub(desiredTransferAmount);
|
|
53
|
+
}
|
|
54
|
+
exports.getRunningBalanceForL1Token = getRunningBalanceForL1Token;
|
|
55
|
+
function updateRunningBalance(runningBalances, l2ChainId, l1Token, updateAmount) {
|
|
56
|
+
if (!runningBalances[l2ChainId]) {
|
|
57
|
+
runningBalances[l2ChainId] = {};
|
|
58
|
+
}
|
|
59
|
+
var runningBalance = runningBalances[l2ChainId][l1Token];
|
|
60
|
+
if (runningBalance) {
|
|
61
|
+
runningBalances[l2ChainId][l1Token] = runningBalance.add(updateAmount);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
runningBalances[l2ChainId][l1Token] = updateAmount;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.updateRunningBalance = updateRunningBalance;
|
|
68
|
+
function addLastRunningBalance(latestMainnetBlock, runningBalances, hubPoolClient) {
|
|
69
|
+
Object.keys(runningBalances).forEach(function (repaymentChainId) {
|
|
70
|
+
Object.keys(runningBalances[Number(repaymentChainId)]).forEach(function (l1TokenAddress) {
|
|
71
|
+
var runningBalance = hubPoolClient.getRunningBalanceBeforeBlockForChain(latestMainnetBlock, Number(repaymentChainId), l1TokenAddress).runningBalance;
|
|
72
|
+
if (!runningBalance.eq(utils_1.bnZero)) {
|
|
73
|
+
updateRunningBalance(runningBalances, Number(repaymentChainId), l1TokenAddress, runningBalance);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
exports.addLastRunningBalance = addLastRunningBalance;
|
|
79
|
+
function updateRunningBalanceForDeposit(runningBalances, hubPoolClient, deposit, updateAmount) {
|
|
80
|
+
var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, deposit.quoteBlockNumber);
|
|
81
|
+
updateRunningBalance(runningBalances, deposit.originChainId, l1TokenCounterpart, updateAmount);
|
|
82
|
+
}
|
|
83
|
+
exports.updateRunningBalanceForDeposit = updateRunningBalanceForDeposit;
|
|
84
|
+
function constructPoolRebalanceLeaves(latestMainnetBlock, runningBalances, realizedLpFees, configStoreClient, maxL1TokenCount) {
|
|
85
|
+
var leaves = [];
|
|
86
|
+
Object.keys(runningBalances)
|
|
87
|
+
.map(function (chainId) { return Number(chainId); })
|
|
88
|
+
.sort(function (chainIdA, chainIdB) { return chainIdA - chainIdB; })
|
|
89
|
+
.map(function (chainId) {
|
|
90
|
+
var sortedL1Tokens = Object.keys(runningBalances[chainId]).sort(function (addressA, addressB) {
|
|
91
|
+
return (0, utils_1.compareAddresses)(addressA, addressB);
|
|
92
|
+
});
|
|
93
|
+
var groupIndexForChainId = 0;
|
|
94
|
+
var maxL1TokensPerLeaf = maxL1TokenCount || configStoreClient.getMaxRefundCountForRelayerRefundLeafForBlock(latestMainnetBlock);
|
|
95
|
+
var _loop_1 = function (i) {
|
|
96
|
+
var l1TokensToIncludeInThisLeaf = sortedL1Tokens.slice(i, i + maxL1TokensPerLeaf);
|
|
97
|
+
var spokeTargetBalances = l1TokensToIncludeInThisLeaf.map(function (l1Token) {
|
|
98
|
+
return configStoreClient.getSpokeTargetBalancesForBlock(l1Token, chainId, latestMainnetBlock);
|
|
99
|
+
});
|
|
100
|
+
var leafBundleLpFees = l1TokensToIncludeInThisLeaf.map(function (l1Token) { var _a, _b; return (_b = (_a = realizedLpFees[chainId]) === null || _a === void 0 ? void 0 : _a[l1Token]) !== null && _b !== void 0 ? _b : utils_1.bnZero; });
|
|
101
|
+
var leafNetSendAmounts = l1TokensToIncludeInThisLeaf.map(function (l1Token, index) {
|
|
102
|
+
return runningBalances[chainId] && runningBalances[chainId][l1Token]
|
|
103
|
+
? getNetSendAmountForL1Token(spokeTargetBalances[index], runningBalances[chainId][l1Token])
|
|
104
|
+
: utils_1.bnZero;
|
|
105
|
+
});
|
|
106
|
+
var leafRunningBalances = l1TokensToIncludeInThisLeaf.map(function (l1Token, index) {
|
|
107
|
+
var _a;
|
|
108
|
+
return ((_a = runningBalances[chainId]) === null || _a === void 0 ? void 0 : _a[l1Token])
|
|
109
|
+
? getRunningBalanceForL1Token(spokeTargetBalances[index], runningBalances[chainId][l1Token])
|
|
110
|
+
: utils_1.bnZero;
|
|
111
|
+
});
|
|
112
|
+
leaves.push({
|
|
113
|
+
chainId: chainId,
|
|
114
|
+
bundleLpFees: leafBundleLpFees,
|
|
115
|
+
netSendAmounts: leafNetSendAmounts,
|
|
116
|
+
runningBalances: leafRunningBalances,
|
|
117
|
+
groupIndex: groupIndexForChainId++,
|
|
118
|
+
leafId: leaves.length,
|
|
119
|
+
l1Tokens: l1TokensToIncludeInThisLeaf,
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
for (var i = 0; i < sortedL1Tokens.length; i += maxL1TokensPerLeaf) {
|
|
123
|
+
_loop_1(i);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
return leaves;
|
|
127
|
+
}
|
|
128
|
+
exports.constructPoolRebalanceLeaves = constructPoolRebalanceLeaves;
|
|
129
|
+
//# sourceMappingURL=PoolRebalanceUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PoolRebalanceUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts"],"names":[],"mappings":"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"}
|