@aeternity/aepp-sdk 10.0.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +15 -14
  3. package/dist/aepp-sdk.browser-script.js +1 -1
  4. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +13 -40
  5. package/dist/aepp-sdk.browser-script.js.map +1 -1
  6. package/dist/aepp-sdk.browser.js +1 -1
  7. package/dist/aepp-sdk.browser.js.map +1 -1
  8. package/dist/aepp-sdk.js +1 -1
  9. package/dist/aepp-sdk.js.map +1 -1
  10. package/es/AeSdk.d.ts +37 -0
  11. package/es/AeSdk.mjs +81 -0
  12. package/es/AeSdk.mjs.map +1 -0
  13. package/es/AeSdkAepp.d.ts +69 -0
  14. package/es/AeSdkAepp.mjs +175 -0
  15. package/es/AeSdkAepp.mjs.map +1 -0
  16. package/es/AeSdkBase.d.ts +212 -0
  17. package/es/AeSdkBase.mjs +310 -0
  18. package/es/AeSdkBase.mjs.map +1 -0
  19. package/es/AeSdkWallet.d.ts +103 -0
  20. package/es/AeSdkWallet.mjs +322 -0
  21. package/es/AeSdkWallet.mjs.map +1 -0
  22. package/es/Node.d.ts +44 -0
  23. package/es/Node.mjs +141 -0
  24. package/es/Node.mjs.map +1 -0
  25. package/es/account/Base.d.ts +65 -0
  26. package/es/account/Base.mjs +123 -0
  27. package/es/account/Base.mjs.map +1 -0
  28. package/es/account/Memory.d.ts +25 -0
  29. package/es/account/Memory.mjs +81 -0
  30. package/es/account/Memory.mjs.map +1 -0
  31. package/es/account/Rpc.d.ts +27 -0
  32. package/es/account/Rpc.mjs +79 -0
  33. package/es/account/Rpc.mjs.map +1 -0
  34. package/es/aens.d.ts +209 -0
  35. package/es/aens.mjs +332 -0
  36. package/es/aens.mjs.map +1 -0
  37. package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
  38. package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
  39. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
  41. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
  42. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
  44. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
  45. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
  46. package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
  47. package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
  48. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
  49. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -0
  50. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
  51. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
  52. package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
  53. package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
  54. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
  55. package/es/aepp-wallet-communication/schema.d.ts +118 -0
  56. package/es/aepp-wallet-communication/schema.mjs +214 -0
  57. package/es/aepp-wallet-communication/schema.mjs.map +1 -0
  58. package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
  59. package/es/aepp-wallet-communication/wallet-detector.mjs +63 -0
  60. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  61. package/es/apis/compiler/compiler.d.ts +92 -0
  62. package/es/apis/compiler/compiler.mjs +576 -0
  63. package/es/apis/compiler/compiler.mjs.map +1 -0
  64. package/es/apis/compiler/index.d.ts +2 -0
  65. package/es/apis/compiler/index.mjs +3 -0
  66. package/es/apis/compiler/index.mjs.map +1 -0
  67. package/es/apis/compiler/models/index.d.ts +248 -0
  68. package/es/apis/compiler/models/index.mjs +48 -0
  69. package/es/apis/compiler/models/index.mjs.map +1 -0
  70. package/es/apis/compiler/models/mappers.d.ts +23 -0
  71. package/es/apis/compiler/models/mappers.mjs +585 -0
  72. package/es/apis/compiler/models/mappers.mjs.map +1 -0
  73. package/es/apis/compiler/models/parameters.d.ts +13 -0
  74. package/es/apis/compiler/models/parameters.mjs +71 -0
  75. package/es/apis/compiler/models/parameters.mjs.map +1 -0
  76. package/es/apis/node/index.d.ts +2 -0
  77. package/es/apis/node/index.mjs +3 -0
  78. package/es/apis/node/index.mjs.map +1 -0
  79. package/es/apis/node/models/index.d.ts +1061 -0
  80. package/es/apis/node/models/index.mjs +2 -0
  81. package/es/apis/node/models/index.mjs.map +1 -0
  82. package/es/apis/node/models/mappers.d.ts +95 -0
  83. package/es/apis/node/models/mappers.mjs +4164 -0
  84. package/es/apis/node/models/mappers.mjs.map +1 -0
  85. package/es/apis/node/models/parameters.d.ts +17 -0
  86. package/es/apis/node/models/parameters.mjs +165 -0
  87. package/es/apis/node/models/parameters.mjs.map +1 -0
  88. package/es/apis/node/node.d.ts +215 -0
  89. package/es/apis/node/node.mjs +1165 -0
  90. package/es/apis/node/node.mjs.map +1 -0
  91. package/es/chain.d.ts +220 -0
  92. package/es/chain.mjs +524 -0
  93. package/es/chain.mjs.map +1 -0
  94. package/es/channel/handlers.d.ts +34 -0
  95. package/es/channel/{handlers.js → handlers.mjs} +163 -130
  96. package/es/channel/handlers.mjs.map +1 -0
  97. package/es/channel/index.d.ts +634 -0
  98. package/es/channel/index.mjs +978 -0
  99. package/es/channel/index.mjs.map +1 -0
  100. package/es/channel/internal.d.ts +100 -0
  101. package/es/channel/internal.mjs +328 -0
  102. package/es/channel/internal.mjs.map +1 -0
  103. package/es/contract/Compiler.d.ts +17 -0
  104. package/es/contract/Compiler.mjs +67 -0
  105. package/es/contract/Compiler.mjs.map +1 -0
  106. package/es/contract/aci.d.ts +125 -0
  107. package/es/contract/aci.mjs +496 -0
  108. package/es/contract/aci.mjs.map +1 -0
  109. package/es/contract/ga.d.ts +68 -0
  110. package/es/contract/ga.mjs +190 -0
  111. package/es/contract/ga.mjs.map +1 -0
  112. package/es/contract/methods.d.ts +68 -0
  113. package/es/contract/methods.mjs +101 -0
  114. package/es/contract/methods.mjs.map +1 -0
  115. package/es/index.d.ts +32 -0
  116. package/es/index.mjs +49 -0
  117. package/es/index.mjs.map +1 -0
  118. package/es/oracle.d.ts +154 -0
  119. package/es/oracle.mjs +288 -0
  120. package/es/oracle.mjs.map +1 -0
  121. package/es/spend.d.ts +61 -0
  122. package/es/spend.mjs +122 -0
  123. package/es/spend.mjs.map +1 -0
  124. package/es/tx/builder/constants.d.ts +41 -0
  125. package/es/tx/builder/constants.mjs +100 -0
  126. package/es/tx/builder/constants.mjs.map +1 -0
  127. package/es/tx/builder/field-types.d.ts +62 -0
  128. package/es/tx/builder/field-types.mjs +126 -0
  129. package/es/tx/builder/field-types.mjs.map +1 -0
  130. package/es/tx/builder/helpers.d.ts +131 -0
  131. package/es/tx/builder/helpers.mjs +223 -0
  132. package/es/tx/builder/helpers.mjs.map +1 -0
  133. package/es/tx/builder/index.d.ts +75 -0
  134. package/es/tx/builder/index.mjs +424 -0
  135. package/es/tx/builder/index.mjs.map +1 -0
  136. package/es/tx/builder/schema.d.ts +350 -0
  137. package/es/tx/builder/schema.mjs +320 -0
  138. package/es/tx/builder/schema.mjs.map +1 -0
  139. package/es/tx/index.d.ts +63 -0
  140. package/es/tx/index.mjs +209 -0
  141. package/es/tx/index.mjs.map +1 -0
  142. package/es/tx/min-fee.d.ts +20 -0
  143. package/es/tx/min-fee.mjs +148 -0
  144. package/es/tx/min-fee.mjs.map +1 -0
  145. package/es/tx/validator.d.ts +19 -0
  146. package/es/tx/validator.mjs +240 -0
  147. package/es/tx/validator.mjs.map +1 -0
  148. package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
  149. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
  150. package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
  151. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
  152. package/es/typings/bip32-path/index.d.mjs +2 -0
  153. package/es/typings/bip32-path/index.d.mjs.map +1 -0
  154. package/es/typings/blakejs/index.d.mjs +2 -0
  155. package/es/typings/blakejs/index.d.mjs.map +1 -0
  156. package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
  157. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
  158. package/es/utils/amount-formatter.d.ts +42 -0
  159. package/es/utils/{amount-formatter.js → amount-formatter.mjs} +38 -44
  160. package/es/utils/amount-formatter.mjs.map +1 -0
  161. package/es/utils/autorest.d.ts +6 -0
  162. package/es/utils/autorest.mjs +97 -0
  163. package/es/utils/autorest.mjs.map +1 -0
  164. package/es/utils/bignumber.d.ts +13 -0
  165. package/es/utils/bignumber.mjs +23 -0
  166. package/es/utils/bignumber.mjs.map +1 -0
  167. package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
  168. package/es/utils/{bytes.js → bytes.mjs} +26 -22
  169. package/es/utils/bytes.mjs.map +1 -0
  170. package/es/utils/crypto.d.ts +103 -0
  171. package/es/utils/crypto.mjs +221 -0
  172. package/es/utils/crypto.mjs.map +1 -0
  173. package/es/utils/encoder.d.ts +26 -0
  174. package/es/utils/encoder.mjs +102 -0
  175. package/es/utils/encoder.mjs.map +1 -0
  176. package/es/utils/errors.d.ts +481 -0
  177. package/es/utils/errors.mjs +882 -0
  178. package/es/utils/errors.mjs.map +1 -0
  179. package/es/utils/hd-wallet.d.ts +34 -0
  180. package/es/utils/hd-wallet.mjs +122 -0
  181. package/es/utils/hd-wallet.mjs.map +1 -0
  182. package/es/utils/json-big.d.ts +5 -0
  183. package/es/utils/json-big.mjs +41 -0
  184. package/es/utils/json-big.mjs.map +1 -0
  185. package/es/utils/keystore.d.ts +51 -0
  186. package/es/utils/keystore.mjs +145 -0
  187. package/es/utils/keystore.mjs.map +1 -0
  188. package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
  189. package/es/utils/{mptree.js → mptree.mjs} +33 -25
  190. package/es/utils/mptree.mjs.map +1 -0
  191. package/es/utils/other.d.ts +14 -0
  192. package/es/utils/other.mjs +28 -0
  193. package/es/utils/other.mjs.map +1 -0
  194. package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
  195. package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
  196. package/es/utils/semver-satisfies.mjs.map +1 -0
  197. package/es/utils/string.d.ts +24 -0
  198. package/es/utils/{string.js → string.mjs} +9 -11
  199. package/es/utils/string.mjs.map +1 -0
  200. package/package.json +67 -64
  201. package/src/AeSdk.ts +65 -0
  202. package/src/AeSdkAepp.ts +167 -0
  203. package/src/AeSdkBase.ts +320 -0
  204. package/src/AeSdkWallet.ts +332 -0
  205. package/src/Node.ts +167 -0
  206. package/src/account/Base.ts +114 -0
  207. package/src/account/Memory.ts +83 -0
  208. package/src/account/Rpc.ts +67 -0
  209. package/src/aens.ts +391 -0
  210. package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
  211. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
  212. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
  213. package/{es/utils/crypto-ts.js → src/aepp-wallet-communication/connection-proxy.ts} +16 -9
  214. package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
  215. package/src/aepp-wallet-communication/rpc/types.ts +66 -0
  216. package/src/aepp-wallet-communication/schema.ts +181 -0
  217. package/src/aepp-wallet-communication/wallet-detector.ts +71 -0
  218. package/src/apis/compiler/code-model-v4.yaml +2649 -0
  219. package/src/apis/compiler/compiler.ts +585 -0
  220. package/src/apis/compiler/index.ts +2 -0
  221. package/src/apis/compiler/models/index.ts +301 -0
  222. package/src/apis/compiler/models/mappers.ts +583 -0
  223. package/src/apis/compiler/models/parameters.ts +93 -0
  224. package/src/apis/node/code-model-v4.yaml +10046 -0
  225. package/src/apis/node/index.ts +2 -0
  226. package/src/apis/node/models/index.ts +1253 -0
  227. package/src/apis/node/models/mappers.ts +4278 -0
  228. package/src/apis/node/models/parameters.ts +188 -0
  229. package/src/apis/node/node.ts +1299 -0
  230. package/src/chain.ts +444 -0
  231. package/src/channel/{handlers.js → handlers.ts} +238 -143
  232. package/src/channel/index.ts +991 -0
  233. package/src/channel/internal.ts +345 -0
  234. package/src/contract/Compiler.ts +66 -0
  235. package/src/contract/aci.ts +529 -0
  236. package/src/contract/ga.ts +178 -0
  237. package/src/contract/methods.ts +118 -0
  238. package/src/index.ts +51 -0
  239. package/src/oracle.ts +342 -0
  240. package/src/spend.ts +152 -0
  241. package/src/tx/builder/constants.ts +96 -0
  242. package/src/tx/builder/field-types.ts +111 -0
  243. package/src/tx/builder/helpers.ts +253 -0
  244. package/src/tx/builder/index.ts +394 -0
  245. package/src/tx/builder/schema.ts +771 -0
  246. package/src/tx/index.ts +199 -0
  247. package/src/tx/min-fee.ts +136 -0
  248. package/src/tx/validator.ts +226 -0
  249. package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
  250. package/src/typings/@aeternity__uuid/index.d.ts +3 -0
  251. package/src/typings/bip32-path/index.d.ts +33 -0
  252. package/src/typings/tweetnacl-auth/index.d.ts +14 -0
  253. package/src/utils/amount-formatter.ts +29 -41
  254. package/src/utils/autorest.ts +90 -0
  255. package/src/utils/bignumber.ts +9 -19
  256. package/src/utils/bytes.ts +15 -16
  257. package/src/utils/crypto.ts +217 -0
  258. package/src/utils/encoder.ts +98 -0
  259. package/src/utils/errors.ts +817 -0
  260. package/src/utils/hd-wallet.ts +134 -0
  261. package/src/utils/json-big.ts +26 -0
  262. package/src/utils/keystore.ts +179 -0
  263. package/src/utils/mptree.ts +26 -20
  264. package/src/utils/other.ts +28 -43
  265. package/src/utils/string.ts +8 -10
  266. package/CHANGELOG.md +0 -1603
  267. package/es/account/base.js +0 -169
  268. package/es/account/base.js.map +0 -1
  269. package/es/account/memory.js +0 -84
  270. package/es/account/memory.js.map +0 -1
  271. package/es/account/multiple.js +0 -178
  272. package/es/account/multiple.js.map +0 -1
  273. package/es/ae/aens.js +0 -408
  274. package/es/ae/aens.js.map +0 -1
  275. package/es/ae/aepp.js +0 -45
  276. package/es/ae/aepp.js.map +0 -1
  277. package/es/ae/contract.js +0 -312
  278. package/es/ae/contract.js.map +0 -1
  279. package/es/ae/index.js +0 -206
  280. package/es/ae/index.js.map +0 -1
  281. package/es/ae/oracle.js +0 -322
  282. package/es/ae/oracle.js.map +0 -1
  283. package/es/ae/universal.js +0 -45
  284. package/es/ae/universal.js.map +0 -1
  285. package/es/ae/wallet.js +0 -50
  286. package/es/ae/wallet.js.map +0 -1
  287. package/es/amount-formatter.d.ts +0 -58
  288. package/es/bignumber.d.ts +0 -24
  289. package/es/chain/index.js +0 -256
  290. package/es/chain/index.js.map +0 -1
  291. package/es/chain/node.js +0 -394
  292. package/es/chain/node.js.map +0 -1
  293. package/es/channel/handlers.js.map +0 -1
  294. package/es/channel/index.js +0 -980
  295. package/es/channel/index.js.map +0 -1
  296. package/es/channel/internal.js +0 -266
  297. package/es/channel/internal.js.map +0 -1
  298. package/es/contract/aci/helpers.js +0 -298
  299. package/es/contract/aci/helpers.js.map +0 -1
  300. package/es/contract/aci/index.js +0 -361
  301. package/es/contract/aci/index.js.map +0 -1
  302. package/es/contract/aci/transformation.js +0 -66
  303. package/es/contract/aci/transformation.js.map +0 -1
  304. package/es/contract/compiler.js +0 -244
  305. package/es/contract/compiler.js.map +0 -1
  306. package/es/contract/ga/helpers.js +0 -22
  307. package/es/contract/ga/helpers.js.map +0 -1
  308. package/es/contract/ga/index.js +0 -170
  309. package/es/contract/ga/index.js.map +0 -1
  310. package/es/contract/index.js +0 -162
  311. package/es/contract/index.js.map +0 -1
  312. package/es/crypto-ts.d.ts +0 -9
  313. package/es/index.js +0 -57
  314. package/es/index.js.map +0 -1
  315. package/es/node-pool/index.js +0 -187
  316. package/es/node-pool/index.js.map +0 -1
  317. package/es/node.js +0 -132
  318. package/es/node.js.map +0 -1
  319. package/es/other.d.ts +0 -31
  320. package/es/string.d.ts +0 -26
  321. package/es/tx/builder/helpers.js +0 -305
  322. package/es/tx/builder/helpers.js.map +0 -1
  323. package/es/tx/builder/index.js +0 -595
  324. package/es/tx/builder/index.js.map +0 -1
  325. package/es/tx/builder/schema.js +0 -814
  326. package/es/tx/builder/schema.js.map +0 -1
  327. package/es/tx/index.js +0 -300
  328. package/es/tx/index.js.map +0 -1
  329. package/es/tx/tx-object.js +0 -276
  330. package/es/tx/tx-object.js.map +0 -1
  331. package/es/tx/tx.js +0 -937
  332. package/es/tx/tx.js.map +0 -1
  333. package/es/tx/validator.js +0 -208
  334. package/es/tx/validator.js.map +0 -1
  335. package/es/typings/blakejs/index.d.js +0 -2
  336. package/es/typings/blakejs/index.d.js.map +0 -1
  337. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -131
  338. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
  339. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -184
  340. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
  341. package/es/utils/aepp-wallet-communication/connection/index.js +0 -84
  342. package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
  343. package/es/utils/aepp-wallet-communication/content-script-bridge.js +0 -97
  344. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
  345. package/es/utils/aepp-wallet-communication/helpers.js +0 -103
  346. package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
  347. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -329
  348. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
  349. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -270
  350. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
  351. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -533
  352. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
  353. package/es/utils/aepp-wallet-communication/schema.js +0 -107
  354. package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
  355. package/es/utils/aepp-wallet-communication/wallet-detector.js +0 -109
  356. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
  357. package/es/utils/amount-formatter.js.map +0 -1
  358. package/es/utils/async-init.js +0 -67
  359. package/es/utils/async-init.js.map +0 -1
  360. package/es/utils/bignumber.js +0 -28
  361. package/es/utils/bignumber.js.map +0 -1
  362. package/es/utils/bytes.js.map +0 -1
  363. package/es/utils/crypto-ts.js.map +0 -1
  364. package/es/utils/crypto.js +0 -304
  365. package/es/utils/crypto.js.map +0 -1
  366. package/es/utils/hd-wallet.js +0 -112
  367. package/es/utils/hd-wallet.js.map +0 -1
  368. package/es/utils/json-big.js +0 -45
  369. package/es/utils/json-big.js.map +0 -1
  370. package/es/utils/keystore.js +0 -228
  371. package/es/utils/keystore.js.map +0 -1
  372. package/es/utils/mptree.js.map +0 -1
  373. package/es/utils/other.js +0 -43
  374. package/es/utils/other.js.map +0 -1
  375. package/es/utils/semver-satisfies.js.map +0 -1
  376. package/es/utils/string.js.map +0 -1
  377. package/es/utils/swagger.js +0 -132
  378. package/es/utils/swagger.js.map +0 -1
  379. package/src/account/base.js +0 -153
  380. package/src/account/memory.js +0 -78
  381. package/src/account/multiple.js +0 -154
  382. package/src/ae/aens.js +0 -366
  383. package/src/ae/aepp.js +0 -45
  384. package/src/ae/contract.js +0 -285
  385. package/src/ae/index.js +0 -167
  386. package/src/ae/oracle.js +0 -296
  387. package/src/ae/universal.js +0 -47
  388. package/src/ae/wallet.js +0 -50
  389. package/src/chain/index.js +0 -250
  390. package/src/chain/node.js +0 -293
  391. package/src/channel/index.js +0 -898
  392. package/src/channel/internal.js +0 -231
  393. package/src/contract/aci/index.js +0 -317
  394. package/src/contract/aci/transformation.js +0 -72
  395. package/src/contract/compiler.js +0 -195
  396. package/src/contract/ga/helpers.js +0 -17
  397. package/src/contract/ga/index.js +0 -147
  398. package/src/contract/index.js +0 -163
  399. package/src/index.js +0 -90
  400. package/src/node-pool/index.js +0 -171
  401. package/src/node.js +0 -118
  402. package/src/tx/builder/helpers.js +0 -325
  403. package/src/tx/builder/index.js +0 -460
  404. package/src/tx/builder/schema.js +0 -1211
  405. package/src/tx/index.js +0 -301
  406. package/src/tx/tx-object.js +0 -186
  407. package/src/tx/tx.js +0 -622
  408. package/src/tx/validator.js +0 -161
  409. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -114
  410. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -161
  411. package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
  412. package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -85
  413. package/src/utils/aepp-wallet-communication/helpers.js +0 -70
  414. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -268
  415. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -223
  416. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -390
  417. package/src/utils/aepp-wallet-communication/schema.js +0 -108
  418. package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -91
  419. package/src/utils/async-init.js +0 -41
  420. package/src/utils/crypto.js +0 -312
  421. package/src/utils/hd-wallet.js +0 -115
  422. package/src/utils/json-big.js +0 -26
  423. package/src/utils/keystore.js +0 -223
  424. package/src/utils/swagger.js +0 -133
@@ -1,161 +0,0 @@
1
- import { verify, hash } from '../utils/crypto'
2
- import { encode, decode } from './builder/helpers'
3
-
4
- import BigNumber from 'bignumber.js'
5
- import { MIN_GAS_PRICE, PROTOCOL_VM_ABI, TX_TYPE } from './builder/schema'
6
- import { calculateFee, unpackTx } from './builder'
7
-
8
- /**
9
- * Transaction validator
10
- * @module @aeternity/aepp-sdk/es/tx/validator
11
- * @export verifyTransaction
12
- * @example import { verifyTransaction } from '@aeternity/aepp-sdk'
13
- */
14
-
15
- const validators = [
16
- async ({ encodedTx, signatures }, { account, node, parentTxTypes }) => {
17
- if ((encodedTx ?? signatures) === undefined) return []
18
- if (signatures.length !== 1) return [] // TODO: Support multisignature?
19
- const prefix = Buffer.from([
20
- node.nodeNetworkId,
21
- ...parentTxTypes.includes(TX_TYPE.payingFor) ? ['inner_tx'] : []
22
- ].join('-'))
23
- const txWithNetworkId = Buffer.concat([prefix, encodedTx.rlpEncoded])
24
- const txHashWithNetworkId = Buffer.concat([prefix, hash(encodedTx.rlpEncoded)])
25
- const decodedPub = decode(account.id, 'ak')
26
- if (verify(txWithNetworkId, signatures[0], decodedPub) ||
27
- verify(txHashWithNetworkId, signatures[0], decodedPub)) return []
28
- return [{
29
- message: 'Signature cannot be verified, please ensure that you transaction have' +
30
- ' the correct prefix and the correct private key for the sender address',
31
- key: 'InvalidSignature',
32
- checkedKeys: ['encodedTx', 'signatures']
33
- }]
34
- },
35
- async ({ encodedTx, tx }, { node, parentTxTypes, txType }) => {
36
- if ((encodedTx ?? tx) === undefined) return []
37
- return verifyTransaction(
38
- encode((encodedTx ?? tx).rlpEncoded, 'tx'),
39
- node,
40
- [...parentTxTypes, txType]
41
- )
42
- },
43
- (tx, { txType }) => {
44
- if (tx.fee === undefined) return []
45
- const minFee = calculateFee(0, txType, {
46
- gas: +tx.gas || 0, params: tx, showWarning: false, vsn: tx.VSN
47
- })
48
- if (new BigNumber(minFee).lte(tx.fee)) return []
49
- return [{
50
- message: `Fee ${tx.fee} is too low, minimum fee for this transaction is ${minFee}`,
51
- key: 'InsufficientFee',
52
- checkedKeys: ['fee']
53
- }]
54
- },
55
- ({ ttl }, { height }) => {
56
- if (ttl === undefined) return []
57
- ttl = +ttl
58
- if (ttl === 0 || ttl >= height) return []
59
- return [{
60
- message: `TTL ${ttl} is already expired, current height is ${height}`,
61
- key: 'ExpiredTTL',
62
- checkedKeys: ['ttl']
63
- }]
64
- },
65
- ({ amount, fee, nameFee, tx }, { account, parentTxTypes, txType }) => {
66
- if ((amount ?? fee ?? nameFee) === undefined) return []
67
- const cost = new BigNumber(fee).plus(nameFee || 0).plus(amount || 0)
68
- .plus(txType === TX_TYPE.payingFor ? tx.tx.encodedTx.tx.fee : 0)
69
- .minus(parentTxTypes.includes(TX_TYPE.payingFor) ? fee : 0)
70
- if (cost.lte(account.balance)) return []
71
- return [{
72
- message: `Account balance ${account.balance} is not enough to execute the transaction that costs ${cost.toFixed()}`,
73
- key: 'InsufficientBalance',
74
- checkedKeys: ['amount', 'fee', 'nameFee']
75
- }]
76
- },
77
- ({ nonce }, { account, parentTxTypes }) => {
78
- if (nonce === undefined || parentTxTypes.includes(TX_TYPE.gaMeta)) return []
79
- nonce = +nonce
80
- const validNonce = account.nonce + 1
81
- if (nonce === validNonce) return []
82
- return [{
83
- ...nonce < validNonce
84
- ? {
85
- message: `Nonce ${nonce} is already used, valid nonce is ${validNonce}`,
86
- key: 'NonceAlreadyUsed'
87
- }
88
- : {
89
- message: `Nonce ${nonce} is too high, valid nonce is ${validNonce}`,
90
- key: 'NonceHigh'
91
- },
92
- checkedKeys: ['nonce']
93
- }]
94
- },
95
- ({ gasPrice }) => {
96
- if (gasPrice === undefined) return []
97
- if (gasPrice >= MIN_GAS_PRICE) return []
98
- return [{
99
- message: `Gas price ${gasPrice} must be bigger then ${MIN_GAS_PRICE}`,
100
- key: 'MinGasPrice',
101
- checkedKeys: ['gasPrice']
102
- }]
103
- },
104
- ({ ctVersion, abiVersion }, { txType, node }) => {
105
- const { consensusProtocolVersion } = node.getNodeInfo()
106
- const protocol = PROTOCOL_VM_ABI[consensusProtocolVersion]
107
- if (!protocol) throw new Error(`Unsupported protocol: ${consensusProtocolVersion}`)
108
- // If not contract create tx
109
- if (!ctVersion) ctVersion = { abiVersion }
110
- const txProtocol = protocol[txType]
111
- if (!txProtocol) return []
112
- if (Object.entries(ctVersion).some(([key, value]) => !txProtocol[key].includes(+value))) {
113
- return [{
114
- message: `ABI/VM version ${JSON.stringify(ctVersion)} is wrong, supported is: ${JSON.stringify(txProtocol)}`,
115
- key: 'VmAndAbiVersionMismatch',
116
- checkedKeys: ['ctVersion', 'abiVersion']
117
- }]
118
- }
119
- return []
120
- }
121
- ]
122
-
123
- const getSenderAddress = tx => [
124
- 'senderId', 'accountId', 'ownerId', 'callerId',
125
- 'oracleId', 'fromId', 'initiator', 'gaId', 'payerId'
126
- ]
127
- .map(key => tx[key])
128
- .filter(a => a)
129
- .map(a => a.replace(/^ok_/, 'ak_'))[0]
130
-
131
- /**
132
- * Transaction Validator
133
- * This function validates some of transaction properties,
134
- * to make sure it can be posted it to the chain
135
- * @function
136
- * @alias module:@aeternity/aepp-sdk/es/tx/validator
137
- * @rtype (tx: String, node) => void
138
- * @param {String} transaction Base64Check-encoded transaction
139
- * @param {Object} node Node to validate transaction against
140
- * @param {String[]} [parentTxTypes] Types of parent transactions
141
- * @return {Promise<Object[]>} Array with verification errors
142
- * @example const errors = await verifyTransaction(transaction, node)
143
- */
144
- export default async function verifyTransaction (transaction, node, parentTxTypes = []) {
145
- const { tx, txType } = unpackTx(transaction)
146
-
147
- const address = getSenderAddress(tx) ??
148
- (txType === TX_TYPE.signed ? getSenderAddress(tx.encodedTx.tx) : null)
149
- const [account, height] = await Promise.all([
150
- address && node.api.getAccountByPubkey(address).catch(() => ({
151
- id: address,
152
- balance: new BigNumber(0),
153
- nonce: 0
154
- })),
155
- node.api.getCurrentKeyBlockHeight().then(({ height }) => height)
156
- ])
157
-
158
- return (await Promise.all(
159
- validators.map(v => v(tx, { txType, node, account, height, parentTxTypes })))
160
- ).flat()
161
- }
@@ -1,114 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2018 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-
18
- /**
19
- * Browser runtime connector module
20
- *
21
- * This is the complement to
22
- * {@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection}.
23
- * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime
24
- * @export BrowserRuntimeConnection
25
- * @example import { BrowserRuntimeConnection } from '@aeternity/aepp-sdk'
26
- */
27
- import stampit from '@stamp/it'
28
-
29
- import WalletConnection from '.'
30
- import { getBrowserAPI } from '../helpers'
31
-
32
- /**
33
- * Disconnect
34
- * @function disconnect
35
- * @instance
36
- * @rtype () => void
37
- * @return {void}
38
- */
39
- function disconnect () {
40
- try {
41
- this.port.disconnect()
42
- } catch (e) {
43
- console.warning('From BrowserRuntimeConnection: ', e)
44
- }
45
- }
46
-
47
- /**
48
- * Connect
49
- * @function connect
50
- * @instance
51
- * @rtype (onMessage: Function, onDisconnect: Function) => void
52
- * @param {Function} onMessage - Message handler
53
- * @param {Function} onDisconnect - trigger when runtime connection in closed
54
- * @return {void}
55
- */
56
- function connect (onMessage, onDisconnect) {
57
- if (this.isConnected()) throw new Error('You already connected')
58
- this.handler = (msg, source) => {
59
- if (this.debug) console.log('Receive message: ', msg)
60
- onMessage(msg, source)
61
- }
62
- this.port.onMessage.addListener(this.handler)
63
- this.port.onDisconnect.addListener(() => {
64
- typeof onDisconnect === 'function' && onDisconnect({}, this)
65
- this.port.disconnect()
66
- })
67
- }
68
-
69
- /**
70
- * Send message
71
- * @function sendMessage
72
- * @instance
73
- * @rtype (msg: Object) => void
74
- * @param {Object} msg - Message
75
- * @return {void}
76
- */
77
- function sendMessage (msg) {
78
- if (!this.port) throw new Error('You dont have connection. Please connect before')
79
- if (this.debug) console.log('Send message: ', msg)
80
- this.port.postMessage(msg)
81
- }
82
-
83
- /**
84
- * Check if connected
85
- * @function isConnected
86
- * @instance
87
- * @rtype () => Boolean
88
- * @return {Boolean} Is connected
89
- */
90
- function isConnected () {
91
- return typeof this.port.onMessage.hasListeners === 'function' ? this.port.onMessage.hasListeners() : this.port.onMessage.hasListener(this.handler)
92
- }
93
-
94
- /**
95
- * BrowserRuntimeConnection stamp
96
- * Handle browser runtime communication
97
- * @function
98
- * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime
99
- * @rtype Stamp
100
- * @param {Object} params={} - Initializer object
101
- * @param {Object} params.port - Runtime `port` object
102
- * @param {Object} [params.connectionInfo={}] - Connection info object
103
- * @param {Boolean} [params.debug=false] - Debug flag
104
- * @return {Object}
105
- */
106
- export default stampit({
107
- init ({ connectionInfo = {}, port, debug = false }) {
108
- if (!getBrowserAPI().runtime) throw new Error('Runtime is not accessible in your environment')
109
- this.debug = debug
110
- this.connectionInfo = connectionInfo
111
- this.port = port || getBrowserAPI().runtime.connect(...[connectionInfo.id || undefined])
112
- },
113
- methods: { connect, sendMessage, disconnect, isConnected }
114
- }, WalletConnection)
@@ -1,161 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2018 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-
18
- /**
19
- * Browser window Post Message connector module
20
- *
21
- * This is the complement to
22
- * {@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection}.
23
- * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message
24
- * @export BrowserWindowMessageConnection
25
- * @example
26
- * import BrowserWindowMessageConnection
27
- * from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message'
28
- */
29
- import stampit from '@stamp/it'
30
- import WalletConnection from '.'
31
- import { v4 as uuid } from 'uuid'
32
- import { MESSAGE_DIRECTION } from '../schema'
33
- import { getBrowserAPI, isInIframe } from '../helpers'
34
-
35
- /**
36
- * Check if connected
37
- * @function isConnected
38
- * @instance
39
- * @rtype () => Boolean
40
- * @return {Boolean} Is connected
41
- */
42
- function isConnected () {
43
- return this.listener
44
- }
45
-
46
- /**
47
- * Connect
48
- * @function connect
49
- * @instance
50
- * @rtype (onMessage: Function) => void
51
- * @param {Function} onMessage - Message handler
52
- * @return {void}
53
- */
54
- function connect (onMessage) {
55
- const origin = this.origin
56
- const receiveDirection = this.receiveDirection
57
- const debug = this.debug
58
- const forceOrigin = this.forceOrigin
59
- if (this.listener) throw new Error('You already connected')
60
-
61
- this.listener = (msg, source) => {
62
- if (!msg || typeof msg.data !== 'object') return
63
- if (!forceOrigin && origin && origin !== msg.origin) return
64
- if (debug) console.log('Receive message: ', msg)
65
- if (msg.data.type) {
66
- if (msg.data.type !== receiveDirection) return
67
- onMessage(msg.data.data, msg.origin, msg.source)
68
- } else {
69
- onMessage(msg.data, msg.origin, msg.source)
70
- }
71
- }
72
- this.subscribeFn(this.listener)
73
- }
74
-
75
- /**
76
- * Disconnect
77
- * @function disconnect
78
- * @instance
79
- * @rtype () => void
80
- * @return {void}
81
- */
82
- function disconnect () {
83
- if (!this.listener) throw new Error('You dont have connection. Please connect before')
84
- this.unsubscribeFn(this.listener)
85
- this.listener = null
86
- }
87
-
88
- /**
89
- * Send message
90
- * @function sendMessage
91
- * @instance
92
- * @rtype (msg: Object) => void
93
- * @param {Object} msg - Message
94
- * @return {void}
95
- */
96
- function sendMessage (msg) {
97
- const message = this.sendDirection ? { type: this.sendDirection, data: msg } : msg
98
- if (this.debug) console.log('Send message: ', message)
99
- this.postFn(message)
100
- }
101
-
102
- const getTarget = () => {
103
- const isExtensionContext = typeof getBrowserAPI(true).extension === 'object'
104
- const isWeb = window && window.location && window.location.protocol.startsWith('http')
105
- const isContentScript = isExtensionContext && isWeb
106
- if (isContentScript) return window
107
- // When we is the main page we need to decide the target by our self
108
- // Probably can be implemented some algo for checking DOM for Iframes and somehow decide which
109
- // Iframe to talk
110
- return isInIframe() ? window.parent : undefined
111
- }
112
-
113
- /**
114
- * BrowserWindowMessageConnection
115
- * @function
116
- * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication\
117
- * /connection/browser-window-message
118
- * @rtype Stamp
119
- * @param {Object} [params={}] - Initializer object
120
- * @param {Object} [params.target=window.parent] - Target window for message
121
- * @param {Object} [params.self=window] - Host window for message
122
- * @param {Object} [params.origin] - Origin of receiver
123
- * @param {String} [params.sendDirection] Wrapping messages into additional struct
124
- * ({ type: 'to_aepp' || 'to_waellet', data })
125
- * Used for handling messages between content script and page
126
- * @param {String} [params.receiveDirection='to_aepp'] Unwrapping messages from additional struct
127
- * ({ type: 'to_aepp' || 'to_waellet', data })
128
- * Used for handling messages between content script and page
129
- * @param {Object} [params.connectionInfo={}] - Connection info object
130
- * @param {Boolean} [params.debug=false] - Debug flag
131
- * @return {Object}
132
- */
133
- export default stampit({
134
- init ({
135
- connectionInfo = {},
136
- target = getTarget(),
137
- self = window,
138
- origin,
139
- sendDirection,
140
- receiveDirection = MESSAGE_DIRECTION.to_aepp,
141
- debug = false,
142
- forceOrigin = false
143
- } = {}) {
144
- if (sendDirection && !Object.keys(MESSAGE_DIRECTION).includes(sendDirection)) throw new Error(`sendDirection must be one of [${Object.keys(MESSAGE_DIRECTION)}]`)
145
- if (!Object.keys(MESSAGE_DIRECTION).includes(receiveDirection)) throw new Error(`receiveDirection must be one of [${Object.keys(MESSAGE_DIRECTION)}]`)
146
- this.connectionInfo = { id: uuid(), ...connectionInfo }
147
-
148
- const selfP = self
149
- const targetP = target
150
- this.origin = origin
151
- this.debug = debug
152
- this.forceOrigin = forceOrigin
153
- this.sendDirection = sendDirection
154
- this.receiveDirection = receiveDirection
155
- this.subscribeFn = (listener) => selfP.addEventListener('message', listener, false)
156
- this.unsubscribeFn = (listener) => selfP.removeEventListener('message', listener, false)
157
- this.postFn = (msg) => targetP.postMessage(msg, this.origin || '*')
158
- if (!this.connectionInfo.id) throw new Error('ID required.')
159
- },
160
- methods: { connect, sendMessage, disconnect, isConnected }
161
- }, WalletConnection)
@@ -1,85 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2018 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-
18
- /**
19
- * Wallet Connection base module
20
- * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection
21
- * @export WalletConnection
22
- * @example
23
- * import WalletConnection from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection'
24
- */
25
-
26
- import { required } from '@stamp/required'
27
-
28
- /**
29
- * Basic Wallet Connection
30
- *
31
- * This stamp include interface for wallet connection functionality.
32
- * Attempting to create instances from the Stamp without overwriting all
33
- * abstract methods using composition will result in an exception.
34
- * @function
35
- * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection
36
- * @rtype Stamp
37
- * @param {Object} [options={}] - Initializer object
38
- * @return {Object} WalletConnection instance
39
- */
40
- export default required({
41
- methods: {
42
- connect: required,
43
- disconnect: required,
44
- sendMessage: required,
45
- isConnected: required
46
- }
47
- })
48
-
49
- /**
50
- * Connect
51
- * @function connect
52
- * @instance
53
- * @abstract
54
- * @rtype (onMessage: Function) => void
55
- * @param {Function} onMessage - Message handler
56
- * @return {void}
57
- */
58
-
59
- /**
60
- * Disconnect
61
- * @function disconnect
62
- * @instance
63
- * @abstract
64
- * @rtype () => void
65
- * @return {void}
66
- */
67
-
68
- /**
69
- * Send message
70
- * @function sendMessage
71
- * @instance
72
- * @abstract
73
- * @rtype (msg: Object) => void
74
- * @param {Object} msg - Message
75
- * @return {void}
76
- */
77
-
78
- /**
79
- * Check if connected
80
- * @function isConnected
81
- * @instance
82
- * @abstract
83
- * @rtype () => Boolean
84
- * @return {Boolean} Is connected
85
- */
@@ -1,85 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2018 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-
18
- /**
19
- * Content Script Bridge module
20
- *
21
- * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/content-script-bridge
22
- * @export ContentScriptBridge
23
- * @example
24
- * import ContentScriptBridge
25
- * from '@aeternity/aepp-sdk/es/utils/wallet-communication/content-script-bridge
26
- */
27
- import stampit from '@stamp/it'
28
-
29
- /**
30
- * Start message proxy
31
- * @function run
32
- * @instance
33
- * @return {void}
34
- */
35
- function run () {
36
- const allowCrossOrigin = this.allowCrossOrigin
37
- // Connect to extension using runtime
38
- this.extConnection.connect((msg) => {
39
- this.pageConnection.sendMessage(msg)
40
- })
41
- // Connect to page using window.postMessage
42
- this.pageConnection.connect((msg, origin, source) => {
43
- if (!allowCrossOrigin && source !== window) return
44
- this.extConnection.sendMessage(msg)
45
- })
46
- }
47
-
48
- /**
49
- * Stop message proxy
50
- * @function stop
51
- * @instance
52
- * @return {void}
53
- */
54
- function stop () {
55
- this.extConnection.disconnect()
56
- this.pageConnection.disconnect()
57
- }
58
-
59
- /**
60
- * ContentScriptBridge stamp
61
- * Provide functionality to easly redirect messages from page to extension and from extension to
62
- * page through content script
63
- * Using Runtime(Extension) and WindowPostMessage(Web-Page) connections
64
- * @function
65
- * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/content-script-bridge
66
- * @rtype Stamp
67
- * @param {Object} params - Initializer object
68
- * @param {Object} params.pageConnection - Page connection object
69
- * (@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/\
70
- * browser-window-message)
71
- * @param {Object} params.extConnection - Extension connection object
72
- * (@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime)
73
- * @return {Object}
74
- */
75
- export default stampit({
76
- init ({ pageConnection, extConnection, allowCrossOrigin = false }) {
77
- if (!window) throw new Error('Window object not found, you can run bridge only in browser')
78
- if (!pageConnection) throw new Error('pageConnection required')
79
- if (!extConnection) throw new Error('extConnection required')
80
- this.allowCrossOrigin = allowCrossOrigin
81
- this.pageConnection = pageConnection
82
- this.extConnection = extConnection
83
- },
84
- methods: { run, stop }
85
- })
@@ -1,70 +0,0 @@
1
- /**
2
- * Browser helper functions
3
- */
4
- import { isAccountBase } from '../../account/base'
5
-
6
- export const getBrowserAPI = (force = false) => {
7
- const { chrome, browser } = window
8
- // Chrome, Opera support
9
- if (typeof chrome !== 'undefined' && chrome === Object(chrome)) return chrome
10
- // Firefox support
11
- if (typeof browser !== 'undefined' && browser === Object(browser)) return browser
12
- if (!force) throw new Error('Browser is not detected')
13
- return {}
14
- }
15
-
16
- export const isInIframe = () => window !== window.parent
17
-
18
- /**
19
- * RPC helper functions
20
- */
21
- export const sendMessage = (connection) => {
22
- let messageId = 0
23
-
24
- return ({ id, method, params, result, error }, isNotificationOrResponse = false) => {
25
- // Increment id for each request
26
- isNotificationOrResponse || (messageId += 1)
27
- id = isNotificationOrResponse ? (id || null) : messageId
28
- const msgData = params
29
- ? { params }
30
- : result
31
- ? { result }
32
- : { error }
33
- connection.sendMessage({
34
- jsonrpc: '2.0',
35
- ...id ? { id } : {},
36
- method,
37
- ...msgData
38
- })
39
- return id
40
- }
41
- }
42
-
43
- export const getHandler = (schema, msg, { debug = false } = {}) => {
44
- const handler = schema[msg.method]
45
- if (!handler || typeof handler !== 'function') {
46
- debug && console.log(`Unknown message method ${msg.method}`)
47
- return () => async () => true
48
- }
49
- return handler
50
- }
51
-
52
- export const message = (method, params = {}) => ({ method, params })
53
-
54
- export const responseMessage = (id, method, { error, result } = {}) =>
55
- ({ id, method, ...(error ? { error } : { result }) })
56
-
57
- export const sendResponseMessage = (client) => (id, method, data) =>
58
- client.sendMessage(responseMessage(id, method, data), true)
59
-
60
- export const voidFn = () => undefined
61
-
62
- export const isValidAccounts = (accounts) => (['', 'connected', 'current'].filter(k => typeof (k ? accounts[k] : accounts) === 'object')).length === 3
63
-
64
- export const resolveOnAccount = (addresses, onAccount, opt = {}) => {
65
- if (!addresses.find(a => a === onAccount)) {
66
- if (typeof opt.onAccount !== 'object' || !isAccountBase(opt.onAccount)) throw new Error('Provided onAccount should be an AccountBase')
67
- onAccount = opt.onAccount
68
- }
69
- return onAccount
70
- }