@aeternity/aepp-sdk 10.0.0-beta.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.
- package/CHANGELOG.md +1603 -0
- package/dist/aepp-sdk.browser-script.js +1 -1
- 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 +3 -1
- package/es/account/base.js.map +1 -1
- package/es/account/multiple.js +4 -2
- package/es/account/multiple.js.map +1 -1
- package/es/ae/aens.js +52 -38
- package/es/ae/aens.js.map +1 -1
- package/es/ae/contract.js +9 -5
- package/es/ae/contract.js.map +1 -1
- package/es/ae/index.js +4 -3
- package/es/ae/index.js.map +1 -1
- package/es/ae/oracle.js +4 -4
- package/es/ae/oracle.js.map +1 -1
- package/es/ae/universal.js.map +1 -1
- package/es/chain/index.js +8 -4
- package/es/chain/index.js.map +1 -1
- package/es/chain/node.js +15 -20
- package/es/chain/node.js.map +1 -1
- package/es/channel/handlers.js.map +1 -1
- package/es/channel/index.js +35 -14
- package/es/channel/index.js.map +1 -1
- package/es/contract/aci/index.js +12 -7
- package/es/contract/aci/index.js.map +1 -1
- package/es/contract/compiler.js +3 -1
- package/es/contract/compiler.js.map +1 -1
- package/es/contract/ga/helpers.js +6 -6
- package/es/contract/ga/helpers.js.map +1 -1
- package/es/contract/ga/index.js +6 -2
- package/es/contract/ga/index.js.map +1 -1
- package/es/contract/index.js +6 -2
- package/es/contract/index.js.map +1 -1
- package/es/index.js +1 -0
- package/es/index.js.map +1 -1
- package/es/node-pool/index.js +4 -2
- package/es/node-pool/index.js.map +1 -1
- package/es/node.js +9 -4
- package/es/node.js.map +1 -1
- package/es/tx/builder/helpers.js +20 -33
- package/es/tx/builder/helpers.js.map +1 -1
- package/es/tx/builder/index.js +13 -6
- package/es/tx/builder/index.js.map +1 -1
- package/es/tx/builder/schema.js +5 -4
- package/es/tx/builder/schema.js.map +1 -1
- package/es/tx/index.js +101 -12
- package/es/tx/index.js.map +1 -1
- package/es/tx/tx-object.js +9 -3
- package/es/tx/tx-object.js.map +1 -1
- package/es/tx/tx.js.map +1 -1
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +3 -2
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +1 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +15 -6
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +1 -1
- package/es/utils/aepp-wallet-communication/connection/index.js +2 -1
- package/es/utils/aepp-wallet-communication/connection/index.js.map +1 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.js +10 -4
- package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +1 -1
- package/es/utils/aepp-wallet-communication/helpers.js.map +1 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +13 -5
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +1 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +9 -5
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +1 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +57 -40
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +1 -1
- package/es/utils/aepp-wallet-communication/wallet-detector.js.map +1 -1
- package/es/utils/crypto.js +1 -40
- package/es/utils/crypto.js.map +1 -1
- package/es/utils/keystore.js.map +1 -1
- package/es/utils/swagger.js +3 -1
- package/es/utils/swagger.js.map +1 -1
- package/package.json +11 -13
- package/src/account/base.js +3 -1
- package/src/account/multiple.js +4 -2
- package/src/ae/aens.js +41 -42
- package/src/ae/contract.js +9 -5
- package/src/ae/index.js +4 -3
- package/src/ae/oracle.js +9 -5
- package/src/ae/universal.js +3 -1
- package/src/chain/index.js +8 -4
- package/src/chain/node.js +17 -14
- package/src/channel/handlers.js +10 -3
- package/src/channel/index.js +40 -15
- package/src/contract/aci/index.js +15 -8
- package/src/contract/compiler.js +6 -2
- package/src/contract/ga/helpers.js +5 -3
- package/src/contract/ga/index.js +6 -2
- package/src/contract/index.js +6 -2
- package/src/index.js +2 -0
- package/src/node-pool/index.js +4 -2
- package/src/node.js +7 -4
- package/src/tx/builder/helpers.js +20 -33
- package/src/tx/builder/index.js +49 -13
- package/src/tx/builder/schema.js +37 -14
- package/src/tx/index.js +101 -12
- package/src/tx/tx-object.js +25 -6
- package/src/tx/tx.js +94 -28
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +3 -2
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +25 -7
- package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +10 -4
- package/src/utils/aepp-wallet-communication/helpers.js +4 -2
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +32 -9
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +9 -5
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +53 -22
- package/src/utils/aepp-wallet-communication/wallet-detector.js +4 -1
- package/src/utils/crypto.js +1 -52
- package/src/utils/keystore.js +10 -2
- package/src/utils/swagger.js +1 -1
package/es/account/base.js
CHANGED
|
@@ -90,7 +90,9 @@ async function signMessage(message) {
|
|
|
90
90
|
* Verify message
|
|
91
91
|
* @instance
|
|
92
92
|
* @category async
|
|
93
|
-
* @rtype (
|
|
93
|
+
* @rtype (
|
|
94
|
+
* msg: String, signature: String, publicKey: String
|
|
95
|
+
* ) => signature: Promise[String], throws: Error
|
|
94
96
|
* @param {String} message - Message to verify
|
|
95
97
|
* @param {String} signature - Signature
|
|
96
98
|
* @param {Object} opt - Options
|
package/es/account/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/account/base.js"],"names":["stampit","required","messageToHash","verifyMessage","verifyMessageCrypto","hash","buildTx","decode","TX_TYPE","getNetworkId","isAccountBase","acc","find","f","signTransaction","tx","opt","prefixes","innerTx","push","rlpBinaryTx","txWithNetworkId","Buffer","concat","from","join","signatures","sign","encodedTx","signed","signMessage","message","returnHex","sig","toString","signature","address","init","networkId","methods"],"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 * AccountBase module\n * @module @aeternity/aepp-sdk/es/account/base\n * @export AccountBase\n * @export isAccountBase\n */\n\nimport stampit from '@stamp/it'\nimport { required } from '@stamp/required'\nimport { messageToHash, verifyMessage as verifyMessageCrypto, hash } from '../utils/crypto'\nimport { buildTx } from '../tx/builder'\nimport { decode } from '../tx/builder/helpers'\nimport { TX_TYPE } from '../tx/builder/schema'\nimport { getNetworkId } from '../node'\n\n/**\n * Check is provided object looks like an instance of AccountBase\n * @rtype (Object) => Boolean\n * @param {Object} acc - Object to check\n * @return {Boolean}\n */\nexport const isAccountBase = (acc) => !['sign', 'address'].find(f => typeof acc[f] !== 'function')\n\n/**\n * Sign encoded transaction\n * @instance\n * @category async\n * @rtype (tx: String) => tx: Promise[String], throws: Error\n * @param {String} tx - Transaction to sign\n * @param {Object} opt - Options\n * @param {Object} [opt.innerTx] - Sign as inner transaction for PayingFor\n * @return {String} Signed transaction\n */\nasync function signTransaction (tx, opt = {}) {\n const prefixes = [this.getNetworkId(opt)]\n if (opt.innerTx) prefixes.push('inner_tx')\n const rlpBinaryTx = decode(tx, 'tx')\n const txWithNetworkId = Buffer.concat([Buffer.from(prefixes.join('-')), hash(rlpBinaryTx)])\n\n const signatures = [await this.sign(txWithNetworkId, opt)]\n return buildTx({ encodedTx: rlpBinaryTx, signatures }, TX_TYPE.signed).tx\n}\n\n/**\n * Get network Id\n * @instance\n * @function getNetworkId\n * @category async\n * @rtype () => networkId: String\n * @return {String} Network Id\n */\n\n/**\n * Sign message\n * @instance\n * @category async\n * @rtype (msg: String) => signature: Promise[String], throws: Error\n * @param {String} message - Message to sign\n * @param {Object} opt - Options\n * @return {String} Signature\n */\nasync function signMessage (message, opt = { returnHex: false }) {\n const sig = await this.sign(messageToHash(message), opt)\n return opt.returnHex ? Buffer.from(sig).toString('hex') : sig\n}\n\n/**\n * Verify message\n * @instance\n * @category async\n * @rtype (msg: String, signature: String, publicKey: String) => signature: Promise[String], throws: Error\n * @param {String} message - Message to verify\n * @param {String} signature - Signature\n * @param {Object} opt - Options\n * @return {Boolean}\n */\nasync function verifyMessage (message, signature, opt = {}) {\n return verifyMessageCrypto(\n message,\n typeof signature === 'string' ? Buffer.from(signature, 'hex') : signature,\n decode(await this.address(opt))\n )\n}\n\n/**\n * AccountBase 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 * Account is one of the three basic building blocks of an\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} client and provides access to a\n * signing key pair.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/account\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {String} options.networkId - NETWORK_ID using for signing transaction's\n * @return {Object} Account instance\n */\nexport default stampit({\n init ({ networkId }) { // NETWORK_ID using for signing transaction's\n if (!this.networkId && networkId) {\n this.networkId = networkId\n }\n },\n methods: { signTransaction, getNetworkId, signMessage, verifyMessage }\n}, required({\n methods: {\n sign: required,\n address: required\n }\n}))\n\n/**\n * Sign data blob\n * @function sign\n * @instance\n * @abstract\n * @category async\n * @rtype (data: String) => data: Promise[String]\n * @param {String} data - Data blob to sign\n * @return {String} Signed data blob\n */\n\n/**\n * Obtain account address\n * @function address\n * @instance\n * @abstract\n * @category async\n * @rtype () => address: Promise[String]\n * @return {String} Public account address\n */\n"],"file":"base.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/account/base.js"],"names":["stampit","required","messageToHash","verifyMessage","verifyMessageCrypto","hash","buildTx","decode","TX_TYPE","getNetworkId","isAccountBase","acc","find","f","signTransaction","tx","opt","prefixes","innerTx","push","rlpBinaryTx","txWithNetworkId","Buffer","concat","from","join","signatures","sign","encodedTx","signed","signMessage","message","returnHex","sig","toString","signature","address","init","networkId","methods"],"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 * AccountBase module\n * @module @aeternity/aepp-sdk/es/account/base\n * @export AccountBase\n * @export isAccountBase\n */\n\nimport stampit from '@stamp/it'\nimport { required } from '@stamp/required'\nimport { messageToHash, verifyMessage as verifyMessageCrypto, hash } from '../utils/crypto'\nimport { buildTx } from '../tx/builder'\nimport { decode } from '../tx/builder/helpers'\nimport { TX_TYPE } from '../tx/builder/schema'\nimport { getNetworkId } from '../node'\n\n/**\n * Check is provided object looks like an instance of AccountBase\n * @rtype (Object) => Boolean\n * @param {Object} acc - Object to check\n * @return {Boolean}\n */\nexport const isAccountBase = (acc) => !['sign', 'address'].find(f => typeof acc[f] !== 'function')\n\n/**\n * Sign encoded transaction\n * @instance\n * @category async\n * @rtype (tx: String) => tx: Promise[String], throws: Error\n * @param {String} tx - Transaction to sign\n * @param {Object} opt - Options\n * @param {Object} [opt.innerTx] - Sign as inner transaction for PayingFor\n * @return {String} Signed transaction\n */\nasync function signTransaction (tx, opt = {}) {\n const prefixes = [this.getNetworkId(opt)]\n if (opt.innerTx) prefixes.push('inner_tx')\n const rlpBinaryTx = decode(tx, 'tx')\n const txWithNetworkId = Buffer.concat([Buffer.from(prefixes.join('-')), hash(rlpBinaryTx)])\n\n const signatures = [await this.sign(txWithNetworkId, opt)]\n return buildTx({ encodedTx: rlpBinaryTx, signatures }, TX_TYPE.signed).tx\n}\n\n/**\n * Get network Id\n * @instance\n * @function getNetworkId\n * @category async\n * @rtype () => networkId: String\n * @return {String} Network Id\n */\n\n/**\n * Sign message\n * @instance\n * @category async\n * @rtype (msg: String) => signature: Promise[String], throws: Error\n * @param {String} message - Message to sign\n * @param {Object} opt - Options\n * @return {String} Signature\n */\nasync function signMessage (message, opt = { returnHex: false }) {\n const sig = await this.sign(messageToHash(message), opt)\n return opt.returnHex ? Buffer.from(sig).toString('hex') : sig\n}\n\n/**\n * Verify message\n * @instance\n * @category async\n * @rtype (\n * msg: String, signature: String, publicKey: String\n * ) => signature: Promise[String], throws: Error\n * @param {String} message - Message to verify\n * @param {String} signature - Signature\n * @param {Object} opt - Options\n * @return {Boolean}\n */\nasync function verifyMessage (message, signature, opt = {}) {\n return verifyMessageCrypto(\n message,\n typeof signature === 'string' ? Buffer.from(signature, 'hex') : signature,\n decode(await this.address(opt))\n )\n}\n\n/**\n * AccountBase 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 * Account is one of the three basic building blocks of an\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} client and provides access to a\n * signing key pair.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/account\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {String} options.networkId - NETWORK_ID using for signing transaction's\n * @return {Object} Account instance\n */\nexport default stampit({\n init ({ networkId }) { // NETWORK_ID using for signing transaction's\n if (!this.networkId && networkId) {\n this.networkId = networkId\n }\n },\n methods: { signTransaction, getNetworkId, signMessage, verifyMessage }\n}, required({\n methods: {\n sign: required,\n address: required\n }\n}))\n\n/**\n * Sign data blob\n * @function sign\n * @instance\n * @abstract\n * @category async\n * @rtype (data: String) => data: Promise[String]\n * @param {String} data - Data blob to sign\n * @return {String} Signed data blob\n */\n\n/**\n * Obtain account address\n * @function address\n * @instance\n * @abstract\n * @category async\n * @rtype () => address: Promise[String]\n * @return {String} Public account address\n */\n"],"file":"base.js"}
|
package/es/account/multiple.js
CHANGED
|
@@ -39,7 +39,9 @@ import AccountBase, { isAccountBase } from './base';
|
|
|
39
39
|
* @param {String} [options.address] - Address of account to select
|
|
40
40
|
* @return {Object} AccountMultiple instance
|
|
41
41
|
* @example
|
|
42
|
-
* const accounts = await AccountMultiple({
|
|
42
|
+
* const accounts = await AccountMultiple({
|
|
43
|
+
* accounts: [MemoryAccount({ keypair: 'keypair_object' })]
|
|
44
|
+
* })
|
|
43
45
|
* await accounts.addAccount(account, { select: true }) // Add account and make it selected
|
|
44
46
|
* accounts.removeAccount(address) // Remove account
|
|
45
47
|
* accounts.selectAccount(address) // Select account
|
|
@@ -146,7 +148,7 @@ export default AccountBase.compose(AsyncInit, {
|
|
|
146
148
|
|
|
147
149
|
/**
|
|
148
150
|
* Resolves an account
|
|
149
|
-
* @param account
|
|
151
|
+
* @param account account address (should exist in sdk instance), MemoryAccount or keypair
|
|
150
152
|
* @returns {AccountBase}
|
|
151
153
|
* @private
|
|
152
154
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/account/multiple.js"],"names":["AsyncInit","MemoryAccount","decode","AccountBase","isAccountBase","compose","init","accounts","address","Object","fromEntries","Promise","all","map","a","keys","selectAccount","props","deepProps","selectedAddress","methods","onAccount","_resolveAccount","sign","data","addresses","addAccount","account","select","removeAccount","console","warn","Error","keypair"],"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 * AccountMultiple module\n * @module @aeternity/aepp-sdk/es/accounts/multiple\n * @export AccountMultiple\n */\n\nimport AsyncInit from '../utils/async-init'\nimport MemoryAccount from './memory'\nimport { decode } from '../tx/builder/helpers'\nimport AccountBase, { isAccountBase } from './base'\n\n/**\n * AccountMultiple stamp\n *\n * The purpose of this stamp is to wrap up implementations of\n * {@link module:@aeternity/aepp-sdk/es/account/base--AccountBase} objects and provide a\n * common interface to all of them. List are a substantial part of\n * {@link module:@aeternity/aepp-sdk/es/ae/wallet--Wallet}s.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/accounts/multiple\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Array} [options.accounts] - Accounts array\n * @param {String} [options.address] - Address of account to select\n * @return {Object} AccountMultiple instance\n * @example\n * const accounts = await AccountMultiple({ accounts: [
|
|
1
|
+
{"version":3,"sources":["../../src/account/multiple.js"],"names":["AsyncInit","MemoryAccount","decode","AccountBase","isAccountBase","compose","init","accounts","address","Object","fromEntries","Promise","all","map","a","keys","selectAccount","props","deepProps","selectedAddress","methods","onAccount","_resolveAccount","sign","data","addresses","addAccount","account","select","removeAccount","console","warn","Error","keypair"],"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 * AccountMultiple module\n * @module @aeternity/aepp-sdk/es/accounts/multiple\n * @export AccountMultiple\n */\n\nimport AsyncInit from '../utils/async-init'\nimport MemoryAccount from './memory'\nimport { decode } from '../tx/builder/helpers'\nimport AccountBase, { isAccountBase } from './base'\n\n/**\n * AccountMultiple stamp\n *\n * The purpose of this stamp is to wrap up implementations of\n * {@link module:@aeternity/aepp-sdk/es/account/base--AccountBase} objects and provide a\n * common interface to all of them. List are a substantial part of\n * {@link module:@aeternity/aepp-sdk/es/ae/wallet--Wallet}s.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/accounts/multiple\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Array} [options.accounts] - Accounts array\n * @param {String} [options.address] - Address of account to select\n * @return {Object} AccountMultiple instance\n * @example\n * const accounts = await AccountMultiple({\n * accounts: [MemoryAccount({ keypair: 'keypair_object' })]\n * })\n * await accounts.addAccount(account, { select: true }) // Add account and make it selected\n * accounts.removeAccount(address) // Remove account\n * accounts.selectAccount(address) // Select account\n * accounts.addresses() // Get available accounts\n */\nexport default AccountBase.compose(AsyncInit, {\n async init ({ accounts = [], address }) {\n this.accounts = Object.fromEntries(await Promise.all(\n accounts.map(async a => [await a.address(), a])\n ))\n address = address || Object.keys(this.accounts)[0]\n if (address) this.selectAccount(address)\n },\n props: {\n accounts: {}\n },\n deepProps: {\n selectedAddress: null\n },\n methods: {\n async address ({ onAccount = this.selectedAddress } = {}) {\n return this._resolveAccount(onAccount).address()\n },\n async sign (data, { onAccount = this.selectedAddress } = {}) {\n return this._resolveAccount(onAccount).sign(data)\n },\n /**\n * Get accounts addresses\n * @alias module:@aeternity/aepp-sdk/es/accounts/multiple\n * @function\n * @rtype () => String[]\n * @return {String[]}\n * @example addresses()\n */\n addresses () {\n return Object.keys(this.accounts)\n },\n /**\n * Add specific account\n * @alias module:@aeternity/aepp-sdk/es/accounts/multiple\n * @function\n * @category async\n * @rtype (account: Account, { select: Boolean }) => void\n * @param {Object} account - Account instance\n * @param {Object} [options={}] - Options\n * @param {Boolean} [options.select] - Select account\n * @return {void}\n * @example addAccount(account)\n */\n async addAccount (account, { select } = {}) {\n const address = await account.address()\n this.accounts[address] = account\n if (select) this.selectAccount(address)\n },\n /**\n * Remove specific account\n * @alias module:@aeternity/aepp-sdk/es/accounts/multiple\n * @function\n * @rtype (address: String) => void\n * @param {String} address - Address of account to remove\n * @return {void}\n * @example removeAccount(address)\n */\n removeAccount (address) {\n if (!this.accounts[address]) {\n console.warn(`removeAccount: Account for ${address} not available`)\n return\n }\n delete this.accounts[address]\n if (this.selectedAddress === address) this.selectedAddress = null\n },\n /**\n * Select specific account\n * @alias module:@aeternity/aepp-sdk/es/account/selector\n * @instance\n * @rtype (address: String) => void\n * @param {String} address - Address of account to select\n * @example selectAccount('ak_xxxxxxxx')\n */\n selectAccount (address) {\n decode(address, 'ak')\n if (!this.accounts[address]) throw new Error(`Account for ${address} not available`)\n this.selectedAddress = address\n },\n /**\n * Resolves an account\n * @param account account address (should exist in sdk instance), MemoryAccount or keypair\n * @returns {AccountBase}\n * @private\n */\n _resolveAccount (account) {\n if (account === null) {\n throw new Error('No account or wallet configured')\n } else {\n switch (typeof account) {\n case 'string':\n decode(account, 'ak')\n if (!this.accounts[account]) throw new Error(`Account for ${account} not available`)\n return this.accounts[account]\n case 'object':\n return isAccountBase(account) ? account : MemoryAccount({ keypair: account })\n default:\n throw new Error(`Unknown account type: ${typeof account} (account: ${account})`)\n }\n }\n }\n }\n})\n"],"file":"multiple.js"}
|
package/es/ae/aens.js
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* @example import { Aens } from '@aeternity/aepp-sdk'
|
|
27
27
|
*/
|
|
28
28
|
import { salt } from '../utils/crypto';
|
|
29
|
-
import { commitmentHash, ensureNameValid, getMinimumNameFee,
|
|
29
|
+
import { commitmentHash, ensureNameValid, getMinimumNameFee, isAuctionName, encode, produceNameId } from '../tx/builder/helpers';
|
|
30
30
|
import Ae from './';
|
|
31
31
|
import { CLIENT_TTL, NAME_FEE, NAME_TTL } from '../tx/builder/schema';
|
|
32
32
|
/**
|
|
@@ -37,11 +37,11 @@ import { CLIENT_TTL, NAME_FEE, NAME_TTL } from '../tx/builder/schema';
|
|
|
37
37
|
* @category async
|
|
38
38
|
* @param {String} name Name hash
|
|
39
39
|
* @param {Object} [options={}] options
|
|
40
|
-
* @param {
|
|
41
|
-
* using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
42
|
-
* @param {
|
|
43
|
-
* @param {
|
|
44
|
-
* @param {
|
|
40
|
+
* @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
|
|
41
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
42
|
+
* @param {Number|String|BigNumber} [options.fee] fee
|
|
43
|
+
* @param {Number|String|BigNumber} [options.ttl] ttl
|
|
44
|
+
* @param {Number|String|BigNumber} [options.nonce] nonce
|
|
45
45
|
* @return {Promise<Object>} Transaction result
|
|
46
46
|
* @example
|
|
47
47
|
* const name = 'test.chain'
|
|
@@ -71,16 +71,19 @@ async function revoke(name) {
|
|
|
71
71
|
* @category async
|
|
72
72
|
* @alias module:@aeternity/aepp-sdk/es/ae/aens
|
|
73
73
|
* @param {String} name AENS name
|
|
74
|
-
* @param {
|
|
74
|
+
* @param {Object.<string, string>} pointers Map of pointer keys to corresponding addresses
|
|
75
75
|
* @param {Object} [options={}]
|
|
76
|
-
* @param {Boolean} [options.extendPointers
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
* @param {
|
|
81
|
-
* @param {
|
|
82
|
-
* @param {
|
|
83
|
-
* @param {
|
|
76
|
+
* @param {Boolean} [options.extendPointers] Get the pointers from the node and merge with provided
|
|
77
|
+
* ones. Pointers with the same type will be overwritten
|
|
78
|
+
* @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you
|
|
79
|
+
* pass publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
80
|
+
* @param {Number|String|BigNumber} [options.fee] fee
|
|
81
|
+
* @param {Number|String|BigNumber} [options.ttl] ttl
|
|
82
|
+
* @param {Number|String|BigNumber} [options.nonce] nonce
|
|
83
|
+
* @param {Number|String|BigNumber} [options.nameTtl=50000] Name ttl represented in number of
|
|
84
|
+
* blocks (Max value is 50000 blocks)
|
|
85
|
+
* @param {Number|String|BigNumber} [options.clientTtl=84600] a suggestion as to how long any
|
|
86
|
+
* clients should cache this information
|
|
84
87
|
* @return {Promise<Object>}
|
|
85
88
|
* @throws Invalid pointer array error
|
|
86
89
|
* @example
|
|
@@ -90,25 +93,36 @@ async function revoke(name) {
|
|
|
90
93
|
*
|
|
91
94
|
* await sdkInstance.aensUpdate(name, pointersArray, { nameTtl, ttl, fee, nonce, clientTtl })
|
|
92
95
|
* // or
|
|
93
|
-
* await nameObject.update(
|
|
96
|
+
* await nameObject.update(pointers, { nameTtl, ttl, fee, nonce, clientTtl })
|
|
94
97
|
*/
|
|
95
98
|
|
|
96
99
|
|
|
97
100
|
async function update(name) {
|
|
98
|
-
let pointers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
99
|
-
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
100
|
-
extendPointers: false
|
|
101
|
-
};
|
|
101
|
+
let pointers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
102
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
102
103
|
ensureNameValid(name);
|
|
103
104
|
const opt = { ...this.Ae.defaults,
|
|
104
105
|
...options
|
|
105
106
|
};
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
const allPointers = { ...(options.extendPointers && Object.fromEntries((await this.getName(name)).pointers.map(_ref => {
|
|
108
|
+
let {
|
|
109
|
+
key,
|
|
110
|
+
id
|
|
111
|
+
} = _ref;
|
|
112
|
+
return [key, id];
|
|
113
|
+
}))),
|
|
114
|
+
...pointers
|
|
115
|
+
};
|
|
108
116
|
const nameUpdateTx = await this.nameUpdateTx({ ...opt,
|
|
109
117
|
nameId: produceNameId(name),
|
|
110
118
|
accountId: await this.address(opt),
|
|
111
|
-
pointers
|
|
119
|
+
pointers: Object.entries(allPointers).map(_ref2 => {
|
|
120
|
+
let [key, id] = _ref2;
|
|
121
|
+
return {
|
|
122
|
+
key,
|
|
123
|
+
id
|
|
124
|
+
};
|
|
125
|
+
})
|
|
112
126
|
});
|
|
113
127
|
return this.send(nameUpdateTx, opt);
|
|
114
128
|
}
|
|
@@ -121,11 +135,11 @@ async function update(name) {
|
|
|
121
135
|
* @param {String} name AENS name
|
|
122
136
|
* @param {String} account Recipient account publick key
|
|
123
137
|
* @param {Object} [options={}]
|
|
124
|
-
* @param {
|
|
125
|
-
* using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
126
|
-
* @param {
|
|
127
|
-
* @param {
|
|
128
|
-
* @param {
|
|
138
|
+
* @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
|
|
139
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
140
|
+
* @param {Number|String|BigNumber} [options.fee] fee
|
|
141
|
+
* @param {Number|String|BigNumber} [options.ttl] ttl
|
|
142
|
+
* @param {Number|String|BigNumber} [options.nonce] nonce
|
|
129
143
|
* @return {Promise<Object>} Transaction result
|
|
130
144
|
* @example
|
|
131
145
|
* const name = 'test.chain'
|
|
@@ -183,8 +197,7 @@ async function query(name) {
|
|
|
183
197
|
const o = await this.getName(name);
|
|
184
198
|
return Object.freeze(Object.assign(o, {
|
|
185
199
|
pointers: o.pointers || [],
|
|
186
|
-
update: async function () {
|
|
187
|
-
let pointers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
200
|
+
update: async function (pointers) {
|
|
188
201
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
189
202
|
return { ...(await _this.aensUpdate(name, pointers, { ...opt,
|
|
190
203
|
...options
|
|
@@ -210,9 +223,10 @@ async function query(name) {
|
|
|
210
223
|
let nameTtl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NAME_TTL;
|
|
211
224
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
212
225
|
if (!nameTtl || typeof nameTtl !== 'number' || nameTtl > NAME_TTL) throw new Error('Ttl must be an number and less then 180000 blocks');
|
|
213
|
-
return { ...(await _this.aensUpdate(name,
|
|
226
|
+
return { ...(await _this.aensUpdate(name, {}, { ...opt,
|
|
214
227
|
...options,
|
|
215
|
-
nameTtl
|
|
228
|
+
nameTtl,
|
|
229
|
+
extendPointers: true
|
|
216
230
|
})),
|
|
217
231
|
...(await _this.aensQuery(name))
|
|
218
232
|
};
|
|
@@ -229,8 +243,8 @@ async function query(name) {
|
|
|
229
243
|
* @param {String} name
|
|
230
244
|
* @param {Number} salt Salt from pre-claim, or 0 if it's a bid
|
|
231
245
|
* @param {Object} [options] options
|
|
232
|
-
* @param {String|Object} [options.onAccount]
|
|
233
|
-
* using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
246
|
+
* @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
|
|
247
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
234
248
|
* @param {Number|String|BigNumber} [options.fee] fee
|
|
235
249
|
* @param {Number|String|BigNumber} [options.ttl] ttl
|
|
236
250
|
* @param {Number|String|BigNumber} [options.nonce] nonce
|
|
@@ -280,8 +294,8 @@ async function claim(name, salt, options) {
|
|
|
280
294
|
* @alias module:@aeternity/aepp-sdk/es/ae/aens
|
|
281
295
|
* @param {String} name
|
|
282
296
|
* @param {Object} [options={}]
|
|
283
|
-
* @param {String|Object} [options.onAccount]
|
|
284
|
-
* using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
297
|
+
* @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
|
|
298
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
285
299
|
* @param {Number|String|BigNumber} [options.fee] fee
|
|
286
300
|
* @param {Number|String|BigNumber} [options.ttl] ttl
|
|
287
301
|
* @param {Number|String|BigNumber} [options.nonce] nonce
|
|
@@ -334,8 +348,8 @@ async function preclaim(name) {
|
|
|
334
348
|
* @param {String} name Domain name
|
|
335
349
|
* @param {String|Number} nameFee Name fee (bid fee)
|
|
336
350
|
* @param {Object} [options={}]
|
|
337
|
-
* @param {String|Object} [options.onAccount]
|
|
338
|
-
* using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
351
|
+
* @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
|
|
352
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
339
353
|
* @param {Number|String|BigNumber} [options.fee] fee
|
|
340
354
|
* @param {Number|String|BigNumber} [options.ttl] ttl
|
|
341
355
|
* @param {Number|String|BigNumber} [options.nonce] nonce
|
package/es/ae/aens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ae/aens.js"],"names":["salt","commitmentHash","ensureNameValid","getMinimumNameFee","classify","isAuctionName","validatePointers","encode","produceNameId","Ae","CLIENT_TTL","NAME_FEE","NAME_TTL","revoke","name","options","opt","defaults","nameRevokeTx","nameId","accountId","address","send","update","pointers","extendPointers","Error","getName","map","p","Object","fromEntries","reduce","acc","el","filter","key","nameUpdateTx","transfer","account","nameTransferTx","recipientId","query","o","freeze","assign","aensUpdate","aensQuery","aensTransfer","aensRevoke","extendTtl","nameTtl","id","claim","minNameFee","nameFee","gt","claimTx","nameClaimTx","nameSalt","result","nameInter","waitMined","preclaim","_salt","height","commitmentId","preclaimTx","namePreclaimTx","aensClaim","onAccount","bid","vsn","Aens","compose","methods","aensPreclaim","aensBid","deepProps","clientTtl"],"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 * Aens module - routines to interact with the æternity naming system\n *\n * The high-level description of the naming system is\n * https://github.com/aeternity/protocol/blob/master/AENS.md in the protocol\n * repository.\n * @module @aeternity/aepp-sdk/es/ae/aens\n * @export Aens\n * @example import { Aens } from '@aeternity/aepp-sdk'\n */\n\nimport { salt } from '../utils/crypto'\nimport {\n commitmentHash,\n ensureNameValid,\n getMinimumNameFee,\n classify,\n isAuctionName,\n validatePointers, encode, produceNameId\n} from '../tx/builder/helpers'\nimport Ae from './'\nimport { CLIENT_TTL, NAME_FEE, NAME_TTL } from '../tx/builder/schema'\n\n/**\n * Revoke a name\n * @instance\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @category async\n * @param {String} name Name hash\n * @param {Object} [options={}] options\n * @param {(String|Object)} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or\n * using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {(Number|String|BigNumber)} [options.fee] fee\n * @param {(Number|String|BigNumber)} [options.ttl] ttl\n * @param {(Number|String|BigNumber)} [options.nonce] nonce\n * @return {Promise<Object>} Transaction result\n * @example\n * const name = 'test.chain'\n * const nameObject = await sdkInstance.aensQuery(name)\n *\n * await sdkInstance.aensRevoke(name, { fee, ttl , nonce })\n * // or\n * await nameObject.revoke({ fee, ttl, nonce })\n */\nasync function revoke (name, options = {}) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n\n const nameRevokeTx = await this.nameRevokeTx({\n ...opt,\n nameId: produceNameId(name),\n accountId: await this.address(opt)\n })\n\n return this.send(nameRevokeTx, opt)\n}\n\n/**\n * Update a name\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name AENS name\n * @param {String[]} pointers Array of name pointers. Can be oracle|account|contract|channel public key\n * @param {Object} [options={}]\n * @param {Boolean} [options.extendPointers=false] extendPointers Get the pointers from the node and merge with provided one. Pointers with the same type will be overwrited\n * @param {(String|Object)} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or\n * using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {(Number|String|BigNumber)} [options.fee] fee\n * @param {(Number|String|BigNumber)} [options.ttl] ttl\n * @param {(Number|String|BigNumber)} [options.nonce] nonce\n * @param {(Number|String|BigNumber)} [options.nameTtl=50000] nameTtl Name ttl represented in number of blocks (Max value is 50000 blocks)\n * @param {(Number|String|BigNumber)} [options.clientTtl=84600] clientTtl a suggestion as to how long any clients should cache this information\n * @return {Promise<Object>}\n * @throws Invalid pointer array error\n * @example\n * const name = 'test.chain'\n * const pointersArray = ['ak_asd23dasdas...,' 'ct_asdf34fasdasd...']\n * const nameObject = await sdkInstance.aensQuery(name)\n *\n * await sdkInstance.aensUpdate(name, pointersArray, { nameTtl, ttl, fee, nonce, clientTtl })\n * // or\n * await nameObject.update(pointersArray, { nameTtl, ttl, fee, nonce, clientTtl })\n */\nasync function update (name, pointers = [], options = { extendPointers: false }) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n if (!validatePointers(pointers)) throw new Error('Invalid pointers array')\n\n pointers = [\n ...options.extendPointers ? (await this.getName(name)).pointers : [],\n ...pointers.map(p => Object.fromEntries([['id', p], ['key', classify(p)]]))\n ].reduce((acc, el) => [...acc.filter(p => p.key !== el.key), el], [])\n const nameUpdateTx = await this.nameUpdateTx({\n ...opt,\n nameId: produceNameId(name),\n accountId: await this.address(opt),\n pointers\n })\n\n return this.send(nameUpdateTx, opt)\n}\n\n/**\n * Transfer a domain to another account\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name AENS name\n * @param {String} account Recipient account publick key\n * @param {Object} [options={}]\n * @param {(String|Object)} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or\n * using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {(Number|String|BigNumber)} [options.fee] fee\n * @param {(Number|String|BigNumber)} [options.ttl] ttl\n * @param {(Number|String|BigNumber)} [options.nonce] nonce\n * @return {Promise<Object>} Transaction result\n * @example\n * const name = 'test.chain'\n * const recipientPub = 'ak_asd23dasdas...'\n * const nameObject = await sdkInstance.aensQuery(name)\n *\n * await sdkInstance.aensTransfer(name, recipientPub, { ttl, fee, nonce })\n * // or\n * await nameObject.transfer(recipientPub, { ttl, fee, nonce })\n */\nasync function transfer (name, account, options = {}) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n\n const nameTransferTx = await this.nameTransferTx({\n ...opt,\n nameId: produceNameId(name),\n accountId: await this.address(opt),\n recipientId: account\n })\n\n return this.send(nameTransferTx, opt)\n}\n\n/**\n * Query the AENS name info from the node\n * and return the object with info and predefined functions for manipulating name\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name\n * @param {Object} opt Options\n * @return {Promise<Object>}\n * @example\n * const nameObject = sdkInstance.aensQuery('test.chain')\n * console.log(nameObject)\n * {\n * id, // name hash\n * pointers, // array of pointers\n * update, // Update name function\n * extendTtl, // Extend Ttl name function\n * transfer, // Transfer name function\n * revoke // Revoke name function\n * }\n */\nasync function query (name, opt = {}) {\n ensureNameValid(name)\n const o = await this.getName(name)\n\n return Object.freeze(Object.assign(o, {\n pointers: o.pointers || [],\n update: async (pointers = [], options = {}) => {\n return {\n ...(await this.aensUpdate(name, pointers, { ...opt, ...options })),\n ...(await this.aensQuery(name))\n }\n },\n transfer: async (account, options = {}) => {\n return {\n ...(await this.aensTransfer(name, account, { ...opt, ...options })),\n ...(await this.aensQuery(name))\n }\n },\n revoke: async (options = {}) => this.aensRevoke(name, { ...opt, ...options }),\n extendTtl: async (nameTtl = NAME_TTL, options = {}) => {\n if (!nameTtl || typeof nameTtl !== 'number' || nameTtl > NAME_TTL) throw new Error('Ttl must be an number and less then 180000 blocks')\n\n return {\n ...(await this.aensUpdate(name, o.pointers.map(p => p.id), { ...opt, ...options, nameTtl })),\n ...(await this.aensQuery(name))\n }\n }\n }))\n}\n\n/**\n * Claim a previously preclaimed registration. This can only be done after the\n * preclaim step\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name\n * @param {Number} salt Salt from pre-claim, or 0 if it's a bid\n * @param {Object} [options] options\n * @param {String|Object} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or\n * using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @param {Number|String} [options.nameFee] Name Fee (By default calculated by sdk)\n * @return {Promise<Object>} the result of the claim\n * @example\n * const name = 'test.chain'\n * const salt = preclaimResult.salt // salt from pre-claim transaction\n *\n * await sdkInstance.aensClaim(name, salt, { ttl, fee, nonce, nameFee })\n */\nasync function claim (name, salt, options) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n\n const minNameFee = getMinimumNameFee(name)\n if (opt.nameFee !== this.Ae.defaults.nameFee && minNameFee.gt(opt.nameFee)) {\n throw new Error(`the provided fee ${opt.nameFee} is not enough to execute the claim, required: ${minNameFee}`)\n }\n opt.nameFee = opt.nameFee !== this.Ae.defaults.nameFee ? opt.nameFee : minNameFee\n const claimTx = await this.nameClaimTx({\n ...opt,\n accountId: await this.address(opt),\n nameSalt: salt,\n name: encode(name, 'nm')\n })\n\n const result = await this.send(claimTx, opt)\n if (!isAuctionName(name)) {\n const nameInter = opt.waitMined ? await this.aensQuery(name, opt) : {}\n return Object.assign(result, nameInter)\n }\n return { ...result, nameFee: opt.nameFee }\n}\n\n/**\n * Preclaim a name. Sends a hash of the name and a random salt to the node\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name\n * @param {Object} [options={}]\n * @param {String|Object} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or\n * using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @return {Promise<Object>}\n * @example\n * const name = 'test.chain'\n * const salt = preclaimResult.salt // salt from pre-claim transaction\n *\n * await sdkInstance.aensPreclaim(name, { ttl, fee, nonce })\n * {\n * ...transactionResult,\n * claim, // Claim function (options={}) => claimTransactionResult\n * salt,\n * commitmentId\n * }\n */\nasync function preclaim (name, options = {}) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n const _salt = salt()\n const height = await this.height()\n const commitmentId = commitmentHash(name, _salt)\n\n const preclaimTx = await this.namePreclaimTx({\n ...opt,\n accountId: await this.address(opt),\n commitmentId\n })\n\n const result = await this.send(preclaimTx, opt)\n\n return Object.freeze({\n ...result,\n height,\n claim: options => this.aensClaim(name, _salt, { ...options, onAccount: opt.onAccount }),\n salt: _salt,\n commitmentId\n })\n}\n\n/**\n * Bid to name auction\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name Domain name\n * @param {String|Number} nameFee Name fee (bid fee)\n * @param {Object} [options={}]\n * @param {String|Object} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or\n * using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @return {Promise<Object>} Transaction result\n * @example\n * const name = 'test.chain'\n * const bidFee = computeBidFee(name, startFee, incrementPercentage)\n *\n * await sdkInstance.aensBid(name, 213109412839123, { ttl, fee, nonce })\n */\nasync function bid (name, nameFee = NAME_FEE, options = {}) {\n return this.aensClaim(name, 0, { ...options, nameFee, vsn: 2 })\n}\n\n/**\n * Aens Stamp\n *\n * Aens provides name-system related methods atop\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Aens instance\n */\nconst Aens = Ae.compose({\n methods: {\n aensQuery: query,\n aensPreclaim: preclaim,\n aensClaim: claim,\n aensUpdate: update,\n aensTransfer: transfer,\n aensRevoke: revoke,\n aensBid: bid\n },\n deepProps: {\n Ae: {\n defaults: {\n clientTtl: CLIENT_TTL,\n nameTtl: NAME_TTL, // aec_governance:name_claim_max_expiration() => 50000\n nameFee: NAME_FEE\n }\n }\n }\n})\n\nexport default Aens\n"],"file":"aens.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/ae/aens.js"],"names":["salt","commitmentHash","ensureNameValid","getMinimumNameFee","isAuctionName","encode","produceNameId","Ae","CLIENT_TTL","NAME_FEE","NAME_TTL","revoke","name","options","opt","defaults","nameRevokeTx","nameId","accountId","address","send","update","pointers","allPointers","extendPointers","Object","fromEntries","getName","map","key","id","nameUpdateTx","entries","transfer","account","nameTransferTx","recipientId","query","o","freeze","assign","aensUpdate","aensQuery","aensTransfer","aensRevoke","extendTtl","nameTtl","Error","claim","minNameFee","nameFee","gt","claimTx","nameClaimTx","nameSalt","result","nameInter","waitMined","preclaim","_salt","height","commitmentId","preclaimTx","namePreclaimTx","aensClaim","onAccount","bid","vsn","Aens","compose","methods","aensPreclaim","aensBid","deepProps","clientTtl"],"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 * Aens module - routines to interact with the æternity naming system\n *\n * The high-level description of the naming system is\n * https://github.com/aeternity/protocol/blob/master/AENS.md in the protocol\n * repository.\n * @module @aeternity/aepp-sdk/es/ae/aens\n * @export Aens\n * @example import { Aens } from '@aeternity/aepp-sdk'\n */\n\nimport { salt } from '../utils/crypto'\nimport {\n commitmentHash, ensureNameValid, getMinimumNameFee, isAuctionName, encode, produceNameId\n} from '../tx/builder/helpers'\nimport Ae from './'\nimport { CLIENT_TTL, NAME_FEE, NAME_TTL } from '../tx/builder/schema'\n\n/**\n * Revoke a name\n * @instance\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @category async\n * @param {String} name Name hash\n * @param {Object} [options={}] options\n * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass\n * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @return {Promise<Object>} Transaction result\n * @example\n * const name = 'test.chain'\n * const nameObject = await sdkInstance.aensQuery(name)\n *\n * await sdkInstance.aensRevoke(name, { fee, ttl , nonce })\n * // or\n * await nameObject.revoke({ fee, ttl, nonce })\n */\nasync function revoke (name, options = {}) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n\n const nameRevokeTx = await this.nameRevokeTx({\n ...opt,\n nameId: produceNameId(name),\n accountId: await this.address(opt)\n })\n\n return this.send(nameRevokeTx, opt)\n}\n\n/**\n * Update a name\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name AENS name\n * @param {Object.<string, string>} pointers Map of pointer keys to corresponding addresses\n * @param {Object} [options={}]\n * @param {Boolean} [options.extendPointers] Get the pointers from the node and merge with provided\n * ones. Pointers with the same type will be overwritten\n * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you\n * pass publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @param {Number|String|BigNumber} [options.nameTtl=50000] Name ttl represented in number of\n * blocks (Max value is 50000 blocks)\n * @param {Number|String|BigNumber} [options.clientTtl=84600] a suggestion as to how long any\n * clients should cache this information\n * @return {Promise<Object>}\n * @throws Invalid pointer array error\n * @example\n * const name = 'test.chain'\n * const pointersArray = ['ak_asd23dasdas...,' 'ct_asdf34fasdasd...']\n * const nameObject = await sdkInstance.aensQuery(name)\n *\n * await sdkInstance.aensUpdate(name, pointersArray, { nameTtl, ttl, fee, nonce, clientTtl })\n * // or\n * await nameObject.update(pointers, { nameTtl, ttl, fee, nonce, clientTtl })\n */\nasync function update (name, pointers = {}, options = {}) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n const allPointers = {\n ...options.extendPointers && Object.fromEntries(\n (await this.getName(name)).pointers.map(({ key, id }) => [key, id])\n ),\n ...pointers\n }\n\n const nameUpdateTx = await this.nameUpdateTx({\n ...opt,\n nameId: produceNameId(name),\n accountId: await this.address(opt),\n pointers: Object.entries(allPointers).map(([key, id]) => ({ key, id }))\n })\n\n return this.send(nameUpdateTx, opt)\n}\n\n/**\n * Transfer a domain to another account\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name AENS name\n * @param {String} account Recipient account publick key\n * @param {Object} [options={}]\n * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass\n * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @return {Promise<Object>} Transaction result\n * @example\n * const name = 'test.chain'\n * const recipientPub = 'ak_asd23dasdas...'\n * const nameObject = await sdkInstance.aensQuery(name)\n *\n * await sdkInstance.aensTransfer(name, recipientPub, { ttl, fee, nonce })\n * // or\n * await nameObject.transfer(recipientPub, { ttl, fee, nonce })\n */\nasync function transfer (name, account, options = {}) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n\n const nameTransferTx = await this.nameTransferTx({\n ...opt,\n nameId: produceNameId(name),\n accountId: await this.address(opt),\n recipientId: account\n })\n\n return this.send(nameTransferTx, opt)\n}\n\n/**\n * Query the AENS name info from the node\n * and return the object with info and predefined functions for manipulating name\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name\n * @param {Object} opt Options\n * @return {Promise<Object>}\n * @example\n * const nameObject = sdkInstance.aensQuery('test.chain')\n * console.log(nameObject)\n * {\n * id, // name hash\n * pointers, // array of pointers\n * update, // Update name function\n * extendTtl, // Extend Ttl name function\n * transfer, // Transfer name function\n * revoke // Revoke name function\n * }\n */\nasync function query (name, opt = {}) {\n ensureNameValid(name)\n const o = await this.getName(name)\n\n return Object.freeze(Object.assign(o, {\n pointers: o.pointers || [],\n update: async (pointers, options = {}) => {\n return {\n ...(await this.aensUpdate(name, pointers, { ...opt, ...options })),\n ...(await this.aensQuery(name))\n }\n },\n transfer: async (account, options = {}) => {\n return {\n ...(await this.aensTransfer(name, account, { ...opt, ...options })),\n ...(await this.aensQuery(name))\n }\n },\n revoke: async (options = {}) => this.aensRevoke(name, { ...opt, ...options }),\n extendTtl: async (nameTtl = NAME_TTL, options = {}) => {\n if (!nameTtl || typeof nameTtl !== 'number' || nameTtl > NAME_TTL) throw new Error('Ttl must be an number and less then 180000 blocks')\n\n return {\n ...await this.aensUpdate(name, {}, { ...opt, ...options, nameTtl, extendPointers: true }),\n ...await this.aensQuery(name)\n }\n }\n }))\n}\n\n/**\n * Claim a previously preclaimed registration. This can only be done after the\n * preclaim step\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name\n * @param {Number} salt Salt from pre-claim, or 0 if it's a bid\n * @param {Object} [options] options\n * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass\n * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @param {Number|String} [options.nameFee] Name Fee (By default calculated by sdk)\n * @return {Promise<Object>} the result of the claim\n * @example\n * const name = 'test.chain'\n * const salt = preclaimResult.salt // salt from pre-claim transaction\n *\n * await sdkInstance.aensClaim(name, salt, { ttl, fee, nonce, nameFee })\n */\nasync function claim (name, salt, options) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n\n const minNameFee = getMinimumNameFee(name)\n if (opt.nameFee !== this.Ae.defaults.nameFee && minNameFee.gt(opt.nameFee)) {\n throw new Error(`the provided fee ${opt.nameFee} is not enough to execute the claim, required: ${minNameFee}`)\n }\n opt.nameFee = opt.nameFee !== this.Ae.defaults.nameFee ? opt.nameFee : minNameFee\n const claimTx = await this.nameClaimTx({\n ...opt,\n accountId: await this.address(opt),\n nameSalt: salt,\n name: encode(name, 'nm')\n })\n\n const result = await this.send(claimTx, opt)\n if (!isAuctionName(name)) {\n const nameInter = opt.waitMined ? await this.aensQuery(name, opt) : {}\n return Object.assign(result, nameInter)\n }\n return { ...result, nameFee: opt.nameFee }\n}\n\n/**\n * Preclaim a name. Sends a hash of the name and a random salt to the node\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name\n * @param {Object} [options={}]\n * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass\n * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @return {Promise<Object>}\n * @example\n * const name = 'test.chain'\n * const salt = preclaimResult.salt // salt from pre-claim transaction\n *\n * await sdkInstance.aensPreclaim(name, { ttl, fee, nonce })\n * {\n * ...transactionResult,\n * claim, // Claim function (options={}) => claimTransactionResult\n * salt,\n * commitmentId\n * }\n */\nasync function preclaim (name, options = {}) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n const _salt = salt()\n const height = await this.height()\n const commitmentId = commitmentHash(name, _salt)\n\n const preclaimTx = await this.namePreclaimTx({\n ...opt,\n accountId: await this.address(opt),\n commitmentId\n })\n\n const result = await this.send(preclaimTx, opt)\n\n return Object.freeze({\n ...result,\n height,\n claim: options => this.aensClaim(name, _salt, { ...options, onAccount: opt.onAccount }),\n salt: _salt,\n commitmentId\n })\n}\n\n/**\n * Bid to name auction\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name Domain name\n * @param {String|Number} nameFee Name fee (bid fee)\n * @param {Object} [options={}]\n * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass\n * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @return {Promise<Object>} Transaction result\n * @example\n * const name = 'test.chain'\n * const bidFee = computeBidFee(name, startFee, incrementPercentage)\n *\n * await sdkInstance.aensBid(name, 213109412839123, { ttl, fee, nonce })\n */\nasync function bid (name, nameFee = NAME_FEE, options = {}) {\n return this.aensClaim(name, 0, { ...options, nameFee, vsn: 2 })\n}\n\n/**\n * Aens Stamp\n *\n * Aens provides name-system related methods atop\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Aens instance\n */\nconst Aens = Ae.compose({\n methods: {\n aensQuery: query,\n aensPreclaim: preclaim,\n aensClaim: claim,\n aensUpdate: update,\n aensTransfer: transfer,\n aensRevoke: revoke,\n aensBid: bid\n },\n deepProps: {\n Ae: {\n defaults: {\n clientTtl: CLIENT_TTL,\n nameTtl: NAME_TTL, // aec_governance:name_claim_max_expiration() => 50000\n nameFee: NAME_FEE\n }\n }\n }\n})\n\nexport default Aens\n"],"file":"aens.js"}
|
package/es/ae/contract.js
CHANGED
|
@@ -104,9 +104,10 @@ async function contractCall(source, contractAddress, name, args, options) {
|
|
|
104
104
|
* @deprecated
|
|
105
105
|
* @param {String} code Compiled contract
|
|
106
106
|
* @param {String} source Contract source code
|
|
107
|
-
* @param {Array} params Arguments of contract constructor(init) function. Can be array of
|
|
107
|
+
* @param {Array} params Arguments of contract constructor(init) function. Can be array of
|
|
108
|
+
* arguments or callData string
|
|
108
109
|
* @param {Object} [options] Transaction options (fee, ttl, gas, amount, deposit)
|
|
109
|
-
* @param {Object} [options.filesystem={}] Contract external namespaces map*
|
|
110
|
+
* @param {Object} [options.filesystem={}] Contract external namespaces map*
|
|
110
111
|
* @return {Promise<Object>} Result object
|
|
111
112
|
* @example
|
|
112
113
|
* const deployed = await client.contractDeploy(bytecode, source, init = [], options)
|
|
@@ -136,7 +137,7 @@ async function contractDeploy(code, source, params, options) {
|
|
|
136
137
|
* @category async
|
|
137
138
|
* @param {String} source Contract sourece code
|
|
138
139
|
* @param {Object} [options={}] Transaction options (fee, ttl, gas, amount, deposit)
|
|
139
|
-
* @param {Object} [options.filesystem={}] Contract external namespaces map*
|
|
140
|
+
* @param {Object} [options.filesystem={}] Contract external namespaces map*
|
|
140
141
|
* @return {Promise<Object>} Result object
|
|
141
142
|
* @example
|
|
142
143
|
* const compiled = await client.contractCompile(SOURCE_CODE)
|
|
@@ -185,7 +186,8 @@ async function delegateSignatureCommon() {
|
|
|
185
186
|
return Buffer.from(signature).toString('hex');
|
|
186
187
|
}
|
|
187
188
|
/**
|
|
188
|
-
* Helper to generate a signature to delegate pre-claim/claim/transfer/revoke of a name to
|
|
189
|
+
* Helper to generate a signature to delegate pre-claim/claim/transfer/revoke of a name to
|
|
190
|
+
* a contract.
|
|
189
191
|
* @function
|
|
190
192
|
* @alias module:@aeternity/aepp-sdk/es/ae/contract
|
|
191
193
|
* @category async
|
|
@@ -203,7 +205,9 @@ async function delegateSignatureCommon() {
|
|
|
203
205
|
* const preclaimSig = await client.createAensDelegationSignature(params, { onAccount: current })
|
|
204
206
|
* // Claim, transfer and revoke signature
|
|
205
207
|
* const params = { contractId, name }
|
|
206
|
-
* const aensDelegationSig = await contract.createAensDelegationSignature(
|
|
208
|
+
* const aensDelegationSig = await contract.createAensDelegationSignature(
|
|
209
|
+
* params, name, { onAccount: current }
|
|
210
|
+
* )
|
|
207
211
|
*/
|
|
208
212
|
|
|
209
213
|
|
package/es/ae/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ae/contract.js"],"names":["Ae","ContractCompilerAPI","ContractBase","getContractInstance","NodePool","AMOUNT","DEPOSIT","GAS","MIN_GAS_PRICE","decode","produceNameId","contractCallStatic","source","contractAddress","name","args","options","contract","call","callStatic","contractCall","contractDeploy","code","params","bytecode","deploy","contractCompile","opt","defaults","compileContractAPI","Object","freeze","encodeCall","contractEncodeCallDataAPI","init","deployStatic","delegateSignatureCommon","ids","signature","sign","Buffer","concat","from","getNetworkId","prototype","hasOwnProperty","address","map","e","toString","createAensDelegationSignature","contractId","createOracleDelegationSignature","queryId","ContractAPI","compose","methods","deepProps","deposit","gasPrice","amount","gas","Contract","ContractWithCompiler"],"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 * Contract module - routines to interact with the æternity contract\n *\n * High level documentation of the contracts are available at\n * https://github.com/aeternity/protocol/tree/master/contracts and\n *\n * @module @aeternity/aepp-sdk/es/ae/contract\n * @export Contract\n * @example import { Contract } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport ContractCompilerAPI from '../contract/compiler'\nimport ContractBase from '../contract'\nimport getContractInstance from '../contract/aci'\nimport NodePool from '../node-pool'\nimport { AMOUNT, DEPOSIT, GAS, MIN_GAS_PRICE } from '../tx/builder/schema'\nimport { decode, produceNameId } from '../tx/builder/helpers'\n\n/**\n * Static contract call(using dry-run)\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @deprecated\n * @param {String} source Contract source code\n * @param {String} contractAddress Contract address\n * @param {String} name Name of function to call\n * @param {Array} args Arguments array for call/deploy transaction\n * @param {Object} [options]\n * @param {Number|String} [options.top] Block height or hash on which you want to call contract\n * @param {String} [options.bytecode] Block hash on which you want to call contract\n * @param {Object} [options.filesystem] Contract external namespaces map\n * @return {Promise<Object>} Result object\n * @example\n * const callResult = await client.contractCallStatic(source, address, fnName, args)\n * {\n * result: TX_DATA,\n * decode: (type) => Decode call result\n * }\n */\nasync function contractCallStatic (source, contractAddress, name, args = [], options) {\n const contract = await this.getContractInstance({ ...options, source, contractAddress })\n return contract.call(name, args, { ...options, callStatic: true })\n}\n\n/**\n * Call contract function\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @deprecated\n * @param {String} source Contract source code\n * @param {String} contractAddress Contract address or AENS name\n * @param {String} name Name of function to call\n * @param {Array} args Arguments array for call/deploy transaction\n * @param {Object} [options] Transaction options (fee, ttl, gas, amount, deposit)\n * @param {Object} [options.filesystem] Contract external namespaces map\n * @return {Promise<Object>} Result object\n * @example\n * const callResult = await client.contractCall(source, address, fnName, args = [], options)\n * {\n * hash: TX_HASH,\n * result: TX_DATA,\n * decode: (type) => Decode call result\n * }\n */\nasync function contractCall (source, contractAddress, name, args, options) {\n const contract = await this.getContractInstance({ ...options, source, contractAddress })\n return contract.call(name, args, options)\n}\n\n/**\n * Deploy contract to the node\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @deprecated\n * @param {String} code Compiled contract\n * @param {String} source Contract source code\n * @param {Array} params Arguments of contract constructor(init) function. Can be array of arguments or callData string\n * @param {Object} [options] Transaction options (fee, ttl, gas, amount, deposit)\n * @param {Object} [options.filesystem={}] Contract external namespaces map* @return {Promise<Object>} Result object\n * @return {Promise<Object>} Result object\n * @example\n * const deployed = await client.contractDeploy(bytecode, source, init = [], options)\n * {\n * owner: OWNER_PUB_KEY,\n * transaction: TX_HASH,\n * address: CONTRACT_ADDRESS,\n * createdAt: Date,\n * result: DEPLOY_TX_DATA,\n * call: (fnName, args = [], options) => Call contract function,\n * callStatic: (fnName, args = [], options) => Static all contract function\n * }\n */\nasync function contractDeploy (code, source, params, options) {\n const contract = await this.getContractInstance({ ...options, source })\n contract.bytecode = code\n return contract.deploy(params, options)\n}\n\n/**\n * Compile contract source code\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @param {String} source Contract sourece code\n * @param {Object} [options={}] Transaction options (fee, ttl, gas, amount, deposit)\n * @param {Object} [options.filesystem={}] Contract external namespaces map* @return {Promise<Object>} Result object\n * @return {Promise<Object>} Result object\n * @example\n * const compiled = await client.contractCompile(SOURCE_CODE)\n * {\n * bytecode: CONTRACT_BYTE_CODE,\n * deploy: (init = [], options = {}) => Deploy Contract,\n * encodeCall: (fnName, args = []) => Prepare callData\n * }\n */\nasync function contractCompile (source, options = {}) {\n const opt = { ...this.Ae.defaults, ...options }\n const bytecode = await this.compileContractAPI(source, options)\n return Object.freeze({\n encodeCall: (name, args) => this.contractEncodeCallDataAPI(source, name, args, opt),\n deploy: (init, options) => this.contractDeploy(bytecode, source, init, { ...opt, ...options }),\n deployStatic: (init, options) => this.contractCallStatic(source, null, 'init', init, {\n ...opt,\n ...options,\n bytecode\n }),\n bytecode\n })\n}\n\n/**\n * Utility method to create a delegate signature for a contract\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @param {String[]} ids The list of id's to prepend\n * @param {Object} [opt={}] options\n * @param {{ onAccount: String | Object }} [opt={}] opt Options\n * @return {Promise<String>} Signature in hex representation\n */\nasync function delegateSignatureCommon (ids = [], opt = {}) {\n const signature = await this.sign(\n Buffer.concat([\n Buffer.from(this.getNetworkId(opt)),\n ...(Object.prototype.hasOwnProperty.call(opt, 'onAccount') ? [decode(await this.address(opt))] : []),\n ...ids.map(e => decode(e))\n ]),\n opt\n )\n return Buffer.from(signature).toString('hex')\n}\n\n/**\n * Helper to generate a signature to delegate pre-claim/claim/transfer/revoke of a name to a contract.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @param {String} contractId Contract Id\n * @param {String} [name] The name\n * @param {{ onAccount: String | Object }} [opt={}] opt Options\n * @return {Promise<String>} Signature for delegation\n * @example\n * const client = await Universal({ ... })\n * const contractId = 'ct_asd2ks...' // contract address\n * const name = 'example.chain' // AENS name\n * const onAccount = await client.address() // Sign with a specific account\n * // Preclaim signature\n * const params = { contractId }\n * const preclaimSig = await client.createAensDelegationSignature(params, { onAccount: current })\n * // Claim, transfer and revoke signature\n * const params = { contractId, name }\n * const aensDelegationSig = await contract.createAensDelegationSignature(params, name, { onAccount: current })\n */\nasync function createAensDelegationSignature ({ contractId, name }, opt = {}) {\n return this.delegateSignatureCommon([...name ? [produceNameId(name)] : [], contractId], opt)\n}\n\n/**\n * Helper to generate a signature to delegate register/extend/respond of a Oracle to a contract.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @param {String} contractId Contract Id\n * @param {String} [queryId] Oracle Query Id\n * @param {{ onAccount: String | Object }} [opt={}] opt Options\n * @return {Promise<String>} Signature for delegation\n * @example\n * const client = await Universal({ ... })\n * const contractId = 'ct_asd2ks...' // contract address\n * const queryId = 'oq_...' // Oracle Query Id\n * const onAccount = await client.address() // Sign with a specific account\n * // Oracle register and extend signature\n * const params = { contractId }\n * const oracleDelegationSig = await contract.createOracleDelegationSignature(params, { onAccount })\n * // Oracle respond signature\n * const params = { contractId, queryId }\n * const respondSig = await contract.createOracleDelegationSignature(params, queryId)\n */\nasync function createOracleDelegationSignature ({ contractId, queryId }, opt = {}) {\n return this.delegateSignatureCommon([...queryId ? [queryId] : [], contractId], opt)\n}\n\n/**\n * Contract Stamp\n *\n * Provide contract implementation\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Contract instance\n * @example\n * import Transaction from '@aeternity/aepp-sdk/es/tx/tx\n * import MemoryAccount from '@aeternity/aepp-sdk/es/account/memory\n * import ChainNode from '@aeternity/aepp-sdk/es/chain/node\n * import ContractCompilerAPI from '@aeternity/aepp-sdk/es/contract/compiler\n * // or using bundle\n * import {\n * Transaction,\n * MemoryAccount,\n * ChainNode,\n * ContractCompilerAPI\n * } from '@aeternity/aepp-sdk\n *\n * const ContractWithAE = await Contract\n * .compose(Transaction, MemoryAccount, ChainNode) // AE implementation\n * .compose(ContractCompilerAPI) // ContractBase implementation\n * const client = await ContractWithAe({ url, internalUrl, compilerUrl, keypair, ... })\n *\n */\nexport const ContractAPI = Ae.compose(ContractBase, {\n methods: {\n getContractInstance,\n contractCompile,\n contractCallStatic,\n contractDeploy,\n contractCall,\n // Delegation for contract\n delegateSignatureCommon,\n // AENS\n createAensDelegationSignature,\n // Oracle\n createOracleDelegationSignature\n },\n deepProps: {\n Ae: {\n defaults: {\n deposit: DEPOSIT,\n gasPrice: MIN_GAS_PRICE,\n amount: AMOUNT,\n gas: GAS\n }\n }\n }\n})\n\nexport const Contract = ContractAPI.compose(NodePool)\nexport const ContractWithCompiler = Contract.compose(ContractCompilerAPI)\nexport default ContractWithCompiler\n"],"file":"contract.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/ae/contract.js"],"names":["Ae","ContractCompilerAPI","ContractBase","getContractInstance","NodePool","AMOUNT","DEPOSIT","GAS","MIN_GAS_PRICE","decode","produceNameId","contractCallStatic","source","contractAddress","name","args","options","contract","call","callStatic","contractCall","contractDeploy","code","params","bytecode","deploy","contractCompile","opt","defaults","compileContractAPI","Object","freeze","encodeCall","contractEncodeCallDataAPI","init","deployStatic","delegateSignatureCommon","ids","signature","sign","Buffer","concat","from","getNetworkId","prototype","hasOwnProperty","address","map","e","toString","createAensDelegationSignature","contractId","createOracleDelegationSignature","queryId","ContractAPI","compose","methods","deepProps","deposit","gasPrice","amount","gas","Contract","ContractWithCompiler"],"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 * Contract module - routines to interact with the æternity contract\n *\n * High level documentation of the contracts are available at\n * https://github.com/aeternity/protocol/tree/master/contracts and\n *\n * @module @aeternity/aepp-sdk/es/ae/contract\n * @export Contract\n * @example import { Contract } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport ContractCompilerAPI from '../contract/compiler'\nimport ContractBase from '../contract'\nimport getContractInstance from '../contract/aci'\nimport NodePool from '../node-pool'\nimport { AMOUNT, DEPOSIT, GAS, MIN_GAS_PRICE } from '../tx/builder/schema'\nimport { decode, produceNameId } from '../tx/builder/helpers'\n\n/**\n * Static contract call(using dry-run)\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @deprecated\n * @param {String} source Contract source code\n * @param {String} contractAddress Contract address\n * @param {String} name Name of function to call\n * @param {Array} args Arguments array for call/deploy transaction\n * @param {Object} [options]\n * @param {Number|String} [options.top] Block height or hash on which you want to call contract\n * @param {String} [options.bytecode] Block hash on which you want to call contract\n * @param {Object} [options.filesystem] Contract external namespaces map\n * @return {Promise<Object>} Result object\n * @example\n * const callResult = await client.contractCallStatic(source, address, fnName, args)\n * {\n * result: TX_DATA,\n * decode: (type) => Decode call result\n * }\n */\nasync function contractCallStatic (source, contractAddress, name, args = [], options) {\n const contract = await this.getContractInstance({ ...options, source, contractAddress })\n return contract.call(name, args, { ...options, callStatic: true })\n}\n\n/**\n * Call contract function\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @deprecated\n * @param {String} source Contract source code\n * @param {String} contractAddress Contract address or AENS name\n * @param {String} name Name of function to call\n * @param {Array} args Arguments array for call/deploy transaction\n * @param {Object} [options] Transaction options (fee, ttl, gas, amount, deposit)\n * @param {Object} [options.filesystem] Contract external namespaces map\n * @return {Promise<Object>} Result object\n * @example\n * const callResult = await client.contractCall(source, address, fnName, args = [], options)\n * {\n * hash: TX_HASH,\n * result: TX_DATA,\n * decode: (type) => Decode call result\n * }\n */\nasync function contractCall (source, contractAddress, name, args, options) {\n const contract = await this.getContractInstance({ ...options, source, contractAddress })\n return contract.call(name, args, options)\n}\n\n/**\n * Deploy contract to the node\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @deprecated\n * @param {String} code Compiled contract\n * @param {String} source Contract source code\n * @param {Array} params Arguments of contract constructor(init) function. Can be array of\n * arguments or callData string\n * @param {Object} [options] Transaction options (fee, ttl, gas, amount, deposit)\n * @param {Object} [options.filesystem={}] Contract external namespaces map*\n * @return {Promise<Object>} Result object\n * @example\n * const deployed = await client.contractDeploy(bytecode, source, init = [], options)\n * {\n * owner: OWNER_PUB_KEY,\n * transaction: TX_HASH,\n * address: CONTRACT_ADDRESS,\n * createdAt: Date,\n * result: DEPLOY_TX_DATA,\n * call: (fnName, args = [], options) => Call contract function,\n * callStatic: (fnName, args = [], options) => Static all contract function\n * }\n */\nasync function contractDeploy (code, source, params, options) {\n const contract = await this.getContractInstance({ ...options, source })\n contract.bytecode = code\n return contract.deploy(params, options)\n}\n\n/**\n * Compile contract source code\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @param {String} source Contract sourece code\n * @param {Object} [options={}] Transaction options (fee, ttl, gas, amount, deposit)\n * @param {Object} [options.filesystem={}] Contract external namespaces map*\n * @return {Promise<Object>} Result object\n * @example\n * const compiled = await client.contractCompile(SOURCE_CODE)\n * {\n * bytecode: CONTRACT_BYTE_CODE,\n * deploy: (init = [], options = {}) => Deploy Contract,\n * encodeCall: (fnName, args = []) => Prepare callData\n * }\n */\nasync function contractCompile (source, options = {}) {\n const opt = { ...this.Ae.defaults, ...options }\n const bytecode = await this.compileContractAPI(source, options)\n return Object.freeze({\n encodeCall: (name, args) => this.contractEncodeCallDataAPI(source, name, args, opt),\n deploy: (init, options) => this.contractDeploy(bytecode, source, init, { ...opt, ...options }),\n deployStatic: (init, options) => this.contractCallStatic(source, null, 'init', init, {\n ...opt,\n ...options,\n bytecode\n }),\n bytecode\n })\n}\n\n/**\n * Utility method to create a delegate signature for a contract\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @param {String[]} ids The list of id's to prepend\n * @param {Object} [opt={}] options\n * @param {{ onAccount: String | Object }} [opt={}] opt Options\n * @return {Promise<String>} Signature in hex representation\n */\nasync function delegateSignatureCommon (ids = [], opt = {}) {\n const signature = await this.sign(\n Buffer.concat([\n Buffer.from(this.getNetworkId(opt)),\n ...(Object.prototype.hasOwnProperty.call(opt, 'onAccount') ? [decode(await this.address(opt))] : []),\n ...ids.map(e => decode(e))\n ]),\n opt\n )\n return Buffer.from(signature).toString('hex')\n}\n\n/**\n * Helper to generate a signature to delegate pre-claim/claim/transfer/revoke of a name to\n * a contract.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @param {String} contractId Contract Id\n * @param {String} [name] The name\n * @param {{ onAccount: String | Object }} [opt={}] opt Options\n * @return {Promise<String>} Signature for delegation\n * @example\n * const client = await Universal({ ... })\n * const contractId = 'ct_asd2ks...' // contract address\n * const name = 'example.chain' // AENS name\n * const onAccount = await client.address() // Sign with a specific account\n * // Preclaim signature\n * const params = { contractId }\n * const preclaimSig = await client.createAensDelegationSignature(params, { onAccount: current })\n * // Claim, transfer and revoke signature\n * const params = { contractId, name }\n * const aensDelegationSig = await contract.createAensDelegationSignature(\n * params, name, { onAccount: current }\n * )\n */\nasync function createAensDelegationSignature ({ contractId, name }, opt = {}) {\n return this.delegateSignatureCommon([...name ? [produceNameId(name)] : [], contractId], opt)\n}\n\n/**\n * Helper to generate a signature to delegate register/extend/respond of a Oracle to a contract.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @param {String} contractId Contract Id\n * @param {String} [queryId] Oracle Query Id\n * @param {{ onAccount: String | Object }} [opt={}] opt Options\n * @return {Promise<String>} Signature for delegation\n * @example\n * const client = await Universal({ ... })\n * const contractId = 'ct_asd2ks...' // contract address\n * const queryId = 'oq_...' // Oracle Query Id\n * const onAccount = await client.address() // Sign with a specific account\n * // Oracle register and extend signature\n * const params = { contractId }\n * const oracleDelegationSig = await contract.createOracleDelegationSignature(params, { onAccount })\n * // Oracle respond signature\n * const params = { contractId, queryId }\n * const respondSig = await contract.createOracleDelegationSignature(params, queryId)\n */\nasync function createOracleDelegationSignature ({ contractId, queryId }, opt = {}) {\n return this.delegateSignatureCommon([...queryId ? [queryId] : [], contractId], opt)\n}\n\n/**\n * Contract Stamp\n *\n * Provide contract implementation\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Contract instance\n * @example\n * import Transaction from '@aeternity/aepp-sdk/es/tx/tx\n * import MemoryAccount from '@aeternity/aepp-sdk/es/account/memory\n * import ChainNode from '@aeternity/aepp-sdk/es/chain/node\n * import ContractCompilerAPI from '@aeternity/aepp-sdk/es/contract/compiler\n * // or using bundle\n * import {\n * Transaction,\n * MemoryAccount,\n * ChainNode,\n * ContractCompilerAPI\n * } from '@aeternity/aepp-sdk\n *\n * const ContractWithAE = await Contract\n * .compose(Transaction, MemoryAccount, ChainNode) // AE implementation\n * .compose(ContractCompilerAPI) // ContractBase implementation\n * const client = await ContractWithAe({ url, internalUrl, compilerUrl, keypair, ... })\n *\n */\nexport const ContractAPI = Ae.compose(ContractBase, {\n methods: {\n getContractInstance,\n contractCompile,\n contractCallStatic,\n contractDeploy,\n contractCall,\n // Delegation for contract\n delegateSignatureCommon,\n // AENS\n createAensDelegationSignature,\n // Oracle\n createOracleDelegationSignature\n },\n deepProps: {\n Ae: {\n defaults: {\n deposit: DEPOSIT,\n gasPrice: MIN_GAS_PRICE,\n amount: AMOUNT,\n gas: GAS\n }\n }\n }\n})\n\nexport const Contract = ContractAPI.compose(NodePool)\nexport const ContractWithCompiler = Contract.compose(ContractCompilerAPI)\nexport default ContractWithCompiler\n"],"file":"contract.js"}
|
package/es/ae/index.js
CHANGED
|
@@ -35,7 +35,8 @@ import { AE_AMOUNT_FORMATS } from '../utils/amount-formatter';
|
|
|
35
35
|
* @rtype (tx: String, options: Object) => Promise[String]
|
|
36
36
|
* @param {String} tx - Transaction
|
|
37
37
|
* @param {Object} [options={}] options - Options
|
|
38
|
-
* @param {Object} [options.verify=true]
|
|
38
|
+
* @param {Object} [options.verify=true] - Verify transaction before broadcast, throw error if not
|
|
39
|
+
* valid
|
|
39
40
|
* @return {Object} Transaction
|
|
40
41
|
*/
|
|
41
42
|
|
|
@@ -85,7 +86,7 @@ async function spend(amount, recipientIdOrName, options) {
|
|
|
85
86
|
};
|
|
86
87
|
return this.send(await this.spendTx({ ...opt,
|
|
87
88
|
senderId: await this.address(opt),
|
|
88
|
-
recipientId: await this.resolveName(recipientIdOrName, '
|
|
89
|
+
recipientId: await this.resolveName(recipientIdOrName, 'account_pubkey', opt),
|
|
89
90
|
amount
|
|
90
91
|
}), opt);
|
|
91
92
|
} // TODO: Rename to spendFraction
|
|
@@ -110,7 +111,7 @@ async function transferFunds(fraction, recipientIdOrName, options) {
|
|
|
110
111
|
const opt = { ...this.Ae.defaults,
|
|
111
112
|
...options
|
|
112
113
|
};
|
|
113
|
-
const recipientId = await this.resolveName(recipientIdOrName, '
|
|
114
|
+
const recipientId = await this.resolveName(recipientIdOrName, 'account_pubkey', opt);
|
|
114
115
|
const senderId = await this.address(opt);
|
|
115
116
|
const balance = new BigNumber(await this.balance(senderId));
|
|
116
117
|
const desiredAmount = balance.times(fraction).integerValue(BigNumber.ROUND_HALF_UP);
|