@aeternity/aepp-sdk 12.0.0 → 12.1.2

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 (283) hide show
  1. package/dist/aepp-sdk.browser-script.js +1 -1
  2. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -15
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +2 -1
  5. package/dist/aepp-sdk.browser.js.LICENSE.txt +1 -0
  6. package/dist/aepp-sdk.browser.js.map +1 -1
  7. package/dist/aepp-sdk.js +20765 -1
  8. package/dist/aepp-sdk.js.map +1 -1
  9. package/es/AeSdk.d.ts +7 -7
  10. package/es/AeSdk.mjs.map +1 -1
  11. package/es/AeSdkAepp.d.ts +4 -3
  12. package/es/AeSdkAepp.mjs +2 -1
  13. package/es/AeSdkAepp.mjs.map +1 -1
  14. package/es/AeSdkBase.d.ts +22 -21
  15. package/es/AeSdkBase.mjs +25 -21
  16. package/es/AeSdkBase.mjs.map +1 -1
  17. package/es/AeSdkWallet.d.ts +4 -3
  18. package/es/AeSdkWallet.mjs +5 -1
  19. package/es/AeSdkWallet.mjs.map +1 -1
  20. package/es/Node.d.ts +7 -10
  21. package/es/Node.mjs +63 -57
  22. package/es/Node.mjs.map +1 -1
  23. package/es/account/Base.d.ts +7 -4
  24. package/es/account/Base.mjs +3 -3
  25. package/es/account/Base.mjs.map +1 -1
  26. package/es/account/Memory.d.ts +5 -4
  27. package/es/account/Memory.mjs +24 -2
  28. package/es/account/Memory.mjs.map +1 -1
  29. package/es/account/Rpc.d.ts +6 -6
  30. package/es/account/Rpc.mjs +3 -2
  31. package/es/account/Rpc.mjs.map +1 -1
  32. package/es/aens.d.ts +27 -14
  33. package/es/aens.mjs +27 -21
  34. package/es/aens.mjs.map +1 -1
  35. package/es/aepp-wallet-communication/connection/Browser.d.ts +2 -1
  36. package/es/aepp-wallet-communication/connection/Browser.mjs +5 -2
  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 +1 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  41. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +1 -0
  42. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +5 -1
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  44. package/es/aepp-wallet-communication/connection-proxy.d.ts +1 -0
  45. package/es/aepp-wallet-communication/connection-proxy.mjs +1 -0
  46. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  47. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +1 -0
  48. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -5
  49. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  50. package/es/aepp-wallet-communication/rpc/types.d.ts +8 -8
  51. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  52. package/es/aepp-wallet-communication/schema.d.ts +17 -2
  53. package/es/aepp-wallet-communication/schema.mjs +54 -17
  54. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  55. package/es/aepp-wallet-communication/wallet-detector.d.ts +2 -1
  56. package/es/aepp-wallet-communication/wallet-detector.mjs +2 -3
  57. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  58. package/es/apis/node/models/index.d.ts +6 -2
  59. package/es/apis/node/models/index.mjs.map +1 -1
  60. package/es/apis/node/models/mappers.mjs +4 -2
  61. package/es/apis/node/models/mappers.mjs.map +1 -1
  62. package/es/chain.d.ts +92 -64
  63. package/es/chain.mjs +190 -154
  64. package/es/chain.mjs.map +1 -1
  65. package/es/channel/handlers.d.ts +3 -3
  66. package/es/channel/handlers.mjs +42 -44
  67. package/es/channel/handlers.mjs.map +1 -1
  68. package/es/channel/index.d.ts +43 -52
  69. package/es/channel/index.mjs +46 -49
  70. package/es/channel/index.mjs.map +1 -1
  71. package/es/channel/internal.d.ts +16 -15
  72. package/es/channel/internal.mjs +67 -62
  73. package/es/channel/internal.mjs.map +1 -1
  74. package/es/contract/Compiler.d.ts +1 -0
  75. package/es/contract/Compiler.mjs +5 -4
  76. package/es/contract/Compiler.mjs.map +1 -1
  77. package/es/contract/aci.d.ts +17 -15
  78. package/es/contract/aci.mjs +58 -45
  79. package/es/contract/aci.mjs.map +1 -1
  80. package/es/contract/ga.d.ts +16 -15
  81. package/es/contract/ga.mjs +12 -7
  82. package/es/contract/ga.mjs.map +1 -1
  83. package/es/contract/methods.d.ts +9 -6
  84. package/es/contract/methods.mjs +9 -6
  85. package/es/contract/methods.mjs.map +1 -1
  86. package/es/deprecated/index.d.ts +143 -0
  87. package/es/deprecated/index.mjs +162 -0
  88. package/es/deprecated/index.mjs.map +1 -0
  89. package/es/deprecated/methods.d.ts +18 -0
  90. package/es/deprecated/methods.mjs +26 -0
  91. package/es/deprecated/methods.mjs.map +1 -0
  92. package/es/index.d.ts +4 -1
  93. package/es/index.mjs +4 -1
  94. package/es/index.mjs.map +1 -1
  95. package/es/oracle.d.ts +69 -62
  96. package/es/oracle.mjs +121 -103
  97. package/es/oracle.mjs.map +1 -1
  98. package/es/spend.d.ts +16 -15
  99. package/es/spend.mjs +19 -30
  100. package/es/spend.mjs.map +1 -1
  101. package/es/tx/builder/address.d.ts +25 -0
  102. package/es/tx/builder/address.mjs +45 -0
  103. package/es/tx/builder/address.mjs.map +1 -0
  104. package/es/tx/builder/constants.d.ts +55 -26
  105. package/es/tx/builder/constants.mjs +60 -38
  106. package/es/tx/builder/constants.mjs.map +1 -1
  107. package/es/tx/builder/field-types/coin-amount.d.ts +13 -0
  108. package/es/tx/builder/field-types/coin-amount.mjs +26 -0
  109. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -0
  110. package/es/tx/builder/field-types/deposit.d.ts +15 -0
  111. package/es/tx/builder/field-types/deposit.mjs +19 -0
  112. package/es/tx/builder/field-types/deposit.mjs.map +1 -0
  113. package/es/tx/builder/field-types/fee.d.ts +25 -0
  114. package/es/tx/{min-fee.mjs → builder/field-types/fee.mjs} +62 -60
  115. package/es/tx/builder/field-types/fee.mjs.map +1 -0
  116. package/es/tx/builder/field-types/field.d.ts +6 -0
  117. package/es/tx/builder/field-types/field.mjs +15 -0
  118. package/es/tx/builder/field-types/field.mjs.map +1 -0
  119. package/es/tx/builder/field-types/gas-limit.d.ts +12 -0
  120. package/es/tx/builder/field-types/gas-limit.mjs +33 -0
  121. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -0
  122. package/es/tx/builder/field-types/gas-price.d.ts +8 -0
  123. package/es/tx/builder/field-types/gas-price.mjs +18 -0
  124. package/es/tx/builder/field-types/gas-price.mjs.map +1 -0
  125. package/es/tx/builder/field-types/index.d.ts +70 -0
  126. package/es/tx/builder/field-types/index.mjs +25 -0
  127. package/es/tx/builder/field-types/index.mjs.map +1 -0
  128. package/es/tx/builder/field-types/name-fee.d.ts +20 -0
  129. package/es/tx/builder/field-types/name-fee.mjs +24 -0
  130. package/es/tx/builder/field-types/name-fee.mjs.map +1 -0
  131. package/es/tx/builder/field-types/name-id.d.ts +14 -0
  132. package/es/tx/builder/field-types/name-id.mjs +19 -0
  133. package/es/tx/builder/field-types/name-id.mjs.map +1 -0
  134. package/es/tx/builder/field-types/name.d.ts +13 -0
  135. package/es/tx/builder/field-types/name.mjs +18 -0
  136. package/es/tx/builder/field-types/name.mjs.map +1 -0
  137. package/es/tx/builder/field-types/short-u-int.d.ts +6 -0
  138. package/es/tx/builder/field-types/short-u-int.mjs +12 -0
  139. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -0
  140. package/es/tx/builder/field-types/u-int.d.ts +8 -0
  141. package/es/tx/builder/field-types/u-int.mjs +14 -0
  142. package/es/tx/builder/field-types/u-int.mjs.map +1 -0
  143. package/es/tx/builder/helpers.d.ts +27 -33
  144. package/es/tx/builder/helpers.mjs +41 -47
  145. package/es/tx/builder/helpers.mjs.map +1 -1
  146. package/es/tx/builder/index.d.ts +25 -12
  147. package/es/tx/builder/index.mjs +74 -83
  148. package/es/tx/builder/index.mjs.map +1 -1
  149. package/es/tx/builder/schema.d.ts +995 -144
  150. package/es/tx/builder/schema.mjs +121 -170
  151. package/es/tx/builder/schema.mjs.map +1 -1
  152. package/es/tx/index.d.ts +28 -27
  153. package/es/tx/index.mjs +97 -117
  154. package/es/tx/index.mjs.map +1 -1
  155. package/es/tx/validator.d.ts +4 -3
  156. package/es/tx/validator.mjs +79 -92
  157. package/es/tx/validator.mjs.map +1 -1
  158. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -1
  159. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -1
  160. package/es/typings/bip32-path/index.d.mjs.map +1 -1
  161. package/es/typings/blakejs/index.d.mjs.map +1 -1
  162. package/es/typings/sha-js/index.d.mjs +2 -0
  163. package/es/typings/sha-js/index.d.mjs.map +1 -0
  164. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -1
  165. package/es/utils/amount-formatter.d.ts +9 -9
  166. package/es/utils/amount-formatter.mjs +17 -17
  167. package/es/utils/amount-formatter.mjs.map +1 -1
  168. package/es/utils/autorest.mjs +7 -7
  169. package/es/utils/autorest.mjs.map +1 -1
  170. package/es/utils/bignumber.mjs +2 -1
  171. package/es/utils/bignumber.mjs.map +1 -1
  172. package/es/utils/bytes.mjs +1 -1
  173. package/es/utils/bytes.mjs.map +1 -1
  174. package/es/utils/crypto.d.ts +8 -23
  175. package/es/utils/crypto.mjs +15 -41
  176. package/es/utils/crypto.mjs.map +1 -1
  177. package/es/utils/encoder-types.d.ts +61 -0
  178. package/es/utils/encoder-types.mjs +36 -0
  179. package/es/utils/encoder-types.mjs.map +1 -0
  180. package/es/utils/encoder.d.ts +6 -7
  181. package/es/utils/encoder.mjs +42 -26
  182. package/es/utils/encoder.mjs.map +1 -1
  183. package/es/utils/errors.d.ts +1 -11
  184. package/es/utils/errors.mjs +4 -20
  185. package/es/utils/errors.mjs.map +1 -1
  186. package/es/utils/hd-wallet.d.ts +18 -2
  187. package/es/utils/hd-wallet.mjs +64 -34
  188. package/es/utils/hd-wallet.mjs.map +1 -1
  189. package/es/utils/json-big.mjs +2 -2
  190. package/es/utils/json-big.mjs.map +1 -1
  191. package/es/utils/keystore.mjs +4 -2
  192. package/es/utils/keystore.mjs.map +1 -1
  193. package/es/utils/mptree.d.ts +2 -2
  194. package/es/utils/mptree.mjs +11 -6
  195. package/es/utils/mptree.mjs.map +1 -1
  196. package/es/utils/other.d.ts +8 -2
  197. package/es/utils/other.mjs +15 -3
  198. package/es/utils/other.mjs.map +1 -1
  199. package/es/utils/semver-satisfies.d.ts +1 -1
  200. package/es/utils/semver-satisfies.mjs +2 -2
  201. package/es/utils/semver-satisfies.mjs.map +1 -1
  202. package/es/utils/string.mjs.map +1 -1
  203. package/package.json +36 -34
  204. package/src/AeSdk.ts +30 -27
  205. package/src/AeSdkAepp.ts +93 -84
  206. package/src/AeSdkBase.ts +148 -130
  207. package/src/AeSdkWallet.ts +172 -156
  208. package/src/Node.ts +108 -102
  209. package/src/account/Base.ts +42 -32
  210. package/src/account/Memory.ts +45 -30
  211. package/src/account/Rpc.ts +32 -30
  212. package/src/aens.ts +124 -108
  213. package/src/aepp-wallet-communication/connection/Browser.ts +18 -15
  214. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +22 -21
  215. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +63 -52
  216. package/src/aepp-wallet-communication/connection-proxy.ts +8 -7
  217. package/src/aepp-wallet-communication/rpc/RpcClient.ts +67 -61
  218. package/src/aepp-wallet-communication/rpc/types.ts +32 -32
  219. package/src/aepp-wallet-communication/schema.ts +117 -74
  220. package/src/aepp-wallet-communication/wallet-detector.ts +29 -28
  221. package/src/apis/node/code-model-v4.yaml +54 -20
  222. package/src/apis/node/models/index.ts +6 -2
  223. package/src/apis/node/models/mappers.ts +4 -2
  224. package/src/chain.ts +286 -228
  225. package/src/channel/handlers.ts +424 -372
  226. package/src/channel/index.ts +285 -251
  227. package/src/channel/internal.ts +248 -232
  228. package/src/contract/Compiler.ts +22 -21
  229. package/src/contract/aci.ts +267 -258
  230. package/src/contract/ga.ts +93 -72
  231. package/src/contract/methods.ts +32 -27
  232. package/src/deprecated/index.ts +172 -0
  233. package/src/deprecated/methods.ts +25 -0
  234. package/src/index.ts +37 -32
  235. package/src/oracle.ts +211 -189
  236. package/src/spend.ts +82 -70
  237. package/src/tx/builder/address.ts +50 -0
  238. package/src/tx/builder/constants.ts +82 -52
  239. package/src/tx/builder/field-types/coin-amount.ts +27 -0
  240. package/src/tx/builder/field-types/deposit.ts +21 -0
  241. package/src/tx/builder/field-types/fee.ts +143 -0
  242. package/src/tx/builder/field-types/field.ts +9 -0
  243. package/src/tx/builder/field-types/gas-limit.ts +41 -0
  244. package/src/tx/builder/field-types/gas-price.ts +16 -0
  245. package/src/tx/builder/field-types/index.ts +45 -0
  246. package/src/tx/builder/field-types/name-fee.ts +32 -0
  247. package/src/tx/builder/field-types/name-id.ts +20 -0
  248. package/src/tx/builder/field-types/name.ts +18 -0
  249. package/src/tx/builder/field-types/short-u-int.ts +11 -0
  250. package/src/tx/builder/field-types/u-int.ts +16 -0
  251. package/src/tx/builder/helpers.ts +112 -117
  252. package/src/tx/builder/index.ts +203 -197
  253. package/src/tx/builder/schema.ts +421 -465
  254. package/src/tx/index.ts +128 -135
  255. package/src/tx/validator.ts +165 -161
  256. package/src/typings/@aeternity__argon2-browser/index.d.ts +1 -1
  257. package/src/typings/@aeternity__uuid/index.d.ts +3 -1
  258. package/src/typings/bip32-path/index.d.ts +6 -6
  259. package/src/typings/blakejs/index.d.ts +4 -32
  260. package/src/typings/sha-js/index.d.ts +5 -0
  261. package/src/typings/tweetnacl-auth/index.d.ts +2 -2
  262. package/src/utils/amount-formatter.ts +41 -41
  263. package/src/utils/autorest.ts +57 -54
  264. package/src/utils/bignumber.ts +7 -6
  265. package/src/utils/bytes.ts +19 -19
  266. package/src/utils/crypto.ts +82 -94
  267. package/src/utils/encoder-types.ts +63 -0
  268. package/src/utils/encoder.ts +104 -56
  269. package/src/utils/errors.ts +246 -264
  270. package/src/utils/hd-wallet.ts +114 -82
  271. package/src/utils/json-big.ts +16 -15
  272. package/src/utils/keystore.ts +65 -62
  273. package/src/utils/mptree.ts +59 -56
  274. package/src/utils/other.ts +26 -18
  275. package/src/utils/semver-satisfies.ts +15 -11
  276. package/src/utils/string.ts +10 -10
  277. package/es/tx/builder/field-types.d.ts +0 -62
  278. package/es/tx/builder/field-types.mjs +0 -126
  279. package/es/tx/builder/field-types.mjs.map +0 -1
  280. package/es/tx/min-fee.d.ts +0 -20
  281. package/es/tx/min-fee.mjs.map +0 -1
  282. package/src/tx/builder/field-types.ts +0 -111
  283. package/src/tx/min-fee.ts +0 -136
package/src/AeSdkBase.ts CHANGED
@@ -1,39 +1,41 @@
1
- import * as chainMethods from './chain'
2
- import * as txMethods from './tx'
3
- import * as aensMethods from './aens'
4
- import * as spendMethods from './spend'
5
- import * as oracleMethods from './oracle'
6
- import * as contractMethods from './contract/methods'
7
- import * as contractGaMethods from './contract/ga'
8
- import { _buildTx } from './tx'
9
- import { mapObject } from './utils/other'
10
- import Node, { getNetworkId } from './Node'
11
- import { AE_AMOUNT_FORMATS } from './utils/amount-formatter'
12
- import { AMOUNT, TX_TYPE } from './tx/builder/schema'
13
- import MemoryAccount, { Keypair } from './account/Memory'
14
- import AccountBase, { isAccountBase } from './account/Base'
1
+ import * as chainMethods from './chain';
2
+ import * as txMethods from './tx';
3
+ import * as aensMethods from './aens';
4
+ import * as spendMethods from './spend';
5
+ import * as oracleMethods from './oracle';
6
+ import * as contractMethods from './contract/methods';
7
+ import * as contractGaMethods from './contract/ga';
8
+ import * as deprecatedMethods from './deprecated/methods';
9
+ import { _buildTx } from './tx';
10
+ import { mapObject } from './utils/other';
11
+ import Node, { getNetworkId } from './Node';
12
+ import { AE_AMOUNT_FORMATS } from './utils/amount-formatter';
13
+ import { AMOUNT } from './tx/builder/schema';
14
+ import { Tag } from './tx/builder/constants';
15
+ import MemoryAccount, { Keypair } from './account/Memory';
16
+ import AccountBase, { isAccountBase } from './account/Base';
15
17
  import {
16
18
  CompilerError,
17
19
  DuplicateNodeError,
18
20
  NodeNotFoundError,
19
21
  NotImplementedError,
20
- TypeError
21
- } from './utils/errors'
22
- import { EncodedData } from './utils/encoder'
23
- import Compiler from './contract/Compiler'
22
+ TypeError,
23
+ } from './utils/errors';
24
+ import { Encoded } from './utils/encoder';
25
+ import Compiler from './contract/Compiler';
24
26
 
25
- export type Account = Keypair | AccountBase | any
27
+ export type Account = Keypair | AccountBase | any;
26
28
 
27
- type NodeInfo = Awaited<ReturnType<Node['getNodeInfo']>> & { name: string }
29
+ type NodeInfo = Awaited<ReturnType<Node['getNodeInfo']>> & { name: string };
28
30
 
29
- function getValueOrErrorProxy<Value extends object> (valueCb: () => Value): Value {
31
+ function getValueOrErrorProxy<Value extends object>(valueCb: () => Value): Value {
30
32
  try {
31
- return valueCb()
33
+ return valueCb();
32
34
  } catch (error) {
33
35
  return new Proxy(
34
36
  {},
35
- Object.fromEntries(['get', 'set', 'has'].map(name => [name, () => { throw error }]))
36
- ) as Value
37
+ Object.fromEntries(['get', 'set', 'has'].map((name) => [name, () => { throw error; }])),
38
+ ) as Value;
37
39
  }
38
40
  }
39
41
 
@@ -54,14 +56,16 @@ function getValueOrErrorProxy<Value extends object> (valueCb: () => Value): Valu
54
56
  */
55
57
  class AeSdkBase {
56
58
  _options: {
57
- denomination: AE_AMOUNT_FORMATS
58
- amount: number
59
- [key: string]: any
60
- } = { denomination: AE_AMOUNT_FORMATS.AETTOS, amount: AMOUNT }
59
+ denomination: AE_AMOUNT_FORMATS;
60
+ amount: number;
61
+ [key: string]: any;
62
+ } = { denomination: AE_AMOUNT_FORMATS.AETTOS, amount: AMOUNT };
61
63
 
62
- pool: Map<string, Node> = new Map()
63
- selectedNodeName?: string
64
- compilerApi: Compiler
64
+ pool: Map<string, Node> = new Map();
65
+
66
+ selectedNodeName?: string;
67
+
68
+ compilerApi: Compiler;
65
69
 
66
70
  /**
67
71
  * @param options - Options
@@ -69,35 +73,38 @@ class AeSdkBase {
69
73
  * @param options.compilerUrl - Url for compiler API
70
74
  * @param options.ignoreVersion - Don't check node or compiler version
71
75
  */
72
- constructor (
73
- { nodes = [], compilerUrl, ignoreVersion = false, ...options }:
76
+ constructor(
74
77
  {
75
- nodes?: Array<{ name: string, instance: Node }>
76
- compilerUrl?: string
77
- ignoreVersion?: boolean
78
- [key: string]: any // TODO: consider combining all possible options instead
79
- } = {}
78
+ nodes = [], compilerUrl, ignoreVersion = false, ...options
79
+ }:
80
+ {
81
+ nodes?: Array<{ name: string; instance: Node }>;
82
+ compilerUrl?: string;
83
+ ignoreVersion?: boolean;
84
+ [key: string]: any; // TODO: consider combining all possible options instead
85
+ } = {},
80
86
  ) {
81
- Object.assign(this._options, options)
87
+ Object.assign(this._options, options);
82
88
 
83
- nodes.forEach(({ name, instance }, i) => this.addNode(name, instance, i === 0))
89
+ nodes.forEach(({ name, instance }, i) => this.addNode(name, instance, i === 0));
84
90
 
85
91
  if (compilerUrl == null) {
86
92
  this.compilerApi = getValueOrErrorProxy(() => {
87
- throw new CompilerError('You can\'t use Compiler API. Compiler is not ready!')
88
- })
89
- } else this.setCompilerUrl(compilerUrl, { ignoreVersion })
93
+ throw new CompilerError('You can\'t use Compiler API. Compiler is not ready!');
94
+ });
95
+ } else this.setCompilerUrl(compilerUrl, { ignoreVersion });
90
96
  }
91
97
 
92
- setCompilerUrl (
93
- compilerUrl: string, { ignoreVersion = false }: { ignoreVersion?: boolean } = {}
98
+ setCompilerUrl(
99
+ compilerUrl: string,
100
+ { ignoreVersion = false }: { ignoreVersion?: boolean } = {},
94
101
  ): void {
95
- this.compilerApi = new Compiler(compilerUrl, { ignoreVersion })
102
+ this.compilerApi = new Compiler(compilerUrl, { ignoreVersion });
96
103
  }
97
104
 
98
- get api (): Node {
99
- this.ensureNodeConnected()
100
- return this.pool.get(this.selectedNodeName) as Node
105
+ get api(): Node {
106
+ this.ensureNodeConnected();
107
+ return this.pool.get(this.selectedNodeName) as Node;
101
108
  }
102
109
 
103
110
  /**
@@ -111,12 +118,12 @@ class AeSdkBase {
111
118
  * aeSdkBase.addNode('testNode', new Node({ url }), true)
112
119
  * ```
113
120
  */
114
- addNode (name: string, node: Node, select = false): void {
115
- if (this.pool.has(name)) throw new DuplicateNodeError(name)
121
+ addNode(name: string, node: Node, select = false): void {
122
+ if (this.pool.has(name)) throw new DuplicateNodeError(name);
116
123
 
117
- this.pool.set(name, node)
124
+ this.pool.set(name, node);
118
125
  if (select || this.selectedNodeName == null) {
119
- this.selectNode(name)
126
+ this.selectNode(name);
120
127
  }
121
128
  }
122
129
 
@@ -126,9 +133,9 @@ class AeSdkBase {
126
133
  * @example
127
134
  * nodePool.selectNode('testNode')
128
135
  */
129
- selectNode (name: string): void {
130
- if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`)
131
- this.selectedNodeName = name
136
+ selectNode(name: string): void {
137
+ if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`);
138
+ this.selectedNodeName = name;
132
139
  }
133
140
 
134
141
  /**
@@ -136,20 +143,20 @@ class AeSdkBase {
136
143
  * @example
137
144
  * nodePool.getNetworkId()
138
145
  */
139
- readonly getNetworkId = getNetworkId
146
+ readonly getNetworkId = getNetworkId;
140
147
 
141
148
  /**
142
149
  * Check if you have selected node
143
150
  * @example
144
151
  * nodePool.isNodeConnected()
145
152
  */
146
- isNodeConnected (): this is AeSdkBase & { selectedNodeName: string } {
147
- return this.selectedNodeName != null
153
+ isNodeConnected(): this is AeSdkBase & { selectedNodeName: string } {
154
+ return this.selectedNodeName != null;
148
155
  }
149
156
 
150
- protected ensureNodeConnected (): asserts this is AeSdkBase & { selectedNodeName: string } {
157
+ protected ensureNodeConnected(): asserts this is AeSdkBase & { selectedNodeName: string } {
151
158
  if (!this.isNodeConnected()) {
152
- throw new NodeNotFoundError('You can\'t use Node API. Node is not connected or not defined!')
159
+ throw new NodeNotFoundError('You can\'t use Node API. Node is not connected or not defined!');
153
160
  }
154
161
  }
155
162
 
@@ -160,12 +167,12 @@ class AeSdkBase {
160
167
  * nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }
161
168
  * ```
162
169
  */
163
- async getNodeInfo (): Promise<NodeInfo> {
164
- this.ensureNodeConnected()
170
+ async getNodeInfo(): Promise<NodeInfo> {
171
+ this.ensureNodeConnected();
165
172
  return {
166
173
  name: this.selectedNodeName,
167
- ...await this.api.getNodeInfo()
168
- }
174
+ ...await this.api.getNodeInfo(),
175
+ };
169
176
  }
170
177
 
171
178
  /**
@@ -173,119 +180,130 @@ class AeSdkBase {
173
180
  * @example
174
181
  * nodePool.getNodesInPool()
175
182
  */
176
- async getNodesInPool (): Promise<NodeInfo[]> {
177
- return await Promise.all(
183
+ async getNodesInPool(): Promise<NodeInfo[]> {
184
+ return Promise.all(
178
185
  Array.from(this.pool.entries()).map(async ([name, node]) => ({
179
186
  name,
180
- ...await node.getNodeInfo()
181
- }))
182
- )
187
+ ...await node.getNodeInfo(),
188
+ })),
189
+ );
183
190
  }
184
191
 
185
- addresses (): Array<EncodedData<'ak'>> {
186
- return []
192
+ // eslint-disable-next-line class-methods-use-this
193
+ addresses(): Encoded.AccountAddress[] {
194
+ return [];
187
195
  }
188
196
 
189
- async address ({ onAccount }: { onAccount?: Account } = {}): Promise<EncodedData<'ak'>> {
190
- return await this._resolveAccount(onAccount).address()
197
+ async address({ onAccount }: { onAccount?: Account } = {}): Promise<Encoded.AccountAddress> {
198
+ return this._resolveAccount(onAccount).address();
191
199
  }
192
200
 
193
- async sign (
194
- data: string | Uint8Array, { onAccount, ...options }: { onAccount?: Account } = {}
201
+ async sign(
202
+ data: string | Uint8Array,
203
+ { onAccount, ...options }: { onAccount?: Account } = {},
195
204
  ): Promise<Uint8Array> {
196
- return await this._resolveAccount(onAccount).sign(data, options)
205
+ return this._resolveAccount(onAccount).sign(data, options);
197
206
  }
198
207
 
199
- async signTransaction (
200
- tx: EncodedData<'tx'>,
201
- { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['signTransaction']>[1] = {}
202
- ): Promise<EncodedData<'tx'>> {
203
- return await this._resolveAccount(onAccount)
204
- .signTransaction(tx, { ...options, networkId: await this.getNetworkId(options) })
208
+ async signTransaction(
209
+ tx: Encoded.Transaction,
210
+ { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['signTransaction']>[1] = {},
211
+ ): Promise<Encoded.Transaction> {
212
+ return this._resolveAccount(onAccount)
213
+ .signTransaction(tx, { ...options, networkId: await this.getNetworkId(options) });
205
214
  }
206
215
 
207
- async signMessage (
216
+ async signMessage(
208
217
  message: string,
209
- { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['signMessage']>[1] = {}
218
+ { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['signMessage']>[1] = {},
210
219
  ): Promise<string | Uint8Array> {
211
- return await this._resolveAccount(onAccount).signMessage(message, options)
220
+ return this._resolveAccount(onAccount).signMessage(message, options);
212
221
  }
213
222
 
214
- async verifyMessage (
223
+ async verifyMessage(
215
224
  message: string,
216
225
  signature: string | Uint8Array,
217
- { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['verifyMessage']>[2] = {}
226
+ { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['verifyMessage']>[2] = {},
218
227
  ): Promise<boolean> {
219
- return await this._resolveAccount(onAccount).verifyMessage(message, signature, options)
228
+ return this._resolveAccount(onAccount).verifyMessage(message, signature, options);
220
229
  }
221
230
 
222
231
  /**
223
232
  * Resolves an account
224
233
  * @param account - ak-address, instance of AccountBase, or keypair
225
234
  */
226
- _resolveAccount (account?: Account): AccountBase {
235
+ // eslint-disable-next-line class-methods-use-this
236
+ _resolveAccount(account?: Account): AccountBase {
227
237
  switch (account !== null && typeof account) {
228
238
  case 'string':
229
- throw new NotImplementedError('Address in AccountResolver')
239
+ throw new NotImplementedError('Address in AccountResolver');
230
240
  case 'object':
231
- return isAccountBase(account) ? account : new MemoryAccount({ keypair: account })
241
+ return isAccountBase(account) ? account : new MemoryAccount({ keypair: account });
232
242
  default:
233
243
  throw new TypeError(
234
- 'Account should be an address (ak-prefixed string), ' +
235
- `keypair, or instance of AccountBase, got ${String(account)} instead`)
244
+ 'Account should be an address (ak-prefixed string), '
245
+ + `keypair, or instance of AccountBase, got ${String(account)} instead`,
246
+ );
236
247
  }
237
248
  }
238
249
 
239
- async _getOptions (
240
- ): Promise<{ onNode: Node, onAccount: AccountBase, onCompiler: Compiler, networkId: string }> {
250
+ _getOptions(): {
251
+ onNode: Node;
252
+ onAccount: AccountBase;
253
+ onCompiler: Compiler;
254
+ } {
241
255
  return {
242
256
  ...this._options,
243
257
  onNode: getValueOrErrorProxy(() => this.api),
244
258
  onAccount: getValueOrErrorProxy(() => this._resolveAccount()),
245
259
  onCompiler: getValueOrErrorProxy(() => this.compilerApi),
246
- // TODO: remove networkId
247
- networkId: (await this.api?.getStatus()).networkId
248
- }
260
+ };
249
261
  }
250
262
 
251
- async buildTx<TxType extends TX_TYPE> (
263
+ async buildTx<TxType extends Tag>(
252
264
  txType: TxType,
253
- options: Omit<Parameters<typeof _buildTx<TxType>>[1], 'onNode'> & { onNode?: Node }
254
- ): Promise<EncodedData<'tx'>> {
255
- // @ts-expect-error
256
- return await _buildTx<TxType>(txType, {
257
- ...await this._getOptions(),
258
- ...options
259
- })
265
+ options: Omit<Parameters<typeof _buildTx<TxType>>[1], 'onNode'> & { onNode?: Node },
266
+ ): Promise<Encoded.Transaction> {
267
+ // @ts-expect-error TODO: need to figure out what's wrong here
268
+ return _buildTx<TxType>(txType, {
269
+ ...this._getOptions(),
270
+ ...options,
271
+ });
260
272
  }
261
273
  }
262
274
 
263
- const { _buildTx: _, ...txMethodsOther } = txMethods
275
+ const { _buildTx: _, ...txMethodsOther } = txMethods;
276
+ const { InvalidTxError: _2, ...chainMethodsOther } = chainMethods;
264
277
 
265
278
  const methods = {
266
- ...chainMethods,
279
+ ...chainMethodsOther,
267
280
  ...txMethodsOther,
268
281
  ...aensMethods,
269
282
  ...spendMethods,
270
283
  ...oracleMethods,
271
284
  ...contractMethods,
272
- ...contractGaMethods
273
- } as const
285
+ ...contractGaMethods,
286
+ ...deprecatedMethods,
287
+ } as const;
274
288
 
275
289
  type RequiredKeys<T> = {
276
290
  [K in keyof T]-?: {} extends Pick<T, K> ? never : K
277
- }[keyof T]
291
+ }[keyof T];
278
292
 
279
- type OptionalIfNotRequired<T extends [any]> = RequiredKeys<T[0]> extends never ? T | [] : T
293
+ type OptionalIfNotRequired<T extends [any]> = RequiredKeys<T[0]> extends never ? T | [] : T;
280
294
 
281
295
  type MakeOptional<Args extends any[]> = Args extends [infer Head, ...infer Tail]
282
296
  ? Tail extends []
283
297
  ? Head extends object
284
298
  ? OptionalIfNotRequired<[Omit<Head, 'onNode' | 'onCompiler' | 'onAccount'>
285
- & { onNode?: Node, onCompiler?: Compiler, onAccount?: AccountBase | EncodedData<'ak'> | Keypair }]>
299
+ & {
300
+ onNode?: Node;
301
+ onCompiler?: Compiler;
302
+ onAccount?: AccountBase | Encoded.AccountAddress | Keypair;
303
+ }]>
286
304
  : [Head]
287
305
  : [Head, ...MakeOptional<Tail>]
288
- : never
306
+ : never;
289
307
 
290
308
  type TransformMethods <Methods extends { [key: string]: Function }> =
291
309
  {
@@ -293,7 +311,7 @@ type TransformMethods <Methods extends { [key: string]: Function }> =
293
311
  Methods[Name] extends (...args: infer Args) => infer Ret
294
312
  ? (...args: MakeOptional<Args>) => Ret
295
313
  : never
296
- }
314
+ };
297
315
 
298
316
  interface AeSdkBaseMethods extends TransformMethods<typeof methods> {}
299
317
 
@@ -301,20 +319,20 @@ Object.assign(AeSdkBase.prototype, mapObject<Function, Function>(
301
319
  methods,
302
320
  ([name, handler]) => [
303
321
  name,
304
- async function (...args: any[]) {
305
- const instanceOptions = await this._getOptions()
306
- const lastArg = args[args.length - 1]
322
+ function methodWrapper(...args: any[]) {
323
+ const instanceOptions = this._getOptions();
324
+ const lastArg = args[args.length - 1];
307
325
  if (lastArg != null && typeof lastArg === 'object' && lastArg.constructor === Object) {
308
- Object.assign(lastArg, {
326
+ args[args.length - 1] = {
309
327
  ...instanceOptions,
310
328
  ...lastArg,
311
- ...lastArg.onAccount != null && { onAccount: this._resolveAccount(lastArg.onAccount) }
312
- })
313
- } else args.push(instanceOptions)
314
- return handler(...args)
315
- }
316
- ]
317
- ))
318
-
319
- export default AeSdkBase as new (options: ConstructorParameters<typeof AeSdkBase>[0]) =>
320
- AeSdkBase & AeSdkBaseMethods
329
+ ...lastArg.onAccount != null && { onAccount: this._resolveAccount(lastArg.onAccount) },
330
+ };
331
+ } else args.push(instanceOptions);
332
+ return handler(...args);
333
+ },
334
+ ],
335
+ ));
336
+
337
+ export default AeSdkBase as new (options?: ConstructorParameters<typeof AeSdkBase>[0]) =>
338
+ AeSdkBase & AeSdkBaseMethods;