@aeternity/aepp-sdk 12.0.0 → 12.1.2
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/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -15
- package/dist/aepp-sdk.browser-script.js.map +1 -1
- package/dist/aepp-sdk.browser.js +2 -1
- package/dist/aepp-sdk.browser.js.LICENSE.txt +1 -0
- package/dist/aepp-sdk.browser.js.map +1 -1
- package/dist/aepp-sdk.js +20765 -1
- package/dist/aepp-sdk.js.map +1 -1
- package/es/AeSdk.d.ts +7 -7
- package/es/AeSdk.mjs.map +1 -1
- package/es/AeSdkAepp.d.ts +4 -3
- package/es/AeSdkAepp.mjs +2 -1
- package/es/AeSdkAepp.mjs.map +1 -1
- package/es/AeSdkBase.d.ts +22 -21
- package/es/AeSdkBase.mjs +25 -21
- package/es/AeSdkBase.mjs.map +1 -1
- package/es/AeSdkWallet.d.ts +4 -3
- package/es/AeSdkWallet.mjs +5 -1
- package/es/AeSdkWallet.mjs.map +1 -1
- package/es/Node.d.ts +7 -10
- package/es/Node.mjs +63 -57
- package/es/Node.mjs.map +1 -1
- package/es/account/Base.d.ts +7 -4
- package/es/account/Base.mjs +3 -3
- package/es/account/Base.mjs.map +1 -1
- package/es/account/Memory.d.ts +5 -4
- package/es/account/Memory.mjs +24 -2
- package/es/account/Memory.mjs.map +1 -1
- package/es/account/Rpc.d.ts +6 -6
- package/es/account/Rpc.mjs +3 -2
- package/es/account/Rpc.mjs.map +1 -1
- package/es/aens.d.ts +27 -14
- package/es/aens.mjs +27 -21
- package/es/aens.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/Browser.d.ts +2 -1
- package/es/aepp-wallet-communication/connection/Browser.mjs +5 -2
- package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +1 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +1 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +5 -1
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
- package/es/aepp-wallet-communication/connection-proxy.d.ts +1 -0
- package/es/aepp-wallet-communication/connection-proxy.mjs +1 -0
- package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
- package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +1 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -5
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
- package/es/aepp-wallet-communication/rpc/types.d.ts +8 -8
- package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
- package/es/aepp-wallet-communication/schema.d.ts +17 -2
- package/es/aepp-wallet-communication/schema.mjs +54 -17
- package/es/aepp-wallet-communication/schema.mjs.map +1 -1
- package/es/aepp-wallet-communication/wallet-detector.d.ts +2 -1
- package/es/aepp-wallet-communication/wallet-detector.mjs +2 -3
- package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
- package/es/apis/node/models/index.d.ts +6 -2
- package/es/apis/node/models/index.mjs.map +1 -1
- package/es/apis/node/models/mappers.mjs +4 -2
- package/es/apis/node/models/mappers.mjs.map +1 -1
- package/es/chain.d.ts +92 -64
- package/es/chain.mjs +190 -154
- package/es/chain.mjs.map +1 -1
- package/es/channel/handlers.d.ts +3 -3
- package/es/channel/handlers.mjs +42 -44
- package/es/channel/handlers.mjs.map +1 -1
- package/es/channel/index.d.ts +43 -52
- package/es/channel/index.mjs +46 -49
- package/es/channel/index.mjs.map +1 -1
- package/es/channel/internal.d.ts +16 -15
- package/es/channel/internal.mjs +67 -62
- package/es/channel/internal.mjs.map +1 -1
- package/es/contract/Compiler.d.ts +1 -0
- package/es/contract/Compiler.mjs +5 -4
- package/es/contract/Compiler.mjs.map +1 -1
- package/es/contract/aci.d.ts +17 -15
- package/es/contract/aci.mjs +58 -45
- package/es/contract/aci.mjs.map +1 -1
- package/es/contract/ga.d.ts +16 -15
- package/es/contract/ga.mjs +12 -7
- package/es/contract/ga.mjs.map +1 -1
- package/es/contract/methods.d.ts +9 -6
- package/es/contract/methods.mjs +9 -6
- package/es/contract/methods.mjs.map +1 -1
- package/es/deprecated/index.d.ts +143 -0
- package/es/deprecated/index.mjs +162 -0
- package/es/deprecated/index.mjs.map +1 -0
- package/es/deprecated/methods.d.ts +18 -0
- package/es/deprecated/methods.mjs +26 -0
- package/es/deprecated/methods.mjs.map +1 -0
- package/es/index.d.ts +4 -1
- package/es/index.mjs +4 -1
- package/es/index.mjs.map +1 -1
- package/es/oracle.d.ts +69 -62
- package/es/oracle.mjs +121 -103
- package/es/oracle.mjs.map +1 -1
- package/es/spend.d.ts +16 -15
- package/es/spend.mjs +19 -30
- package/es/spend.mjs.map +1 -1
- package/es/tx/builder/address.d.ts +25 -0
- package/es/tx/builder/address.mjs +45 -0
- package/es/tx/builder/address.mjs.map +1 -0
- package/es/tx/builder/constants.d.ts +55 -26
- package/es/tx/builder/constants.mjs +60 -38
- package/es/tx/builder/constants.mjs.map +1 -1
- package/es/tx/builder/field-types/coin-amount.d.ts +13 -0
- package/es/tx/builder/field-types/coin-amount.mjs +26 -0
- package/es/tx/builder/field-types/coin-amount.mjs.map +1 -0
- package/es/tx/builder/field-types/deposit.d.ts +15 -0
- package/es/tx/builder/field-types/deposit.mjs +19 -0
- package/es/tx/builder/field-types/deposit.mjs.map +1 -0
- package/es/tx/builder/field-types/fee.d.ts +25 -0
- package/es/tx/{min-fee.mjs → builder/field-types/fee.mjs} +62 -60
- package/es/tx/builder/field-types/fee.mjs.map +1 -0
- package/es/tx/builder/field-types/field.d.ts +6 -0
- package/es/tx/builder/field-types/field.mjs +15 -0
- package/es/tx/builder/field-types/field.mjs.map +1 -0
- package/es/tx/builder/field-types/gas-limit.d.ts +12 -0
- package/es/tx/builder/field-types/gas-limit.mjs +33 -0
- package/es/tx/builder/field-types/gas-limit.mjs.map +1 -0
- package/es/tx/builder/field-types/gas-price.d.ts +8 -0
- package/es/tx/builder/field-types/gas-price.mjs +18 -0
- package/es/tx/builder/field-types/gas-price.mjs.map +1 -0
- package/es/tx/builder/field-types/index.d.ts +70 -0
- package/es/tx/builder/field-types/index.mjs +25 -0
- package/es/tx/builder/field-types/index.mjs.map +1 -0
- package/es/tx/builder/field-types/name-fee.d.ts +20 -0
- package/es/tx/builder/field-types/name-fee.mjs +24 -0
- package/es/tx/builder/field-types/name-fee.mjs.map +1 -0
- package/es/tx/builder/field-types/name-id.d.ts +14 -0
- package/es/tx/builder/field-types/name-id.mjs +19 -0
- package/es/tx/builder/field-types/name-id.mjs.map +1 -0
- package/es/tx/builder/field-types/name.d.ts +13 -0
- package/es/tx/builder/field-types/name.mjs +18 -0
- package/es/tx/builder/field-types/name.mjs.map +1 -0
- package/es/tx/builder/field-types/short-u-int.d.ts +6 -0
- package/es/tx/builder/field-types/short-u-int.mjs +12 -0
- package/es/tx/builder/field-types/short-u-int.mjs.map +1 -0
- package/es/tx/builder/field-types/u-int.d.ts +8 -0
- package/es/tx/builder/field-types/u-int.mjs +14 -0
- package/es/tx/builder/field-types/u-int.mjs.map +1 -0
- package/es/tx/builder/helpers.d.ts +27 -33
- package/es/tx/builder/helpers.mjs +41 -47
- package/es/tx/builder/helpers.mjs.map +1 -1
- package/es/tx/builder/index.d.ts +25 -12
- package/es/tx/builder/index.mjs +74 -83
- package/es/tx/builder/index.mjs.map +1 -1
- package/es/tx/builder/schema.d.ts +995 -144
- package/es/tx/builder/schema.mjs +121 -170
- package/es/tx/builder/schema.mjs.map +1 -1
- package/es/tx/index.d.ts +28 -27
- package/es/tx/index.mjs +97 -117
- package/es/tx/index.mjs.map +1 -1
- package/es/tx/validator.d.ts +4 -3
- package/es/tx/validator.mjs +79 -92
- package/es/tx/validator.mjs.map +1 -1
- package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -1
- package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -1
- package/es/typings/bip32-path/index.d.mjs.map +1 -1
- package/es/typings/blakejs/index.d.mjs.map +1 -1
- package/es/typings/sha-js/index.d.mjs +2 -0
- package/es/typings/sha-js/index.d.mjs.map +1 -0
- package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -1
- package/es/utils/amount-formatter.d.ts +9 -9
- package/es/utils/amount-formatter.mjs +17 -17
- package/es/utils/amount-formatter.mjs.map +1 -1
- package/es/utils/autorest.mjs +7 -7
- package/es/utils/autorest.mjs.map +1 -1
- package/es/utils/bignumber.mjs +2 -1
- package/es/utils/bignumber.mjs.map +1 -1
- package/es/utils/bytes.mjs +1 -1
- package/es/utils/bytes.mjs.map +1 -1
- package/es/utils/crypto.d.ts +8 -23
- package/es/utils/crypto.mjs +15 -41
- package/es/utils/crypto.mjs.map +1 -1
- package/es/utils/encoder-types.d.ts +61 -0
- package/es/utils/encoder-types.mjs +36 -0
- package/es/utils/encoder-types.mjs.map +1 -0
- package/es/utils/encoder.d.ts +6 -7
- package/es/utils/encoder.mjs +42 -26
- package/es/utils/encoder.mjs.map +1 -1
- package/es/utils/errors.d.ts +1 -11
- package/es/utils/errors.mjs +4 -20
- package/es/utils/errors.mjs.map +1 -1
- package/es/utils/hd-wallet.d.ts +18 -2
- package/es/utils/hd-wallet.mjs +64 -34
- package/es/utils/hd-wallet.mjs.map +1 -1
- package/es/utils/json-big.mjs +2 -2
- package/es/utils/json-big.mjs.map +1 -1
- package/es/utils/keystore.mjs +4 -2
- package/es/utils/keystore.mjs.map +1 -1
- package/es/utils/mptree.d.ts +2 -2
- package/es/utils/mptree.mjs +11 -6
- package/es/utils/mptree.mjs.map +1 -1
- package/es/utils/other.d.ts +8 -2
- package/es/utils/other.mjs +15 -3
- package/es/utils/other.mjs.map +1 -1
- package/es/utils/semver-satisfies.d.ts +1 -1
- package/es/utils/semver-satisfies.mjs +2 -2
- package/es/utils/semver-satisfies.mjs.map +1 -1
- package/es/utils/string.mjs.map +1 -1
- package/package.json +36 -34
- package/src/AeSdk.ts +30 -27
- package/src/AeSdkAepp.ts +93 -84
- package/src/AeSdkBase.ts +148 -130
- package/src/AeSdkWallet.ts +172 -156
- package/src/Node.ts +108 -102
- package/src/account/Base.ts +42 -32
- package/src/account/Memory.ts +45 -30
- package/src/account/Rpc.ts +32 -30
- package/src/aens.ts +124 -108
- package/src/aepp-wallet-communication/connection/Browser.ts +18 -15
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +22 -21
- package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +63 -52
- package/src/aepp-wallet-communication/connection-proxy.ts +8 -7
- package/src/aepp-wallet-communication/rpc/RpcClient.ts +67 -61
- package/src/aepp-wallet-communication/rpc/types.ts +32 -32
- package/src/aepp-wallet-communication/schema.ts +117 -74
- package/src/aepp-wallet-communication/wallet-detector.ts +29 -28
- package/src/apis/node/code-model-v4.yaml +54 -20
- package/src/apis/node/models/index.ts +6 -2
- package/src/apis/node/models/mappers.ts +4 -2
- package/src/chain.ts +286 -228
- package/src/channel/handlers.ts +424 -372
- package/src/channel/index.ts +285 -251
- package/src/channel/internal.ts +248 -232
- package/src/contract/Compiler.ts +22 -21
- package/src/contract/aci.ts +267 -258
- package/src/contract/ga.ts +93 -72
- package/src/contract/methods.ts +32 -27
- package/src/deprecated/index.ts +172 -0
- package/src/deprecated/methods.ts +25 -0
- package/src/index.ts +37 -32
- package/src/oracle.ts +211 -189
- package/src/spend.ts +82 -70
- package/src/tx/builder/address.ts +50 -0
- package/src/tx/builder/constants.ts +82 -52
- package/src/tx/builder/field-types/coin-amount.ts +27 -0
- package/src/tx/builder/field-types/deposit.ts +21 -0
- package/src/tx/builder/field-types/fee.ts +143 -0
- package/src/tx/builder/field-types/field.ts +9 -0
- package/src/tx/builder/field-types/gas-limit.ts +41 -0
- package/src/tx/builder/field-types/gas-price.ts +16 -0
- package/src/tx/builder/field-types/index.ts +45 -0
- package/src/tx/builder/field-types/name-fee.ts +32 -0
- package/src/tx/builder/field-types/name-id.ts +20 -0
- package/src/tx/builder/field-types/name.ts +18 -0
- package/src/tx/builder/field-types/short-u-int.ts +11 -0
- package/src/tx/builder/field-types/u-int.ts +16 -0
- package/src/tx/builder/helpers.ts +112 -117
- package/src/tx/builder/index.ts +203 -197
- package/src/tx/builder/schema.ts +421 -465
- package/src/tx/index.ts +128 -135
- package/src/tx/validator.ts +165 -161
- package/src/typings/@aeternity__argon2-browser/index.d.ts +1 -1
- package/src/typings/@aeternity__uuid/index.d.ts +3 -1
- package/src/typings/bip32-path/index.d.ts +6 -6
- package/src/typings/blakejs/index.d.ts +4 -32
- package/src/typings/sha-js/index.d.ts +5 -0
- package/src/typings/tweetnacl-auth/index.d.ts +2 -2
- package/src/utils/amount-formatter.ts +41 -41
- package/src/utils/autorest.ts +57 -54
- package/src/utils/bignumber.ts +7 -6
- package/src/utils/bytes.ts +19 -19
- package/src/utils/crypto.ts +82 -94
- package/src/utils/encoder-types.ts +63 -0
- package/src/utils/encoder.ts +104 -56
- package/src/utils/errors.ts +246 -264
- package/src/utils/hd-wallet.ts +114 -82
- package/src/utils/json-big.ts +16 -15
- package/src/utils/keystore.ts +65 -62
- package/src/utils/mptree.ts +59 -56
- package/src/utils/other.ts +26 -18
- package/src/utils/semver-satisfies.ts +15 -11
- package/src/utils/string.ts +10 -10
- package/es/tx/builder/field-types.d.ts +0 -62
- package/es/tx/builder/field-types.mjs +0 -126
- package/es/tx/builder/field-types.mjs.map +0 -1
- package/es/tx/min-fee.d.ts +0 -20
- package/es/tx/min-fee.mjs.map +0 -1
- package/src/tx/builder/field-types.ts +0 -111
- package/src/tx/min-fee.ts +0 -136
package/es/utils/autorest.mjs
CHANGED
|
@@ -14,14 +14,14 @@ export const genRequestQueuesPolicy = () => {
|
|
|
14
14
|
const key = request.headers.get('__queue');
|
|
15
15
|
request.headers.delete('__queue');
|
|
16
16
|
|
|
17
|
-
const getResponse = async () =>
|
|
17
|
+
const getResponse = async () => next(request);
|
|
18
18
|
|
|
19
|
-
if (key == null) return
|
|
19
|
+
if (key == null) return getResponse();
|
|
20
20
|
const req = ((_requestQueues$get = requestQueues.get(key)) !== null && _requestQueues$get !== void 0 ? _requestQueues$get : Promise.resolve()).then(getResponse, getResponse); // TODO: remove after fixing https://github.com/aeternity/aeternity/issues/3803
|
|
21
21
|
// gap to ensure that node won't reject the nonce
|
|
22
22
|
|
|
23
|
-
requestQueues.set(key, req.then(async () =>
|
|
24
|
-
return
|
|
23
|
+
requestQueues.set(key, req.then(async () => pause(750)));
|
|
24
|
+
return req;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
},
|
|
@@ -37,7 +37,7 @@ export const genCombineGetRequestsPolicy = () => {
|
|
|
37
37
|
async sendRequest(request, next) {
|
|
38
38
|
var _pendingGetRequests$g;
|
|
39
39
|
|
|
40
|
-
if (request.method !== 'GET') return
|
|
40
|
+
if (request.method !== 'GET') return next(request);
|
|
41
41
|
const key = JSON.stringify([request.url, request.body]);
|
|
42
42
|
const response = (_pendingGetRequests$g = pendingGetRequests.get(key)) !== null && _pendingGetRequests$g !== void 0 ? _pendingGetRequests$g : next(request);
|
|
43
43
|
pendingGetRequests.set(key, response);
|
|
@@ -87,10 +87,10 @@ export const genVersionCheckPolicy = (name, ignorePath, versionPromise, geVersio
|
|
|
87
87
|
name: 'version-check',
|
|
88
88
|
|
|
89
89
|
async sendRequest(request, next) {
|
|
90
|
-
if (new URL(request.url).pathname === ignorePath) return
|
|
90
|
+
if (new URL(request.url).pathname === ignorePath) return next(request);
|
|
91
91
|
const args = [await versionPromise, geVersion, ltVersion];
|
|
92
92
|
if (!semverSatisfies(...args)) throw new UnsupportedVersionError(name, ...args);
|
|
93
|
-
return
|
|
93
|
+
return next(request);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autorest.mjs","names":["RestError","pause","semverSatisfies","UnsupportedVersionError","genRequestQueuesPolicy","requestQueues","Map","policy","name","sendRequest","request","next","key","headers","get","delete","getResponse","req","Promise","resolve","then","set","position","genCombineGetRequestsPolicy","pendingGetRequests","method","JSON","stringify","url","body","response","genErrorFormatterPolicy","getMessage","error","bodyAsText","parse","e","message","URL","pathname","slice","genVersionCheckPolicy","ignorePath","versionPromise","geVersion","ltVersion","args"],"sources":["../../src/utils/autorest.ts"],"sourcesContent":["import { RestError, PipelineResponse, PipelinePolicy } from '@azure/core-rest-pipeline'
|
|
1
|
+
{"version":3,"file":"autorest.mjs","names":["RestError","pause","semverSatisfies","UnsupportedVersionError","genRequestQueuesPolicy","requestQueues","Map","policy","name","sendRequest","request","next","key","headers","get","delete","getResponse","req","Promise","resolve","then","set","position","genCombineGetRequestsPolicy","pendingGetRequests","method","JSON","stringify","url","body","response","genErrorFormatterPolicy","getMessage","error","bodyAsText","parse","e","message","URL","pathname","slice","genVersionCheckPolicy","ignorePath","versionPromise","geVersion","ltVersion","args"],"sources":["../../src/utils/autorest.ts"],"sourcesContent":["import { RestError, PipelineResponse, PipelinePolicy } from '@azure/core-rest-pipeline';\nimport { AdditionalPolicyConfig } from '@azure/core-client';\nimport { pause } from './other';\nimport semverSatisfies from './semver-satisfies';\nimport { UnsupportedVersionError } from './errors';\n\nexport const genRequestQueuesPolicy = (): AdditionalPolicyConfig => {\n const requestQueues = new Map<string, Promise<unknown>>();\n\n return {\n policy: {\n name: 'request-queues',\n async sendRequest(request, next) {\n const key = request.headers.get('__queue');\n request.headers.delete('__queue');\n const getResponse = async (): Promise<PipelineResponse> => next(request);\n if (key == null) return getResponse();\n const req = (requestQueues.get(key) ?? Promise.resolve()).then(getResponse, getResponse);\n // TODO: remove after fixing https://github.com/aeternity/aeternity/issues/3803\n // gap to ensure that node won't reject the nonce\n requestQueues.set(key, req.then(async () => pause(750)));\n return req;\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genCombineGetRequestsPolicy = (): AdditionalPolicyConfig => {\n const pendingGetRequests = new Map<string, Promise<PipelineResponse>>();\n\n return {\n policy: {\n name: 'combine-requests',\n async sendRequest(request, next) {\n if (request.method !== 'GET') return next(request);\n const key = JSON.stringify([request.url, request.body]);\n const response = pendingGetRequests.get(key) ?? next(request);\n pendingGetRequests.set(key, response);\n try {\n return await response;\n } finally {\n pendingGetRequests.delete(key);\n }\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genErrorFormatterPolicy = (\n getMessage: (b: any) => string,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'error-formatter',\n async sendRequest(request, next) {\n try {\n return await next(request);\n } catch (error) {\n if (!(error instanceof RestError) || error.request == null) throw error;\n if (error.response?.bodyAsText == null) throw error;\n\n let body;\n try {\n body = JSON.parse(error.response.bodyAsText);\n } catch (e) {\n throw error;\n }\n error.message = `${new URL(error.request.url).pathname.slice(1)} error`;\n const message = getMessage(body);\n if (message !== '') error.message += `:${message}`;\n throw error;\n }\n },\n },\n position: 'perCall',\n});\n\nexport const genVersionCheckPolicy = (\n name: string,\n ignorePath: string,\n versionPromise: Promise<string>,\n geVersion: string,\n ltVersion: string,\n): PipelinePolicy => ({\n name: 'version-check',\n async sendRequest(request, next) {\n if (new URL(request.url).pathname === ignorePath) return next(request);\n const args = [await versionPromise, geVersion, ltVersion] as const;\n if (!semverSatisfies(...args)) throw new UnsupportedVersionError(name, ...args);\n return next(request);\n },\n});\n"],"mappings":"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"}
|
package/es/utils/bignumber.mjs
CHANGED
|
@@ -13,7 +13,8 @@ export const isBigNumber = number => {
|
|
|
13
13
|
var _context;
|
|
14
14
|
|
|
15
15
|
if (typeof number === 'bigint') return true;
|
|
16
|
-
return _includesInstanceProperty(_context = ['number', 'object', 'string']).call(_context, typeof number)
|
|
16
|
+
return _includesInstanceProperty(_context = ['number', 'object', 'string']).call(_context, typeof number) // eslint-disable-next-line no-restricted-globals
|
|
17
|
+
&& (!isNaN(number) || Number.isInteger(number) || BigNumber.isBigNumber(number));
|
|
17
18
|
};
|
|
18
19
|
/**
|
|
19
20
|
* BigNumber ceil operation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bignumber.mjs","names":["BigNumber","isBigNumber","number","isNaN","Number","isInteger","ceil","bigNumber","integerValue","ROUND_CEIL"],"sources":["../../src/utils/bignumber.ts"],"sourcesContent":["/**\n * Big Number Helpers\n */\nimport BigNumber from 'bignumber.js'
|
|
1
|
+
{"version":3,"file":"bignumber.mjs","names":["BigNumber","isBigNumber","number","isNaN","Number","isInteger","ceil","bigNumber","integerValue","ROUND_CEIL"],"sources":["../../src/utils/bignumber.ts"],"sourcesContent":["/**\n * Big Number Helpers\n */\nimport BigNumber from 'bignumber.js';\n\n/**\n * Check if value is BigNumber, Number, BigInt or number string representation\n * @param number - number to check\n */\nexport const isBigNumber = (number: string | number | bigint | BigNumber): boolean => {\n if (typeof number === 'bigint') return true;\n return ['number', 'object', 'string'].includes(typeof number)\n // eslint-disable-next-line no-restricted-globals\n && (!isNaN(number as number) || Number.isInteger(number) || BigNumber.isBigNumber(number));\n};\n\n/**\n * BigNumber ceil operation\n */\nexport const ceil = (bigNumber: BigNumber): BigNumber => bigNumber\n .integerValue(BigNumber.ROUND_CEIL);\n"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,SAAP,MAAsB,cAAtB;AAEA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,WAAW,GAAIC,MAAD,IAA2D;EAAA;;EACpF,IAAI,OAAOA,MAAP,KAAkB,QAAtB,EAAgC,OAAO,IAAP;EAChC,OAAO,sCAAC,QAAD,EAAW,QAAX,EAAqB,QAArB,kBAAwC,OAAOA,MAA/C,EACL;EADK,IAED,CAACC,KAAK,CAACD,MAAD,CAAN,IAA4BE,MAAM,CAACC,SAAP,CAAiBH,MAAjB,CAA5B,IAAwDF,SAAS,CAACC,WAAV,CAAsBC,MAAtB,CAFvD,CAAP;AAGD,CALM;AAOP;AACA;AACA;;AACA,OAAO,MAAMI,IAAI,GAAIC,SAAD,IAAqCA,SAAS,CAC/DC,YADsD,CACzCR,SAAS,CAACS,UAD+B,CAAlD"}
|
package/es/utils/bytes.mjs
CHANGED
|
@@ -31,7 +31,7 @@ import { isBase64, isHex } from "./string.mjs";
|
|
|
31
31
|
export function bigNumberToByteArray(x) {
|
|
32
32
|
if (!x.isInteger()) throw new TypeError(`Unexpected not integer value: ${x.toFixed()}`);
|
|
33
33
|
let hexString = x.toString(16);
|
|
34
|
-
if (hexString.length % 2 === 1) hexString =
|
|
34
|
+
if (hexString.length % 2 === 1) hexString = `0${hexString}`;
|
|
35
35
|
return _Buffer.from(hexString, 'hex');
|
|
36
36
|
}
|
|
37
37
|
/**
|
package/es/utils/bytes.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.mjs","names":["BigNumber","NoSerializerFoundError","TypeError","isBase64","isHex","bigNumberToByteArray","x","isInteger","toFixed","hexString","toString","length","from","toBytes","val","big","undefined","Number","isBigNumber","str2buf","str","enc","bytesToHex","b","hexToBytes","s"],"sources":["../../src/utils/bytes.ts"],"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'
|
|
1
|
+
{"version":3,"file":"bytes.mjs","names":["BigNumber","NoSerializerFoundError","TypeError","isBase64","isHex","bigNumberToByteArray","x","isInteger","toFixed","hexString","toString","length","from","toBytes","val","big","undefined","Number","isBigNumber","str2buf","str","enc","bytesToHex","b","hexToBytes","s"],"sources":["../../src/utils/bytes.ts"],"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 { NoSerializerFoundError, TypeError } from './errors';\nimport { isBase64, isHex } from './string';\n\n/**\n * Convert bignumber to byte array\n * @param x - bignumber instance\n * @returns Buffer\n */\nexport function bigNumberToByteArray(x: BigNumber): Buffer {\n if (!x.isInteger()) throw new TypeError(`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 val - value to convert\n * @param big - enables force conversion to BigNumber\n * @returns Buffer\n */\nexport function toBytes(val?: null | string | number | BigNumber, big = 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 NoSerializerFoundError();\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 str - String to be converted.\n * @param enc - Encoding of the input string.\n * @returns 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\nexport const bytesToHex = (b: Uint8Array): string => Buffer.from(b).toString('hex');\n\nexport const hexToBytes = (s: string): Uint8Array => Buffer.from(s, 'hex');\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,SAAP,MAAsB,cAAtB;SACSC,sB,EAAwBC,S;SACxBC,Q,EAAUC,K;AAEnB;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,oBAAT,CAA8BC,CAA9B,EAAoD;EACzD,IAAI,CAACA,CAAC,CAACC,SAAF,EAAL,EAAoB,MAAM,IAAIL,SAAJ,CAAe,iCAAgCI,CAAC,CAACE,OAAF,EAAY,EAA3D,CAAN;EACpB,IAAIC,SAAS,GAAGH,CAAC,CAACI,QAAF,CAAW,EAAX,CAAhB;EACA,IAAID,SAAS,CAACE,MAAV,GAAmB,CAAnB,KAAyB,CAA7B,EAAgCF,SAAS,GAAI,IAAGA,SAAU,EAA1B;EAChC,OAAO,QAAOG,IAAP,CAAYH,SAAZ,EAAuB,KAAvB,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASI,OAAT,CAAiBC,GAAjB,EAAgF;EAAA,IAArBC,GAAqB,uEAAf,KAAe;EACrF;EACA;EACA;EAEA,IAAID,GAAG,KAAKE,SAAR,IAAqBF,GAAG,KAAK,IAAjC,EAAuC,OAAO,QAAOF,IAAP,CAAY,EAAZ,CAAP;;EACvC,IAAIK,MAAM,CAACV,SAAP,CAAiBO,GAAjB,KAAyBd,SAAS,CAACkB,WAAV,CAAsBJ,GAAtB,CAAzB,IAAuDC,GAA3D,EAAgE;IAC9D,IAAI,CAACf,SAAS,CAACkB,WAAV,CAAsBJ,GAAtB,CAAL,EAAiCA,GAAG,GAAG,IAAId,SAAJ,CAAcc,GAAd,CAAN;IACjC,OAAOT,oBAAoB,CAACS,GAAD,CAA3B;EACD;;EACD,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;IAC3B,OAAO,QAAOF,IAAP,CAAYE,GAAZ,CAAP;EACD;;EACD,MAAM,IAAIb,sBAAJ,EAAN;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASkB,OAAT,CAAiBC,GAAjB,EAA8BC,GAA9B,EAA4D;EAAA;;EACjE,OAAO,QAAOT,IAAP,CACLQ,GADK,UAELC,GAFK,aAELA,GAFK,cAELA,GAFK,GAEGjB,KAAK,CAACgB,GAAD,CAAL,GAAa,KAAb,GAAqBJ,SAFxB,uCAEuCb,QAAQ,CAACiB,GAAD,CAAR,GAAgB,QAAhB,GAA2BJ,SAFlE,CAAP;AAID;AAED,OAAO,MAAMM,UAAU,GAAIC,CAAD,IAA2B,QAAOX,IAAP,CAAYW,CAAZ,EAAeb,QAAf,CAAwB,KAAxB,CAA9C;AAEP,OAAO,MAAMc,UAAU,GAAIC,CAAD,IAA2B,QAAOb,IAAP,CAAYa,CAAZ,EAAe,KAAf,CAA9C"}
|
package/es/utils/crypto.d.ts
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { SignKeyPair } from 'tweetnacl';
|
|
3
|
-
import {
|
|
4
|
-
import { sha256hash, EncodedData, EncodingType } from './encoder';
|
|
5
|
-
export { sha256hash };
|
|
3
|
+
import { Encoded, Encoding } from './encoder';
|
|
6
4
|
/**
|
|
7
5
|
* Generate address from secret key
|
|
8
6
|
* @param secret - Private key
|
|
9
7
|
* @returns Public key encoded as address
|
|
10
8
|
*/
|
|
11
|
-
export declare function getAddressFromPriv(secret: string | Uint8Array):
|
|
9
|
+
export declare function getAddressFromPriv(secret: string | Uint8Array): Encoded.AccountAddress;
|
|
12
10
|
/**
|
|
13
11
|
* Check if address is valid
|
|
14
12
|
* @param address - Address
|
|
15
13
|
* @param prefix - Transaction prefix. Default: 'ak'
|
|
16
14
|
* @returns is valid
|
|
17
15
|
*/
|
|
18
|
-
export declare function isAddressValid(address: string, prefix?:
|
|
16
|
+
export declare function isAddressValid(address: string, prefix?: Encoding): boolean;
|
|
19
17
|
/**
|
|
20
18
|
* Generate a random salt (positive integer)
|
|
21
19
|
* @returns random salt
|
|
22
20
|
*/
|
|
23
|
-
export declare function
|
|
21
|
+
export declare function genSalt(): number;
|
|
24
22
|
/**
|
|
25
23
|
* Converts a positive integer to the smallest possible
|
|
26
24
|
* representation in a binary digit representation
|
|
@@ -33,14 +31,15 @@ export declare function encodeUnsigned(value: number): Buffer;
|
|
|
33
31
|
* @param input - Data to hash
|
|
34
32
|
* @returns Hash
|
|
35
33
|
*/
|
|
36
|
-
export declare function hash(input:
|
|
34
|
+
export declare function hash(input: string | Uint8Array): Buffer;
|
|
37
35
|
/**
|
|
38
36
|
* Compute contract address
|
|
37
|
+
* @category contract
|
|
39
38
|
* @param owner - Address of contract owner
|
|
40
39
|
* @param nonce - Round when contract was created
|
|
41
40
|
* @returns Contract address
|
|
42
41
|
*/
|
|
43
|
-
export declare function encodeContractAddress(owner:
|
|
42
|
+
export declare function encodeContractAddress(owner: Encoded.AccountAddress, nonce: number): Encoded.ContractAddress;
|
|
44
43
|
/**
|
|
45
44
|
* Generate keyPair from secret key
|
|
46
45
|
* @param secret - secret key
|
|
@@ -57,23 +56,9 @@ export declare function generateKeyPair(raw: true): {
|
|
|
57
56
|
secretKey: Buffer;
|
|
58
57
|
};
|
|
59
58
|
export declare function generateKeyPair(raw?: false): {
|
|
60
|
-
publicKey:
|
|
59
|
+
publicKey: Encoded.AccountAddress;
|
|
61
60
|
secretKey: string;
|
|
62
61
|
};
|
|
63
|
-
/**
|
|
64
|
-
* Encrypt given data using `password`
|
|
65
|
-
* @param password - Password to encrypt with
|
|
66
|
-
* @param binaryData - Data to encrypt
|
|
67
|
-
* @returns Encrypted data
|
|
68
|
-
*/
|
|
69
|
-
export declare function encryptKey(password: string, binaryData: Uint8Array): Uint8Array;
|
|
70
|
-
/**
|
|
71
|
-
* Decrypt given data using `password`
|
|
72
|
-
* @param password - Password to decrypt with
|
|
73
|
-
* @param encrypted - Data to decrypt
|
|
74
|
-
* @returns Decrypted data
|
|
75
|
-
*/
|
|
76
|
-
export declare function decryptKey(password: string, encrypted: Uint8Array): Uint8Array;
|
|
77
62
|
/**
|
|
78
63
|
* Generate signature
|
|
79
64
|
* @param data - Data to sign
|
package/es/utils/crypto.mjs
CHANGED
|
@@ -19,21 +19,20 @@ const {
|
|
|
19
19
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
20
20
|
* PERFORMANCE OF THIS SOFTWARE.
|
|
21
21
|
*/
|
|
22
|
-
import nacl from 'tweetnacl';
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
import nacl from 'tweetnacl'; // js extension is required for mjs build, not importing the whole package to reduce bundle size
|
|
23
|
+
// eslint-disable-next-line import/extensions
|
|
24
|
+
|
|
25
|
+
import _blakejsBlake2bJs from 'blakejs/blake2b.js';
|
|
25
26
|
const {
|
|
26
27
|
blake2b
|
|
27
|
-
} =
|
|
28
|
+
} = _blakejsBlake2bJs;
|
|
28
29
|
import _varuintBitcoin from 'varuint-bitcoin';
|
|
29
30
|
const {
|
|
30
31
|
encode: varuintEncode
|
|
31
32
|
} = _varuintBitcoin;
|
|
32
33
|
import { str2buf } from "./bytes.mjs";
|
|
33
34
|
import { concatBuffers } from "./other.mjs";
|
|
34
|
-
import {
|
|
35
|
-
export { sha256hash };
|
|
36
|
-
const Ecb = aesjs.ModeOfOperation.ecb;
|
|
35
|
+
import { decode, encode, Encoding } from "./encoder.mjs";
|
|
37
36
|
/**
|
|
38
37
|
* Generate address from secret key
|
|
39
38
|
* @param secret - Private key
|
|
@@ -43,7 +42,7 @@ const Ecb = aesjs.ModeOfOperation.ecb;
|
|
|
43
42
|
export function getAddressFromPriv(secret) {
|
|
44
43
|
const secretBuffer = typeof secret === 'string' ? str2buf(secret) : secret;
|
|
45
44
|
const keys = nacl.sign.keyPair.fromSecretKey(secretBuffer);
|
|
46
|
-
return encode(keys.publicKey,
|
|
45
|
+
return encode(keys.publicKey, Encoding.AccountAddress);
|
|
47
46
|
}
|
|
48
47
|
/**
|
|
49
48
|
* Check if address is valid
|
|
@@ -53,7 +52,7 @@ export function getAddressFromPriv(secret) {
|
|
|
53
52
|
*/
|
|
54
53
|
|
|
55
54
|
export function isAddressValid(address) {
|
|
56
|
-
let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
55
|
+
let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Encoding.AccountAddress;
|
|
57
56
|
|
|
58
57
|
try {
|
|
59
58
|
decode(address);
|
|
@@ -67,7 +66,7 @@ export function isAddressValid(address) {
|
|
|
67
66
|
* @returns random salt
|
|
68
67
|
*/
|
|
69
68
|
|
|
70
|
-
export function
|
|
69
|
+
export function genSalt() {
|
|
71
70
|
return Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER));
|
|
72
71
|
}
|
|
73
72
|
/**
|
|
@@ -95,6 +94,7 @@ export function hash(input) {
|
|
|
95
94
|
|
|
96
95
|
/**
|
|
97
96
|
* Compute contract address
|
|
97
|
+
* @category contract
|
|
98
98
|
* @param owner - Address of contract owner
|
|
99
99
|
* @param nonce - Round when contract was created
|
|
100
100
|
* @returns Contract address
|
|
@@ -103,7 +103,7 @@ export function hash(input) {
|
|
|
103
103
|
export function encodeContractAddress(owner, nonce) {
|
|
104
104
|
const publicKey = decode(owner);
|
|
105
105
|
const binary = concatBuffers([publicKey, encodeUnsigned(nonce)]);
|
|
106
|
-
return encode(hash(binary),
|
|
106
|
+
return encode(hash(binary), Encoding.ContractAddress);
|
|
107
107
|
} // KEY-PAIR HELPERS
|
|
108
108
|
|
|
109
109
|
/**
|
|
@@ -134,38 +134,12 @@ export function generateKeyPair() {
|
|
|
134
134
|
publicKey: publicBuffer,
|
|
135
135
|
secretKey: secretBuffer
|
|
136
136
|
};
|
|
137
|
-
} else {
|
|
138
|
-
return {
|
|
139
|
-
publicKey: encode(publicBuffer, 'ak'),
|
|
140
|
-
secretKey: secretBuffer.toString('hex')
|
|
141
|
-
};
|
|
142
137
|
}
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Encrypt given data using `password`
|
|
146
|
-
* @param password - Password to encrypt with
|
|
147
|
-
* @param binaryData - Data to encrypt
|
|
148
|
-
* @returns Encrypted data
|
|
149
|
-
*/
|
|
150
|
-
|
|
151
|
-
export function encryptKey(password, binaryData) {
|
|
152
|
-
const hashedPasswordBytes = sha256hash(password);
|
|
153
|
-
const aesEcb = new Ecb(hashedPasswordBytes);
|
|
154
|
-
return aesEcb.encrypt(binaryData);
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Decrypt given data using `password`
|
|
158
|
-
* @param password - Password to decrypt with
|
|
159
|
-
* @param encrypted - Data to decrypt
|
|
160
|
-
* @returns Decrypted data
|
|
161
|
-
*/
|
|
162
|
-
|
|
163
|
-
export function decryptKey(password, encrypted) {
|
|
164
|
-
const encryptedBytes = _Buffer.from(encrypted);
|
|
165
138
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
139
|
+
return {
|
|
140
|
+
publicKey: encode(publicBuffer, Encoding.AccountAddress),
|
|
141
|
+
secretKey: secretBuffer.toString('hex')
|
|
142
|
+
};
|
|
169
143
|
} // SIGNATURES
|
|
170
144
|
|
|
171
145
|
/**
|
package/es/utils/crypto.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.mjs","names":["nacl","aesjs","str2buf","concatBuffers","encode","decode","sha256hash","Ecb","ModeOfOperation","ecb","getAddressFromPriv","secret","secretBuffer","keys","sign","keyPair","fromSecretKey","publicKey","isAddressValid","address","prefix","e","salt","Math","floor","random","Number","MAX_SAFE_INTEGER","encodeUnsigned","value","binary","allocUnsafe","writeUInt32BE","slice","findIndex","i","hash","input","from","blake2b","undefined","encodeContractAddress","owner","nonce","generateKeyPairFromSecret","generateKeyPair","raw","publicBuffer","secretKey","toString","encryptKey","password","binaryData","hashedPasswordBytes","aesEcb","encrypt","decryptKey","encrypted","encryptedBytes","decrypt","data","privateKey","detached","verify","signature","publicKeyBuffer","messageToHash","message","p","msg","varuintEncode","length","signMessage","verifyMessage","str","isValidKeypair"],"sources":["../../src/utils/crypto.ts"],"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 nacl, { SignKeyPair } from 'tweetnacl'\nimport aesjs from 'aes-js'\nimport { blake2b, Data } from 'blakejs'\nimport { encode as varuintEncode } from 'varuint-bitcoin'\n\nimport { str2buf } from './bytes'\nimport { concatBuffers } from './other'\nimport { encode, decode, sha256hash, EncodedData, EncodingType } from './encoder'\n\nexport { sha256hash }\n\nconst Ecb = aesjs.ModeOfOperation.ecb\n\n/**\n * Generate address from secret key\n * @param secret - Private key\n * @returns Public key encoded as address\n */\nexport function getAddressFromPriv (secret: string | Uint8Array): EncodedData<'ak'> {\n const secretBuffer = typeof secret === 'string' ? str2buf(secret) : secret\n const keys = nacl.sign.keyPair.fromSecretKey(secretBuffer)\n return encode(keys.publicKey, 'ak')\n}\n\n/**\n * Check if address is valid\n * @param address - Address\n * @param prefix - Transaction prefix. Default: 'ak'\n * @returns is valid\n */\nexport function isAddressValid (address: string, prefix: EncodingType = 'ak'): boolean {\n try {\n decode(address as EncodedData<typeof prefix>)\n return true\n } catch (e) {\n return false\n }\n}\n\n/**\n * Generate a random salt (positive integer)\n * @returns random salt\n */\nexport function salt (): number {\n return Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER))\n}\n\n/**\n * Converts a positive integer to the smallest possible\n * representation in a binary digit representation\n * @param value - Value to encode\n * @returns Encoded number\n */\nexport function encodeUnsigned (value: number): Buffer {\n const binary = Buffer.allocUnsafe(4)\n binary.writeUInt32BE(value)\n return binary.slice(binary.findIndex(i => i !== 0))\n}\n\n/**\n * Calculate 256bits Blake2b hash of `input`\n * @param input - Data to hash\n * @returns Hash\n */\nexport function hash (input: Data): Buffer {\n return Buffer.from(blake2b(input, undefined, 32)) // 256 bits\n}\n\n// Todo Duplicated in tx builder. remove\n/**\n * Compute contract address\n * @param owner - Address of contract owner\n * @param nonce - Round when contract was created\n * @returns Contract address\n */\nexport function encodeContractAddress (owner: EncodedData<'ak'>, nonce: number): EncodedData<'ct'> {\n const publicKey = decode(owner)\n const binary = concatBuffers([publicKey, encodeUnsigned(nonce)])\n return encode(hash(binary), 'ct')\n}\n\n// KEY-PAIR HELPERS\n\n/**\n * Generate keyPair from secret key\n * @param secret - secret key\n * @returns Object with Private(privateKey) and Public(publicKey) keys\n */\nexport function generateKeyPairFromSecret (secret: Uint8Array): SignKeyPair {\n return nacl.sign.keyPair.fromSecretKey(secret)\n}\n\n/**\n * Generate a random ED25519 keypair\n * @param raw - Whether to return raw (binary) keys\n * @returns Key pair\n */\nexport function generateKeyPair (raw: true): { publicKey: Buffer, secretKey: Buffer }\nexport function generateKeyPair (raw?: false): { publicKey: EncodedData<'ak'>, secretKey: string }\nexport function generateKeyPair (raw: boolean = false): {\n publicKey: EncodedData<'ak'> | Buffer\n secretKey: string | Buffer\n} {\n const keyPair = nacl.sign.keyPair()\n const publicBuffer = Buffer.from(keyPair.publicKey)\n const secretBuffer = Buffer.from(keyPair.secretKey)\n\n if (raw) {\n return {\n publicKey: publicBuffer,\n secretKey: secretBuffer\n }\n } else {\n return {\n publicKey: encode(publicBuffer, 'ak'),\n secretKey: secretBuffer.toString('hex')\n }\n }\n}\n\n/**\n * Encrypt given data using `password`\n * @param password - Password to encrypt with\n * @param binaryData - Data to encrypt\n * @returns Encrypted data\n */\nexport function encryptKey (password: string, binaryData: Uint8Array): Uint8Array {\n const hashedPasswordBytes = sha256hash(password)\n const aesEcb = new Ecb(hashedPasswordBytes)\n return aesEcb.encrypt(binaryData)\n}\n\n/**\n * Decrypt given data using `password`\n * @param password - Password to decrypt with\n * @param encrypted - Data to decrypt\n * @returns Decrypted data\n */\nexport function decryptKey (password: string, encrypted: Uint8Array): Uint8Array {\n const encryptedBytes = Buffer.from(encrypted)\n const hashedPasswordBytes = sha256hash(password)\n const aesEcb = new Ecb(hashedPasswordBytes)\n return aesEcb.decrypt(encryptedBytes)\n}\n\n// SIGNATURES\n\n/**\n * Generate signature\n * @param data - Data to sign\n * @param privateKey - Key to sign with\n * @returns Signature\n */\nexport function sign (data: string | Uint8Array, privateKey: string | Uint8Array): Uint8Array {\n return nacl.sign.detached(Buffer.from(data), Buffer.from(privateKey))\n}\n\n/**\n * Verify that signature was signed by public key\n * @param data - Data to verify\n * @param signature - Signature to verify\n * @param publicKey - Key to verify against\n * @returns Valid?\n */\nexport function verify (\n data: Uint8Array, signature: Uint8Array, publicKey: string | Uint8Array\n): boolean {\n const publicKeyBuffer = typeof publicKey === 'string' ? str2buf(publicKey) : publicKey\n return nacl.sign.detached.verify(data, signature, publicKeyBuffer)\n}\n\nexport function messageToHash (message: string): Buffer {\n const p = Buffer.from('aeternity Signed Message:\\n', 'utf8')\n const msg = Buffer.from(message, 'utf8')\n return hash(concatBuffers([varuintEncode(p.length), p, varuintEncode(msg.length), msg]))\n}\n\nexport function signMessage (message: string, privateKey: string | Buffer): Uint8Array {\n return sign(messageToHash(message), privateKey)\n}\n\nexport function verifyMessage (\n str: string, signature: Uint8Array, publicKey: string | Uint8Array): boolean {\n return verify(messageToHash(str), signature, publicKey)\n}\n\n/**\n * Check key pair for validity\n *\n * Sign a message, and then verifying that signature\n * @param privateKey - Private key to verify\n * @param publicKey - Public key to verify\n * @returns Valid?\n */\nexport function isValidKeypair (\n privateKey: string | Uint8Array, publicKey: string | Uint8Array\n): boolean {\n const message = Buffer.from('TheMessage')\n const signature = sign(message, privateKey)\n return verify(message, signature, publicKey)\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crypto.mjs","names":["nacl","str2buf","concatBuffers","decode","encode","Encoding","getAddressFromPriv","secret","secretBuffer","keys","sign","keyPair","fromSecretKey","publicKey","AccountAddress","isAddressValid","address","prefix","e","genSalt","Math","floor","random","Number","MAX_SAFE_INTEGER","encodeUnsigned","value","binary","allocUnsafe","writeUInt32BE","slice","findIndex","i","hash","input","from","blake2b","undefined","encodeContractAddress","owner","nonce","ContractAddress","generateKeyPairFromSecret","generateKeyPair","raw","publicBuffer","secretKey","toString","data","privateKey","detached","verify","signature","publicKeyBuffer","messageToHash","message","p","msg","varuintEncode","length","signMessage","verifyMessage","str","isValidKeypair"],"sources":["../../src/utils/crypto.ts"],"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 nacl, { SignKeyPair } from 'tweetnacl';\n// js extension is required for mjs build, not importing the whole package to reduce bundle size\n// eslint-disable-next-line import/extensions\nimport { blake2b } from 'blakejs/blake2b.js';\nimport { encode as varuintEncode } from 'varuint-bitcoin';\n\nimport { str2buf } from './bytes';\nimport { concatBuffers } from './other';\nimport {\n decode, encode, Encoded, Encoding,\n} from './encoder';\n\n/**\n * Generate address from secret key\n * @param secret - Private key\n * @returns Public key encoded as address\n */\nexport function getAddressFromPriv(secret: string | Uint8Array): Encoded.AccountAddress {\n const secretBuffer = typeof secret === 'string' ? str2buf(secret) : secret;\n const keys = nacl.sign.keyPair.fromSecretKey(secretBuffer);\n return encode(keys.publicKey, Encoding.AccountAddress);\n}\n\n/**\n * Check if address is valid\n * @param address - Address\n * @param prefix - Transaction prefix. Default: 'ak'\n * @returns is valid\n */\nexport function isAddressValid(\n address: string,\n prefix: Encoding = Encoding.AccountAddress,\n): boolean {\n try {\n decode(address as Encoded.Generic<typeof prefix>);\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Generate a random salt (positive integer)\n * @returns random salt\n */\nexport function genSalt(): number {\n return Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER));\n}\n\n/**\n * Converts a positive integer to the smallest possible\n * representation in a binary digit representation\n * @param value - Value to encode\n * @returns Encoded number\n */\nexport function encodeUnsigned(value: number): Buffer {\n const binary = Buffer.allocUnsafe(4);\n binary.writeUInt32BE(value);\n return binary.slice(binary.findIndex((i) => i !== 0));\n}\n\n/**\n * Calculate 256bits Blake2b hash of `input`\n * @param input - Data to hash\n * @returns Hash\n */\nexport function hash(input: string | Uint8Array): Buffer {\n return Buffer.from(blake2b(input, undefined, 32)); // 256 bits\n}\n\n// Todo Duplicated in tx builder. remove\n/**\n * Compute contract address\n * @category contract\n * @param owner - Address of contract owner\n * @param nonce - Round when contract was created\n * @returns Contract address\n */\nexport function encodeContractAddress(\n owner: Encoded.AccountAddress,\n nonce: number,\n): Encoded.ContractAddress {\n const publicKey = decode(owner);\n const binary = concatBuffers([publicKey, encodeUnsigned(nonce)]);\n return encode(hash(binary), Encoding.ContractAddress);\n}\n\n// KEY-PAIR HELPERS\n\n/**\n * Generate keyPair from secret key\n * @param secret - secret key\n * @returns Object with Private(privateKey) and Public(publicKey) keys\n */\nexport function generateKeyPairFromSecret(secret: Uint8Array): SignKeyPair {\n return nacl.sign.keyPair.fromSecretKey(secret);\n}\n\n/**\n * Generate a random ED25519 keypair\n * @param raw - Whether to return raw (binary) keys\n * @returns Key pair\n */\nexport function generateKeyPair(raw: true): { publicKey: Buffer; secretKey: Buffer };\nexport function generateKeyPair(raw?: false): {\n publicKey: Encoded.AccountAddress; secretKey: string;\n};\nexport function generateKeyPair(raw = false): {\n publicKey: Encoded.AccountAddress | Buffer;\n secretKey: string | Buffer;\n} {\n const keyPair = nacl.sign.keyPair();\n const publicBuffer = Buffer.from(keyPair.publicKey);\n const secretBuffer = Buffer.from(keyPair.secretKey);\n\n if (raw) {\n return {\n publicKey: publicBuffer,\n secretKey: secretBuffer,\n };\n }\n return {\n publicKey: encode(publicBuffer, Encoding.AccountAddress),\n secretKey: secretBuffer.toString('hex'),\n };\n}\n\n// SIGNATURES\n\n/**\n * Generate signature\n * @param data - Data to sign\n * @param privateKey - Key to sign with\n * @returns Signature\n */\nexport function sign(data: string | Uint8Array, privateKey: string | Uint8Array): Uint8Array {\n return nacl.sign.detached(Buffer.from(data), Buffer.from(privateKey));\n}\n\n/**\n * Verify that signature was signed by public key\n * @param data - Data to verify\n * @param signature - Signature to verify\n * @param publicKey - Key to verify against\n * @returns Valid?\n */\nexport function verify(\n data: Uint8Array,\n signature: Uint8Array,\n publicKey: string | Uint8Array,\n): boolean {\n const publicKeyBuffer = typeof publicKey === 'string' ? str2buf(publicKey) : publicKey;\n return nacl.sign.detached.verify(data, signature, publicKeyBuffer);\n}\n\nexport function messageToHash(message: string): Buffer {\n const p = Buffer.from('aeternity Signed Message:\\n', 'utf8');\n const msg = Buffer.from(message, 'utf8');\n return hash(concatBuffers([varuintEncode(p.length), p, varuintEncode(msg.length), msg]));\n}\n\nexport function signMessage(message: string, privateKey: string | Buffer): Uint8Array {\n return sign(messageToHash(message), privateKey);\n}\n\nexport function verifyMessage(\n str: string,\n signature: Uint8Array,\n publicKey: string | Uint8Array,\n): boolean {\n return verify(messageToHash(str), signature, publicKey);\n}\n\n/**\n * Check key pair for validity\n *\n * Sign a message, and then verifying that signature\n * @param privateKey - Private key to verify\n * @param publicKey - Public key to verify\n * @returns Valid?\n */\nexport function isValidKeypair(\n privateKey: string | Uint8Array,\n publicKey: string | Uint8Array,\n): boolean {\n const message = Buffer.from('TheMessage');\n const signature = sign(message, privateKey);\n return verify(message, signature, publicKey);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @category transaction builder
|
|
3
|
+
* @see {@link https://github.com/aeternity/protocol/blob/master/node/api/api_encoding.md}
|
|
4
|
+
* @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L205-L230}
|
|
5
|
+
*/
|
|
6
|
+
export declare enum Encoding {
|
|
7
|
+
KeyBlockHash = "kh",
|
|
8
|
+
MicroBlockHash = "mh",
|
|
9
|
+
BlockPofHash = "bf",
|
|
10
|
+
BlockTxHash = "bx",
|
|
11
|
+
BlockStateHash = "bs",
|
|
12
|
+
Channel = "ch",
|
|
13
|
+
ContractAddress = "ct",
|
|
14
|
+
ContractBytearray = "cb",
|
|
15
|
+
ContractStoreKey = "ck",
|
|
16
|
+
ContractStoreValue = "cv",
|
|
17
|
+
Transaction = "tx",
|
|
18
|
+
TxHash = "th",
|
|
19
|
+
OracleAddress = "ok",
|
|
20
|
+
OracleQuery = "ov",
|
|
21
|
+
OracleQueryId = "oq",
|
|
22
|
+
OracleResponse = "or",
|
|
23
|
+
AccountAddress = "ak",
|
|
24
|
+
Signature = "sg",
|
|
25
|
+
Commitment = "cm",
|
|
26
|
+
PeerPubkey = "pp",
|
|
27
|
+
Name = "nm",
|
|
28
|
+
State = "st",
|
|
29
|
+
Poi = "pi",
|
|
30
|
+
StateTrees = "ss",
|
|
31
|
+
CallStateTree = "cs",
|
|
32
|
+
Bytearray = "ba"
|
|
33
|
+
}
|
|
34
|
+
export declare type KeyBlockHash = `${Encoding.KeyBlockHash}_${string}`;
|
|
35
|
+
export declare type MicroBlockHash = `${Encoding.MicroBlockHash}_${string}`;
|
|
36
|
+
export declare type BlockPofHash = `${Encoding.BlockPofHash}_${string}`;
|
|
37
|
+
export declare type BlockTxHash = `${Encoding.BlockTxHash}_${string}`;
|
|
38
|
+
export declare type BlockStateHash = `${Encoding.BlockStateHash}_${string}`;
|
|
39
|
+
export declare type Channel = `${Encoding.Channel}_${string}`;
|
|
40
|
+
export declare type ContractAddress = `${Encoding.ContractAddress}_${string}`;
|
|
41
|
+
export declare type ContractBytearray = `${Encoding.ContractBytearray}_${string}`;
|
|
42
|
+
export declare type ContractStoreKey = `${Encoding.ContractStoreKey}_${string}`;
|
|
43
|
+
export declare type ContractStoreValue = `${Encoding.ContractStoreValue}_${string}`;
|
|
44
|
+
export declare type Transaction = `${Encoding.Transaction}_${string}`;
|
|
45
|
+
export declare type TxHash = `${Encoding.TxHash}_${string}`;
|
|
46
|
+
export declare type OracleAddress = `${Encoding.OracleAddress}_${string}`;
|
|
47
|
+
export declare type OracleQuery = `${Encoding.OracleQuery}_${string}`;
|
|
48
|
+
export declare type OracleQueryId = `${Encoding.OracleQueryId}_${string}`;
|
|
49
|
+
export declare type OracleResponse = `${Encoding.OracleResponse}_${string}`;
|
|
50
|
+
export declare type AccountAddress = `${Encoding.AccountAddress}_${string}`;
|
|
51
|
+
export declare type Signature = `${Encoding.Signature}_${string}`;
|
|
52
|
+
export declare type Commitment = `${Encoding.Commitment}_${string}`;
|
|
53
|
+
export declare type PeerPubkey = `${Encoding.PeerPubkey}_${string}`;
|
|
54
|
+
export declare type Name = `${Encoding.Name}_${string}`;
|
|
55
|
+
export declare type State = `${Encoding.State}_${string}`;
|
|
56
|
+
export declare type Poi = `${Encoding.Poi}_${string}`;
|
|
57
|
+
export declare type StateTrees = `${Encoding.StateTrees}_${string}`;
|
|
58
|
+
export declare type CallStateTree = `${Encoding.CallStateTree}_${string}`;
|
|
59
|
+
export declare type Bytearray = `${Encoding.Bytearray}_${string}`;
|
|
60
|
+
export declare type Generic<Type extends Encoding> = `${Type}_${string}`;
|
|
61
|
+
export declare type Any = `${Encoding}_${string}`;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @category transaction builder
|
|
3
|
+
* @see {@link https://github.com/aeternity/protocol/blob/master/node/api/api_encoding.md}
|
|
4
|
+
* @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L205-L230}
|
|
5
|
+
*/
|
|
6
|
+
export let Encoding;
|
|
7
|
+
|
|
8
|
+
(function (Encoding) {
|
|
9
|
+
Encoding["KeyBlockHash"] = "kh";
|
|
10
|
+
Encoding["MicroBlockHash"] = "mh";
|
|
11
|
+
Encoding["BlockPofHash"] = "bf";
|
|
12
|
+
Encoding["BlockTxHash"] = "bx";
|
|
13
|
+
Encoding["BlockStateHash"] = "bs";
|
|
14
|
+
Encoding["Channel"] = "ch";
|
|
15
|
+
Encoding["ContractAddress"] = "ct";
|
|
16
|
+
Encoding["ContractBytearray"] = "cb";
|
|
17
|
+
Encoding["ContractStoreKey"] = "ck";
|
|
18
|
+
Encoding["ContractStoreValue"] = "cv";
|
|
19
|
+
Encoding["Transaction"] = "tx";
|
|
20
|
+
Encoding["TxHash"] = "th";
|
|
21
|
+
Encoding["OracleAddress"] = "ok";
|
|
22
|
+
Encoding["OracleQuery"] = "ov";
|
|
23
|
+
Encoding["OracleQueryId"] = "oq";
|
|
24
|
+
Encoding["OracleResponse"] = "or";
|
|
25
|
+
Encoding["AccountAddress"] = "ak";
|
|
26
|
+
Encoding["Signature"] = "sg";
|
|
27
|
+
Encoding["Commitment"] = "cm";
|
|
28
|
+
Encoding["PeerPubkey"] = "pp";
|
|
29
|
+
Encoding["Name"] = "nm";
|
|
30
|
+
Encoding["State"] = "st";
|
|
31
|
+
Encoding["Poi"] = "pi";
|
|
32
|
+
Encoding["StateTrees"] = "ss";
|
|
33
|
+
Encoding["CallStateTree"] = "cs";
|
|
34
|
+
Encoding["Bytearray"] = "ba";
|
|
35
|
+
})(Encoding || (Encoding = {}));
|
|
36
|
+
//# sourceMappingURL=encoder-types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoder-types.mjs","names":["Encoding"],"sources":["../../src/utils/encoder-types.ts"],"sourcesContent":["/**\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/master/node/api/api_encoding.md}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L205-L230}\n */\nexport enum Encoding {\n KeyBlockHash = 'kh',\n MicroBlockHash = 'mh',\n BlockPofHash = 'bf',\n BlockTxHash = 'bx',\n BlockStateHash = 'bs',\n Channel = 'ch',\n ContractAddress = 'ct',\n ContractBytearray = 'cb',\n ContractStoreKey = 'ck',\n ContractStoreValue = 'cv',\n Transaction = 'tx',\n TxHash = 'th',\n OracleAddress = 'ok',\n OracleQuery = 'ov',\n OracleQueryId = 'oq',\n OracleResponse = 'or',\n AccountAddress = 'ak',\n Signature = 'sg',\n Commitment = 'cm',\n PeerPubkey = 'pp',\n Name = 'nm',\n State = 'st',\n Poi = 'pi',\n StateTrees = 'ss',\n CallStateTree = 'cs',\n Bytearray = 'ba',\n}\n\nexport type KeyBlockHash = `${Encoding.KeyBlockHash}_${string}`;\nexport type MicroBlockHash = `${Encoding.MicroBlockHash}_${string}`;\nexport type BlockPofHash = `${Encoding.BlockPofHash}_${string}`;\nexport type BlockTxHash = `${Encoding.BlockTxHash}_${string}`;\nexport type BlockStateHash = `${Encoding.BlockStateHash}_${string}`;\nexport type Channel = `${Encoding.Channel}_${string}`;\nexport type ContractAddress = `${Encoding.ContractAddress}_${string}`;\nexport type ContractBytearray = `${Encoding.ContractBytearray}_${string}`;\nexport type ContractStoreKey = `${Encoding.ContractStoreKey}_${string}`;\nexport type ContractStoreValue = `${Encoding.ContractStoreValue}_${string}`;\nexport type Transaction = `${Encoding.Transaction}_${string}`;\nexport type TxHash = `${Encoding.TxHash}_${string}`;\nexport type OracleAddress = `${Encoding.OracleAddress}_${string}`;\nexport type OracleQuery = `${Encoding.OracleQuery}_${string}`;\nexport type OracleQueryId = `${Encoding.OracleQueryId}_${string}`;\nexport type OracleResponse = `${Encoding.OracleResponse}_${string}`;\nexport type AccountAddress = `${Encoding.AccountAddress}_${string}`;\nexport type Signature = `${Encoding.Signature}_${string}`;\nexport type Commitment = `${Encoding.Commitment}_${string}`;\nexport type PeerPubkey = `${Encoding.PeerPubkey}_${string}`;\nexport type Name = `${Encoding.Name}_${string}`;\nexport type State = `${Encoding.State}_${string}`;\nexport type Poi = `${Encoding.Poi}_${string}`;\nexport type StateTrees = `${Encoding.StateTrees}_${string}`;\nexport type CallStateTree = `${Encoding.CallStateTree}_${string}`;\nexport type Bytearray = `${Encoding.Bytearray}_${string}`;\n\nexport type Generic<Type extends Encoding> = `${Type}_${string}`;\nexport type Any = `${Encoding}_${string}`;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,WAAYA,QAAZ;;WAAYA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;GAAAA,Q,KAAAA,Q"}
|
package/es/utils/encoder.d.ts
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import * as Encoded from './encoder-types';
|
|
3
|
+
import { Encoding } from './encoder-types';
|
|
4
|
+
export { Encoded, Encoding };
|
|
2
5
|
/**
|
|
3
6
|
* Calculate SHA256 hash of `input`
|
|
4
7
|
* @param input - Data to hash
|
|
5
8
|
* @returns Hash
|
|
9
|
+
* @deprecated use `SubtleCrypto.digest` or `sha.js` package instead
|
|
6
10
|
*/
|
|
7
11
|
export declare function sha256hash(input: Uint8Array | string): Buffer;
|
|
8
|
-
declare const base64Types: readonly ["ba", "cb", "or", "ov", "pi", "ss", "cs", "ck", "cv", "st", "tx"];
|
|
9
|
-
declare const base58Types: readonly ["ak", "bf", "bs", "bx", "ch", "cm", "ct", "kh", "mh", "nm", "ok", "oq", "pp", "sg", "th"];
|
|
10
|
-
export declare type EncodingType = typeof base64Types[number] | typeof base58Types[number];
|
|
11
|
-
export declare type EncodedData<Type extends EncodingType> = `${Type}_${string}`;
|
|
12
12
|
/**
|
|
13
13
|
* Decode data using the default encoding/decoding algorithm
|
|
14
14
|
* @param data - An Base58/64check encoded and prefixed string
|
|
15
15
|
* (ex tx_..., sg_..., ak_....)
|
|
16
16
|
* @returns Decoded data
|
|
17
17
|
*/
|
|
18
|
-
export declare function decode(data:
|
|
18
|
+
export declare function decode(data: Encoded.Any): Buffer;
|
|
19
19
|
/**
|
|
20
20
|
* Encode data using the default encoding/decoding algorithm
|
|
21
21
|
* @param data - An decoded data
|
|
22
22
|
* @param type - Prefix of Transaction
|
|
23
23
|
* @returns Encoded string Base58check or Base64check data
|
|
24
24
|
*/
|
|
25
|
-
export declare function encode<Type extends
|
|
26
|
-
export {};
|
|
25
|
+
export declare function encode<Type extends Encoding>(data: Uint8Array, type: Type): Encoded.Generic<Type>;
|