@atomiqlabs/chain-starknet 4.0.0-dev.12 → 4.0.0-dev.13
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/LICENSE +201 -201
- package/dist/index.d.ts +38 -38
- package/dist/index.js +54 -54
- package/dist/starknet/StarknetChainType.d.ts +13 -13
- package/dist/starknet/StarknetChainType.js +2 -2
- package/dist/starknet/StarknetInitializer.d.ts +27 -27
- package/dist/starknet/StarknetInitializer.js +69 -69
- package/dist/starknet/btcrelay/BtcRelayAbi.d.ts +250 -250
- package/dist/starknet/btcrelay/BtcRelayAbi.js +341 -341
- package/dist/starknet/btcrelay/StarknetBtcRelay.d.ts +186 -186
- package/dist/starknet/btcrelay/StarknetBtcRelay.js +379 -379
- package/dist/starknet/btcrelay/headers/StarknetBtcHeader.d.ts +31 -31
- package/dist/starknet/btcrelay/headers/StarknetBtcHeader.js +74 -74
- package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.d.ts +51 -51
- package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.js +113 -113
- package/dist/starknet/chain/StarknetAction.d.ts +19 -19
- package/dist/starknet/chain/StarknetAction.js +73 -73
- package/dist/starknet/chain/StarknetChainInterface.d.ts +52 -52
- package/dist/starknet/chain/StarknetChainInterface.js +91 -91
- package/dist/starknet/chain/StarknetModule.d.ts +14 -14
- package/dist/starknet/chain/StarknetModule.js +13 -13
- package/dist/starknet/chain/modules/ERC20Abi.d.ts +755 -755
- package/dist/starknet/chain/modules/ERC20Abi.js +1032 -1032
- package/dist/starknet/chain/modules/StarknetAccounts.d.ts +6 -6
- package/dist/starknet/chain/modules/StarknetAccounts.js +24 -24
- package/dist/starknet/chain/modules/StarknetAddresses.d.ts +9 -9
- package/dist/starknet/chain/modules/StarknetAddresses.js +26 -26
- package/dist/starknet/chain/modules/StarknetBlocks.d.ts +20 -20
- package/dist/starknet/chain/modules/StarknetBlocks.js +64 -64
- package/dist/starknet/chain/modules/StarknetEvents.d.ts +44 -44
- package/dist/starknet/chain/modules/StarknetEvents.js +88 -88
- package/dist/starknet/chain/modules/StarknetFees.d.ts +77 -77
- package/dist/starknet/chain/modules/StarknetFees.js +114 -114
- package/dist/starknet/chain/modules/StarknetSignatures.d.ts +29 -29
- package/dist/starknet/chain/modules/StarknetSignatures.js +72 -72
- package/dist/starknet/chain/modules/StarknetTokens.d.ts +69 -69
- package/dist/starknet/chain/modules/StarknetTokens.js +102 -98
- package/dist/starknet/chain/modules/StarknetTransactions.d.ts +93 -93
- package/dist/starknet/chain/modules/StarknetTransactions.js +261 -260
- package/dist/starknet/contract/StarknetContractBase.d.ts +13 -13
- package/dist/starknet/contract/StarknetContractBase.js +20 -16
- package/dist/starknet/contract/StarknetContractModule.d.ts +8 -8
- package/dist/starknet/contract/StarknetContractModule.js +11 -11
- package/dist/starknet/contract/modules/StarknetContractEvents.d.ts +51 -51
- package/dist/starknet/contract/modules/StarknetContractEvents.js +97 -97
- package/dist/starknet/events/StarknetChainEvents.d.ts +21 -21
- package/dist/starknet/events/StarknetChainEvents.js +52 -52
- package/dist/starknet/events/StarknetChainEventsBrowser.d.ts +89 -90
- package/dist/starknet/events/StarknetChainEventsBrowser.js +296 -294
- package/dist/starknet/provider/RpcProviderWithRetries.d.ts +21 -21
- package/dist/starknet/provider/RpcProviderWithRetries.js +32 -32
- package/dist/starknet/spv_swap/SpvVaultContractAbi.d.ts +488 -488
- package/dist/starknet/spv_swap/SpvVaultContractAbi.js +656 -656
- package/dist/starknet/spv_swap/StarknetSpvVaultContract.d.ts +66 -66
- package/dist/starknet/spv_swap/StarknetSpvVaultContract.js +382 -382
- package/dist/starknet/spv_swap/StarknetSpvVaultData.d.ts +49 -49
- package/dist/starknet/spv_swap/StarknetSpvVaultData.js +145 -145
- package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.d.ts +25 -25
- package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.js +72 -72
- package/dist/starknet/swaps/EscrowManagerAbi.d.ts +431 -431
- package/dist/starknet/swaps/EscrowManagerAbi.js +583 -583
- package/dist/starknet/swaps/StarknetSwapContract.d.ts +191 -191
- package/dist/starknet/swaps/StarknetSwapContract.js +424 -424
- package/dist/starknet/swaps/StarknetSwapData.d.ts +74 -74
- package/dist/starknet/swaps/StarknetSwapData.js +325 -325
- package/dist/starknet/swaps/StarknetSwapModule.d.ts +10 -10
- package/dist/starknet/swaps/StarknetSwapModule.js +11 -11
- package/dist/starknet/swaps/handlers/IHandler.d.ts +13 -13
- package/dist/starknet/swaps/handlers/IHandler.js +2 -2
- package/dist/starknet/swaps/handlers/claim/ClaimHandlers.d.ts +13 -13
- package/dist/starknet/swaps/handlers/claim/ClaimHandlers.js +13 -13
- package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.d.ts +21 -21
- package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.js +44 -44
- package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +24 -24
- package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +48 -48
- package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +25 -25
- package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +40 -40
- package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +20 -20
- package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +30 -30
- package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +45 -45
- package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +52 -52
- package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.d.ts +17 -17
- package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.js +27 -27
- package/dist/starknet/swaps/modules/StarknetLpVault.d.ts +69 -69
- package/dist/starknet/swaps/modules/StarknetLpVault.js +122 -122
- package/dist/starknet/swaps/modules/StarknetSwapClaim.d.ts +53 -53
- package/dist/starknet/swaps/modules/StarknetSwapClaim.js +100 -100
- package/dist/starknet/swaps/modules/StarknetSwapInit.d.ts +94 -87
- package/dist/starknet/swaps/modules/StarknetSwapInit.js +235 -225
- package/dist/starknet/swaps/modules/StarknetSwapRefund.d.ts +62 -62
- package/dist/starknet/swaps/modules/StarknetSwapRefund.js +128 -128
- package/dist/starknet/wallet/StarknetKeypairWallet.d.ts +7 -7
- package/dist/starknet/wallet/StarknetKeypairWallet.js +35 -30
- package/dist/starknet/wallet/StarknetSigner.d.ts +12 -12
- package/dist/starknet/wallet/StarknetSigner.js +47 -46
- package/dist/utils/Utils.d.ts +37 -37
- package/dist/utils/Utils.js +260 -261
- package/package.json +43 -37
- package/src/index.ts +47 -47
- package/src/starknet/StarknetChainType.ts +28 -28
- package/src/starknet/StarknetInitializer.ts +108 -108
- package/src/starknet/btcrelay/BtcRelayAbi.ts +338 -338
- package/src/starknet/btcrelay/StarknetBtcRelay.ts +494 -494
- package/src/starknet/btcrelay/headers/StarknetBtcHeader.ts +100 -100
- package/src/starknet/btcrelay/headers/StarknetBtcStoredHeader.ts +141 -141
- package/src/starknet/chain/StarknetAction.ts +85 -85
- package/src/starknet/chain/StarknetChainInterface.ts +149 -149
- package/src/starknet/chain/StarknetModule.ts +19 -19
- package/src/starknet/chain/modules/ERC20Abi.ts +1029 -1029
- package/src/starknet/chain/modules/StarknetAccounts.ts +25 -25
- package/src/starknet/chain/modules/StarknetAddresses.ts +22 -22
- package/src/starknet/chain/modules/StarknetBlocks.ts +75 -74
- package/src/starknet/chain/modules/StarknetEvents.ts +104 -104
- package/src/starknet/chain/modules/StarknetFees.ts +154 -154
- package/src/starknet/chain/modules/StarknetSignatures.ts +91 -91
- package/src/starknet/chain/modules/StarknetTokens.ts +120 -116
- package/src/starknet/chain/modules/StarknetTransactions.ts +285 -283
- package/src/starknet/contract/StarknetContractBase.ts +30 -26
- package/src/starknet/contract/StarknetContractModule.ts +16 -16
- package/src/starknet/contract/modules/StarknetContractEvents.ts +134 -134
- package/src/starknet/events/StarknetChainEvents.ts +67 -67
- package/src/starknet/events/StarknetChainEventsBrowser.ts +411 -411
- package/src/starknet/provider/RpcProviderWithRetries.ts +43 -43
- package/src/starknet/spv_swap/SpvVaultContractAbi.ts +656 -656
- package/src/starknet/spv_swap/StarknetSpvVaultContract.ts +483 -483
- package/src/starknet/spv_swap/StarknetSpvVaultData.ts +195 -195
- package/src/starknet/spv_swap/StarknetSpvWithdrawalData.ts +79 -79
- package/src/starknet/swaps/EscrowManagerAbi.ts +582 -582
- package/src/starknet/swaps/StarknetSwapContract.ts +647 -647
- package/src/starknet/swaps/StarknetSwapData.ts +455 -455
- package/src/starknet/swaps/StarknetSwapModule.ts +17 -17
- package/src/starknet/swaps/handlers/IHandler.ts +20 -20
- package/src/starknet/swaps/handlers/claim/ClaimHandlers.ts +23 -23
- package/src/starknet/swaps/handlers/claim/HashlockClaimHandler.ts +53 -53
- package/src/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.ts +73 -73
- package/src/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.ts +67 -67
- package/src/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.ts +50 -50
- package/src/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +102 -102
- package/src/starknet/swaps/handlers/refund/TimelockRefundHandler.ts +38 -38
- package/src/starknet/swaps/modules/StarknetLpVault.ts +147 -147
- package/src/starknet/swaps/modules/StarknetSwapClaim.ts +141 -141
- package/src/starknet/swaps/modules/StarknetSwapInit.ts +300 -287
- package/src/starknet/swaps/modules/StarknetSwapRefund.ts +196 -196
- package/src/starknet/wallet/StarknetKeypairWallet.ts +44 -39
- package/src/starknet/wallet/StarknetSigner.ts +55 -55
- package/src/utils/Utils.ts +251 -252
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { BtcHeader } from "@atomiqlabs/base";
|
|
2
|
-
import { Buffer } from "buffer";
|
|
3
|
-
import { BigNumberish } from "starknet";
|
|
4
|
-
export type StarknetBtcHeaderType = {
|
|
5
|
-
reversed_version: BigNumberish;
|
|
6
|
-
previous_blockhash: BigNumberish[];
|
|
7
|
-
merkle_root: BigNumberish[];
|
|
8
|
-
reversed_timestamp: BigNumberish;
|
|
9
|
-
nbits: BigNumberish;
|
|
10
|
-
nonce: BigNumberish;
|
|
11
|
-
hash?: Buffer;
|
|
12
|
-
};
|
|
13
|
-
export declare class StarknetBtcHeader implements BtcHeader {
|
|
14
|
-
reversed_version: number;
|
|
15
|
-
previous_blockhash: number[];
|
|
16
|
-
merkle_root: number[];
|
|
17
|
-
reversed_timestamp: number;
|
|
18
|
-
nbits: number;
|
|
19
|
-
nonce: number;
|
|
20
|
-
hash?: Buffer;
|
|
21
|
-
constructor(obj: StarknetBtcHeaderType);
|
|
22
|
-
getMerkleRoot(): Buffer;
|
|
23
|
-
getNbits(): number;
|
|
24
|
-
getNonce(): number;
|
|
25
|
-
getReversedPrevBlockhash(): Buffer;
|
|
26
|
-
getTimestamp(): number;
|
|
27
|
-
getVersion(): number;
|
|
28
|
-
getHash(): Buffer;
|
|
29
|
-
serialize(): BigNumberish[];
|
|
30
|
-
static fromSerializedFeltArray(span: BigNumberish[]): StarknetBtcHeader;
|
|
31
|
-
}
|
|
1
|
+
import { BtcHeader } from "@atomiqlabs/base";
|
|
2
|
+
import { Buffer } from "buffer";
|
|
3
|
+
import { BigNumberish } from "starknet";
|
|
4
|
+
export type StarknetBtcHeaderType = {
|
|
5
|
+
reversed_version: BigNumberish;
|
|
6
|
+
previous_blockhash: BigNumberish[];
|
|
7
|
+
merkle_root: BigNumberish[];
|
|
8
|
+
reversed_timestamp: BigNumberish;
|
|
9
|
+
nbits: BigNumberish;
|
|
10
|
+
nonce: BigNumberish;
|
|
11
|
+
hash?: Buffer;
|
|
12
|
+
};
|
|
13
|
+
export declare class StarknetBtcHeader implements BtcHeader {
|
|
14
|
+
reversed_version: number;
|
|
15
|
+
previous_blockhash: number[];
|
|
16
|
+
merkle_root: number[];
|
|
17
|
+
reversed_timestamp: number;
|
|
18
|
+
nbits: number;
|
|
19
|
+
nonce: number;
|
|
20
|
+
hash?: Buffer;
|
|
21
|
+
constructor(obj: StarknetBtcHeaderType);
|
|
22
|
+
getMerkleRoot(): Buffer;
|
|
23
|
+
getNbits(): number;
|
|
24
|
+
getNonce(): number;
|
|
25
|
+
getReversedPrevBlockhash(): Buffer;
|
|
26
|
+
getTimestamp(): number;
|
|
27
|
+
getVersion(): number;
|
|
28
|
+
getHash(): Buffer;
|
|
29
|
+
serialize(): BigNumberish[];
|
|
30
|
+
static fromSerializedFeltArray(span: BigNumberish[]): StarknetBtcHeader;
|
|
31
|
+
}
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StarknetBtcHeader = void 0;
|
|
4
|
-
const buffer_1 = require("buffer");
|
|
5
|
-
const Utils_1 = require("../../../utils/Utils");
|
|
6
|
-
const sha2_1 = require("@noble/hashes/sha2");
|
|
7
|
-
class StarknetBtcHeader {
|
|
8
|
-
constructor(obj) {
|
|
9
|
-
this.reversed_version = Number(obj.reversed_version);
|
|
10
|
-
this.previous_blockhash = obj.previous_blockhash.map(val => Number(val));
|
|
11
|
-
this.merkle_root = obj.merkle_root.map(val => Number(val));
|
|
12
|
-
this.reversed_timestamp = Number(obj.reversed_timestamp);
|
|
13
|
-
this.nbits = Number(obj.nbits);
|
|
14
|
-
this.nonce = Number(obj.nonce);
|
|
15
|
-
this.hash = obj.hash;
|
|
16
|
-
}
|
|
17
|
-
getMerkleRoot() {
|
|
18
|
-
return (0, Utils_1.u32ArrayToBuffer)(this.merkle_root);
|
|
19
|
-
}
|
|
20
|
-
getNbits() {
|
|
21
|
-
return (0, Utils_1.u32ReverseEndianness)(this.nbits);
|
|
22
|
-
}
|
|
23
|
-
getNonce() {
|
|
24
|
-
return (0, Utils_1.u32ReverseEndianness)(this.nonce);
|
|
25
|
-
}
|
|
26
|
-
getReversedPrevBlockhash() {
|
|
27
|
-
return (0, Utils_1.u32ArrayToBuffer)(this.previous_blockhash);
|
|
28
|
-
}
|
|
29
|
-
getTimestamp() {
|
|
30
|
-
return (0, Utils_1.u32ReverseEndianness)(this.reversed_timestamp);
|
|
31
|
-
}
|
|
32
|
-
getVersion() {
|
|
33
|
-
return (0, Utils_1.u32ReverseEndianness)(this.reversed_version);
|
|
34
|
-
}
|
|
35
|
-
getHash() {
|
|
36
|
-
if (this.hash != null)
|
|
37
|
-
return this.hash;
|
|
38
|
-
const buffer = buffer_1.Buffer.alloc(80);
|
|
39
|
-
buffer.writeUInt32BE(this.reversed_version, 0);
|
|
40
|
-
(0, Utils_1.u32ArrayToBuffer)(this.previous_blockhash).copy(buffer, 4);
|
|
41
|
-
(0, Utils_1.u32ArrayToBuffer)(this.merkle_root).copy(buffer, 36);
|
|
42
|
-
buffer.writeUInt32BE(this.reversed_timestamp, 68);
|
|
43
|
-
buffer.writeUInt32BE(this.nbits, 72);
|
|
44
|
-
buffer.writeUInt32BE(this.nonce, 76);
|
|
45
|
-
return buffer_1.Buffer.from((0, sha2_1.sha256)((0, sha2_1.sha256)(buffer)));
|
|
46
|
-
}
|
|
47
|
-
serialize() {
|
|
48
|
-
return [
|
|
49
|
-
this.reversed_version,
|
|
50
|
-
...this.previous_blockhash,
|
|
51
|
-
...this.merkle_root,
|
|
52
|
-
this.reversed_timestamp,
|
|
53
|
-
this.nbits,
|
|
54
|
-
this.nonce
|
|
55
|
-
];
|
|
56
|
-
}
|
|
57
|
-
static fromSerializedFeltArray(span) {
|
|
58
|
-
const reversed_version = (0, Utils_1.toHex)(span.shift());
|
|
59
|
-
const previous_blockhash = span.splice(0, 8).map(Utils_1.toHex);
|
|
60
|
-
const merkle_root = span.splice(0, 8).map(Utils_1.toHex);
|
|
61
|
-
const reversed_timestamp = (0, Utils_1.toHex)(span.shift());
|
|
62
|
-
const nbits = (0, Utils_1.toHex)(span.shift());
|
|
63
|
-
const nonce = (0, Utils_1.toHex)(span.shift());
|
|
64
|
-
return new StarknetBtcHeader({
|
|
65
|
-
reversed_version,
|
|
66
|
-
previous_blockhash,
|
|
67
|
-
merkle_root,
|
|
68
|
-
reversed_timestamp,
|
|
69
|
-
nbits,
|
|
70
|
-
nonce
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.StarknetBtcHeader = StarknetBtcHeader;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StarknetBtcHeader = void 0;
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
5
|
+
const Utils_1 = require("../../../utils/Utils");
|
|
6
|
+
const sha2_1 = require("@noble/hashes/sha2");
|
|
7
|
+
class StarknetBtcHeader {
|
|
8
|
+
constructor(obj) {
|
|
9
|
+
this.reversed_version = Number(obj.reversed_version);
|
|
10
|
+
this.previous_blockhash = obj.previous_blockhash.map(val => Number(val));
|
|
11
|
+
this.merkle_root = obj.merkle_root.map(val => Number(val));
|
|
12
|
+
this.reversed_timestamp = Number(obj.reversed_timestamp);
|
|
13
|
+
this.nbits = Number(obj.nbits);
|
|
14
|
+
this.nonce = Number(obj.nonce);
|
|
15
|
+
this.hash = obj.hash;
|
|
16
|
+
}
|
|
17
|
+
getMerkleRoot() {
|
|
18
|
+
return (0, Utils_1.u32ArrayToBuffer)(this.merkle_root);
|
|
19
|
+
}
|
|
20
|
+
getNbits() {
|
|
21
|
+
return (0, Utils_1.u32ReverseEndianness)(this.nbits);
|
|
22
|
+
}
|
|
23
|
+
getNonce() {
|
|
24
|
+
return (0, Utils_1.u32ReverseEndianness)(this.nonce);
|
|
25
|
+
}
|
|
26
|
+
getReversedPrevBlockhash() {
|
|
27
|
+
return (0, Utils_1.u32ArrayToBuffer)(this.previous_blockhash);
|
|
28
|
+
}
|
|
29
|
+
getTimestamp() {
|
|
30
|
+
return (0, Utils_1.u32ReverseEndianness)(this.reversed_timestamp);
|
|
31
|
+
}
|
|
32
|
+
getVersion() {
|
|
33
|
+
return (0, Utils_1.u32ReverseEndianness)(this.reversed_version);
|
|
34
|
+
}
|
|
35
|
+
getHash() {
|
|
36
|
+
if (this.hash != null)
|
|
37
|
+
return this.hash;
|
|
38
|
+
const buffer = buffer_1.Buffer.alloc(80);
|
|
39
|
+
buffer.writeUInt32BE(this.reversed_version, 0);
|
|
40
|
+
(0, Utils_1.u32ArrayToBuffer)(this.previous_blockhash).copy(buffer, 4);
|
|
41
|
+
(0, Utils_1.u32ArrayToBuffer)(this.merkle_root).copy(buffer, 36);
|
|
42
|
+
buffer.writeUInt32BE(this.reversed_timestamp, 68);
|
|
43
|
+
buffer.writeUInt32BE(this.nbits, 72);
|
|
44
|
+
buffer.writeUInt32BE(this.nonce, 76);
|
|
45
|
+
return buffer_1.Buffer.from((0, sha2_1.sha256)((0, sha2_1.sha256)(buffer)));
|
|
46
|
+
}
|
|
47
|
+
serialize() {
|
|
48
|
+
return [
|
|
49
|
+
this.reversed_version,
|
|
50
|
+
...this.previous_blockhash,
|
|
51
|
+
...this.merkle_root,
|
|
52
|
+
this.reversed_timestamp,
|
|
53
|
+
this.nbits,
|
|
54
|
+
this.nonce
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
static fromSerializedFeltArray(span) {
|
|
58
|
+
const reversed_version = (0, Utils_1.toHex)(span.shift());
|
|
59
|
+
const previous_blockhash = span.splice(0, 8).map(Utils_1.toHex);
|
|
60
|
+
const merkle_root = span.splice(0, 8).map(Utils_1.toHex);
|
|
61
|
+
const reversed_timestamp = (0, Utils_1.toHex)(span.shift());
|
|
62
|
+
const nbits = (0, Utils_1.toHex)(span.shift());
|
|
63
|
+
const nonce = (0, Utils_1.toHex)(span.shift());
|
|
64
|
+
return new StarknetBtcHeader({
|
|
65
|
+
reversed_version,
|
|
66
|
+
previous_blockhash,
|
|
67
|
+
merkle_root,
|
|
68
|
+
reversed_timestamp,
|
|
69
|
+
nbits,
|
|
70
|
+
nonce
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.StarknetBtcHeader = StarknetBtcHeader;
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import { BtcStoredHeader } from "@atomiqlabs/base";
|
|
2
|
-
import { StarknetBtcHeader, StarknetBtcHeaderType } from "./StarknetBtcHeader";
|
|
3
|
-
import { Buffer } from "buffer";
|
|
4
|
-
import { BigNumberish, Uint256 } from "starknet";
|
|
5
|
-
export type StarknetBtcStoredHeaderType = {
|
|
6
|
-
blockheader: StarknetBtcHeader | StarknetBtcHeaderType;
|
|
7
|
-
block_hash: BigNumberish[];
|
|
8
|
-
chain_work: BigNumberish | Uint256;
|
|
9
|
-
block_height: BigNumberish;
|
|
10
|
-
last_diff_adjustment: BigNumberish;
|
|
11
|
-
prev_block_timestamps: BigNumberish[];
|
|
12
|
-
};
|
|
13
|
-
export declare class StarknetBtcStoredHeader implements BtcStoredHeader<StarknetBtcHeader> {
|
|
14
|
-
blockheader: StarknetBtcHeader;
|
|
15
|
-
block_hash: number[];
|
|
16
|
-
chain_work: Uint256;
|
|
17
|
-
block_height: number;
|
|
18
|
-
last_diff_adjustment: number;
|
|
19
|
-
prev_block_timestamps: number[];
|
|
20
|
-
constructor(obj: StarknetBtcStoredHeaderType);
|
|
21
|
-
getBlockheight(): number;
|
|
22
|
-
getChainWork(): Buffer;
|
|
23
|
-
getHeader(): StarknetBtcHeader;
|
|
24
|
-
getLastDiffAdjustment(): number;
|
|
25
|
-
getPrevBlockTimestamps(): number[];
|
|
26
|
-
getBlockHash(): Buffer;
|
|
27
|
-
/**
|
|
28
|
-
* Computes prevBlockTimestamps for a next block, shifting the old block timestamps to the left & appending
|
|
29
|
-
* this block's timestamp to the end
|
|
30
|
-
*
|
|
31
|
-
* @private
|
|
32
|
-
*/
|
|
33
|
-
private computeNextBlockTimestamps;
|
|
34
|
-
/**
|
|
35
|
-
* Computes total chain work after a new header with "nbits" is added to the chain
|
|
36
|
-
*
|
|
37
|
-
* @param nbits
|
|
38
|
-
* @private
|
|
39
|
-
*/
|
|
40
|
-
private computeNextChainWork;
|
|
41
|
-
/**
|
|
42
|
-
* Computes lastDiffAdjustment, this changes only once every DIFF_ADJUSTMENT_PERIOD blocks
|
|
43
|
-
*
|
|
44
|
-
* @param headerTimestamp
|
|
45
|
-
* @private
|
|
46
|
-
*/
|
|
47
|
-
private computeNextLastDiffAdjustment;
|
|
48
|
-
computeNext(header: StarknetBtcHeader): StarknetBtcStoredHeader;
|
|
49
|
-
serialize(): BigNumberish[];
|
|
50
|
-
static fromSerializedFeltArray(span: BigNumberish[]): StarknetBtcStoredHeader;
|
|
51
|
-
}
|
|
1
|
+
import { BtcStoredHeader } from "@atomiqlabs/base";
|
|
2
|
+
import { StarknetBtcHeader, StarknetBtcHeaderType } from "./StarknetBtcHeader";
|
|
3
|
+
import { Buffer } from "buffer";
|
|
4
|
+
import { BigNumberish, Uint256 } from "starknet";
|
|
5
|
+
export type StarknetBtcStoredHeaderType = {
|
|
6
|
+
blockheader: StarknetBtcHeader | StarknetBtcHeaderType;
|
|
7
|
+
block_hash: BigNumberish[];
|
|
8
|
+
chain_work: BigNumberish | Uint256;
|
|
9
|
+
block_height: BigNumberish;
|
|
10
|
+
last_diff_adjustment: BigNumberish;
|
|
11
|
+
prev_block_timestamps: BigNumberish[];
|
|
12
|
+
};
|
|
13
|
+
export declare class StarknetBtcStoredHeader implements BtcStoredHeader<StarknetBtcHeader> {
|
|
14
|
+
blockheader: StarknetBtcHeader;
|
|
15
|
+
block_hash: number[];
|
|
16
|
+
chain_work: Uint256;
|
|
17
|
+
block_height: number;
|
|
18
|
+
last_diff_adjustment: number;
|
|
19
|
+
prev_block_timestamps: number[];
|
|
20
|
+
constructor(obj: StarknetBtcStoredHeaderType);
|
|
21
|
+
getBlockheight(): number;
|
|
22
|
+
getChainWork(): Buffer;
|
|
23
|
+
getHeader(): StarknetBtcHeader;
|
|
24
|
+
getLastDiffAdjustment(): number;
|
|
25
|
+
getPrevBlockTimestamps(): number[];
|
|
26
|
+
getBlockHash(): Buffer;
|
|
27
|
+
/**
|
|
28
|
+
* Computes prevBlockTimestamps for a next block, shifting the old block timestamps to the left & appending
|
|
29
|
+
* this block's timestamp to the end
|
|
30
|
+
*
|
|
31
|
+
* @private
|
|
32
|
+
*/
|
|
33
|
+
private computeNextBlockTimestamps;
|
|
34
|
+
/**
|
|
35
|
+
* Computes total chain work after a new header with "nbits" is added to the chain
|
|
36
|
+
*
|
|
37
|
+
* @param nbits
|
|
38
|
+
* @private
|
|
39
|
+
*/
|
|
40
|
+
private computeNextChainWork;
|
|
41
|
+
/**
|
|
42
|
+
* Computes lastDiffAdjustment, this changes only once every DIFF_ADJUSTMENT_PERIOD blocks
|
|
43
|
+
*
|
|
44
|
+
* @param headerTimestamp
|
|
45
|
+
* @private
|
|
46
|
+
*/
|
|
47
|
+
private computeNextLastDiffAdjustment;
|
|
48
|
+
computeNext(header: StarknetBtcHeader): StarknetBtcStoredHeader;
|
|
49
|
+
serialize(): BigNumberish[];
|
|
50
|
+
static fromSerializedFeltArray(span: BigNumberish[]): StarknetBtcStoredHeader;
|
|
51
|
+
}
|
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StarknetBtcStoredHeader = void 0;
|
|
4
|
-
const base_1 = require("@atomiqlabs/base");
|
|
5
|
-
const StarknetBtcHeader_1 = require("./StarknetBtcHeader");
|
|
6
|
-
const buffer_1 = require("buffer");
|
|
7
|
-
const starknet_1 = require("starknet");
|
|
8
|
-
const Utils_1 = require("../../../utils/Utils");
|
|
9
|
-
class StarknetBtcStoredHeader {
|
|
10
|
-
constructor(obj) {
|
|
11
|
-
this.blockheader = obj.blockheader instanceof StarknetBtcHeader_1.StarknetBtcHeader ? obj.blockheader : new StarknetBtcHeader_1.StarknetBtcHeader(obj.blockheader);
|
|
12
|
-
this.block_hash = obj.block_hash.map(val => Number(val));
|
|
13
|
-
this.chain_work = (0, Utils_1.isUint256)(obj.chain_work) ? obj.chain_work : starknet_1.cairo.uint256(obj.chain_work);
|
|
14
|
-
this.block_height = Number(obj.block_height);
|
|
15
|
-
this.last_diff_adjustment = Number(obj.last_diff_adjustment);
|
|
16
|
-
this.prev_block_timestamps = obj.prev_block_timestamps.map(val => Number(val));
|
|
17
|
-
}
|
|
18
|
-
getBlockheight() {
|
|
19
|
-
return this.block_height;
|
|
20
|
-
}
|
|
21
|
-
getChainWork() {
|
|
22
|
-
return (0, Utils_1.bigNumberishToBuffer)(this.chain_work, 32);
|
|
23
|
-
}
|
|
24
|
-
getHeader() {
|
|
25
|
-
return this.blockheader;
|
|
26
|
-
}
|
|
27
|
-
getLastDiffAdjustment() {
|
|
28
|
-
return this.last_diff_adjustment;
|
|
29
|
-
}
|
|
30
|
-
getPrevBlockTimestamps() {
|
|
31
|
-
return this.prev_block_timestamps;
|
|
32
|
-
}
|
|
33
|
-
getBlockHash() {
|
|
34
|
-
return (0, Utils_1.u32ArrayToBuffer)(this.block_hash).reverse();
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Computes prevBlockTimestamps for a next block, shifting the old block timestamps to the left & appending
|
|
38
|
-
* this block's timestamp to the end
|
|
39
|
-
*
|
|
40
|
-
* @private
|
|
41
|
-
*/
|
|
42
|
-
computeNextBlockTimestamps() {
|
|
43
|
-
const prevBlockTimestamps = [...this.prev_block_timestamps];
|
|
44
|
-
for (let i = 1; i < 10; i++) {
|
|
45
|
-
prevBlockTimestamps[i - 1] = prevBlockTimestamps[i];
|
|
46
|
-
}
|
|
47
|
-
prevBlockTimestamps[9] = this.blockheader.getTimestamp();
|
|
48
|
-
return prevBlockTimestamps;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Computes total chain work after a new header with "nbits" is added to the chain
|
|
52
|
-
*
|
|
53
|
-
* @param nbits
|
|
54
|
-
* @private
|
|
55
|
-
*/
|
|
56
|
-
computeNextChainWork(nbits) {
|
|
57
|
-
const chainWork = [...this.getChainWork()];
|
|
58
|
-
base_1.StatePredictorUtils.addInPlace(chainWork, [...base_1.StatePredictorUtils.getChainwork(nbits)]);
|
|
59
|
-
return buffer_1.Buffer.from(chainWork);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Computes lastDiffAdjustment, this changes only once every DIFF_ADJUSTMENT_PERIOD blocks
|
|
63
|
-
*
|
|
64
|
-
* @param headerTimestamp
|
|
65
|
-
* @private
|
|
66
|
-
*/
|
|
67
|
-
computeNextLastDiffAdjustment(headerTimestamp) {
|
|
68
|
-
const blockheight = this.block_height + 1;
|
|
69
|
-
let lastDiffAdjustment = this.last_diff_adjustment;
|
|
70
|
-
if (blockheight % base_1.StatePredictorUtils.DIFF_ADJUSTMENT_PERIOD === 0) {
|
|
71
|
-
lastDiffAdjustment = headerTimestamp;
|
|
72
|
-
}
|
|
73
|
-
return lastDiffAdjustment;
|
|
74
|
-
}
|
|
75
|
-
computeNext(header) {
|
|
76
|
-
return new StarknetBtcStoredHeader({
|
|
77
|
-
chain_work: "0x" + this.computeNextChainWork(header.getNbits()).toString("hex"),
|
|
78
|
-
prev_block_timestamps: this.computeNextBlockTimestamps(),
|
|
79
|
-
block_height: this.block_height + 1,
|
|
80
|
-
last_diff_adjustment: this.computeNextLastDiffAdjustment(header.getTimestamp()),
|
|
81
|
-
block_hash: (0, Utils_1.bufferToU32Array)(header.getHash()),
|
|
82
|
-
blockheader: header
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
serialize() {
|
|
86
|
-
return [
|
|
87
|
-
...this.blockheader.serialize(),
|
|
88
|
-
...this.block_hash,
|
|
89
|
-
this.chain_work.low,
|
|
90
|
-
this.chain_work.high,
|
|
91
|
-
this.block_height,
|
|
92
|
-
this.last_diff_adjustment,
|
|
93
|
-
...this.prev_block_timestamps
|
|
94
|
-
];
|
|
95
|
-
}
|
|
96
|
-
static fromSerializedFeltArray(span) {
|
|
97
|
-
const blockheader = StarknetBtcHeader_1.StarknetBtcHeader.fromSerializedFeltArray(span);
|
|
98
|
-
const block_hash = span.splice(0, 8).map(Utils_1.toHex);
|
|
99
|
-
const chain_work = { low: span.shift(), high: span.shift() };
|
|
100
|
-
const block_height = (0, Utils_1.toHex)(span.shift());
|
|
101
|
-
const last_diff_adjustment = (0, Utils_1.toHex)(span.shift());
|
|
102
|
-
const prev_block_timestamps = span.splice(0, 10).map(Utils_1.toHex);
|
|
103
|
-
return new StarknetBtcStoredHeader({
|
|
104
|
-
blockheader,
|
|
105
|
-
block_hash,
|
|
106
|
-
chain_work,
|
|
107
|
-
block_height,
|
|
108
|
-
last_diff_adjustment,
|
|
109
|
-
prev_block_timestamps
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
exports.StarknetBtcStoredHeader = StarknetBtcStoredHeader;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StarknetBtcStoredHeader = void 0;
|
|
4
|
+
const base_1 = require("@atomiqlabs/base");
|
|
5
|
+
const StarknetBtcHeader_1 = require("./StarknetBtcHeader");
|
|
6
|
+
const buffer_1 = require("buffer");
|
|
7
|
+
const starknet_1 = require("starknet");
|
|
8
|
+
const Utils_1 = require("../../../utils/Utils");
|
|
9
|
+
class StarknetBtcStoredHeader {
|
|
10
|
+
constructor(obj) {
|
|
11
|
+
this.blockheader = obj.blockheader instanceof StarknetBtcHeader_1.StarknetBtcHeader ? obj.blockheader : new StarknetBtcHeader_1.StarknetBtcHeader(obj.blockheader);
|
|
12
|
+
this.block_hash = obj.block_hash.map(val => Number(val));
|
|
13
|
+
this.chain_work = (0, Utils_1.isUint256)(obj.chain_work) ? obj.chain_work : starknet_1.cairo.uint256(obj.chain_work);
|
|
14
|
+
this.block_height = Number(obj.block_height);
|
|
15
|
+
this.last_diff_adjustment = Number(obj.last_diff_adjustment);
|
|
16
|
+
this.prev_block_timestamps = obj.prev_block_timestamps.map(val => Number(val));
|
|
17
|
+
}
|
|
18
|
+
getBlockheight() {
|
|
19
|
+
return this.block_height;
|
|
20
|
+
}
|
|
21
|
+
getChainWork() {
|
|
22
|
+
return (0, Utils_1.bigNumberishToBuffer)(this.chain_work, 32);
|
|
23
|
+
}
|
|
24
|
+
getHeader() {
|
|
25
|
+
return this.blockheader;
|
|
26
|
+
}
|
|
27
|
+
getLastDiffAdjustment() {
|
|
28
|
+
return this.last_diff_adjustment;
|
|
29
|
+
}
|
|
30
|
+
getPrevBlockTimestamps() {
|
|
31
|
+
return this.prev_block_timestamps;
|
|
32
|
+
}
|
|
33
|
+
getBlockHash() {
|
|
34
|
+
return (0, Utils_1.u32ArrayToBuffer)(this.block_hash).reverse();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Computes prevBlockTimestamps for a next block, shifting the old block timestamps to the left & appending
|
|
38
|
+
* this block's timestamp to the end
|
|
39
|
+
*
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
computeNextBlockTimestamps() {
|
|
43
|
+
const prevBlockTimestamps = [...this.prev_block_timestamps];
|
|
44
|
+
for (let i = 1; i < 10; i++) {
|
|
45
|
+
prevBlockTimestamps[i - 1] = prevBlockTimestamps[i];
|
|
46
|
+
}
|
|
47
|
+
prevBlockTimestamps[9] = this.blockheader.getTimestamp();
|
|
48
|
+
return prevBlockTimestamps;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Computes total chain work after a new header with "nbits" is added to the chain
|
|
52
|
+
*
|
|
53
|
+
* @param nbits
|
|
54
|
+
* @private
|
|
55
|
+
*/
|
|
56
|
+
computeNextChainWork(nbits) {
|
|
57
|
+
const chainWork = [...this.getChainWork()];
|
|
58
|
+
base_1.StatePredictorUtils.addInPlace(chainWork, [...base_1.StatePredictorUtils.getChainwork(nbits)]);
|
|
59
|
+
return buffer_1.Buffer.from(chainWork);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Computes lastDiffAdjustment, this changes only once every DIFF_ADJUSTMENT_PERIOD blocks
|
|
63
|
+
*
|
|
64
|
+
* @param headerTimestamp
|
|
65
|
+
* @private
|
|
66
|
+
*/
|
|
67
|
+
computeNextLastDiffAdjustment(headerTimestamp) {
|
|
68
|
+
const blockheight = this.block_height + 1;
|
|
69
|
+
let lastDiffAdjustment = this.last_diff_adjustment;
|
|
70
|
+
if (blockheight % base_1.StatePredictorUtils.DIFF_ADJUSTMENT_PERIOD === 0) {
|
|
71
|
+
lastDiffAdjustment = headerTimestamp;
|
|
72
|
+
}
|
|
73
|
+
return lastDiffAdjustment;
|
|
74
|
+
}
|
|
75
|
+
computeNext(header) {
|
|
76
|
+
return new StarknetBtcStoredHeader({
|
|
77
|
+
chain_work: "0x" + this.computeNextChainWork(header.getNbits()).toString("hex"),
|
|
78
|
+
prev_block_timestamps: this.computeNextBlockTimestamps(),
|
|
79
|
+
block_height: this.block_height + 1,
|
|
80
|
+
last_diff_adjustment: this.computeNextLastDiffAdjustment(header.getTimestamp()),
|
|
81
|
+
block_hash: (0, Utils_1.bufferToU32Array)(header.getHash()),
|
|
82
|
+
blockheader: header
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
serialize() {
|
|
86
|
+
return [
|
|
87
|
+
...this.blockheader.serialize(),
|
|
88
|
+
...this.block_hash,
|
|
89
|
+
this.chain_work.low,
|
|
90
|
+
this.chain_work.high,
|
|
91
|
+
this.block_height,
|
|
92
|
+
this.last_diff_adjustment,
|
|
93
|
+
...this.prev_block_timestamps
|
|
94
|
+
];
|
|
95
|
+
}
|
|
96
|
+
static fromSerializedFeltArray(span) {
|
|
97
|
+
const blockheader = StarknetBtcHeader_1.StarknetBtcHeader.fromSerializedFeltArray(span);
|
|
98
|
+
const block_hash = span.splice(0, 8).map(Utils_1.toHex);
|
|
99
|
+
const chain_work = { low: span.shift(), high: span.shift() };
|
|
100
|
+
const block_height = (0, Utils_1.toHex)(span.shift());
|
|
101
|
+
const last_diff_adjustment = (0, Utils_1.toHex)(span.shift());
|
|
102
|
+
const prev_block_timestamps = span.splice(0, 10).map(Utils_1.toHex);
|
|
103
|
+
return new StarknetBtcStoredHeader({
|
|
104
|
+
blockheader,
|
|
105
|
+
block_hash,
|
|
106
|
+
chain_work,
|
|
107
|
+
block_height,
|
|
108
|
+
last_diff_adjustment,
|
|
109
|
+
prev_block_timestamps
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.StarknetBtcStoredHeader = StarknetBtcStoredHeader;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { Call } from "starknet";
|
|
2
|
-
import { StarknetChainInterface } from "./StarknetChainInterface";
|
|
3
|
-
import { StarknetTx } from "./modules/StarknetTransactions";
|
|
4
|
-
import { StarknetGas } from "./modules/StarknetFees";
|
|
5
|
-
export declare class StarknetAction {
|
|
6
|
-
gas: StarknetGas;
|
|
7
|
-
readonly mainSigner: string;
|
|
8
|
-
private readonly root;
|
|
9
|
-
private readonly instructions;
|
|
10
|
-
private feeRate;
|
|
11
|
-
constructor(mainSigner: string, root: StarknetChainInterface, instructions?: Call[] | Call, gasLimit?: StarknetGas, feeRate?: string);
|
|
12
|
-
private estimateFeeRate;
|
|
13
|
-
addIx(instruction: Call, gasLimit?: StarknetGas): void;
|
|
14
|
-
add(action: StarknetAction): this;
|
|
15
|
-
addAction(action: StarknetAction, index?: number): this;
|
|
16
|
-
tx(feeRate?: string): Promise<StarknetTx>;
|
|
17
|
-
addToTxs(txs: StarknetTx[], feeRate?: string): Promise<void>;
|
|
18
|
-
ixsLength(): number;
|
|
19
|
-
}
|
|
1
|
+
import { Call } from "starknet";
|
|
2
|
+
import { StarknetChainInterface } from "./StarknetChainInterface";
|
|
3
|
+
import { StarknetTx } from "./modules/StarknetTransactions";
|
|
4
|
+
import { StarknetGas } from "./modules/StarknetFees";
|
|
5
|
+
export declare class StarknetAction {
|
|
6
|
+
gas: StarknetGas;
|
|
7
|
+
readonly mainSigner: string;
|
|
8
|
+
private readonly root;
|
|
9
|
+
private readonly instructions;
|
|
10
|
+
private feeRate;
|
|
11
|
+
constructor(mainSigner: string, root: StarknetChainInterface, instructions?: Call[] | Call, gasLimit?: StarknetGas, feeRate?: string);
|
|
12
|
+
private estimateFeeRate;
|
|
13
|
+
addIx(instruction: Call, gasLimit?: StarknetGas): void;
|
|
14
|
+
add(action: StarknetAction): this;
|
|
15
|
+
addAction(action: StarknetAction, index?: number): this;
|
|
16
|
+
tx(feeRate?: string): Promise<StarknetTx>;
|
|
17
|
+
addToTxs(txs: StarknetTx[], feeRate?: string): Promise<void>;
|
|
18
|
+
ixsLength(): number;
|
|
19
|
+
}
|