@aeternity/aepp-sdk 10.0.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/README.md +15 -14
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +7 -27
  4. package/dist/aepp-sdk.browser-script.js.map +1 -1
  5. package/dist/aepp-sdk.browser.js +1 -1
  6. package/dist/aepp-sdk.browser.js.map +1 -1
  7. package/dist/aepp-sdk.js +1 -1
  8. package/dist/aepp-sdk.js.map +1 -1
  9. package/es/account/{base.js → base.mjs} +20 -10
  10. package/es/account/base.mjs.map +1 -0
  11. package/es/account/{memory.js → memory.mjs} +29 -14
  12. package/es/account/memory.mjs.map +1 -0
  13. package/es/account/{multiple.js → multiple.mjs} +10 -9
  14. package/es/account/multiple.mjs.map +1 -0
  15. package/es/ae/{aens.js → aens.mjs} +18 -22
  16. package/es/ae/aens.mjs.map +1 -0
  17. package/es/ae/{aepp.js → aepp.mjs} +9 -9
  18. package/es/ae/aepp.mjs.map +1 -0
  19. package/es/ae/contract.mjs +159 -0
  20. package/es/ae/contract.mjs.map +1 -0
  21. package/es/ae/{index.js → index.mjs} +8 -7
  22. package/es/ae/index.mjs.map +1 -0
  23. package/es/ae/{oracle.js → oracle.mjs} +33 -16
  24. package/es/ae/oracle.mjs.map +1 -0
  25. package/es/ae/{universal.js → universal.mjs} +10 -10
  26. package/es/ae/universal.mjs.map +1 -0
  27. package/es/ae/{wallet.js → wallet.mjs} +10 -10
  28. package/es/ae/wallet.mjs.map +1 -0
  29. package/es/aepp-wallet-communication/schema.d.ts +74 -0
  30. package/es/bignumber.d.ts +1 -7
  31. package/es/chain/{index.js → index.mjs} +20 -4
  32. package/es/chain/index.mjs.map +1 -0
  33. package/es/chain/{node.js → node.mjs} +121 -73
  34. package/es/chain/node.mjs.map +1 -0
  35. package/es/channel/{handlers.js → handlers.mjs} +18 -20
  36. package/es/channel/handlers.mjs.map +1 -0
  37. package/es/channel/{index.js → index.mjs} +7 -7
  38. package/es/channel/index.mjs.map +1 -0
  39. package/es/channel/{internal.js → internal.mjs} +49 -32
  40. package/es/channel/internal.mjs.map +1 -0
  41. package/es/contract/aci.mjs +477 -0
  42. package/es/contract/aci.mjs.map +1 -0
  43. package/es/contract/compiler.mjs +115 -0
  44. package/es/contract/compiler.mjs.map +1 -0
  45. package/es/contract/ga/helpers.mjs +30 -0
  46. package/es/contract/ga/helpers.mjs.map +1 -0
  47. package/es/contract/ga/{index.js → index.mjs} +36 -28
  48. package/es/contract/ga/index.mjs.map +1 -0
  49. package/es/errors.d.ts +284 -0
  50. package/es/index.mjs +57 -0
  51. package/es/index.mjs.map +1 -0
  52. package/es/node-pool/{index.js → index.mjs} +11 -10
  53. package/es/node-pool/index.mjs.map +1 -0
  54. package/es/{node.js → node.mjs} +9 -8
  55. package/es/node.mjs.map +1 -0
  56. package/es/tx/builder/field-types.mjs +74 -0
  57. package/es/tx/builder/field-types.mjs.map +1 -0
  58. package/es/tx/builder/{helpers.js → helpers.mjs} +114 -56
  59. package/es/tx/builder/helpers.mjs.map +1 -0
  60. package/es/tx/builder/{index.js → index.mjs} +79 -68
  61. package/es/tx/builder/index.mjs.map +1 -0
  62. package/es/tx/builder/{schema.js → schema.mjs} +11 -65
  63. package/es/tx/builder/schema.mjs.map +1 -0
  64. package/es/tx/{index.js → index.mjs} +5 -2
  65. package/es/tx/index.mjs.map +1 -0
  66. package/es/tx/{tx-object.js → tx-object.mjs} +22 -15
  67. package/es/tx/tx-object.mjs.map +1 -0
  68. package/es/tx/{tx.js → tx.mjs} +15 -14
  69. package/es/tx/tx.mjs.map +1 -0
  70. package/es/tx/{validator.js → validator.mjs} +72 -33
  71. package/es/tx/validator.mjs.map +1 -0
  72. package/es/typings/blakejs/index.d.mjs +2 -0
  73. package/es/typings/blakejs/{index.d.js.map → index.d.mjs.map} +1 -1
  74. package/es/utils/aepp-wallet-communication/connection/{browser-runtime.js → browser-runtime.mjs} +7 -6
  75. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +1 -0
  76. package/es/utils/aepp-wallet-communication/connection/{browser-window-message.js → browser-window-message.mjs} +10 -11
  77. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +1 -0
  78. package/es/utils/aepp-wallet-communication/connection/{index.js → index.mjs} +5 -2
  79. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +1 -0
  80. package/es/utils/aepp-wallet-communication/{content-script-bridge.js → content-script-bridge.mjs} +6 -5
  81. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +1 -0
  82. package/es/utils/aepp-wallet-communication/{helpers.js → helpers.mjs} +3 -14
  83. package/es/utils/aepp-wallet-communication/helpers.mjs.map +1 -0
  84. package/es/utils/aepp-wallet-communication/rpc/{aepp-rpc.js → aepp-rpc.mjs} +113 -67
  85. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +1 -0
  86. package/es/utils/aepp-wallet-communication/rpc/{rpc-client.js → rpc-client.mjs} +14 -9
  87. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +1 -0
  88. package/es/utils/aepp-wallet-communication/rpc/{wallet-rpc.js → wallet-rpc.mjs} +71 -63
  89. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +1 -0
  90. package/es/utils/aepp-wallet-communication/schema.mjs +102 -0
  91. package/es/utils/aepp-wallet-communication/schema.mjs.map +1 -0
  92. package/es/utils/aepp-wallet-communication/{wallet-detector.js → wallet-detector.mjs} +6 -5
  93. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  94. package/es/utils/{amount-formatter.js → amount-formatter.mjs} +14 -7
  95. package/es/utils/amount-formatter.mjs.map +1 -0
  96. package/es/utils/{async-init.js → async-init.mjs} +8 -11
  97. package/es/utils/async-init.mjs.map +1 -0
  98. package/es/utils/{bignumber.js → bignumber.mjs} +2 -9
  99. package/es/utils/bignumber.mjs.map +1 -0
  100. package/es/utils/{bytes.js → bytes.mjs} +16 -8
  101. package/es/utils/bytes.mjs.map +1 -0
  102. package/es/utils/{crypto-ts.js → crypto-ts.mjs} +11 -3
  103. package/es/utils/crypto-ts.mjs.map +1 -0
  104. package/es/utils/{crypto.js → crypto.mjs} +40 -105
  105. package/es/utils/crypto.mjs.map +1 -0
  106. package/es/utils/errors.mjs +689 -0
  107. package/es/utils/errors.mjs.map +1 -0
  108. package/es/utils/{hd-wallet.js → hd-wallet.mjs} +33 -34
  109. package/es/utils/hd-wallet.mjs.map +1 -0
  110. package/es/utils/{json-big.js → json-big.mjs} +1 -1
  111. package/es/utils/{json-big.js.map → json-big.mjs.map} +1 -1
  112. package/es/utils/{keystore.js → keystore.mjs} +63 -51
  113. package/es/utils/keystore.mjs.map +1 -0
  114. package/es/utils/{mptree.js → mptree.mjs} +21 -12
  115. package/es/utils/mptree.mjs.map +1 -0
  116. package/es/utils/{other.js → other.mjs} +2 -2
  117. package/es/utils/other.mjs.map +1 -0
  118. package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
  119. package/es/utils/{semver-satisfies.js.map → semver-satisfies.mjs.map} +1 -1
  120. package/es/utils/{string.js → string.mjs} +1 -1
  121. package/es/utils/{string.js.map → string.mjs.map} +1 -1
  122. package/es/utils/{swagger.js → swagger.mjs} +46 -14
  123. package/es/utils/swagger.mjs.map +1 -0
  124. package/package.json +46 -55
  125. package/src/account/memory.js +13 -8
  126. package/src/account/multiple.js +12 -4
  127. package/src/ae/aens.js +12 -17
  128. package/src/ae/aepp.js +2 -2
  129. package/src/ae/contract.js +15 -152
  130. package/src/ae/index.js +2 -1
  131. package/src/ae/oracle.js +25 -10
  132. package/src/ae/universal.js +2 -2
  133. package/src/ae/wallet.js +2 -2
  134. package/src/chain/index.js +21 -2
  135. package/src/chain/node.js +80 -53
  136. package/src/channel/handlers.js +20 -17
  137. package/src/channel/internal.js +30 -24
  138. package/src/contract/{aci/index.js → aci.js} +152 -93
  139. package/src/contract/compiler.js +22 -117
  140. package/src/contract/ga/helpers.js +7 -5
  141. package/src/contract/ga/index.js +27 -24
  142. package/src/index.js +7 -8
  143. package/src/node-pool/index.js +9 -8
  144. package/src/node.js +5 -7
  145. package/src/tx/builder/field-types.js +61 -0
  146. package/src/tx/builder/helpers.js +113 -58
  147. package/src/tx/builder/index.js +39 -34
  148. package/src/tx/builder/schema.js +11 -25
  149. package/src/tx/tx-object.js +10 -9
  150. package/src/tx/tx.js +17 -8
  151. package/src/tx/validator.js +25 -5
  152. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +8 -3
  153. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +10 -6
  154. package/src/utils/aepp-wallet-communication/content-script-bridge.js +5 -4
  155. package/src/utils/aepp-wallet-communication/helpers.js +2 -12
  156. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +81 -55
  157. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +15 -6
  158. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +60 -49
  159. package/src/utils/aepp-wallet-communication/schema.ts +80 -0
  160. package/src/utils/aepp-wallet-communication/wallet-detector.js +3 -2
  161. package/src/utils/amount-formatter.ts +4 -3
  162. package/src/utils/async-init.js +10 -6
  163. package/src/utils/bignumber.ts +1 -9
  164. package/src/utils/bytes.ts +3 -2
  165. package/src/utils/crypto-ts.ts +2 -2
  166. package/src/utils/crypto.js +9 -92
  167. package/src/utils/errors.ts +683 -0
  168. package/src/utils/hd-wallet.js +11 -26
  169. package/src/utils/keystore.js +47 -51
  170. package/src/utils/mptree.ts +12 -6
  171. package/src/utils/swagger.js +67 -44
  172. package/CHANGELOG.md +0 -1603
  173. package/es/account/base.js.map +0 -1
  174. package/es/account/memory.js.map +0 -1
  175. package/es/account/multiple.js.map +0 -1
  176. package/es/ae/aens.js.map +0 -1
  177. package/es/ae/aepp.js.map +0 -1
  178. package/es/ae/contract.js +0 -312
  179. package/es/ae/contract.js.map +0 -1
  180. package/es/ae/index.js.map +0 -1
  181. package/es/ae/oracle.js.map +0 -1
  182. package/es/ae/universal.js.map +0 -1
  183. package/es/ae/wallet.js.map +0 -1
  184. package/es/chain/index.js.map +0 -1
  185. package/es/chain/node.js.map +0 -1
  186. package/es/channel/handlers.js.map +0 -1
  187. package/es/channel/index.js.map +0 -1
  188. package/es/channel/internal.js.map +0 -1
  189. package/es/contract/aci/helpers.js +0 -298
  190. package/es/contract/aci/helpers.js.map +0 -1
  191. package/es/contract/aci/index.js +0 -361
  192. package/es/contract/aci/index.js.map +0 -1
  193. package/es/contract/aci/transformation.js +0 -66
  194. package/es/contract/aci/transformation.js.map +0 -1
  195. package/es/contract/compiler.js +0 -244
  196. package/es/contract/compiler.js.map +0 -1
  197. package/es/contract/ga/helpers.js +0 -22
  198. package/es/contract/ga/helpers.js.map +0 -1
  199. package/es/contract/ga/index.js.map +0 -1
  200. package/es/contract/index.js +0 -162
  201. package/es/contract/index.js.map +0 -1
  202. package/es/index.js +0 -57
  203. package/es/index.js.map +0 -1
  204. package/es/node-pool/index.js.map +0 -1
  205. package/es/node.js.map +0 -1
  206. package/es/tx/builder/helpers.js.map +0 -1
  207. package/es/tx/builder/index.js.map +0 -1
  208. package/es/tx/builder/schema.js.map +0 -1
  209. package/es/tx/index.js.map +0 -1
  210. package/es/tx/tx-object.js.map +0 -1
  211. package/es/tx/tx.js.map +0 -1
  212. package/es/tx/validator.js.map +0 -1
  213. package/es/typings/blakejs/index.d.js +0 -2
  214. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
  215. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
  216. package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
  217. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
  218. package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
  219. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
  220. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
  221. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
  222. package/es/utils/aepp-wallet-communication/schema.js +0 -107
  223. package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
  224. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
  225. package/es/utils/amount-formatter.js.map +0 -1
  226. package/es/utils/async-init.js.map +0 -1
  227. package/es/utils/bignumber.js.map +0 -1
  228. package/es/utils/bytes.js.map +0 -1
  229. package/es/utils/crypto-ts.js.map +0 -1
  230. package/es/utils/crypto.js.map +0 -1
  231. package/es/utils/hd-wallet.js.map +0 -1
  232. package/es/utils/keystore.js.map +0 -1
  233. package/es/utils/mptree.js.map +0 -1
  234. package/es/utils/other.js.map +0 -1
  235. package/es/utils/swagger.js.map +0 -1
  236. package/src/contract/aci/transformation.js +0 -72
  237. package/src/contract/index.js +0 -163
  238. package/src/utils/aepp-wallet-communication/schema.js +0 -108
@@ -1,11 +1,21 @@
1
+ import _buffer from "buffer";
2
+ const {
3
+ Buffer: _Buffer
4
+ } = _buffer;
1
5
  import BigNumber from 'bignumber.js';
2
- import { decode as rlpDecode, encode as rlpEncode } from 'rlp';
3
- import { AE_AMOUNT_FORMATS, formatAmount } from '../../utils/amount-formatter';
4
- import { hash } from '../../utils/crypto';
5
- import { DEFAULT_FEE, FIELD_TYPES, OBJECT_ID_TX_TYPE, PREFIX_ID_TAG, TX_DESERIALIZATION_SCHEMA, TX_FEE_BASE_GAS, TX_FEE_OTHER_GAS, TX_SERIALIZATION_SCHEMA, TX_TYPE, VALIDATION_MESSAGE, VSN } from './schema';
6
- import { readInt, readId, readPointers, writeId, writeInt, buildPointers, encode, decode } from './helpers';
7
- import { toBytes } from '../../utils/bytes';
8
- import MPTree from '../../utils/mptree';
6
+ import _rlp from 'rlp';
7
+ const {
8
+ decode: rlpDecode,
9
+ encode: rlpEncode
10
+ } = _rlp;
11
+ import { AE_AMOUNT_FORMATS, formatAmount } from "../../utils/amount-formatter.mjs";
12
+ import { hash } from "../../utils/crypto.mjs";
13
+ import { Field } from "./field-types.mjs";
14
+ import { DEFAULT_FEE, FIELD_TYPES, OBJECT_ID_TX_TYPE, TX_DESERIALIZATION_SCHEMA, TX_FEE_BASE_GAS, TX_FEE_OTHER_GAS, TX_SERIALIZATION_SCHEMA, TX_TYPE, VSN } from "./schema.mjs";
15
+ import { readInt, readId, readPointers, writeId, writeInt, buildPointers, encode, decode } from "./helpers.mjs";
16
+ import { toBytes } from "../../utils/bytes.mjs";
17
+ import MPTree from "../../utils/mptree.mjs";
18
+ import { InvalidTxParamsError, SchemaNotFoundError } from "../../utils/errors.mjs";
9
19
  /**
10
20
  * JavaScript-based Transaction builder
11
21
  * @module @aeternity/aepp-sdk/es/tx/builder
@@ -26,14 +36,12 @@ function deserializeField(value, type, prefix) {
26
36
  {
27
37
  const [vm,, abi] = value;
28
38
  return {
29
- vmVersion: readInt(Buffer.from([vm])),
30
- abiVersion: readInt(Buffer.from([abi]))
39
+ vmVersion: readInt(_Buffer.from([vm])),
40
+ abiVersion: readInt(_Buffer.from([abi]))
31
41
  };
32
42
  }
33
43
 
34
44
  case FIELD_TYPES.amount:
35
- return readInt(value);
36
-
37
45
  case FIELD_TYPES.int:
38
46
  return readInt(value);
39
47
 
@@ -111,11 +119,14 @@ function deserializeField(value, type, prefix) {
111
119
  }, {});
112
120
 
113
121
  default:
122
+ if (type.prototype instanceof Field) return type.deserialize(value);
114
123
  return value;
115
124
  }
116
125
  }
117
126
 
118
- function serializeField(value, type, prefix) {
127
+ function serializeField(value, type, prefix, params) {
128
+ var _value$rlpEncoded;
129
+
119
130
  switch (type) {
120
131
  case FIELD_TYPES.amount:
121
132
  case FIELD_TYPES.int:
@@ -128,7 +139,7 @@ function serializeField(value, type, prefix) {
128
139
  return value.map(writeId);
129
140
 
130
141
  case FIELD_TYPES.bool:
131
- return Buffer.from([value ? 1 : 0]);
142
+ return _Buffer.from([value ? 1 : 0]);
132
143
 
133
144
  case FIELD_TYPES.binary:
134
145
  return decode(value, prefix);
@@ -137,10 +148,10 @@ function serializeField(value, type, prefix) {
137
148
  return decode(value, 'ss');
138
149
 
139
150
  case FIELD_TYPES.hex:
140
- return Buffer.from(value, 'hex');
151
+ return _Buffer.from(value, 'hex');
141
152
 
142
153
  case FIELD_TYPES.signatures:
143
- return value.map(Buffer.from);
154
+ return value.map(_Buffer.from);
144
155
 
145
156
  case FIELD_TYPES.payload:
146
157
  return typeof value === 'string' && value.split('_')[0] === 'ba' ? decode(value, 'ba') : toBytes(value);
@@ -152,13 +163,13 @@ function serializeField(value, type, prefix) {
152
163
  return buildPointers(value);
153
164
 
154
165
  case FIELD_TYPES.rlpBinary:
155
- return value.rlpEncoded ?? value;
166
+ return (_value$rlpEncoded = value.rlpEncoded) !== null && _value$rlpEncoded !== void 0 ? _value$rlpEncoded : value;
156
167
 
157
168
  case FIELD_TYPES.mptrees:
158
169
  return value.map(t => t.serialize());
159
170
 
160
171
  case FIELD_TYPES.ctVersion:
161
- return Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)]);
172
+ return _Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)]);
162
173
 
163
174
  case FIELD_TYPES.callReturnType:
164
175
  switch (value) {
@@ -176,60 +187,56 @@ function serializeField(value, type, prefix) {
176
187
  }
177
188
 
178
189
  default:
190
+ if (type.prototype instanceof Field) return type.serialize(value, params);
179
191
  return value;
180
192
  }
181
193
  }
182
194
 
183
- function validateField(value, key, type, prefix) {
184
- const assert = (valid, params) => valid ? {} : {
185
- [key]: VALIDATION_MESSAGE[type](params)
186
- }; // All fields are required
187
-
188
-
189
- if (value === undefined || value === null) return {
190
- [key]: 'Field is required'
191
- }; // Validate type of value
195
+ function validateField(value, type, prefix) {
196
+ // All fields are required
197
+ if (value === undefined || value === null) return 'Field is required'; // Validate type of value
192
198
 
193
199
  switch (type) {
194
200
  case FIELD_TYPES.amount:
195
201
  case FIELD_TYPES.int:
196
202
  {
197
- const isMinusValue = (!isNaN(value) || BigNumber.isBigNumber(value)) && BigNumber(value).lt(0);
198
- return assert((!isNaN(value) || BigNumber.isBigNumber(value)) && BigNumber(value).gte(0), {
199
- value,
200
- isMinusValue
201
- });
203
+ if (isNaN(value) && !BigNumber.isBigNumber(value)) {
204
+ return `${value} is not of type Number or BigNumber`;
205
+ }
206
+
207
+ if (new BigNumber(value).lt(0)) return `${value} must be >= 0`;
208
+ return;
202
209
  }
203
210
 
204
211
  case FIELD_TYPES.id:
205
212
  {
206
213
  const prefixes = Array.isArray(prefix) ? prefix : [prefix];
207
- const p = prefixes.find(p => p === value.split('_')[0]);
208
- return assert(p && PREFIX_ID_TAG[value.split('_')[0]], {
209
- value,
210
- prefix
211
- });
212
- }
213
214
 
214
- case FIELD_TYPES.binary:
215
- return assert(value.split('_')[0] === prefix, {
216
- prefix,
217
- value
218
- });
215
+ if (!prefixes.includes(value.split('_')[0])) {
216
+ return `'${value}' prefix doesn't match expected prefix '${prefix}'`;
217
+ }
219
218
 
220
- case FIELD_TYPES.string:
221
- return assert(true);
219
+ return;
220
+ }
222
221
 
223
222
  case FIELD_TYPES.ctVersion:
224
- return assert(typeof value === 'object' && Object.prototype.hasOwnProperty.call(value, 'abiVersion') && Object.prototype.hasOwnProperty.call(value, 'vmVersion'));
223
+ if (!(value !== null && value !== void 0 && value.abiVersion) || !(value !== null && value !== void 0 && value.vmVersion)) {
224
+ return 'Value must be an object with "vmVersion" and "abiVersion" fields';
225
+ }
226
+
227
+ return;
225
228
 
226
229
  case FIELD_TYPES.pointers:
227
- return assert(Array.isArray(value) && !value.find(e => e !== Object(e)), {
228
- value
229
- });
230
+ if (!Array.isArray(value)) return 'Value must be of type Array';
231
+
232
+ if (value.some(p => !(p !== null && p !== void 0 && p.key) || !(p !== null && p !== void 0 && p.id))) {
233
+ return 'Value must contains only object\'s like \'{key: "account_pubkey", id: "ak_lkamsflkalsdalksdlasdlasdlamd"}\'';
234
+ }
235
+
236
+ if (value.length > 32) {
237
+ return `Expected 32 pointers or less, got ${value.length} instead`;
238
+ }
230
239
 
231
- default:
232
- return {};
233
240
  }
234
241
  }
235
242
 
@@ -401,13 +408,17 @@ export function validateParams(params, schema, _ref8) {
401
408
  let {
402
409
  excludeKeys = []
403
410
  } = _ref8;
404
- return schema.filter(_ref9 => {
411
+ return Object.fromEntries(schema // TODO: allow optional keys in schema
412
+ .filter(_ref9 => {
405
413
  let [key] = _ref9;
406
- return !excludeKeys.includes(key) && key !== 'payload';
407
- }).reduce((acc, _ref10) => {
414
+ return !excludeKeys.includes(key) && !['payload', 'nameFee', 'deposit'].includes(key);
415
+ }).map(_ref10 => {
408
416
  let [key, type, prefix] = _ref10;
409
- return Object.assign(acc, validateField(params[key], key, type, prefix));
410
- }, {});
417
+ return [key, validateField(params[key], type, prefix)];
418
+ }).filter(_ref11 => {
419
+ let [, message] = _ref11;
420
+ return message;
421
+ }));
411
422
  }
412
423
  /**
413
424
  * Build binary transaction
@@ -427,8 +438,8 @@ export function buildRawTx(params, schema) {
427
438
  excludeKeys = [],
428
439
  denomination = AE_AMOUNT_FORMATS.AETTOS
429
440
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
430
- const filteredSchema = schema.filter(_ref11 => {
431
- let [key] = _ref11;
441
+ const filteredSchema = schema.filter(_ref12 => {
442
+ let [key] = _ref12;
432
443
  return !excludeKeys.includes(key);
433
444
  }); // Transform `amount` type fields to `aettos`
434
445
 
@@ -441,12 +452,12 @@ export function buildRawTx(params, schema) {
441
452
  });
442
453
 
443
454
  if (Object.keys(valid).length) {
444
- throw new Error('Transaction build error. ' + JSON.stringify(valid));
455
+ throw new InvalidTxParamsError('Transaction build error. ' + JSON.stringify(valid));
445
456
  }
446
457
 
447
- return filteredSchema.map(_ref12 => {
448
- let [key, fieldType, prefix] = _ref12;
449
- return serializeField(params[key], fieldType, prefix);
458
+ return filteredSchema.map(_ref13 => {
459
+ let [key, fieldType, prefix] = _ref13;
460
+ return serializeField(params[key], fieldType, prefix, params);
450
461
  });
451
462
  }
452
463
  /**
@@ -459,8 +470,8 @@ export function buildRawTx(params, schema) {
459
470
  */
460
471
 
461
472
  export function unpackRawTx(binary, schema) {
462
- return schema.reduce((acc, _ref13, index) => {
463
- let [key, fieldType, prefix] = _ref13;
473
+ return schema.reduce((acc, _ref14, index) => {
474
+ let [key, fieldType, prefix] = _ref14;
464
475
  return Object.assign(acc, {
465
476
  [key]: deserializeField(binary[index], fieldType, prefix)
466
477
  });
@@ -474,22 +485,22 @@ export function unpackRawTx(binary, schema) {
474
485
  * @return {Object} Schema
475
486
  */
476
487
 
477
- const getSchema = _ref14 => {
488
+ const getSchema = _ref15 => {
478
489
  let {
479
490
  vsn,
480
491
  objId,
481
492
  type
482
- } = _ref14;
493
+ } = _ref15;
483
494
  const isDeserialize = !!objId;
484
495
  const firstKey = isDeserialize ? objId : type;
485
496
  const schema = isDeserialize ? TX_DESERIALIZATION_SCHEMA : TX_SERIALIZATION_SCHEMA;
486
497
 
487
498
  if (!schema[firstKey]) {
488
- throw new Error(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type}`);
499
+ throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type}`);
489
500
  }
490
501
 
491
502
  if (!schema[firstKey][vsn]) {
492
- throw new Error(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type} version ${vsn}`);
503
+ throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type} version ${vsn}`);
493
504
  }
494
505
 
495
506
  return schema[firstKey][vsn];
@@ -592,4 +603,4 @@ export default {
592
603
  validateParams,
593
604
  buildTxHash
594
605
  };
595
- //# sourceMappingURL=index.js.map
606
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tx/builder/index.js"],"names":["BigNumber","AE_AMOUNT_FORMATS","formatAmount","hash","Field","DEFAULT_FEE","FIELD_TYPES","OBJECT_ID_TX_TYPE","TX_DESERIALIZATION_SCHEMA","TX_FEE_BASE_GAS","TX_FEE_OTHER_GAS","TX_SERIALIZATION_SCHEMA","TX_TYPE","VSN","readInt","readId","readPointers","writeId","writeInt","buildPointers","encode","decode","toBytes","MPTree","InvalidTxParamsError","SchemaNotFoundError","ORACLE_TTL_TYPES","delta","block","deserializeField","value","type","prefix","ctVersion","vm","abi","vmVersion","from","abiVersion","amount","int","id","ids","map","bool","binary","stateTree","string","toString","payload","pointers","rlpBinary","unpackTx","rlpBinaries","v","rawBinary","hex","offChainUpdates","callStack","mptrees","t","callReturnType","sophiaCodeTypeInfo","reduce","acc","funHash","fnName","argType","outType","prototype","deserialize","serializeField","params","signatures","split","rlpEncoded","serialize","validateField","undefined","isNaN","isBigNumber","lt","prefixes","Array","isArray","includes","some","p","key","length","transformParams","schema","denomination","filter","_","schemaKeys","k","Object","entries","getOracleRelativeTtl","txType","ttlKey","oracleRegister","oracleExtend","oracleQuery","oracleResponse","calculateMinFee","gas","vsn","multiplier","times","actualFee","buildFee","fee","expected","eq","txWithOutFee","buildTx","txSize","plus","relativeTtl","innerTxSize","gaMeta","payingFor","tx","encodedTx","calculateFee","showWarning","console","warn","validateParams","excludeKeys","fromEntries","message","buildRawTx","AETTOS","filteredSchema","valid","keys","JSON","stringify","fieldType","unpackRawTx","index","assign","getSchema","objId","isDeserialize","firstKey","tag","e","rlpEncode","txObject","fromRlpBinary","rlpDecode","buildTxHash","rawTx","data","startsWith"],"mappings":"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","sourcesContent":["import BigNumber from 'bignumber.js'\nimport { decode as rlpDecode, encode as rlpEncode } from 'rlp'\nimport { AE_AMOUNT_FORMATS, formatAmount } from '../../utils/amount-formatter'\nimport { hash } from '../../utils/crypto'\nimport { Field } from './field-types'\n\nimport {\n DEFAULT_FEE,\n FIELD_TYPES,\n OBJECT_ID_TX_TYPE,\n TX_DESERIALIZATION_SCHEMA,\n TX_FEE_BASE_GAS,\n TX_FEE_OTHER_GAS,\n TX_SERIALIZATION_SCHEMA,\n TX_TYPE,\n VSN\n} from './schema'\nimport {\n readInt,\n readId,\n readPointers,\n writeId,\n writeInt,\n buildPointers,\n encode,\n decode\n} from './helpers'\nimport { toBytes } from '../../utils/bytes'\nimport MPTree from '../../utils/mptree'\nimport { InvalidTxParamsError, SchemaNotFoundError } from '../../utils/errors'\n\n/**\n * JavaScript-based Transaction builder\n * @module @aeternity/aepp-sdk/es/tx/builder\n * @export TxBuilder\n * @example import { TxBuilder } from '@aeternity/aepp-sdk'\n */\n\nconst ORACLE_TTL_TYPES = {\n delta: 'delta',\n block: 'block'\n}\n\n// SERIALIZE AND DESERIALIZE PART\nfunction deserializeField (value, type, prefix) {\n if (!value) return ''\n switch (type) {\n case FIELD_TYPES.ctVersion: {\n const [vm, , abi] = value\n return { vmVersion: readInt(Buffer.from([vm])), abiVersion: readInt(Buffer.from([abi])) }\n }\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int:\n return readInt(value)\n case FIELD_TYPES.id:\n return readId(value)\n case FIELD_TYPES.ids:\n return value.map(readId)\n case FIELD_TYPES.bool:\n return value[0] === 1\n case FIELD_TYPES.binary:\n return encode(value, prefix)\n case FIELD_TYPES.stateTree:\n return encode(value, 'ss')\n case FIELD_TYPES.string:\n return value.toString()\n case FIELD_TYPES.payload:\n return encode(value, 'ba')\n case FIELD_TYPES.pointers:\n return readPointers(value)\n case FIELD_TYPES.rlpBinary:\n return unpackTx(value, true)\n case FIELD_TYPES.rlpBinaries:\n return value.map(v => unpackTx(v, true))\n case FIELD_TYPES.rawBinary:\n return value\n case FIELD_TYPES.hex:\n return value.toString('hex')\n case FIELD_TYPES.offChainUpdates:\n return value.map(v => unpackTx(v, true))\n case FIELD_TYPES.callStack:\n // TODO: fix this\n return [readInt(value)]\n case FIELD_TYPES.mptrees:\n return value.map(t => new MPTree(t))\n case FIELD_TYPES.callReturnType:\n switch (readInt(value)) {\n case '0': return 'ok'\n case '1': return 'error'\n case '2': return 'revert'\n default: return value\n }\n case FIELD_TYPES.sophiaCodeTypeInfo:\n return value\n .reduce(\n (acc, [funHash, fnName, argType, outType]) =>\n ({ ...acc, [fnName.toString()]: { funHash, argType, outType } }),\n {}\n )\n default:\n if (type.prototype instanceof Field) return type.deserialize(value)\n return value\n }\n}\n\nfunction serializeField (value, type, prefix, params) {\n switch (type) {\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int:\n return writeInt(value)\n case FIELD_TYPES.id:\n return writeId(value)\n case FIELD_TYPES.ids:\n return value.map(writeId)\n case FIELD_TYPES.bool:\n return Buffer.from([value ? 1 : 0])\n case FIELD_TYPES.binary:\n return decode(value, prefix)\n case FIELD_TYPES.stateTree:\n return decode(value, 'ss')\n case FIELD_TYPES.hex:\n return Buffer.from(value, 'hex')\n case FIELD_TYPES.signatures:\n return value.map(Buffer.from)\n case FIELD_TYPES.payload:\n return typeof value === 'string' && value.split('_')[0] === 'ba'\n ? decode(value, 'ba')\n : toBytes(value)\n case FIELD_TYPES.string:\n return toBytes(value)\n case FIELD_TYPES.pointers:\n return buildPointers(value)\n case FIELD_TYPES.rlpBinary:\n return value.rlpEncoded ?? value\n case FIELD_TYPES.mptrees:\n return value.map(t => t.serialize())\n case FIELD_TYPES.ctVersion:\n return Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)])\n case FIELD_TYPES.callReturnType:\n switch (value) {\n case 'ok': return writeInt(0)\n case 'error': return writeInt(1)\n case 'revert': return writeInt(2)\n default: return value\n }\n default:\n if (type.prototype instanceof Field) return type.serialize(value, params)\n return value\n }\n}\n\nfunction validateField (value, type, prefix) {\n // All fields are required\n if (value === undefined || value === null) return 'Field is required'\n\n // Validate type of value\n switch (type) {\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int: {\n if (isNaN(value) && !BigNumber.isBigNumber(value)) {\n return `${value} is not of type Number or BigNumber`\n }\n if (new BigNumber(value).lt(0)) return `${value} must be >= 0`\n return\n }\n case FIELD_TYPES.id: {\n const prefixes = Array.isArray(prefix) ? prefix : [prefix]\n if (!prefixes.includes(value.split('_')[0])) {\n return `'${value}' prefix doesn't match expected prefix '${prefix}'`\n }\n return\n }\n case FIELD_TYPES.ctVersion:\n if (!value?.abiVersion || !value?.vmVersion) {\n return 'Value must be an object with \"vmVersion\" and \"abiVersion\" fields'\n }\n return\n case FIELD_TYPES.pointers:\n if (!Array.isArray(value)) return 'Value must be of type Array'\n if (value.some(p => !p?.key || !p?.id)) {\n return 'Value must contains only object\\'s like \\'{key: \"account_pubkey\", id: \"ak_lkamsflkalsdalksdlasdlasdlamd\"}\\''\n }\n if (value.length > 32) {\n return `Expected 32 pointers or less, got ${value.length} instead`\n }\n }\n}\n\nfunction transformParams (params, schema, { denomination } = {}) {\n params = schema\n .filter(([_, t]) => t === FIELD_TYPES.amount)\n .reduce(\n (acc, [key]) => ({ ...params, [key]: formatAmount(params[key], { denomination }) }),\n params\n )\n const schemaKeys = schema.map(([k]) => k)\n return Object\n .entries(params)\n .reduce(\n (acc, [key, value]) => {\n if (schemaKeys.includes(key)) acc[key] = value\n if (['oracleTtl', 'queryTtl', 'responseTtl'].includes(key)) {\n acc[`${key}Type`] = value.type === ORACLE_TTL_TYPES.delta ? 0 : 1\n acc[`${key}Value`] = value.value\n }\n return acc\n },\n {}\n )\n}\n\n// INTERFACE\n\nfunction getOracleRelativeTtl (params, txType) {\n const ttlKey = {\n [TX_TYPE.oracleRegister]: 'oracleTtl',\n [TX_TYPE.oracleExtend]: 'oracleTtl',\n [TX_TYPE.oracleQuery]: 'queryTtl',\n [TX_TYPE.oracleResponse]: 'responseTtl'\n }[txType]\n\n if (params[ttlKey] || params[`${ttlKey}Value`]) {\n return params[`${ttlKey}Value`] || params[ttlKey].value\n }\n return 1\n}\n\n/**\n * Calculate min fee\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder/index\n * @rtype (txType, { gas = 0, params }) => String\n * @param {String} txType - Transaction type\n * @param {Options} options - Options object\n * @param {String|Number} options.gas - Gas amount\n * @param {Object} options.params - Tx params\n * @return {String|Number}\n * @example calculateMinFee('spendTx', { gas, params })\n */\nexport function calculateMinFee (txType, { gas = 0, params, vsn }) {\n const multiplier = BigNumber(1e9) // 10^9 GAS_PRICE\n if (!params) return BigNumber(DEFAULT_FEE).times(multiplier).toString(10)\n\n let actualFee = buildFee(txType, { params: { ...params, fee: 0 }, multiplier, gas, vsn })\n let expected = BigNumber(0)\n\n while (!actualFee.eq(expected)) {\n actualFee = buildFee(txType, { params: { ...params, fee: actualFee }, multiplier, gas, vsn })\n expected = actualFee\n }\n return expected.toString(10)\n}\n\n/**\n * Calculate fee based on tx type and params\n * @param txType\n * @param params\n * @param gas\n * @param multiplier\n * @param vsn\n * @return {BigNumber}\n */\nfunction buildFee (txType, { params, gas = 0, multiplier, vsn }) {\n const { rlpEncoded: txWithOutFee } = buildTx({ ...params }, txType, { vsn })\n const txSize = txWithOutFee.length\n return TX_FEE_BASE_GAS(txType)\n .plus(TX_FEE_OTHER_GAS(txType, txSize, {\n relativeTtl: getOracleRelativeTtl(params, txType),\n innerTxSize: [TX_TYPE.gaMeta, TX_TYPE.payingFor].includes(txType)\n ? params.tx.tx.encodedTx.rlpEncoded.length\n : 0\n }))\n .times(multiplier)\n}\n\n/**\n * Calculate fee\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @rtype (fee, txType, gas = 0) => String\n * @param {String|Number} fee - fee\n * @param {String} txType - Transaction type\n * @param {Options} options - Options object\n * @param {String|Number} options.gas - Gas amount\n * @param {Object} options.params - Tx params\n * @return {String|Number}\n * @example calculateFee(null, 'spendTx', { gas, params })\n */\nexport function calculateFee (fee = 0, txType, { gas = 0, params, showWarning = true, vsn } = {}) {\n if (!params && showWarning) console.warn(`Can't build transaction fee, we will use DEFAULT_FEE(${DEFAULT_FEE})`)\n\n return fee || calculateMinFee(txType, { params, gas, vsn })\n}\n\n/**\n * Validate transaction params\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Object} params Object with tx params\n * @param {Array} schema Transaction schema\n * @param {Array} excludeKeys Array of keys to exclude for validation\n * @return {Object} Object with validation errors\n */\nexport function validateParams (params, schema, { excludeKeys = [] }) {\n return Object.fromEntries(\n schema\n // TODO: allow optional keys in schema\n .filter(([key]) => !excludeKeys.includes(key) &&\n !['payload', 'nameFee', 'deposit'].includes(key))\n .map(([key, type, prefix]) => [key, validateField(params[key], type, prefix)])\n .filter(([, message]) => message)\n )\n}\n\n/**\n * Build binary transaction\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Object} params Object with tx params\n * @param {Array} schema Transaction schema\n * @param {Object} [options={}] options\n * @param {String[]} [options.excludeKeys=[]] Array of keys to exclude for validation and build\n * @param {String} [options.denomination='aettos'] Denomination of amounts\n * @throws {Error} Validation error\n * @return {Array} Array with binary fields of transaction\n */\nexport function buildRawTx (\n params,\n schema,\n { excludeKeys = [], denomination = AE_AMOUNT_FORMATS.AETTOS } = {}\n) {\n const filteredSchema = schema.filter(([key]) => !excludeKeys.includes(key))\n\n // Transform `amount` type fields to `aettos`\n params = transformParams(params, filteredSchema, { denomination })\n // Validation\n const valid = validateParams(params, schema, { excludeKeys })\n if (Object.keys(valid).length) {\n throw new InvalidTxParamsError('Transaction build error. ' + JSON.stringify(valid))\n }\n\n return filteredSchema\n .map(([key, fieldType, prefix]) => serializeField(params[key], fieldType, prefix, params))\n}\n\n/**\n * Unpack binary transaction\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Array} binary Array with binary transaction field's\n * @param {Array} schema Transaction schema\n * @return {Object} Object with transaction field's\n */\nexport function unpackRawTx (binary, schema) {\n return schema\n .reduce(\n (\n acc,\n [key, fieldType, prefix],\n index\n ) => Object.assign(acc, { [key]: deserializeField(binary[index], fieldType, prefix) }),\n {}\n )\n}\n\n/**\n * Get transaction serialization/deserialization schema\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {{ vsn: String, objId: Number, type: String }}\n * @throws {Error} Schema not found error\n * @return {Object} Schema\n */\nconst getSchema = ({ vsn, objId, type }) => {\n const isDeserialize = !!objId\n const firstKey = isDeserialize ? objId : type\n const schema = isDeserialize ? TX_DESERIALIZATION_SCHEMA : TX_SERIALIZATION_SCHEMA\n\n if (!schema[firstKey]) {\n throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type}`)\n }\n if (!schema[firstKey][vsn]) {\n throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type} version ${vsn}`)\n }\n return schema[firstKey][vsn]\n}\n\n/**\n * Build transaction hash\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Object} params Object with tx params\n * @param {String} type Transaction type\n * @param {Object} [options={}] options\n * @param {String[]} [options.excludeKeys] Array of keys to exclude for validation and build\n * @param {String} [options.prefix] Prefix of transaction\n * @throws {Error} Validation error\n * @returns {Object} object\n * @returns {String} object.tx Base64Check transaction hash with 'tx_' prefix\n * @returns {Buffer} object.rlpEncoded rlp encoded transaction\n * @returns {Array<Buffer>} object.binary binary transaction\n */\nexport function buildTx (\n params,\n type,\n { excludeKeys = [], prefix = 'tx', vsn = VSN, denomination = AE_AMOUNT_FORMATS.AETTOS } = {}\n) {\n const [schema, tag] = getSchema({ type, vsn })\n const binary = buildRawTx(\n { ...params, VSN: vsn, tag },\n schema,\n { excludeKeys, denomination: params.denomination || denomination }\n ).filter(e => e !== undefined)\n\n const rlpEncoded = rlpEncode(binary)\n const tx = encode(rlpEncoded, prefix)\n\n return { tx, rlpEncoded, binary, txObject: unpackRawTx(binary, schema) }\n}\n\n/**\n * Unpack transaction hash\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {String|Buffer} encodedTx String or RLP encoded transaction array\n * (if fromRlpBinary flag is true)\n * @param {Boolean} fromRlpBinary Unpack from RLP encoded transaction (default: false)\n * @param {String} prefix - Prefix of data\n * @returns {Object} object\n * @returns {Object} object.tx Object with transaction param's\n * @returns {Buffer} object.rlpEncoded rlp encoded transaction\n * @returns {Array<Buffer>} object.binary binary transaction\n */\nexport function unpackTx (encodedTx, fromRlpBinary = false, prefix = 'tx') {\n const rlpEncoded = fromRlpBinary ? encodedTx : decode(encodedTx, prefix)\n const binary = rlpDecode(rlpEncoded)\n\n const objId = readInt(binary[0])\n const vsn = readInt(binary[1])\n const [schema] = getSchema({ objId, vsn })\n\n return { txType: OBJECT_ID_TX_TYPE[objId], tx: unpackRawTx(binary, schema), rlpEncoded, binary }\n}\n\n/**\n * Build a transaction hash\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {String | Buffer} rawTx base64 or rlp encoded transaction\n * @return {String} Transaction hash\n */\nexport function buildTxHash (rawTx) {\n const data = typeof rawTx === 'string' && rawTx.startsWith('tx_') ? decode(rawTx, 'tx') : rawTx\n return encode(hash(data), 'th')\n}\n\nexport default {\n calculateMinFee,\n calculateFee,\n unpackTx,\n unpackRawTx,\n buildTx,\n buildRawTx,\n validateParams,\n buildTxHash\n}\n"],"file":"index.mjs"}
@@ -7,6 +7,7 @@
7
7
  // # RLP version number
8
8
  // # https://github.com/aeternity/protocol/blob/master/serializations.md#binary-serialization
9
9
  import BigNumber from 'bignumber.js';
10
+ import { Name, NameId, NameFee, Deposit } from "./field-types.mjs";
10
11
  export const VSN = 1;
11
12
  export const VSN_2 = 2; // # TRANSACTION DEFAULT TTL
12
13
 
@@ -26,9 +27,8 @@ export const RESPONSE_TTL = {
26
27
  value: 10
27
28
  }; // # CONTRACT
28
29
 
29
- export const DEPOSIT = 0;
30
30
  export const AMOUNT = 0;
31
- export const GAS = 25000;
31
+ export const GAS_MAX = 1600000 - 21000;
32
32
  export const MIN_GAS_PRICE = 1e9;
33
33
  export const MAX_AUTH_FUN_GAS = 50000;
34
34
  export const DRY_RUN_ACCOUNT = {
@@ -42,8 +42,7 @@ export const NAME_TTL = 180000; // # max number of block into the future that th
42
42
 
43
43
  export const NAME_MAX_TTL = 36000;
44
44
  export const NAME_MAX_CLIENT_TTL = 84600;
45
- export const CLIENT_TTL = NAME_MAX_CLIENT_TTL;
46
- export const NAME_FEE = 0; // # see https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L67
45
+ export const CLIENT_TTL = NAME_MAX_CLIENT_TTL; // # see https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L67
47
46
 
48
47
  export const NAME_FEE_MULTIPLIER = 1e14; // 100000000000000
49
48
 
@@ -244,7 +243,6 @@ export const TX_TYPE = {
244
243
  nameserviceTree: 'nameserviceTree',
245
244
  oraclesTree: 'oraclesTree',
246
245
  accountsTree: 'accountsTree',
247
- // GA ACCOUNTS
248
246
  gaAttach: 'gaAttach',
249
247
  gaMeta: 'gaMeta',
250
248
  payingFor: 'payingFor',
@@ -335,7 +333,6 @@ export const OBJECT_ID_TX_TYPE = {
335
333
  [OBJECT_TAG_NAMESERVICE_TREE]: TX_TYPE.nameserviceTree,
336
334
  [OBJECT_TAG_ORACLES_TREE]: TX_TYPE.oraclesTree,
337
335
  [OBJECT_TAG_ACCOUNTS_TREE]: TX_TYPE.accountsTree,
338
- // GA Accounts
339
336
  [OBJECT_TAG_GA_ATTACH]: TX_TYPE.gaAttach,
340
337
  [OBJECT_TAG_GA_META]: TX_TYPE.gaMeta,
341
338
  [OBJECT_TAG_PAYING_FOR]: TX_TYPE.payingFor,
@@ -427,72 +424,21 @@ export const PREFIX_ID_TAG = {
427
424
  ch: ID_TAG.channel
428
425
  };
429
426
  export const ID_TAG_PREFIX = revertObject(PREFIX_ID_TAG);
430
-
431
- const VALIDATION_ERROR = msg => msg;
432
-
433
- export const VALIDATION_MESSAGE = {
434
- [FIELD_TYPES.int]: _ref3 => {
435
- let {
436
- value,
437
- isMinusValue
438
- } = _ref3;
439
- return isMinusValue ? VALIDATION_ERROR(`${value} must be >= 0`) : VALIDATION_ERROR(`${value} is not of type Number or BigNumber`);
440
- },
441
- [FIELD_TYPES.amount]: _ref4 => {
442
- let {
443
- value,
444
- isMinusValue
445
- } = _ref4;
446
- return isMinusValue ? VALIDATION_ERROR(`${value} must be >= 0`) : VALIDATION_ERROR(`${value} is not of type Number or BigNumber`);
447
- },
448
- [FIELD_TYPES.id]: _ref5 => {
449
- let {
450
- value,
451
- prefix
452
- } = _ref5;
453
- return VALIDATION_ERROR(`'${value}' prefix doesn't match expected prefix '${prefix}' or ID_TAG for prefix not found`);
454
- },
455
- [FIELD_TYPES.binary]: _ref6 => {
456
- let {
457
- prefix,
458
- value
459
- } = _ref6;
460
- return VALIDATION_ERROR(`'${value}' prefix doesn't match expected prefix '${prefix}'`);
461
- },
462
- [FIELD_TYPES.string]: _ref7 => {
463
- let {
464
- value
465
- } = _ref7;
466
- return VALIDATION_ERROR('Not a string');
467
- },
468
- [FIELD_TYPES.pointers]: _ref8 => {
469
- let {
470
- value
471
- } = _ref8;
472
- return VALIDATION_ERROR('Value must be of type Array and contains only object\'s like \'{key: "account_pubkey", id: "ak_lkamsflkalsdalksdlasdlasdlamd"}\'');
473
- },
474
- [FIELD_TYPES.ctVersion]: _ref9 => {
475
- let {
476
- value
477
- } = _ref9;
478
- return VALIDATION_ERROR('Value must be an object with "vmVersion" and "abiVersion" fields');
479
- }
480
- };
481
427
  const BASE_TX = [TX_FIELD('tag', FIELD_TYPES.int), TX_FIELD('VSN', FIELD_TYPES.int)];
482
428
  export const CONTRACT_BYTE_CODE_LIMA = [...BASE_TX, TX_FIELD('sourceCodeHash', FIELD_TYPES.rawBinary), TX_FIELD('typeInfo', FIELD_TYPES.sophiaCodeTypeInfo), TX_FIELD('byteCode', FIELD_TYPES.rawBinary), TX_FIELD('compilerVersion', FIELD_TYPES.string), TX_FIELD('payable', FIELD_TYPES.bool)];
483
429
  const ACCOUNT_TX_2 = [...BASE_TX, TX_FIELD('flags', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('balance', FIELD_TYPES.int), TX_FIELD('gaContract', FIELD_TYPES.id, ['ct', 'nm']), TX_FIELD('gaAuthFun', FIELD_TYPES.binary, 'cb')];
484
430
  const SPEND_TX = [...BASE_TX, TX_FIELD('senderId', FIELD_TYPES.id, 'ak'), TX_FIELD('recipientId', FIELD_TYPES.id, ['ak', 'nm']), TX_FIELD('amount', FIELD_TYPES.amount), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('payload', FIELD_TYPES.payload)];
485
431
  const SIGNED_TX = [...BASE_TX, TX_FIELD('signatures', FIELD_TYPES.signatures), TX_FIELD('encodedTx', FIELD_TYPES.rlpBinary)];
486
432
  const NAME_PRE_CLAIM_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('commitmentId', FIELD_TYPES.id, 'cm'), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
487
- const NAME_CLAIM_TX_2 = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('name', FIELD_TYPES.binary, 'nm'), TX_FIELD('nameSalt', FIELD_TYPES.int), TX_FIELD('nameFee', FIELD_TYPES.amount), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
488
- const NAME_UPDATE_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('nameId', FIELD_TYPES.id, 'nm'), TX_FIELD('nameTtl', FIELD_TYPES.int), TX_FIELD('pointers', FIELD_TYPES.pointers), TX_FIELD('clientTtl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
489
- const NAME_TRANSFER_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('nameId', FIELD_TYPES.id, 'nm'), TX_FIELD('recipientId', FIELD_TYPES.id, ['ak', 'nm']), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
490
- const NAME_REVOKE_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('nameId', FIELD_TYPES.id, 'nm'), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
491
- const CONTRACT_TX = [...BASE_TX, TX_FIELD('owner', FIELD_TYPES.id, 'ak'), TX_FIELD('ctVersion', FIELD_TYPES.int), TX_FIELD('code', FIELD_TYPES.binary, 'cb'), TX_FIELD('log', FIELD_TYPES.binary, 'cb'), TX_FIELD('active', FIELD_TYPES.bool), TX_FIELD('referers', FIELD_TYPES.ids, 'ak'), TX_FIELD('deposit', FIELD_TYPES.amount)];
433
+ const NAME_CLAIM_TX_2 = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('name', Name), TX_FIELD('nameSalt', FIELD_TYPES.int), TX_FIELD('nameFee', NameFee), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
434
+ const NAME_UPDATE_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('nameId', NameId), TX_FIELD('nameTtl', FIELD_TYPES.int), TX_FIELD('pointers', FIELD_TYPES.pointers), TX_FIELD('clientTtl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
435
+ const NAME_TRANSFER_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('nameId', NameId), TX_FIELD('recipientId', FIELD_TYPES.id, ['ak', 'nm']), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
436
+ const NAME_REVOKE_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('nameId', NameId), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
437
+ const CONTRACT_TX = [...BASE_TX, TX_FIELD('owner', FIELD_TYPES.id, 'ak'), TX_FIELD('ctVersion', FIELD_TYPES.int), TX_FIELD('code', FIELD_TYPES.binary, 'cb'), TX_FIELD('log', FIELD_TYPES.binary, 'cb'), TX_FIELD('active', FIELD_TYPES.bool), TX_FIELD('referers', FIELD_TYPES.ids, 'ak'), TX_FIELD('deposit', Deposit)];
492
438
  const GA_ATTACH_TX = [...BASE_TX, TX_FIELD('ownerId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('code', FIELD_TYPES.binary, 'cb'), TX_FIELD('authFun', FIELD_TYPES.rawBinary), TX_FIELD('ctVersion', FIELD_TYPES.ctVersion), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('gas', FIELD_TYPES.int), TX_FIELD('gasPrice', FIELD_TYPES.int), TX_FIELD('callData', FIELD_TYPES.binary, 'cb')];
493
439
  const GA_META_TX_2 = [...BASE_TX, TX_FIELD('gaId', FIELD_TYPES.id, 'ak'), TX_FIELD('authData', FIELD_TYPES.binary, 'cb'), TX_FIELD('abiVersion', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('gas', FIELD_TYPES.int), TX_FIELD('gasPrice', FIELD_TYPES.int), TX_FIELD('tx', FIELD_TYPES.rlpBinary)];
494
440
  const PAYING_FOR_TX = [...BASE_TX, TX_FIELD('payerId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('tx', FIELD_TYPES.rlpBinary)];
495
- const CONTRACT_CREATE_TX = [...BASE_TX, TX_FIELD('ownerId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('code', FIELD_TYPES.binary, 'cb'), TX_FIELD('ctVersion', FIELD_TYPES.ctVersion), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('deposit', FIELD_TYPES.amount), TX_FIELD('amount', FIELD_TYPES.amount), TX_FIELD('gas', FIELD_TYPES.int), TX_FIELD('gasPrice', FIELD_TYPES.int), TX_FIELD('callData', FIELD_TYPES.binary, 'cb')];
441
+ const CONTRACT_CREATE_TX = [...BASE_TX, TX_FIELD('ownerId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('code', FIELD_TYPES.binary, 'cb'), TX_FIELD('ctVersion', FIELD_TYPES.ctVersion), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('deposit', Deposit), TX_FIELD('amount', FIELD_TYPES.amount), TX_FIELD('gas', FIELD_TYPES.int), TX_FIELD('gasPrice', FIELD_TYPES.int), TX_FIELD('callData', FIELD_TYPES.binary, 'cb')];
496
442
  const CONTRACT_CALL_TX = [...BASE_TX, TX_FIELD('callerId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('contractId', FIELD_TYPES.id, ['ct', 'nm']), TX_FIELD('abiVersion', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('amount', FIELD_TYPES.amount), TX_FIELD('gas', FIELD_TYPES.int), TX_FIELD('gasPrice', FIELD_TYPES.int), TX_FIELD('callData', FIELD_TYPES.binary, 'cb')];
497
443
  const CONTRACT_CALL_RESULT_TX = [...BASE_TX, TX_FIELD('callerId', FIELD_TYPES.id, 'ak'), TX_FIELD('callerNonce', FIELD_TYPES.int), TX_FIELD('height', FIELD_TYPES.int), TX_FIELD('contractId', FIELD_TYPES.id, 'ct'), TX_FIELD('gasPrice', FIELD_TYPES.int), TX_FIELD('gasUsed', FIELD_TYPES.int), TX_FIELD('returnValue', FIELD_TYPES.binary, 'cb'), TX_FIELD('returnType', FIELD_TYPES.callReturnType), // TODO: add serialization for
498
444
  // <log> :: [ { <address> :: id, [ <topics> :: binary() ], <data> :: binary() } ]
@@ -508,7 +454,7 @@ const CHANNEL_CLOSE_MUTUAL_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.i
508
454
  const CHANNEL_CLOSE_SOLO_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('payload', FIELD_TYPES.binary, 'tx'), TX_FIELD('poi', FIELD_TYPES.binary, 'pi'), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
509
455
  const CHANNEL_SLASH_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('payload', FIELD_TYPES.binary, 'tx'), TX_FIELD('poi', FIELD_TYPES.binary, 'pi'), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
510
456
  const CHANNEL_SETTLE_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('initiatorAmountFinal', FIELD_TYPES.int), TX_FIELD('responderAmountFinal', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
511
- const CHANNEL_FORCE_PROGRESS_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('payload', FIELD_TYPES.binary, 'tx'), TX_FIELD('round', FIELD_TYPES.int), TX_FIELD('update', FIELD_TYPES.binary), TX_FIELD('stateHash', FIELD_TYPES.binary), TX_FIELD('offChainTrees', FIELD_TYPES.stateTree), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
457
+ const CHANNEL_FORCE_PROGRESS_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('payload', FIELD_TYPES.binary, 'tx'), TX_FIELD('round', FIELD_TYPES.int), TX_FIELD('update', FIELD_TYPES.binary, 'cb'), TX_FIELD('stateHash', FIELD_TYPES.binary, 'st'), TX_FIELD('offChainTrees', FIELD_TYPES.stateTree), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
512
458
  const CHANNEL_OFFCHAIN_TX_2 = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('round', FIELD_TYPES.int), TX_FIELD('stateHash', FIELD_TYPES.binary, 'st')];
513
459
  const CHANNEL_TX_3 = [...BASE_TX, TX_FIELD('initiator', FIELD_TYPES.id, 'ak'), TX_FIELD('responder', FIELD_TYPES.id, 'ak'), TX_FIELD('channelAmount', FIELD_TYPES.int), TX_FIELD('initiatorAmount', FIELD_TYPES.int), TX_FIELD('responderAmount', FIELD_TYPES.int), TX_FIELD('channelReserve', FIELD_TYPES.int), TX_FIELD('initiatorDelegateIds', FIELD_TYPES.ids), TX_FIELD('responderDelegateIds', FIELD_TYPES.ids), TX_FIELD('stateHash', FIELD_TYPES.hex), TX_FIELD('round', FIELD_TYPES.int), TX_FIELD('soloRound', FIELD_TYPES.int), TX_FIELD('lockPeriod', FIELD_TYPES.int), TX_FIELD('lockedUntil', FIELD_TYPES.int), TX_FIELD('initiatorAuth', FIELD_TYPES.binary, 'cb'), TX_FIELD('responderAuth', FIELD_TYPES.binary, 'cb')];
514
460
  const CHANNEL_SNAPSHOT_SOLO_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('payload', FIELD_TYPES.binary, 'tx'), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
@@ -811,4 +757,4 @@ export const TX_DESERIALIZATION_SCHEMA = {
811
757
  3: TX_SCHEMA_FIELD(CONTRACT_BYTE_CODE_LIMA, OBJECT_TAG_SOPHIA_BYTE_CODE)
812
758
  }
813
759
  };
814
- //# sourceMappingURL=schema.js.map
760
+ //# sourceMappingURL=schema.mjs.map