@aeternity/aepp-sdk 10.0.0 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -14
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +7 -27
- package/dist/aepp-sdk.browser-script.js.map +1 -1
- package/dist/aepp-sdk.browser.js +1 -1
- package/dist/aepp-sdk.browser.js.map +1 -1
- package/dist/aepp-sdk.js +1 -1
- package/dist/aepp-sdk.js.map +1 -1
- package/es/account/{base.js → base.mjs} +20 -10
- package/es/account/base.mjs.map +1 -0
- package/es/account/{memory.js → memory.mjs} +29 -14
- package/es/account/memory.mjs.map +1 -0
- package/es/account/{multiple.js → multiple.mjs} +10 -9
- package/es/account/multiple.mjs.map +1 -0
- package/es/ae/{aens.js → aens.mjs} +18 -22
- package/es/ae/aens.mjs.map +1 -0
- package/es/ae/{aepp.js → aepp.mjs} +9 -9
- package/es/ae/aepp.mjs.map +1 -0
- package/es/ae/contract.mjs +159 -0
- package/es/ae/contract.mjs.map +1 -0
- package/es/ae/{index.js → index.mjs} +8 -7
- package/es/ae/index.mjs.map +1 -0
- package/es/ae/{oracle.js → oracle.mjs} +33 -16
- package/es/ae/oracle.mjs.map +1 -0
- package/es/ae/{universal.js → universal.mjs} +10 -10
- package/es/ae/universal.mjs.map +1 -0
- package/es/ae/{wallet.js → wallet.mjs} +10 -10
- package/es/ae/wallet.mjs.map +1 -0
- package/es/aepp-wallet-communication/schema.d.ts +74 -0
- package/es/bignumber.d.ts +1 -7
- package/es/chain/{index.js → index.mjs} +20 -4
- package/es/chain/index.mjs.map +1 -0
- package/es/chain/{node.js → node.mjs} +121 -73
- package/es/chain/node.mjs.map +1 -0
- package/es/channel/{handlers.js → handlers.mjs} +18 -20
- package/es/channel/handlers.mjs.map +1 -0
- package/es/channel/{index.js → index.mjs} +7 -7
- package/es/channel/index.mjs.map +1 -0
- package/es/channel/{internal.js → internal.mjs} +49 -32
- package/es/channel/internal.mjs.map +1 -0
- package/es/contract/aci.mjs +477 -0
- package/es/contract/aci.mjs.map +1 -0
- package/es/contract/compiler.mjs +115 -0
- package/es/contract/compiler.mjs.map +1 -0
- package/es/contract/ga/helpers.mjs +30 -0
- package/es/contract/ga/helpers.mjs.map +1 -0
- package/es/contract/ga/{index.js → index.mjs} +36 -28
- package/es/contract/ga/index.mjs.map +1 -0
- package/es/errors.d.ts +284 -0
- package/es/index.mjs +57 -0
- package/es/index.mjs.map +1 -0
- package/es/node-pool/{index.js → index.mjs} +11 -10
- package/es/node-pool/index.mjs.map +1 -0
- package/es/{node.js → node.mjs} +9 -8
- package/es/node.mjs.map +1 -0
- package/es/tx/builder/field-types.mjs +74 -0
- package/es/tx/builder/field-types.mjs.map +1 -0
- package/es/tx/builder/{helpers.js → helpers.mjs} +114 -56
- package/es/tx/builder/helpers.mjs.map +1 -0
- package/es/tx/builder/{index.js → index.mjs} +79 -68
- package/es/tx/builder/index.mjs.map +1 -0
- package/es/tx/builder/{schema.js → schema.mjs} +11 -65
- package/es/tx/builder/schema.mjs.map +1 -0
- package/es/tx/{index.js → index.mjs} +5 -2
- package/es/tx/index.mjs.map +1 -0
- package/es/tx/{tx-object.js → tx-object.mjs} +22 -15
- package/es/tx/tx-object.mjs.map +1 -0
- package/es/tx/{tx.js → tx.mjs} +15 -14
- package/es/tx/tx.mjs.map +1 -0
- package/es/tx/{validator.js → validator.mjs} +72 -33
- package/es/tx/validator.mjs.map +1 -0
- package/es/typings/blakejs/index.d.mjs +2 -0
- package/es/typings/blakejs/{index.d.js.map → index.d.mjs.map} +1 -1
- package/es/utils/aepp-wallet-communication/connection/{browser-runtime.js → browser-runtime.mjs} +7 -6
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/connection/{browser-window-message.js → browser-window-message.mjs} +10 -11
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/connection/{index.js → index.mjs} +5 -2
- package/es/utils/aepp-wallet-communication/connection/index.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{content-script-bridge.js → content-script-bridge.mjs} +6 -5
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{helpers.js → helpers.mjs} +3 -14
- package/es/utils/aepp-wallet-communication/helpers.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/{aepp-rpc.js → aepp-rpc.mjs} +113 -67
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/{rpc-client.js → rpc-client.mjs} +14 -9
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/{wallet-rpc.js → wallet-rpc.mjs} +71 -63
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/schema.mjs +102 -0
- package/es/utils/aepp-wallet-communication/schema.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{wallet-detector.js → wallet-detector.mjs} +6 -5
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
- package/es/utils/{amount-formatter.js → amount-formatter.mjs} +14 -7
- package/es/utils/amount-formatter.mjs.map +1 -0
- package/es/utils/{async-init.js → async-init.mjs} +8 -11
- package/es/utils/async-init.mjs.map +1 -0
- package/es/utils/{bignumber.js → bignumber.mjs} +2 -9
- package/es/utils/bignumber.mjs.map +1 -0
- package/es/utils/{bytes.js → bytes.mjs} +16 -8
- package/es/utils/bytes.mjs.map +1 -0
- package/es/utils/{crypto-ts.js → crypto-ts.mjs} +11 -3
- package/es/utils/crypto-ts.mjs.map +1 -0
- package/es/utils/{crypto.js → crypto.mjs} +40 -105
- package/es/utils/crypto.mjs.map +1 -0
- package/es/utils/errors.mjs +689 -0
- package/es/utils/errors.mjs.map +1 -0
- package/es/utils/{hd-wallet.js → hd-wallet.mjs} +33 -34
- package/es/utils/hd-wallet.mjs.map +1 -0
- package/es/utils/{json-big.js → json-big.mjs} +1 -1
- package/es/utils/{json-big.js.map → json-big.mjs.map} +1 -1
- package/es/utils/{keystore.js → keystore.mjs} +63 -51
- package/es/utils/keystore.mjs.map +1 -0
- package/es/utils/{mptree.js → mptree.mjs} +21 -12
- package/es/utils/mptree.mjs.map +1 -0
- package/es/utils/{other.js → other.mjs} +2 -2
- package/es/utils/other.mjs.map +1 -0
- package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
- package/es/utils/{semver-satisfies.js.map → semver-satisfies.mjs.map} +1 -1
- package/es/utils/{string.js → string.mjs} +1 -1
- package/es/utils/{string.js.map → string.mjs.map} +1 -1
- package/es/utils/{swagger.js → swagger.mjs} +46 -14
- package/es/utils/swagger.mjs.map +1 -0
- package/package.json +46 -55
- package/src/account/memory.js +13 -8
- package/src/account/multiple.js +12 -4
- package/src/ae/aens.js +12 -17
- package/src/ae/aepp.js +2 -2
- package/src/ae/contract.js +15 -152
- package/src/ae/index.js +2 -1
- package/src/ae/oracle.js +25 -10
- package/src/ae/universal.js +2 -2
- package/src/ae/wallet.js +2 -2
- package/src/chain/index.js +21 -2
- package/src/chain/node.js +80 -53
- package/src/channel/handlers.js +20 -17
- package/src/channel/internal.js +30 -24
- package/src/contract/{aci/index.js → aci.js} +152 -93
- package/src/contract/compiler.js +22 -117
- package/src/contract/ga/helpers.js +7 -5
- package/src/contract/ga/index.js +27 -24
- package/src/index.js +7 -8
- package/src/node-pool/index.js +9 -8
- package/src/node.js +5 -7
- package/src/tx/builder/field-types.js +61 -0
- package/src/tx/builder/helpers.js +113 -58
- package/src/tx/builder/index.js +39 -34
- package/src/tx/builder/schema.js +11 -25
- package/src/tx/tx-object.js +10 -9
- package/src/tx/tx.js +17 -8
- package/src/tx/validator.js +25 -5
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +8 -3
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +10 -6
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +5 -4
- package/src/utils/aepp-wallet-communication/helpers.js +2 -12
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +81 -55
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +15 -6
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +60 -49
- package/src/utils/aepp-wallet-communication/schema.ts +80 -0
- package/src/utils/aepp-wallet-communication/wallet-detector.js +3 -2
- package/src/utils/amount-formatter.ts +4 -3
- package/src/utils/async-init.js +10 -6
- package/src/utils/bignumber.ts +1 -9
- package/src/utils/bytes.ts +3 -2
- package/src/utils/crypto-ts.ts +2 -2
- package/src/utils/crypto.js +9 -92
- package/src/utils/errors.ts +683 -0
- package/src/utils/hd-wallet.js +11 -26
- package/src/utils/keystore.js +47 -51
- package/src/utils/mptree.ts +12 -6
- package/src/utils/swagger.js +67 -44
- package/CHANGELOG.md +0 -1603
- package/es/account/base.js.map +0 -1
- package/es/account/memory.js.map +0 -1
- package/es/account/multiple.js.map +0 -1
- package/es/ae/aens.js.map +0 -1
- package/es/ae/aepp.js.map +0 -1
- package/es/ae/contract.js +0 -312
- package/es/ae/contract.js.map +0 -1
- package/es/ae/index.js.map +0 -1
- package/es/ae/oracle.js.map +0 -1
- package/es/ae/universal.js.map +0 -1
- package/es/ae/wallet.js.map +0 -1
- package/es/chain/index.js.map +0 -1
- package/es/chain/node.js.map +0 -1
- package/es/channel/handlers.js.map +0 -1
- package/es/channel/index.js.map +0 -1
- package/es/channel/internal.js.map +0 -1
- package/es/contract/aci/helpers.js +0 -298
- package/es/contract/aci/helpers.js.map +0 -1
- package/es/contract/aci/index.js +0 -361
- package/es/contract/aci/index.js.map +0 -1
- package/es/contract/aci/transformation.js +0 -66
- package/es/contract/aci/transformation.js.map +0 -1
- package/es/contract/compiler.js +0 -244
- package/es/contract/compiler.js.map +0 -1
- package/es/contract/ga/helpers.js +0 -22
- package/es/contract/ga/helpers.js.map +0 -1
- package/es/contract/ga/index.js.map +0 -1
- package/es/contract/index.js +0 -162
- package/es/contract/index.js.map +0 -1
- package/es/index.js +0 -57
- package/es/index.js.map +0 -1
- package/es/node-pool/index.js.map +0 -1
- package/es/node.js.map +0 -1
- package/es/tx/builder/helpers.js.map +0 -1
- package/es/tx/builder/index.js.map +0 -1
- package/es/tx/builder/schema.js.map +0 -1
- package/es/tx/index.js.map +0 -1
- package/es/tx/tx-object.js.map +0 -1
- package/es/tx/tx.js.map +0 -1
- package/es/tx/validator.js.map +0 -1
- package/es/typings/blakejs/index.d.js +0 -2
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
- package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
- package/es/utils/aepp-wallet-communication/schema.js +0 -107
- package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
- package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
- package/es/utils/amount-formatter.js.map +0 -1
- package/es/utils/async-init.js.map +0 -1
- package/es/utils/bignumber.js.map +0 -1
- package/es/utils/bytes.js.map +0 -1
- package/es/utils/crypto-ts.js.map +0 -1
- package/es/utils/crypto.js.map +0 -1
- package/es/utils/hd-wallet.js.map +0 -1
- package/es/utils/keystore.js.map +0 -1
- package/es/utils/mptree.js.map +0 -1
- package/es/utils/other.js.map +0 -1
- package/es/utils/swagger.js.map +0 -1
- package/src/contract/aci/transformation.js +0 -72
- package/src/contract/index.js +0 -163
- package/src/utils/aepp-wallet-communication/schema.js +0 -108
|
@@ -22,12 +22,13 @@
|
|
|
22
22
|
* @example import { Ae } from '@aeternity/aepp-sdk'
|
|
23
23
|
*/
|
|
24
24
|
import stampit from '@stamp/it';
|
|
25
|
-
import Tx from
|
|
26
|
-
import Chain from
|
|
27
|
-
import AccountBase from
|
|
28
|
-
import TxBuilder from
|
|
25
|
+
import Tx from "../tx/index.mjs";
|
|
26
|
+
import Chain from "../chain/index.mjs";
|
|
27
|
+
import AccountBase from "../account/base.mjs";
|
|
28
|
+
import TxBuilder from "../tx/builder/index.mjs";
|
|
29
29
|
import BigNumber from 'bignumber.js';
|
|
30
|
-
import { AE_AMOUNT_FORMATS } from
|
|
30
|
+
import { AE_AMOUNT_FORMATS } from "../utils/amount-formatter.mjs";
|
|
31
|
+
import { ArgumentError } from "../utils/errors.mjs";
|
|
31
32
|
/**
|
|
32
33
|
* Sign and post a transaction to the chain
|
|
33
34
|
* @instance
|
|
@@ -105,7 +106,7 @@ async function spend(amount, recipientIdOrName, options) {
|
|
|
105
106
|
|
|
106
107
|
async function transferFunds(fraction, recipientIdOrName, options) {
|
|
107
108
|
if (fraction < 0 || fraction > 1) {
|
|
108
|
-
throw new
|
|
109
|
+
throw new ArgumentError('fraction', 'a number between 0 and 1', fraction);
|
|
109
110
|
}
|
|
110
111
|
|
|
111
112
|
const opt = { ...this.Ae.defaults,
|
|
@@ -203,4 +204,4 @@ const Ae = stampit(Tx, AccountBase, Chain, {
|
|
|
203
204
|
}
|
|
204
205
|
});
|
|
205
206
|
export default Ae;
|
|
206
|
-
//# sourceMappingURL=index.
|
|
207
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ae/index.js"],"names":["stampit","Tx","Chain","AccountBase","TxBuilder","BigNumber","AE_AMOUNT_FORMATS","ArgumentError","send","tx","options","opt","Ae","defaults","contractId","authFun","innerTx","getAccount","address","signed","signUsingGA","signTransaction","hash","buildTxHash","rawTx","sendTransaction","authData","createMetaTx","spend","amount","recipientIdOrName","spendTx","senderId","recipientId","resolveName","transferFunds","fraction","balance","desiredAmount","times","integerValue","ROUND_HALF_UP","fee","unpackTx","plus","gt","minus","payForTransaction","transaction","payingForTx","payerId","destroyInstance","destroyMethods","forEach","m","methods","deepProps","denomination","AETTOS"],"mappings":"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","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Ae module\n * @module @aeternity/aepp-sdk/es/ae\n * @export Ae\n * @example import { Ae } from '@aeternity/aepp-sdk'\n */\n\nimport stampit from '@stamp/it'\nimport Tx from '../tx'\nimport Chain from '../chain'\nimport AccountBase from '../account/base'\nimport TxBuilder from '../tx/builder'\nimport BigNumber from 'bignumber.js'\nimport { AE_AMOUNT_FORMATS } from '../utils/amount-formatter'\nimport { ArgumentError } from '../utils/errors'\n\n/**\n * Sign and post a transaction to the chain\n * @instance\n * @category async\n * @rtype (tx: String, options: Object) => Promise[String]\n * @param {String} tx - Transaction\n * @param {Object} [options={}] options - Options\n * @param {Object} [options.verify=true] - Verify transaction before broadcast, throw error if not\n * valid\n * @return {Object} Transaction\n */\nasync function send (tx, options = {}) {\n const opt = { ...this.Ae.defaults, ...options }\n const { contractId, authFun } = options.innerTx\n ? { contractId: false }\n : await this.getAccount(await this.address(opt))\n const signed = contractId\n ? await this.signUsingGA(tx, { ...opt, authFun })\n : await this.signTransaction(tx, opt)\n return opt.innerTx\n ? { hash: TxBuilder.buildTxHash(signed), rawTx: signed }\n : this.sendTransaction(signed, opt)\n}\n\nasync function signUsingGA (tx, { authData, authFun, ...options } = {}) {\n return this.createMetaTx(tx, authData, authFun, options)\n}\n\n/**\n * Send tokens to another account\n * @instance\n * @category async\n * @rtype (amount: Number|String, recipientIdOrName: String, options?: Object) => Promise[String]\n * @param {Number|String} amount - Amount to spend\n * @param {String} recipientIdOrName - Address or name of recipient account\n * @param {Object} [options] - Options\n * @return {Object} Transaction\n */\nasync function spend (amount, recipientIdOrName, options) {\n const opt = { ...this.Ae.defaults, ...options }\n return this.send(\n await this.spendTx({\n ...opt,\n senderId: await this.address(opt),\n recipientId: await this.resolveName(recipientIdOrName, 'account_pubkey', opt),\n amount\n }),\n opt\n )\n}\n\n// TODO: Rename to spendFraction\n/**\n * Send a fraction of token balance to another account\n * @instance\n * @category async\n * @rtype (fraction: Number|String, recipientIdOrName: String, options?: Object) => Promise[String]\n * @param {Number|String} fraction - Fraction of balance to spend (between 0 and 1)\n * @param {String} recipientIdOrName - Address or name of recipient account\n * @param {Object} [options] - Options\n * @return {Object} Transaction\n */\nasync function transferFunds (fraction, recipientIdOrName, options) {\n if (fraction < 0 || fraction > 1) {\n throw new ArgumentError('fraction', 'a number between 0 and 1', fraction)\n }\n const opt = { ...this.Ae.defaults, ...options }\n const recipientId = await this.resolveName(recipientIdOrName, 'account_pubkey', opt)\n const senderId = await this.address(opt)\n const balance = new BigNumber(await this.balance(senderId))\n const desiredAmount = balance.times(fraction).integerValue(BigNumber.ROUND_HALF_UP)\n const { tx: { fee } } = TxBuilder.unpackTx(\n await this.spendTx({ ...opt, senderId, recipientId, amount: desiredAmount })\n )\n // Reducing of the amount may reduce transaction fee, so this is not completely accurate\n const amount = desiredAmount.plus(fee).gt(balance) ? balance.minus(fee) : desiredAmount\n return this.send(await this.spendTx({ ...opt, senderId, recipientId, amount }), opt)\n}\n\n/**\n * Submit transaction of another account paying for it (fee and gas)\n * @instance\n * @category async\n * @rtype (transaction: String, options?: Object) => Promise[String]\n * @param {String} transaction - tx_<base64>-encoded transaction\n * @param {Object} [options]\n * @return {Object} Transaction\n */\nasync function payForTransaction (transaction, options) {\n const opt = { ...this.Ae.defaults, ...options }\n return this.send(\n await this.payingForTx({\n ...opt,\n payerId: await this.address(opt),\n tx: transaction\n }),\n opt\n )\n}\n\n/**\n * Remove all listeners for RPC\n * @instance\n * @return {void}\n */\nfunction destroyInstance () {\n const destroyMethods = ['destroyClient', 'destroyServer'] // Array with destroy function's\n destroyMethods.forEach(m => this[m] && typeof this[m] === 'function' && this[m]())\n}\n\n/**\n * Basic Ae Stamp\n *\n * Attempting to create instances from the Stamp without overwriting all\n * abstract methods using composition will result in an exception.\n *\n * Ae objects are the composition of three basic building blocks:\n * * {@link module:@aeternity/aepp-sdk/es/tx--Tx}\n * * {@link module:@aeternity/aepp-sdk/es/account--Account}\n * * {@link module:@aeternity/aepp-sdk/es/chain--Chain}\n * Only by providing the joint functionality of those three, most more advanced\n * operations, i.e. the ones with actual use value on the chain, become\n * available.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Ae instance\n */\nconst Ae = stampit(Tx, AccountBase, Chain, {\n methods: { send, spend, transferFunds, payForTransaction, destroyInstance, signUsingGA },\n deepProps: { Ae: { defaults: { denomination: AE_AMOUNT_FORMATS.AETTOS } } }\n})\n\nexport default Ae\n"],"file":"index.mjs"}
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
* @export Oracle
|
|
26
26
|
* @example import { Oracle } from '@aeternity/aepp-sdk'
|
|
27
27
|
*/
|
|
28
|
-
import Ae from
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
28
|
+
import Ae from "./index.mjs";
|
|
29
|
+
import { pause } from "../utils/other.mjs";
|
|
30
|
+
import { oracleQueryId, decode } from "../tx/builder/helpers.mjs";
|
|
31
|
+
import { unpackTx } from "../tx/builder/index.mjs";
|
|
32
|
+
import { ORACLE_TTL, QUERY_FEE, QUERY_TTL, RESPONSE_TTL } from "../tx/builder/schema.mjs";
|
|
33
|
+
import { RequestTimedOutError } from "../utils/errors.mjs";
|
|
34
34
|
/**
|
|
35
35
|
* Constructor for Oracle Object (helper object for using Oracle)
|
|
36
36
|
* @alias module:@aeternity/aepp-sdk/es/ae/oracle
|
|
@@ -70,7 +70,7 @@ async function getOracleObject(oracleId) {
|
|
|
70
70
|
|
|
71
71
|
function pollForQueries(oracleId, onQuery) {
|
|
72
72
|
let {
|
|
73
|
-
interval =
|
|
73
|
+
interval = this._getPollInterval('microblock')
|
|
74
74
|
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
75
75
|
const knownQueryIds = new Set();
|
|
76
76
|
|
|
@@ -90,9 +90,20 @@ function pollForQueries(oracleId, onQuery) {
|
|
|
90
90
|
if (queries.length) onQuery(queries);
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
let stopped;
|
|
94
|
+
|
|
95
|
+
(async () => {
|
|
96
|
+
while (!stopped) {
|
|
97
|
+
// eslint-disable-line no-unmodified-loop-condition
|
|
98
|
+
// TODO: allow to handle this error somehow
|
|
99
|
+
await checkNewQueries().catch(console.error);
|
|
100
|
+
await pause(interval);
|
|
101
|
+
}
|
|
102
|
+
})();
|
|
103
|
+
|
|
104
|
+
return () => {
|
|
105
|
+
stopped = true;
|
|
106
|
+
};
|
|
96
107
|
}
|
|
97
108
|
/**
|
|
98
109
|
* Constructor for OracleQuery Object (helper object for using OracleQuery)
|
|
@@ -109,11 +120,17 @@ function pollForQueries(oracleId, onQuery) {
|
|
|
109
120
|
async function getQueryObject(oracleId, queryId) {
|
|
110
121
|
const q = await this.api.getOracleQueryByPubkeyAndQueryId(oracleId, queryId);
|
|
111
122
|
return { ...q,
|
|
112
|
-
decodedQuery:
|
|
113
|
-
decodedResponse:
|
|
123
|
+
decodedQuery: decode(q.query).toString(),
|
|
124
|
+
decodedResponse: decode(q.response).toString(),
|
|
114
125
|
respond: this.respondToQuery.bind(this, oracleId, queryId),
|
|
115
126
|
pollForResponse: this.pollForQueryResponse.bind(this, oracleId, queryId),
|
|
116
|
-
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @deprecated use TxBuilderHelper.decode instead
|
|
130
|
+
* @param data
|
|
131
|
+
* @returns {Buffer}
|
|
132
|
+
*/
|
|
133
|
+
decode: data => decode(data)
|
|
117
134
|
};
|
|
118
135
|
}
|
|
119
136
|
/**
|
|
@@ -134,7 +151,7 @@ async function getQueryObject(oracleId, queryId) {
|
|
|
134
151
|
export async function pollForQueryResponse(oracleId, queryId) {
|
|
135
152
|
let {
|
|
136
153
|
attempts = 20,
|
|
137
|
-
interval =
|
|
154
|
+
interval = this._getPollInterval('microblock')
|
|
138
155
|
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
139
156
|
|
|
140
157
|
for (let i = 0; i < attempts; i++) {
|
|
@@ -149,7 +166,7 @@ export async function pollForQueryResponse(oracleId, queryId) {
|
|
|
149
166
|
}
|
|
150
167
|
}
|
|
151
168
|
|
|
152
|
-
throw new
|
|
169
|
+
throw new RequestTimedOutError((attempts - 1) * interval);
|
|
153
170
|
}
|
|
154
171
|
/**
|
|
155
172
|
* Register oracle
|
|
@@ -319,4 +336,4 @@ const Oracle = Ae.compose({
|
|
|
319
336
|
}
|
|
320
337
|
});
|
|
321
338
|
export default Oracle;
|
|
322
|
-
//# sourceMappingURL=oracle.
|
|
339
|
+
//# sourceMappingURL=oracle.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ae/oracle.js"],"names":["Ae","pause","oracleQueryId","decode","unpackTx","ORACLE_TTL","QUERY_FEE","QUERY_TTL","RESPONSE_TTL","RequestTimedOutError","getOracleObject","oracleId","oracle","api","getOracleByPubkey","oracleQueries","queries","getOracleQueriesByPubkey","pollQueries","pollForQueries","bind","postQuery","postQueryToOracle","respondToQuery","extendOracle","extendOracleTtl","getQuery","getQueryObject","onQuery","interval","_getPollInterval","knownQueryIds","Set","checkNewQueries","filter","id","has","forEach","add","length","stopped","catch","console","error","queryId","q","getOracleQueryByPubkeyAndQueryId","decodedQuery","query","toString","decodedResponse","response","respond","pollForResponse","pollForQueryResponse","data","attempts","i","responseBuffer","String","registerOracle","queryFormat","responseFormat","options","opt","defaults","accountId","address","oracleRegisterTx","send","slice","queryFee","senderId","oraclePostQueryTx","tx","nonce","oracleTtl","callerId","oracleExtendTx","oracleRespondTx","Oracle","compose","methods","deepProps","queryTtl","responseTtl"],"mappings":"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","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Oracle module - routines to interact with the æternity oracle system\n *\n * The high-level description of the oracle system is\n * https://github.com/aeternity/protocol/blob/master/ORACLE.md in the protocol\n * repository.\n * @module @aeternity/aepp-sdk/es/ae/oracle\n * @export Oracle\n * @example import { Oracle } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport { pause } from '../utils/other'\nimport { oracleQueryId, decode } from '../tx/builder/helpers'\nimport { unpackTx } from '../tx/builder'\nimport { ORACLE_TTL, QUERY_FEE, QUERY_TTL, RESPONSE_TTL } from '../tx/builder/schema'\nimport { RequestTimedOutError } from '../utils/errors'\n\n/**\n * Constructor for Oracle Object (helper object for using Oracle)\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @return {Promise<Object>} Oracle object\n */\nasync function getOracleObject (oracleId) {\n const oracle = await this.api.getOracleByPubkey(oracleId)\n const { oracleQueries: queries } = await this.api.getOracleQueriesByPubkey(oracleId)\n return {\n ...oracle,\n queries,\n pollQueries: this.pollForQueries.bind(this, oracleId),\n postQuery: this.postQueryToOracle.bind(this, oracleId),\n respondToQuery: this.respondToQuery.bind(this, oracleId),\n extendOracle: this.extendOracleTtl.bind(this, oracleId),\n getQuery: this.getQueryObject.bind(this, oracleId)\n }\n}\n\n/**\n * Poll for oracle queries\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @param {String} oracleId Oracle public key\n * @param {Function} onQuery OnQuery callback\n * @param {Object} [options] Options object\n * @param {Number} [options.interval] Poll interval(default: 5000)\n * @return {Function} stopPolling - Stop polling function\n */\nfunction pollForQueries (\n oracleId,\n onQuery,\n { interval = this._getPollInterval('microblock') } = {}\n) {\n const knownQueryIds = new Set()\n const checkNewQueries = async () => {\n const queries = ((await this.api.getOracleQueriesByPubkey(oracleId)).oracleQueries || [])\n .filter(({ id }) => !knownQueryIds.has(id))\n queries.forEach(({ id }) => knownQueryIds.add(id))\n if (queries.length) onQuery(queries)\n }\n\n let stopped\n (async () => {\n while (!stopped) { // eslint-disable-line no-unmodified-loop-condition\n // TODO: allow to handle this error somehow\n await checkNewQueries().catch(console.error)\n await pause(interval)\n }\n })()\n return () => { stopped = true }\n}\n\n/**\n * Constructor for OracleQuery Object (helper object for using OracleQuery)\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} queryId Oracle Query id\n * @return {Promise<Object>} OracleQuery object\n */\nasync function getQueryObject (oracleId, queryId) {\n const q = await this.api.getOracleQueryByPubkeyAndQueryId(oracleId, queryId)\n return {\n ...q,\n decodedQuery: decode(q.query).toString(),\n decodedResponse: decode(q.response).toString(),\n respond: this.respondToQuery.bind(this, oracleId, queryId),\n pollForResponse: this.pollForQueryResponse.bind(this, oracleId, queryId),\n /**\n * @deprecated use TxBuilderHelper.decode instead\n * @param data\n * @returns {Buffer}\n */\n decode: (data) => decode(data)\n }\n}\n\n/**\n * Poll for oracle query response\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} queryId Oracle Query id\n * @param {Object} [options] Options object\n * @param {Object} [options.attempts] Poll attempt's(default: 20)\n * @param {Object} [options.interval] Poll interval(default: 5000)\n * @return {Promise<Object>} OracleQuery object\n */\nexport async function pollForQueryResponse (\n oracleId,\n queryId,\n { attempts = 20, interval = this._getPollInterval('microblock') } = {}\n) {\n for (let i = 0; i < attempts; i++) {\n if (i) await pause(interval)\n const { response } = await this.api.getOracleQueryByPubkeyAndQueryId(oracleId, queryId)\n const responseBuffer = decode(response, 'or')\n if (responseBuffer.length) {\n return String(responseBuffer)\n }\n }\n throw new RequestTimedOutError((attempts - 1) * interval)\n}\n\n/**\n * Register oracle\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} queryFormat Format of query\n * @param {String} responseFormat Format of query response\n * @param {Object} [options={}] Options\n * @param {String|Number} [options.queryFee] Oracle query Fee\n * @param {Object} [options.oracleTtl] OracleTtl object {type: 'delta|block', value: 'number'}\n * @param {Number} [options.abiVersion] Always 0 (do not use virtual machine)\n * @param {Number|String} [options.fee] Transaction fee\n * @param {Number|String} [options.ttl] Transaction time to leave\n * @return {Promise<Object>} Oracle object\n */\nasync function registerOracle (queryFormat, responseFormat, options = {}) {\n const opt = { ...this.Ae.defaults, ...options } // Preset VmVersion for oracle\n const accountId = await this.address(opt)\n\n const oracleRegisterTx = await this.oracleRegisterTx({\n ...opt,\n accountId,\n queryFormat,\n responseFormat\n })\n return {\n ...await this.send(oracleRegisterTx, opt),\n ...await this.getOracleObject(`ok_${accountId.slice(3)}`)\n }\n}\n\n/**\n * Post query to oracle\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} query Oracle query object\n * @param {Object} [options={}]\n * @param {String|Number} [options.queryTtl] queryTtl Oracle query time to leave\n * @param {String|Number} [options.responseTtl] queryFee Oracle query response time to leave\n * @param {String|Number} [options.queryFee] queryFee Oracle query fee\n * @param {Number} [options.fee] fee Transaction fee\n * @param {Number} [options.ttl] Transaction time to leave\n * @return {Promise<Object>} Query object\n */\nasync function postQueryToOracle (oracleId, query, options = {}) {\n const queryFee = options.queryFee || (await this.api.getOracleByPubkey(oracleId)).queryFee\n const opt = { ...this.Ae.defaults, queryFee, ...options }\n const senderId = await this.address(opt)\n\n const oracleRegisterTx = await this.oraclePostQueryTx({\n ...opt,\n oracleId,\n senderId,\n query\n })\n const queryId = oracleQueryId(senderId, unpackTx(oracleRegisterTx).tx.nonce, oracleId)\n return {\n ...await this.send(oracleRegisterTx, opt),\n ...await this.getQueryObject(oracleId, queryId)\n }\n}\n\n/**\n * Extend oracle ttl\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} oracleTtl Oracle time to leave for extend\n * @param {Object} [options={}]\n * @param {Number} [options.fee] fee Transaction fee\n * @param {Number} [options.ttl] Transaction time to leave\n * @return {Promise<Object>} Oracle object\n */\nasync function extendOracleTtl (oracleId, oracleTtl, options = {}) {\n const opt = { ...this.Ae.defaults, ...options }\n const callerId = await this.address(opt)\n\n const oracleExtendTx = await this.oracleExtendTx({\n ...opt,\n oracleId,\n callerId,\n oracleTtl\n })\n return {\n ...await this.send(oracleExtendTx, opt),\n ...await this.getOracleObject(oracleId)\n }\n}\n\n/**\n * Extend oracle ttl\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} queryId Oracle query id\n * @param {String} response Oracle query response\n * @param {Object} [options={}]\n * @param {Number} [options.responseTtl] responseTtl Query response time to leave\n * @param {Number} [options.fee] Transaction fee\n * @param {Number} [options.ttl] Transaction time to leave\n * @return {Promise<Object>} Oracle object\n */\nasync function respondToQuery (oracleId, queryId, response, options = {}) {\n const opt = { ...this.Ae.defaults, ...options }\n const callerId = await this.address(opt)\n\n const oracleRespondTx = await this.oracleRespondTx({\n ...opt,\n oracleId,\n queryId,\n callerId,\n response\n })\n return {\n ...await this.send(oracleRespondTx, opt),\n ...await this.getOracleObject(oracleId)\n }\n}\n\n/**\n * Oracle Stamp\n *\n * Oracle provides oracle-system related methods atop\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Oracle instance\n */\nconst Oracle = Ae.compose({\n methods: {\n registerOracle,\n respondToQuery,\n extendOracleTtl,\n postQueryToOracle,\n pollForQueryResponse,\n pollForQueries,\n getOracleObject,\n getQueryObject\n },\n deepProps: {\n Ae: {\n defaults: {\n queryFee: QUERY_FEE,\n oracleTtl: ORACLE_TTL,\n queryTtl: QUERY_TTL,\n responseTtl: RESPONSE_TTL\n }\n }\n }\n})\n\nexport default Oracle\n"],"file":"oracle.mjs"}
|
|
@@ -21,14 +21,14 @@
|
|
|
21
21
|
* @export Universal
|
|
22
22
|
* @example import { Universal } from '@aeternity/aepp-sdk'
|
|
23
23
|
*/
|
|
24
|
-
import Ae from
|
|
25
|
-
import Chain from
|
|
26
|
-
import Aens from
|
|
27
|
-
import Transaction from
|
|
28
|
-
import Oracle from
|
|
29
|
-
import
|
|
30
|
-
import AccountMultiple from
|
|
31
|
-
import Contract from
|
|
24
|
+
import Ae from "./index.mjs";
|
|
25
|
+
import Chain from "../chain/node.mjs";
|
|
26
|
+
import Aens from "./aens.mjs";
|
|
27
|
+
import Transaction from "../tx/tx.mjs";
|
|
28
|
+
import Oracle from "./oracle.mjs";
|
|
29
|
+
import GeneralizedAccount from "../contract/ga/index.mjs";
|
|
30
|
+
import AccountMultiple from "../account/multiple.mjs";
|
|
31
|
+
import Contract from "./contract.mjs";
|
|
32
32
|
/**
|
|
33
33
|
* Universal Stamp
|
|
34
34
|
*
|
|
@@ -41,5 +41,5 @@ import Contract from './contract';
|
|
|
41
41
|
* @return {Object} Universal instance
|
|
42
42
|
*/
|
|
43
43
|
|
|
44
|
-
export default Ae.compose(AccountMultiple, Chain, Transaction, Aens, Contract, Oracle,
|
|
45
|
-
//# sourceMappingURL=universal.
|
|
44
|
+
export default Ae.compose(AccountMultiple, Chain, Transaction, Aens, Contract, Oracle, GeneralizedAccount);
|
|
45
|
+
//# sourceMappingURL=universal.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ae/universal.js"],"names":["Ae","Chain","Aens","Transaction","Oracle","GeneralizedAccount","AccountMultiple","Contract","compose"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;OAEOA,E;OACAC,K;OACAC,I;OACAC,W;OACAC,M;OACAC,kB;OACAC,e;OACAC,Q;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAeP,EAAE,CAACQ,OAAH,CACbF,eADa,EACIL,KADJ,EACWE,WADX,EACwBD,IADxB,EAC8BK,QAD9B,EACwCH,MADxC,EACgDC,kBADhD,CAAf","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Universal module\n * @module @aeternity/aepp-sdk/es/ae/universal\n * @export Universal\n * @example import { Universal } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport Chain from '../chain/node'\nimport Aens from './aens'\nimport Transaction from '../tx/tx'\nimport Oracle from './oracle'\nimport GeneralizedAccount from '../contract/ga'\nimport AccountMultiple from '../account/multiple'\nimport Contract from './contract'\n\n/**\n * Universal Stamp\n *\n * Universal provides Ae base functionality with Contract and Aens\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/universal\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Universal instance\n */\nexport default Ae.compose(\n AccountMultiple, Chain, Transaction, Aens, Contract, Oracle, GeneralizedAccount\n)\n"],"file":"universal.mjs"}
|
|
@@ -21,14 +21,14 @@
|
|
|
21
21
|
* @export Wallet
|
|
22
22
|
* @example import { RpcWallet } from '@aeternity/aepp-sdk'
|
|
23
23
|
*/
|
|
24
|
-
import Ae from
|
|
25
|
-
import Chain from
|
|
26
|
-
import Tx from
|
|
27
|
-
import Contract from
|
|
28
|
-
import
|
|
29
|
-
import WalletRpc from
|
|
30
|
-
import Oracle from
|
|
31
|
-
import Aens from
|
|
24
|
+
import Ae from "./index.mjs";
|
|
25
|
+
import Chain from "../chain/node.mjs";
|
|
26
|
+
import Tx from "../tx/tx.mjs";
|
|
27
|
+
import Contract from "./contract.mjs";
|
|
28
|
+
import GeneralizedAccount from "../contract/ga/index.mjs";
|
|
29
|
+
import WalletRpc from "../utils/aepp-wallet-communication/rpc/wallet-rpc.mjs";
|
|
30
|
+
import Oracle from "./oracle.mjs";
|
|
31
|
+
import Aens from "./aens.mjs";
|
|
32
32
|
/**
|
|
33
33
|
* Wallet Stamp
|
|
34
34
|
* @function
|
|
@@ -46,5 +46,5 @@ import Aens from './aens';
|
|
|
46
46
|
})
|
|
47
47
|
*/
|
|
48
48
|
|
|
49
|
-
export default Ae.compose(WalletRpc, Tx, Contract, Oracle, Aens,
|
|
50
|
-
//# sourceMappingURL=wallet.
|
|
49
|
+
export default Ae.compose(WalletRpc, Tx, Contract, Oracle, Aens, GeneralizedAccount, Chain);
|
|
50
|
+
//# sourceMappingURL=wallet.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ae/wallet.js"],"names":["Ae","Chain","Tx","Contract","GeneralizedAccount","WalletRpc","Oracle","Aens","compose"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;OAEOA,E;OACAC,K;OACAC,E;OACAC,Q;OACAC,kB;OACAC,S;OACAC,M;OACAC,I;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAeP,EAAE,CAACQ,OAAH,CAAWH,SAAX,EAAsBH,EAAtB,EAA0BC,QAA1B,EAAoCG,MAApC,EAA4CC,IAA5C,EAAkDH,kBAAlD,EAAsEH,KAAtE,CAAf","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Wallet module\n * @module @aeternity/aepp-sdk/es/ae/wallet\n * @export Wallet\n * @example import { RpcWallet } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport Chain from '../chain/node'\nimport Tx from '../tx/tx'\nimport Contract from './contract'\nimport GeneralizedAccount from '../contract/ga'\nimport WalletRpc from '../utils/aepp-wallet-communication/rpc/wallet-rpc'\nimport Oracle from './oracle'\nimport Aens from './aens'\n\n/**\n * Wallet Stamp\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/wallet\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {String} options.url - Node instance to connect to\n * @param {Account[]} [options.accounts] - Accounts to initialize with\n * @param {String} [options.account] - Public key of account to preselect\n * @return {Object} Wallet instance\n * @example Wallet({\n url: 'https://testnet.aeternity.io/',\n accounts: [MemoryAccount({keypair})],\n address: keypair.publicKey,\n})\n */\nexport default Ae.compose(WalletRpc, Tx, Contract, Oracle, Aens, GeneralizedAccount, Chain)\n"],"file":"wallet.mjs"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export declare const VERSION = 1;
|
|
2
|
+
export declare const enum MESSAGE_DIRECTION {
|
|
3
|
+
to_waellet = "to_waellet",
|
|
4
|
+
to_aepp = "to_aepp"
|
|
5
|
+
}
|
|
6
|
+
export declare const enum WALLET_TYPE {
|
|
7
|
+
window = "window",
|
|
8
|
+
extension = "extension"
|
|
9
|
+
}
|
|
10
|
+
export declare const enum SUBSCRIPTION_TYPES {
|
|
11
|
+
subscribe = "subscribe",
|
|
12
|
+
unsubscribe = "unsubscribe"
|
|
13
|
+
}
|
|
14
|
+
export declare const enum METHODS {
|
|
15
|
+
readyToConnect = "connection.announcePresence",
|
|
16
|
+
updateAddress = "address.update",
|
|
17
|
+
address = "address.get",
|
|
18
|
+
connect = "connection.open",
|
|
19
|
+
sign = "transaction.sign",
|
|
20
|
+
signMessage = "message.sign",
|
|
21
|
+
subscribeAddress = "address.subscribe",
|
|
22
|
+
updateNetwork = "networkId.update",
|
|
23
|
+
closeConnection = "connection.close"
|
|
24
|
+
}
|
|
25
|
+
export declare const enum RPC_STATUS {
|
|
26
|
+
CONNECTED = "CONNECTED",
|
|
27
|
+
NODE_BINDED = "NODE_BINDED",
|
|
28
|
+
DISCONNECTED = "DISCONNECTED",
|
|
29
|
+
CONNECTION_REJECTED = "CONNECTION_REJECTED",
|
|
30
|
+
WAITING_FOR_CONNECTION_APPROVE = "WAITING_FOR_CONNECTION_APPROVE",
|
|
31
|
+
WAITING_FOR_CONNECTION_REQUEST = "WAITING_FOR_CONNECTION_REQUEST"
|
|
32
|
+
}
|
|
33
|
+
export declare const ERRORS: {
|
|
34
|
+
broadcastFailed: (error?: {}) => {
|
|
35
|
+
code: number;
|
|
36
|
+
data: {};
|
|
37
|
+
message: string;
|
|
38
|
+
};
|
|
39
|
+
invalidTransaction: (error?: {}) => {
|
|
40
|
+
code: number;
|
|
41
|
+
data: {};
|
|
42
|
+
message: string;
|
|
43
|
+
};
|
|
44
|
+
rejectedByUser: (error?: {}) => {
|
|
45
|
+
code: number;
|
|
46
|
+
data: {};
|
|
47
|
+
message: string;
|
|
48
|
+
};
|
|
49
|
+
connectionDeny: (error?: {}) => {
|
|
50
|
+
code: number;
|
|
51
|
+
data: {};
|
|
52
|
+
message: string;
|
|
53
|
+
};
|
|
54
|
+
permissionDeny: (address: string) => {
|
|
55
|
+
code: number;
|
|
56
|
+
message: string;
|
|
57
|
+
};
|
|
58
|
+
internalError: (message: string) => {
|
|
59
|
+
code: number;
|
|
60
|
+
message: string;
|
|
61
|
+
};
|
|
62
|
+
notAuthorize: () => {
|
|
63
|
+
code: number;
|
|
64
|
+
message: string;
|
|
65
|
+
};
|
|
66
|
+
unsupportedProtocol: () => {
|
|
67
|
+
code: number;
|
|
68
|
+
message: string;
|
|
69
|
+
};
|
|
70
|
+
unsupportedNetwork: () => {
|
|
71
|
+
code: number;
|
|
72
|
+
message: string;
|
|
73
|
+
};
|
|
74
|
+
};
|
package/es/bignumber.d.ts
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Big Number Helpers
|
|
3
3
|
* @module @aeternity/aepp-sdk/es/utils/bignumber
|
|
4
|
-
* @example import {
|
|
4
|
+
* @example import { isBigNumber, ceil } from '@aeternity/aepp-sdk/es/utils/bignumber'
|
|
5
5
|
*/
|
|
6
6
|
import BigNumber from 'bignumber.js';
|
|
7
|
-
/**
|
|
8
|
-
* Convert number to string
|
|
9
|
-
* @param {String|Number|BigNumber} number number to convert
|
|
10
|
-
* @return {String}
|
|
11
|
-
*/
|
|
12
|
-
export declare const parseBigNumber: (number: string | number | BigNumber) => string;
|
|
13
7
|
/**
|
|
14
8
|
* Check if value is BigNumber, Number or number string representation
|
|
15
9
|
* @param {String|Number|BigNumber} number number to convert
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* @example import { Chain } from '@aeternity/aepp-sdk'
|
|
23
23
|
*/
|
|
24
24
|
import stampit from '@stamp/it';
|
|
25
|
-
import
|
|
25
|
+
import _stampRequired from '@stamp/required';
|
|
26
26
|
/**
|
|
27
27
|
* Basic Chain Stamp
|
|
28
28
|
*
|
|
@@ -35,21 +35,37 @@ import { required } from '@stamp/required';
|
|
|
35
35
|
* @return {Object} Chain instance
|
|
36
36
|
*/
|
|
37
37
|
|
|
38
|
+
const {
|
|
39
|
+
required
|
|
40
|
+
} = _stampRequired;
|
|
38
41
|
const Chain = stampit({
|
|
39
42
|
deepProps: {
|
|
40
43
|
Ae: {
|
|
41
44
|
defaults: {
|
|
42
45
|
waitMined: true,
|
|
43
|
-
verify: true
|
|
46
|
+
verify: true,
|
|
47
|
+
_expectedMineRate: 180000,
|
|
48
|
+
_microBlockCycle: 3000,
|
|
49
|
+
_maxPollInterval: 5000
|
|
44
50
|
}
|
|
45
51
|
}
|
|
52
|
+
},
|
|
53
|
+
methods: {
|
|
54
|
+
_getPollInterval(type) {
|
|
55
|
+
const base = {
|
|
56
|
+
block: this.Ae.defaults._expectedMineRate,
|
|
57
|
+
microblock: this.Ae.defaults._microBlockCycle
|
|
58
|
+
}[type];
|
|
59
|
+
if (!base) throw new Error(`Unknown poll type: ${type}`);
|
|
60
|
+
return Math.min(base / 3, this.Ae.defaults._maxPollInterval);
|
|
61
|
+
}
|
|
62
|
+
|
|
46
63
|
}
|
|
47
64
|
}, required({
|
|
48
65
|
methods: {
|
|
49
66
|
sendTransaction: required,
|
|
50
67
|
height: required,
|
|
51
68
|
awaitHeight: required,
|
|
52
|
-
topBlock: required,
|
|
53
69
|
poll: required,
|
|
54
70
|
balance: required,
|
|
55
71
|
getBalance: required,
|
|
@@ -253,4 +269,4 @@ const Chain = stampit({
|
|
|
253
269
|
*/
|
|
254
270
|
|
|
255
271
|
export default Chain;
|
|
256
|
-
//# sourceMappingURL=index.
|
|
272
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/chain/index.js"],"names":["stampit","Chain","deepProps","Ae","defaults","waitMined","verify","_expectedMineRate","_microBlockCycle","_maxPollInterval","methods","_getPollInterval","type","base","block","microblock","Error","Math","min","required","sendTransaction","height","awaitHeight","poll","balance","getBalance","tx","getTxInfo","mempool","txDryRun","getAccount"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAOA,OAAP,MAAoB,WAApB;AACA,2BAAyB,iBAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACA,MAAMC,KAAK,GAAGD,OAAO,CAAC;AACpBE,EAAAA,SAAS,EAAE;AACTC,IAAAA,EAAE,EAAE;AACFC,MAAAA,QAAQ,EAAE;AACRC,QAAAA,SAAS,EAAE,IADH;AAERC,QAAAA,MAAM,EAAE,IAFA;AAGRC,QAAAA,iBAAiB,EAAE,MAHX;AAIRC,QAAAA,gBAAgB,EAAE,IAJV;AAKRC,QAAAA,gBAAgB,EAAE;AALV;AADR;AADK,GADS;AAYpBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,gBAAgB,CAAEC,IAAF,EAAQ;AACtB,YAAMC,IAAI,GAAG;AACXC,QAAAA,KAAK,EAAE,KAAKX,EAAL,CAAQC,QAAR,CAAiBG,iBADb;AAEXQ,QAAAA,UAAU,EAAE,KAAKZ,EAAL,CAAQC,QAAR,CAAiBI;AAFlB,QAGXI,IAHW,CAAb;AAIA,UAAI,CAACC,IAAL,EAAW,MAAM,IAAIG,KAAJ,CAAW,sBAAqBJ,IAAK,EAArC,CAAN;AACX,aAAOK,IAAI,CAACC,GAAL,CAASL,IAAI,GAAG,CAAhB,EAAmB,KAAKV,EAAL,CAAQC,QAAR,CAAiBK,gBAApC,CAAP;AACD;;AARM;AAZW,CAAD,EAsBlBU,QAAQ,CAAC;AACVT,EAAAA,OAAO,EAAE;AACPU,IAAAA,eAAe,EAAED,QADV;AAEPE,IAAAA,MAAM,EAAEF,QAFD;AAGPG,IAAAA,WAAW,EAAEH,QAHN;AAIPI,IAAAA,IAAI,EAAEJ,QAJC;AAKPK,IAAAA,OAAO,EAAEL,QALF;AAMPM,IAAAA,UAAU,EAAEN,QANL;AAOPO,IAAAA,EAAE,EAAEP,QAPG;AAQPQ,IAAAA,SAAS,EAAER,QARJ;AASPS,IAAAA,OAAO,EAAET,QATF;AAUPU,IAAAA,QAAQ,EAAEV,QAVH;AAWPW,IAAAA,UAAU,EAAEX;AAXL;AADC,CAAD,CAtBU,CAArB;AAsCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAelB,KAAf","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Chain module\n * @module @aeternity/aepp-sdk/es/chain\n * @export Chain\n * @example import { Chain } from '@aeternity/aepp-sdk'\n */\n\nimport stampit from '@stamp/it'\nimport { required } from '@stamp/required'\n\n/**\n * Basic Chain Stamp\n *\n * Attempting to create instances from the Stamp without overwriting all\n * abstract methods using composition will result in an exception.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/chain\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Chain instance\n */\nconst Chain = stampit({\n deepProps: {\n Ae: {\n defaults: {\n waitMined: true,\n verify: true,\n _expectedMineRate: 180000,\n _microBlockCycle: 3000,\n _maxPollInterval: 5000\n }\n }\n },\n methods: {\n _getPollInterval (type) {\n const base = {\n block: this.Ae.defaults._expectedMineRate,\n microblock: this.Ae.defaults._microBlockCycle\n }[type]\n if (!base) throw new Error(`Unknown poll type: ${type}`)\n return Math.min(base / 3, this.Ae.defaults._maxPollInterval)\n }\n }\n}, required({\n methods: {\n sendTransaction: required,\n height: required,\n awaitHeight: required,\n poll: required,\n balance: required,\n getBalance: required,\n tx: required,\n getTxInfo: required,\n mempool: required,\n txDryRun: required,\n getAccount: required\n }\n}))\n\n/**\n * Submit a signed transaction for mining\n * @function sendTransaction\n * @instance\n * @abstract\n * @category async\n * @rtype (tx: String, options?: Object) => tx: Promise[Object]|txHash: Promise[String]\n * @param {String} tx - Transaction to submit\n * @param {String} [options={}] - Options to pass to the implementation\n * @param {String} [options.verify=true] - Verify transaction before broadcast.\n * @return {Object} Transaction\n */\n\n/**\n * Obtain current height of the chain\n * @function height\n * @instance\n * @abstract\n * @category async\n * @rtype () => height: Number\n * @return {Number} Current chain height\n */\n\n/**\n * Wait for the chain to reach a specific height\n * @function awaitHeight\n * @instance\n * @abstract\n * @category async\n * @rtype (height: Number, options?: Object) => height: Number\n * @param {Object} [options={}] - Options\n * @param {Number} options.interval - Interval (in ms) at which to poll the chain\n * @param {Number} options.attempts - Number of polling attempts after which to fail\n * @return {Number} Current chain height\n */\n\n/**\n * Wait for a transaction to be mined\n * @function poll\n * @instance\n * @abstract\n * @category async\n * @rtype (th: String, options?: Object) => tx: Object\n * @param {Object} [options={}] - Options\n * @param {Number} options.interval - Interval (in ms) at which to poll the chain\n * @param {Number} options.blocks - Number of blocks mined after which to fail\n * @return {Object} The transaction as it was mined\n */\n\n/**\n * Request the balance of specified account\n * @function balance\n * @instance\n * @abstract\n * @category async\n * @rtype (address: String, options?: Object) => balance: Number\n * @param {String} address - The public account address to obtain the balance for\n * @param {Object} [options={}] - Options\n * @param {Number} options.height - The chain height at which to obtain the balance for (default:\n * top of chain)\n * @param {String} options.hash - The block hash on which to obtain the balance for (default: top\n * of chain)\n * @return {Object} The transaction as it was mined\n */\n\n/**\n * Obtain a transaction based on its hash\n * @function tx\n * @instance\n * @abstract\n * @category async\n * @rtype (hash: String, info = false) => tx: Object\n * @param {String} hash - Transaction hash\n * @param {Boolean} info - Retrieve additional transaction date. Works only for (ContractCreate and\n * ContractCall transaction's)\n * @return {Object} Transaction\n */\n\n/**\n * Obtain a transaction info based on its hash\n * @function getTxInfo\n * @instance\n * @abstract\n * @category async\n * @rtype (hash: String) => tx: Object\n * @param {String} hash - Transaction hash\n * @return {Object} Transaction\n */\n\n/**\n * Obtain transaction's from mempool\n * @function mempool\n * @instance\n * @abstract\n * @category async\n * @rtype () => txs: [...Object]\n * @return {Object[]} Transactions\n */\n\n/**\n * Obtain current generation\n * @function getCurrentGeneration\n * @instance\n * @abstract\n * @category async\n * @rtype () => generation: Object\n * @return {Object} Current Generation\n */\n\n/**\n * Get generation by hash or height\n * @function getGeneration\n * @instance\n * @abstract\n * @category async\n * @rtype (hashOrHeight) => generation: Object\n * @param {String|Number} hashOrHeight - Generation hash or height\n * @return {Object} Generation\n */\n\n/**\n * Wait for transaction confirmation\n * @function waitForTxConfirm\n * @instance\n * @abstract\n * @category async\n * @rtype (txHash: String, { confirm: Number | Boolean } = { confirm: 3 }) => Promise<Number>\n * @param {String} txHash - Transaction hash\n * @param {Object} [options] - options\n * @param {Number} [options.confirm=3] - Number of blocks to wait for transaction confirmation\n * @return {Promise<Number>} Current Height\n */\n\n/**\n * Get micro block transactions\n * @function getMicroBlockTransactions\n * @instance\n * @abstract\n * @category async\n * @rtype (hash) => txs: [...Object]\n * @return {Object[]} Transactions\n */\n\n/**\n * Get key block\n * @function getKeyBlock\n * @instance\n * @abstract\n * @category async\n * @rtype (hashOrHeight) => keyBlock: Object\n * @return {Object} Key Block\n */\n\n/**\n * Get micro block header\n * @function getMicroBlockHeader\n * @instance\n * @abstract\n * @category async\n * @rtype (hash) => header: Object\n * @return {Object} Micro block header\n */\n\n/**\n * Get account by account public key\n * @function getAccount\n * @instance\n * @abstract\n * @category async\n * @rtype (address, { hash, height }) => account: Object\n * @param {String} address - Account public key\n * @param {Object} [options={}] - Options\n * @param {Number} [options.height] - Get account on specific block by block height\n * @param {String} [options.hash] - Get account on specific block by block hash\n * @return {Object} Account\n */\n\n/**\n * Transaction dry-run\n * @function txDryRun\n * @instance\n * @abstract\n * @category async\n * @rtype (tx, accountAddress, options) => result: Object\n * @param {String} tx - transaction to execute\n * @param {String} accountAddress - address that will be used to execute transaction\n * @param {String|Number} [options.top] - hash of block on which to make dry-run\n * @param {Boolean} [options.txEvents] - collect and return on-chain tx events that would result\n * from the call\n * @return {Object} Result\n */\n\nexport default Chain\n"],"file":"index.mjs"}
|