phantasma-sdk-ts 0.1.71

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 (478) hide show
  1. package/.eslintignore +13 -0
  2. package/.eslintrc.cjs +15 -0
  3. package/.github/workflows/npm-publish.yml +47 -0
  4. package/.prettierignore +13 -0
  5. package/.prettierrc +8 -0
  6. package/LICENSE +201 -0
  7. package/README.md +842 -0
  8. package/babel.config.js +6 -0
  9. package/core/index.d.ts +10 -0
  10. package/core/index.d.ts.map +1 -0
  11. package/core/index.js +25 -0
  12. package/core/interfaces/IContract.d.ts +27 -0
  13. package/core/interfaces/IContract.d.ts.map +1 -0
  14. package/core/interfaces/IContract.js +25 -0
  15. package/core/interfaces/IKeyPair.d.ts +7 -0
  16. package/core/interfaces/IKeyPair.d.ts.map +1 -0
  17. package/core/interfaces/IKeyPair.js +2 -0
  18. package/core/interfaces/ISerializable.d.ts +6 -0
  19. package/core/interfaces/ISerializable.d.ts.map +1 -0
  20. package/core/interfaces/ISerializable.js +9 -0
  21. package/core/interfaces/IStack.d.ts +7 -0
  22. package/core/interfaces/IStack.d.ts.map +1 -0
  23. package/core/interfaces/IStack.js +2 -0
  24. package/core/interfaces/IToken.d.ts +29 -0
  25. package/core/interfaces/IToken.d.ts.map +1 -0
  26. package/core/interfaces/IToken.js +22 -0
  27. package/core/interfaces/Signature.d.ts +21 -0
  28. package/core/interfaces/Signature.d.ts.map +1 -0
  29. package/core/interfaces/Signature.js +31 -0
  30. package/core/interfaces/index.d.ts +7 -0
  31. package/core/interfaces/index.d.ts.map +1 -0
  32. package/core/interfaces/index.js +22 -0
  33. package/core/ledger/Address-Transcode.d.ts +20 -0
  34. package/core/ledger/Address-Transcode.d.ts.map +1 -0
  35. package/core/ledger/Address-Transcode.js +70 -0
  36. package/core/ledger/Ledger-Commands.d.ts +76 -0
  37. package/core/ledger/Ledger-Commands.d.ts.map +1 -0
  38. package/core/ledger/Ledger-Commands.js +530 -0
  39. package/core/ledger/Ledger-Utils.d.ts +74 -0
  40. package/core/ledger/Ledger-Utils.d.ts.map +1 -0
  41. package/core/ledger/Ledger-Utils.js +609 -0
  42. package/core/ledger/LedgerConfig.d.ts +17 -0
  43. package/core/ledger/LedgerConfig.d.ts.map +1 -0
  44. package/core/ledger/LedgerConfig.js +2 -0
  45. package/core/ledger/Mnemonic.d.ts +35 -0
  46. package/core/ledger/Mnemonic.d.ts.map +1 -0
  47. package/core/ledger/Mnemonic.js +65 -0
  48. package/core/ledger/Transaction-Sign.d.ts +10 -0
  49. package/core/ledger/Transaction-Sign.d.ts.map +1 -0
  50. package/core/ledger/Transaction-Sign.js +149 -0
  51. package/core/ledger/Transaction-Transcode.d.ts +24 -0
  52. package/core/ledger/Transaction-Transcode.d.ts.map +1 -0
  53. package/core/ledger/Transaction-Transcode.js +47 -0
  54. package/core/ledger/index.d.ts +9 -0
  55. package/core/ledger/index.d.ts.map +1 -0
  56. package/core/ledger/index.js +24 -0
  57. package/core/ledger/interfaces/ApplicationNameResponse.d.ts +6 -0
  58. package/core/ledger/interfaces/ApplicationNameResponse.d.ts.map +1 -0
  59. package/core/ledger/interfaces/ApplicationNameResponse.js +2 -0
  60. package/core/ledger/interfaces/Device.d.ts +7 -0
  61. package/core/ledger/interfaces/Device.d.ts.map +1 -0
  62. package/core/ledger/interfaces/Device.js +2 -0
  63. package/core/ledger/interfaces/DeviceResponse.d.ts +7 -0
  64. package/core/ledger/interfaces/DeviceResponse.d.ts.map +1 -0
  65. package/core/ledger/interfaces/DeviceResponse.js +2 -0
  66. package/core/ledger/interfaces/Ledger.d.ts +2 -0
  67. package/core/ledger/interfaces/Ledger.d.ts.map +1 -0
  68. package/core/ledger/interfaces/Ledger.js +2 -0
  69. package/core/ledger/interfaces/LedgerBalanceFromLedgerResponse.d.ts +12 -0
  70. package/core/ledger/interfaces/LedgerBalanceFromLedgerResponse.d.ts.map +1 -0
  71. package/core/ledger/interfaces/LedgerBalanceFromLedgerResponse.js +2 -0
  72. package/core/ledger/interfaces/LedgerConfig.d.ts +17 -0
  73. package/core/ledger/interfaces/LedgerConfig.d.ts.map +1 -0
  74. package/core/ledger/interfaces/LedgerConfig.js +2 -0
  75. package/core/ledger/interfaces/LedgerDeviceInfoResponse.d.ts +7 -0
  76. package/core/ledger/interfaces/LedgerDeviceInfoResponse.d.ts.map +1 -0
  77. package/core/ledger/interfaces/LedgerDeviceInfoResponse.js +2 -0
  78. package/core/ledger/interfaces/LedgerSendTransactionResponse.d.ts +5 -0
  79. package/core/ledger/interfaces/LedgerSendTransactionResponse.d.ts.map +1 -0
  80. package/core/ledger/interfaces/LedgerSendTransactionResponse.js +2 -0
  81. package/core/ledger/interfaces/LedgerSigner.d.ts +6 -0
  82. package/core/ledger/interfaces/LedgerSigner.d.ts.map +1 -0
  83. package/core/ledger/interfaces/LedgerSigner.js +2 -0
  84. package/core/ledger/interfaces/LedgerSignerData.d.ts +8 -0
  85. package/core/ledger/interfaces/LedgerSignerData.d.ts.map +1 -0
  86. package/core/ledger/interfaces/LedgerSignerData.js +2 -0
  87. package/core/ledger/interfaces/PublicKeyResponse.d.ts +6 -0
  88. package/core/ledger/interfaces/PublicKeyResponse.d.ts.map +1 -0
  89. package/core/ledger/interfaces/PublicKeyResponse.js +2 -0
  90. package/core/ledger/interfaces/SignResponse.d.ts +6 -0
  91. package/core/ledger/interfaces/SignResponse.d.ts.map +1 -0
  92. package/core/ledger/interfaces/SignResponse.js +2 -0
  93. package/core/ledger/interfaces/VersionResponse.d.ts +6 -0
  94. package/core/ledger/interfaces/VersionResponse.d.ts.map +1 -0
  95. package/core/ledger/interfaces/VersionResponse.js +2 -0
  96. package/core/ledger/interfaces/index.d.ts +14 -0
  97. package/core/ledger/interfaces/index.d.ts.map +1 -0
  98. package/core/ledger/interfaces/index.js +29 -0
  99. package/core/ledger/ledger-comm.d.ts +85 -0
  100. package/core/ledger/ledger-comm.d.ts.map +1 -0
  101. package/core/ledger/ledger-comm.js +613 -0
  102. package/core/link/easyConnect.d.ts +23 -0
  103. package/core/link/easyConnect.d.ts.map +1 -0
  104. package/core/link/easyConnect.js +237 -0
  105. package/core/link/easyScript.d.ts +13 -0
  106. package/core/link/easyScript.d.ts.map +1 -0
  107. package/core/link/easyScript.js +52 -0
  108. package/core/link/index.d.ts +2 -0
  109. package/core/link/index.d.ts.map +1 -0
  110. package/core/link/index.js +17 -0
  111. package/core/link/interfaces/IAccount.d.ts +13 -0
  112. package/core/link/interfaces/IAccount.d.ts.map +1 -0
  113. package/core/link/interfaces/IAccount.js +2 -0
  114. package/core/link/interfaces/IFile.d.ts +7 -0
  115. package/core/link/interfaces/IFile.d.ts.map +1 -0
  116. package/core/link/interfaces/IFile.js +2 -0
  117. package/core/link/interfaces/ProofOfWork.d.ts +9 -0
  118. package/core/link/interfaces/ProofOfWork.d.ts.map +1 -0
  119. package/core/link/interfaces/ProofOfWork.js +12 -0
  120. package/core/link/interfaces/index.d.ts +4 -0
  121. package/core/link/interfaces/index.d.ts.map +1 -0
  122. package/core/link/interfaces/index.js +19 -0
  123. package/core/link/phantasmaLink.d.ts +41 -0
  124. package/core/link/phantasmaLink.d.ts.map +1 -0
  125. package/core/link/phantasmaLink.js +479 -0
  126. package/core/rpc/index.d.ts +3 -0
  127. package/core/rpc/index.d.ts.map +1 -0
  128. package/core/rpc/index.js +18 -0
  129. package/core/rpc/interfaces/ABIContract.d.ts +6 -0
  130. package/core/rpc/interfaces/ABIContract.d.ts.map +1 -0
  131. package/core/rpc/interfaces/ABIContract.js +2 -0
  132. package/core/rpc/interfaces/ABIEvent.d.ts +7 -0
  133. package/core/rpc/interfaces/ABIEvent.d.ts.map +1 -0
  134. package/core/rpc/interfaces/ABIEvent.js +2 -0
  135. package/core/rpc/interfaces/ABIMethod.d.ts +7 -0
  136. package/core/rpc/interfaces/ABIMethod.d.ts.map +1 -0
  137. package/core/rpc/interfaces/ABIMethod.js +2 -0
  138. package/core/rpc/interfaces/ABIParameter.d.ts +5 -0
  139. package/core/rpc/interfaces/ABIParameter.d.ts.map +1 -0
  140. package/core/rpc/interfaces/ABIParameter.js +2 -0
  141. package/core/rpc/interfaces/Account.d.ts +16 -0
  142. package/core/rpc/interfaces/Account.d.ts.map +1 -0
  143. package/core/rpc/interfaces/Account.js +2 -0
  144. package/core/rpc/interfaces/AccountTransactions.d.ts +6 -0
  145. package/core/rpc/interfaces/AccountTransactions.d.ts.map +1 -0
  146. package/core/rpc/interfaces/AccountTransactions.js +2 -0
  147. package/core/rpc/interfaces/Archive.d.ts +11 -0
  148. package/core/rpc/interfaces/Archive.d.ts.map +1 -0
  149. package/core/rpc/interfaces/Archive.js +2 -0
  150. package/core/rpc/interfaces/Auction.d.ts +13 -0
  151. package/core/rpc/interfaces/Auction.d.ts.map +1 -0
  152. package/core/rpc/interfaces/Auction.js +2 -0
  153. package/core/rpc/interfaces/Balance.d.ts +8 -0
  154. package/core/rpc/interfaces/Balance.d.ts.map +1 -0
  155. package/core/rpc/interfaces/Balance.js +2 -0
  156. package/core/rpc/interfaces/Block.d.ts +17 -0
  157. package/core/rpc/interfaces/Block.d.ts.map +1 -0
  158. package/core/rpc/interfaces/Block.js +2 -0
  159. package/core/rpc/interfaces/Chain.d.ts +10 -0
  160. package/core/rpc/interfaces/Chain.d.ts.map +1 -0
  161. package/core/rpc/interfaces/Chain.js +2 -0
  162. package/core/rpc/interfaces/Channel.d.ts +13 -0
  163. package/core/rpc/interfaces/Channel.d.ts.map +1 -0
  164. package/core/rpc/interfaces/Channel.js +2 -0
  165. package/core/rpc/interfaces/Contract.d.ts +11 -0
  166. package/core/rpc/interfaces/Contract.d.ts.map +1 -0
  167. package/core/rpc/interfaces/Contract.js +2 -0
  168. package/core/rpc/interfaces/Dapp.d.ts +6 -0
  169. package/core/rpc/interfaces/Dapp.d.ts.map +1 -0
  170. package/core/rpc/interfaces/Dapp.js +2 -0
  171. package/core/rpc/interfaces/Event.d.ts +7 -0
  172. package/core/rpc/interfaces/Event.d.ts.map +1 -0
  173. package/core/rpc/interfaces/Event.js +2 -0
  174. package/core/rpc/interfaces/Governance.d.ts +5 -0
  175. package/core/rpc/interfaces/Governance.d.ts.map +1 -0
  176. package/core/rpc/interfaces/Governance.js +2 -0
  177. package/core/rpc/interfaces/Interop.d.ts +5 -0
  178. package/core/rpc/interfaces/Interop.d.ts.map +1 -0
  179. package/core/rpc/interfaces/Interop.js +2 -0
  180. package/core/rpc/interfaces/KeyValue.d.ts +5 -0
  181. package/core/rpc/interfaces/KeyValue.d.ts.map +1 -0
  182. package/core/rpc/interfaces/KeyValue.js +2 -0
  183. package/core/rpc/interfaces/Leaderboard.d.ts +6 -0
  184. package/core/rpc/interfaces/Leaderboard.d.ts.map +1 -0
  185. package/core/rpc/interfaces/Leaderboard.js +2 -0
  186. package/core/rpc/interfaces/LeaderboardRow.d.ts +5 -0
  187. package/core/rpc/interfaces/LeaderboardRow.d.ts.map +1 -0
  188. package/core/rpc/interfaces/LeaderboardRow.js +2 -0
  189. package/core/rpc/interfaces/NFT.d.ts +14 -0
  190. package/core/rpc/interfaces/NFT.d.ts.map +1 -0
  191. package/core/rpc/interfaces/NFT.js +2 -0
  192. package/core/rpc/interfaces/Nexus.d.ts +14 -0
  193. package/core/rpc/interfaces/Nexus.d.ts.map +1 -0
  194. package/core/rpc/interfaces/Nexus.js +2 -0
  195. package/core/rpc/interfaces/Oracle.d.ts +5 -0
  196. package/core/rpc/interfaces/Oracle.d.ts.map +1 -0
  197. package/core/rpc/interfaces/Oracle.js +2 -0
  198. package/core/rpc/interfaces/Organization.d.ts +6 -0
  199. package/core/rpc/interfaces/Organization.d.ts.map +1 -0
  200. package/core/rpc/interfaces/Organization.js +2 -0
  201. package/core/rpc/interfaces/Paginated.d.ts +8 -0
  202. package/core/rpc/interfaces/Paginated.d.ts.map +1 -0
  203. package/core/rpc/interfaces/Paginated.js +2 -0
  204. package/core/rpc/interfaces/Peer.d.ts +8 -0
  205. package/core/rpc/interfaces/Peer.d.ts.map +1 -0
  206. package/core/rpc/interfaces/Peer.js +2 -0
  207. package/core/rpc/interfaces/Platform.d.ts +9 -0
  208. package/core/rpc/interfaces/Platform.d.ts.map +1 -0
  209. package/core/rpc/interfaces/Platform.js +2 -0
  210. package/core/rpc/interfaces/Receipt.d.ts +10 -0
  211. package/core/rpc/interfaces/Receipt.d.ts.map +1 -0
  212. package/core/rpc/interfaces/Receipt.js +2 -0
  213. package/core/rpc/interfaces/Script.d.ts +9 -0
  214. package/core/rpc/interfaces/Script.d.ts.map +1 -0
  215. package/core/rpc/interfaces/Script.js +2 -0
  216. package/core/rpc/interfaces/SendRawTx.d.ts +5 -0
  217. package/core/rpc/interfaces/SendRawTx.d.ts.map +1 -0
  218. package/core/rpc/interfaces/SendRawTx.js +2 -0
  219. package/core/rpc/interfaces/SignatureResult.d.ts +5 -0
  220. package/core/rpc/interfaces/SignatureResult.d.ts.map +1 -0
  221. package/core/rpc/interfaces/SignatureResult.js +2 -0
  222. package/core/rpc/interfaces/Stake.d.ts +6 -0
  223. package/core/rpc/interfaces/Stake.d.ts.map +1 -0
  224. package/core/rpc/interfaces/Stake.js +2 -0
  225. package/core/rpc/interfaces/Storage.d.ts +8 -0
  226. package/core/rpc/interfaces/Storage.d.ts.map +1 -0
  227. package/core/rpc/interfaces/Storage.js +2 -0
  228. package/core/rpc/interfaces/Swap.d.ts +13 -0
  229. package/core/rpc/interfaces/Swap.d.ts.map +1 -0
  230. package/core/rpc/interfaces/Swap.js +2 -0
  231. package/core/rpc/interfaces/Token.d.ts +19 -0
  232. package/core/rpc/interfaces/Token.d.ts.map +1 -0
  233. package/core/rpc/interfaces/Token.js +2 -0
  234. package/core/rpc/interfaces/TokenData.d.ts +13 -0
  235. package/core/rpc/interfaces/TokenData.d.ts.map +1 -0
  236. package/core/rpc/interfaces/TokenData.js +2 -0
  237. package/core/rpc/interfaces/TokenExternal.d.ts +5 -0
  238. package/core/rpc/interfaces/TokenExternal.d.ts.map +1 -0
  239. package/core/rpc/interfaces/TokenExternal.js +2 -0
  240. package/core/rpc/interfaces/TokenPrice.d.ts +8 -0
  241. package/core/rpc/interfaces/TokenPrice.d.ts.map +1 -0
  242. package/core/rpc/interfaces/TokenPrice.js +2 -0
  243. package/core/rpc/interfaces/TokenSeries.d.ts +12 -0
  244. package/core/rpc/interfaces/TokenSeries.d.ts.map +1 -0
  245. package/core/rpc/interfaces/TokenSeries.js +2 -0
  246. package/core/rpc/interfaces/TransactionData.d.ts +23 -0
  247. package/core/rpc/interfaces/TransactionData.d.ts.map +1 -0
  248. package/core/rpc/interfaces/TransactionData.js +2 -0
  249. package/core/rpc/interfaces/Validator.d.ts +5 -0
  250. package/core/rpc/interfaces/Validator.d.ts.map +1 -0
  251. package/core/rpc/interfaces/Validator.js +2 -0
  252. package/core/rpc/interfaces/index.d.ts +42 -0
  253. package/core/rpc/interfaces/index.d.ts.map +1 -0
  254. package/core/rpc/interfaces/index.js +57 -0
  255. package/core/rpc/phantasma.d.ts +89 -0
  256. package/core/rpc/phantasma.d.ts.map +1 -0
  257. package/core/rpc/phantasma.js +900 -0
  258. package/core/tx/SignatureKind.js +9 -0
  259. package/core/tx/Transaction.d.ts +28 -0
  260. package/core/tx/Transaction.d.ts.map +1 -0
  261. package/core/tx/Transaction.js +209 -0
  262. package/core/tx/index.d.ts +3 -0
  263. package/core/tx/index.d.ts.map +1 -0
  264. package/core/tx/index.js +18 -0
  265. package/core/tx/utils.d.ts +10 -0
  266. package/core/tx/utils.d.ts.map +1 -0
  267. package/core/tx/utils.js +147 -0
  268. package/core/types/Address.d.ts +41 -0
  269. package/core/types/Address.d.ts.map +1 -0
  270. package/core/types/Address.js +276 -0
  271. package/core/types/Consensus.d.ts +61 -0
  272. package/core/types/Consensus.d.ts.map +1 -0
  273. package/core/types/Consensus.js +151 -0
  274. package/core/types/Contract.d.ts +60 -0
  275. package/core/types/Contract.d.ts.map +1 -0
  276. package/core/types/Contract.js +342 -0
  277. package/core/types/DomainSettings.d.ts +87 -0
  278. package/core/types/DomainSettings.d.ts.map +1 -0
  279. package/core/types/DomainSettings.js +107 -0
  280. package/core/types/Ed25519Signature.d.ts +16 -0
  281. package/core/types/Ed25519Signature.d.ts.map +1 -0
  282. package/core/types/Ed25519Signature.js +78 -0
  283. package/core/types/Entropy.d.ts +5 -0
  284. package/core/types/Entropy.d.ts.map +1 -0
  285. package/core/types/Entropy.js +24 -0
  286. package/core/types/Extensions/Base16.d.ts +7 -0
  287. package/core/types/Extensions/Base16.d.ts.map +1 -0
  288. package/core/types/Extensions/Base16.js +36 -0
  289. package/core/types/Extensions/BinaryReader.d.ts +17 -0
  290. package/core/types/Extensions/BinaryReader.d.ts.map +1 -0
  291. package/core/types/Extensions/BinaryReader.js +192 -0
  292. package/core/types/Extensions/BinaryWriter.d.ts +25 -0
  293. package/core/types/Extensions/BinaryWriter.d.ts.map +1 -0
  294. package/core/types/Extensions/BinaryWriter.js +191 -0
  295. package/core/types/Extensions/Describer.d.ts +5 -0
  296. package/core/types/Extensions/Describer.d.ts.map +1 -0
  297. package/core/types/Extensions/Describer.js +25 -0
  298. package/core/types/Extensions/PBinaryReader.d.ts +42 -0
  299. package/core/types/Extensions/PBinaryReader.d.ts.map +1 -0
  300. package/core/types/Extensions/PBinaryReader.js +269 -0
  301. package/core/types/Extensions/PBinaryWriter.d.ts +49 -0
  302. package/core/types/Extensions/PBinaryWriter.d.ts.map +1 -0
  303. package/core/types/Extensions/PBinaryWriter.js +250 -0
  304. package/core/types/Extensions/TableColumns.d.ts +5 -0
  305. package/core/types/Extensions/TableColumns.d.ts.map +1 -0
  306. package/core/types/Extensions/TableColumns.js +22 -0
  307. package/core/types/Extensions/index.d.ts +5 -0
  308. package/core/types/Extensions/index.d.ts.map +1 -0
  309. package/core/types/Extensions/index.js +20 -0
  310. package/core/types/PhantasmaKeys.d.ts +19 -0
  311. package/core/types/PhantasmaKeys.d.ts.map +1 -0
  312. package/core/types/PhantasmaKeys.js +92 -0
  313. package/core/types/Serialization.d.ts +22 -0
  314. package/core/types/Serialization.d.ts.map +1 -0
  315. package/core/types/Serialization.js +195 -0
  316. package/core/types/Stack.d.ts +16 -0
  317. package/core/types/Stack.d.ts.map +1 -0
  318. package/core/types/Stack.js +42 -0
  319. package/core/types/Timestamp.d.ts +26 -0
  320. package/core/types/Timestamp.d.ts.map +1 -0
  321. package/core/types/Timestamp.js +74 -0
  322. package/core/types/index.d.ts +12 -0
  323. package/core/types/index.d.ts.map +1 -0
  324. package/core/types/index.js +27 -0
  325. package/core/utils/index.d.ts +25 -0
  326. package/core/utils/index.d.ts.map +1 -0
  327. package/core/utils/index.js +236 -0
  328. package/core/vm/Contracts.d.ts +17 -0
  329. package/core/vm/Contracts.d.ts.map +1 -0
  330. package/core/vm/Contracts.js +20 -0
  331. package/core/vm/Decoder.d.ts +19 -0
  332. package/core/vm/Decoder.d.ts.map +1 -0
  333. package/core/vm/Decoder.js +175 -0
  334. package/core/vm/EventData.d.ts +97 -0
  335. package/core/vm/EventData.d.ts.map +1 -0
  336. package/core/vm/EventData.js +134 -0
  337. package/core/vm/Opcode.d.ts +57 -0
  338. package/core/vm/Opcode.d.ts.map +1 -0
  339. package/core/vm/Opcode.js +69 -0
  340. package/core/vm/ScriptBuilder.d.ts +65 -0
  341. package/core/vm/ScriptBuilder.d.ts.map +1 -0
  342. package/core/vm/ScriptBuilder.js +592 -0
  343. package/core/vm/VMObject.d.ts +55 -0
  344. package/core/vm/VMObject.d.ts.map +1 -0
  345. package/core/vm/VMObject.js +1101 -0
  346. package/core/vm/VMType.d.ts +12 -0
  347. package/core/vm/VMType.d.ts.map +1 -0
  348. package/core/vm/VMType.js +15 -0
  349. package/core/vm/index.d.ts +8 -0
  350. package/core/vm/index.d.ts.map +1 -0
  351. package/core/vm/index.js +23 -0
  352. package/html/TestWebPage.html +187 -0
  353. package/html/phantasma.js +60504 -0
  354. package/index.d.ts +5 -0
  355. package/index.d.ts.map +1 -0
  356. package/index.js +36 -0
  357. package/jest.config.js +5 -0
  358. package/package.json +67 -0
  359. package/src/core/index.ts +9 -0
  360. package/src/core/interfaces/IContract.ts +28 -0
  361. package/src/core/interfaces/IKeyPair.ts +14 -0
  362. package/src/core/interfaces/ISerializable.ts +6 -0
  363. package/src/core/interfaces/IStack.ts +6 -0
  364. package/src/core/interfaces/IToken.ts +31 -0
  365. package/src/core/interfaces/Signature.ts +32 -0
  366. package/src/core/interfaces/index.ts +6 -0
  367. package/src/core/ledger/Address-Transcode.ts +44 -0
  368. package/src/core/ledger/Ledger-Commands.ts +463 -0
  369. package/src/core/ledger/Ledger-Utils.ts +549 -0
  370. package/src/core/ledger/Mnemonic.ts +79 -0
  371. package/src/core/ledger/Transaction-Sign.ts +126 -0
  372. package/src/core/ledger/Transaction-Transcode.ts +56 -0
  373. package/src/core/ledger/index.ts +8 -0
  374. package/src/core/ledger/interfaces/ApplicationNameResponse.ts +5 -0
  375. package/src/core/ledger/interfaces/Device.ts +6 -0
  376. package/src/core/ledger/interfaces/DeviceResponse.ts +6 -0
  377. package/src/core/ledger/interfaces/Ledger.ts +10 -0
  378. package/src/core/ledger/interfaces/LedgerBalanceFromLedgerResponse.ts +9 -0
  379. package/src/core/ledger/interfaces/LedgerConfig.ts +17 -0
  380. package/src/core/ledger/interfaces/LedgerDeviceInfoResponse.ts +7 -0
  381. package/src/core/ledger/interfaces/LedgerSendTransactionResponse.ts +4 -0
  382. package/src/core/ledger/interfaces/LedgerSigner.ts +6 -0
  383. package/src/core/ledger/interfaces/LedgerSignerData.ts +8 -0
  384. package/src/core/ledger/interfaces/PublicKeyResponse.ts +5 -0
  385. package/src/core/ledger/interfaces/SignResponse.ts +5 -0
  386. package/src/core/ledger/interfaces/VersionResponse.ts +5 -0
  387. package/src/core/ledger/interfaces/index.ts +13 -0
  388. package/src/core/link/easyConnect.ts +214 -0
  389. package/src/core/link/easyScript.ts +67 -0
  390. package/src/core/link/index.ts +1 -0
  391. package/src/core/link/interfaces/IAccount.ts +13 -0
  392. package/src/core/link/interfaces/IFile.ts +6 -0
  393. package/src/core/link/interfaces/ProofOfWork.ts +8 -0
  394. package/src/core/link/interfaces/index.ts +3 -0
  395. package/src/core/link/phantasmaLink.ts +561 -0
  396. package/src/core/rpc/index.ts +2 -0
  397. package/src/core/rpc/interfaces/ABIContract.ts +6 -0
  398. package/src/core/rpc/interfaces/ABIEvent.ts +6 -0
  399. package/src/core/rpc/interfaces/ABIMethod.ts +7 -0
  400. package/src/core/rpc/interfaces/ABIParameter.ts +4 -0
  401. package/src/core/rpc/interfaces/Account.ts +16 -0
  402. package/src/core/rpc/interfaces/AccountTransactions.ts +6 -0
  403. package/src/core/rpc/interfaces/Archive.ts +10 -0
  404. package/src/core/rpc/interfaces/Auction.ts +12 -0
  405. package/src/core/rpc/interfaces/Balance.ts +7 -0
  406. package/src/core/rpc/interfaces/Block.ts +17 -0
  407. package/src/core/rpc/interfaces/Chain.ts +9 -0
  408. package/src/core/rpc/interfaces/Channel.ts +12 -0
  409. package/src/core/rpc/interfaces/Contract.ts +11 -0
  410. package/src/core/rpc/interfaces/Dapp.ts +5 -0
  411. package/src/core/rpc/interfaces/Event.ts +6 -0
  412. package/src/core/rpc/interfaces/Governance.ts +4 -0
  413. package/src/core/rpc/interfaces/Interop.ts +4 -0
  414. package/src/core/rpc/interfaces/KeyValue.ts +4 -0
  415. package/src/core/rpc/interfaces/Leaderboard.ts +6 -0
  416. package/src/core/rpc/interfaces/LeaderboardRow.ts +4 -0
  417. package/src/core/rpc/interfaces/NFT.ts +14 -0
  418. package/src/core/rpc/interfaces/Nexus.ts +14 -0
  419. package/src/core/rpc/interfaces/Oracle.ts +4 -0
  420. package/src/core/rpc/interfaces/Organization.ts +5 -0
  421. package/src/core/rpc/interfaces/Paginated.ts +7 -0
  422. package/src/core/rpc/interfaces/Peer.ts +7 -0
  423. package/src/core/rpc/interfaces/Platform.ts +9 -0
  424. package/src/core/rpc/interfaces/Receipt.ts +9 -0
  425. package/src/core/rpc/interfaces/Script.ts +9 -0
  426. package/src/core/rpc/interfaces/SendRawTx.ts +4 -0
  427. package/src/core/rpc/interfaces/SignatureResult.ts +4 -0
  428. package/src/core/rpc/interfaces/Stake.ts +5 -0
  429. package/src/core/rpc/interfaces/Storage.ts +8 -0
  430. package/src/core/rpc/interfaces/Swap.ts +12 -0
  431. package/src/core/rpc/interfaces/Token.ts +19 -0
  432. package/src/core/rpc/interfaces/TokenData.ts +12 -0
  433. package/src/core/rpc/interfaces/TokenExternal.ts +4 -0
  434. package/src/core/rpc/interfaces/TokenPrice.ts +7 -0
  435. package/src/core/rpc/interfaces/TokenSeries.ts +12 -0
  436. package/src/core/rpc/interfaces/TransactionData.ts +23 -0
  437. package/src/core/rpc/interfaces/Validator.ts +4 -0
  438. package/src/core/rpc/interfaces/index.ts +41 -0
  439. package/src/core/rpc/phantasma.ts +466 -0
  440. package/src/core/tx/Transaction.ts +258 -0
  441. package/src/core/tx/index.ts +2 -0
  442. package/src/core/tx/utils.ts +106 -0
  443. package/src/core/types/Address.ts +290 -0
  444. package/src/core/types/Consensus.ts +181 -0
  445. package/src/core/types/Contract.ts +324 -0
  446. package/src/core/types/DomainSettings.ts +128 -0
  447. package/src/core/types/Ed25519Signature.ts +78 -0
  448. package/src/core/types/Entropy.ts +16 -0
  449. package/src/core/types/Extensions/Base16.ts +36 -0
  450. package/src/core/types/Extensions/Describer.ts +17 -0
  451. package/src/core/types/Extensions/PBinaryReader.ts +247 -0
  452. package/src/core/types/Extensions/PBinaryWriter.ts +278 -0
  453. package/src/core/types/Extensions/index.ts +4 -0
  454. package/src/core/types/PhantasmaKeys.ts +119 -0
  455. package/src/core/types/Serialization.ts +211 -0
  456. package/src/core/types/Stack.ts +46 -0
  457. package/src/core/types/Timestamp.ts +93 -0
  458. package/src/core/types/index.ts +11 -0
  459. package/src/core/utils/index.ts +206 -0
  460. package/src/core/vm/Contracts.ts +17 -0
  461. package/src/core/vm/Decoder.ts +162 -0
  462. package/src/core/vm/Disassembler.ts +1 -0
  463. package/src/core/vm/EventData.ts +135 -0
  464. package/src/core/vm/Opcode.ts +74 -0
  465. package/src/core/vm/ScriptBuilder.ts +588 -0
  466. package/src/core/vm/VMObject.ts +1162 -0
  467. package/src/core/vm/VMType.ts +11 -0
  468. package/src/core/vm/index.ts +7 -0
  469. package/src/core/vm/utils/DisasmMethodCall.ts +22 -0
  470. package/src/core/vm/utils/DisasmUtils.ts +89 -0
  471. package/src/core/vm/utils/index.ts +2 -0
  472. package/src/index.ts +7 -0
  473. package/tests/VMObject.test.ts +146 -0
  474. package/tests/ledger/Address-Transacode.test.ts +26 -0
  475. package/tests/tx/Transaction.test.ts +274 -0
  476. package/tests/types/Address.test.ts +26 -0
  477. package/tests/types/Consensus.test.ts +67 -0
  478. package/tsconfig.json +29 -0
@@ -0,0 +1,613 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.SignLedger = exports.decodeSignature = exports.splitMessageIntoChunks = exports.chunkString = exports.GetPublicKey = exports.GetBip44PathMessage = exports.GetVersion = exports.GetApplicationName = exports.GetDevice = exports.GetErrorMessage = exports.hex2ascii = exports.ErrorDescriptions = exports.Bip44Path = exports.MAX_SIGNED_TX_LEN = void 0;
40
+ exports.MAX_SIGNED_TX_LEN = 1024;
41
+ var Debug = true;
42
+ exports.Bip44Path = '8000002C' + // 44
43
+ '8000003C' + // 60
44
+ '80000000' + // 0
45
+ '00000000' + // 0
46
+ '00000000'; // 0
47
+ exports.ErrorDescriptions = {
48
+ '530C': 'Unlock Ledger Device',
49
+ '6D02': 'App Not Open On Ledger Device',
50
+ 6511: 'App Not Open On Ledger Device',
51
+ '6E00': 'App Not Open On Ledger Device',
52
+ '6A86': 'Incorrect Pip2',
53
+ '6A87': 'Wrong Data Length',
54
+ '6A88': 'No Data Length',
55
+ '6A89': 'Wrong Main Data Length',
56
+ '6A90': 'Incorrect Pip1',
57
+ 6985: 'Tx Denied on Ledger',
58
+ '6D06': 'Tx Decoding Buffer Underflow',
59
+ B000: 'Wrong response length on Ledger Device',
60
+ B002: 'Failed to display Address on Ledger Device',
61
+ B005: 'Failed to parse Transaction on Ledger Device',
62
+ B008: 'Failed to sign Transaction on Ledger Device',
63
+ B009: 'Wrong signing parmeters on Ledger Device',
64
+ };
65
+ var hex2ascii = function (hexx) {
66
+ var hex = hexx.toString(); // force conversion
67
+ var str = '';
68
+ for (var i = 0; i < hex.length; i += 2) {
69
+ str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
70
+ }
71
+ return str;
72
+ };
73
+ exports.hex2ascii = hex2ascii;
74
+ var int2buffer = function (i) {
75
+ var hex = i.toString(16).toUpperCase();
76
+ if (hex.length % 2 === 1) {
77
+ hex = '0' + hex;
78
+ }
79
+ return Buffer.from(hex, 'hex');
80
+ };
81
+ var GetErrorMessage = function (responseStr) {
82
+ var suffix = responseStr.slice(-4);
83
+ if (exports.ErrorDescriptions[suffix] !== undefined) {
84
+ var description = exports.ErrorDescriptions[suffix];
85
+ return "[".concat(suffix, "] ").concat(responseStr, " ").concat(description);
86
+ }
87
+ else {
88
+ return "[".concat(suffix, "] ").concat(responseStr, " Unknown Error");
89
+ }
90
+ };
91
+ exports.GetErrorMessage = GetErrorMessage;
92
+ /**
93
+ * Get Device
94
+ * @param transport
95
+ * @returns
96
+ */
97
+ var GetDevice = function (transport) { return __awaiter(void 0, void 0, void 0, function () {
98
+ var supported, list, path, device;
99
+ return __generator(this, function (_a) {
100
+ switch (_a.label) {
101
+ case 0:
102
+ /* istanbul ignore if */
103
+ if (Debug) {
104
+ console.log('getDevice', 'transport', transport);
105
+ }
106
+ return [4 /*yield*/, transport.isSupported()];
107
+ case 1:
108
+ supported = _a.sent();
109
+ /* istanbul ignore if */
110
+ if (Debug) {
111
+ console.log('getDevice', 'supported', supported);
112
+ }
113
+ if (!supported) {
114
+ return [2 /*return*/, {
115
+ enabled: false,
116
+ error: true,
117
+ message: 'Your computer does not support the ledger device.',
118
+ }];
119
+ }
120
+ return [4 /*yield*/, transport.list()];
121
+ case 2:
122
+ list = _a.sent();
123
+ /* istanbul ignore if */
124
+ if (Debug) {
125
+ console.log('getDevice', 'list', list);
126
+ }
127
+ if (list.length == 0) {
128
+ return [2 /*return*/, {
129
+ enabled: false,
130
+ error: true,
131
+ message: 'No device connected.',
132
+ }];
133
+ }
134
+ path = list[0];
135
+ /* istanbul ignore if */
136
+ if (Debug) {
137
+ console.log('getDevice', 'path', path);
138
+ }
139
+ return [4 /*yield*/, transport.open(path)];
140
+ case 3:
141
+ device = _a.sent();
142
+ /* istanbul ignore if */
143
+ if (Debug) {
144
+ console.log('getDevice', 'device', device);
145
+ }
146
+ return [2 /*return*/, {
147
+ enabled: true,
148
+ error: false,
149
+ device: device,
150
+ }];
151
+ }
152
+ });
153
+ }); };
154
+ exports.GetDevice = GetDevice;
155
+ /**
156
+ * Get Application Name
157
+ * @param transport
158
+ * @returns
159
+ */
160
+ var GetApplicationName = function (transport) { return __awaiter(void 0, void 0, void 0, function () {
161
+ var device, request, response, responseStr, success, message, applicationName, error_1;
162
+ return __generator(this, function (_a) {
163
+ switch (_a.label) {
164
+ case 0: return [4 /*yield*/, (0, exports.GetDevice)(transport)];
165
+ case 1:
166
+ device = _a.sent();
167
+ if (!device.enabled) {
168
+ return [2 /*return*/, {
169
+ success: false,
170
+ message: 'Your computer does not support the ledger device.',
171
+ }];
172
+ }
173
+ _a.label = 2;
174
+ case 2:
175
+ _a.trys.push([2, 4, 5, 7]);
176
+ request = Buffer.from('E004000000', 'hex');
177
+ /* istanbul ignore if */
178
+ if (Debug) {
179
+ console.log('exchange', 'request', request.toString('hex').toUpperCase());
180
+ }
181
+ return [4 /*yield*/, device.device.exchange(request)];
182
+ case 3:
183
+ response = _a.sent();
184
+ responseStr = response.toString('hex').toUpperCase();
185
+ /* istanbul ignore if */
186
+ if (Debug) {
187
+ console.log('exchange', 'response', responseStr);
188
+ }
189
+ success = false;
190
+ message = '';
191
+ applicationName = '';
192
+ if (responseStr.endsWith('9000')) {
193
+ success = true;
194
+ message = responseStr;
195
+ applicationName = responseStr.substring(0, responseStr.length - 4);
196
+ applicationName = (0, exports.hex2ascii)(applicationName);
197
+ }
198
+ else {
199
+ message = (0, exports.GetErrorMessage)(responseStr);
200
+ }
201
+ return [2 /*return*/, {
202
+ success: success,
203
+ message: message,
204
+ applicationName: applicationName,
205
+ }];
206
+ case 4:
207
+ error_1 = _a.sent();
208
+ /* istanbul ignore if */
209
+ if (Debug) {
210
+ console.trace('getApplicationName', 'error', error_1);
211
+ }
212
+ return [2 /*return*/, {
213
+ success: false,
214
+ message: error_1.message,
215
+ }];
216
+ case 5: return [4 /*yield*/, device.device.close()];
217
+ case 6:
218
+ _a.sent();
219
+ return [7 /*endfinally*/];
220
+ case 7:
221
+ if (device.error) {
222
+ return [2 /*return*/, {
223
+ success: false,
224
+ message: device.message,
225
+ }];
226
+ }
227
+ return [2 /*return*/];
228
+ }
229
+ });
230
+ }); };
231
+ exports.GetApplicationName = GetApplicationName;
232
+ /**
233
+ * Get Version
234
+ * @param transport
235
+ * @returns
236
+ */
237
+ var GetVersion = function (transport) { return __awaiter(void 0, void 0, void 0, function () {
238
+ var device, request, response, responseStr, success, message, version, error_2;
239
+ return __generator(this, function (_a) {
240
+ switch (_a.label) {
241
+ case 0: return [4 /*yield*/, (0, exports.GetDevice)(transport)];
242
+ case 1:
243
+ device = _a.sent();
244
+ if (!device.enabled) {
245
+ return [2 /*return*/, {
246
+ success: false,
247
+ message: 'Your computer does not support the ledger device.',
248
+ }];
249
+ }
250
+ _a.label = 2;
251
+ case 2:
252
+ _a.trys.push([2, 4, 5, 7]);
253
+ request = Buffer.from('E003000000', 'hex');
254
+ /* istanbul ignore if */
255
+ if (Debug) {
256
+ console.log('exchange', 'request', request.toString('hex').toUpperCase());
257
+ }
258
+ return [4 /*yield*/, device.device.exchange(request)];
259
+ case 3:
260
+ response = _a.sent();
261
+ responseStr = response.toString('hex').toUpperCase();
262
+ /* istanbul ignore if */
263
+ if (Debug) {
264
+ console.log('exchange', 'response', responseStr);
265
+ }
266
+ success = false;
267
+ message = '';
268
+ version = '';
269
+ if (responseStr.endsWith('9000')) {
270
+ success = true;
271
+ message = responseStr;
272
+ version = responseStr.substring(0, responseStr.length - 4);
273
+ version = (0, exports.hex2ascii)(version);
274
+ }
275
+ else {
276
+ message = (0, exports.GetErrorMessage)(responseStr);
277
+ }
278
+ return [2 /*return*/, {
279
+ success: success,
280
+ message: message,
281
+ version: version,
282
+ }];
283
+ case 4:
284
+ error_2 = _a.sent();
285
+ /* istanbul ignore if */
286
+ if (Debug) {
287
+ console.trace('getVersion', 'error', error_2);
288
+ }
289
+ return [2 /*return*/, {
290
+ success: false,
291
+ message: error_2.message,
292
+ }];
293
+ case 5: return [4 /*yield*/, device.device.close()];
294
+ case 6:
295
+ _a.sent();
296
+ return [7 /*endfinally*/];
297
+ case 7:
298
+ if (device.error) {
299
+ return [2 /*return*/, {
300
+ success: false,
301
+ message: device.message,
302
+ }];
303
+ }
304
+ return [2 /*return*/];
305
+ }
306
+ });
307
+ }); };
308
+ exports.GetVersion = GetVersion;
309
+ /**
310
+ * Get Pip44 Path Message
311
+ * @param messagePrefix
312
+ * @returns
313
+ */
314
+ var GetBip44PathMessage = function (messagePrefix) {
315
+ /* istanbul ignore if */
316
+ if (messagePrefix == undefined) {
317
+ throw Error('messagePrefix is a required parameter.');
318
+ }
319
+ if (messagePrefix.length !== 4) {
320
+ throw Error('messagePrefix must be of length 4.');
321
+ }
322
+ var bip44PathBuffer = Buffer.from(exports.Bip44Path, 'hex');
323
+ var bip44PathBufferLen = 5; // bip44PathBuffer.length;
324
+ var bip44PathBufferLenBuffer = int2buffer(bip44PathBufferLen);
325
+ var payload = Buffer.concat([bip44PathBufferLenBuffer, bip44PathBuffer]);
326
+ var payloadLen = int2buffer(payload.length);
327
+ if (Debug) {
328
+ console.log('getBip44PathMessage', 'bip44PathBuffer', bip44PathBuffer.toString('hex').toUpperCase());
329
+ console.log('getBip44PathMessage', 'bip44PathBufferLen', bip44PathBufferLen);
330
+ console.log('getBip44PathMessage', 'bip44PathBufferLenBuffer', bip44PathBufferLenBuffer.toString('hex').toUpperCase());
331
+ console.log('getBip44PathMessage', 'payload', payload.toString('hex').toUpperCase());
332
+ console.log('getBip44PathMessage', 'payloadLen', payloadLen.toString('hex').toUpperCase());
333
+ }
334
+ var message = Buffer.concat([messagePrefix, payloadLen, payload]);
335
+ return message;
336
+ };
337
+ exports.GetBip44PathMessage = GetBip44PathMessage;
338
+ /**
339
+ * Get Public Key
340
+ * @param transport
341
+ * @param options
342
+ * @returns
343
+ */
344
+ var GetPublicKey = function (transport, options) { return __awaiter(void 0, void 0, void 0, function () {
345
+ var device, messagePrefix, request, response, responseStr, success, message, publicKey, error_3;
346
+ return __generator(this, function (_a) {
347
+ switch (_a.label) {
348
+ case 0:
349
+ /* istanbul ignore if */
350
+ if (transport == undefined) {
351
+ throw Error('transport is a required parameter.');
352
+ }
353
+ /* istanbul ignore if */
354
+ if (options == undefined) {
355
+ throw Error('options is a required parameter.');
356
+ }
357
+ return [4 /*yield*/, (0, exports.GetDevice)(transport)];
358
+ case 1:
359
+ device = _a.sent();
360
+ if (!device.enabled) {
361
+ return [2 /*return*/, {
362
+ success: false,
363
+ message: 'Your computer does not support the ledger device.',
364
+ }];
365
+ }
366
+ _a.label = 2;
367
+ case 2:
368
+ _a.trys.push([2, 4, 5, 7]);
369
+ messagePrefix = void 0;
370
+ if (options.verifyOnDevice) {
371
+ messagePrefix = Buffer.from('E0050100', 'hex');
372
+ }
373
+ else {
374
+ messagePrefix = Buffer.from('E0050000', 'hex');
375
+ }
376
+ request = (0, exports.GetBip44PathMessage)(messagePrefix);
377
+ /* istanbul ignore if */
378
+ if (Debug) {
379
+ console.log('exchange', 'request', request.toString('hex').toUpperCase());
380
+ }
381
+ return [4 /*yield*/, device.device.exchange(request)];
382
+ case 3:
383
+ response = _a.sent();
384
+ responseStr = response.toString('hex').toUpperCase();
385
+ /* istanbul ignore if */
386
+ if (Debug) {
387
+ console.log('exchange', 'response', responseStr);
388
+ }
389
+ success = false;
390
+ message = '';
391
+ publicKey = '';
392
+ if (responseStr.endsWith('9000')) {
393
+ success = true;
394
+ message = responseStr;
395
+ publicKey = responseStr.substring(0, 64);
396
+ }
397
+ else {
398
+ message = (0, exports.GetErrorMessage)(responseStr);
399
+ }
400
+ return [2 /*return*/, {
401
+ success: success,
402
+ message: message,
403
+ publicKey: publicKey,
404
+ }];
405
+ case 4:
406
+ error_3 = _a.sent();
407
+ /* istanbul ignore if */
408
+ if (Debug) {
409
+ console.trace('getPublicKey', 'error', error_3);
410
+ }
411
+ return [2 /*return*/, {
412
+ success: false,
413
+ message: error_3.message,
414
+ }];
415
+ case 5: return [4 /*yield*/, device.device.close()];
416
+ case 6:
417
+ _a.sent();
418
+ return [7 /*endfinally*/];
419
+ case 7:
420
+ if (device.error) {
421
+ return [2 /*return*/, {
422
+ success: false,
423
+ message: device.message,
424
+ }];
425
+ }
426
+ return [2 /*return*/, {
427
+ success: false,
428
+ message: 'Unknown Error',
429
+ }];
430
+ }
431
+ });
432
+ }); };
433
+ exports.GetPublicKey = GetPublicKey;
434
+ var chunkString = function (str, length) {
435
+ return str.match(new RegExp('.{1,' + length + '}', 'g'));
436
+ };
437
+ exports.chunkString = chunkString;
438
+ var splitMessageIntoChunks = function (ledgerMessage) {
439
+ var messages = [];
440
+ messages.push((0, exports.GetBip44PathMessage)(Buffer.from('E006' + '00' + '80', 'hex')));
441
+ if (Debug) {
442
+ console.log('splitMessageIntoChunks', 'ledgerMessage.length', ledgerMessage.length);
443
+ }
444
+ // MAX 250, as theres 5 header bytes, and max total buffer size is 255.
445
+ var bufferSize = 250 * 2;
446
+ // ledgerMessage = ledgerMessage.substring(0,bufferSize);
447
+ var chunks = (0, exports.chunkString)(ledgerMessage, bufferSize);
448
+ for (var chunkIx = 0; chunkIx < chunks.length; chunkIx++) {
449
+ var chunk = chunks[chunkIx];
450
+ var chunkNbr = chunkIx + 1;
451
+ if (Debug) {
452
+ console.log('splitMessageIntoChunks', 'chunk.length', chunk.length);
453
+ }
454
+ var p1 = chunkNbr.toString(16).padStart(2, '0');
455
+ if (Debug) {
456
+ console.log('splitMessageIntoChunks', 'p1', p1);
457
+ }
458
+ var p2 = void 0;
459
+ if (chunkNbr == chunks.length) {
460
+ // LAST
461
+ p2 = '00';
462
+ }
463
+ else {
464
+ // MORE
465
+ p2 = '80';
466
+ }
467
+ if (Debug) {
468
+ console.log('splitMessageIntoChunks', 'p2', p2);
469
+ }
470
+ var chunkLength = chunk.length / 2;
471
+ var chunkLengthHex = chunkLength.toString(16).padStart(2, '0');
472
+ if (Debug) {
473
+ console.log('splitMessageIntoChunks', 'chunkLengthHex', chunkLengthHex);
474
+ }
475
+ var messageHex = 'E006' + p1 + p2 + chunkLengthHex + chunk;
476
+ if (Debug) {
477
+ console.log('splitMessageIntoChunks', 'messageHex', messageHex);
478
+ }
479
+ var message = Buffer.from(messageHex, 'hex');
480
+ if (Debug) {
481
+ console.log('splitMessageIntoChunks', 'message', message);
482
+ }
483
+ messages.push(message);
484
+ }
485
+ return messages;
486
+ };
487
+ exports.splitMessageIntoChunks = splitMessageIntoChunks;
488
+ var decodeSignature = function (response) {
489
+ /* istanbul ignore if */
490
+ if (Debug) {
491
+ console.log('decodeSignature', 'response', response);
492
+ }
493
+ var signature = response.substring(0, 128);
494
+ /* istanbul ignore if */
495
+ if (Debug) {
496
+ console.log('decodeSignature', 'signature', signature);
497
+ }
498
+ return signature;
499
+ };
500
+ exports.decodeSignature = decodeSignature;
501
+ var SignLedger = function (transport, transactionHex) { return __awaiter(void 0, void 0, void 0, function () {
502
+ var transactionByteLength, ledgerMessage, messages, device, lastResponse, ix, message_1, response, responseStr, message_2, signature, success, message, error_4;
503
+ return __generator(this, function (_a) {
504
+ switch (_a.label) {
505
+ case 0:
506
+ /* istanbul ignore if */
507
+ if (Debug) {
508
+ console.log('sign', 'transactionHex', transactionHex);
509
+ }
510
+ transactionByteLength = Math.ceil(transactionHex.length / 2);
511
+ if (transactionByteLength > exports.MAX_SIGNED_TX_LEN) {
512
+ return [2 /*return*/, {
513
+ success: false,
514
+ message: "Transaction length of ".concat(transactionByteLength, " bytes exceeds max length of ").concat(exports.MAX_SIGNED_TX_LEN, " bytes. Send less candidates and consolidate utxos."),
515
+ }];
516
+ }
517
+ ledgerMessage = transactionHex;
518
+ messages = (0, exports.splitMessageIntoChunks)(ledgerMessage);
519
+ if (Debug) {
520
+ console.log('sign', 'transport', transport);
521
+ }
522
+ return [4 /*yield*/, (0, exports.GetDevice)(transport)];
523
+ case 1:
524
+ device = _a.sent();
525
+ if (Debug) {
526
+ console.log('sign', 'device', device);
527
+ console.log('sign', 'messages.length', messages.length);
528
+ }
529
+ if (!device.enabled) {
530
+ return [2 /*return*/, {
531
+ success: false,
532
+ message: 'Your computer does not support the ledger device.',
533
+ }];
534
+ }
535
+ _a.label = 2;
536
+ case 2:
537
+ _a.trys.push([2, 7, 8, 10]);
538
+ lastResponse = undefined;
539
+ ix = 0;
540
+ _a.label = 3;
541
+ case 3:
542
+ if (!(ix < messages.length)) return [3 /*break*/, 6];
543
+ message_1 = messages[ix];
544
+ /* istanbul ignore if */
545
+ if (Debug) {
546
+ console.log('exchange', ix, 'of', messages.length, 'message', message_1.toString('hex').toUpperCase());
547
+ }
548
+ return [4 /*yield*/, device.device.exchange(message_1)];
549
+ case 4:
550
+ response = _a.sent();
551
+ responseStr = response.toString('hex').toUpperCase();
552
+ if (Debug) {
553
+ console.log('exchange', ix, 'of', messages.length, 'response', responseStr);
554
+ }
555
+ if (responseStr !== undefined) {
556
+ if (!responseStr.endsWith('9000')) {
557
+ message_2 = (0, exports.GetErrorMessage)(responseStr);
558
+ return [2 /*return*/, {
559
+ success: false,
560
+ message: message_2,
561
+ signature: '',
562
+ }];
563
+ }
564
+ }
565
+ lastResponse = responseStr;
566
+ _a.label = 5;
567
+ case 5:
568
+ ix++;
569
+ return [3 /*break*/, 3];
570
+ case 6:
571
+ signature = undefined;
572
+ success = false;
573
+ message = lastResponse;
574
+ if (lastResponse !== undefined) {
575
+ if (lastResponse.endsWith('9000')) {
576
+ signature = (0, exports.decodeSignature)(lastResponse);
577
+ success = true;
578
+ }
579
+ else {
580
+ message = (0, exports.GetErrorMessage)(lastResponse);
581
+ }
582
+ }
583
+ return [2 /*return*/, {
584
+ success: success,
585
+ message: message,
586
+ signature: signature,
587
+ }];
588
+ case 7:
589
+ error_4 = _a.sent();
590
+ /* istanbul ignore if */
591
+ if (Debug) {
592
+ console.trace('sign', 'error', error_4);
593
+ }
594
+ return [2 /*return*/, {
595
+ success: false,
596
+ message: error_4.message,
597
+ }];
598
+ case 8: return [4 /*yield*/, device.device.close()];
599
+ case 9:
600
+ _a.sent();
601
+ return [7 /*endfinally*/];
602
+ case 10:
603
+ if (device.error) {
604
+ return [2 /*return*/, {
605
+ success: false,
606
+ message: device.message,
607
+ }];
608
+ }
609
+ return [2 /*return*/];
610
+ }
611
+ });
612
+ }); };
613
+ exports.SignLedger = SignLedger;
@@ -0,0 +1,23 @@
1
+ import { PhantasmaLink } from './phantasmaLink';
2
+ import { ProofOfWork } from './interfaces/ProofOfWork';
3
+ import { EasyScript, Nexus } from './easyScript';
4
+ export declare class EasyConnect {
5
+ requiredVersion: number;
6
+ platform: string;
7
+ providerHint: string;
8
+ link: PhantasmaLink;
9
+ connected: boolean;
10
+ script: EasyScript;
11
+ nexus: Nexus;
12
+ constructor(_options?: Array<string>);
13
+ setConfig(_provider: string): void;
14
+ connect(onSuccess?: any, onFail?: any): void;
15
+ disconnect(_message?: string): void;
16
+ query(_type?: string, _arguments?: Array<string>, _callback?: any): Promise<string | import("..").Balance[] | import("./interfaces").IAccount>;
17
+ action(_type?: string, _arguments?: Array<any>, onSuccess?: any, onFail?: any): Promise<void>;
18
+ signTransaction(script: string, payload?: any, onSuccess?: any, onFail?: any): void;
19
+ signData(data: any, onSuccess?: any, onFail?: any): void;
20
+ invokeScript(script: string, _callback: any): void;
21
+ deployContract(script: string, payload?: any, proofOfWork?: ProofOfWork, onSuccess?: any, onFail?: any): void;
22
+ }
23
+ //# sourceMappingURL=easyConnect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"easyConnect.d.ts","sourceRoot":"","sources":["../../src/core/link/easyConnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEjD,qBAAa,WAAW;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;gBAED,QAAQ,GAAE,KAAK,CAAC,MAAM,CAAQ;IAyB1C,SAAS,CAAC,SAAS,EAAE,MAAM;IAwB3B,OAAO,CACL,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IA0BH,UAAU,CAAC,QAAQ,GAAE,MAA6B;IAK5C,KAAK,CACT,KAAK,GAAE,MAAa,EACpB,UAAU,GAAE,KAAK,CAAC,MAAM,CAAQ,EAChC,SAAS,GAAE,GAEV;IA4CG,MAAM,CACV,KAAK,GAAE,MAAa,EACpB,UAAU,GAAE,KAAK,CAAC,GAAG,CAAQ,EAC7B,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IAyBH,eAAe,CACb,MAAM,EAAE,MAAM,EACd,OAAO,MAAO,EACd,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IAKH,QAAQ,CACN,IAAI,EAAE,GAAG,EACT,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;IAKH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;IAI3C,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,MAAO,EACd,WAAW,GAAE,WAAiC,EAC9C,SAAS,GAAE,GAAkB,EAC7B,MAAM,GAAE,GAEP;CAIJ"}