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,561 @@
1
+ import { Storage } from '../rpc/interfaces/Storage';
2
+ import { Stake } from '../rpc/interfaces/Stake';
3
+ import { ScriptBuilder } from '../vm';
4
+ import { ProofOfWork } from './interfaces/ProofOfWork';
5
+ import { IAccount } from './interfaces/IAccount';
6
+
7
+ export class PhantasmaLink {
8
+ //Declarations
9
+ host: string;
10
+ dapp: any;
11
+ onLogin: (succ: any) => void;
12
+ providerHint: any;
13
+ onError: (message: any) => void;
14
+ socket: any;
15
+ requestCallback: any;
16
+ token: any;
17
+ requestID: number = 0;
18
+ account: IAccount;
19
+ wallet: any;
20
+ messageLogging: boolean;
21
+ version: number;
22
+ nexus: string;
23
+ chain: string;
24
+ platform: string;
25
+
26
+ //Construct The Link
27
+ constructor(dappID: any, logging: boolean = true) {
28
+ this.version = 2;
29
+ this.nexus = 'testnet';
30
+ this.chain = 'main';
31
+ this.platform = 'poltergeist';
32
+
33
+ //Turn On|Off Console Logging
34
+ if (logging == false) {
35
+ this.messageLogging = false;
36
+ } else {
37
+ this.messageLogging = true;
38
+ console.log('%cPhantasmaLink created', 'color:green');
39
+ }
40
+
41
+ this.requestID = 0;
42
+ //Standard Sets
43
+ this.host = 'localhost:7090';
44
+ this.dapp = dappID;
45
+ this.onLogin = function (succ) {}; //Does Nothing for Now
46
+ this.onError = function (message) {}; //Does Nothing for Now
47
+ }
48
+
49
+ //Message Logging
50
+ onMessage = (msg: string) => {
51
+ if (this.messageLogging == true) {
52
+ console.log(msg);
53
+ }
54
+ };
55
+
56
+ //Connect To Wallet
57
+ login(
58
+ onLoginCallback: (success: boolean) => void,
59
+ onErrorCallback: (message: string) => void,
60
+ version: number = 2,
61
+ platform: string = 'phantasma',
62
+ providerHint: string = 'poltergeist'
63
+ ) {
64
+ this.providerHint = providerHint;
65
+ this.onLogin = onLoginCallback;
66
+ this.onError = onErrorCallback;
67
+ this.version = version;
68
+ this.platform = platform;
69
+ this.providerHint = providerHint;
70
+ this.createSocket();
71
+ }
72
+
73
+ //Script Invoking With Wallet Connection
74
+ invokeScript(script: string, callback: (message: string) => void) {
75
+ this.onMessage('Relaying transaction to wallet...');
76
+ if (!this.socket) {
77
+ callback('not logged in');
78
+ return;
79
+ }
80
+
81
+ if (script.length >= 8192) {
82
+ callback('script too big, sorry :(');
83
+ return;
84
+ }
85
+ let requestStr = this.chain + '/' + script;
86
+ if (this.version >= 2) {
87
+ requestStr = requestStr;
88
+ } else {
89
+ requestStr = this.nexus + '/' + requestStr;
90
+ }
91
+
92
+ let invokeScriptRequest = 'invokeScript/' + requestStr;
93
+
94
+ var that = this;
95
+ this.sendLinkRequest(invokeScriptRequest, function (result) {
96
+ if (result.success) {
97
+ that.onMessage('Invoke successful, hash: ' + result + '...');
98
+ if (callback) {
99
+ callback(result);
100
+ }
101
+ }
102
+ });
103
+ }
104
+
105
+ //Wallet Transaction Signing + Sending
106
+ signTx(
107
+ script: any,
108
+ payload: string | null,
109
+ callback: (arg0: string) => void,
110
+ onErrorCallback: () => void,
111
+ pow = ProofOfWork.None,
112
+ signature = 'Ed25519'
113
+ ) {
114
+ //Overload Protection
115
+ if (script.length >= 65536) {
116
+ this.onMessage('Error: script is too big!');
117
+ if (onErrorCallback) {
118
+ onErrorCallback();
119
+ }
120
+ return;
121
+ }
122
+
123
+ //Check Payload
124
+ if (payload == null) {
125
+ payload = '7068616e7461736d612d7473'; //Says 'Phantasma-ts' in hex
126
+ } else if (typeof payload === 'string') {
127
+ //Turn String Payload -> Bytes -> Hex
128
+ let sb = new ScriptBuilder();
129
+ let bytes = sb.RawString(payload);
130
+ sb.AppendBytes(bytes);
131
+ payload = sb.EndScript();
132
+ } else {
133
+ this.onMessage('Error: Invalid Payload');
134
+ if (onErrorCallback) {
135
+ onErrorCallback();
136
+ }
137
+ return;
138
+ }
139
+
140
+ this.onError = onErrorCallback; //Sets Error Callback Function
141
+ let that = this; //Allows the use of 'this' inside sendLinkRequest Object
142
+
143
+ let request =
144
+ 'signTx/' +
145
+ this.chain +
146
+ '/' +
147
+ script +
148
+ '/' +
149
+ payload +
150
+ '/' +
151
+ signature +
152
+ '/' +
153
+ this.platform +
154
+ '/' +
155
+ pow;
156
+
157
+ if (this.version == 1) {
158
+ request = 'signTx/' + this.nexus + '/' + this.chain + '/' + script + '/' + payload;
159
+ }
160
+
161
+ //Sends Signiture Request To Connected Wallet For Script
162
+ this.sendLinkRequest(request, function (result) {
163
+ if (result.success) {
164
+ if (result.hash.error) {
165
+ that.onMessage('Error: ' + result.hash.error);
166
+ return;
167
+ }
168
+ that.onMessage('Transaction successful, hash: ' + result.hash.substr(0, 15) + '...');
169
+ if (callback) {
170
+ callback(result);
171
+ }
172
+ } else {
173
+ if (onErrorCallback) {
174
+ onErrorCallback();
175
+ }
176
+ }
177
+ });
178
+ }
179
+
180
+ // Wallet Transaction Signing
181
+ signTxSignature(
182
+ tx: string,
183
+ callback: (result: string) => void,
184
+ onErrorCallback: () => void,
185
+ signature: string = 'Ed25519'
186
+ ) {
187
+ if (!this.socket) {
188
+ this.onMessage('not logged in');
189
+ return;
190
+ }
191
+ if (tx == null) {
192
+ this.onMessage('invalid data, sorry :(');
193
+ return;
194
+ }
195
+
196
+ if (tx.length >= 1024) {
197
+ this.onMessage('data too big, sorry :(');
198
+ if (onErrorCallback) {
199
+ onErrorCallback();
200
+ }
201
+ return;
202
+ }
203
+
204
+ let signDataStr = 'signTxSignature/' + tx + '/' + signature + '/' + this.platform;
205
+
206
+ var that = this; //Allows the use of 'this' inside sendLinkRequest Object
207
+
208
+ this.sendLinkRequest(signDataStr, function (result) {
209
+ if (result.success) {
210
+ that.onMessage('Data successfully signed');
211
+ if (callback) {
212
+ callback(result);
213
+ }
214
+ } else {
215
+ if (onErrorCallback) {
216
+ onErrorCallback();
217
+ }
218
+ }
219
+ });
220
+ }
221
+
222
+ multiSig(
223
+ subject: string,
224
+ callback: (result: string) => void,
225
+ onErrorCallback: () => void,
226
+ signature: string = 'Ed25519'
227
+ ) {
228
+ if (!this.socket) {
229
+ this.onMessage('not logged in');
230
+ return;
231
+ }
232
+ if (subject == null) {
233
+ this.onMessage('invalid data, sorry :(');
234
+ return;
235
+ }
236
+
237
+ if (subject.length >= 1024) {
238
+ this.onMessage('data too big, sorry :(');
239
+ if (onErrorCallback) {
240
+ onErrorCallback();
241
+ }
242
+ return;
243
+ }
244
+
245
+ let signDataStr = 'multiSig/' + subject + '/' + signature + '/' + this.platform;
246
+
247
+ var that = this; //Allows the use of 'this' inside sendLinkRequest Object
248
+
249
+ this.sendLinkRequest(signDataStr, function (result) {
250
+ if (result.success) {
251
+ that.onMessage('Data successfully signed');
252
+ if (callback) {
253
+ callback(result);
254
+ }
255
+ } else {
256
+ if (onErrorCallback) {
257
+ onErrorCallback();
258
+ }
259
+ }
260
+ });
261
+ }
262
+
263
+ getPeer(callback: (result: string) => void, onErrorCallback: () => void) {
264
+ this.onError = onErrorCallback; //Sets Error Callback Function
265
+ let that = this; //Allows the use of 'this' inside sendLinkRequest Object
266
+
267
+ //Sends Signiture Request To Connected Wallet For Script
268
+ this.sendLinkRequest('getPeer/', function (result) {
269
+ if (result.success) {
270
+ that.onMessage('Peer Query,: ' + result);
271
+ if (callback) {
272
+ callback(result);
273
+ }
274
+ } else {
275
+ if (onErrorCallback) {
276
+ onErrorCallback();
277
+ }
278
+ }
279
+ });
280
+ }
281
+
282
+ fetchWallet(callback: (result: any) => void, onErrorCallback: (message: any) => void) {
283
+ let that = this; //Allows the use of 'this' inside sendLinkRequest Object
284
+ let getAccountRequest = 'getAccount/' + this.platform;
285
+ this.sendLinkRequest(getAccountRequest, function (result) {
286
+ if (result.success) {
287
+ that.account = result;
288
+ callback(result);
289
+ } else {
290
+ onErrorCallback(
291
+ 'Could not obtain account info... Make sure you have an account currently open in ' +
292
+ that.wallet +
293
+ '...'
294
+ );
295
+ //that.disconnect("Unable to optain Account Info");
296
+ }
297
+
298
+ //that.onLogin(result.success);
299
+ //that.onLogin = null;
300
+ });
301
+ }
302
+
303
+ getNexus(callback: (message: any) => void, onErrorCallback: (message: any) => void) {
304
+ this.onError = onErrorCallback; //Sets Error Callback Function
305
+ let that = this; //Allows the use of 'this' inside sendLinkRequest Object
306
+
307
+ //Sends Signiture Request To Connected Wallet For Script
308
+ this.sendLinkRequest('getNexus/', function (result) {
309
+ if (result.success) {
310
+ that.onMessage('Nexus Query,: ' + result);
311
+ if (callback) {
312
+ callback(result);
313
+ }
314
+ } else {
315
+ if (onErrorCallback) {
316
+ onErrorCallback('Error: ' + result.error);
317
+ }
318
+ }
319
+ });
320
+ }
321
+
322
+ getWalletVersion(callback: (message: any) => void, onErrorCallback: (message: any) => void) {
323
+ this.onError = onErrorCallback; //Sets Error Callback Function
324
+ let that = this; //Allows the use of 'this' inside sendLinkRequest Object
325
+
326
+ //Sends Signiture Request To Connected Wallet For Script
327
+ this.sendLinkRequest('getWalletVersion/', function (result) {
328
+ if (result.success) {
329
+ that.onMessage('Wallet Version Query,: ' + result);
330
+ if (callback) {
331
+ callback(result);
332
+ }
333
+ } else {
334
+ if (onErrorCallback) {
335
+ onErrorCallback('Error: ' + result.error);
336
+ }
337
+ }
338
+ });
339
+ }
340
+
341
+ //Uses Wallet To Sign Data With Signiture
342
+ // Data needs to be in Base16 encode.
343
+ signData(
344
+ data: string,
345
+ callback: (success: string) => void,
346
+ onErrorCallback: (message: string) => void,
347
+ signature: string = 'Ed25519'
348
+ ) {
349
+ if (!this.socket) {
350
+ this.onMessage('not logged in');
351
+ return;
352
+ }
353
+ if (data == null) {
354
+ this.onMessage('invalid data, sorry :(');
355
+ return;
356
+ }
357
+
358
+ if (data.length >= 1024) {
359
+ this.onMessage('data too big, sorry :(');
360
+ if (onErrorCallback) {
361
+ onErrorCallback('data too big, sorry :(');
362
+ }
363
+ return;
364
+ }
365
+
366
+ let signDataStr = 'signData/' + data + '/' + signature + '/' + this.platform;
367
+
368
+ var that = this; //Allows the use of 'this' inside sendLinkRequest Object
369
+
370
+ this.sendLinkRequest(signDataStr, function (result) {
371
+ if (result.success) {
372
+ that.onMessage('Data successfully signed');
373
+ if (callback) {
374
+ callback(result);
375
+ }
376
+ } else {
377
+ if (onErrorCallback) {
378
+ onErrorCallback(result);
379
+ }
380
+ }
381
+ });
382
+ }
383
+
384
+ //Wallet Socket Connection Creation
385
+ createSocket(isResume: boolean = false) {
386
+ let path = 'ws://' + this.host + '/phantasma';
387
+ this.onMessage('Phantasma Link connecting...');
388
+
389
+ if (this.socket) {
390
+ this.socket.close();
391
+ }
392
+
393
+ //@ts-ignore
394
+ this.socket = //@ts-ignore
395
+ window.PhantasmaLinkSocket && this.providerHint !== 'poltergeist'
396
+ ? // @ts-ignore
397
+ new PhantasmaLinkSocket()
398
+ : new WebSocket(path);
399
+
400
+ this.requestCallback = null;
401
+ this.token = null;
402
+ this.account = null;
403
+ this.requestID = 0;
404
+ let authorizeRequest = 'authorize/' + this.dapp + '/' + this.version;
405
+ let getAccountRequest = 'getAccount/' + this.platform;
406
+ let that = this;
407
+
408
+ //Once Socket Opened
409
+ this.socket.onopen = function (e) {
410
+ that.onMessage('Connection established, authorizing dapp in wallet...');
411
+ if (isResume) {
412
+ that.fetchWallet(undefined, undefined);
413
+ } else {
414
+ that.sendLinkRequest(authorizeRequest, function (result) {
415
+ //Set Global Variables With Successful Account Query
416
+ if (result.success) {
417
+ that.token = result.token;
418
+ that.wallet = result.wallet;
419
+ that.onMessage('Authorized, obtaining account info...');
420
+ that.sendLinkRequest(getAccountRequest, function (result) {
421
+ if (result.success) {
422
+ that.account = result;
423
+ } else {
424
+ that.onError(
425
+ 'Could not obtain account info... Make sure you have an account currently open in ' +
426
+ that.wallet +
427
+ '...'
428
+ );
429
+ that.disconnect('Unable to optain Account Info');
430
+ }
431
+
432
+ that.onLogin(result.success);
433
+ that.onLogin = null;
434
+ });
435
+ } else {
436
+ that.onError('Authorization failed...');
437
+ that.disconnect('Auth Failure');
438
+ }
439
+ });
440
+ }
441
+ };
442
+
443
+ //Retrieves Message From Socket and Processes It
444
+ this.socket.onmessage = function (event) {
445
+ const obj = JSON.parse(event.data);
446
+ if (that.messageLogging == true) {
447
+ console.log('%c' + event.data, 'color:blue');
448
+ }
449
+
450
+ //Checks What To Do Based On Message
451
+ switch (obj.message) {
452
+ case 'Wallet is Closed':
453
+ that.onError(
454
+ 'Could not obtain account info... Make sure you have an account currently open in ' +
455
+ that.wallet
456
+ );
457
+ that.disconnect(true);
458
+ break;
459
+
460
+ case 'not logged in':
461
+ that.onError(
462
+ 'Could not obtain account info... Make sure you have an account currently logged in'
463
+ );
464
+ that.disconnect(true);
465
+ break;
466
+
467
+ case 'A previouus request is still pending' || 'A previous request is still pending':
468
+ that.onError('You have a pending action in your wallet');
469
+ break;
470
+
471
+ case 'user rejected':
472
+ that.onError('Transaction cancelled by user in ' + that.wallet);
473
+ break;
474
+
475
+ case 'user rejected':
476
+ that.onError('Transaction cancelled by user in ' + that.wallet);
477
+ break;
478
+
479
+ default:
480
+ if (obj.message && obj.message.startsWith('nexus mismatch')) {
481
+ that.onError(obj.message);
482
+ } else {
483
+ let temp = that.requestCallback;
484
+ if (temp == null) {
485
+ that.onError('Something bad happened');
486
+ return;
487
+ }
488
+ that.requestCallback = null;
489
+ temp(obj);
490
+ }
491
+ break;
492
+ }
493
+ };
494
+
495
+ //Cleanup After Socket Closes
496
+ this.socket.onclose = function (event) {
497
+ if (!event.wasClean) {
498
+ if (that.onLogin) {
499
+ that.onError('Connection terminated...');
500
+ }
501
+ that.onLogin = null;
502
+ }
503
+ };
504
+
505
+ //Error Callback When Socket Has Error
506
+ this.socket.onerror = function (error) {
507
+ if (error.message !== undefined) {
508
+ that.onMessage('Error: ' + error.message);
509
+ }
510
+ };
511
+ }
512
+
513
+ //Message Logging Util
514
+ toggleMessageLogging() {
515
+ if (this.messageLogging == true) {
516
+ this.messageLogging = false;
517
+ } else {
518
+ this.messageLogging = true;
519
+ }
520
+ }
521
+
522
+ resume(token: any) {
523
+ this.token = token;
524
+ this.retry();
525
+ }
526
+
527
+ //Retry Util
528
+ retry() {
529
+ this.createSocket();
530
+ }
531
+
532
+ //Get Dapp ID Name Util
533
+ set dappID(dapp) {
534
+ this.dapp = dapp;
535
+ }
536
+
537
+ get dappID() {
538
+ return this.dapp;
539
+ }
540
+
541
+ //Build Request and Send To Wallet Via Socket
542
+ sendLinkRequest(request: string, callback: (T: any) => void) {
543
+ this.onMessage('Sending Phantasma Link request: ' + request);
544
+
545
+ if (this.token != null) {
546
+ request = request + '/' + this.dapp + '/' + this.token;
547
+ }
548
+
549
+ this.requestID++; //Object Nonce Increase?
550
+ request = this.requestID + ',' + request;
551
+ this.requestCallback = callback;
552
+
553
+ this.socket.send(request);
554
+ }
555
+
556
+ //Disconnect The Wallet Connection Socket
557
+ disconnect(triggered: string | boolean | undefined) {
558
+ this.onMessage('Disconnecting Phantasma Link: ' + triggered);
559
+ if (this.socket) this.socket.close();
560
+ }
561
+ }
@@ -0,0 +1,2 @@
1
+ export * from './phantasma';
2
+ export * from './interfaces/index';
@@ -0,0 +1,6 @@
1
+ import { ABIMethod } from './ABIMethod';
2
+
3
+ export interface ABIContract {
4
+ name: string; //Name of contract
5
+ methods: Array<ABIMethod>; //List of methods
6
+ }
@@ -0,0 +1,6 @@
1
+ export interface ABIEvent {
2
+ value: number; //Name of method
3
+ name: string; //Name of Event
4
+ returnType: string;
5
+ description: string; //Description
6
+ }
@@ -0,0 +1,7 @@
1
+ import { ABIParameter } from './ABIParameter';
2
+
3
+ export interface ABIMethod {
4
+ name: string; //Name of method
5
+ returnType: string;
6
+ parameters: Array<ABIParameter>; //Type of parameters
7
+ }
@@ -0,0 +1,4 @@
1
+ export interface ABIParameter {
2
+ name: string; //Name of method
3
+ type: string;
4
+ }
@@ -0,0 +1,16 @@
1
+ import { Balance } from './Balance';
2
+ import { Stake } from './Stake';
3
+ import { Storage } from './Storage';
4
+
5
+ export interface Account {
6
+ address: string;
7
+ name: string;
8
+ stakes: Stake; //Info about staking if available
9
+ stake: string;
10
+ unclaimed: string;
11
+ relay: string; //Amount of available KCAL for relay channel
12
+ validator: string; //Validator role
13
+ storage: Storage;
14
+ balances: Array<Balance>;
15
+ txs: Array<string>;
16
+ }
@@ -0,0 +1,6 @@
1
+ import { TransactionData } from './TransactionData';
2
+
3
+ export interface AccountTransactions {
4
+ address: string;
5
+ txs: Array<TransactionData>; //List of transactions
6
+ }
@@ -0,0 +1,10 @@
1
+ export interface Archive {
2
+ name: string;
3
+ hash: string; //Archive hash
4
+ time: number;
5
+ size: number; //Size of archive in bytes
6
+ encryption: string;
7
+ blockCount: number; //Number of blocks
8
+ missingBlocks: Array<number>;
9
+ owners: Array<string>;
10
+ }
@@ -0,0 +1,12 @@
1
+ export interface Auction {
2
+ creatorAddress: string; //Address of auction creator
3
+ chainAddress: string; //Address of auction chain
4
+ startDate: number;
5
+ endDate: number;
6
+ baseSymbol: string;
7
+ quoteSymbol: string;
8
+ tokenId: string;
9
+ price: string;
10
+ rom: string;
11
+ ram: string;
12
+ }
@@ -0,0 +1,7 @@
1
+ export interface Balance {
2
+ chain: string;
3
+ amount: string;
4
+ symbol: string;
5
+ decimals: number;
6
+ ids?: Array<string>;
7
+ }
@@ -0,0 +1,17 @@
1
+ import { Event } from './Event';
2
+ import { Oracle } from './Oracle';
3
+ import { TransactionData } from './TransactionData';
4
+
5
+ export interface Block {
6
+ hash: string;
7
+ previousHash: string; //Hash of previous block
8
+ timestamp: number;
9
+ height: number;
10
+ chainAddress: string; //Address of chain where the block belongs
11
+ protocol: number; //Network protocol version
12
+ txs: Array<TransactionData>; //List of transactions in block
13
+ validatorAddress: string; //Address of validator who minted the block
14
+ reward: string; //Amount of KCAL rewarded by this fees in this block
15
+ events: Array<Event>; //Block events
16
+ oracles: Array<Oracle>; //Block oracles
17
+ }
@@ -0,0 +1,9 @@
1
+ export interface Chain {
2
+ name: string;
3
+ address: string;
4
+ parent: string; //Name of parent chain
5
+ height: number; //Current chain height
6
+ organization: string; //Chain organization
7
+ contracts: Array<string>; //Contracts deployed in the chain
8
+ dapps: Array<string>; //Dapps deployed in the chain
9
+ }
@@ -0,0 +1,12 @@
1
+ export interface Channel {
2
+ creatorAddress: string; //Creator of channel
3
+ targetAddress: string; //Target of channel
4
+ name: string; //Name of channel
5
+ chain: string; //Chain of channel
6
+ creationTime: number; //Creation time
7
+ symbol: string; //Token symbol
8
+ fee: string; //Fee of messages
9
+ balance: string; //Estimated balance
10
+ active: boolean; //Channel status
11
+ index: number; //Message index
12
+ }