@aeternity/aepp-sdk 13.0.0-alpha.0 → 13.0.0-beta.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 (481) hide show
  1. package/bin/aesophia_cli +0 -0
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +5595 -2249
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/AeSdk.mjs.map +1 -1
  9. package/es/AeSdkAepp.mjs.map +1 -1
  10. package/es/AeSdkBase.d.ts +3 -3
  11. package/es/AeSdkBase.mjs +4 -0
  12. package/es/AeSdkBase.mjs.map +1 -1
  13. package/es/AeSdkMethods.d.ts +12 -14
  14. package/es/AeSdkMethods.mjs +6 -8
  15. package/es/AeSdkMethods.mjs.map +1 -1
  16. package/es/AeSdkWallet.mjs +1 -1
  17. package/es/AeSdkWallet.mjs.map +1 -1
  18. package/es/Node.d.ts +9 -4
  19. package/es/Node.mjs +12 -6
  20. package/es/Node.mjs.map +1 -1
  21. package/es/account/Base.d.ts +13 -8
  22. package/es/account/Base.mjs +0 -17
  23. package/es/account/Base.mjs.map +1 -1
  24. package/es/account/Generalized.mjs +14 -25
  25. package/es/account/Generalized.mjs.map +1 -1
  26. package/es/account/Ledger.mjs +2 -1
  27. package/es/account/Ledger.mjs.map +1 -1
  28. package/es/account/LedgerFactory.mjs.map +1 -1
  29. package/es/account/Memory.d.ts +2 -1
  30. package/es/account/Memory.mjs +11 -22
  31. package/es/account/Memory.mjs.map +1 -1
  32. package/es/account/Rpc.mjs.map +1 -1
  33. package/es/aens.d.ts +12 -14
  34. package/es/aens.mjs +22 -32
  35. package/es/aens.mjs.map +1 -1
  36. package/es/aepp-wallet-communication/connection/Browser.mjs +0 -16
  37. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  38. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  39. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +19 -20
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  41. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -16
  42. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  43. package/es/aepp-wallet-communication/connection-proxy.mjs +0 -17
  44. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  45. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -6
  46. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  47. package/es/aepp-wallet-communication/rpc/types.d.ts +6 -2
  48. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  49. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  50. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -16
  51. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  52. package/es/apis/compiler/compiler.d.ts +1 -1
  53. package/es/apis/compiler/compiler.mjs +4 -20
  54. package/es/apis/compiler/compiler.mjs.map +1 -1
  55. package/es/apis/compiler/models/index.d.ts +3 -2
  56. package/es/apis/compiler/models/index.mjs.map +1 -1
  57. package/es/apis/compiler/models/mappers.d.ts +1 -1
  58. package/es/apis/compiler/models/mappers.mjs +19 -2
  59. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  60. package/es/apis/node/models/index.d.ts +15 -15
  61. package/es/apis/node/models/index.mjs.map +1 -1
  62. package/es/apis/node/models/mappers.d.ts +1 -1
  63. package/es/apis/node/models/mappers.mjs +2 -1
  64. package/es/apis/node/models/mappers.mjs.map +1 -1
  65. package/es/apis/node/models/parameters.d.ts +2 -2
  66. package/es/apis/node/models/parameters.mjs +2 -2
  67. package/es/apis/node/models/parameters.mjs.map +1 -1
  68. package/es/apis/node/node.mjs +3 -19
  69. package/es/apis/node/node.mjs.map +1 -1
  70. package/es/chain.d.ts +17 -9
  71. package/es/chain.mjs +23 -23
  72. package/es/chain.mjs.map +1 -1
  73. package/es/channel/Base.d.ts +27 -9
  74. package/es/channel/Base.mjs +27 -27
  75. package/es/channel/Base.mjs.map +1 -1
  76. package/es/channel/Contract.d.ts +8 -7
  77. package/es/channel/Contract.mjs +8 -21
  78. package/es/channel/Contract.mjs.map +1 -1
  79. package/es/channel/Spend.d.ts +5 -1
  80. package/es/channel/Spend.mjs +4 -18
  81. package/es/channel/Spend.mjs.map +1 -1
  82. package/es/channel/handlers.mjs +16 -26
  83. package/es/channel/handlers.mjs.map +1 -1
  84. package/es/channel/internal.d.ts +19 -2
  85. package/es/channel/internal.mjs +22 -20
  86. package/es/channel/internal.mjs.map +1 -1
  87. package/es/contract/Contract.d.ts +43 -123
  88. package/es/contract/Contract.mjs +230 -250
  89. package/es/contract/Contract.mjs.map +1 -1
  90. package/es/contract/compiler/Base.d.ts +74 -0
  91. package/es/contract/compiler/Base.mjs +5 -0
  92. package/es/contract/compiler/Base.mjs.map +1 -0
  93. package/es/contract/compiler/Cli.d.ts +23 -0
  94. package/es/contract/compiler/Cli.mjs +149 -0
  95. package/es/contract/compiler/Cli.mjs.map +1 -0
  96. package/es/contract/compiler/Http.d.ts +32 -0
  97. package/es/contract/compiler/Http.mjs +94 -0
  98. package/es/contract/compiler/Http.mjs.map +1 -0
  99. package/es/contract/compiler/HttpNode.d.ts +17 -0
  100. package/es/contract/compiler/HttpNode.mjs +26 -0
  101. package/es/contract/compiler/HttpNode.mjs.map +1 -0
  102. package/es/contract/compiler/getFileSystem.d.ts +6 -0
  103. package/es/contract/compiler/getFileSystem.mjs +40 -0
  104. package/es/contract/compiler/getFileSystem.mjs.map +1 -0
  105. package/es/contract/delegation-signature.d.ts +43 -0
  106. package/es/contract/delegation-signature.mjs +45 -0
  107. package/es/contract/delegation-signature.mjs.map +1 -0
  108. package/es/contract/ga.d.ts +27 -10
  109. package/es/contract/ga.mjs +63 -29
  110. package/es/contract/ga.mjs.map +1 -1
  111. package/es/index-browser.d.ts +40 -0
  112. package/es/index-browser.mjs +41 -0
  113. package/es/index-browser.mjs.map +1 -0
  114. package/es/index.d.ts +4 -38
  115. package/es/index.mjs +4 -53
  116. package/es/index.mjs.map +1 -1
  117. package/es/oracle.d.ts +12 -17
  118. package/es/oracle.mjs +29 -49
  119. package/es/oracle.mjs.map +1 -1
  120. package/es/spend.d.ts +19 -27
  121. package/es/spend.mjs +21 -46
  122. package/es/spend.mjs.map +1 -1
  123. package/es/tx/builder/SchemaTypes.d.ts +37 -0
  124. package/es/tx/builder/SchemaTypes.mjs +2 -0
  125. package/es/tx/builder/SchemaTypes.mjs.map +1 -0
  126. package/es/tx/builder/constants.d.ts +31 -2
  127. package/es/tx/builder/constants.mjs +34 -3
  128. package/es/tx/builder/constants.mjs.map +1 -1
  129. package/es/tx/builder/field-types/abi-version.d.ts +19 -0
  130. package/es/tx/builder/field-types/abi-version.mjs +40 -0
  131. package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
  132. package/es/tx/builder/field-types/address.d.ts +5 -6
  133. package/es/tx/builder/field-types/address.mjs +17 -8
  134. package/es/tx/builder/field-types/address.mjs.map +1 -1
  135. package/es/tx/builder/field-types/array.d.ts +7 -0
  136. package/es/tx/builder/field-types/array.mjs +11 -0
  137. package/es/tx/builder/field-types/array.mjs.map +1 -0
  138. package/es/tx/builder/field-types/boolean.d.ts +6 -0
  139. package/es/tx/builder/field-types/boolean.mjs +13 -0
  140. package/es/tx/builder/field-types/boolean.mjs.map +1 -0
  141. package/es/tx/builder/field-types/coin-amount.d.ts +4 -5
  142. package/es/tx/builder/field-types/coin-amount.mjs +4 -5
  143. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  144. package/es/tx/builder/field-types/ct-version.d.ts +49 -0
  145. package/es/tx/builder/field-types/ct-version.mjs +76 -0
  146. package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
  147. package/es/tx/builder/field-types/deposit.d.ts +3 -2
  148. package/es/tx/builder/field-types/deposit.mjs +3 -2
  149. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  150. package/es/tx/builder/field-types/encoded.d.ts +6 -0
  151. package/es/tx/builder/field-types/encoded.mjs +21 -0
  152. package/es/tx/builder/field-types/encoded.mjs.map +1 -0
  153. package/es/tx/builder/field-types/entry.d.ts +11 -0
  154. package/es/tx/builder/field-types/entry.mjs +34 -0
  155. package/es/tx/builder/field-types/entry.mjs.map +1 -0
  156. package/es/tx/builder/field-types/enumeration.d.ts +5 -3
  157. package/es/tx/builder/field-types/enumeration.mjs +11 -2
  158. package/es/tx/builder/field-types/enumeration.mjs.map +1 -1
  159. package/es/tx/builder/field-types/fee.d.ts +12 -7
  160. package/es/tx/builder/field-types/fee.mjs +28 -20
  161. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  162. package/es/tx/builder/field-types/field.mjs.map +1 -1
  163. package/es/tx/builder/field-types/gas-limit.d.ts +7 -3
  164. package/es/tx/builder/field-types/gas-limit.mjs +13 -8
  165. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  166. package/es/tx/builder/field-types/gas-price.d.ts +3 -1
  167. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  168. package/es/tx/builder/field-types/index.d.ts +107 -30
  169. package/es/tx/builder/field-types/index.mjs +38 -12
  170. package/es/tx/builder/field-types/index.mjs.map +1 -1
  171. package/es/tx/builder/field-types/map.d.ts +13 -0
  172. package/es/tx/builder/field-types/map.mjs +49 -0
  173. package/es/tx/builder/field-types/map.mjs.map +1 -0
  174. package/es/tx/builder/field-types/mptree.d.ts +42 -0
  175. package/es/tx/builder/field-types/mptree.mjs +266 -0
  176. package/es/tx/builder/field-types/mptree.mjs.map +1 -0
  177. package/es/tx/builder/field-types/name-fee.d.ts +2 -3
  178. package/es/tx/builder/field-types/name-fee.mjs +2 -2
  179. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  180. package/es/tx/builder/field-types/name-id.mjs +2 -1
  181. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  182. package/es/tx/builder/field-types/name.mjs.map +1 -1
  183. package/es/tx/builder/field-types/nonce.d.ts +14 -0
  184. package/es/tx/builder/field-types/nonce.mjs +29 -0
  185. package/es/tx/builder/field-types/nonce.mjs.map +1 -0
  186. package/es/tx/builder/field-types/pointers.mjs +2 -2
  187. package/es/tx/builder/field-types/pointers.mjs.map +1 -1
  188. package/es/tx/builder/field-types/raw.d.ts +6 -0
  189. package/es/tx/builder/field-types/raw.mjs +13 -0
  190. package/es/tx/builder/field-types/raw.mjs.map +1 -0
  191. package/es/tx/builder/field-types/short-u-int-const.d.ts +7 -0
  192. package/es/tx/builder/field-types/short-u-int-const.mjs +20 -0
  193. package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -0
  194. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  195. package/es/tx/builder/field-types/string.d.ts +6 -0
  196. package/es/tx/builder/field-types/string.mjs +10 -0
  197. package/es/tx/builder/field-types/string.mjs.map +1 -0
  198. package/es/tx/builder/field-types/ttl.d.ts +11 -0
  199. package/es/tx/builder/field-types/ttl.mjs +21 -0
  200. package/es/tx/builder/field-types/ttl.mjs.map +1 -0
  201. package/es/tx/builder/field-types/u-int.d.ts +1 -2
  202. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  203. package/es/tx/builder/field-types/wrapped.d.ts +14 -0
  204. package/es/tx/builder/field-types/wrapped.mjs +22 -0
  205. package/es/tx/builder/field-types/wrapped.mjs.map +1 -0
  206. package/es/tx/builder/helpers.mjs.map +1 -1
  207. package/es/tx/builder/index.d.ts +18 -36
  208. package/es/tx/builder/index.mjs +65 -236
  209. package/es/tx/builder/index.mjs.map +1 -1
  210. package/es/tx/builder/schema.d.ts +2734 -1324
  211. package/es/tx/builder/schema.generated.d.ts +2011 -0
  212. package/es/tx/builder/schema.generated.mjs +2 -0
  213. package/es/tx/builder/schema.generated.mjs.map +1 -0
  214. package/es/tx/builder/schema.mjs +459 -223
  215. package/es/tx/builder/schema.mjs.map +1 -1
  216. package/es/tx/execution-cost.d.ts +35 -0
  217. package/es/tx/execution-cost.mjs +123 -0
  218. package/es/tx/execution-cost.mjs.map +1 -0
  219. package/es/tx/transaction-signer.d.ts +6 -0
  220. package/es/tx/transaction-signer.mjs +27 -0
  221. package/es/tx/transaction-signer.mjs.map +1 -0
  222. package/es/tx/validator.d.ts +3 -5
  223. package/es/tx/validator.mjs +91 -153
  224. package/es/tx/validator.mjs.map +1 -1
  225. package/es/utils/amount-formatter.mjs +0 -16
  226. package/es/utils/amount-formatter.mjs.map +1 -1
  227. package/es/utils/autorest.d.ts +3 -2
  228. package/es/utils/autorest.mjs +43 -11
  229. package/es/utils/autorest.mjs.map +1 -1
  230. package/es/utils/bytes.mjs +1 -17
  231. package/es/utils/bytes.mjs.map +1 -1
  232. package/es/utils/crypto.mjs +0 -16
  233. package/es/utils/crypto.mjs.map +1 -1
  234. package/es/utils/encoder.mjs.map +1 -1
  235. package/es/utils/errors.d.ts +16 -38
  236. package/es/utils/errors.mjs +3 -43
  237. package/es/utils/errors.mjs.map +1 -1
  238. package/es/utils/hd-wallet.mjs.map +1 -1
  239. package/es/utils/json-big.mjs.map +1 -1
  240. package/es/utils/keystore.mjs.map +1 -1
  241. package/es/utils/other.mjs.map +1 -1
  242. package/es/utils/semver-satisfies.mjs.map +1 -1
  243. package/es/utils/string.mjs +0 -17
  244. package/es/utils/string.mjs.map +1 -1
  245. package/package.json +52 -40
  246. package/src/AeSdkBase.ts +6 -3
  247. package/src/AeSdkMethods.ts +12 -18
  248. package/src/AeSdkWallet.ts +1 -1
  249. package/src/Node.ts +23 -9
  250. package/src/account/Base.ts +13 -24
  251. package/src/account/Generalized.ts +9 -24
  252. package/src/account/Ledger.ts +1 -1
  253. package/src/account/Memory.ts +15 -22
  254. package/src/aens.ts +34 -49
  255. package/src/aepp-wallet-communication/connection/Browser.ts +0 -17
  256. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +18 -24
  257. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +0 -17
  258. package/src/aepp-wallet-communication/connection-proxy.ts +0 -17
  259. package/src/aepp-wallet-communication/rpc/RpcClient.ts +2 -2
  260. package/src/aepp-wallet-communication/rpc/types.ts +6 -2
  261. package/src/aepp-wallet-communication/wallet-detector.ts +0 -17
  262. package/src/apis/compiler/compiler.ts +3 -27
  263. package/src/apis/compiler/models/index.ts +3 -2
  264. package/src/apis/compiler/models/mappers.ts +15 -2
  265. package/src/apis/node/models/index.ts +16 -15
  266. package/src/apis/node/models/mappers.ts +2 -1
  267. package/src/apis/node/models/parameters.ts +2 -2
  268. package/src/apis/node/node.ts +3 -27
  269. package/src/chain.ts +33 -30
  270. package/src/channel/Base.ts +39 -31
  271. package/src/channel/Contract.ts +18 -32
  272. package/src/channel/Spend.ts +8 -18
  273. package/src/channel/handlers.ts +14 -26
  274. package/src/channel/internal.ts +41 -23
  275. package/src/contract/Contract.ts +188 -228
  276. package/src/contract/compiler/Base.ts +87 -0
  277. package/src/contract/compiler/Cli.ts +128 -0
  278. package/src/contract/compiler/Http.ts +105 -0
  279. package/src/contract/compiler/HttpNode.ts +26 -0
  280. package/src/contract/compiler/getFileSystem.ts +42 -0
  281. package/src/contract/delegation-signature.ts +56 -0
  282. package/src/contract/ga.ts +61 -37
  283. package/src/index-browser.ts +50 -0
  284. package/src/index.ts +4 -56
  285. package/src/oracle.ts +47 -57
  286. package/src/spend.ts +34 -68
  287. package/src/tx/builder/SchemaTypes.ts +79 -0
  288. package/src/tx/builder/constants.ts +34 -3
  289. package/src/tx/builder/field-types/abi-version.ts +44 -0
  290. package/src/tx/builder/field-types/address.ts +23 -13
  291. package/src/tx/builder/field-types/array.ts +19 -0
  292. package/src/tx/builder/field-types/boolean.ts +9 -0
  293. package/src/tx/builder/field-types/coin-amount.ts +8 -5
  294. package/src/tx/builder/field-types/ct-version.ts +83 -0
  295. package/src/tx/builder/field-types/deposit.ts +4 -2
  296. package/src/tx/builder/field-types/encoded.ts +27 -0
  297. package/src/tx/builder/field-types/entry.ts +36 -0
  298. package/src/tx/builder/field-types/enumeration.ts +15 -4
  299. package/src/tx/builder/field-types/fee.ts +41 -19
  300. package/src/tx/builder/field-types/gas-limit.ts +13 -8
  301. package/src/tx/builder/field-types/index.ts +60 -17
  302. package/src/tx/builder/field-types/map.ts +45 -0
  303. package/src/tx/builder/field-types/mptree.ts +243 -0
  304. package/src/tx/builder/field-types/name-fee.ts +3 -3
  305. package/src/tx/builder/field-types/name-id.ts +1 -1
  306. package/src/tx/builder/field-types/nonce.ts +40 -0
  307. package/src/tx/builder/field-types/pointers.ts +2 -2
  308. package/src/tx/builder/field-types/raw.ts +9 -0
  309. package/src/tx/builder/field-types/short-u-int-const.ts +30 -0
  310. package/src/tx/builder/field-types/string.ts +11 -0
  311. package/src/tx/builder/field-types/ttl.ts +24 -0
  312. package/src/tx/builder/field-types/u-int.ts +1 -3
  313. package/src/tx/builder/field-types/wrapped.ts +32 -0
  314. package/src/tx/builder/index.ts +82 -280
  315. package/src/tx/builder/schema.generated.ts +2013 -0
  316. package/src/tx/builder/schema.ts +536 -666
  317. package/src/tx/execution-cost.ts +146 -0
  318. package/src/tx/transaction-signer.ts +27 -0
  319. package/src/tx/validator.ts +100 -154
  320. package/src/utils/amount-formatter.ts +0 -16
  321. package/src/utils/autorest.ts +52 -11
  322. package/src/utils/bytes.ts +1 -17
  323. package/src/utils/crypto.ts +0 -16
  324. package/src/utils/errors.ts +18 -56
  325. package/src/utils/string.ts +0 -17
  326. package/types-legacy/ts4.2/AeSdkBase.d.ts +3 -3
  327. package/types-legacy/ts4.2/AeSdkMethods.d.ts +12 -14
  328. package/types-legacy/ts4.2/Node.d.ts +8 -4
  329. package/types-legacy/ts4.2/account/Base.d.ts +13 -8
  330. package/types-legacy/ts4.2/account/Memory.d.ts +2 -1
  331. package/types-legacy/ts4.2/aens.d.ts +12 -14
  332. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  333. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +6 -2
  334. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +1 -1
  335. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +3 -2
  336. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +1 -1
  337. package/types-legacy/ts4.2/apis/node/models/index.d.ts +15 -15
  338. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +1 -1
  339. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +2 -2
  340. package/types-legacy/ts4.2/chain.d.ts +17 -9
  341. package/types-legacy/ts4.2/channel/Base.d.ts +27 -9
  342. package/types-legacy/ts4.2/channel/Contract.d.ts +8 -7
  343. package/types-legacy/ts4.2/channel/Spend.d.ts +5 -1
  344. package/types-legacy/ts4.2/channel/internal.d.ts +22 -2
  345. package/types-legacy/ts4.2/contract/Contract.d.ts +42 -122
  346. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +74 -0
  347. package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +23 -0
  348. package/types-legacy/ts4.2/contract/compiler/Http.d.ts +32 -0
  349. package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +17 -0
  350. package/types-legacy/ts4.2/contract/compiler/getFileSystem.d.ts +6 -0
  351. package/types-legacy/ts4.2/contract/delegation-signature.d.ts +43 -0
  352. package/types-legacy/ts4.2/contract/ga.d.ts +27 -10
  353. package/types-legacy/ts4.2/index-browser.d.ts +40 -0
  354. package/types-legacy/ts4.2/index.d.ts +4 -38
  355. package/types-legacy/ts4.2/oracle.d.ts +12 -17
  356. package/types-legacy/ts4.2/spend.d.ts +19 -27
  357. package/types-legacy/ts4.2/tx/builder/SchemaTypes.d.ts +37 -0
  358. package/types-legacy/ts4.2/tx/builder/constants.d.ts +31 -2
  359. package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +19 -0
  360. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +11 -12
  361. package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +7 -0
  362. package/types-legacy/ts4.2/tx/builder/field-types/boolean.d.ts +6 -0
  363. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +4 -5
  364. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +72 -0
  365. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +3 -2
  366. package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +6 -0
  367. package/types-legacy/ts4.2/tx/builder/field-types/entry.d.ts +11 -0
  368. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +5 -3
  369. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +12 -7
  370. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +7 -3
  371. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +3 -1
  372. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +113 -30
  373. package/types-legacy/ts4.2/tx/builder/field-types/map.d.ts +13 -0
  374. package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +48 -0
  375. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +2 -3
  376. package/types-legacy/ts4.2/tx/builder/field-types/nonce.d.ts +14 -0
  377. package/types-legacy/ts4.2/tx/builder/field-types/raw.d.ts +6 -0
  378. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +7 -0
  379. package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
  380. package/types-legacy/ts4.2/tx/builder/field-types/ttl.d.ts +11 -0
  381. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +1 -2
  382. package/types-legacy/ts4.2/tx/builder/field-types/wrapped.d.ts +14 -0
  383. package/types-legacy/ts4.2/tx/builder/index.d.ts +21 -36
  384. package/types-legacy/ts4.2/tx/builder/schema.d.ts +2971 -2926
  385. package/types-legacy/ts4.2/tx/builder/schema.generated.d.ts +2011 -0
  386. package/types-legacy/ts4.2/tx/execution-cost.d.ts +35 -0
  387. package/types-legacy/ts4.2/tx/transaction-signer.d.ts +6 -0
  388. package/types-legacy/ts4.2/tx/validator.d.ts +3 -5
  389. package/types-legacy/ts4.2/utils/autorest.d.ts +3 -2
  390. package/types-legacy/ts4.2/utils/errors.d.ts +16 -38
  391. package/types-legacy/ts4.5/AeSdkBase.d.ts +3 -3
  392. package/types-legacy/ts4.5/AeSdkMethods.d.ts +12 -14
  393. package/types-legacy/ts4.5/Node.d.ts +8 -4
  394. package/types-legacy/ts4.5/account/Base.d.ts +13 -8
  395. package/types-legacy/ts4.5/account/Memory.d.ts +2 -1
  396. package/types-legacy/ts4.5/aens.d.ts +12 -14
  397. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  398. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +6 -2
  399. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +1 -1
  400. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +3 -2
  401. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +1 -1
  402. package/types-legacy/ts4.5/apis/node/models/index.d.ts +15 -15
  403. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +1 -1
  404. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +2 -2
  405. package/types-legacy/ts4.5/chain.d.ts +17 -9
  406. package/types-legacy/ts4.5/channel/Base.d.ts +27 -9
  407. package/types-legacy/ts4.5/channel/Contract.d.ts +8 -7
  408. package/types-legacy/ts4.5/channel/Spend.d.ts +5 -1
  409. package/types-legacy/ts4.5/channel/internal.d.ts +22 -2
  410. package/types-legacy/ts4.5/contract/Contract.d.ts +42 -122
  411. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +74 -0
  412. package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +23 -0
  413. package/types-legacy/ts4.5/contract/compiler/Http.d.ts +32 -0
  414. package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +17 -0
  415. package/types-legacy/ts4.5/contract/compiler/getFileSystem.d.ts +6 -0
  416. package/types-legacy/ts4.5/contract/delegation-signature.d.ts +43 -0
  417. package/types-legacy/ts4.5/contract/ga.d.ts +27 -10
  418. package/types-legacy/ts4.5/index-browser.d.ts +40 -0
  419. package/types-legacy/ts4.5/index.d.ts +4 -38
  420. package/types-legacy/ts4.5/oracle.d.ts +12 -17
  421. package/types-legacy/ts4.5/spend.d.ts +19 -27
  422. package/types-legacy/ts4.5/tx/builder/SchemaTypes.d.ts +37 -0
  423. package/types-legacy/ts4.5/tx/builder/constants.d.ts +31 -2
  424. package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +19 -0
  425. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +11 -12
  426. package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +7 -0
  427. package/types-legacy/ts4.5/tx/builder/field-types/boolean.d.ts +6 -0
  428. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +4 -5
  429. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +72 -0
  430. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +3 -2
  431. package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +6 -0
  432. package/types-legacy/ts4.5/tx/builder/field-types/entry.d.ts +11 -0
  433. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +5 -3
  434. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +12 -7
  435. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +7 -3
  436. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +3 -1
  437. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +113 -30
  438. package/types-legacy/ts4.5/tx/builder/field-types/map.d.ts +13 -0
  439. package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +48 -0
  440. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +2 -3
  441. package/types-legacy/ts4.5/tx/builder/field-types/nonce.d.ts +14 -0
  442. package/types-legacy/ts4.5/tx/builder/field-types/raw.d.ts +6 -0
  443. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +7 -0
  444. package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
  445. package/types-legacy/ts4.5/tx/builder/field-types/ttl.d.ts +11 -0
  446. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +1 -2
  447. package/types-legacy/ts4.5/tx/builder/field-types/wrapped.d.ts +14 -0
  448. package/types-legacy/ts4.5/tx/builder/index.d.ts +21 -36
  449. package/types-legacy/ts4.5/tx/builder/schema.d.ts +2971 -2926
  450. package/types-legacy/ts4.5/tx/builder/schema.generated.d.ts +2011 -0
  451. package/types-legacy/ts4.5/tx/execution-cost.d.ts +35 -0
  452. package/types-legacy/ts4.5/tx/transaction-signer.d.ts +6 -0
  453. package/types-legacy/ts4.5/tx/validator.d.ts +3 -5
  454. package/types-legacy/ts4.5/utils/autorest.d.ts +3 -2
  455. package/types-legacy/ts4.5/utils/errors.d.ts +16 -38
  456. package/es/contract/CompilerHttp.d.ts +0 -18
  457. package/es/contract/CompilerHttp.mjs +0 -63
  458. package/es/contract/CompilerHttp.mjs.map +0 -1
  459. package/es/tx/builder/field-types/addresses.d.ts +0 -6
  460. package/es/tx/builder/field-types/addresses.mjs +0 -13
  461. package/es/tx/builder/field-types/addresses.mjs.map +0 -1
  462. package/es/tx/index.d.ts +0 -34
  463. package/es/tx/index.mjs +0 -172
  464. package/es/tx/index.mjs.map +0 -1
  465. package/es/utils/mptree.d.ts +0 -26
  466. package/es/utils/mptree.mjs +0 -143
  467. package/es/utils/mptree.mjs.map +0 -1
  468. package/src/apis/compiler/code-model-v4.yaml +0 -2442
  469. package/src/apis/node/code-model-v4.yaml +0 -10080
  470. package/src/contract/CompilerHttp.ts +0 -67
  471. package/src/tx/builder/field-types/addresses.ts +0 -18
  472. package/src/tx/index.ts +0 -196
  473. package/src/utils/mptree.ts +0 -145
  474. package/types-legacy/ts4.2/contract/CompilerHttp.d.ts +0 -18
  475. package/types-legacy/ts4.2/tx/builder/field-types/addresses.d.ts +0 -6
  476. package/types-legacy/ts4.2/tx/index.d.ts +0 -34
  477. package/types-legacy/ts4.2/utils/mptree.d.ts +0 -32
  478. package/types-legacy/ts4.5/contract/CompilerHttp.d.ts +0 -18
  479. package/types-legacy/ts4.5/tx/builder/field-types/addresses.d.ts +0 -6
  480. package/types-legacy/ts4.5/tx/index.d.ts +0 -34
  481. package/types-legacy/ts4.5/utils/mptree.d.ts +0 -32
@@ -1 +1 @@
1
- {"version":3,"file":"internal.mjs","names":["JsonBig","pascalToSnake","ChannelCallError","ChannelPingTimedOutError","UnexpectedTsError","UnknownChannelStateError","ChannelIncomingMessageError","ChannelError","PING_TIMEOUT_MS","PONG_TIMEOUT_MS","emit","channel","args","eventName","rest","_eventEmitter","enterState","nextState","_fsm","handler","enter","dequeueAction","changeStatus","newStatus","_status","changeState","newState","_state","send","message","_options","debug","console","log","_websocket","stringify","jsonrpc","notify","method","params","_isActionQueueLocked","queue","_actionQueue","length","index","findIndex","action","guard","filter","_","i","enqueueAction","promise","Promise","resolve","reject","push","res","state","handleMessage","st","dequeueMessage","_isMessageQueueLocked","_messageQueue","shift","error","disconnect","close","clearTimeout","_pingTimeoutId","ping","setTimeout","onMessage","data","parse","id","callback","_rpcCallbacks","get","delete","channel_id","_channelId","call","_nextRpcMessageId","set","details","result","initialize","connectionHandler","openHandler","url","channelOptions","wsUrl","URL","Object","entries","key","includes","forEach","value","searchParams","toString","W3CWebSocket","assign","onerror","onopen","reconnectTx","signedTx","signed_tx","onclose","onmessage"],"sources":["../../src/channel/internal.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\nimport { w3cwebsocket as W3CWebSocket } from 'websocket';\nimport BigNumber from 'bignumber.js';\nimport type Channel from './Base';\nimport JsonBig from '../utils/json-big';\nimport { pascalToSnake } from '../utils/string';\nimport { Encoded } from '../utils/encoder';\nimport {\n BaseError,\n ChannelCallError,\n ChannelPingTimedOutError,\n UnexpectedTsError,\n UnknownChannelStateError,\n ChannelIncomingMessageError,\n ChannelError,\n} from '../utils/errors';\n\nexport interface ChannelAction {\n guard: (channel: Channel, state?: ChannelFsm) => boolean;\n action: (channel: Channel, state?: ChannelFsm) => ChannelFsm;\n}\n\ninterface SignOptions {\n updates?: any[];\n [k: string]: any;\n}\nexport type SignTxWithTag = (tag: string, tx: Encoded.Transaction, options?: SignOptions) => (\n Promise<Encoded.Transaction>\n);\n// TODO: SignTx shouldn't return number or null\nexport type SignTx = (tx: Encoded.Transaction, options?: SignOptions) => (\n Promise<Encoded.Transaction | number | null>\n);\n\nexport interface ChannelOptions {\n existingFsmId?: Encoded.Bytearray;\n url: string;\n\n /**\n * @see {@link https://github.com/aeternity/protocol/blob/6734de2e4c7cce7e5e626caa8305fb535785131d/node/api/channels_api_usage.md#channel-establishing-parameters}\n */\n initiatorId: Encoded.AccountAddress;\n responderId: Encoded.AccountAddress;\n lockPeriod: number;\n pushAmount: number;\n initiatorAmount: BigNumber;\n responderAmount: BigNumber;\n channelReserve?: BigNumber | number;\n ttl?: number;\n host: string;\n port: number;\n role: 'initiator' | 'responder';\n minimumDepthStrategy?: 'txfee' | 'plain';\n minimumDepth?: number;\n fee?: BigNumber | number;\n gasPrice?: BigNumber | number;\n\n signedTx?: string;\n existingChannelId?: string;\n offChainTx?: string;\n reconnectTx?: string;\n timeoutIdle?: number;\n timeoutFundingCreate?: number;\n timeoutFundingSign?: number;\n timeoutFundingLock?: number;\n timeoutSign?: number;\n timeoutAccept?: number;\n timeoutInitialized?: number;\n timeoutAwaitingOpen?: number;\n statePassword?: string;\n debug: boolean;\n sign: SignTxWithTag;\n offchainTx?: string;\n}\n\nexport interface ChannelHandler extends Function {\n enter?: Function;\n}\n\nexport interface ChannelState {\n signedTx: Encoded.Transaction;\n resolve: (r?: any) => void;\n reject: (e: BaseError) => void;\n sign: SignTx;\n handler?: ChannelHandler;\n onOnChainTx?: (tx: Encoded.Transaction) => void;\n onOwnWithdrawLocked?: () => void;\n onWithdrawLocked?: () => void;\n onOwnDepositLocked?: () => void;\n onDepositLocked?: () => void;\n closeTx?: string;\n}\n\nexport interface ChannelFsm {\n handler: ChannelHandler;\n state?: ChannelState | {\n resolve: Function;\n reject: Function;\n };\n}\n\nexport interface ChannelMessage {\n id?: number;\n method: string;\n params: any;\n payload?: any;\n data?: any;\n error?: ChannelMessageError;\n}\n\ninterface ChannelMessageError {\n code: number;\n message: string;\n data: [{\n message: string;\n code: number;\n }];\n request: ChannelMessage;\n}\n\n// Send ping message every 10 seconds\nconst PING_TIMEOUT_MS = 10000;\n// Close connection if pong message is not received within 15 seconds\nconst PONG_TIMEOUT_MS = 15000;\n\nexport function emit(channel: Channel, ...args: any[]): void {\n const [eventName, ...rest] = args;\n channel._eventEmitter.emit(eventName, ...rest);\n}\n\nfunction enterState(channel: Channel, nextState: ChannelFsm): void {\n if (nextState == null) {\n throw new UnknownChannelStateError();\n }\n channel._fsm = nextState;\n if (nextState?.handler?.enter != null) {\n nextState.handler.enter(channel);\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n void dequeueAction(channel);\n}\n\n// TODO: rewrite to enum\nexport type ChannelStatus = 'connecting' | 'connected' | 'accepted' | 'halfSigned' | 'signed'\n| 'open' | 'closing' | 'closed' | 'died' | 'disconnected';\n\nexport function changeStatus(channel: Channel, newStatus: ChannelStatus): void {\n if (newStatus === channel._status) return;\n channel._status = newStatus;\n emit(channel, 'statusChanged', newStatus);\n}\n\nexport function changeState(channel: Channel, newState: Encoded.Transaction): void {\n channel._state = newState;\n emit(channel, 'stateChanged', newState);\n}\n\nfunction send(channel: Channel, message: ChannelMessage): void {\n if (channel._options.debug) console.log('Send message: ', message);\n channel._websocket.send(JsonBig.stringify({ jsonrpc: '2.0', ...message }));\n}\n\nexport function notify(channel: Channel, method: string, params: object = {}): void {\n send(channel, { method, params });\n}\n\nasync function dequeueAction(channel: Channel): Promise<void> {\n if (channel._isActionQueueLocked) return;\n const queue = channel._actionQueue;\n if (queue.length === 0) return;\n const index = queue.findIndex((action) => action.guard(channel, channel._fsm));\n if (index === -1) return;\n channel._actionQueue = queue.filter((_, i) => index !== i);\n channel._isActionQueueLocked = true;\n const nextState: ChannelFsm = await queue[index].action(channel, channel._fsm);\n channel._isActionQueueLocked = false;\n enterState(channel, nextState);\n}\n\nexport async function enqueueAction(\n channel: Channel,\n guard: ChannelAction['guard'],\n action: () => { handler: ChannelHandler; state?: Partial<ChannelState> },\n): Promise<any> {\n const promise = new Promise((resolve, reject) => {\n channel._actionQueue.push({\n guard,\n action() {\n const res = action();\n return { ...res, state: { ...res.state, resolve, reject } };\n },\n });\n });\n void dequeueAction(channel);\n return promise;\n}\n\nasync function handleMessage(channel: Channel, message: object): Promise<void> {\n const { handler, state: st } = channel._fsm;\n enterState(channel, await Promise.resolve(handler(channel, message, st)));\n}\n\nasync function dequeueMessage(channel: Channel): Promise<void> {\n if (channel._isMessageQueueLocked) return;\n channel._isMessageQueueLocked = true;\n while (channel._messageQueue.length > 0) {\n const message = channel._messageQueue.shift();\n if (message == null) throw new UnexpectedTsError();\n try {\n await handleMessage(channel, message);\n } catch (error) {\n emit(channel, 'error', new ChannelIncomingMessageError(error, message));\n }\n }\n channel._isMessageQueueLocked = false;\n}\n\nexport function disconnect(channel: Channel): void {\n channel._websocket.close();\n clearTimeout(channel._pingTimeoutId);\n}\n\nfunction ping(channel: Channel): void {\n clearTimeout(channel._pingTimeoutId);\n channel._pingTimeoutId = setTimeout(() => {\n notify(channel, 'channels.system', { action: 'ping' });\n channel._pingTimeoutId = setTimeout(() => {\n disconnect(channel);\n emit(channel, 'error', new ChannelPingTimedOutError());\n }, PONG_TIMEOUT_MS);\n }, PING_TIMEOUT_MS);\n}\n\nfunction onMessage(channel: Channel, data: string): void {\n const message = JsonBig.parse(data);\n if (channel._options.debug) console.log('Receive message: ', message);\n if (message.id != null) {\n const callback = channel._rpcCallbacks.get(message.id);\n if (callback == null) {\n emit(channel, 'error', new ChannelError(`Can't find callback by id: ${message.id}`));\n return;\n }\n try {\n callback(message);\n } finally {\n channel._rpcCallbacks.delete(message.id);\n }\n return;\n }\n if (message.method === 'channels.message') {\n emit(channel, 'message', message.params.data.message);\n return;\n }\n if (message.method === 'channels.system.pong') {\n if (message.params.channel_id === channel._channelId || channel._channelId == null) {\n ping(channel);\n }\n return;\n }\n channel._messageQueue.push(message);\n void dequeueMessage(channel);\n}\n\nexport async function call(channel: Channel, method: string, params: any): Promise<any> {\n return new Promise((resolve, reject) => {\n const id = channel._nextRpcMessageId;\n channel._nextRpcMessageId += 1;\n channel._rpcCallbacks.set(id, (\n message: { result: PromiseLike<any>; error?: ChannelMessageError },\n ) => {\n if (message.error != null) {\n const details = message.error.data[0].message ?? '';\n reject(new ChannelCallError(message.error.message + details));\n } else resolve(message.result);\n });\n send(channel, { method, id, params });\n });\n}\n\nexport async function initialize(\n channel: Channel,\n connectionHandler: Function,\n openHandler: Function,\n { url, ...channelOptions }: ChannelOptions,\n): Promise<void> {\n channel._options = { url, ...channelOptions };\n channel._fsm = { handler: connectionHandler };\n\n const wsUrl = new URL(url);\n Object.entries(channelOptions)\n .filter(([key]) => !['sign', 'debug'].includes(key))\n .forEach(([key, value]) => wsUrl.searchParams.set(pascalToSnake(key), value.toString()));\n wsUrl.searchParams.set('protocol', 'json-rpc');\n changeStatus(channel, 'connecting');\n channel._websocket = new W3CWebSocket(wsUrl.toString());\n await new Promise<void>((resolve, reject) => {\n Object.assign(channel._websocket, {\n onerror: reject,\n onopen: async () => {\n resolve();\n changeStatus(channel, 'connected');\n if (channelOptions.reconnectTx != null) {\n enterState(channel, { handler: openHandler });\n const signedTx = (await call(channel, 'channels.get.offchain_state', {})).signed_tx;\n changeState(channel, signedTx);\n }\n ping(channel);\n },\n onclose: () => {\n changeStatus(channel, 'disconnected');\n clearTimeout(channel._pingTimeoutId);\n },\n onmessage: ({ data }: { data: string }) => onMessage(channel, data),\n });\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"internal.mjs","names":["_websocket","w3cwebsocket","W3CWebSocket","JsonBig","pascalToSnake","ChannelCallError","ChannelPingTimedOutError","UnexpectedTsError","UnknownChannelStateError","ChannelIncomingMessageError","ChannelError","encodeContractAddress","buildTx","PING_TIMEOUT_MS","PONG_TIMEOUT_MS","emit","channel","_len","arguments","length","args","Array","_key","eventName","rest","_eventEmitter","enterState","nextState","_nextState$handler","_fsm","handler","enter","dequeueAction","changeStatus","newStatus","_status","changeState","newState","_state","send","message","_options","debug","console","log","stringify","jsonrpc","notify","method","params","undefined","_isActionQueueLocked","queue","_actionQueue","index","findIndex","action","guard","filter","_","i","enqueueAction","promise","Promise","resolve","reject","push","res","state","handleMessage","_message$params","_message$params$data","_message$params$data$","_message$params$data$2","st","data","updates","op","name","_message$params2","_message$params2$data","_message$params2$data2","_message$params2$data3","round","owner","dequeueMessage","_isMessageQueueLocked","_messageQueue","shift","error","disconnect","close","clearTimeout","_pingTimeoutId","ping","setTimeout","onMessage","parse","id","callback","_rpcCallbacks","get","delete","channel_id","_channelId","call","_nextRpcMessageId","set","_message$error$data$","details","result","initialize","connectionHandler","openHandler","_ref","url","channelOptions","wsUrl","URL","Object","entries","_ref2","key","includes","forEach","_ref3","value","searchParams","toString","assign","onerror","onopen","reconnectTx","signedTx","onclose","onmessage","_ref4"],"sources":["../../src/channel/internal.ts"],"sourcesContent":["import { w3cwebsocket as W3CWebSocket } from 'websocket';\nimport BigNumber from 'bignumber.js';\nimport type Channel from './Base';\nimport JsonBig from '../utils/json-big';\nimport { pascalToSnake } from '../utils/string';\nimport { Encoded } from '../utils/encoder';\nimport {\n BaseError,\n ChannelCallError,\n ChannelPingTimedOutError,\n UnexpectedTsError,\n UnknownChannelStateError,\n ChannelIncomingMessageError,\n ChannelError,\n} from '../utils/errors';\nimport { encodeContractAddress } from '../utils/crypto';\nimport { buildTx } from '../tx/builder';\n\nexport interface ChannelEvents {\n statusChanged: (status: ChannelStatus) => void;\n stateChanged: (tx: Encoded.Transaction | '') => void;\n depositLocked: () => void;\n ownDepositLocked: () => void;\n withdrawLocked: () => void;\n ownWithdrawLocked: () => void;\n peerDisconnected: () => void;\n channelReestablished: () => void;\n error: (error: Error) => void;\n onChainTx: (tx: Encoded.Transaction, details: { info: string; type: string }) => void;\n message: (message: string | Object) => void;\n newContract: (contractAddress: Encoded.ContractAddress) => void;\n}\n\nexport interface ChannelAction {\n guard: (channel: Channel, state?: ChannelFsm) => boolean;\n action: (channel: Channel, state?: ChannelFsm) => ChannelFsm;\n}\n\ninterface SignOptions {\n updates?: any[];\n [k: string]: any;\n}\nexport type SignTxWithTag = (tag: string, tx: Encoded.Transaction, options?: SignOptions) => (\n Promise<Encoded.Transaction>\n);\n// TODO: SignTx shouldn't return number or null\nexport type SignTx = (tx: Encoded.Transaction, options?: SignOptions) => (\n Promise<Encoded.Transaction | number | null>\n);\n\nexport interface ChannelOptions {\n existingFsmId?: Encoded.Bytearray;\n url: string;\n\n /**\n * @see {@link https://github.com/aeternity/protocol/blob/6734de2e4c7cce7e5e626caa8305fb535785131d/node/api/channels_api_usage.md#channel-establishing-parameters}\n */\n initiatorId: Encoded.AccountAddress;\n responderId: Encoded.AccountAddress;\n lockPeriod: number;\n pushAmount: number;\n initiatorAmount: BigNumber;\n responderAmount: BigNumber;\n channelReserve?: BigNumber | number;\n ttl?: number;\n host: string;\n port: number;\n role: 'initiator' | 'responder';\n minimumDepthStrategy?: 'txfee' | 'plain';\n minimumDepth?: number;\n fee?: BigNumber | number;\n gasPrice?: BigNumber | number;\n\n signedTx?: string;\n existingChannelId?: string;\n offChainTx?: string;\n reconnectTx?: string;\n timeoutIdle?: number;\n timeoutFundingCreate?: number;\n timeoutFundingSign?: number;\n timeoutFundingLock?: number;\n timeoutSign?: number;\n timeoutAccept?: number;\n timeoutInitialized?: number;\n timeoutAwaitingOpen?: number;\n statePassword?: string;\n debug: boolean;\n sign: SignTxWithTag;\n offchainTx?: string;\n}\n\nexport interface ChannelHandler extends Function {\n enter?: Function;\n}\n\nexport interface ChannelState {\n signedTx: Encoded.Transaction;\n resolve: (r?: any) => void;\n reject: (e: BaseError) => void;\n sign: SignTx;\n handler?: ChannelHandler;\n onOnChainTx?: (tx: Encoded.Transaction) => void;\n onOwnWithdrawLocked?: () => void;\n onWithdrawLocked?: () => void;\n onOwnDepositLocked?: () => void;\n onDepositLocked?: () => void;\n closeTx?: string;\n}\n\nexport interface ChannelFsm {\n handler: ChannelHandler;\n state?: ChannelState | {\n resolve: Function;\n reject: Function;\n };\n}\n\nexport interface ChannelMessage {\n id?: number;\n method: string;\n params: any;\n payload?: any;\n data?: any;\n error?: ChannelMessageError;\n}\n\ninterface ChannelMessageError {\n code: number;\n message: string;\n data: [{\n message: string;\n code: number;\n }];\n request: ChannelMessage;\n}\n\n// Send ping message every 10 seconds\nconst PING_TIMEOUT_MS = 10000;\n// Close connection if pong message is not received within 15 seconds\nconst PONG_TIMEOUT_MS = 15000;\n\nexport function emit<E extends keyof ChannelEvents>(\n channel: Channel,\n ...args: [E, ...Parameters<ChannelEvents[E]>]\n): void {\n const [eventName, ...rest] = args;\n channel._eventEmitter.emit(eventName, ...rest);\n}\n\nfunction enterState(channel: Channel, nextState: ChannelFsm): void {\n if (nextState == null) {\n throw new UnknownChannelStateError();\n }\n channel._fsm = nextState;\n if (nextState?.handler?.enter != null) {\n nextState.handler.enter(channel);\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n void dequeueAction(channel);\n}\n\n// TODO: rewrite to enum\nexport type ChannelStatus = 'connecting' | 'connected' | 'accepted' | 'halfSigned' | 'signed'\n| 'open' | 'closing' | 'closed' | 'died' | 'disconnected';\n\nexport function changeStatus(channel: Channel, newStatus: ChannelStatus): void {\n if (newStatus === channel._status) return;\n channel._status = newStatus;\n emit(channel, 'statusChanged', newStatus);\n}\n\nexport function changeState(channel: Channel, newState: Encoded.Transaction | ''): void {\n channel._state = newState;\n emit(channel, 'stateChanged', newState);\n}\n\nfunction send(channel: Channel, message: ChannelMessage): void {\n if (channel._options.debug) console.log('Send message: ', message);\n channel._websocket.send(JsonBig.stringify({ jsonrpc: '2.0', ...message }));\n}\n\nexport function notify(channel: Channel, method: string, params: object = {}): void {\n send(channel, { method, params });\n}\n\nasync function dequeueAction(channel: Channel): Promise<void> {\n if (channel._isActionQueueLocked) return;\n const queue = channel._actionQueue;\n if (queue.length === 0) return;\n const index = queue.findIndex((action) => action.guard(channel, channel._fsm));\n if (index === -1) return;\n channel._actionQueue = queue.filter((_, i) => index !== i);\n channel._isActionQueueLocked = true;\n const nextState: ChannelFsm = await queue[index].action(channel, channel._fsm);\n channel._isActionQueueLocked = false;\n enterState(channel, nextState);\n}\n\nexport async function enqueueAction(\n channel: Channel,\n guard: ChannelAction['guard'],\n action: () => { handler: ChannelHandler; state?: Partial<ChannelState> },\n): Promise<any> {\n const promise = new Promise((resolve, reject) => {\n channel._actionQueue.push({\n guard,\n action() {\n const res = action();\n return { ...res, state: { ...res.state, resolve, reject } };\n },\n });\n });\n void dequeueAction(channel);\n return promise;\n}\n\nasync function handleMessage(channel: Channel, message: ChannelMessage): Promise<void> {\n const { handler, state: st } = channel._fsm;\n const nextState = await Promise.resolve(handler(channel, message, st));\n enterState(channel, nextState);\n // TODO: emit message and handler name (?) to move this code to Contract constructor\n if (\n message?.params?.data?.updates?.[0]?.op === 'OffChainNewContract'\n // if name is channelOpen, the contract was created by other participant\n && nextState?.handler.name === 'channelOpen'\n ) {\n const round = channel.round();\n if (round == null) throw new UnexpectedTsError('Round is null');\n const owner = message?.params?.data?.updates?.[0]?.owner;\n emit(channel, 'newContract', encodeContractAddress(owner, round + 1));\n }\n}\n\nasync function dequeueMessage(channel: Channel): Promise<void> {\n if (channel._isMessageQueueLocked) return;\n channel._isMessageQueueLocked = true;\n while (channel._messageQueue.length > 0) {\n const message = channel._messageQueue.shift();\n if (message == null) throw new UnexpectedTsError();\n try {\n await handleMessage(channel, message);\n } catch (error) {\n emit(channel, 'error', new ChannelIncomingMessageError(error, message));\n }\n }\n channel._isMessageQueueLocked = false;\n}\n\nexport function disconnect(channel: Channel): void {\n channel._websocket.close();\n clearTimeout(channel._pingTimeoutId);\n}\n\nfunction ping(channel: Channel): void {\n clearTimeout(channel._pingTimeoutId);\n channel._pingTimeoutId = setTimeout(() => {\n notify(channel, 'channels.system', { action: 'ping' });\n channel._pingTimeoutId = setTimeout(() => {\n disconnect(channel);\n emit(channel, 'error', new ChannelPingTimedOutError());\n }, PONG_TIMEOUT_MS);\n }, PING_TIMEOUT_MS);\n}\n\nfunction onMessage(channel: Channel, data: string): void {\n const message = JsonBig.parse(data);\n if (channel._options.debug) console.log('Receive message: ', message);\n if (message.id != null) {\n const callback = channel._rpcCallbacks.get(message.id);\n if (callback == null) {\n emit(channel, 'error', new ChannelError(`Can't find callback by id: ${message.id}`));\n return;\n }\n try {\n callback(message);\n } finally {\n channel._rpcCallbacks.delete(message.id);\n }\n return;\n }\n if (message.method === 'channels.message') {\n emit(channel, 'message', message.params.data.message);\n return;\n }\n if (message.method === 'channels.system.pong') {\n if (message.params.channel_id === channel._channelId || channel._channelId == null) {\n ping(channel);\n }\n return;\n }\n channel._messageQueue.push(message);\n void dequeueMessage(channel);\n}\n\nexport async function call(channel: Channel, method: string, params: any): Promise<any> {\n return new Promise((resolve, reject) => {\n const id = channel._nextRpcMessageId;\n channel._nextRpcMessageId += 1;\n channel._rpcCallbacks.set(id, (\n message: { result: PromiseLike<any>; error?: ChannelMessageError },\n ) => {\n if (message.error != null) {\n const details = message.error.data[0].message ?? '';\n reject(new ChannelCallError(message.error.message + details));\n } else resolve(message.result);\n });\n send(channel, { method, id, params });\n });\n}\n\nexport async function initialize(\n channel: Channel,\n connectionHandler: Function,\n openHandler: Function,\n { url, ...channelOptions }: ChannelOptions,\n): Promise<void> {\n channel._options = { url, ...channelOptions };\n channel._fsm = { handler: connectionHandler };\n\n const wsUrl = new URL(url);\n Object.entries(channelOptions)\n .filter(([key]) => !['sign', 'debug'].includes(key))\n .forEach(([key, value]) => wsUrl.searchParams.set(pascalToSnake(key), value.toString()));\n wsUrl.searchParams.set('protocol', 'json-rpc');\n changeStatus(channel, 'connecting');\n channel._websocket = new W3CWebSocket(wsUrl.toString());\n await new Promise<void>((resolve, reject) => {\n Object.assign(channel._websocket, {\n onerror: reject,\n onopen: async () => {\n resolve();\n changeStatus(channel, 'connected');\n if (channelOptions.reconnectTx != null) {\n enterState(channel, { handler: openHandler });\n const { signedTx } = await channel.state();\n if (signedTx == null) {\n throw new ChannelError('`signedTx` missed in state while reconnection');\n }\n changeState(channel, buildTx(signedTx));\n }\n ping(channel);\n },\n onclose: () => {\n changeStatus(channel, 'disconnected');\n clearTimeout(channel._pingTimeoutId);\n },\n onmessage: ({ data }: { data: string }) => onMessage(channel, data),\n });\n });\n}\n"],"mappings":"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"}
@@ -1,45 +1,25 @@
1
- /// <reference types="@aeternity__aepp-calldata" />
2
1
  /**
3
2
  * Contract module - routines to interact with the æternity contract
4
3
  *
5
4
  * High level documentation of the contracts are available at
6
5
  * https://github.com/aeternity/protocol/tree/master/contracts and
7
6
  */
7
+ /// <reference types="@aeternity__aepp-calldata" />
8
8
  import { Encoder as Calldata } from '@aeternity/aepp-calldata';
9
9
  import { Tag, AensName } from '../tx/builder/constants';
10
- import { unpackTx } from '../tx/builder';
11
- import { send } from '../spend';
10
+ import { BuildTxOptions } from '../tx/builder';
12
11
  import { Encoded } from '../utils/encoder';
13
- import { Aci as BaseAci } from '../apis/compiler';
14
- import { ContractCallObject as NodeContractCallObject, ContractCallReturnType, Event as NodeEvent } from '../apis/node';
15
- import CompilerHttp from './CompilerHttp';
12
+ import { ContractCallObject as NodeContractCallObject, Event as NodeEvent } from '../apis/node';
13
+ import CompilerBase, { Aci } from './compiler/Base';
16
14
  import Node, { TransformNodeType } from '../Node';
15
+ import { txDryRun, sendTransaction, SendTransactionOptions } from '../chain';
17
16
  import AccountBase from '../account/Base';
18
- interface FunctionACI {
19
- arguments: any[];
20
- name: string;
21
- payable: boolean;
22
- returns: string;
23
- stateful: boolean;
24
- }
25
- interface Aci extends BaseAci {
26
- encodedAci: {
27
- contract: {
28
- name: string;
29
- event: any;
30
- kind: string;
31
- state: any;
32
- type_defs: any[];
33
- functions: FunctionACI[];
34
- };
35
- };
36
- externalEncodedAci: any[];
37
- }
17
+ import { TxUnpacked } from '../tx/builder/schema.generated';
38
18
  interface Event extends NodeEvent {
39
19
  address: Encoded.ContractAddress;
40
20
  data: Encoded.ContractBytearray;
41
21
  }
42
- export interface ContractCallObject extends NodeContractCallObject {
22
+ export interface ContractCallObject extends TransformNodeType<NodeContractCallObject> {
43
23
  returnValue: Encoded.ContractBytearray;
44
24
  log: Event[];
45
25
  }
@@ -51,11 +31,13 @@ interface DecodedEvent {
51
31
  address: Encoded.ContractAddress;
52
32
  };
53
33
  }
54
- type TxData = Awaited<ReturnType<typeof send>>;
34
+ type TxData = Awaited<ReturnType<typeof sendTransaction>>;
55
35
  interface SendAndProcessReturnType {
56
- result?: TransformNodeType<ContractCallObject>;
36
+ result?: ContractCallObject;
57
37
  hash: TxData['hash'];
58
- tx: Awaited<ReturnType<typeof unpackTx<Tag.ContractCallTx | Tag.ContractCreateTx>>>;
38
+ tx: TxUnpacked & {
39
+ tag: Tag.ContractCallTx | Tag.ContractCreateTx;
40
+ };
59
41
  txData: TxData;
60
42
  rawTx: Encoded.Transaction;
61
43
  }
@@ -63,20 +45,27 @@ export interface ContractMethodsBase {
63
45
  [key: string]: (...args: any[]) => any;
64
46
  }
65
47
  type MethodsToContractApi<M extends ContractMethodsBase> = {
66
- [Name in keyof M]: M[Name] extends (...args: infer Args) => infer Ret ? (...args: [
48
+ [Name in keyof M]: M[Name] extends (...args: infer Args) => any ? (...args: [
67
49
  ...Args,
68
50
  ...[] | [
69
51
  Name extends 'init' ? Parameters<Contract<M>['$deploy']>[1] : Parameters<Contract<M>['$call']>[2]
70
52
  ]
71
- ]) => Promise<Awaited<ReturnType<Contract<M>['$call']>> & {
72
- decodedResult?: Ret;
73
- }> : never;
53
+ ]) => ReturnType<Contract<M>['$call']> : never;
74
54
  };
75
55
  type ContractWithMethods<M extends ContractMethodsBase> = Contract<M> & MethodsToContractApi<M>;
76
56
  type MethodNames<M extends ContractMethodsBase> = keyof M & string | 'init';
77
57
  type MethodParameters<M extends ContractMethodsBase, Fn extends MethodNames<M>> = Fn extends 'init' ? M extends {
78
58
  init: any;
79
59
  } ? Parameters<M['init']> : [] : Parameters<M[Fn]>;
60
+ interface GetContractNameByEventOptions {
61
+ contractAddressToName?: {
62
+ [key: Encoded.ContractAddress]: string;
63
+ };
64
+ }
65
+ interface GetCallResultByHashReturnType<M extends ContractMethodsBase, Fn extends MethodNames<M>> {
66
+ decodedResult: ReturnType<M[Fn]>;
67
+ decodedEvents?: ReturnType<Contract<M>['$decodeEvents']>;
68
+ }
80
69
  /**
81
70
  * Generate contract ACI object with predefined js methods for contract usage - can be used for
82
71
  * creating a reference to already deployed contracts
@@ -95,73 +84,28 @@ type MethodParameters<M extends ContractMethodsBase, Fn extends MethodNames<M>>
95
84
  * stateful or not
96
85
  */
97
86
  declare class Contract<M extends ContractMethodsBase> {
98
- /**
99
- * Helper to generate a signature to delegate
100
- * - pre-claim/claim/transfer/revoke of a name to a contract.
101
- * - register/extend/respond of an Oracle to a contract.
102
- * @category contract
103
- * @param ids - The list of id's to prepend
104
- * @param _options - Options
105
- * @param _options.omitAddress - Prepend delegation signature with an account address
106
- * @param _options.onAccount - Account to use
107
- * @returns Signature
108
- * @example
109
- * ```js
110
- * const aeSdk = new AeSdk({ ... })
111
- * const contract = await aeSdk.initializeContract({ address: 'ct_asd2ks...' })
112
- * const aensName = 'example.chain'
113
- * const onAccount = new MemoryAccount(...) // Sign with a specific account
114
- * // Preclaim signature
115
- * const preclaimSig = await contract.$createDelegationSignature([], { onAccount })
116
- * // Claim, transfer and revoke signature
117
- * const aensDelegationSig = await contract
118
- * .$createDelegationSignature([aensName], { onAccount })
119
- * ```
120
- * @example
121
- * ```js
122
- * const aeSdk = new AeSdk({ ... })
123
- * const contract = await aeSdk.initializeContract({ address: 'ct_asd2ks...' })
124
- * const oracleQueryId = 'oq_...'
125
- * const onAccount = new MemoryAccount(...) // Sign with a specific account
126
- * // Oracle register and extend signature
127
- * const oracleDelegationSig = await contract.$createDelegationSignature([], { onAccount })
128
- * // Oracle respond signature
129
- * const respondSig = await contract
130
- * .$createDelegationSignature([oracleQueryId], { onAccount, omitAddress: true })
131
- * ```
132
- */
133
- $createDelegationSignature(ids?: Array<Encoded.Any | AensName>, _options?: {
134
- omitAddress?: boolean;
135
- onAccount?: AccountBase;
136
- }): Promise<Uint8Array>;
87
+ #private;
137
88
  /**
138
89
  * Compile contract
139
90
  * @returns bytecode
140
91
  */
141
92
  $compile(): Promise<Encoded.ContractBytearray>;
142
- protected _handleCallError({ returnType, returnValue }: {
143
- returnType: ContractCallReturnType;
144
- returnValue: Encoded.ContractBytearray;
145
- }, transaction: string): void;
146
- protected _sendAndProcess(tx: Encoded.Transaction, options: any): Promise<SendAndProcessReturnType>;
147
- _estimateGas<Fn extends MethodNames<M>>(name: Fn, params: MethodParameters<M, Fn>, options?: object): Promise<number>;
93
+ $getCallResultByTxHash<Fn extends MethodNames<M>>(hash: Encoded.TxHash, fnName: Fn, options?: Parameters<Contract<M>['$decodeEvents']>[1]): Promise<GetCallResultByHashReturnType<M, Fn> & {
94
+ result: ContractCallObject;
95
+ }>;
96
+ _estimateGas<Fn extends MethodNames<M>>(name: Fn, params: MethodParameters<M, Fn>, options?: Omit<Parameters<Contract<M>['$call']>[2], 'callStatic'>): Promise<number>;
148
97
  /**
149
98
  * Deploy contract
150
99
  * @param params - Contract init function arguments array
151
100
  * @param options - Options
152
101
  * @returns deploy info
153
102
  */
154
- $deploy(params: MethodParameters<M, 'init'>, options?: Parameters<Contract<M>['$call']>[2] & Parameters<Contract<M>['_sendAndProcess']>[1]): Promise<Omit<SendAndProcessReturnType, 'hash'> & {
103
+ $deploy(params: MethodParameters<M, 'init'>, options?: Parameters<Contract<M>['$call']>[2] & Partial<BuildTxOptions<Tag.ContractCreateTx, 'ownerId' | 'code' | 'callData'>>): Promise<Omit<SendAndProcessReturnType, 'hash'> & {
155
104
  transaction?: Encoded.TxHash;
156
105
  owner?: Encoded.AccountAddress;
157
106
  address?: Encoded.ContractAddress;
107
+ decodedEvents?: ReturnType<Contract<M>['$decodeEvents']>;
158
108
  }>;
159
- /**
160
- * Get function schema from contract ACI object
161
- * @param name - Function name
162
- * @returns function ACI
163
- */
164
- protected _getFunctionACI(name: string): Partial<FunctionACI>;
165
109
  /**
166
110
  * Call contract function
167
111
  * @param fn - Function name
@@ -169,23 +113,11 @@ declare class Contract<M extends ContractMethodsBase> {
169
113
  * @param options - Array of function arguments
170
114
  * @returns CallResult
171
115
  */
172
- $call<Fn extends MethodNames<M>>(fn: Fn, params: MethodParameters<M, Fn>, options?: object): Promise<{
173
- decodedResult?: any;
174
- decodedEvents?: ReturnType<Contract<M>['$decodeEvents']>;
175
- } & SendAndProcessReturnType>;
176
- /**
177
- * @param ctAddress - Contract address that emitted event
178
- * @param nameHash - Hash of emitted event name
179
- * @param options - Options
180
- * @returns Contract name
181
- * @throws {@link MissingEventDefinitionError}
182
- * @throws {@link AmbiguousEventDefinitionError}
183
- */
184
- protected _getContractNameByEvent(ctAddress: Encoded.ContractAddress, nameHash: BigInt, { contractAddressToName }: {
185
- contractAddressToName?: {
186
- [key: Encoded.ContractAddress]: string;
187
- };
188
- }): string;
116
+ $call<Fn extends MethodNames<M>>(fn: Fn, params: MethodParameters<M, Fn>, options?: Partial<BuildTxOptions<Tag.ContractCallTx, 'callerId' | 'contractId' | 'callData'>> & Parameters<Contract<M>['$decodeEvents']>[1] & Omit<SendTransactionOptions, 'onAccount' | 'onNode'> & Omit<Parameters<typeof txDryRun>[2], 'onNode'> & {
117
+ onAccount?: AccountBase;
118
+ onNode?: Node;
119
+ callStatic?: boolean;
120
+ }): Promise<SendAndProcessReturnType & Partial<GetCallResultByHashReturnType<M, Fn>>>;
189
121
  /**
190
122
  * Decode Events
191
123
  * @param events - Array of encoded events (callRes.result.log)
@@ -194,8 +126,8 @@ declare class Contract<M extends ContractMethodsBase> {
194
126
  */
195
127
  $decodeEvents(events: Event[], { omitUnknown, ...opt }?: {
196
128
  omitUnknown?: boolean;
197
- } & Parameters<Contract<M>['_getContractNameByEvent']>[2]): DecodedEvent[];
198
- static initialize<M extends ContractMethodsBase>({ onCompiler, onNode, sourceCode, bytecode, aci, address, fileSystem, validateBytecode, ...otherOptions }: Omit<ConstructorParameters<typeof Contract>[0], 'aci' | 'address'> & {
129
+ } & GetContractNameByEventOptions): DecodedEvent[];
130
+ static initialize<M extends ContractMethodsBase>({ onCompiler, onNode, bytecode, aci, address, sourceCodePath, sourceCode, fileSystem, validateBytecode, ...otherOptions }: Omit<ConstructorParameters<typeof Contract>[0], 'aci' | 'address'> & {
199
131
  validateBytecode?: boolean;
200
132
  aci?: Aci;
201
133
  address?: Encoded.ContractAddress | AensName;
@@ -203,29 +135,17 @@ declare class Contract<M extends ContractMethodsBase> {
203
135
  _aci: Aci;
204
136
  _name: string;
205
137
  _calldata: Calldata;
206
- $options: {
207
- sourceCode?: string;
208
- bytecode?: Encoded.ContractBytearray;
209
- address?: Encoded.ContractAddress;
210
- onCompiler: CompilerHttp;
211
- onNode: Node;
212
- omitUnknown?: boolean;
213
- contractAddressToName?: {
214
- [key: Encoded.ContractAddress]: string;
215
- };
216
- [key: string]: any;
217
- };
138
+ $options: Omit<ConstructorParameters<typeof Contract>[0], 'aci'>;
218
139
  constructor({ aci, ...otherOptions }: {
219
- onAccount?: AccountBase;
220
- onCompiler: CompilerHttp;
140
+ onCompiler?: CompilerBase;
221
141
  onNode: Node;
222
- sourceCode?: string;
223
142
  bytecode?: Encoded.ContractBytearray;
224
143
  aci: Aci;
225
144
  address?: Encoded.ContractAddress;
226
- fileSystem?: Record<string, string>;
227
- [key: string]: any;
228
- });
145
+ sourceCodePath?: Parameters<CompilerBase['compile']>[0];
146
+ sourceCode?: Parameters<CompilerBase['compileBySourceCode']>[0];
147
+ fileSystem?: Parameters<CompilerBase['compileBySourceCode']>[1];
148
+ } & Parameters<Contract<M>['$deploy']>[1]);
229
149
  }
230
150
  interface ContractWithMethodsClass {
231
151
  new <M extends ContractMethodsBase>(options: ConstructorParameters<typeof Contract>[0]): ContractWithMethods<M>;