@aeternity/aepp-sdk 10.0.0-beta.1 → 11.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -14
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +7 -27
- package/dist/aepp-sdk.browser-script.js.map +1 -1
- package/dist/aepp-sdk.browser.js +1 -1
- package/dist/aepp-sdk.browser.js.map +1 -1
- package/dist/aepp-sdk.js +1 -1
- package/dist/aepp-sdk.js.map +1 -1
- package/es/account/{base.js → base.mjs} +23 -11
- package/es/account/base.mjs.map +1 -0
- package/es/account/{memory.js → memory.mjs} +29 -14
- package/es/account/memory.mjs.map +1 -0
- package/es/account/{multiple.js → multiple.mjs} +14 -11
- package/es/account/multiple.mjs.map +1 -0
- package/es/ae/{aens.js → aens.mjs} +69 -59
- package/es/ae/aens.mjs.map +1 -0
- package/es/ae/{aepp.js → aepp.mjs} +9 -9
- package/es/ae/aepp.mjs.map +1 -0
- package/es/ae/contract.mjs +159 -0
- package/es/ae/contract.mjs.map +1 -0
- package/es/ae/{index.js → index.mjs} +12 -10
- package/es/ae/index.mjs.map +1 -0
- package/es/ae/{oracle.js → oracle.mjs} +37 -20
- package/es/ae/oracle.mjs.map +1 -0
- package/es/ae/{universal.js → universal.mjs} +10 -10
- package/es/ae/universal.mjs.map +1 -0
- package/es/ae/{wallet.js → wallet.mjs} +10 -10
- package/es/ae/wallet.mjs.map +1 -0
- package/es/aepp-wallet-communication/schema.d.ts +74 -0
- package/es/bignumber.d.ts +1 -7
- package/es/chain/{index.js → index.mjs} +28 -8
- package/es/chain/index.mjs.map +1 -0
- package/es/chain/{node.js → node.mjs} +133 -90
- package/es/chain/node.mjs.map +1 -0
- package/es/channel/{handlers.js → handlers.mjs} +18 -20
- package/es/channel/handlers.mjs.map +1 -0
- package/es/channel/{index.js → index.mjs} +43 -22
- package/es/channel/index.mjs.map +1 -0
- package/es/channel/{internal.js → internal.mjs} +51 -35
- package/es/channel/internal.mjs.map +1 -0
- package/es/contract/aci.mjs +477 -0
- package/es/contract/aci.mjs.map +1 -0
- package/es/contract/compiler.mjs +115 -0
- package/es/contract/compiler.mjs.map +1 -0
- package/es/contract/ga/helpers.mjs +30 -0
- package/es/contract/ga/helpers.mjs.map +1 -0
- package/es/contract/ga/{index.js → index.mjs} +40 -28
- package/es/contract/ga/index.mjs.map +1 -0
- package/es/encoder.d.ts +26 -0
- package/es/errors.d.ts +284 -0
- package/es/index.mjs +57 -0
- package/es/index.mjs.map +1 -0
- package/es/node-pool/{index.js → index.mjs} +15 -12
- package/es/node-pool/index.mjs.map +1 -0
- package/es/{node.js → node.mjs} +17 -11
- package/es/node.mjs.map +1 -0
- package/es/tx/builder/constants.mjs +108 -0
- package/es/tx/builder/constants.mjs.map +1 -0
- package/es/tx/builder/field-types.mjs +74 -0
- package/es/tx/builder/field-types.mjs.map +1 -0
- package/es/tx/builder/helpers.mjs +321 -0
- package/es/tx/builder/helpers.mjs.map +1 -0
- package/es/tx/builder/{index.js → index.mjs} +92 -74
- package/es/tx/builder/index.mjs.map +1 -0
- package/es/tx/builder/{schema.js → schema.mjs} +16 -172
- package/es/tx/builder/schema.mjs.map +1 -0
- package/es/tx/{index.js → index.mjs} +106 -14
- package/es/tx/index.mjs.map +1 -0
- package/es/tx/{tx-object.js → tx-object.mjs} +31 -18
- package/es/tx/tx-object.mjs.map +1 -0
- package/es/tx/{tx.js → tx.mjs} +15 -14
- package/es/tx/tx.mjs.map +1 -0
- package/es/tx/{validator.js → validator.mjs} +72 -33
- package/es/tx/validator.mjs.map +1 -0
- package/es/typings/blakejs/index.d.mjs +2 -0
- package/es/typings/blakejs/{index.d.js.map → index.d.mjs.map} +1 -1
- package/es/utils/aepp-wallet-communication/connection/{browser-runtime.js → browser-runtime.mjs} +10 -8
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/connection/{browser-window-message.js → browser-window-message.mjs} +25 -17
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/connection/{index.js → index.mjs} +7 -3
- package/es/utils/aepp-wallet-communication/connection/index.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{content-script-bridge.js → content-script-bridge.mjs} +15 -8
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{helpers.js → helpers.mjs} +3 -14
- package/es/utils/aepp-wallet-communication/helpers.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/{aepp-rpc.js → aepp-rpc.mjs} +126 -72
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/{rpc-client.js → rpc-client.mjs} +23 -14
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/{wallet-rpc.js → wallet-rpc.mjs} +116 -91
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/schema.mjs +102 -0
- package/es/utils/aepp-wallet-communication/schema.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{wallet-detector.js → wallet-detector.mjs} +6 -5
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
- package/es/utils/{amount-formatter.js → amount-formatter.mjs} +14 -7
- package/es/utils/amount-formatter.mjs.map +1 -0
- package/es/utils/{async-init.js → async-init.mjs} +8 -11
- package/es/utils/async-init.mjs.map +1 -0
- package/es/utils/{bignumber.js → bignumber.mjs} +2 -9
- package/es/utils/bignumber.mjs.map +1 -0
- package/es/utils/{bytes.js → bytes.mjs} +16 -8
- package/es/utils/bytes.mjs.map +1 -0
- package/es/utils/{crypto-ts.js → crypto-ts.mjs} +11 -3
- package/es/utils/crypto-ts.mjs.map +1 -0
- package/es/utils/{crypto.js → crypto.mjs} +42 -156
- package/es/utils/crypto.mjs.map +1 -0
- package/es/utils/encoder.mjs +106 -0
- package/es/utils/encoder.mjs.map +1 -0
- package/es/utils/errors.mjs +689 -0
- package/es/utils/errors.mjs.map +1 -0
- package/es/utils/{hd-wallet.js → hd-wallet.mjs} +33 -34
- package/es/utils/hd-wallet.mjs.map +1 -0
- package/es/utils/{json-big.js → json-big.mjs} +1 -1
- package/es/utils/{json-big.js.map → json-big.mjs.map} +1 -1
- package/es/utils/{keystore.js → keystore.mjs} +63 -51
- package/es/utils/keystore.mjs.map +1 -0
- package/es/utils/{mptree.js → mptree.mjs} +21 -12
- package/es/utils/mptree.mjs.map +1 -0
- package/es/utils/{other.js → other.mjs} +2 -2
- package/es/utils/other.mjs.map +1 -0
- package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
- package/es/utils/{semver-satisfies.js.map → semver-satisfies.mjs.map} +1 -1
- package/es/utils/{string.js → string.mjs} +1 -1
- package/es/utils/{string.js.map → string.mjs.map} +1 -1
- package/es/utils/{swagger.js → swagger.mjs} +49 -15
- package/es/utils/swagger.mjs.map +1 -0
- package/package.json +49 -58
- package/src/account/base.js +3 -1
- package/src/account/memory.js +13 -8
- package/src/account/multiple.js +16 -6
- package/src/ae/aens.js +52 -58
- package/src/ae/aepp.js +2 -2
- package/src/ae/contract.js +21 -154
- package/src/ae/index.js +6 -4
- package/src/ae/oracle.js +33 -14
- package/src/ae/universal.js +4 -2
- package/src/ae/wallet.js +2 -2
- package/src/chain/index.js +29 -6
- package/src/chain/node.js +95 -65
- package/src/channel/handlers.js +30 -20
- package/src/channel/index.js +46 -16
- package/src/channel/internal.js +35 -30
- package/src/contract/aci.js +376 -0
- package/src/contract/compiler.js +22 -113
- package/src/contract/ga/helpers.js +10 -6
- package/src/contract/ga/index.js +31 -24
- package/src/index.js +9 -8
- package/src/node-pool/index.js +13 -10
- package/src/node.js +11 -10
- package/src/tx/builder/constants.js +100 -0
- package/src/tx/builder/field-types.js +61 -0
- package/src/tx/builder/helpers.js +99 -103
- package/src/tx/builder/index.js +81 -40
- package/src/tx/builder/schema.js +44 -132
- package/src/tx/index.js +101 -12
- package/src/tx/tx-object.js +35 -15
- package/src/tx/tx.js +110 -35
- package/src/tx/validator.js +25 -5
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +11 -5
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +35 -13
- package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +14 -7
- package/src/utils/aepp-wallet-communication/helpers.js +6 -14
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +106 -57
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +24 -11
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +95 -53
- package/src/utils/aepp-wallet-communication/schema.ts +80 -0
- package/src/utils/aepp-wallet-communication/wallet-detector.js +6 -2
- package/src/utils/amount-formatter.ts +4 -3
- package/src/utils/async-init.js +10 -6
- package/src/utils/bignumber.ts +1 -9
- package/src/utils/bytes.ts +3 -2
- package/src/utils/crypto-ts.ts +2 -2
- package/src/utils/crypto.js +11 -155
- package/src/utils/encoder.ts +101 -0
- package/src/utils/errors.ts +683 -0
- package/src/utils/hd-wallet.js +11 -26
- package/src/utils/keystore.js +57 -53
- package/src/utils/mptree.ts +12 -6
- package/src/utils/swagger.js +68 -45
- package/es/account/base.js.map +0 -1
- package/es/account/memory.js.map +0 -1
- package/es/account/multiple.js.map +0 -1
- package/es/ae/aens.js.map +0 -1
- package/es/ae/aepp.js.map +0 -1
- package/es/ae/contract.js +0 -308
- package/es/ae/contract.js.map +0 -1
- package/es/ae/index.js.map +0 -1
- package/es/ae/oracle.js.map +0 -1
- package/es/ae/universal.js.map +0 -1
- package/es/ae/wallet.js.map +0 -1
- package/es/chain/index.js.map +0 -1
- package/es/chain/node.js.map +0 -1
- package/es/channel/handlers.js.map +0 -1
- package/es/channel/index.js.map +0 -1
- package/es/channel/internal.js.map +0 -1
- package/es/contract/aci/helpers.js +0 -298
- package/es/contract/aci/helpers.js.map +0 -1
- package/es/contract/aci/index.js +0 -356
- package/es/contract/aci/index.js.map +0 -1
- package/es/contract/aci/transformation.js +0 -66
- package/es/contract/aci/transformation.js.map +0 -1
- package/es/contract/compiler.js +0 -242
- package/es/contract/compiler.js.map +0 -1
- package/es/contract/ga/helpers.js +0 -22
- package/es/contract/ga/helpers.js.map +0 -1
- package/es/contract/ga/index.js.map +0 -1
- package/es/contract/index.js +0 -158
- package/es/contract/index.js.map +0 -1
- package/es/index.js +0 -56
- package/es/index.js.map +0 -1
- package/es/node-pool/index.js.map +0 -1
- package/es/node.js.map +0 -1
- package/es/tx/builder/helpers.js +0 -318
- package/es/tx/builder/helpers.js.map +0 -1
- package/es/tx/builder/index.js.map +0 -1
- package/es/tx/builder/schema.js.map +0 -1
- package/es/tx/index.js.map +0 -1
- package/es/tx/tx-object.js.map +0 -1
- package/es/tx/tx.js.map +0 -1
- package/es/tx/validator.js.map +0 -1
- package/es/typings/blakejs/index.d.js +0 -2
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
- package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
- package/es/utils/aepp-wallet-communication/schema.js +0 -107
- package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
- package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
- package/es/utils/amount-formatter.js.map +0 -1
- package/es/utils/async-init.js.map +0 -1
- package/es/utils/bignumber.js.map +0 -1
- package/es/utils/bytes.js.map +0 -1
- package/es/utils/crypto-ts.js.map +0 -1
- package/es/utils/crypto.js.map +0 -1
- package/es/utils/hd-wallet.js.map +0 -1
- package/es/utils/keystore.js.map +0 -1
- package/es/utils/mptree.js.map +0 -1
- package/es/utils/other.js.map +0 -1
- package/es/utils/swagger.js.map +0 -1
- package/src/contract/aci/index.js +0 -310
- package/src/contract/aci/transformation.js +0 -72
- package/src/contract/index.js +0 -159
- package/src/utils/aepp-wallet-communication/schema.js +0 -108
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import _buffer from "buffer";
|
|
2
|
+
const {
|
|
3
|
+
Buffer: _Buffer
|
|
4
|
+
} = _buffer;
|
|
5
|
+
|
|
1
6
|
/*
|
|
2
7
|
* ISC License (ISC)
|
|
3
8
|
* Copyright (c) 2018 aeternity developers
|
|
@@ -22,12 +27,15 @@
|
|
|
22
27
|
* @export isAccountBase
|
|
23
28
|
*/
|
|
24
29
|
import stampit from '@stamp/it';
|
|
25
|
-
import
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
30
|
+
import _stampRequired from '@stamp/required';
|
|
31
|
+
const {
|
|
32
|
+
required
|
|
33
|
+
} = _stampRequired;
|
|
34
|
+
import { messageToHash, verifyMessage as verifyMessageCrypto, hash } from "../utils/crypto.mjs";
|
|
35
|
+
import { buildTx } from "../tx/builder/index.mjs";
|
|
36
|
+
import { decode } from "../tx/builder/helpers.mjs";
|
|
37
|
+
import { TX_TYPE } from "../tx/builder/schema.mjs";
|
|
38
|
+
import { getNetworkId } from "../node.mjs";
|
|
31
39
|
/**
|
|
32
40
|
* Check is provided object looks like an instance of AccountBase
|
|
33
41
|
* @rtype (Object) => Boolean
|
|
@@ -52,7 +60,9 @@ async function signTransaction(tx) {
|
|
|
52
60
|
const prefixes = [this.getNetworkId(opt)];
|
|
53
61
|
if (opt.innerTx) prefixes.push('inner_tx');
|
|
54
62
|
const rlpBinaryTx = decode(tx, 'tx');
|
|
55
|
-
|
|
63
|
+
|
|
64
|
+
const txWithNetworkId = _Buffer.concat([_Buffer.from(prefixes.join('-')), hash(rlpBinaryTx)]);
|
|
65
|
+
|
|
56
66
|
const signatures = [await this.sign(txWithNetworkId, opt)];
|
|
57
67
|
return buildTx({
|
|
58
68
|
encodedTx: rlpBinaryTx,
|
|
@@ -84,13 +94,15 @@ async function signMessage(message) {
|
|
|
84
94
|
returnHex: false
|
|
85
95
|
};
|
|
86
96
|
const sig = await this.sign(messageToHash(message), opt);
|
|
87
|
-
return opt.returnHex ?
|
|
97
|
+
return opt.returnHex ? _Buffer.from(sig).toString('hex') : sig;
|
|
88
98
|
}
|
|
89
99
|
/**
|
|
90
100
|
* Verify message
|
|
91
101
|
* @instance
|
|
92
102
|
* @category async
|
|
93
|
-
* @rtype (
|
|
103
|
+
* @rtype (
|
|
104
|
+
* msg: String, signature: String, publicKey: String
|
|
105
|
+
* ) => signature: Promise[String], throws: Error
|
|
94
106
|
* @param {String} message - Message to verify
|
|
95
107
|
* @param {String} signature - Signature
|
|
96
108
|
* @param {Object} opt - Options
|
|
@@ -100,7 +112,7 @@ async function signMessage(message) {
|
|
|
100
112
|
|
|
101
113
|
async function verifyMessage(message, signature) {
|
|
102
114
|
let opt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
103
|
-
return verifyMessageCrypto(message, typeof signature === 'string' ?
|
|
115
|
+
return verifyMessageCrypto(message, typeof signature === 'string' ? _Buffer.from(signature, 'hex') : signature, decode(await this.address(opt)));
|
|
104
116
|
}
|
|
105
117
|
/**
|
|
106
118
|
* AccountBase Stamp
|
|
@@ -164,4 +176,4 @@ export default stampit({
|
|
|
164
176
|
* @rtype () => address: Promise[String]
|
|
165
177
|
* @return {String} Public account address
|
|
166
178
|
*/
|
|
167
|
-
//# sourceMappingURL=base.
|
|
179
|
+
//# sourceMappingURL=base.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/account/base.js"],"names":["stampit","messageToHash","verifyMessage","verifyMessageCrypto","hash","buildTx","decode","TX_TYPE","getNetworkId","isAccountBase","acc","find","f","signTransaction","tx","opt","prefixes","innerTx","push","rlpBinaryTx","txWithNetworkId","concat","from","join","signatures","sign","encodedTx","signed","signMessage","message","returnHex","sig","toString","signature","address","init","networkId","methods","required"],"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.mjs"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import _buffer from "buffer";
|
|
2
|
+
const {
|
|
3
|
+
Buffer: _Buffer
|
|
4
|
+
} = _buffer;
|
|
5
|
+
|
|
1
6
|
/*
|
|
2
7
|
* ISC License (ISC)
|
|
3
8
|
* Copyright (c) 2018 aeternity developers
|
|
@@ -21,10 +26,11 @@
|
|
|
21
26
|
* @export MemoryAccount
|
|
22
27
|
* @example import { MemoryAccount } from '@aeternity/aepp-sdk'
|
|
23
28
|
*/
|
|
24
|
-
import AccountBase from
|
|
25
|
-
import { sign,
|
|
26
|
-
import { isHex } from
|
|
27
|
-
import { decode } from
|
|
29
|
+
import AccountBase from "./base.mjs";
|
|
30
|
+
import { sign, isValidKeypair } from "../utils/crypto.mjs";
|
|
31
|
+
import { isHex } from "../utils/string.mjs";
|
|
32
|
+
import { decode } from "../tx/builder/helpers.mjs";
|
|
33
|
+
import { InvalidKeypairError } from "../utils/errors.mjs";
|
|
28
34
|
const secrets = new WeakMap();
|
|
29
35
|
/**
|
|
30
36
|
* In-memory account stamp
|
|
@@ -47,21 +53,30 @@ export default AccountBase.compose({
|
|
|
47
53
|
this.isGa = !!gaId;
|
|
48
54
|
|
|
49
55
|
if (gaId) {
|
|
50
|
-
|
|
56
|
+
decode(gaId);
|
|
51
57
|
secrets.set(this, {
|
|
52
58
|
publicKey: gaId
|
|
53
59
|
});
|
|
54
60
|
return;
|
|
55
61
|
}
|
|
56
62
|
|
|
57
|
-
if (!keypair || typeof keypair !== 'object') throw new
|
|
58
|
-
|
|
59
|
-
if (
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
if (!keypair || typeof keypair !== 'object') throw new InvalidKeypairError('KeyPair must be an object');
|
|
64
|
+
|
|
65
|
+
if (!keypair.secretKey || !keypair.publicKey) {
|
|
66
|
+
throw new InvalidKeypairError('KeyPair must must have "secretKey", "publicKey" properties');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (typeof keypair.publicKey !== 'string' || keypair.publicKey.indexOf('ak_') === -1) {
|
|
70
|
+
throw new InvalidKeypairError('Public Key must be a base58c string with "ak_" prefix');
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (!_Buffer.isBuffer(keypair.secretKey) && typeof keypair.secretKey === 'string' && !isHex(keypair.secretKey)) throw new InvalidKeypairError('Secret key must be hex string or Buffer');
|
|
74
|
+
|
|
75
|
+
const pubBuffer = _Buffer.from(decode(keypair.publicKey, 'ak'));
|
|
76
|
+
|
|
77
|
+
if (!isValidKeypair(_Buffer.from(keypair.secretKey, 'hex'), pubBuffer)) throw new InvalidKeypairError('Invalid Key Pair');
|
|
63
78
|
secrets.set(this, {
|
|
64
|
-
secretKey:
|
|
79
|
+
secretKey: _Buffer.isBuffer(keypair.secretKey) ? keypair.secretKey : _Buffer.from(keypair.secretKey, 'hex'),
|
|
65
80
|
publicKey: keypair.publicKey
|
|
66
81
|
});
|
|
67
82
|
},
|
|
@@ -71,7 +86,7 @@ export default AccountBase.compose({
|
|
|
71
86
|
},
|
|
72
87
|
methods: {
|
|
73
88
|
sign(data) {
|
|
74
|
-
if (this.isGa) throw new
|
|
89
|
+
if (this.isGa) throw new InvalidKeypairError('You are trying to sign data using generalized account without keypair');
|
|
75
90
|
return Promise.resolve(sign(data, secrets.get(this).secretKey));
|
|
76
91
|
},
|
|
77
92
|
|
|
@@ -81,4 +96,4 @@ export default AccountBase.compose({
|
|
|
81
96
|
|
|
82
97
|
}
|
|
83
98
|
});
|
|
84
|
-
//# sourceMappingURL=memory.
|
|
99
|
+
//# sourceMappingURL=memory.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/account/memory.js"],"names":["AccountBase","sign","isValidKeypair","isHex","decode","InvalidKeypairError","secrets","WeakMap","compose","init","keypair","gaId","isGa","set","publicKey","secretKey","indexOf","isBuffer","pubBuffer","from","props","methods","data","Promise","resolve","get","address"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;OAEOA,W;SACEC,I,EAAMC,c;SACNC,K;SACAC,M;SACAC,mB;AAET,MAAMC,OAAO,GAAG,IAAIC,OAAJ,EAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAeP,WAAW,CAACQ,OAAZ,CAAoB;AACjCC,EAAAA,IAAI,OAAqB;AAAA,QAAnB;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX,KAAmB;AACvB,SAAKC,IAAL,GAAY,CAAC,CAACD,IAAd;;AACA,QAAIA,IAAJ,EAAU;AACRP,MAAAA,MAAM,CAACO,IAAD,CAAN;AACAL,MAAAA,OAAO,CAACO,GAAR,CAAY,IAAZ,EAAkB;AAAEC,QAAAA,SAAS,EAAEH;AAAb,OAAlB;AACA;AACD;;AAED,QAAI,CAACD,OAAD,IAAY,OAAOA,OAAP,KAAmB,QAAnC,EAA6C,MAAM,IAAIL,mBAAJ,CAAwB,2BAAxB,CAAN;;AAC7C,QAAI,CAACK,OAAO,CAACK,SAAT,IAAsB,CAACL,OAAO,CAACI,SAAnC,EAA8C;AAC5C,YAAM,IAAIT,mBAAJ,CAAwB,4DAAxB,CAAN;AACD;;AACD,QAAI,OAAOK,OAAO,CAACI,SAAf,KAA6B,QAA7B,IAAyCJ,OAAO,CAACI,SAAR,CAAkBE,OAAlB,CAA0B,KAA1B,MAAqC,CAAC,CAAnF,EAAsF;AACpF,YAAM,IAAIX,mBAAJ,CAAwB,uDAAxB,CAAN;AACD;;AACD,QACE,CAAC,QAAOY,QAAP,CAAgBP,OAAO,CAACK,SAAxB,CAAD,IACC,OAAOL,OAAO,CAACK,SAAf,KAA6B,QAA7B,IAAyC,CAACZ,KAAK,CAACO,OAAO,CAACK,SAAT,CAFlD,EAGE,MAAM,IAAIV,mBAAJ,CAAwB,yCAAxB,CAAN;;AAEF,UAAMa,SAAS,GAAG,QAAOC,IAAP,CAAYf,MAAM,CAACM,OAAO,CAACI,SAAT,EAAoB,IAApB,CAAlB,CAAlB;;AACA,QAAI,CAACZ,cAAc,CAAC,QAAOiB,IAAP,CAAYT,OAAO,CAACK,SAApB,EAA+B,KAA/B,CAAD,EAAwCG,SAAxC,CAAnB,EAAuE,MAAM,IAAIb,mBAAJ,CAAwB,kBAAxB,CAAN;AAEvEC,IAAAA,OAAO,CAACO,GAAR,CAAY,IAAZ,EAAkB;AAChBE,MAAAA,SAAS,EAAE,QAAOE,QAAP,CAAgBP,OAAO,CAACK,SAAxB,IAAqCL,OAAO,CAACK,SAA7C,GAAyD,QAAOI,IAAP,CAAYT,OAAO,CAACK,SAApB,EAA+B,KAA/B,CADpD;AAEhBD,MAAAA,SAAS,EAAEJ,OAAO,CAACI;AAFH,KAAlB;AAID,GA5BgC;;AA6BjCM,EAAAA,KAAK,EAAE;AAAER,IAAAA,IAAI,EAAE;AAAR,GA7B0B;AA8BjCS,EAAAA,OAAO,EAAE;AACPpB,IAAAA,IAAI,CAAEqB,IAAF,EAAQ;AACV,UAAI,KAAKV,IAAT,EAAe,MAAM,IAAIP,mBAAJ,CAAwB,uEAAxB,CAAN;AACf,aAAOkB,OAAO,CAACC,OAAR,CAAgBvB,IAAI,CAACqB,IAAD,EAAOhB,OAAO,CAACmB,GAAR,CAAY,IAAZ,EAAkBV,SAAzB,CAApB,CAAP;AACD,KAJM;;AAKPW,IAAAA,OAAO,GAAI;AACT,aAAOH,OAAO,CAACC,OAAR,CAAgBlB,OAAO,CAACmB,GAAR,CAAY,IAAZ,EAAkBX,SAAlC,CAAP;AACD;;AAPM;AA9BwB,CAApB,CAAf","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Memory Account module\n * @module @aeternity/aepp-sdk/es/account/memory\n * @export MemoryAccount\n * @example import { MemoryAccount } from '@aeternity/aepp-sdk'\n */\n\nimport AccountBase from './base'\nimport { sign, isValidKeypair } from '../utils/crypto'\nimport { isHex } from '../utils/string'\nimport { decode } from '../tx/builder/helpers'\nimport { InvalidKeypairError } from '../utils/errors'\n\nconst secrets = new WeakMap()\n\n/**\n * In-memory account stamp\n * @function\n * @alias module:@aeternity/aepp-sdk/es/account/memory\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Object} options.keypair - Key pair to use\n * @param {String} options.keypair.publicKey - Public key\n * @param {String} options.keypair.secretKey - Private key\n * @return {Account}\n */\nexport default AccountBase.compose({\n init ({ keypair, gaId }) {\n this.isGa = !!gaId\n if (gaId) {\n decode(gaId)\n secrets.set(this, { publicKey: gaId })\n return\n }\n\n if (!keypair || typeof keypair !== 'object') throw new InvalidKeypairError('KeyPair must be an object')\n if (!keypair.secretKey || !keypair.publicKey) {\n throw new InvalidKeypairError('KeyPair must must have \"secretKey\", \"publicKey\" properties')\n }\n if (typeof keypair.publicKey !== 'string' || keypair.publicKey.indexOf('ak_') === -1) {\n throw new InvalidKeypairError('Public Key must be a base58c string with \"ak_\" prefix')\n }\n if (\n !Buffer.isBuffer(keypair.secretKey) &&\n (typeof keypair.secretKey === 'string' && !isHex(keypair.secretKey))\n ) throw new InvalidKeypairError('Secret key must be hex string or Buffer')\n\n const pubBuffer = Buffer.from(decode(keypair.publicKey, 'ak'))\n if (!isValidKeypair(Buffer.from(keypair.secretKey, 'hex'), pubBuffer)) throw new InvalidKeypairError('Invalid Key Pair')\n\n secrets.set(this, {\n secretKey: Buffer.isBuffer(keypair.secretKey) ? keypair.secretKey : Buffer.from(keypair.secretKey, 'hex'),\n publicKey: keypair.publicKey\n })\n },\n props: { isGa: false },\n methods: {\n sign (data) {\n if (this.isGa) throw new InvalidKeypairError('You are trying to sign data using generalized account without keypair')\n return Promise.resolve(sign(data, secrets.get(this).secretKey))\n },\n address () {\n return Promise.resolve(secrets.get(this).publicKey)\n }\n }\n})\n"],"file":"memory.mjs"}
|
|
@@ -20,10 +20,11 @@
|
|
|
20
20
|
* @module @aeternity/aepp-sdk/es/accounts/multiple
|
|
21
21
|
* @export AccountMultiple
|
|
22
22
|
*/
|
|
23
|
-
import AsyncInit from
|
|
24
|
-
import MemoryAccount from
|
|
25
|
-
import { decode } from
|
|
26
|
-
import AccountBase, { isAccountBase } from
|
|
23
|
+
import AsyncInit from "../utils/async-init.mjs";
|
|
24
|
+
import MemoryAccount from "./memory.mjs";
|
|
25
|
+
import { decode } from "../tx/builder/helpers.mjs";
|
|
26
|
+
import AccountBase, { isAccountBase } from "./base.mjs";
|
|
27
|
+
import { UnavailableAccountError, TypeError } from "../utils/errors.mjs";
|
|
27
28
|
/**
|
|
28
29
|
* AccountMultiple stamp
|
|
29
30
|
*
|
|
@@ -39,7 +40,9 @@ import AccountBase, { isAccountBase } from './base';
|
|
|
39
40
|
* @param {String} [options.address] - Address of account to select
|
|
40
41
|
* @return {Object} AccountMultiple instance
|
|
41
42
|
* @example
|
|
42
|
-
* const accounts = await AccountMultiple({
|
|
43
|
+
* const accounts = await AccountMultiple({
|
|
44
|
+
* accounts: [MemoryAccount({ keypair: 'keypair_object' })]
|
|
45
|
+
* })
|
|
43
46
|
* await accounts.addAccount(account, { select: true }) // Add account and make it selected
|
|
44
47
|
* accounts.removeAccount(address) // Remove account
|
|
45
48
|
* accounts.selectAccount(address) // Select account
|
|
@@ -140,24 +143,24 @@ export default AccountBase.compose(AsyncInit, {
|
|
|
140
143
|
*/
|
|
141
144
|
selectAccount(address) {
|
|
142
145
|
decode(address, 'ak');
|
|
143
|
-
if (!this.accounts[address]) throw new
|
|
146
|
+
if (!this.accounts[address]) throw new UnavailableAccountError(address);
|
|
144
147
|
this.selectedAddress = address;
|
|
145
148
|
},
|
|
146
149
|
|
|
147
150
|
/**
|
|
148
151
|
* Resolves an account
|
|
149
|
-
* @param account
|
|
152
|
+
* @param account account address (should exist in sdk instance), MemoryAccount or keypair
|
|
150
153
|
* @returns {AccountBase}
|
|
151
154
|
* @private
|
|
152
155
|
*/
|
|
153
156
|
_resolveAccount(account) {
|
|
154
157
|
if (account === null) {
|
|
155
|
-
throw new
|
|
158
|
+
throw new TypeError('Account should be an address (ak-prefixed string), ' + 'keypair, or instance of account base, got null instead');
|
|
156
159
|
} else {
|
|
157
160
|
switch (typeof account) {
|
|
158
161
|
case 'string':
|
|
159
162
|
decode(account, 'ak');
|
|
160
|
-
if (!this.accounts[account]) throw new
|
|
163
|
+
if (!this.accounts[account]) throw new UnavailableAccountError(account);
|
|
161
164
|
return this.accounts[account];
|
|
162
165
|
|
|
163
166
|
case 'object':
|
|
@@ -166,11 +169,11 @@ export default AccountBase.compose(AsyncInit, {
|
|
|
166
169
|
});
|
|
167
170
|
|
|
168
171
|
default:
|
|
169
|
-
throw new
|
|
172
|
+
throw new TypeError('Account should be an address (ak-prefixed string), ' + `keypair, or instance of account base, got ${account} instead`);
|
|
170
173
|
}
|
|
171
174
|
}
|
|
172
175
|
}
|
|
173
176
|
|
|
174
177
|
}
|
|
175
178
|
});
|
|
176
|
-
//# sourceMappingURL=multiple.
|
|
179
|
+
//# sourceMappingURL=multiple.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/account/multiple.js"],"names":["AsyncInit","MemoryAccount","decode","AccountBase","isAccountBase","UnavailableAccountError","TypeError","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","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'\nimport {\n UnavailableAccountError,\n TypeError\n} from '../utils/errors'\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 UnavailableAccountError(address)\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 TypeError(\n 'Account should be an address (ak-prefixed string), ' +\n 'keypair, or instance of account base, got null instead')\n } else {\n switch (typeof account) {\n case 'string':\n decode(account, 'ak')\n if (!this.accounts[account]) throw new UnavailableAccountError(account)\n return this.accounts[account]\n case 'object':\n return isAccountBase(account) ? account : MemoryAccount({ keypair: account })\n default:\n throw new TypeError(\n 'Account should be an address (ak-prefixed string), ' +\n `keypair, or instance of account base, got ${account} instead`)\n }\n }\n }\n }\n})\n"],"file":"multiple.mjs"}
|
|
@@ -25,10 +25,11 @@
|
|
|
25
25
|
* @export Aens
|
|
26
26
|
* @example import { Aens } from '@aeternity/aepp-sdk'
|
|
27
27
|
*/
|
|
28
|
-
import { salt } from
|
|
29
|
-
import { commitmentHash, ensureNameValid,
|
|
30
|
-
import Ae from
|
|
31
|
-
import { CLIENT_TTL,
|
|
28
|
+
import { salt } from "../utils/crypto.mjs";
|
|
29
|
+
import { commitmentHash, ensureNameValid, isAuctionName } from "../tx/builder/helpers.mjs";
|
|
30
|
+
import Ae from "./index.mjs";
|
|
31
|
+
import { CLIENT_TTL, NAME_TTL } from "../tx/builder/schema.mjs";
|
|
32
|
+
import { ArgumentError } from "../utils/errors.mjs";
|
|
32
33
|
/**
|
|
33
34
|
* Revoke a name
|
|
34
35
|
* @instance
|
|
@@ -37,11 +38,11 @@ import { CLIENT_TTL, NAME_FEE, NAME_TTL } from '../tx/builder/schema';
|
|
|
37
38
|
* @category async
|
|
38
39
|
* @param {String} name Name hash
|
|
39
40
|
* @param {Object} [options={}] options
|
|
40
|
-
* @param {
|
|
41
|
-
* using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
42
|
-
* @param {
|
|
43
|
-
* @param {
|
|
44
|
-
* @param {
|
|
41
|
+
* @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
|
|
42
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
43
|
+
* @param {Number|String|BigNumber} [options.fee] fee
|
|
44
|
+
* @param {Number|String|BigNumber} [options.ttl] ttl
|
|
45
|
+
* @param {Number|String|BigNumber} [options.nonce] nonce
|
|
45
46
|
* @return {Promise<Object>} Transaction result
|
|
46
47
|
* @example
|
|
47
48
|
* const name = 'test.chain'
|
|
@@ -59,7 +60,7 @@ async function revoke(name) {
|
|
|
59
60
|
...options
|
|
60
61
|
};
|
|
61
62
|
const nameRevokeTx = await this.nameRevokeTx({ ...opt,
|
|
62
|
-
nameId:
|
|
63
|
+
nameId: name,
|
|
63
64
|
accountId: await this.address(opt)
|
|
64
65
|
});
|
|
65
66
|
return this.send(nameRevokeTx, opt);
|
|
@@ -71,16 +72,19 @@ async function revoke(name) {
|
|
|
71
72
|
* @category async
|
|
72
73
|
* @alias module:@aeternity/aepp-sdk/es/ae/aens
|
|
73
74
|
* @param {String} name AENS name
|
|
74
|
-
* @param {
|
|
75
|
+
* @param {Object.<string, string>} pointers Map of pointer keys to corresponding addresses
|
|
75
76
|
* @param {Object} [options={}]
|
|
76
|
-
* @param {Boolean} [options.extendPointers
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
* @param {
|
|
81
|
-
* @param {
|
|
82
|
-
* @param {
|
|
83
|
-
* @param {
|
|
77
|
+
* @param {Boolean} [options.extendPointers] Get the pointers from the node and merge with provided
|
|
78
|
+
* ones. Pointers with the same type will be overwritten
|
|
79
|
+
* @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you
|
|
80
|
+
* pass publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
81
|
+
* @param {Number|String|BigNumber} [options.fee] fee
|
|
82
|
+
* @param {Number|String|BigNumber} [options.ttl] ttl
|
|
83
|
+
* @param {Number|String|BigNumber} [options.nonce] nonce
|
|
84
|
+
* @param {Number|String|BigNumber} [options.nameTtl=50000] Name ttl represented in number of
|
|
85
|
+
* blocks (Max value is 50000 blocks)
|
|
86
|
+
* @param {Number|String|BigNumber} [options.clientTtl=84600] a suggestion as to how long any
|
|
87
|
+
* clients should cache this information
|
|
84
88
|
* @return {Promise<Object>}
|
|
85
89
|
* @throws Invalid pointer array error
|
|
86
90
|
* @example
|
|
@@ -90,25 +94,36 @@ async function revoke(name) {
|
|
|
90
94
|
*
|
|
91
95
|
* await sdkInstance.aensUpdate(name, pointersArray, { nameTtl, ttl, fee, nonce, clientTtl })
|
|
92
96
|
* // or
|
|
93
|
-
* await nameObject.update(
|
|
97
|
+
* await nameObject.update(pointers, { nameTtl, ttl, fee, nonce, clientTtl })
|
|
94
98
|
*/
|
|
95
99
|
|
|
96
100
|
|
|
97
101
|
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
|
-
};
|
|
102
|
+
let pointers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
103
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
102
104
|
ensureNameValid(name);
|
|
103
105
|
const opt = { ...this.Ae.defaults,
|
|
104
106
|
...options
|
|
105
107
|
};
|
|
106
|
-
|
|
107
|
-
|
|
108
|
+
const allPointers = { ...(options.extendPointers && Object.fromEntries((await this.getName(name)).pointers.map(_ref => {
|
|
109
|
+
let {
|
|
110
|
+
key,
|
|
111
|
+
id
|
|
112
|
+
} = _ref;
|
|
113
|
+
return [key, id];
|
|
114
|
+
}))),
|
|
115
|
+
...pointers
|
|
116
|
+
};
|
|
108
117
|
const nameUpdateTx = await this.nameUpdateTx({ ...opt,
|
|
109
|
-
nameId:
|
|
118
|
+
nameId: name,
|
|
110
119
|
accountId: await this.address(opt),
|
|
111
|
-
pointers
|
|
120
|
+
pointers: Object.entries(allPointers).map(_ref2 => {
|
|
121
|
+
let [key, id] = _ref2;
|
|
122
|
+
return {
|
|
123
|
+
key,
|
|
124
|
+
id
|
|
125
|
+
};
|
|
126
|
+
})
|
|
112
127
|
});
|
|
113
128
|
return this.send(nameUpdateTx, opt);
|
|
114
129
|
}
|
|
@@ -121,11 +136,11 @@ async function update(name) {
|
|
|
121
136
|
* @param {String} name AENS name
|
|
122
137
|
* @param {String} account Recipient account publick key
|
|
123
138
|
* @param {Object} [options={}]
|
|
124
|
-
* @param {
|
|
125
|
-
* using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
126
|
-
* @param {
|
|
127
|
-
* @param {
|
|
128
|
-
* @param {
|
|
139
|
+
* @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
|
|
140
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
141
|
+
* @param {Number|String|BigNumber} [options.fee] fee
|
|
142
|
+
* @param {Number|String|BigNumber} [options.ttl] ttl
|
|
143
|
+
* @param {Number|String|BigNumber} [options.nonce] nonce
|
|
129
144
|
* @return {Promise<Object>} Transaction result
|
|
130
145
|
* @example
|
|
131
146
|
* const name = 'test.chain'
|
|
@@ -145,7 +160,7 @@ async function transfer(name, account) {
|
|
|
145
160
|
...options
|
|
146
161
|
};
|
|
147
162
|
const nameTransferTx = await this.nameTransferTx({ ...opt,
|
|
148
|
-
nameId:
|
|
163
|
+
nameId: name,
|
|
149
164
|
accountId: await this.address(opt),
|
|
150
165
|
recipientId: account
|
|
151
166
|
});
|
|
@@ -183,8 +198,7 @@ async function query(name) {
|
|
|
183
198
|
const o = await this.getName(name);
|
|
184
199
|
return Object.freeze(Object.assign(o, {
|
|
185
200
|
pointers: o.pointers || [],
|
|
186
|
-
update: async function () {
|
|
187
|
-
let pointers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
201
|
+
update: async function (pointers) {
|
|
188
202
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
189
203
|
return { ...(await _this.aensUpdate(name, pointers, { ...opt,
|
|
190
204
|
...options
|
|
@@ -209,10 +223,15 @@ async function query(name) {
|
|
|
209
223
|
extendTtl: async function () {
|
|
210
224
|
let nameTtl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NAME_TTL;
|
|
211
225
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
212
|
-
|
|
213
|
-
|
|
226
|
+
|
|
227
|
+
if (typeof nameTtl !== 'number' || nameTtl > NAME_TTL || nameTtl <= 0) {
|
|
228
|
+
throw new ArgumentError('nameTtl', `a number between 1 and ${NAME_TTL} blocks`, nameTtl);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
return { ...(await _this.aensUpdate(name, {}, { ...opt,
|
|
214
232
|
...options,
|
|
215
|
-
nameTtl
|
|
233
|
+
nameTtl,
|
|
234
|
+
extendPointers: true
|
|
216
235
|
})),
|
|
217
236
|
...(await _this.aensQuery(name))
|
|
218
237
|
};
|
|
@@ -229,8 +248,8 @@ async function query(name) {
|
|
|
229
248
|
* @param {String} name
|
|
230
249
|
* @param {Number} salt Salt from pre-claim, or 0 if it's a bid
|
|
231
250
|
* @param {Object} [options] options
|
|
232
|
-
* @param {String|Object} [options.onAccount]
|
|
233
|
-
* using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
251
|
+
* @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
|
|
252
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
234
253
|
* @param {Number|String|BigNumber} [options.fee] fee
|
|
235
254
|
* @param {Number|String|BigNumber} [options.ttl] ttl
|
|
236
255
|
* @param {Number|String|BigNumber} [options.nonce] nonce
|
|
@@ -249,17 +268,10 @@ async function claim(name, salt, options) {
|
|
|
249
268
|
const opt = { ...this.Ae.defaults,
|
|
250
269
|
...options
|
|
251
270
|
};
|
|
252
|
-
const minNameFee = getMinimumNameFee(name);
|
|
253
|
-
|
|
254
|
-
if (opt.nameFee !== this.Ae.defaults.nameFee && minNameFee.gt(opt.nameFee)) {
|
|
255
|
-
throw new Error(`the provided fee ${opt.nameFee} is not enough to execute the claim, required: ${minNameFee}`);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
opt.nameFee = opt.nameFee !== this.Ae.defaults.nameFee ? opt.nameFee : minNameFee;
|
|
259
271
|
const claimTx = await this.nameClaimTx({ ...opt,
|
|
260
272
|
accountId: await this.address(opt),
|
|
261
273
|
nameSalt: salt,
|
|
262
|
-
name
|
|
274
|
+
name
|
|
263
275
|
});
|
|
264
276
|
const result = await this.send(claimTx, opt);
|
|
265
277
|
|
|
@@ -280,8 +292,8 @@ async function claim(name, salt, options) {
|
|
|
280
292
|
* @alias module:@aeternity/aepp-sdk/es/ae/aens
|
|
281
293
|
* @param {String} name
|
|
282
294
|
* @param {Object} [options={}]
|
|
283
|
-
* @param {String|Object} [options.onAccount]
|
|
284
|
-
* using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
295
|
+
* @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
|
|
296
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
285
297
|
* @param {Number|String|BigNumber} [options.fee] fee
|
|
286
298
|
* @param {Number|String|BigNumber} [options.ttl] ttl
|
|
287
299
|
* @param {Number|String|BigNumber} [options.nonce] nonce
|
|
@@ -334,8 +346,8 @@ async function preclaim(name) {
|
|
|
334
346
|
* @param {String} name Domain name
|
|
335
347
|
* @param {String|Number} nameFee Name fee (bid fee)
|
|
336
348
|
* @param {Object} [options={}]
|
|
337
|
-
* @param {String|Object} [options.onAccount]
|
|
338
|
-
* using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
349
|
+
* @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
|
|
350
|
+
* publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
|
|
339
351
|
* @param {Number|String|BigNumber} [options.fee] fee
|
|
340
352
|
* @param {Number|String|BigNumber} [options.ttl] ttl
|
|
341
353
|
* @param {Number|String|BigNumber} [options.nonce] nonce
|
|
@@ -348,8 +360,7 @@ async function preclaim(name) {
|
|
|
348
360
|
*/
|
|
349
361
|
|
|
350
362
|
|
|
351
|
-
async function bid(name) {
|
|
352
|
-
let nameFee = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NAME_FEE;
|
|
363
|
+
async function bid(name, nameFee) {
|
|
353
364
|
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
354
365
|
return this.aensClaim(name, 0, { ...options,
|
|
355
366
|
nameFee,
|
|
@@ -383,12 +394,11 @@ const Aens = Ae.compose({
|
|
|
383
394
|
Ae: {
|
|
384
395
|
defaults: {
|
|
385
396
|
clientTtl: CLIENT_TTL,
|
|
386
|
-
nameTtl: NAME_TTL
|
|
387
|
-
|
|
388
|
-
nameFee: NAME_FEE
|
|
397
|
+
nameTtl: NAME_TTL // aec_governance:name_claim_max_expiration() => 50000
|
|
398
|
+
|
|
389
399
|
}
|
|
390
400
|
}
|
|
391
401
|
}
|
|
392
402
|
});
|
|
393
403
|
export default Aens;
|
|
394
|
-
//# sourceMappingURL=aens.
|
|
404
|
+
//# sourceMappingURL=aens.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ae/aens.js"],"names":["salt","commitmentHash","ensureNameValid","isAuctionName","Ae","CLIENT_TTL","NAME_TTL","ArgumentError","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","claim","claimTx","nameClaimTx","nameSalt","result","nameInter","waitMined","nameFee","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 { commitmentHash, ensureNameValid, isAuctionName } from '../tx/builder/helpers'\nimport Ae from './'\nimport { CLIENT_TTL, NAME_TTL } from '../tx/builder/schema'\nimport { ArgumentError } from '../utils/errors'\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: 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: 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: 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 (typeof nameTtl !== 'number' || nameTtl > NAME_TTL || nameTtl <= 0) {\n throw new ArgumentError('nameTtl', `a number between 1 and ${NAME_TTL} blocks`, nameTtl)\n }\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 claimTx = await this.nameClaimTx({\n ...opt,\n accountId: await this.address(opt),\n nameSalt: salt,\n name\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, 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 }\n }\n }\n})\n\nexport default Aens\n"],"file":"aens.mjs"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* ISC License (ISC)
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2021 aeternity developers
|
|
4
4
|
*
|
|
5
5
|
* Permission to use, copy, modify, and/or distribute this software for any
|
|
6
6
|
* purpose with or without fee is hereby granted, provided that the above
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
* @export Aepp
|
|
22
22
|
* @example import { RpcAepp } from '@aeternity/aepp-sdk'
|
|
23
23
|
*/
|
|
24
|
-
import Ae from
|
|
25
|
-
import Aens from
|
|
26
|
-
import
|
|
27
|
-
import AeppRpc from
|
|
28
|
-
import Chain from
|
|
29
|
-
import Tx from
|
|
30
|
-
import Oracle from
|
|
24
|
+
import Ae from "./index.mjs";
|
|
25
|
+
import Aens from "./aens.mjs";
|
|
26
|
+
import Contract from "./contract.mjs";
|
|
27
|
+
import AeppRpc from "../utils/aepp-wallet-communication/rpc/aepp-rpc.mjs";
|
|
28
|
+
import Chain from "../chain/node.mjs";
|
|
29
|
+
import Tx from "../tx/tx.mjs";
|
|
30
|
+
import Oracle from "./oracle.mjs";
|
|
31
31
|
/**
|
|
32
32
|
* Aepp Stamp
|
|
33
33
|
*
|
|
@@ -42,4 +42,4 @@ import Oracle from './oracle';
|
|
|
42
42
|
*/
|
|
43
43
|
|
|
44
44
|
export default Ae.compose(Tx, Oracle, Contract, Aens, Chain, AeppRpc);
|
|
45
|
-
//# sourceMappingURL=aepp.
|
|
45
|
+
//# sourceMappingURL=aepp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ae/aepp.js"],"names":["Ae","Aens","Contract","AeppRpc","Chain","Tx","Oracle","compose"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;OAEOA,E;OACAC,I;OACAC,Q;OACAC,O;OACAC,K;OACAC,E;OACAC,M;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAeN,EAAE,CAACO,OAAH,CAAWF,EAAX,EAAeC,MAAf,EAAuBJ,QAAvB,EAAiCD,IAAjC,EAAuCG,KAAvC,EAA8CD,OAA9C,CAAf","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2021 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 * Aepp module\n * @module @aeternity/aepp-sdk/es/ae/aepp\n * @export Aepp\n * @example import { RpcAepp } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport Aens from './aens'\nimport Contract from './contract'\nimport AeppRpc from '../utils/aepp-wallet-communication/rpc/aepp-rpc'\nimport Chain from '../chain/node'\nimport Tx from '../tx/tx'\nimport Oracle from './oracle'\n\n/**\n * Aepp Stamp\n *\n * Aepp provides base functionality.\n * Expected to use this stamp with a Wallet.\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/aepp\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Aepp instance\n */\nexport default Ae.compose(Tx, Oracle, Contract, Aens, Chain, AeppRpc)\n"],"file":"aepp.mjs"}
|