@debridge-finance/solana-utils 2.3.0 → 2.4.0

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.
@@ -5,9 +5,12 @@ export declare const TOKEN_METADATA_PROGRAM_ID: PublicKey;
5
5
  export declare const TOKEN_PROGRAM_ID: PublicKey;
6
6
  export declare const ASSOCIATED_TOKEN_PROGRAM_ID: PublicKey;
7
7
  export declare const WRAPPED_SOL_MINT: PublicKey;
8
- export declare function findAssociatedTokenAddress(wallet: PublicKey, tokenMint: PublicKey, tokenProgramId?: PublicKey, associatedTokenProramId?: PublicKey): Promise<[PublicKey, number]>;
8
+ export declare function findAssociatedTokenAddress(wallet: PublicKey, tokenMint: PublicKey, tokenProgramId?: PublicKey, associatedTokenProramId?: PublicKey): [PublicKey, number];
9
+ /**
10
+ * @deprecated same as findAssociatedTokenAddress
11
+ */
9
12
  export declare function findAssociatedTokenAddressSync(wallet: PublicKey, tokenMint: PublicKey, tokenProgramId?: PublicKey, associatedTokenProramId?: PublicKey): [PublicKey, number];
10
- export declare function getTokenMetadataAddress(tokenMint: PublicKey, tokenMetedataProgramId: PublicKey): Promise<[PublicKey, number]>;
13
+ export declare function getTokenMetadataAddress(tokenMint: PublicKey, tokenMetedataProgramId: PublicKey): [PublicKey, number];
11
14
  declare type Head<T extends unknown[]> = T extends [...infer Head, unknown] ? Head : unknown[];
12
15
  declare type EmptyTuple = [];
13
16
  declare type OmitLastParam<F> = F extends (...args: infer P) => infer Ret ? Head<P> extends EmptyTuple ? () => Ret : (...args: Head<P>) => Ret : never;
@@ -30,40 +33,40 @@ declare class ResolverContainer2<R1 extends Resolver<FnContainer>, R2 extends Re
30
33
  constructor(resolver1: R1, resolver2: R2);
31
34
  }
32
35
  export declare const DeBridgeResolver: (programId: SolanaPubkey, settingsProgramId: SolanaPubkey) => ResolverContainer2<Resolver<{
33
- getClaimMarkerAddress: (DEBRIDGE_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
34
- getExternalCallStorageAddress: (submissionId: Buffer, executorPubkey: SolanaPubkey, sourceChainId: BNable, DEBRIDGE_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
35
- getExternalCallMetaAddress: (externalCallStorage: SolanaPubkey, DEBRIDGE_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
36
- getNonceAddress: (DEBRIDGE_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
37
- getSubmissionAddress: (submissionId: Buffer, DEBRIDGE_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
38
- getSubmissionAuthAddress: (submissionAddress: SolanaPubkey, DEBRIDGE_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
39
- getMintAuthorityAddress: (bridge: SolanaPubkey, DEBRIDGE_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
36
+ getClaimMarkerAddress: (DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number];
37
+ getExternalCallStorageAddress: (submissionId: Buffer, executorPubkey: SolanaPubkey, sourceChainId: BNable, DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number];
38
+ getExternalCallMetaAddress: (externalCallStorage: SolanaPubkey, DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number];
39
+ getNonceAddress: (DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number];
40
+ getSubmissionAddress: (submissionId: Buffer, DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number];
41
+ getSubmissionAuthAddress: (submissionAddress: SolanaPubkey, DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number];
42
+ getMintAuthorityAddress: (bridge: SolanaPubkey, DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number];
40
43
  }>, Resolver<{
41
- getTokenMetadataMasterAddress: (SETTINGS_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
42
- getTokenMintAddress: (debridgeId: Buffer, SETTINGS_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
43
- getStateAddress: (SETTINGS_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
44
- getConfirmationsStorageAddress: (message: Buffer, SETTINGS_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
45
- getBridgeFeeAddress: (bridge: PublicKey, chainId: BNable, SETTINGS_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
46
- getChainSupportInfoAddress: (chainId: BNable, SETTINGS_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
47
- getDiscountInfoAddress: (user: PublicKey, SETTINGS_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
48
- getBridgeAddress: (tokenMint: PublicKey, SETTINGS_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
49
- getBridgeMapAddress: (bridgeId: Buffer, SETTINGS_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
50
- getNoDiscountAddress: (SETTINGS_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
51
- getNoBridgeFeeAddress: (SETTINGS_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
44
+ getTokenMetadataMasterAddress: (SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number];
45
+ getTokenMintAddress: (debridgeId: Buffer, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number];
46
+ getStateAddress: (SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number];
47
+ getConfirmationsStorageAddress: (message: Buffer, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number];
48
+ getBridgeFeeAddress: (bridge: PublicKey, chainId: BNable, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number];
49
+ getChainSupportInfoAddress: (chainId: BNable, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number];
50
+ getDiscountInfoAddress: (user: PublicKey, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number];
51
+ getBridgeAddress: (tokenMint: PublicKey, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number];
52
+ getBridgeMapAddress: (bridgeId: Buffer, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number];
53
+ getNoDiscountAddress: (SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number];
54
+ getNoBridgeFeeAddress: (SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number];
52
55
  }>>;
53
56
  export declare const PmmSrcResolver: (programId: SolanaPubkey) => Resolver<{
54
- getStateAccount: (PMM_SRC_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
55
- getNonceAccount: (maker: PublicKey | Buffer, PMM_SRC_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
56
- getGiveOrderStateAccount: (orderId: Buffer, PMM_SRC_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
57
- getAuthorizedNativeSenderAddress: (chainId: Buffer, PMM_SRC_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
58
- getGiveOrderWalletAddress: (orderId: Buffer, PMM_SRC_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
59
- getFeeLedgerWalletAddress: (tokenMint: PublicKey, PMM_SRC_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
60
- getFeeLedgerAddress: (PMM_SRC_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
57
+ getStateAccount: (PMM_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number];
58
+ getNonceAccount: (maker: PublicKey | Buffer, PMM_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number];
59
+ getGiveOrderStateAccount: (orderId: Buffer, PMM_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number];
60
+ getAuthorizedNativeSenderAddress: (chainId: Buffer, PMM_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number];
61
+ getGiveOrderWalletAddress: (orderId: Buffer, PMM_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number];
62
+ getFeeLedgerWalletAddress: (tokenMint: PublicKey, PMM_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number];
63
+ getFeeLedgerAddress: (PMM_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number];
61
64
  }>;
62
65
  export declare const PmmDstResolver: (programId: SolanaPubkey) => Resolver<{
63
- getAuthorizedSrcContractAddress: (chainId: Buffer, PMM_DST_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
64
- getAuthorizedDstNativeSenderAddress: (PMM_DST_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
65
- getTakeOrderStateAddress: (orderId: Buffer, PMM_DST_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
66
- getTakePatchAddress: (orderId: Buffer, PMM_DST_PROGRAM_ID: PublicKey) => Promise<[PublicKey, number]>;
66
+ getAuthorizedSrcContractAddress: (chainId: Buffer, PMM_DST_PROGRAM_ID: PublicKey) => [PublicKey, number];
67
+ getAuthorizedDstNativeSenderAddress: (PMM_DST_PROGRAM_ID: PublicKey) => [PublicKey, number];
68
+ getTakeOrderStateAddress: (orderId: Buffer, PMM_DST_PROGRAM_ID: PublicKey) => [PublicKey, number];
69
+ getTakePatchAddress: (orderId: Buffer, PMM_DST_PROGRAM_ID: PublicKey) => [PublicKey, number];
67
70
  }>;
68
71
  export {};
69
72
  //# sourceMappingURL=accounts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /// <reference types="node" />
2
2
  import { Buffer } from "buffer";
3
- import { Connection, Keypair, PublicKey, Signer, Transaction, VersionedTransaction } from "@solana/web3.js";
3
+ import { Commitment, Connection, Keypair, PublicKey, Signer, Transaction, VersionedTransaction } from "@solana/web3.js";
4
4
  import { interfaces } from ".";
5
- export declare function getAccountInfo(connection: Connection, account: PublicKey): Promise<import("@solana/web3.js").AccountInfo<Buffer> | null>;
5
+ export declare function getAccountInfo(connection: Connection, account: PublicKey, commitment?: Commitment): Promise<import("@solana/web3.js").AccountInfo<Buffer> | null>;
6
6
  export declare function hexToBuffer(data: string, align?: number): Buffer;
7
7
  export declare function bufferToHex(data: Buffer | number[] | Uint8Array): string;
8
8
  export declare function sleep(milliSeconds: number): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAsB,SAAS,EAAgC,MAAM,EAAE,WAAW,EAAoB,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAChL,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAE/B,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,iEAU9E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAahE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,UAE/D;AAED,wBAAsB,KAAK,CAAC,YAAY,EAAE,MAAM,iBAI/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAazF;AAMD,aAAK,cAAc,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAEzD,qBAAa,MAAO,YAAW,UAAU,CAAC,OAAO;IAGpC,OAAO,CAAC,OAAO;IAF3B,SAAS,EAAE,SAAS,CAAC;gBAED,OAAO,EAAE,OAAO;IAI9B,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EAAE,EAAE,CAAC,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE;IAUjG,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE;CAQ9H;AAuCD,wBAAsB,OAAO,CAC5B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,CAAC,OAAO,EAC1B,YAAY,EAAE,cAAc,EAAE,EAC9B,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,aAAa,GAAE,OAAe,EAC9B,KAAK,GAAE,OAAe,EACtB,eAAe,GAAE,OAAc,EAC/B,QAAQ,GAAE,MAAU,qBAoEpB"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAa,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACnI,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAE/B,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,GAAE,UAAwB,iEAUpH;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAahE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,UAE/D;AAED,wBAAsB,KAAK,CAAC,YAAY,EAAE,MAAM,iBAI/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAazF;AAMD,aAAK,cAAc,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAEzD,qBAAa,MAAO,YAAW,UAAU,CAAC,OAAO;IAGpC,OAAO,CAAC,OAAO;IAF3B,SAAS,EAAE,SAAS,CAAC;gBAED,OAAO,EAAE,OAAO;IAI9B,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EAAE,EAAE,CAAC,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE;IAUjG,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE;CAQ9H;AAkCD,wBAAsB,OAAO,CAC5B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,CAAC,OAAO,EAC1B,YAAY,EAAE,cAAc,EAAE,EAC9B,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,aAAa,GAAE,OAAe,EAC9B,KAAK,GAAE,OAAe,EACtB,eAAe,GAAE,OAAc,EAC/B,QAAQ,GAAE,MAAU,qBAkGpB"}
@@ -3,4 +3,5 @@ export * as constants from "./constants";
3
3
  export * as interfaces from "./interfaces";
4
4
  export * from "./accounts";
5
5
  export * as helpers from "./helpers";
6
+ export * as spl from "./spl";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB,MAAM,WAAW,OAAO;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EAAE,EAAE,CAAC,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACnH,mBAAmB,EAAE,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CAC5I;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,cAAc;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,oBAAY,SAAS,GAAG,MAAM,CAAC;AAC/B,oBAAY,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAC9C,oBAAY,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB,MAAM,WAAW,OAAO;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EAAE,EAAE,CAAC,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACnH,mBAAmB,EAAE,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EACjE,GAAG,EAAE,CAAC,EAAE,EACR,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,KACxC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CAClB;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,cAAc;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,oBAAY,SAAS,GAAG,MAAM,CAAC;AAC/B,oBAAY,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAC9C,oBAAY,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC"}
@@ -0,0 +1,117 @@
1
+ /// <reference types="node" />
2
+ import { AccountInfo, Connection, PublicKey, Transaction, TransactionInstruction } from "@solana/web3.js";
3
+ import BN from "bn.js";
4
+ import { Buffer } from "buffer";
5
+ import { SolanaPubkey } from "./interfaces";
6
+ declare type AmountType = string | number | BN | number[];
7
+ export declare enum AccountType {
8
+ System = 0,
9
+ Token = 1,
10
+ CorrectATA = 2,
11
+ Unknown = 3,
12
+ NotExists = 4
13
+ }
14
+ export interface WalletInfo {
15
+ /** Address of the account */
16
+ address: PublicKey;
17
+ /** Mint associated with the account */
18
+ mint: PublicKey;
19
+ /** Owner of the account */
20
+ owner: PublicKey;
21
+ /** Number of tokens the account holds */
22
+ amount: BN;
23
+ decimals: number;
24
+ /** True if the account is initialized */
25
+ isInitialized: boolean;
26
+ /** True if the account is a native token account */
27
+ isNative: boolean;
28
+ }
29
+ /**
30
+ * Builds instruction for creation of associated wallet for specified token
31
+ * @param tokenMint mint account of SPL-token
32
+ * @param associatedAccount associated account address
33
+ * @param owner owner of the associated account
34
+ * @param payer who pays for account creation
35
+ */
36
+ export declare function createAssociatedWalletInstruction(tokenMint: SolanaPubkey, associatedAccount: PublicKey, owner: SolanaPubkey, payer: SolanaPubkey, associatedTokenProramId?: PublicKey): TransactionInstruction;
37
+ export declare function parseSplAccount(data: Buffer): {
38
+ mintAuthority: unknown;
39
+ supply: BN;
40
+ decimals: number;
41
+ isInitialized: boolean;
42
+ freezeAuthority: unknown;
43
+ mint: PublicKey;
44
+ owner: PublicKey;
45
+ amount: BN;
46
+ delegate: unknown;
47
+ state: {
48
+ uninitialized?: Record<string, never> | undefined;
49
+ initialized?: Record<string, never> | undefined;
50
+ frozen?: Record<string, never> | undefined;
51
+ };
52
+ isNative: unknown;
53
+ delegatedAmount: BN;
54
+ closeAuthority: unknown;
55
+ m: number;
56
+ n: number;
57
+ signers: PublicKey[];
58
+ } | null;
59
+ export declare function isWalletCorrectATA(walletAddress: SolanaPubkey, data: Buffer): boolean;
60
+ /**
61
+ * Requests account from blockchain and returns result with account type
62
+ * @param account address of account
63
+ * @returns account info and account type
64
+ */
65
+ export declare function getAccountWithType(connection: Connection, account: SolanaPubkey): Promise<[AccountInfo<Buffer> | null, AccountType]>;
66
+ /**
67
+ * Returns balance of specified wallet in native tokens
68
+ * @param wallet wallet to inspect
69
+ */
70
+ export declare function getNativeWalletBalance(connection: Connection, wallet: SolanaPubkey): Promise<BN>;
71
+ /**
72
+ * Returns balance of associated wallet in SPL-tokens
73
+ * @param originalWallet native tokens wallet address
74
+ * @param tokenMint mint of SPL-Token
75
+ */
76
+ export declare function getAssocSPLWalletBalance(connection: Connection, originalWallet: SolanaPubkey, tokenMint: SolanaPubkey): Promise<BN>;
77
+ /**
78
+ * Returns balance of specified wallet in SPL-tokens
79
+ * @param wallet spl-tokens wallet address
80
+ */
81
+ export declare function getSPLWalletBalance(connection: Connection, wallet: SolanaPubkey): Promise<BN>;
82
+ /**
83
+ * Gets list of user's SPL-token accounts
84
+ * @param owner owner of the SPL wallets
85
+ * @returns list of accounts with amount on them
86
+ */
87
+ export declare function getAllTokenAccountsWithBalances(connection: Connection, owner: SolanaPubkey): Promise<WalletInfo[]>;
88
+ /**
89
+ * Gets list of user's tokenMint token accounts
90
+ * @param tokenMint
91
+ * @param owner owner of the wallets
92
+ * @returns list of accounts with amount on them
93
+ */
94
+ export declare function getTokenAccountsWithBalance(connection: Connection, tokenMint: SolanaPubkey, owner: SolanaPubkey): Promise<WalletInfo[]>;
95
+ /**
96
+ * Builds transaction to transfer&wrap native sol from src wallet to dst wallet
97
+ * @param amount number of lamports to transfer and wrap
98
+ * @param transferFrom source native account
99
+ * @param transferTo destination wallet
100
+ * @returns transaction to transfer&wrap sol
101
+ */
102
+ export declare function buildReplenishWsolBalanceTransaction(amount: AmountType, transferFrom: SolanaPubkey, transferTo: SolanaPubkey): Transaction;
103
+ /**
104
+ * Builds transaction that wraps specified amount of lamports into spl, if account is missing will create it
105
+ * @param amount lamports to wrap, ATA will contain exact amount of lamports
106
+ * @param owner owner of created wallet
107
+ */
108
+ export declare function updateWsolBalance(connection: Connection, amount: AmountType, owner: SolanaPubkey): Promise<Transaction | null>;
109
+ /**
110
+ * Checks existance of associated wallet for specified token
111
+ * @param mintAccount mint account of SPL-token
112
+ * @param originalWallet account of solana wallet
113
+ * @returns true if account exists
114
+ */
115
+ export declare function checkIfAssociatedWalletExists(connection: Connection, mintAccount: PublicKey, originalWallet: PublicKey): Promise<boolean>;
116
+ export {};
117
+ //# sourceMappingURL=spl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spl.d.ts","sourceRoot":"","sources":["../../src/spl.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAiB,WAAW,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzH,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,aAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;AAElD,oBAAY,WAAW;IACtB,MAAM,IAAI;IACV,KAAK,IAAI;IACT,UAAU,IAAI;IACd,OAAO,IAAI;IACX,SAAS,IAAI;CACb;AAED,MAAM,WAAW,UAAU;IAC1B,6BAA6B;IAC7B,OAAO,EAAE,SAAS,CAAC;IACnB,uCAAuC;IACvC,IAAI,EAAE,SAAS,CAAC;IAChB,2BAA2B;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,yCAAyC;IACzC,MAAM,EAAE,EAAE,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,aAAa,EAAE,OAAO,CAAC;IACvB,oDAAoD;IACpD,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAChD,SAAS,EAAE,YAAY,EACvB,iBAAiB,EAAE,SAAS,EAC5B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY,EACnB,uBAAuB,CAAC,EAAE,SAAS,0BA0CnC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;SAU3C;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAMrF;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACvC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAUpD;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,eAKxF;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAOzI;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAKnG;AAED;;;;GAIG;AACH,wBAAsB,+BAA+B,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAsCxH;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAChD,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,YAAY,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC,CAsCvB;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,eAkB5H;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA2BpI;AAED;;;;;GAKG;AACH,wBAAsB,6BAA6B,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,oBAK5H"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@debridge-finance/solana-utils",
3
3
  "description": "Common utils package to power communication with Solana contracts at deBridge",
4
- "version": "2.3.0",
4
+ "version": "2.4.0",
5
5
  "author": "deBridge",
6
6
  "license": "GPL-3.0-only",
7
7
  "homepage": "https://debridge.finance",
@@ -32,6 +32,7 @@
32
32
  "scripts": {
33
33
  "test:crypto": "mocha -r ts-node/register -b -t 200000 ./tests/crypto.test.ts",
34
34
  "test:accounts": "mocha -r ts-node/register -b -t 200000 ./tests/accounts.test.ts",
35
+ "test:spl": "mocha -r ts-node/register -b -t 200000 ./tests/spl.test.ts",
35
36
  "lint:fix": "prettier src/** tests/** -w",
36
37
  "lint": "prettier src/** tests/** --check",
37
38
  "build:esm": "tsc -p tsconfig.esm.json",
@@ -40,6 +41,7 @@
40
41
  "build": "rimraf dist && npm run build:esm && npm run build:node && npm run build:browser"
41
42
  },
42
43
  "dependencies": {
44
+ "@coral-xyz/spl-token": "0.26.0",
43
45
  "@solana/web3.js": "1.73.0",
44
46
  "bn.js": "5.2.1",
45
47
  "buffer": "6.0.3",