@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.
Files changed (113) hide show
  1. package/CHANGELOG.md +1603 -0
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +1 -1
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/account/base.js +3 -1
  9. package/es/account/base.js.map +1 -1
  10. package/es/account/multiple.js +4 -2
  11. package/es/account/multiple.js.map +1 -1
  12. package/es/ae/aens.js +52 -38
  13. package/es/ae/aens.js.map +1 -1
  14. package/es/ae/contract.js +9 -5
  15. package/es/ae/contract.js.map +1 -1
  16. package/es/ae/index.js +4 -3
  17. package/es/ae/index.js.map +1 -1
  18. package/es/ae/oracle.js +4 -4
  19. package/es/ae/oracle.js.map +1 -1
  20. package/es/ae/universal.js.map +1 -1
  21. package/es/chain/index.js +8 -4
  22. package/es/chain/index.js.map +1 -1
  23. package/es/chain/node.js +15 -20
  24. package/es/chain/node.js.map +1 -1
  25. package/es/channel/handlers.js.map +1 -1
  26. package/es/channel/index.js +35 -14
  27. package/es/channel/index.js.map +1 -1
  28. package/es/contract/aci/index.js +12 -7
  29. package/es/contract/aci/index.js.map +1 -1
  30. package/es/contract/compiler.js +3 -1
  31. package/es/contract/compiler.js.map +1 -1
  32. package/es/contract/ga/helpers.js +6 -6
  33. package/es/contract/ga/helpers.js.map +1 -1
  34. package/es/contract/ga/index.js +6 -2
  35. package/es/contract/ga/index.js.map +1 -1
  36. package/es/contract/index.js +6 -2
  37. package/es/contract/index.js.map +1 -1
  38. package/es/index.js +1 -0
  39. package/es/index.js.map +1 -1
  40. package/es/node-pool/index.js +4 -2
  41. package/es/node-pool/index.js.map +1 -1
  42. package/es/node.js +9 -4
  43. package/es/node.js.map +1 -1
  44. package/es/tx/builder/helpers.js +20 -33
  45. package/es/tx/builder/helpers.js.map +1 -1
  46. package/es/tx/builder/index.js +13 -6
  47. package/es/tx/builder/index.js.map +1 -1
  48. package/es/tx/builder/schema.js +5 -4
  49. package/es/tx/builder/schema.js.map +1 -1
  50. package/es/tx/index.js +101 -12
  51. package/es/tx/index.js.map +1 -1
  52. package/es/tx/tx-object.js +9 -3
  53. package/es/tx/tx-object.js.map +1 -1
  54. package/es/tx/tx.js.map +1 -1
  55. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +3 -2
  56. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +1 -1
  57. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +15 -6
  58. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +1 -1
  59. package/es/utils/aepp-wallet-communication/connection/index.js +2 -1
  60. package/es/utils/aepp-wallet-communication/connection/index.js.map +1 -1
  61. package/es/utils/aepp-wallet-communication/content-script-bridge.js +10 -4
  62. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +1 -1
  63. package/es/utils/aepp-wallet-communication/helpers.js.map +1 -1
  64. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +13 -5
  65. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +1 -1
  66. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +9 -5
  67. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +1 -1
  68. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +57 -40
  69. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +1 -1
  70. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +1 -1
  71. package/es/utils/crypto.js +1 -40
  72. package/es/utils/crypto.js.map +1 -1
  73. package/es/utils/keystore.js.map +1 -1
  74. package/es/utils/swagger.js +3 -1
  75. package/es/utils/swagger.js.map +1 -1
  76. package/package.json +11 -13
  77. package/src/account/base.js +3 -1
  78. package/src/account/multiple.js +4 -2
  79. package/src/ae/aens.js +41 -42
  80. package/src/ae/contract.js +9 -5
  81. package/src/ae/index.js +4 -3
  82. package/src/ae/oracle.js +9 -5
  83. package/src/ae/universal.js +3 -1
  84. package/src/chain/index.js +8 -4
  85. package/src/chain/node.js +17 -14
  86. package/src/channel/handlers.js +10 -3
  87. package/src/channel/index.js +40 -15
  88. package/src/contract/aci/index.js +15 -8
  89. package/src/contract/compiler.js +6 -2
  90. package/src/contract/ga/helpers.js +5 -3
  91. package/src/contract/ga/index.js +6 -2
  92. package/src/contract/index.js +6 -2
  93. package/src/index.js +2 -0
  94. package/src/node-pool/index.js +4 -2
  95. package/src/node.js +7 -4
  96. package/src/tx/builder/helpers.js +20 -33
  97. package/src/tx/builder/index.js +49 -13
  98. package/src/tx/builder/schema.js +37 -14
  99. package/src/tx/index.js +101 -12
  100. package/src/tx/tx-object.js +25 -6
  101. package/src/tx/tx.js +94 -28
  102. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +3 -2
  103. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +25 -7
  104. package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
  105. package/src/utils/aepp-wallet-communication/content-script-bridge.js +10 -4
  106. package/src/utils/aepp-wallet-communication/helpers.js +4 -2
  107. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +32 -9
  108. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +9 -5
  109. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +53 -22
  110. package/src/utils/aepp-wallet-communication/wallet-detector.js +4 -1
  111. package/src/utils/crypto.js +1 -52
  112. package/src/utils/keystore.js +10 -2
  113. package/src/utils/swagger.js +1 -1
@@ -90,7 +90,9 @@ async function signMessage(message) {
90
90
  * Verify message
91
91
  * @instance
92
92
  * @category async
93
- * @rtype (msg: String, signature: String, publicKey: String) => signature: Promise[String], throws: Error
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
@@ -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"}
@@ -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({ accounts: [ MemmoryAccount({ keypair: 'keypair_object' }) ] })
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 can be account address (should exist in sdk instance), MemoryAccount or keypair
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: [ MemmoryAccount({ keypair: 'keypair_object' }) ] })\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 can be 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"}
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, classify, isAuctionName, validatePointers, encode, produceNameId } from '../tx/builder/helpers';
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 {(String|Object)} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or
41
- * 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
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 {String[]} pointers Array of name pointers. Can be oracle|account|contract|channel public key
74
+ * @param {Object.<string, string>} pointers Map of pointer keys to corresponding addresses
75
75
  * @param {Object} [options={}]
76
- * @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
77
- * @param {(String|Object)} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or
78
- * using provided KeyPair(Can be keypair object or MemoryAccount)
79
- * @param {(Number|String|BigNumber)} [options.fee] fee
80
- * @param {(Number|String|BigNumber)} [options.ttl] ttl
81
- * @param {(Number|String|BigNumber)} [options.nonce] nonce
82
- * @param {(Number|String|BigNumber)} [options.nameTtl=50000] nameTtl Name ttl represented in number of blocks (Max value is 50000 blocks)
83
- * @param {(Number|String|BigNumber)} [options.clientTtl=84600] clientTtl a suggestion as to how long any clients should cache this information
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(pointersArray, { nameTtl, ttl, fee, nonce, clientTtl })
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
- if (!validatePointers(pointers)) throw new Error('Invalid pointers array');
107
- pointers = [...(options.extendPointers ? (await this.getName(name)).pointers : []), ...pointers.map(p => Object.fromEntries([['id', p], ['key', classify(p)]]))].reduce((acc, el) => [...acc.filter(p => p.key !== el.key), el], []);
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 {(String|Object)} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or
125
- * using provided KeyPair(Can be keypair object or MemoryAccount)
126
- * @param {(Number|String|BigNumber)} [options.fee] fee
127
- * @param {(Number|String|BigNumber)} [options.ttl] ttl
128
- * @param {(Number|String|BigNumber)} [options.nonce] nonce
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, o.pointers.map(p => p.id), { ...opt,
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] onAccount Make operation on specific account from sdk(you pass publickKey) or
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] onAccount Make operation on specific account from sdk(you pass publickKey) or
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] onAccount Make operation on specific account from sdk(you pass publickKey) or
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":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,SAASA,IAAT,QAAqB,iBAArB;AACA,SACEC,cADF,EAEEC,eAFF,EAGEC,iBAHF,EAIEC,QAJF,EAKEC,aALF,EAMEC,gBANF,EAMoBC,MANpB,EAM4BC,aAN5B,QAOO,uBAPP;AAQA,OAAOC,EAAP,MAAe,IAAf;AACA,SAASC,UAAT,EAAqBC,QAArB,EAA+BC,QAA/B,QAA+C,sBAA/C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAeC,MAAf,CAAuBC,IAAvB,EAA2C;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACzCb,EAAAA,eAAe,CAACY,IAAD,CAAf;AACA,QAAME,GAAG,GAAG,EAAE,GAAG,KAAKP,EAAL,CAAQQ,QAAb;AAAuB,OAAGF;AAA1B,GAAZ;AAEA,QAAMG,YAAY,GAAG,MAAM,KAAKA,YAAL,CAAkB,EAC3C,GAAGF,GADwC;AAE3CG,IAAAA,MAAM,EAAEX,aAAa,CAACM,IAAD,CAFsB;AAG3CM,IAAAA,SAAS,EAAE,MAAM,KAAKC,OAAL,CAAaL,GAAb;AAH0B,GAAlB,CAA3B;AAMA,SAAO,KAAKM,IAAL,CAAUJ,YAAV,EAAwBF,GAAxB,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAeO,MAAf,CAAuBT,IAAvB,EAAiF;AAAA,MAApDU,QAAoD,uEAAzC,EAAyC;AAAA,MAArCT,OAAqC,uEAA3B;AAAEU,IAAAA,cAAc,EAAE;AAAlB,GAA2B;AAC/EvB,EAAAA,eAAe,CAACY,IAAD,CAAf;AACA,QAAME,GAAG,GAAG,EAAE,GAAG,KAAKP,EAAL,CAAQQ,QAAb;AAAuB,OAAGF;AAA1B,GAAZ;AACA,MAAI,CAACT,gBAAgB,CAACkB,QAAD,CAArB,EAAiC,MAAM,IAAIE,KAAJ,CAAU,wBAAV,CAAN;AAEjCF,EAAAA,QAAQ,GAAG,CACT,IAAGT,OAAO,CAACU,cAAR,GAAyB,CAAC,MAAM,KAAKE,OAAL,CAAab,IAAb,CAAP,EAA2BU,QAApD,GAA+D,EAAlE,CADS,EAET,GAAGA,QAAQ,CAACI,GAAT,CAAaC,CAAC,IAAIC,MAAM,CAACC,WAAP,CAAmB,CAAC,CAAC,IAAD,EAAOF,CAAP,CAAD,EAAY,CAAC,KAAD,EAAQzB,QAAQ,CAACyB,CAAD,CAAhB,CAAZ,CAAnB,CAAlB,CAFM,EAGTG,MAHS,CAGF,CAACC,GAAD,EAAMC,EAAN,KAAa,CAAC,GAAGD,GAAG,CAACE,MAAJ,CAAWN,CAAC,IAAIA,CAAC,CAACO,GAAF,KAAUF,EAAE,CAACE,GAA7B,CAAJ,EAAuCF,EAAvC,CAHX,EAGuD,EAHvD,CAAX;AAIA,QAAMG,YAAY,GAAG,MAAM,KAAKA,YAAL,CAAkB,EAC3C,GAAGrB,GADwC;AAE3CG,IAAAA,MAAM,EAAEX,aAAa,CAACM,IAAD,CAFsB;AAG3CM,IAAAA,SAAS,EAAE,MAAM,KAAKC,OAAL,CAAaL,GAAb,CAH0B;AAI3CQ,IAAAA;AAJ2C,GAAlB,CAA3B;AAOA,SAAO,KAAKF,IAAL,CAAUe,YAAV,EAAwBrB,GAAxB,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAesB,QAAf,CAAyBxB,IAAzB,EAA+ByB,OAA/B,EAAsD;AAAA,MAAdxB,OAAc,uEAAJ,EAAI;AACpDb,EAAAA,eAAe,CAACY,IAAD,CAAf;AACA,QAAME,GAAG,GAAG,EAAE,GAAG,KAAKP,EAAL,CAAQQ,QAAb;AAAuB,OAAGF;AAA1B,GAAZ;AAEA,QAAMyB,cAAc,GAAG,MAAM,KAAKA,cAAL,CAAoB,EAC/C,GAAGxB,GAD4C;AAE/CG,IAAAA,MAAM,EAAEX,aAAa,CAACM,IAAD,CAF0B;AAG/CM,IAAAA,SAAS,EAAE,MAAM,KAAKC,OAAL,CAAaL,GAAb,CAH8B;AAI/CyB,IAAAA,WAAW,EAAEF;AAJkC,GAApB,CAA7B;AAOA,SAAO,KAAKjB,IAAL,CAAUkB,cAAV,EAA0BxB,GAA1B,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAe0B,KAAf,CAAsB5B,IAAtB,EAAsC;AAAA;;AAAA,MAAVE,GAAU,uEAAJ,EAAI;AACpCd,EAAAA,eAAe,CAACY,IAAD,CAAf;AACA,QAAM6B,CAAC,GAAG,MAAM,KAAKhB,OAAL,CAAab,IAAb,CAAhB;AAEA,SAAOgB,MAAM,CAACc,MAAP,CAAcd,MAAM,CAACe,MAAP,CAAcF,CAAd,EAAiB;AACpCnB,IAAAA,QAAQ,EAAEmB,CAAC,CAACnB,QAAF,IAAc,EADY;AAEpCD,IAAAA,MAAM,EAAE,kBAAuC;AAAA,UAAhCC,QAAgC,uEAArB,EAAqB;AAAA,UAAjBT,OAAiB,uEAAP,EAAO;AAC7C,aAAO,EACL,IAAI,MAAM,KAAI,CAAC+B,UAAL,CAAgBhC,IAAhB,EAAsBU,QAAtB,EAAgC,EAAE,GAAGR,GAAL;AAAU,aAAGD;AAAb,SAAhC,CAAV,CADK;AAEL,YAAI,MAAM,KAAI,CAACgC,SAAL,CAAejC,IAAf,CAAV;AAFK,OAAP;AAID,KAPmC;AAQpCwB,IAAAA,QAAQ,EAAE,gBAAOC,OAAP,EAAiC;AAAA,UAAjBxB,OAAiB,uEAAP,EAAO;AACzC,aAAO,EACL,IAAI,MAAM,KAAI,CAACiC,YAAL,CAAkBlC,IAAlB,EAAwByB,OAAxB,EAAiC,EAAE,GAAGvB,GAAL;AAAU,aAAGD;AAAb,SAAjC,CAAV,CADK;AAEL,YAAI,MAAM,KAAI,CAACgC,SAAL,CAAejC,IAAf,CAAV;AAFK,OAAP;AAID,KAbmC;AAcpCD,IAAAA,MAAM,EAAE;AAAA,UAAOE,OAAP,uEAAiB,EAAjB;AAAA,aAAwB,KAAI,CAACkC,UAAL,CAAgBnC,IAAhB,EAAsB,EAAE,GAAGE,GAAL;AAAU,WAAGD;AAAb,OAAtB,CAAxB;AAAA,KAd4B;AAepCmC,IAAAA,SAAS,EAAE,kBAA4C;AAAA,UAArCC,OAAqC,uEAA3BvC,QAA2B;AAAA,UAAjBG,OAAiB,uEAAP,EAAO;AACrD,UAAI,CAACoC,OAAD,IAAY,OAAOA,OAAP,KAAmB,QAA/B,IAA2CA,OAAO,GAAGvC,QAAzD,EAAmE,MAAM,IAAIc,KAAJ,CAAU,mDAAV,CAAN;AAEnE,aAAO,EACL,IAAI,MAAM,KAAI,CAACoB,UAAL,CAAgBhC,IAAhB,EAAsB6B,CAAC,CAACnB,QAAF,CAAWI,GAAX,CAAeC,CAAC,IAAIA,CAAC,CAACuB,EAAtB,CAAtB,EAAiD,EAAE,GAAGpC,GAAL;AAAU,aAAGD,OAAb;AAAsBoC,UAAAA;AAAtB,SAAjD,CAAV,CADK;AAEL,YAAI,MAAM,KAAI,CAACJ,SAAL,CAAejC,IAAf,CAAV;AAFK,OAAP;AAID;AAtBmC,GAAjB,CAAd,CAAP;AAwBD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAeuC,KAAf,CAAsBvC,IAAtB,EAA4Bd,IAA5B,EAAkCe,OAAlC,EAA2C;AACzCb,EAAAA,eAAe,CAACY,IAAD,CAAf;AACA,QAAME,GAAG,GAAG,EAAE,GAAG,KAAKP,EAAL,CAAQQ,QAAb;AAAuB,OAAGF;AAA1B,GAAZ;AAEA,QAAMuC,UAAU,GAAGnD,iBAAiB,CAACW,IAAD,CAApC;;AACA,MAAIE,GAAG,CAACuC,OAAJ,KAAgB,KAAK9C,EAAL,CAAQQ,QAAR,CAAiBsC,OAAjC,IAA4CD,UAAU,CAACE,EAAX,CAAcxC,GAAG,CAACuC,OAAlB,CAAhD,EAA4E;AAC1E,UAAM,IAAI7B,KAAJ,CAAW,oBAAmBV,GAAG,CAACuC,OAAQ,kDAAiDD,UAAW,EAAtG,CAAN;AACD;;AACDtC,EAAAA,GAAG,CAACuC,OAAJ,GAAcvC,GAAG,CAACuC,OAAJ,KAAgB,KAAK9C,EAAL,CAAQQ,QAAR,CAAiBsC,OAAjC,GAA2CvC,GAAG,CAACuC,OAA/C,GAAyDD,UAAvE;AACA,QAAMG,OAAO,GAAG,MAAM,KAAKC,WAAL,CAAiB,EACrC,GAAG1C,GADkC;AAErCI,IAAAA,SAAS,EAAE,MAAM,KAAKC,OAAL,CAAaL,GAAb,CAFoB;AAGrC2C,IAAAA,QAAQ,EAAE3D,IAH2B;AAIrCc,IAAAA,IAAI,EAAEP,MAAM,CAACO,IAAD,EAAO,IAAP;AAJyB,GAAjB,CAAtB;AAOA,QAAM8C,MAAM,GAAG,MAAM,KAAKtC,IAAL,CAAUmC,OAAV,EAAmBzC,GAAnB,CAArB;;AACA,MAAI,CAACX,aAAa,CAACS,IAAD,CAAlB,EAA0B;AACxB,UAAM+C,SAAS,GAAG7C,GAAG,CAAC8C,SAAJ,GAAgB,MAAM,KAAKf,SAAL,CAAejC,IAAf,EAAqBE,GAArB,CAAtB,GAAkD,EAApE;AACA,WAAOc,MAAM,CAACe,MAAP,CAAce,MAAd,EAAsBC,SAAtB,CAAP;AACD;;AACD,SAAO,EAAE,GAAGD,MAAL;AAAaL,IAAAA,OAAO,EAAEvC,GAAG,CAACuC;AAA1B,GAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAeQ,QAAf,CAAyBjD,IAAzB,EAA6C;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AAC3Cb,EAAAA,eAAe,CAACY,IAAD,CAAf;AACA,QAAME,GAAG,GAAG,EAAE,GAAG,KAAKP,EAAL,CAAQQ,QAAb;AAAuB,OAAGF;AAA1B,GAAZ;;AACA,QAAMiD,KAAK,GAAGhE,IAAI,EAAlB;;AACA,QAAMiE,MAAM,GAAG,MAAM,KAAKA,MAAL,EAArB;AACA,QAAMC,YAAY,GAAGjE,cAAc,CAACa,IAAD,EAAOkD,KAAP,CAAnC;AAEA,QAAMG,UAAU,GAAG,MAAM,KAAKC,cAAL,CAAoB,EAC3C,GAAGpD,GADwC;AAE3CI,IAAAA,SAAS,EAAE,MAAM,KAAKC,OAAL,CAAaL,GAAb,CAF0B;AAG3CkD,IAAAA;AAH2C,GAApB,CAAzB;AAMA,QAAMN,MAAM,GAAG,MAAM,KAAKtC,IAAL,CAAU6C,UAAV,EAAsBnD,GAAtB,CAArB;AAEA,SAAOc,MAAM,CAACc,MAAP,CAAc,EACnB,GAAGgB,MADgB;AAEnBK,IAAAA,MAFmB;AAGnBZ,IAAAA,KAAK,EAAEtC,OAAO,IAAI,KAAKsD,SAAL,CAAevD,IAAf,EAAqBkD,KAArB,EAA4B,EAAE,GAAGjD,OAAL;AAAcuD,MAAAA,SAAS,EAAEtD,GAAG,CAACsD;AAA7B,KAA5B,CAHC;AAInBtE,IAAAA,IAAI,EAAEgE,KAJa;AAKnBE,IAAAA;AALmB,GAAd,CAAP;AAOD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAeK,GAAf,CAAoBzD,IAApB,EAA4D;AAAA,MAAlCyC,OAAkC,uEAAxB5C,QAAwB;AAAA,MAAdI,OAAc,uEAAJ,EAAI;AAC1D,SAAO,KAAKsD,SAAL,CAAevD,IAAf,EAAqB,CAArB,EAAwB,EAAE,GAAGC,OAAL;AAAcwC,IAAAA,OAAd;AAAuBiB,IAAAA,GAAG,EAAE;AAA5B,GAAxB,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,IAAI,GAAGhE,EAAE,CAACiE,OAAH,CAAW;AACtBC,EAAAA,OAAO,EAAE;AACP5B,IAAAA,SAAS,EAAEL,KADJ;AAEPkC,IAAAA,YAAY,EAAEb,QAFP;AAGPM,IAAAA,SAAS,EAAEhB,KAHJ;AAIPP,IAAAA,UAAU,EAAEvB,MAJL;AAKPyB,IAAAA,YAAY,EAAEV,QALP;AAMPW,IAAAA,UAAU,EAAEpC,MANL;AAOPgE,IAAAA,OAAO,EAAEN;AAPF,GADa;AAUtBO,EAAAA,SAAS,EAAE;AACTrE,IAAAA,EAAE,EAAE;AACFQ,MAAAA,QAAQ,EAAE;AACR8D,QAAAA,SAAS,EAAErE,UADH;AAERyC,QAAAA,OAAO,EAAEvC,QAFD;AAEW;AACnB2C,QAAAA,OAAO,EAAE5C;AAHD;AADR;AADK;AAVW,CAAX,CAAb;AAqBA,eAAe8D,IAAf","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 arguments or callData string
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* @return {Promise<Object>} Result object
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* @return {Promise<Object>} Result object
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 a contract.
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(params, name, { onAccount: current })
208
+ * const aensDelegationSig = await contract.createAensDelegationSignature(
209
+ * params, name, { onAccount: current }
210
+ * )
207
211
  */
208
212
 
209
213
 
@@ -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] verify - Verify transaction before broadcast, throw error if not valid
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, 'ak', opt),
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, 'ak', opt);
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);