@aeternity/aepp-sdk 12.1.3 → 13.0.0-alpha.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 (475) hide show
  1. package/dist/aepp-sdk.browser-script.js +1 -1
  2. package/dist/aepp-sdk.browser-script.js.map +1 -1
  3. package/dist/aepp-sdk.browser.js +1 -1
  4. package/dist/aepp-sdk.browser.js.map +1 -1
  5. package/dist/aepp-sdk.js +6580 -8859
  6. package/dist/aepp-sdk.js.map +1 -1
  7. package/es/AeSdk.d.ts +7 -3
  8. package/es/AeSdk.mjs +17 -22
  9. package/es/AeSdk.mjs.map +1 -1
  10. package/es/AeSdkAepp.d.ts +6 -5
  11. package/es/AeSdkAepp.mjs +7 -30
  12. package/es/AeSdkAepp.mjs.map +1 -1
  13. package/es/AeSdkBase.d.ts +18 -140
  14. package/es/AeSdkBase.mjs +27 -185
  15. package/es/AeSdkBase.mjs.map +1 -1
  16. package/es/AeSdkMethods.d.ts +124 -0
  17. package/es/AeSdkMethods.mjs +122 -0
  18. package/es/AeSdkMethods.mjs.map +1 -0
  19. package/es/AeSdkWallet.d.ts +7 -21
  20. package/es/AeSdkWallet.mjs +38 -86
  21. package/es/AeSdkWallet.mjs.map +1 -1
  22. package/es/Node.d.ts +7 -12
  23. package/es/Node.mjs +34 -47
  24. package/es/Node.mjs.map +1 -1
  25. package/es/account/Base.d.ts +24 -40
  26. package/es/account/Base.mjs +1 -101
  27. package/es/account/Base.mjs.map +1 -1
  28. package/es/account/Generalized.d.ts +16 -0
  29. package/es/account/Generalized.mjs +111 -0
  30. package/es/account/Generalized.mjs.map +1 -0
  31. package/es/account/Ledger.d.ts +28 -0
  32. package/es/account/Ledger.mjs +101 -0
  33. package/es/account/Ledger.mjs.map +1 -0
  34. package/es/account/LedgerFactory.d.ts +39 -0
  35. package/es/account/LedgerFactory.mjs +81 -0
  36. package/es/account/LedgerFactory.mjs.map +1 -0
  37. package/es/account/Memory.d.ts +13 -17
  38. package/es/account/Memory.mjs +43 -65
  39. package/es/account/Memory.mjs.map +1 -1
  40. package/es/account/Rpc.d.ts +6 -8
  41. package/es/account/Rpc.mjs +14 -32
  42. package/es/account/Rpc.mjs.map +1 -1
  43. package/es/aens.d.ts +3 -3
  44. package/es/aens.mjs +42 -41
  45. package/es/aens.mjs.map +1 -1
  46. package/es/aepp-wallet-communication/connection/Browser.mjs +9 -13
  47. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  48. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +3 -7
  49. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  50. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +1 -1
  51. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -31
  52. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  53. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  54. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +3 -3
  55. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +4 -41
  56. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  57. package/es/aepp-wallet-communication/rpc/types.d.ts +7 -1
  58. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  59. package/es/aepp-wallet-communication/schema.mjs +14 -68
  60. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  61. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -3
  62. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  63. package/es/apis/compiler/compiler.d.ts +23 -29
  64. package/es/apis/compiler/compiler.mjs +128 -189
  65. package/es/apis/compiler/compiler.mjs.map +1 -1
  66. package/es/apis/compiler/index.mjs.map +1 -1
  67. package/es/apis/compiler/models/index.d.ts +82 -135
  68. package/es/apis/compiler/models/index.mjs +1 -47
  69. package/es/apis/compiler/models/index.mjs.map +1 -1
  70. package/es/apis/compiler/models/mappers.d.ts +8 -8
  71. package/es/apis/compiler/models/mappers.mjs +165 -183
  72. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  73. package/es/apis/compiler/models/parameters.d.ts +0 -1
  74. package/es/apis/compiler/models/parameters.mjs +5 -9
  75. package/es/apis/compiler/models/parameters.mjs.map +1 -1
  76. package/es/apis/node/index.mjs.map +1 -1
  77. package/es/apis/node/models/index.d.ts +48 -48
  78. package/es/apis/node/models/mappers.mjs +12 -6
  79. package/es/apis/node/models/mappers.mjs.map +1 -1
  80. package/es/apis/node/models/parameters.mjs.map +1 -1
  81. package/es/apis/node/node.mjs +43 -84
  82. package/es/apis/node/node.mjs.map +1 -1
  83. package/es/chain.d.ts +1 -1
  84. package/es/chain.mjs +33 -58
  85. package/es/chain.mjs.map +1 -1
  86. package/es/channel/Base.d.ts +195 -0
  87. package/es/channel/Base.mjs +290 -0
  88. package/es/channel/Base.mjs.map +1 -0
  89. package/es/channel/Contract.d.ts +247 -0
  90. package/es/channel/Contract.mjs +420 -0
  91. package/es/channel/Contract.mjs.map +1 -0
  92. package/es/channel/Spend.d.ts +217 -0
  93. package/es/channel/Spend.mjs +383 -0
  94. package/es/channel/Spend.mjs.map +1 -0
  95. package/es/channel/handlers.d.ts +8 -21
  96. package/es/channel/handlers.mjs +141 -891
  97. package/es/channel/handlers.mjs.map +1 -1
  98. package/es/channel/internal.d.ts +27 -21
  99. package/es/channel/internal.mjs +98 -190
  100. package/es/channel/internal.mjs.map +1 -1
  101. package/es/contract/{Compiler.d.ts → CompilerHttp.d.ts} +3 -3
  102. package/es/contract/{Compiler.mjs → CompilerHttp.mjs} +8 -13
  103. package/es/contract/CompilerHttp.mjs.map +1 -0
  104. package/es/contract/Contract.d.ts +235 -0
  105. package/es/contract/Contract.mjs +534 -0
  106. package/es/contract/Contract.mjs.map +1 -0
  107. package/es/contract/ga.d.ts +7 -33
  108. package/es/contract/ga.mjs +20 -112
  109. package/es/contract/ga.mjs.map +1 -1
  110. package/es/index.d.ts +9 -6
  111. package/es/index.mjs +8 -6
  112. package/es/index.mjs.map +1 -1
  113. package/es/oracle.d.ts +5 -5
  114. package/es/oracle.mjs +33 -39
  115. package/es/oracle.mjs.map +1 -1
  116. package/es/spend.d.ts +3 -3
  117. package/es/spend.mjs +17 -20
  118. package/es/spend.mjs.map +1 -1
  119. package/es/tx/builder/constants.d.ts +2 -1
  120. package/es/tx/builder/constants.mjs +12 -12
  121. package/es/tx/builder/constants.mjs.map +1 -1
  122. package/es/tx/builder/field-types/address.d.ts +15 -0
  123. package/es/tx/builder/field-types/address.mjs +42 -0
  124. package/es/tx/builder/field-types/address.mjs.map +1 -0
  125. package/es/tx/builder/field-types/addresses.d.ts +6 -0
  126. package/es/tx/builder/field-types/addresses.mjs +13 -0
  127. package/es/tx/builder/field-types/addresses.mjs.map +1 -0
  128. package/es/tx/builder/field-types/coin-amount.d.ts +1 -2
  129. package/es/tx/builder/field-types/coin-amount.mjs +4 -12
  130. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  131. package/es/tx/builder/field-types/deposit.d.ts +0 -1
  132. package/es/tx/builder/field-types/deposit.mjs +2 -4
  133. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  134. package/es/tx/builder/field-types/enumeration.d.ts +5 -0
  135. package/es/tx/builder/field-types/enumeration.mjs +21 -0
  136. package/es/tx/builder/field-types/enumeration.mjs.map +1 -0
  137. package/es/tx/builder/field-types/fee.d.ts +1 -9
  138. package/es/tx/builder/field-types/fee.mjs +9 -25
  139. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  140. package/es/tx/builder/field-types/field.mjs +0 -2
  141. package/es/tx/builder/field-types/field.mjs.map +1 -1
  142. package/es/tx/builder/field-types/gas-limit.mjs +4 -9
  143. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  144. package/es/tx/builder/field-types/gas-price.d.ts +1 -2
  145. package/es/tx/builder/field-types/gas-price.mjs +3 -7
  146. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  147. package/es/tx/builder/field-types/index.d.ts +23 -11
  148. package/es/tx/builder/field-types/index.mjs +10 -3
  149. package/es/tx/builder/field-types/index.mjs.map +1 -1
  150. package/es/tx/builder/field-types/name-fee.d.ts +0 -1
  151. package/es/tx/builder/field-types/name-fee.mjs +3 -5
  152. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  153. package/es/tx/builder/field-types/name-id.d.ts +1 -4
  154. package/es/tx/builder/field-types/name-id.mjs +4 -10
  155. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  156. package/es/tx/builder/field-types/name.mjs +0 -2
  157. package/es/tx/builder/field-types/name.mjs.map +1 -1
  158. package/es/tx/builder/field-types/pointers.d.ts +23 -0
  159. package/es/tx/builder/field-types/pointers.mjs +36 -0
  160. package/es/tx/builder/field-types/pointers.mjs.map +1 -0
  161. package/es/tx/builder/field-types/short-u-int.mjs +0 -2
  162. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  163. package/es/tx/builder/field-types/u-int.d.ts +1 -1
  164. package/es/tx/builder/field-types/u-int.mjs +3 -4
  165. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  166. package/es/tx/builder/helpers.d.ts +2 -32
  167. package/es/tx/builder/helpers.mjs +19 -71
  168. package/es/tx/builder/helpers.mjs.map +1 -1
  169. package/es/tx/builder/index.d.ts +1 -21
  170. package/es/tx/builder/index.mjs +29 -148
  171. package/es/tx/builder/index.mjs.map +1 -1
  172. package/es/tx/builder/schema.d.ts +336 -176
  173. package/es/tx/builder/schema.mjs +71 -78
  174. package/es/tx/builder/schema.mjs.map +1 -1
  175. package/es/tx/index.d.ts +3 -33
  176. package/es/tx/index.mjs +26 -43
  177. package/es/tx/index.mjs.map +1 -1
  178. package/es/tx/validator.d.ts +2 -2
  179. package/es/tx/validator.mjs +86 -59
  180. package/es/tx/validator.mjs.map +1 -1
  181. package/es/typings/{@aeternity__argon2-browser → @aeternity__aepp-calldata}/index.d.mjs +0 -0
  182. package/es/typings/@aeternity__aepp-calldata/index.d.mjs.map +1 -0
  183. package/es/utils/amount-formatter.mjs +4 -10
  184. package/es/utils/amount-formatter.mjs.map +1 -1
  185. package/es/utils/autorest.d.ts +1 -0
  186. package/es/utils/autorest.mjs +17 -19
  187. package/es/utils/autorest.mjs.map +1 -1
  188. package/es/utils/bignumber.mjs +4 -7
  189. package/es/utils/bignumber.mjs.map +1 -1
  190. package/es/utils/bytes.d.ts +0 -17
  191. package/es/utils/bytes.mjs +6 -35
  192. package/es/utils/bytes.mjs.map +1 -1
  193. package/es/utils/crypto.d.ts +15 -8
  194. package/es/utils/crypto.mjs +40 -40
  195. package/es/utils/crypto.mjs.map +1 -1
  196. package/es/utils/encoder-types.d.ts +28 -28
  197. package/es/utils/encoder-types.mjs +0 -1
  198. package/es/utils/encoder-types.mjs.map +1 -1
  199. package/es/utils/encoder.d.ts +0 -1
  200. package/es/utils/encoder.mjs +7 -15
  201. package/es/utils/encoder.mjs.map +1 -1
  202. package/es/utils/errors.d.ts +12 -6
  203. package/es/utils/errors.mjs +87 -163
  204. package/es/utils/errors.mjs.map +1 -1
  205. package/es/utils/hd-wallet.d.ts +27 -19
  206. package/es/utils/hd-wallet.mjs +42 -26
  207. package/es/utils/hd-wallet.mjs.map +1 -1
  208. package/es/utils/json-big.mjs +0 -8
  209. package/es/utils/json-big.mjs.map +1 -1
  210. package/es/utils/keystore.d.ts +2 -0
  211. package/es/utils/keystore.mjs +37 -36
  212. package/es/utils/keystore.mjs.map +1 -1
  213. package/es/utils/mptree.d.ts +1 -1
  214. package/es/utils/mptree.mjs +4 -26
  215. package/es/utils/mptree.mjs.map +1 -1
  216. package/es/utils/other.d.ts +3 -1
  217. package/es/utils/other.mjs +11 -7
  218. package/es/utils/other.mjs.map +1 -1
  219. package/es/utils/semver-satisfies.mjs +0 -3
  220. package/es/utils/semver-satisfies.mjs.map +1 -1
  221. package/es/utils/string.d.ts +0 -12
  222. package/es/utils/string.mjs +1 -21
  223. package/es/utils/string.mjs.map +1 -1
  224. package/package.json +86 -47
  225. package/src/AeSdk.ts +15 -11
  226. package/src/AeSdkAepp.ts +9 -7
  227. package/src/AeSdkBase.ts +28 -202
  228. package/src/AeSdkMethods.ts +170 -0
  229. package/src/AeSdkWallet.ts +16 -47
  230. package/src/Node.ts +11 -15
  231. package/src/account/Base.ts +29 -75
  232. package/src/account/Generalized.ts +98 -0
  233. package/src/account/Ledger.ts +131 -0
  234. package/src/account/LedgerFactory.ts +86 -0
  235. package/src/account/Memory.ts +46 -60
  236. package/src/account/Rpc.ts +17 -26
  237. package/src/aens.ts +10 -9
  238. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +5 -4
  239. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +3 -3
  240. package/src/aepp-wallet-communication/rpc/RpcClient.ts +2 -2
  241. package/src/aepp-wallet-communication/rpc/types.ts +11 -1
  242. package/src/aepp-wallet-communication/schema.ts +18 -18
  243. package/src/apis/compiler/code-model-v4.yaml +681 -888
  244. package/src/apis/compiler/compiler.ts +113 -154
  245. package/src/apis/compiler/models/index.ts +80 -140
  246. package/src/apis/compiler/models/mappers.ts +165 -183
  247. package/src/apis/compiler/models/parameters.ts +6 -12
  248. package/src/chain.ts +6 -3
  249. package/src/channel/Base.ts +327 -0
  250. package/src/channel/Contract.ts +487 -0
  251. package/src/channel/Spend.ts +403 -0
  252. package/src/channel/handlers.ts +154 -573
  253. package/src/channel/internal.ts +113 -142
  254. package/src/contract/{Compiler.ts → CompilerHttp.ts} +5 -5
  255. package/src/contract/Contract.ts +620 -0
  256. package/src/contract/ga.ts +18 -104
  257. package/src/index.ts +9 -8
  258. package/src/oracle.ts +7 -7
  259. package/src/spend.ts +5 -13
  260. package/src/tx/builder/constants.ts +1 -0
  261. package/src/tx/builder/field-types/address.ts +52 -0
  262. package/src/tx/builder/field-types/addresses.ts +18 -0
  263. package/src/tx/builder/field-types/coin-amount.ts +2 -8
  264. package/src/tx/builder/field-types/enumeration.ts +21 -0
  265. package/src/tx/builder/field-types/fee.ts +1 -3
  266. package/src/tx/builder/field-types/gas-limit.ts +2 -2
  267. package/src/tx/builder/field-types/gas-price.ts +0 -2
  268. package/src/tx/builder/field-types/index.ts +16 -6
  269. package/src/tx/builder/field-types/name-fee.ts +1 -1
  270. package/src/tx/builder/field-types/name-id.ts +7 -10
  271. package/src/tx/builder/field-types/pointers.ts +41 -0
  272. package/src/tx/builder/field-types/u-int.ts +3 -2
  273. package/src/tx/builder/helpers.ts +10 -60
  274. package/src/tx/builder/index.ts +6 -65
  275. package/src/tx/builder/schema.ts +89 -100
  276. package/src/tx/index.ts +19 -15
  277. package/src/tx/validator.ts +36 -18
  278. package/src/typings/@aeternity__aepp-calldata/index.d.ts +20 -0
  279. package/src/utils/autorest.ts +16 -1
  280. package/src/utils/bytes.ts +5 -33
  281. package/src/utils/crypto.ts +23 -16
  282. package/src/utils/encoder.ts +0 -1
  283. package/src/utils/errors.ts +18 -12
  284. package/src/utils/hd-wallet.ts +30 -9
  285. package/src/utils/keystore.ts +24 -21
  286. package/src/utils/other.ts +16 -1
  287. package/src/utils/string.ts +0 -20
  288. package/types-legacy/ts4.2/AeSdk.d.ts +41 -0
  289. package/types-legacy/ts4.2/AeSdkAepp.d.ts +71 -0
  290. package/types-legacy/ts4.2/AeSdkBase.d.ts +91 -0
  291. package/types-legacy/ts4.2/AeSdkMethods.d.ts +141 -0
  292. package/types-legacy/ts4.2/AeSdkWallet.d.ts +90 -0
  293. package/types-legacy/ts4.2/Node.d.ts +78 -0
  294. package/types-legacy/ts4.2/account/Base.d.ts +52 -0
  295. package/types-legacy/ts4.2/account/Generalized.d.ts +16 -0
  296. package/types-legacy/ts4.2/account/Ledger.d.ts +28 -0
  297. package/types-legacy/ts4.2/account/LedgerFactory.d.ts +39 -0
  298. package/types-legacy/ts4.2/account/Memory.d.ts +22 -0
  299. package/types-legacy/ts4.2/account/Rpc.d.ts +25 -0
  300. package/types-legacy/ts4.2/aens.d.ts +222 -0
  301. package/types-legacy/ts4.2/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  302. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
  303. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  304. package/types-legacy/ts4.2/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  305. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  306. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +83 -0
  307. package/types-legacy/ts4.2/aepp-wallet-communication/schema.d.ts +133 -0
  308. package/types-legacy/ts4.2/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  309. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +86 -0
  310. package/types-legacy/ts4.2/apis/compiler/index.d.ts +2 -0
  311. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +195 -0
  312. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +23 -0
  313. package/types-legacy/ts4.2/apis/compiler/models/parameters.d.ts +12 -0
  314. package/types-legacy/ts4.2/apis/node/index.d.ts +2 -0
  315. package/types-legacy/ts4.2/apis/node/models/index.d.ts +1065 -0
  316. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +95 -0
  317. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +17 -0
  318. package/types-legacy/ts4.2/apis/node/node.d.ts +215 -0
  319. package/types-legacy/ts4.2/chain.d.ts +248 -0
  320. package/types-legacy/ts4.2/channel/Base.d.ts +194 -0
  321. package/types-legacy/ts4.2/channel/Contract.d.ts +247 -0
  322. package/types-legacy/ts4.2/channel/Spend.d.ts +217 -0
  323. package/types-legacy/ts4.2/channel/handlers.d.ts +21 -0
  324. package/types-legacy/ts4.2/channel/internal.d.ts +107 -0
  325. package/types-legacy/ts4.2/contract/CompilerHttp.d.ts +18 -0
  326. package/types-legacy/ts4.2/contract/Contract.d.ts +237 -0
  327. package/types-legacy/ts4.2/contract/ga.d.ts +43 -0
  328. package/types-legacy/ts4.2/globals.d.ts +16 -0
  329. package/types-legacy/ts4.2/index.d.ts +39 -0
  330. package/types-legacy/ts4.2/oracle.d.ts +161 -0
  331. package/types-legacy/ts4.2/spend.d.ts +62 -0
  332. package/types-legacy/ts4.2/tx/builder/constants.d.ts +71 -0
  333. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +22 -0
  334. package/types-legacy/ts4.2/tx/builder/field-types/addresses.d.ts +6 -0
  335. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +12 -0
  336. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +14 -0
  337. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +5 -0
  338. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +17 -0
  339. package/types-legacy/ts4.2/tx/builder/field-types/field.d.ts +6 -0
  340. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +12 -0
  341. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +7 -0
  342. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +85 -0
  343. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +19 -0
  344. package/types-legacy/ts4.2/tx/builder/field-types/name-id.d.ts +11 -0
  345. package/types-legacy/ts4.2/tx/builder/field-types/name.d.ts +13 -0
  346. package/types-legacy/ts4.2/tx/builder/field-types/pointers.d.ts +26 -0
  347. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int.d.ts +6 -0
  348. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +8 -0
  349. package/types-legacy/ts4.2/tx/builder/helpers.d.ts +112 -0
  350. package/types-legacy/ts4.2/tx/builder/index.d.ts +68 -0
  351. package/types-legacy/ts4.2/tx/builder/schema.d.ts +2963 -0
  352. package/types-legacy/ts4.2/tx/index.d.ts +34 -0
  353. package/types-legacy/ts4.2/tx/validator.d.ts +20 -0
  354. package/types-legacy/ts4.2/utils/amount-formatter.d.ts +42 -0
  355. package/types-legacy/ts4.2/utils/autorest.d.ts +7 -0
  356. package/types-legacy/ts4.2/utils/bignumber.d.ts +13 -0
  357. package/types-legacy/ts4.2/utils/bytes.d.ts +9 -0
  358. package/types-legacy/ts4.2/utils/crypto.d.ts +95 -0
  359. package/types-legacy/ts4.2/utils/encoder-types.d.ts +61 -0
  360. package/types-legacy/ts4.2/utils/encoder.d.ts +24 -0
  361. package/types-legacy/ts4.2/utils/errors.d.ts +480 -0
  362. package/types-legacy/ts4.2/utils/hd-wallet.d.ts +65 -0
  363. package/types-legacy/ts4.2/utils/json-big.d.ts +5 -0
  364. package/types-legacy/ts4.2/utils/keystore.d.ts +53 -0
  365. package/types-legacy/ts4.2/utils/mptree.d.ts +32 -0
  366. package/types-legacy/ts4.2/utils/other.d.ts +31 -0
  367. package/types-legacy/ts4.2/utils/semver-satisfies.d.ts +1 -0
  368. package/types-legacy/ts4.2/utils/string.d.ts +12 -0
  369. package/types-legacy/ts4.5/AeSdk.d.ts +41 -0
  370. package/types-legacy/ts4.5/AeSdkAepp.d.ts +71 -0
  371. package/types-legacy/ts4.5/AeSdkBase.d.ts +91 -0
  372. package/types-legacy/ts4.5/AeSdkMethods.d.ts +141 -0
  373. package/types-legacy/ts4.5/AeSdkWallet.d.ts +90 -0
  374. package/types-legacy/ts4.5/Node.d.ts +78 -0
  375. package/types-legacy/ts4.5/account/Base.d.ts +52 -0
  376. package/types-legacy/ts4.5/account/Generalized.d.ts +16 -0
  377. package/types-legacy/ts4.5/account/Ledger.d.ts +28 -0
  378. package/types-legacy/ts4.5/account/LedgerFactory.d.ts +39 -0
  379. package/types-legacy/ts4.5/account/Memory.d.ts +22 -0
  380. package/types-legacy/ts4.5/account/Rpc.d.ts +25 -0
  381. package/types-legacy/ts4.5/aens.d.ts +222 -0
  382. package/types-legacy/ts4.5/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  383. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
  384. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  385. package/types-legacy/ts4.5/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  386. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  387. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +83 -0
  388. package/types-legacy/ts4.5/aepp-wallet-communication/schema.d.ts +133 -0
  389. package/types-legacy/ts4.5/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  390. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +86 -0
  391. package/types-legacy/ts4.5/apis/compiler/index.d.ts +2 -0
  392. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +195 -0
  393. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +23 -0
  394. package/types-legacy/ts4.5/apis/compiler/models/parameters.d.ts +12 -0
  395. package/types-legacy/ts4.5/apis/node/index.d.ts +2 -0
  396. package/types-legacy/ts4.5/apis/node/models/index.d.ts +1065 -0
  397. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +95 -0
  398. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +17 -0
  399. package/types-legacy/ts4.5/apis/node/node.d.ts +215 -0
  400. package/types-legacy/ts4.5/chain.d.ts +248 -0
  401. package/types-legacy/ts4.5/channel/Base.d.ts +194 -0
  402. package/types-legacy/ts4.5/channel/Contract.d.ts +247 -0
  403. package/types-legacy/ts4.5/channel/Spend.d.ts +217 -0
  404. package/types-legacy/ts4.5/channel/handlers.d.ts +21 -0
  405. package/types-legacy/ts4.5/channel/internal.d.ts +107 -0
  406. package/types-legacy/ts4.5/contract/CompilerHttp.d.ts +18 -0
  407. package/types-legacy/ts4.5/contract/Contract.d.ts +237 -0
  408. package/types-legacy/ts4.5/contract/ga.d.ts +43 -0
  409. package/types-legacy/ts4.5/index.d.ts +38 -0
  410. package/types-legacy/ts4.5/oracle.d.ts +161 -0
  411. package/types-legacy/ts4.5/spend.d.ts +62 -0
  412. package/types-legacy/ts4.5/tx/builder/constants.d.ts +71 -0
  413. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +22 -0
  414. package/types-legacy/ts4.5/tx/builder/field-types/addresses.d.ts +6 -0
  415. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +12 -0
  416. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +14 -0
  417. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +5 -0
  418. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +17 -0
  419. package/types-legacy/ts4.5/tx/builder/field-types/field.d.ts +6 -0
  420. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +12 -0
  421. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +7 -0
  422. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +85 -0
  423. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +19 -0
  424. package/types-legacy/ts4.5/tx/builder/field-types/name-id.d.ts +11 -0
  425. package/types-legacy/ts4.5/tx/builder/field-types/name.d.ts +13 -0
  426. package/types-legacy/ts4.5/tx/builder/field-types/pointers.d.ts +26 -0
  427. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int.d.ts +6 -0
  428. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +8 -0
  429. package/types-legacy/ts4.5/tx/builder/helpers.d.ts +112 -0
  430. package/types-legacy/ts4.5/tx/builder/index.d.ts +68 -0
  431. package/types-legacy/ts4.5/tx/builder/schema.d.ts +2963 -0
  432. package/types-legacy/ts4.5/tx/index.d.ts +34 -0
  433. package/types-legacy/ts4.5/tx/validator.d.ts +20 -0
  434. package/types-legacy/ts4.5/utils/amount-formatter.d.ts +42 -0
  435. package/types-legacy/ts4.5/utils/autorest.d.ts +7 -0
  436. package/types-legacy/ts4.5/utils/bignumber.d.ts +13 -0
  437. package/types-legacy/ts4.5/utils/bytes.d.ts +9 -0
  438. package/types-legacy/ts4.5/utils/crypto.d.ts +95 -0
  439. package/types-legacy/ts4.5/utils/encoder-types.d.ts +61 -0
  440. package/types-legacy/ts4.5/utils/encoder.d.ts +24 -0
  441. package/types-legacy/ts4.5/utils/errors.d.ts +480 -0
  442. package/types-legacy/ts4.5/utils/hd-wallet.d.ts +65 -0
  443. package/types-legacy/ts4.5/utils/json-big.d.ts +5 -0
  444. package/types-legacy/ts4.5/utils/keystore.d.ts +53 -0
  445. package/types-legacy/ts4.5/utils/mptree.d.ts +32 -0
  446. package/types-legacy/ts4.5/utils/other.d.ts +31 -0
  447. package/types-legacy/ts4.5/utils/semver-satisfies.d.ts +1 -0
  448. package/types-legacy/ts4.5/utils/string.d.ts +12 -0
  449. package/es/channel/index.d.ts +0 -625
  450. package/es/channel/index.mjs +0 -975
  451. package/es/channel/index.mjs.map +0 -1
  452. package/es/contract/Compiler.mjs.map +0 -1
  453. package/es/contract/aci.d.ts +0 -127
  454. package/es/contract/aci.mjs +0 -508
  455. package/es/contract/aci.mjs.map +0 -1
  456. package/es/contract/methods.d.ts +0 -71
  457. package/es/contract/methods.mjs +0 -104
  458. package/es/contract/methods.mjs.map +0 -1
  459. package/es/deprecated/index.d.ts +0 -143
  460. package/es/deprecated/index.mjs +0 -162
  461. package/es/deprecated/index.mjs.map +0 -1
  462. package/es/deprecated/methods.d.ts +0 -18
  463. package/es/deprecated/methods.mjs +0 -26
  464. package/es/deprecated/methods.mjs.map +0 -1
  465. package/es/tx/builder/address.d.ts +0 -25
  466. package/es/tx/builder/address.mjs +0 -45
  467. package/es/tx/builder/address.mjs.map +0 -1
  468. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +0 -1
  469. package/src/channel/index.ts +0 -1025
  470. package/src/contract/aci.ts +0 -537
  471. package/src/contract/methods.ts +0 -123
  472. package/src/deprecated/index.ts +0 -172
  473. package/src/deprecated/methods.ts +0 -25
  474. package/src/tx/builder/address.ts +0 -50
  475. package/src/typings/@aeternity__argon2-browser/index.d.ts +0 -3
@@ -17,21 +17,18 @@
17
17
  /* eslint-disable consistent-return */
18
18
  /* eslint-disable default-case */
19
19
  /* eslint-disable @typescript-eslint/no-use-before-define */
20
- import { generateKeyPair, encodeContractAddress } from '../utils/crypto';
21
20
  import {
22
21
  ChannelState,
23
- options,
24
22
  changeStatus,
25
23
  changeState,
26
24
  call,
27
- send,
25
+ notify,
28
26
  emit,
29
- channelId,
30
27
  disconnect,
31
- fsmId,
32
28
  ChannelMessage,
33
29
  ChannelFsm,
34
30
  SignTx,
31
+ ChannelStatus,
35
32
  } from './internal';
36
33
  import { unpackTx, buildTx } from '../tx/builder';
37
34
  import { encode, Encoded, Encoding } from '../utils/encoder';
@@ -40,8 +37,9 @@ import {
40
37
  InsufficientBalanceError,
41
38
  ChannelConnectionError,
42
39
  UnexpectedChannelMessageError,
40
+ ChannelError,
43
41
  } from '../utils/errors';
44
- import type Channel from '.';
42
+ import type Channel from './Base';
45
43
  import { Tag } from '../tx/builder/constants';
46
44
 
47
45
  export async function appendSignature(
@@ -60,7 +58,26 @@ export async function appendSignature(
60
58
  return result;
61
59
  }
62
60
 
63
- function handleUnexpectedMessage(
61
+ export async function signAndNotify(
62
+ channel: Channel,
63
+ method: string,
64
+ data: {
65
+ tx?: Encoded.Transaction;
66
+ signed_tx?: Encoded.Transaction;
67
+ },
68
+ signFn: SignTx,
69
+ ): Promise<boolean> {
70
+ let signedTx;
71
+ if (data.tx != null) signedTx = await signFn(data.tx);
72
+ else if (data.signed_tx != null) signedTx = await appendSignature(data.signed_tx, signFn);
73
+ else throw new ChannelError('Can\'t find transaction in message');
74
+ const isError = typeof signedTx !== 'string';
75
+ const key = data.tx != null ? 'tx' : 'signed_tx';
76
+ notify(channel, method, isError ? { error: signedTx ?? 1 } : { [key]: signedTx });
77
+ return isError;
78
+ }
79
+
80
+ export function handleUnexpectedMessage(
64
81
  _channel: Channel,
65
82
  message: ChannelMessage,
66
83
  state: ChannelState,
@@ -72,24 +89,63 @@ function handleUnexpectedMessage(
72
89
  return { handler: channelOpen };
73
90
  }
74
91
 
92
+ export function awaitingCompletion(
93
+ channel: Channel,
94
+ message: ChannelMessage,
95
+ state: ChannelState,
96
+ onSuccess?: typeof handleUnexpectedMessage,
97
+ ): ChannelFsm {
98
+ if (onSuccess != null && message.method === 'channels.update') {
99
+ return onSuccess(channel, message, state);
100
+ }
101
+ if (message.method === 'channels.conflict') {
102
+ state.resolve({
103
+ accepted: false,
104
+ errorCode: message.params.data.error_code,
105
+ errorMessage: message.params.data.error_msg,
106
+ });
107
+ return { handler: channelOpen };
108
+ }
109
+ if (message.method === 'channels.info') {
110
+ if (message.params.data.event === 'aborted_update') {
111
+ state.resolve({ accepted: false });
112
+ return { handler: channelOpen };
113
+ }
114
+ }
115
+ if (message.error != null) {
116
+ const codes = message.error.data.map((d) => d.code);
117
+ if (codes.includes(1001)) {
118
+ state.reject(new InsufficientBalanceError('Insufficient balance'));
119
+ } else if (codes.includes(1002)) {
120
+ state.reject(new IllegalArgumentError('Amount cannot be negative'));
121
+ } else {
122
+ state.reject(new ChannelConnectionError(message.error.message));
123
+ }
124
+ return { handler: channelOpen };
125
+ }
126
+ return handleUnexpectedMessage(channel, message, state);
127
+ }
128
+
75
129
  export function awaitingConnection(
76
130
  channel: Channel,
77
131
  message: ChannelMessage,
78
132
  ): ChannelFsm | undefined {
79
133
  if (message.method === 'channels.info') {
80
134
  const channelInfoStatus: string = message.params.data.event;
81
- if (['channel_accept', 'funding_created'].includes(channelInfoStatus)) {
82
- changeStatus(channel, {
83
- channel_accept: 'accepted',
84
- funding_created: 'halfSigned',
85
- }[channelInfoStatus as 'channel_accept' | 'funding_created']);
135
+
136
+ let nextStatus: ChannelStatus | null = null;
137
+ if (channelInfoStatus === 'channel_accept') nextStatus = 'accepted';
138
+ if (channelInfoStatus === 'funding_created') nextStatus = 'halfSigned';
139
+ if (nextStatus != null) {
140
+ changeStatus(channel, nextStatus);
86
141
  return { handler: awaitingChannelCreateTx };
87
142
  }
143
+
88
144
  if (message.params.data.event === 'channel_reestablished') {
89
145
  return { handler: awaitingOpenConfirmation };
90
146
  }
91
147
  if (message.params.data.event === 'fsm_up') {
92
- fsmId.set(channel, message.params.data.fsm_id);
148
+ channel._fsmId = message.params.data.fsm_id;
93
149
  return { handler: awaitingConnection };
94
150
  }
95
151
  return { handler: awaitingConnection };
@@ -107,7 +163,7 @@ export async function awaitingReconnection(
107
163
  ): Promise<ChannelFsm> {
108
164
  if (message.method === 'channels.info') {
109
165
  if (message.params.data.event === 'fsm_up') {
110
- fsmId.set(channel, message.params.data.fsm_id);
166
+ channel._fsmId = message.params.data.fsm_id;
111
167
  changeState(channel, (await call(channel, 'channels.get.offchain_state', {})).signed_tx);
112
168
  return { handler: channelOpen };
113
169
  }
@@ -119,25 +175,15 @@ export async function awaitingChannelCreateTx(
119
175
  channel: Channel,
120
176
  message: ChannelMessage,
121
177
  ): Promise<ChannelFsm | undefined> {
122
- const channelOptions = options.get(channel);
123
- if (channelOptions != null) {
124
- const tag = {
125
- initiator: 'initiator_sign',
126
- responder: 'responder_sign',
127
- }[channelOptions.role];
128
- if (message.method === `channels.sign.${tag}`) {
129
- if (message.params.data.tx != null) {
130
- const signedTx = await channelOptions.sign(tag, message.params.data.tx);
131
- send(channel, { jsonrpc: '2.0', method: `channels.${tag}`, params: { tx: signedTx } });
132
- return { handler: awaitingOnChainTx };
133
- }
134
- const signedTx = await appendSignature(
135
- message.params.data.signed_tx,
136
- async (tx) => channelOptions.sign(tag, tx),
137
- );
138
- send(channel, { jsonrpc: '2.0', method: `channels.${tag}`, params: { signed_tx: signedTx } });
139
- return { handler: awaitingOnChainTx };
140
- }
178
+ const tag = channel._options.role === 'initiator' ? 'initiator_sign' : 'responder_sign';
179
+ if (message.method === `channels.sign.${tag}`) {
180
+ await signAndNotify(
181
+ channel,
182
+ `channels.${tag}`,
183
+ message.params.data,
184
+ async (tx) => channel._options.sign(tag, tx),
185
+ );
186
+ return { handler: awaitingOnChainTx };
141
187
  }
142
188
  }
143
189
 
@@ -145,77 +191,58 @@ export function awaitingOnChainTx(
145
191
  channel: Channel,
146
192
  message: ChannelMessage,
147
193
  ): ChannelFsm | undefined {
148
- const channelOptions = options.get(channel);
149
- if (channelOptions != null) {
150
- if (message.method === 'channels.on_chain_tx') {
151
- if (
152
- message.params.data.info === 'funding_signed'
153
- && channelOptions.role === 'initiator'
154
- ) {
155
- return { handler: awaitingBlockInclusion };
156
- }
157
- if (
158
- message.params.data.info === 'funding_created'
159
- && channelOptions.role === 'responder'
160
- ) {
161
- return { handler: awaitingBlockInclusion };
194
+ function awaitingBlockInclusion(_: Channel, message2: ChannelMessage): ChannelFsm | undefined {
195
+ if (message2.method === 'channels.info') {
196
+ switch (message2.params.data.event) {
197
+ case 'funding_created':
198
+ case 'own_funding_locked':
199
+ return { handler: awaitingBlockInclusion };
200
+ case 'funding_locked':
201
+ return { handler: awaitingOpenConfirmation };
162
202
  }
163
203
  }
164
- if (
165
- message.method === 'channels.info'
166
- && message.params.data.event === 'funding_signed'
167
- && channelOptions.role === 'initiator'
168
- ) {
169
- channelId.set(channel, message.params.channel_id);
170
- changeStatus(channel, 'signed');
171
- return { handler: awaitingOnChainTx };
204
+ if (message2.method === 'channels.on_chain_tx') {
205
+ emit(channel, 'onChainTx', message2.params.data.tx, {
206
+ info: message2.params.data.info,
207
+ type: message2.params.data.type,
208
+ });
209
+ return { handler: awaitingBlockInclusion };
172
210
  }
173
211
  }
174
- }
175
212
 
176
- export function awaitingBlockInclusion(
177
- channel: Channel,
178
- message: ChannelMessage,
179
- ): ChannelFsm | undefined {
180
- if (message.method === 'channels.info') {
181
- const handlers: {
182
- [key: string]: (channel: Channel, message: ChannelMessage) => ChannelFsm | undefined;
183
- } = {
184
- funding_created: awaitingBlockInclusion,
185
- own_funding_locked: awaitingBlockInclusion,
186
- funding_locked: awaitingOpenConfirmation,
187
- };
188
- const handler = handlers[message.params.data.event as string];
189
- if (handler != null) {
190
- return { handler };
213
+ if (message.method === 'channels.on_chain_tx') {
214
+ const { info } = message.params.data;
215
+ const { role } = channel._options;
216
+ if ((info === 'funding_signed' && role === 'initiator')
217
+ || (info === 'funding_created' && role === 'responder')) {
218
+ return { handler: awaitingBlockInclusion };
191
219
  }
192
220
  }
193
- if (message.method === 'channels.on_chain_tx') {
194
- emit(channel, 'onChainTx', message.params.data.tx, {
195
- info: message.params.data.info,
196
- type: message.params.data.type,
197
- });
198
- return { handler: awaitingBlockInclusion };
221
+ if (
222
+ message.method === 'channels.info'
223
+ && message.params.data.event === 'funding_signed'
224
+ && channel._options.role === 'initiator'
225
+ ) {
226
+ channel._channelId = message.params.channel_id;
227
+ changeStatus(channel, 'signed');
228
+ return { handler: awaitingOnChainTx };
199
229
  }
200
230
  }
201
231
 
202
- export function awaitingOpenConfirmation(
232
+ function awaitingOpenConfirmation(
203
233
  channel: Channel,
204
234
  message: ChannelMessage,
205
235
  ): ChannelFsm | undefined {
206
236
  if (message.method === 'channels.info' && message.params.data.event === 'open') {
207
- channelId.set(channel, message.params.channel_id);
208
- return { handler: awaitingInitialState };
209
- }
210
- }
211
-
212
- export function awaitingInitialState(
213
- channel: Channel,
214
- message: ChannelMessage,
215
- ): ChannelFsm | undefined {
216
- if (message.method === 'channels.update') {
217
- changeState(channel, message.params.data.state);
218
- return { handler: channelOpen };
237
+ channel._channelId = message.params.channel_id;
238
+ return {
239
+ handler(_: Channel, message2: ChannelMessage): ChannelFsm | undefined {
240
+ if (message2.method === 'channels.update') {
241
+ changeState(channel, message2.params.data.state);
242
+ return { handler: channelOpen };
243
+ }
244
+ },
245
+ };
219
246
  }
220
247
  }
221
248
 
@@ -245,7 +272,7 @@ export async function channelOpen(
245
272
  emit(channel, message.params.data.event);
246
273
  return { handler: channelOpen };
247
274
  case 'fsm_up':
248
- fsmId.set(channel, message.params.data.fsm_id);
275
+ channel._fsmId = message.params.data.fsm_id;
249
276
  return { handler: channelOpen };
250
277
  case 'timeout':
251
278
  case 'close_mutual':
@@ -283,184 +310,56 @@ channelOpen.enter = (channel: Channel) => {
283
310
  changeStatus(channel, 'open');
284
311
  };
285
312
 
286
- export async function awaitingOffChainTx(
313
+ async function awaitingTxSignRequest(
287
314
  channel: Channel,
288
315
  message: ChannelMessage,
289
316
  state: ChannelState,
290
317
  ): Promise<ChannelFsm> {
291
- if (message.method === 'channels.sign.update') {
292
- const { sign } = state;
293
- if (message.params.data.tx != null) {
294
- const signedTx = await sign(message.params.data.tx, { updates: message.params.data.updates });
295
- send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { tx: signedTx } });
296
- return { handler: awaitingOffChainUpdate, state };
297
- }
298
- const signedTx = await appendSignature(
299
- message.params.data.signed_tx,
300
- async (tx) => sign(tx, { updates: message.params.data.updates }),
301
- );
302
- if (typeof signedTx === 'string') {
303
- send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { signed_tx: signedTx } });
304
- return { handler: awaitingOffChainUpdate, state };
305
- }
306
- if (typeof signedTx === 'number') {
307
- send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { error: signedTx } });
308
- return { handler: awaitingOffChainTx, state };
309
- }
310
- }
311
- if (message.method === 'channels.error') {
312
- state.reject(new ChannelConnectionError(message.data.message));
313
- return { handler: channelOpen };
314
- }
315
- if (message.error != null) {
316
- const { data } = message.error ?? { data: [] };
317
- if (data.find((i) => i.code === 1001) != null) {
318
- state.reject(new InsufficientBalanceError('Insufficient balance'));
319
- } else if (data.find((i) => i.code === 1002) != null) {
320
- state.reject(new IllegalArgumentError('Amount cannot be negative'));
321
- } else {
322
- state.reject(new ChannelConnectionError(message.error.message));
323
- }
324
- return { handler: channelOpen };
325
- }
326
- if (message.method === 'channels.conflict') {
327
- state.resolve({
328
- accepted: false,
329
- errorCode: message.params.data.error_code,
330
- errorMessage: message.params.data.error_msg,
331
- });
332
- return { handler: channelOpen };
333
- }
334
- if (message.method === 'channels.info') {
335
- if (message.params.data.event === 'aborted_update') {
336
- state.resolve({ accepted: false });
337
- return { handler: channelOpen };
338
- }
339
- }
340
- return handleUnexpectedMessage(channel, message, state);
341
- }
318
+ const [, tag] = message.method.match(/^channels\.sign\.([^.]+)$/) ?? [];
319
+ if (tag == null) return handleUnexpectedMessage(channel, message, state);
320
+ const isError = await signAndNotify(
321
+ channel,
322
+ `channels.${tag}`,
323
+ message.params.data,
324
+ async (tx) => channel._options.sign(tag, tx, { updates: message.params.data.updates }),
325
+ );
342
326
 
343
- export function awaitingOffChainUpdate(
344
- channel: Channel,
345
- message: ChannelMessage,
346
- state: ChannelState,
347
- ): ChannelFsm | undefined {
348
- if (message.method === 'channels.update') {
349
- changeState(channel, message.params.data.state);
350
- state.resolve({ accepted: true, signedTx: message.params.data.state });
351
- return { handler: channelOpen };
352
- }
353
- if (message.method === 'channels.conflict') {
354
- state.resolve({
355
- accepted: false,
356
- errorCode: message.params.data.error_code,
357
- errorMessage: message.params.data.error_msg,
358
- });
359
- return { handler: channelOpen };
360
- }
361
- if (message.method === 'channels.info') {
362
- if (message.params.data.event === 'aborted_update') {
363
- state.resolve({ accepted: false });
364
- return { handler: channelOpen };
327
+ function awaitingUpdateConflict(_: Channel, message2: ChannelMessage): ChannelFsm {
328
+ if (message2.error != null) {
329
+ return { handler: awaitingUpdateConflict, state };
365
330
  }
366
- }
367
- if (message.error != null) {
368
- state.reject(new ChannelConnectionError(message.error.message));
369
- return { handler: channelOpen };
370
- }
371
- return handleUnexpectedMessage(channel, message, state);
372
- }
373
-
374
- export async function awaitingTxSignRequest(
375
- channel: Channel,
376
- message: ChannelMessage,
377
- state: ChannelState,
378
- ): Promise<ChannelFsm | undefined> {
379
- const [, tag] = message.method.match(/^channels\.sign\.([^.]+)$/) ?? [];
380
- const channelOptions = options.get(channel);
381
- if (tag != null && (channelOptions != null)) {
382
- if (message.params.data.tx != null) {
383
- const signedTx = await channelOptions.sign(tag, message.params.data.tx, {
384
- updates: message.params.data.updates,
385
- });
386
- if (signedTx != null) {
387
- send(channel, { jsonrpc: '2.0', method: `channels.${tag}`, params: { tx: signedTx } });
388
- return { handler: channelOpen };
389
- }
390
- } else {
391
- const signedTx = await appendSignature(
392
- message.params.data.signed_tx,
393
- async (tx) => channelOptions.sign(tag, tx, { updates: message.params.data.updates }),
394
- );
395
- if (typeof signedTx === 'string') {
396
- send(channel, { jsonrpc: '2.0', method: `channels.${tag}`, params: { signed_tx: signedTx } });
397
- return { handler: channelOpen };
398
- }
399
- if (typeof signedTx === 'number') {
400
- send(channel, { jsonrpc: '2.0', method: `channels.${tag}`, params: { error: signedTx } });
401
- return { handler: awaitingUpdateConflict, state };
402
- }
331
+ if (message2.method === 'channels.conflict') {
332
+ return { handler: channelOpen };
403
333
  }
404
- // soft-reject via competing update
405
- send(channel, {
406
- jsonrpc: '2.0',
407
- method: 'channels.update.new',
408
- params: {
409
- from: generateKeyPair().publicKey,
410
- to: generateKeyPair().publicKey,
411
- amount: 1,
412
- },
413
- });
414
- return { handler: awaitingUpdateConflict, state };
415
- }
416
- return handleUnexpectedMessage(channel, message, state);
417
- }
418
-
419
- export function awaitingUpdateConflict(
420
- channel: Channel,
421
- message: ChannelMessage,
422
- state: ChannelState,
423
- ): ChannelFsm {
424
- if (message.error != null) {
425
- return { handler: awaitingUpdateConflict, state };
334
+ return handleUnexpectedMessage(channel, message2, state);
426
335
  }
427
- if (message.method === 'channels.conflict') {
428
- return { handler: channelOpen };
429
- }
430
- return handleUnexpectedMessage(channel, message, state);
336
+ return isError ? { handler: awaitingUpdateConflict, state } : { handler: channelOpen };
431
337
  }
432
338
 
433
339
  export async function awaitingShutdownTx(
434
340
  channel: Channel,
435
341
  message: ChannelMessage,
436
342
  state: ChannelState,
437
- ): Promise<ChannelFsm | undefined> {
438
- if (message.method === 'channels.sign.shutdown_sign') {
439
- if (message.params.data.tx != null) {
440
- const signedTx = await state.sign(message.params.data.tx);
441
- send(channel, { jsonrpc: '2.0', method: 'channels.shutdown_sign', params: { tx: signedTx } });
442
- return { handler: awaitingShutdownOnChainTx, state };
443
- }
444
- const signedTx = await appendSignature(
445
- message.params.data.signed_tx,
446
- async (tx) => state.sign(tx),
447
- );
448
- send(channel, { jsonrpc: '2.0', method: 'channels.shutdown_sign', params: { signed_tx: signedTx } });
449
- return { handler: awaitingShutdownOnChainTx, state };
450
- }
451
- return handleUnexpectedMessage(channel, message, state);
452
- }
453
-
454
- export function awaitingShutdownOnChainTx(
455
- channel: Channel,
456
- message: ChannelMessage,
457
- state: ChannelState,
458
- ): ChannelFsm {
459
- if (message.method === 'channels.on_chain_tx') {
460
- // state.resolve(message.params.data.tx)
461
- return { handler: channelClosed, state };
462
- }
463
- return handleUnexpectedMessage(channel, message, state);
343
+ ): Promise<ChannelFsm> {
344
+ if (message.method !== 'channels.sign.shutdown_sign') {
345
+ return handleUnexpectedMessage(channel, message, state);
346
+ }
347
+ await signAndNotify(
348
+ channel,
349
+ 'channels.shutdown_sign',
350
+ message.params.data,
351
+ async (tx) => state.sign(tx),
352
+ );
353
+ return {
354
+ handler(_: Channel, message2: ChannelMessage): ChannelFsm {
355
+ if (message2.method !== 'channels.on_chain_tx') {
356
+ return handleUnexpectedMessage(channel, message2, state);
357
+ }
358
+ // state.resolve(message.params.data.tx)
359
+ return { handler: channelClosed, state };
360
+ },
361
+ state,
362
+ };
464
363
  }
465
364
 
466
365
  export function awaitingLeave(
@@ -480,324 +379,6 @@ export function awaitingLeave(
480
379
  return handleUnexpectedMessage(channel, message, state);
481
380
  }
482
381
 
483
- export async function awaitingWithdrawTx(
484
- channel: Channel,
485
- message: ChannelMessage,
486
- state: ChannelState,
487
- ): Promise<ChannelFsm | undefined> {
488
- if (message.method === 'channels.sign.withdraw_tx') {
489
- const { sign } = state;
490
- if (message.params.data.tx != null) {
491
- const signedTx = await sign(message.params.data.tx, { updates: message.params.data.updates });
492
- send(channel, { jsonrpc: '2.0', method: 'channels.withdraw_tx', params: { tx: signedTx } });
493
- return { handler: awaitingWithdrawCompletion, state };
494
- }
495
- const signedTx = await appendSignature(
496
- message.params.data.signed_tx,
497
- async (tx) => sign(tx, { updates: message.params.data.updates }),
498
- );
499
- if (typeof signedTx === 'string') {
500
- send(channel, { jsonrpc: '2.0', method: 'channels.withdraw_tx', params: { signed_tx: signedTx } });
501
- return { handler: awaitingWithdrawCompletion, state };
502
- }
503
- if (typeof signedTx === 'number') {
504
- send(channel, { jsonrpc: '2.0', method: 'channels.withdraw_tx', params: { error: signedTx } });
505
- return { handler: awaitingWithdrawCompletion, state };
506
- }
507
- }
508
- return handleUnexpectedMessage(channel, message, state);
509
- }
510
-
511
- export function awaitingWithdrawCompletion(
512
- channel: Channel,
513
- message: ChannelMessage,
514
- state: ChannelState,
515
- ): ChannelFsm {
516
- if (message.method === 'channels.on_chain_tx') {
517
- state.onOnChainTx?.(message.params.data.tx);
518
- return { handler: awaitingWithdrawCompletion, state };
519
- }
520
- if (message.method === 'channels.info') {
521
- if (['own_withdraw_locked', 'withdraw_locked'].includes(message.params.data.event)) {
522
- const callbacks: {
523
- [key: string]: Function | undefined;
524
- } = {
525
- own_withdraw_locked: state.onOwnWithdrawLocked,
526
- withdraw_locked: state.onWithdrawLocked,
527
- };
528
- callbacks[message.params.data.event]?.();
529
- return { handler: awaitingWithdrawCompletion, state };
530
- }
531
- }
532
- if (message.method === 'channels.update') {
533
- changeState(channel, message.params.data.state);
534
- state.resolve({ accepted: true, signedTx: message.params.data.state });
535
- return { handler: channelOpen };
536
- }
537
- if (message.method === 'channels.conflict') {
538
- state.resolve({
539
- accepted: false,
540
- errorCode: message.params.data.error_code,
541
- errorMessage: message.params.data.error_msg,
542
- });
543
- return { handler: channelOpen };
544
- }
545
- if (message.method === 'channels.info') {
546
- if (message.params.data.event === 'aborted_update') {
547
- state.resolve({ accepted: false });
548
- return { handler: channelOpen };
549
- }
550
- }
551
- return handleUnexpectedMessage(channel, message, state);
552
- }
553
-
554
- export async function awaitingDepositTx(
555
- channel: Channel,
556
- message: ChannelMessage,
557
- state: ChannelState,
558
- ): Promise<ChannelFsm | undefined> {
559
- if (message.method === 'channels.sign.deposit_tx') {
560
- const { sign } = state;
561
- if (message.params.data.tx != null) {
562
- const signedTx = await sign(
563
- message.params.data.tx,
564
- { updates: message.params.data.updates },
565
- );
566
- send(channel, { jsonrpc: '2.0', method: 'channels.deposit_tx', params: { tx: signedTx } });
567
- return { handler: awaitingDepositCompletion, state };
568
- }
569
- const signedTx = await appendSignature(
570
- message.params.data.signed_tx,
571
- async (tx) => sign(tx, { updates: message.params.data.updates }),
572
- );
573
- if (typeof signedTx === 'string') {
574
- send(channel, { jsonrpc: '2.0', method: 'channels.deposit_tx', params: { signed_tx: signedTx } });
575
- return { handler: awaitingDepositCompletion, state };
576
- }
577
- if (typeof signedTx === 'number') {
578
- send(channel, { jsonrpc: '2.0', method: 'channels.deposit_tx', params: { error: signedTx } });
579
- return { handler: awaitingDepositCompletion, state };
580
- }
581
- }
582
- return handleUnexpectedMessage(channel, message, state);
583
- }
584
-
585
- export function awaitingDepositCompletion(
586
- channel: Channel,
587
- message: ChannelMessage,
588
- state: ChannelState,
589
- ): ChannelFsm {
590
- if (message.method === 'channels.on_chain_tx') {
591
- state.onOnChainTx?.(message.params.data.tx);
592
- return { handler: awaitingDepositCompletion, state };
593
- }
594
- if (message.method === 'channels.info') {
595
- if (['own_deposit_locked', 'deposit_locked'].includes(message.params.data.event)) {
596
- const callbacks: {
597
- [key: string]: Function | undefined;
598
- } = {
599
- own_deposit_locked: state.onOwnDepositLocked,
600
- deposit_locked: state.onDepositLocked,
601
- };
602
- callbacks[message.params.data.event]?.();
603
- return { handler: awaitingDepositCompletion, state };
604
- }
605
- }
606
- if (message.method === 'channels.update') {
607
- changeState(channel, message.params.data.state);
608
- state.resolve({ accepted: true, signedTx: message.params.data.state });
609
- return { handler: channelOpen };
610
- }
611
- if (message.method === 'channels.conflict') {
612
- state.resolve({
613
- accepted: false,
614
- errorCode: message.params.data.error_code,
615
- errorMessage: message.params.data.error_msg,
616
- });
617
- return { handler: channelOpen };
618
- }
619
- if (message.method === 'channels.info') {
620
- if (message.params.data.event === 'aborted_update') {
621
- state.resolve({ accepted: false });
622
- return { handler: channelOpen };
623
- }
624
- }
625
- return handleUnexpectedMessage(channel, message, state);
626
- }
627
-
628
- export async function awaitingNewContractTx(
629
- channel: Channel,
630
- message: ChannelMessage,
631
- state: ChannelState,
632
- ): Promise<ChannelFsm | undefined> {
633
- if (message.method === 'channels.sign.update') {
634
- if (message.params.data.tx != null) {
635
- const signedTx = await state.sign(message.params.data.tx);
636
- send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { tx: signedTx } });
637
- return { handler: awaitingNewContractCompletion, state };
638
- }
639
- const signedTx = await appendSignature(
640
- message.params.data.signed_tx,
641
- async (tx) => state.sign(tx),
642
- );
643
- if (typeof signedTx === 'string') {
644
- send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { signed_tx: signedTx } });
645
- return { handler: awaitingNewContractCompletion, state };
646
- }
647
- if (typeof signedTx === 'number') {
648
- send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { error: signedTx } });
649
- return { handler: awaitingNewContractCompletion, state };
650
- }
651
- }
652
- return handleUnexpectedMessage(channel, message, state);
653
- }
654
-
655
- export function awaitingNewContractCompletion(
656
- channel: Channel,
657
- message: ChannelMessage,
658
- state: ChannelState,
659
- ): ChannelFsm {
660
- const channelOptions = options.get(channel);
661
- if (message.method === 'channels.update') {
662
- const { round } = unpackTx(message.params.data.state, Tag.SignedTx).tx.encodedTx.tx;
663
- if (channelOptions?.role != null) {
664
- let role: null | 'initiatorId' | 'responderId' = null;
665
- if (channelOptions.role === 'initiator') role = 'initiatorId';
666
- if (channelOptions.role === 'responder') role = 'responderId';
667
- if (role != null) {
668
- const owner = channelOptions?.[role];
669
- changeState(channel, message.params.data.state);
670
- state.resolve({
671
- accepted: true,
672
- address: encodeContractAddress(owner, round),
673
- signedTx: message.params.data.state,
674
- });
675
- return { handler: channelOpen };
676
- }
677
- }
678
- }
679
- if (message.method === 'channels.conflict') {
680
- state.resolve({
681
- accepted: false,
682
- errorCode: message.params.data.error_code,
683
- errorMessage: message.params.data.error_msg,
684
- });
685
- return { handler: channelOpen };
686
- }
687
- if (message.method === 'channels.info') {
688
- if (message.params.data.event === 'aborted_update') {
689
- state.resolve({ accepted: false });
690
- return { handler: channelOpen };
691
- }
692
- }
693
- return handleUnexpectedMessage(channel, message, state);
694
- }
695
-
696
- export async function awaitingCallContractUpdateTx(
697
- channel: Channel,
698
- message: ChannelMessage,
699
- state: ChannelState,
700
- ): Promise<ChannelFsm | undefined> {
701
- if (message.method === 'channels.sign.update') {
702
- if (message.params.data.tx != null) {
703
- const signedTx = await state.sign(
704
- message.params.data.tx,
705
- { updates: message.params.data.updates },
706
- );
707
- send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { tx: signedTx } });
708
- return { handler: awaitingCallContractCompletion, state };
709
- }
710
- const signedTx = await appendSignature(
711
- message.params.data.signed_tx,
712
- async (tx) => state.sign(tx, { updates: message.params.data.updates }),
713
- );
714
- if (typeof signedTx === 'string') {
715
- send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { signed_tx: signedTx } });
716
- return { handler: awaitingCallContractCompletion, state };
717
- }
718
- if (typeof signedTx === 'number') {
719
- send(channel, { jsonrpc: '2.0', method: 'channels.update', params: { error: signedTx } });
720
- return { handler: awaitingCallContractCompletion, state };
721
- }
722
- }
723
- return handleUnexpectedMessage(channel, message, state);
724
- }
725
-
726
- export async function awaitingCallContractForceProgressUpdate(
727
- channel: Channel,
728
- message: ChannelMessage,
729
- state: ChannelState,
730
- ): Promise<ChannelFsm | undefined> {
731
- if (message.method === 'channels.sign.force_progress_tx') {
732
- const signedTx = await appendSignature(
733
- message.params.data.signed_tx,
734
- async (tx) => state.sign(tx, { updates: message.params.data.updates }),
735
- );
736
- send(
737
- channel,
738
- { jsonrpc: '2.0', method: 'channels.force_progress_sign', params: { signed_tx: signedTx } },
739
- );
740
- return { handler: awaitingForceProgressCompletion, state };
741
- }
742
- return handleUnexpectedMessage(channel, message, state);
743
- }
744
-
745
- export function awaitingForceProgressCompletion(
746
- channel: Channel,
747
- message: ChannelMessage,
748
- state: ChannelState,
749
- ): ChannelFsm {
750
- if (message.method === 'channels.on_chain_tx') {
751
- state.onOnChainTx?.(message.params.data.tx);
752
- emit(channel, 'onChainTx', message.params.data.tx, {
753
- info: message.params.data.info,
754
- type: message.params.data.type,
755
- });
756
- state.resolve({ accepted: true, tx: message.params.data.tx });
757
- }
758
- return handleUnexpectedMessage(channel, message, state);
759
- }
760
-
761
- export function awaitingCallContractCompletion(
762
- channel: Channel,
763
- message: ChannelMessage,
764
- state: ChannelState,
765
- ): ChannelFsm {
766
- if (message.method === 'channels.update') {
767
- changeState(channel, message.params.data.state);
768
- state.resolve({ accepted: true, signedTx: message.params.data.state });
769
- return { handler: channelOpen };
770
- }
771
- if (message.method === 'channels.conflict') {
772
- state.resolve({
773
- accepted: false,
774
- errorCode: message.params.data.error_code,
775
- errorMessage: message.params.data.error_msg,
776
- });
777
- return { handler: channelOpen };
778
- }
779
- if (message.method === 'channels.info') {
780
- if (message.params.data.event === 'aborted_update') {
781
- state.resolve({ accepted: false });
782
- return { handler: channelOpen };
783
- }
784
- }
785
- return handleUnexpectedMessage(channel, message, state);
786
- }
787
-
788
- export function awaitingCallsPruned(
789
- _channels: Channel[],
790
- message: ChannelMessage,
791
- state: ChannelState,
792
- ): ChannelFsm {
793
- if (message.method === 'channels.calls_pruned.reply') {
794
- state.resolve();
795
- return { handler: channelOpen };
796
- }
797
- state.reject(new UnexpectedChannelMessageError('Unexpected message received'));
798
- return { handler: channelClosed };
799
- }
800
-
801
382
  export function channelClosed(
802
383
  _channel: Channel,
803
384
  message: ChannelMessage,