@aeternity/aepp-sdk 9.0.1 → 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 (284) 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 -36
  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.mjs +179 -0
  10. package/es/account/base.mjs.map +1 -0
  11. package/es/account/memory.mjs +99 -0
  12. package/es/account/memory.mjs.map +1 -0
  13. package/es/account/multiple.mjs +179 -0
  14. package/es/account/multiple.mjs.map +1 -0
  15. package/es/ae/aens.mjs +404 -0
  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.mjs +207 -0
  22. package/es/ae/index.mjs.map +1 -0
  23. package/es/ae/oracle.mjs +339 -0
  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} +29 -9
  32. package/es/chain/index.mjs.map +1 -0
  33. package/es/chain/node.mjs +442 -0
  34. package/es/chain/node.mjs.map +1 -0
  35. package/es/channel/handlers.mjs +1110 -0
  36. package/es/channel/handlers.mjs.map +1 -0
  37. package/es/channel/{index.js → index.mjs} +245 -472
  38. package/es/channel/index.mjs.map +1 -0
  39. package/es/channel/internal.mjs +283 -0
  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.mjs +178 -0
  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.mjs +188 -0
  53. package/es/node-pool/index.mjs.map +1 -0
  54. package/es/node.mjs +133 -0
  55. package/es/node.mjs.map +1 -0
  56. package/es/other.d.ts +1 -1
  57. package/es/tx/builder/field-types.mjs +74 -0
  58. package/es/tx/builder/field-types.mjs.map +1 -0
  59. package/es/tx/builder/helpers.mjs +363 -0
  60. package/es/tx/builder/helpers.mjs.map +1 -0
  61. package/es/tx/builder/index.mjs +606 -0
  62. package/es/tx/builder/index.mjs.map +1 -0
  63. package/es/tx/builder/schema.mjs +760 -0
  64. package/es/tx/builder/schema.mjs.map +1 -0
  65. package/es/tx/{index.js → index.mjs} +107 -15
  66. package/es/tx/index.mjs.map +1 -0
  67. package/es/tx/tx-object.mjs +283 -0
  68. package/es/tx/tx-object.mjs.map +1 -0
  69. package/es/tx/tx.mjs +938 -0
  70. package/es/tx/tx.mjs.map +1 -0
  71. package/es/tx/validator.mjs +247 -0
  72. package/es/tx/validator.mjs.map +1 -0
  73. package/es/typings/blakejs/index.d.mjs +2 -0
  74. package/es/typings/blakejs/{index.d.js.map → index.d.mjs.map} +1 -1
  75. package/es/utils/aepp-wallet-communication/connection/{browser-runtime.js → browser-runtime.mjs} +27 -29
  76. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +1 -0
  77. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +183 -0
  78. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +1 -0
  79. package/es/utils/aepp-wallet-communication/connection/{index.js → index.mjs} +7 -3
  80. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +1 -0
  81. package/es/utils/aepp-wallet-communication/{content-script-bridge.js → content-script-bridge.mjs} +29 -23
  82. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +1 -0
  83. package/es/utils/aepp-wallet-communication/helpers.mjs +92 -0
  84. package/es/utils/aepp-wallet-communication/helpers.mjs.map +1 -0
  85. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +375 -0
  86. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +1 -0
  87. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +275 -0
  88. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +1 -0
  89. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +541 -0
  90. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +1 -0
  91. package/es/utils/aepp-wallet-communication/schema.mjs +102 -0
  92. package/es/utils/aepp-wallet-communication/schema.mjs.map +1 -0
  93. package/es/utils/aepp-wallet-communication/wallet-detector.mjs +110 -0
  94. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  95. package/es/utils/amount-formatter.mjs +139 -0
  96. package/es/utils/amount-formatter.mjs.map +1 -0
  97. package/es/utils/async-init.mjs +64 -0
  98. package/es/utils/async-init.mjs.map +1 -0
  99. package/es/utils/bignumber.mjs +21 -0
  100. package/es/utils/bignumber.mjs.map +1 -0
  101. package/es/utils/{bytes.js → bytes.mjs} +16 -12
  102. package/es/utils/bytes.mjs.map +1 -0
  103. package/es/utils/{crypto-ts.js → crypto-ts.mjs} +11 -3
  104. package/es/utils/crypto-ts.mjs.map +1 -0
  105. package/es/utils/crypto.mjs +239 -0
  106. package/es/utils/crypto.mjs.map +1 -0
  107. package/es/utils/errors.mjs +689 -0
  108. package/es/utils/errors.mjs.map +1 -0
  109. package/es/utils/hd-wallet.mjs +111 -0
  110. package/es/utils/hd-wallet.mjs.map +1 -0
  111. package/es/utils/json-big.mjs +45 -0
  112. package/es/utils/json-big.mjs.map +1 -0
  113. package/es/utils/keystore.mjs +240 -0
  114. package/es/utils/keystore.mjs.map +1 -0
  115. package/es/utils/mptree.mjs +161 -0
  116. package/es/utils/mptree.mjs.map +1 -0
  117. package/es/utils/other.mjs +43 -0
  118. package/es/utils/other.mjs.map +1 -0
  119. package/es/utils/semver-satisfies.mjs +16 -0
  120. package/es/utils/semver-satisfies.mjs.map +1 -0
  121. package/es/utils/{string.js → string.mjs} +5 -14
  122. package/es/utils/string.mjs.map +1 -0
  123. package/es/utils/swagger.mjs +164 -0
  124. package/es/utils/swagger.mjs.map +1 -0
  125. package/package.json +55 -62
  126. package/src/account/base.js +3 -1
  127. package/src/account/memory.js +13 -8
  128. package/src/account/multiple.js +31 -22
  129. package/src/ae/aens.js +75 -77
  130. package/src/ae/aepp.js +2 -2
  131. package/src/ae/contract.js +27 -291
  132. package/src/ae/index.js +9 -7
  133. package/src/ae/oracle.js +51 -28
  134. package/src/ae/universal.js +4 -2
  135. package/src/ae/wallet.js +2 -2
  136. package/src/chain/index.js +29 -6
  137. package/src/chain/node.js +95 -67
  138. package/src/channel/handlers.js +30 -21
  139. package/src/channel/index.js +44 -20
  140. package/src/channel/internal.js +30 -24
  141. package/src/contract/aci.js +376 -0
  142. package/src/contract/compiler.js +41 -91
  143. package/src/contract/ga/helpers.js +10 -13
  144. package/src/contract/ga/index.js +42 -33
  145. package/src/index.js +9 -10
  146. package/src/node-pool/index.js +29 -17
  147. package/src/node.js +33 -36
  148. package/src/tx/builder/field-types.js +61 -0
  149. package/src/tx/builder/helpers.js +126 -84
  150. package/src/tx/builder/index.js +83 -41
  151. package/src/tx/builder/schema.js +50 -40
  152. package/src/tx/index.js +101 -12
  153. package/src/tx/tx-object.js +35 -15
  154. package/src/tx/tx.js +232 -153
  155. package/src/tx/validator.js +34 -12
  156. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +11 -5
  157. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +35 -13
  158. package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
  159. package/src/utils/aepp-wallet-communication/content-script-bridge.js +14 -7
  160. package/src/utils/aepp-wallet-communication/helpers.js +6 -14
  161. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +107 -60
  162. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +24 -11
  163. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +98 -56
  164. package/src/utils/aepp-wallet-communication/schema.ts +80 -0
  165. package/src/utils/aepp-wallet-communication/wallet-detector.js +6 -2
  166. package/src/utils/amount-formatter.ts +4 -3
  167. package/src/utils/async-init.js +10 -6
  168. package/src/utils/bignumber.ts +3 -10
  169. package/src/utils/bytes.ts +3 -2
  170. package/src/utils/crypto-ts.ts +2 -2
  171. package/src/utils/crypto.js +10 -144
  172. package/src/utils/errors.ts +683 -0
  173. package/src/utils/hd-wallet.js +11 -26
  174. package/src/utils/keystore.js +57 -53
  175. package/src/utils/mptree.ts +12 -6
  176. package/src/utils/other.ts +1 -1
  177. package/src/utils/semver-satisfies.ts +1 -1
  178. package/src/utils/swagger.js +75 -45
  179. package/es/account/base.js +0 -259
  180. package/es/account/base.js.map +0 -1
  181. package/es/account/memory.js +0 -86
  182. package/es/account/memory.js.map +0 -1
  183. package/es/account/multiple.js +0 -267
  184. package/es/account/multiple.js.map +0 -1
  185. package/es/ae/aens.js +0 -829
  186. package/es/ae/aens.js.map +0 -1
  187. package/es/ae/aepp.js.map +0 -1
  188. package/es/ae/contract.js +0 -985
  189. package/es/ae/contract.js.map +0 -1
  190. package/es/ae/index.js +0 -442
  191. package/es/ae/index.js.map +0 -1
  192. package/es/ae/oracle.js +0 -690
  193. package/es/ae/oracle.js.map +0 -1
  194. package/es/ae/universal.js.map +0 -1
  195. package/es/ae/wallet.js.map +0 -1
  196. package/es/chain/index.js.map +0 -1
  197. package/es/chain/node.js +0 -1119
  198. package/es/chain/node.js.map +0 -1
  199. package/es/channel/handlers.js +0 -1601
  200. package/es/channel/handlers.js.map +0 -1
  201. package/es/channel/index.js.map +0 -1
  202. package/es/channel/internal.js +0 -438
  203. package/es/channel/internal.js.map +0 -1
  204. package/es/contract/aci/helpers.js +0 -298
  205. package/es/contract/aci/helpers.js.map +0 -1
  206. package/es/contract/aci/index.js +0 -517
  207. package/es/contract/aci/index.js.map +0 -1
  208. package/es/contract/aci/transformation.js +0 -742
  209. package/es/contract/aci/transformation.js.map +0 -1
  210. package/es/contract/compiler.js +0 -316
  211. package/es/contract/compiler.js.map +0 -1
  212. package/es/contract/ga/helpers.js +0 -120
  213. package/es/contract/ga/helpers.js.map +0 -1
  214. package/es/contract/ga/index.js +0 -307
  215. package/es/contract/ga/index.js.map +0 -1
  216. package/es/contract/index.js +0 -158
  217. package/es/contract/index.js.map +0 -1
  218. package/es/index.js +0 -57
  219. package/es/index.js.map +0 -1
  220. package/es/node-pool/index.js +0 -204
  221. package/es/node-pool/index.js.map +0 -1
  222. package/es/node.js +0 -228
  223. package/es/node.js.map +0 -1
  224. package/es/tx/builder/helpers.js +0 -355
  225. package/es/tx/builder/helpers.js.map +0 -1
  226. package/es/tx/builder/index.js +0 -686
  227. package/es/tx/builder/index.js.map +0 -1
  228. package/es/tx/builder/schema.js +0 -695
  229. package/es/tx/builder/schema.js.map +0 -1
  230. package/es/tx/index.js.map +0 -1
  231. package/es/tx/tx-object.js +0 -297
  232. package/es/tx/tx-object.js.map +0 -1
  233. package/es/tx/tx.js +0 -1757
  234. package/es/tx/tx.js.map +0 -1
  235. package/es/tx/validator.js +0 -344
  236. package/es/tx/validator.js.map +0 -1
  237. package/es/typings/blakejs/index.d.js +0 -2
  238. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
  239. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -211
  240. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
  241. package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
  242. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
  243. package/es/utils/aepp-wallet-communication/helpers.js +0 -148
  244. package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
  245. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -652
  246. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
  247. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -285
  248. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
  249. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -763
  250. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
  251. package/es/utils/aepp-wallet-communication/schema.js +0 -103
  252. package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
  253. package/es/utils/aepp-wallet-communication/wallet-detector.js +0 -135
  254. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
  255. package/es/utils/amount-formatter.js +0 -152
  256. package/es/utils/amount-formatter.js.map +0 -1
  257. package/es/utils/async-init.js +0 -103
  258. package/es/utils/async-init.js.map +0 -1
  259. package/es/utils/bignumber.js +0 -36
  260. package/es/utils/bignumber.js.map +0 -1
  261. package/es/utils/bytes.js.map +0 -1
  262. package/es/utils/crypto-ts.js.map +0 -1
  263. package/es/utils/crypto.js +0 -358
  264. package/es/utils/crypto.js.map +0 -1
  265. package/es/utils/hd-wallet.js +0 -148
  266. package/es/utils/hd-wallet.js.map +0 -1
  267. package/es/utils/json-big.js +0 -78
  268. package/es/utils/json-big.js.map +0 -1
  269. package/es/utils/keystore.js +0 -393
  270. package/es/utils/keystore.js.map +0 -1
  271. package/es/utils/mptree.js +0 -198
  272. package/es/utils/mptree.js.map +0 -1
  273. package/es/utils/other.js +0 -93
  274. package/es/utils/other.js.map +0 -1
  275. package/es/utils/semver-satisfies.js +0 -35
  276. package/es/utils/semver-satisfies.js.map +0 -1
  277. package/es/utils/string.js.map +0 -1
  278. package/es/utils/swagger.js +0 -269
  279. package/es/utils/swagger.js.map +0 -1
  280. package/src/contract/aci/helpers.js +0 -140
  281. package/src/contract/aci/index.js +0 -191
  282. package/src/contract/aci/transformation.js +0 -464
  283. package/src/contract/index.js +0 -159
  284. package/src/utils/aepp-wallet-communication/schema.js +0 -110
@@ -0,0 +1,760 @@
1
+ /**
2
+ * Transaction Schema for TxBuilder
3
+ * @module @aeternity/aepp-sdk/es/tx/builder/schema
4
+ * @export TxSchema
5
+ * @example import { SCHEMA } from '@aeternity/aepp-sdk'
6
+ */
7
+ // # RLP version number
8
+ // # https://github.com/aeternity/protocol/blob/master/serializations.md#binary-serialization
9
+ import BigNumber from 'bignumber.js';
10
+ import { Name, NameId, NameFee, Deposit } from "./field-types.mjs";
11
+ export const VSN = 1;
12
+ export const VSN_2 = 2; // # TRANSACTION DEFAULT TTL
13
+
14
+ export const TX_TTL = 0; // # ORACLE
15
+
16
+ export const QUERY_FEE = 30000;
17
+ export const ORACLE_TTL = {
18
+ type: 'delta',
19
+ value: 500
20
+ };
21
+ export const QUERY_TTL = {
22
+ type: 'delta',
23
+ value: 10
24
+ };
25
+ export const RESPONSE_TTL = {
26
+ type: 'delta',
27
+ value: 10
28
+ }; // # CONTRACT
29
+
30
+ export const AMOUNT = 0;
31
+ export const GAS_MAX = 1600000 - 21000;
32
+ export const MIN_GAS_PRICE = 1e9;
33
+ export const MAX_AUTH_FUN_GAS = 50000;
34
+ export const DRY_RUN_ACCOUNT = {
35
+ pub: 'ak_11111111111111111111111111111111273Yts',
36
+ amount: '100000000000000000000000000000000000'
37
+ }; // # AENS
38
+
39
+ export const NAME_TTL = 180000; // # max number of block into the future that the name is going to be available
40
+ // # https://github.com/aeternity/protocol/blob/epoch-v0.22.0/AENS.md#update
41
+ // # https://github.com/aeternity/protocol/blob/44a93d3aab957ca820183c3520b9daf6b0fedff4/AENS.md#aens-entry
42
+
43
+ export const NAME_MAX_TTL = 36000;
44
+ export const NAME_MAX_CLIENT_TTL = 84600;
45
+ export const CLIENT_TTL = NAME_MAX_CLIENT_TTL; // # see https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L67
46
+
47
+ export const NAME_FEE_MULTIPLIER = 1e14; // 100000000000000
48
+
49
+ export const NAME_FEE_BID_INCREMENT = 0.05; // # the increment is in percentage
50
+ // # see https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L272
51
+
52
+ export const NAME_BID_TIMEOUT_BLOCKS = 480; // # ~1 day
53
+ // # this is the max length for a domain that requires a base fee to be paid
54
+
55
+ export const NAME_MAX_LENGTH_FEE = 31;
56
+ export const NAME_BID_MAX_LENGTH = 12; // # this is the max length for a domain to be part of a bid
57
+
58
+ export const POINTER_KEY_BY_PREFIX = {
59
+ ak: 'account_pubkey',
60
+ ok: 'oracle_pubkey',
61
+ ct: 'contract_pubkey',
62
+ ch: 'channel'
63
+ }; // # https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L290
64
+ // # https://github.com/aeternity/protocol/blob/master/AENS.md#protocol-fees-and-protection-times
65
+ // # bid ranges:
66
+
67
+ export const NAME_BID_RANGES = {
68
+ 31: BigNumber(3).times(NAME_FEE_MULTIPLIER),
69
+ 30: BigNumber(5).times(NAME_FEE_MULTIPLIER),
70
+ 29: BigNumber(8).times(NAME_FEE_MULTIPLIER),
71
+ 28: BigNumber(13).times(NAME_FEE_MULTIPLIER),
72
+ 27: BigNumber(21).times(NAME_FEE_MULTIPLIER),
73
+ 26: BigNumber(34).times(NAME_FEE_MULTIPLIER),
74
+ 25: BigNumber(55).times(NAME_FEE_MULTIPLIER),
75
+ 24: BigNumber(89).times(NAME_FEE_MULTIPLIER),
76
+ 23: BigNumber(144).times(NAME_FEE_MULTIPLIER),
77
+ 22: BigNumber(233).times(NAME_FEE_MULTIPLIER),
78
+ 21: BigNumber(377).times(NAME_FEE_MULTIPLIER),
79
+ 20: BigNumber(610).times(NAME_FEE_MULTIPLIER),
80
+ 19: BigNumber(987).times(NAME_FEE_MULTIPLIER),
81
+ 18: BigNumber(1597).times(NAME_FEE_MULTIPLIER),
82
+ 17: BigNumber(2584).times(NAME_FEE_MULTIPLIER),
83
+ 16: BigNumber(4181).times(NAME_FEE_MULTIPLIER),
84
+ 15: BigNumber(6765).times(NAME_FEE_MULTIPLIER),
85
+ 14: BigNumber(10946).times(NAME_FEE_MULTIPLIER),
86
+ 13: BigNumber(17711).times(NAME_FEE_MULTIPLIER),
87
+ 12: BigNumber(28657).times(NAME_FEE_MULTIPLIER),
88
+ 11: BigNumber(46368).times(NAME_FEE_MULTIPLIER),
89
+ 10: BigNumber(75025).times(NAME_FEE_MULTIPLIER),
90
+ 9: BigNumber(121393).times(NAME_FEE_MULTIPLIER),
91
+ 8: BigNumber(196418).times(NAME_FEE_MULTIPLIER),
92
+ 7: BigNumber(317811).times(NAME_FEE_MULTIPLIER),
93
+ 6: BigNumber(514229).times(NAME_FEE_MULTIPLIER),
94
+ 5: BigNumber(832040).times(NAME_FEE_MULTIPLIER),
95
+ 4: BigNumber(1346269).times(NAME_FEE_MULTIPLIER),
96
+ 3: BigNumber(2178309).times(NAME_FEE_MULTIPLIER),
97
+ 2: BigNumber(3524578).times(NAME_FEE_MULTIPLIER),
98
+ 1: BigNumber(5702887).times(NAME_FEE_MULTIPLIER)
99
+ }; // # ref: https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L273
100
+ // # name bid timeouts
101
+
102
+ export const NAME_BID_TIMEOUTS = {
103
+ 13: BigNumber(0),
104
+ 12: BigNumber(NAME_BID_TIMEOUT_BLOCKS),
105
+ // # 480 blocks
106
+ 8: BigNumber(31).times(NAME_BID_TIMEOUT_BLOCKS),
107
+ // # 14880 blocks
108
+ 4: BigNumber(62).times(NAME_BID_TIMEOUT_BLOCKS) // # 29760 blocks
109
+
110
+ }; // # Tag constant for ids (type uint8)
111
+ // # see https://github.com/aeternity/protocol/blob/master/serializations.md#the-id-type
112
+ // # <<Tag:1/unsigned-integer-unit:8, Hash:32/binary-unit:8>>
113
+
114
+ const ID_TAG_ACCOUNT = 1;
115
+ const ID_TAG_NAME = 2;
116
+ const ID_TAG_COMMITMENT = 3;
117
+ const ID_TAG_ORACLE = 4;
118
+ const ID_TAG_CONTRACT = 5;
119
+ const ID_TAG_CHANNEL = 6; // # OBJECT tags
120
+ // # see https://github.com/aeternity/protocol/blob/master/serializations.md#binary-serialization
121
+
122
+ const OBJECT_TAG_ACCOUNT = 10;
123
+ export const OBJECT_TAG_SIGNED_TRANSACTION = 11;
124
+ const OBJECT_TAG_SPEND_TRANSACTION = 12;
125
+ const OBJECT_TAG_ORACLE_REGISTER_TRANSACTION = 22;
126
+ const OBJECT_TAG_ORACLE_QUERY_TRANSACTION = 23;
127
+ const OBJECT_TAG_ORACLE_RESPONSE_TRANSACTION = 24;
128
+ const OBJECT_TAG_ORACLE_EXTEND_TRANSACTION = 25;
129
+ const OBJECT_TAG_NAME_SERVICE_CLAIM_TRANSACTION = 32;
130
+ const OBJECT_TAG_NAME_SERVICE_PRECLAIM_TRANSACTION = 33;
131
+ const OBJECT_TAG_NAME_SERVICE_UPDATE_TRANSACTION = 34;
132
+ const OBJECT_TAG_NAME_SERVICE_REVOKE_TRANSACTION = 35;
133
+ const OBJECT_TAG_NAME_SERVICE_TRANSFER_TRANSACTION = 36;
134
+ const OBJECT_TAG_CONTRACT = 40;
135
+ const OBJECT_TAG_CONTRACT_CALL = 41;
136
+ const OBJECT_TAG_CONTRACT_CREATE_TRANSACTION = 42;
137
+ const OBJECT_TAG_CONTRACT_CALL_TRANSACTION = 43;
138
+ const OBJECT_TAG_CHANNEL_CREATE_TX = 50;
139
+ const OBJECT_TAG_CHANNEL_DEPOSIT_TX = 51;
140
+ const OBJECT_TAG_CHANNEL_WITHRAW_TX = 52;
141
+ const OBJECT_TAG_CHANNEL_CLOSE_MUTUAL_TX = 53;
142
+ const OBJECT_TAG_CHANNEL_CLOSE_SOLO_TX = 54;
143
+ const OBJECT_TAG_CHANNEL_SLASH_TX = 55;
144
+ const OBJECT_TAG_CHANNEL_SETTLE_TX = 56;
145
+ const OBJECT_TAG_CHANNEL_FORCE_PROGRESS_TX = 521;
146
+ const OBJECT_TAG_CHANNEL_OFFCHAIN_TX = 57;
147
+ const OBJECT_TAG_CHANNEL = 58;
148
+ const OBJECT_TAG_CHANNEL_SNAPSHOT_SOLO_TX = 59;
149
+ const OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX = 570;
150
+ const OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX = 571;
151
+ const OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX = 572;
152
+ const OBJECT_TAG_CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX = 573;
153
+ const OBJECT_TAG_CHANNEL_OFFCHAIN_CALL_CONTRACT_TX = 574;
154
+ const OBJECT_TAG_CHANNEL_RECONNECT_TX = 575;
155
+ const OBJECT_TAG_PROOF_OF_INCLUSION = 60;
156
+ const OBJECT_TAG_STATE_TREES = 62;
157
+ const OBJECT_TAG_MERKLE_PATRICIA_TREE = 63;
158
+ const OBJECT_TAG_MERKLE_PATRICIA_TREE_VALUE = 64;
159
+ const OBJECT_TAG_CONTRACTS_TREE = 621;
160
+ const OBJECT_TAG_CONTRACT_CALLS_TREE = 622;
161
+ const OBJECT_TAG_CHANNELS_TREE = 623;
162
+ const OBJECT_TAG_NAMESERVICE_TREE = 624;
163
+ const OBJECT_TAG_ORACLES_TREE = 625;
164
+ const OBJECT_TAG_ACCOUNTS_TREE = 626;
165
+ const OBJECT_TAG_GA_ATTACH = 80;
166
+ const OBJECT_TAG_GA_META = 81;
167
+ const OBJECT_TAG_PAYING_FOR = 82;
168
+ const OBJECT_TAG_SOPHIA_BYTE_CODE = 70;
169
+
170
+ const TX_FIELD = (name, type, prefix) => [name, type, prefix];
171
+
172
+ const TX_SCHEMA_FIELD = (schema, objectId) => [schema, objectId];
173
+
174
+ const revertObject = obj => Object.entries(obj).reduce((acc, _ref) => {
175
+ let [key, v] = _ref;
176
+ return (acc[v] = key) && acc;
177
+ }, {});
178
+ /**
179
+ * @constant
180
+ * @description Object with transaction types
181
+ * @alias module:@aeternity/aepp-sdk/es/tx/builder/schema
182
+ * @property {String} signed
183
+ * @property {String} spend
184
+ * @property {String} nameClaim
185
+ * @property {String} namePreClaim
186
+ * @property {String} nameUpdate
187
+ * @property {String} nameRevoke
188
+ * @property {String} nameTransfer
189
+ * @property {String} contractCreate
190
+ * @property {String} contractCall
191
+ * @property {String} oracleRegister
192
+ * @property {String} oracleExtend
193
+ * @property {String} oracleQuery
194
+ * @property {String} oracleResponse
195
+ */
196
+
197
+
198
+ export const TX_TYPE = {
199
+ account: 'account',
200
+ signed: 'signedTx',
201
+ spend: 'spendTx',
202
+ // AENS
203
+ nameClaim: 'nameClaimTx',
204
+ namePreClaim: 'namePreClaimTx',
205
+ nameUpdate: 'nameUpdateTx',
206
+ nameRevoke: 'nameRevokeTx',
207
+ nameTransfer: 'nameTransfer',
208
+ // CONTRACT
209
+ contract: 'contract',
210
+ contractCreate: 'contractCreateTx',
211
+ contractCall: 'contractCallTx',
212
+ contractCallResult: 'contractCallResult',
213
+ // ORACLE
214
+ oracleRegister: 'oracleRegister',
215
+ oracleExtend: 'oracleExtend',
216
+ oracleQuery: 'oracleQuery',
217
+ oracleResponse: 'oracleResponse',
218
+ // STATE CHANNEL
219
+ channelCreate: 'channelCreate',
220
+ channelCloseMutual: 'channelCloseMutual',
221
+ channelCloseSolo: 'channelCloseSolo',
222
+ channelSlash: 'channelSlash',
223
+ channelDeposit: 'channelDeposit',
224
+ channelWithdraw: 'channelWithdraw',
225
+ channelSettle: 'channelSettle',
226
+ channelOffChain: 'channelOffChain',
227
+ channelForceProgress: 'channelForceProgress',
228
+ channel: 'channel',
229
+ channelSnapshotSolo: 'channelSnapshotSolo',
230
+ channelOffChainUpdateTransfer: 'channelOffChainUpdateTransfer',
231
+ channelOffChainUpdateDeposit: 'channelOffChainUpdateDeposit',
232
+ channelOffChainUpdateWithdrawal: 'channelOffChainUpdateWithdrawal',
233
+ channelOffChainCreateContract: 'channelOffChainCreateContract',
234
+ channelOffChainCallContract: 'channelOffChainCallContract',
235
+ channelReconnect: 'channelReconnect',
236
+ proofOfInclusion: 'proofOfInclusion',
237
+ stateTrees: 'stateTrees',
238
+ merklePatriciaTree: 'merklePatriciaTree',
239
+ merklePatriciaTreeValue: 'merklePatriciaTreeValue',
240
+ contractsTree: 'contractsTree',
241
+ contractCallsTree: 'contractCallsTree',
242
+ channelsTree: 'channelsTree',
243
+ nameserviceTree: 'nameserviceTree',
244
+ oraclesTree: 'oraclesTree',
245
+ accountsTree: 'accountsTree',
246
+ gaAttach: 'gaAttach',
247
+ gaMeta: 'gaMeta',
248
+ payingFor: 'payingFor',
249
+ sophiaByteCode: 'sophiaByteCode'
250
+ }; // # see https://github.com/aeternity/protocol/blob/minerva/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain
251
+
252
+ export const VM_VERSIONS = {
253
+ NO_VM: 0,
254
+ SOPHIA: 1,
255
+ SOPHIA_IMPROVEMENTS_MINERVA: 3,
256
+ SOPHIA_IMPROVEMENTS_FORTUNA: 4,
257
+ FATE: 5,
258
+ SOPHIA_IMPROVEMENTS_LIMA: 6,
259
+ FATE_2: 7
260
+ }; // # see https://github.com/aeternity/protocol/blob/minerva/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain
261
+
262
+ export const ABI_VERSIONS = {
263
+ NO_ABI: 0,
264
+ SOPHIA: 1,
265
+ FATE: 3
266
+ };
267
+ export const PROTOCOL_VERSIONS = {
268
+ IRIS: 5
269
+ }; // First abi/vm by default
270
+
271
+ export const PROTOCOL_VM_ABI = {
272
+ [PROTOCOL_VERSIONS.IRIS]: {
273
+ [TX_TYPE.contractCreate]: {
274
+ vmVersion: [VM_VERSIONS.FATE_2],
275
+ abiVersion: [ABI_VERSIONS.FATE]
276
+ },
277
+ // TODO: Ensure that AEVM is still available here
278
+ [TX_TYPE.contractCall]: {
279
+ vmVersion: [VM_VERSIONS.FATE_2, VM_VERSIONS.FATE, VM_VERSIONS.SOPHIA_IMPROVEMENTS_LIMA, VM_VERSIONS.SOPHIA_IMPROVEMENTS_FORTUNA, VM_VERSIONS.SOPHIA, VM_VERSIONS.SOPHIA_IMPROVEMENTS_MINERVA],
280
+ abiVersion: [ABI_VERSIONS.FATE, ABI_VERSIONS.SOPHIA]
281
+ },
282
+ [TX_TYPE.oracleRegister]: {
283
+ vmVersion: [],
284
+ abiVersion: [ABI_VERSIONS.NO_ABI, ABI_VERSIONS.SOPHIA]
285
+ }
286
+ }
287
+ };
288
+ export const OBJECT_ID_TX_TYPE = {
289
+ [OBJECT_TAG_ACCOUNT]: TX_TYPE.account,
290
+ [OBJECT_TAG_SIGNED_TRANSACTION]: TX_TYPE.signed,
291
+ [OBJECT_TAG_SPEND_TRANSACTION]: TX_TYPE.spend,
292
+ // AENS
293
+ [OBJECT_TAG_NAME_SERVICE_CLAIM_TRANSACTION]: TX_TYPE.nameClaim,
294
+ [OBJECT_TAG_NAME_SERVICE_PRECLAIM_TRANSACTION]: TX_TYPE.namePreClaim,
295
+ [OBJECT_TAG_NAME_SERVICE_UPDATE_TRANSACTION]: TX_TYPE.nameUpdate,
296
+ [OBJECT_TAG_NAME_SERVICE_REVOKE_TRANSACTION]: TX_TYPE.nameRevoke,
297
+ [OBJECT_TAG_NAME_SERVICE_TRANSFER_TRANSACTION]: TX_TYPE.nameTransfer,
298
+ // CONTRACT
299
+ [OBJECT_TAG_CONTRACT]: TX_TYPE.contract,
300
+ [OBJECT_TAG_CONTRACT_CREATE_TRANSACTION]: TX_TYPE.contractCreate,
301
+ [OBJECT_TAG_CONTRACT_CALL_TRANSACTION]: TX_TYPE.contractCall,
302
+ [OBJECT_TAG_CONTRACT_CALL]: TX_TYPE.contractCallResult,
303
+ // ORACLE
304
+ [OBJECT_TAG_ORACLE_REGISTER_TRANSACTION]: TX_TYPE.oracleRegister,
305
+ [OBJECT_TAG_ORACLE_EXTEND_TRANSACTION]: TX_TYPE.oracleExtend,
306
+ [OBJECT_TAG_ORACLE_QUERY_TRANSACTION]: TX_TYPE.oracleQuery,
307
+ [OBJECT_TAG_ORACLE_RESPONSE_TRANSACTION]: TX_TYPE.oracleResponse,
308
+ // STATE CHANNEL
309
+ [OBJECT_TAG_CHANNEL_CREATE_TX]: TX_TYPE.channelCreate,
310
+ [OBJECT_TAG_CHANNEL_CLOSE_MUTUAL_TX]: TX_TYPE.channelCloseMutual,
311
+ [OBJECT_TAG_CHANNEL_CLOSE_SOLO_TX]: TX_TYPE.channelCloseSolo,
312
+ [OBJECT_TAG_CHANNEL_SLASH_TX]: TX_TYPE.channelSlash,
313
+ [OBJECT_TAG_CHANNEL_FORCE_PROGRESS_TX]: TX_TYPE.channelForceProgress,
314
+ [OBJECT_TAG_CHANNEL_DEPOSIT_TX]: TX_TYPE.channelDeposit,
315
+ [OBJECT_TAG_CHANNEL_WITHRAW_TX]: TX_TYPE.channelWithdraw,
316
+ [OBJECT_TAG_CHANNEL_SETTLE_TX]: TX_TYPE.channelSettle,
317
+ [OBJECT_TAG_CHANNEL_OFFCHAIN_TX]: TX_TYPE.channelOffChain,
318
+ [OBJECT_TAG_CHANNEL]: TX_TYPE.channel,
319
+ [OBJECT_TAG_CHANNEL_SNAPSHOT_SOLO_TX]: TX_TYPE.channelSnapshotSolo,
320
+ [OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX]: TX_TYPE.channelOffChainUpdateTransfer,
321
+ [OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX]: TX_TYPE.channelOffChainUpdateDeposit,
322
+ [OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX]: TX_TYPE.channelOffChainUpdateWithdrawal,
323
+ [OBJECT_TAG_CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX]: TX_TYPE.channelOffChainCreateContract,
324
+ [OBJECT_TAG_CHANNEL_OFFCHAIN_CALL_CONTRACT_TX]: TX_TYPE.channelOffChainCallContract,
325
+ [OBJECT_TAG_CHANNEL_RECONNECT_TX]: TX_TYPE.channelReconnect,
326
+ [OBJECT_TAG_PROOF_OF_INCLUSION]: TX_TYPE.proofOfInclusion,
327
+ [OBJECT_TAG_STATE_TREES]: TX_TYPE.stateTrees,
328
+ [OBJECT_TAG_MERKLE_PATRICIA_TREE]: TX_TYPE.merklePatriciaTree,
329
+ [OBJECT_TAG_MERKLE_PATRICIA_TREE_VALUE]: TX_TYPE.merklePatriciaTreeValue,
330
+ [OBJECT_TAG_CONTRACTS_TREE]: TX_TYPE.contractsTree,
331
+ [OBJECT_TAG_CONTRACT_CALLS_TREE]: TX_TYPE.contractCallsTree,
332
+ [OBJECT_TAG_CHANNELS_TREE]: TX_TYPE.channelsTree,
333
+ [OBJECT_TAG_NAMESERVICE_TREE]: TX_TYPE.nameserviceTree,
334
+ [OBJECT_TAG_ORACLES_TREE]: TX_TYPE.oraclesTree,
335
+ [OBJECT_TAG_ACCOUNTS_TREE]: TX_TYPE.accountsTree,
336
+ [OBJECT_TAG_GA_ATTACH]: TX_TYPE.gaAttach,
337
+ [OBJECT_TAG_GA_META]: TX_TYPE.gaMeta,
338
+ [OBJECT_TAG_PAYING_FOR]: TX_TYPE.payingFor,
339
+ [OBJECT_TAG_SOPHIA_BYTE_CODE]: TX_TYPE.sophiaByteCode
340
+ };
341
+ export const FIELD_TYPES = {
342
+ int: 'int',
343
+ amount: 'amount',
344
+ id: 'id',
345
+ ids: 'ids',
346
+ string: 'string',
347
+ binary: 'binary',
348
+ rlpBinary: 'rlpBinary',
349
+ rlpBinaries: 'rlpBinaries',
350
+ rawBinary: 'rawBinary',
351
+ bool: 'bool',
352
+ hex: 'hex',
353
+ signatures: 'signatures',
354
+ pointers: 'pointers',
355
+ offChainUpdates: 'offChainUpdates',
356
+ callStack: 'callStack',
357
+ proofOfInclusion: 'proofOfInclusion',
358
+ mptrees: 'mptrees',
359
+ callReturnType: 'callReturnType',
360
+ ctVersion: 'ctVersion',
361
+ sophiaCodeTypeInfo: 'sophiaCodeTypeInfo',
362
+ payload: 'payload',
363
+ any: 'any',
364
+ stateTree: 'stateTree'
365
+ }; // FEE CALCULATION
366
+
367
+ export const BASE_GAS = 15000;
368
+ export const GAS_PER_BYTE = 20;
369
+ export const DEFAULT_FEE = 20000;
370
+ export const KEY_BLOCK_INTERVAL = 3; // MAP WITH FEE CALCULATION https://github.com/aeternity/protocol/blob/master/consensus/consensus.md#gas
371
+
372
+ export const TX_FEE_BASE_GAS = txType => {
373
+ const factor = {
374
+ [TX_TYPE.channelForceProgress]: 30,
375
+ [TX_TYPE.channelOffChain]: 0,
376
+ [TX_TYPE.channelOffChainCallContract]: 0,
377
+ [TX_TYPE.channelOffChainCreateContract]: 0,
378
+ [TX_TYPE.channelOffChainUpdateDeposit]: 0,
379
+ [TX_TYPE.channelOffChainUpdateWithdrawal]: 0,
380
+ [TX_TYPE.channelOffChainUpdateTransfer]: 0,
381
+ [TX_TYPE.contractCreate]: 5,
382
+ [TX_TYPE.contractCall]: 12,
383
+ [TX_TYPE.gaAttach]: 5,
384
+ [TX_TYPE.gaMeta]: 5,
385
+ [TX_TYPE.payingFor]: 1 / 5
386
+ }[txType] || 1;
387
+ return new BigNumber(factor * BASE_GAS);
388
+ };
389
+ export const TX_FEE_OTHER_GAS = (txType, txSize, _ref2) => {
390
+ let {
391
+ relativeTtl,
392
+ innerTxSize
393
+ } = _ref2;
394
+
395
+ switch (txType) {
396
+ case TX_TYPE.oracleRegister:
397
+ case TX_TYPE.oracleExtend:
398
+ case TX_TYPE.oracleQuery:
399
+ case TX_TYPE.oracleResponse:
400
+ return new BigNumber(txSize).times(GAS_PER_BYTE).plus(Math.ceil(32000 * relativeTtl / Math.floor(60 * 24 * 365 / KEY_BLOCK_INTERVAL)));
401
+
402
+ case TX_TYPE.gaMeta:
403
+ case TX_TYPE.payingFor:
404
+ return new BigNumber(txSize).minus(innerTxSize).times(GAS_PER_BYTE);
405
+
406
+ default:
407
+ return new BigNumber(txSize).times(GAS_PER_BYTE);
408
+ }
409
+ };
410
+ export const ID_TAG = {
411
+ account: ID_TAG_ACCOUNT,
412
+ name: ID_TAG_NAME,
413
+ commitment: ID_TAG_COMMITMENT,
414
+ oracle: ID_TAG_ORACLE,
415
+ contract: ID_TAG_CONTRACT,
416
+ channel: ID_TAG_CHANNEL
417
+ };
418
+ export const PREFIX_ID_TAG = {
419
+ ak: ID_TAG.account,
420
+ nm: ID_TAG.name,
421
+ cm: ID_TAG.commitment,
422
+ ok: ID_TAG.oracle,
423
+ ct: ID_TAG.contract,
424
+ ch: ID_TAG.channel
425
+ };
426
+ export const ID_TAG_PREFIX = revertObject(PREFIX_ID_TAG);
427
+ const BASE_TX = [TX_FIELD('tag', FIELD_TYPES.int), TX_FIELD('VSN', FIELD_TYPES.int)];
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)];
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')];
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)];
431
+ const SIGNED_TX = [...BASE_TX, TX_FIELD('signatures', FIELD_TYPES.signatures), TX_FIELD('encodedTx', FIELD_TYPES.rlpBinary)];
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)];
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)];
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')];
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)];
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)];
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')];
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')];
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
444
+ // <log> :: [ { <address> :: id, [ <topics> :: binary() ], <data> :: binary() } ]
445
+ TX_FIELD('log', FIELD_TYPES.rawBinary)];
446
+ const ORACLE_REGISTER_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('queryFormat', FIELD_TYPES.string), TX_FIELD('responseFormat', FIELD_TYPES.string), TX_FIELD('queryFee', FIELD_TYPES.amount), TX_FIELD('oracleTtlType', FIELD_TYPES.int), TX_FIELD('oracleTtlValue', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('abiVersion', FIELD_TYPES.int)];
447
+ const ORACLE_EXTEND_TX = [...BASE_TX, TX_FIELD('oracleId', FIELD_TYPES.id, ['ok', 'nm']), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('oracleTtlType', FIELD_TYPES.int), TX_FIELD('oracleTtlValue', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
448
+ const ORACLE_QUERY_TX = [...BASE_TX, TX_FIELD('senderId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('oracleId', FIELD_TYPES.id, ['ok', 'nm']), TX_FIELD('query', FIELD_TYPES.string), TX_FIELD('queryFee', FIELD_TYPES.amount), TX_FIELD('queryTtlType', FIELD_TYPES.int), TX_FIELD('queryTtlValue', FIELD_TYPES.int), TX_FIELD('responseTtlType', FIELD_TYPES.int), TX_FIELD('responseTtlValue', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
449
+ const ORACLE_RESPOND_TX = [...BASE_TX, TX_FIELD('oracleId', FIELD_TYPES.id, 'ok'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('queryId', FIELD_TYPES.binary, 'oq'), TX_FIELD('response', FIELD_TYPES.string), TX_FIELD('responseTtlType', FIELD_TYPES.int), TX_FIELD('responseTtlValue', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
450
+ const CHANNEL_CREATE_TX_2 = [...BASE_TX, TX_FIELD('initiator', FIELD_TYPES.id, 'ak'), TX_FIELD('initiatorAmount', FIELD_TYPES.int), TX_FIELD('responder', FIELD_TYPES.id, 'ak'), TX_FIELD('responderAmount', FIELD_TYPES.int), TX_FIELD('channelReserve', FIELD_TYPES.int), TX_FIELD('lockPeriod', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('initiatorDelegateIds', FIELD_TYPES.string), TX_FIELD('responderDelegateIds', FIELD_TYPES.string), TX_FIELD('stateHash', FIELD_TYPES.binary, 'st'), TX_FIELD('nonce', FIELD_TYPES.int)];
451
+ const CHANNEL_DEPOSIT_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('amount', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('stateHash', FIELD_TYPES.binary, 'st'), TX_FIELD('round', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
452
+ const CHANNEL_WITHDRAW_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('toId', FIELD_TYPES.id, 'ak'), TX_FIELD('amount', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('stateHash', FIELD_TYPES.binary, 'st'), TX_FIELD('round', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
453
+ const CHANNEL_CLOSE_MUTUAL_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)];
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)];
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)];
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)];
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)];
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')];
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')];
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)];
461
+ const CHANNEL_OFFCHAIN_CREATE_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('deposit', FIELD_TYPES.int), TX_FIELD('callData', FIELD_TYPES.binary, 'cb')];
462
+ const CHANNEL_OFFCHAIN_CALL_CONTRACT_TX = [...BASE_TX, TX_FIELD('caller', FIELD_TYPES.id, 'ak'), TX_FIELD('contract', FIELD_TYPES.id, 'ct'), TX_FIELD('abiVersion', FIELD_TYPES.int), TX_FIELD('amount', FIELD_TYPES.int), TX_FIELD('callData', FIELD_TYPES.binary, 'cb'), TX_FIELD('callStack', FIELD_TYPES.callStack), TX_FIELD('gasPrice', FIELD_TYPES.int), TX_FIELD('gasLimit', FIELD_TYPES.int)];
463
+ const CHANNEL_RECONNECT_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('round', FIELD_TYPES.int), TX_FIELD('role', FIELD_TYPES.string), TX_FIELD('pubkey', FIELD_TYPES.id, 'ak')];
464
+ const CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX = [...BASE_TX, TX_FIELD('from', FIELD_TYPES.id, 'ak'), TX_FIELD('to', FIELD_TYPES.id, 'ak'), TX_FIELD('amount', FIELD_TYPES.int)];
465
+ const CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX = [...BASE_TX, TX_FIELD('from', FIELD_TYPES.id, 'ak'), TX_FIELD('amount', FIELD_TYPES.int)];
466
+ const CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX = [...BASE_TX, TX_FIELD('from', FIELD_TYPES.id, 'ak'), TX_FIELD('amount', FIELD_TYPES.int)];
467
+ const PROOF_OF_INCLUSION_TX = [...BASE_TX, TX_FIELD('accounts', FIELD_TYPES.mptrees), TX_FIELD('calls', FIELD_TYPES.mptrees), TX_FIELD('channels', FIELD_TYPES.mptrees), TX_FIELD('contracts', FIELD_TYPES.mptrees), TX_FIELD('ns', FIELD_TYPES.mptrees), TX_FIELD('oracles', FIELD_TYPES.mptrees)];
468
+ const STATE_TREES_TX = [...BASE_TX, TX_FIELD('contracts', FIELD_TYPES.rlpBinary), TX_FIELD('calls', FIELD_TYPES.rlpBinary), TX_FIELD('channels', FIELD_TYPES.rlpBinary), TX_FIELD('ns', FIELD_TYPES.rlpBinary), TX_FIELD('oracles', FIELD_TYPES.rlpBinary), TX_FIELD('accounts', FIELD_TYPES.rlpBinary)];
469
+ const MERKLE_PATRICIA_TREE_TX = [...BASE_TX, TX_FIELD('values', FIELD_TYPES.rlpBinaries)];
470
+ const MERKLE_PATRICIA_TREE_VALUE_TX = [...BASE_TX, TX_FIELD('key', FIELD_TYPES.hex), TX_FIELD('value', FIELD_TYPES.rawBinary)];
471
+ const CONTRACTS_TREE_TX = [...BASE_TX, TX_FIELD('contracts', FIELD_TYPES.rlpBinary)];
472
+ const CONTRACT_CALLS_TREE_TX = [...BASE_TX, TX_FIELD('calls', FIELD_TYPES.rlpBinary)];
473
+ const CHANNELS_TREE_TX = [...BASE_TX, TX_FIELD('channels', FIELD_TYPES.rlpBinary)];
474
+ const NAMESERVICE_TREE_TX = [...BASE_TX, TX_FIELD('mtree', FIELD_TYPES.rlpBinary)];
475
+ const ORACLES_TREE_TX = [...BASE_TX, TX_FIELD('otree', FIELD_TYPES.rlpBinary)];
476
+ const ACCOUNTS_TREE_TX = [...BASE_TX, TX_FIELD('accounts', FIELD_TYPES.rlpBinary)];
477
+ export const TX_SERIALIZATION_SCHEMA = {
478
+ [TX_TYPE.account]: {
479
+ 2: TX_SCHEMA_FIELD(ACCOUNT_TX_2, OBJECT_TAG_ACCOUNT)
480
+ },
481
+ [TX_TYPE.signed]: {
482
+ 1: TX_SCHEMA_FIELD(SIGNED_TX, OBJECT_TAG_SIGNED_TRANSACTION)
483
+ },
484
+ [TX_TYPE.spend]: {
485
+ 1: TX_SCHEMA_FIELD(SPEND_TX, OBJECT_TAG_SPEND_TRANSACTION)
486
+ },
487
+ [TX_TYPE.namePreClaim]: {
488
+ 1: TX_SCHEMA_FIELD(NAME_PRE_CLAIM_TX, OBJECT_TAG_NAME_SERVICE_PRECLAIM_TRANSACTION)
489
+ },
490
+ [TX_TYPE.nameClaim]: {
491
+ 2: TX_SCHEMA_FIELD(NAME_CLAIM_TX_2, OBJECT_TAG_NAME_SERVICE_CLAIM_TRANSACTION)
492
+ },
493
+ [TX_TYPE.nameUpdate]: {
494
+ 1: TX_SCHEMA_FIELD(NAME_UPDATE_TX, OBJECT_TAG_NAME_SERVICE_UPDATE_TRANSACTION)
495
+ },
496
+ [TX_TYPE.nameTransfer]: {
497
+ 1: TX_SCHEMA_FIELD(NAME_TRANSFER_TX, OBJECT_TAG_NAME_SERVICE_TRANSFER_TRANSACTION)
498
+ },
499
+ [TX_TYPE.nameRevoke]: {
500
+ 1: TX_SCHEMA_FIELD(NAME_REVOKE_TX, OBJECT_TAG_NAME_SERVICE_REVOKE_TRANSACTION)
501
+ },
502
+ [TX_TYPE.contract]: {
503
+ 1: TX_SCHEMA_FIELD(CONTRACT_TX, OBJECT_TAG_CONTRACT)
504
+ },
505
+ [TX_TYPE.contractCreate]: {
506
+ 1: TX_SCHEMA_FIELD(CONTRACT_CREATE_TX, OBJECT_TAG_CONTRACT_CREATE_TRANSACTION)
507
+ },
508
+ [TX_TYPE.contractCall]: {
509
+ 1: TX_SCHEMA_FIELD(CONTRACT_CALL_TX, OBJECT_TAG_CONTRACT_CALL_TRANSACTION)
510
+ },
511
+ [TX_TYPE.contractCallResult]: {
512
+ 1: TX_SCHEMA_FIELD(CONTRACT_CALL_RESULT_TX, OBJECT_TAG_CONTRACT_CALL)
513
+ },
514
+ [TX_TYPE.oracleRegister]: {
515
+ 1: TX_SCHEMA_FIELD(ORACLE_REGISTER_TX, OBJECT_TAG_ORACLE_REGISTER_TRANSACTION)
516
+ },
517
+ [TX_TYPE.oracleExtend]: {
518
+ 1: TX_SCHEMA_FIELD(ORACLE_EXTEND_TX, OBJECT_TAG_ORACLE_EXTEND_TRANSACTION)
519
+ },
520
+ [TX_TYPE.oracleQuery]: {
521
+ 1: TX_SCHEMA_FIELD(ORACLE_QUERY_TX, OBJECT_TAG_ORACLE_QUERY_TRANSACTION)
522
+ },
523
+ [TX_TYPE.oracleResponse]: {
524
+ 1: TX_SCHEMA_FIELD(ORACLE_RESPOND_TX, OBJECT_TAG_ORACLE_RESPONSE_TRANSACTION)
525
+ },
526
+ [TX_TYPE.channelCreate]: {
527
+ 2: TX_SCHEMA_FIELD(CHANNEL_CREATE_TX_2, OBJECT_TAG_CHANNEL_CREATE_TX)
528
+ },
529
+ [TX_TYPE.channelCloseMutual]: {
530
+ 1: TX_SCHEMA_FIELD(CHANNEL_CLOSE_MUTUAL_TX, OBJECT_TAG_CHANNEL_CLOSE_MUTUAL_TX)
531
+ },
532
+ [TX_TYPE.channelCloseSolo]: {
533
+ 1: TX_SCHEMA_FIELD(CHANNEL_CLOSE_SOLO_TX, OBJECT_TAG_CHANNEL_CLOSE_SOLO_TX)
534
+ },
535
+ [TX_TYPE.channelSlash]: {
536
+ 1: TX_SCHEMA_FIELD(CHANNEL_SLASH_TX, OBJECT_TAG_CHANNEL_SLASH_TX)
537
+ },
538
+ [TX_TYPE.channelDeposit]: {
539
+ 1: TX_SCHEMA_FIELD(CHANNEL_DEPOSIT_TX, OBJECT_TAG_CHANNEL_DEPOSIT_TX)
540
+ },
541
+ [TX_TYPE.channelWithdraw]: {
542
+ 1: TX_SCHEMA_FIELD(CHANNEL_WITHDRAW_TX, OBJECT_TAG_CHANNEL_WITHRAW_TX)
543
+ },
544
+ [TX_TYPE.channelSettle]: {
545
+ 1: TX_SCHEMA_FIELD(CHANNEL_SETTLE_TX, OBJECT_TAG_CHANNEL_SETTLE_TX)
546
+ },
547
+ [TX_TYPE.channelForceProgress]: {
548
+ 1: TX_SCHEMA_FIELD(CHANNEL_FORCE_PROGRESS_TX, OBJECT_TAG_CHANNEL_FORCE_PROGRESS_TX)
549
+ },
550
+ [TX_TYPE.channelOffChain]: {
551
+ 2: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_TX_2, OBJECT_TAG_CHANNEL_OFFCHAIN_TX)
552
+ },
553
+ [TX_TYPE.channel]: {
554
+ 3: TX_SCHEMA_FIELD(CHANNEL_TX_3, OBJECT_TAG_CHANNEL)
555
+ },
556
+ [TX_TYPE.channelSnapshotSolo]: {
557
+ 1: TX_SCHEMA_FIELD(CHANNEL_SNAPSHOT_SOLO_TX, OBJECT_TAG_CHANNEL_SNAPSHOT_SOLO_TX)
558
+ },
559
+ [TX_TYPE.channelOffChainUpdateTransfer]: {
560
+ 1: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX)
561
+ },
562
+ [TX_TYPE.channelOffChainUpdateDeposit]: {
563
+ 1: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX)
564
+ },
565
+ [TX_TYPE.channelOffChainUpdateWithdrawal]: {
566
+ 1: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX)
567
+ },
568
+ [TX_TYPE.channelOffChainCreateContract]: {
569
+ 1: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX)
570
+ },
571
+ [TX_TYPE.channelOffChainCallContract]: {
572
+ 1: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_CALL_CONTRACT_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_CALL_CONTRACT_TX)
573
+ },
574
+ [TX_TYPE.channelReconnect]: {
575
+ 1: TX_SCHEMA_FIELD(CHANNEL_RECONNECT_TX, OBJECT_TAG_CHANNEL_RECONNECT_TX)
576
+ },
577
+ [TX_TYPE.proofOfInclusion]: {
578
+ 1: TX_SCHEMA_FIELD(PROOF_OF_INCLUSION_TX, OBJECT_TAG_PROOF_OF_INCLUSION)
579
+ },
580
+ [TX_TYPE.stateTrees]: {
581
+ 1: TX_SCHEMA_FIELD(STATE_TREES_TX, OBJECT_TAG_STATE_TREES)
582
+ },
583
+ [TX_TYPE.merklePatriciaTree]: {
584
+ 1: TX_SCHEMA_FIELD(MERKLE_PATRICIA_TREE_TX, OBJECT_TAG_MERKLE_PATRICIA_TREE)
585
+ },
586
+ [TX_TYPE.merklePatriciaTreeValue]: {
587
+ 1: TX_SCHEMA_FIELD(MERKLE_PATRICIA_TREE_VALUE_TX, OBJECT_TAG_MERKLE_PATRICIA_TREE_VALUE)
588
+ },
589
+ [TX_TYPE.contractsTree]: {
590
+ 1: TX_SCHEMA_FIELD(CONTRACTS_TREE_TX, OBJECT_TAG_CONTRACTS_TREE)
591
+ },
592
+ [TX_TYPE.contractCallsTree]: {
593
+ 1: TX_SCHEMA_FIELD(CONTRACT_CALLS_TREE_TX, OBJECT_TAG_CONTRACT_CALLS_TREE)
594
+ },
595
+ [TX_TYPE.channelsTree]: {
596
+ 1: TX_SCHEMA_FIELD(CHANNELS_TREE_TX, OBJECT_TAG_CHANNELS_TREE)
597
+ },
598
+ [TX_TYPE.nameserviceTree]: {
599
+ 1: TX_SCHEMA_FIELD(NAMESERVICE_TREE_TX, OBJECT_TAG_NAMESERVICE_TREE)
600
+ },
601
+ [TX_TYPE.oraclesTree]: {
602
+ 1: TX_SCHEMA_FIELD(ORACLES_TREE_TX, OBJECT_TAG_ORACLES_TREE)
603
+ },
604
+ [TX_TYPE.accountsTree]: {
605
+ 1: TX_SCHEMA_FIELD(ACCOUNTS_TREE_TX, OBJECT_TAG_ACCOUNTS_TREE)
606
+ },
607
+ [TX_TYPE.gaAttach]: {
608
+ 1: TX_SCHEMA_FIELD(GA_ATTACH_TX, OBJECT_TAG_GA_ATTACH)
609
+ },
610
+ [TX_TYPE.gaMeta]: {
611
+ 2: TX_SCHEMA_FIELD(GA_META_TX_2, OBJECT_TAG_GA_META)
612
+ },
613
+ [TX_TYPE.payingFor]: {
614
+ 1: TX_SCHEMA_FIELD(PAYING_FOR_TX, OBJECT_TAG_PAYING_FOR)
615
+ }
616
+ };
617
+ export const TX_DESERIALIZATION_SCHEMA = {
618
+ [OBJECT_TAG_ACCOUNT]: {
619
+ 2: TX_SCHEMA_FIELD(ACCOUNT_TX_2, OBJECT_TAG_ACCOUNT)
620
+ },
621
+ [OBJECT_TAG_SIGNED_TRANSACTION]: {
622
+ 1: TX_SCHEMA_FIELD(SIGNED_TX, OBJECT_TAG_SIGNED_TRANSACTION)
623
+ },
624
+ [OBJECT_TAG_SPEND_TRANSACTION]: {
625
+ 1: TX_SCHEMA_FIELD(SPEND_TX, OBJECT_TAG_SPEND_TRANSACTION)
626
+ },
627
+ [OBJECT_TAG_NAME_SERVICE_PRECLAIM_TRANSACTION]: {
628
+ 1: TX_SCHEMA_FIELD(NAME_PRE_CLAIM_TX, OBJECT_TAG_NAME_SERVICE_PRECLAIM_TRANSACTION)
629
+ },
630
+ [OBJECT_TAG_NAME_SERVICE_CLAIM_TRANSACTION]: {
631
+ 2: TX_SCHEMA_FIELD(NAME_CLAIM_TX_2, OBJECT_TAG_NAME_SERVICE_CLAIM_TRANSACTION)
632
+ },
633
+ [OBJECT_TAG_NAME_SERVICE_UPDATE_TRANSACTION]: {
634
+ 1: TX_SCHEMA_FIELD(NAME_UPDATE_TX, OBJECT_TAG_NAME_SERVICE_UPDATE_TRANSACTION)
635
+ },
636
+ [OBJECT_TAG_NAME_SERVICE_TRANSFER_TRANSACTION]: {
637
+ 1: TX_SCHEMA_FIELD(NAME_TRANSFER_TX, OBJECT_TAG_NAME_SERVICE_TRANSFER_TRANSACTION)
638
+ },
639
+ [OBJECT_TAG_NAME_SERVICE_REVOKE_TRANSACTION]: {
640
+ 1: TX_SCHEMA_FIELD(NAME_REVOKE_TX, OBJECT_TAG_NAME_SERVICE_REVOKE_TRANSACTION)
641
+ },
642
+ [OBJECT_TAG_CONTRACT]: {
643
+ 1: TX_SCHEMA_FIELD(CONTRACT_TX, OBJECT_TAG_CONTRACT)
644
+ },
645
+ [OBJECT_TAG_CONTRACT_CREATE_TRANSACTION]: {
646
+ 1: TX_SCHEMA_FIELD(CONTRACT_CREATE_TX, OBJECT_TAG_CONTRACT_CREATE_TRANSACTION)
647
+ },
648
+ [OBJECT_TAG_CONTRACT_CALL_TRANSACTION]: {
649
+ 1: TX_SCHEMA_FIELD(CONTRACT_CALL_TX, OBJECT_TAG_CONTRACT_CALL_TRANSACTION)
650
+ },
651
+ [OBJECT_TAG_CONTRACT_CALL]: {
652
+ 1: TX_SCHEMA_FIELD(CONTRACT_CALL_RESULT_TX, OBJECT_TAG_CONTRACT_CALL)
653
+ },
654
+ [OBJECT_TAG_ORACLE_REGISTER_TRANSACTION]: {
655
+ 1: TX_SCHEMA_FIELD(ORACLE_REGISTER_TX, OBJECT_TAG_ORACLE_REGISTER_TRANSACTION)
656
+ },
657
+ [OBJECT_TAG_ORACLE_EXTEND_TRANSACTION]: {
658
+ 1: TX_SCHEMA_FIELD(ORACLE_EXTEND_TX, OBJECT_TAG_ORACLE_EXTEND_TRANSACTION)
659
+ },
660
+ [OBJECT_TAG_ORACLE_QUERY_TRANSACTION]: {
661
+ 1: TX_SCHEMA_FIELD(ORACLE_QUERY_TX, OBJECT_TAG_ORACLE_QUERY_TRANSACTION)
662
+ },
663
+ [OBJECT_TAG_ORACLE_RESPONSE_TRANSACTION]: {
664
+ 1: TX_SCHEMA_FIELD(ORACLE_RESPOND_TX, OBJECT_TAG_ORACLE_RESPONSE_TRANSACTION)
665
+ },
666
+ [OBJECT_TAG_CHANNEL_CREATE_TX]: {
667
+ 2: TX_SCHEMA_FIELD(CHANNEL_CREATE_TX_2, OBJECT_TAG_CHANNEL_CREATE_TX)
668
+ },
669
+ [OBJECT_TAG_CHANNEL_CLOSE_MUTUAL_TX]: {
670
+ 1: TX_SCHEMA_FIELD(CHANNEL_CLOSE_MUTUAL_TX, OBJECT_TAG_CHANNEL_CLOSE_MUTUAL_TX)
671
+ },
672
+ [OBJECT_TAG_CHANNEL_CLOSE_SOLO_TX]: {
673
+ 1: TX_SCHEMA_FIELD(CHANNEL_CLOSE_SOLO_TX, OBJECT_TAG_CHANNEL_CLOSE_SOLO_TX)
674
+ },
675
+ [OBJECT_TAG_CHANNEL_SLASH_TX]: {
676
+ 1: TX_SCHEMA_FIELD(CHANNEL_SLASH_TX, OBJECT_TAG_CHANNEL_SLASH_TX)
677
+ },
678
+ [OBJECT_TAG_CHANNEL_DEPOSIT_TX]: {
679
+ 1: TX_SCHEMA_FIELD(CHANNEL_DEPOSIT_TX, OBJECT_TAG_CHANNEL_DEPOSIT_TX)
680
+ },
681
+ [OBJECT_TAG_CHANNEL_WITHRAW_TX]: {
682
+ 1: TX_SCHEMA_FIELD(CHANNEL_WITHDRAW_TX, OBJECT_TAG_CHANNEL_WITHRAW_TX)
683
+ },
684
+ [OBJECT_TAG_CHANNEL_SETTLE_TX]: {
685
+ 1: TX_SCHEMA_FIELD(CHANNEL_SETTLE_TX, OBJECT_TAG_CHANNEL_SETTLE_TX)
686
+ },
687
+ [OBJECT_TAG_CHANNEL_OFFCHAIN_TX]: {
688
+ 2: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_TX_2, OBJECT_TAG_CHANNEL_OFFCHAIN_TX)
689
+ },
690
+ [OBJECT_TAG_CHANNEL]: {
691
+ 3: TX_SCHEMA_FIELD(CHANNEL_TX_3, OBJECT_TAG_CHANNEL)
692
+ },
693
+ [OBJECT_TAG_CHANNEL_SNAPSHOT_SOLO_TX]: {
694
+ 1: TX_SCHEMA_FIELD(CHANNEL_SNAPSHOT_SOLO_TX, OBJECT_TAG_CHANNEL_SNAPSHOT_SOLO_TX)
695
+ },
696
+ [OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX]: {
697
+ 1: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX)
698
+ },
699
+ [OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX]: {
700
+ 1: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX)
701
+ },
702
+ [OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX]: {
703
+ 1: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX)
704
+ },
705
+ [OBJECT_TAG_CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX]: {
706
+ 1: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX)
707
+ },
708
+ [OBJECT_TAG_CHANNEL_OFFCHAIN_CALL_CONTRACT_TX]: {
709
+ 1: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_CALL_CONTRACT_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_CALL_CONTRACT_TX)
710
+ },
711
+ [OBJECT_TAG_CHANNEL_RECONNECT_TX]: {
712
+ 1: TX_SCHEMA_FIELD(CHANNEL_RECONNECT_TX, OBJECT_TAG_CHANNEL_RECONNECT_TX)
713
+ },
714
+ [OBJECT_TAG_PROOF_OF_INCLUSION]: {
715
+ 1: TX_SCHEMA_FIELD(PROOF_OF_INCLUSION_TX, OBJECT_TAG_PROOF_OF_INCLUSION)
716
+ },
717
+ [OBJECT_TAG_STATE_TREES]: {
718
+ 1: TX_SCHEMA_FIELD(STATE_TREES_TX, OBJECT_TAG_STATE_TREES)
719
+ },
720
+ [OBJECT_TAG_MERKLE_PATRICIA_TREE]: {
721
+ 1: TX_SCHEMA_FIELD(MERKLE_PATRICIA_TREE_TX, OBJECT_TAG_MERKLE_PATRICIA_TREE)
722
+ },
723
+ [OBJECT_TAG_MERKLE_PATRICIA_TREE_VALUE]: {
724
+ 1: TX_SCHEMA_FIELD(MERKLE_PATRICIA_TREE_VALUE_TX, OBJECT_TAG_MERKLE_PATRICIA_TREE_VALUE)
725
+ },
726
+ [OBJECT_TAG_CONTRACTS_TREE]: {
727
+ 1: TX_SCHEMA_FIELD(CONTRACTS_TREE_TX, OBJECT_TAG_CONTRACTS_TREE)
728
+ },
729
+ [OBJECT_TAG_CONTRACT_CALLS_TREE]: {
730
+ 1: TX_SCHEMA_FIELD(CONTRACT_CALLS_TREE_TX, OBJECT_TAG_CONTRACT_CALLS_TREE)
731
+ },
732
+ [OBJECT_TAG_CHANNELS_TREE]: {
733
+ 1: TX_SCHEMA_FIELD(CHANNELS_TREE_TX, OBJECT_TAG_CHANNELS_TREE)
734
+ },
735
+ [OBJECT_TAG_NAMESERVICE_TREE]: {
736
+ 1: TX_SCHEMA_FIELD(NAMESERVICE_TREE_TX, OBJECT_TAG_NAMESERVICE_TREE)
737
+ },
738
+ [OBJECT_TAG_ORACLES_TREE]: {
739
+ 1: TX_SCHEMA_FIELD(ORACLES_TREE_TX, OBJECT_TAG_ORACLES_TREE)
740
+ },
741
+ [OBJECT_TAG_ACCOUNTS_TREE]: {
742
+ 1: TX_SCHEMA_FIELD(ACCOUNTS_TREE_TX, OBJECT_TAG_ACCOUNTS_TREE)
743
+ },
744
+ [OBJECT_TAG_GA_ATTACH]: {
745
+ 1: TX_SCHEMA_FIELD(GA_ATTACH_TX, OBJECT_TAG_GA_ATTACH)
746
+ },
747
+ [OBJECT_TAG_GA_META]: {
748
+ 2: TX_SCHEMA_FIELD(GA_META_TX_2, OBJECT_TAG_GA_META)
749
+ },
750
+ [OBJECT_TAG_PAYING_FOR]: {
751
+ 1: TX_SCHEMA_FIELD(PAYING_FOR_TX, OBJECT_TAG_PAYING_FOR)
752
+ },
753
+ [OBJECT_TAG_CHANNEL_FORCE_PROGRESS_TX]: {
754
+ 1: TX_SCHEMA_FIELD(CHANNEL_FORCE_PROGRESS_TX, OBJECT_TAG_CHANNEL_FORCE_PROGRESS_TX)
755
+ },
756
+ [OBJECT_TAG_SOPHIA_BYTE_CODE]: {
757
+ 3: TX_SCHEMA_FIELD(CONTRACT_BYTE_CODE_LIMA, OBJECT_TAG_SOPHIA_BYTE_CODE)
758
+ }
759
+ };
760
+ //# sourceMappingURL=schema.mjs.map