@atomiqlabs/chain-starknet 3.0.0-beta.6 → 3.0.0-beta.8
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/starknet/StarknetInitializer.js +2 -2
- package/dist/starknet/chain/modules/StarknetFees.js +6 -6
- package/dist/starknet/swaps/EscrowManagerAbi.d.ts +0 -3
- package/dist/starknet/swaps/EscrowManagerAbi.js +0 -4
- package/dist/utils/Utils.js +18 -19
- package/package.json +1 -1
- package/src/starknet/chain/modules/StarknetFees.ts +3 -3
- package/src/starknet/swaps/EscrowManagerAbi.ts +0 -4
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StarknetInitializer = exports.
|
|
3
|
+
exports.StarknetInitializer = exports.StarknetAssets = void 0;
|
|
4
|
+
exports.initializeStarknet = initializeStarknet;
|
|
4
5
|
const starknet_1 = require("starknet");
|
|
5
6
|
const StarknetFees_1 = require("./chain/modules/StarknetFees");
|
|
6
7
|
const StarknetChainInterface_1 = require("./chain/StarknetChainInterface");
|
|
@@ -58,7 +59,6 @@ function initializeStarknet(options, bitcoinRpc, network) {
|
|
|
58
59
|
spvVaultWithdrawalDataConstructor: StarknetSpvWithdrawalData_1.StarknetSpvWithdrawalData
|
|
59
60
|
};
|
|
60
61
|
}
|
|
61
|
-
exports.initializeStarknet = initializeStarknet;
|
|
62
62
|
;
|
|
63
63
|
exports.StarknetInitializer = {
|
|
64
64
|
chainId: "STARKNET",
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StarknetFees =
|
|
3
|
+
exports.StarknetFees = void 0;
|
|
4
|
+
exports.starknetGasMul = starknetGasMul;
|
|
5
|
+
exports.starknetGasAdd = starknetGasAdd;
|
|
4
6
|
const Utils_1 = require("../../../utils/Utils");
|
|
5
7
|
const StarknetTokens_1 = require("./StarknetTokens");
|
|
6
8
|
const MAX_FEE_AGE = 5000;
|
|
7
9
|
function starknetGasMul(gas, scalar) {
|
|
8
10
|
return { l1Gas: gas.l1Gas * scalar, l2Gas: gas.l2Gas * scalar, l1DataGas: gas.l1DataGas * scalar };
|
|
9
11
|
}
|
|
10
|
-
exports.starknetGasMul = starknetGasMul;
|
|
11
12
|
function starknetGasAdd(a, b) {
|
|
12
13
|
return { l1Gas: a.l1Gas + b.l1Gas, l2Gas: a.l2Gas + b.l2Gas, l1DataGas: a.l1DataGas + b.l1DataGas };
|
|
13
14
|
}
|
|
14
|
-
exports.starknetGasAdd = starknetGasAdd;
|
|
15
15
|
class StarknetFees {
|
|
16
16
|
constructor(provider, maxFeeRate = { l1GasCost: 1000000000000000n, l2GasCost: 1000000000000000n, l1DataGasCost: 1000000000000000n } /*100 * 10000 GWei*/, feeMultiplier = 1.25, da) {
|
|
17
17
|
this.logger = (0, Utils_1.getLogger)("StarknetFees: ");
|
|
@@ -100,9 +100,9 @@ class StarknetFees {
|
|
|
100
100
|
return {
|
|
101
101
|
version: "0x3",
|
|
102
102
|
resourceBounds: {
|
|
103
|
-
l1_gas: { max_amount: (0, Utils_1.toHex)(gas.l1Gas, 16), max_price_per_unit: (0, Utils_1.toHex)((
|
|
104
|
-
l2_gas: { max_amount: (0, Utils_1.toHex)(gas.l2Gas, 16), max_price_per_unit: (0, Utils_1.toHex)((
|
|
105
|
-
l1_data_gas: { max_amount: (0, Utils_1.toHex)(gas.l1DataGas, 16), max_price_per_unit: (0, Utils_1.toHex)((
|
|
103
|
+
l1_gas: { max_amount: (0, Utils_1.toHex)(gas.l1Gas, 16), max_price_per_unit: (0, Utils_1.toHex)(BigInt(l1GasCostStr), 16) },
|
|
104
|
+
l2_gas: { max_amount: (0, Utils_1.toHex)(gas.l2Gas, 16), max_price_per_unit: (0, Utils_1.toHex)(BigInt(l2GasCostStr), 16) },
|
|
105
|
+
l1_data_gas: { max_amount: (0, Utils_1.toHex)(gas.l1DataGas, 16), max_price_per_unit: (0, Utils_1.toHex)(BigInt(l1DataGasCostStr), 16) }
|
|
106
106
|
},
|
|
107
107
|
tip: "0x0",
|
|
108
108
|
paymasterData: [],
|
|
@@ -16,9 +16,6 @@ export declare const EscrowManagerAbi: readonly [{
|
|
|
16
16
|
readonly type: "struct";
|
|
17
17
|
readonly name: "escrow_manager::structs::escrow::EscrowExecution";
|
|
18
18
|
readonly members: readonly [{
|
|
19
|
-
readonly name: "contract";
|
|
20
|
-
readonly type: "core::starknet::contract_address::ContractAddress";
|
|
21
|
-
}, {
|
|
22
19
|
readonly name: "hash";
|
|
23
20
|
readonly type: "core::felt252";
|
|
24
21
|
}, {
|
|
@@ -25,10 +25,6 @@ exports.EscrowManagerAbi = [
|
|
|
25
25
|
"type": "struct",
|
|
26
26
|
"name": "escrow_manager::structs::escrow::EscrowExecution",
|
|
27
27
|
"members": [
|
|
28
|
-
{
|
|
29
|
-
"name": "contract",
|
|
30
|
-
"type": "core::starknet::contract_address::ContractAddress"
|
|
31
|
-
},
|
|
32
28
|
{
|
|
33
29
|
"name": "hash",
|
|
34
30
|
"type": "core::felt252"
|
package/dist/utils/Utils.js
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isUint256 = isUint256;
|
|
4
|
+
exports.timeoutPromise = timeoutPromise;
|
|
5
|
+
exports.onceAsync = onceAsync;
|
|
6
|
+
exports.getLogger = getLogger;
|
|
7
|
+
exports.tryWithRetries = tryWithRetries;
|
|
8
|
+
exports.toHex = toHex;
|
|
9
|
+
exports.calculateHash = calculateHash;
|
|
10
|
+
exports.u32ArrayToBuffer = u32ArrayToBuffer;
|
|
11
|
+
exports.bufferToU32Array = bufferToU32Array;
|
|
12
|
+
exports.u32ReverseEndianness = u32ReverseEndianness;
|
|
13
|
+
exports.bigNumberishToBuffer = bigNumberishToBuffer;
|
|
14
|
+
exports.toBigInt = toBigInt;
|
|
15
|
+
exports.bytes31SpanToBuffer = bytes31SpanToBuffer;
|
|
16
|
+
exports.bufferToBytes31Span = bufferToBytes31Span;
|
|
17
|
+
exports.bufferToByteArray = bufferToByteArray;
|
|
18
|
+
exports.poseidonHashRange = poseidonHashRange;
|
|
19
|
+
exports.parseInitFunctionCalldata = parseInitFunctionCalldata;
|
|
20
|
+
exports.findLastIndex = findLastIndex;
|
|
4
21
|
const starknet_types_08_1 = require("@starknet-io/starknet-types-08");
|
|
5
22
|
const starknet_1 = require("starknet");
|
|
6
23
|
const buffer_1 = require("buffer");
|
|
@@ -8,7 +25,6 @@ const StarknetSwapData_1 = require("../starknet/swaps/StarknetSwapData");
|
|
|
8
25
|
function isUint256(val) {
|
|
9
26
|
return val.low != null && val.high != null;
|
|
10
27
|
}
|
|
11
|
-
exports.isUint256 = isUint256;
|
|
12
28
|
function timeoutPromise(timeoutMillis, abortSignal) {
|
|
13
29
|
return new Promise((resolve, reject) => {
|
|
14
30
|
const timeout = setTimeout(resolve, timeoutMillis);
|
|
@@ -19,7 +35,6 @@ function timeoutPromise(timeoutMillis, abortSignal) {
|
|
|
19
35
|
});
|
|
20
36
|
});
|
|
21
37
|
}
|
|
22
|
-
exports.timeoutPromise = timeoutPromise;
|
|
23
38
|
function onceAsync(executor) {
|
|
24
39
|
let promise;
|
|
25
40
|
return () => {
|
|
@@ -32,7 +47,6 @@ function onceAsync(executor) {
|
|
|
32
47
|
}
|
|
33
48
|
};
|
|
34
49
|
}
|
|
35
|
-
exports.onceAsync = onceAsync;
|
|
36
50
|
function getLogger(prefix) {
|
|
37
51
|
return {
|
|
38
52
|
// @ts-ignore
|
|
@@ -45,7 +59,6 @@ function getLogger(prefix) {
|
|
|
45
59
|
error: (msg, ...args) => (global.atomiqLogLevel == null || global.atomiqLogLevel >= 0) && console.error(prefix + msg, ...args)
|
|
46
60
|
};
|
|
47
61
|
}
|
|
48
|
-
exports.getLogger = getLogger;
|
|
49
62
|
const logger = getLogger("Utils: ");
|
|
50
63
|
async function tryWithRetries(func, retryPolicy, errorAllowed, abortSignal) {
|
|
51
64
|
retryPolicy = retryPolicy || {};
|
|
@@ -72,7 +85,6 @@ async function tryWithRetries(func, retryPolicy, errorAllowed, abortSignal) {
|
|
|
72
85
|
}
|
|
73
86
|
throw err;
|
|
74
87
|
}
|
|
75
|
-
exports.tryWithRetries = tryWithRetries;
|
|
76
88
|
function toHex(value, length = 64) {
|
|
77
89
|
if (value == null)
|
|
78
90
|
return null;
|
|
@@ -90,7 +102,6 @@ function toHex(value, length = 64) {
|
|
|
90
102
|
}
|
|
91
103
|
return "0x" + value.toString("hex").padStart(length, "0");
|
|
92
104
|
}
|
|
93
|
-
exports.toHex = toHex;
|
|
94
105
|
function calculateHash(tx) {
|
|
95
106
|
const commonData = {
|
|
96
107
|
version: tx.details.version,
|
|
@@ -126,7 +137,6 @@ function calculateHash(tx) {
|
|
|
126
137
|
throw new Error("Unsupported tx type!");
|
|
127
138
|
}
|
|
128
139
|
}
|
|
129
|
-
exports.calculateHash = calculateHash;
|
|
130
140
|
function u32ArrayToBuffer(arr) {
|
|
131
141
|
const buffer = buffer_1.Buffer.alloc(4 * arr.length);
|
|
132
142
|
for (let i = 0; i < arr.length; i++) {
|
|
@@ -134,7 +144,6 @@ function u32ArrayToBuffer(arr) {
|
|
|
134
144
|
}
|
|
135
145
|
return buffer;
|
|
136
146
|
}
|
|
137
|
-
exports.u32ArrayToBuffer = u32ArrayToBuffer;
|
|
138
147
|
function bufferToU32Array(buffer) {
|
|
139
148
|
const result = [];
|
|
140
149
|
for (let i = 0; i < buffer.length; i += 4) {
|
|
@@ -142,7 +151,6 @@ function bufferToU32Array(buffer) {
|
|
|
142
151
|
}
|
|
143
152
|
return result;
|
|
144
153
|
}
|
|
145
|
-
exports.bufferToU32Array = bufferToU32Array;
|
|
146
154
|
function u32ReverseEndianness(value) {
|
|
147
155
|
const valueBN = BigInt(value);
|
|
148
156
|
return Number(((valueBN & 0xffn) << 24n) |
|
|
@@ -150,7 +158,6 @@ function u32ReverseEndianness(value) {
|
|
|
150
158
|
((valueBN >> 8n) & 0xff00n) |
|
|
151
159
|
((valueBN >> 24n) & 0xffn));
|
|
152
160
|
}
|
|
153
|
-
exports.u32ReverseEndianness = u32ReverseEndianness;
|
|
154
161
|
function bigNumberishToBuffer(value, length) {
|
|
155
162
|
if (isUint256(value)) {
|
|
156
163
|
return buffer_1.Buffer.concat([bigNumberishToBuffer(value.high, 16), bigNumberishToBuffer(value.low, 16)]);
|
|
@@ -173,7 +180,6 @@ function bigNumberishToBuffer(value, length) {
|
|
|
173
180
|
return buff.slice(buff.length - length);
|
|
174
181
|
return buff;
|
|
175
182
|
}
|
|
176
|
-
exports.bigNumberishToBuffer = bigNumberishToBuffer;
|
|
177
183
|
function toBigInt(value) {
|
|
178
184
|
if (value == null)
|
|
179
185
|
return null;
|
|
@@ -190,7 +196,6 @@ function toBigInt(value) {
|
|
|
190
196
|
}
|
|
191
197
|
return BigInt(value);
|
|
192
198
|
}
|
|
193
|
-
exports.toBigInt = toBigInt;
|
|
194
199
|
function bytes31SpanToBuffer(span, length) {
|
|
195
200
|
const buffers = [];
|
|
196
201
|
const numFullBytes31 = Math.floor(length / 31);
|
|
@@ -206,7 +211,6 @@ function bytes31SpanToBuffer(span, length) {
|
|
|
206
211
|
buffers.push(bigNumberishToBuffer(span[i], additionalBytes));
|
|
207
212
|
return buffer_1.Buffer.concat(buffers);
|
|
208
213
|
}
|
|
209
|
-
exports.bytes31SpanToBuffer = bytes31SpanToBuffer;
|
|
210
214
|
function bufferToBytes31Span(buffer, startIndex = 0, endIndex = buffer.length) {
|
|
211
215
|
const values = [];
|
|
212
216
|
for (let i = startIndex + 31; i < endIndex; i += 31) {
|
|
@@ -216,7 +220,6 @@ function bufferToBytes31Span(buffer, startIndex = 0, endIndex = buffer.length) {
|
|
|
216
220
|
values.push(BigInt("0x" + buffer.slice(startIndex + (values.length * 31), endIndex).toString("hex")));
|
|
217
221
|
return values;
|
|
218
222
|
}
|
|
219
|
-
exports.bufferToBytes31Span = bufferToBytes31Span;
|
|
220
223
|
function bufferToByteArray(buffer, startIndex = 0, endIndex = buffer.length) {
|
|
221
224
|
const values = [];
|
|
222
225
|
for (let i = startIndex + 31; i < endIndex; i += 31) {
|
|
@@ -234,11 +237,9 @@ function bufferToByteArray(buffer, startIndex = 0, endIndex = buffer.length) {
|
|
|
234
237
|
pendingWordLen
|
|
235
238
|
];
|
|
236
239
|
}
|
|
237
|
-
exports.bufferToByteArray = bufferToByteArray;
|
|
238
240
|
function poseidonHashRange(buffer, startIndex = 0, endIndex = buffer.length) {
|
|
239
241
|
return starknet_1.hash.computePoseidonHashOnElements(bufferToBytes31Span(buffer, startIndex, endIndex));
|
|
240
242
|
}
|
|
241
|
-
exports.poseidonHashRange = poseidonHashRange;
|
|
242
243
|
function parseInitFunctionCalldata(calldata, claimHandler) {
|
|
243
244
|
const escrow = StarknetSwapData_1.StarknetSwapData.fromSerializedFeltArray(calldata, claimHandler);
|
|
244
245
|
const signatureLen = Number(toBigInt(calldata.shift()));
|
|
@@ -250,7 +251,6 @@ function parseInitFunctionCalldata(calldata, claimHandler) {
|
|
|
250
251
|
throw new Error("Calldata not read fully!");
|
|
251
252
|
return { escrow, signature, timeout, extraData };
|
|
252
253
|
}
|
|
253
|
-
exports.parseInitFunctionCalldata = parseInitFunctionCalldata;
|
|
254
254
|
function findLastIndex(array, callback) {
|
|
255
255
|
for (let i = array.length - 1; i >= 0; i--) {
|
|
256
256
|
if (callback(array[i], i))
|
|
@@ -258,4 +258,3 @@ function findLastIndex(array, callback) {
|
|
|
258
258
|
}
|
|
259
259
|
return -1;
|
|
260
260
|
}
|
|
261
|
-
exports.findLastIndex = findLastIndex;
|
package/package.json
CHANGED
|
@@ -141,9 +141,9 @@ export class StarknetFees {
|
|
|
141
141
|
return {
|
|
142
142
|
version: "0x3" as const,
|
|
143
143
|
resourceBounds: {
|
|
144
|
-
l1_gas: {max_amount: toHex(gas.l1Gas, 16), max_price_per_unit: toHex(
|
|
145
|
-
l2_gas: {max_amount: toHex(gas.l2Gas, 16), max_price_per_unit: toHex(
|
|
146
|
-
l1_data_gas: {max_amount: toHex(gas.l1DataGas, 16), max_price_per_unit: toHex(
|
|
144
|
+
l1_gas: {max_amount: toHex(gas.l1Gas, 16), max_price_per_unit: toHex(BigInt(l1GasCostStr), 16)},
|
|
145
|
+
l2_gas: {max_amount: toHex(gas.l2Gas, 16), max_price_per_unit: toHex(BigInt(l2GasCostStr), 16)},
|
|
146
|
+
l1_data_gas: {max_amount: toHex(gas.l1DataGas, 16), max_price_per_unit: toHex(BigInt(l1DataGasCostStr), 16)}
|
|
147
147
|
},
|
|
148
148
|
tip: "0x0",
|
|
149
149
|
paymasterData: [],
|
|
@@ -22,10 +22,6 @@ export const EscrowManagerAbi = [
|
|
|
22
22
|
"type": "struct",
|
|
23
23
|
"name": "escrow_manager::structs::escrow::EscrowExecution",
|
|
24
24
|
"members": [
|
|
25
|
-
{
|
|
26
|
-
"name": "contract",
|
|
27
|
-
"type": "core::starknet::contract_address::ContractAddress"
|
|
28
|
-
},
|
|
29
25
|
{
|
|
30
26
|
"name": "hash",
|
|
31
27
|
"type": "core::felt252"
|