@locuschain/lib 0.1.31 → 0.1.32

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 (469) hide show
  1. package/dist/accounts/account.d.mts +58 -0
  2. package/dist/accounts/index.amd.js +306 -0
  3. package/dist/accounts/index.cjs.cjs +311 -0
  4. package/dist/accounts/index.d.cts +5 -0
  5. package/dist/accounts/index.d.mts +5 -0
  6. package/dist/accounts/index.esm.js +304 -0
  7. package/dist/accounts/keys/index.d.mts +2 -0
  8. package/dist/accounts/keys/localKeySource.d.mts +23 -0
  9. package/dist/accounts/keys/toKeySource.d.mts +14 -0
  10. package/dist/accounts/keysToAccount.d.mts +19 -0
  11. package/dist/accounts/mnemonicToAccount.d.mts +25 -0
  12. package/dist/accounts/signing/txKeyPolicy.d.mts +21 -0
  13. package/dist/accounts/types.d.mts +100 -0
  14. package/dist/actions/wallet/_deriveTxAdditions.d.mts +18 -0
  15. package/dist/actions/wallet/_prepareTransaction.d.mts +15 -0
  16. package/dist/actions/wallet/_sendPreparedTransaction.d.mts +9 -0
  17. package/dist/actions/wallet/_signLocusTransaction.d.mts +14 -0
  18. package/dist/actions/wallet/index.d.mts +5 -0
  19. package/dist/actions/wallet/types.d.mts +38 -0
  20. package/dist/autogen/actions/debug/index.d.mts +2 -0
  21. package/dist/autogen/actions/debug/public/allHeights.d.mts +3 -0
  22. package/dist/autogen/actions/debug/public/balanceGrantList.d.mts +2 -0
  23. package/dist/autogen/actions/debug/public/balanceList.d.mts +2 -0
  24. package/dist/autogen/actions/debug/public/createAccount.d.mts +3 -0
  25. package/dist/autogen/actions/debug/public/createNode.d.mts +4 -0
  26. package/dist/autogen/actions/debug/public/dumpAllAccounts.d.mts +3 -0
  27. package/dist/autogen/actions/debug/public/echo.d.mts +2 -0
  28. package/dist/autogen/actions/debug/public/gameChainCmd.d.mts +4 -0
  29. package/dist/autogen/actions/debug/public/getAccountsBalances.d.mts +4 -0
  30. package/dist/autogen/actions/debug/public/getAccountsHeights.d.mts +4 -0
  31. package/dist/autogen/actions/debug/public/getContractLog.d.mts +4 -0
  32. package/dist/autogen/actions/debug/public/getGuestsInfo.d.mts +3 -0
  33. package/dist/autogen/actions/debug/public/getHomeShard.d.mts +4 -0
  34. package/dist/autogen/actions/debug/public/getImportAccount.d.mts +4 -0
  35. package/dist/autogen/actions/debug/public/getImportAccountLog.d.mts +4 -0
  36. package/dist/autogen/actions/debug/public/getKeys.d.mts +4 -0
  37. package/dist/autogen/actions/debug/public/getNodeBlocks.d.mts +3 -0
  38. package/dist/autogen/actions/debug/public/getPeerPool.d.mts +2 -0
  39. package/dist/autogen/actions/debug/public/getPeersInfo.d.mts +3 -0
  40. package/dist/autogen/actions/debug/public/importAccount.d.mts +4 -0
  41. package/dist/autogen/actions/debug/public/index.d.mts +29 -0
  42. package/dist/autogen/actions/debug/public/initReliableNodes.d.mts +4 -0
  43. package/dist/autogen/actions/debug/public/noArgsRets.d.mts +2 -0
  44. package/dist/autogen/actions/debug/public/nodeCmd.d.mts +3 -0
  45. package/dist/autogen/actions/debug/public/removeHoldTxs.d.mts +4 -0
  46. package/dist/autogen/actions/debug/public/requestVme.d.mts +4 -0
  47. package/dist/autogen/actions/debug/public/sendRawTransaction.d.mts +4 -0
  48. package/dist/autogen/actions/debug/public/setImportAccountTx.d.mts +4 -0
  49. package/dist/autogen/actions/debug/public/setReliableNode.d.mts +4 -0
  50. package/dist/autogen/actions/debug/public/viewContract.d.mts +4 -0
  51. package/dist/autogen/actions/debug/wallet/callContract.d.mts +4 -0
  52. package/dist/autogen/actions/debug/wallet/createContract.d.mts +4 -0
  53. package/dist/autogen/actions/debug/wallet/createSynthAccount.d.mts +4 -0
  54. package/dist/autogen/actions/debug/wallet/index.d.mts +4 -0
  55. package/dist/autogen/actions/debug/wallet/postDataToSynthAccount.d.mts +4 -0
  56. package/dist/autogen/actions/index.d.mts +3 -0
  57. package/dist/autogen/actions/public/accountHeightsToDownload.d.mts +4 -0
  58. package/dist/autogen/actions/public/accountHeightsToUpload.d.mts +4 -0
  59. package/dist/autogen/actions/public/calculateSpentByExpress.d.mts +4 -0
  60. package/dist/autogen/actions/public/clientMessage.d.mts +3 -0
  61. package/dist/autogen/actions/public/downloadAccountTxs.d.mts +4 -0
  62. package/dist/autogen/actions/public/echo.d.mts +2 -0
  63. package/dist/autogen/actions/public/findDuplicateSubscriber.d.mts +4 -0
  64. package/dist/autogen/actions/public/generateLatestStoredDataProof.d.mts +4 -0
  65. package/dist/autogen/actions/public/getAccountAssetList.d.mts +4 -0
  66. package/dist/autogen/actions/public/getAccountAssetObject.d.mts +4 -0
  67. package/dist/autogen/actions/public/getAccountDetail.d.mts +4 -0
  68. package/dist/autogen/actions/public/getAccountHistory.d.mts +4 -0
  69. package/dist/autogen/actions/public/getAccountTokenList.d.mts +4 -0
  70. package/dist/autogen/actions/public/getConciseNodeStatus.d.mts +3 -0
  71. package/dist/autogen/actions/public/getGenesisAccount.d.mts +3 -0
  72. package/dist/autogen/actions/public/getIdentityProof.d.mts +4 -0
  73. package/dist/autogen/actions/public/getInactiveTxList.d.mts +4 -0
  74. package/dist/autogen/actions/public/getMontInfoList.d.mts +4 -0
  75. package/dist/autogen/actions/public/getNodeStatus.d.mts +3 -0
  76. package/dist/autogen/actions/public/getOwnerBalance.d.mts +3 -0
  77. package/dist/autogen/actions/public/getRoundState.d.mts +4 -0
  78. package/dist/autogen/actions/public/getRoundStatesList.d.mts +4 -0
  79. package/dist/autogen/actions/public/getShardOfAccount.d.mts +4 -0
  80. package/dist/autogen/actions/public/getSyncState.d.mts +3 -0
  81. package/dist/autogen/actions/public/getTx.d.mts +4 -0
  82. package/dist/autogen/actions/public/getWorldRoundState.d.mts +4 -0
  83. package/dist/autogen/actions/public/getWorldRoundStatesList.d.mts +4 -0
  84. package/dist/autogen/actions/public/hasSystemToken.d.mts +4 -0
  85. package/dist/autogen/actions/public/index.d.mts +38 -0
  86. package/dist/autogen/actions/public/makeTxProof.d.mts +4 -0
  87. package/dist/autogen/actions/public/queryAddress.d.mts +4 -0
  88. package/dist/autogen/actions/public/readTxListWitness.d.mts +4 -0
  89. package/dist/autogen/actions/public/setHost.d.mts +3 -0
  90. package/dist/autogen/actions/public/subscribeAddress.d.mts +4 -0
  91. package/dist/autogen/actions/public/uploadAccountTxs.d.mts +3 -0
  92. package/dist/autogen/actions/public/verifyAndSignChallenge.d.mts +4 -0
  93. package/dist/autogen/actions/public/verifyIdentityProof.d.mts +4 -0
  94. package/dist/autogen/actions/public/verifyLatestStoredDataProof.d.mts +3 -0
  95. package/dist/autogen/actions/public/verifyTxListWitness.d.mts +3 -0
  96. package/dist/autogen/actions/wallet/acceptScript.d.mts +4 -0
  97. package/dist/autogen/actions/wallet/becomeGuest.d.mts +4 -0
  98. package/dist/autogen/actions/wallet/becomeHost.d.mts +4 -0
  99. package/dist/autogen/actions/wallet/changeKey.d.mts +4 -0
  100. package/dist/autogen/actions/wallet/changeVkey.d.mts +4 -0
  101. package/dist/autogen/actions/wallet/closeAccount.d.mts +4 -0
  102. package/dist/autogen/actions/wallet/createAssetObject.d.mts +4 -0
  103. package/dist/autogen/actions/wallet/createToken.d.mts +4 -0
  104. package/dist/autogen/actions/wallet/createVme.d.mts +4 -0
  105. package/dist/autogen/actions/wallet/index.d.mts +19 -0
  106. package/dist/autogen/actions/wallet/lockStake.d.mts +4 -0
  107. package/dist/autogen/actions/wallet/openAccount.d.mts +4 -0
  108. package/dist/autogen/actions/wallet/postData.d.mts +4 -0
  109. package/dist/autogen/actions/wallet/provideScript.d.mts +4 -0
  110. package/dist/autogen/actions/wallet/requestDataTrade.d.mts +4 -0
  111. package/dist/autogen/actions/wallet/transferAssetObject.d.mts +4 -0
  112. package/dist/autogen/actions/wallet/transferCoin.d.mts +4 -0
  113. package/dist/autogen/actions/wallet/transferCoinExpress.d.mts +4 -0
  114. package/dist/autogen/actions/wallet/transferToken.d.mts +4 -0
  115. package/dist/autogen/actions/wallet/unlockStake.d.mts +4 -0
  116. package/dist/autogen/debugPublicActions.d.mts +47 -0
  117. package/dist/autogen/debugWalletActions.d.mts +11 -0
  118. package/dist/autogen/index.amd.js +151 -0
  119. package/dist/autogen/index.cjs.cjs +157 -0
  120. package/dist/autogen/index.d.cts +8 -0
  121. package/dist/autogen/index.d.mts +8 -0
  122. package/dist/autogen/index.esm.js +49 -0
  123. package/dist/autogen/locus-tx.d.mts +5 -0
  124. package/dist/autogen/publicActions.d.mts +66 -0
  125. package/dist/autogen/rpc-api-spec.d.mts +208 -0
  126. package/dist/autogen/types/common/addr-tx-proof.d.mts +5 -0
  127. package/dist/autogen/types/common/asset-object-transfer.d.mts +8 -0
  128. package/dist/autogen/types/common/asset-object.d.mts +10 -0
  129. package/dist/autogen/types/common/asset-proof-objects.d.mts +5 -0
  130. package/dist/autogen/types/common/asset-transfer-info.d.mts +9 -0
  131. package/dist/autogen/types/common/base-meta.d.mts +1 -0
  132. package/dist/autogen/types/common/contract-exec-status.d.mts +16 -0
  133. package/dist/autogen/types/common/contract-transfer-info.d.mts +7 -0
  134. package/dist/autogen/types/common/get-peers-info.d.mts +9 -0
  135. package/dist/autogen/types/common/index-value-pair.d.mts +4 -0
  136. package/dist/autogen/types/common/index.d.mts +54 -0
  137. package/dist/autogen/types/common/input-params-data-transfer.d.mts +8 -0
  138. package/dist/autogen/types/common/key-bind-info.d.mts +4 -0
  139. package/dist/autogen/types/common/mont-info.d.mts +4 -0
  140. package/dist/autogen/types/common/object-amount-transfer.d.mts +5 -0
  141. package/dist/autogen/types/common/object-amount.d.mts +4 -0
  142. package/dist/autogen/types/common/output-download-account-txs.d.mts +4 -0
  143. package/dist/autogen/types/common/param-str.d.mts +3 -0
  144. package/dist/autogen/types/common/param-tx-data.d.mts +5 -0
  145. package/dist/autogen/types/common/params-token-value-pair.d.mts +4 -0
  146. package/dist/autogen/types/common/public-height-chunk.d.mts +4 -0
  147. package/dist/autogen/types/common/ref-tx-info.d.mts +5 -0
  148. package/dist/autogen/types/common/ref-vtx.d.mts +6 -0
  149. package/dist/autogen/types/common/ret-type-base.d.mts +1 -0
  150. package/dist/autogen/types/common/round-state-abstract.d.mts +11 -0
  151. package/dist/autogen/types/common/round-state-detail.d.mts +16 -0
  152. package/dist/autogen/types/common/rpc-account-height.d.mts +5 -0
  153. package/dist/autogen/types/common/rpc-accounts-balances-result.d.mts +4 -0
  154. package/dist/autogen/types/common/rpc-asset-list-values.d.mts +7 -0
  155. package/dist/autogen/types/common/rpc-data-trade-result.d.mts +5 -0
  156. package/dist/autogen/types/common/rpc-token-balance-pair.d.mts +4 -0
  157. package/dist/autogen/types/common/token-value-ab.d.mts +5 -0
  158. package/dist/autogen/types/common/token-value-pair.d.mts +4 -0
  159. package/dist/autogen/types/common/transaction-sender-index.d.mts +7 -0
  160. package/dist/autogen/types/common/transfer-info.d.mts +7 -0
  161. package/dist/autogen/types/common/tx-base.d.mts +13 -0
  162. package/dist/autogen/types/common/tx-hash-elements.d.mts +6 -0
  163. package/dist/autogen/types/common/tx-key-height-hash.d.mts +4 -0
  164. package/dist/autogen/types/common/tx-key-nround.d.mts +5 -0
  165. package/dist/autogen/types/common/tx-key.d.mts +4 -0
  166. package/dist/autogen/types/common/tx-meta.d.mts +2 -0
  167. package/dist/autogen/types/common/tx-no-signature.d.mts +1 -0
  168. package/dist/autogen/types/common/tx-recv-set-meta.d.mts +2 -0
  169. package/dist/autogen/types/common/tx-sign-key.d.mts +1 -0
  170. package/dist/autogen/types/common/tx-signature.d.mts +3 -0
  171. package/dist/autogen/types/common/tx-vsignature.d.mts +3 -0
  172. package/dist/autogen/types/common/vm-engine-block.d.mts +11 -0
  173. package/dist/autogen/types/common/vm-reward.d.mts +4 -0
  174. package/dist/autogen/types/common/vm-tx-state.d.mts +27 -0
  175. package/dist/autogen/types/common/vme-block-meta.d.mts +2 -0
  176. package/dist/autogen/types/common/vme-info.d.mts +3 -0
  177. package/dist/autogen/types/common/vme-lock-stake.d.mts +4 -0
  178. package/dist/autogen/types/common/vote-info-rpc.d.mts +5 -0
  179. package/dist/autogen/types/common/vtx-meta.d.mts +2 -0
  180. package/dist/autogen/types/common/wrs-validators-info.d.mts +5 -0
  181. package/dist/autogen/types/consts/address-class.d.mts +11 -0
  182. package/dist/autogen/types/consts/consts.d.mts +2 -0
  183. package/dist/autogen/types/consts/currency-unit.d.mts +15 -0
  184. package/dist/autogen/types/consts/index.d.mts +3 -0
  185. package/dist/autogen/types/consts/tx-type.d.mts +61 -0
  186. package/dist/autogen/types/consts/tx-types.d.mts +415 -0
  187. package/dist/autogen/types/rpc/heights-result.d.mts +4 -0
  188. package/dist/autogen/types/rpc/index.d.mts +106 -0
  189. package/dist/autogen/types/rpc/params-accept-script.d.mts +8 -0
  190. package/dist/autogen/types/rpc/params-account-and-index.d.mts +4 -0
  191. package/dist/autogen/types/rpc/params-account-heights.d.mts +5 -0
  192. package/dist/autogen/types/rpc/params-account-history.d.mts +5 -0
  193. package/dist/autogen/types/rpc/params-account.d.mts +3 -0
  194. package/dist/autogen/types/rpc/params-accounts.d.mts +3 -0
  195. package/dist/autogen/types/rpc/params-become-guest.d.mts +5 -0
  196. package/dist/autogen/types/rpc/params-become-host.d.mts +5 -0
  197. package/dist/autogen/types/rpc/params-calculate-spent-by-express.d.mts +5 -0
  198. package/dist/autogen/types/rpc/params-call-contract.d.mts +13 -0
  199. package/dist/autogen/types/rpc/params-change-key.d.mts +8 -0
  200. package/dist/autogen/types/rpc/params-change-vkey.d.mts +5 -0
  201. package/dist/autogen/types/rpc/params-close-account.d.mts +7 -0
  202. package/dist/autogen/types/rpc/params-contract-log.d.mts +6 -0
  203. package/dist/autogen/types/rpc/params-create-asset-object.d.mts +10 -0
  204. package/dist/autogen/types/rpc/params-create-contract.d.mts +14 -0
  205. package/dist/autogen/types/rpc/params-create-node.d.mts +4 -0
  206. package/dist/autogen/types/rpc/params-create-synth-account.d.mts +8 -0
  207. package/dist/autogen/types/rpc/params-create-token.d.mts +7 -0
  208. package/dist/autogen/types/rpc/params-create-vme.d.mts +8 -0
  209. package/dist/autogen/types/rpc/params-download-account-txs.d.mts +6 -0
  210. package/dist/autogen/types/rpc/params-find-duplicate-subscriber.d.mts +3 -0
  211. package/dist/autogen/types/rpc/params-game-chain-cmd.d.mts +5 -0
  212. package/dist/autogen/types/rpc/params-generate-latest-stored-data-proof.d.mts +4 -0
  213. package/dist/autogen/types/rpc/params-get-asset-list.d.mts +4 -0
  214. package/dist/autogen/types/rpc/params-get-asset-objects.d.mts +4 -0
  215. package/dist/autogen/types/rpc/params-get-home-shard.d.mts +3 -0
  216. package/dist/autogen/types/rpc/params-get-identity-proof.d.mts +4 -0
  217. package/dist/autogen/types/rpc/params-get-import-account.d.mts +3 -0
  218. package/dist/autogen/types/rpc/params-import-account.d.mts +7 -0
  219. package/dist/autogen/types/rpc/params-init-reliable-nodes.d.mts +5 -0
  220. package/dist/autogen/types/rpc/params-latest-stored-data-proof.d.mts +4 -0
  221. package/dist/autogen/types/rpc/params-lock-stake.d.mts +7 -0
  222. package/dist/autogen/types/rpc/params-open-account.d.mts +11 -0
  223. package/dist/autogen/types/rpc/params-post-data-to-synth-account.d.mts +11 -0
  224. package/dist/autogen/types/rpc/params-provide-script.d.mts +14 -0
  225. package/dist/autogen/types/rpc/params-query-address.d.mts +3 -0
  226. package/dist/autogen/types/rpc/params-read-tx-list.d.mts +5 -0
  227. package/dist/autogen/types/rpc/params-remove-hold-txs.d.mts +5 -0
  228. package/dist/autogen/types/rpc/params-request-data-trade.d.mts +10 -0
  229. package/dist/autogen/types/rpc/params-request-vme.d.mts +4 -0
  230. package/dist/autogen/types/rpc/params-round-list.d.mts +4 -0
  231. package/dist/autogen/types/rpc/params-round.d.mts +3 -0
  232. package/dist/autogen/types/rpc/params-rs.d.mts +4 -0
  233. package/dist/autogen/types/rpc/params-send-raw-transaction.d.mts +4 -0
  234. package/dist/autogen/types/rpc/params-set-host.d.mts +4 -0
  235. package/dist/autogen/types/rpc/params-set-import-account-tx.d.mts +5 -0
  236. package/dist/autogen/types/rpc/params-set-reliable-node.d.mts +4 -0
  237. package/dist/autogen/types/rpc/params-subscribe-address.d.mts +4 -0
  238. package/dist/autogen/types/rpc/params-transfer-asset-object.d.mts +9 -0
  239. package/dist/autogen/types/rpc/params-transfer-coin-express.d.mts +7 -0
  240. package/dist/autogen/types/rpc/params-transfer-coin.d.mts +8 -0
  241. package/dist/autogen/types/rpc/params-transfer-tokens.d.mts +14 -0
  242. package/dist/autogen/types/rpc/params-tx-list-witness.d.mts +6 -0
  243. package/dist/autogen/types/rpc/params-tx-list.d.mts +5 -0
  244. package/dist/autogen/types/rpc/params-unlock-stake.d.mts +7 -0
  245. package/dist/autogen/types/rpc/params-upload-account-txs.d.mts +5 -0
  246. package/dist/autogen/types/rpc/params-verify-and-sign-challenge.d.mts +8 -0
  247. package/dist/autogen/types/rpc/params-verify-identity-proof.d.mts +6 -0
  248. package/dist/autogen/types/rpc/result-dump-accounts.d.mts +4 -0
  249. package/dist/autogen/types/rpc/rpc-bool-result.d.mts +3 -0
  250. package/dist/autogen/types/rpc/rpc-calculate-spent-by-express-result.d.mts +3 -0
  251. package/dist/autogen/types/rpc/rpc-create-account-result.d.mts +7 -0
  252. package/dist/autogen/types/rpc/rpc-create-node-result.d.mts +5 -0
  253. package/dist/autogen/types/rpc/rpc-create-tx-result.d.mts +7 -0
  254. package/dist/autogen/types/rpc/rpc-find-duplicate-subscriber-result.d.mts +3 -0
  255. package/dist/autogen/types/rpc/rpc-game-chain-cmd-result.d.mts +3 -0
  256. package/dist/autogen/types/rpc/rpc-generate-latest-stored-data-proof-result.d.mts +4 -0
  257. package/dist/autogen/types/rpc/rpc-get-account-asset-list-result.d.mts +4 -0
  258. package/dist/autogen/types/rpc/rpc-get-account-asset-object-result.d.mts +5 -0
  259. package/dist/autogen/types/rpc/rpc-get-account-detail-result.d.mts +10 -0
  260. package/dist/autogen/types/rpc/rpc-get-account-history-result.d.mts +3 -0
  261. package/dist/autogen/types/rpc/rpc-get-account-token-list-result.d.mts +6 -0
  262. package/dist/autogen/types/rpc/rpc-get-accounts-balances-result.d.mts +3 -0
  263. package/dist/autogen/types/rpc/rpc-get-accounts-heights-result.d.mts +3 -0
  264. package/dist/autogen/types/rpc/rpc-get-concise-node-status-result.d.mts +18 -0
  265. package/dist/autogen/types/rpc/rpc-get-contract-log-result.d.mts +3 -0
  266. package/dist/autogen/types/rpc/rpc-get-genesis-account-result.d.mts +3 -0
  267. package/dist/autogen/types/rpc/rpc-get-guests-info-result.d.mts +3 -0
  268. package/dist/autogen/types/rpc/rpc-get-home-shard-result.d.mts +3 -0
  269. package/dist/autogen/types/rpc/rpc-get-identity-proof-result.d.mts +6 -0
  270. package/dist/autogen/types/rpc/rpc-get-import-account-result.d.mts +10 -0
  271. package/dist/autogen/types/rpc/rpc-get-inactive-tx-list-result.d.mts +14 -0
  272. package/dist/autogen/types/rpc/rpc-get-keys-result.d.mts +7 -0
  273. package/dist/autogen/types/rpc/rpc-get-mont-info-list-result.d.mts +5 -0
  274. package/dist/autogen/types/rpc/rpc-get-node-blocks-result.d.mts +3 -0
  275. package/dist/autogen/types/rpc/rpc-get-node-status-result.d.mts +28 -0
  276. package/dist/autogen/types/rpc/rpc-get-shard-of-account-result.d.mts +4 -0
  277. package/dist/autogen/types/rpc/rpc-get-sync-state-result.d.mts +3 -0
  278. package/dist/autogen/types/rpc/rpc-get-tx-result.d.mts +3 -0
  279. package/dist/autogen/types/rpc/rpc-get-world-round-state-result.d.mts +13 -0
  280. package/dist/autogen/types/rpc/rpc-get-world-round-states-list-result.d.mts +3 -0
  281. package/dist/autogen/types/rpc/rpc-has-system-token-result.d.mts +4 -0
  282. package/dist/autogen/types/rpc/rpc-import-account-result.d.mts +3 -0
  283. package/dist/autogen/types/rpc/rpc-node-cmd-result.d.mts +5 -0
  284. package/dist/autogen/types/rpc/rpc-query-address-result.d.mts +3 -0
  285. package/dist/autogen/types/rpc/rpc-read-tx-list-witness-result.d.mts +6 -0
  286. package/dist/autogen/types/rpc/rpc-request-vme-result.d.mts +3 -0
  287. package/dist/autogen/types/rpc/rpc-send-raw-transaction-result.d.mts +1 -0
  288. package/dist/autogen/types/rpc/rpc-set-import-account-tx-result.d.mts +5 -0
  289. package/dist/autogen/types/rpc/rpc-subscribe-address-result.d.mts +1 -0
  290. package/dist/autogen/types/rpc/rpc-verify-and-sign-challenge-result.d.mts +8 -0
  291. package/dist/autogen/types/rpc/rpc-verify-identity-proof-result.d.mts +4 -0
  292. package/dist/autogen/types/rpc/rpc-view-contract-result.d.mts +3 -0
  293. package/dist/autogen/types/rpc/upload-heights-result.d.mts +6 -0
  294. package/dist/autogen/types/tx/index.d.mts +50 -0
  295. package/dist/autogen/types/tx/tx-accept-script-after-time-lock.d.mts +12 -0
  296. package/dist/autogen/types/tx/tx-accept-script.d.mts +15 -0
  297. package/dist/autogen/types/tx/tx-activate-all-assets.d.mts +15 -0
  298. package/dist/autogen/types/tx/tx-activate-asset-object.d.mts +9 -0
  299. package/dist/autogen/types/tx/tx-activate-call-contract.d.mts +15 -0
  300. package/dist/autogen/types/tx/tx-activate-coin.d.mts +9 -0
  301. package/dist/autogen/types/tx/tx-activate-contract-result.d.mts +18 -0
  302. package/dist/autogen/types/tx/tx-activate-contract-reward.d.mts +8 -0
  303. package/dist/autogen/types/tx/tx-activate-contract-transfer.d.mts +15 -0
  304. package/dist/autogen/types/tx/tx-activate-data-synth-account.d.mts +12 -0
  305. package/dist/autogen/types/tx/tx-activate-foundation-reserve.d.mts +7 -0
  306. package/dist/autogen/types/tx/tx-activate-incentive.d.mts +11 -0
  307. package/dist/autogen/types/tx/tx-activate-lock-stake-for-vme.d.mts +9 -0
  308. package/dist/autogen/types/tx/tx-activate-open-contract.d.mts +15 -0
  309. package/dist/autogen/types/tx/tx-activate-open-synth-account.d.mts +9 -0
  310. package/dist/autogen/types/tx/tx-activate-open-vm-engine.d.mts +11 -0
  311. package/dist/autogen/types/tx/tx-activate-token.d.mts +12 -0
  312. package/dist/autogen/types/tx/tx-become-guest.d.mts +10 -0
  313. package/dist/autogen/types/tx/tx-become-host.d.mts +7 -0
  314. package/dist/autogen/types/tx/tx-burn-asset-object.d.mts +8 -0
  315. package/dist/autogen/types/tx/tx-burn-token.d.mts +10 -0
  316. package/dist/autogen/types/tx/tx-call-contract.d.mts +16 -0
  317. package/dist/autogen/types/tx/tx-change-foundation-account.d.mts +6 -0
  318. package/dist/autogen/types/tx/tx-change-keypair.d.mts +10 -0
  319. package/dist/autogen/types/tx/tx-change-vkey.d.mts +6 -0
  320. package/dist/autogen/types/tx/tx-close-account.d.mts +12 -0
  321. package/dist/autogen/types/tx/tx-contract-blank-reward.d.mts +5 -0
  322. package/dist/autogen/types/tx/tx-contract-transfer-reward.d.mts +8 -0
  323. package/dist/autogen/types/tx/tx-create-asset-object.d.mts +10 -0
  324. package/dist/autogen/types/tx/tx-create-contract.d.mts +17 -0
  325. package/dist/autogen/types/tx/tx-create-synth-account.d.mts +7 -0
  326. package/dist/autogen/types/tx/tx-create-token.d.mts +10 -0
  327. package/dist/autogen/types/tx/tx-create-vm-engine.d.mts +8 -0
  328. package/dist/autogen/types/tx/tx-dummy.d.mts +3 -0
  329. package/dist/autogen/types/tx/tx-finalize.d.mts +6 -0
  330. package/dist/autogen/types/tx/tx-freeze-account.d.mts +5 -0
  331. package/dist/autogen/types/tx/tx-genesis-account.d.mts +11 -0
  332. package/dist/autogen/types/tx/tx-lead-vtx.d.mts +9 -0
  333. package/dist/autogen/types/tx/tx-lock-stake-for-vme.d.mts +7 -0
  334. package/dist/autogen/types/tx/tx-open-account.d.mts +18 -0
  335. package/dist/autogen/types/tx/tx-post-data-synth-account.d.mts +9 -0
  336. package/dist/autogen/types/tx/tx-post-data.d.mts +11 -0
  337. package/dist/autogen/types/tx/tx-provide-script.d.mts +16 -0
  338. package/dist/autogen/types/tx/tx-revoke.d.mts +16 -0
  339. package/dist/autogen/types/tx/tx-transfer-asset-object.d.mts +8 -0
  340. package/dist/autogen/types/tx/tx-transfer-coin-express.d.mts +8 -0
  341. package/dist/autogen/types/tx/tx-transfer-coin.d.mts +7 -0
  342. package/dist/autogen/types/tx/tx-transfer-token.d.mts +11 -0
  343. package/dist/autogen/types/tx/tx-unlock-stake.d.mts +7 -0
  344. package/dist/autogen/types/tx/tx-vm-engine-block.d.mts +6 -0
  345. package/dist/autogen/types/wasm/grant-consume-result.d.mts +4 -0
  346. package/dist/autogen/types/wasm/index.d.mts +26 -0
  347. package/dist/autogen/types/wasm/library-versions.d.mts +6 -0
  348. package/dist/autogen/types/wasm/param-calculate-tx-link-hash.d.mts +3 -0
  349. package/dist/autogen/types/wasm/param-code-core-script.d.mts +3 -0
  350. package/dist/autogen/types/wasm/param-convert-currency.d.mts +5 -0
  351. package/dist/autogen/types/wasm/param-create-account-and-keystore.d.mts +6 -0
  352. package/dist/autogen/types/wasm/param-create-master-keystore.d.mts +6 -0
  353. package/dist/autogen/types/wasm/param-create-normal-key.d.mts +4 -0
  354. package/dist/autogen/types/wasm/param-create-normal-keystore.d.mts +8 -0
  355. package/dist/autogen/types/wasm/param-derive-keys-from-mnemonic-and-path.d.mts +4 -0
  356. package/dist/autogen/types/wasm/param-derive-keys-from-mnemonic.d.mts +6 -0
  357. package/dist/autogen/types/wasm/param-encode-tx-currency.d.mts +3 -0
  358. package/dist/autogen/types/wasm/param-encode-tx-number.d.mts +4 -0
  359. package/dist/autogen/types/wasm/param-generate-mnemonic-by-seed.d.mts +3 -0
  360. package/dist/autogen/types/wasm/param-generate-mnemonic.d.mts +3 -0
  361. package/dist/autogen/types/wasm/param-get-home-shard.d.mts +4 -0
  362. package/dist/autogen/types/wasm/param-hash.d.mts +4 -0
  363. package/dist/autogen/types/wasm/param-load-keystore.d.mts +4 -0
  364. package/dist/autogen/types/wasm/param-make-currency.d.mts +4 -0
  365. package/dist/autogen/types/wasm/param-sign-by-master-key.d.mts +4 -0
  366. package/dist/autogen/types/wasm/param-sign-key-bind.d.mts +5 -0
  367. package/dist/autogen/types/wasm/param-sign.d.mts +4 -0
  368. package/dist/autogen/types/wasm/param-test-core-script.d.mts +7 -0
  369. package/dist/autogen/types/wasm/param-txs.d.mts +3 -0
  370. package/dist/autogen/types/wasm/param-verify-merkle-proof.d.mts +5 -0
  371. package/dist/autogen/types/wasm/param-verify.d.mts +5 -0
  372. package/dist/autogen/walletActions.d.mts +41 -0
  373. package/dist/autogen/wasm/crypto_aimer.d.mts +2 -0
  374. package/dist/autogen/wasm/crypto_haetae.d.mts +2 -0
  375. package/dist/autogen/wasm/crypto_smaugt.d.mts +2 -0
  376. package/dist/autogen/wasm/lclib.wasm +0 -0
  377. package/dist/autogen/wasm.d.mts +72 -0
  378. package/dist/chunks/account-BAsiKnSL.cjs +77 -0
  379. package/dist/chunks/account-BSrvZ7S8.js +77 -0
  380. package/dist/chunks/account-FZT9LH_s.js +71 -0
  381. package/dist/chunks/address-class-CHAZYhdZ.js +14 -0
  382. package/dist/chunks/address-class-Cjy48Uqk.cjs +16 -0
  383. package/dist/chunks/address-class-Dp7aNQb2.js +18 -0
  384. package/dist/chunks/base-BQXfRsuw.js +23 -0
  385. package/dist/chunks/base-B_kRRfsf.js +27 -0
  386. package/dist/chunks/base-Cy5SSYLF.cjs +25 -0
  387. package/dist/chunks/debugWalletActions-6qjkZVq9.cjs +995 -0
  388. package/dist/chunks/debugWalletActions-BDz-h2tl.js +993 -0
  389. package/dist/chunks/debugWalletActions-D5-Ds7Hl.js +900 -0
  390. package/dist/chunks/keystore-BJ3vekCS.js +139 -0
  391. package/dist/chunks/keystore-C0RhMFsU.js +143 -0
  392. package/dist/chunks/keystore-D-5mV7aC.cjs +145 -0
  393. package/dist/chunks/lclib-B8Aj_otR.cjs +3809 -0
  394. package/dist/chunks/lclib-CAHiuFux.js +3825 -0
  395. package/dist/chunks/lclib-DZydGzkN.js +3805 -0
  396. package/dist/chunks/rpc-BlPk44QH.js +22 -0
  397. package/dist/chunks/rpc-C4n7t9y0.js +25 -0
  398. package/dist/chunks/rpc-DwWIkUva.cjs +25 -0
  399. package/dist/chunks/transport-BBAz1kmP.js +30 -0
  400. package/dist/chunks/transport-VThNtzck.cjs +30 -0
  401. package/dist/chunks/transport-ktAPuqsc.js +26 -0
  402. package/dist/chunks/tslib.es6-Cfi3-HmA.cjs +35 -0
  403. package/dist/chunks/tslib.es6-D29rxPkW.js +37 -0
  404. package/dist/chunks/tslib.es6-WQS2tr1v.js +33 -0
  405. package/dist/chunks/tx-type-BPkhMGad.js +64 -0
  406. package/dist/chunks/tx-type-CS4wIUJ8.js +68 -0
  407. package/dist/chunks/tx-type-DI_nKG8B.cjs +66 -0
  408. package/dist/chunks/wasm-3LmqFB_i.js +166 -0
  409. package/dist/chunks/wasm-CdEv1Pyn.cjs +213 -0
  410. package/dist/chunks/wasm-DAQaaEGK.js +213 -0
  411. package/dist/clients/createClient.d.mts +8 -0
  412. package/dist/clients/createLocusPublicClient.d.mts +100 -0
  413. package/dist/clients/createLocusWalletClient.d.mts +56 -0
  414. package/dist/clients/createPublicClient.d.mts +6 -0
  415. package/dist/clients/createWalletClient.d.mts +8 -0
  416. package/dist/clients/index.amd.js +97 -0
  417. package/dist/clients/index.cjs.cjs +104 -0
  418. package/dist/clients/index.d.cts +6 -0
  419. package/dist/clients/index.d.mts +6 -0
  420. package/dist/clients/index.esm.js +98 -0
  421. package/dist/clients/types.d.mts +19 -0
  422. package/dist/constant/index.amd.js +458 -0
  423. package/dist/constant/index.cjs.cjs +459 -0
  424. package/dist/constant/index.d.cts +513 -0
  425. package/dist/constant/index.d.mts +513 -0
  426. package/dist/constant/index.esm.js +451 -0
  427. package/dist/contracts/abis/erc20.d.mts +174 -0
  428. package/dist/contracts/abis/index.d.mts +1 -0
  429. package/dist/contracts/getContract.d.mts +33 -0
  430. package/dist/contracts/index.amd.js +19640 -0
  431. package/dist/contracts/index.cjs.cjs +19642 -0
  432. package/dist/contracts/index.d.cts +2 -0
  433. package/dist/contracts/index.d.mts +2 -0
  434. package/dist/contracts/index.esm.js +19639 -0
  435. package/dist/errors/account.d.mts +45 -0
  436. package/dist/errors/base.d.mts +13 -0
  437. package/dist/errors/index.amd.js +17 -0
  438. package/dist/errors/index.cjs.cjs +20 -0
  439. package/dist/errors/index.d.cts +4 -0
  440. package/dist/errors/index.d.mts +4 -0
  441. package/dist/errors/index.esm.js +4 -0
  442. package/dist/errors/rpc.d.mts +21 -0
  443. package/dist/errors/transport.d.mts +21 -0
  444. package/dist/index.amd.js +43 -0
  445. package/dist/index.cjs.cjs +58 -0
  446. package/dist/index.d.mts +8 -0
  447. package/dist/index.esm.js +16 -0
  448. package/dist/transports/http.d.mts +9 -0
  449. package/dist/transports/index.amd.js +98 -0
  450. package/dist/transports/index.cjs.cjs +101 -0
  451. package/dist/transports/index.d.cts +2 -0
  452. package/dist/transports/index.d.mts +2 -0
  453. package/dist/transports/index.esm.js +99 -0
  454. package/dist/transports/types.d.mts +36 -0
  455. package/dist/types/index.d.cts +11 -0
  456. package/dist/types/index.d.mts +11 -0
  457. package/dist/types/primitives.d.mts +5 -0
  458. package/dist/utils/index.amd.js +323 -0
  459. package/dist/utils/index.cjs.cjs +330 -0
  460. package/dist/utils/index.d.cts +41 -0
  461. package/dist/utils/index.d.mts +41 -0
  462. package/dist/utils/index.esm.js +271 -0
  463. package/dist/utils/keystore.d.mts +87 -0
  464. package/dist/utils/lclib.d.mts +2 -0
  465. package/dist/utils/locus-wasm-bridge.d.mts +1 -0
  466. package/dist/utils/tx-validator.d.mts +26 -0
  467. package/dist/utils/types.d.mts +15 -0
  468. package/dist/utils/wasm-fetch.d.mts +6 -0
  469. package/package.json +1 -1
@@ -0,0 +1,11 @@
1
+ export * from '../autogen/locus-tx.mjs';
2
+ export * from '../autogen/types/tx/index.mjs';
3
+ export * from '../autogen/types/common/index.mjs';
4
+ export * from '../autogen/types/rpc/index.mjs';
5
+ export * from './primitives.mjs';
6
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
7
+ export type UnionToOptional<T> = {
8
+ [K in keyof T]: T[K];
9
+ } & {
10
+ [K in Exclude<KeysOfUnion<T>, keyof T>]?: T extends any ? (K extends keyof T ? T[K] : undefined) : never;
11
+ };
@@ -0,0 +1,5 @@
1
+ export type Hex = `0x${string}`;
2
+ /** 트랜잭션 해시. Locus 는 이 값을 일반 문자열로 emit 한다. */
3
+ export type Hash = string;
4
+ /** Locus account/contract/token 주소 (Base32 인코딩). */
5
+ export type Address = string;
@@ -0,0 +1,323 @@
1
+ define(['exports', '../chunks/address-class-Dp7aNQb2', '../chunks/wasm-DAQaaEGK', '../chunks/keystore-C0RhMFsU', '../chunks/lclib-CAHiuFux', 'lodash', '../chunks/base-B_kRRfsf', '../chunks/account-BSrvZ7S8', '../chunks/tslib.es6-D29rxPkW'], (function (exports, addressClass, wasm, keystore, lclib, _, base, account, tslib_es6) { 'use strict';
2
+
3
+ class TxValidator {
4
+ constructor() {
5
+ this.verifyTxParams = (rpcResult, params, options) => {
6
+ try {
7
+ if (options.targetTxHash) {
8
+ const genHash = JSON.parse(wasm.verifyTx(JSON.stringify(rpcResult.tx))).hash;
9
+ if (options.targetTxHash !== genHash) {
10
+ console.warn(`[TxnIntegrityChecker] Tx hash not matched.`, options.targetTxHash, '!==', genHash);
11
+ return { result: false, reason: 'tx verify fail' };
12
+ }
13
+ }
14
+ const checks = [];
15
+ const tx = rpcResult.tx;
16
+ switch (tx.type) {
17
+ case 'TX_TRANSFER_COIN':
18
+ case 'TX_TRANSFER_COIN_FEE':
19
+ checks.push(() => this.checkFields(params, tx, { to: 'target', amount: 'amount' }));
20
+ break;
21
+ case 'TX_TRANSFER_COIN_EXPRESS':
22
+ checks.push(() => this.checkFields(params, tx, {
23
+ to: 'target',
24
+ amount: 'amount',
25
+ 'source.owner': 'source.addr',
26
+ 'source.height': 'source.index'
27
+ }));
28
+ break;
29
+ case 'TX_CREATE_TOKEN':
30
+ case 'TX_CREATE_TOKEN_FEE':
31
+ checks.push(() => this.checkFields(params, tx, { tokenBalance: 'tokenBalance.v' }));
32
+ break;
33
+ case 'TX_TRANSFER_TOKEN':
34
+ case 'TX_TRANSFER_TOKEN_FEE':
35
+ checks.push(() => this.checkFields(params, tx, { to: 'target', amount: 'amount' }), () => this.checkComplexField(params, tx, {
36
+ paramPath: 'tokenAmounts',
37
+ txPath: 'tokens',
38
+ paramTransform: tokens => (tokens !== null && tokens !== void 0 ? tokens : []).map((d) => ({ t: d.tokenId, a: d.amountToken })),
39
+ txTransform: tokens => (tokens !== null && tokens !== void 0 ? tokens : []).map((d) => ({ t: d.t, a: d.a }))
40
+ }));
41
+ break;
42
+ case 'TX_CREATE_ASSETOBJECT':
43
+ case 'TX_CREATE_ASSETOBJECT_FEE':
44
+ checks.push(() => this.checkFields(params, tx, Object.assign({
45
+ assetType: 'object.type',
46
+ metaData: 'object.metaData'
47
+ }, (params.amount === '0' ? {} : { amount: 'object.amount' })))
48
+ // TODO: params.operator !== tx.Object.Operator ("" !== "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHF3E")
49
+ );
50
+ break;
51
+ case 'TX_TRANSFER_ASSETOBJECT':
52
+ case 'TX_TRANSFER_ASSETOBJECT_FEE':
53
+ checks.push(() => this.checkFields(params, tx, { to: 'target' }), () => this.checkFields(params, tx, {
54
+ to: 'target',
55
+ amount: 'assetObjects.assetObjects[0].targetObject.amount',
56
+ assetId: 'assetObjects.assetObjects[0].targetObject.assetId'
57
+ }));
58
+ break;
59
+ case 'TX_CREATE_CONTRACT':
60
+ case 'TX_CREATE_CONTRACT_FEE':
61
+ checks.push(() => this.checkFields(params, tx, {
62
+ code: 'code',
63
+ amount: 'amount',
64
+ fuelLimit: 'fuelLimit',
65
+ sysId: 'sysId',
66
+ until: 'until'
67
+ }, {
68
+ contractAccount: 'target'
69
+ }), () => this.checkComplexField(params, tx, {
70
+ paramPath: 'tokenAmounts',
71
+ txPath: 'tokens',
72
+ paramTransform: tokens => (tokens !== null && tokens !== void 0 ? tokens : []).map((d) => ({ t: d.tokenId, a: d.amountToken })),
73
+ txTransform: tokens => (tokens !== null && tokens !== void 0 ? tokens : []).map((d) => ({ t: d.t, a: d.a }))
74
+ }));
75
+ break;
76
+ case 'TX_CALL_CONTRACT':
77
+ case 'TX_CALL_CONTRACT_FEE':
78
+ checks.push(() => this.checkFields(params, tx, {
79
+ contractAccount: 'target',
80
+ amount: 'amount',
81
+ fuelLimit: 'fuelLimit',
82
+ func: 'func',
83
+ argData: 'argData'
84
+ }), () => this.checkComplexField(params, tx, {
85
+ paramPath: 'tokenAmounts',
86
+ txPath: 'tokens',
87
+ paramTransform: tokens => (tokens !== null && tokens !== void 0 ? tokens : []).map((d) => ({ t: d.tokenId, a: d.amountToken })),
88
+ txTransform: tokens => (tokens !== null && tokens !== void 0 ? tokens : []).map((d) => ({ t: d.t, a: d.a }))
89
+ })
90
+ // TODO: tx.AssetObjects 는 아직 rpc가 만들어지지 않아서 확인을 하지 못했다
91
+ );
92
+ break;
93
+ case 'TX_POST_DATA':
94
+ case 'TX_POST_DATA_FEE':
95
+ checks.push(() => this.checkFields(params, tx, { data: 'data', label: 'label' }));
96
+ break;
97
+ case 'TX_OPEN_ACCOUNT':
98
+ checks.push(() => this.checkFields(params, tx, { account: 'addr', pk: 'key' }, {
99
+ sender: 'refLink.addr',
100
+ index: 'refLink.index'
101
+ }));
102
+ break;
103
+ case 'TX_PROVIDE_SCRIPT':
104
+ checks.push(() => this.checkFields(params, tx, {
105
+ target: 'target',
106
+ targetAfterTimeLock: 'targetAfterTimeLock',
107
+ amount: 'amount'
108
+ }), () => this.checkComplexField(params, tx, {
109
+ paramPath: 'scriptProvide',
110
+ txPath: 'scriptProvide',
111
+ paramTransform: code => wasm.compileCoreScript(code),
112
+ txTransform: code => code
113
+ }), () => this.checkComplexField(params, tx, {
114
+ paramPath: 'scriptAccept',
115
+ txPath: 'scriptAccept',
116
+ paramTransform: code => wasm.compileCoreScript(code),
117
+ txTransform: code => code
118
+ }), () => this.checkComplexField(params, tx, {
119
+ paramPath: 'args',
120
+ txPath: 'args',
121
+ paramTransform: args => args !== null && args !== void 0 ? args : [],
122
+ txTransform: args => args !== null && args !== void 0 ? args : []
123
+ }));
124
+ break;
125
+ case 'TX_ACCEPT_SCRIPT':
126
+ checks.push(() => this.checkFields(params, tx, { provider: 'refLink.addr', index: 'refLink.index' }), () => this.checkComplexField(params, tx, {
127
+ paramPath: 'args',
128
+ txPath: 'args',
129
+ paramTransform: args => args !== null && args !== void 0 ? args : [],
130
+ txTransform: args => args !== null && args !== void 0 ? args : []
131
+ }) // 배열 비교라서..
132
+ );
133
+ break;
134
+ case 'TX_CLOSE_ACCOUNT':
135
+ checks.push(() => this.checkFields(params, tx, { to: 'target' }));
136
+ break;
137
+ case 'TX_BECOME_HOST':
138
+ case 'TX_BECOME_GUEST':
139
+ break;
140
+ default:
141
+ break;
142
+ }
143
+ for (const check of checks) {
144
+ const result = check();
145
+ if (result !== true)
146
+ return result;
147
+ }
148
+ return { result: true, reason: 'success' };
149
+ }
150
+ catch (e) {
151
+ console.error(e);
152
+ return { result: false, reason: `tx verify fail. error: ${e.message}` };
153
+ }
154
+ };
155
+ /**
156
+ * params 객체와 tx 객체의 필드를 주어진 매핑에 따라 비교합니다.
157
+ * @param params 파라미터 객체.
158
+ * @param tx 검증할 트랜잭션 객체.
159
+ * @param mapping 키는 `params`의 속성 경로, 값은 `tx`의 속성 경로인 객체.
160
+ * @param optional mapping과 동일한 구조이나, `params` 값이 있을경우만 체크합니다. string은 빈문자열이 아닌 문자열, number는 0을 없다고 판단합니다
161
+ * @returns 모든 필드가 일치하면 `true`, 실패 시 `IntegrityCheckResult` 객체를 반환합니다.
162
+ */
163
+ this.checkFields = (params, tx, mapping, optional) => {
164
+ for (const paramKey in mapping) {
165
+ const txKey = mapping[paramKey];
166
+ const paramValue = this.getByPathIgnoreCase(params, paramKey);
167
+ const txValue = _.get(tx, txKey);
168
+ if (paramValue !== txValue) {
169
+ return this.logAndFail(tx.type, paramKey, paramValue, txValue);
170
+ }
171
+ }
172
+ for (const paramKey in optional !== null && optional !== void 0 ? optional : {}) {
173
+ const txKey = optional[paramKey];
174
+ const paramValue = this.getByPathIgnoreCase(params, paramKey);
175
+ if (paramValue && paramValue !== '' && paramValue !== 0) {
176
+ const txValue = _.get(tx, txKey);
177
+ if (paramValue !== txValue) {
178
+ return this.logAndFail(tx.type, paramKey, paramValue, txValue);
179
+ }
180
+ }
181
+ }
182
+ return true;
183
+ };
184
+ this.checkComplexField = (params, tx, { paramPath, txPath, paramTransform, txTransform }) => {
185
+ const paramValue = paramTransform(this.getByPathIgnoreCase(params, paramPath));
186
+ const txValue = txTransform(_.get(tx, txPath));
187
+ if (!_.isEqual(paramValue, txValue)) {
188
+ return this.logAndFail(tx.type, paramPath, paramValue, txValue);
189
+ }
190
+ return true;
191
+ };
192
+ }
193
+ logAndFail(txType, field, expected, actual) {
194
+ console.warn(`[TxnIntegrityChecker] ${txType} ${field}:`, expected, actual);
195
+ return { result: false, reason: 'tx integrity check fail', field };
196
+ }
197
+ // 속성명의 대소문자를 무시하고 값을 구한다
198
+ getByPathIgnoreCase(obj, path) {
199
+ const keys = path.split('.');
200
+ let current = obj;
201
+ for (const key of keys) {
202
+ if (current === null || typeof current !== 'object')
203
+ return undefined;
204
+ const actualKey = Object.keys(current).find(k => k.toLowerCase() === key.toLowerCase());
205
+ if (actualKey === undefined)
206
+ return undefined;
207
+ current = current[actualKey];
208
+ }
209
+ return current;
210
+ }
211
+ }
212
+
213
+ /**
214
+ * Locus Chain WASM 4 개(Go lclib + AIMER/SMAUGT/HAETAE) 를 fetch 로 로드한다.
215
+ * 브라우저 / Node 양쪽 모두 동작.
216
+ */
217
+ const loadLocusWasm = lclib.load;
218
+ const txValidator = new TxValidator();
219
+ const verifyTxParams = txValidator.verifyTxParams;
220
+ const getClassByte = (hexstring) => {
221
+ // 0x 접두사 제거
222
+ const hex = hexstring.startsWith('0x') || hexstring.startsWith('0X')
223
+ ? hexstring.slice(2)
224
+ : hexstring;
225
+ // addressClassOffset = addressHashEnd - 1 이므로 해시의 마지막 바이트가 class byte
226
+ // (hex 문자 2개 = 1 byte)
227
+ const classByte = parseInt(hex.slice(-2), 16);
228
+ if (Number.isNaN(classByte)) {
229
+ throw new Error(`Invalid hex string: ${hexstring}`);
230
+ }
231
+ // 최상위 비트(0x80)가 세팅되어 있으면 User 클래스로 간주
232
+ if ((classByte & 0x80) !== 0) {
233
+ return addressClass.AddressClass.User;
234
+ }
235
+ return classByte;
236
+ };
237
+ const checkAddressType = (address) => {
238
+ try {
239
+ const hex = wasm.convertAddressToHex(address);
240
+ const classByte = getClassByte(hex);
241
+ // console.log('>>>>>>>>>>>', classByte)
242
+ const key = Object.keys(addressClass.AddressClass).find(k => classByte === addressClass.AddressClass[k]);
243
+ if (!key)
244
+ return -1;
245
+ return addressClass.AddressClass[key];
246
+ // console.warn('unknown address type', hex);
247
+ // // 참고!! ERC20 토큰은 주소로 알수 없음
248
+ }
249
+ catch (e) {
250
+ console.error(e + ' ' + address);
251
+ throw new Error('check error');
252
+ }
253
+ // return AddressType.UNKNOWN;
254
+ };
255
+ const isAccount = (addressType) => addressType === addressClass.AddressClass.User || addressType === addressClass.AddressClass.Synthetic || addressClass.AddressClass.VmEngine;
256
+ const isContract = (addressType) => addressType === addressClass.AddressClass.Contract;
257
+ const isToken = (addressType) => addressType === addressClass.AddressClass.UserToken ||
258
+ addressType === addressClass.AddressClass.ContractToken ||
259
+ addressType === addressClass.AddressClass.AssetToken ||
260
+ addressType === addressClass.AddressClass.AssetNFT;
261
+ const isSystemToken = (addressType) => addressType === addressClass.AddressClass.UserToken || addressType === addressClass.AddressClass.ContractToken;
262
+
263
+ exports.calculateTxLinkHash = wasm.calculateTxLinkHash;
264
+ exports.compileCoreScript = wasm.compileCoreScript;
265
+ exports.convertAddressToData = wasm.convertAddressToData;
266
+ exports.convertAddressToHex = wasm.convertAddressToHex;
267
+ exports.convertBase32ToData = wasm.convertBase32ToData;
268
+ exports.convertBase32ToHex = wasm.convertBase32ToHex;
269
+ exports.convertCurrency = wasm.convertCurrency;
270
+ exports.convertDataTo = wasm.convertDataTo;
271
+ exports.convertDataToAddress = wasm.convertDataToAddress;
272
+ exports.convertDataToBase32 = wasm.convertDataToBase32;
273
+ exports.convertDataToHex = wasm.convertDataToHex;
274
+ exports.convertDataToString = wasm.convertDataToString;
275
+ exports.convertHexToAddress = wasm.convertHexToAddress;
276
+ exports.convertHexToBase32 = wasm.convertHexToBase32;
277
+ exports.convertHexToData = wasm.convertHexToData;
278
+ exports.convertStringToData = wasm.convertStringToData;
279
+ exports.convertToData = wasm.convertToData;
280
+ exports.createAccountAndKeystore = wasm.createAccountAndKeystore;
281
+ exports.createMasterKeystore = wasm.createMasterKeystore;
282
+ exports.createNormalKey = wasm.createNormalKey;
283
+ exports.createNormalKeystore = wasm.createNormalKeystore;
284
+ exports.decodeTxs = wasm.decodeTxs;
285
+ exports.deriveKeysFromMnemonic = wasm.deriveKeysFromMnemonic;
286
+ exports.deriveKeysFromMnemonicAndPath = wasm.deriveKeysFromMnemonicAndPath;
287
+ exports.disCompileCoreScript = wasm.disCompileCoreScript;
288
+ exports.encodeTxCurrency = wasm.encodeTxCurrency;
289
+ exports.encodeTxNumber = wasm.encodeTxNumber;
290
+ exports.generateMnemonic = wasm.generateMnemonic;
291
+ exports.generateMnemonicBySeed = wasm.generateMnemonicBySeed;
292
+ exports.getDefFromCoreScript = wasm.getDefFromCoreScript;
293
+ exports.getHomeShard = wasm.getHomeShard;
294
+ exports.getLibraryVersions = wasm.getLibraryVersions;
295
+ exports.gzipAndEncode = wasm.gzipAndEncode;
296
+ exports.hash = wasm.hash;
297
+ exports.isGrantConsumingTx = wasm.isGrantConsumingTx;
298
+ exports.loadMasterKeystore = wasm.loadMasterKeystore;
299
+ exports.loadNormalKeystore = wasm.loadNormalKeystore;
300
+ exports.makeCurrency = wasm.makeCurrency;
301
+ exports.sign = wasm.sign;
302
+ exports.signByMasterKey = wasm.signByMasterKey;
303
+ exports.signKeyBind = wasm.signKeyBind;
304
+ exports.testCoreScript = wasm.testCoreScript;
305
+ exports.verify = wasm.verify;
306
+ exports.verifyByMasterKey = wasm.verifyByMasterKey;
307
+ exports.verifyMerkleProof = wasm.verifyMerkleProof;
308
+ exports.verifyTx = wasm.verifyTx;
309
+ exports.createKeystoreBundle = keystore.createKeystoreBundle;
310
+ exports.splitKeystoreBundle = keystore.splitKeystoreBundle;
311
+ exports.unlockKeystoreBundle = keystore.unlockKeystoreBundle;
312
+ exports.unlockMasterKeystore = keystore.unlockMasterKeystore;
313
+ exports.unlockNormalKeystore = keystore.unlockNormalKeystore;
314
+ exports.checkAddressType = checkAddressType;
315
+ exports.isAccount = isAccount;
316
+ exports.isContract = isContract;
317
+ exports.isSystemToken = isSystemToken;
318
+ exports.isToken = isToken;
319
+ exports.loadLocusWasm = loadLocusWasm;
320
+ exports.txValidator = txValidator;
321
+ exports.verifyTxParams = verifyTxParams;
322
+
323
+ }));