starknet 6.9.0 → 6.10.1

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 (315) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +1 -1
  3. package/README.md +5 -9
  4. package/dist/account/default.cjs +655 -0
  5. package/dist/account/default.d.ts +67 -0
  6. package/dist/account/default.mjs +652 -0
  7. package/dist/account/index.cjs +27 -0
  8. package/dist/account/index.d.ts +2 -0
  9. package/dist/account/index.mjs +2 -0
  10. package/dist/account/interface.cjs +9 -0
  11. package/dist/account/interface.d.ts +301 -0
  12. package/dist/account/interface.mjs +3 -0
  13. package/dist/channel/index.cjs +27 -0
  14. package/dist/channel/index.d.ts +3 -0
  15. package/dist/channel/index.mjs +3 -0
  16. package/dist/channel/rpc_0_6.cjs +607 -0
  17. package/dist/channel/rpc_0_6.d.ts +78 -0
  18. package/dist/channel/rpc_0_6.mjs +543 -0
  19. package/dist/channel/rpc_0_7.cjs +619 -0
  20. package/dist/channel/rpc_0_7.d.ts +81 -0
  21. package/dist/channel/rpc_0_7.mjs +561 -0
  22. package/dist/constants.cjs +76 -0
  23. package/dist/constants.d.ts +70 -0
  24. package/dist/constants.mjs +60 -0
  25. package/dist/contract/contractFactory.cjs +93 -0
  26. package/dist/contract/contractFactory.d.ts +46 -0
  27. package/dist/contract/contractFactory.mjs +83 -0
  28. package/dist/contract/default.cjs +269 -0
  29. package/dist/contract/default.d.ts +58 -0
  30. package/dist/contract/default.mjs +254 -0
  31. package/dist/contract/index.cjs +38 -0
  32. package/dist/contract/index.d.ts +3 -0
  33. package/dist/contract/index.mjs +3 -0
  34. package/dist/contract/interface.cjs +13 -0
  35. package/dist/contract/interface.d.ts +128 -0
  36. package/dist/contract/interface.mjs +6 -0
  37. package/dist/index.cjs +267 -0
  38. package/dist/index.d.ts +45 -5991
  39. package/dist/index.global.js +728 -609
  40. package/dist/index.global.js.map +1 -1
  41. package/dist/index.mjs +39 -7320
  42. package/dist/provider/errors.cjs +50 -0
  43. package/dist/provider/errors.d.ts +16 -0
  44. package/dist/provider/errors.mjs +35 -0
  45. package/dist/provider/extensions/default.cjs +11 -0
  46. package/dist/provider/extensions/default.d.ts +6 -0
  47. package/dist/provider/extensions/default.mjs +5 -0
  48. package/dist/provider/extensions/starknetId.cjs +174 -0
  49. package/dist/provider/extensions/starknetId.d.ts +10 -0
  50. package/dist/provider/extensions/starknetId.mjs +230 -0
  51. package/dist/provider/index.cjs +56 -0
  52. package/dist/provider/index.d.ts +6 -0
  53. package/dist/provider/index.mjs +6 -0
  54. package/dist/provider/interface.cjs +8 -0
  55. package/dist/provider/interface.d.ts +261 -0
  56. package/dist/provider/interface.mjs +2 -0
  57. package/dist/provider/rpc.cjs +301 -0
  58. package/dist/provider/rpc.d.ts +115 -0
  59. package/dist/provider/rpc.mjs +302 -0
  60. package/dist/service/types.cjs +1 -0
  61. package/dist/service/types.d.ts +5 -0
  62. package/dist/service/types.mjs +0 -0
  63. package/dist/signer/default.cjs +105 -0
  64. package/dist/signer/default.d.ts +12 -0
  65. package/dist/signer/default.mjs +102 -0
  66. package/dist/signer/ethSigner.cjs +123 -0
  67. package/dist/signer/ethSigner.d.ts +25 -0
  68. package/dist/signer/ethSigner.mjs +140 -0
  69. package/dist/signer/index.cjs +38 -0
  70. package/dist/signer/index.d.ts +3 -0
  71. package/dist/signer/index.mjs +3 -0
  72. package/dist/signer/interface.cjs +8 -0
  73. package/dist/signer/interface.d.ts +115 -0
  74. package/dist/signer/interface.mjs +2 -0
  75. package/dist/types/account.cjs +1 -0
  76. package/dist/types/account.d.ts +79 -0
  77. package/dist/types/account.mjs +0 -0
  78. package/dist/types/api/index.cjs +30 -0
  79. package/dist/types/api/index.d.ts +4 -0
  80. package/dist/types/api/index.mjs +4 -0
  81. package/dist/types/api/jsonrpc/index.cjs +1 -0
  82. package/dist/types/api/jsonrpc/index.d.ts +21 -0
  83. package/dist/types/api/jsonrpc/index.mjs +0 -0
  84. package/dist/types/api/rpcspec_0_6/components.cjs +1 -0
  85. package/dist/types/api/rpcspec_0_6/components.d.ts +541 -0
  86. package/dist/types/api/rpcspec_0_6/components.mjs +0 -0
  87. package/dist/types/api/rpcspec_0_6/contract.cjs +1 -0
  88. package/dist/types/api/rpcspec_0_6/contract.d.ts +85 -0
  89. package/dist/types/api/rpcspec_0_6/contract.mjs +0 -0
  90. package/dist/types/api/rpcspec_0_6/errors.cjs +1 -0
  91. package/dist/types/api/rpcspec_0_6/errors.d.ts +128 -0
  92. package/dist/types/api/rpcspec_0_6/errors.mjs +0 -0
  93. package/dist/types/api/rpcspec_0_6/index.cjs +45 -0
  94. package/dist/types/api/rpcspec_0_6/index.d.ts +8 -0
  95. package/dist/types/api/rpcspec_0_6/index.mjs +5 -0
  96. package/dist/types/api/rpcspec_0_6/methods.cjs +1 -0
  97. package/dist/types/api/rpcspec_0_6/methods.d.ts +207 -0
  98. package/dist/types/api/rpcspec_0_6/methods.mjs +0 -0
  99. package/dist/types/api/rpcspec_0_6/nonspec.cjs +65 -0
  100. package/dist/types/api/rpcspec_0_6/nonspec.d.ts +147 -0
  101. package/dist/types/api/rpcspec_0_6/nonspec.mjs +59 -0
  102. package/dist/types/cairoEnum.cjs +1 -0
  103. package/dist/types/cairoEnum.d.ts +2 -0
  104. package/dist/types/cairoEnum.mjs +0 -0
  105. package/dist/types/calldata.cjs +27 -0
  106. package/dist/types/calldata.d.ts +23 -0
  107. package/dist/types/calldata.mjs +21 -0
  108. package/dist/types/contract.cjs +1 -0
  109. package/dist/types/contract.d.ts +27 -0
  110. package/dist/types/contract.mjs +0 -0
  111. package/dist/types/helpers/valuesType.cjs +1 -0
  112. package/dist/types/helpers/valuesType.d.ts +1 -0
  113. package/dist/types/helpers/valuesType.mjs +0 -0
  114. package/dist/types/index.cjs +121 -0
  115. package/dist/types/index.d.ts +10 -0
  116. package/dist/types/index.mjs +10 -0
  117. package/dist/types/lib/contract/abi.cjs +1 -0
  118. package/dist/types/lib/contract/abi.d.ts +71 -0
  119. package/dist/types/lib/contract/abi.mjs +0 -0
  120. package/dist/types/lib/contract/index.cjs +50 -0
  121. package/dist/types/lib/contract/index.d.ts +26 -0
  122. package/dist/types/lib/contract/index.mjs +8 -0
  123. package/dist/types/lib/contract/legacy.cjs +1 -0
  124. package/dist/types/lib/contract/legacy.d.ts +33 -0
  125. package/dist/types/lib/contract/legacy.mjs +0 -0
  126. package/dist/types/lib/contract/sierra.cjs +1 -0
  127. package/dist/types/lib/contract/sierra.d.ts +52 -0
  128. package/dist/types/lib/contract/sierra.mjs +0 -0
  129. package/dist/types/lib/index.cjs +61 -0
  130. package/dist/types/lib/index.d.ts +259 -0
  131. package/dist/types/lib/index.mjs +36 -0
  132. package/dist/types/provider/configuration.cjs +1 -0
  133. package/dist/types/provider/configuration.d.ts +20 -0
  134. package/dist/types/provider/configuration.mjs +0 -0
  135. package/dist/types/provider/index.cjs +27 -0
  136. package/dist/types/provider/index.d.ts +2 -0
  137. package/dist/types/provider/index.mjs +2 -0
  138. package/dist/types/provider/response.cjs +30 -0
  139. package/dist/types/provider/response.d.ts +98 -0
  140. package/dist/types/provider/response.mjs +1 -0
  141. package/dist/types/provider/spec.cjs +1 -0
  142. package/dist/types/provider/spec.d.ts +49 -0
  143. package/dist/types/provider/spec.mjs +0 -0
  144. package/dist/types/signer.cjs +1 -0
  145. package/dist/types/signer.d.ts +49 -0
  146. package/dist/types/signer.mjs +0 -0
  147. package/dist/types/transactionReceipt.cjs +1 -0
  148. package/dist/types/transactionReceipt.d.ts +23 -0
  149. package/dist/types/transactionReceipt.mjs +0 -0
  150. package/dist/types/typedData.cjs +12 -0
  151. package/dist/types/typedData.d.ts +1 -0
  152. package/dist/types/typedData.mjs +3 -0
  153. package/dist/utils/address.cjs +44 -0
  154. package/dist/utils/address.d.ts +55 -0
  155. package/dist/utils/address.mjs +35 -0
  156. package/dist/utils/assert.cjs +11 -0
  157. package/dist/utils/assert.d.ts +12 -0
  158. package/dist/utils/assert.mjs +5 -0
  159. package/dist/utils/cairoDataTypes/felt.cjs +31 -0
  160. package/dist/utils/cairoDataTypes/felt.d.ts +6 -0
  161. package/dist/utils/cairoDataTypes/felt.mjs +27 -0
  162. package/dist/utils/cairoDataTypes/uint256.cjs +113 -0
  163. package/dist/utils/cairoDataTypes/uint256.d.ts +72 -0
  164. package/dist/utils/cairoDataTypes/uint256.mjs +103 -0
  165. package/dist/utils/cairoDataTypes/uint512.cjs +125 -0
  166. package/dist/utils/cairoDataTypes/uint512.d.ts +76 -0
  167. package/dist/utils/cairoDataTypes/uint512.mjs +123 -0
  168. package/dist/utils/calldata/byteArray.cjs +27 -0
  169. package/dist/utils/calldata/byteArray.d.ts +32 -0
  170. package/dist/utils/calldata/byteArray.mjs +20 -0
  171. package/dist/utils/calldata/cairo.cjs +114 -0
  172. package/dist/utils/calldata/cairo.d.ts +196 -0
  173. package/dist/utils/calldata/cairo.mjs +68 -0
  174. package/dist/utils/calldata/enum/CairoCustomEnum.cjs +55 -0
  175. package/dist/utils/calldata/enum/CairoCustomEnum.d.ts +38 -0
  176. package/dist/utils/calldata/enum/CairoCustomEnum.mjs +50 -0
  177. package/dist/utils/calldata/enum/CairoOption.cjs +55 -0
  178. package/dist/utils/calldata/enum/CairoOption.d.ts +37 -0
  179. package/dist/utils/calldata/enum/CairoOption.mjs +50 -0
  180. package/dist/utils/calldata/enum/CairoResult.cjs +54 -0
  181. package/dist/utils/calldata/enum/CairoResult.d.ts +36 -0
  182. package/dist/utils/calldata/enum/CairoResult.mjs +47 -0
  183. package/dist/utils/calldata/enum/index.cjs +38 -0
  184. package/dist/utils/calldata/enum/index.d.ts +3 -0
  185. package/dist/utils/calldata/enum/index.mjs +3 -0
  186. package/dist/utils/calldata/formatter.cjs +55 -0
  187. package/dist/utils/calldata/formatter.d.ts +9 -0
  188. package/dist/utils/calldata/formatter.mjs +58 -0
  189. package/dist/utils/calldata/index.cjs +272 -0
  190. package/dist/utils/calldata/index.d.ts +90 -0
  191. package/dist/utils/calldata/index.mjs +276 -0
  192. package/dist/utils/calldata/parser/index.cjs +29 -0
  193. package/dist/utils/calldata/parser/index.d.ts +5 -0
  194. package/dist/utils/calldata/parser/index.mjs +21 -0
  195. package/dist/utils/calldata/parser/interface.cjs +8 -0
  196. package/dist/utils/calldata/parser/interface.d.ts +20 -0
  197. package/dist/utils/calldata/parser/interface.mjs +2 -0
  198. package/dist/utils/calldata/parser/parser-0-1.1.0.cjs +38 -0
  199. package/dist/utils/calldata/parser/parser-0-1.1.0.d.ts +24 -0
  200. package/dist/utils/calldata/parser/parser-0-1.1.0.mjs +31 -0
  201. package/dist/utils/calldata/parser/parser-2.0.0.cjs +42 -0
  202. package/dist/utils/calldata/parser/parser-2.0.0.d.ts +23 -0
  203. package/dist/utils/calldata/parser/parser-2.0.0.mjs +37 -0
  204. package/dist/utils/calldata/propertyOrder.cjs +159 -0
  205. package/dist/utils/calldata/propertyOrder.d.ts +2 -0
  206. package/dist/utils/calldata/propertyOrder.mjs +189 -0
  207. package/dist/utils/calldata/requestParser.cjs +204 -0
  208. package/dist/utils/calldata/requestParser.d.ts +11 -0
  209. package/dist/utils/calldata/requestParser.mjs +231 -0
  210. package/dist/utils/calldata/responseParser.cjs +200 -0
  211. package/dist/utils/calldata/responseParser.d.ts +11 -0
  212. package/dist/utils/calldata/responseParser.mjs +201 -0
  213. package/dist/utils/calldata/tuple.cjs +106 -0
  214. package/dist/utils/calldata/tuple.d.ts +6 -0
  215. package/dist/utils/calldata/tuple.mjs +88 -0
  216. package/dist/utils/calldata/validate.cjs +241 -0
  217. package/dist/utils/calldata/validate.d.ts +6 -0
  218. package/dist/utils/calldata/validate.mjs +315 -0
  219. package/dist/utils/contract.cjs +40 -0
  220. package/dist/utils/contract.d.ts +37 -0
  221. package/dist/utils/contract.mjs +31 -0
  222. package/dist/utils/ec.cjs +12 -0
  223. package/dist/utils/ec.d.ts +2 -0
  224. package/dist/utils/ec.mjs +2 -0
  225. package/dist/utils/encode.cjs +78 -0
  226. package/dist/utils/encode.d.ts +207 -0
  227. package/dist/utils/encode.mjs +56 -0
  228. package/dist/utils/eth.cjs +22 -0
  229. package/dist/utils/eth.d.ts +22 -0
  230. package/dist/utils/eth.mjs +14 -0
  231. package/dist/utils/events/index.cjs +144 -0
  232. package/dist/utils/events/index.d.ts +84 -0
  233. package/dist/utils/events/index.mjs +136 -0
  234. package/dist/utils/fetchPonyfill.cjs +14 -0
  235. package/dist/utils/fetchPonyfill.d.ts +2 -0
  236. package/dist/utils/fetchPonyfill.mjs +5 -0
  237. package/dist/utils/hash/classHash.cjs +151 -0
  238. package/dist/utils/hash/classHash.d.ts +120 -0
  239. package/dist/utils/hash/classHash.mjs +168 -0
  240. package/dist/utils/hash/index.cjs +49 -0
  241. package/dist/utils/hash/index.d.ts +7 -0
  242. package/dist/utils/hash/index.mjs +4 -0
  243. package/dist/utils/hash/selector.cjs +37 -0
  244. package/dist/utils/hash/selector.d.ts +57 -0
  245. package/dist/utils/hash/selector.mjs +28 -0
  246. package/dist/utils/hash/transactionHash/index.cjs +38 -0
  247. package/dist/utils/hash/transactionHash/index.d.ts +81 -0
  248. package/dist/utils/hash/transactionHash/index.mjs +102 -0
  249. package/dist/utils/hash/transactionHash/v2.cjs +31 -0
  250. package/dist/utils/hash/transactionHash/v2.d.ts +34 -0
  251. package/dist/utils/hash/transactionHash/v2.mjs +57 -0
  252. package/dist/utils/hash/transactionHash/v3.cjs +45 -0
  253. package/dist/utils/hash/transactionHash/v3.d.ts +24 -0
  254. package/dist/utils/hash/transactionHash/v3.mjs +80 -0
  255. package/dist/utils/json.cjs +21 -0
  256. package/dist/utils/json.d.ts +50 -0
  257. package/dist/utils/json.mjs +10 -0
  258. package/dist/utils/merkle.cjs +118 -0
  259. package/dist/utils/merkle.d.ts +87 -0
  260. package/dist/utils/merkle.mjs +114 -0
  261. package/dist/utils/num.cjs +109 -0
  262. package/dist/utils/num.d.ts +283 -0
  263. package/dist/utils/num.mjs +86 -0
  264. package/dist/utils/provider.cjs +182 -0
  265. package/dist/utils/provider.d.ts +217 -0
  266. package/dist/utils/provider.mjs +158 -0
  267. package/dist/utils/responseParser/index.cjs +27 -0
  268. package/dist/utils/responseParser/index.d.ts +2 -0
  269. package/dist/utils/responseParser/index.mjs +2 -0
  270. package/dist/utils/responseParser/interface.cjs +8 -0
  271. package/dist/utils/responseParser/interface.d.ts +13 -0
  272. package/dist/utils/responseParser/interface.mjs +2 -0
  273. package/dist/utils/responseParser/rpc.cjs +83 -0
  274. package/dist/utils/responseParser/rpc.d.ts +19 -0
  275. package/dist/utils/responseParser/rpc.mjs +77 -0
  276. package/dist/utils/shortString.cjs +56 -0
  277. package/dist/utils/shortString.d.ts +116 -0
  278. package/dist/utils/shortString.mjs +39 -0
  279. package/dist/utils/stark.cjs +137 -0
  280. package/dist/utils/stark.d.ts +224 -0
  281. package/dist/utils/stark.mjs +109 -0
  282. package/dist/utils/starknetId.cjs +196 -0
  283. package/dist/utils/starknetId.d.ts +182 -0
  284. package/dist/utils/starknetId.mjs +185 -0
  285. package/dist/utils/transaction.cjs +115 -0
  286. package/dist/utils/transaction.d.ts +185 -0
  287. package/dist/utils/transaction.mjs +98 -0
  288. package/dist/utils/transactionReceipt.cjs +54 -0
  289. package/dist/utils/transactionReceipt.d.ts +33 -0
  290. package/dist/utils/transactionReceipt.mjs +49 -0
  291. package/dist/utils/typedData.cjs +285 -0
  292. package/dist/utils/typedData.d.ts +54 -0
  293. package/dist/utils/typedData.mjs +286 -0
  294. package/dist/utils/uint256.cjs +30 -0
  295. package/dist/utils/uint256.d.ts +45 -0
  296. package/dist/utils/uint256.mjs +11 -0
  297. package/dist/utils/url.cjs +35 -0
  298. package/dist/utils/url.d.ts +29 -0
  299. package/dist/utils/url.mjs +27 -0
  300. package/dist/wallet/account.cjs +115 -0
  301. package/dist/wallet/account.d.ts +31 -0
  302. package/dist/wallet/account.mjs +112 -0
  303. package/dist/wallet/connect.cjs +90 -0
  304. package/dist/wallet/connect.d.ts +82 -0
  305. package/dist/wallet/connect.mjs +64 -0
  306. package/dist/wallet/index.cjs +16 -0
  307. package/dist/wallet/index.d.ts +1 -0
  308. package/dist/wallet/index.mjs +1 -0
  309. package/dist/wallet/types.cjs +1 -0
  310. package/dist/wallet/types.d.ts +4 -0
  311. package/dist/wallet/types.mjs +0 -0
  312. package/package.json +13 -13
  313. package/dist/index.js +0 -7426
  314. package/dist/index.js.map +0 -1
  315. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,561 @@
1
+ import { NetworkName } from "../constants.mjs";
2
+ import { LibraryError } from "../provider/errors.mjs";
3
+ import {
4
+ BlockTag,
5
+ TransactionType
6
+ } from "../types/index.mjs";
7
+ import { RPCSPEC07 as RPC } from "../types/api/index.mjs";
8
+ import { CallData } from "../utils/calldata/index.mjs";
9
+ import { isSierra } from "../utils/contract.mjs";
10
+ import { validateAndParseEthAddress } from "../utils/eth.mjs";
11
+ import fetch from "../utils/fetchPonyfill.mjs";
12
+ import { getSelector, getSelectorFromName } from "../utils/hash/index.mjs";
13
+ import { stringify } from "../utils/json.mjs";
14
+ import { getHexStringArray, toHex, toStorageKey } from "../utils/num.mjs";
15
+ import { Block, getDefaultNodeUrl, isV3Tx, isVersion, wait } from "../utils/provider.mjs";
16
+ import { decompressProgram, signatureToHexArray } from "../utils/stark.mjs";
17
+ import { getVersionsByType } from "../utils/transaction.mjs";
18
+ const defaultOptions = {
19
+ headers: { "Content-Type": "application/json" },
20
+ blockIdentifier: BlockTag.PENDING,
21
+ retries: 200
22
+ };
23
+ export class RpcChannel {
24
+ nodeUrl;
25
+ headers;
26
+ retries;
27
+ requestId;
28
+ blockIdentifier;
29
+ chainId;
30
+ specVersion;
31
+ transactionRetryIntervalFallback;
32
+ waitMode;
33
+ // behave like web2 rpc and return when tx is processed
34
+ constructor(optionsOrProvider) {
35
+ const {
36
+ nodeUrl,
37
+ retries,
38
+ headers,
39
+ blockIdentifier,
40
+ chainId,
41
+ specVersion,
42
+ waitMode,
43
+ transactionRetryIntervalFallback
44
+ } = optionsOrProvider || {};
45
+ if (Object.values(NetworkName).includes(nodeUrl)) {
46
+ this.nodeUrl = getDefaultNodeUrl(nodeUrl, optionsOrProvider?.default);
47
+ } else if (nodeUrl) {
48
+ this.nodeUrl = nodeUrl;
49
+ } else {
50
+ this.nodeUrl = getDefaultNodeUrl(void 0, optionsOrProvider?.default);
51
+ }
52
+ this.retries = retries || defaultOptions.retries;
53
+ this.headers = { ...defaultOptions.headers, ...headers };
54
+ this.blockIdentifier = blockIdentifier || defaultOptions.blockIdentifier;
55
+ this.chainId = chainId;
56
+ this.specVersion = specVersion;
57
+ this.waitMode = waitMode || false;
58
+ this.requestId = 0;
59
+ this.transactionRetryIntervalFallback = transactionRetryIntervalFallback;
60
+ }
61
+ get transactionRetryIntervalDefault() {
62
+ return this.transactionRetryIntervalFallback ?? 5e3;
63
+ }
64
+ setChainId(chainId) {
65
+ this.chainId = chainId;
66
+ }
67
+ fetch(method, params, id = 0) {
68
+ const rpcRequestBody = {
69
+ id,
70
+ jsonrpc: "2.0",
71
+ method,
72
+ ...params && { params }
73
+ };
74
+ return fetch(this.nodeUrl, {
75
+ method: "POST",
76
+ body: stringify(rpcRequestBody),
77
+ headers: this.headers
78
+ });
79
+ }
80
+ errorHandler(method, params, rpcError, otherError) {
81
+ if (rpcError) {
82
+ const { code, message, data } = rpcError;
83
+ throw new LibraryError(
84
+ `RPC: ${method} with params ${stringify(params, null, 2)}
85
+
86
+ ${code}: ${message}: ${stringify(data)}`
87
+ );
88
+ }
89
+ if (otherError instanceof LibraryError) {
90
+ throw otherError;
91
+ }
92
+ if (otherError) {
93
+ throw Error(otherError.message);
94
+ }
95
+ }
96
+ async fetchEndpoint(method, params) {
97
+ try {
98
+ const rawResult = await this.fetch(method, params, this.requestId += 1);
99
+ const { error, result } = await rawResult.json();
100
+ this.errorHandler(method, params, error);
101
+ return result;
102
+ } catch (error) {
103
+ this.errorHandler(method, params, error?.response?.data, error);
104
+ throw error;
105
+ }
106
+ }
107
+ async getChainId() {
108
+ this.chainId ??= await this.fetchEndpoint("starknet_chainId");
109
+ return this.chainId;
110
+ }
111
+ async getSpecVersion() {
112
+ this.specVersion ??= await this.fetchEndpoint("starknet_specVersion");
113
+ return this.specVersion;
114
+ }
115
+ getNonceForAddress(contractAddress, blockIdentifier = this.blockIdentifier) {
116
+ const contract_address = toHex(contractAddress);
117
+ const block_id = new Block(blockIdentifier).identifier;
118
+ return this.fetchEndpoint("starknet_getNonce", {
119
+ contract_address,
120
+ block_id
121
+ });
122
+ }
123
+ /**
124
+ * Get the most recent accepted block hash and number
125
+ */
126
+ getBlockLatestAccepted() {
127
+ return this.fetchEndpoint("starknet_blockHashAndNumber");
128
+ }
129
+ /**
130
+ * Get the most recent accepted block number
131
+ * redundant use getBlockLatestAccepted();
132
+ * @returns Number of the latest block
133
+ */
134
+ getBlockNumber() {
135
+ return this.fetchEndpoint("starknet_blockNumber");
136
+ }
137
+ getBlockWithTxHashes(blockIdentifier = this.blockIdentifier) {
138
+ const block_id = new Block(blockIdentifier).identifier;
139
+ return this.fetchEndpoint("starknet_getBlockWithTxHashes", { block_id });
140
+ }
141
+ getBlockWithTxs(blockIdentifier = this.blockIdentifier) {
142
+ const block_id = new Block(blockIdentifier).identifier;
143
+ return this.fetchEndpoint("starknet_getBlockWithTxs", { block_id });
144
+ }
145
+ getBlockWithReceipts(blockIdentifier = this.blockIdentifier) {
146
+ const block_id = new Block(blockIdentifier).identifier;
147
+ return this.fetchEndpoint("starknet_getBlockWithReceipts", { block_id });
148
+ }
149
+ getBlockStateUpdate(blockIdentifier = this.blockIdentifier) {
150
+ const block_id = new Block(blockIdentifier).identifier;
151
+ return this.fetchEndpoint("starknet_getStateUpdate", { block_id });
152
+ }
153
+ getBlockTransactionsTraces(blockIdentifier = this.blockIdentifier) {
154
+ const block_id = new Block(blockIdentifier).identifier;
155
+ return this.fetchEndpoint("starknet_traceBlockTransactions", { block_id });
156
+ }
157
+ getBlockTransactionCount(blockIdentifier = this.blockIdentifier) {
158
+ const block_id = new Block(blockIdentifier).identifier;
159
+ return this.fetchEndpoint("starknet_getBlockTransactionCount", { block_id });
160
+ }
161
+ getTransactionByHash(txHash) {
162
+ const transaction_hash = toHex(txHash);
163
+ return this.fetchEndpoint("starknet_getTransactionByHash", {
164
+ transaction_hash
165
+ });
166
+ }
167
+ getTransactionByBlockIdAndIndex(blockIdentifier, index) {
168
+ const block_id = new Block(blockIdentifier).identifier;
169
+ return this.fetchEndpoint("starknet_getTransactionByBlockIdAndIndex", { block_id, index });
170
+ }
171
+ getTransactionReceipt(txHash) {
172
+ const transaction_hash = toHex(txHash);
173
+ return this.fetchEndpoint("starknet_getTransactionReceipt", { transaction_hash });
174
+ }
175
+ getTransactionTrace(txHash) {
176
+ const transaction_hash = toHex(txHash);
177
+ return this.fetchEndpoint("starknet_traceTransaction", { transaction_hash });
178
+ }
179
+ /**
180
+ * Get the status of a transaction
181
+ */
182
+ getTransactionStatus(transactionHash) {
183
+ const transaction_hash = toHex(transactionHash);
184
+ return this.fetchEndpoint("starknet_getTransactionStatus", { transaction_hash });
185
+ }
186
+ /**
187
+ * @param invocations AccountInvocations
188
+ * @param simulateTransactionOptions blockIdentifier and flags to skip validation and fee charge<br/>
189
+ * - blockIdentifier<br/>
190
+ * - skipValidate (default false)<br/>
191
+ * - skipFeeCharge (default true)<br/>
192
+ */
193
+ simulateTransaction(invocations, simulateTransactionOptions = {}) {
194
+ const {
195
+ blockIdentifier = this.blockIdentifier,
196
+ skipValidate = true,
197
+ skipFeeCharge = true
198
+ } = simulateTransactionOptions;
199
+ const block_id = new Block(blockIdentifier).identifier;
200
+ const simulationFlags = [];
201
+ if (skipValidate) simulationFlags.push(RPC.ESimulationFlag.SKIP_VALIDATE);
202
+ if (skipFeeCharge) simulationFlags.push(RPC.ESimulationFlag.SKIP_FEE_CHARGE);
203
+ return this.fetchEndpoint("starknet_simulateTransactions", {
204
+ block_id,
205
+ transactions: invocations.map((it) => this.buildTransaction(it)),
206
+ simulation_flags: simulationFlags
207
+ });
208
+ }
209
+ async waitForTransaction(txHash, options) {
210
+ const transactionHash = toHex(txHash);
211
+ let { retries } = this;
212
+ let onchain = false;
213
+ let isErrorState = false;
214
+ const retryInterval = options?.retryInterval ?? this.transactionRetryIntervalDefault;
215
+ const errorStates = options?.errorStates ?? [
216
+ RPC.ETransactionStatus.REJECTED
217
+ // TODO: commented out to preserve the long-standing behavior of "reverted" not being treated as an error by default
218
+ // should decide which behavior to keep in the future
219
+ // RPC.ETransactionExecutionStatus.REVERTED,
220
+ ];
221
+ const successStates = options?.successStates ?? [
222
+ RPC.ETransactionExecutionStatus.SUCCEEDED,
223
+ RPC.ETransactionStatus.ACCEPTED_ON_L2,
224
+ RPC.ETransactionStatus.ACCEPTED_ON_L1
225
+ ];
226
+ let txStatus;
227
+ while (!onchain) {
228
+ await wait(retryInterval);
229
+ try {
230
+ txStatus = await this.getTransactionStatus(transactionHash);
231
+ const executionStatus = txStatus.execution_status;
232
+ const finalityStatus = txStatus.finality_status;
233
+ if (!finalityStatus) {
234
+ const error = new Error("waiting for transaction status");
235
+ throw error;
236
+ }
237
+ if (errorStates.includes(executionStatus) || errorStates.includes(finalityStatus)) {
238
+ const message = `${executionStatus}: ${finalityStatus}`;
239
+ const error = new Error(message);
240
+ error.response = txStatus;
241
+ isErrorState = true;
242
+ throw error;
243
+ } else if (successStates.includes(executionStatus) || successStates.includes(finalityStatus)) {
244
+ onchain = true;
245
+ }
246
+ } catch (error) {
247
+ if (error instanceof Error && isErrorState) {
248
+ throw error;
249
+ }
250
+ if (retries <= 0) {
251
+ throw new Error(`waitForTransaction timed-out with retries ${this.retries}`);
252
+ }
253
+ }
254
+ retries -= 1;
255
+ }
256
+ let txReceipt = null;
257
+ while (txReceipt === null) {
258
+ try {
259
+ txReceipt = await this.getTransactionReceipt(transactionHash);
260
+ } catch (error) {
261
+ if (retries <= 0) {
262
+ throw new Error(`waitForTransaction timed-out with retries ${this.retries}`);
263
+ }
264
+ }
265
+ retries -= 1;
266
+ await wait(retryInterval);
267
+ }
268
+ return txReceipt;
269
+ }
270
+ getStorageAt(contractAddress, key, blockIdentifier = this.blockIdentifier) {
271
+ const contract_address = toHex(contractAddress);
272
+ const parsedKey = toStorageKey(key);
273
+ const block_id = new Block(blockIdentifier).identifier;
274
+ return this.fetchEndpoint("starknet_getStorageAt", {
275
+ contract_address,
276
+ key: parsedKey,
277
+ block_id
278
+ });
279
+ }
280
+ getClassHashAt(contractAddress, blockIdentifier = this.blockIdentifier) {
281
+ const contract_address = toHex(contractAddress);
282
+ const block_id = new Block(blockIdentifier).identifier;
283
+ return this.fetchEndpoint("starknet_getClassHashAt", {
284
+ block_id,
285
+ contract_address
286
+ });
287
+ }
288
+ getClass(classHash, blockIdentifier = this.blockIdentifier) {
289
+ const class_hash = toHex(classHash);
290
+ const block_id = new Block(blockIdentifier).identifier;
291
+ return this.fetchEndpoint("starknet_getClass", {
292
+ class_hash,
293
+ block_id
294
+ });
295
+ }
296
+ getClassAt(contractAddress, blockIdentifier = this.blockIdentifier) {
297
+ const contract_address = toHex(contractAddress);
298
+ const block_id = new Block(blockIdentifier).identifier;
299
+ return this.fetchEndpoint("starknet_getClassAt", {
300
+ block_id,
301
+ contract_address
302
+ });
303
+ }
304
+ async getEstimateFee(invocations, { blockIdentifier = this.blockIdentifier, skipValidate = true }) {
305
+ const block_id = new Block(blockIdentifier).identifier;
306
+ let flags = {};
307
+ if (!isVersion("0.5", await this.getSpecVersion())) {
308
+ flags = {
309
+ simulation_flags: skipValidate ? [RPC.ESimulationFlag.SKIP_VALIDATE] : []
310
+ };
311
+ }
312
+ return this.fetchEndpoint("starknet_estimateFee", {
313
+ request: invocations.map((it) => this.buildTransaction(it, "fee")),
314
+ block_id,
315
+ ...flags
316
+ });
317
+ }
318
+ async invoke(functionInvocation, details) {
319
+ let promise;
320
+ if (!isV3Tx(details)) {
321
+ promise = this.fetchEndpoint("starknet_addInvokeTransaction", {
322
+ invoke_transaction: {
323
+ sender_address: functionInvocation.contractAddress,
324
+ calldata: CallData.toHex(functionInvocation.calldata),
325
+ type: RPC.ETransactionType.INVOKE,
326
+ max_fee: toHex(details.maxFee || 0),
327
+ version: RPC.ETransactionVersion.V1,
328
+ signature: signatureToHexArray(functionInvocation.signature),
329
+ nonce: toHex(details.nonce)
330
+ }
331
+ });
332
+ } else {
333
+ promise = this.fetchEndpoint("starknet_addInvokeTransaction", {
334
+ invoke_transaction: {
335
+ type: RPC.ETransactionType.INVOKE,
336
+ sender_address: functionInvocation.contractAddress,
337
+ calldata: CallData.toHex(functionInvocation.calldata),
338
+ version: RPC.ETransactionVersion.V3,
339
+ signature: signatureToHexArray(functionInvocation.signature),
340
+ nonce: toHex(details.nonce),
341
+ resource_bounds: details.resourceBounds,
342
+ tip: toHex(details.tip),
343
+ paymaster_data: details.paymasterData.map((it) => toHex(it)),
344
+ account_deployment_data: details.accountDeploymentData.map((it) => toHex(it)),
345
+ nonce_data_availability_mode: details.nonceDataAvailabilityMode,
346
+ fee_data_availability_mode: details.feeDataAvailabilityMode
347
+ }
348
+ });
349
+ }
350
+ return this.waitMode ? this.waitForTransaction((await promise).transaction_hash) : promise;
351
+ }
352
+ async declare({ contract, signature, senderAddress, compiledClassHash }, details) {
353
+ let promise;
354
+ if (!isSierra(contract) && !isV3Tx(details)) {
355
+ promise = this.fetchEndpoint("starknet_addDeclareTransaction", {
356
+ declare_transaction: {
357
+ type: RPC.ETransactionType.DECLARE,
358
+ contract_class: {
359
+ program: contract.program,
360
+ entry_points_by_type: contract.entry_points_by_type,
361
+ abi: contract.abi
362
+ },
363
+ version: RPC.ETransactionVersion.V1,
364
+ max_fee: toHex(details.maxFee || 0),
365
+ signature: signatureToHexArray(signature),
366
+ sender_address: senderAddress,
367
+ nonce: toHex(details.nonce)
368
+ }
369
+ });
370
+ } else if (isSierra(contract) && !isV3Tx(details)) {
371
+ promise = this.fetchEndpoint("starknet_addDeclareTransaction", {
372
+ declare_transaction: {
373
+ type: RPC.ETransactionType.DECLARE,
374
+ contract_class: {
375
+ sierra_program: decompressProgram(contract.sierra_program),
376
+ contract_class_version: contract.contract_class_version,
377
+ entry_points_by_type: contract.entry_points_by_type,
378
+ abi: contract.abi
379
+ },
380
+ compiled_class_hash: compiledClassHash || "",
381
+ version: RPC.ETransactionVersion.V2,
382
+ max_fee: toHex(details.maxFee || 0),
383
+ signature: signatureToHexArray(signature),
384
+ sender_address: senderAddress,
385
+ nonce: toHex(details.nonce)
386
+ }
387
+ });
388
+ } else if (isSierra(contract) && isV3Tx(details)) {
389
+ promise = this.fetchEndpoint("starknet_addDeclareTransaction", {
390
+ declare_transaction: {
391
+ type: RPC.ETransactionType.DECLARE,
392
+ sender_address: senderAddress,
393
+ compiled_class_hash: compiledClassHash || "",
394
+ version: RPC.ETransactionVersion.V3,
395
+ signature: signatureToHexArray(signature),
396
+ nonce: toHex(details.nonce),
397
+ contract_class: {
398
+ sierra_program: decompressProgram(contract.sierra_program),
399
+ contract_class_version: contract.contract_class_version,
400
+ entry_points_by_type: contract.entry_points_by_type,
401
+ abi: contract.abi
402
+ },
403
+ resource_bounds: details.resourceBounds,
404
+ tip: toHex(details.tip),
405
+ paymaster_data: details.paymasterData.map((it) => toHex(it)),
406
+ account_deployment_data: details.accountDeploymentData.map((it) => toHex(it)),
407
+ nonce_data_availability_mode: details.nonceDataAvailabilityMode,
408
+ fee_data_availability_mode: details.feeDataAvailabilityMode
409
+ }
410
+ });
411
+ } else {
412
+ throw Error("declare unspotted parameters");
413
+ }
414
+ return this.waitMode ? this.waitForTransaction((await promise).transaction_hash) : promise;
415
+ }
416
+ async deployAccount({ classHash, constructorCalldata, addressSalt, signature }, details) {
417
+ let promise;
418
+ if (!isV3Tx(details)) {
419
+ promise = this.fetchEndpoint("starknet_addDeployAccountTransaction", {
420
+ deploy_account_transaction: {
421
+ constructor_calldata: CallData.toHex(constructorCalldata || []),
422
+ class_hash: toHex(classHash),
423
+ contract_address_salt: toHex(addressSalt || 0),
424
+ type: RPC.ETransactionType.DEPLOY_ACCOUNT,
425
+ max_fee: toHex(details.maxFee || 0),
426
+ version: RPC.ETransactionVersion.V1,
427
+ signature: signatureToHexArray(signature),
428
+ nonce: toHex(details.nonce)
429
+ }
430
+ });
431
+ } else {
432
+ promise = this.fetchEndpoint("starknet_addDeployAccountTransaction", {
433
+ deploy_account_transaction: {
434
+ type: RPC.ETransactionType.DEPLOY_ACCOUNT,
435
+ version: RPC.ETransactionVersion.V3,
436
+ signature: signatureToHexArray(signature),
437
+ nonce: toHex(details.nonce),
438
+ contract_address_salt: toHex(addressSalt || 0),
439
+ constructor_calldata: CallData.toHex(constructorCalldata || []),
440
+ class_hash: toHex(classHash),
441
+ resource_bounds: details.resourceBounds,
442
+ tip: toHex(details.tip),
443
+ paymaster_data: details.paymasterData.map((it) => toHex(it)),
444
+ nonce_data_availability_mode: details.nonceDataAvailabilityMode,
445
+ fee_data_availability_mode: details.feeDataAvailabilityMode
446
+ }
447
+ });
448
+ }
449
+ return this.waitMode ? this.waitForTransaction((await promise).transaction_hash) : promise;
450
+ }
451
+ callContract(call, blockIdentifier = this.blockIdentifier) {
452
+ const block_id = new Block(blockIdentifier).identifier;
453
+ return this.fetchEndpoint("starknet_call", {
454
+ request: {
455
+ contract_address: call.contractAddress,
456
+ entry_point_selector: getSelectorFromName(call.entrypoint),
457
+ calldata: CallData.toHex(call.calldata)
458
+ },
459
+ block_id
460
+ });
461
+ }
462
+ /**
463
+ * NEW: Estimate the fee for a message from L1
464
+ * @param message Message From L1
465
+ */
466
+ estimateMessageFee(message, blockIdentifier = this.blockIdentifier) {
467
+ const { from_address, to_address, entry_point_selector, payload } = message;
468
+ const formattedMessage = {
469
+ from_address: validateAndParseEthAddress(from_address),
470
+ to_address: toHex(to_address),
471
+ entry_point_selector: getSelector(entry_point_selector),
472
+ payload: getHexStringArray(payload)
473
+ };
474
+ const block_id = new Block(blockIdentifier).identifier;
475
+ return this.fetchEndpoint("starknet_estimateMessageFee", {
476
+ message: formattedMessage,
477
+ block_id
478
+ });
479
+ }
480
+ /**
481
+ * Returns an object about the sync status, or false if the node is not synching
482
+ * @returns Object with the stats data
483
+ */
484
+ getSyncingStats() {
485
+ return this.fetchEndpoint("starknet_syncing");
486
+ }
487
+ /**
488
+ * Returns all events matching the given filter
489
+ * @returns events and the pagination of the events
490
+ */
491
+ getEvents(eventFilter) {
492
+ return this.fetchEndpoint("starknet_getEvents", { filter: eventFilter });
493
+ }
494
+ buildTransaction(invocation, versionType) {
495
+ const defaultVersions = getVersionsByType(versionType);
496
+ let details;
497
+ if (!isV3Tx(invocation)) {
498
+ details = {
499
+ signature: signatureToHexArray(invocation.signature),
500
+ nonce: toHex(invocation.nonce),
501
+ max_fee: toHex(invocation.maxFee || 0)
502
+ };
503
+ } else {
504
+ details = {
505
+ signature: signatureToHexArray(invocation.signature),
506
+ nonce: toHex(invocation.nonce),
507
+ resource_bounds: invocation.resourceBounds,
508
+ tip: toHex(invocation.tip),
509
+ paymaster_data: invocation.paymasterData.map((it) => toHex(it)),
510
+ nonce_data_availability_mode: invocation.nonceDataAvailabilityMode,
511
+ fee_data_availability_mode: invocation.feeDataAvailabilityMode,
512
+ account_deployment_data: invocation.accountDeploymentData.map((it) => toHex(it))
513
+ };
514
+ }
515
+ if (invocation.type === TransactionType.INVOKE) {
516
+ return {
517
+ // v0 v1 v3
518
+ type: RPC.ETransactionType.INVOKE,
519
+ sender_address: invocation.contractAddress,
520
+ calldata: CallData.toHex(invocation.calldata),
521
+ version: toHex(invocation.version || defaultVersions.v3),
522
+ ...details
523
+ };
524
+ }
525
+ if (invocation.type === TransactionType.DECLARE) {
526
+ if (!isSierra(invocation.contract)) {
527
+ return {
528
+ type: invocation.type,
529
+ contract_class: invocation.contract,
530
+ sender_address: invocation.senderAddress,
531
+ version: toHex(invocation.version || defaultVersions.v1),
532
+ ...details
533
+ };
534
+ }
535
+ return {
536
+ // Cairo 1 - v2 v3
537
+ type: invocation.type,
538
+ contract_class: {
539
+ ...invocation.contract,
540
+ sierra_program: decompressProgram(invocation.contract.sierra_program)
541
+ },
542
+ compiled_class_hash: invocation.compiledClassHash || "",
543
+ sender_address: invocation.senderAddress,
544
+ version: toHex(invocation.version || defaultVersions.v3),
545
+ ...details
546
+ };
547
+ }
548
+ if (invocation.type === TransactionType.DEPLOY_ACCOUNT) {
549
+ const { account_deployment_data, ...restDetails } = details;
550
+ return {
551
+ type: invocation.type,
552
+ constructor_calldata: CallData.toHex(invocation.constructorCalldata || []),
553
+ class_hash: toHex(invocation.classHash),
554
+ contract_address_salt: toHex(invocation.addressSalt || 0),
555
+ version: toHex(invocation.version || defaultVersions.v3),
556
+ ...restDetails
557
+ };
558
+ }
559
+ throw Error("RPC buildTransaction received unknown TransactionType");
560
+ }
561
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FeeMarginPercentage = exports.BaseUrl = exports.API_VERSION = exports.ADDR_BOUND = void 0;
7
+ Object.defineProperty(exports, "IS_BROWSER", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _encode.IS_BROWSER;
11
+ }
12
+ });
13
+ exports.TEXT_TO_FELT_MAX_LEN = exports.StarknetChainId = exports.RPC_NODES = exports.RPC_DEFAULT_VERSION = exports.RANGE_U128 = exports.RANGE_I128 = exports.RANGE_FELT = exports.PRIME = exports.NetworkName = exports.MAX_STORAGE_ITEM_SIZE = exports.MASK_250 = void 0;
14
+ Object.defineProperty(exports, "TRANSACTION_VERSION", {
15
+ enumerable: true,
16
+ get: function () {
17
+ return _api.ETransactionVersion;
18
+ }
19
+ });
20
+ exports.ZERO = exports.UDC = exports.TransactionHashPrefix = void 0;
21
+ var _api = require("./types/api/index.cjs");
22
+ var _encode = require("./utils/encode.cjs");
23
+ const TEXT_TO_FELT_MAX_LEN = exports.TEXT_TO_FELT_MAX_LEN = 31;
24
+ const ZERO = exports.ZERO = 0n;
25
+ const MASK_250 = exports.MASK_250 = 2n ** 250n - 1n;
26
+ const API_VERSION = exports.API_VERSION = ZERO;
27
+ const PRIME = exports.PRIME = 2n ** 251n + 17n * 2n ** 192n + 1n;
28
+ const MAX_STORAGE_ITEM_SIZE = exports.MAX_STORAGE_ITEM_SIZE = 256n;
29
+ const ADDR_BOUND = exports.ADDR_BOUND = 2n ** 251n - MAX_STORAGE_ITEM_SIZE;
30
+ const range = (min, max) => ({
31
+ min,
32
+ max
33
+ });
34
+ const RANGE_FELT = exports.RANGE_FELT = range(ZERO, PRIME - 1n);
35
+ const RANGE_I128 = exports.RANGE_I128 = range(-(2n ** 127n), 2n ** 127n - 1n);
36
+ const RANGE_U128 = exports.RANGE_U128 = range(ZERO, 2n ** 128n - 1n);
37
+ const BaseUrl = exports.BaseUrl = {
38
+ SN_MAIN: "https://alpha-mainnet.starknet.io",
39
+ SN_SEPOLIA: "https://alpha-sepolia.starknet.io"
40
+ };
41
+ const NetworkName = exports.NetworkName = {
42
+ SN_MAIN: "SN_MAIN",
43
+ SN_SEPOLIA: "SN_SEPOLIA"
44
+ };
45
+ const StarknetChainId = exports.StarknetChainId = {
46
+ SN_MAIN: "0x534e5f4d41494e",
47
+ // encodeShortString('SN_MAIN'),
48
+ SN_SEPOLIA: "0x534e5f5345504f4c4941"
49
+ // encodeShortString('SN_SEPOLIA')
50
+ };
51
+ const TransactionHashPrefix = exports.TransactionHashPrefix = {
52
+ DECLARE: "0x6465636c617265",
53
+ // encodeShortString('declare'),
54
+ DEPLOY: "0x6465706c6f79",
55
+ // encodeShortString('deploy'),
56
+ DEPLOY_ACCOUNT: "0x6465706c6f795f6163636f756e74",
57
+ // encodeShortString('deploy_account'),
58
+ INVOKE: "0x696e766f6b65",
59
+ // encodeShortString('invoke'),
60
+ L1_HANDLER: "0x6c315f68616e646c6572"
61
+ // encodeShortString('l1_handler'),
62
+ };
63
+ const FeeMarginPercentage = exports.FeeMarginPercentage = {
64
+ L1_BOUND_MAX_AMOUNT: 50,
65
+ L1_BOUND_MAX_PRICE_PER_UNIT: 50,
66
+ MAX_FEE: 50
67
+ };
68
+ const UDC = exports.UDC = {
69
+ ADDRESS: "0x041a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf",
70
+ ENTRYPOINT: "deployContract"
71
+ };
72
+ const RPC_DEFAULT_VERSION = exports.RPC_DEFAULT_VERSION = "v0_7";
73
+ const RPC_NODES = exports.RPC_NODES = {
74
+ SN_MAIN: [`https://starknet-mainnet.public.blastapi.io/rpc/${RPC_DEFAULT_VERSION}`, `https://free-rpc.nethermind.io/mainnet-juno/${RPC_DEFAULT_VERSION}`],
75
+ SN_SEPOLIA: [`https://starknet-sepolia.public.blastapi.io/rpc/${RPC_DEFAULT_VERSION}`, `https://free-rpc.nethermind.io/sepolia-juno/${RPC_DEFAULT_VERSION}`]
76
+ };