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,196 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StarknetIdVerifierContract = exports.StarknetIdPopContract = exports.StarknetIdPfpContract = exports.StarknetIdMulticallContract = exports.StarknetIdIdentityContract = exports.StarknetIdContract = void 0;
7
+ exports.dynamicCallData = dynamicCallData;
8
+ exports.dynamicFelt = dynamicFelt;
9
+ exports.execution = execution;
10
+ exports.getStarknetIdContract = getStarknetIdContract;
11
+ exports.getStarknetIdIdentityContract = getStarknetIdIdentityContract;
12
+ exports.getStarknetIdMulticallContract = getStarknetIdMulticallContract;
13
+ exports.getStarknetIdPfpContract = getStarknetIdPfpContract;
14
+ exports.getStarknetIdPopContract = getStarknetIdPopContract;
15
+ exports.getStarknetIdVerifierContract = getStarknetIdVerifierContract;
16
+ exports.useDecoded = useDecoded;
17
+ exports.useEncoded = useEncoded;
18
+ var _constants = require("../constants.cjs");
19
+ var _cairo = require("./calldata/cairo.cjs");
20
+ var _CairoCustomEnum = require("./calldata/enum/CairoCustomEnum.cjs");
21
+ const basicAlphabet = "abcdefghijklmnopqrstuvwxyz0123456789-";
22
+ const basicSizePlusOne = BigInt(basicAlphabet.length + 1);
23
+ const bigAlphabet = "\u8FD9\u6765";
24
+ const basicAlphabetSize = BigInt(basicAlphabet.length);
25
+ const bigAlphabetSize = BigInt(bigAlphabet.length);
26
+ const bigAlphabetSizePlusOne = BigInt(bigAlphabet.length + 1);
27
+ function extractStars(str) {
28
+ let k = 0;
29
+ while (str.endsWith(bigAlphabet[bigAlphabet.length - 1])) {
30
+ str = str.substring(0, str.length - 1);
31
+ k += 1;
32
+ }
33
+ return [str, k];
34
+ }
35
+ function useDecoded(encoded) {
36
+ let decoded = "";
37
+ encoded.forEach(subdomain => {
38
+ while (subdomain !== _constants.ZERO) {
39
+ const code = subdomain % basicSizePlusOne;
40
+ subdomain /= basicSizePlusOne;
41
+ if (code === BigInt(basicAlphabet.length)) {
42
+ const nextSubdomain = subdomain / bigAlphabetSizePlusOne;
43
+ if (nextSubdomain === _constants.ZERO) {
44
+ const code2 = subdomain % bigAlphabetSizePlusOne;
45
+ subdomain = nextSubdomain;
46
+ if (code2 === _constants.ZERO) decoded += basicAlphabet[0];else decoded += bigAlphabet[Number(code2) - 1];
47
+ } else {
48
+ const code2 = subdomain % bigAlphabetSize;
49
+ decoded += bigAlphabet[Number(code2)];
50
+ subdomain /= bigAlphabetSize;
51
+ }
52
+ } else decoded += basicAlphabet[Number(code)];
53
+ }
54
+ const [str, k] = extractStars(decoded);
55
+ if (k) decoded = str + (k % 2 === 0 ? bigAlphabet[bigAlphabet.length - 1].repeat(k / 2 - 1) + bigAlphabet[0] + basicAlphabet[1] : bigAlphabet[bigAlphabet.length - 1].repeat((k - 1) / 2 + 1));
56
+ decoded += ".";
57
+ });
58
+ if (!decoded) {
59
+ return decoded;
60
+ }
61
+ return decoded.concat("stark");
62
+ }
63
+ function useEncoded(decoded) {
64
+ let encoded = BigInt(0);
65
+ let multiplier = BigInt(1);
66
+ if (decoded.endsWith(bigAlphabet[0] + basicAlphabet[1])) {
67
+ const [str, k] = extractStars(decoded.substring(0, decoded.length - 2));
68
+ decoded = str + bigAlphabet[bigAlphabet.length - 1].repeat(2 * (k + 1));
69
+ } else {
70
+ const [str, k] = extractStars(decoded);
71
+ if (k) decoded = str + bigAlphabet[bigAlphabet.length - 1].repeat(1 + 2 * (k - 1));
72
+ }
73
+ for (let i = 0; i < decoded.length; i += 1) {
74
+ const char = decoded[i];
75
+ const index = basicAlphabet.indexOf(char);
76
+ const bnIndex = BigInt(basicAlphabet.indexOf(char));
77
+ if (index !== -1) {
78
+ if (i === decoded.length - 1 && decoded[i] === basicAlphabet[0]) {
79
+ encoded += multiplier * basicAlphabetSize;
80
+ multiplier *= basicSizePlusOne;
81
+ multiplier *= basicSizePlusOne;
82
+ } else {
83
+ encoded += multiplier * bnIndex;
84
+ multiplier *= basicSizePlusOne;
85
+ }
86
+ } else if (bigAlphabet.indexOf(char) !== -1) {
87
+ encoded += multiplier * basicAlphabetSize;
88
+ multiplier *= basicSizePlusOne;
89
+ const newid = (i === decoded.length - 1 ? 1 : 0) + bigAlphabet.indexOf(char);
90
+ encoded += multiplier * BigInt(newid);
91
+ multiplier *= bigAlphabetSize;
92
+ }
93
+ }
94
+ return encoded;
95
+ }
96
+ const StarknetIdContract = exports.StarknetIdContract = {
97
+ MAINNET: "0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678",
98
+ TESTNET_SEPOLIA: "0x154bc2e1af9260b9e66af0e9c46fc757ff893b3ff6a85718a810baf1474"
99
+ };
100
+ function getStarknetIdContract(chainId) {
101
+ switch (chainId) {
102
+ case _constants.StarknetChainId.SN_MAIN:
103
+ return StarknetIdContract.MAINNET;
104
+ case _constants.StarknetChainId.SN_SEPOLIA:
105
+ return StarknetIdContract.TESTNET_SEPOLIA;
106
+ default:
107
+ throw new Error("Starknet.id is not yet deployed on this network");
108
+ }
109
+ }
110
+ const StarknetIdIdentityContract = exports.StarknetIdIdentityContract = {
111
+ MAINNET: "0x05dbdedc203e92749e2e746e2d40a768d966bd243df04a6b712e222bc040a9af",
112
+ TESTNET_SEPOLIA: "0x3697660a0981d734780731949ecb2b4a38d6a58fc41629ed611e8defda"
113
+ };
114
+ function getStarknetIdIdentityContract(chainId) {
115
+ switch (chainId) {
116
+ case _constants.StarknetChainId.SN_MAIN:
117
+ return StarknetIdIdentityContract.MAINNET;
118
+ case _constants.StarknetChainId.SN_SEPOLIA:
119
+ return StarknetIdIdentityContract.TESTNET_SEPOLIA;
120
+ default:
121
+ throw new Error("Starknet.id verifier contract is not yet deployed on this network");
122
+ }
123
+ }
124
+ const StarknetIdMulticallContract = exports.StarknetIdMulticallContract = "0x034ffb8f4452df7a613a0210824d6414dbadcddce6c6e19bf4ddc9e22ce5f970";
125
+ function getStarknetIdMulticallContract(chainId) {
126
+ switch (chainId) {
127
+ case _constants.StarknetChainId.SN_MAIN:
128
+ return StarknetIdMulticallContract;
129
+ case _constants.StarknetChainId.SN_SEPOLIA:
130
+ return StarknetIdMulticallContract;
131
+ default:
132
+ throw new Error("Starknet.id multicall contract is not yet deployed on this network");
133
+ }
134
+ }
135
+ const StarknetIdVerifierContract = exports.StarknetIdVerifierContract = {
136
+ MAINNET: "0x07d14dfd8ee95b41fce179170d88ba1f0d5a512e13aeb232f19cfeec0a88f8bf",
137
+ TESTNET_SEPOLIA: "0x60B94fEDe525f815AE5E8377A463e121C787cCCf3a36358Aa9B18c12c4D566"
138
+ };
139
+ function getStarknetIdVerifierContract(chainId) {
140
+ switch (chainId) {
141
+ case _constants.StarknetChainId.SN_MAIN:
142
+ return StarknetIdVerifierContract.MAINNET;
143
+ case _constants.StarknetChainId.SN_SEPOLIA:
144
+ return StarknetIdVerifierContract.TESTNET_SEPOLIA;
145
+ default:
146
+ throw new Error("Starknet.id verifier contract is not yet deployed on this network");
147
+ }
148
+ }
149
+ const StarknetIdPfpContract = exports.StarknetIdPfpContract = {
150
+ MAINNET: "0x070aaa20ec4a46da57c932d9fd89ca5e6bb9ca3188d3df361a32306aff7d59c7",
151
+ TESTNET_SEPOLIA: "0x9e7bdb8dabd02ea8cfc23b1d1c5278e46490f193f87516ed5ff2dfec02"
152
+ };
153
+ function getStarknetIdPfpContract(chainId) {
154
+ switch (chainId) {
155
+ case _constants.StarknetChainId.SN_MAIN:
156
+ return StarknetIdPfpContract.MAINNET;
157
+ case _constants.StarknetChainId.SN_SEPOLIA:
158
+ return StarknetIdPfpContract.TESTNET_SEPOLIA;
159
+ default:
160
+ throw new Error("Starknet.id profile picture verifier contract is not yet deployed on this network");
161
+ }
162
+ }
163
+ const StarknetIdPopContract = exports.StarknetIdPopContract = {
164
+ MAINNET: "0x0293eb2ba9862f762bd3036586d5755a782bd22e6f5028320f1d0405fd47bff4",
165
+ TESTNET_SEPOLIA: "0x15ae88ae054caa74090b89025c1595683f12edf7a4ed2ad0274de3e1d4a"
166
+ };
167
+ function getStarknetIdPopContract(chainId) {
168
+ switch (chainId) {
169
+ case _constants.StarknetChainId.SN_MAIN:
170
+ return StarknetIdPopContract.MAINNET;
171
+ case _constants.StarknetChainId.SN_SEPOLIA:
172
+ return StarknetIdPopContract.TESTNET_SEPOLIA;
173
+ default:
174
+ throw new Error("Starknet.id proof of personhood verifier contract is not yet deployed on this network");
175
+ }
176
+ }
177
+ function execution(staticEx, ifEqual = void 0, ifNotEqual = void 0) {
178
+ return new _CairoCustomEnum.CairoCustomEnum({
179
+ Static: staticEx,
180
+ IfEqual: ifEqual ? (0, _cairo.tuple)(ifEqual[0], ifEqual[1], ifEqual[2]) : void 0,
181
+ IfNotEqual: ifNotEqual ? (0, _cairo.tuple)(ifNotEqual[0], ifNotEqual[1], ifNotEqual[2]) : void 0
182
+ });
183
+ }
184
+ function dynamicFelt(hardcoded, reference = void 0) {
185
+ return new _CairoCustomEnum.CairoCustomEnum({
186
+ Hardcoded: hardcoded,
187
+ Reference: reference ? (0, _cairo.tuple)(reference[0], reference[1]) : void 0
188
+ });
189
+ }
190
+ function dynamicCallData(hardcoded, reference = void 0, arrayReference = void 0) {
191
+ return new _CairoCustomEnum.CairoCustomEnum({
192
+ Hardcoded: hardcoded,
193
+ Reference: reference ? (0, _cairo.tuple)(reference[0], reference[1]) : void 0,
194
+ ArrayReference: arrayReference ? (0, _cairo.tuple)(arrayReference[0], arrayReference[1]) : void 0
195
+ });
196
+ }
@@ -0,0 +1,182 @@
1
+ import { StarknetChainId } from '../constants';
2
+ import { BigNumberish } from '../types';
3
+ import { CairoCustomEnum } from './calldata/enum/CairoCustomEnum';
4
+ /**
5
+ * Decodes an array of BigInts into a string using the given algorithm.
6
+ * @param {bigint[]} encoded The encoded array of BigInts.
7
+ * @return {string} The decoded string.
8
+ * @example
9
+ * ```typescript
10
+ * const result = starknetId.useDecoded([3015206943634620n]);
11
+ * // result = "starknetjs.stark"
12
+ * ```
13
+ */
14
+ export declare function useDecoded(encoded: bigint[]): string;
15
+ /**
16
+ * Encodes a string into a bigint value.
17
+ *
18
+ * @param {string} decoded The string to be encoded.
19
+ * @returns {bigint} The encoded bigint value.
20
+ * @example
21
+ * ```typescript
22
+ * const result = starknetId.useEncoded("starknet.js");
23
+ * // result = 3015206943634620n
24
+ * ```
25
+ */
26
+ export declare function useEncoded(decoded: string): bigint;
27
+ export declare const StarknetIdContract: {
28
+ readonly MAINNET: "0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678";
29
+ readonly TESTNET_SEPOLIA: "0x154bc2e1af9260b9e66af0e9c46fc757ff893b3ff6a85718a810baf1474";
30
+ };
31
+ /**
32
+ * Returns the Starknet ID contract address based on the provided chain ID.
33
+ *
34
+ * @param {StarknetChainId} chainId The chain ID of the Starknet network.
35
+ * @return {string} The Starknet ID contract address.
36
+ * @throws {Error} Throws an error if the Starknet ID contract is not deployed on the network.
37
+ * @example
38
+ * ```typescript
39
+ * const result = starknetId.getStarknetIdContract(constants.StarknetChainId.SN_SEPOLIA);
40
+ * // result = "0x154bc2e1af9260b9e66af0e9c46fc757ff893b3ff6a85718a810baf1474"
41
+ * ```
42
+ */
43
+ export declare function getStarknetIdContract(chainId: StarknetChainId): string;
44
+ export declare const StarknetIdIdentityContract: {
45
+ readonly MAINNET: "0x05dbdedc203e92749e2e746e2d40a768d966bd243df04a6b712e222bc040a9af";
46
+ readonly TESTNET_SEPOLIA: "0x3697660a0981d734780731949ecb2b4a38d6a58fc41629ed611e8defda";
47
+ };
48
+ /**
49
+ * Returns the Starknet ID identity contract address for the given chain ID.
50
+ *
51
+ * @param {StarknetChainId} chainId The chain ID for the specified network.
52
+ *
53
+ * @return {string} The Starknet ID identity contract address for the specified network.
54
+ *
55
+ * @throws {Error} If the Starknet ID verifier contract is not deployed on the network.
56
+ * @example
57
+ * ```typescript
58
+ * const result = starknetId.getStarknetIdIdentityContract(constants.StarknetChainId.SN_SEPOLIA);
59
+ * // result = "0x3697660a0981d734780731949ecb2b4a38d6a58fc41629ed611e8defda"
60
+ * ```
61
+ */
62
+ export declare function getStarknetIdIdentityContract(chainId: StarknetChainId): string;
63
+ export declare const StarknetIdMulticallContract = "0x034ffb8f4452df7a613a0210824d6414dbadcddce6c6e19bf4ddc9e22ce5f970";
64
+ /**
65
+ * Returns the Starknet.id multicall contract address based on the provided chainId.
66
+ *
67
+ * @param {StarknetChainId} chainId - The chainId of the network.
68
+ * @return {string} - The address of the Starknet.id multicall contract.
69
+ * @throws {Error} - If the Starknet.id multicall contract is not deployed on the network.
70
+ * @example
71
+ * ```typescript
72
+ * const result = starknetId.getStarknetIdMulticallContract(constants.StarknetChainId.SN_SEPOLIA);
73
+ * // result = "0x034ffb8f4452df7a613a0210824d6414dbadcddce6c6e19bf4ddc9e22ce5f970"
74
+ * ```
75
+ */
76
+ export declare function getStarknetIdMulticallContract(chainId: StarknetChainId): string;
77
+ export declare const StarknetIdVerifierContract: {
78
+ readonly MAINNET: "0x07d14dfd8ee95b41fce179170d88ba1f0d5a512e13aeb232f19cfeec0a88f8bf";
79
+ readonly TESTNET_SEPOLIA: "0x60B94fEDe525f815AE5E8377A463e121C787cCCf3a36358Aa9B18c12c4D566";
80
+ };
81
+ /**
82
+ * Returns the address of the Starknet ID Verifier contract based on the specified chain ID.
83
+ *
84
+ * @param {StarknetChainId} chainId - The ID of the Starknet chain.
85
+ * @return {string} - The address of the Starknet ID Verifier contract.
86
+ * @throws {Error} - If the Starknet ID Verifier contract is not deployed on the specified network.
87
+ * @example
88
+ * ```typescript
89
+ * const result = starknetId.getStarknetIdVerifierContract(constants.StarknetChainId.SN_SEPOLIA);
90
+ * // result = "0x60B94fEDe525f815AE5E8377A463e121C787cCCf3a36358Aa9B18c12c4D566"
91
+ * ```
92
+ */
93
+ export declare function getStarknetIdVerifierContract(chainId: StarknetChainId): string;
94
+ export declare const StarknetIdPfpContract: {
95
+ readonly MAINNET: "0x070aaa20ec4a46da57c932d9fd89ca5e6bb9ca3188d3df361a32306aff7d59c7";
96
+ readonly TESTNET_SEPOLIA: "0x9e7bdb8dabd02ea8cfc23b1d1c5278e46490f193f87516ed5ff2dfec02";
97
+ };
98
+ /**
99
+ * Retrieves the contract address of the Starknet.id profile picture verifier contract based on the given chain ID.
100
+ *
101
+ * @param {StarknetChainId} chainId - The chain ID of the network.
102
+ * @returns {string} - The contract address of the Starknet.id profile picture verifier contract.
103
+ * @throws {Error} - Throws an error if the Starknet.id profile picture verifier contract is not yet deployed on the network.
104
+ * @example
105
+ * ```typescript
106
+ * const result = starknetId.getStarknetIdPfpContract(constants.StarknetChainId.SN_SEPOLIA);
107
+ * // result = "0x9e7bdb8dabd02ea8cfc23b1d1c5278e46490f193f87516ed5ff2dfec02"
108
+ * ```
109
+ */
110
+ export declare function getStarknetIdPfpContract(chainId: StarknetChainId): string;
111
+ export declare const StarknetIdPopContract: {
112
+ readonly MAINNET: "0x0293eb2ba9862f762bd3036586d5755a782bd22e6f5028320f1d0405fd47bff4";
113
+ readonly TESTNET_SEPOLIA: "0x15ae88ae054caa74090b89025c1595683f12edf7a4ed2ad0274de3e1d4a";
114
+ };
115
+ /**
116
+ * Retrieves the Starknet ID Proof of Personhood (IdPop) verifier contract address for the given chain ID.
117
+ *
118
+ * @param {StarknetChainId} chainId - The chain ID of the Starknet network.
119
+ * @return {string} - The Starknet ID Pop contract address.
120
+ * @throws {Error} - If the Starknet ID Pop contract is not deployed on the specified network.
121
+ * @example
122
+ * ```typescript
123
+ * const result = starknetId.getStarknetIdPopContract(constants.StarknetChainId.SN_SEPOLIA);
124
+ * // result = "0x15ae88ae054caa74090b89025c1595683f12edf7a4ed2ad0274de3e1d4a"
125
+ * ```
126
+ */
127
+ export declare function getStarknetIdPopContract(chainId: StarknetChainId): string;
128
+ /**
129
+ * Returns a CairoCustomEnum object.
130
+ *
131
+ * Functions to build CairoCustomEnum for multiCall contracts
132
+ * @param {Object} [staticEx] An optional object defining the "Static" value of the CairoCustomEnum.
133
+ * @param {number[]} [ifEqual] An optional array defining the "IfEqual" value of the CairoCustomEnum.
134
+ * @param {number[]} [ifNotEqual] An optional array defining the "IfNotEqual" value of the CairoCustomEnum.
135
+ * @return {CairoCustomEnum} - The created CairoCustomEnum object.
136
+ * @example
137
+ * ```typescript
138
+ * const result: CairoCustomEnum = starknetId.execution(undefined, [1, 2, 3], undefined);
139
+ * // result = CairoCustomEnum {
140
+ * // variant: {
141
+ * // Static: undefined,
142
+ * // IfEqual: { '0': 1, '1': 2, '2': 3 },
143
+ * // IfNotEqual: undefined
144
+ * // }
145
+ * // }
146
+ * ```
147
+ */
148
+ export declare function execution(staticEx: {} | undefined, ifEqual?: number[] | undefined, ifNotEqual?: number[] | undefined): CairoCustomEnum;
149
+ /**
150
+ * Creates a new instance of CairoCustomEnum.
151
+ *
152
+ * @param {BigNumberish} [hardcoded] The hardcoded value for the CairoCustomEnum.
153
+ * @param {number[]} [reference] The reference array for the CairoCustomEnum.
154
+ * @returns {CairoCustomEnum} The new instance of CairoCustomEnum.
155
+ * @example
156
+ * ```typescript
157
+ * const result: CairoCustomEnum = starknetId.dynamicFelt(undefined, [1, 2]);
158
+ * // result = CairoCustomEnum {
159
+ * // variant: { Hardcoded: undefined, Reference: { '0': 1, '1': 2 } }
160
+ * // }
161
+ * ```
162
+ */
163
+ export declare function dynamicFelt(hardcoded: BigNumberish | undefined, reference?: number[] | undefined): CairoCustomEnum;
164
+ /**
165
+ * Creates a new instance of CairoCustomEnum with the given parameters.
166
+ * @param {BigNumberish} [hardcoded] The hardcoded value.
167
+ * @param {BigNumberish[]} [reference] The reference value (optional).
168
+ * @param {BigNumberish[]} [arrayReference] The array reference value (optional).
169
+ * @return {CairoCustomEnum} The new instance of CairoCustomEnum.
170
+ * @example
171
+ * ```typescript
172
+ * const result: CairoCustomEnum = starknetId.dynamicCallData(undefined, [1, 2], undefined);
173
+ * // result = CairoCustomEnum {
174
+ * // variant: {
175
+ * // Hardcoded: undefined,
176
+ * // Reference: { '0': 1, '1': 2 },
177
+ * // ArrayReference: undefined
178
+ * // }
179
+ * // }
180
+ * ```
181
+ */
182
+ export declare function dynamicCallData(hardcoded: BigNumberish | undefined, reference?: BigNumberish[] | undefined, arrayReference?: BigNumberish[] | undefined): CairoCustomEnum;
@@ -0,0 +1,185 @@
1
+ import { StarknetChainId, ZERO } from "../constants.mjs";
2
+ import { tuple } from "./calldata/cairo.mjs";
3
+ import { CairoCustomEnum } from "./calldata/enum/CairoCustomEnum.mjs";
4
+ const basicAlphabet = "abcdefghijklmnopqrstuvwxyz0123456789-";
5
+ const basicSizePlusOne = BigInt(basicAlphabet.length + 1);
6
+ const bigAlphabet = "\u8FD9\u6765";
7
+ const basicAlphabetSize = BigInt(basicAlphabet.length);
8
+ const bigAlphabetSize = BigInt(bigAlphabet.length);
9
+ const bigAlphabetSizePlusOne = BigInt(bigAlphabet.length + 1);
10
+ function extractStars(str) {
11
+ let k = 0;
12
+ while (str.endsWith(bigAlphabet[bigAlphabet.length - 1])) {
13
+ str = str.substring(0, str.length - 1);
14
+ k += 1;
15
+ }
16
+ return [str, k];
17
+ }
18
+ export function useDecoded(encoded) {
19
+ let decoded = "";
20
+ encoded.forEach((subdomain) => {
21
+ while (subdomain !== ZERO) {
22
+ const code = subdomain % basicSizePlusOne;
23
+ subdomain /= basicSizePlusOne;
24
+ if (code === BigInt(basicAlphabet.length)) {
25
+ const nextSubdomain = subdomain / bigAlphabetSizePlusOne;
26
+ if (nextSubdomain === ZERO) {
27
+ const code2 = subdomain % bigAlphabetSizePlusOne;
28
+ subdomain = nextSubdomain;
29
+ if (code2 === ZERO) decoded += basicAlphabet[0];
30
+ else decoded += bigAlphabet[Number(code2) - 1];
31
+ } else {
32
+ const code2 = subdomain % bigAlphabetSize;
33
+ decoded += bigAlphabet[Number(code2)];
34
+ subdomain /= bigAlphabetSize;
35
+ }
36
+ } else decoded += basicAlphabet[Number(code)];
37
+ }
38
+ const [str, k] = extractStars(decoded);
39
+ if (k)
40
+ decoded = str + (k % 2 === 0 ? bigAlphabet[bigAlphabet.length - 1].repeat(k / 2 - 1) + bigAlphabet[0] + basicAlphabet[1] : bigAlphabet[bigAlphabet.length - 1].repeat((k - 1) / 2 + 1));
41
+ decoded += ".";
42
+ });
43
+ if (!decoded) {
44
+ return decoded;
45
+ }
46
+ return decoded.concat("stark");
47
+ }
48
+ export function useEncoded(decoded) {
49
+ let encoded = BigInt(0);
50
+ let multiplier = BigInt(1);
51
+ if (decoded.endsWith(bigAlphabet[0] + basicAlphabet[1])) {
52
+ const [str, k] = extractStars(decoded.substring(0, decoded.length - 2));
53
+ decoded = str + bigAlphabet[bigAlphabet.length - 1].repeat(2 * (k + 1));
54
+ } else {
55
+ const [str, k] = extractStars(decoded);
56
+ if (k) decoded = str + bigAlphabet[bigAlphabet.length - 1].repeat(1 + 2 * (k - 1));
57
+ }
58
+ for (let i = 0; i < decoded.length; i += 1) {
59
+ const char = decoded[i];
60
+ const index = basicAlphabet.indexOf(char);
61
+ const bnIndex = BigInt(basicAlphabet.indexOf(char));
62
+ if (index !== -1) {
63
+ if (i === decoded.length - 1 && decoded[i] === basicAlphabet[0]) {
64
+ encoded += multiplier * basicAlphabetSize;
65
+ multiplier *= basicSizePlusOne;
66
+ multiplier *= basicSizePlusOne;
67
+ } else {
68
+ encoded += multiplier * bnIndex;
69
+ multiplier *= basicSizePlusOne;
70
+ }
71
+ } else if (bigAlphabet.indexOf(char) !== -1) {
72
+ encoded += multiplier * basicAlphabetSize;
73
+ multiplier *= basicSizePlusOne;
74
+ const newid = (i === decoded.length - 1 ? 1 : 0) + bigAlphabet.indexOf(char);
75
+ encoded += multiplier * BigInt(newid);
76
+ multiplier *= bigAlphabetSize;
77
+ }
78
+ }
79
+ return encoded;
80
+ }
81
+ export const StarknetIdContract = {
82
+ MAINNET: "0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678",
83
+ TESTNET_SEPOLIA: "0x154bc2e1af9260b9e66af0e9c46fc757ff893b3ff6a85718a810baf1474"
84
+ };
85
+ export function getStarknetIdContract(chainId) {
86
+ switch (chainId) {
87
+ case StarknetChainId.SN_MAIN:
88
+ return StarknetIdContract.MAINNET;
89
+ case StarknetChainId.SN_SEPOLIA:
90
+ return StarknetIdContract.TESTNET_SEPOLIA;
91
+ default:
92
+ throw new Error("Starknet.id is not yet deployed on this network");
93
+ }
94
+ }
95
+ export const StarknetIdIdentityContract = {
96
+ MAINNET: "0x05dbdedc203e92749e2e746e2d40a768d966bd243df04a6b712e222bc040a9af",
97
+ TESTNET_SEPOLIA: "0x3697660a0981d734780731949ecb2b4a38d6a58fc41629ed611e8defda"
98
+ };
99
+ export function getStarknetIdIdentityContract(chainId) {
100
+ switch (chainId) {
101
+ case StarknetChainId.SN_MAIN:
102
+ return StarknetIdIdentityContract.MAINNET;
103
+ case StarknetChainId.SN_SEPOLIA:
104
+ return StarknetIdIdentityContract.TESTNET_SEPOLIA;
105
+ default:
106
+ throw new Error("Starknet.id verifier contract is not yet deployed on this network");
107
+ }
108
+ }
109
+ export const StarknetIdMulticallContract = "0x034ffb8f4452df7a613a0210824d6414dbadcddce6c6e19bf4ddc9e22ce5f970";
110
+ export function getStarknetIdMulticallContract(chainId) {
111
+ switch (chainId) {
112
+ case StarknetChainId.SN_MAIN:
113
+ return StarknetIdMulticallContract;
114
+ case StarknetChainId.SN_SEPOLIA:
115
+ return StarknetIdMulticallContract;
116
+ default:
117
+ throw new Error("Starknet.id multicall contract is not yet deployed on this network");
118
+ }
119
+ }
120
+ export const StarknetIdVerifierContract = {
121
+ MAINNET: "0x07d14dfd8ee95b41fce179170d88ba1f0d5a512e13aeb232f19cfeec0a88f8bf",
122
+ TESTNET_SEPOLIA: "0x60B94fEDe525f815AE5E8377A463e121C787cCCf3a36358Aa9B18c12c4D566"
123
+ };
124
+ export function getStarknetIdVerifierContract(chainId) {
125
+ switch (chainId) {
126
+ case StarknetChainId.SN_MAIN:
127
+ return StarknetIdVerifierContract.MAINNET;
128
+ case StarknetChainId.SN_SEPOLIA:
129
+ return StarknetIdVerifierContract.TESTNET_SEPOLIA;
130
+ default:
131
+ throw new Error("Starknet.id verifier contract is not yet deployed on this network");
132
+ }
133
+ }
134
+ export const StarknetIdPfpContract = {
135
+ MAINNET: "0x070aaa20ec4a46da57c932d9fd89ca5e6bb9ca3188d3df361a32306aff7d59c7",
136
+ TESTNET_SEPOLIA: "0x9e7bdb8dabd02ea8cfc23b1d1c5278e46490f193f87516ed5ff2dfec02"
137
+ };
138
+ export function getStarknetIdPfpContract(chainId) {
139
+ switch (chainId) {
140
+ case StarknetChainId.SN_MAIN:
141
+ return StarknetIdPfpContract.MAINNET;
142
+ case StarknetChainId.SN_SEPOLIA:
143
+ return StarknetIdPfpContract.TESTNET_SEPOLIA;
144
+ default:
145
+ throw new Error(
146
+ "Starknet.id profile picture verifier contract is not yet deployed on this network"
147
+ );
148
+ }
149
+ }
150
+ export const StarknetIdPopContract = {
151
+ MAINNET: "0x0293eb2ba9862f762bd3036586d5755a782bd22e6f5028320f1d0405fd47bff4",
152
+ TESTNET_SEPOLIA: "0x15ae88ae054caa74090b89025c1595683f12edf7a4ed2ad0274de3e1d4a"
153
+ };
154
+ export function getStarknetIdPopContract(chainId) {
155
+ switch (chainId) {
156
+ case StarknetChainId.SN_MAIN:
157
+ return StarknetIdPopContract.MAINNET;
158
+ case StarknetChainId.SN_SEPOLIA:
159
+ return StarknetIdPopContract.TESTNET_SEPOLIA;
160
+ default:
161
+ throw new Error(
162
+ "Starknet.id proof of personhood verifier contract is not yet deployed on this network"
163
+ );
164
+ }
165
+ }
166
+ export function execution(staticEx, ifEqual = void 0, ifNotEqual = void 0) {
167
+ return new CairoCustomEnum({
168
+ Static: staticEx,
169
+ IfEqual: ifEqual ? tuple(ifEqual[0], ifEqual[1], ifEqual[2]) : void 0,
170
+ IfNotEqual: ifNotEqual ? tuple(ifNotEqual[0], ifNotEqual[1], ifNotEqual[2]) : void 0
171
+ });
172
+ }
173
+ export function dynamicFelt(hardcoded, reference = void 0) {
174
+ return new CairoCustomEnum({
175
+ Hardcoded: hardcoded,
176
+ Reference: reference ? tuple(reference[0], reference[1]) : void 0
177
+ });
178
+ }
179
+ export function dynamicCallData(hardcoded, reference = void 0, arrayReference = void 0) {
180
+ return new CairoCustomEnum({
181
+ Hardcoded: hardcoded,
182
+ Reference: reference ? tuple(reference[0], reference[1]) : void 0,
183
+ ArrayReference: arrayReference ? tuple(arrayReference[0], arrayReference[1]) : void 0
184
+ });
185
+ }
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.buildUDCCall = buildUDCCall;
7
+ exports.getExecuteCalldata = exports.fromCallsToExecuteCalldata_cairo1 = exports.fromCallsToExecuteCalldataWithNonce = exports.fromCallsToExecuteCalldata = void 0;
8
+ exports.getVersionsByType = getVersionsByType;
9
+ exports.transformCallsToMulticallArrays_cairo1 = exports.transformCallsToMulticallArrays = void 0;
10
+ var _constants = require("../constants.cjs");
11
+ var _api = require("../types/api/index.cjs");
12
+ var _calldata = require("./calldata/index.cjs");
13
+ var _ec = require("./ec.cjs");
14
+ var _hash = require("./hash/index.cjs");
15
+ var _num = require("./num.cjs");
16
+ var _stark = require("./stark.cjs");
17
+ const transformCallsToMulticallArrays = calls => {
18
+ const callArray = [];
19
+ const calldata = [];
20
+ calls.forEach(call => {
21
+ const data = _calldata.CallData.compile(call.calldata || []);
22
+ callArray.push({
23
+ to: (0, _num.toBigInt)(call.contractAddress).toString(10),
24
+ selector: (0, _num.toBigInt)((0, _hash.getSelectorFromName)(call.entrypoint)).toString(10),
25
+ data_offset: calldata.length.toString(),
26
+ data_len: data.length.toString()
27
+ });
28
+ calldata.push(...data);
29
+ });
30
+ return {
31
+ callArray,
32
+ calldata: _calldata.CallData.compile({
33
+ calldata
34
+ })
35
+ };
36
+ };
37
+ exports.transformCallsToMulticallArrays = transformCallsToMulticallArrays;
38
+ const fromCallsToExecuteCalldata = calls => {
39
+ const {
40
+ callArray,
41
+ calldata
42
+ } = transformCallsToMulticallArrays(calls);
43
+ const compiledCalls = _calldata.CallData.compile({
44
+ callArray
45
+ });
46
+ return [...compiledCalls, ...calldata];
47
+ };
48
+ exports.fromCallsToExecuteCalldata = fromCallsToExecuteCalldata;
49
+ const fromCallsToExecuteCalldataWithNonce = (calls, nonce) => {
50
+ return [...fromCallsToExecuteCalldata(calls), (0, _num.toBigInt)(nonce).toString()];
51
+ };
52
+ exports.fromCallsToExecuteCalldataWithNonce = fromCallsToExecuteCalldataWithNonce;
53
+ const transformCallsToMulticallArrays_cairo1 = calls => {
54
+ const callArray = calls.map(call => ({
55
+ to: (0, _num.toBigInt)(call.contractAddress).toString(10),
56
+ selector: (0, _num.toBigInt)((0, _hash.getSelectorFromName)(call.entrypoint)).toString(10),
57
+ calldata: _calldata.CallData.compile(call.calldata || [])
58
+ }));
59
+ return callArray;
60
+ };
61
+ exports.transformCallsToMulticallArrays_cairo1 = transformCallsToMulticallArrays_cairo1;
62
+ const fromCallsToExecuteCalldata_cairo1 = calls => {
63
+ const orderCalls = calls.map(call => ({
64
+ contractAddress: call.contractAddress,
65
+ entrypoint: call.entrypoint,
66
+ calldata: Array.isArray(call.calldata) && "__compiled__" in call.calldata ? call.calldata : _calldata.CallData.compile(call.calldata)
67
+ // RawArgsObject | RawArgsArray type
68
+ }));
69
+ return _calldata.CallData.compile({
70
+ orderCalls
71
+ });
72
+ };
73
+ exports.fromCallsToExecuteCalldata_cairo1 = fromCallsToExecuteCalldata_cairo1;
74
+ const getExecuteCalldata = (calls, cairoVersion = "0") => {
75
+ if (cairoVersion === "1") {
76
+ return fromCallsToExecuteCalldata_cairo1(calls);
77
+ }
78
+ return fromCallsToExecuteCalldata(calls);
79
+ };
80
+ exports.getExecuteCalldata = getExecuteCalldata;
81
+ function buildUDCCall(payload, address) {
82
+ const params = [].concat(payload).map(it => {
83
+ const {
84
+ classHash,
85
+ salt,
86
+ unique = true,
87
+ constructorCalldata = []
88
+ } = it;
89
+ const compiledConstructorCallData = _calldata.CallData.compile(constructorCalldata);
90
+ const deploySalt = salt ?? (0, _stark.randomAddress)();
91
+ return {
92
+ call: {
93
+ contractAddress: _constants.UDC.ADDRESS,
94
+ entrypoint: _constants.UDC.ENTRYPOINT,
95
+ calldata: [classHash, deploySalt, (0, _num.toCairoBool)(unique), compiledConstructorCallData.length, ...compiledConstructorCallData]
96
+ },
97
+ address: (0, _hash.calculateContractAddressFromHash)(unique ? _ec.starkCurve.pedersen(address, deploySalt) : deploySalt, classHash, compiledConstructorCallData, unique ? _constants.UDC.ADDRESS : 0)
98
+ };
99
+ });
100
+ return {
101
+ calls: params.map(it => it.call),
102
+ addresses: params.map(it => it.address)
103
+ };
104
+ }
105
+ function getVersionsByType(versionType) {
106
+ return versionType === "fee" ? {
107
+ v1: _api.ETransactionVersion.F1,
108
+ v2: _api.ETransactionVersion.F2,
109
+ v3: _api.ETransactionVersion.F3
110
+ } : {
111
+ v1: _api.ETransactionVersion.V1,
112
+ v2: _api.ETransactionVersion.V2,
113
+ v3: _api.ETransactionVersion.V3
114
+ };
115
+ }