@atomiqlabs/chain-solana 12.0.15 → 13.0.10

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.
Files changed (91) hide show
  1. package/dist/index.d.ts +5 -22
  2. package/dist/index.js +9 -22
  3. package/dist/solana/SolanaChainType.d.ts +6 -2
  4. package/dist/solana/SolanaChains.d.ts +5 -16
  5. package/dist/solana/SolanaChains.js +6 -6
  6. package/dist/solana/SolanaInitializer.d.ts +20 -0
  7. package/dist/solana/SolanaInitializer.js +14 -2
  8. package/dist/solana/btcrelay/SolanaBtcRelay.d.ts +25 -69
  9. package/dist/solana/btcrelay/SolanaBtcRelay.js +56 -80
  10. package/dist/solana/btcrelay/headers/SolanaBtcHeader.d.ts +6 -2
  11. package/dist/solana/btcrelay/headers/SolanaBtcHeader.js +3 -0
  12. package/dist/solana/btcrelay/headers/SolanaBtcStoredHeader.d.ts +4 -0
  13. package/dist/solana/btcrelay/headers/SolanaBtcStoredHeader.js +3 -0
  14. package/dist/solana/chain/SolanaAction.d.ts +2 -2
  15. package/dist/solana/chain/SolanaAction.js +1 -1
  16. package/dist/solana/chain/SolanaChainInterface.d.ts +89 -8
  17. package/dist/solana/chain/SolanaChainInterface.js +85 -3
  18. package/dist/solana/chain/SolanaModule.d.ts +5 -5
  19. package/dist/solana/chain/modules/SolanaBlocks.d.ts +6 -2
  20. package/dist/solana/chain/modules/SolanaBlocks.js +5 -2
  21. package/dist/solana/chain/modules/SolanaEvents.d.ts +2 -2
  22. package/dist/solana/chain/modules/SolanaEvents.js +22 -22
  23. package/dist/solana/chain/modules/SolanaFees.d.ts +4 -3
  24. package/dist/solana/chain/modules/SolanaFees.js +21 -19
  25. package/dist/solana/chain/modules/SolanaSignatures.d.ts +1 -0
  26. package/dist/solana/chain/modules/SolanaSlots.js +3 -3
  27. package/dist/solana/chain/modules/SolanaTokens.d.ts +1 -14
  28. package/dist/solana/chain/modules/SolanaTokens.js +1 -7
  29. package/dist/solana/chain/modules/SolanaTransactions.d.ts +23 -8
  30. package/dist/solana/chain/modules/SolanaTransactions.js +121 -40
  31. package/dist/solana/events/SolanaChainEvents.d.ts +3 -56
  32. package/dist/solana/events/SolanaChainEvents.js +8 -172
  33. package/dist/solana/events/SolanaChainEventsBrowser.d.ts +72 -9
  34. package/dist/solana/events/SolanaChainEventsBrowser.js +188 -13
  35. package/dist/solana/program/SolanaProgramBase.d.ts +9 -4
  36. package/dist/solana/program/modules/SolanaProgramEvents.d.ts +3 -3
  37. package/dist/solana/program/modules/SolanaProgramEvents.js +7 -4
  38. package/dist/solana/swaps/SolanaSwapData.d.ts +128 -7
  39. package/dist/solana/swaps/SolanaSwapData.js +190 -57
  40. package/dist/solana/swaps/SolanaSwapModule.js +1 -0
  41. package/dist/solana/swaps/SolanaSwapProgram.d.ts +156 -76
  42. package/dist/solana/swaps/SolanaSwapProgram.js +193 -74
  43. package/dist/solana/swaps/SwapTypeEnum.js +3 -2
  44. package/dist/solana/swaps/modules/SolanaDataAccount.d.ts +1 -0
  45. package/dist/solana/swaps/modules/SolanaDataAccount.js +6 -7
  46. package/dist/solana/swaps/modules/SolanaLpVault.d.ts +2 -4
  47. package/dist/solana/swaps/modules/SolanaLpVault.js +4 -6
  48. package/dist/solana/swaps/modules/SwapClaim.d.ts +4 -7
  49. package/dist/solana/swaps/modules/SwapClaim.js +17 -16
  50. package/dist/solana/swaps/modules/SwapInit.d.ts +1 -10
  51. package/dist/solana/swaps/modules/SwapInit.js +18 -16
  52. package/dist/solana/swaps/modules/SwapRefund.d.ts +1 -2
  53. package/dist/solana/swaps/modules/SwapRefund.js +33 -18
  54. package/dist/solana/wallet/SolanaKeypairWallet.d.ts +4 -0
  55. package/dist/solana/wallet/SolanaKeypairWallet.js +4 -0
  56. package/dist/solana/wallet/SolanaSigner.d.ts +7 -0
  57. package/dist/solana/wallet/SolanaSigner.js +7 -0
  58. package/dist/utils/Utils.d.ts +9 -4
  59. package/package.json +10 -7
  60. package/src/index.ts +5 -24
  61. package/src/solana/SolanaChainType.ts +6 -1
  62. package/src/solana/SolanaChains.ts +7 -7
  63. package/src/solana/SolanaInitializer.ts +30 -6
  64. package/src/solana/btcrelay/SolanaBtcRelay.ts +69 -86
  65. package/src/solana/btcrelay/headers/SolanaBtcHeader.ts +5 -2
  66. package/src/solana/btcrelay/headers/SolanaBtcStoredHeader.ts +3 -0
  67. package/src/solana/chain/SolanaAction.ts +3 -3
  68. package/src/solana/chain/SolanaChainInterface.ts +101 -5
  69. package/src/solana/chain/SolanaModule.ts +1 -1
  70. package/src/solana/chain/modules/SolanaBlocks.ts +10 -6
  71. package/src/solana/chain/modules/SolanaEvents.ts +30 -29
  72. package/src/solana/chain/modules/SolanaFees.ts +26 -22
  73. package/src/solana/chain/modules/SolanaSlots.ts +3 -3
  74. package/src/solana/chain/modules/SolanaTokens.ts +6 -13
  75. package/src/solana/chain/modules/SolanaTransactions.ts +135 -48
  76. package/src/solana/events/SolanaChainEvents.ts +12 -201
  77. package/src/solana/events/SolanaChainEventsBrowser.ts +216 -16
  78. package/src/solana/program/SolanaProgramBase.ts +1 -1
  79. package/src/solana/program/modules/SolanaProgramEvents.ts +15 -13
  80. package/src/solana/swaps/SolanaSwapData.ts +217 -137
  81. package/src/solana/swaps/SolanaSwapModule.ts +1 -0
  82. package/src/solana/swaps/SolanaSwapProgram.ts +209 -103
  83. package/src/solana/swaps/SwapTypeEnum.ts +3 -2
  84. package/src/solana/swaps/modules/SolanaDataAccount.ts +8 -15
  85. package/src/solana/swaps/modules/SolanaLpVault.ts +8 -15
  86. package/src/solana/swaps/modules/SwapClaim.ts +22 -26
  87. package/src/solana/swaps/modules/SwapInit.ts +25 -31
  88. package/src/solana/swaps/modules/SwapRefund.ts +34 -22
  89. package/src/solana/wallet/SolanaKeypairWallet.ts +4 -0
  90. package/src/solana/wallet/SolanaSigner.ts +7 -0
  91. package/src/utils/Utils.ts +21 -7
package/dist/index.d.ts CHANGED
@@ -1,29 +1,12 @@
1
- export * from "./solana/btcrelay/headers/SolanaBtcHeader";
2
- export * from "./solana/btcrelay/headers/SolanaBtcStoredHeader";
1
+ export { SolanaBtcHeader } from "./solana/btcrelay/headers/SolanaBtcHeader";
2
+ export { SolanaBtcStoredHeader } from "./solana/btcrelay/headers/SolanaBtcStoredHeader";
3
3
  export * from "./solana/btcrelay/SolanaBtcRelay";
4
- export * from "./solana/chain/modules/SolanaAddresses";
5
- export * from "./solana/chain/modules/SolanaBlocks";
6
- export * from "./solana/chain/modules/SolanaEvents";
7
- export * from "./solana/chain/modules/SolanaFees";
8
- export * from "./solana/chain/modules/SolanaSignatures";
9
- export * from "./solana/chain/modules/SolanaSlots";
10
- export * from "./solana/chain/modules/SolanaTokens";
11
- export * from "./solana/chain/modules/SolanaTransactions";
12
- export * from "./solana/chain/SolanaAction";
13
4
  export * from "./solana/chain/SolanaChainInterface";
14
- export * from "./solana/chain/SolanaModule";
15
- export * from "./solana/program/modules/SolanaProgramEvents";
16
- export * from "./solana/program/SolanaProgramBase";
5
+ export * from "./solana/chain/modules/SolanaFees";
6
+ export * from "./solana/events/SolanaChainEventsBrowser";
17
7
  export * from "./solana/swaps/SolanaSwapProgram";
18
- export * from "./solana/swaps/SolanaSwapData";
19
- export * from "./solana/swaps/SolanaSwapModule";
20
- export * from "./solana/swaps/modules/SolanaDataAccount";
21
- export * from "./solana/swaps/modules/SolanaLpVault";
22
- export * from "./solana/swaps/modules/SwapClaim";
23
- export * from "./solana/swaps/modules/SwapInit";
24
- export * from "./solana/swaps/modules/SwapRefund";
8
+ export { SolanaSwapData } from "./solana/swaps/SolanaSwapData";
25
9
  export * from "./solana/wallet/SolanaKeypairWallet";
26
10
  export * from "./solana/wallet/SolanaSigner";
27
11
  export * from "./solana/SolanaChainType";
28
12
  export * from "./solana/SolanaInitializer";
29
- export * from "./utils/Utils";
package/dist/index.js CHANGED
@@ -14,32 +14,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./solana/btcrelay/headers/SolanaBtcHeader"), exports);
18
- __exportStar(require("./solana/btcrelay/headers/SolanaBtcStoredHeader"), exports);
17
+ exports.SolanaSwapData = exports.SolanaBtcStoredHeader = exports.SolanaBtcHeader = void 0;
18
+ var SolanaBtcHeader_1 = require("./solana/btcrelay/headers/SolanaBtcHeader");
19
+ Object.defineProperty(exports, "SolanaBtcHeader", { enumerable: true, get: function () { return SolanaBtcHeader_1.SolanaBtcHeader; } });
20
+ var SolanaBtcStoredHeader_1 = require("./solana/btcrelay/headers/SolanaBtcStoredHeader");
21
+ Object.defineProperty(exports, "SolanaBtcStoredHeader", { enumerable: true, get: function () { return SolanaBtcStoredHeader_1.SolanaBtcStoredHeader; } });
19
22
  __exportStar(require("./solana/btcrelay/SolanaBtcRelay"), exports);
20
- __exportStar(require("./solana/chain/modules/SolanaAddresses"), exports);
21
- __exportStar(require("./solana/chain/modules/SolanaBlocks"), exports);
22
- __exportStar(require("./solana/chain/modules/SolanaEvents"), exports);
23
- __exportStar(require("./solana/chain/modules/SolanaFees"), exports);
24
- __exportStar(require("./solana/chain/modules/SolanaSignatures"), exports);
25
- __exportStar(require("./solana/chain/modules/SolanaSlots"), exports);
26
- __exportStar(require("./solana/chain/modules/SolanaTokens"), exports);
27
- __exportStar(require("./solana/chain/modules/SolanaTransactions"), exports);
28
- __exportStar(require("./solana/chain/SolanaAction"), exports);
29
23
  __exportStar(require("./solana/chain/SolanaChainInterface"), exports);
30
- __exportStar(require("./solana/chain/SolanaModule"), exports);
31
- __exportStar(require("./solana/program/modules/SolanaProgramEvents"), exports);
32
- __exportStar(require("./solana/program/SolanaProgramBase"), exports);
24
+ __exportStar(require("./solana/chain/modules/SolanaFees"), exports);
25
+ __exportStar(require("./solana/events/SolanaChainEventsBrowser"), exports);
33
26
  __exportStar(require("./solana/swaps/SolanaSwapProgram"), exports);
34
- __exportStar(require("./solana/swaps/SolanaSwapData"), exports);
35
- __exportStar(require("./solana/swaps/SolanaSwapModule"), exports);
36
- __exportStar(require("./solana/swaps/modules/SolanaDataAccount"), exports);
37
- __exportStar(require("./solana/swaps/modules/SolanaLpVault"), exports);
38
- __exportStar(require("./solana/swaps/modules/SwapClaim"), exports);
39
- __exportStar(require("./solana/swaps/modules/SwapInit"), exports);
40
- __exportStar(require("./solana/swaps/modules/SwapRefund"), exports);
27
+ var SolanaSwapData_1 = require("./solana/swaps/SolanaSwapData");
28
+ Object.defineProperty(exports, "SolanaSwapData", { enumerable: true, get: function () { return SolanaSwapData_1.SolanaSwapData; } });
41
29
  __exportStar(require("./solana/wallet/SolanaKeypairWallet"), exports);
42
30
  __exportStar(require("./solana/wallet/SolanaSigner"), exports);
43
31
  __exportStar(require("./solana/SolanaChainType"), exports);
44
32
  __exportStar(require("./solana/SolanaInitializer"), exports);
45
- __exportStar(require("./utils/Utils"), exports);
@@ -1,5 +1,5 @@
1
1
  import { ChainType } from "@atomiqlabs/base";
2
- import { SolanaTx } from "./chain/modules/SolanaTransactions";
2
+ import { SignedSolanaTx, SolanaTx } from "./chain/modules/SolanaTransactions";
3
3
  import { SolanaPreFetchData, SolanaPreFetchVerification } from "./swaps/modules/SwapInit";
4
4
  import { SolanaSigner } from "./wallet/SolanaSigner";
5
5
  import { SolanaSwapProgram } from "./swaps/SolanaSwapProgram";
@@ -8,4 +8,8 @@ import { SolanaChainEventsBrowser } from "./events/SolanaChainEventsBrowser";
8
8
  import { SolanaBtcRelay } from "./btcrelay/SolanaBtcRelay";
9
9
  import { SolanaChainInterface } from "./chain/SolanaChainInterface";
10
10
  import { Wallet } from "@coral-xyz/anchor/dist/cjs/provider";
11
- export type SolanaChainType = ChainType<"SOLANA", SolanaPreFetchData, SolanaPreFetchVerification, SolanaTx, SolanaSigner, Wallet, SolanaSwapData, SolanaSwapProgram, SolanaChainInterface, SolanaChainEventsBrowser, SolanaBtcRelay<any>, never, never, never>;
11
+ /**
12
+ * Type definition for the Solana chain implementation
13
+ * @category Chain Interface
14
+ */
15
+ export type SolanaChainType = ChainType<"SOLANA", SolanaPreFetchData, SolanaPreFetchVerification, SolanaTx, SignedSolanaTx, SolanaSigner, Wallet, SolanaSwapData, SolanaSwapProgram, SolanaChainInterface, SolanaChainEventsBrowser, SolanaBtcRelay<any>, never, never, never>;
@@ -1,20 +1,9 @@
1
+ import { BitcoinNetwork } from "@atomiqlabs/base";
1
2
  export declare const SolanaChains: {
2
- readonly 2: {
3
- readonly addresses: {
4
- readonly swapContract: "11111111111111111111111111111111";
5
- readonly btcRelayContract: "11111111111111111111111111111111";
6
- };
7
- };
8
- readonly 1: {
9
- readonly addresses: {
10
- readonly swapContract: "4hfUykhqmD7ZRvNh1HuzVKEY7ToENixtdUKZspNDCrEM";
11
- readonly btcRelayContract: "3KHSHFpEK6bsjg3bqcxQ9qssJYtRCMi2S9TYVe4q6CQc";
12
- };
13
- };
14
- readonly 0: {
15
- readonly addresses: {
16
- readonly swapContract: "4hfUykhqmD7ZRvNh1HuzVKEY7ToENixtdUKZspNDCrEM";
17
- readonly btcRelayContract: "3KHSHFpEK6bsjg3bqcxQ9qssJYtRCMi2S9TYVe4q6CQc";
3
+ [key in BitcoinNetwork]?: {
4
+ addresses: {
5
+ swapContract: string;
6
+ btcRelayContract: string;
18
7
  };
19
8
  };
20
9
  };
@@ -4,12 +4,12 @@ exports.SolanaChains = void 0;
4
4
  const base_1 = require("@atomiqlabs/base");
5
5
  exports.SolanaChains = {
6
6
  //TODO: Not deployed yet
7
- [base_1.BitcoinNetwork.TESTNET4]: {
8
- addresses: {
9
- swapContract: "11111111111111111111111111111111",
10
- btcRelayContract: "11111111111111111111111111111111"
11
- }
12
- },
7
+ // [BitcoinNetwork.TESTNET4]: {
8
+ // addresses: {
9
+ // swapContract: "11111111111111111111111111111111",
10
+ // btcRelayContract: "11111111111111111111111111111111"
11
+ // }
12
+ // },
13
13
  [base_1.BitcoinNetwork.TESTNET]: {
14
14
  addresses: {
15
15
  swapContract: "4hfUykhqmD7ZRvNh1HuzVKEY7ToENixtdUKZspNDCrEM",
@@ -4,7 +4,15 @@ import { StoredDataAccount } from "./swaps/modules/SolanaDataAccount";
4
4
  import { SolanaRetryPolicy } from "./chain/SolanaChainInterface";
5
5
  import { SolanaFees } from "./chain/modules/SolanaFees";
6
6
  import { SolanaChainType } from "./SolanaChainType";
7
+ /**
8
+ * Token assets available on Solana
9
+ * @category Chain Interface
10
+ */
7
11
  export type SolanaAssetsType = BaseTokenType<"WBTC" | "USDC" | "USDT" | "SOL" | "BONK">;
12
+ /**
13
+ * Configuration options for initializing Solana chain
14
+ * @category Chain Interface
15
+ */
8
16
  export type SolanaSwapperOptions = {
9
17
  rpcUrl: string | Connection;
10
18
  dataAccountStorage?: IStorageManager<StoredDataAccount>;
@@ -13,6 +21,18 @@ export type SolanaSwapperOptions = {
13
21
  swapContract?: string;
14
22
  fees?: SolanaFees;
15
23
  };
24
+ /**
25
+ * Initialize Solana chain integration
26
+ * @category Chain Interface
27
+ */
16
28
  export declare function initializeSolana(options: SolanaSwapperOptions, bitcoinRpc: BitcoinRpc<any>, network: BitcoinNetwork, storageCtor: <T extends StorageObject>(name: string) => IStorageManager<T>): ChainData<SolanaChainType>;
29
+ /**
30
+ * Type definition for the Solana chain initializer
31
+ * @category Chain Interface
32
+ */
17
33
  export type SolanaInitializerType = ChainInitializer<SolanaSwapperOptions, SolanaChainType, SolanaAssetsType>;
34
+ /**
35
+ * Solana chain initializer instance
36
+ * @category Chain Interface
37
+ */
18
38
  export declare const SolanaInitializer: SolanaInitializerType;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SolanaInitializer = exports.initializeSolana = void 0;
4
+ const base_1 = require("@atomiqlabs/base");
4
5
  const web3_js_1 = require("@solana/web3.js");
5
6
  const SolanaChainInterface_1 = require("./chain/SolanaChainInterface");
6
7
  const SolanaFees_1 = require("./chain/modules/SolanaFees");
@@ -32,14 +33,21 @@ const SolanaAssets = {
32
33
  decimals: 5
33
34
  }
34
35
  };
36
+ /**
37
+ * Initialize Solana chain integration
38
+ * @category Chain Interface
39
+ */
35
40
  function initializeSolana(options, bitcoinRpc, network, storageCtor) {
36
41
  const connection = typeof (options.rpcUrl) === "string" ?
37
42
  new web3_js_1.Connection(options.rpcUrl) :
38
43
  options.rpcUrl;
44
+ const solanaChainData = SolanaChains_1.SolanaChains[network];
45
+ if (solanaChainData == null)
46
+ throw new Error(`Unsupported bitcoin network for Solana: ${base_1.BitcoinNetwork[network]}`);
39
47
  const Fees = options.fees ?? new SolanaFees_1.SolanaFees(connection, 200000, 4, 100);
40
48
  const chainInterface = new SolanaChainInterface_1.SolanaChainInterface(connection, options.retryPolicy ?? { transactionResendInterval: 1000 }, Fees);
41
- const btcRelay = new SolanaBtcRelay_1.SolanaBtcRelay(chainInterface, bitcoinRpc, options.btcRelayContract ?? SolanaChains_1.SolanaChains[network].addresses.btcRelayContract);
42
- const swapContract = new SolanaSwapProgram_1.SolanaSwapProgram(chainInterface, btcRelay, options.dataAccountStorage || storageCtor("solAccounts"), options.swapContract ?? SolanaChains_1.SolanaChains[network].addresses.swapContract);
49
+ const btcRelay = new SolanaBtcRelay_1.SolanaBtcRelay(chainInterface, bitcoinRpc, options.btcRelayContract ?? solanaChainData.addresses.btcRelayContract);
50
+ const swapContract = new SolanaSwapProgram_1.SolanaSwapProgram(chainInterface, btcRelay, options.dataAccountStorage || storageCtor("solAccounts"), options.swapContract ?? solanaChainData.addresses.swapContract);
43
51
  const chainEvents = new SolanaChainEventsBrowser_1.SolanaChainEventsBrowser(connection, swapContract);
44
52
  return {
45
53
  chainId,
@@ -54,6 +62,10 @@ function initializeSolana(options, bitcoinRpc, network, storageCtor) {
54
62
  };
55
63
  }
56
64
  exports.initializeSolana = initializeSolana;
65
+ /**
66
+ * Solana chain initializer instance
67
+ * @category Chain Interface
68
+ */
57
69
  exports.SolanaInitializer = {
58
70
  chainId,
59
71
  chainType: null,
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { PublicKey, Signer, Transaction } from "@solana/web3.js";
3
4
  import { SolanaBtcStoredHeader } from "./headers/SolanaBtcStoredHeader";
4
5
  import { BitcoinRpc, BtcBlock, BtcRelay } from "@atomiqlabs/base";
@@ -7,6 +8,9 @@ import { SolanaAction } from "../chain/SolanaAction";
7
8
  import { Buffer } from "buffer";
8
9
  import { SolanaSigner } from "../wallet/SolanaSigner";
9
10
  import { SolanaChainInterface } from "../chain/SolanaChainInterface";
11
+ /**
12
+ * @category BTC Relay
13
+ */
10
14
  export declare class SolanaBtcRelay<B extends BtcBlock> extends SolanaProgramBase<any> implements BtcRelay<SolanaBtcStoredHeader, {
11
15
  tx: Transaction;
12
16
  signers: Signer[];
@@ -18,7 +22,6 @@ export declare class SolanaBtcRelay<B extends BtcBlock> extends SolanaProgramBas
18
22
  * @param header
19
23
  * @param epochStart
20
24
  * @param pastBlocksTimestamps
21
- * @constructor
22
25
  * @private
23
26
  */
24
27
  private Initialize;
@@ -66,7 +69,6 @@ export declare class SolanaBtcRelay<B extends BtcBlock> extends SolanaProgramBas
66
69
  * @param signer
67
70
  * @param headers headers to sync to the btc relay
68
71
  * @param storedHeader current latest stored block header for a given fork
69
- * @param tipWork work of the current tip in a given fork
70
72
  * @param forkId forkId to submit to, forkId=0 means main chain
71
73
  * @param feeRate feeRate for the transaction
72
74
  * @param createTx transaction generator function
@@ -74,20 +76,16 @@ export declare class SolanaBtcRelay<B extends BtcBlock> extends SolanaProgramBas
74
76
  */
75
77
  private _saveHeaders;
76
78
  /**
77
- * Returns data about current main chain tip stored in the btc relay
79
+ * @inheritDoc
78
80
  */
79
81
  getTipData(): Promise<{
80
82
  commitHash: string;
81
83
  blockhash: string;
82
84
  chainWork: Buffer;
83
85
  blockheight: number;
84
- }>;
86
+ } | null>;
85
87
  /**
86
- * Retrieves blockheader with a specific blockhash, returns null if requiredBlockheight is provided and
87
- * btc relay contract is not synced up to the desired blockheight
88
- *
89
- * @param blockData
90
- * @param requiredBlockheight
88
+ * @inheritDoc
91
89
  */
92
90
  retrieveLogAndBlockheight(blockData: {
93
91
  blockhash: string;
@@ -96,133 +94,91 @@ export declare class SolanaBtcRelay<B extends BtcBlock> extends SolanaProgramBas
96
94
  height: number;
97
95
  } | null>;
98
96
  /**
99
- * Retrieves blockheader data by blockheader's commit hash,
100
- *
101
- * @param commitmentHashStr
102
- * @param blockData
97
+ * @inheritDoc
103
98
  */
104
99
  retrieveLogByCommitHash(commitmentHashStr: string, blockData: {
105
100
  blockhash: string;
106
- }): Promise<SolanaBtcStoredHeader>;
101
+ }): Promise<SolanaBtcStoredHeader | null>;
107
102
  /**
108
- * Retrieves latest known stored blockheader & blockheader from bitcoin RPC that is in the main chain
103
+ * @inheritDoc
109
104
  */
110
105
  retrieveLatestKnownBlockLog(): Promise<{
111
106
  resultStoredHeader: SolanaBtcStoredHeader;
112
107
  resultBitcoinHeader: B;
113
- }>;
108
+ } | null>;
114
109
  /**
115
- * Saves initial block header when the btc relay is in uninitialized state
116
- *
117
- * @param signer
118
- * @param header a bitcoin blockheader to submit
119
- * @param epochStart timestamp of the start of the epoch (block timestamp at blockheight-(blockheight%2016))
120
- * @param pastBlocksTimestamps timestamp of the past 10 blocks
121
- * @param feeRate fee rate to use for the transaction
110
+ * @inheritDoc
122
111
  */
123
112
  saveInitialHeader(signer: string, header: B, epochStart: number, pastBlocksTimestamps: number[], feeRate?: string): Promise<{
124
113
  tx: Transaction;
125
114
  signers: Signer[];
126
115
  }>;
127
116
  /**
128
- * Saves blockheaders as a bitcoin main chain to the btc relay
129
- *
130
- * @param signer
131
- * @param mainHeaders
132
- * @param storedHeader
133
- * @param feeRate
117
+ * @inheritDoc
134
118
  */
135
119
  saveMainHeaders(signer: string, mainHeaders: BtcBlock[], storedHeader: SolanaBtcStoredHeader, feeRate?: string): Promise<{
136
120
  forkId: number;
137
121
  lastStoredHeader: SolanaBtcStoredHeader;
138
122
  tx: {
139
123
  tx: Transaction;
140
- signers: any[];
124
+ signers: never[];
141
125
  };
142
126
  computedCommitedHeaders: SolanaBtcStoredHeader[];
143
127
  }>;
144
128
  /**
145
- * Creates a new long fork and submits the headers to it
146
- *
147
- * @param signer
148
- * @param forkHeaders
149
- * @param storedHeader
150
- * @param tipWork
151
- * @param feeRate
129
+ * @inheritDoc
152
130
  */
153
131
  saveNewForkHeaders(signer: string, forkHeaders: BtcBlock[], storedHeader: SolanaBtcStoredHeader, tipWork: Buffer, feeRate?: string): Promise<{
154
132
  forkId: number;
155
133
  lastStoredHeader: SolanaBtcStoredHeader;
156
134
  tx: {
157
135
  tx: Transaction;
158
- signers: any[];
136
+ signers: never[];
159
137
  };
160
138
  computedCommitedHeaders: SolanaBtcStoredHeader[];
161
139
  }>;
162
140
  /**
163
- * Continues submitting blockheaders to a given fork
164
- *
165
- * @param signer
166
- * @param forkHeaders
167
- * @param storedHeader
168
- * @param forkId
169
- * @param tipWork
170
- * @param feeRate
141
+ * @inheritDoc
171
142
  */
172
143
  saveForkHeaders(signer: string, forkHeaders: BtcBlock[], storedHeader: SolanaBtcStoredHeader, forkId: number, tipWork: Buffer, feeRate?: string): Promise<{
173
144
  forkId: number;
174
145
  lastStoredHeader: SolanaBtcStoredHeader;
175
146
  tx: {
176
147
  tx: Transaction;
177
- signers: any[];
148
+ signers: never[];
178
149
  };
179
150
  computedCommitedHeaders: SolanaBtcStoredHeader[];
180
151
  }>;
181
152
  /**
182
- * Submits short fork with given blockheaders
183
- *
184
- * @param signer
185
- * @param forkHeaders
186
- * @param storedHeader
187
- * @param tipWork
188
- * @param feeRate
153
+ * @inheritDoc
189
154
  */
190
155
  saveShortForkHeaders(signer: string, forkHeaders: BtcBlock[], storedHeader: SolanaBtcStoredHeader, tipWork: Buffer, feeRate?: string): Promise<{
191
156
  forkId: number;
192
157
  lastStoredHeader: SolanaBtcStoredHeader;
193
158
  tx: {
194
159
  tx: Transaction;
195
- signers: any[];
160
+ signers: never[];
196
161
  };
197
162
  computedCommitedHeaders: SolanaBtcStoredHeader[];
198
163
  }>;
199
164
  /**
200
- * Sweeps fork data PDAs back to self
201
- *
202
- * @param signer
203
- * @param lastSweepId lastCheckedId returned from the previous sweepForkData() call
204
- * @returns {number} lastCheckedId that should be passed to the next call of sweepForkData()
165
+ * @inheritDoc
205
166
  */
206
167
  sweepForkData(signer: SolanaSigner, lastSweepId?: number): Promise<number | null>;
207
168
  /**
208
- * Estimate required synchronization fee (worst case) to synchronize btc relay to the required blockheight
209
- *
210
- * @param requiredBlockheight
211
- * @param feeRate
169
+ * @inheritDoc
212
170
  */
213
171
  estimateSynchronizeFee(requiredBlockheight: number, feeRate?: string): Promise<bigint>;
214
172
  /**
215
- * Returns fee required (in SOL) to synchronize a single block to btc relay
216
- *
217
- * @param feeRate
173
+ * @inheritDoc
218
174
  */
219
175
  getFeePerBlock(feeRate?: string): Promise<bigint>;
220
176
  /**
221
- * Gets fee rate required for submitting blockheaders to the main chain
177
+ * @inheritDoc
222
178
  */
223
179
  getMainFeeRate(signer: string | null): Promise<string>;
224
180
  /**
225
- * Gets fee rate required for submitting blockheaders to the specific fork
181
+ * @inheritDoc
226
182
  */
227
183
  getForkFeeRate(signer: string, forkId: number): Promise<string>;
228
184
  }