starknet 6.1.4 → 6.2.0
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/CHANGELOG.md +12 -0
- package/dist/index.d.ts +3326 -500
- package/dist/index.global.js +851 -187
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +853 -187
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +851 -187
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -18,7 +18,7 @@ __export(constants_exports, {
|
|
|
18
18
|
RPC_NODES: () => RPC_NODES,
|
|
19
19
|
StarknetChainId: () => StarknetChainId,
|
|
20
20
|
TEXT_TO_FELT_MAX_LEN: () => TEXT_TO_FELT_MAX_LEN,
|
|
21
|
-
TRANSACTION_VERSION: () =>
|
|
21
|
+
TRANSACTION_VERSION: () => ETransactionVersion4,
|
|
22
22
|
TransactionHashPrefix: () => TransactionHashPrefix,
|
|
23
23
|
UDC: () => UDC,
|
|
24
24
|
ZERO: () => ZERO
|
|
@@ -27,6 +27,30 @@ __export(constants_exports, {
|
|
|
27
27
|
// src/types/api/index.ts
|
|
28
28
|
var api_exports = {};
|
|
29
29
|
__export(api_exports, {
|
|
30
|
+
EBlockTag: () => EBlockTag2,
|
|
31
|
+
EDAMode: () => EDAMode2,
|
|
32
|
+
EDataAvailabilityMode: () => EDataAvailabilityMode2,
|
|
33
|
+
ESimulationFlag: () => ESimulationFlag2,
|
|
34
|
+
ETransactionExecutionStatus: () => ETransactionExecutionStatus2,
|
|
35
|
+
ETransactionFinalityStatus: () => ETransactionFinalityStatus2,
|
|
36
|
+
ETransactionStatus: () => ETransactionStatus2,
|
|
37
|
+
ETransactionType: () => ETransactionType2,
|
|
38
|
+
ETransactionVersion: () => ETransactionVersion4,
|
|
39
|
+
ETransactionVersion2: () => ETransactionVersion22,
|
|
40
|
+
ETransactionVersion3: () => ETransactionVersion32,
|
|
41
|
+
Errors: () => errors_exports2,
|
|
42
|
+
JRPC: () => jsonrpc_exports,
|
|
43
|
+
RPCSPEC06: () => rpcspec_0_6_exports,
|
|
44
|
+
RPCSPEC07: () => rpcspec_0_7_exports,
|
|
45
|
+
SPEC: () => components_exports2
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// src/types/api/jsonrpc/index.ts
|
|
49
|
+
var jsonrpc_exports = {};
|
|
50
|
+
|
|
51
|
+
// src/types/api/rpcspec_0_6/index.ts
|
|
52
|
+
var rpcspec_0_6_exports = {};
|
|
53
|
+
__export(rpcspec_0_6_exports, {
|
|
30
54
|
EBlockTag: () => EBlockTag,
|
|
31
55
|
EDAMode: () => EDAMode,
|
|
32
56
|
EDataAvailabilityMode: () => EDataAvailabilityMode,
|
|
@@ -39,13 +63,9 @@ __export(api_exports, {
|
|
|
39
63
|
ETransactionVersion2: () => ETransactionVersion2,
|
|
40
64
|
ETransactionVersion3: () => ETransactionVersion3,
|
|
41
65
|
Errors: () => errors_exports,
|
|
42
|
-
JRPC: () => jsonrpc_exports,
|
|
43
66
|
SPEC: () => components_exports
|
|
44
67
|
});
|
|
45
68
|
|
|
46
|
-
// src/types/api/jsonrpc/index.ts
|
|
47
|
-
var jsonrpc_exports = {};
|
|
48
|
-
|
|
49
69
|
// src/types/api/rpcspec_0_6/errors.ts
|
|
50
70
|
var errors_exports = {};
|
|
51
71
|
|
|
@@ -53,77 +73,173 @@ var errors_exports = {};
|
|
|
53
73
|
var components_exports = {};
|
|
54
74
|
|
|
55
75
|
// src/types/api/rpcspec_0_6/nonspec.ts
|
|
56
|
-
var ETransactionType = /* @__PURE__ */ ((
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return
|
|
76
|
+
var ETransactionType = /* @__PURE__ */ ((ETransactionType3) => {
|
|
77
|
+
ETransactionType3["DECLARE"] = "DECLARE";
|
|
78
|
+
ETransactionType3["DEPLOY"] = "DEPLOY";
|
|
79
|
+
ETransactionType3["DEPLOY_ACCOUNT"] = "DEPLOY_ACCOUNT";
|
|
80
|
+
ETransactionType3["INVOKE"] = "INVOKE";
|
|
81
|
+
ETransactionType3["L1_HANDLER"] = "L1_HANDLER";
|
|
82
|
+
return ETransactionType3;
|
|
63
83
|
})(ETransactionType || {});
|
|
64
|
-
var ESimulationFlag = /* @__PURE__ */ ((
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return
|
|
84
|
+
var ESimulationFlag = /* @__PURE__ */ ((ESimulationFlag3) => {
|
|
85
|
+
ESimulationFlag3["SKIP_VALIDATE"] = "SKIP_VALIDATE";
|
|
86
|
+
ESimulationFlag3["SKIP_FEE_CHARGE"] = "SKIP_FEE_CHARGE";
|
|
87
|
+
return ESimulationFlag3;
|
|
68
88
|
})(ESimulationFlag || {});
|
|
69
|
-
var ETransactionStatus = /* @__PURE__ */ ((
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return
|
|
89
|
+
var ETransactionStatus = /* @__PURE__ */ ((ETransactionStatus3) => {
|
|
90
|
+
ETransactionStatus3["RECEIVED"] = "RECEIVED";
|
|
91
|
+
ETransactionStatus3["REJECTED"] = "REJECTED";
|
|
92
|
+
ETransactionStatus3["ACCEPTED_ON_L2"] = "ACCEPTED_ON_L2";
|
|
93
|
+
ETransactionStatus3["ACCEPTED_ON_L1"] = "ACCEPTED_ON_L1";
|
|
94
|
+
return ETransactionStatus3;
|
|
75
95
|
})(ETransactionStatus || {});
|
|
76
|
-
var ETransactionFinalityStatus = /* @__PURE__ */ ((
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
return
|
|
96
|
+
var ETransactionFinalityStatus = /* @__PURE__ */ ((ETransactionFinalityStatus3) => {
|
|
97
|
+
ETransactionFinalityStatus3["ACCEPTED_ON_L2"] = "ACCEPTED_ON_L2";
|
|
98
|
+
ETransactionFinalityStatus3["ACCEPTED_ON_L1"] = "ACCEPTED_ON_L1";
|
|
99
|
+
return ETransactionFinalityStatus3;
|
|
80
100
|
})(ETransactionFinalityStatus || {});
|
|
81
|
-
var ETransactionExecutionStatus = /* @__PURE__ */ ((
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
return
|
|
101
|
+
var ETransactionExecutionStatus = /* @__PURE__ */ ((ETransactionExecutionStatus3) => {
|
|
102
|
+
ETransactionExecutionStatus3["SUCCEEDED"] = "SUCCEEDED";
|
|
103
|
+
ETransactionExecutionStatus3["REVERTED"] = "REVERTED";
|
|
104
|
+
return ETransactionExecutionStatus3;
|
|
85
105
|
})(ETransactionExecutionStatus || {});
|
|
86
|
-
var EBlockTag = /* @__PURE__ */ ((
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
return
|
|
106
|
+
var EBlockTag = /* @__PURE__ */ ((EBlockTag3) => {
|
|
107
|
+
EBlockTag3["LATEST"] = "latest";
|
|
108
|
+
EBlockTag3["PENDING"] = "pending";
|
|
109
|
+
return EBlockTag3;
|
|
90
110
|
})(EBlockTag || {});
|
|
91
|
-
var EDataAvailabilityMode = /* @__PURE__ */ ((
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
return
|
|
111
|
+
var EDataAvailabilityMode = /* @__PURE__ */ ((EDataAvailabilityMode3) => {
|
|
112
|
+
EDataAvailabilityMode3["L1"] = "L1";
|
|
113
|
+
EDataAvailabilityMode3["L2"] = "L2";
|
|
114
|
+
return EDataAvailabilityMode3;
|
|
95
115
|
})(EDataAvailabilityMode || {});
|
|
96
|
-
var EDAMode = /* @__PURE__ */ ((
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
return
|
|
116
|
+
var EDAMode = /* @__PURE__ */ ((EDAMode4) => {
|
|
117
|
+
EDAMode4[EDAMode4["L1"] = 0] = "L1";
|
|
118
|
+
EDAMode4[EDAMode4["L2"] = 1] = "L2";
|
|
119
|
+
return EDAMode4;
|
|
100
120
|
})(EDAMode || {});
|
|
101
|
-
var ETransactionVersion = /* @__PURE__ */ ((
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
return
|
|
121
|
+
var ETransactionVersion = /* @__PURE__ */ ((ETransactionVersion5) => {
|
|
122
|
+
ETransactionVersion5["V0"] = "0x0";
|
|
123
|
+
ETransactionVersion5["V1"] = "0x1";
|
|
124
|
+
ETransactionVersion5["V2"] = "0x2";
|
|
125
|
+
ETransactionVersion5["V3"] = "0x3";
|
|
126
|
+
ETransactionVersion5["F0"] = "0x100000000000000000000000000000000";
|
|
127
|
+
ETransactionVersion5["F1"] = "0x100000000000000000000000000000001";
|
|
128
|
+
ETransactionVersion5["F2"] = "0x100000000000000000000000000000002";
|
|
129
|
+
ETransactionVersion5["F3"] = "0x100000000000000000000000000000003";
|
|
130
|
+
return ETransactionVersion5;
|
|
111
131
|
})(ETransactionVersion || {});
|
|
112
|
-
var ETransactionVersion2 = /* @__PURE__ */ ((
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
return
|
|
132
|
+
var ETransactionVersion2 = /* @__PURE__ */ ((ETransactionVersion24) => {
|
|
133
|
+
ETransactionVersion24["V0"] = "0x0";
|
|
134
|
+
ETransactionVersion24["V1"] = "0x1";
|
|
135
|
+
ETransactionVersion24["V2"] = "0x2";
|
|
136
|
+
ETransactionVersion24["F0"] = "0x100000000000000000000000000000000";
|
|
137
|
+
ETransactionVersion24["F1"] = "0x100000000000000000000000000000001";
|
|
138
|
+
ETransactionVersion24["F2"] = "0x100000000000000000000000000000002";
|
|
139
|
+
return ETransactionVersion24;
|
|
120
140
|
})(ETransactionVersion2 || {});
|
|
121
|
-
var ETransactionVersion3 = /* @__PURE__ */ ((
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
return
|
|
141
|
+
var ETransactionVersion3 = /* @__PURE__ */ ((ETransactionVersion34) => {
|
|
142
|
+
ETransactionVersion34["V3"] = "0x3";
|
|
143
|
+
ETransactionVersion34["F3"] = "0x100000000000000000000000000000003";
|
|
144
|
+
return ETransactionVersion34;
|
|
125
145
|
})(ETransactionVersion3 || {});
|
|
126
146
|
|
|
147
|
+
// src/types/api/rpcspec_0_7/index.ts
|
|
148
|
+
var rpcspec_0_7_exports = {};
|
|
149
|
+
__export(rpcspec_0_7_exports, {
|
|
150
|
+
EBlockTag: () => EBlockTag2,
|
|
151
|
+
EDAMode: () => EDAMode2,
|
|
152
|
+
EDataAvailabilityMode: () => EDataAvailabilityMode2,
|
|
153
|
+
ESimulationFlag: () => ESimulationFlag2,
|
|
154
|
+
ETransactionExecutionStatus: () => ETransactionExecutionStatus2,
|
|
155
|
+
ETransactionFinalityStatus: () => ETransactionFinalityStatus2,
|
|
156
|
+
ETransactionStatus: () => ETransactionStatus2,
|
|
157
|
+
ETransactionType: () => ETransactionType2,
|
|
158
|
+
ETransactionVersion: () => ETransactionVersion4,
|
|
159
|
+
ETransactionVersion2: () => ETransactionVersion22,
|
|
160
|
+
ETransactionVersion3: () => ETransactionVersion32,
|
|
161
|
+
Errors: () => errors_exports2,
|
|
162
|
+
SPEC: () => components_exports2
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
// src/types/api/rpcspec_0_7/errors.ts
|
|
166
|
+
var errors_exports2 = {};
|
|
167
|
+
|
|
168
|
+
// src/types/api/rpcspec_0_7/components.ts
|
|
169
|
+
var components_exports2 = {};
|
|
170
|
+
|
|
171
|
+
// src/types/api/rpcspec_0_7/nonspec.ts
|
|
172
|
+
var ETransactionType2 = /* @__PURE__ */ ((ETransactionType3) => {
|
|
173
|
+
ETransactionType3["DECLARE"] = "DECLARE";
|
|
174
|
+
ETransactionType3["DEPLOY"] = "DEPLOY";
|
|
175
|
+
ETransactionType3["DEPLOY_ACCOUNT"] = "DEPLOY_ACCOUNT";
|
|
176
|
+
ETransactionType3["INVOKE"] = "INVOKE";
|
|
177
|
+
ETransactionType3["L1_HANDLER"] = "L1_HANDLER";
|
|
178
|
+
return ETransactionType3;
|
|
179
|
+
})(ETransactionType2 || {});
|
|
180
|
+
var ESimulationFlag2 = /* @__PURE__ */ ((ESimulationFlag3) => {
|
|
181
|
+
ESimulationFlag3["SKIP_VALIDATE"] = "SKIP_VALIDATE";
|
|
182
|
+
ESimulationFlag3["SKIP_FEE_CHARGE"] = "SKIP_FEE_CHARGE";
|
|
183
|
+
return ESimulationFlag3;
|
|
184
|
+
})(ESimulationFlag2 || {});
|
|
185
|
+
var ETransactionStatus2 = /* @__PURE__ */ ((ETransactionStatus3) => {
|
|
186
|
+
ETransactionStatus3["RECEIVED"] = "RECEIVED";
|
|
187
|
+
ETransactionStatus3["REJECTED"] = "REJECTED";
|
|
188
|
+
ETransactionStatus3["ACCEPTED_ON_L2"] = "ACCEPTED_ON_L2";
|
|
189
|
+
ETransactionStatus3["ACCEPTED_ON_L1"] = "ACCEPTED_ON_L1";
|
|
190
|
+
return ETransactionStatus3;
|
|
191
|
+
})(ETransactionStatus2 || {});
|
|
192
|
+
var ETransactionFinalityStatus2 = /* @__PURE__ */ ((ETransactionFinalityStatus3) => {
|
|
193
|
+
ETransactionFinalityStatus3["ACCEPTED_ON_L2"] = "ACCEPTED_ON_L2";
|
|
194
|
+
ETransactionFinalityStatus3["ACCEPTED_ON_L1"] = "ACCEPTED_ON_L1";
|
|
195
|
+
return ETransactionFinalityStatus3;
|
|
196
|
+
})(ETransactionFinalityStatus2 || {});
|
|
197
|
+
var ETransactionExecutionStatus2 = /* @__PURE__ */ ((ETransactionExecutionStatus3) => {
|
|
198
|
+
ETransactionExecutionStatus3["SUCCEEDED"] = "SUCCEEDED";
|
|
199
|
+
ETransactionExecutionStatus3["REVERTED"] = "REVERTED";
|
|
200
|
+
return ETransactionExecutionStatus3;
|
|
201
|
+
})(ETransactionExecutionStatus2 || {});
|
|
202
|
+
var EBlockTag2 = /* @__PURE__ */ ((EBlockTag3) => {
|
|
203
|
+
EBlockTag3["LATEST"] = "latest";
|
|
204
|
+
EBlockTag3["PENDING"] = "pending";
|
|
205
|
+
return EBlockTag3;
|
|
206
|
+
})(EBlockTag2 || {});
|
|
207
|
+
var EDataAvailabilityMode2 = /* @__PURE__ */ ((EDataAvailabilityMode3) => {
|
|
208
|
+
EDataAvailabilityMode3["L1"] = "L1";
|
|
209
|
+
EDataAvailabilityMode3["L2"] = "L2";
|
|
210
|
+
return EDataAvailabilityMode3;
|
|
211
|
+
})(EDataAvailabilityMode2 || {});
|
|
212
|
+
var EDAMode2 = /* @__PURE__ */ ((EDAMode4) => {
|
|
213
|
+
EDAMode4[EDAMode4["L1"] = 0] = "L1";
|
|
214
|
+
EDAMode4[EDAMode4["L2"] = 1] = "L2";
|
|
215
|
+
return EDAMode4;
|
|
216
|
+
})(EDAMode2 || {});
|
|
217
|
+
var ETransactionVersion4 = /* @__PURE__ */ ((ETransactionVersion5) => {
|
|
218
|
+
ETransactionVersion5["V0"] = "0x0";
|
|
219
|
+
ETransactionVersion5["V1"] = "0x1";
|
|
220
|
+
ETransactionVersion5["V2"] = "0x2";
|
|
221
|
+
ETransactionVersion5["V3"] = "0x3";
|
|
222
|
+
ETransactionVersion5["F0"] = "0x100000000000000000000000000000000";
|
|
223
|
+
ETransactionVersion5["F1"] = "0x100000000000000000000000000000001";
|
|
224
|
+
ETransactionVersion5["F2"] = "0x100000000000000000000000000000002";
|
|
225
|
+
ETransactionVersion5["F3"] = "0x100000000000000000000000000000003";
|
|
226
|
+
return ETransactionVersion5;
|
|
227
|
+
})(ETransactionVersion4 || {});
|
|
228
|
+
var ETransactionVersion22 = /* @__PURE__ */ ((ETransactionVersion24) => {
|
|
229
|
+
ETransactionVersion24["V0"] = "0x0";
|
|
230
|
+
ETransactionVersion24["V1"] = "0x1";
|
|
231
|
+
ETransactionVersion24["V2"] = "0x2";
|
|
232
|
+
ETransactionVersion24["F0"] = "0x100000000000000000000000000000000";
|
|
233
|
+
ETransactionVersion24["F1"] = "0x100000000000000000000000000000001";
|
|
234
|
+
ETransactionVersion24["F2"] = "0x100000000000000000000000000000002";
|
|
235
|
+
return ETransactionVersion24;
|
|
236
|
+
})(ETransactionVersion22 || {});
|
|
237
|
+
var ETransactionVersion32 = /* @__PURE__ */ ((ETransactionVersion34) => {
|
|
238
|
+
ETransactionVersion34["V3"] = "0x3";
|
|
239
|
+
ETransactionVersion34["F3"] = "0x100000000000000000000000000000003";
|
|
240
|
+
return ETransactionVersion34;
|
|
241
|
+
})(ETransactionVersion32 || {});
|
|
242
|
+
|
|
127
243
|
// src/utils/encode.ts
|
|
128
244
|
var encode_exports = {};
|
|
129
245
|
__export(encode_exports, {
|
|
@@ -218,11 +334,11 @@ var NetworkName = /* @__PURE__ */ ((NetworkName2) => {
|
|
|
218
334
|
NetworkName2["SN_SEPOLIA"] = "SN_SEPOLIA";
|
|
219
335
|
return NetworkName2;
|
|
220
336
|
})(NetworkName || {});
|
|
221
|
-
var StarknetChainId = /* @__PURE__ */ ((
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
return
|
|
337
|
+
var StarknetChainId = /* @__PURE__ */ ((StarknetChainId6) => {
|
|
338
|
+
StarknetChainId6["SN_MAIN"] = "0x534e5f4d41494e";
|
|
339
|
+
StarknetChainId6["SN_GOERLI"] = "0x534e5f474f45524c49";
|
|
340
|
+
StarknetChainId6["SN_SEPOLIA"] = "0x534e5f5345504f4c4941";
|
|
341
|
+
return StarknetChainId6;
|
|
226
342
|
})(StarknetChainId || {});
|
|
227
343
|
var TransactionHashPrefix = /* @__PURE__ */ ((TransactionHashPrefix2) => {
|
|
228
344
|
TransactionHashPrefix2["DECLARE"] = "0x6465636c617265";
|
|
@@ -289,6 +405,12 @@ var HttpError = class extends LibraryError {
|
|
|
289
405
|
}
|
|
290
406
|
};
|
|
291
407
|
|
|
408
|
+
// src/channel/rpc_0_6.ts
|
|
409
|
+
var rpc_0_6_exports = {};
|
|
410
|
+
__export(rpc_0_6_exports, {
|
|
411
|
+
RpcChannel: () => RpcChannel
|
|
412
|
+
});
|
|
413
|
+
|
|
292
414
|
// src/types/index.ts
|
|
293
415
|
var types_exports = {};
|
|
294
416
|
__export(types_exports, {
|
|
@@ -2723,10 +2845,10 @@ function intDAM(dam) {
|
|
|
2723
2845
|
function toTransactionVersion(defaultVersion, providedVersion) {
|
|
2724
2846
|
const providedVersion0xs = providedVersion ? toHex(providedVersion) : void 0;
|
|
2725
2847
|
const defaultVersion0xs = toHex(defaultVersion);
|
|
2726
|
-
if (providedVersion && !Object.values(
|
|
2848
|
+
if (providedVersion && !Object.values(ETransactionVersion4).includes(providedVersion0xs)) {
|
|
2727
2849
|
throw Error(`providedVersion ${providedVersion} is not ETransactionVersion`);
|
|
2728
2850
|
}
|
|
2729
|
-
if (!Object.values(
|
|
2851
|
+
if (!Object.values(ETransactionVersion4).includes(defaultVersion0xs)) {
|
|
2730
2852
|
throw Error(`defaultVersion ${defaultVersion} is not ETransactionVersion`);
|
|
2731
2853
|
}
|
|
2732
2854
|
return providedVersion ? providedVersion0xs : defaultVersion0xs;
|
|
@@ -3010,11 +3132,11 @@ var RpcChannel = class {
|
|
|
3010
3132
|
requestId;
|
|
3011
3133
|
blockIdentifier;
|
|
3012
3134
|
chainId;
|
|
3013
|
-
|
|
3135
|
+
specVersion;
|
|
3014
3136
|
waitMode;
|
|
3015
3137
|
// behave like web2 rpc and return when tx is processed
|
|
3016
3138
|
constructor(optionsOrProvider) {
|
|
3017
|
-
const { nodeUrl, retries, headers, blockIdentifier, chainId, waitMode } = optionsOrProvider || {};
|
|
3139
|
+
const { nodeUrl, retries, headers, blockIdentifier, chainId, specVersion, waitMode } = optionsOrProvider || {};
|
|
3018
3140
|
if (Object.values(NetworkName).includes(nodeUrl)) {
|
|
3019
3141
|
this.nodeUrl = getDefaultNodeUrl(nodeUrl, optionsOrProvider?.default);
|
|
3020
3142
|
} else if (nodeUrl) {
|
|
@@ -3026,6 +3148,7 @@ var RpcChannel = class {
|
|
|
3026
3148
|
this.headers = { ...defaultOptions.headers, ...headers };
|
|
3027
3149
|
this.blockIdentifier = blockIdentifier || defaultOptions.blockIdentifier;
|
|
3028
3150
|
this.chainId = chainId;
|
|
3151
|
+
this.specVersion = specVersion;
|
|
3029
3152
|
this.waitMode = waitMode || false;
|
|
3030
3153
|
this.requestId = 0;
|
|
3031
3154
|
}
|
|
@@ -3074,8 +3197,8 @@ var RpcChannel = class {
|
|
|
3074
3197
|
return this.chainId;
|
|
3075
3198
|
}
|
|
3076
3199
|
async getSpecVersion() {
|
|
3077
|
-
this.
|
|
3078
|
-
return this.
|
|
3200
|
+
this.specVersion ??= await this.fetchEndpoint("starknet_specVersion");
|
|
3201
|
+
return this.specVersion;
|
|
3079
3202
|
}
|
|
3080
3203
|
getNonceForAddress(contractAddress, blockIdentifier = this.blockIdentifier) {
|
|
3081
3204
|
const contract_address = toHex(contractAddress);
|
|
@@ -3159,9 +3282,9 @@ var RpcChannel = class {
|
|
|
3159
3282
|
const block_id = new Block(blockIdentifier).identifier;
|
|
3160
3283
|
const simulationFlags = [];
|
|
3161
3284
|
if (skipValidate)
|
|
3162
|
-
simulationFlags.push(
|
|
3285
|
+
simulationFlags.push(rpcspec_0_6_exports.ESimulationFlag.SKIP_VALIDATE);
|
|
3163
3286
|
if (skipFeeCharge)
|
|
3164
|
-
simulationFlags.push(
|
|
3287
|
+
simulationFlags.push(rpcspec_0_6_exports.ESimulationFlag.SKIP_FEE_CHARGE);
|
|
3165
3288
|
return this.fetchEndpoint("starknet_simulateTransactions", {
|
|
3166
3289
|
block_id,
|
|
3167
3290
|
transactions: invocations.map((it) => this.buildTransaction(it)),
|
|
@@ -3175,15 +3298,15 @@ var RpcChannel = class {
|
|
|
3175
3298
|
let isErrorState = false;
|
|
3176
3299
|
const retryInterval = options?.retryInterval ?? 5e3;
|
|
3177
3300
|
const errorStates = options?.errorStates ?? [
|
|
3178
|
-
|
|
3301
|
+
rpcspec_0_6_exports.ETransactionStatus.REJECTED
|
|
3179
3302
|
// TODO: commented out to preserve the long-standing behavior of "reverted" not being treated as an error by default
|
|
3180
3303
|
// should decide which behavior to keep in the future
|
|
3181
3304
|
// RPC.ETransactionExecutionStatus.REVERTED,
|
|
3182
3305
|
];
|
|
3183
3306
|
const successStates = options?.successStates ?? [
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3307
|
+
rpcspec_0_6_exports.ETransactionExecutionStatus.SUCCEEDED,
|
|
3308
|
+
rpcspec_0_6_exports.ETransactionStatus.ACCEPTED_ON_L2,
|
|
3309
|
+
rpcspec_0_6_exports.ETransactionStatus.ACCEPTED_ON_L1
|
|
3187
3310
|
];
|
|
3188
3311
|
let txStatus;
|
|
3189
3312
|
while (!onchain) {
|
|
@@ -3266,9 +3389,9 @@ var RpcChannel = class {
|
|
|
3266
3389
|
async getEstimateFee(invocations, { blockIdentifier = this.blockIdentifier, skipValidate = true }) {
|
|
3267
3390
|
const block_id = new Block(blockIdentifier).identifier;
|
|
3268
3391
|
let flags = {};
|
|
3269
|
-
if (isVersion("0.
|
|
3392
|
+
if (!isVersion("0.5", await this.getSpecVersion())) {
|
|
3270
3393
|
flags = {
|
|
3271
|
-
simulation_flags: skipValidate ? [
|
|
3394
|
+
simulation_flags: skipValidate ? [rpcspec_0_6_exports.ESimulationFlag.SKIP_VALIDATE] : []
|
|
3272
3395
|
};
|
|
3273
3396
|
}
|
|
3274
3397
|
return this.fetchEndpoint("starknet_estimateFee", {
|
|
@@ -3284,9 +3407,9 @@ var RpcChannel = class {
|
|
|
3284
3407
|
invoke_transaction: {
|
|
3285
3408
|
sender_address: functionInvocation.contractAddress,
|
|
3286
3409
|
calldata: CallData.toHex(functionInvocation.calldata),
|
|
3287
|
-
type:
|
|
3410
|
+
type: rpcspec_0_6_exports.ETransactionType.INVOKE,
|
|
3288
3411
|
max_fee: toHex(details.maxFee || 0),
|
|
3289
|
-
version:
|
|
3412
|
+
version: rpcspec_0_6_exports.ETransactionVersion.V1,
|
|
3290
3413
|
signature: signatureToHexArray(functionInvocation.signature),
|
|
3291
3414
|
nonce: toHex(details.nonce)
|
|
3292
3415
|
}
|
|
@@ -3294,10 +3417,10 @@ var RpcChannel = class {
|
|
|
3294
3417
|
} else {
|
|
3295
3418
|
promise = this.fetchEndpoint("starknet_addInvokeTransaction", {
|
|
3296
3419
|
invoke_transaction: {
|
|
3297
|
-
type:
|
|
3420
|
+
type: rpcspec_0_6_exports.ETransactionType.INVOKE,
|
|
3298
3421
|
sender_address: functionInvocation.contractAddress,
|
|
3299
3422
|
calldata: CallData.toHex(functionInvocation.calldata),
|
|
3300
|
-
version:
|
|
3423
|
+
version: rpcspec_0_6_exports.ETransactionVersion.V3,
|
|
3301
3424
|
signature: signatureToHexArray(functionInvocation.signature),
|
|
3302
3425
|
nonce: toHex(details.nonce),
|
|
3303
3426
|
resource_bounds: details.resourceBounds,
|
|
@@ -3316,13 +3439,13 @@ var RpcChannel = class {
|
|
|
3316
3439
|
if (!isSierra(contract) && !isV3Tx(details)) {
|
|
3317
3440
|
promise = this.fetchEndpoint("starknet_addDeclareTransaction", {
|
|
3318
3441
|
declare_transaction: {
|
|
3319
|
-
type:
|
|
3442
|
+
type: rpcspec_0_6_exports.ETransactionType.DECLARE,
|
|
3320
3443
|
contract_class: {
|
|
3321
3444
|
program: contract.program,
|
|
3322
3445
|
entry_points_by_type: contract.entry_points_by_type,
|
|
3323
3446
|
abi: contract.abi
|
|
3324
3447
|
},
|
|
3325
|
-
version:
|
|
3448
|
+
version: rpcspec_0_6_exports.ETransactionVersion.V1,
|
|
3326
3449
|
max_fee: toHex(details.maxFee || 0),
|
|
3327
3450
|
signature: signatureToHexArray(signature),
|
|
3328
3451
|
sender_address: senderAddress,
|
|
@@ -3332,7 +3455,7 @@ var RpcChannel = class {
|
|
|
3332
3455
|
} else if (isSierra(contract) && !isV3Tx(details)) {
|
|
3333
3456
|
promise = this.fetchEndpoint("starknet_addDeclareTransaction", {
|
|
3334
3457
|
declare_transaction: {
|
|
3335
|
-
type:
|
|
3458
|
+
type: rpcspec_0_6_exports.ETransactionType.DECLARE,
|
|
3336
3459
|
contract_class: {
|
|
3337
3460
|
sierra_program: decompressProgram(contract.sierra_program),
|
|
3338
3461
|
contract_class_version: contract.contract_class_version,
|
|
@@ -3340,7 +3463,7 @@ var RpcChannel = class {
|
|
|
3340
3463
|
abi: contract.abi
|
|
3341
3464
|
},
|
|
3342
3465
|
compiled_class_hash: compiledClassHash || "",
|
|
3343
|
-
version:
|
|
3466
|
+
version: rpcspec_0_6_exports.ETransactionVersion.V2,
|
|
3344
3467
|
max_fee: toHex(details.maxFee || 0),
|
|
3345
3468
|
signature: signatureToHexArray(signature),
|
|
3346
3469
|
sender_address: senderAddress,
|
|
@@ -3350,10 +3473,10 @@ var RpcChannel = class {
|
|
|
3350
3473
|
} else if (isSierra(contract) && isV3Tx(details)) {
|
|
3351
3474
|
promise = this.fetchEndpoint("starknet_addDeclareTransaction", {
|
|
3352
3475
|
declare_transaction: {
|
|
3353
|
-
type:
|
|
3476
|
+
type: rpcspec_0_6_exports.ETransactionType.DECLARE,
|
|
3354
3477
|
sender_address: senderAddress,
|
|
3355
3478
|
compiled_class_hash: compiledClassHash || "",
|
|
3356
|
-
version:
|
|
3479
|
+
version: rpcspec_0_6_exports.ETransactionVersion.V3,
|
|
3357
3480
|
signature: signatureToHexArray(signature),
|
|
3358
3481
|
nonce: toHex(details.nonce),
|
|
3359
3482
|
contract_class: {
|
|
@@ -3383,9 +3506,9 @@ var RpcChannel = class {
|
|
|
3383
3506
|
constructor_calldata: CallData.toHex(constructorCalldata || []),
|
|
3384
3507
|
class_hash: toHex(classHash),
|
|
3385
3508
|
contract_address_salt: toHex(addressSalt || 0),
|
|
3386
|
-
type:
|
|
3509
|
+
type: rpcspec_0_6_exports.ETransactionType.DEPLOY_ACCOUNT,
|
|
3387
3510
|
max_fee: toHex(details.maxFee || 0),
|
|
3388
|
-
version:
|
|
3511
|
+
version: rpcspec_0_6_exports.ETransactionVersion.V1,
|
|
3389
3512
|
signature: signatureToHexArray(signature),
|
|
3390
3513
|
nonce: toHex(details.nonce)
|
|
3391
3514
|
}
|
|
@@ -3393,8 +3516,8 @@ var RpcChannel = class {
|
|
|
3393
3516
|
} else {
|
|
3394
3517
|
promise = this.fetchEndpoint("starknet_addDeployAccountTransaction", {
|
|
3395
3518
|
deploy_account_transaction: {
|
|
3396
|
-
type:
|
|
3397
|
-
version:
|
|
3519
|
+
type: rpcspec_0_6_exports.ETransactionType.DEPLOY_ACCOUNT,
|
|
3520
|
+
version: rpcspec_0_6_exports.ETransactionVersion.V3,
|
|
3398
3521
|
signature: signatureToHexArray(signature),
|
|
3399
3522
|
nonce: toHex(details.nonce),
|
|
3400
3523
|
contract_address_salt: toHex(addressSalt || 0),
|
|
@@ -3477,7 +3600,7 @@ var RpcChannel = class {
|
|
|
3477
3600
|
if (invocation.type === "INVOKE_FUNCTION" /* INVOKE */) {
|
|
3478
3601
|
return {
|
|
3479
3602
|
// v0 v1 v3
|
|
3480
|
-
type:
|
|
3603
|
+
type: rpcspec_0_6_exports.ETransactionType.INVOKE,
|
|
3481
3604
|
// TODO: Diff between sequencer and rpc invoke type
|
|
3482
3605
|
sender_address: invocation.contractAddress,
|
|
3483
3606
|
calldata: CallData.toHex(invocation.calldata),
|
|
@@ -3523,106 +3646,645 @@ var RpcChannel = class {
|
|
|
3523
3646
|
}
|
|
3524
3647
|
};
|
|
3525
3648
|
|
|
3526
|
-
// src/
|
|
3527
|
-
var
|
|
3528
|
-
|
|
3529
|
-
|
|
3530
|
-
|
|
3531
|
-
|
|
3532
|
-
|
|
3533
|
-
|
|
3534
|
-
|
|
3535
|
-
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3649
|
+
// src/channel/rpc_0_7.ts
|
|
3650
|
+
var rpc_0_7_exports = {};
|
|
3651
|
+
__export(rpc_0_7_exports, {
|
|
3652
|
+
RpcChannel: () => RpcChannel2
|
|
3653
|
+
});
|
|
3654
|
+
var defaultOptions2 = {
|
|
3655
|
+
headers: { "Content-Type": "application/json" },
|
|
3656
|
+
blockIdentifier: "pending" /* pending */,
|
|
3657
|
+
retries: 200
|
|
3658
|
+
};
|
|
3659
|
+
var RpcChannel2 = class {
|
|
3660
|
+
nodeUrl;
|
|
3661
|
+
headers;
|
|
3662
|
+
retries;
|
|
3663
|
+
requestId;
|
|
3664
|
+
blockIdentifier;
|
|
3665
|
+
chainId;
|
|
3666
|
+
speckVersion;
|
|
3667
|
+
waitMode;
|
|
3668
|
+
// behave like web2 rpc and return when tx is processed
|
|
3669
|
+
constructor(optionsOrProvider) {
|
|
3670
|
+
const { nodeUrl, retries, headers, blockIdentifier, chainId, waitMode } = optionsOrProvider || {};
|
|
3671
|
+
if (Object.values(NetworkName).includes(nodeUrl)) {
|
|
3672
|
+
this.nodeUrl = getDefaultNodeUrl(nodeUrl, optionsOrProvider?.default);
|
|
3673
|
+
} else if (nodeUrl) {
|
|
3674
|
+
this.nodeUrl = nodeUrl;
|
|
3675
|
+
} else {
|
|
3676
|
+
this.nodeUrl = getDefaultNodeUrl(void 0, optionsOrProvider?.default);
|
|
3540
3677
|
}
|
|
3541
|
-
|
|
3678
|
+
this.retries = retries || defaultOptions2.retries;
|
|
3679
|
+
this.headers = { ...defaultOptions2.headers, ...headers };
|
|
3680
|
+
this.blockIdentifier = blockIdentifier || defaultOptions2.blockIdentifier;
|
|
3681
|
+
this.chainId = chainId;
|
|
3682
|
+
this.waitMode = waitMode || false;
|
|
3683
|
+
this.requestId = 0;
|
|
3542
3684
|
}
|
|
3543
|
-
|
|
3544
|
-
const
|
|
3545
|
-
|
|
3546
|
-
|
|
3547
|
-
|
|
3548
|
-
|
|
3549
|
-
unit: val.unit,
|
|
3550
|
-
suggestedMaxFee: estimatedFeeToMaxFee(val.overall_fee),
|
|
3551
|
-
resourceBounds: estimateFeeToBounds(val)
|
|
3685
|
+
fetch(method, params, id = 0) {
|
|
3686
|
+
const rpcRequestBody = {
|
|
3687
|
+
id,
|
|
3688
|
+
jsonrpc: "2.0",
|
|
3689
|
+
method,
|
|
3690
|
+
...params && { params }
|
|
3552
3691
|
};
|
|
3553
|
-
|
|
3554
|
-
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
gas_consumed: toBigInt(val.gas_consumed),
|
|
3558
|
-
gas_price: toBigInt(val.gas_price),
|
|
3559
|
-
unit: val.unit,
|
|
3560
|
-
suggestedMaxFee: estimatedFeeToMaxFee(val.overall_fee),
|
|
3561
|
-
resourceBounds: estimateFeeToBounds(val)
|
|
3562
|
-
}));
|
|
3563
|
-
}
|
|
3564
|
-
parseSimulateTransactionResponse(res) {
|
|
3565
|
-
return res.map((it) => {
|
|
3566
|
-
return {
|
|
3567
|
-
...it,
|
|
3568
|
-
suggestedMaxFee: estimatedFeeToMaxFee(BigInt(it.fee_estimation.overall_fee)),
|
|
3569
|
-
resourceBounds: estimateFeeToBounds(it.fee_estimation)
|
|
3570
|
-
};
|
|
3692
|
+
return fetchPonyfill_default(this.nodeUrl, {
|
|
3693
|
+
method: "POST",
|
|
3694
|
+
body: stringify2(rpcRequestBody),
|
|
3695
|
+
headers: this.headers
|
|
3571
3696
|
});
|
|
3572
3697
|
}
|
|
3573
|
-
|
|
3574
|
-
|
|
3575
|
-
|
|
3576
|
-
|
|
3577
|
-
|
|
3578
|
-
|
|
3579
|
-
}
|
|
3580
|
-
|
|
3581
|
-
|
|
3582
|
-
|
|
3583
|
-
|
|
3584
|
-
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
this.channel = optionsOrProvider.channel;
|
|
3588
|
-
} else {
|
|
3589
|
-
this.channel = new RpcChannel({ ...optionsOrProvider, waitMode: false });
|
|
3698
|
+
errorHandler(method, params, rpcError, otherError) {
|
|
3699
|
+
if (rpcError) {
|
|
3700
|
+
const { code, message, data } = rpcError;
|
|
3701
|
+
throw new LibraryError(
|
|
3702
|
+
`RPC: ${method} with params ${stringify2(params, null, 2)}
|
|
3703
|
+
|
|
3704
|
+
${code}: ${message}: ${stringify2(data)}`
|
|
3705
|
+
);
|
|
3706
|
+
}
|
|
3707
|
+
if (otherError instanceof LibraryError) {
|
|
3708
|
+
throw otherError;
|
|
3709
|
+
}
|
|
3710
|
+
if (otherError) {
|
|
3711
|
+
throw Error(otherError.message);
|
|
3590
3712
|
}
|
|
3591
3713
|
}
|
|
3592
|
-
|
|
3593
|
-
|
|
3714
|
+
async fetchEndpoint(method, params) {
|
|
3715
|
+
try {
|
|
3716
|
+
const rawResult = await this.fetch(method, params, this.requestId += 1);
|
|
3717
|
+
const { error, result } = await rawResult.json();
|
|
3718
|
+
this.errorHandler(method, params, error);
|
|
3719
|
+
return result;
|
|
3720
|
+
} catch (error) {
|
|
3721
|
+
this.errorHandler(method, params, error?.response?.data, error);
|
|
3722
|
+
throw error;
|
|
3723
|
+
}
|
|
3594
3724
|
}
|
|
3595
3725
|
async getChainId() {
|
|
3596
|
-
|
|
3726
|
+
this.chainId ??= await this.fetchEndpoint("starknet_chainId");
|
|
3727
|
+
return this.chainId;
|
|
3597
3728
|
}
|
|
3598
3729
|
async getSpecVersion() {
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
async getNonceForAddress(contractAddress, blockIdentifier) {
|
|
3602
|
-
return this.channel.getNonceForAddress(contractAddress, blockIdentifier);
|
|
3730
|
+
this.speckVersion ??= await this.fetchEndpoint("starknet_specVersion");
|
|
3731
|
+
return this.speckVersion;
|
|
3603
3732
|
}
|
|
3604
|
-
|
|
3605
|
-
|
|
3733
|
+
getNonceForAddress(contractAddress, blockIdentifier = this.blockIdentifier) {
|
|
3734
|
+
const contract_address = toHex(contractAddress);
|
|
3735
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3736
|
+
return this.fetchEndpoint("starknet_getNonce", {
|
|
3737
|
+
contract_address,
|
|
3738
|
+
block_id
|
|
3739
|
+
});
|
|
3606
3740
|
}
|
|
3607
3741
|
/**
|
|
3608
3742
|
* Get the most recent accepted block hash and number
|
|
3609
3743
|
*/
|
|
3610
|
-
|
|
3611
|
-
return this.
|
|
3744
|
+
getBlockLatestAccepted() {
|
|
3745
|
+
return this.fetchEndpoint("starknet_blockHashAndNumber");
|
|
3612
3746
|
}
|
|
3613
3747
|
/**
|
|
3614
3748
|
* Get the most recent accepted block number
|
|
3615
3749
|
* redundant use getBlockLatestAccepted();
|
|
3616
3750
|
* @returns Number of the latest block
|
|
3617
3751
|
*/
|
|
3618
|
-
|
|
3619
|
-
return this.
|
|
3752
|
+
getBlockNumber() {
|
|
3753
|
+
return this.fetchEndpoint("starknet_blockNumber");
|
|
3620
3754
|
}
|
|
3621
|
-
|
|
3622
|
-
|
|
3755
|
+
getBlockWithTxHashes(blockIdentifier = this.blockIdentifier) {
|
|
3756
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3757
|
+
return this.fetchEndpoint("starknet_getBlockWithTxHashes", { block_id });
|
|
3623
3758
|
}
|
|
3624
|
-
|
|
3625
|
-
|
|
3759
|
+
getBlockWithTxs(blockIdentifier = this.blockIdentifier) {
|
|
3760
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3761
|
+
return this.fetchEndpoint("starknet_getBlockWithTxs", { block_id });
|
|
3762
|
+
}
|
|
3763
|
+
getBlockWithReceipts(blockIdentifier = this.blockIdentifier) {
|
|
3764
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3765
|
+
return this.fetchEndpoint("starknet_getBlockWithReceipts", { block_id });
|
|
3766
|
+
}
|
|
3767
|
+
getBlockStateUpdate(blockIdentifier = this.blockIdentifier) {
|
|
3768
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3769
|
+
return this.fetchEndpoint("starknet_getStateUpdate", { block_id });
|
|
3770
|
+
}
|
|
3771
|
+
getBlockTransactionsTraces(blockIdentifier = this.blockIdentifier) {
|
|
3772
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3773
|
+
return this.fetchEndpoint("starknet_traceBlockTransactions", { block_id });
|
|
3774
|
+
}
|
|
3775
|
+
getBlockTransactionCount(blockIdentifier = this.blockIdentifier) {
|
|
3776
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3777
|
+
return this.fetchEndpoint("starknet_getBlockTransactionCount", { block_id });
|
|
3778
|
+
}
|
|
3779
|
+
getTransactionByHash(txHash) {
|
|
3780
|
+
const transaction_hash = toHex(txHash);
|
|
3781
|
+
return this.fetchEndpoint("starknet_getTransactionByHash", {
|
|
3782
|
+
transaction_hash
|
|
3783
|
+
});
|
|
3784
|
+
}
|
|
3785
|
+
getTransactionByBlockIdAndIndex(blockIdentifier, index) {
|
|
3786
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3787
|
+
return this.fetchEndpoint("starknet_getTransactionByBlockIdAndIndex", { block_id, index });
|
|
3788
|
+
}
|
|
3789
|
+
getTransactionReceipt(txHash) {
|
|
3790
|
+
const transaction_hash = toHex(txHash);
|
|
3791
|
+
return this.fetchEndpoint("starknet_getTransactionReceipt", { transaction_hash });
|
|
3792
|
+
}
|
|
3793
|
+
getTransactionTrace(txHash) {
|
|
3794
|
+
const transaction_hash = toHex(txHash);
|
|
3795
|
+
return this.fetchEndpoint("starknet_traceTransaction", { transaction_hash });
|
|
3796
|
+
}
|
|
3797
|
+
/**
|
|
3798
|
+
* Get the status of a transaction
|
|
3799
|
+
*/
|
|
3800
|
+
getTransactionStatus(transactionHash) {
|
|
3801
|
+
const transaction_hash = toHex(transactionHash);
|
|
3802
|
+
return this.fetchEndpoint("starknet_getTransactionStatus", { transaction_hash });
|
|
3803
|
+
}
|
|
3804
|
+
/**
|
|
3805
|
+
* @param invocations AccountInvocations
|
|
3806
|
+
* @param simulateTransactionOptions blockIdentifier and flags to skip validation and fee charge<br/>
|
|
3807
|
+
* - blockIdentifier<br/>
|
|
3808
|
+
* - skipValidate (default false)<br/>
|
|
3809
|
+
* - skipFeeCharge (default true)<br/>
|
|
3810
|
+
*/
|
|
3811
|
+
simulateTransaction(invocations, {
|
|
3812
|
+
blockIdentifier = this.blockIdentifier,
|
|
3813
|
+
skipValidate = true,
|
|
3814
|
+
skipFeeCharge = true
|
|
3815
|
+
} = {}) {
|
|
3816
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3817
|
+
const simulationFlags = [];
|
|
3818
|
+
if (skipValidate)
|
|
3819
|
+
simulationFlags.push(rpcspec_0_7_exports.ESimulationFlag.SKIP_VALIDATE);
|
|
3820
|
+
if (skipFeeCharge)
|
|
3821
|
+
simulationFlags.push(rpcspec_0_7_exports.ESimulationFlag.SKIP_FEE_CHARGE);
|
|
3822
|
+
return this.fetchEndpoint("starknet_simulateTransactions", {
|
|
3823
|
+
block_id,
|
|
3824
|
+
transactions: invocations.map((it) => this.buildTransaction(it)),
|
|
3825
|
+
simulation_flags: simulationFlags
|
|
3826
|
+
});
|
|
3827
|
+
}
|
|
3828
|
+
async waitForTransaction(txHash, options) {
|
|
3829
|
+
const transactionHash = toHex(txHash);
|
|
3830
|
+
let { retries } = this;
|
|
3831
|
+
let onchain = false;
|
|
3832
|
+
let isErrorState = false;
|
|
3833
|
+
const retryInterval = options?.retryInterval ?? 5e3;
|
|
3834
|
+
const errorStates = options?.errorStates ?? [
|
|
3835
|
+
rpcspec_0_7_exports.ETransactionStatus.REJECTED
|
|
3836
|
+
// TODO: commented out to preserve the long-standing behavior of "reverted" not being treated as an error by default
|
|
3837
|
+
// should decide which behavior to keep in the future
|
|
3838
|
+
// RPC.ETransactionExecutionStatus.REVERTED,
|
|
3839
|
+
];
|
|
3840
|
+
const successStates = options?.successStates ?? [
|
|
3841
|
+
rpcspec_0_7_exports.ETransactionExecutionStatus.SUCCEEDED,
|
|
3842
|
+
rpcspec_0_7_exports.ETransactionStatus.ACCEPTED_ON_L2,
|
|
3843
|
+
rpcspec_0_7_exports.ETransactionStatus.ACCEPTED_ON_L1
|
|
3844
|
+
];
|
|
3845
|
+
let txStatus;
|
|
3846
|
+
while (!onchain) {
|
|
3847
|
+
await wait(retryInterval);
|
|
3848
|
+
try {
|
|
3849
|
+
txStatus = await this.getTransactionStatus(transactionHash);
|
|
3850
|
+
const executionStatus = txStatus.execution_status;
|
|
3851
|
+
const finalityStatus = txStatus.finality_status;
|
|
3852
|
+
if (!finalityStatus) {
|
|
3853
|
+
const error = new Error("waiting for transaction status");
|
|
3854
|
+
throw error;
|
|
3855
|
+
}
|
|
3856
|
+
if (errorStates.includes(executionStatus) || errorStates.includes(finalityStatus)) {
|
|
3857
|
+
const message = `${executionStatus}: ${finalityStatus}`;
|
|
3858
|
+
const error = new Error(message);
|
|
3859
|
+
error.response = txStatus;
|
|
3860
|
+
isErrorState = true;
|
|
3861
|
+
throw error;
|
|
3862
|
+
} else if (successStates.includes(executionStatus) || successStates.includes(finalityStatus)) {
|
|
3863
|
+
onchain = true;
|
|
3864
|
+
}
|
|
3865
|
+
} catch (error) {
|
|
3866
|
+
if (error instanceof Error && isErrorState) {
|
|
3867
|
+
throw error;
|
|
3868
|
+
}
|
|
3869
|
+
if (retries <= 0) {
|
|
3870
|
+
throw new Error(`waitForTransaction timed-out with retries ${this.retries}`);
|
|
3871
|
+
}
|
|
3872
|
+
}
|
|
3873
|
+
retries -= 1;
|
|
3874
|
+
}
|
|
3875
|
+
let txReceipt = null;
|
|
3876
|
+
while (txReceipt === null) {
|
|
3877
|
+
try {
|
|
3878
|
+
txReceipt = await this.getTransactionReceipt(transactionHash);
|
|
3879
|
+
} catch (error) {
|
|
3880
|
+
if (retries <= 0) {
|
|
3881
|
+
throw new Error(`waitForTransaction timed-out with retries ${this.retries}`);
|
|
3882
|
+
}
|
|
3883
|
+
}
|
|
3884
|
+
retries -= 1;
|
|
3885
|
+
await wait(retryInterval);
|
|
3886
|
+
}
|
|
3887
|
+
return txReceipt;
|
|
3888
|
+
}
|
|
3889
|
+
getStorageAt(contractAddress, key, blockIdentifier = this.blockIdentifier) {
|
|
3890
|
+
const contract_address = toHex(contractAddress);
|
|
3891
|
+
const parsedKey = toStorageKey(key);
|
|
3892
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3893
|
+
return this.fetchEndpoint("starknet_getStorageAt", {
|
|
3894
|
+
contract_address,
|
|
3895
|
+
key: parsedKey,
|
|
3896
|
+
block_id
|
|
3897
|
+
});
|
|
3898
|
+
}
|
|
3899
|
+
getClassHashAt(contractAddress, blockIdentifier = this.blockIdentifier) {
|
|
3900
|
+
const contract_address = toHex(contractAddress);
|
|
3901
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3902
|
+
return this.fetchEndpoint("starknet_getClassHashAt", {
|
|
3903
|
+
block_id,
|
|
3904
|
+
contract_address
|
|
3905
|
+
});
|
|
3906
|
+
}
|
|
3907
|
+
getClass(classHash, blockIdentifier = this.blockIdentifier) {
|
|
3908
|
+
const class_hash = toHex(classHash);
|
|
3909
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3910
|
+
return this.fetchEndpoint("starknet_getClass", {
|
|
3911
|
+
class_hash,
|
|
3912
|
+
block_id
|
|
3913
|
+
});
|
|
3914
|
+
}
|
|
3915
|
+
getClassAt(contractAddress, blockIdentifier = this.blockIdentifier) {
|
|
3916
|
+
const contract_address = toHex(contractAddress);
|
|
3917
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3918
|
+
return this.fetchEndpoint("starknet_getClassAt", {
|
|
3919
|
+
block_id,
|
|
3920
|
+
contract_address
|
|
3921
|
+
});
|
|
3922
|
+
}
|
|
3923
|
+
async getEstimateFee(invocations, { blockIdentifier = this.blockIdentifier, skipValidate = true }) {
|
|
3924
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
3925
|
+
let flags = {};
|
|
3926
|
+
if (!isVersion("0.5", await this.getSpecVersion())) {
|
|
3927
|
+
flags = {
|
|
3928
|
+
simulation_flags: skipValidate ? [rpcspec_0_7_exports.ESimulationFlag.SKIP_VALIDATE] : []
|
|
3929
|
+
};
|
|
3930
|
+
}
|
|
3931
|
+
return this.fetchEndpoint("starknet_estimateFee", {
|
|
3932
|
+
request: invocations.map((it) => this.buildTransaction(it, "fee")),
|
|
3933
|
+
block_id,
|
|
3934
|
+
...flags
|
|
3935
|
+
});
|
|
3936
|
+
}
|
|
3937
|
+
async invoke(functionInvocation, details) {
|
|
3938
|
+
let promise;
|
|
3939
|
+
if (!isV3Tx(details)) {
|
|
3940
|
+
promise = this.fetchEndpoint("starknet_addInvokeTransaction", {
|
|
3941
|
+
invoke_transaction: {
|
|
3942
|
+
sender_address: functionInvocation.contractAddress,
|
|
3943
|
+
calldata: CallData.toHex(functionInvocation.calldata),
|
|
3944
|
+
type: rpcspec_0_7_exports.ETransactionType.INVOKE,
|
|
3945
|
+
max_fee: toHex(details.maxFee || 0),
|
|
3946
|
+
version: rpcspec_0_7_exports.ETransactionVersion.V1,
|
|
3947
|
+
signature: signatureToHexArray(functionInvocation.signature),
|
|
3948
|
+
nonce: toHex(details.nonce)
|
|
3949
|
+
}
|
|
3950
|
+
});
|
|
3951
|
+
} else {
|
|
3952
|
+
promise = this.fetchEndpoint("starknet_addInvokeTransaction", {
|
|
3953
|
+
invoke_transaction: {
|
|
3954
|
+
type: rpcspec_0_7_exports.ETransactionType.INVOKE,
|
|
3955
|
+
sender_address: functionInvocation.contractAddress,
|
|
3956
|
+
calldata: CallData.toHex(functionInvocation.calldata),
|
|
3957
|
+
version: rpcspec_0_7_exports.ETransactionVersion.V3,
|
|
3958
|
+
signature: signatureToHexArray(functionInvocation.signature),
|
|
3959
|
+
nonce: toHex(details.nonce),
|
|
3960
|
+
resource_bounds: details.resourceBounds,
|
|
3961
|
+
tip: toHex(details.tip),
|
|
3962
|
+
paymaster_data: details.paymasterData.map((it) => toHex(it)),
|
|
3963
|
+
account_deployment_data: details.accountDeploymentData.map((it) => toHex(it)),
|
|
3964
|
+
nonce_data_availability_mode: details.nonceDataAvailabilityMode,
|
|
3965
|
+
fee_data_availability_mode: details.feeDataAvailabilityMode
|
|
3966
|
+
}
|
|
3967
|
+
});
|
|
3968
|
+
}
|
|
3969
|
+
return this.waitMode ? this.waitForTransaction((await promise).transaction_hash) : promise;
|
|
3970
|
+
}
|
|
3971
|
+
async declare({ contract, signature, senderAddress, compiledClassHash }, details) {
|
|
3972
|
+
let promise;
|
|
3973
|
+
if (!isSierra(contract) && !isV3Tx(details)) {
|
|
3974
|
+
promise = this.fetchEndpoint("starknet_addDeclareTransaction", {
|
|
3975
|
+
declare_transaction: {
|
|
3976
|
+
type: rpcspec_0_7_exports.ETransactionType.DECLARE,
|
|
3977
|
+
contract_class: {
|
|
3978
|
+
program: contract.program,
|
|
3979
|
+
entry_points_by_type: contract.entry_points_by_type,
|
|
3980
|
+
abi: contract.abi
|
|
3981
|
+
},
|
|
3982
|
+
version: rpcspec_0_7_exports.ETransactionVersion.V1,
|
|
3983
|
+
max_fee: toHex(details.maxFee || 0),
|
|
3984
|
+
signature: signatureToHexArray(signature),
|
|
3985
|
+
sender_address: senderAddress,
|
|
3986
|
+
nonce: toHex(details.nonce)
|
|
3987
|
+
}
|
|
3988
|
+
});
|
|
3989
|
+
} else if (isSierra(contract) && !isV3Tx(details)) {
|
|
3990
|
+
promise = this.fetchEndpoint("starknet_addDeclareTransaction", {
|
|
3991
|
+
declare_transaction: {
|
|
3992
|
+
type: rpcspec_0_7_exports.ETransactionType.DECLARE,
|
|
3993
|
+
contract_class: {
|
|
3994
|
+
sierra_program: decompressProgram(contract.sierra_program),
|
|
3995
|
+
contract_class_version: contract.contract_class_version,
|
|
3996
|
+
entry_points_by_type: contract.entry_points_by_type,
|
|
3997
|
+
abi: contract.abi
|
|
3998
|
+
},
|
|
3999
|
+
compiled_class_hash: compiledClassHash || "",
|
|
4000
|
+
version: rpcspec_0_7_exports.ETransactionVersion.V2,
|
|
4001
|
+
max_fee: toHex(details.maxFee || 0),
|
|
4002
|
+
signature: signatureToHexArray(signature),
|
|
4003
|
+
sender_address: senderAddress,
|
|
4004
|
+
nonce: toHex(details.nonce)
|
|
4005
|
+
}
|
|
4006
|
+
});
|
|
4007
|
+
} else if (isSierra(contract) && isV3Tx(details)) {
|
|
4008
|
+
promise = this.fetchEndpoint("starknet_addDeclareTransaction", {
|
|
4009
|
+
declare_transaction: {
|
|
4010
|
+
type: rpcspec_0_7_exports.ETransactionType.DECLARE,
|
|
4011
|
+
sender_address: senderAddress,
|
|
4012
|
+
compiled_class_hash: compiledClassHash || "",
|
|
4013
|
+
version: rpcspec_0_7_exports.ETransactionVersion.V3,
|
|
4014
|
+
signature: signatureToHexArray(signature),
|
|
4015
|
+
nonce: toHex(details.nonce),
|
|
4016
|
+
contract_class: {
|
|
4017
|
+
sierra_program: decompressProgram(contract.sierra_program),
|
|
4018
|
+
contract_class_version: contract.contract_class_version,
|
|
4019
|
+
entry_points_by_type: contract.entry_points_by_type,
|
|
4020
|
+
abi: contract.abi
|
|
4021
|
+
},
|
|
4022
|
+
resource_bounds: details.resourceBounds,
|
|
4023
|
+
tip: toHex(details.tip),
|
|
4024
|
+
paymaster_data: details.paymasterData.map((it) => toHex(it)),
|
|
4025
|
+
account_deployment_data: details.accountDeploymentData.map((it) => toHex(it)),
|
|
4026
|
+
nonce_data_availability_mode: details.nonceDataAvailabilityMode,
|
|
4027
|
+
fee_data_availability_mode: details.feeDataAvailabilityMode
|
|
4028
|
+
}
|
|
4029
|
+
});
|
|
4030
|
+
} else {
|
|
4031
|
+
throw Error("declare unspotted parameters");
|
|
4032
|
+
}
|
|
4033
|
+
return this.waitMode ? this.waitForTransaction((await promise).transaction_hash) : promise;
|
|
4034
|
+
}
|
|
4035
|
+
async deployAccount({ classHash, constructorCalldata, addressSalt, signature }, details) {
|
|
4036
|
+
let promise;
|
|
4037
|
+
if (!isV3Tx(details)) {
|
|
4038
|
+
promise = this.fetchEndpoint("starknet_addDeployAccountTransaction", {
|
|
4039
|
+
deploy_account_transaction: {
|
|
4040
|
+
constructor_calldata: CallData.toHex(constructorCalldata || []),
|
|
4041
|
+
class_hash: toHex(classHash),
|
|
4042
|
+
contract_address_salt: toHex(addressSalt || 0),
|
|
4043
|
+
type: rpcspec_0_7_exports.ETransactionType.DEPLOY_ACCOUNT,
|
|
4044
|
+
max_fee: toHex(details.maxFee || 0),
|
|
4045
|
+
version: rpcspec_0_7_exports.ETransactionVersion.V1,
|
|
4046
|
+
signature: signatureToHexArray(signature),
|
|
4047
|
+
nonce: toHex(details.nonce)
|
|
4048
|
+
}
|
|
4049
|
+
});
|
|
4050
|
+
} else {
|
|
4051
|
+
promise = this.fetchEndpoint("starknet_addDeployAccountTransaction", {
|
|
4052
|
+
deploy_account_transaction: {
|
|
4053
|
+
type: rpcspec_0_7_exports.ETransactionType.DEPLOY_ACCOUNT,
|
|
4054
|
+
version: rpcspec_0_7_exports.ETransactionVersion.V3,
|
|
4055
|
+
signature: signatureToHexArray(signature),
|
|
4056
|
+
nonce: toHex(details.nonce),
|
|
4057
|
+
contract_address_salt: toHex(addressSalt || 0),
|
|
4058
|
+
constructor_calldata: CallData.toHex(constructorCalldata || []),
|
|
4059
|
+
class_hash: toHex(classHash),
|
|
4060
|
+
resource_bounds: details.resourceBounds,
|
|
4061
|
+
tip: toHex(details.tip),
|
|
4062
|
+
paymaster_data: details.paymasterData.map((it) => toHex(it)),
|
|
4063
|
+
nonce_data_availability_mode: details.nonceDataAvailabilityMode,
|
|
4064
|
+
fee_data_availability_mode: details.feeDataAvailabilityMode
|
|
4065
|
+
}
|
|
4066
|
+
});
|
|
4067
|
+
}
|
|
4068
|
+
return this.waitMode ? this.waitForTransaction((await promise).transaction_hash) : promise;
|
|
4069
|
+
}
|
|
4070
|
+
callContract(call, blockIdentifier = this.blockIdentifier) {
|
|
4071
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
4072
|
+
return this.fetchEndpoint("starknet_call", {
|
|
4073
|
+
request: {
|
|
4074
|
+
contract_address: call.contractAddress,
|
|
4075
|
+
entry_point_selector: getSelectorFromName(call.entrypoint),
|
|
4076
|
+
calldata: CallData.toHex(call.calldata)
|
|
4077
|
+
},
|
|
4078
|
+
block_id
|
|
4079
|
+
});
|
|
4080
|
+
}
|
|
4081
|
+
/**
|
|
4082
|
+
* NEW: Estimate the fee for a message from L1
|
|
4083
|
+
* @param message Message From L1
|
|
4084
|
+
*/
|
|
4085
|
+
estimateMessageFee(message, blockIdentifier = this.blockIdentifier) {
|
|
4086
|
+
const { from_address, to_address, entry_point_selector, payload } = message;
|
|
4087
|
+
const formattedMessage = {
|
|
4088
|
+
from_address: toHex(from_address),
|
|
4089
|
+
to_address: toHex(to_address),
|
|
4090
|
+
entry_point_selector: getSelector(entry_point_selector),
|
|
4091
|
+
payload: getHexStringArray(payload)
|
|
4092
|
+
};
|
|
4093
|
+
const block_id = new Block(blockIdentifier).identifier;
|
|
4094
|
+
return this.fetchEndpoint("starknet_estimateMessageFee", {
|
|
4095
|
+
message: formattedMessage,
|
|
4096
|
+
block_id
|
|
4097
|
+
});
|
|
4098
|
+
}
|
|
4099
|
+
/**
|
|
4100
|
+
* Returns an object about the sync status, or false if the node is not synching
|
|
4101
|
+
* @returns Object with the stats data
|
|
4102
|
+
*/
|
|
4103
|
+
getSyncingStats() {
|
|
4104
|
+
return this.fetchEndpoint("starknet_syncing");
|
|
4105
|
+
}
|
|
4106
|
+
/**
|
|
4107
|
+
* Returns all events matching the given filter
|
|
4108
|
+
* @returns events and the pagination of the events
|
|
4109
|
+
*/
|
|
4110
|
+
getEvents(eventFilter) {
|
|
4111
|
+
return this.fetchEndpoint("starknet_getEvents", { filter: eventFilter });
|
|
4112
|
+
}
|
|
4113
|
+
buildTransaction(invocation, versionType) {
|
|
4114
|
+
const defaultVersions = getVersionsByType(versionType);
|
|
4115
|
+
let details;
|
|
4116
|
+
if (!isV3Tx(invocation)) {
|
|
4117
|
+
details = {
|
|
4118
|
+
signature: signatureToHexArray(invocation.signature),
|
|
4119
|
+
nonce: toHex(invocation.nonce),
|
|
4120
|
+
max_fee: toHex(invocation.maxFee || 0)
|
|
4121
|
+
};
|
|
4122
|
+
} else {
|
|
4123
|
+
details = {
|
|
4124
|
+
signature: signatureToHexArray(invocation.signature),
|
|
4125
|
+
nonce: toHex(invocation.nonce),
|
|
4126
|
+
resource_bounds: invocation.resourceBounds,
|
|
4127
|
+
tip: toHex(invocation.tip),
|
|
4128
|
+
paymaster_data: invocation.paymasterData.map((it) => toHex(it)),
|
|
4129
|
+
nonce_data_availability_mode: invocation.nonceDataAvailabilityMode,
|
|
4130
|
+
fee_data_availability_mode: invocation.feeDataAvailabilityMode,
|
|
4131
|
+
account_deployment_data: invocation.accountDeploymentData.map((it) => toHex(it))
|
|
4132
|
+
};
|
|
4133
|
+
}
|
|
4134
|
+
if (invocation.type === "INVOKE_FUNCTION" /* INVOKE */) {
|
|
4135
|
+
return {
|
|
4136
|
+
// v0 v1 v3
|
|
4137
|
+
type: rpcspec_0_7_exports.ETransactionType.INVOKE,
|
|
4138
|
+
// TODO: Diff between sequencer and rpc invoke type
|
|
4139
|
+
sender_address: invocation.contractAddress,
|
|
4140
|
+
calldata: CallData.toHex(invocation.calldata),
|
|
4141
|
+
version: toHex(invocation.version || defaultVersions.v3),
|
|
4142
|
+
...details
|
|
4143
|
+
};
|
|
4144
|
+
}
|
|
4145
|
+
if (invocation.type === "DECLARE" /* DECLARE */) {
|
|
4146
|
+
if (!isSierra(invocation.contract)) {
|
|
4147
|
+
return {
|
|
4148
|
+
type: invocation.type,
|
|
4149
|
+
contract_class: invocation.contract,
|
|
4150
|
+
sender_address: invocation.senderAddress,
|
|
4151
|
+
version: toHex(invocation.version || defaultVersions.v1),
|
|
4152
|
+
...details
|
|
4153
|
+
};
|
|
4154
|
+
}
|
|
4155
|
+
return {
|
|
4156
|
+
// Cairo 1 - v2 v3
|
|
4157
|
+
type: invocation.type,
|
|
4158
|
+
contract_class: {
|
|
4159
|
+
...invocation.contract,
|
|
4160
|
+
sierra_program: decompressProgram(invocation.contract.sierra_program)
|
|
4161
|
+
},
|
|
4162
|
+
compiled_class_hash: invocation.compiledClassHash || "",
|
|
4163
|
+
sender_address: invocation.senderAddress,
|
|
4164
|
+
version: toHex(invocation.version || defaultVersions.v3),
|
|
4165
|
+
...details
|
|
4166
|
+
};
|
|
4167
|
+
}
|
|
4168
|
+
if (invocation.type === "DEPLOY_ACCOUNT" /* DEPLOY_ACCOUNT */) {
|
|
4169
|
+
const { account_deployment_data, ...restDetails } = details;
|
|
4170
|
+
return {
|
|
4171
|
+
type: invocation.type,
|
|
4172
|
+
constructor_calldata: CallData.toHex(invocation.constructorCalldata || []),
|
|
4173
|
+
class_hash: toHex(invocation.classHash),
|
|
4174
|
+
contract_address_salt: toHex(invocation.addressSalt || 0),
|
|
4175
|
+
version: toHex(invocation.version || defaultVersions.v3),
|
|
4176
|
+
...restDetails
|
|
4177
|
+
};
|
|
4178
|
+
}
|
|
4179
|
+
throw Error("RPC buildTransaction received unknown TransactionType");
|
|
4180
|
+
}
|
|
4181
|
+
};
|
|
4182
|
+
|
|
4183
|
+
// src/utils/responseParser/rpc.ts
|
|
4184
|
+
var RPCResponseParser = class {
|
|
4185
|
+
parseGetBlockResponse(res) {
|
|
4186
|
+
return { status: "PENDING", ...res };
|
|
4187
|
+
}
|
|
4188
|
+
parseTransactionReceipt(res) {
|
|
4189
|
+
if ("actual_fee" in res && typeof res.actual_fee === "string") {
|
|
4190
|
+
return {
|
|
4191
|
+
...res,
|
|
4192
|
+
actual_fee: {
|
|
4193
|
+
amount: res.actual_fee,
|
|
4194
|
+
unit: "FRI"
|
|
4195
|
+
}
|
|
4196
|
+
};
|
|
4197
|
+
}
|
|
4198
|
+
return res;
|
|
4199
|
+
}
|
|
4200
|
+
parseFeeEstimateResponse(res) {
|
|
4201
|
+
const val = res[0];
|
|
4202
|
+
return {
|
|
4203
|
+
overall_fee: toBigInt(val.overall_fee),
|
|
4204
|
+
gas_consumed: toBigInt(val.gas_consumed),
|
|
4205
|
+
gas_price: toBigInt(val.gas_price),
|
|
4206
|
+
unit: val.unit,
|
|
4207
|
+
suggestedMaxFee: estimatedFeeToMaxFee(val.overall_fee),
|
|
4208
|
+
resourceBounds: estimateFeeToBounds(val)
|
|
4209
|
+
};
|
|
4210
|
+
}
|
|
4211
|
+
parseFeeEstimateBulkResponse(res) {
|
|
4212
|
+
return res.map((val) => ({
|
|
4213
|
+
overall_fee: toBigInt(val.overall_fee),
|
|
4214
|
+
gas_consumed: toBigInt(val.gas_consumed),
|
|
4215
|
+
gas_price: toBigInt(val.gas_price),
|
|
4216
|
+
unit: val.unit,
|
|
4217
|
+
suggestedMaxFee: estimatedFeeToMaxFee(val.overall_fee),
|
|
4218
|
+
resourceBounds: estimateFeeToBounds(val)
|
|
4219
|
+
}));
|
|
4220
|
+
}
|
|
4221
|
+
parseSimulateTransactionResponse(res) {
|
|
4222
|
+
return res.map((it) => {
|
|
4223
|
+
return {
|
|
4224
|
+
...it,
|
|
4225
|
+
suggestedMaxFee: estimatedFeeToMaxFee(BigInt(it.fee_estimation.overall_fee)),
|
|
4226
|
+
resourceBounds: estimateFeeToBounds(it.fee_estimation)
|
|
4227
|
+
};
|
|
4228
|
+
});
|
|
4229
|
+
}
|
|
4230
|
+
parseContractClassResponse(res) {
|
|
4231
|
+
return {
|
|
4232
|
+
...res,
|
|
4233
|
+
abi: typeof res.abi === "string" ? JSON.parse(res.abi) : res.abi
|
|
4234
|
+
};
|
|
4235
|
+
}
|
|
4236
|
+
};
|
|
4237
|
+
|
|
4238
|
+
// src/provider/rpc.ts
|
|
4239
|
+
var RpcProvider = class {
|
|
4240
|
+
responseParser = new RPCResponseParser();
|
|
4241
|
+
channel;
|
|
4242
|
+
constructor(optionsOrProvider) {
|
|
4243
|
+
if (optionsOrProvider && "channel" in optionsOrProvider) {
|
|
4244
|
+
this.channel = optionsOrProvider.channel;
|
|
4245
|
+
} else {
|
|
4246
|
+
this.channel = new RpcChannel2({ ...optionsOrProvider, waitMode: false });
|
|
4247
|
+
}
|
|
4248
|
+
}
|
|
4249
|
+
fetch(method, params, id = 0) {
|
|
4250
|
+
return this.channel.fetch(method, params, id);
|
|
4251
|
+
}
|
|
4252
|
+
async getChainId() {
|
|
4253
|
+
return this.channel.getChainId();
|
|
4254
|
+
}
|
|
4255
|
+
async getSpecVersion() {
|
|
4256
|
+
return this.channel.getSpecVersion();
|
|
4257
|
+
}
|
|
4258
|
+
async getNonceForAddress(contractAddress, blockIdentifier) {
|
|
4259
|
+
return this.channel.getNonceForAddress(contractAddress, blockIdentifier);
|
|
4260
|
+
}
|
|
4261
|
+
async getBlock(blockIdentifier) {
|
|
4262
|
+
return this.channel.getBlockWithTxHashes(blockIdentifier).then(this.responseParser.parseGetBlockResponse);
|
|
4263
|
+
}
|
|
4264
|
+
/**
|
|
4265
|
+
* Get the most recent accepted block hash and number
|
|
4266
|
+
*/
|
|
4267
|
+
async getBlockLatestAccepted() {
|
|
4268
|
+
return this.channel.getBlockLatestAccepted();
|
|
4269
|
+
}
|
|
4270
|
+
/**
|
|
4271
|
+
* Get the most recent accepted block number
|
|
4272
|
+
* redundant use getBlockLatestAccepted();
|
|
4273
|
+
* @returns Number of the latest block
|
|
4274
|
+
*/
|
|
4275
|
+
async getBlockNumber() {
|
|
4276
|
+
return this.channel.getBlockNumber();
|
|
4277
|
+
}
|
|
4278
|
+
async getBlockWithTxHashes(blockIdentifier) {
|
|
4279
|
+
return this.channel.getBlockWithTxHashes(blockIdentifier);
|
|
4280
|
+
}
|
|
4281
|
+
async getBlockWithTxs(blockIdentifier) {
|
|
4282
|
+
return this.channel.getBlockWithTxs(blockIdentifier);
|
|
4283
|
+
}
|
|
4284
|
+
async getBlockWithReceipts(blockIdentifier) {
|
|
4285
|
+
if (this.channel instanceof rpc_0_6_exports.RpcChannel)
|
|
4286
|
+
throw new LibraryError("Unsupported method for RPC version");
|
|
4287
|
+
return this.channel.getBlockWithReceipts(blockIdentifier);
|
|
3626
4288
|
}
|
|
3627
4289
|
getStateUpdate = this.getBlockStateUpdate;
|
|
3628
4290
|
async getBlockStateUpdate(blockIdentifier) {
|
|
@@ -4340,7 +5002,7 @@ var Signer = class {
|
|
|
4340
5002
|
async signTransaction(transactions, details) {
|
|
4341
5003
|
const compiledCalldata = getExecuteCalldata(transactions, details.cairoVersion);
|
|
4342
5004
|
let msgHash;
|
|
4343
|
-
if (Object.values(
|
|
5005
|
+
if (Object.values(ETransactionVersion22).includes(details.version)) {
|
|
4344
5006
|
const det = details;
|
|
4345
5007
|
msgHash = calculateInvokeTransactionHash2({
|
|
4346
5008
|
...det,
|
|
@@ -4348,7 +5010,7 @@ var Signer = class {
|
|
|
4348
5010
|
compiledCalldata,
|
|
4349
5011
|
version: det.version
|
|
4350
5012
|
});
|
|
4351
|
-
} else if (Object.values(
|
|
5013
|
+
} else if (Object.values(ETransactionVersion32).includes(details.version)) {
|
|
4352
5014
|
const det = details;
|
|
4353
5015
|
msgHash = calculateInvokeTransactionHash2({
|
|
4354
5016
|
...det,
|
|
@@ -4366,7 +5028,7 @@ var Signer = class {
|
|
|
4366
5028
|
async signDeployAccountTransaction(details) {
|
|
4367
5029
|
const compiledConstructorCalldata = CallData.compile(details.constructorCalldata);
|
|
4368
5030
|
let msgHash;
|
|
4369
|
-
if (Object.values(
|
|
5031
|
+
if (Object.values(ETransactionVersion22).includes(details.version)) {
|
|
4370
5032
|
const det = details;
|
|
4371
5033
|
msgHash = calculateDeployAccountTransactionHash3({
|
|
4372
5034
|
...det,
|
|
@@ -4374,7 +5036,7 @@ var Signer = class {
|
|
|
4374
5036
|
constructorCalldata: compiledConstructorCalldata,
|
|
4375
5037
|
version: det.version
|
|
4376
5038
|
});
|
|
4377
|
-
} else if (Object.values(
|
|
5039
|
+
} else if (Object.values(ETransactionVersion32).includes(details.version)) {
|
|
4378
5040
|
const det = details;
|
|
4379
5041
|
msgHash = calculateDeployAccountTransactionHash3({
|
|
4380
5042
|
...det,
|
|
@@ -4391,13 +5053,13 @@ var Signer = class {
|
|
|
4391
5053
|
}
|
|
4392
5054
|
async signDeclareTransaction(details) {
|
|
4393
5055
|
let msgHash;
|
|
4394
|
-
if (Object.values(
|
|
5056
|
+
if (Object.values(ETransactionVersion22).includes(details.version)) {
|
|
4395
5057
|
const det = details;
|
|
4396
5058
|
msgHash = calculateDeclareTransactionHash3({
|
|
4397
5059
|
...det,
|
|
4398
5060
|
version: det.version
|
|
4399
5061
|
});
|
|
4400
|
-
} else if (Object.values(
|
|
5062
|
+
} else if (Object.values(ETransactionVersion32).includes(details.version)) {
|
|
4401
5063
|
const det = details;
|
|
4402
5064
|
msgHash = calculateDeclareTransactionHash3({
|
|
4403
5065
|
...det,
|
|
@@ -4445,7 +5107,7 @@ var EthSigner = class {
|
|
|
4445
5107
|
async signTransaction(transactions, details) {
|
|
4446
5108
|
const compiledCalldata = getExecuteCalldata(transactions, details.cairoVersion);
|
|
4447
5109
|
let msgHash;
|
|
4448
|
-
if (Object.values(
|
|
5110
|
+
if (Object.values(ETransactionVersion22).includes(details.version)) {
|
|
4449
5111
|
const det = details;
|
|
4450
5112
|
msgHash = calculateInvokeTransactionHash2({
|
|
4451
5113
|
...det,
|
|
@@ -4453,7 +5115,7 @@ var EthSigner = class {
|
|
|
4453
5115
|
compiledCalldata,
|
|
4454
5116
|
version: det.version
|
|
4455
5117
|
});
|
|
4456
|
-
} else if (Object.values(
|
|
5118
|
+
} else if (Object.values(ETransactionVersion32).includes(details.version)) {
|
|
4457
5119
|
const det = details;
|
|
4458
5120
|
msgHash = calculateInvokeTransactionHash2({
|
|
4459
5121
|
...det,
|
|
@@ -4471,7 +5133,7 @@ var EthSigner = class {
|
|
|
4471
5133
|
async signDeployAccountTransaction(details) {
|
|
4472
5134
|
const compiledConstructorCalldata = CallData.compile(details.constructorCalldata);
|
|
4473
5135
|
let msgHash;
|
|
4474
|
-
if (Object.values(
|
|
5136
|
+
if (Object.values(ETransactionVersion22).includes(details.version)) {
|
|
4475
5137
|
const det = details;
|
|
4476
5138
|
msgHash = calculateDeployAccountTransactionHash3({
|
|
4477
5139
|
...det,
|
|
@@ -4479,7 +5141,7 @@ var EthSigner = class {
|
|
|
4479
5141
|
constructorCalldata: compiledConstructorCalldata,
|
|
4480
5142
|
version: det.version
|
|
4481
5143
|
});
|
|
4482
|
-
} else if (Object.values(
|
|
5144
|
+
} else if (Object.values(ETransactionVersion32).includes(details.version)) {
|
|
4483
5145
|
const det = details;
|
|
4484
5146
|
msgHash = calculateDeployAccountTransactionHash3({
|
|
4485
5147
|
...det,
|
|
@@ -4496,13 +5158,13 @@ var EthSigner = class {
|
|
|
4496
5158
|
}
|
|
4497
5159
|
async signDeclareTransaction(details) {
|
|
4498
5160
|
let msgHash;
|
|
4499
|
-
if (Object.values(
|
|
5161
|
+
if (Object.values(ETransactionVersion22).includes(details.version)) {
|
|
4500
5162
|
const det = details;
|
|
4501
5163
|
msgHash = calculateDeclareTransactionHash3({
|
|
4502
5164
|
...det,
|
|
4503
5165
|
version: det.version
|
|
4504
5166
|
});
|
|
4505
|
-
} else if (Object.values(
|
|
5167
|
+
} else if (Object.values(ETransactionVersion32).includes(details.version)) {
|
|
4506
5168
|
const det = details;
|
|
4507
5169
|
msgHash = calculateDeclareTransactionHash3({
|
|
4508
5170
|
...det,
|
|
@@ -5651,7 +6313,9 @@ export {
|
|
|
5651
6313
|
RpcProvider2 as Provider,
|
|
5652
6314
|
ProviderInterface,
|
|
5653
6315
|
api_exports as RPC,
|
|
5654
|
-
|
|
6316
|
+
rpc_0_6_exports as RPC06,
|
|
6317
|
+
rpc_0_7_exports as RPC07,
|
|
6318
|
+
RpcChannel2 as RpcChannel,
|
|
5655
6319
|
RpcProvider2 as RpcProvider,
|
|
5656
6320
|
SIMULATION_FLAG,
|
|
5657
6321
|
Signer,
|