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,21 @@
1
+ import { isCairo1Abi } from "../cairo.mjs";
2
+ import { AbiParser1 } from "./parser-0-1.1.0.mjs";
3
+ import { AbiParser2 } from "./parser-2.0.0.mjs";
4
+ export function createAbiParser(abi) {
5
+ const version = getAbiVersion(abi);
6
+ if (version === 0 || version === 1) {
7
+ return new AbiParser1(abi);
8
+ }
9
+ if (version === 2) {
10
+ return new AbiParser2(abi);
11
+ }
12
+ throw Error(`Unsupported ABI version ${version}`);
13
+ }
14
+ export function getAbiVersion(abi) {
15
+ if (abi.find((it) => it.type === "interface")) return 2;
16
+ if (isCairo1Abi(abi)) return 1;
17
+ return 0;
18
+ }
19
+ export function isNoConstructorValid(method, argsCalldata, abiMethod) {
20
+ return method === "constructor" && !abiMethod && !argsCalldata.length;
21
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AbiParserInterface = void 0;
7
+ class AbiParserInterface {}
8
+ exports.AbiParserInterface = AbiParserInterface;
@@ -0,0 +1,20 @@
1
+ import { Abi, FunctionAbi } from '../../../types';
2
+ export declare abstract class AbiParserInterface {
3
+ /**
4
+ * Helper to calculate inputs length from abi
5
+ * @param abiMethod FunctionAbi
6
+ * @return number
7
+ */
8
+ abstract methodInputsLength(abiMethod: FunctionAbi): number;
9
+ /**
10
+ *
11
+ * @param name string
12
+ * @return FunctionAbi | undefined
13
+ */
14
+ abstract getMethod(name: string): FunctionAbi | undefined;
15
+ /**
16
+ * Return Abi in legacy format
17
+ * @return Abi
18
+ */
19
+ abstract getLegacyFormat(): Abi;
20
+ }
@@ -0,0 +1,2 @@
1
+ export class AbiParserInterface {
2
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AbiParser1 = void 0;
7
+ var _cairo = require("../cairo.cjs");
8
+ class AbiParser1 {
9
+ abi;
10
+ constructor(abi) {
11
+ this.abi = abi;
12
+ }
13
+ /**
14
+ * abi method inputs length without '_len' inputs
15
+ * cairo 0 reducer
16
+ * @param abiMethod FunctionAbi
17
+ * @returns number
18
+ */
19
+ methodInputsLength(abiMethod) {
20
+ return abiMethod.inputs.reduce((acc, input) => !(0, _cairo.isLen)(input.name) ? acc + 1 : acc, 0);
21
+ }
22
+ /**
23
+ * get method definition from abi
24
+ * @param name string
25
+ * @returns FunctionAbi | undefined
26
+ */
27
+ getMethod(name) {
28
+ return this.abi.find(it => it.name === name);
29
+ }
30
+ /**
31
+ * Get Abi in legacy format
32
+ * @returns Abi
33
+ */
34
+ getLegacyFormat() {
35
+ return this.abi;
36
+ }
37
+ }
38
+ exports.AbiParser1 = AbiParser1;
@@ -0,0 +1,24 @@
1
+ import { Abi, FunctionAbi } from '../../../types';
2
+ import { AbiParserInterface } from './interface';
3
+ export declare class AbiParser1 implements AbiParserInterface {
4
+ abi: Abi;
5
+ constructor(abi: Abi);
6
+ /**
7
+ * abi method inputs length without '_len' inputs
8
+ * cairo 0 reducer
9
+ * @param abiMethod FunctionAbi
10
+ * @returns number
11
+ */
12
+ methodInputsLength(abiMethod: FunctionAbi): number;
13
+ /**
14
+ * get method definition from abi
15
+ * @param name string
16
+ * @returns FunctionAbi | undefined
17
+ */
18
+ getMethod(name: string): FunctionAbi | undefined;
19
+ /**
20
+ * Get Abi in legacy format
21
+ * @returns Abi
22
+ */
23
+ getLegacyFormat(): Abi;
24
+ }
@@ -0,0 +1,31 @@
1
+ import { isLen } from "../cairo.mjs";
2
+ export class AbiParser1 {
3
+ abi;
4
+ constructor(abi) {
5
+ this.abi = abi;
6
+ }
7
+ /**
8
+ * abi method inputs length without '_len' inputs
9
+ * cairo 0 reducer
10
+ * @param abiMethod FunctionAbi
11
+ * @returns number
12
+ */
13
+ methodInputsLength(abiMethod) {
14
+ return abiMethod.inputs.reduce((acc, input) => !isLen(input.name) ? acc + 1 : acc, 0);
15
+ }
16
+ /**
17
+ * get method definition from abi
18
+ * @param name string
19
+ * @returns FunctionAbi | undefined
20
+ */
21
+ getMethod(name) {
22
+ return this.abi.find((it) => it.name === name);
23
+ }
24
+ /**
25
+ * Get Abi in legacy format
26
+ * @returns Abi
27
+ */
28
+ getLegacyFormat() {
29
+ return this.abi;
30
+ }
31
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AbiParser2 = void 0;
7
+ class AbiParser2 {
8
+ abi;
9
+ constructor(abi) {
10
+ this.abi = abi;
11
+ }
12
+ /**
13
+ * abi method inputs length
14
+ * @param abiMethod FunctionAbi
15
+ * @returns number
16
+ */
17
+ methodInputsLength(abiMethod) {
18
+ return abiMethod.inputs.length;
19
+ }
20
+ /**
21
+ * get method definition from abi
22
+ * @param name string
23
+ * @returns FunctionAbi | undefined
24
+ */
25
+ getMethod(name) {
26
+ const intf = this.abi.find(it => it.type === "interface");
27
+ return intf.items.find(it => it.name === name);
28
+ }
29
+ /**
30
+ * Get Abi in legacy format
31
+ * @returns Abi
32
+ */
33
+ getLegacyFormat() {
34
+ return this.abi.flatMap(e => {
35
+ if (e.type === "interface") {
36
+ return e.items;
37
+ }
38
+ return e;
39
+ });
40
+ }
41
+ }
42
+ exports.AbiParser2 = AbiParser2;
@@ -0,0 +1,23 @@
1
+ import { Abi, FunctionAbi } from '../../../types';
2
+ import { AbiParserInterface } from './interface';
3
+ export declare class AbiParser2 implements AbiParserInterface {
4
+ abi: Abi;
5
+ constructor(abi: Abi);
6
+ /**
7
+ * abi method inputs length
8
+ * @param abiMethod FunctionAbi
9
+ * @returns number
10
+ */
11
+ methodInputsLength(abiMethod: FunctionAbi): number;
12
+ /**
13
+ * get method definition from abi
14
+ * @param name string
15
+ * @returns FunctionAbi | undefined
16
+ */
17
+ getMethod(name: string): FunctionAbi | undefined;
18
+ /**
19
+ * Get Abi in legacy format
20
+ * @returns Abi
21
+ */
22
+ getLegacyFormat(): Abi;
23
+ }
@@ -0,0 +1,37 @@
1
+ export class AbiParser2 {
2
+ abi;
3
+ constructor(abi) {
4
+ this.abi = abi;
5
+ }
6
+ /**
7
+ * abi method inputs length
8
+ * @param abiMethod FunctionAbi
9
+ * @returns number
10
+ */
11
+ methodInputsLength(abiMethod) {
12
+ return abiMethod.inputs.length;
13
+ }
14
+ /**
15
+ * get method definition from abi
16
+ * @param name string
17
+ * @returns FunctionAbi | undefined
18
+ */
19
+ getMethod(name) {
20
+ const intf = this.abi.find(
21
+ (it) => it.type === "interface"
22
+ );
23
+ return intf.items.find((it) => it.name === name);
24
+ }
25
+ /**
26
+ * Get Abi in legacy format
27
+ * @returns Abi
28
+ */
29
+ getLegacyFormat() {
30
+ return this.abi.flatMap((e) => {
31
+ if (e.type === "interface") {
32
+ return e.items;
33
+ }
34
+ return e;
35
+ });
36
+ }
37
+ }
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ module.exports = orderPropsByAbi;
7
+ var _uint = require("../cairoDataTypes/uint256.cjs");
8
+ var _uint2 = require("../cairoDataTypes/uint512.cjs");
9
+ var _cairo = require("./cairo.cjs");
10
+ var _enum = require("./enum/index.cjs");
11
+ var _tuple = _interopRequireDefault(require("./tuple.cjs"));
12
+ var _shortString = require("../shortString.cjs");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ function errorU256(key) {
15
+ return Error(`Your object includes the property : ${key}, containing an Uint256 object without the 'low' and 'high' keys.`);
16
+ }
17
+ function errorU512(key) {
18
+ return Error(`Your object includes the property : ${key}, containing an Uint512 object without the 'limb0' to 'limb3' keys.`);
19
+ }
20
+ function orderPropsByAbi(unorderedObject, abiOfObject, structs, enums) {
21
+ const orderInput = (unorderedItem, abiType) => {
22
+ if ((0, _cairo.isTypeArray)(abiType)) {
23
+ return orderArray(unorderedItem, abiType);
24
+ }
25
+ if ((0, _cairo.isTypeEnum)(abiType, enums)) {
26
+ const abiObj = enums[abiType];
27
+ return orderEnum(unorderedItem, abiObj);
28
+ }
29
+ if ((0, _cairo.isTypeTuple)(abiType)) {
30
+ return orderTuple(unorderedItem, abiType);
31
+ }
32
+ if ((0, _cairo.isTypeEthAddress)(abiType)) {
33
+ return unorderedItem;
34
+ }
35
+ if ((0, _cairo.isTypeNonZero)(abiType)) {
36
+ return unorderedItem;
37
+ }
38
+ if ((0, _cairo.isTypeByteArray)(abiType)) {
39
+ return unorderedItem;
40
+ }
41
+ if ((0, _cairo.isTypeSecp256k1Point)(abiType)) {
42
+ return unorderedItem;
43
+ }
44
+ if (_uint.CairoUint256.isAbiType(abiType)) {
45
+ const u256 = unorderedItem;
46
+ if (typeof u256 !== "object") {
47
+ return u256;
48
+ }
49
+ if (!("low" in u256 && "high" in u256)) {
50
+ throw errorU256(abiType);
51
+ }
52
+ return {
53
+ low: u256.low,
54
+ high: u256.high
55
+ };
56
+ }
57
+ if (_uint2.CairoUint512.isAbiType(abiType)) {
58
+ const u512 = unorderedItem;
59
+ if (typeof u512 !== "object") {
60
+ return u512;
61
+ }
62
+ if (!["limb0", "limb1", "limb2", "limb3"].every(key => key in u512)) {
63
+ throw errorU512(abiType);
64
+ }
65
+ return {
66
+ limb0: u512.limb0,
67
+ limb1: u512.limb1,
68
+ limb2: u512.limb2,
69
+ limb3: u512.limb3
70
+ };
71
+ }
72
+ if ((0, _cairo.isTypeStruct)(abiType, structs)) {
73
+ const abiOfStruct = structs[abiType].members;
74
+ return orderStruct(unorderedItem, abiOfStruct);
75
+ }
76
+ return unorderedItem;
77
+ };
78
+ const orderStruct = (unorderedObject2, abiObject) => {
79
+ const orderedObject2 = abiObject.reduce((orderedObject, abiParam) => {
80
+ const setProperty = value => Object.defineProperty(orderedObject, abiParam.name, {
81
+ enumerable: true,
82
+ value: value ?? unorderedObject2[abiParam.name]
83
+ });
84
+ if (unorderedObject2[abiParam.name] === "undefined") {
85
+ if ((0, _cairo.isCairo1Type)(abiParam.type) || !(0, _cairo.isLen)(abiParam.name)) {
86
+ throw Error(`Your object needs a property with key : ${abiParam.name} .`);
87
+ }
88
+ }
89
+ setProperty(orderInput(unorderedObject2[abiParam.name], abiParam.type));
90
+ return orderedObject;
91
+ }, {});
92
+ return orderedObject2;
93
+ };
94
+ function orderArray(myArray, abiParam) {
95
+ const typeInArray = (0, _cairo.getArrayType)(abiParam);
96
+ if ((0, _shortString.isString)(myArray)) {
97
+ return myArray;
98
+ }
99
+ return myArray.map(myElem => orderInput(myElem, typeInArray));
100
+ }
101
+ function orderTuple(unorderedObject2, abiParam) {
102
+ const typeList = (0, _tuple.default)(abiParam);
103
+ const orderedObject2 = typeList.reduce((orderedObject, abiTypeCairoX, index) => {
104
+ const myObjKeys = Object.keys(unorderedObject2);
105
+ const setProperty = value => Object.defineProperty(orderedObject, index.toString(), {
106
+ enumerable: true,
107
+ value: value ?? unorderedObject2[myObjKeys[index]]
108
+ });
109
+ const abiType = abiTypeCairoX?.type ? abiTypeCairoX.type : abiTypeCairoX;
110
+ setProperty(orderInput(unorderedObject2[myObjKeys[index]], abiType));
111
+ return orderedObject;
112
+ }, {});
113
+ return orderedObject2;
114
+ }
115
+ const orderEnum = (unorderedObject2, abiObject) => {
116
+ if ((0, _cairo.isTypeResult)(abiObject.name)) {
117
+ const unorderedResult = unorderedObject2;
118
+ const resultOkType = abiObject.name.substring(abiObject.name.indexOf("<") + 1, abiObject.name.lastIndexOf(","));
119
+ const resultErrType = abiObject.name.substring(abiObject.name.indexOf(",") + 1, abiObject.name.lastIndexOf(">"));
120
+ if (unorderedResult.isOk()) {
121
+ return new _enum.CairoResult(_enum.CairoResultVariant.Ok, orderInput(unorderedObject2.unwrap(), resultOkType));
122
+ }
123
+ return new _enum.CairoResult(_enum.CairoResultVariant.Err, orderInput(unorderedObject2.unwrap(), resultErrType));
124
+ }
125
+ if ((0, _cairo.isTypeOption)(abiObject.name)) {
126
+ const unorderedOption = unorderedObject2;
127
+ const resultSomeType = abiObject.name.substring(abiObject.name.indexOf("<") + 1, abiObject.name.lastIndexOf(">"));
128
+ if (unorderedOption.isSome()) {
129
+ return new _enum.CairoOption(_enum.CairoOptionVariant.Some, orderInput(unorderedOption.unwrap(), resultSomeType));
130
+ }
131
+ return new _enum.CairoOption(_enum.CairoOptionVariant.None, {});
132
+ }
133
+ const unorderedCustomEnum = unorderedObject2;
134
+ const variants = Object.entries(unorderedCustomEnum.variant);
135
+ const newEntries = variants.map(variant => {
136
+ if (typeof variant[1] === "undefined") {
137
+ return variant;
138
+ }
139
+ const variantType = abiObject.type.substring(abiObject.type.lastIndexOf("<") + 1, abiObject.type.lastIndexOf(">"));
140
+ if (variantType === "()") {
141
+ return variant;
142
+ }
143
+ return [variant[0], orderInput(unorderedCustomEnum.unwrap(), variantType)];
144
+ });
145
+ return new _enum.CairoCustomEnum(Object.fromEntries(newEntries));
146
+ };
147
+ const finalOrderedObject = abiOfObject.reduce((orderedObject, abiParam) => {
148
+ const setProperty = value => Object.defineProperty(orderedObject, abiParam.name, {
149
+ enumerable: true,
150
+ value
151
+ });
152
+ if ((0, _cairo.isLen)(abiParam.name) && !(0, _cairo.isCairo1Type)(abiParam.type)) {
153
+ return orderedObject;
154
+ }
155
+ setProperty(orderInput(unorderedObject[abiParam.name], abiParam.type));
156
+ return orderedObject;
157
+ }, {});
158
+ return finalOrderedObject;
159
+ }
@@ -0,0 +1,2 @@
1
+ import { AbiEntry, AbiEnums, AbiStructs, RawArgsObject } from '../../types';
2
+ export default function orderPropsByAbi(unorderedObject: RawArgsObject, abiOfObject: AbiEntry[], structs: AbiStructs, enums: AbiEnums): object;
@@ -0,0 +1,189 @@
1
+ import { CairoUint256 } from "../cairoDataTypes/uint256.mjs";
2
+ import { CairoUint512 } from "../cairoDataTypes/uint512.mjs";
3
+ import {
4
+ getArrayType,
5
+ isCairo1Type,
6
+ isLen,
7
+ isTypeArray,
8
+ isTypeByteArray,
9
+ isTypeEnum,
10
+ isTypeEthAddress,
11
+ isTypeNonZero,
12
+ isTypeOption,
13
+ isTypeResult,
14
+ isTypeSecp256k1Point,
15
+ isTypeStruct,
16
+ isTypeTuple
17
+ } from "./cairo.mjs";
18
+ import {
19
+ CairoCustomEnum,
20
+ CairoOption,
21
+ CairoOptionVariant,
22
+ CairoResult,
23
+ CairoResultVariant
24
+ } from "./enum/index.mjs";
25
+ import extractTupleMemberTypes from "./tuple.mjs";
26
+ import { isString } from "../shortString.mjs";
27
+ function errorU256(key) {
28
+ return Error(
29
+ `Your object includes the property : ${key}, containing an Uint256 object without the 'low' and 'high' keys.`
30
+ );
31
+ }
32
+ function errorU512(key) {
33
+ return Error(
34
+ `Your object includes the property : ${key}, containing an Uint512 object without the 'limb0' to 'limb3' keys.`
35
+ );
36
+ }
37
+ export default function orderPropsByAbi(unorderedObject, abiOfObject, structs, enums) {
38
+ const orderInput = (unorderedItem, abiType) => {
39
+ if (isTypeArray(abiType)) {
40
+ return orderArray(unorderedItem, abiType);
41
+ }
42
+ if (isTypeEnum(abiType, enums)) {
43
+ const abiObj = enums[abiType];
44
+ return orderEnum(unorderedItem, abiObj);
45
+ }
46
+ if (isTypeTuple(abiType)) {
47
+ return orderTuple(unorderedItem, abiType);
48
+ }
49
+ if (isTypeEthAddress(abiType)) {
50
+ return unorderedItem;
51
+ }
52
+ if (isTypeNonZero(abiType)) {
53
+ return unorderedItem;
54
+ }
55
+ if (isTypeByteArray(abiType)) {
56
+ return unorderedItem;
57
+ }
58
+ if (isTypeSecp256k1Point(abiType)) {
59
+ return unorderedItem;
60
+ }
61
+ if (CairoUint256.isAbiType(abiType)) {
62
+ const u256 = unorderedItem;
63
+ if (typeof u256 !== "object") {
64
+ return u256;
65
+ }
66
+ if (!("low" in u256 && "high" in u256)) {
67
+ throw errorU256(abiType);
68
+ }
69
+ return { low: u256.low, high: u256.high };
70
+ }
71
+ if (CairoUint512.isAbiType(abiType)) {
72
+ const u512 = unorderedItem;
73
+ if (typeof u512 !== "object") {
74
+ return u512;
75
+ }
76
+ if (!["limb0", "limb1", "limb2", "limb3"].every((key) => key in u512)) {
77
+ throw errorU512(abiType);
78
+ }
79
+ return { limb0: u512.limb0, limb1: u512.limb1, limb2: u512.limb2, limb3: u512.limb3 };
80
+ }
81
+ if (isTypeStruct(abiType, structs)) {
82
+ const abiOfStruct = structs[abiType].members;
83
+ return orderStruct(unorderedItem, abiOfStruct);
84
+ }
85
+ return unorderedItem;
86
+ };
87
+ const orderStruct = (unorderedObject2, abiObject) => {
88
+ const orderedObject2 = abiObject.reduce((orderedObject, abiParam) => {
89
+ const setProperty = (value) => Object.defineProperty(orderedObject, abiParam.name, {
90
+ enumerable: true,
91
+ value: value ?? unorderedObject2[abiParam.name]
92
+ });
93
+ if (unorderedObject2[abiParam.name] === "undefined") {
94
+ if (isCairo1Type(abiParam.type) || !isLen(abiParam.name)) {
95
+ throw Error(`Your object needs a property with key : ${abiParam.name} .`);
96
+ }
97
+ }
98
+ setProperty(orderInput(unorderedObject2[abiParam.name], abiParam.type));
99
+ return orderedObject;
100
+ }, {});
101
+ return orderedObject2;
102
+ };
103
+ function orderArray(myArray, abiParam) {
104
+ const typeInArray = getArrayType(abiParam);
105
+ if (isString(myArray)) {
106
+ return myArray;
107
+ }
108
+ return myArray.map((myElem) => orderInput(myElem, typeInArray));
109
+ }
110
+ function orderTuple(unorderedObject2, abiParam) {
111
+ const typeList = extractTupleMemberTypes(abiParam);
112
+ const orderedObject2 = typeList.reduce((orderedObject, abiTypeCairoX, index) => {
113
+ const myObjKeys = Object.keys(unorderedObject2);
114
+ const setProperty = (value) => Object.defineProperty(orderedObject, index.toString(), {
115
+ enumerable: true,
116
+ value: value ?? unorderedObject2[myObjKeys[index]]
117
+ });
118
+ const abiType = abiTypeCairoX?.type ? abiTypeCairoX.type : abiTypeCairoX;
119
+ setProperty(orderInput(unorderedObject2[myObjKeys[index]], abiType));
120
+ return orderedObject;
121
+ }, {});
122
+ return orderedObject2;
123
+ }
124
+ const orderEnum = (unorderedObject2, abiObject) => {
125
+ if (isTypeResult(abiObject.name)) {
126
+ const unorderedResult = unorderedObject2;
127
+ const resultOkType = abiObject.name.substring(
128
+ abiObject.name.indexOf("<") + 1,
129
+ abiObject.name.lastIndexOf(",")
130
+ );
131
+ const resultErrType = abiObject.name.substring(
132
+ abiObject.name.indexOf(",") + 1,
133
+ abiObject.name.lastIndexOf(">")
134
+ );
135
+ if (unorderedResult.isOk()) {
136
+ return new CairoResult(
137
+ CairoResultVariant.Ok,
138
+ orderInput(unorderedObject2.unwrap(), resultOkType)
139
+ );
140
+ }
141
+ return new CairoResult(
142
+ CairoResultVariant.Err,
143
+ orderInput(unorderedObject2.unwrap(), resultErrType)
144
+ );
145
+ }
146
+ if (isTypeOption(abiObject.name)) {
147
+ const unorderedOption = unorderedObject2;
148
+ const resultSomeType = abiObject.name.substring(
149
+ abiObject.name.indexOf("<") + 1,
150
+ abiObject.name.lastIndexOf(">")
151
+ );
152
+ if (unorderedOption.isSome()) {
153
+ return new CairoOption(
154
+ CairoOptionVariant.Some,
155
+ orderInput(unorderedOption.unwrap(), resultSomeType)
156
+ );
157
+ }
158
+ return new CairoOption(CairoOptionVariant.None, {});
159
+ }
160
+ const unorderedCustomEnum = unorderedObject2;
161
+ const variants = Object.entries(unorderedCustomEnum.variant);
162
+ const newEntries = variants.map((variant) => {
163
+ if (typeof variant[1] === "undefined") {
164
+ return variant;
165
+ }
166
+ const variantType = abiObject.type.substring(
167
+ abiObject.type.lastIndexOf("<") + 1,
168
+ abiObject.type.lastIndexOf(">")
169
+ );
170
+ if (variantType === "()") {
171
+ return variant;
172
+ }
173
+ return [variant[0], orderInput(unorderedCustomEnum.unwrap(), variantType)];
174
+ });
175
+ return new CairoCustomEnum(Object.fromEntries(newEntries));
176
+ };
177
+ const finalOrderedObject = abiOfObject.reduce((orderedObject, abiParam) => {
178
+ const setProperty = (value) => Object.defineProperty(orderedObject, abiParam.name, {
179
+ enumerable: true,
180
+ value
181
+ });
182
+ if (isLen(abiParam.name) && !isCairo1Type(abiParam.type)) {
183
+ return orderedObject;
184
+ }
185
+ setProperty(orderInput(unorderedObject[abiParam.name], abiParam.type));
186
+ return orderedObject;
187
+ }, {});
188
+ return finalOrderedObject;
189
+ }