@aeternity/aepp-sdk 8.2.1 → 10.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 (159) hide show
  1. package/CHANGELOG.md +216 -337
  2. package/README.md +16 -9
  3. package/dist/aepp-sdk.browser-script.js +1 -1
  4. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -9
  5. package/dist/aepp-sdk.browser-script.js.map +1 -1
  6. package/dist/aepp-sdk.browser.js +1 -1
  7. package/dist/aepp-sdk.browser.js.map +1 -1
  8. package/dist/aepp-sdk.js +1 -1
  9. package/dist/aepp-sdk.js.map +1 -1
  10. package/es/account/base.js +36 -120
  11. package/es/account/base.js.map +1 -1
  12. package/es/account/memory.js +17 -19
  13. package/es/account/memory.js.map +1 -1
  14. package/es/account/multiple.js +79 -156
  15. package/es/account/multiple.js.map +1 -1
  16. package/es/ae/aens.js +205 -626
  17. package/es/ae/aens.js.map +1 -1
  18. package/es/ae/contract.js +114 -918
  19. package/es/ae/contract.js.map +1 -1
  20. package/es/ae/index.js +90 -250
  21. package/es/ae/index.js.map +1 -1
  22. package/es/ae/oracle.js +136 -504
  23. package/es/ae/oracle.js.map +1 -1
  24. package/es/ae/universal.js.map +1 -1
  25. package/es/chain/index.js +12 -27
  26. package/es/chain/index.js.map +1 -1
  27. package/es/chain/node.js +289 -1020
  28. package/es/chain/node.js.map +1 -1
  29. package/es/channel/handlers.js +597 -1086
  30. package/es/channel/handlers.js.map +1 -1
  31. package/es/channel/index.js +238 -465
  32. package/es/channel/index.js.map +1 -1
  33. package/es/channel/internal.js +129 -301
  34. package/es/channel/internal.js.map +1 -1
  35. package/es/contract/aci/index.js +328 -495
  36. package/es/contract/aci/index.js.map +1 -1
  37. package/es/contract/aci/transformation.js +35 -711
  38. package/es/contract/aci/transformation.js.map +1 -1
  39. package/es/contract/compiler.js +131 -203
  40. package/es/contract/compiler.js.map +1 -1
  41. package/es/contract/ga/helpers.js +17 -122
  42. package/es/contract/ga/helpers.js.map +1 -1
  43. package/es/contract/ga/index.js +108 -249
  44. package/es/contract/ga/index.js.map +1 -1
  45. package/es/contract/index.js +7 -3
  46. package/es/contract/index.js.map +1 -1
  47. package/es/index.js +3 -3
  48. package/es/index.js.map +1 -1
  49. package/es/node-pool/index.js +57 -74
  50. package/es/node-pool/index.js.map +1 -1
  51. package/es/node.js +65 -161
  52. package/es/node.js.map +1 -1
  53. package/es/other.d.ts +1 -1
  54. package/es/tx/builder/helpers.js +62 -115
  55. package/es/tx/builder/helpers.js.map +1 -1
  56. package/es/tx/builder/index.js +218 -309
  57. package/es/tx/builder/index.js.map +1 -1
  58. package/es/tx/builder/schema.js +586 -573
  59. package/es/tx/builder/schema.js.map +1 -1
  60. package/es/tx/index.js +102 -13
  61. package/es/tx/index.js.map +1 -1
  62. package/es/tx/tx-object.js +114 -138
  63. package/es/tx/tx-object.js.map +1 -1
  64. package/es/tx/tx.js +810 -1586
  65. package/es/tx/tx.js.map +1 -1
  66. package/es/tx/validator.js +191 -426
  67. package/es/tx/validator.js.map +1 -1
  68. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +20 -23
  69. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +1 -1
  70. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +53 -80
  71. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +1 -1
  72. package/es/utils/aepp-wallet-communication/connection/index.js +2 -1
  73. package/es/utils/aepp-wallet-communication/connection/index.js.map +1 -1
  74. package/es/utils/aepp-wallet-communication/content-script-bridge.js +24 -19
  75. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +1 -1
  76. package/es/utils/aepp-wallet-communication/helpers.js +60 -105
  77. package/es/utils/aepp-wallet-communication/helpers.js.map +1 -1
  78. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +191 -514
  79. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +1 -1
  80. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +78 -93
  81. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +1 -1
  82. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +381 -613
  83. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +1 -1
  84. package/es/utils/aepp-wallet-communication/schema.js +43 -39
  85. package/es/utils/aepp-wallet-communication/schema.js.map +1 -1
  86. package/es/utils/aepp-wallet-communication/wallet-detector.js +32 -58
  87. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +1 -1
  88. package/es/utils/amount-formatter.js +41 -61
  89. package/es/utils/amount-formatter.js.map +1 -1
  90. package/es/utils/async-init.js +28 -64
  91. package/es/utils/async-init.js.map +1 -1
  92. package/es/utils/bignumber.js +3 -11
  93. package/es/utils/bignumber.js.map +1 -1
  94. package/es/utils/bytes.js +5 -9
  95. package/es/utils/bytes.js.map +1 -1
  96. package/es/utils/crypto.js +41 -106
  97. package/es/utils/crypto.js.map +1 -1
  98. package/es/utils/hd-wallet.js +45 -81
  99. package/es/utils/hd-wallet.js.map +1 -1
  100. package/es/utils/json-big.js +16 -49
  101. package/es/utils/json-big.js.map +1 -1
  102. package/es/utils/keystore.js +81 -246
  103. package/es/utils/keystore.js.map +1 -1
  104. package/es/utils/mptree.js +88 -134
  105. package/es/utils/mptree.js.map +1 -1
  106. package/es/utils/other.js +10 -60
  107. package/es/utils/other.js.map +1 -1
  108. package/es/utils/semver-satisfies.js +9 -28
  109. package/es/utils/semver-satisfies.js.map +1 -1
  110. package/es/utils/string.js +4 -13
  111. package/es/utils/string.js.map +1 -1
  112. package/es/utils/swagger.js +87 -224
  113. package/es/utils/swagger.js.map +1 -1
  114. package/package.json +51 -44
  115. package/src/account/base.js +11 -10
  116. package/src/account/multiple.js +24 -18
  117. package/src/ae/aens.js +64 -61
  118. package/src/ae/contract.js +71 -248
  119. package/src/ae/index.js +34 -9
  120. package/src/ae/oracle.js +30 -22
  121. package/src/ae/universal.js +3 -1
  122. package/src/chain/index.js +10 -16
  123. package/src/chain/node.js +38 -38
  124. package/src/channel/handlers.js +10 -4
  125. package/src/channel/index.js +44 -20
  126. package/src/contract/aci/index.js +234 -112
  127. package/src/contract/aci/transformation.js +30 -422
  128. package/src/contract/compiler.js +50 -5
  129. package/src/contract/ga/helpers.js +6 -14
  130. package/src/contract/ga/index.js +28 -28
  131. package/src/contract/index.js +6 -2
  132. package/src/index.js +4 -4
  133. package/src/node-pool/index.js +24 -13
  134. package/src/node.js +29 -30
  135. package/src/tx/builder/helpers.js +31 -56
  136. package/src/tx/builder/index.js +67 -28
  137. package/src/tx/builder/schema.js +79 -121
  138. package/src/tx/index.js +101 -12
  139. package/src/tx/tx-object.js +25 -8
  140. package/src/tx/tx.js +229 -150
  141. package/src/tx/validator.js +134 -202
  142. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +3 -2
  143. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +25 -7
  144. package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
  145. package/src/utils/aepp-wallet-communication/content-script-bridge.js +10 -4
  146. package/src/utils/aepp-wallet-communication/helpers.js +4 -2
  147. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +33 -12
  148. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +9 -5
  149. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +59 -29
  150. package/src/utils/aepp-wallet-communication/schema.js +1 -3
  151. package/src/utils/aepp-wallet-communication/wallet-detector.js +4 -1
  152. package/src/utils/amount-formatter.ts +1 -1
  153. package/src/utils/bignumber.ts +2 -1
  154. package/src/utils/crypto.js +4 -68
  155. package/src/utils/keystore.js +10 -2
  156. package/src/utils/other.ts +1 -1
  157. package/src/utils/semver-satisfies.ts +1 -1
  158. package/src/utils/swagger.js +22 -10
  159. package/src/contract/aci/helpers.js +0 -140
package/es/ae/oracle.js CHANGED
@@ -1,26 +1,3 @@
1
- import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
2
- import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
- import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
4
- import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
5
- import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
6
- import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
7
- import _merge from "ramda/src/merge";
8
- import _typeof from "@babel/runtime-corejs3/helpers/typeof";
9
- import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
10
- import _asyncToGenerator from "@babel/runtime-corejs3/helpers/asyncToGenerator";
11
-
12
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) { symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
13
-
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context20; _forEachInstanceProperty(_context20 = ownKeys(Object(source), true)).call(_context20, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context21; _forEachInstanceProperty(_context21 = ownKeys(Object(source))).call(_context21, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
15
-
16
- import _regeneratorRuntime from "@babel/runtime-corejs3/regenerator";
17
- import _Set from "@babel/runtime-corejs3/core-js-stable/set";
18
- import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
19
- import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
20
- import _setInterval from "@babel/runtime-corejs3/core-js-stable/set-interval";
21
- import _bindInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/bind";
22
- import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
23
-
24
1
  /*
25
2
  * ISC License (ISC)
26
3
  * Copyright (c) 2018 aeternity developers
@@ -49,9 +26,9 @@ import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instan
49
26
  * @example import { Oracle } from '@aeternity/aepp-sdk'
50
27
  */
51
28
  import Ae from './';
52
- import { decodeBase64Check, assertedType } from '../utils/crypto';
29
+ import { decodeBase64Check } from '../utils/crypto';
53
30
  import { pause } from '../utils/other';
54
- import { oracleQueryId } from '../tx/builder/helpers';
31
+ import { oracleQueryId, decode } from '../tx/builder/helpers';
55
32
  import { unpackTx } from '../tx/builder';
56
33
  import { ORACLE_TTL, QUERY_FEE, QUERY_TTL, RESPONSE_TTL } from '../tx/builder/schema';
57
34
  /**
@@ -64,8 +41,19 @@ import { ORACLE_TTL, QUERY_FEE, QUERY_TTL, RESPONSE_TTL } from '../tx/builder/sc
64
41
  * @return {Promise<Object>} Oracle object
65
42
  */
66
43
 
67
- function getOracleObject(_x) {
68
- return _getOracleObject.apply(this, arguments);
44
+ async function getOracleObject(oracleId) {
45
+ const oracle = await this.api.getOracleByPubkey(oracleId);
46
+ const {
47
+ oracleQueries: queries
48
+ } = await this.api.getOracleQueriesByPubkey(oracleId);
49
+ return { ...oracle,
50
+ queries,
51
+ pollQueries: this.pollForQueries.bind(this, oracleId),
52
+ postQuery: this.postQueryToOracle.bind(this, oracleId),
53
+ respondToQuery: this.respondToQuery.bind(this, oracleId),
54
+ extendOracle: this.extendOracleTtl.bind(this, oracleId),
55
+ getQuery: this.getQueryObject.bind(this, oracleId)
56
+ };
69
57
  }
70
58
  /**
71
59
  * Poll for oracle queries
@@ -80,112 +68,31 @@ function getOracleObject(_x) {
80
68
  */
81
69
 
82
70
 
83
- function _getOracleObject() {
84
- _getOracleObject = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(oracleId) {
85
- var _context3, _context4, _context5, _context6, _context7;
86
-
87
- var oracle, _yield$this$api$getOr, queries;
88
-
89
- return _regeneratorRuntime.wrap(function _callee2$(_context8) {
90
- while (1) {
91
- switch (_context8.prev = _context8.next) {
92
- case 0:
93
- _context8.next = 2;
94
- return this.api.getOracleByPubkey(oracleId);
95
-
96
- case 2:
97
- oracle = _context8.sent;
98
- _context8.next = 5;
99
- return this.api.getOracleQueriesByPubkey(oracleId);
100
-
101
- case 5:
102
- _yield$this$api$getOr = _context8.sent;
103
- queries = _yield$this$api$getOr.oracleQueries;
104
- return _context8.abrupt("return", _objectSpread(_objectSpread({}, oracle), {}, {
105
- queries: queries,
106
- pollQueries: _bindInstanceProperty(_context3 = this.pollForQueries).call(_context3, this, oracleId),
107
- postQuery: _bindInstanceProperty(_context4 = this.postQueryToOracle).call(_context4, this, oracleId),
108
- respondToQuery: _bindInstanceProperty(_context5 = this.respondToQuery).call(_context5, this, oracleId),
109
- extendOracle: _bindInstanceProperty(_context6 = this.extendOracleTtl).call(_context6, this, oracleId),
110
- getQuery: _bindInstanceProperty(_context7 = this.getQueryObject).call(_context7, this, oracleId)
111
- }));
112
-
113
- case 8:
114
- case "end":
115
- return _context8.stop();
116
- }
117
- }
118
- }, _callee2, this);
119
- }));
120
- return _getOracleObject.apply(this, arguments);
121
- }
122
-
123
71
  function pollForQueries(oracleId, onQuery) {
124
- var _this = this;
125
-
126
- var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
127
- _ref$interval = _ref.interval,
128
- interval = _ref$interval === void 0 ? 5000 : _ref$interval;
129
-
130
- var knownQueryIds = new _Set();
131
-
132
- var checkNewQueries = /*#__PURE__*/function () {
133
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
134
- var _context;
135
-
136
- var queries;
137
- return _regeneratorRuntime.wrap(function _callee$(_context2) {
138
- while (1) {
139
- switch (_context2.prev = _context2.next) {
140
- case 0:
141
- _context2.t0 = _filterInstanceProperty;
142
- _context2.next = 3;
143
- return _this.api.getOracleQueriesByPubkey(oracleId);
144
-
145
- case 3:
146
- _context2.t1 = _context2.sent.oracleQueries;
147
-
148
- if (_context2.t1) {
149
- _context2.next = 6;
150
- break;
151
- }
152
-
153
- _context2.t1 = [];
154
-
155
- case 6:
156
- _context2.t2 = _context = _context2.t1;
157
- queries = (0, _context2.t0)(_context2.t2).call(_context, function (_ref3) {
158
- var id = _ref3.id;
159
- return !knownQueryIds.has(id);
160
- });
161
-
162
- _forEachInstanceProperty(queries).call(queries, function (_ref4) {
163
- var id = _ref4.id;
164
- return knownQueryIds.add(id);
165
- });
166
-
167
- if (queries.length) onQuery(queries);
168
-
169
- case 10:
170
- case "end":
171
- return _context2.stop();
172
- }
173
- }
174
- }, _callee);
175
- }));
176
-
177
- return function checkNewQueries() {
178
- return _ref2.apply(this, arguments);
179
- };
180
- }();
72
+ let {
73
+ interval = 5000
74
+ } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
75
+ const knownQueryIds = new Set();
76
+
77
+ const checkNewQueries = async () => {
78
+ const queries = ((await this.api.getOracleQueriesByPubkey(oracleId)).oracleQueries || []).filter(_ref => {
79
+ let {
80
+ id
81
+ } = _ref;
82
+ return !knownQueryIds.has(id);
83
+ });
84
+ queries.forEach(_ref2 => {
85
+ let {
86
+ id
87
+ } = _ref2;
88
+ return knownQueryIds.add(id);
89
+ });
90
+ if (queries.length) onQuery(queries);
91
+ };
181
92
 
182
93
  checkNewQueries();
183
-
184
- var intervalId = _setInterval(checkNewQueries, interval);
185
-
186
- return function () {
187
- return clearInterval(intervalId);
188
- };
94
+ const intervalId = setInterval(checkNewQueries, interval);
95
+ return () => clearInterval(intervalId);
189
96
  }
190
97
  /**
191
98
  * Constructor for OracleQuery Object (helper object for using OracleQuery)
@@ -199,8 +106,15 @@ function pollForQueries(oracleId, onQuery) {
199
106
  */
200
107
 
201
108
 
202
- function getQueryObject(_x2, _x3) {
203
- return _getQueryObject.apply(this, arguments);
109
+ async function getQueryObject(oracleId, queryId) {
110
+ const q = await this.api.getOracleQueryByPubkeyAndQueryId(oracleId, queryId);
111
+ return { ...q,
112
+ decodedQuery: decodeBase64Check(q.query.slice(3)).toString(),
113
+ decodedResponse: decodeBase64Check(q.response.slice(3)).toString(),
114
+ respond: this.respondToQuery.bind(this, oracleId, queryId),
115
+ pollForResponse: this.pollForQueryResponse.bind(this, oracleId, queryId),
116
+ decode: data => decodeBase64Check(data.slice(3))
117
+ };
204
118
  }
205
119
  /**
206
120
  * Poll for oracle query response
@@ -217,42 +131,25 @@ function getQueryObject(_x2, _x3) {
217
131
  */
218
132
 
219
133
 
220
- function _getQueryObject() {
221
- _getQueryObject = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(oracleId, queryId) {
222
- var _context9, _context10, _context11, _context12;
134
+ export async function pollForQueryResponse(oracleId, queryId) {
135
+ let {
136
+ attempts = 20,
137
+ interval = 5000
138
+ } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
223
139
 
224
- var q;
225
- return _regeneratorRuntime.wrap(function _callee3$(_context13) {
226
- while (1) {
227
- switch (_context13.prev = _context13.next) {
228
- case 0:
229
- _context13.next = 2;
230
- return this.api.getOracleQueryByPubkeyAndQueryId(oracleId, queryId);
140
+ for (let i = 0; i < attempts; i++) {
141
+ if (i) await pause(interval);
142
+ const {
143
+ response
144
+ } = await this.api.getOracleQueryByPubkeyAndQueryId(oracleId, queryId);
145
+ const responseBuffer = decode(response, 'or');
231
146
 
232
- case 2:
233
- q = _context13.sent;
234
- return _context13.abrupt("return", _objectSpread(_objectSpread({}, q), {}, {
235
- decodedQuery: decodeBase64Check(_sliceInstanceProperty(_context9 = q.query).call(_context9, 3)).toString(),
236
- decodedResponse: decodeBase64Check(_sliceInstanceProperty(_context10 = q.response).call(_context10, 3)).toString(),
237
- respond: _bindInstanceProperty(_context11 = this.respondToQuery).call(_context11, this, oracleId, queryId),
238
- pollForResponse: _bindInstanceProperty(_context12 = this.pollForQueryResponse).call(_context12, this, oracleId, queryId),
239
- decode: function decode(data) {
240
- return decodeBase64Check(_sliceInstanceProperty(data).call(data, 3));
241
- }
242
- }));
243
-
244
- case 4:
245
- case "end":
246
- return _context13.stop();
247
- }
248
- }
249
- }, _callee3, this);
250
- }));
251
- return _getQueryObject.apply(this, arguments);
252
- }
147
+ if (responseBuffer.length) {
148
+ return String(responseBuffer);
149
+ }
150
+ }
253
151
 
254
- export function pollForQueryResponse(_x4, _x5) {
255
- return _pollForQueryResponse.apply(this, arguments);
152
+ throw new Error(`Giving up after ${(attempts - 1) * interval}ms`);
256
153
  }
257
154
  /**
258
155
  * Register oracle
@@ -263,118 +160,29 @@ export function pollForQueryResponse(_x4, _x5) {
263
160
  * @param {String} queryFormat Format of query
264
161
  * @param {String} responseFormat Format of query response
265
162
  * @param {Object} [options={}] Options
266
- * @param {String|Number} [options.queryFee] queryFee Oracle query Fee
267
- * @param {Object} [options.oracleTtl] oracleTtl OracleTtl object {type: 'delta|block', value: 'number'}
268
- * @param {Number} [options.abiVersion] abiVersion Always 0 (do not use virtual machine)
269
- * @param {Number|String} [options.fee] fee Transaction fee
163
+ * @param {String|Number} [options.queryFee] Oracle query Fee
164
+ * @param {Object} [options.oracleTtl] OracleTtl object {type: 'delta|block', value: 'number'}
165
+ * @param {Number} [options.abiVersion] Always 0 (do not use virtual machine)
166
+ * @param {Number|String} [options.fee] Transaction fee
270
167
  * @param {Number|String} [options.ttl] Transaction time to leave
271
168
  * @return {Promise<Object>} Oracle object
272
169
  */
273
170
 
274
- function _pollForQueryResponse() {
275
- _pollForQueryResponse = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(oracleId, queryId) {
276
- var _this2 = this;
277
-
278
- var _ref5,
279
- _ref5$attempts,
280
- attempts,
281
- _ref5$interval,
282
- interval,
283
- _loop,
284
- i,
285
- _ret,
286
- _args5 = arguments;
287
-
288
- return _regeneratorRuntime.wrap(function _callee4$(_context15) {
289
- while (1) {
290
- switch (_context15.prev = _context15.next) {
291
- case 0:
292
- _ref5 = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : {}, _ref5$attempts = _ref5.attempts, attempts = _ref5$attempts === void 0 ? 20 : _ref5$attempts, _ref5$interval = _ref5.interval, interval = _ref5$interval === void 0 ? 5000 : _ref5$interval;
293
- _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop(i) {
294
- var _yield$_this2$api$get, response, responseBuffer;
295
-
296
- return _regeneratorRuntime.wrap(function _loop$(_context14) {
297
- while (1) {
298
- switch (_context14.prev = _context14.next) {
299
- case 0:
300
- if (!i) {
301
- _context14.next = 3;
302
- break;
303
- }
304
-
305
- _context14.next = 3;
306
- return pause(interval);
307
-
308
- case 3:
309
- _context14.next = 5;
310
- return _this2.api.getOracleQueryByPubkeyAndQueryId(oracleId, queryId);
311
-
312
- case 5:
313
- _yield$_this2$api$get = _context14.sent;
314
- response = _yield$_this2$api$get.response;
315
- responseBuffer = decodeBase64Check(assertedType(response, 'or'));
316
-
317
- if (!responseBuffer.length) {
318
- _context14.next = 10;
319
- break;
320
- }
321
-
322
- return _context14.abrupt("return", {
323
- v: {
324
- response: response,
325
- decode: function decode() {
326
- return responseBuffer;
327
- }
328
- }
329
- });
330
-
331
- case 10:
332
- case "end":
333
- return _context14.stop();
334
- }
335
- }
336
- }, _loop);
337
- });
338
- i = 0;
339
-
340
- case 3:
341
- if (!(i < attempts)) {
342
- _context15.next = 11;
343
- break;
344
- }
345
-
346
- return _context15.delegateYield(_loop(i), "t0", 5);
347
-
348
- case 5:
349
- _ret = _context15.t0;
350
-
351
- if (!(_typeof(_ret) === "object")) {
352
- _context15.next = 8;
353
- break;
354
- }
355
-
356
- return _context15.abrupt("return", _ret.v);
357
-
358
- case 8:
359
- i++;
360
- _context15.next = 3;
361
- break;
362
-
363
- case 11:
364
- throw new Error("Giving up after ".concat((attempts - 1) * interval, "ms"));
365
-
366
- case 12:
367
- case "end":
368
- return _context15.stop();
369
- }
370
- }
371
- }, _callee4);
372
- }));
373
- return _pollForQueryResponse.apply(this, arguments);
374
- }
375
-
376
- function registerOracle(_x6, _x7) {
377
- return _registerOracle.apply(this, arguments);
171
+ async function registerOracle(queryFormat, responseFormat) {
172
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
173
+ const opt = { ...this.Ae.defaults,
174
+ ...options
175
+ }; // Preset VmVersion for oracle
176
+
177
+ const accountId = await this.address(opt);
178
+ const oracleRegisterTx = await this.oracleRegisterTx({ ...opt,
179
+ accountId,
180
+ queryFormat,
181
+ responseFormat
182
+ });
183
+ return { ...(await this.send(oracleRegisterTx, opt)),
184
+ ...(await this.getOracleObject(`ok_${accountId.slice(3)}`))
185
+ };
378
186
  }
379
187
  /**
380
188
  * Post query to oracle
@@ -394,62 +202,23 @@ function registerOracle(_x6, _x7) {
394
202
  */
395
203
 
396
204
 
397
- function _registerOracle() {
398
- _registerOracle = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(queryFormat, responseFormat) {
399
- var options,
400
- opt,
401
- accountId,
402
- oracleRegisterTx,
403
- _args6 = arguments;
404
- return _regeneratorRuntime.wrap(function _callee5$(_context16) {
405
- while (1) {
406
- switch (_context16.prev = _context16.next) {
407
- case 0:
408
- options = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : {};
409
- opt = _merge(this.Ae.defaults, options); // Preset VmVersion for oracle
410
-
411
- _context16.next = 4;
412
- return this.address(opt);
413
-
414
- case 4:
415
- accountId = _context16.sent;
416
- _context16.next = 7;
417
- return this.oracleRegisterTx(_merge(opt, {
418
- accountId: accountId,
419
- queryFormat: queryFormat,
420
- responseFormat: responseFormat
421
- }));
422
-
423
- case 7:
424
- oracleRegisterTx = _context16.sent;
425
- _context16.t0 = _objectSpread;
426
- _context16.t1 = _objectSpread;
427
- _context16.t2 = {};
428
- _context16.next = 13;
429
- return this.send(oracleRegisterTx, opt);
430
-
431
- case 13:
432
- _context16.t3 = _context16.sent;
433
- _context16.t4 = (0, _context16.t1)(_context16.t2, _context16.t3);
434
- _context16.next = 17;
435
- return this.getOracleObject("ok_".concat(_sliceInstanceProperty(accountId).call(accountId, 3)));
436
-
437
- case 17:
438
- _context16.t5 = _context16.sent;
439
- return _context16.abrupt("return", (0, _context16.t0)(_context16.t4, _context16.t5));
440
-
441
- case 19:
442
- case "end":
443
- return _context16.stop();
444
- }
445
- }
446
- }, _callee5, this);
447
- }));
448
- return _registerOracle.apply(this, arguments);
449
- }
450
-
451
- function postQueryToOracle(_x8, _x9) {
452
- return _postQueryToOracle.apply(this, arguments);
205
+ async function postQueryToOracle(oracleId, query) {
206
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
207
+ const queryFee = options.queryFee || (await this.api.getOracleByPubkey(oracleId)).queryFee;
208
+ const opt = { ...this.Ae.defaults,
209
+ queryFee,
210
+ ...options
211
+ };
212
+ const senderId = await this.address(opt);
213
+ const oracleRegisterTx = await this.oraclePostQueryTx({ ...opt,
214
+ oracleId,
215
+ senderId,
216
+ query
217
+ });
218
+ const queryId = oracleQueryId(senderId, unpackTx(oracleRegisterTx).tx.nonce, oracleId);
219
+ return { ...(await this.send(oracleRegisterTx, opt)),
220
+ ...(await this.getQueryObject(oracleId, queryId))
221
+ };
453
222
  }
454
223
  /**
455
224
  * Extend oracle ttl
@@ -466,63 +235,20 @@ function postQueryToOracle(_x8, _x9) {
466
235
  */
467
236
 
468
237
 
469
- function _postQueryToOracle() {
470
- _postQueryToOracle = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(oracleId, query) {
471
- var options,
472
- opt,
473
- senderId,
474
- oracleRegisterTx,
475
- queryId,
476
- _args7 = arguments;
477
- return _regeneratorRuntime.wrap(function _callee6$(_context17) {
478
- while (1) {
479
- switch (_context17.prev = _context17.next) {
480
- case 0:
481
- options = _args7.length > 2 && _args7[2] !== undefined ? _args7[2] : {};
482
- opt = _merge(this.Ae.defaults, options);
483
- _context17.next = 4;
484
- return this.address(opt);
485
-
486
- case 4:
487
- senderId = _context17.sent;
488
- _context17.next = 7;
489
- return this.oraclePostQueryTx(_merge(opt, {
490
- oracleId: oracleId,
491
- senderId: senderId,
492
- query: query
493
- }));
494
-
495
- case 7:
496
- oracleRegisterTx = _context17.sent;
497
- queryId = oracleQueryId(senderId, unpackTx(oracleRegisterTx).tx.nonce, oracleId);
498
- _context17.t0 = _objectSpread;
499
- _context17.t1 = _objectSpread;
500
- _context17.t2 = {};
501
- _context17.next = 14;
502
- return this.send(oracleRegisterTx, opt);
503
-
504
- case 14:
505
- _context17.t3 = _context17.sent;
506
- _context17.t4 = (0, _context17.t1)(_context17.t2, _context17.t3);
507
- _context17.next = 18;
508
- return this.getQueryObject(oracleId, queryId);
509
-
510
- case 18:
511
- _context17.t5 = _context17.sent;
512
- return _context17.abrupt("return", (0, _context17.t0)(_context17.t4, _context17.t5));
513
-
514
- case 20:
515
- case "end":
516
- return _context17.stop();
517
- }
518
- }
519
- }, _callee6, this);
520
- }));
521
- return _postQueryToOracle.apply(this, arguments);
522
- }
523
-
524
- function extendOracleTtl(_x10, _x11) {
525
- return _extendOracleTtl.apply(this, arguments);
238
+ async function extendOracleTtl(oracleId, oracleTtl) {
239
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
240
+ const opt = { ...this.Ae.defaults,
241
+ ...options
242
+ };
243
+ const callerId = await this.address(opt);
244
+ const oracleExtendTx = await this.oracleExtendTx({ ...opt,
245
+ oracleId,
246
+ callerId,
247
+ oracleTtl
248
+ });
249
+ return { ...(await this.send(oracleExtendTx, opt)),
250
+ ...(await this.getOracleObject(oracleId))
251
+ };
526
252
  }
527
253
  /**
528
254
  * Extend oracle ttl
@@ -541,61 +267,21 @@ function extendOracleTtl(_x10, _x11) {
541
267
  */
542
268
 
543
269
 
544
- function _extendOracleTtl() {
545
- _extendOracleTtl = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(oracleId, oracleTtl) {
546
- var options,
547
- opt,
548
- callerId,
549
- oracleExtendTx,
550
- _args8 = arguments;
551
- return _regeneratorRuntime.wrap(function _callee7$(_context18) {
552
- while (1) {
553
- switch (_context18.prev = _context18.next) {
554
- case 0:
555
- options = _args8.length > 2 && _args8[2] !== undefined ? _args8[2] : {};
556
- opt = _merge(this.Ae.defaults, options);
557
- _context18.next = 4;
558
- return this.address(opt);
559
-
560
- case 4:
561
- callerId = _context18.sent;
562
- _context18.next = 7;
563
- return this.oracleExtendTx(_merge(opt, {
564
- oracleId: oracleId,
565
- callerId: callerId,
566
- oracleTtl: oracleTtl
567
- }));
568
-
569
- case 7:
570
- oracleExtendTx = _context18.sent;
571
- _context18.t0 = _objectSpread;
572
- _context18.t1 = _objectSpread;
573
- _context18.t2 = {};
574
- _context18.next = 13;
575
- return this.send(oracleExtendTx, opt);
576
-
577
- case 13:
578
- _context18.t3 = _context18.sent;
579
- _context18.t4 = (0, _context18.t1)(_context18.t2, _context18.t3);
580
- _context18.next = 17;
581
- return this.getOracleObject(oracleId);
582
-
583
- case 17:
584
- _context18.t5 = _context18.sent;
585
- return _context18.abrupt("return", (0, _context18.t0)(_context18.t4, _context18.t5));
586
-
587
- case 19:
588
- case "end":
589
- return _context18.stop();
590
- }
591
- }
592
- }, _callee7, this);
593
- }));
594
- return _extendOracleTtl.apply(this, arguments);
595
- }
596
-
597
- function respondToQuery(_x12, _x13, _x14) {
598
- return _respondToQuery.apply(this, arguments);
270
+ async function respondToQuery(oracleId, queryId, response) {
271
+ let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
272
+ const opt = { ...this.Ae.defaults,
273
+ ...options
274
+ };
275
+ const callerId = await this.address(opt);
276
+ const oracleRespondTx = await this.oracleRespondTx({ ...opt,
277
+ oracleId,
278
+ queryId,
279
+ callerId,
280
+ response
281
+ });
282
+ return { ...(await this.send(oracleRespondTx, opt)),
283
+ ...(await this.getOracleObject(oracleId))
284
+ };
599
285
  }
600
286
  /**
601
287
  * Oracle Stamp
@@ -610,70 +296,16 @@ function respondToQuery(_x12, _x13, _x14) {
610
296
  */
611
297
 
612
298
 
613
- function _respondToQuery() {
614
- _respondToQuery = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(oracleId, queryId, response) {
615
- var options,
616
- opt,
617
- callerId,
618
- oracleRespondTx,
619
- _args9 = arguments;
620
- return _regeneratorRuntime.wrap(function _callee8$(_context19) {
621
- while (1) {
622
- switch (_context19.prev = _context19.next) {
623
- case 0:
624
- options = _args9.length > 3 && _args9[3] !== undefined ? _args9[3] : {};
625
- opt = _merge(this.Ae.defaults, options);
626
- _context19.next = 4;
627
- return this.address(opt);
628
-
629
- case 4:
630
- callerId = _context19.sent;
631
- _context19.next = 7;
632
- return this.oracleRespondTx(_merge(opt, {
633
- oracleId: oracleId,
634
- queryId: queryId,
635
- callerId: callerId,
636
- response: response
637
- }));
638
-
639
- case 7:
640
- oracleRespondTx = _context19.sent;
641
- _context19.t0 = _objectSpread;
642
- _context19.t1 = _objectSpread;
643
- _context19.t2 = {};
644
- _context19.next = 13;
645
- return this.send(oracleRespondTx, opt);
646
-
647
- case 13:
648
- _context19.t3 = _context19.sent;
649
- _context19.t4 = (0, _context19.t1)(_context19.t2, _context19.t3);
650
- _context19.next = 17;
651
- return this.getOracleObject(oracleId);
652
-
653
- case 17:
654
- _context19.t5 = _context19.sent;
655
- return _context19.abrupt("return", (0, _context19.t0)(_context19.t4, _context19.t5));
656
-
657
- case 19:
658
- case "end":
659
- return _context19.stop();
660
- }
661
- }
662
- }, _callee8, this);
663
- }));
664
- return _respondToQuery.apply(this, arguments);
665
- }
666
-
667
- var Oracle = Ae.compose({
299
+ const Oracle = Ae.compose({
668
300
  methods: {
669
- registerOracle: registerOracle,
670
- respondToQuery: respondToQuery,
671
- extendOracleTtl: extendOracleTtl,
672
- postQueryToOracle: postQueryToOracle,
673
- pollForQueryResponse: pollForQueryResponse,
674
- pollForQueries: pollForQueries,
675
- getOracleObject: getOracleObject,
676
- getQueryObject: getQueryObject
301
+ registerOracle,
302
+ respondToQuery,
303
+ extendOracleTtl,
304
+ postQueryToOracle,
305
+ pollForQueryResponse,
306
+ pollForQueries,
307
+ getOracleObject,
308
+ getQueryObject
677
309
  },
678
310
  deepProps: {
679
311
  Ae: {