@atomiqlabs/chain-starknet 8.0.13 → 8.1.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 (119) hide show
  1. package/dist/index.d.ts +18 -18
  2. package/dist/index.js +42 -42
  3. package/dist/starknet/StarknetChainType.d.ts +19 -19
  4. package/dist/starknet/StarknetChainType.js +2 -2
  5. package/dist/starknet/StarknetInitializer.d.ts +66 -63
  6. package/dist/starknet/StarknetInitializer.js +101 -101
  7. package/dist/starknet/btcrelay/BtcRelayAbi.d.ts +250 -250
  8. package/dist/starknet/btcrelay/BtcRelayAbi.js +341 -341
  9. package/dist/starknet/btcrelay/StarknetBtcRelay.d.ts +196 -196
  10. package/dist/starknet/btcrelay/StarknetBtcRelay.js +419 -411
  11. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.d.ts +70 -70
  12. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.js +115 -115
  13. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.d.ts +91 -91
  14. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.js +155 -155
  15. package/dist/starknet/chain/StarknetAction.d.ts +19 -19
  16. package/dist/starknet/chain/StarknetAction.js +74 -74
  17. package/dist/starknet/chain/StarknetChainInterface.d.ts +142 -143
  18. package/dist/starknet/chain/StarknetChainInterface.js +198 -199
  19. package/dist/starknet/chain/StarknetModule.d.ts +8 -8
  20. package/dist/starknet/chain/StarknetModule.js +12 -12
  21. package/dist/starknet/chain/modules/ERC20Abi.d.ts +755 -755
  22. package/dist/starknet/chain/modules/ERC20Abi.js +1032 -1032
  23. package/dist/starknet/chain/modules/StarknetAccounts.d.ts +6 -6
  24. package/dist/starknet/chain/modules/StarknetAccounts.js +26 -26
  25. package/dist/starknet/chain/modules/StarknetAddresses.d.ts +10 -10
  26. package/dist/starknet/chain/modules/StarknetAddresses.js +27 -27
  27. package/dist/starknet/chain/modules/StarknetBlocks.d.ts +27 -27
  28. package/dist/starknet/chain/modules/StarknetBlocks.js +82 -82
  29. package/dist/starknet/chain/modules/StarknetEvents.d.ts +47 -47
  30. package/dist/starknet/chain/modules/StarknetEvents.js +90 -90
  31. package/dist/starknet/chain/modules/StarknetFees.d.ts +118 -104
  32. package/dist/starknet/chain/modules/StarknetFees.js +150 -146
  33. package/dist/starknet/chain/modules/StarknetSignatures.d.ts +29 -29
  34. package/dist/starknet/chain/modules/StarknetSignatures.js +72 -72
  35. package/dist/starknet/chain/modules/StarknetTokens.d.ts +66 -66
  36. package/dist/starknet/chain/modules/StarknetTokens.js +99 -99
  37. package/dist/starknet/chain/modules/StarknetTransactions.d.ts +122 -115
  38. package/dist/starknet/chain/modules/StarknetTransactions.js +633 -612
  39. package/dist/starknet/contract/StarknetContractBase.d.ts +14 -13
  40. package/dist/starknet/contract/StarknetContractBase.js +21 -20
  41. package/dist/starknet/contract/StarknetContractModule.d.ts +8 -8
  42. package/dist/starknet/contract/StarknetContractModule.js +11 -11
  43. package/dist/starknet/contract/modules/StarknetContractEvents.d.ts +56 -57
  44. package/dist/starknet/contract/modules/StarknetContractEvents.js +111 -111
  45. package/dist/starknet/events/StarknetChainEvents.d.ts +21 -21
  46. package/dist/starknet/events/StarknetChainEvents.js +61 -61
  47. package/dist/starknet/events/StarknetChainEventsBrowser.d.ts +178 -190
  48. package/dist/starknet/events/StarknetChainEventsBrowser.js +523 -582
  49. package/dist/starknet/provider/RpcProviderWithRetries.d.ts +49 -53
  50. package/dist/starknet/provider/RpcProviderWithRetries.js +94 -94
  51. package/dist/starknet/provider/WebSocketChannelWithRetries.d.ts +21 -21
  52. package/dist/starknet/provider/WebSocketChannelWithRetries.js +46 -46
  53. package/dist/starknet/spv_swap/SpvVaultContractAbi.d.ts +488 -488
  54. package/dist/starknet/spv_swap/SpvVaultContractAbi.js +656 -656
  55. package/dist/starknet/spv_swap/StarknetSpvVaultContract.d.ts +225 -219
  56. package/dist/starknet/spv_swap/StarknetSpvVaultContract.js +663 -621
  57. package/dist/starknet/spv_swap/StarknetSpvVaultData.d.ts +108 -108
  58. package/dist/starknet/spv_swap/StarknetSpvVaultData.js +190 -190
  59. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.d.ts +56 -56
  60. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.js +103 -103
  61. package/dist/starknet/swaps/EscrowManagerAbi.d.ts +431 -431
  62. package/dist/starknet/swaps/EscrowManagerAbi.js +583 -583
  63. package/dist/starknet/swaps/StarknetSwapContract.d.ts +309 -278
  64. package/dist/starknet/swaps/StarknetSwapContract.js +755 -579
  65. package/dist/starknet/swaps/StarknetSwapData.d.ts +234 -234
  66. package/dist/starknet/swaps/StarknetSwapData.js +474 -474
  67. package/dist/starknet/swaps/StarknetSwapModule.d.ts +10 -10
  68. package/dist/starknet/swaps/StarknetSwapModule.js +12 -12
  69. package/dist/starknet/swaps/handlers/IHandler.d.ts +13 -13
  70. package/dist/starknet/swaps/handlers/IHandler.js +2 -2
  71. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.d.ts +13 -13
  72. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.js +13 -13
  73. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.d.ts +21 -21
  74. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.js +44 -44
  75. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +24 -24
  76. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +48 -48
  77. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +25 -25
  78. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +40 -40
  79. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +20 -20
  80. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +30 -30
  81. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +42 -45
  82. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +50 -54
  83. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.d.ts +17 -17
  84. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.js +27 -27
  85. package/dist/starknet/swaps/modules/StarknetLpVault.d.ts +67 -67
  86. package/dist/starknet/swaps/modules/StarknetLpVault.js +122 -122
  87. package/dist/starknet/swaps/modules/StarknetSwapClaim.d.ts +52 -52
  88. package/dist/starknet/swaps/modules/StarknetSwapClaim.js +99 -99
  89. package/dist/starknet/swaps/modules/StarknetSwapInit.d.ts +94 -94
  90. package/dist/starknet/swaps/modules/StarknetSwapInit.js +239 -239
  91. package/dist/starknet/swaps/modules/StarknetSwapRefund.d.ts +60 -60
  92. package/dist/starknet/swaps/modules/StarknetSwapRefund.js +126 -126
  93. package/dist/starknet/wallet/StarknetBrowserSigner.d.ts +11 -11
  94. package/dist/starknet/wallet/StarknetBrowserSigner.js +17 -17
  95. package/dist/starknet/wallet/StarknetPersistentSigner.d.ts +76 -76
  96. package/dist/starknet/wallet/StarknetPersistentSigner.js +291 -291
  97. package/dist/starknet/wallet/StarknetSigner.d.ts +72 -72
  98. package/dist/starknet/wallet/StarknetSigner.js +114 -114
  99. package/dist/starknet/wallet/accounts/StarknetKeypairWallet.d.ts +18 -18
  100. package/dist/starknet/wallet/accounts/StarknetKeypairWallet.js +45 -45
  101. package/dist/utils/Utils.d.ts +77 -77
  102. package/dist/utils/Utils.js +304 -303
  103. package/package.json +2 -2
  104. package/src/starknet/StarknetInitializer.ts +6 -3
  105. package/src/starknet/btcrelay/StarknetBtcRelay.ts +19 -6
  106. package/src/starknet/btcrelay/headers/StarknetBtcHeader.ts +7 -7
  107. package/src/starknet/btcrelay/headers/StarknetBtcStoredHeader.ts +6 -6
  108. package/src/starknet/chain/StarknetAction.ts +1 -0
  109. package/src/starknet/chain/StarknetChainInterface.ts +0 -2
  110. package/src/starknet/chain/modules/StarknetFees.ts +15 -2
  111. package/src/starknet/chain/modules/StarknetTransactions.ts +24 -0
  112. package/src/starknet/contract/StarknetContractBase.ts +7 -4
  113. package/src/starknet/contract/StarknetContractModule.ts +1 -1
  114. package/src/starknet/contract/modules/StarknetContractEvents.ts +7 -7
  115. package/src/starknet/events/StarknetChainEventsBrowser.ts +2 -64
  116. package/src/starknet/provider/RpcProviderWithRetries.ts +1 -1
  117. package/src/starknet/spv_swap/StarknetSpvVaultContract.ts +84 -18
  118. package/src/starknet/swaps/StarknetSwapContract.ts +242 -6
  119. package/src/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +0 -4
@@ -1,155 +1,155 @@
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
- /**
10
- * Representing a bitcoin blockheader struct which has already been saved and committed inside the
11
- * Starknet BTC relay smart contract
12
- *
13
- * @category BTC Relay
14
- */
15
- class StarknetBtcStoredHeader {
16
- /**
17
- * Constructs the bitcoin stored blockheader from a struct as returned by the starknet.js lib
18
- *
19
- * @param obj Struct as returned by the starknet.js lib
20
- */
21
- constructor(obj) {
22
- this.blockheader = obj.blockheader instanceof StarknetBtcHeader_1.StarknetBtcHeader ? obj.blockheader : new StarknetBtcHeader_1.StarknetBtcHeader(obj.blockheader);
23
- this.block_hash = obj.block_hash.map(val => Number(val));
24
- this.chain_work = (0, Utils_1.isUint256)(obj.chain_work) ? obj.chain_work : starknet_1.cairo.uint256(obj.chain_work);
25
- this.block_height = Number(obj.block_height);
26
- this.last_diff_adjustment = Number(obj.last_diff_adjustment);
27
- this.prev_block_timestamps = obj.prev_block_timestamps.map(val => Number(val));
28
- }
29
- /**
30
- * @inheritDoc
31
- */
32
- getBlockheight() {
33
- return this.block_height;
34
- }
35
- /**
36
- * @inheritDoc
37
- */
38
- getChainWork() {
39
- return (0, Utils_1.bigNumberishToBuffer)(this.chain_work, 32);
40
- }
41
- /**
42
- * @inheritDoc
43
- */
44
- getHeader() {
45
- return this.blockheader;
46
- }
47
- /**
48
- * @inheritDoc
49
- */
50
- getLastDiffAdjustment() {
51
- return this.last_diff_adjustment;
52
- }
53
- /**
54
- * @inheritDoc
55
- */
56
- getPrevBlockTimestamps() {
57
- return this.prev_block_timestamps;
58
- }
59
- /**
60
- * @inheritDoc
61
- */
62
- getBlockHash() {
63
- return (0, Utils_1.u32ArrayToBuffer)(this.block_hash).reverse();
64
- }
65
- /**
66
- * Computes prevBlockTimestamps for a next block, shifting the old block timestamps to the left & appending
67
- * this block's timestamp to the end
68
- *
69
- * @private
70
- */
71
- computeNextBlockTimestamps() {
72
- const prevBlockTimestamps = [...this.prev_block_timestamps];
73
- for (let i = 1; i < 10; i++) {
74
- prevBlockTimestamps[i - 1] = prevBlockTimestamps[i];
75
- }
76
- prevBlockTimestamps[9] = this.blockheader.getTimestamp();
77
- return prevBlockTimestamps;
78
- }
79
- /**
80
- * Computes total chain work after a new header with "nbits" is added to the chain
81
- *
82
- * @param nbits
83
- * @private
84
- */
85
- computeNextChainWork(nbits) {
86
- const chainWork = [...this.getChainWork()];
87
- base_1.StatePredictorUtils.addInPlace(chainWork, [...base_1.StatePredictorUtils.getChainwork(nbits)]);
88
- return buffer_1.Buffer.from(chainWork);
89
- }
90
- /**
91
- * Computes lastDiffAdjustment, this changes only once every DIFF_ADJUSTMENT_PERIOD blocks
92
- *
93
- * @param headerTimestamp
94
- * @private
95
- */
96
- computeNextLastDiffAdjustment(headerTimestamp) {
97
- const blockheight = this.block_height + 1;
98
- let lastDiffAdjustment = this.last_diff_adjustment;
99
- if (blockheight % base_1.StatePredictorUtils.DIFF_ADJUSTMENT_PERIOD === 0) {
100
- lastDiffAdjustment = headerTimestamp;
101
- }
102
- return lastDiffAdjustment;
103
- }
104
- /**
105
- * @inheritDoc
106
- */
107
- computeNext(header) {
108
- return new StarknetBtcStoredHeader({
109
- chain_work: "0x" + this.computeNextChainWork(header.getNbits()).toString("hex"),
110
- prev_block_timestamps: this.computeNextBlockTimestamps(),
111
- block_height: this.block_height + 1,
112
- last_diff_adjustment: this.computeNextLastDiffAdjustment(header.getTimestamp()),
113
- block_hash: (0, Utils_1.bufferToU32Array)(header.getHash()),
114
- blockheader: header
115
- });
116
- }
117
- /**
118
- * Serializes the bitcoin stored blockheader struct to an array of felt252 of length 42
119
- */
120
- serialize() {
121
- return [
122
- ...this.blockheader.serialize(),
123
- ...this.block_hash,
124
- this.chain_work.low,
125
- this.chain_work.high,
126
- this.block_height,
127
- this.last_diff_adjustment,
128
- ...this.prev_block_timestamps
129
- ];
130
- }
131
- /**
132
- * Deserializes the store bitcoin blockheader from its felt252 array representation
133
- *
134
- * @param span felt252 array encoding the stored blockheader, has to be at least 42 felts long
135
- */
136
- static fromSerializedFeltArray(span) {
137
- const blockheader = StarknetBtcHeader_1.StarknetBtcHeader.fromSerializedFeltArray(span);
138
- if (span.length < 22)
139
- throw new Error("Invalid serialized data size");
140
- const block_hash = span.splice(0, 8).map(val => (0, Utils_1.toHex)(val));
141
- const chain_work = { low: span.shift(), high: span.shift() };
142
- const block_height = (0, Utils_1.toHex)(span.shift());
143
- const last_diff_adjustment = (0, Utils_1.toHex)(span.shift());
144
- const prev_block_timestamps = span.splice(0, 10).map(val => (0, Utils_1.toHex)(val));
145
- return new StarknetBtcStoredHeader({
146
- blockheader,
147
- block_hash,
148
- chain_work,
149
- block_height,
150
- last_diff_adjustment,
151
- prev_block_timestamps
152
- });
153
- }
154
- }
155
- 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
+ /**
10
+ * Representing a bitcoin blockheader struct which has already been saved and committed inside the
11
+ * Starknet BTC relay smart contract
12
+ *
13
+ * @category BTC Relay
14
+ */
15
+ class StarknetBtcStoredHeader {
16
+ /**
17
+ * Constructs the bitcoin stored blockheader from a struct as returned by the starknet.js lib
18
+ *
19
+ * @param obj Struct as returned by the starknet.js lib
20
+ */
21
+ constructor(obj) {
22
+ this.blockheader = obj.blockheader instanceof StarknetBtcHeader_1.StarknetBtcHeader ? obj.blockheader : new StarknetBtcHeader_1.StarknetBtcHeader(obj.blockheader);
23
+ this.block_hash = obj.block_hash.map(val => Number(val));
24
+ this.chain_work = (0, Utils_1.isUint256)(obj.chain_work) ? obj.chain_work : starknet_1.cairo.uint256(obj.chain_work);
25
+ this.block_height = Number(obj.block_height);
26
+ this.last_diff_adjustment = Number(obj.last_diff_adjustment);
27
+ this.prev_block_timestamps = obj.prev_block_timestamps.map(val => Number(val));
28
+ }
29
+ /**
30
+ * @inheritDoc
31
+ */
32
+ getBlockheight() {
33
+ return this.block_height;
34
+ }
35
+ /**
36
+ * @inheritDoc
37
+ */
38
+ getChainWork() {
39
+ return (0, Utils_1.bigNumberishToBuffer)(this.chain_work, 32);
40
+ }
41
+ /**
42
+ * @inheritDoc
43
+ */
44
+ getHeader() {
45
+ return this.blockheader;
46
+ }
47
+ /**
48
+ * @inheritDoc
49
+ */
50
+ getLastDiffAdjustment() {
51
+ return this.last_diff_adjustment;
52
+ }
53
+ /**
54
+ * @inheritDoc
55
+ */
56
+ getPrevBlockTimestamps() {
57
+ return this.prev_block_timestamps;
58
+ }
59
+ /**
60
+ * @inheritDoc
61
+ */
62
+ getBlockHash() {
63
+ return (0, Utils_1.u32ArrayToBuffer)(this.block_hash).reverse();
64
+ }
65
+ /**
66
+ * Computes prevBlockTimestamps for a next block, shifting the old block timestamps to the left & appending
67
+ * this block's timestamp to the end
68
+ *
69
+ * @private
70
+ */
71
+ computeNextBlockTimestamps() {
72
+ const prevBlockTimestamps = [...this.prev_block_timestamps];
73
+ for (let i = 1; i < 10; i++) {
74
+ prevBlockTimestamps[i - 1] = prevBlockTimestamps[i];
75
+ }
76
+ prevBlockTimestamps[9] = this.blockheader.getTimestamp();
77
+ return prevBlockTimestamps;
78
+ }
79
+ /**
80
+ * Computes total chain work after a new header with "nbits" is added to the chain
81
+ *
82
+ * @param nbits
83
+ * @private
84
+ */
85
+ computeNextChainWork(nbits) {
86
+ const chainWork = [...this.getChainWork()];
87
+ base_1.StatePredictorUtils.addInPlace(chainWork, [...base_1.StatePredictorUtils.getChainwork(nbits)]);
88
+ return buffer_1.Buffer.from(chainWork);
89
+ }
90
+ /**
91
+ * Computes lastDiffAdjustment, this changes only once every DIFF_ADJUSTMENT_PERIOD blocks
92
+ *
93
+ * @param headerTimestamp
94
+ * @private
95
+ */
96
+ computeNextLastDiffAdjustment(headerTimestamp) {
97
+ const blockheight = this.block_height + 1;
98
+ let lastDiffAdjustment = this.last_diff_adjustment;
99
+ if (blockheight % base_1.StatePredictorUtils.DIFF_ADJUSTMENT_PERIOD === 0) {
100
+ lastDiffAdjustment = headerTimestamp;
101
+ }
102
+ return lastDiffAdjustment;
103
+ }
104
+ /**
105
+ * @inheritDoc
106
+ */
107
+ computeNext(header) {
108
+ return new StarknetBtcStoredHeader({
109
+ chain_work: "0x" + this.computeNextChainWork(header.getNbits()).toString("hex"),
110
+ prev_block_timestamps: this.computeNextBlockTimestamps(),
111
+ block_height: this.block_height + 1,
112
+ last_diff_adjustment: this.computeNextLastDiffAdjustment(header.getTimestamp()),
113
+ block_hash: (0, Utils_1.bufferToU32Array)(header.getHash()),
114
+ blockheader: header
115
+ });
116
+ }
117
+ /**
118
+ * Serializes the bitcoin stored blockheader struct to an array of felt252 of length 42
119
+ */
120
+ serialize() {
121
+ return [
122
+ ...this.blockheader.serialize(),
123
+ ...this.block_hash,
124
+ this.chain_work.low,
125
+ this.chain_work.high,
126
+ this.block_height,
127
+ this.last_diff_adjustment,
128
+ ...this.prev_block_timestamps
129
+ ];
130
+ }
131
+ /**
132
+ * Deserializes the store bitcoin blockheader from its felt252 array representation
133
+ *
134
+ * @param span felt252 array encoding the stored blockheader, has to be at least 42 felts long
135
+ */
136
+ static fromSerializedFeltArray(span) {
137
+ const blockheader = StarknetBtcHeader_1.StarknetBtcHeader.fromSerializedFeltArray(span);
138
+ if (span.length < 22)
139
+ throw new Error("Invalid serialized data size");
140
+ const block_hash = span.splice(0, 8).map(val => (0, Utils_1.toHex)(val));
141
+ const chain_work = { low: span.shift(), high: span.shift() };
142
+ const block_height = (0, Utils_1.toHex)(span.shift());
143
+ const last_diff_adjustment = (0, Utils_1.toHex)(span.shift());
144
+ const prev_block_timestamps = span.splice(0, 10).map(val => (0, Utils_1.toHex)(val));
145
+ return new StarknetBtcStoredHeader({
146
+ blockheader,
147
+ block_hash,
148
+ chain_work,
149
+ block_height,
150
+ last_diff_adjustment,
151
+ prev_block_timestamps
152
+ });
153
+ }
154
+ }
155
+ 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
+ }
@@ -1,74 +1,74 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetAction = void 0;
4
- const StarknetFees_1 = require("./modules/StarknetFees");
5
- class StarknetAction {
6
- constructor(mainSigner, root, instructions = [], gasLimit, feeRate) {
7
- this.mainSigner = mainSigner;
8
- this.root = root;
9
- this.instructions = Array.isArray(instructions) ? instructions : [instructions];
10
- this.gas = {
11
- l1Gas: gasLimit?.l1Gas ?? 0,
12
- l2Gas: gasLimit?.l2Gas ?? 0,
13
- l1DataGas: gasLimit?.l1DataGas ?? 0,
14
- };
15
- this.feeRate = feeRate;
16
- }
17
- estimateFeeRate() {
18
- return this.root.Fees.getFeeRate();
19
- }
20
- addIx(instruction, gasLimit) {
21
- this.instructions.push(instruction);
22
- if (gasLimit != null)
23
- this.gas = (0, StarknetFees_1.starknetGasAdd)(this.gas, gasLimit);
24
- }
25
- add(action) {
26
- return this.addAction(action);
27
- }
28
- addAction(action, index = this.instructions.length) {
29
- if (action.mainSigner !== this.mainSigner)
30
- throw new Error("Actions need to have the same signer!");
31
- if (this.gas.l1Gas == null && action.gas.l1Gas != null)
32
- this.gas.l1Gas = action.gas.l1Gas;
33
- if (this.gas.l2Gas == null && action.gas.l2Gas != null)
34
- this.gas.l2Gas = action.gas.l2Gas;
35
- if (this.gas.l1DataGas == null && action.gas.l1DataGas != null)
36
- this.gas.l1DataGas = action.gas.l1DataGas;
37
- if (this.gas.l1Gas != null && action.gas.l1Gas != null)
38
- this.gas.l1Gas += action.gas.l1Gas;
39
- if (this.gas.l2Gas != null && action.gas.l2Gas != null)
40
- this.gas.l2Gas += action.gas.l2Gas;
41
- if (this.gas.l1DataGas != null && action.gas.l1DataGas != null)
42
- this.gas.l1DataGas += action.gas.l1DataGas;
43
- this.instructions.splice(index, 0, ...action.instructions);
44
- if (this.feeRate == null)
45
- this.feeRate = action.feeRate;
46
- return this;
47
- }
48
- async tx(feeRate) {
49
- if (feeRate == null)
50
- feeRate = this.feeRate;
51
- if (feeRate == null)
52
- feeRate = await this.estimateFeeRate();
53
- return {
54
- type: "INVOKE",
55
- tx: this.instructions,
56
- details: {
57
- ...this.root.Fees.getFeeDetails(this.gas, feeRate),
58
- walletAddress: this.mainSigner,
59
- cairoVersion: "1",
60
- chainId: this.root.starknetChainId,
61
- nonce: null,
62
- accountDeploymentData: [],
63
- skipValidate: false
64
- }
65
- };
66
- }
67
- async addToTxs(txs, feeRate) {
68
- txs.push(await this.tx(feeRate));
69
- }
70
- ixsLength() {
71
- return this.instructions.length;
72
- }
73
- }
74
- exports.StarknetAction = StarknetAction;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetAction = void 0;
4
+ const StarknetFees_1 = require("./modules/StarknetFees");
5
+ class StarknetAction {
6
+ constructor(mainSigner, root, instructions = [], gasLimit, feeRate) {
7
+ this.mainSigner = mainSigner;
8
+ this.root = root;
9
+ this.instructions = Array.isArray(instructions) ? instructions : [instructions];
10
+ this.gas = {
11
+ l1Gas: gasLimit?.l1Gas ?? 0,
12
+ l2Gas: gasLimit?.l2Gas ?? 0,
13
+ l1DataGas: gasLimit?.l1DataGas ?? 0,
14
+ };
15
+ this.feeRate = feeRate;
16
+ }
17
+ estimateFeeRate() {
18
+ return this.root.Fees.getFeeRate();
19
+ }
20
+ addIx(instruction, gasLimit) {
21
+ this.instructions.push(instruction);
22
+ if (gasLimit != null)
23
+ this.gas = (0, StarknetFees_1.starknetGasAdd)(this.gas, gasLimit);
24
+ }
25
+ add(action) {
26
+ return this.addAction(action);
27
+ }
28
+ addAction(action, index = this.instructions.length) {
29
+ if (action.mainSigner !== this.mainSigner)
30
+ throw new Error("Actions need to have the same signer!");
31
+ if (this.gas.l1Gas == null && action.gas.l1Gas != null)
32
+ this.gas.l1Gas = action.gas.l1Gas;
33
+ if (this.gas.l2Gas == null && action.gas.l2Gas != null)
34
+ this.gas.l2Gas = action.gas.l2Gas;
35
+ if (this.gas.l1DataGas == null && action.gas.l1DataGas != null)
36
+ this.gas.l1DataGas = action.gas.l1DataGas;
37
+ if (this.gas.l1Gas != null && action.gas.l1Gas != null)
38
+ this.gas.l1Gas += action.gas.l1Gas;
39
+ if (this.gas.l2Gas != null && action.gas.l2Gas != null)
40
+ this.gas.l2Gas += action.gas.l2Gas;
41
+ if (this.gas.l1DataGas != null && action.gas.l1DataGas != null)
42
+ this.gas.l1DataGas += action.gas.l1DataGas;
43
+ this.instructions.splice(index, 0, ...action.instructions);
44
+ if (this.feeRate == null)
45
+ this.feeRate = action.feeRate;
46
+ return this;
47
+ }
48
+ async tx(feeRate) {
49
+ if (feeRate == null)
50
+ feeRate = this.feeRate;
51
+ if (feeRate == null)
52
+ feeRate = await this.estimateFeeRate();
53
+ return {
54
+ type: "INVOKE",
55
+ tx: this.instructions,
56
+ details: {
57
+ ...this.root.Fees.getFeeDetails(this.gas, feeRate),
58
+ walletAddress: this.mainSigner,
59
+ cairoVersion: "1",
60
+ chainId: this.root.starknetChainId,
61
+ nonce: null,
62
+ accountDeploymentData: [],
63
+ skipValidate: false
64
+ }
65
+ };
66
+ }
67
+ async addToTxs(txs, feeRate) {
68
+ txs.push(await this.tx(feeRate));
69
+ }
70
+ ixsLength() {
71
+ return this.instructions.length;
72
+ }
73
+ }
74
+ exports.StarknetAction = StarknetAction;