@aeternity/aepp-sdk 8.2.1 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +216 -337
- package/README.md +16 -9
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -9
- 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 +36 -120
- package/es/account/base.js.map +1 -1
- package/es/account/memory.js +17 -19
- package/es/account/memory.js.map +1 -1
- package/es/account/multiple.js +79 -156
- package/es/account/multiple.js.map +1 -1
- package/es/ae/aens.js +205 -626
- package/es/ae/aens.js.map +1 -1
- package/es/ae/contract.js +114 -918
- package/es/ae/contract.js.map +1 -1
- package/es/ae/index.js +90 -250
- package/es/ae/index.js.map +1 -1
- package/es/ae/oracle.js +136 -504
- package/es/ae/oracle.js.map +1 -1
- package/es/ae/universal.js.map +1 -1
- package/es/chain/index.js +12 -27
- package/es/chain/index.js.map +1 -1
- package/es/chain/node.js +289 -1020
- package/es/chain/node.js.map +1 -1
- package/es/channel/handlers.js +597 -1086
- package/es/channel/handlers.js.map +1 -1
- package/es/channel/index.js +238 -465
- package/es/channel/index.js.map +1 -1
- package/es/channel/internal.js +129 -301
- package/es/channel/internal.js.map +1 -1
- package/es/contract/aci/index.js +328 -495
- package/es/contract/aci/index.js.map +1 -1
- package/es/contract/aci/transformation.js +35 -711
- package/es/contract/aci/transformation.js.map +1 -1
- package/es/contract/compiler.js +131 -203
- package/es/contract/compiler.js.map +1 -1
- package/es/contract/ga/helpers.js +17 -122
- package/es/contract/ga/helpers.js.map +1 -1
- package/es/contract/ga/index.js +108 -249
- package/es/contract/ga/index.js.map +1 -1
- package/es/contract/index.js +7 -3
- package/es/contract/index.js.map +1 -1
- package/es/index.js +3 -3
- package/es/index.js.map +1 -1
- package/es/node-pool/index.js +57 -74
- package/es/node-pool/index.js.map +1 -1
- package/es/node.js +65 -161
- package/es/node.js.map +1 -1
- package/es/other.d.ts +1 -1
- package/es/tx/builder/helpers.js +62 -115
- package/es/tx/builder/helpers.js.map +1 -1
- package/es/tx/builder/index.js +218 -309
- package/es/tx/builder/index.js.map +1 -1
- package/es/tx/builder/schema.js +586 -573
- package/es/tx/builder/schema.js.map +1 -1
- package/es/tx/index.js +102 -13
- package/es/tx/index.js.map +1 -1
- package/es/tx/tx-object.js +114 -138
- package/es/tx/tx-object.js.map +1 -1
- package/es/tx/tx.js +810 -1586
- package/es/tx/tx.js.map +1 -1
- package/es/tx/validator.js +191 -426
- package/es/tx/validator.js.map +1 -1
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +20 -23
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +1 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +53 -80
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +1 -1
- package/es/utils/aepp-wallet-communication/connection/index.js +2 -1
- package/es/utils/aepp-wallet-communication/connection/index.js.map +1 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.js +24 -19
- package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +1 -1
- package/es/utils/aepp-wallet-communication/helpers.js +60 -105
- package/es/utils/aepp-wallet-communication/helpers.js.map +1 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +191 -514
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +1 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +78 -93
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +1 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +381 -613
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +1 -1
- package/es/utils/aepp-wallet-communication/schema.js +43 -39
- package/es/utils/aepp-wallet-communication/schema.js.map +1 -1
- package/es/utils/aepp-wallet-communication/wallet-detector.js +32 -58
- package/es/utils/aepp-wallet-communication/wallet-detector.js.map +1 -1
- package/es/utils/amount-formatter.js +41 -61
- package/es/utils/amount-formatter.js.map +1 -1
- package/es/utils/async-init.js +28 -64
- package/es/utils/async-init.js.map +1 -1
- package/es/utils/bignumber.js +3 -11
- package/es/utils/bignumber.js.map +1 -1
- package/es/utils/bytes.js +5 -9
- package/es/utils/bytes.js.map +1 -1
- package/es/utils/crypto.js +41 -106
- package/es/utils/crypto.js.map +1 -1
- package/es/utils/hd-wallet.js +45 -81
- package/es/utils/hd-wallet.js.map +1 -1
- package/es/utils/json-big.js +16 -49
- package/es/utils/json-big.js.map +1 -1
- package/es/utils/keystore.js +81 -246
- package/es/utils/keystore.js.map +1 -1
- package/es/utils/mptree.js +88 -134
- package/es/utils/mptree.js.map +1 -1
- package/es/utils/other.js +10 -60
- package/es/utils/other.js.map +1 -1
- package/es/utils/semver-satisfies.js +9 -28
- package/es/utils/semver-satisfies.js.map +1 -1
- package/es/utils/string.js +4 -13
- package/es/utils/string.js.map +1 -1
- package/es/utils/swagger.js +87 -224
- package/es/utils/swagger.js.map +1 -1
- package/package.json +51 -44
- package/src/account/base.js +11 -10
- package/src/account/multiple.js +24 -18
- package/src/ae/aens.js +64 -61
- package/src/ae/contract.js +71 -248
- package/src/ae/index.js +34 -9
- package/src/ae/oracle.js +30 -22
- package/src/ae/universal.js +3 -1
- package/src/chain/index.js +10 -16
- package/src/chain/node.js +38 -38
- package/src/channel/handlers.js +10 -4
- package/src/channel/index.js +44 -20
- package/src/contract/aci/index.js +234 -112
- package/src/contract/aci/transformation.js +30 -422
- package/src/contract/compiler.js +50 -5
- package/src/contract/ga/helpers.js +6 -14
- package/src/contract/ga/index.js +28 -28
- package/src/contract/index.js +6 -2
- package/src/index.js +4 -4
- package/src/node-pool/index.js +24 -13
- package/src/node.js +29 -30
- package/src/tx/builder/helpers.js +31 -56
- package/src/tx/builder/index.js +67 -28
- package/src/tx/builder/schema.js +79 -121
- package/src/tx/index.js +101 -12
- package/src/tx/tx-object.js +25 -8
- package/src/tx/tx.js +229 -150
- package/src/tx/validator.js +134 -202
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +3 -2
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +25 -7
- package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +10 -4
- package/src/utils/aepp-wallet-communication/helpers.js +4 -2
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +33 -12
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +9 -5
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +59 -29
- package/src/utils/aepp-wallet-communication/schema.js +1 -3
- package/src/utils/aepp-wallet-communication/wallet-detector.js +4 -1
- package/src/utils/amount-formatter.ts +1 -1
- package/src/utils/bignumber.ts +2 -1
- package/src/utils/crypto.js +4 -68
- package/src/utils/keystore.js +10 -2
- package/src/utils/other.ts +1 -1
- package/src/utils/semver-satisfies.ts +1 -1
- package/src/utils/swagger.js +22 -10
- package/src/contract/aci/helpers.js +0 -140
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
|
|
2
|
-
|
|
3
|
-
var _DENOMINATION_MAGNITU;
|
|
4
|
-
|
|
5
|
-
import _Object$values from "@babel/runtime-corejs3/core-js-stable/object/values";
|
|
6
|
-
import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
|
|
7
|
-
import _reduceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/reduce";
|
|
8
|
-
import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
|
|
9
|
-
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
10
|
-
|
|
11
1
|
/*
|
|
12
2
|
* ISC License (ISC)
|
|
13
3
|
* Copyright (c) 2018 aeternity developers
|
|
@@ -36,7 +26,7 @@ import { isBigNumber } from './bignumber';
|
|
|
36
26
|
* AE amount formats
|
|
37
27
|
*/
|
|
38
28
|
|
|
39
|
-
export
|
|
29
|
+
export const AE_AMOUNT_FORMATS = {
|
|
40
30
|
AE: 'ae',
|
|
41
31
|
MILI_AE: 'miliAE',
|
|
42
32
|
MICRO_AE: 'microAE',
|
|
@@ -49,7 +39,15 @@ export var AE_AMOUNT_FORMATS = {
|
|
|
49
39
|
* DENOMINATION_MAGNITUDE
|
|
50
40
|
*/
|
|
51
41
|
|
|
52
|
-
export
|
|
42
|
+
export const DENOMINATION_MAGNITUDE = {
|
|
43
|
+
[AE_AMOUNT_FORMATS.AE]: 0,
|
|
44
|
+
[AE_AMOUNT_FORMATS.MILI_AE]: -3,
|
|
45
|
+
[AE_AMOUNT_FORMATS.MICRO_AE]: -6,
|
|
46
|
+
[AE_AMOUNT_FORMATS.NANO_AE]: -9,
|
|
47
|
+
[AE_AMOUNT_FORMATS.PICO_AE]: -12,
|
|
48
|
+
[AE_AMOUNT_FORMATS.FEMTO_AE]: -15,
|
|
49
|
+
[AE_AMOUNT_FORMATS.AETTOS]: -18
|
|
50
|
+
};
|
|
53
51
|
/**
|
|
54
52
|
* Convert amount to AE
|
|
55
53
|
* @param {String|Number|BigNumber} value amount to convert
|
|
@@ -58,13 +56,12 @@ export var DENOMINATION_MAGNITUDE = (_DENOMINATION_MAGNITU = {}, _defineProperty
|
|
|
58
56
|
* @return {String}
|
|
59
57
|
*/
|
|
60
58
|
|
|
61
|
-
export
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
59
|
+
export const toAe = function (value) {
|
|
60
|
+
let {
|
|
61
|
+
denomination = AE_AMOUNT_FORMATS.AETTOS
|
|
62
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
66
63
|
return formatAmount(value, {
|
|
67
|
-
denomination
|
|
64
|
+
denomination,
|
|
68
65
|
targetDenomination: AE_AMOUNT_FORMATS.AE
|
|
69
66
|
});
|
|
70
67
|
};
|
|
@@ -76,13 +73,12 @@ export var toAe = function toAe(value) {
|
|
|
76
73
|
* @return {String}
|
|
77
74
|
*/
|
|
78
75
|
|
|
79
|
-
export
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
76
|
+
export const toAettos = function (value) {
|
|
77
|
+
let {
|
|
78
|
+
denomination = AE_AMOUNT_FORMATS.AE
|
|
79
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
84
80
|
return formatAmount(value, {
|
|
85
|
-
denomination
|
|
81
|
+
denomination
|
|
86
82
|
});
|
|
87
83
|
};
|
|
88
84
|
/**
|
|
@@ -94,21 +90,18 @@ export var toAettos = function toAettos(value) {
|
|
|
94
90
|
* @return {String}
|
|
95
91
|
*/
|
|
96
92
|
|
|
97
|
-
export
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if (!_includesInstanceProperty(denominations).call(denominations, denomination)) throw new Error("Invalid denomination: ".concat(denomination));
|
|
107
|
-
if (!_includesInstanceProperty(denominations).call(denominations, targetDenomination)) throw new Error("Invalid target denomination: ".concat(targetDenomination));
|
|
108
|
-
if (!isBigNumber(value)) throw new Error("Value ".concat(value.toString(), " is not type of number"));
|
|
93
|
+
export const formatAmount = function (value) {
|
|
94
|
+
let {
|
|
95
|
+
denomination = AE_AMOUNT_FORMATS.AETTOS,
|
|
96
|
+
targetDenomination = AE_AMOUNT_FORMATS.AETTOS
|
|
97
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
98
|
+
const denominations = Object.values(AE_AMOUNT_FORMATS);
|
|
99
|
+
if (!denominations.includes(denomination)) throw new Error(`Invalid denomination: ${denomination}`);
|
|
100
|
+
if (!denominations.includes(targetDenomination)) throw new Error(`Invalid target denomination: ${targetDenomination}`);
|
|
101
|
+
if (!isBigNumber(value)) throw new Error(`Value ${value === null || value === void 0 ? void 0 : value.toString()} is not type of number`);
|
|
109
102
|
return new BigNumber(value).shiftedBy(DENOMINATION_MAGNITUDE[denomination] - DENOMINATION_MAGNITUDE[targetDenomination]).toFixed();
|
|
110
103
|
};
|
|
111
|
-
|
|
104
|
+
const prefixes = [{
|
|
112
105
|
name: 'exa',
|
|
113
106
|
magnitude: 18
|
|
114
107
|
}, {
|
|
@@ -122,31 +115,18 @@ var prefixes = [{
|
|
|
122
115
|
magnitude: -12
|
|
123
116
|
}];
|
|
124
117
|
|
|
125
|
-
|
|
126
|
-
return _reduceInstanceProperty(prefixes).call(prefixes, function (p, n) {
|
|
127
|
-
return Math.abs(n.magnitude - exponent) < Math.abs(p.magnitude - exponent) ? n : p;
|
|
128
|
-
});
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
var getLowerBoundPrefix = function getLowerBoundPrefix(exponent) {
|
|
132
|
-
var _prefixes$find;
|
|
133
|
-
|
|
134
|
-
return (_prefixes$find = _findInstanceProperty(prefixes).call(prefixes, function (p) {
|
|
135
|
-
return p.magnitude <= exponent;
|
|
136
|
-
})) !== null && _prefixes$find !== void 0 ? _prefixes$find : prefixes[prefixes.length - 1];
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
export default (function (rawValue) {
|
|
140
|
-
var _value$e, _context, _context2;
|
|
141
|
-
|
|
142
|
-
var value = new BigNumber(rawValue);
|
|
143
|
-
var exp = (_value$e = value.e) !== null && _value$e !== void 0 ? _value$e : 0;
|
|
118
|
+
const getNearestPrefix = exponent => prefixes.reduce((p, n) => Math.abs(n.magnitude - exponent) < Math.abs(p.magnitude - exponent) ? n : p);
|
|
144
119
|
|
|
145
|
-
|
|
146
|
-
name = _ref4.name,
|
|
147
|
-
magnitude = _ref4.magnitude;
|
|
120
|
+
const getLowerBoundPrefix = exponent => prefixes.find(p => p.magnitude <= exponent) ?? prefixes[prefixes.length - 1];
|
|
148
121
|
|
|
149
|
-
|
|
150
|
-
|
|
122
|
+
export default (rawValue => {
|
|
123
|
+
const value = new BigNumber(rawValue);
|
|
124
|
+
const exp = value.e ?? 0;
|
|
125
|
+
const {
|
|
126
|
+
name,
|
|
127
|
+
magnitude
|
|
128
|
+
} = (exp < 0 ? getNearestPrefix : getLowerBoundPrefix)(exp);
|
|
129
|
+
const v = value.shiftedBy(-magnitude).precision(9 + Math.min(exp - magnitude, 0)).toFixed();
|
|
130
|
+
return `${v}${name !== '' ? ' ' : ''}${name}`;
|
|
151
131
|
});
|
|
152
132
|
//# sourceMappingURL=amount-formatter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/amount-formatter.ts"],"names":["BigNumber","isBigNumber","AE_AMOUNT_FORMATS","AE","MILI_AE","MICRO_AE","NANO_AE","PICO_AE","FEMTO_AE","AETTOS","DENOMINATION_MAGNITUDE","toAe","value","denomination","formatAmount","targetDenomination","toAettos","denominations","Error","toString","shiftedBy","toFixed","prefixes","name","magnitude","getNearestPrefix","exponent","p","n","Math","abs","getLowerBoundPrefix","length","rawValue","exp","e","v","precision","min"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/utils/amount-formatter.ts"],"names":["BigNumber","isBigNumber","AE_AMOUNT_FORMATS","AE","MILI_AE","MICRO_AE","NANO_AE","PICO_AE","FEMTO_AE","AETTOS","DENOMINATION_MAGNITUDE","toAe","value","denomination","formatAmount","targetDenomination","toAettos","denominations","Object","values","includes","Error","toString","shiftedBy","toFixed","prefixes","name","magnitude","getNearestPrefix","exponent","reduce","p","n","Math","abs","getLowerBoundPrefix","find","length","rawValue","exp","e","v","precision","min"],"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 * Amount Formatter\n * @module @aeternity/aepp-sdk/es/utils/amount-formatter\n * @example import { AmountFormatter } from '@aeternity/aepp-sdk'\n */\nimport BigNumber from 'bignumber.js'\nimport { isBigNumber } from './bignumber'\n\n/**\n * AE amount formats\n */\nexport const AE_AMOUNT_FORMATS = {\n AE: 'ae',\n MILI_AE: 'miliAE',\n MICRO_AE: 'microAE',\n NANO_AE: 'nanoAE',\n PICO_AE: 'picoAE',\n FEMTO_AE: 'femtoAE',\n AETTOS: 'aettos'\n}\n\n/**\n * DENOMINATION_MAGNITUDE\n */\nexport const DENOMINATION_MAGNITUDE = {\n [AE_AMOUNT_FORMATS.AE]: 0,\n [AE_AMOUNT_FORMATS.MILI_AE]: -3,\n [AE_AMOUNT_FORMATS.MICRO_AE]: -6,\n [AE_AMOUNT_FORMATS.NANO_AE]: -9,\n [AE_AMOUNT_FORMATS.PICO_AE]: -12,\n [AE_AMOUNT_FORMATS.FEMTO_AE]: -15,\n [AE_AMOUNT_FORMATS.AETTOS]: -18\n}\n\n/**\n * Convert amount to AE\n * @param {String|Number|BigNumber} value amount to convert\n * @param {Object} [options={}] options\n * @param {String} [options.denomination='aettos'] denomination of amount, can be ['ae', 'aettos']\n * @return {String}\n */\nexport const toAe = (\n value: string | number | BigNumber,\n { denomination = AE_AMOUNT_FORMATS.AETTOS } = {}\n): string => formatAmount(value, { denomination, targetDenomination: AE_AMOUNT_FORMATS.AE })\n\n/**\n * Convert amount to aettos\n * @param {String|Number|BigNumber} value amount to convert\n * @param {Object} [options={}] options\n * @param {String} [options.denomination='ae'] denomination of amount, can be ['ae', 'aettos']\n * @return {String}\n */\nexport const toAettos = (\n value: string | number | BigNumber,\n { denomination = AE_AMOUNT_FORMATS.AE } = {}\n): string => formatAmount(value, { denomination })\n\n/**\n * Convert amount from one to other denomination\n * @param {String|Number|BigNumber} value amount to convert\n * @param {Object} [options={}] options\n * @param {String} [options.denomination='aettos'] denomination of amount, can be ['ae', 'aettos']\n * @param {String} [options.targetDenomination='aettos'] target denomination, can be ['ae', 'aettos']\n * @return {String}\n */\nexport const formatAmount = (\n value: string | number | BigNumber,\n { denomination = AE_AMOUNT_FORMATS.AETTOS, targetDenomination = AE_AMOUNT_FORMATS.AETTOS } = {}\n): string => {\n const denominations = Object.values(AE_AMOUNT_FORMATS)\n if (!denominations.includes(denomination)) throw new Error(`Invalid denomination: ${denomination}`)\n if (!denominations.includes(targetDenomination)) throw new Error(`Invalid target denomination: ${targetDenomination}`)\n if (!isBigNumber(value)) throw new Error(`Value ${value?.toString()} is not type of number`)\n\n return new BigNumber(value)\n .shiftedBy(DENOMINATION_MAGNITUDE[denomination] - DENOMINATION_MAGNITUDE[targetDenomination])\n .toFixed()\n}\n\ninterface Prefix {\n name: string\n magnitude: number\n}\n\nconst prefixes: Prefix[] = [\n { name: 'exa', magnitude: 18 },\n { name: 'giga', magnitude: 9 },\n { name: '', magnitude: 0 },\n { name: 'pico', magnitude: -12 }\n]\n\nconst getNearestPrefix = (exponent: number): Prefix => prefixes.reduce((p, n) => (\n Math.abs(n.magnitude - exponent) < Math.abs(p.magnitude - exponent) ? n : p))\n\nconst getLowerBoundPrefix = (exponent: number): Prefix => prefixes\n .find(p => p.magnitude <= exponent) ?? prefixes[prefixes.length - 1]\n\nexport default (rawValue: string | number | BigNumber): string => {\n const value: BigNumber = new BigNumber(rawValue)\n\n const exp = value.e ?? 0\n const { name, magnitude } = (exp < 0 ? getNearestPrefix : getLowerBoundPrefix)(exp)\n const v = value\n .shiftedBy(-magnitude)\n .precision(9 + Math.min(exp - magnitude, 0))\n .toFixed()\n return `${v}${name !== '' ? ' ' : ''}${name}`\n}\n"],"file":"amount-formatter.js"}
|
package/es/utils/async-init.js
CHANGED
|
@@ -3,11 +3,6 @@ import _flatten from "ramda/src/flatten";
|
|
|
3
3
|
import _identical from "ramda/src/identical";
|
|
4
4
|
import _uniqWith from "ramda/src/uniqWith";
|
|
5
5
|
import _without from "ramda/src/without";
|
|
6
|
-
import _asyncToGenerator from "@babel/runtime-corejs3/helpers/asyncToGenerator";
|
|
7
|
-
import _regeneratorRuntime from "@babel/runtime-corejs3/regenerator";
|
|
8
|
-
import _reduceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/reduce";
|
|
9
|
-
import _Promise from "@babel/runtime-corejs3/core-js-stable/promise";
|
|
10
|
-
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
11
6
|
|
|
12
7
|
/*
|
|
13
8
|
* ISC License (ISC)
|
|
@@ -28,76 +23,45 @@ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance
|
|
|
28
23
|
import stampit from '@stamp/it';
|
|
29
24
|
|
|
30
25
|
function asyncInit() {
|
|
31
|
-
|
|
26
|
+
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
27
|
+
let {
|
|
28
|
+
stamp,
|
|
29
|
+
args,
|
|
30
|
+
instance
|
|
31
|
+
} = arguments.length > 1 ? arguments[1] : undefined;
|
|
32
|
+
return stamp.compose.deepConfiguration.AsyncInit.initializers.reduce(async (instance, init) => {
|
|
33
|
+
instance = await Promise.resolve(instance);
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(instance, init) {
|
|
42
|
-
var ret;
|
|
43
|
-
return _regeneratorRuntime.wrap(function _callee$(_context2) {
|
|
44
|
-
while (1) {
|
|
45
|
-
switch (_context2.prev = _context2.next) {
|
|
46
|
-
case 0:
|
|
47
|
-
_context2.next = 2;
|
|
48
|
-
return _Promise.resolve(instance);
|
|
49
|
-
|
|
50
|
-
case 2:
|
|
51
|
-
instance = _context2.sent;
|
|
52
|
-
|
|
53
|
-
if (!(typeof init === 'function')) {
|
|
54
|
-
_context2.next = 8;
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
_context2.next = 6;
|
|
59
|
-
return _Promise.resolve(init.call(instance, options, {
|
|
60
|
-
stamp: stamp,
|
|
61
|
-
args: args,
|
|
62
|
-
instance: instance
|
|
63
|
-
}));
|
|
64
|
-
|
|
65
|
-
case 6:
|
|
66
|
-
ret = _context2.sent;
|
|
67
|
-
return _context2.abrupt("return", ret === undefined ? instance : ret);
|
|
68
|
-
|
|
69
|
-
case 8:
|
|
70
|
-
return _context2.abrupt("return", instance);
|
|
71
|
-
|
|
72
|
-
case 9:
|
|
73
|
-
case "end":
|
|
74
|
-
return _context2.stop();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}, _callee);
|
|
78
|
-
}));
|
|
35
|
+
if (typeof init === 'function') {
|
|
36
|
+
const ret = await Promise.resolve(init.call(instance, options, {
|
|
37
|
+
stamp,
|
|
38
|
+
args,
|
|
39
|
+
instance
|
|
40
|
+
}));
|
|
41
|
+
return ret === undefined ? instance : ret;
|
|
42
|
+
}
|
|
79
43
|
|
|
80
|
-
return
|
|
81
|
-
|
|
82
|
-
};
|
|
83
|
-
}(), instance);
|
|
44
|
+
return instance;
|
|
45
|
+
}, instance);
|
|
84
46
|
}
|
|
85
47
|
|
|
86
|
-
|
|
48
|
+
const AsyncInit = stampit({
|
|
87
49
|
deepConf: {
|
|
88
50
|
AsyncInit: {
|
|
89
51
|
initializers: []
|
|
90
52
|
}
|
|
91
53
|
},
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
54
|
+
|
|
55
|
+
composers(_ref) {
|
|
56
|
+
let {
|
|
57
|
+
stamp,
|
|
58
|
+
composables
|
|
59
|
+
} = _ref;
|
|
60
|
+
const conf = stamp.compose.deepConfiguration.AsyncInit;
|
|
61
|
+
conf.initializers = _without([asyncInit], _uniqWith(_identical, _flatten(composables.map(c => _path(['compose', 'deepConfiguration', 'AsyncInit', 'initializers'], c) || (c.compose || c).initializers || []))));
|
|
99
62
|
stamp.compose.initializers = [asyncInit];
|
|
100
63
|
}
|
|
64
|
+
|
|
101
65
|
});
|
|
102
66
|
export default AsyncInit;
|
|
103
67
|
//# sourceMappingURL=async-init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/async-init.js"],"names":["stampit","asyncInit","options","stamp","args","instance","compose","deepConfiguration","AsyncInit","initializers","init","
|
|
1
|
+
{"version":3,"sources":["../../src/utils/async-init.js"],"names":["stampit","asyncInit","options","stamp","args","instance","compose","deepConfiguration","AsyncInit","initializers","reduce","init","Promise","resolve","ret","call","undefined","deepConf","composers","composables","conf","map","c"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAOA,OAAP,MAAoB,WAApB;;AAGA,SAASC,SAAT,GAA6D;AAAA,MAAzCC,OAAyC,uEAA/B,EAA+B;AAAA,MAA3B;AAAEC,IAAAA,KAAF;AAASC,IAAAA,IAAT;AAAeC,IAAAA;AAAf,GAA2B;AAC3D,SAAOF,KAAK,CAACG,OAAN,CAAcC,iBAAd,CAAgCC,SAAhC,CAA0CC,YAA1C,CAAuDC,MAAvD,CAA8D,OAAOL,QAAP,EAAiBM,IAAjB,KAA0B;AAC7FN,IAAAA,QAAQ,GAAG,MAAMO,OAAO,CAACC,OAAR,CAAgBR,QAAhB,CAAjB;;AACA,QAAI,OAAOM,IAAP,KAAgB,UAApB,EAAgC;AAC9B,YAAMG,GAAG,GAAG,MAAMF,OAAO,CAACC,OAAR,CAAgBF,IAAI,CAACI,IAAL,CAAUV,QAAV,EAAoBH,OAApB,EAA6B;AAAEC,QAAAA,KAAF;AAASC,QAAAA,IAAT;AAAeC,QAAAA;AAAf,OAA7B,CAAhB,CAAlB;AACA,aAAOS,GAAG,KAAKE,SAAR,GAAoBX,QAApB,GAA+BS,GAAtC;AACD;;AACD,WAAOT,QAAP;AACD,GAPM,EAOJA,QAPI,CAAP;AAQD;;AAED,MAAMG,SAAS,GAAGR,OAAO,CAAC;AACxBiB,EAAAA,QAAQ,EAAE;AAAET,IAAAA,SAAS,EAAE;AAAEC,MAAAA,YAAY,EAAE;AAAhB;AAAb,GADc;;AAExBS,EAAAA,SAAS,OAA0B;AAAA,QAAxB;AAAEf,MAAAA,KAAF;AAASgB,MAAAA;AAAT,KAAwB;AACjC,UAAMC,IAAI,GAAGjB,KAAK,CAACG,OAAN,CAAcC,iBAAd,CAAgCC,SAA7C;AACAY,IAAAA,IAAI,CAACX,YAAL,GAAoB,SAAU,CAACR,SAAD,CAAV,EAAuB,sBAAwB,SAAUkB,WAAW,CAACE,GAAZ,CAAgBC,CAAC,IAAI,MAAO,CAAC,SAAD,EAAY,mBAAZ,EAAiC,WAAjC,EAA8C,cAA9C,CAAP,EAAsEA,CAAtE,KAA4E,CAACA,CAAC,CAAChB,OAAF,IAAagB,CAAd,EAAiBb,YAA7F,IAA6G,EAAlI,CAAV,CAAxB,CAAvB,CAApB;AACAN,IAAAA,KAAK,CAACG,OAAN,CAAcG,YAAd,GAA6B,CAACR,SAAD,CAA7B;AACD;;AANuB,CAAD,CAAzB;AASA,eAAeO,SAAf","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\nimport stampit from '@stamp/it'\nimport * as R from 'ramda'\n\nfunction asyncInit (options = {}, { stamp, args, instance }) {\n return stamp.compose.deepConfiguration.AsyncInit.initializers.reduce(async (instance, init) => {\n instance = await Promise.resolve(instance)\n if (typeof init === 'function') {\n const ret = await Promise.resolve(init.call(instance, options, { stamp, args, instance }))\n return ret === undefined ? instance : ret\n }\n return instance\n }, instance)\n}\n\nconst AsyncInit = stampit({\n deepConf: { AsyncInit: { initializers: [] } },\n composers ({ stamp, composables }) {\n const conf = stamp.compose.deepConfiguration.AsyncInit\n conf.initializers = R.without([asyncInit], R.uniqWith(R.identical, R.flatten(composables.map(c => R.path(['compose', 'deepConfiguration', 'AsyncInit', 'initializers'], c) || (c.compose || c).initializers || []))))\n stamp.compose.initializers = [asyncInit]\n }\n})\n\nexport default AsyncInit\n"],"file":"async-init.js"}
|
package/es/utils/bignumber.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import _Number$isInteger from "@babel/runtime-corejs3/core-js-stable/number/is-integer";
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Big Number Helpers
|
|
5
3
|
* @module @aeternity/aepp-sdk/es/utils/bignumber
|
|
@@ -12,25 +10,19 @@ import BigNumber from 'bignumber.js';
|
|
|
12
10
|
* @return {String}
|
|
13
11
|
*/
|
|
14
12
|
|
|
15
|
-
export
|
|
16
|
-
return new BigNumber(number.toString()).toString(10);
|
|
17
|
-
};
|
|
13
|
+
export const parseBigNumber = number => new BigNumber(number.toString()).toString(10);
|
|
18
14
|
/**
|
|
19
15
|
* Check if value is BigNumber, Number or number string representation
|
|
20
16
|
* @param {String|Number|BigNumber} number number to convert
|
|
21
17
|
* @return {Boolean}
|
|
22
18
|
*/
|
|
23
19
|
|
|
24
|
-
export
|
|
25
|
-
return !isNaN(number) || _Number$isInteger(number) || BigNumber.isBigNumber(number);
|
|
26
|
-
};
|
|
20
|
+
export const isBigNumber = number => ['number', 'object', 'string', 'bigint'].includes(typeof number) && (!isNaN(number) || Number.isInteger(number) || BigNumber.isBigNumber(number));
|
|
27
21
|
/**
|
|
28
22
|
* BigNumber ceil operation
|
|
29
23
|
* @param {BigNumber} bigNumber
|
|
30
24
|
* @return {BigNumber}
|
|
31
25
|
*/
|
|
32
26
|
|
|
33
|
-
export
|
|
34
|
-
return bigNumber.integerValue(BigNumber.ROUND_CEIL);
|
|
35
|
-
};
|
|
27
|
+
export const ceil = bigNumber => bigNumber.integerValue(BigNumber.ROUND_CEIL);
|
|
36
28
|
//# sourceMappingURL=bignumber.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/bignumber.ts"],"names":["BigNumber","parseBigNumber","number","toString","isBigNumber","isNaN","ceil","bigNumber","integerValue","ROUND_CEIL"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/utils/bignumber.ts"],"names":["BigNumber","parseBigNumber","number","toString","isBigNumber","includes","isNaN","Number","isInteger","ceil","bigNumber","integerValue","ROUND_CEIL"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAOA,SAAP,MAAsB,cAAtB;AAEA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,cAAc,GAAIC,MAAD,IAC5B,IAAIF,SAAJ,CAAcE,MAAM,CAACC,QAAP,EAAd,EAAiCA,QAAjC,CAA0C,EAA1C,CADK;AAGP;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,WAAW,GAAIF,MAAD,IACzB,CAAC,QAAD,EAAW,QAAX,EAAqB,QAArB,EAA+B,QAA/B,EAAyCG,QAAzC,CAAkD,OAAOH,MAAzD,MACC,CAACI,KAAK,CAACJ,MAAD,CAAN,IAA4BK,MAAM,CAACC,SAAP,CAAiBN,MAAjB,CAA5B,IAAwDF,SAAS,CAACI,WAAV,CAAsBF,MAAtB,CADzD,CADK;AAIP;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMO,IAAI,GAAIC,SAAD,IAAqCA,SAAS,CAACC,YAAV,CAAuBX,SAAS,CAACY,UAAjC,CAAlD","sourcesContent":["/**\n * Big Number Helpers\n * @module @aeternity/aepp-sdk/es/utils/bignumber\n * @example import { parseBigNumber, isBigNumber, ceil } from '@aeternity/aepp-sdk/es/utils/bignumber'\n */\nimport BigNumber from 'bignumber.js'\n\n/**\n * Convert number to string\n * @param {String|Number|BigNumber} number number to convert\n * @return {String}\n */\nexport const parseBigNumber = (number: string | number | BigNumber): string =>\n new BigNumber(number.toString()).toString(10)\n\n/**\n * Check if value is BigNumber, Number or number string representation\n * @param {String|Number|BigNumber} number number to convert\n * @return {Boolean}\n */\nexport const isBigNumber = (number: string | number | BigNumber): boolean =>\n ['number', 'object', 'string', 'bigint'].includes(typeof number) &&\n (!isNaN(number as number) || Number.isInteger(number) || BigNumber.isBigNumber(number))\n\n/**\n * BigNumber ceil operation\n * @param {BigNumber} bigNumber\n * @return {BigNumber}\n */\nexport const ceil = (bigNumber: BigNumber): BigNumber => bigNumber.integerValue(BigNumber.ROUND_CEIL)\n"],"file":"bignumber.js"}
|
package/es/utils/bytes.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import _Number$isInteger from "@babel/runtime-corejs3/core-js-stable/number/is-integer";
|
|
2
|
-
|
|
3
1
|
/*
|
|
4
2
|
* ISC License (ISC)
|
|
5
3
|
* Copyright 2018 aeternity developers
|
|
@@ -31,8 +29,8 @@ import { isBase64, isHex } from './string';
|
|
|
31
29
|
*/
|
|
32
30
|
|
|
33
31
|
export function bigNumberToByteArray(x) {
|
|
34
|
-
if (!x.isInteger()) throw new Error(
|
|
35
|
-
|
|
32
|
+
if (!x.isInteger()) throw new Error(`Unexpected not integer value: ${x.toFixed()}`);
|
|
33
|
+
let hexString = x.toString(16);
|
|
36
34
|
if (hexString.length % 2 === 1) hexString = '0' + hexString;
|
|
37
35
|
return Buffer.from(hexString, 'hex');
|
|
38
36
|
}
|
|
@@ -44,13 +42,13 @@ export function bigNumberToByteArray(x) {
|
|
|
44
42
|
*/
|
|
45
43
|
|
|
46
44
|
export function toBytes(val) {
|
|
47
|
-
|
|
45
|
+
let big = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
48
46
|
// Encode a value to bytes.
|
|
49
47
|
// If the value is an int it will be encoded as bytes big endian
|
|
50
48
|
// Raises ValueError if the input is not an int or string
|
|
51
49
|
if (val === undefined || val === null) return Buffer.from([]);
|
|
52
50
|
|
|
53
|
-
if (
|
|
51
|
+
if (Number.isInteger(val) || BigNumber.isBigNumber(val) || big) {
|
|
54
52
|
if (!BigNumber.isBigNumber(val)) val = new BigNumber(val);
|
|
55
53
|
return bigNumberToByteArray(val);
|
|
56
54
|
}
|
|
@@ -71,8 +69,6 @@ export function toBytes(val) {
|
|
|
71
69
|
*/
|
|
72
70
|
|
|
73
71
|
export function str2buf(str, enc) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return Buffer.from(str, (_ref = enc !== null && enc !== void 0 ? enc : isHex(str) ? 'hex' : undefined) !== null && _ref !== void 0 ? _ref : isBase64(str) ? 'base64' : undefined);
|
|
72
|
+
return Buffer.from(str, enc ?? (isHex(str) ? 'hex' : undefined) ?? (isBase64(str) ? 'base64' : undefined));
|
|
77
73
|
}
|
|
78
74
|
//# sourceMappingURL=bytes.js.map
|
package/es/utils/bytes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/bytes.ts"],"names":["BigNumber","isBase64","isHex","bigNumberToByteArray","x","isInteger","Error","toFixed","hexString","toString","length","Buffer","from","toBytes","val","big","undefined","isBigNumber","str2buf","str","enc"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/utils/bytes.ts"],"names":["BigNumber","isBase64","isHex","bigNumberToByteArray","x","isInteger","Error","toFixed","hexString","toString","length","Buffer","from","toBytes","val","big","undefined","Number","isBigNumber","str2buf","str","enc"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,SAAP,MAAsB,cAAtB;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,UAAhC;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,oBAAT,CAA+BC,CAA/B,EAAqD;AAC1D,MAAI,CAACA,CAAC,CAACC,SAAF,EAAL,EAAoB,MAAM,IAAIC,KAAJ,CAAW,iCAAgCF,CAAC,CAACG,OAAF,EAAY,EAAvD,CAAN;AACpB,MAAIC,SAAS,GAAGJ,CAAC,CAACK,QAAF,CAAW,EAAX,CAAhB;AACA,MAAID,SAAS,CAACE,MAAV,GAAmB,CAAnB,KAAyB,CAA7B,EAAgCF,SAAS,GAAG,MAAMA,SAAlB;AAChC,SAAOG,MAAM,CAACC,IAAP,CAAYJ,SAAZ,EAAuB,KAAvB,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASK,OAAT,CAAkBC,GAAlB,EAA0F;AAAA,MAA9BC,GAA8B,uEAAf,KAAe;AAC/F;AACA;AACA;AAEA,MAAID,GAAG,KAAKE,SAAR,IAAqBF,GAAG,KAAK,IAAjC,EAAuC,OAAOH,MAAM,CAACC,IAAP,CAAY,EAAZ,CAAP;;AACvC,MAAIK,MAAM,CAACZ,SAAP,CAAiBS,GAAjB,KAAyBd,SAAS,CAACkB,WAAV,CAAsBJ,GAAtB,CAAzB,IAAuDC,GAA3D,EAAgE;AAC9D,QAAI,CAACf,SAAS,CAACkB,WAAV,CAAsBJ,GAAtB,CAAL,EAAiCA,GAAG,GAAG,IAAId,SAAJ,CAAcc,GAAd,CAAN;AACjC,WAAOX,oBAAoB,CAACW,GAAD,CAA3B;AACD;;AACD,MAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;AAC3B,WAAOH,MAAM,CAACC,IAAP,CAAYE,GAAZ,CAAP;AACD;;AACD,QAAM,IAAIR,KAAJ,CAAU,kCAAV,CAAN;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASa,OAAT,CAAkBC,GAAlB,EAA+BC,GAA/B,EAA6D;AAClE,SAAOV,MAAM,CAACC,IAAP,CACLQ,GADK,EAELC,GAAG,KAAKnB,KAAK,CAACkB,GAAD,CAAL,GAAa,KAAb,GAAqBJ,SAA1B,CAAH,KAA4Cf,QAAQ,CAACmB,GAAD,CAAR,GAAgB,QAAhB,GAA2BJ,SAAvE,CAFK,CAAP;AAID","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright 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 */\nimport BigNumber from 'bignumber.js'\nimport { isBase64, isHex } from './string'\n\n/**\n * Bytes module\n * @module @aeternity/aepp-sdk/es/utils/bytes\n * @example import { Crypto } from '@aeternity/aepp-sdk'\n */\n\n/**\n * Convert bignumber to byte array\n * @param {BigNumber} x bignumber instance\n * @return Buffer\n */\nexport function bigNumberToByteArray (x: BigNumber): Buffer {\n if (!x.isInteger()) throw new Error(`Unexpected not integer value: ${x.toFixed()}`)\n let hexString = x.toString(16)\n if (hexString.length % 2 === 1) hexString = '0' + hexString\n return Buffer.from(hexString, 'hex')\n}\n\n/**\n * Convert string, number, or BigNumber to byte array\n * @param {null|string|number|BigNumber} val\n * @param {boolean} big enables force conversion to BigNumber\n * @return Buffer\n */\nexport function toBytes (val?: null | string | number | BigNumber, big: boolean = false): Buffer {\n // Encode a value to bytes.\n // If the value is an int it will be encoded as bytes big endian\n // Raises ValueError if the input is not an int or string\n\n if (val === undefined || val === null) return Buffer.from([])\n if (Number.isInteger(val) || BigNumber.isBigNumber(val) || big) {\n if (!BigNumber.isBigNumber(val)) val = new BigNumber(val)\n return bigNumberToByteArray(val)\n }\n if (typeof val === 'string') {\n return Buffer.from(val)\n }\n throw new Error('Byte serialization not supported')\n}\n\n/**\n * Convert a string to a Buffer. If encoding is not specified, hex-encoding\n * will be used if the input is valid hex. If the input is valid base64 but\n * not valid hex, base64 will be used. Otherwise, utf8 will be used.\n * @param {string} str String to be converted.\n * @param {string} [enc] Encoding of the input string.\n * @return {buffer} Buffer containing the input data.\n */\nexport function str2buf (str: string, enc?: BufferEncoding): Buffer {\n return Buffer.from(\n str,\n enc ?? (isHex(str) ? 'hex' : undefined) ?? (isBase64(str) ? 'base64' : undefined)\n )\n}\n"],"file":"bytes.js"}
|