@across-protocol/sdk 4.3.45 → 4.3.47
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/arch/evm/SpokeUtils.js +30 -28
- package/dist/cjs/arch/evm/SpokeUtils.js.map +1 -1
- package/dist/cjs/arch/svm/SpokeUtils.d.ts +21 -10
- package/dist/cjs/arch/svm/SpokeUtils.js +129 -11
- package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/cjs/arch/svm/encoders.d.ts +19 -0
- package/dist/cjs/arch/svm/encoders.js +52 -0
- package/dist/cjs/arch/svm/encoders.js.map +1 -0
- package/dist/cjs/arch/svm/index.d.ts +1 -0
- package/dist/cjs/arch/svm/index.js +1 -0
- package/dist/cjs/arch/svm/index.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js +4 -6
- package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js +0 -5
- package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +0 -1
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +58 -58
- package/dist/cjs/clients/HubPoolClient.d.ts +9 -3
- package/dist/cjs/clients/HubPoolClient.js +81 -56
- package/dist/cjs/clients/HubPoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +7 -5
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +13 -16
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockHubPoolClient.d.ts +2 -2
- package/dist/cjs/clients/mocks/MockHubPoolClient.js +1 -1
- package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
- package/dist/cjs/constants.d.ts +3 -0
- package/dist/cjs/constants.js +10 -2
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/providers/solana/retryRpcFactory.js +14 -10
- package/dist/cjs/providers/solana/retryRpcFactory.js.map +1 -1
- package/dist/esm/arch/evm/SpokeUtils.js +33 -29
- package/dist/esm/arch/evm/SpokeUtils.js.map +1 -1
- package/dist/esm/arch/svm/SpokeUtils.d.ts +38 -10
- package/dist/esm/arch/svm/SpokeUtils.js +152 -11
- package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/esm/arch/svm/encoders.d.ts +19 -0
- package/dist/esm/arch/svm/encoders.js +43 -0
- package/dist/esm/arch/svm/encoders.js.map +1 -0
- package/dist/esm/arch/svm/index.d.ts +1 -0
- package/dist/esm/arch/svm/index.js +1 -0
- package/dist/esm/arch/svm/index.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js +5 -7
- package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/FillUtils.js +1 -6
- package/dist/esm/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +0 -1
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +58 -58
- package/dist/esm/clients/HubPoolClient.d.ts +9 -3
- package/dist/esm/clients/HubPoolClient.js +87 -60
- package/dist/esm/clients/HubPoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +8 -6
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +13 -18
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockHubPoolClient.d.ts +2 -2
- package/dist/esm/clients/mocks/MockHubPoolClient.js +1 -1
- package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
- package/dist/esm/constants.d.ts +3 -0
- package/dist/esm/constants.js +12 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/providers/solana/retryRpcFactory.js +15 -10
- package/dist/esm/providers/solana/retryRpcFactory.js.map +1 -1
- package/dist/types/arch/evm/SpokeUtils.d.ts.map +1 -1
- package/dist/types/arch/svm/SpokeUtils.d.ts +38 -10
- package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -1
- package/dist/types/arch/svm/encoders.d.ts +20 -0
- package/dist/types/arch/svm/encoders.d.ts.map +1 -0
- package/dist/types/arch/svm/index.d.ts +1 -0
- package/dist/types/arch/svm/index.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/DataworkerUtils.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/FillUtils.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +58 -58
- package/dist/types/clients/HubPoolClient.d.ts +9 -3
- package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/mocks/MockHubPoolClient.d.ts +2 -2
- package/dist/types/clients/mocks/MockHubPoolClient.d.ts.map +1 -1
- package/dist/types/constants.d.ts +3 -0
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/providers/solana/retryRpcFactory.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/arch/evm/SpokeUtils.ts +16 -9
- package/src/arch/svm/SpokeUtils.ts +199 -11
- package/src/arch/svm/encoders.ts +86 -0
- package/src/arch/svm/index.ts +1 -0
- package/src/clients/BundleDataClient/utils/DataworkerUtils.ts +20 -14
- package/src/clients/BundleDataClient/utils/FillUtils.ts +1 -7
- package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +0 -2
- package/src/clients/HubPoolClient.ts +79 -50
- package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +22 -8
- package/src/clients/SpokePoolClient/SpokePoolClient.ts +31 -39
- package/src/clients/mocks/MockHubPoolClient.ts +3 -3
- package/src/constants.ts +12 -0
- package/src/providers/solana/retryRpcFactory.ts +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/SpokePoolClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/SpokePoolClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,8 +25,8 @@ export declare class MockHubPoolClient extends HubPoolClient {
|
|
|
25
25
|
l2TokenEnabledForL1TokenAtBlock(l1Token: EvmAddress, destinationChainId: number, hubBlockNumber: number): boolean;
|
|
26
26
|
l2TokenHasPoolRebalanceRoute(l2Token: Address, chainId: number, hubPoolBlock: number): boolean;
|
|
27
27
|
deleteTokenMapping(l1Token: string, chainId: number): void;
|
|
28
|
-
getL1TokenForL2TokenAtBlock(l2Token: Address, chainId: number, blockNumber: number): EvmAddress
|
|
29
|
-
getL2TokenForL1TokenAtBlock(l1Token: EvmAddress, chainId: number, blockNumber: number): Address
|
|
28
|
+
getL1TokenForL2TokenAtBlock(l2Token: Address, chainId: number, blockNumber: number): EvmAddress;
|
|
29
|
+
getL2TokenForL1TokenAtBlock(l1Token: EvmAddress, chainId: number, blockNumber: number): Address;
|
|
30
30
|
getTokenInfoForL1Token(l1Token: EvmAddress): L1TokenInfo | undefined;
|
|
31
31
|
_update(eventNames: string[]): Promise<HubPoolUpdate>;
|
|
32
32
|
readonly eventSignatures: Record<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockHubPoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/mocks/MockHubPoolClient.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,SAAS,EAAgD,UAAU,EAAE,OAAO,EAAa,MAAM,aAAa,CAAC;AACtH,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,uBAAuB,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAgB,cAAc,EAAmB,MAAM,cAAc,CAAC;AAc7E,qBAAa,iBAAkB,SAAQ,aAAa;IAC3C,kBAAkB,oBAAmB;IAC5C,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,wBAAwB,CAAS;IAEzC,OAAO,CAAC,YAAY,CAAqB;IAEzC,OAAO,CAAC,eAAe,CAA6D;IAEpF,OAAO,CAAC,YAAY,CAAe;gBAGjC,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,OAAO,EAAE,QAAQ,EACjB,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,SAAI,EACnB,OAAO,SAAI;IAMb,0BAA0B,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAKhD,4BAA4B,IAAI,IAAI;IAI9B,uBAAuB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAMtE,4BAA4B,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IASvF,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,SAAI,GAAG,IAAI;IAiBhF,oBAAoB,CAAC,WAAW,EAAE,MAAM;IAIxC,UAAU,CAAC,OAAO,EAAE,WAAW;IAI/B,WAAW;IAIX,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAKjE,+BAA+B,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO;IAOjH,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAS9F,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAInD,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU
|
|
1
|
+
{"version":3,"file":"MockHubPoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/mocks/MockHubPoolClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAqB,YAAY,UAAY,UAAU,QAAoB,CAAC;AAGnF,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAIlE,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAGlC,eAAO,MAAM,2CAA2C,IAAI,CAAC;AAG7D,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAOtD,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,UAA2B,CAAC;AAE1E,eAAO,MAAM,mBAAmB,QAAuB,CAAC;AACxD,eAAO,MAAM,wBAAwB,QAAU,CAAC;AAEhD,eAAO,MAAM,iCAAiC,+CAA+C,CAAC;AAC9F,eAAO,MAAM,qCAAqC,iDAAiD,CAAC;AACpG,eAAO,MAAM,sCAAsC,+CAA+C,CAAC;AAEnG,eAAO,MAAM,+BAA+B,gDAAgD,CAAC;AAE7F,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,eAAO,MAAM,oBAAoB,UAKhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAY/B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;CAO7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAqB,YAAY,UAAY,UAAU,QAAoB,CAAC;AAGnF,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAIlE,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAGlC,eAAO,MAAM,2CAA2C,IAAI,CAAC;AAG7D,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAOtD,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,UAA2B,CAAC;AAE1E,eAAO,MAAM,mBAAmB,QAAuB,CAAC;AACxD,eAAO,MAAM,wBAAwB,QAAU,CAAC;AAEhD,eAAO,MAAM,iCAAiC,+CAA+C,CAAC;AAC9F,eAAO,MAAM,qCAAqC,iDAAiD,CAAC;AACpG,eAAO,MAAM,sCAAsC,+CAA+C,CAAC;AAEnG,eAAO,MAAM,+BAA+B,gDAAgD,CAAC;AAE7F,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,eAAO,MAAM,oBAAoB,UAKhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAY/B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;CAO7B,CAAC;AAKF,eAAO,MAAM,wBAAwB;;CAOpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retryRpcFactory.d.ts","sourceRoot":"","sources":["../../../../src/providers/solana/retryRpcFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2C,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"retryRpcFactory.d.ts","sourceRoot":"","sources":["../../../../src/providers/solana/retryRpcFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2C,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAItE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,qBAAa,qBAAsB,SAAQ,uBAAuB;IAO9D,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IANpC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAE7C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGd,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,EAClC,GAAG,4BAA4B,EAAE,qBAAqB,CAAC,OAAO,2BAA2B,CAAC;IAuBrF,eAAe,IAAI,YAAY;IAMtC;;;;;OAKG;YACW,QAAQ;IA0CtB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;CAQ5B"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@across-protocol/sdk",
|
|
3
3
|
"author": "UMA Team",
|
|
4
|
-
"version": "4.3.
|
|
4
|
+
"version": "4.3.47",
|
|
5
5
|
"license": "AGPL-3.0",
|
|
6
6
|
"homepage": "https://docs.across.to/reference/sdk",
|
|
7
7
|
"files": [
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"bump-version:minor": "yarn version --minor --no-git-tag-version --no-commit-hooks && git commit -m 'chore: bump version' ./package.json --no-verify",
|
|
35
35
|
"bump-version:patch": "yarn version --patch --no-git-tag-version --no-commit-hooks && git commit -m 'chore: bump version' ./package.json --no-verify",
|
|
36
36
|
"typechain": "typechain --target ethers-v5 --out-dir src/utils/abi/typechain 'src/utils/abi/contracts/*.json' && eslint --fix src/utils/abi/typechain && yarn prettier --write \"src/utils/abi/typechain/**/*.ts\"",
|
|
37
|
-
"yalc:watch": "nodemon --watch src --ext ts,tsx,json,js,jsx --
|
|
37
|
+
"yalc:watch": "nodemon --watch src --ext ts,tsx,json,js,jsx --exec 'yalc push'"
|
|
38
38
|
},
|
|
39
39
|
"lint-staged": {
|
|
40
40
|
"*.ts": "yarn lint"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from "assert";
|
|
2
2
|
import { BytesLike, Contract, PopulatedTransaction, providers } from "ethers";
|
|
3
|
-
import { CHAIN_IDs } from "../../constants";
|
|
3
|
+
import { CHAIN_IDs, SPOKEPOOL_UPGRADE_BLOCKS } from "../../constants";
|
|
4
4
|
import {
|
|
5
5
|
Deposit,
|
|
6
6
|
FillStatus,
|
|
@@ -263,9 +263,6 @@ export async function findFillBlock(
|
|
|
263
263
|
highBlockNumber?: number
|
|
264
264
|
): Promise<number | undefined> {
|
|
265
265
|
const { provider } = spokePool;
|
|
266
|
-
highBlockNumber ??= await provider.getBlockNumber();
|
|
267
|
-
assert(highBlockNumber > lowBlockNumber, `Block numbers out of range (${lowBlockNumber} >= ${highBlockNumber})`);
|
|
268
|
-
|
|
269
266
|
// In production the chainId returned from the provider matches 1:1 with the actual chainId. Querying the provider
|
|
270
267
|
// object saves an RPC query because the chainId is cached by StaticJsonRpcProvider instances. In hre, the SpokePool
|
|
271
268
|
// may be configured with a different chainId than what is returned by the provider.
|
|
@@ -277,6 +274,12 @@ export async function findFillBlock(
|
|
|
277
274
|
`Origin & destination chain IDs must not be equal (${destinationChainId})`
|
|
278
275
|
);
|
|
279
276
|
|
|
277
|
+
// For a subset of older SpokePools, their deployment ABIs did not include the fillStatus mapping.
|
|
278
|
+
// Bound any searches by the blocks where fillStatus was added.
|
|
279
|
+
lowBlockNumber = Math.max(lowBlockNumber, SPOKEPOOL_UPGRADE_BLOCKS[destinationChainId] ?? lowBlockNumber);
|
|
280
|
+
highBlockNumber ??= await provider.getBlockNumber();
|
|
281
|
+
assert(highBlockNumber > lowBlockNumber, `Block numbers out of range (${lowBlockNumber} >= ${highBlockNumber})`);
|
|
282
|
+
|
|
280
283
|
// Make sure the relay was completed within the block range supplied by the caller.
|
|
281
284
|
const [initialFillStatus, finalFillStatus] = (
|
|
282
285
|
await Promise.all([
|
|
@@ -346,29 +349,33 @@ export async function findFillEvent(
|
|
|
346
349
|
const destinationChainId = Object.values(CHAIN_IDs).includes(relayData.originChainId)
|
|
347
350
|
? (await spokePool.provider.getNetwork()).chainId
|
|
348
351
|
: Number(await spokePool.chainId());
|
|
349
|
-
const fillEvent = spreadEventWithBlockNumber(event) as
|
|
352
|
+
const fillEvent = spreadEventWithBlockNumber(event) as Omit<
|
|
353
|
+
FillWithBlock,
|
|
354
|
+
"depositor" | "recipient" | "inputToken" | "outputToken" | "exclusiveRelayer" | "relayer"
|
|
355
|
+
> & {
|
|
350
356
|
depositor: string;
|
|
351
357
|
recipient: string;
|
|
352
358
|
inputToken: string;
|
|
353
359
|
outputToken: string;
|
|
354
360
|
exclusiveRelayer: string;
|
|
355
361
|
relayer: string;
|
|
356
|
-
relayExecutionInfo: RelayExecutionEventInfo & { updatedRecipient: string };
|
|
362
|
+
relayExecutionInfo: Omit<RelayExecutionEventInfo, "updatedRecipient"> & { updatedRecipient: string };
|
|
357
363
|
};
|
|
358
|
-
const fill = {
|
|
364
|
+
const fill: FillWithBlock = {
|
|
359
365
|
...fillEvent,
|
|
360
366
|
inputToken: toAddressType(fillEvent.inputToken, relayData.originChainId),
|
|
361
367
|
outputToken: toAddressType(fillEvent.outputToken, destinationChainId),
|
|
362
368
|
depositor: toAddressType(fillEvent.depositor, relayData.originChainId),
|
|
363
369
|
recipient: toAddressType(fillEvent.recipient, destinationChainId),
|
|
364
370
|
exclusiveRelayer: toAddressType(fillEvent.exclusiveRelayer, destinationChainId),
|
|
365
|
-
relayer: toAddressType(fillEvent.relayer,
|
|
371
|
+
relayer: toAddressType(fillEvent.relayer, fillEvent.repaymentChainId),
|
|
366
372
|
relayExecutionInfo: {
|
|
367
373
|
...fillEvent.relayExecutionInfo,
|
|
368
374
|
updatedRecipient: toAddressType(fillEvent.relayExecutionInfo.updatedRecipient, destinationChainId),
|
|
369
375
|
},
|
|
370
376
|
destinationChainId,
|
|
371
377
|
messageHash: getMessageHash(event.args.message),
|
|
372
|
-
}
|
|
378
|
+
};
|
|
379
|
+
|
|
373
380
|
return fill;
|
|
374
381
|
}
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
Address,
|
|
17
17
|
FetchAccountConfig,
|
|
18
18
|
IAccountMeta,
|
|
19
|
+
IInstruction,
|
|
19
20
|
KeyPairSigner,
|
|
20
21
|
ReadonlyUint8Array,
|
|
21
22
|
appendTransactionMessageInstruction,
|
|
@@ -31,6 +32,8 @@ import {
|
|
|
31
32
|
signTransactionMessageWithSigners,
|
|
32
33
|
some,
|
|
33
34
|
type TransactionSigner,
|
|
35
|
+
type WritableAccount,
|
|
36
|
+
type ReadonlyAccount,
|
|
34
37
|
type Commitment,
|
|
35
38
|
} from "@solana/kit";
|
|
36
39
|
import assert from "assert";
|
|
@@ -73,6 +76,10 @@ import {
|
|
|
73
76
|
toAddress,
|
|
74
77
|
unwrapEventData,
|
|
75
78
|
getRootBundlePda,
|
|
79
|
+
getAcrossPlusMessageDecoder,
|
|
80
|
+
getAccountMeta,
|
|
81
|
+
getInstructionParamsPda,
|
|
82
|
+
type AcrossPlusMessage,
|
|
76
83
|
toSvmRelayData,
|
|
77
84
|
} from "./";
|
|
78
85
|
import { SvmCpiEventsClient } from "./eventsClient";
|
|
@@ -479,26 +486,30 @@ export async function findFillEvent(
|
|
|
479
486
|
|
|
480
487
|
if (fillEvents.length > 0) {
|
|
481
488
|
const rawFillEvent = fillEvents[0];
|
|
482
|
-
const eventData = unwrapEventData(rawFillEvent.data, ["depositId", "inputAmount"]) as
|
|
489
|
+
const eventData = unwrapEventData(rawFillEvent.data, ["depositId", "inputAmount"]) as Omit<
|
|
490
|
+
FillWithBlock,
|
|
491
|
+
"depositor" | "recipient" | "inputToken" | "outputToken" | "exclusiveRelayer" | "relayer"
|
|
492
|
+
> & {
|
|
483
493
|
depositor: string;
|
|
484
494
|
recipient: string;
|
|
485
495
|
inputToken: string;
|
|
486
496
|
outputToken: string;
|
|
487
497
|
exclusiveRelayer: string;
|
|
488
498
|
relayer: string;
|
|
489
|
-
relayExecutionInfo: RelayExecutionEventInfo & { updatedRecipient: string };
|
|
499
|
+
relayExecutionInfo: Omit<RelayExecutionEventInfo, "updatedRecipient"> & { updatedRecipient: string };
|
|
490
500
|
};
|
|
491
501
|
const originChainId = eventData.originChainId;
|
|
492
|
-
|
|
502
|
+
|
|
503
|
+
const parsedFillEvent: FillWithBlock = {
|
|
493
504
|
...eventData,
|
|
494
|
-
|
|
505
|
+
txnRef: rawFillEvent.signature,
|
|
495
506
|
blockNumber: Number(rawFillEvent.slot),
|
|
496
|
-
|
|
507
|
+
txnIndex: 0,
|
|
497
508
|
logIndex: 0,
|
|
498
509
|
destinationChainId,
|
|
499
510
|
inputToken: toAddressType(eventData.inputToken, originChainId),
|
|
500
511
|
outputToken: toAddressType(eventData.outputToken, destinationChainId),
|
|
501
|
-
relayer: toAddressType(eventData.relayer,
|
|
512
|
+
relayer: toAddressType(eventData.relayer, eventData.repaymentChainId),
|
|
502
513
|
exclusiveRelayer: toAddressType(eventData.exclusiveRelayer, destinationChainId),
|
|
503
514
|
depositor: toAddressType(eventData.depositor, originChainId),
|
|
504
515
|
recipient: toAddressType(eventData.recipient, destinationChainId),
|
|
@@ -506,7 +517,8 @@ export async function findFillEvent(
|
|
|
506
517
|
...eventData.relayExecutionInfo,
|
|
507
518
|
updatedRecipient: eventData.relayExecutionInfo.updatedRecipient,
|
|
508
519
|
},
|
|
509
|
-
}
|
|
520
|
+
};
|
|
521
|
+
|
|
510
522
|
return parsedFillEvent;
|
|
511
523
|
}
|
|
512
524
|
|
|
@@ -628,6 +640,21 @@ export async function getFillRelayTx(
|
|
|
628
640
|
getAssociatedTokenAddress(SvmAddress.from(signer.address), relayData.outputToken, mintInfo.programAddress),
|
|
629
641
|
]);
|
|
630
642
|
|
|
643
|
+
// Add remaining accounts if the relayData has a non-empty message.
|
|
644
|
+
// @dev ! since in the context of creating a `fillRelayTx`, `relayData` must be defined.
|
|
645
|
+
const remainingAccounts: (WritableAccount | ReadonlyAccount)[] = [];
|
|
646
|
+
if (relayData.message !== "0x") {
|
|
647
|
+
const acrossPlusMessage = deserializeMessage(relayData.message);
|
|
648
|
+
// The first `remainingAccount` _must_ be the handler address.
|
|
649
|
+
// https://github.com/across-protocol/contracts/blob/3310f8dc716407a5f97ef5fd2eae63df83251f2f/programs/svm-spoke/src/utils/message_utils.rs#L36.
|
|
650
|
+
remainingAccounts.push(getAccountMeta(acrossPlusMessage.handler, true));
|
|
651
|
+
remainingAccounts.push(
|
|
652
|
+
...acrossPlusMessage.accounts.map((account, idx) =>
|
|
653
|
+
getAccountMeta(account, idx < acrossPlusMessage.accounts.length - acrossPlusMessage.read_only_len)
|
|
654
|
+
)
|
|
655
|
+
);
|
|
656
|
+
}
|
|
657
|
+
|
|
631
658
|
const fillInput: SvmSpokeClient.FillRelayInput = {
|
|
632
659
|
signer: signer,
|
|
633
660
|
state,
|
|
@@ -648,7 +675,108 @@ export async function getFillRelayTx(
|
|
|
648
675
|
};
|
|
649
676
|
// Pass createRecipientAtaIfNeeded =true to the createFillInstruction function to create the recipient token account
|
|
650
677
|
// if it doesn't exist.
|
|
651
|
-
return createFillInstruction(
|
|
678
|
+
return createFillInstruction(
|
|
679
|
+
signer,
|
|
680
|
+
solanaClient,
|
|
681
|
+
fillInput,
|
|
682
|
+
svmRelayData,
|
|
683
|
+
mintInfo.data.decimals,
|
|
684
|
+
true,
|
|
685
|
+
remainingAccounts
|
|
686
|
+
);
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
/**
|
|
690
|
+
* Creates a fill instruction with an instruction params PDA as the relayData input.
|
|
691
|
+
* @param spokePoolAddr Address of the spoke pool we're trying to fill through
|
|
692
|
+
* @param solanaClient RPC client to interact with Solana chain
|
|
693
|
+
* @param relayData RelayData instance, supplemented with destinationChainId
|
|
694
|
+
* @param signer signer associated with the relayer creating a Fill. Can be VoidSigner for gas estimation
|
|
695
|
+
* @param repaymentChainId Chain id where relayer repayment is desired
|
|
696
|
+
* @param repaymentAddress Address to which repayment will go to on repaymentChainId
|
|
697
|
+
* @returns FillRelay transaction
|
|
698
|
+
*/
|
|
699
|
+
export async function getIPFillRelayTx(
|
|
700
|
+
spokePoolAddr: SvmAddress,
|
|
701
|
+
solanaClient: SVMProvider,
|
|
702
|
+
relayData: Omit<RelayData, "recipient" | "outputToken"> & {
|
|
703
|
+
destinationChainId: number;
|
|
704
|
+
recipient: SvmAddress;
|
|
705
|
+
outputToken: SvmAddress;
|
|
706
|
+
},
|
|
707
|
+
signer: TransactionSigner,
|
|
708
|
+
repaymentChainId: number,
|
|
709
|
+
repaymentAddress: SdkAddress
|
|
710
|
+
) {
|
|
711
|
+
const program = toAddress(spokePoolAddr);
|
|
712
|
+
const _relayDataHash = getRelayDataHash(
|
|
713
|
+
{ ...relayData, messageHash: getMessageHash(relayData.message) },
|
|
714
|
+
relayData.destinationChainId
|
|
715
|
+
);
|
|
716
|
+
const relayDataHash = new Uint8Array(Buffer.from(_relayDataHash.slice(2), "hex"));
|
|
717
|
+
|
|
718
|
+
const [state, delegate, instructionParams] = await Promise.all([
|
|
719
|
+
getStatePda(program),
|
|
720
|
+
getFillRelayDelegatePda(relayDataHash, BigInt(repaymentChainId), toAddress(repaymentAddress), program),
|
|
721
|
+
getInstructionParamsPda(program, signer.address),
|
|
722
|
+
]);
|
|
723
|
+
|
|
724
|
+
const mint = toAddress(relayData.outputToken);
|
|
725
|
+
const mintInfo = await getMintInfo(solanaClient, mint);
|
|
726
|
+
|
|
727
|
+
const [recipientAta, relayerAta, fillStatus, eventAuthority] = await Promise.all([
|
|
728
|
+
getAssociatedTokenAddress(relayData.recipient, relayData.outputToken, mintInfo.programAddress),
|
|
729
|
+
getAssociatedTokenAddress(SvmAddress.from(signer.address), relayData.outputToken, mintInfo.programAddress),
|
|
730
|
+
getFillStatusPda(program, relayData, relayData.destinationChainId),
|
|
731
|
+
getEventAuthority(program),
|
|
732
|
+
]);
|
|
733
|
+
|
|
734
|
+
// Add remaining accounts if the relayData has a non-empty message.
|
|
735
|
+
// @dev ! since in the context of creating a `fillRelayTx`, `relayData` must be defined.
|
|
736
|
+
const remainingAccounts: (WritableAccount | ReadonlyAccount)[] = [];
|
|
737
|
+
if (relayData.message !== "0x") {
|
|
738
|
+
const acrossPlusMessage = deserializeMessage(relayData.message);
|
|
739
|
+
// The first `remainingAccount` _must_ be the handler address.
|
|
740
|
+
// https://github.com/across-protocol/contracts/blob/3310f8dc716407a5f97ef5fd2eae63df83251f2f/programs/svm-spoke/src/utils/message_utils.rs#L36.
|
|
741
|
+
remainingAccounts.push(getAccountMeta(acrossPlusMessage.handler, true));
|
|
742
|
+
remainingAccounts.push(
|
|
743
|
+
...acrossPlusMessage.accounts.map((account, idx) =>
|
|
744
|
+
getAccountMeta(account, idx < acrossPlusMessage.accounts.length - acrossPlusMessage.read_only_len)
|
|
745
|
+
)
|
|
746
|
+
);
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
const fillInput: SvmSpokeClient.FillRelayInput = {
|
|
750
|
+
signer: signer,
|
|
751
|
+
state,
|
|
752
|
+
delegate,
|
|
753
|
+
mint,
|
|
754
|
+
relayerTokenAccount: relayerAta,
|
|
755
|
+
recipientTokenAccount: recipientAta,
|
|
756
|
+
fillStatus,
|
|
757
|
+
tokenProgram: mintInfo.programAddress,
|
|
758
|
+
associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
|
|
759
|
+
systemProgram: SYSTEM_PROGRAM_ADDRESS,
|
|
760
|
+
eventAuthority,
|
|
761
|
+
program,
|
|
762
|
+
instructionParams,
|
|
763
|
+
relayHash: relayDataHash,
|
|
764
|
+
relayData: null,
|
|
765
|
+
repaymentChainId: null,
|
|
766
|
+
repaymentAddress: null,
|
|
767
|
+
};
|
|
768
|
+
|
|
769
|
+
// Pass createRecipientAtaIfNeeded =true to the createFillInstruction function to create the recipient token account
|
|
770
|
+
// if it doesn't exist.
|
|
771
|
+
return createFillInstruction(
|
|
772
|
+
signer,
|
|
773
|
+
solanaClient,
|
|
774
|
+
fillInput,
|
|
775
|
+
{ outputAmount: relayData.outputAmount.toBigInt(), recipient: toAddress(relayData.recipient) },
|
|
776
|
+
mintInfo.data.decimals,
|
|
777
|
+
true,
|
|
778
|
+
remainingAccounts
|
|
779
|
+
);
|
|
652
780
|
}
|
|
653
781
|
|
|
654
782
|
/**
|
|
@@ -664,8 +792,10 @@ export const createFillInstruction = async (
|
|
|
664
792
|
signer: TransactionSigner,
|
|
665
793
|
solanaClient: SVMProvider,
|
|
666
794
|
fillInput: SvmSpokeClient.FillRelayInput,
|
|
795
|
+
relayData: Pick<SvmSpokeClient.RelayDataArgs, "outputAmount" | "recipient">,
|
|
667
796
|
tokenDecimals: number,
|
|
668
|
-
createRecipientAtaIfNeeded: boolean = true
|
|
797
|
+
createRecipientAtaIfNeeded: boolean = true,
|
|
798
|
+
remainingAccounts: (WritableAccount | ReadonlyAccount)[] = []
|
|
669
799
|
) => {
|
|
670
800
|
const mintInfo = await getMintInfo(solanaClient, fillInput.mint);
|
|
671
801
|
const approveIx = getApproveCheckedInstruction(
|
|
@@ -674,7 +804,7 @@ export const createFillInstruction = async (
|
|
|
674
804
|
mint: fillInput.mint,
|
|
675
805
|
delegate: fillInput.delegate,
|
|
676
806
|
owner: fillInput.signer,
|
|
677
|
-
amount:
|
|
807
|
+
amount: relayData.outputAmount,
|
|
678
808
|
decimals: tokenDecimals,
|
|
679
809
|
},
|
|
680
810
|
{
|
|
@@ -685,7 +815,7 @@ export const createFillInstruction = async (
|
|
|
685
815
|
const getCreateAssociatedTokenIdempotentIx = () =>
|
|
686
816
|
getCreateAssociatedTokenIdempotentInstruction({
|
|
687
817
|
payer: signer,
|
|
688
|
-
owner:
|
|
818
|
+
owner: relayData.recipient,
|
|
689
819
|
mint: fillInput.mint,
|
|
690
820
|
ata: fillInput.recipientTokenAccount,
|
|
691
821
|
systemProgram: SYSTEM_PROGRAM_ADDRESS,
|
|
@@ -694,6 +824,9 @@ export const createFillInstruction = async (
|
|
|
694
824
|
|
|
695
825
|
const createFillIx = SvmSpokeClient.getFillRelayInstruction(fillInput);
|
|
696
826
|
|
|
827
|
+
// Add remaining accounts.
|
|
828
|
+
createFillIx.accounts.push(...remainingAccounts);
|
|
829
|
+
|
|
697
830
|
return pipe(
|
|
698
831
|
await createDefaultTransaction(solanaClient, signer),
|
|
699
832
|
(tx) =>
|
|
@@ -703,6 +836,14 @@ export const createFillInstruction = async (
|
|
|
703
836
|
);
|
|
704
837
|
};
|
|
705
838
|
|
|
839
|
+
export function deserializeMessage(_message: string): AcrossPlusMessage {
|
|
840
|
+
const message = new Uint8Array(Buffer.from(_message.startsWith("0x") ? _message.slice(2) : _message, "hex"));
|
|
841
|
+
// Add remaining accounts if the relayData has a non-empty message.
|
|
842
|
+
// @dev ! since in the context of creating a `fillRelayTx`, `relayData` must be defined.
|
|
843
|
+
const acrossPlusMessageDecoder = getAcrossPlusMessageDecoder();
|
|
844
|
+
return acrossPlusMessageDecoder.decode(message);
|
|
845
|
+
}
|
|
846
|
+
|
|
706
847
|
/**
|
|
707
848
|
* Creates a deposit instruction.
|
|
708
849
|
* @param signer - The signer of the transaction.
|
|
@@ -972,6 +1113,53 @@ async function fetchBatchFillStatusFromPdaAccounts(
|
|
|
972
1113
|
return fillStatuses;
|
|
973
1114
|
}
|
|
974
1115
|
|
|
1116
|
+
/**
|
|
1117
|
+
* Returns a set of instructions to execute to fill a relay via instruction params.
|
|
1118
|
+
* @param spokePool The program ID of the Solana spoke pool.
|
|
1119
|
+
* @param relayData The relay data to write to the instruction params PDA.
|
|
1120
|
+
* @param signer The transaction signer and authority of the instruction params PDA.
|
|
1121
|
+
* @param maxWriteSize The maximum fragment size to write to instruction params.
|
|
1122
|
+
*/
|
|
1123
|
+
export async function getFillRelayViaInstructionParamsInstructions(
|
|
1124
|
+
spokePool: Address<string>,
|
|
1125
|
+
relayData: RelayData,
|
|
1126
|
+
repaymentChainId: number,
|
|
1127
|
+
repaymentAddress: SdkAddress,
|
|
1128
|
+
signer: TransactionSigner<string>,
|
|
1129
|
+
maxWriteSize = 450
|
|
1130
|
+
): Promise<IInstruction[]> {
|
|
1131
|
+
const instructionParams = await getInstructionParamsPda(spokePool, signer.address);
|
|
1132
|
+
|
|
1133
|
+
const relayDataEncoder = SvmSpokeClient.getFillRelayParamsEncoder();
|
|
1134
|
+
const svmRelayData = toSvmRelayData(relayData);
|
|
1135
|
+
const encodedRelayData = relayDataEncoder.encode({
|
|
1136
|
+
relayData: svmRelayData,
|
|
1137
|
+
repaymentChainId,
|
|
1138
|
+
repaymentAddress: toAddress(repaymentAddress),
|
|
1139
|
+
});
|
|
1140
|
+
|
|
1141
|
+
const initInstructionParamsIx = SvmSpokeClient.getInitializeInstructionParamsInstruction({
|
|
1142
|
+
signer,
|
|
1143
|
+
instructionParams,
|
|
1144
|
+
totalSize: encodedRelayData.length,
|
|
1145
|
+
});
|
|
1146
|
+
const instructions: IInstruction[] = [initInstructionParamsIx];
|
|
1147
|
+
|
|
1148
|
+
for (let i = 0; i <= encodedRelayData.length / maxWriteSize; ++i) {
|
|
1149
|
+
const offset = i * maxWriteSize;
|
|
1150
|
+
const offsetEnd = Math.min(offset + maxWriteSize, encodedRelayData.length);
|
|
1151
|
+
const fragment = encodedRelayData.slice(offset, offsetEnd);
|
|
1152
|
+
const writeInstructionParamsIx = SvmSpokeClient.getWriteInstructionParamsFragmentInstruction({
|
|
1153
|
+
signer,
|
|
1154
|
+
instructionParams,
|
|
1155
|
+
offset,
|
|
1156
|
+
fragment,
|
|
1157
|
+
});
|
|
1158
|
+
instructions.push(writeInstructionParamsIx);
|
|
1159
|
+
}
|
|
1160
|
+
return instructions;
|
|
1161
|
+
}
|
|
1162
|
+
|
|
975
1163
|
/**
|
|
976
1164
|
* Returns the delegate PDA for deposit.
|
|
977
1165
|
*/
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AccountRole,
|
|
3
|
+
addDecoderSizePrefix,
|
|
4
|
+
addEncoderSizePrefix,
|
|
5
|
+
getAddressDecoder,
|
|
6
|
+
getAddressEncoder,
|
|
7
|
+
getArrayEncoder,
|
|
8
|
+
getArrayDecoder,
|
|
9
|
+
getBytesDecoder,
|
|
10
|
+
getBytesEncoder,
|
|
11
|
+
getStructDecoder,
|
|
12
|
+
getStructEncoder,
|
|
13
|
+
getU8Decoder,
|
|
14
|
+
getU8Encoder,
|
|
15
|
+
getU32Decoder,
|
|
16
|
+
getU32Encoder,
|
|
17
|
+
getU64Decoder,
|
|
18
|
+
getU64Encoder,
|
|
19
|
+
type Address,
|
|
20
|
+
type Decoder,
|
|
21
|
+
type Encoder,
|
|
22
|
+
type ReadonlyUint8Array,
|
|
23
|
+
type WritableAccount,
|
|
24
|
+
type ReadonlyAccount,
|
|
25
|
+
} from "@solana/kit";
|
|
26
|
+
|
|
27
|
+
export type AcrossPlusMessage = {
|
|
28
|
+
handler: Address;
|
|
29
|
+
read_only_len: number;
|
|
30
|
+
value_amount: bigint;
|
|
31
|
+
accounts: Array<Address>;
|
|
32
|
+
handler_message: ReadonlyUint8Array;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export type CompiledIx = {
|
|
36
|
+
program_id_index: number;
|
|
37
|
+
account_key_indexes: Array<number>;
|
|
38
|
+
data: ReadonlyUint8Array;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export function getAcrossPlusMessageEncoder(): Encoder<AcrossPlusMessage> {
|
|
42
|
+
return getStructEncoder([
|
|
43
|
+
["handler", getAddressEncoder()],
|
|
44
|
+
["read_only_len", getU8Encoder()],
|
|
45
|
+
["value_amount", getU64Encoder()],
|
|
46
|
+
["accounts", getArrayEncoder(getAddressEncoder())],
|
|
47
|
+
["handler_message", addEncoderSizePrefix(getBytesEncoder(), getU32Encoder())],
|
|
48
|
+
]);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function getAcrossPlusMessageDecoder(): Decoder<AcrossPlusMessage> {
|
|
52
|
+
return getStructDecoder([
|
|
53
|
+
["handler", getAddressDecoder()],
|
|
54
|
+
["read_only_len", getU8Decoder()],
|
|
55
|
+
["value_amount", getU64Decoder()],
|
|
56
|
+
["accounts", getArrayDecoder(getAddressDecoder())],
|
|
57
|
+
["handler_message", addDecoderSizePrefix(getBytesDecoder(), getU32Decoder())],
|
|
58
|
+
]);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function getHandlerMessageEncoder(): Encoder<Array<CompiledIx>> {
|
|
62
|
+
return getArrayEncoder(getCompiledIxEncoder());
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function getCompiledIxEncoder(): Encoder<CompiledIx> {
|
|
66
|
+
return getStructEncoder([
|
|
67
|
+
["program_id_index", getU8Encoder()],
|
|
68
|
+
["account_key_indexes", getArrayEncoder(getU8Encoder())],
|
|
69
|
+
["data", addEncoderSizePrefix(getBytesEncoder(), getU32Encoder())],
|
|
70
|
+
]);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function getCompiledIxDecoder(): Decoder<CompiledIx> {
|
|
74
|
+
return getStructDecoder([
|
|
75
|
+
["program_id_index", getU8Decoder()],
|
|
76
|
+
["account_key_indexes", getArrayDecoder(getU8Decoder())],
|
|
77
|
+
["data", addDecoderSizePrefix(getBytesDecoder(), getU32Decoder())],
|
|
78
|
+
]);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function getAccountMeta(value: Address, isWritable: boolean): WritableAccount | ReadonlyAccount {
|
|
82
|
+
return Object.freeze({
|
|
83
|
+
address: value,
|
|
84
|
+
role: isWritable ? AccountRole.WRITABLE : AccountRole.READONLY,
|
|
85
|
+
});
|
|
86
|
+
}
|
package/src/arch/svm/index.ts
CHANGED
|
@@ -18,7 +18,6 @@ import {
|
|
|
18
18
|
count2DDictionaryValues,
|
|
19
19
|
count3DDictionaryValues,
|
|
20
20
|
toAddressType,
|
|
21
|
-
isDefined,
|
|
22
21
|
} from "../../../utils";
|
|
23
22
|
import {
|
|
24
23
|
addLastRunningBalance,
|
|
@@ -154,15 +153,21 @@ export function _buildPoolRebalanceRoot(
|
|
|
154
153
|
([l2TokenAddress, { realizedLpFees: totalRealizedLpFee, totalRefundAmount }]) => {
|
|
155
154
|
// If the repayment token and repayment chain ID do not map to a PoolRebalanceRoute graph, then
|
|
156
155
|
// there are no relevant L1 running balances.
|
|
156
|
+
if (
|
|
157
|
+
!clients.hubPoolClient.l2TokenHasPoolRebalanceRoute(
|
|
158
|
+
toAddressType(l2TokenAddress, repaymentChainId),
|
|
159
|
+
repaymentChainId,
|
|
160
|
+
mainnetBundleEndBlock
|
|
161
|
+
)
|
|
162
|
+
) {
|
|
163
|
+
chainWithRefundsOnly.add(repaymentChainId);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
157
166
|
const l1Token = clients.hubPoolClient.getL1TokenForL2TokenAtBlock(
|
|
158
167
|
toAddressType(l2TokenAddress, repaymentChainId),
|
|
159
168
|
repaymentChainId,
|
|
160
169
|
mainnetBundleEndBlock
|
|
161
170
|
);
|
|
162
|
-
if (!l1Token) {
|
|
163
|
-
chainWithRefundsOnly.add(repaymentChainId);
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
171
|
const l1TokenAddr = l1Token.toNative();
|
|
167
172
|
assert(l1Token.isEVM(), `Expected an EVM address: ${l1TokenAddr}`);
|
|
168
173
|
|
|
@@ -188,9 +193,6 @@ export function _buildPoolRebalanceRoot(
|
|
|
188
193
|
destinationChainId,
|
|
189
194
|
mainnetBundleEndBlock
|
|
190
195
|
);
|
|
191
|
-
|
|
192
|
-
assert(isDefined(l1TokenCounterpart), "getRefundInformationFromFill: l1TokenCounterpart is undefined");
|
|
193
|
-
|
|
194
196
|
const lpFee = deposit.lpFeePct.mul(deposit.inputAmount).div(fixedPointAdjustment);
|
|
195
197
|
updateRunningBalance(
|
|
196
198
|
runningBalances,
|
|
@@ -220,8 +222,6 @@ export function _buildPoolRebalanceRoot(
|
|
|
220
222
|
destinationChainId,
|
|
221
223
|
mainnetBundleEndBlock
|
|
222
224
|
);
|
|
223
|
-
assert(isDefined(l1TokenCounterpart), "getRefundInformationFromFill: l1TokenCounterpart is undefined");
|
|
224
|
-
|
|
225
225
|
const lpFee = deposit.lpFeePct.mul(deposit.inputAmount).div(fixedPointAdjustment);
|
|
226
226
|
updateRunningBalance(
|
|
227
227
|
runningBalances,
|
|
@@ -277,15 +277,21 @@ export function _buildPoolRebalanceRoot(
|
|
|
277
277
|
deposits.forEach((deposit) => {
|
|
278
278
|
// If the repayment token and repayment chain ID do not map to a PoolRebalanceRoute graph, then
|
|
279
279
|
// there are no relevant L1 running balances.
|
|
280
|
+
if (
|
|
281
|
+
!clients.hubPoolClient.l2TokenHasPoolRebalanceRoute(
|
|
282
|
+
deposit.inputToken,
|
|
283
|
+
deposit.originChainId,
|
|
284
|
+
mainnetBundleEndBlock
|
|
285
|
+
)
|
|
286
|
+
) {
|
|
287
|
+
chainWithRefundsOnly.add(deposit.originChainId);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
280
290
|
const l1TokenCounterpart = clients.hubPoolClient.getL1TokenForL2TokenAtBlock(
|
|
281
291
|
toAddressType(inputToken, originChainId),
|
|
282
292
|
originChainId,
|
|
283
293
|
mainnetBundleEndBlock
|
|
284
294
|
);
|
|
285
|
-
if (!l1TokenCounterpart) {
|
|
286
|
-
chainWithRefundsOnly.add(deposit.originChainId);
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
295
|
updateRunningBalance(runningBalances, originChainId, l1TokenCounterpart.toEvmAddress(), deposit.inputAmount);
|
|
290
296
|
});
|
|
291
297
|
});
|