@onetokenfe/hd-core 1.1.23

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 (382) hide show
  1. package/.eslintrc +6 -0
  2. package/README.md +32 -0
  3. package/__tests__/benfen.test.ts +68 -0
  4. package/__tests__/checkBootloaderReleast.test.ts +115 -0
  5. package/__tests__/evmSignTransaction.test.ts +419 -0
  6. package/jest.config.js +6 -0
  7. package/package.json +48 -0
  8. package/src/api/BaseMethod.ts +275 -0
  9. package/src/api/CheckAllFirmwareRelease.ts +73 -0
  10. package/src/api/CheckBLEFirmwareRelease.ts +23 -0
  11. package/src/api/CheckBootloaderRelease.ts +32 -0
  12. package/src/api/CheckBridgeRelease.ts +28 -0
  13. package/src/api/CheckBridgeStatus.ts +32 -0
  14. package/src/api/CheckFirmwareRelease.ts +31 -0
  15. package/src/api/CheckFirmwareTypeAvailable.tsx +30 -0
  16. package/src/api/CipherKeyValue.ts +68 -0
  17. package/src/api/FirmwareUpdate.ts +219 -0
  18. package/src/api/FirmwareUpdateV2.ts +408 -0
  19. package/src/api/FirmwareUpdateV3.ts +560 -0
  20. package/src/api/GetFeatures.ts +23 -0
  21. package/src/api/GetLogs.ts +40 -0
  22. package/src/api/GetOnetokenFeatures.ts +25 -0
  23. package/src/api/GetPassphraseState.ts +28 -0
  24. package/src/api/PromptWebDeviceAccess.ts +77 -0
  25. package/src/api/SearchDevices.ts +50 -0
  26. package/src/api/alephium/AlephiumGetAddress.ts +84 -0
  27. package/src/api/alephium/AlephiumSignMessage.ts +51 -0
  28. package/src/api/alephium/AlephiumSignTransaction.ts +135 -0
  29. package/src/api/algo/AlgoGetAddress.ts +73 -0
  30. package/src/api/algo/AlgoSignTransaction.ts +52 -0
  31. package/src/api/allnetwork/AllNetworkGetAddress.ts +88 -0
  32. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +529 -0
  33. package/src/api/allnetwork/AllNetworkGetAddressByLoop.ts +162 -0
  34. package/src/api/aptos/AptosGetAddress.ts +129 -0
  35. package/src/api/aptos/AptosGetPublicKey.ts +64 -0
  36. package/src/api/aptos/AptosSignInMessage.ts +55 -0
  37. package/src/api/aptos/AptosSignMessage.ts +79 -0
  38. package/src/api/aptos/AptosSignTransaction.ts +72 -0
  39. package/src/api/benfen/BenfenGetAddress.ts +122 -0
  40. package/src/api/benfen/BenfenGetPublicKey.ts +68 -0
  41. package/src/api/benfen/BenfenSignMessage.ts +50 -0
  42. package/src/api/benfen/BenfenSignTransaction.ts +105 -0
  43. package/src/api/benfen/normalize.ts +51 -0
  44. package/src/api/btc/BTCGetAddress.ts +91 -0
  45. package/src/api/btc/BTCGetPublicKey.ts +174 -0
  46. package/src/api/btc/BTCSignMessage.ts +73 -0
  47. package/src/api/btc/BTCSignPsbt.ts +65 -0
  48. package/src/api/btc/BTCSignTransaction.ts +148 -0
  49. package/src/api/btc/BTCVerifyMessage.ts +46 -0
  50. package/src/api/btc/helpers/btcParamsUtils.ts +64 -0
  51. package/src/api/btc/helpers/signtx.ts +251 -0
  52. package/src/api/btc/helpers/signtxLegacy.ts +227 -0
  53. package/src/api/btc/helpers/versionLimit.ts +25 -0
  54. package/src/api/btc/helpers/xpubUtils.ts +132 -0
  55. package/src/api/cardano/CardanoGetAddress.ts +139 -0
  56. package/src/api/cardano/CardanoGetPublicKey.ts +72 -0
  57. package/src/api/cardano/CardanoSignMessage.ts +73 -0
  58. package/src/api/cardano/CardanoSignTransaction.ts +404 -0
  59. package/src/api/cardano/helper/addressParameters.ts +120 -0
  60. package/src/api/cardano/helper/auxiliaryData.ts +133 -0
  61. package/src/api/cardano/helper/cardanoInputs.ts +55 -0
  62. package/src/api/cardano/helper/cardanoOutputs.ts +89 -0
  63. package/src/api/cardano/helper/certificate.ts +246 -0
  64. package/src/api/cardano/helper/token.ts +44 -0
  65. package/src/api/cardano/helper/utils.ts +17 -0
  66. package/src/api/cardano/helper/witnesses.ts +62 -0
  67. package/src/api/conflux/ConfluxGetAddress.ts +78 -0
  68. package/src/api/conflux/ConfluxSignMessage.ts +49 -0
  69. package/src/api/conflux/ConfluxSignMessageCIP23.ts +49 -0
  70. package/src/api/conflux/ConfluxSignTransaction.ts +135 -0
  71. package/src/api/cosmos/CosmosGetAddress.ts +80 -0
  72. package/src/api/cosmos/CosmosGetPublicKey.ts +77 -0
  73. package/src/api/cosmos/CosmosSignTransaction.ts +68 -0
  74. package/src/api/device/DeviceBackup.ts +15 -0
  75. package/src/api/device/DeviceCancel.ts +15 -0
  76. package/src/api/device/DeviceChangePin.ts +25 -0
  77. package/src/api/device/DeviceFlags.ts +26 -0
  78. package/src/api/device/DeviceFullyUploadResource.ts +80 -0
  79. package/src/api/device/DeviceLock.ts +15 -0
  80. package/src/api/device/DeviceRebootToBoardloader.ts +30 -0
  81. package/src/api/device/DeviceRebootToBootloader.ts +28 -0
  82. package/src/api/device/DeviceRecovery.ts +44 -0
  83. package/src/api/device/DeviceReset.ts +46 -0
  84. package/src/api/device/DeviceSettings.ts +96 -0
  85. package/src/api/device/DeviceSupportFeatures.ts +29 -0
  86. package/src/api/device/DeviceUnlock.ts +13 -0
  87. package/src/api/device/DeviceUpdateBootloader.ts +111 -0
  88. package/src/api/device/DeviceUpdateReboot.ts +17 -0
  89. package/src/api/device/DeviceUploadResource.ts +204 -0
  90. package/src/api/device/DeviceVerify.ts +65 -0
  91. package/src/api/device/DeviceWipe.ts +15 -0
  92. package/src/api/dynex/DnxGetAddress.ts +75 -0
  93. package/src/api/dynex/DnxSignTransaction.ts +126 -0
  94. package/src/api/evm/EVMGetAddress.ts +88 -0
  95. package/src/api/evm/EVMGetPublicKey.ts +116 -0
  96. package/src/api/evm/EVMSignMessage.ts +49 -0
  97. package/src/api/evm/EVMSignMessageEIP712.ts +56 -0
  98. package/src/api/evm/EVMSignTransaction.ts +141 -0
  99. package/src/api/evm/EVMSignTypedData.ts +477 -0
  100. package/src/api/evm/EVMVerifyMessage.ts +46 -0
  101. package/src/api/evm/latest/getAddress.ts +13 -0
  102. package/src/api/evm/latest/getPublicKey.ts +17 -0
  103. package/src/api/evm/latest/signMessage.ts +19 -0
  104. package/src/api/evm/latest/signTransaction.ts +303 -0
  105. package/src/api/evm/latest/signTypedData.ts +34 -0
  106. package/src/api/evm/latest/signTypedHash.ts +46 -0
  107. package/src/api/evm/latest/verifyMessage.ts +15 -0
  108. package/src/api/evm/legacyV1/getAddress.ts +16 -0
  109. package/src/api/evm/legacyV1/getPublicKey.ts +20 -0
  110. package/src/api/evm/legacyV1/signMessage.ts +22 -0
  111. package/src/api/evm/legacyV1/signTransaction.ts +37 -0
  112. package/src/api/evm/legacyV1/signTypedData.ts +37 -0
  113. package/src/api/evm/legacyV1/signTypedHash.ts +50 -0
  114. package/src/api/evm/legacyV1/verifyMessage.ts +19 -0
  115. package/src/api/filecoin/FilecoinGetAddress.ts +80 -0
  116. package/src/api/filecoin/FilecoinSignTransaction.ts +57 -0
  117. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +476 -0
  118. package/src/api/firmware/bootloaderHelper.ts +46 -0
  119. package/src/api/firmware/getBinary.ts +99 -0
  120. package/src/api/firmware/releaseHelper.ts +78 -0
  121. package/src/api/firmware/updateBootloader.ts +82 -0
  122. package/src/api/firmware/uploadFirmware.ts +541 -0
  123. package/src/api/helpers/batchGetPublickeys.ts +84 -0
  124. package/src/api/helpers/bigNumberUtils.ts +58 -0
  125. package/src/api/helpers/hexUtils.ts +111 -0
  126. package/src/api/helpers/paramsValidator.ts +165 -0
  127. package/src/api/helpers/pathUtils.ts +145 -0
  128. package/src/api/helpers/stringUtils.ts +11 -0
  129. package/src/api/helpers/typeNameUtils.ts +137 -0
  130. package/src/api/index.ts +161 -0
  131. package/src/api/kaspa/KaspaGetAddress.ts +103 -0
  132. package/src/api/kaspa/KaspaSignTransaction.ts +182 -0
  133. package/src/api/kaspa/helpers/BufferWriter.ts +177 -0
  134. package/src/api/kaspa/helpers/HashWriter.ts +74 -0
  135. package/src/api/kaspa/helpers/SignatureType.ts +7 -0
  136. package/src/api/kaspa/helpers/TransferSerialize.ts +144 -0
  137. package/src/api/lightning/LnurlAuth.ts +52 -0
  138. package/src/api/near/NearGetAddress.ts +75 -0
  139. package/src/api/near/NearSignTransaction.ts +46 -0
  140. package/src/api/nem/NEMGetAddress.ts +72 -0
  141. package/src/api/nem/NEMSignTransaction.ts +251 -0
  142. package/src/api/neo/NeoGetAddress.ts +80 -0
  143. package/src/api/neo/NeoSignTransaction.ts +59 -0
  144. package/src/api/nervos/NervosGetAddress.ts +80 -0
  145. package/src/api/nervos/NervosSignTransaction.ts +116 -0
  146. package/src/api/nexa/NexaGetAddress.ts +88 -0
  147. package/src/api/nexa/NexaSignTransaction.ts +107 -0
  148. package/src/api/nostr/NostrDecryptMessage.ts +57 -0
  149. package/src/api/nostr/NostrEncryptMessage.ts +57 -0
  150. package/src/api/nostr/NostrGetPublicKey.ts +74 -0
  151. package/src/api/nostr/NostrSignEvent.ts +65 -0
  152. package/src/api/nostr/NostrSignSchnorr.ts +52 -0
  153. package/src/api/nostr/helper/index.ts +28 -0
  154. package/src/api/polkadot/PolkadotGetAddress.ts +83 -0
  155. package/src/api/polkadot/PolkadotSignTransaction.ts +53 -0
  156. package/src/api/polkadot/networks.ts +72 -0
  157. package/src/api/scdo/ScdoGetAddress.ts +76 -0
  158. package/src/api/scdo/ScdoSignMessage.ts +45 -0
  159. package/src/api/scdo/ScdoSignTransaction.ts +106 -0
  160. package/src/api/solana/SolGetAddress.ts +68 -0
  161. package/src/api/solana/SolSignMessage.ts +61 -0
  162. package/src/api/solana/SolSignOffchainMessage.ts +61 -0
  163. package/src/api/solana/SolSignTransaction.ts +108 -0
  164. package/src/api/starcoin/StarcoinGetAddress.ts +69 -0
  165. package/src/api/starcoin/StarcoinGetPublicKey.ts +70 -0
  166. package/src/api/starcoin/StarcoinSignMessage.ts +42 -0
  167. package/src/api/starcoin/StarcoinSignTransaction.ts +38 -0
  168. package/src/api/starcoin/StarcoinVerifyMessage.ts +35 -0
  169. package/src/api/stellar/StellarGetAddress.ts +68 -0
  170. package/src/api/stellar/StellarSignTransaction.ts +220 -0
  171. package/src/api/sui/SuiGetAddress.ts +117 -0
  172. package/src/api/sui/SuiGetPublicKey.ts +66 -0
  173. package/src/api/sui/SuiSignMessage.ts +48 -0
  174. package/src/api/sui/SuiSignTransaction.ts +126 -0
  175. package/src/api/sui/normalize.ts +28 -0
  176. package/src/api/test/TestInitializeDeviceDuration.ts +22 -0
  177. package/src/api/ton/TonGetAddress.ts +96 -0
  178. package/src/api/ton/TonSignMessage.ts +217 -0
  179. package/src/api/ton/TonSignProof.ts +62 -0
  180. package/src/api/tron/TronGetAddress.ts +75 -0
  181. package/src/api/tron/TronSignMessage.ts +89 -0
  182. package/src/api/tron/TronSignTransaction.ts +214 -0
  183. package/src/api/u2f/GetNextU2FCounter.ts +15 -0
  184. package/src/api/u2f/SetU2FCounter.ts +19 -0
  185. package/src/api/utils.ts +23 -0
  186. package/src/api/xrp/XrpGetAddress.ts +96 -0
  187. package/src/api/xrp/XrpSignTransaction.ts +71 -0
  188. package/src/constants/errors.ts +15 -0
  189. package/src/constants/index.ts +2 -0
  190. package/src/constants/ui-request.ts +3 -0
  191. package/src/core/RequestQueue.ts +134 -0
  192. package/src/core/index.ts +1320 -0
  193. package/src/data/coins/bitcoin.json +44 -0
  194. package/src/data/config.ts +25 -0
  195. package/src/data/messages/messages.json +13167 -0
  196. package/src/data/messages/messages_legacy_v1.json +10282 -0
  197. package/src/data-manager/CoinManager.ts +31 -0
  198. package/src/data-manager/DataManager.ts +499 -0
  199. package/src/data-manager/MessagesConfig.ts +28 -0
  200. package/src/data-manager/TransportManager.ts +140 -0
  201. package/src/data-manager/connectSettings.ts +121 -0
  202. package/src/data-manager/index.ts +3 -0
  203. package/src/device/Device.ts +884 -0
  204. package/src/device/DeviceCommands.ts +631 -0
  205. package/src/device/DeviceConnector.ts +124 -0
  206. package/src/device/DeviceList.ts +39 -0
  207. package/src/device/DevicePool.ts +266 -0
  208. package/src/events/call.ts +95 -0
  209. package/src/events/core.ts +65 -0
  210. package/src/events/device.ts +92 -0
  211. package/src/events/firmware.ts +43 -0
  212. package/src/events/iframe.ts +55 -0
  213. package/src/events/index.ts +10 -0
  214. package/src/events/log.ts +23 -0
  215. package/src/events/logBlockEvent.ts +6 -0
  216. package/src/events/ui-promise.ts +14 -0
  217. package/src/events/ui-request.ts +216 -0
  218. package/src/events/ui-response.ts +59 -0
  219. package/src/events/utils.ts +19 -0
  220. package/src/index.ts +70 -0
  221. package/src/inject.ts +408 -0
  222. package/src/lowLevelInject.ts +61 -0
  223. package/src/topLevelInject.ts +62 -0
  224. package/src/types/api/alephiumGetAddress.ts +31 -0
  225. package/src/types/api/alephiumSignMessage.ts +14 -0
  226. package/src/types/api/alephiumSignTransaction.ts +18 -0
  227. package/src/types/api/algoGetAddress.ts +23 -0
  228. package/src/types/api/algoSignTransaction.ts +17 -0
  229. package/src/types/api/allNetworkGetAddress.ts +130 -0
  230. package/src/types/api/aptosGetAddress.ts +28 -0
  231. package/src/types/api/aptosGetPublicKey.ts +27 -0
  232. package/src/types/api/aptosSignInMessage.ts +17 -0
  233. package/src/types/api/aptosSignMessage.ts +26 -0
  234. package/src/types/api/aptosSignTransaction.ts +18 -0
  235. package/src/types/api/benfenGetAddress.ts +24 -0
  236. package/src/types/api/benfenGetPublicKey.ts +23 -0
  237. package/src/types/api/benfenSignMessage.ts +13 -0
  238. package/src/types/api/benfenSignTransaction.ts +19 -0
  239. package/src/types/api/btcGetAddress.ts +26 -0
  240. package/src/types/api/btcGetPublicKey.ts +26 -0
  241. package/src/types/api/btcSignMessage.ts +16 -0
  242. package/src/types/api/btcSignPsbt.ts +13 -0
  243. package/src/types/api/btcSignTransaction.ts +98 -0
  244. package/src/types/api/btcVerifyMessage.ts +15 -0
  245. package/src/types/api/cardano.ts +212 -0
  246. package/src/types/api/cardanoGetAddress.ts +49 -0
  247. package/src/types/api/cardanoGetPublicKey.ts +33 -0
  248. package/src/types/api/cardanoSignMessage.ts +31 -0
  249. package/src/types/api/cardanoSignTransaction.ts +8 -0
  250. package/src/types/api/checkAllFirmwareRelease.ts +34 -0
  251. package/src/types/api/checkBLEFirmwareRelease.ts +15 -0
  252. package/src/types/api/checkBootloaderRelease.ts +19 -0
  253. package/src/types/api/checkBridgeRelease.ts +14 -0
  254. package/src/types/api/checkBridgeStatus.ts +3 -0
  255. package/src/types/api/checkFirmwareRelease.ts +23 -0
  256. package/src/types/api/checkFirmwareTypeAvailable.ts +12 -0
  257. package/src/types/api/cipherKeyValue.ts +28 -0
  258. package/src/types/api/confluxGetAddress.ts +24 -0
  259. package/src/types/api/confluxSignMessage.ts +13 -0
  260. package/src/types/api/confluxSignMessageCIP23.ts +14 -0
  261. package/src/types/api/confluxSignTransaction.ts +32 -0
  262. package/src/types/api/cosmosGetAddress.ts +24 -0
  263. package/src/types/api/cosmosGetPublicKey.ts +28 -0
  264. package/src/types/api/cosmosSignTransaction.ts +17 -0
  265. package/src/types/api/deviceBackup.ts +4 -0
  266. package/src/types/api/deviceCancel.ts +4 -0
  267. package/src/types/api/deviceChangePin.ts +11 -0
  268. package/src/types/api/deviceFlags.ts +11 -0
  269. package/src/types/api/deviceFullyUploadResource.ts +15 -0
  270. package/src/types/api/deviceLock.ts +4 -0
  271. package/src/types/api/deviceRebootToBoardloader.ts +6 -0
  272. package/src/types/api/deviceRebootToBootloader.ts +4 -0
  273. package/src/types/api/deviceRecovery.ts +19 -0
  274. package/src/types/api/deviceReset.ts +20 -0
  275. package/src/types/api/deviceSettings.ts +23 -0
  276. package/src/types/api/deviceSupportFeatures.ts +6 -0
  277. package/src/types/api/deviceUnlock.ts +4 -0
  278. package/src/types/api/deviceUpdateBootloader.ts +13 -0
  279. package/src/types/api/deviceUpdateReboot.ts +3 -0
  280. package/src/types/api/deviceUploadResource.ts +21 -0
  281. package/src/types/api/deviceVerify.ts +15 -0
  282. package/src/types/api/deviceWipe.ts +4 -0
  283. package/src/types/api/dnxGetAddress.ts +23 -0
  284. package/src/types/api/dnxSignTransaction.ts +36 -0
  285. package/src/types/api/event.ts +8 -0
  286. package/src/types/api/evmGetAddress.ts +24 -0
  287. package/src/types/api/evmGetPublicKey.ts +36 -0
  288. package/src/types/api/evmSignMessage.ts +14 -0
  289. package/src/types/api/evmSignMessageEIP712.ts +14 -0
  290. package/src/types/api/evmSignTransaction.ts +80 -0
  291. package/src/types/api/evmSignTypedData.ts +42 -0
  292. package/src/types/api/evmVerifyMessage.ts +15 -0
  293. package/src/types/api/export.ts +194 -0
  294. package/src/types/api/filecoinGetAddress.ts +24 -0
  295. package/src/types/api/filecoinSignTransaction.ts +24 -0
  296. package/src/types/api/firmwareUpdate.ts +66 -0
  297. package/src/types/api/getFeatures.ts +4 -0
  298. package/src/types/api/getLogs.ts +3 -0
  299. package/src/types/api/getNextU2FCounter.ts +7 -0
  300. package/src/types/api/getOnetokenFeatures.ts +7 -0
  301. package/src/types/api/getPassphraseState.ts +6 -0
  302. package/src/types/api/index.ts +404 -0
  303. package/src/types/api/init.ts +11 -0
  304. package/src/types/api/kaspaGetAddress.ts +26 -0
  305. package/src/types/api/kaspaSignTransaction.ts +44 -0
  306. package/src/types/api/lnurlAuth.ts +22 -0
  307. package/src/types/api/nearGetAddress.ts +23 -0
  308. package/src/types/api/nearSignTransaction.ts +13 -0
  309. package/src/types/api/nemGetAddress.ts +24 -0
  310. package/src/types/api/nemSignTransaction.ts +118 -0
  311. package/src/types/api/neoGetAddress.ts +24 -0
  312. package/src/types/api/neoSignTransaction.ts +18 -0
  313. package/src/types/api/nervosGetAddress.ts +24 -0
  314. package/src/types/api/nervosSignTransaction.ts +19 -0
  315. package/src/types/api/nexaGetAddress.ts +26 -0
  316. package/src/types/api/nexaSignTransaction.ts +28 -0
  317. package/src/types/api/nostrDecryptMessage.ts +25 -0
  318. package/src/types/api/nostrEncryptMessage.ts +25 -0
  319. package/src/types/api/nostrGetPublicKey.ts +28 -0
  320. package/src/types/api/nostrSignEvent.ts +52 -0
  321. package/src/types/api/nostrSignSchnorr.ts +22 -0
  322. package/src/types/api/polkadotGetAddress.ts +30 -0
  323. package/src/types/api/polkadotSignTransaction.ts +19 -0
  324. package/src/types/api/promptWebDeviceAccess.ts +6 -0
  325. package/src/types/api/scdoGetAddress.ts +23 -0
  326. package/src/types/api/scdoSignMessage.ts +13 -0
  327. package/src/types/api/scdoSignTransaction.ts +24 -0
  328. package/src/types/api/searchDevices.ts +4 -0
  329. package/src/types/api/setU2FCounter.ts +7 -0
  330. package/src/types/api/solGetAddress.ts +23 -0
  331. package/src/types/api/solSignMessage.ts +17 -0
  332. package/src/types/api/solSignOffchainMessage.ts +24 -0
  333. package/src/types/api/solSignTransaction.ts +27 -0
  334. package/src/types/api/starcoinGetAddress.ts +23 -0
  335. package/src/types/api/starcoinGetPublicKey.ts +23 -0
  336. package/src/types/api/starcoinSignMessage.ts +13 -0
  337. package/src/types/api/starcoinSignTransaction.ts +13 -0
  338. package/src/types/api/starcoinVerifyMessage.ts +14 -0
  339. package/src/types/api/stellarGetAddress.ts +23 -0
  340. package/src/types/api/stellarSignTransaction.ts +154 -0
  341. package/src/types/api/suiGetAddress.ts +28 -0
  342. package/src/types/api/suiGetPublicKey.ts +27 -0
  343. package/src/types/api/suiSignMessage.ts +13 -0
  344. package/src/types/api/suiSignTransaction.ts +17 -0
  345. package/src/types/api/testInitializeDeviceDuration.ts +6 -0
  346. package/src/types/api/tonGetAddress.ts +34 -0
  347. package/src/types/api/tonSignMessage.ts +42 -0
  348. package/src/types/api/tonSignProof.ts +25 -0
  349. package/src/types/api/tronGetAddress.ts +23 -0
  350. package/src/types/api/tronSignMessage.ts +14 -0
  351. package/src/types/api/tronSignTransaction.ts +89 -0
  352. package/src/types/api/uiResponse.ts +3 -0
  353. package/src/types/api/xrpGetAddress.ts +28 -0
  354. package/src/types/api/xrpSignTransaction.ts +29 -0
  355. package/src/types/device.ts +194 -0
  356. package/src/types/firmware.ts +41 -0
  357. package/src/types/global.d.ts +3 -0
  358. package/src/types/index.ts +5 -0
  359. package/src/types/params.ts +64 -0
  360. package/src/types/settings.ts +144 -0
  361. package/src/utils/arrayUtils.ts +7 -0
  362. package/src/utils/assets.ts +5 -0
  363. package/src/utils/bridgeUpdate.ts +80 -0
  364. package/src/utils/capabilitieUtils.ts +12 -0
  365. package/src/utils/deviceFeaturesUtils.ts +352 -0
  366. package/src/utils/deviceInfoUtils.ts +167 -0
  367. package/src/utils/deviceSettings.ts +109 -0
  368. package/src/utils/deviceVersionUtils.ts +79 -0
  369. package/src/utils/findDefectiveBatchDevice.ts +39 -0
  370. package/src/utils/getMutex.ts +41 -0
  371. package/src/utils/getSynchronize.ts +25 -0
  372. package/src/utils/homescreen.ts +345 -0
  373. package/src/utils/index.ts +44 -0
  374. package/src/utils/logger.ts +190 -0
  375. package/src/utils/networkUtils.ts +25 -0
  376. package/src/utils/patch.ts +14 -0
  377. package/src/utils/promiseUtils.ts +4 -0
  378. package/src/utils/release.ts +42 -0
  379. package/src/utils/semver.test.js +53 -0
  380. package/src/utils/tracing.ts +238 -0
  381. package/src/utils/versionUtils.ts +120 -0
  382. package/tsconfig.json +11 -0
@@ -0,0 +1,529 @@
1
+ import semver from 'semver';
2
+ import {
3
+ ERRORS,
4
+ HardwareError,
5
+ HardwareErrorCode,
6
+ HardwareErrorCodeMessage,
7
+ } from '@onetokenfe/hd-shared';
8
+
9
+ import { serializedPath, toHardened } from '../helpers/pathUtils';
10
+ import { BaseMethod } from '../BaseMethod';
11
+ import { validateParams } from '../helpers/paramsValidator';
12
+ import { PROTO } from '../../constants';
13
+ import { findMethod } from '../utils';
14
+ import { DEVICE, IFRAME, createUiMessage } from '../../events';
15
+ import { getDeviceFirmwareVersion, getFirmwareType, getMethodVersionRange } from '../../utils';
16
+ import { UI_REQUEST } from '../../constants/ui-request';
17
+ import { onDeviceButtonHandler } from '../../core';
18
+ import {
19
+ completeRequestContext,
20
+ createRequestContext,
21
+ updateRequestContext,
22
+ } from '../../utils/tracing';
23
+
24
+ import type { Device, DeviceEvents } from '../../device/Device';
25
+ import type { CoreApi } from '../../types';
26
+ import type {
27
+ AllNetworkAddress,
28
+ AllNetworkAddressParams,
29
+ CommonResponseParams,
30
+ INetwork,
31
+ } from '../../types/api/allNetworkGetAddress';
32
+
33
+ const Mainnet = 'mainnet';
34
+
35
+ export type NetworkConfig = {
36
+ methodName: keyof CoreApi;
37
+ getParams?: (baseParams: AllNetworkAddressParams, chainName?: string, methodName?: string) => any;
38
+ dependOnMethodName?: (keyof CoreApi)[];
39
+ };
40
+
41
+ export type INetworkReal = Exclude<INetwork, 'tbtc' | 'bch' | 'doge' | 'ltc' | 'neurai'>;
42
+
43
+ export type NetworkConfigMap = {
44
+ [K in INetworkReal]: NetworkConfig;
45
+ };
46
+
47
+ export const networkAliases: {
48
+ [key: string]: { name: INetworkReal; coin: string };
49
+ } = {
50
+ tbtc: { name: 'btc', coin: 'Testnet' },
51
+ bch: { name: 'btc', coin: 'Bcash' },
52
+ doge: { name: 'btc', coin: 'Dogecoin' },
53
+ ltc: { name: 'btc', coin: 'Litecoin' },
54
+ neurai: { name: 'btc', coin: 'Neurai' },
55
+ };
56
+
57
+ const networkConfigMap: NetworkConfigMap = {
58
+ btc: {
59
+ methodName: 'btcGetPublicKey',
60
+ getParams: (baseParams: AllNetworkAddressParams, chainName?: string) => ({
61
+ coin: chainName,
62
+ ...baseParams,
63
+ }),
64
+ },
65
+ evm: {
66
+ methodName: 'evmGetAddress',
67
+ getParams: (baseParams: AllNetworkAddressParams, chainName?: string) => {
68
+ const { path, showOnOneToken } = baseParams;
69
+ let chainId;
70
+ if (chainName) {
71
+ chainId = parseInt(chainName);
72
+ }
73
+ return {
74
+ chainId,
75
+ path,
76
+ showOnOneToken,
77
+ };
78
+ },
79
+ },
80
+ sol: {
81
+ methodName: 'solGetAddress',
82
+ },
83
+ algo: {
84
+ methodName: 'algoGetAddress',
85
+ },
86
+ near: {
87
+ methodName: 'nearGetAddress',
88
+ },
89
+ stc: {
90
+ methodName: 'starcoinGetAddress',
91
+ },
92
+ cfx: {
93
+ methodName: 'confluxGetAddress',
94
+ getParams: (baseParams: AllNetworkAddressParams, chainName?: string) => {
95
+ const { path, showOnOneToken } = baseParams;
96
+ return {
97
+ chainId: parseInt(chainName ?? '1029'),
98
+ path,
99
+ showOnOneToken,
100
+ };
101
+ },
102
+ },
103
+ tron: {
104
+ methodName: 'tronGetAddress',
105
+ },
106
+ aptos: {
107
+ methodName: 'aptosGetAddress',
108
+ },
109
+ xrp: {
110
+ methodName: 'xrpGetAddress',
111
+ },
112
+ cosmos: {
113
+ methodName: 'cosmosGetPublicKey',
114
+ getParams: (baseParams: AllNetworkAddressParams) => {
115
+ const { path, prefix, showOnOneToken } = baseParams;
116
+ return {
117
+ hrp: prefix,
118
+ path,
119
+ showOnOneToken,
120
+ };
121
+ },
122
+ },
123
+ ada: {
124
+ methodName: 'cardanoGetAddress',
125
+ getParams: (baseParams: AllNetworkAddressParams, chainName?: string) => {
126
+ const { path, showOnOneToken } = baseParams;
127
+
128
+ const addressPath =
129
+ typeof path === 'string' ? `${path}/0/0` : serializedPath([...path, 0, 0]);
130
+ const stakingPath =
131
+ typeof path === 'string' ? `${path}/2/0` : serializedPath([...path, 2, 0]);
132
+
133
+ let networkId = 1;
134
+ if (chainName) {
135
+ networkId = chainName === Mainnet ? 1 : 0;
136
+ }
137
+
138
+ return {
139
+ addressParameters: {
140
+ addressType: PROTO.CardanoAddressType.BASE,
141
+ path: addressPath,
142
+ stakingPath,
143
+ },
144
+ protocolMagic: 764824073,
145
+ networkId,
146
+ derivationType: PROTO.CardanoDerivationType.ICARUS,
147
+ showOnOneToken,
148
+ address: '',
149
+ isCheck: false,
150
+ };
151
+ },
152
+ },
153
+ sui: {
154
+ methodName: 'suiGetAddress',
155
+ },
156
+ benfen: {
157
+ methodName: 'benfenGetAddress',
158
+ },
159
+ fil: {
160
+ methodName: 'filecoinGetAddress',
161
+ getParams: (baseParams: AllNetworkAddressParams, chainName?: string) => {
162
+ const { path, showOnOneToken } = baseParams;
163
+ let isTestnet = false;
164
+ if (chainName) {
165
+ isTestnet = chainName !== Mainnet;
166
+ }
167
+ return {
168
+ isTestnet,
169
+ path,
170
+ showOnOneToken,
171
+ };
172
+ },
173
+ },
174
+ dot: {
175
+ methodName: 'polkadotGetAddress',
176
+ getParams: (baseParams: AllNetworkAddressParams, chainName?: string) => {
177
+ const { path, prefix, showOnOneToken } = baseParams;
178
+ if (!prefix || !chainName) {
179
+ throw new Error('Invalid params');
180
+ }
181
+ return {
182
+ prefix: parseInt(prefix),
183
+ network: chainName,
184
+ path,
185
+ showOnOneToken,
186
+ };
187
+ },
188
+ },
189
+ kaspa: {
190
+ methodName: 'kaspaGetAddress',
191
+ getParams: (baseParams: AllNetworkAddressParams) => {
192
+ const { path, prefix, showOnOneToken, useTweak } = baseParams;
193
+ return {
194
+ scheme: 'schnorr',
195
+ prefix,
196
+ path,
197
+ showOnOneToken,
198
+ useTweak,
199
+ };
200
+ },
201
+ },
202
+ nexa: {
203
+ methodName: 'nexaGetAddress',
204
+ getParams: (baseParams: AllNetworkAddressParams) => {
205
+ const { path, prefix, showOnOneToken } = baseParams;
206
+ return {
207
+ scheme: 'Schnorr',
208
+ prefix,
209
+ path,
210
+ showOnOneToken,
211
+ };
212
+ },
213
+ },
214
+ dynex: {
215
+ methodName: 'dnxGetAddress',
216
+ },
217
+ nervos: {
218
+ methodName: 'nervosGetAddress',
219
+ getParams: (baseParams: AllNetworkAddressParams, chainName?: string) => {
220
+ const { path, showOnOneToken } = baseParams;
221
+ return {
222
+ network: chainName,
223
+ path,
224
+ showOnOneToken,
225
+ };
226
+ },
227
+ },
228
+ scdo: {
229
+ methodName: 'scdoGetAddress',
230
+ },
231
+ ton: {
232
+ methodName: 'tonGetAddress',
233
+ },
234
+ alph: {
235
+ methodName: 'alephiumGetAddress',
236
+ },
237
+ nostr: {
238
+ methodName: 'nostrGetPublicKey',
239
+ },
240
+ neo: {
241
+ methodName: 'neoGetAddress',
242
+ },
243
+ stellar: {
244
+ methodName: 'stellarGetAddress',
245
+ },
246
+ };
247
+
248
+ type MethodParams = {
249
+ methodName: keyof CoreApi;
250
+ params: Parameters<CoreApi[keyof CoreApi]>[0];
251
+ _originRequestParams: AllNetworkAddressParams;
252
+ _originalIndex: number;
253
+ };
254
+
255
+ export default abstract class AllNetworkGetAddressBase extends BaseMethod<
256
+ {
257
+ address_n: number[];
258
+ show_display: boolean;
259
+ network: string;
260
+ chain_name?: string;
261
+ }[]
262
+ > {
263
+ abortController: AbortController | null = null;
264
+
265
+ init() {
266
+ this.checkDeviceId = true;
267
+ this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
268
+
269
+ // check payload
270
+ validateParams(this.payload, [{ name: 'bundle', type: 'array' }]);
271
+
272
+ // check bundle
273
+ this.payload?.bundle?.forEach((batch: AllNetworkAddressParams) => {
274
+ validateParams(batch, [
275
+ { name: 'path', required: true },
276
+ { name: 'network', type: 'string', required: true },
277
+ { name: 'chainName', type: 'string' },
278
+ { name: 'showOnOneToken', type: 'boolean' },
279
+ ]);
280
+ });
281
+ }
282
+
283
+ generateMethodName({
284
+ network,
285
+ payload,
286
+ originalIndex,
287
+ }: {
288
+ network: INetwork;
289
+ payload: AllNetworkAddressParams;
290
+ originalIndex: number;
291
+ }): MethodParams {
292
+ const { name: networkName, coin } = networkAliases[network] || {
293
+ name: network,
294
+ coin: payload?.chainName,
295
+ };
296
+ const config = networkConfigMap[networkName];
297
+ if (!config) {
298
+ throw new Error(`Unsupported network: ${network}`);
299
+ }
300
+
301
+ return {
302
+ methodName: config.methodName,
303
+ params: {
304
+ ...(config?.getParams?.(payload, coin, config.methodName) ?? payload),
305
+ originPayload: payload,
306
+ },
307
+ _originRequestParams: payload,
308
+ _originalIndex: originalIndex,
309
+ };
310
+ }
311
+
312
+ async callMethod(
313
+ methodName: keyof CoreApi,
314
+ params: any & {
315
+ bundle: (any & { _originRequestParams: CommonResponseParams })[];
316
+ },
317
+ rootFingerprint: number
318
+ ) {
319
+ const method: BaseMethod = findMethod({
320
+ event: IFRAME.CALL,
321
+ type: IFRAME.CALL,
322
+ payload: {
323
+ connectId: this.payload.connectId,
324
+ deviceId: this.payload.deviceId,
325
+ method: methodName,
326
+ ...params,
327
+ },
328
+ });
329
+
330
+ method.connector = this.connector;
331
+ method.postMessage = this.postMessage;
332
+ if (this.context) {
333
+ method.setContext?.(this.context);
334
+ }
335
+
336
+ method.requestContext = createRequestContext(method.responseID, methodName, {
337
+ sdkInstanceId: this.sdkInstanceId,
338
+ connectId: this.payload.connectId,
339
+ parentResponseID: this.responseID,
340
+ });
341
+
342
+ const onSignalAbort = () => {
343
+ this.abortController?.abort(HardwareErrorCodeMessage[HardwareErrorCode.RepeatUnlocking]);
344
+ };
345
+
346
+ const buttonListener = (...[device, request]: [...DeviceEvents['button']]) => {
347
+ if (request.code === 'ButtonRequest_PinEntry' || request.code === 'ButtonRequest_AttachPin') {
348
+ onSignalAbort();
349
+ } else {
350
+ onDeviceButtonHandler(device, request);
351
+ }
352
+ };
353
+
354
+ let result: AllNetworkAddress[];
355
+ try {
356
+ method.init();
357
+ method.setDevice?.(this.device);
358
+ method.context = this.context;
359
+
360
+ if (method.requestContext && this.device) {
361
+ updateRequestContext(method.requestContext.responseID, {
362
+ deviceInstanceId: this.device.instanceId,
363
+ commandsInstanceId: this.device.commands?.instanceId,
364
+ });
365
+ }
366
+
367
+ // pro pin event
368
+ this.device.on(DEVICE.BUTTON, buttonListener);
369
+ // classic pin event
370
+ this.device.on(DEVICE.PIN, onSignalAbort);
371
+ this.device.on(DEVICE.PASSPHRASE, onSignalAbort);
372
+
373
+ preCheckDeviceSupport(this.device, method);
374
+
375
+ const response = await method.run();
376
+
377
+ if (!Array.isArray(response) || response.length === 0) {
378
+ throw new Error('No response');
379
+ }
380
+
381
+ result = response.map((item, index) => ({
382
+ ...params.bundle[index]._originRequestParams,
383
+ success: true,
384
+ payload: {
385
+ ...item,
386
+ rootFingerprint,
387
+ },
388
+ }));
389
+ if (method.requestContext) {
390
+ completeRequestContext(method.requestContext.responseID);
391
+ }
392
+ } catch (e: any) {
393
+ const error = handleSkippableHardwareError(e, this.device, method);
394
+
395
+ if (error) {
396
+ result = params.bundle.map((item: { _originRequestParams: any }) => ({
397
+ ...item._originRequestParams,
398
+ success: false,
399
+ payload: {
400
+ error: error.message,
401
+ code: error.errorCode,
402
+ params: error.params,
403
+ connectId: method.connectId,
404
+ deviceId: method.deviceId,
405
+ },
406
+ }));
407
+ } else {
408
+ throw e;
409
+ }
410
+ if (method.requestContext) {
411
+ completeRequestContext(
412
+ method.requestContext.responseID,
413
+ e instanceof Error ? e : new Error(String(e))
414
+ );
415
+ }
416
+ } finally {
417
+ this.device.off(DEVICE.BUTTON, buttonListener);
418
+ this.device.off(DEVICE.PIN, onSignalAbort);
419
+ this.device.off(DEVICE.PASSPHRASE, onSignalAbort);
420
+ }
421
+
422
+ return result;
423
+ }
424
+
425
+ abstract getAllNetworkAddress(rootFingerprint: number): Promise<AllNetworkAddress[]>;
426
+
427
+ async run() {
428
+ const res = await this.device.commands.typedCall('GetPublicKey', 'PublicKey', {
429
+ address_n: [toHardened(44), toHardened(1), toHardened(0)],
430
+ coin_name: 'Testnet',
431
+ script_type: 'SPENDADDRESS',
432
+ show_display: false,
433
+ });
434
+
435
+ this.postMessage(createUiMessage(UI_REQUEST.CLOSE_UI_PIN_WINDOW));
436
+
437
+ if (res.message.root_fingerprint == null) {
438
+ throw ERRORS.TypedError(HardwareErrorCode.CallMethodInvalidParameter);
439
+ }
440
+
441
+ this.abortController = new AbortController();
442
+
443
+ return this.getAllNetworkAddress(res.message.root_fingerprint).catch(e => {
444
+ if (e instanceof HardwareError && e.errorCode === HardwareErrorCode.RepeatUnlocking) {
445
+ throw ERRORS.TypedError(HardwareErrorCode.RepeatUnlocking, e.message);
446
+ }
447
+ throw e;
448
+ });
449
+ }
450
+ }
451
+
452
+ /**
453
+ * @experiment Check if the device supports the method
454
+ * @param device
455
+ * @param method BaseMethod
456
+ */
457
+ function preCheckDeviceSupport(device: Device, method: BaseMethod) {
458
+ const versionRange = getMethodVersionRange(
459
+ device.features,
460
+ type => method.getVersionRange()[type]
461
+ );
462
+ const currentVersion = getDeviceFirmwareVersion(device.features).join('.');
463
+
464
+ if (
465
+ versionRange &&
466
+ semver.valid(versionRange.min) &&
467
+ semver.lt(currentVersion, versionRange.min)
468
+ ) {
469
+ throw ERRORS.createNeedUpgradeFirmwareHardwareError({
470
+ currentVersion,
471
+ requireVersion: versionRange.min,
472
+ methodName: method.name,
473
+ firmwareType: getFirmwareType(device.features),
474
+ });
475
+ } else if (method.strictCheckDeviceSupport && !versionRange) {
476
+ throw ERRORS.createDeviceNotSupportMethodError(method.name, getFirmwareType(device.features));
477
+ }
478
+ }
479
+
480
+ function handleSkippableHardwareError(
481
+ e: any,
482
+ device: Device,
483
+ method: BaseMethod
484
+ ): HardwareError | undefined {
485
+ let error: HardwareError | undefined;
486
+
487
+ if (e instanceof HardwareError && e.errorCode !== HardwareErrorCode.RuntimeError) {
488
+ const { errorCode } = e;
489
+ if (errorCode === HardwareErrorCode.CallMethodNeedUpgradeFirmware) {
490
+ error = e;
491
+ } else if (errorCode === HardwareErrorCode.DeviceNotSupportMethod) {
492
+ error = e;
493
+ }
494
+ } else if (
495
+ e.message?.includes('Failure_UnexpectedMessage') ||
496
+ e.message?.includes('Failure_UnknownMessage')
497
+ ) {
498
+ const versionRange = getMethodVersionRange(
499
+ device.features,
500
+ type => method.getVersionRange()[type]
501
+ );
502
+ const currentVersion = getDeviceFirmwareVersion(device.features).join('.');
503
+
504
+ if (
505
+ versionRange &&
506
+ semver.valid(versionRange.min) &&
507
+ semver.lt(currentVersion, versionRange.min)
508
+ ) {
509
+ error = ERRORS.createNeedUpgradeFirmwareHardwareError({
510
+ currentVersion,
511
+ requireVersion: versionRange.min,
512
+ methodName: method.name,
513
+ firmwareType: getFirmwareType(device.features),
514
+ });
515
+ } else {
516
+ error = ERRORS.createDeviceNotSupportMethodError(
517
+ method.name,
518
+ getFirmwareType(device.features)
519
+ );
520
+ }
521
+ } else if (
522
+ e.message?.toLowerCase()?.includes('forbidden key path') ||
523
+ e.message?.toLowerCase()?.includes('invalid path')
524
+ ) {
525
+ error = ERRORS.TypedError(HardwareErrorCode.CallMethodInvalidParameter, e.message);
526
+ }
527
+
528
+ return error;
529
+ }
@@ -0,0 +1,162 @@
1
+ import {
2
+ ERRORS,
3
+ HardwareError,
4
+ HardwareErrorCode,
5
+ HardwareErrorCodeMessage,
6
+ createDeferred,
7
+ } from '@onetokenfe/hd-shared';
8
+
9
+ import { IFRAME } from '../../events';
10
+ import AllNetworkGetAddressBase from './AllNetworkGetAddressBase';
11
+
12
+ import type { Unsuccessful } from '../../types';
13
+ import type {
14
+ AllNetworkAddress,
15
+ AllNetworkGetAddressParamsByLoop,
16
+ } from '../../types/api/allNetworkGetAddress';
17
+
18
+ export default class AllNetworkGetAddressByLoop extends AllNetworkGetAddressBase {
19
+ async getAllNetworkAddress(rootFingerprint: number) {
20
+ const { callbackId, callbackIdFinish } = this.payload as AllNetworkGetAddressParamsByLoop;
21
+ if (!callbackId) {
22
+ throw new Error('callbackId is required');
23
+ }
24
+ if (!callbackIdFinish) {
25
+ throw new Error('callbackIdFinish is required');
26
+ }
27
+
28
+ const bundle = this.payload.bundle || [this.payload];
29
+
30
+ // process callbacks in background
31
+ const callbackPromise = this.processCallbacksInBackground(
32
+ bundle,
33
+ rootFingerprint,
34
+ callbackId,
35
+ callbackIdFinish
36
+ );
37
+ this.device.pendingCallbackPromise = createDeferred(callbackPromise);
38
+
39
+ // register to context for scheduling management
40
+ if (this.context && this.payload.connectId) {
41
+ this.context.registerCallbackTask(this.payload.connectId, this.device.pendingCallbackPromise);
42
+ }
43
+
44
+ // return empty array immediately
45
+ return Promise.resolve([]);
46
+ }
47
+
48
+ private async processCallbacksInBackground(
49
+ bundle: any[],
50
+ rootFingerprint: number,
51
+ callbackId: string,
52
+ callbackIdFinish: string
53
+ ): Promise<void> {
54
+ try {
55
+ const allResults: AllNetworkAddress[] = [];
56
+
57
+ for (let i = 0; i < bundle.length; i++) {
58
+ const item = bundle[i];
59
+
60
+ if (this.abortController?.signal.aborted) {
61
+ throw new Error(HardwareErrorCodeMessage[HardwareErrorCode.RepeatUnlocking]);
62
+ }
63
+
64
+ const methodParams = this.generateMethodName({
65
+ network: item.network,
66
+ payload: item,
67
+ originalIndex: i,
68
+ });
69
+
70
+ const singleMethodParams = {
71
+ bundle: [methodParams.params],
72
+ };
73
+
74
+ const response = await this.callMethod(
75
+ methodParams.methodName,
76
+ singleMethodParams,
77
+ rootFingerprint
78
+ );
79
+
80
+ if (this.abortController?.signal.aborted) {
81
+ throw new Error(HardwareErrorCodeMessage[HardwareErrorCode.RepeatUnlocking]);
82
+ }
83
+
84
+ const singleResult = {
85
+ ...item,
86
+ ...response[0],
87
+ };
88
+ allResults.push(singleResult);
89
+
90
+ this.sendItemCallback(callbackId, singleResult, i);
91
+ }
92
+
93
+ this.sendFinishCallback({
94
+ callbackId: callbackIdFinish,
95
+ data: allResults,
96
+ });
97
+ } catch (error: any) {
98
+ let errorCode = error.errorCode || error.code;
99
+ let errorMessage = error.message;
100
+
101
+ if (error instanceof HardwareError) {
102
+ errorCode = error.errorCode;
103
+ errorMessage = error.message;
104
+ } else if (error.message === HardwareErrorCodeMessage[HardwareErrorCode.RepeatUnlocking]) {
105
+ errorCode = HardwareErrorCode.RepeatUnlocking;
106
+ errorMessage = error.message;
107
+ } else {
108
+ const hardwareError = ERRORS.TypedError(HardwareErrorCode.RuntimeError, error.message);
109
+ errorCode = hardwareError.errorCode;
110
+ errorMessage = hardwareError.message;
111
+ }
112
+
113
+ this.sendFinishCallback({
114
+ callbackId: callbackIdFinish,
115
+ error: {
116
+ success: false,
117
+ payload: {
118
+ error: errorMessage,
119
+ code: errorCode,
120
+ },
121
+ },
122
+ });
123
+ } finally {
124
+ this.context?.cancelCallbackTasks(this.payload.connectId);
125
+ this.abortController = null;
126
+ }
127
+ }
128
+
129
+ private sendFinishCallback({
130
+ callbackId,
131
+ data,
132
+ error,
133
+ }: {
134
+ callbackId: string;
135
+ data?: AllNetworkAddress[];
136
+ error?: Unsuccessful;
137
+ }) {
138
+ this.postMessage({
139
+ event: IFRAME.CALLBACK,
140
+ type: IFRAME.CALLBACK,
141
+ payload: {
142
+ callbackId,
143
+ data,
144
+ error,
145
+ },
146
+ });
147
+ }
148
+
149
+ private sendItemCallback(callbackId: string, data: any, itemIndex: number) {
150
+ this.postMessage({
151
+ event: IFRAME.CALLBACK,
152
+ type: IFRAME.CALLBACK,
153
+ payload: {
154
+ callbackId,
155
+ data: {
156
+ ...data,
157
+ index: itemIndex,
158
+ },
159
+ },
160
+ });
161
+ }
162
+ }