@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
@@ -19,88 +19,103 @@
19
19
  * Generalized Account module - routines to use generalized account
20
20
  */
21
21
 
22
- import { TX_TYPE, MAX_AUTH_FUN_GAS, TxSchema } from '../tx/builder/schema'
23
- import { buildContractIdByContractTx, buildTx, BuiltTx, TxUnpacked, unpackTx } from '../tx/builder'
24
- import { _buildTx, BuildTxOptions, getVmVersion, prepareTxParams } from '../tx'
25
- import { hash } from '../utils/crypto'
26
- import { decode, EncodedData } from '../utils/encoder'
27
- import { IllegalArgumentError, MissingParamError, InvalidAuthDataError } from '../utils/errors'
28
- import { concatBuffers } from '../utils/other'
29
- import AccountBase from '../account/Base'
30
- import { getContractInstance } from './methods'
31
- import { send, SendOptions } from '../spend'
32
- import Node from '../Node'
33
- import { getAccount } from '../chain'
34
- import Compiler from './Compiler'
22
+ import { MAX_AUTH_FUN_GAS, TxSchema } from '../tx/builder/schema';
23
+ import { Tag } from '../tx/builder/constants';
24
+ import {
25
+ buildContractIdByContractTx, buildTx, BuiltTx, TxUnpacked, unpackTx,
26
+ } from '../tx/builder';
27
+ import {
28
+ _buildTx, BuildTxOptions, getVmVersion, prepareTxParams,
29
+ } from '../tx';
30
+ import { hash } from '../utils/crypto';
31
+ import { decode, Encoded, Encoding } from '../utils/encoder';
32
+ import { IllegalArgumentError, MissingParamError, InvalidAuthDataError } from '../utils/errors';
33
+ import { concatBuffers } from '../utils/other';
34
+ import AccountBase from '../account/Base';
35
+ import { getContractInstance } from './methods';
36
+ import { send, SendOptions } from '../spend';
37
+ import Node from '../Node';
38
+ import { getAccount } from '../chain';
39
+ import Compiler from './Compiler';
35
40
 
36
41
  /**
37
42
  * Check if account is GA
43
+ * @category contract
38
44
  * @param address - Account address
39
45
  * @param options - Options
40
46
  * @returns if account is GA
41
47
  */
42
- export async function isGA (
43
- address: EncodedData<'ak'>, options: Parameters<typeof getAccount>[1]
48
+ export async function isGA(
49
+ address: Encoded.AccountAddress,
50
+ options: Parameters<typeof getAccount>[1],
44
51
  ): Promise<boolean> {
45
- const { contractId } = await getAccount(address, options)
46
- return contractId != null
52
+ const { contractId } = await getAccount(address, options);
53
+ return contractId != null;
47
54
  }
48
55
 
49
56
  /**
50
57
  * Convert current account to GA
58
+ * @category contract
51
59
  * @param authFnName - Authorization function name
52
60
  * @param source - Auth contract source code
53
61
  * @param args - init arguments
54
62
  * @param options - Options
55
63
  * @returns General Account Object
56
64
  */
57
- export async function createGeneralizedAccount (
65
+ export async function createGeneralizedAccount(
58
66
  authFnName: string,
59
67
  source: string,
60
68
  args: any[],
61
- { onAccount, onCompiler, onNode, ...options }: CreateGeneralizedAccountOptions
69
+ {
70
+ onAccount, onCompiler, onNode, ...options
71
+ }: CreateGeneralizedAccountOptions,
62
72
  ): Promise<Readonly<{
63
- owner: EncodedData<'ak'>
64
- transaction: EncodedData<'th'>
65
- rawTx: EncodedData<'tx'>
66
- gaContractId: EncodedData<'ct'>
73
+ owner: Encoded.AccountAddress;
74
+ transaction: Encoded.TxHash;
75
+ rawTx: Encoded.Transaction;
76
+ gaContractId: Encoded.ContractAddress;
67
77
  }>> {
68
- const ownerId = await onAccount.address(options)
69
- if (await isGA(ownerId, { onNode })) throw new IllegalArgumentError(`Account ${ownerId} is already GA`)
78
+ const ownerId = await onAccount.address(options);
79
+ if (await isGA(ownerId, { onNode })) throw new IllegalArgumentError(`Account ${ownerId} is already GA`);
70
80
 
71
- const contract = await getContractInstance({ onAccount, onCompiler, onNode, source })
81
+ const contract = await getContractInstance({
82
+ onAccount, onCompiler, onNode, source,
83
+ });
72
84
 
73
- const tx = await _buildTx(TX_TYPE.gaAttach, {
85
+ const tx = await _buildTx(Tag.GaAttachTx, {
74
86
  ...options,
75
87
  onNode,
76
88
  code: await contract.compile(),
77
89
  gasLimit: options.gasLimit ?? await contract._estimateGas('init', args, options),
78
90
  ownerId,
79
91
  callData: contract.calldata.encode(contract._name, 'init', args),
80
- authFun: hash(authFnName)
81
- })
82
- const contractId = buildContractIdByContractTx(tx)
83
- const { hash: transaction, rawTx } = await send(tx, { onNode, onAccount, onCompiler, ...options })
92
+ authFun: hash(authFnName),
93
+ });
94
+ const contractId = buildContractIdByContractTx(tx);
95
+ const { hash: transaction, rawTx } = await send(tx, {
96
+ onNode, onAccount, onCompiler, ...options,
97
+ });
84
98
 
85
99
  return Object.freeze({
86
100
  owner: ownerId,
87
101
  transaction,
88
102
  rawTx,
89
- gaContractId: contractId
90
- })
103
+ gaContractId: contractId,
104
+ });
91
105
  }
92
106
 
93
107
  interface CreateGeneralizedAccountOptions extends
94
- BuildTxOptions<TX_TYPE.gaAttach, 'authFun' | 'callData' | 'code' | 'ownerId' | 'gasLimit'>,
108
+ BuildTxOptions<Tag.GaAttachTx, 'authFun' | 'callData' | 'code' | 'ownerId' | 'gasLimit'>,
95
109
  SendOptions {
96
- onAccount: AccountBase
97
- onCompiler: Compiler
98
- onNode: Node
99
- gasLimit?: number
110
+ onAccount: AccountBase;
111
+ onCompiler: Compiler;
112
+ onNode: Node;
113
+ gasLimit?: number;
100
114
  }
101
115
 
102
116
  /**
103
117
  * Create a metaTx transaction
118
+ * @category contract
104
119
  * @param rawTransaction - Inner transaction
105
120
  * @param authData - Object with gaMeta params
106
121
  * @param authFnName - Authorization function name
@@ -108,71 +123,77 @@ interface CreateGeneralizedAccountOptions extends
108
123
  * @param options.onAccount - Account to use
109
124
  * @returns Transaction string
110
125
  */
111
- export async function createMetaTx (
112
- rawTransaction: EncodedData<'tx'>,
126
+ export async function createMetaTx(
127
+ rawTransaction: Encoded.Transaction,
113
128
  authData: {
114
- gasLimit?: number
115
- callData?: EncodedData<'cb'>
116
- source?: string
117
- args?: any[]
129
+ gasLimit?: number;
130
+ callData?: Encoded.ContractBytearray;
131
+ source?: string;
132
+ args?: any[];
118
133
  },
119
134
  authFnName: string,
120
- { onAccount, onCompiler, onNode, ...options }:
121
- { onAccount: AccountBase, onCompiler: Compiler, onNode: Node }
122
- & Parameters<AccountBase['address']>[0]
123
- ): Promise<EncodedData<'tx'>> {
135
+ {
136
+ onAccount, onCompiler, onNode, ...options
137
+ }:
138
+ { onAccount: AccountBase; onCompiler: Compiler; onNode: Node }
139
+ & Parameters<AccountBase['address']>[0],
140
+ ): Promise<Encoded.Transaction> {
124
141
  const wrapInEmptySignedTx = (
125
- tx: EncodedData<'tx'> | Uint8Array | TxUnpacked<TxSchema>
126
- ): BuiltTx<TxSchema, 'tx'> => buildTx({ encodedTx: tx, signatures: [] }, TX_TYPE.signed)
142
+ tx: Encoded.Transaction | Uint8Array | TxUnpacked<TxSchema>,
143
+ ): BuiltTx<TxSchema, Encoding.Transaction> => (
144
+ buildTx({ encodedTx: tx, signatures: [] }, Tag.SignedTx)
145
+ );
127
146
 
128
- if (Object.keys(authData).length <= 0) throw new MissingParamError('authData is required')
147
+ if (Object.keys(authData).length <= 0) throw new MissingParamError('authData is required');
129
148
 
130
- const gasLimit = authData.gasLimit ?? MAX_AUTH_FUN_GAS
149
+ const gasLimit = authData.gasLimit ?? MAX_AUTH_FUN_GAS;
131
150
  if (gasLimit > MAX_AUTH_FUN_GAS) {
132
- throw new InvalidAuthDataError(`the maximum gasLimit value for ga authFun is ${MAX_AUTH_FUN_GAS}, got ${gasLimit}`)
151
+ throw new InvalidAuthDataError(`the maximum gasLimit value for ga authFun is ${MAX_AUTH_FUN_GAS}, got ${gasLimit}`);
133
152
  }
134
153
 
135
154
  const authCallData = authData.callData ?? await (async () => {
136
- if (authData.source == null || authData.args == null) throw new InvalidAuthDataError('Auth data must contain source code and arguments.')
155
+ if (authData.source == null || authData.args == null) throw new InvalidAuthDataError('Auth data must contain source code and arguments.');
137
156
  const contract = await getContractInstance({
138
- onAccount, onCompiler, onNode, source: authData.source
139
- })
140
- return contract.calldata.encode(contract._name, authFnName, authData.args)
141
- })()
157
+ onCompiler, onNode, source: authData.source,
158
+ });
159
+ return contract.calldata.encode(contract._name, authFnName, authData.args);
160
+ })();
142
161
 
143
- const { abiVersion } = await getVmVersion(TX_TYPE.contractCall, { onNode })
144
- const wrappedTx = wrapInEmptySignedTx(unpackTx<TX_TYPE.signed>(rawTransaction))
162
+ const { abiVersion } = await getVmVersion(Tag.ContractCallTx, { onNode });
163
+ const wrappedTx = wrapInEmptySignedTx(unpackTx<Tag.SignedTx>(rawTransaction));
145
164
  const params = {
146
165
  ...options,
147
166
  tx: {
148
167
  ...wrappedTx,
149
- tx: wrappedTx.txObject
168
+ tx: wrappedTx.txObject,
150
169
  },
170
+ // TODO: accept an address instead
151
171
  gaId: await onAccount.address(options),
152
172
  abiVersion,
153
173
  authData: authCallData,
154
174
  gasLimit,
155
- vsn: 2
156
- }
175
+ vsn: 2,
176
+ };
157
177
  // @ts-expect-error createMetaTx needs to be integrated into tx builder
158
- const { fee } = await prepareTxParams(TX_TYPE.gaMeta, { ...params, onNode })
159
- const { rlpEncoded: metaTxRlp } = buildTx({ ...params, fee }, TX_TYPE.gaMeta)
160
- return wrapInEmptySignedTx(metaTxRlp).tx
178
+ const { fee } = await prepareTxParams(Tag.GaMetaTx, { ...params, onNode });
179
+ const { rlpEncoded: metaTxRlp } = buildTx({ ...params, fee }, Tag.GaMetaTx);
180
+ return wrapInEmptySignedTx(metaTxRlp).tx;
161
181
  }
162
182
 
163
183
  /**
164
184
  * Build a transaction hash the same as `Auth.tx_hash`
185
+ * @category contract
165
186
  * @param transaction - tx-encoded transaction
166
187
  * @param options - Options
167
188
  * @param options.onNode - Node to use
168
189
  * @returns Transaction hash
169
190
  */
170
- export async function buildAuthTxHash (
171
- transaction: EncodedData<'tx'>,
172
- { onNode }: { onNode: Node }
191
+ export async function buildAuthTxHash(
192
+ transaction: Encoded.Transaction,
193
+ { onNode }: { onNode: Node },
173
194
  ): Promise<Uint8Array> {
174
- const { networkId } = await onNode.getStatus()
195
+ const { networkId } = await onNode.getStatus();
175
196
  return new Uint8Array(hash(
176
- concatBuffers([Buffer.from(networkId), decode(transaction)])
177
- ))
197
+ concatBuffers([Buffer.from(networkId), decode(transaction)]),
198
+ ));
178
199
  }
@@ -22,40 +22,43 @@
22
22
  * https://github.com/aeternity/protocol/tree/master/contracts and
23
23
  */
24
24
 
25
- import { AensName } from '../tx/builder/schema'
26
- import { decode, produceNameId } from '../tx/builder/helpers'
27
- import { concatBuffers } from '../utils/other'
28
- import { EncodedData, EncodingType } from '../utils/encoder'
29
- import AccountBase from '../account/Base'
30
- import Node from '../Node'
31
- export { default as getContractInstance } from './aci'
25
+ import { AensName } from '../tx/builder/constants';
26
+ import { produceNameId } from '../tx/builder/helpers';
27
+ import { concatBuffers } from '../utils/other';
28
+ import { decode, Encoded } from '../utils/encoder';
29
+ import AccountBase from '../account/Base';
30
+ import Node from '../Node';
31
+
32
+ export { default as getContractInstance } from './aci';
32
33
 
33
34
  /**
34
35
  * Utility method to create a delegate signature for a contract
36
+ * @category contract
35
37
  * @param ids - The list of id's to prepend
36
38
  * @param opt - Options
37
39
  * @param opt.onNode - Node to use
38
40
  * @param opt.onAccount - Account to use
39
41
  * @returns Signature in hex representation
40
42
  */
41
- async function delegateSignatureCommon (
42
- ids: Array<EncodedData<EncodingType>> = [],
43
+ async function delegateSignatureCommon(
44
+ ids: Encoded.Any[],
43
45
  { onAccount, onNode, ...opt }:
44
- { onAccount: AccountBase, onNode: Node } & Parameters<AccountBase['sign']>[1]
46
+ { onAccount: AccountBase; onNode: Node } & Parameters<AccountBase['sign']>[1],
45
47
  ): Promise<string> {
46
48
  const signature = await onAccount.sign(
47
49
  concatBuffers([
48
50
  Buffer.from((await onNode.getStatus()).networkId),
49
- ...ids.map(e => decode(e))
51
+ ...ids.map((e) => decode(e)),
50
52
  ]),
51
- opt
52
- )
53
- return Buffer.from(signature).toString('hex')
53
+ opt,
54
+ );
55
+ return Buffer.from(signature).toString('hex');
54
56
  }
55
57
 
56
58
  /**
57
59
  * Helper to generate a signature to delegate pre-claim/claim/transfer/revoke of a name to
58
60
  * a contract.
61
+ * @category contract
59
62
  * @param contractId - Contract Id
60
63
  * @param opt - Options
61
64
  * @param opt.name - The name
@@ -74,23 +77,24 @@ async function delegateSignatureCommon (
74
77
  * )
75
78
  * ```
76
79
  */
77
- export async function createAensDelegationSignature (
78
- contractId: EncodedData<'ct'>,
80
+ export async function createAensDelegationSignature(
81
+ contractId: Encoded.ContractAddress,
79
82
  opt: Parameters<AccountBase['address']>[0] & Parameters<typeof delegateSignatureCommon>[1] &
80
- { name?: AensName }
83
+ { name?: AensName },
81
84
  ): Promise<string> {
82
- return await delegateSignatureCommon(
85
+ return delegateSignatureCommon(
83
86
  [
84
87
  await opt.onAccount.address(opt),
85
88
  ...opt.name != null ? [produceNameId(opt.name)] : [],
86
- contractId
89
+ contractId,
87
90
  ],
88
- opt
89
- )
91
+ opt,
92
+ );
90
93
  }
91
94
 
92
95
  /**
93
96
  * Helper to generate a signature to delegate register/extend/respond of a Oracle to a contract.
97
+ * @category contract
94
98
  * @param contractId - Contract Id
95
99
  * @param opt - Options
96
100
  * @param opt.queryId - Oracle Query Id
@@ -107,12 +111,13 @@ export async function createAensDelegationSignature (
107
111
  * const respondSig = await aeSdk.createOracleDelegationSignature(contractId, { queryId })
108
112
  * ```
109
113
  */
110
- export async function createOracleDelegationSignature (
111
- contractId: EncodedData<'ct'>,
114
+ export async function createOracleDelegationSignature(
115
+ contractId: Encoded.ContractAddress,
112
116
  opt: Parameters<AccountBase['address']>[0] & Parameters<typeof delegateSignatureCommon>[1] &
113
- { queryId?: EncodedData<'oq'> }
117
+ { queryId?: Encoded.OracleQueryId },
114
118
  ): Promise<string> {
115
- return await delegateSignatureCommon(
116
- [opt.queryId ?? await opt.onAccount.address(opt), contractId], opt
117
- )
119
+ return delegateSignatureCommon(
120
+ [opt.queryId ?? await opt.onAccount.address(opt), contractId],
121
+ opt,
122
+ );
118
123
  }
@@ -0,0 +1,172 @@
1
+ import BigNumber from 'bignumber.js';
2
+ import { buildTx } from '../tx/builder';
3
+ import { Tag } from '../tx/builder/constants';
4
+ import { calculateMinFee as calculateMinFeeInternal } from '../tx/builder/field-types/fee';
5
+ import { TxParamsCommon } from '../tx/builder/schema';
6
+ import { AE_AMOUNT_FORMATS } from '../utils/amount-formatter';
7
+ import { mapObject } from '../utils/other';
8
+ import { Encoding } from '../utils/encoder';
9
+
10
+ export * from './methods';
11
+
12
+ /**
13
+ * @deprecated use NamePointer from apis/node instead
14
+ * @hidden
15
+ */
16
+ export interface Pointer {
17
+ key: string;
18
+ id: string;
19
+ }
20
+
21
+ /**
22
+ * @deprecated use genSalt instead
23
+ * @hidden
24
+ */
25
+ export function salt(): number {
26
+ return Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER));
27
+ }
28
+
29
+ /**
30
+ * @deprecated use genSalt instead
31
+ * @hidden
32
+ */
33
+ export const createSalt = salt;
34
+
35
+ /**
36
+ * Calculate min fee
37
+ * @category transaction builder
38
+ * @param txType - Transaction type
39
+ * @param options - Options object
40
+ * @param options.params - Tx params
41
+ * @deprecated use buildTx to generate transaction, unpack it and refer to `fee` field
42
+ * @hidden
43
+ * @example
44
+ * ```js
45
+ * calculateMinFee('spendTx', { gasLimit, params })
46
+ * ```
47
+ */
48
+ export function calculateMinFee(
49
+ txType: Tag,
50
+ { params, vsn, denomination }: CalculateMinFeeOptions,
51
+ ): BigNumber {
52
+ return calculateMinFeeInternal(
53
+ txType,
54
+ (fee: BigNumber) => (
55
+ // @ts-expect-error anyway this planned to be removed
56
+ buildTx({ ...params, _computingMinFee: fee }, txType, { vsn, denomination })
57
+ ),
58
+ );
59
+ }
60
+
61
+ interface CalculateMinFeeOptions {
62
+ params: TxParamsCommon;
63
+ vsn?: number;
64
+ denomination?: AE_AMOUNT_FORMATS;
65
+ }
66
+
67
+ /**
68
+ * @deprecated Maximum gas limit depends on transaction size, this value is outdated,
69
+ * sdk check/provides gasLimit by itself while building a transaction
70
+ * @hidden
71
+ */
72
+ export const GAS_MAX = 1600000 - 21000;
73
+
74
+ /**
75
+ * @deprecated use `Tag`
76
+ * @hidden
77
+ */
78
+ export enum TX_TYPE {
79
+ account = 10,
80
+ signed = 11,
81
+ spend = 12,
82
+ oracleRegister = 22,
83
+ oracleQuery = 23,
84
+ oracleResponse = 24,
85
+ oracleExtend = 25,
86
+ nameClaim = 32,
87
+ namePreClaim = 33,
88
+ nameUpdate = 34,
89
+ nameRevoke = 35,
90
+ nameTransfer = 36,
91
+ contract = 40,
92
+ contractCallResult = 41,
93
+ contractCreate = 42,
94
+ contractCall = 43,
95
+ channelCreate = 50,
96
+ channelDeposit = 51,
97
+ channelWithdraw = 52,
98
+ channelCloseMutual = 53,
99
+ channelCloseSolo = 54,
100
+ channelSlash = 55,
101
+ channelSettle = 56,
102
+ channelOffChain = 57,
103
+ channel = 58,
104
+ channelSnapshotSolo = 59,
105
+ proofOfInclusion = 60,
106
+ stateTrees = 62,
107
+ merklePatriciaTree = 63,
108
+ merklePatriciaTreeValue = 64,
109
+ sophiaByteCode = 70,
110
+ gaAttach = 80,
111
+ gaMeta = 81,
112
+ payingFor = 82,
113
+ channelForceProgress = 521,
114
+ channelOffChainUpdateTransfer = 570,
115
+ channelOffChainUpdateDeposit = 571,
116
+ channelOffChainUpdateWithdrawal = 572,
117
+ channelOffChainCreateContract = 573,
118
+ channelOffChainCallContract = 574,
119
+ channelReconnect = 575,
120
+ contractsTree = 621,
121
+ contractCallsTree = 622,
122
+ channelsTree = 623,
123
+ nameserviceTree = 624,
124
+ oraclesTree = 625,
125
+ accountsTree = 626,
126
+ }
127
+
128
+ /**
129
+ * @deprecated use `readId`, `writeId`
130
+ * @hidden
131
+ */
132
+ export const ID_TAG = {
133
+ account: 1,
134
+ name: 2,
135
+ commitment: 3,
136
+ oracle: 4,
137
+ contract: 5,
138
+ channel: 6,
139
+ } as const;
140
+
141
+ /**
142
+ * @deprecated use `readId`, `writeId`
143
+ * @hidden
144
+ */
145
+ export const PREFIX_ID_TAG = {
146
+ ak: ID_TAG.account,
147
+ nm: ID_TAG.name,
148
+ cm: ID_TAG.commitment,
149
+ ok: ID_TAG.oracle,
150
+ ct: ID_TAG.contract,
151
+ ch: ID_TAG.channel,
152
+ } as const;
153
+
154
+ /**
155
+ * @deprecated use `readId`, `writeId`
156
+ * @hidden
157
+ */
158
+ export const ID_TAG_PREFIX = mapObject(
159
+ PREFIX_ID_TAG,
160
+ ([key, value]: [Encoding, number]) => [value, key],
161
+ );
162
+
163
+ /**
164
+ * @deprecated use `getDefaultPointerKey`
165
+ * @hidden
166
+ */
167
+ export enum POINTER_KEY_BY_PREFIX {
168
+ ak = 'account_pubkey',
169
+ ok = 'oracle_pubkey',
170
+ ct = 'contract_pubkey',
171
+ ch = 'channel',
172
+ }
@@ -0,0 +1,25 @@
1
+ import { Encoded } from '../utils/encoder';
2
+ import { createMetaTx } from '../contract/ga';
3
+ import Node from '../Node';
4
+
5
+ /**
6
+ * @deprecated Use createMetaTx instead
7
+ * @hidden
8
+ */
9
+ export async function signUsingGA(
10
+ tx: Encoded.Transaction,
11
+ { authData, authFun, ...options }: {
12
+ authData: Parameters<typeof createMetaTx>[1];
13
+ authFun: Parameters<typeof createMetaTx>[2];
14
+ } & Parameters<typeof createMetaTx>[3],
15
+ ): Promise<Encoded.Transaction> {
16
+ return createMetaTx(tx, authData, authFun, options);
17
+ }
18
+
19
+ /**
20
+ * @deprecated Use getHeight instead
21
+ * @hidden
22
+ */
23
+ export async function height({ onNode }: { onNode: Node }): Promise<number> {
24
+ return (await onNode.getCurrentKeyBlockHeight()).height;
25
+ }
package/src/index.ts CHANGED
@@ -15,37 +15,42 @@
15
15
  * PERFORMANCE OF THIS SOFTWARE.
16
16
  */
17
17
 
18
- export * from './chain'
19
- export * from './utils/crypto'
20
- export * from './utils/keystore'
21
- export * from './utils/bytes'
22
- export * from './tx'
23
- export * from './tx/builder'
24
- export * from './tx/builder/helpers'
25
- export * from './tx/builder/schema'
26
- export * from './utils/amount-formatter'
27
- export * from './utils/hd-wallet'
28
- export * from './aens'
29
- export * from './contract/methods'
30
- export * from './oracle'
31
- export * from './spend'
32
- export * from './contract/ga'
18
+ export * from './chain';
19
+ export * from './utils/crypto';
20
+ export * from './utils/keystore';
21
+ export * from './utils/bytes';
22
+ export * from './tx';
23
+ export * from './tx/builder';
24
+ export * from './tx/builder/helpers';
25
+ export * from './tx/builder/constants';
26
+ export * from './tx/builder/schema';
27
+ export * from './tx/builder/address';
28
+ export * from './utils/amount-formatter';
29
+ export * from './utils/hd-wallet';
30
+ export {
31
+ sha256hash, encode, decode, Encoding,
32
+ } from './utils/encoder';
33
+ export * from './aens';
34
+ export * from './contract/methods';
35
+ export * from './oracle';
36
+ export * from './spend';
37
+ export * from './contract/ga';
38
+ export * from './deprecated';
33
39
 
34
- export { default as AeSdkBase } from './AeSdkBase'
35
- export { default as AeSdk } from './AeSdk'
36
- export { default as AeSdkAepp } from './AeSdkAepp'
37
- export { default as AeSdkWallet } from './AeSdkWallet'
38
- export { default as Node } from './Node'
39
- export { default as verifyTransaction } from './tx/validator'
40
- export { default as calculateMinFee } from './tx/min-fee'
41
- export { default as AccountBase } from './account/Base'
42
- export { default as MemoryAccount } from './account/Memory'
43
- export { default as Compiler } from './contract/Compiler'
44
- export { default as Channel } from './channel'
40
+ export { default as AeSdkBase } from './AeSdkBase';
41
+ export { default as AeSdk } from './AeSdk';
42
+ export { default as AeSdkAepp } from './AeSdkAepp';
43
+ export { default as AeSdkWallet } from './AeSdkWallet';
44
+ export { default as Node } from './Node';
45
+ export { default as verifyTransaction } from './tx/validator';
46
+ export { default as AccountBase } from './account/Base';
47
+ export { default as MemoryAccount } from './account/Memory';
48
+ export { default as Compiler } from './contract/Compiler';
49
+ export { default as Channel } from './channel';
45
50
 
46
- export { default as connectionProxy } from './aepp-wallet-communication/connection-proxy'
47
- export * from './aepp-wallet-communication/schema'
48
- export { default as walletDetector } from './aepp-wallet-communication/wallet-detector'
49
- export { default as BrowserRuntimeConnection } from './aepp-wallet-communication/connection/BrowserRuntime'
50
- export { default as BrowserWindowMessageConnection } from './aepp-wallet-communication/connection/BrowserWindowMessage'
51
- export * from './utils/errors'
51
+ export { default as connectionProxy } from './aepp-wallet-communication/connection-proxy';
52
+ export * from './aepp-wallet-communication/schema';
53
+ export { default as walletDetector } from './aepp-wallet-communication/wallet-detector';
54
+ export { default as BrowserRuntimeConnection } from './aepp-wallet-communication/connection/BrowserRuntime';
55
+ export { default as BrowserWindowMessageConnection } from './aepp-wallet-communication/connection/BrowserWindowMessage';
56
+ export * from './utils/errors';