@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.
- package/dist/index.d.ts +5 -22
- package/dist/index.js +9 -22
- package/dist/solana/SolanaChainType.d.ts +6 -2
- package/dist/solana/SolanaChains.d.ts +5 -16
- package/dist/solana/SolanaChains.js +6 -6
- package/dist/solana/SolanaInitializer.d.ts +20 -0
- package/dist/solana/SolanaInitializer.js +14 -2
- package/dist/solana/btcrelay/SolanaBtcRelay.d.ts +25 -69
- package/dist/solana/btcrelay/SolanaBtcRelay.js +56 -80
- package/dist/solana/btcrelay/headers/SolanaBtcHeader.d.ts +6 -2
- package/dist/solana/btcrelay/headers/SolanaBtcHeader.js +3 -0
- package/dist/solana/btcrelay/headers/SolanaBtcStoredHeader.d.ts +4 -0
- package/dist/solana/btcrelay/headers/SolanaBtcStoredHeader.js +3 -0
- package/dist/solana/chain/SolanaAction.d.ts +2 -2
- package/dist/solana/chain/SolanaAction.js +1 -1
- package/dist/solana/chain/SolanaChainInterface.d.ts +89 -8
- package/dist/solana/chain/SolanaChainInterface.js +85 -3
- package/dist/solana/chain/SolanaModule.d.ts +5 -5
- package/dist/solana/chain/modules/SolanaBlocks.d.ts +6 -2
- package/dist/solana/chain/modules/SolanaBlocks.js +5 -2
- package/dist/solana/chain/modules/SolanaEvents.d.ts +2 -2
- package/dist/solana/chain/modules/SolanaEvents.js +22 -22
- package/dist/solana/chain/modules/SolanaFees.d.ts +4 -3
- package/dist/solana/chain/modules/SolanaFees.js +21 -19
- package/dist/solana/chain/modules/SolanaSignatures.d.ts +1 -0
- package/dist/solana/chain/modules/SolanaSlots.js +3 -3
- package/dist/solana/chain/modules/SolanaTokens.d.ts +1 -14
- package/dist/solana/chain/modules/SolanaTokens.js +1 -7
- package/dist/solana/chain/modules/SolanaTransactions.d.ts +23 -8
- package/dist/solana/chain/modules/SolanaTransactions.js +121 -40
- package/dist/solana/events/SolanaChainEvents.d.ts +3 -56
- package/dist/solana/events/SolanaChainEvents.js +8 -172
- package/dist/solana/events/SolanaChainEventsBrowser.d.ts +72 -9
- package/dist/solana/events/SolanaChainEventsBrowser.js +188 -13
- package/dist/solana/program/SolanaProgramBase.d.ts +9 -4
- package/dist/solana/program/modules/SolanaProgramEvents.d.ts +3 -3
- package/dist/solana/program/modules/SolanaProgramEvents.js +7 -4
- package/dist/solana/swaps/SolanaSwapData.d.ts +128 -7
- package/dist/solana/swaps/SolanaSwapData.js +190 -57
- package/dist/solana/swaps/SolanaSwapModule.js +1 -0
- package/dist/solana/swaps/SolanaSwapProgram.d.ts +156 -76
- package/dist/solana/swaps/SolanaSwapProgram.js +193 -74
- package/dist/solana/swaps/SwapTypeEnum.js +3 -2
- package/dist/solana/swaps/modules/SolanaDataAccount.d.ts +1 -0
- package/dist/solana/swaps/modules/SolanaDataAccount.js +6 -7
- package/dist/solana/swaps/modules/SolanaLpVault.d.ts +2 -4
- package/dist/solana/swaps/modules/SolanaLpVault.js +4 -6
- package/dist/solana/swaps/modules/SwapClaim.d.ts +4 -7
- package/dist/solana/swaps/modules/SwapClaim.js +17 -16
- package/dist/solana/swaps/modules/SwapInit.d.ts +1 -10
- package/dist/solana/swaps/modules/SwapInit.js +18 -16
- package/dist/solana/swaps/modules/SwapRefund.d.ts +1 -2
- package/dist/solana/swaps/modules/SwapRefund.js +33 -18
- package/dist/solana/wallet/SolanaKeypairWallet.d.ts +4 -0
- package/dist/solana/wallet/SolanaKeypairWallet.js +4 -0
- package/dist/solana/wallet/SolanaSigner.d.ts +7 -0
- package/dist/solana/wallet/SolanaSigner.js +7 -0
- package/dist/utils/Utils.d.ts +9 -4
- package/package.json +10 -7
- package/src/index.ts +5 -24
- package/src/solana/SolanaChainType.ts +6 -1
- package/src/solana/SolanaChains.ts +7 -7
- package/src/solana/SolanaInitializer.ts +30 -6
- package/src/solana/btcrelay/SolanaBtcRelay.ts +69 -86
- package/src/solana/btcrelay/headers/SolanaBtcHeader.ts +5 -2
- package/src/solana/btcrelay/headers/SolanaBtcStoredHeader.ts +3 -0
- package/src/solana/chain/SolanaAction.ts +3 -3
- package/src/solana/chain/SolanaChainInterface.ts +101 -5
- package/src/solana/chain/SolanaModule.ts +1 -1
- package/src/solana/chain/modules/SolanaBlocks.ts +10 -6
- package/src/solana/chain/modules/SolanaEvents.ts +30 -29
- package/src/solana/chain/modules/SolanaFees.ts +26 -22
- package/src/solana/chain/modules/SolanaSlots.ts +3 -3
- package/src/solana/chain/modules/SolanaTokens.ts +6 -13
- package/src/solana/chain/modules/SolanaTransactions.ts +135 -48
- package/src/solana/events/SolanaChainEvents.ts +12 -201
- package/src/solana/events/SolanaChainEventsBrowser.ts +216 -16
- package/src/solana/program/SolanaProgramBase.ts +1 -1
- package/src/solana/program/modules/SolanaProgramEvents.ts +15 -13
- package/src/solana/swaps/SolanaSwapData.ts +217 -137
- package/src/solana/swaps/SolanaSwapModule.ts +1 -0
- package/src/solana/swaps/SolanaSwapProgram.ts +209 -103
- package/src/solana/swaps/SwapTypeEnum.ts +3 -2
- package/src/solana/swaps/modules/SolanaDataAccount.ts +8 -15
- package/src/solana/swaps/modules/SolanaLpVault.ts +8 -15
- package/src/solana/swaps/modules/SwapClaim.ts +22 -26
- package/src/solana/swaps/modules/SwapInit.ts +25 -31
- package/src/solana/swaps/modules/SwapRefund.ts +34 -22
- package/src/solana/wallet/SolanaKeypairWallet.ts +4 -0
- package/src/solana/wallet/SolanaSigner.ts +7 -0
- package/src/utils/Utils.ts +21 -7
package/dist/index.d.ts
CHANGED
|
@@ -1,29 +1,12 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
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/
|
|
15
|
-
export * from "./solana/
|
|
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
|
|
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
|
-
|
|
18
|
-
|
|
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/
|
|
31
|
-
__exportStar(require("./solana/
|
|
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
|
-
|
|
35
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
[
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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 ??
|
|
42
|
-
const swapContract = new SolanaSwapProgram_1.SolanaSwapProgram(chainInterface, btcRelay, options.dataAccountStorage || storageCtor("solAccounts"), options.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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
103
|
+
* @inheritDoc
|
|
109
104
|
*/
|
|
110
105
|
retrieveLatestKnownBlockLog(): Promise<{
|
|
111
106
|
resultStoredHeader: SolanaBtcStoredHeader;
|
|
112
107
|
resultBitcoinHeader: B;
|
|
113
|
-
}>;
|
|
108
|
+
} | null>;
|
|
114
109
|
/**
|
|
115
|
-
*
|
|
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
|
-
*
|
|
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:
|
|
124
|
+
signers: never[];
|
|
141
125
|
};
|
|
142
126
|
computedCommitedHeaders: SolanaBtcStoredHeader[];
|
|
143
127
|
}>;
|
|
144
128
|
/**
|
|
145
|
-
*
|
|
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:
|
|
136
|
+
signers: never[];
|
|
159
137
|
};
|
|
160
138
|
computedCommitedHeaders: SolanaBtcStoredHeader[];
|
|
161
139
|
}>;
|
|
162
140
|
/**
|
|
163
|
-
*
|
|
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:
|
|
148
|
+
signers: never[];
|
|
178
149
|
};
|
|
179
150
|
computedCommitedHeaders: SolanaBtcStoredHeader[];
|
|
180
151
|
}>;
|
|
181
152
|
/**
|
|
182
|
-
*
|
|
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:
|
|
160
|
+
signers: never[];
|
|
196
161
|
};
|
|
197
162
|
computedCommitedHeaders: SolanaBtcStoredHeader[];
|
|
198
163
|
}>;
|
|
199
164
|
/**
|
|
200
|
-
*
|
|
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
|
-
*
|
|
209
|
-
*
|
|
210
|
-
* @param requiredBlockheight
|
|
211
|
-
* @param feeRate
|
|
169
|
+
* @inheritDoc
|
|
212
170
|
*/
|
|
213
171
|
estimateSynchronizeFee(requiredBlockheight: number, feeRate?: string): Promise<bigint>;
|
|
214
172
|
/**
|
|
215
|
-
*
|
|
216
|
-
*
|
|
217
|
-
* @param feeRate
|
|
173
|
+
* @inheritDoc
|
|
218
174
|
*/
|
|
219
175
|
getFeePerBlock(feeRate?: string): Promise<bigint>;
|
|
220
176
|
/**
|
|
221
|
-
*
|
|
177
|
+
* @inheritDoc
|
|
222
178
|
*/
|
|
223
179
|
getMainFeeRate(signer: string | null): Promise<string>;
|
|
224
180
|
/**
|
|
225
|
-
*
|
|
181
|
+
* @inheritDoc
|
|
226
182
|
*/
|
|
227
183
|
getForkFeeRate(signer: string, forkId: number): Promise<string>;
|
|
228
184
|
}
|