@across-protocol/sdk 4.3.5 → 4.3.7
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/svm/SpokeUtils.d.ts +9 -1
- package/dist/cjs/arch/svm/SpokeUtils.js +52 -3
- package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +1 -0
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +2 -0
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +1 -0
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +2 -0
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.d.ts +1 -0
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/index.js +6 -7
- package/dist/cjs/clients/SpokePoolClient/index.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/types.d.ts +2 -0
- package/dist/cjs/clients/SpokePoolClient/types.js +6 -0
- package/dist/cjs/clients/SpokePoolClient/types.js.map +1 -0
- package/dist/esm/arch/svm/SpokeUtils.d.ts +18 -2
- package/dist/esm/arch/svm/SpokeUtils.js +59 -3
- package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +2 -2
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +1 -0
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +2 -0
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +1 -0
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +2 -0
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.d.ts +1 -0
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/index.js +5 -4
- package/dist/esm/clients/SpokePoolClient/index.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/types.d.ts +2 -0
- package/dist/esm/clients/SpokePoolClient/types.js +3 -0
- package/dist/esm/clients/SpokePoolClient/types.js.map +1 -0
- package/dist/types/arch/svm/SpokeUtils.d.ts +18 -2
- package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +1 -0
- package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +1 -0
- package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts +1 -0
- package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/index.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/types.d.ts +3 -0
- package/dist/types/clients/SpokePoolClient/types.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/arch/svm/SpokeUtils.ts +78 -3
- package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +2 -2
- package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +2 -0
- package/src/clients/SpokePoolClient/SVMSpokePoolClient.ts +2 -0
- package/src/clients/SpokePoolClient/SpokePoolClient.ts +1 -0
- package/src/clients/SpokePoolClient/index.ts +5 -2
- package/src/clients/SpokePoolClient/types.ts +2 -0
|
@@ -10,6 +10,7 @@ import { HubPoolClient } from "../HubPoolClient";
|
|
|
10
10
|
*/
|
|
11
11
|
export declare class EVMSpokePoolClient extends SpokePoolClient {
|
|
12
12
|
readonly spokePool: Contract;
|
|
13
|
+
readonly type = "EVM";
|
|
13
14
|
constructor(logger: winston.Logger, spokePool: Contract, hubPoolClient: HubPoolClient | null, chainId: number, deploymentBlock: number, eventSearchConfig?: MakeOptional<EventSearchConfig, "to">);
|
|
14
15
|
relayFillStatus(relayData: RelayData, atHeight?: number): Promise<FillStatus>;
|
|
15
16
|
fillStatusArray(relayData: RelayData[], atHeight?: number): Promise<(FillStatus | undefined)[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EVMSpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/EVMSpokePoolClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,MAAM,QAAQ,CAAC;AAS/C,OAAO,EAAoB,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,SAAS,EACT,mBAAmB,EAGnB,YAAY,EAIb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EAKlB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAmB,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"EVMSpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/EVMSpokePoolClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,MAAM,QAAQ,CAAC;AAS/C,OAAO,EAAoB,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,SAAS,EACT,mBAAmB,EAGnB,YAAY,EAIb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EAKlB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAmB,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;aAInC,SAAS,EAAE,QAAQ;IAHrC,QAAQ,CAAC,IAAI,SAA8B;gBAEzC,MAAM,EAAE,OAAO,CAAC,MAAM,EACN,SAAS,EAAE,QAAQ,EACnC,aAAa,EAAE,aAAa,GAAG,IAAI,EACnC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,iBAAiB,GAAE,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAA+B;IAMxE,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI7E,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC;IAI/F,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhG,OAAO,CAAC,uBAAuB;IAQf,oBAAoB,IAAI,MAAM,EAAE;cAIvB,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAwEnE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzC,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2ErE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG3E"}
|
|
@@ -13,6 +13,7 @@ export declare class SVMSpokePoolClient extends SpokePoolClient {
|
|
|
13
13
|
svmEventsClient: SvmCpiEventsClient;
|
|
14
14
|
protected programId: Address;
|
|
15
15
|
protected statePda: Address;
|
|
16
|
+
readonly type = "SVM";
|
|
16
17
|
/**
|
|
17
18
|
* Note: Strongly prefer to use the async create() method to instantiate.
|
|
18
19
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SVMSpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/SVMSpokePoolClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAML,kBAAkB,EAInB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAiB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EAEjB,YAAY,EAGb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAmB,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"SVMSpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/SVMSpokePoolClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAML,kBAAkB,EAInB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAiB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EAEjB,YAAY,EAGb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAmB,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGtF;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;IAW5C,eAAe,EAAE,kBAAkB;IAC1C,SAAS,CAAC,SAAS,EAAE,OAAO;IAC5B,SAAS,CAAC,QAAQ,EAAE,OAAO;IAZ7B,QAAQ,CAAC,IAAI,SAA8B;IAC3C;;OAEG;gBAED,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,aAAa,EAAE,aAAa,GAAG,IAAI,EACnC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EAAE,6CAA6C;IACrE,iBAAiB,EAAE,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,EACjD,eAAe,EAAE,kBAAkB,EAChC,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,OAAO;IAO7B;;OAEG;WACiB,MAAM,CACxB,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,aAAa,EAAE,aAAa,GAAG,IAAI,EACnC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,iBAAiB,mDAAqE,EAAE,kBAAkB;IAC1G,GAAG,EAAE,GAAG,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC,GAChD,OAAO,CAAC,kBAAkB,CAAC;IAgB9B;;OAEG;WACiB,6BAA6B,CAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,aAAa,EAAE,aAAa,GAAG,IAAI,EACnC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,iBAAiB,mDAAqE,EAAE,kBAAkB;IAC1G,WAAW,EAAE,kBAAkB;IAgB1B,oBAAoB,IAAI,MAAM,EAAE;IAQvC;;OAEG;cACa,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAmE1E;;;OAGG;IACa,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhG;;OAEG;IACa,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAInE;;;;OAIG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/C;;OAEG;IACU,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwB5E;;OAEG;IACa,eAAe,CAC7B,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,UAAU,CAAC;IAKtB;;;;;OAKG;IACI,eAAe,CACpB,SAAS,EAAE,SAAS,EAAE,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC;CAKvC"}
|
|
@@ -25,6 +25,7 @@ export declare abstract class SpokePoolClient extends BaseAbstractClient {
|
|
|
25
25
|
readonly hubPoolClient: HubPoolClient | null;
|
|
26
26
|
readonly chainId: number;
|
|
27
27
|
deploymentBlock: number;
|
|
28
|
+
abstract readonly type: string;
|
|
28
29
|
protected currentTime: number;
|
|
29
30
|
protected duplicateDepositHashes: {
|
|
30
31
|
[depositHash: string]: DepositWithBlock[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/SpokePoolClient.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EACL,SAAS,EACT,SAAS,EAET,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EAGjB,YAAY,EAQZ,OAAO,EAER,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,OAAO,EACP,gBAAgB,EAEhB,IAAI,EACJ,UAAU,EACV,aAAa,EACb,SAAS,EACT,+BAA+B,EAC/B,wBAAwB,EACxB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,aAAa,EAEd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,IAAI,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AACF,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;AAE9E,eAAO,MAAM,eAAe,UAe3B,CAAC;AAEF;;;GAGG;AACH,8BAAsB,eAAgB,SAAQ,kBAAkB;
|
|
1
|
+
{"version":3,"file":"SpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/SpokePoolClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,eAAe,GAAG,eAAe,IAAI,kBAAkB,CAG5G;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,eAAe,GAAG,eAAe,IAAI,kBAAkB,CAG5G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAChD,eAAO,MAAM,0BAA0B,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -671,21 +671,95 @@ export const createDepositInstruction = async (
|
|
|
671
671
|
* Creates a request slow fill instruction.
|
|
672
672
|
* @param signer - The signer of the transaction.
|
|
673
673
|
* @param solanaClient - The Solana client.
|
|
674
|
-
* @param
|
|
674
|
+
* @param requestSlowFillInput - The input arguments for the `requestSlowFill` instruction.
|
|
675
675
|
* @returns The request slow fill instruction.
|
|
676
676
|
*/
|
|
677
677
|
export const createRequestSlowFillInstruction = async (
|
|
678
678
|
signer: TransactionSigner,
|
|
679
679
|
solanaClient: SVMProvider,
|
|
680
|
-
|
|
680
|
+
requestSlowFillInput: SvmSpokeClient.RequestSlowFillInput
|
|
681
681
|
) => {
|
|
682
|
-
const requestSlowFillIx = SvmSpokeClient.getRequestSlowFillInstruction(
|
|
682
|
+
const requestSlowFillIx = SvmSpokeClient.getRequestSlowFillInstruction(requestSlowFillInput);
|
|
683
683
|
|
|
684
684
|
return pipe(await createDefaultTransaction(solanaClient, signer), (tx) =>
|
|
685
685
|
appendTransactionMessageInstruction(requestSlowFillIx, tx)
|
|
686
686
|
);
|
|
687
687
|
};
|
|
688
688
|
|
|
689
|
+
/**
|
|
690
|
+
* @notice Return the requestSlowFill transaction for a given deposit
|
|
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.
|
|
695
|
+
* @returns requestSlowFill transaction
|
|
696
|
+
*/
|
|
697
|
+
export async function getSlowFillRequestTx(
|
|
698
|
+
spokePoolAddr: SvmAddress,
|
|
699
|
+
solanaClient: SVMProvider,
|
|
700
|
+
relayData: Omit<RelayData, "recipient" | "outputToken"> & {
|
|
701
|
+
destinationChainId: number;
|
|
702
|
+
recipient: SvmAddress;
|
|
703
|
+
outputToken: SvmAddress;
|
|
704
|
+
},
|
|
705
|
+
signer: TransactionSigner
|
|
706
|
+
) {
|
|
707
|
+
const {
|
|
708
|
+
depositor,
|
|
709
|
+
recipient,
|
|
710
|
+
inputToken,
|
|
711
|
+
outputToken,
|
|
712
|
+
exclusiveRelayer,
|
|
713
|
+
destinationChainId,
|
|
714
|
+
originChainId,
|
|
715
|
+
depositId,
|
|
716
|
+
fillDeadline,
|
|
717
|
+
exclusivityDeadline,
|
|
718
|
+
message,
|
|
719
|
+
} = relayData;
|
|
720
|
+
|
|
721
|
+
const program = toAddress(spokePoolAddr);
|
|
722
|
+
const relayDataHash = getRelayDataHash(relayData, destinationChainId);
|
|
723
|
+
|
|
724
|
+
const [state, fillStatus, eventAuthority] = await Promise.all([
|
|
725
|
+
getStatePda(program),
|
|
726
|
+
getFillStatusPda(program, relayData, destinationChainId),
|
|
727
|
+
getEventAuthority(program),
|
|
728
|
+
]);
|
|
729
|
+
|
|
730
|
+
const depositIdBuffer = new Uint8Array(32);
|
|
731
|
+
const shortenedBuffer = arrayify(depositId.toHexString());
|
|
732
|
+
depositIdBuffer.set(shortenedBuffer, 32 - shortenedBuffer.length);
|
|
733
|
+
|
|
734
|
+
const relayDataInput: SvmSpokeClient.RequestSlowFillInput["relayData"] = {
|
|
735
|
+
depositor: toAddress(depositor),
|
|
736
|
+
recipient: toAddress(recipient),
|
|
737
|
+
exclusiveRelayer: toAddress(exclusiveRelayer),
|
|
738
|
+
inputToken: toAddress(inputToken),
|
|
739
|
+
outputToken: toAddress(outputToken),
|
|
740
|
+
inputAmount: bigToU8a32(relayData.inputAmount.toBigInt()),
|
|
741
|
+
outputAmount: relayData.outputAmount.toBigInt(),
|
|
742
|
+
originChainId: BigInt(originChainId),
|
|
743
|
+
depositId: depositIdBuffer,
|
|
744
|
+
fillDeadline: fillDeadline,
|
|
745
|
+
exclusivityDeadline: exclusivityDeadline,
|
|
746
|
+
message: arrayify(message),
|
|
747
|
+
};
|
|
748
|
+
|
|
749
|
+
const requestSlowFillInput: SvmSpokeClient.RequestSlowFillInput = {
|
|
750
|
+
signer,
|
|
751
|
+
state,
|
|
752
|
+
fillStatus,
|
|
753
|
+
eventAuthority,
|
|
754
|
+
program,
|
|
755
|
+
relayHash: arrayify(relayDataHash),
|
|
756
|
+
relayData: relayDataInput,
|
|
757
|
+
systemProgram: SYSTEM_PROGRAM_ADDRESS,
|
|
758
|
+
};
|
|
759
|
+
|
|
760
|
+
return createRequestSlowFillInstruction(signer, solanaClient, requestSlowFillInput);
|
|
761
|
+
}
|
|
762
|
+
|
|
689
763
|
/**
|
|
690
764
|
* Creates a close fill PDA instruction.
|
|
691
765
|
* @param signer - The signer of the transaction.
|
|
@@ -707,6 +781,7 @@ export const createCloseFillPdaInstruction = async (
|
|
|
707
781
|
appendTransactionMessageInstruction(closeFillPdaIx, tx)
|
|
708
782
|
);
|
|
709
783
|
};
|
|
784
|
+
|
|
710
785
|
export async function getAssociatedTokenAddress(
|
|
711
786
|
owner: SvmAddress,
|
|
712
787
|
mint: SvmAddress,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MerkleTree } from "@across-protocol/contracts/dist/utils/MerkleTree";
|
|
2
2
|
import { RunningBalances, PoolRebalanceLeaf, Clients, SpokePoolTargetBalance } from "../../../interfaces";
|
|
3
3
|
import { isSVMSpokePoolClient, SpokePoolClient } from "../../SpokePoolClient";
|
|
4
|
-
import { BigNumber, bnZero, chainIsEvm, chainIsSvm, compareAddresses, EvmAddress } from "../../../utils";
|
|
4
|
+
import { BigNumber, bnZero, chainIsEvm, chainIsSvm, compareAddresses, EvmAddress, isDefined } from "../../../utils";
|
|
5
5
|
import { getLatestFinalizedSlotWithBlock } from "../../../arch/svm";
|
|
6
6
|
import { HubPoolClient } from "../../HubPoolClient";
|
|
7
7
|
import { V3DepositWithBlock } from "./shims";
|
|
@@ -45,7 +45,7 @@ export async function getWidestPossibleExpectedBlockRange(
|
|
|
45
45
|
|
|
46
46
|
const latestPossibleBundleEndBlockNumbers = await Promise.all(
|
|
47
47
|
chainIds.map((chainId, idx) => {
|
|
48
|
-
if (!enabledChains.includes(chainId)) {
|
|
48
|
+
if (!enabledChains.includes(chainId) || !isDefined(spokeClients[chainId])) {
|
|
49
49
|
return -1; // Chain is disabled; end block is redundant and will be overridden later.
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -29,11 +29,13 @@ import { isUpdateFailureReason } from "../BaseAbstractClient";
|
|
|
29
29
|
import { knownEventNames, SpokePoolClient, SpokePoolUpdate } from "./SpokePoolClient";
|
|
30
30
|
import winston from "winston";
|
|
31
31
|
import { HubPoolClient } from "../HubPoolClient";
|
|
32
|
+
import { EVM_SPOKE_POOL_CLIENT_TYPE } from "./types";
|
|
32
33
|
|
|
33
34
|
/**
|
|
34
35
|
* An EVM-specific SpokePoolClient.
|
|
35
36
|
*/
|
|
36
37
|
export class EVMSpokePoolClient extends SpokePoolClient {
|
|
38
|
+
readonly type = EVM_SPOKE_POOL_CLIENT_TYPE;
|
|
37
39
|
constructor(
|
|
38
40
|
logger: winston.Logger,
|
|
39
41
|
public readonly spokePool: Contract,
|
|
@@ -24,12 +24,14 @@ import {
|
|
|
24
24
|
import { isUpdateFailureReason } from "../BaseAbstractClient";
|
|
25
25
|
import { HubPoolClient } from "../HubPoolClient";
|
|
26
26
|
import { knownEventNames, SpokePoolClient, SpokePoolUpdate } from "./SpokePoolClient";
|
|
27
|
+
import { SVM_SPOKE_POOL_CLIENT_TYPE } from "./types";
|
|
27
28
|
|
|
28
29
|
/**
|
|
29
30
|
* SvmSpokePoolClient is a client for the SVM SpokePool program. It extends the base SpokePoolClient
|
|
30
31
|
* and implements the abstract methods required for interacting with an SVM Spoke Pool.
|
|
31
32
|
*/
|
|
32
33
|
export class SVMSpokePoolClient extends SpokePoolClient {
|
|
34
|
+
readonly type = SVM_SPOKE_POOL_CLIENT_TYPE;
|
|
33
35
|
/**
|
|
34
36
|
* Note: Strongly prefer to use the async create() method to instantiate.
|
|
35
37
|
*/
|
|
@@ -79,6 +79,7 @@ export const knownEventNames = [
|
|
|
79
79
|
* for events and storing them in memory. It also provides some convenience methods for querying the stored events.
|
|
80
80
|
*/
|
|
81
81
|
export abstract class SpokePoolClient extends BaseAbstractClient {
|
|
82
|
+
abstract readonly type: string;
|
|
82
83
|
protected currentTime = 0;
|
|
83
84
|
protected duplicateDepositHashes: { [depositHash: string]: DepositWithBlock[] } = {};
|
|
84
85
|
protected depositHashesToFills: { [depositHash: string]: FillWithBlock[] } = {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EVMSpokePoolClient } from "./EVMSpokePoolClient";
|
|
2
2
|
import { SVMSpokePoolClient } from "./SVMSpokePoolClient";
|
|
3
3
|
import { SpokePoolClient } from "./SpokePoolClient";
|
|
4
|
+
import { EVM_SPOKE_POOL_CLIENT_TYPE, SVM_SPOKE_POOL_CLIENT_TYPE } from "./types";
|
|
4
5
|
|
|
5
6
|
export { EVMSpokePoolClient } from "./EVMSpokePoolClient";
|
|
6
7
|
export { SpokePoolClient, SpokePoolUpdate } from "./SpokePoolClient";
|
|
@@ -13,7 +14,8 @@ export { SpokePoolManager } from "./SpokePoolClientManager";
|
|
|
13
14
|
* @returns True if the SpokePoolClient is an EVMSpokePoolClient, false otherwise.
|
|
14
15
|
*/
|
|
15
16
|
export function isEVMSpokePoolClient(spokePoolClient: SpokePoolClient): spokePoolClient is EVMSpokePoolClient {
|
|
16
|
-
|
|
17
|
+
// @TODO: Shoud we handle the case where spokePoolClient is undefined?
|
|
18
|
+
return spokePoolClient?.type === EVM_SPOKE_POOL_CLIENT_TYPE;
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
/**
|
|
@@ -22,5 +24,6 @@ export function isEVMSpokePoolClient(spokePoolClient: SpokePoolClient): spokePoo
|
|
|
22
24
|
* @returns True if the SpokePoolClient is an SVMSpokePoolClient, false otherwise.
|
|
23
25
|
*/
|
|
24
26
|
export function isSVMSpokePoolClient(spokePoolClient: SpokePoolClient): spokePoolClient is SVMSpokePoolClient {
|
|
25
|
-
|
|
27
|
+
// @TODO: Shoud we handle the case where spokePoolClient is undefined?
|
|
28
|
+
return spokePoolClient?.type === SVM_SPOKE_POOL_CLIENT_TYPE;
|
|
26
29
|
}
|