@alephium/web3 1.8.2 → 1.8.3-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/LICENSE +165 -0
  2. package/dist/{scripts → _cjs/scripts}/check-versions.js +1 -0
  3. package/dist/_cjs/scripts/check-versions.js.map +1 -0
  4. package/dist/{scripts → _cjs/scripts}/header.js +1 -0
  5. package/dist/_cjs/scripts/header.js.map +1 -0
  6. package/dist/{src → _cjs/src}/address/address.js +1 -0
  7. package/dist/_cjs/src/address/address.js.map +1 -0
  8. package/dist/{src → _cjs/src}/address/index.js +1 -0
  9. package/dist/_cjs/src/address/index.js.map +1 -0
  10. package/dist/{src → _cjs/src}/api/api-alephium.js +1 -0
  11. package/dist/_cjs/src/api/api-alephium.js.map +1 -0
  12. package/dist/{src → _cjs/src}/api/api-explorer.js +1 -0
  13. package/dist/_cjs/src/api/api-explorer.js.map +1 -0
  14. package/dist/{src → _cjs/src}/api/explorer-provider.js +1 -0
  15. package/dist/_cjs/src/api/explorer-provider.js.map +1 -0
  16. package/dist/{src → _cjs/src}/api/index.js +1 -0
  17. package/dist/_cjs/src/api/index.js.map +1 -0
  18. package/dist/{src → _cjs/src}/api/node-provider.js +1 -0
  19. package/dist/_cjs/src/api/node-provider.js.map +1 -0
  20. package/dist/{src → _cjs/src}/api/types.js +1 -0
  21. package/dist/_cjs/src/api/types.js.map +1 -0
  22. package/dist/{src → _cjs/src}/api/utils.js +1 -0
  23. package/dist/_cjs/src/api/utils.js.map +1 -0
  24. package/dist/{src → _cjs/src}/block/block.js +1 -0
  25. package/dist/_cjs/src/block/block.js.map +1 -0
  26. package/dist/{src → _cjs/src}/block/index.js +1 -0
  27. package/dist/_cjs/src/block/index.js.map +1 -0
  28. package/dist/{src → _cjs/src}/codec/array-codec.js +1 -0
  29. package/dist/_cjs/src/codec/array-codec.js.map +1 -0
  30. package/dist/{src → _cjs/src}/codec/asset-output-codec.js +1 -0
  31. package/dist/_cjs/src/codec/asset-output-codec.js.map +1 -0
  32. package/dist/{src → _cjs/src}/codec/bigint-codec.js +1 -0
  33. package/dist/_cjs/src/codec/bigint-codec.js.map +1 -0
  34. package/dist/{src → _cjs/src}/codec/bytestring-codec.js +1 -0
  35. package/dist/_cjs/src/codec/bytestring-codec.js.map +1 -0
  36. package/dist/{src → _cjs/src}/codec/codec.js +1 -0
  37. package/dist/_cjs/src/codec/codec.js.map +1 -0
  38. package/dist/{src → _cjs/src}/codec/compact-int-codec.js +1 -0
  39. package/dist/_cjs/src/codec/compact-int-codec.js.map +1 -0
  40. package/dist/{src → _cjs/src}/codec/contract-codec.js +1 -0
  41. package/dist/_cjs/src/codec/contract-codec.js.map +1 -0
  42. package/dist/{src → _cjs/src}/codec/contract-output-codec.js +1 -0
  43. package/dist/_cjs/src/codec/contract-output-codec.js.map +1 -0
  44. package/dist/{src → _cjs/src}/codec/contract-output-ref-codec.js +1 -0
  45. package/dist/_cjs/src/codec/contract-output-ref-codec.js.map +1 -0
  46. package/dist/{src → _cjs/src}/codec/either-codec.js +1 -0
  47. package/dist/_cjs/src/codec/either-codec.js.map +1 -0
  48. package/dist/{src → _cjs/src}/codec/hash.js +1 -0
  49. package/dist/_cjs/src/codec/hash.js.map +1 -0
  50. package/dist/{src → _cjs/src}/codec/index.js +1 -0
  51. package/dist/_cjs/src/codec/index.js.map +1 -0
  52. package/dist/{src → _cjs/src}/codec/input-codec.js +1 -0
  53. package/dist/_cjs/src/codec/input-codec.js.map +1 -0
  54. package/dist/{src → _cjs/src}/codec/instr-codec.js +1 -0
  55. package/dist/_cjs/src/codec/instr-codec.js.map +1 -0
  56. package/dist/{src → _cjs/src}/codec/int-as-4bytes-codec.js +1 -0
  57. package/dist/_cjs/src/codec/int-as-4bytes-codec.js.map +1 -0
  58. package/dist/{src → _cjs/src}/codec/lockup-script-codec.js +1 -0
  59. package/dist/_cjs/src/codec/lockup-script-codec.js.map +1 -0
  60. package/dist/{src → _cjs/src}/codec/method-codec.js +1 -0
  61. package/dist/_cjs/src/codec/method-codec.js.map +1 -0
  62. package/dist/{src → _cjs/src}/codec/option-codec.js +1 -0
  63. package/dist/_cjs/src/codec/option-codec.js.map +1 -0
  64. package/dist/{src → _cjs/src}/codec/output-codec.js +1 -0
  65. package/dist/_cjs/src/codec/output-codec.js.map +1 -0
  66. package/dist/{src → _cjs/src}/codec/reader.js +1 -0
  67. package/dist/_cjs/src/codec/reader.js.map +1 -0
  68. package/dist/{src → _cjs/src}/codec/script-codec.js +1 -0
  69. package/dist/_cjs/src/codec/script-codec.js.map +1 -0
  70. package/dist/{src → _cjs/src}/codec/signature-codec.js +1 -0
  71. package/dist/_cjs/src/codec/signature-codec.js.map +1 -0
  72. package/dist/{src → _cjs/src}/codec/timestamp-codec.js +1 -0
  73. package/dist/_cjs/src/codec/timestamp-codec.js.map +1 -0
  74. package/dist/{src → _cjs/src}/codec/token-codec.js +1 -0
  75. package/dist/_cjs/src/codec/token-codec.js.map +1 -0
  76. package/dist/{src → _cjs/src}/codec/transaction-codec.js +1 -0
  77. package/dist/_cjs/src/codec/transaction-codec.js.map +1 -0
  78. package/dist/{src → _cjs/src}/codec/unlock-script-codec.js +1 -0
  79. package/dist/_cjs/src/codec/unlock-script-codec.js.map +1 -0
  80. package/dist/{src → _cjs/src}/codec/unsigned-tx-codec.js +1 -0
  81. package/dist/_cjs/src/codec/unsigned-tx-codec.js.map +1 -0
  82. package/dist/{src → _cjs/src}/codec/val.js +1 -0
  83. package/dist/_cjs/src/codec/val.js.map +1 -0
  84. package/dist/{src → _cjs/src}/constants.js +1 -0
  85. package/dist/_cjs/src/constants.js.map +1 -0
  86. package/dist/{src → _cjs/src}/contract/contract.js +1 -0
  87. package/dist/_cjs/src/contract/contract.js.map +1 -0
  88. package/dist/{src → _cjs/src}/contract/events.js +1 -0
  89. package/dist/_cjs/src/contract/events.js.map +1 -0
  90. package/dist/{src → _cjs/src}/contract/index.js +1 -0
  91. package/dist/_cjs/src/contract/index.js.map +1 -0
  92. package/dist/{src → _cjs/src}/contract/ralph.js +1 -0
  93. package/dist/_cjs/src/contract/ralph.js.map +1 -0
  94. package/dist/{src → _cjs/src}/contract/script-simulator.js +1 -0
  95. package/dist/_cjs/src/contract/script-simulator.js.map +1 -0
  96. package/dist/{src → _cjs/src}/debug.js +1 -0
  97. package/dist/_cjs/src/debug.js.map +1 -0
  98. package/dist/{src → _cjs/src}/error.js +1 -0
  99. package/dist/_cjs/src/error.js.map +1 -0
  100. package/dist/{src → _cjs/src}/exchange/exchange.js +1 -0
  101. package/dist/_cjs/src/exchange/exchange.js.map +1 -0
  102. package/dist/{src → _cjs/src}/exchange/index.js +1 -0
  103. package/dist/_cjs/src/exchange/index.js.map +1 -0
  104. package/dist/{src → _cjs/src}/global.js +1 -0
  105. package/dist/_cjs/src/global.js.map +1 -0
  106. package/dist/{src → _cjs/src}/index.js +1 -0
  107. package/dist/_cjs/src/index.js.map +1 -0
  108. package/dist/{src → _cjs/src}/signer/index.js +1 -0
  109. package/dist/_cjs/src/signer/index.js.map +1 -0
  110. package/dist/{src → _cjs/src}/signer/signer.js +1 -0
  111. package/dist/_cjs/src/signer/signer.js.map +1 -0
  112. package/dist/{src → _cjs/src}/signer/tx-builder.js +1 -0
  113. package/dist/_cjs/src/signer/tx-builder.js.map +1 -0
  114. package/dist/{src → _cjs/src}/signer/types.js +1 -0
  115. package/dist/_cjs/src/signer/types.js.map +1 -0
  116. package/dist/{src → _cjs/src}/token/index.js +1 -0
  117. package/dist/_cjs/src/token/index.js.map +1 -0
  118. package/dist/{src → _cjs/src}/token/nft.js +1 -0
  119. package/dist/_cjs/src/token/nft.js.map +1 -0
  120. package/dist/{src → _cjs/src}/transaction/index.js +1 -0
  121. package/dist/_cjs/src/transaction/index.js.map +1 -0
  122. package/dist/{src → _cjs/src}/transaction/sign-verify.js +1 -0
  123. package/dist/_cjs/src/transaction/sign-verify.js.map +1 -0
  124. package/dist/{src → _cjs/src}/transaction/status.js +1 -0
  125. package/dist/_cjs/src/transaction/status.js.map +1 -0
  126. package/dist/{src → _cjs/src}/transaction/utils.js +1 -0
  127. package/dist/_cjs/src/transaction/utils.js.map +1 -0
  128. package/dist/{src → _cjs/src}/utils/bs58.js +1 -0
  129. package/dist/_cjs/src/utils/bs58.js.map +1 -0
  130. package/dist/{src → _cjs/src}/utils/djb2.js +1 -0
  131. package/dist/_cjs/src/utils/djb2.js.map +1 -0
  132. package/dist/{src → _cjs/src}/utils/index.js +1 -0
  133. package/dist/_cjs/src/utils/index.js.map +1 -0
  134. package/dist/{src → _cjs/src}/utils/number.fixture.js +1 -0
  135. package/dist/_cjs/src/utils/number.fixture.js.map +1 -0
  136. package/dist/{src → _cjs/src}/utils/number.js +1 -0
  137. package/dist/_cjs/src/utils/number.js.map +1 -0
  138. package/dist/{src → _cjs/src}/utils/sign.js +1 -0
  139. package/dist/_cjs/src/utils/sign.js.map +1 -0
  140. package/dist/{src → _cjs/src}/utils/subscription.js +1 -0
  141. package/dist/_cjs/src/utils/subscription.js.map +1 -0
  142. package/dist/{src → _cjs/src}/utils/utils.js +1 -0
  143. package/dist/_cjs/src/utils/utils.js.map +1 -0
  144. package/dist/{src → _cjs/src}/utils/webcrypto.js +1 -0
  145. package/dist/_cjs/src/utils/webcrypto.js.map +1 -0
  146. package/dist/_esm/scripts/check-versions.js +40 -0
  147. package/dist/_esm/scripts/check-versions.js.map +1 -0
  148. package/dist/_esm/scripts/header.js +19 -0
  149. package/dist/_esm/scripts/header.js.map +1 -0
  150. package/dist/_esm/src/address/address.js +220 -0
  151. package/dist/_esm/src/address/address.js.map +1 -0
  152. package/dist/_esm/src/address/index.js +19 -0
  153. package/dist/_esm/src/address/index.js.map +1 -0
  154. package/dist/_esm/src/api/api-alephium.js +1519 -0
  155. package/dist/_esm/src/api/api-alephium.js.map +1 -0
  156. package/dist/_esm/src/api/api-explorer.js +964 -0
  157. package/dist/_esm/src/api/api-explorer.js.map +1 -0
  158. package/dist/_esm/src/api/explorer-provider.js +66 -0
  159. package/dist/_esm/src/api/explorer-provider.js.map +1 -0
  160. package/dist/_esm/src/api/index.js +24 -0
  161. package/dist/_esm/src/api/index.js.map +1 -0
  162. package/dist/_esm/src/api/node-provider.js +201 -0
  163. package/dist/_esm/src/api/node-provider.js.map +1 -0
  164. package/dist/_esm/src/api/types.js +211 -0
  165. package/dist/_esm/src/api/types.js.map +1 -0
  166. package/dist/_esm/src/api/utils.js +51 -0
  167. package/dist/_esm/src/api/utils.js.map +1 -0
  168. package/dist/_esm/src/block/block.js +145 -0
  169. package/dist/_esm/src/block/block.js.map +1 -0
  170. package/dist/_esm/src/block/index.js +19 -0
  171. package/dist/_esm/src/block/index.js.map +1 -0
  172. package/dist/_esm/src/codec/array-codec.js +42 -0
  173. package/dist/_esm/src/codec/array-codec.js.map +1 -0
  174. package/dist/_esm/src/codec/asset-output-codec.js +91 -0
  175. package/dist/_esm/src/codec/asset-output-codec.js.map +1 -0
  176. package/dist/_esm/src/codec/bigint-codec.js +94 -0
  177. package/dist/_esm/src/codec/bigint-codec.js.map +1 -0
  178. package/dist/_esm/src/codec/bytestring-codec.js +33 -0
  179. package/dist/_esm/src/codec/bytestring-codec.js.map +1 -0
  180. package/dist/_esm/src/codec/codec.js +131 -0
  181. package/dist/_esm/src/codec/codec.js.map +1 -0
  182. package/dist/_esm/src/codec/compact-int-codec.js +304 -0
  183. package/dist/_esm/src/codec/compact-int-codec.js.map +1 -0
  184. package/dist/_esm/src/codec/contract-codec.js +64 -0
  185. package/dist/_esm/src/codec/contract-codec.js.map +1 -0
  186. package/dist/_esm/src/codec/contract-output-codec.js +57 -0
  187. package/dist/_esm/src/codec/contract-output-codec.js.map +1 -0
  188. package/dist/_esm/src/codec/contract-output-ref-codec.js +26 -0
  189. package/dist/_esm/src/codec/contract-output-ref-codec.js.map +1 -0
  190. package/dist/_esm/src/codec/either-codec.js +22 -0
  191. package/dist/_esm/src/codec/either-codec.js.map +1 -0
  192. package/dist/_esm/src/codec/hash.js +32 -0
  193. package/dist/_esm/src/codec/hash.js.map +1 -0
  194. package/dist/_esm/src/codec/index.js +42 -0
  195. package/dist/_esm/src/codec/index.js.map +1 -0
  196. package/dist/_esm/src/codec/input-codec.js +33 -0
  197. package/dist/_esm/src/codec/input-codec.js.map +1 -0
  198. package/dist/_esm/src/codec/instr-codec.js +1067 -0
  199. package/dist/_esm/src/codec/instr-codec.js.map +1 -0
  200. package/dist/_esm/src/codec/int-as-4bytes-codec.js +29 -0
  201. package/dist/_esm/src/codec/int-as-4bytes-codec.js.map +1 -0
  202. package/dist/_esm/src/codec/lockup-script-codec.js +32 -0
  203. package/dist/_esm/src/codec/lockup-script-codec.js.map +1 -0
  204. package/dist/_esm/src/codec/method-codec.js +71 -0
  205. package/dist/_esm/src/codec/method-codec.js.map +1 -0
  206. package/dist/_esm/src/codec/option-codec.js +33 -0
  207. package/dist/_esm/src/codec/option-codec.js.map +1 -0
  208. package/dist/_esm/src/codec/output-codec.js +24 -0
  209. package/dist/_esm/src/codec/output-codec.js.map +1 -0
  210. package/dist/_esm/src/codec/reader.js +45 -0
  211. package/dist/_esm/src/codec/reader.js.map +1 -0
  212. package/dist/_esm/src/codec/script-codec.js +31 -0
  213. package/dist/_esm/src/codec/script-codec.js.map +1 -0
  214. package/dist/_esm/src/codec/signature-codec.js +22 -0
  215. package/dist/_esm/src/codec/signature-codec.js.map +1 -0
  216. package/dist/_esm/src/codec/timestamp-codec.js +36 -0
  217. package/dist/_esm/src/codec/timestamp-codec.js.map +1 -0
  218. package/dist/_esm/src/codec/token-codec.js +26 -0
  219. package/dist/_esm/src/codec/token-codec.js.map +1 -0
  220. package/dist/_esm/src/codec/transaction-codec.js +99 -0
  221. package/dist/_esm/src/codec/transaction-codec.js.map +1 -0
  222. package/dist/_esm/src/codec/unlock-script-codec.js +47 -0
  223. package/dist/_esm/src/codec/unlock-script-codec.js.map +1 -0
  224. package/dist/_esm/src/codec/unsigned-tx-codec.js +57 -0
  225. package/dist/_esm/src/codec/unsigned-tx-codec.js.map +1 -0
  226. package/dist/_esm/src/codec/val.js +31 -0
  227. package/dist/_esm/src/codec/val.js.map +1 -0
  228. package/dist/_esm/src/constants.js +31 -0
  229. package/dist/_esm/src/constants.js.map +1 -0
  230. package/dist/_esm/src/contract/contract.js +1361 -0
  231. package/dist/_esm/src/contract/contract.js.map +1 -0
  232. package/dist/_esm/src/contract/events.js +56 -0
  233. package/dist/_esm/src/contract/events.js.map +1 -0
  234. package/dist/_esm/src/contract/index.js +22 -0
  235. package/dist/_esm/src/contract/index.js.map +1 -0
  236. package/dist/_esm/src/contract/ralph.js +415 -0
  237. package/dist/_esm/src/contract/ralph.js.map +1 -0
  238. package/dist/_esm/src/contract/script-simulator.js +754 -0
  239. package/dist/_esm/src/contract/script-simulator.js.map +1 -0
  240. package/dist/_esm/src/debug.js +38 -0
  241. package/dist/_esm/src/debug.js.map +1 -0
  242. package/dist/_esm/src/error.js +33 -0
  243. package/dist/_esm/src/error.js.map +1 -0
  244. package/dist/_esm/src/exchange/exchange.js +119 -0
  245. package/dist/_esm/src/exchange/exchange.js.map +1 -0
  246. package/dist/_esm/src/exchange/index.js +19 -0
  247. package/dist/_esm/src/exchange/index.js.map +1 -0
  248. package/dist/_esm/src/global.js +48 -0
  249. package/dist/_esm/src/global.js.map +1 -0
  250. package/dist/_esm/src/index.js +36 -0
  251. package/dist/_esm/src/index.js.map +1 -0
  252. package/dist/_esm/src/signer/index.js +21 -0
  253. package/dist/_esm/src/signer/index.js.map +1 -0
  254. package/dist/_esm/src/signer/signer.js +206 -0
  255. package/dist/_esm/src/signer/signer.js.map +1 -0
  256. package/dist/_esm/src/signer/tx-builder.js +182 -0
  257. package/dist/_esm/src/signer/tx-builder.js.map +1 -0
  258. package/dist/_esm/src/signer/types.js +29 -0
  259. package/dist/_esm/src/signer/types.js.map +1 -0
  260. package/dist/_esm/src/token/index.js +19 -0
  261. package/dist/_esm/src/token/index.js.map +1 -0
  262. package/dist/_esm/src/token/nft.js +115 -0
  263. package/dist/_esm/src/token/nft.js.map +1 -0
  264. package/dist/_esm/src/transaction/index.js +21 -0
  265. package/dist/_esm/src/transaction/index.js.map +1 -0
  266. package/dist/_esm/src/transaction/sign-verify.js +25 -0
  267. package/dist/_esm/src/transaction/sign-verify.js.map +1 -0
  268. package/dist/_esm/src/transaction/status.js +50 -0
  269. package/dist/_esm/src/transaction/status.js.map +1 -0
  270. package/dist/_esm/src/transaction/utils.js +52 -0
  271. package/dist/_esm/src/transaction/utils.js.map +1 -0
  272. package/dist/_esm/src/utils/bs58.js +43 -0
  273. package/dist/_esm/src/utils/bs58.js.map +1 -0
  274. package/dist/_esm/src/utils/djb2.js +25 -0
  275. package/dist/_esm/src/utils/djb2.js.map +1 -0
  276. package/dist/_esm/src/utils/index.js +25 -0
  277. package/dist/_esm/src/utils/index.js.map +1 -0
  278. package/dist/_esm/src/utils/number.fixture.js +187 -0
  279. package/dist/_esm/src/utils/number.fixture.js.map +1 -0
  280. package/dist/_esm/src/utils/number.js +139 -0
  281. package/dist/_esm/src/utils/number.js.map +1 -0
  282. package/dist/_esm/src/utils/sign.js +62 -0
  283. package/dist/_esm/src/utils/sign.js.map +1 -0
  284. package/dist/_esm/src/utils/subscription.js +48 -0
  285. package/dist/_esm/src/utils/subscription.js.map +1 -0
  286. package/dist/_esm/src/utils/utils.js +144 -0
  287. package/dist/_esm/src/utils/utils.js.map +1 -0
  288. package/dist/_esm/src/utils/webcrypto.js +38 -0
  289. package/dist/_esm/src/utils/webcrypto.js.map +1 -0
  290. package/dist/_types/scripts/check-versions.d.ts +2 -0
  291. package/dist/_types/scripts/check-versions.d.ts.map +1 -0
  292. package/dist/_types/scripts/header.d.ts +1 -0
  293. package/dist/_types/scripts/header.d.ts.map +1 -0
  294. package/dist/{src → _types/src}/address/address.d.ts +1 -0
  295. package/dist/_types/src/address/address.d.ts.map +1 -0
  296. package/dist/_types/src/address/index.d.ts +2 -0
  297. package/dist/_types/src/address/index.d.ts.map +1 -0
  298. package/dist/{src → _types/src}/api/api-alephium.d.ts +1 -0
  299. package/dist/_types/src/api/api-alephium.d.ts.map +1 -0
  300. package/dist/{src → _types/src}/api/api-explorer.d.ts +1 -0
  301. package/dist/_types/src/api/api-explorer.d.ts.map +1 -0
  302. package/dist/{src → _types/src}/api/explorer-provider.d.ts +1 -0
  303. package/dist/_types/src/api/explorer-provider.d.ts.map +1 -0
  304. package/dist/{src → _types/src}/api/index.d.ts +1 -0
  305. package/dist/_types/src/api/index.d.ts.map +1 -0
  306. package/dist/{src → _types/src}/api/node-provider.d.ts +1 -0
  307. package/dist/_types/src/api/node-provider.d.ts.map +1 -0
  308. package/dist/{src → _types/src}/api/types.d.ts +1 -0
  309. package/dist/_types/src/api/types.d.ts.map +1 -0
  310. package/dist/{src → _types/src}/api/utils.d.ts +1 -0
  311. package/dist/_types/src/api/utils.d.ts.map +1 -0
  312. package/dist/{src → _types/src}/block/block.d.ts +1 -0
  313. package/dist/_types/src/block/block.d.ts.map +1 -0
  314. package/dist/{src → _types/src}/block/index.d.ts +1 -0
  315. package/dist/_types/src/block/index.d.ts.map +1 -0
  316. package/dist/{src → _types/src}/codec/array-codec.d.ts +1 -0
  317. package/dist/_types/src/codec/array-codec.d.ts.map +1 -0
  318. package/dist/{src → _types/src}/codec/asset-output-codec.d.ts +1 -0
  319. package/dist/_types/src/codec/asset-output-codec.d.ts.map +1 -0
  320. package/dist/{src → _types/src}/codec/bigint-codec.d.ts +1 -0
  321. package/dist/_types/src/codec/bigint-codec.d.ts.map +1 -0
  322. package/dist/{src → _types/src}/codec/bytestring-codec.d.ts +1 -0
  323. package/dist/_types/src/codec/bytestring-codec.d.ts.map +1 -0
  324. package/dist/{src → _types/src}/codec/codec.d.ts +1 -0
  325. package/dist/_types/src/codec/codec.d.ts.map +1 -0
  326. package/dist/{src → _types/src}/codec/compact-int-codec.d.ts +1 -0
  327. package/dist/_types/src/codec/compact-int-codec.d.ts.map +1 -0
  328. package/dist/{src → _types/src}/codec/contract-codec.d.ts +1 -0
  329. package/dist/_types/src/codec/contract-codec.d.ts.map +1 -0
  330. package/dist/{src → _types/src}/codec/contract-output-codec.d.ts +1 -0
  331. package/dist/_types/src/codec/contract-output-codec.d.ts.map +1 -0
  332. package/dist/{src → _types/src}/codec/contract-output-ref-codec.d.ts +1 -0
  333. package/dist/_types/src/codec/contract-output-ref-codec.d.ts.map +1 -0
  334. package/dist/{src → _types/src}/codec/either-codec.d.ts +1 -0
  335. package/dist/_types/src/codec/either-codec.d.ts.map +1 -0
  336. package/dist/{src → _types/src}/codec/hash.d.ts +1 -0
  337. package/dist/_types/src/codec/hash.d.ts.map +1 -0
  338. package/dist/{src → _types/src}/codec/index.d.ts +1 -0
  339. package/dist/_types/src/codec/index.d.ts.map +1 -0
  340. package/dist/{src → _types/src}/codec/input-codec.d.ts +1 -0
  341. package/dist/_types/src/codec/input-codec.d.ts.map +1 -0
  342. package/dist/{src → _types/src}/codec/instr-codec.d.ts +1 -0
  343. package/dist/_types/src/codec/instr-codec.d.ts.map +1 -0
  344. package/dist/{src → _types/src}/codec/int-as-4bytes-codec.d.ts +1 -0
  345. package/dist/_types/src/codec/int-as-4bytes-codec.d.ts.map +1 -0
  346. package/dist/{src → _types/src}/codec/lockup-script-codec.d.ts +1 -0
  347. package/dist/_types/src/codec/lockup-script-codec.d.ts.map +1 -0
  348. package/dist/{src → _types/src}/codec/method-codec.d.ts +1 -0
  349. package/dist/_types/src/codec/method-codec.d.ts.map +1 -0
  350. package/dist/{src → _types/src}/codec/option-codec.d.ts +1 -0
  351. package/dist/_types/src/codec/option-codec.d.ts.map +1 -0
  352. package/dist/{src → _types/src}/codec/output-codec.d.ts +1 -0
  353. package/dist/_types/src/codec/output-codec.d.ts.map +1 -0
  354. package/dist/{src → _types/src}/codec/reader.d.ts +1 -0
  355. package/dist/_types/src/codec/reader.d.ts.map +1 -0
  356. package/dist/{src → _types/src}/codec/script-codec.d.ts +1 -0
  357. package/dist/_types/src/codec/script-codec.d.ts.map +1 -0
  358. package/dist/{src → _types/src}/codec/signature-codec.d.ts +1 -0
  359. package/dist/_types/src/codec/signature-codec.d.ts.map +1 -0
  360. package/dist/{src → _types/src}/codec/timestamp-codec.d.ts +1 -0
  361. package/dist/_types/src/codec/timestamp-codec.d.ts.map +1 -0
  362. package/dist/{src → _types/src}/codec/token-codec.d.ts +1 -0
  363. package/dist/_types/src/codec/token-codec.d.ts.map +1 -0
  364. package/dist/{src → _types/src}/codec/transaction-codec.d.ts +1 -0
  365. package/dist/_types/src/codec/transaction-codec.d.ts.map +1 -0
  366. package/dist/{src → _types/src}/codec/unlock-script-codec.d.ts +1 -0
  367. package/dist/_types/src/codec/unlock-script-codec.d.ts.map +1 -0
  368. package/dist/{src → _types/src}/codec/unsigned-tx-codec.d.ts +1 -0
  369. package/dist/_types/src/codec/unsigned-tx-codec.d.ts.map +1 -0
  370. package/dist/{src → _types/src}/codec/val.d.ts +1 -0
  371. package/dist/_types/src/codec/val.d.ts.map +1 -0
  372. package/dist/{src → _types/src}/constants.d.ts +1 -0
  373. package/dist/_types/src/constants.d.ts.map +1 -0
  374. package/dist/{src → _types/src}/contract/contract.d.ts +1 -0
  375. package/dist/_types/src/contract/contract.d.ts.map +1 -0
  376. package/dist/{src → _types/src}/contract/events.d.ts +1 -0
  377. package/dist/_types/src/contract/events.d.ts.map +1 -0
  378. package/dist/{src → _types/src}/contract/index.d.ts +1 -0
  379. package/dist/_types/src/contract/index.d.ts.map +1 -0
  380. package/dist/{src → _types/src}/contract/ralph.d.ts +1 -0
  381. package/dist/_types/src/contract/ralph.d.ts.map +1 -0
  382. package/dist/{src → _types/src}/contract/script-simulator.d.ts +1 -0
  383. package/dist/_types/src/contract/script-simulator.d.ts.map +1 -0
  384. package/dist/{src → _types/src}/debug.d.ts +1 -0
  385. package/dist/_types/src/debug.d.ts.map +1 -0
  386. package/dist/{src → _types/src}/error.d.ts +1 -0
  387. package/dist/_types/src/error.d.ts.map +1 -0
  388. package/dist/{src → _types/src}/exchange/exchange.d.ts +1 -0
  389. package/dist/_types/src/exchange/exchange.d.ts.map +1 -0
  390. package/dist/{src → _types/src}/exchange/index.d.ts +1 -0
  391. package/dist/_types/src/exchange/index.d.ts.map +1 -0
  392. package/dist/{src → _types/src}/global.d.ts +1 -0
  393. package/dist/_types/src/global.d.ts.map +1 -0
  394. package/dist/{src → _types/src}/index.d.ts +1 -0
  395. package/dist/_types/src/index.d.ts.map +1 -0
  396. package/dist/{src → _types/src}/signer/index.d.ts +1 -0
  397. package/dist/_types/src/signer/index.d.ts.map +1 -0
  398. package/dist/{src → _types/src}/signer/signer.d.ts +1 -0
  399. package/dist/_types/src/signer/signer.d.ts.map +1 -0
  400. package/dist/{src → _types/src}/signer/tx-builder.d.ts +1 -0
  401. package/dist/_types/src/signer/tx-builder.d.ts.map +1 -0
  402. package/dist/{src → _types/src}/signer/types.d.ts +1 -0
  403. package/dist/_types/src/signer/types.d.ts.map +1 -0
  404. package/dist/_types/src/token/index.d.ts +2 -0
  405. package/dist/_types/src/token/index.d.ts.map +1 -0
  406. package/dist/{src → _types/src}/token/nft.d.ts +1 -0
  407. package/dist/_types/src/token/nft.d.ts.map +1 -0
  408. package/dist/{src → _types/src}/transaction/index.d.ts +1 -0
  409. package/dist/_types/src/transaction/index.d.ts.map +1 -0
  410. package/dist/{src → _types/src}/transaction/sign-verify.d.ts +1 -0
  411. package/dist/_types/src/transaction/sign-verify.d.ts.map +1 -0
  412. package/dist/{src → _types/src}/transaction/status.d.ts +1 -0
  413. package/dist/_types/src/transaction/status.d.ts.map +1 -0
  414. package/dist/{src → _types/src}/transaction/utils.d.ts +1 -0
  415. package/dist/_types/src/transaction/utils.d.ts.map +1 -0
  416. package/dist/{src → _types/src}/utils/bs58.d.ts +1 -0
  417. package/dist/_types/src/utils/bs58.d.ts.map +1 -0
  418. package/dist/{src → _types/src}/utils/djb2.d.ts +1 -0
  419. package/dist/_types/src/utils/djb2.d.ts.map +1 -0
  420. package/dist/{src → _types/src}/utils/index.d.ts +1 -0
  421. package/dist/_types/src/utils/index.d.ts.map +1 -0
  422. package/dist/{src → _types/src}/utils/number.d.ts +1 -0
  423. package/dist/_types/src/utils/number.d.ts.map +1 -0
  424. package/dist/{src → _types/src}/utils/number.fixture.d.ts +1 -0
  425. package/dist/_types/src/utils/number.fixture.d.ts.map +1 -0
  426. package/dist/{src → _types/src}/utils/sign.d.ts +1 -0
  427. package/dist/_types/src/utils/sign.d.ts.map +1 -0
  428. package/dist/{src → _types/src}/utils/subscription.d.ts +1 -0
  429. package/dist/_types/src/utils/subscription.d.ts.map +1 -0
  430. package/dist/{src → _types/src}/utils/utils.d.ts +1 -0
  431. package/dist/_types/src/utils/utils.d.ts.map +1 -0
  432. package/dist/{src → _types/src}/utils/webcrypto.d.ts +1 -0
  433. package/dist/_types/src/utils/webcrypto.d.ts.map +1 -0
  434. package/dist/_umd/alephium-web3.min.js +2 -0
  435. package/dist/_umd/alephium-web3.min.js.map +1 -0
  436. package/package.json +21 -23
  437. package/{webpack.config.js → webpack.config.cjs} +2 -2
  438. package/dist/alephium-web3.min.js +0 -3
  439. package/dist/alephium-web3.min.js.LICENSE.txt +0 -12
  440. package/dist/alephium-web3.min.js.map +0 -1
  441. package/dist/scripts/check-versions.d.ts +0 -1
  442. package/dist/scripts/header.d.ts +0 -0
  443. package/dist/src/address/index.d.ts +0 -1
  444. package/dist/src/token/index.d.ts +0 -1
@@ -0,0 +1,182 @@
1
+ /*
2
+ Copyright 2018 - 2022 The Alephium Authors
3
+ This file is part of the alephium project.
4
+
5
+ The library is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ The library is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with the library. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import { binToHex, hexToBinUnsafe } from '../utils';
19
+ import { fromApiNumber256, NodeProvider, toApiNumber256Optional, toApiTokens } from '../api';
20
+ import { addressFromPublicKey, contractIdFromAddress } from '../address';
21
+ import { toApiDestinations } from './signer';
22
+ import { unsignedTxCodec } from '../codec';
23
+ import { groupIndexOfTransaction } from '../transaction';
24
+ import { blakeHash } from '../codec/hash';
25
+ export class TransactionBuilder {
26
+ static from(param0, param1, customFetch) {
27
+ const nodeProvider = typeof param0 === 'string' ? new NodeProvider(param0, param1, customFetch) : param0;
28
+ return new (class extends TransactionBuilder {
29
+ get nodeProvider() {
30
+ return nodeProvider;
31
+ }
32
+ })();
33
+ }
34
+ static validatePublicKey(params, publicKey, keyType) {
35
+ const address = addressFromPublicKey(publicKey, keyType);
36
+ if (address !== params.signerAddress) {
37
+ throw new Error('Unmatched public key');
38
+ }
39
+ }
40
+ async buildTransferTx(params, publicKey) {
41
+ const data = this.buildTransferTxParams(params, publicKey);
42
+ const response = await this.nodeProvider.transactions.postTransactionsBuild(data);
43
+ return this.convertTransferTxResult(response);
44
+ }
45
+ async buildDeployContractTx(params, publicKey) {
46
+ const data = this.buildDeployContractTxParams(params, publicKey);
47
+ const response = await this.nodeProvider.contracts.postContractsUnsignedTxDeployContract(data);
48
+ return this.convertDeployContractTxResult(response);
49
+ }
50
+ async buildExecuteScriptTx(params, publicKey) {
51
+ const data = this.buildExecuteScriptTxParams(params, publicKey);
52
+ const response = await this.nodeProvider.contracts.postContractsUnsignedTxExecuteScript(data);
53
+ return this.convertExecuteScriptTxResult(response);
54
+ }
55
+ async buildChainedTx(params, publicKeys) {
56
+ if (params.length !== publicKeys.length) {
57
+ throw new Error('The number of build chained transaction parameters must match the number of public keys provided');
58
+ }
59
+ const data = params.map((param, index) => {
60
+ const paramType = param.type;
61
+ switch (paramType) {
62
+ case 'Transfer': {
63
+ const value = this.buildTransferTxParams(param, publicKeys[index]);
64
+ return { type: paramType, value };
65
+ }
66
+ case 'DeployContract': {
67
+ const value = this.buildDeployContractTxParams(param, publicKeys[index]);
68
+ return { type: paramType, value };
69
+ }
70
+ case 'ExecuteScript': {
71
+ const value = this.buildExecuteScriptTxParams(param, publicKeys[index]);
72
+ return { type: paramType, value };
73
+ }
74
+ default:
75
+ throw new Error(`Unsupported transaction type: ${paramType}`);
76
+ }
77
+ });
78
+ const buildChainedTxsResponse = await this.nodeProvider.transactions.postTransactionsBuildChained(data);
79
+ const results = buildChainedTxsResponse.map((buildResult) => {
80
+ const buildResultType = buildResult.type;
81
+ switch (buildResultType) {
82
+ case 'Transfer': {
83
+ const buildTransferTxResult = buildResult.value;
84
+ return {
85
+ ...this.convertTransferTxResult(buildTransferTxResult),
86
+ type: buildResultType
87
+ };
88
+ }
89
+ case 'DeployContract': {
90
+ const buildDeployContractTxResult = buildResult.value;
91
+ return {
92
+ ...this.convertDeployContractTxResult(buildDeployContractTxResult),
93
+ type: buildResultType
94
+ };
95
+ }
96
+ case 'ExecuteScript': {
97
+ const buildExecuteScriptTxResult = buildResult.value;
98
+ return {
99
+ ...this.convertExecuteScriptTxResult(buildExecuteScriptTxResult),
100
+ type: buildResultType
101
+ };
102
+ }
103
+ default:
104
+ throw new Error(`Unexpected transaction type: ${buildResultType} for ${buildResult.value.txId}`);
105
+ }
106
+ });
107
+ return results;
108
+ }
109
+ buildUnsignedTx(params) {
110
+ const unsignedTxBin = hexToBinUnsafe(params.unsignedTx);
111
+ const decoded = unsignedTxCodec.decode(unsignedTxBin);
112
+ const txId = binToHex(blakeHash(unsignedTxBin));
113
+ const [fromGroup, toGroup] = groupIndexOfTransaction(decoded);
114
+ return {
115
+ fromGroup: fromGroup,
116
+ toGroup: toGroup,
117
+ unsignedTx: params.unsignedTx,
118
+ txId: txId,
119
+ gasAmount: decoded.gasAmount,
120
+ gasPrice: decoded.gasPrice
121
+ };
122
+ }
123
+ buildTransferTxParams(params, publicKey) {
124
+ TransactionBuilder.validatePublicKey(params, publicKey, params.signerKeyType);
125
+ const { destinations, gasPrice, ...rest } = params;
126
+ return {
127
+ fromPublicKey: publicKey,
128
+ fromPublicKeyType: params.signerKeyType,
129
+ destinations: toApiDestinations(destinations),
130
+ gasPrice: toApiNumber256Optional(gasPrice),
131
+ ...rest
132
+ };
133
+ }
134
+ buildDeployContractTxParams(params, publicKey) {
135
+ TransactionBuilder.validatePublicKey(params, publicKey, params.signerKeyType);
136
+ const { initialAttoAlphAmount, initialTokenAmounts, issueTokenAmount, gasPrice, ...rest } = params;
137
+ return {
138
+ fromPublicKey: publicKey,
139
+ fromPublicKeyType: params.signerKeyType,
140
+ initialAttoAlphAmount: toApiNumber256Optional(initialAttoAlphAmount),
141
+ initialTokenAmounts: toApiTokens(initialTokenAmounts),
142
+ issueTokenAmount: toApiNumber256Optional(issueTokenAmount),
143
+ gasPrice: toApiNumber256Optional(gasPrice),
144
+ ...rest
145
+ };
146
+ }
147
+ buildExecuteScriptTxParams(params, publicKey) {
148
+ TransactionBuilder.validatePublicKey(params, publicKey, params.signerKeyType);
149
+ const { attoAlphAmount, tokens, gasPrice, ...rest } = params;
150
+ return {
151
+ fromPublicKey: publicKey,
152
+ fromPublicKeyType: params.signerKeyType,
153
+ attoAlphAmount: toApiNumber256Optional(attoAlphAmount),
154
+ tokens: toApiTokens(tokens),
155
+ gasPrice: toApiNumber256Optional(gasPrice),
156
+ ...rest
157
+ };
158
+ }
159
+ convertTransferTxResult(result) {
160
+ return {
161
+ ...result,
162
+ gasPrice: fromApiNumber256(result.gasPrice)
163
+ };
164
+ }
165
+ convertDeployContractTxResult(result) {
166
+ const contractId = binToHex(contractIdFromAddress(result.contractAddress));
167
+ return {
168
+ ...result,
169
+ groupIndex: result.fromGroup,
170
+ contractId,
171
+ gasPrice: fromApiNumber256(result.gasPrice)
172
+ };
173
+ }
174
+ convertExecuteScriptTxResult(result) {
175
+ return {
176
+ ...result,
177
+ groupIndex: result.fromGroup,
178
+ gasPrice: fromApiNumber256(result.gasPrice)
179
+ };
180
+ }
181
+ }
182
+ //# sourceMappingURL=tx-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx-builder.js","sourceRoot":"","sources":["../../../../src/signer/tx-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /*
2
+ Copyright 2018 - 2022 The Alephium Authors
3
+ This file is part of the alephium project.
4
+
5
+ The library is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ The library is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with the library. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import { assertType } from '../utils';
19
+ assertType;
20
+ assertType();
21
+ assertType();
22
+ assertType();
23
+ assertType();
24
+ assertType();
25
+ assertType();
26
+ assertType();
27
+ assertType;
28
+ assertType();
29
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/signer/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAgBE;AAIF,OAAO,EAAM,UAAU,EAAa,MAAM,UAAU,CAAA;AAapD,UAAyD,CAAA;AAuBzD,UAAU,EAA6E,CAAA;AAUvF,UAAU,EAAoE,CAAA;AAa9E,UAAU,EAAyF,CAAA;AAWnG,UAAU,EAKP,CAAA;AAYH,UAAU,EAAuF,CAAA;AASjG,UAAU,EAKP,CAAA;AAOH,UAAU,EAAoE,CAAA;AAU9E,UAA0D,CAAA;AAkC1D,UAAU,EAA4F,CAAA"}
@@ -0,0 +1,19 @@
1
+ /*
2
+ Copyright 2018 - 2022 The Alephium Authors
3
+ This file is part of the alephium project.
4
+
5
+ The library is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ The library is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with the library. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ export * from './nft';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/token/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAgBE;AAEF,cAAc,OAAO,CAAA"}
@@ -0,0 +1,115 @@
1
+ /*
2
+ Copyright 2018 - 2022 The Alephium Authors
3
+ This file is part of the alephium project.
4
+
5
+ The library is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ The library is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with the library. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ // JSON Schema for the NFT metadata, which is pointed to by the value
19
+ // returned from the `getTokenUri` method of the NFT contract
20
+ import 'cross-fetch/polyfill';
21
+ import { TraceableError } from '../error';
22
+ export const validNFTTokenUriMetaDataFields = ['name', 'description', 'image', 'attributes'];
23
+ export const validNFTTokenUriMetaDataAttributesFields = ['trait_type', 'value'];
24
+ export const validNFTUriMetaDataAttributeTypes = ['string', 'number', 'boolean'];
25
+ export const validNFTCollectionUriMetaDataFields = ['name', 'description', 'image'];
26
+ export function validateNFTTokenUriMetaData(metadata) {
27
+ Object.keys(metadata).forEach((key) => {
28
+ if (!validNFTTokenUriMetaDataFields.includes(key)) {
29
+ throw new Error(`Invalid field ${key}, only ${validNFTTokenUriMetaDataFields} are allowed`);
30
+ }
31
+ });
32
+ const name = validateNonEmptyString(metadata, 'name');
33
+ const description = validateNonEmptyStringIfExists(metadata, 'description');
34
+ const image = validateNonEmptyString(metadata, 'image');
35
+ const attributes = validateNFTTokenUriMetaDataAttributes(metadata['attributes']);
36
+ return { name, description, image, attributes };
37
+ }
38
+ export function validateNFTCollectionUriMetaData(metadata) {
39
+ Object.keys(metadata).forEach((key) => {
40
+ if (!validNFTCollectionUriMetaDataFields.includes(key)) {
41
+ throw new Error(`Invalid field ${key}, only ${validNFTCollectionUriMetaDataFields} are allowed`);
42
+ }
43
+ });
44
+ const name = validateNonEmptyString(metadata, 'name');
45
+ const description = validateNonEmptyString(metadata, 'description');
46
+ const image = validateNonEmptyString(metadata, 'image');
47
+ return { name, description, image };
48
+ }
49
+ export async function validateNFTBaseUri(nftBaseUri, maxSupply) {
50
+ if (isInteger(maxSupply) && maxSupply > 0) {
51
+ const nftMetadataz = [];
52
+ for (let i = 0; i < maxSupply; i++) {
53
+ const nftMetadata = await fetchNFTMetadata(nftBaseUri, i);
54
+ const validatedNFTMetadata = validateNFTTokenUriMetaData(nftMetadata);
55
+ nftMetadataz.push(validatedNFTMetadata);
56
+ }
57
+ return nftMetadataz;
58
+ }
59
+ else {
60
+ throw new Error('maxSupply should be a positive integer');
61
+ }
62
+ }
63
+ function validateNFTTokenUriMetaDataAttributes(attributes) {
64
+ if (!!attributes) {
65
+ if (!Array.isArray(attributes)) {
66
+ throw new Error(`Field 'attributes' should be an array`);
67
+ }
68
+ attributes.forEach((item) => {
69
+ if (typeof item !== 'object') {
70
+ throw new Error(`Field 'attributes' should be an array of objects`);
71
+ }
72
+ Object.keys(item).forEach((key) => {
73
+ if (!validNFTTokenUriMetaDataAttributesFields.includes(key)) {
74
+ throw new Error(`Invalid field ${key} for attributes, only ${validNFTTokenUriMetaDataAttributesFields} are allowed`);
75
+ }
76
+ });
77
+ validateNonEmptyString(item, 'trait_type');
78
+ validateNonEmptyAttributeValue(item, 'value');
79
+ });
80
+ }
81
+ return attributes;
82
+ }
83
+ function validateNonEmptyString(obj, field) {
84
+ const value = obj[`${field}`];
85
+ if (!(typeof value === 'string' && value !== '')) {
86
+ throw new Error(`JSON field '${field}' is not a non empty string`);
87
+ }
88
+ return value;
89
+ }
90
+ function validateNonEmptyStringIfExists(obj, field) {
91
+ const value = obj[`${field}`];
92
+ if (value !== undefined && !(typeof value === 'string' && value !== '')) {
93
+ throw new Error(`JSON field '${field}' is not a non empty string`);
94
+ }
95
+ return value;
96
+ }
97
+ function validateNonEmptyAttributeValue(obj, field) {
98
+ const value = obj[`${field}`];
99
+ if (!((typeof value === 'string' && value !== '') || typeof value === 'number' || typeof value === 'boolean')) {
100
+ throw new Error(`Attribute value should be a non empty string, number or boolean`);
101
+ }
102
+ return value;
103
+ }
104
+ async function fetchNFTMetadata(nftBaseUri, index) {
105
+ try {
106
+ return await (await fetch(`${nftBaseUri}${index}`)).json();
107
+ }
108
+ catch (e) {
109
+ throw new TraceableError(`Error fetching NFT metadata from ${nftBaseUri}${index}`, e);
110
+ }
111
+ }
112
+ function isInteger(num) {
113
+ return num === parseInt(num.toString(), 10);
114
+ }
115
+ //# sourceMappingURL=nft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nft.js","sourceRoot":"","sources":["../../../../src/token/nft.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /*
2
+ Copyright 2018 - 2022 The Alephium Authors
3
+ This file is part of the alephium project.
4
+
5
+ The library is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ The library is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with the library. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ export * from './status';
19
+ export * from './sign-verify';
20
+ export * from './utils';
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/transaction/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAgBE;AAEF,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA"}
@@ -0,0 +1,25 @@
1
+ /*
2
+ Copyright 2018 - 2022 The Alephium Authors
3
+ This file is part of the alephium project.
4
+
5
+ The library is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ The library is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with the library. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import * as utils from '../utils';
19
+ export function transactionSign(txId, privateKey, keyType) {
20
+ return utils.sign(txId, privateKey, keyType);
21
+ }
22
+ export function transactionVerifySignature(txId, publicKey, signature, keyType) {
23
+ return utils.verifySignature(txId, publicKey, signature, keyType);
24
+ }
25
+ //# sourceMappingURL=sign-verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign-verify.js","sourceRoot":"","sources":["../../../../src/transaction/sign-verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAgBE;AAEF,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AAGjC,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,UAAkB,EAAE,OAAiB;IACjF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAAY,EACZ,SAAiB,EACjB,SAAiB,EACjB,OAAiB;IAEjB,OAAO,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AACnE,CAAC"}
@@ -0,0 +1,50 @@
1
+ /*
2
+ Copyright 2018 - 2022 The Alephium Authors
3
+ This file is part of the alephium project.
4
+
5
+ The library is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ The library is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with the library. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import * as web3 from '../global';
19
+ import { Subscription } from '../utils';
20
+ export class TxStatusSubscription extends Subscription {
21
+ constructor(options, txId, fromGroup, toGroup, confirmations) {
22
+ super(options);
23
+ this.txId = txId;
24
+ this.fromGroup = fromGroup;
25
+ this.toGroup = toGroup;
26
+ this.confirmations = confirmations ?? 1;
27
+ }
28
+ async polling() {
29
+ try {
30
+ const txStatus = await web3.getCurrentNodeProvider().transactions.getTransactionsStatus({
31
+ txId: this.txId,
32
+ fromGroup: this.fromGroup,
33
+ toGroup: this.toGroup
34
+ });
35
+ await this.messageCallback(txStatus);
36
+ if (txStatus.type === 'Confirmed' && txStatus.chainConfirmations >= this.confirmations) {
37
+ this.unsubscribe();
38
+ }
39
+ }
40
+ catch (err) {
41
+ await this.errorCallback(err, this);
42
+ }
43
+ }
44
+ }
45
+ export function subscribeToTxStatus(options, txId, fromGroup, toGroup, confirmations) {
46
+ const subscription = new TxStatusSubscription(options, txId, fromGroup, toGroup, confirmations);
47
+ subscription.subscribe();
48
+ return subscription;
49
+ }
50
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/transaction/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAgBE;AAEF,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,YAAY,EAAoB,MAAM,UAAU,CAAA;AAIzD,MAAM,OAAO,oBAAqB,SAAQ,YAAsB;IAM9D,YACE,OAAmC,EACnC,IAAY,EACZ,SAAkB,EAClB,OAAgB,EAChB,aAAsB;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,CAAC,CAAA;IACzC,CAAC;IAEQ,KAAK,CAAC,OAAO;QACpB,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC;gBACtF,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAA;YAEF,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;YACpC,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAK,QAA2B,CAAC,kBAAkB,IAAI,IAAI,CAAC,aAAa,EAAE;gBAC1G,IAAI,CAAC,WAAW,EAAE,CAAA;aACnB;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;SACpC;IACH,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAmC,EACnC,IAAY,EACZ,SAAkB,EAClB,OAAgB,EAChB,aAAsB;IAEtB,MAAM,YAAY,GAAG,IAAI,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;IAC/F,YAAY,CAAC,SAAS,EAAE,CAAA;IACxB,OAAO,YAAY,CAAA;AACrB,CAAC"}
@@ -0,0 +1,52 @@
1
+ /*
2
+ Copyright 2018 - 2022 The Alephium Authors
3
+ This file is part of the alephium project.
4
+
5
+ The library is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ The library is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with the library. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import { groupOfLockupScript } from '../address';
19
+ import { TOTAL_NUMBER_OF_GROUPS } from '../constants';
20
+ import { getCurrentNodeProvider } from '../global';
21
+ import { xorByte } from '../utils';
22
+ function isConfirmed(txStatus) {
23
+ return txStatus.type === 'Confirmed';
24
+ }
25
+ export async function waitForTxConfirmation(txId, confirmations, requestInterval) {
26
+ const provider = getCurrentNodeProvider();
27
+ const status = await provider.transactions.getTransactionsStatus({ txId: txId });
28
+ if (isConfirmed(status) && status.chainConfirmations >= confirmations) {
29
+ return status;
30
+ }
31
+ await new Promise((r) => setTimeout(r, requestInterval));
32
+ return waitForTxConfirmation(txId, confirmations, requestInterval);
33
+ }
34
+ export function groupIndexOfTransaction(unsignedTx) {
35
+ if (unsignedTx.inputs.length === 0)
36
+ throw new Error('Empty inputs for unsignedTx');
37
+ const fromGroup = groupFromHint(unsignedTx.inputs[0].hint);
38
+ let toGroup = fromGroup;
39
+ for (const output of unsignedTx.fixedOutputs) {
40
+ const outputGroup = groupOfLockupScript(output.lockupScript);
41
+ if (outputGroup !== fromGroup) {
42
+ toGroup = outputGroup;
43
+ break;
44
+ }
45
+ }
46
+ return [fromGroup, toGroup];
47
+ }
48
+ function groupFromHint(hint) {
49
+ const hash = xorByte(hint);
50
+ return hash % TOTAL_NUMBER_OF_GROUPS;
51
+ }
52
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/transaction/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAgBE;AAEF,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,SAAS,WAAW,CAAC,QAAuB;IAC1C,OAAO,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAA;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAY,EACZ,aAAqB,EACrB,eAAuB;IAEvB,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAA;IACzC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAChF,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,kBAAkB,IAAI,aAAa,EAAE;QACrE,OAAO,MAAM,CAAA;KACd;IACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAA;IACxD,OAAO,qBAAqB,CAAC,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,UAAsB;IAC5D,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAElF,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAE1D,IAAI,OAAO,GAAG,SAAS,CAAA;IACvB,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,YAAY,EAAE;QAC5C,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAC5D,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,OAAO,GAAG,WAAW,CAAA;YACrB,MAAK;SACN;KACF;IAED,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,OAAO,IAAI,GAAG,sBAAsB,CAAA;AACtC,CAAC"}
@@ -0,0 +1,43 @@
1
+ /*
2
+ Copyright 2018 - 2022 The Alephium Authors
3
+ This file is part of the alephium project.
4
+
5
+ The library is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ The library is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with the library. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ /** This source is under MIT License and come originally from https://github.com/cryptocoinjs/bs58 **/
19
+ import basex from 'base-x';
20
+ import { TraceableError } from '../error';
21
+ const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
22
+ export const bs58 = basex(ALPHABET);
23
+ export function isBase58(s) {
24
+ if (s === '' || s.trim() === '') {
25
+ return false;
26
+ }
27
+ try {
28
+ return bs58.encode(bs58.decode(s)) === s;
29
+ }
30
+ catch (err) {
31
+ return false;
32
+ }
33
+ }
34
+ export function base58ToBytes(s) {
35
+ try {
36
+ return bs58.decode(s);
37
+ }
38
+ catch (e) {
39
+ throw new TraceableError(`Invalid base58 string ${s}`, e);
40
+ }
41
+ }
42
+ export default bs58;
43
+ //# sourceMappingURL=bs58.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bs58.js","sourceRoot":"","sources":["../../../../src/utils/bs58.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAgBE;AAEF,sGAAsG;AACtG,OAAO,KAAK,MAAM,QAAQ,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,QAAQ,GAAG,4DAA4D,CAAA;AAE7E,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AAEnC,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC/B,OAAO,KAAK,CAAA;KACb;IACD,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;KACzC;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACtB;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,cAAc,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;KAC1D;AACH,CAAC;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,25 @@
1
+ /*
2
+ Copyright 2018 - 2022 The Alephium Authors
3
+ This file is part of the alephium project.
4
+
5
+ The library is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ The library is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with the library. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ export default function djb2(bytes) {
19
+ let hash = 5381;
20
+ for (let i = 0; i < bytes.length; i++) {
21
+ hash = (hash << 5) + hash + (bytes[`${i}`] & 0xff);
22
+ }
23
+ return hash;
24
+ }
25
+ //# sourceMappingURL=djb2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"djb2.js","sourceRoot":"","sources":["../../../../src/utils/djb2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAgBE;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAiB;IAC5C,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;KACnD;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,25 @@
1
+ /*
2
+ Copyright 2018 - 2022 The Alephium Authors
3
+ This file is part of the alephium project.
4
+
5
+ The library is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ The library is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with the library. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ export * from './webcrypto';
19
+ export * from './bs58';
20
+ export * from './djb2';
21
+ export * from './utils';
22
+ export * from './subscription';
23
+ export * from './sign';
24
+ export * from './number';
25
+ //# sourceMappingURL=index.js.map