@aeternity/aepp-sdk 9.0.1 → 11.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/README.md +15 -14
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +7 -36
- 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.mjs +179 -0
- package/es/account/base.mjs.map +1 -0
- package/es/account/memory.mjs +99 -0
- package/es/account/memory.mjs.map +1 -0
- package/es/account/multiple.mjs +179 -0
- package/es/account/multiple.mjs.map +1 -0
- package/es/ae/aens.mjs +404 -0
- package/es/ae/aens.mjs.map +1 -0
- package/es/ae/{aepp.js → aepp.mjs} +9 -9
- package/es/ae/aepp.mjs.map +1 -0
- package/es/ae/contract.mjs +159 -0
- package/es/ae/contract.mjs.map +1 -0
- package/es/ae/index.mjs +207 -0
- package/es/ae/index.mjs.map +1 -0
- package/es/ae/oracle.mjs +339 -0
- package/es/ae/oracle.mjs.map +1 -0
- package/es/ae/{universal.js → universal.mjs} +10 -10
- package/es/ae/universal.mjs.map +1 -0
- package/es/ae/{wallet.js → wallet.mjs} +10 -10
- package/es/ae/wallet.mjs.map +1 -0
- package/es/aepp-wallet-communication/schema.d.ts +74 -0
- package/es/bignumber.d.ts +1 -7
- package/es/chain/{index.js → index.mjs} +29 -9
- package/es/chain/index.mjs.map +1 -0
- package/es/chain/node.mjs +442 -0
- package/es/chain/node.mjs.map +1 -0
- package/es/channel/handlers.mjs +1110 -0
- package/es/channel/handlers.mjs.map +1 -0
- package/es/channel/{index.js → index.mjs} +245 -472
- package/es/channel/index.mjs.map +1 -0
- package/es/channel/internal.mjs +283 -0
- package/es/channel/internal.mjs.map +1 -0
- package/es/contract/aci.mjs +477 -0
- package/es/contract/aci.mjs.map +1 -0
- package/es/contract/compiler.mjs +115 -0
- package/es/contract/compiler.mjs.map +1 -0
- package/es/contract/ga/helpers.mjs +30 -0
- package/es/contract/ga/helpers.mjs.map +1 -0
- package/es/contract/ga/index.mjs +178 -0
- package/es/contract/ga/index.mjs.map +1 -0
- package/es/errors.d.ts +284 -0
- package/es/index.mjs +57 -0
- package/es/index.mjs.map +1 -0
- package/es/node-pool/index.mjs +188 -0
- package/es/node-pool/index.mjs.map +1 -0
- package/es/node.mjs +133 -0
- package/es/node.mjs.map +1 -0
- package/es/other.d.ts +1 -1
- package/es/tx/builder/field-types.mjs +74 -0
- package/es/tx/builder/field-types.mjs.map +1 -0
- package/es/tx/builder/helpers.mjs +363 -0
- package/es/tx/builder/helpers.mjs.map +1 -0
- package/es/tx/builder/index.mjs +606 -0
- package/es/tx/builder/index.mjs.map +1 -0
- package/es/tx/builder/schema.mjs +760 -0
- package/es/tx/builder/schema.mjs.map +1 -0
- package/es/tx/{index.js → index.mjs} +107 -15
- package/es/tx/index.mjs.map +1 -0
- package/es/tx/tx-object.mjs +283 -0
- package/es/tx/tx-object.mjs.map +1 -0
- package/es/tx/tx.mjs +938 -0
- package/es/tx/tx.mjs.map +1 -0
- package/es/tx/validator.mjs +247 -0
- package/es/tx/validator.mjs.map +1 -0
- package/es/typings/blakejs/index.d.mjs +2 -0
- package/es/typings/blakejs/{index.d.js.map → index.d.mjs.map} +1 -1
- package/es/utils/aepp-wallet-communication/connection/{browser-runtime.js → browser-runtime.mjs} +27 -29
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +183 -0
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/connection/{index.js → index.mjs} +7 -3
- package/es/utils/aepp-wallet-communication/connection/index.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{content-script-bridge.js → content-script-bridge.mjs} +29 -23
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/helpers.mjs +92 -0
- package/es/utils/aepp-wallet-communication/helpers.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +375 -0
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +275 -0
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +541 -0
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/schema.mjs +102 -0
- package/es/utils/aepp-wallet-communication/schema.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs +110 -0
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
- package/es/utils/amount-formatter.mjs +139 -0
- package/es/utils/amount-formatter.mjs.map +1 -0
- package/es/utils/async-init.mjs +64 -0
- package/es/utils/async-init.mjs.map +1 -0
- package/es/utils/bignumber.mjs +21 -0
- package/es/utils/bignumber.mjs.map +1 -0
- package/es/utils/{bytes.js → bytes.mjs} +16 -12
- package/es/utils/bytes.mjs.map +1 -0
- package/es/utils/{crypto-ts.js → crypto-ts.mjs} +11 -3
- package/es/utils/crypto-ts.mjs.map +1 -0
- package/es/utils/crypto.mjs +239 -0
- package/es/utils/crypto.mjs.map +1 -0
- package/es/utils/errors.mjs +689 -0
- package/es/utils/errors.mjs.map +1 -0
- package/es/utils/hd-wallet.mjs +111 -0
- package/es/utils/hd-wallet.mjs.map +1 -0
- package/es/utils/json-big.mjs +45 -0
- package/es/utils/json-big.mjs.map +1 -0
- package/es/utils/keystore.mjs +240 -0
- package/es/utils/keystore.mjs.map +1 -0
- package/es/utils/mptree.mjs +161 -0
- package/es/utils/mptree.mjs.map +1 -0
- package/es/utils/other.mjs +43 -0
- package/es/utils/other.mjs.map +1 -0
- package/es/utils/semver-satisfies.mjs +16 -0
- package/es/utils/semver-satisfies.mjs.map +1 -0
- package/es/utils/{string.js → string.mjs} +5 -14
- package/es/utils/string.mjs.map +1 -0
- package/es/utils/swagger.mjs +164 -0
- package/es/utils/swagger.mjs.map +1 -0
- package/package.json +55 -62
- package/src/account/base.js +3 -1
- package/src/account/memory.js +13 -8
- package/src/account/multiple.js +31 -22
- package/src/ae/aens.js +75 -77
- package/src/ae/aepp.js +2 -2
- package/src/ae/contract.js +27 -291
- package/src/ae/index.js +9 -7
- package/src/ae/oracle.js +51 -28
- package/src/ae/universal.js +4 -2
- package/src/ae/wallet.js +2 -2
- package/src/chain/index.js +29 -6
- package/src/chain/node.js +95 -67
- package/src/channel/handlers.js +30 -21
- package/src/channel/index.js +44 -20
- package/src/channel/internal.js +30 -24
- package/src/contract/aci.js +376 -0
- package/src/contract/compiler.js +41 -91
- package/src/contract/ga/helpers.js +10 -13
- package/src/contract/ga/index.js +42 -33
- package/src/index.js +9 -10
- package/src/node-pool/index.js +29 -17
- package/src/node.js +33 -36
- package/src/tx/builder/field-types.js +61 -0
- package/src/tx/builder/helpers.js +126 -84
- package/src/tx/builder/index.js +83 -41
- package/src/tx/builder/schema.js +50 -40
- package/src/tx/index.js +101 -12
- package/src/tx/tx-object.js +35 -15
- package/src/tx/tx.js +232 -153
- package/src/tx/validator.js +34 -12
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +11 -5
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +35 -13
- package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +14 -7
- package/src/utils/aepp-wallet-communication/helpers.js +6 -14
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +107 -60
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +24 -11
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +98 -56
- package/src/utils/aepp-wallet-communication/schema.ts +80 -0
- package/src/utils/aepp-wallet-communication/wallet-detector.js +6 -2
- package/src/utils/amount-formatter.ts +4 -3
- package/src/utils/async-init.js +10 -6
- package/src/utils/bignumber.ts +3 -10
- package/src/utils/bytes.ts +3 -2
- package/src/utils/crypto-ts.ts +2 -2
- package/src/utils/crypto.js +10 -144
- package/src/utils/errors.ts +683 -0
- package/src/utils/hd-wallet.js +11 -26
- package/src/utils/keystore.js +57 -53
- package/src/utils/mptree.ts +12 -6
- package/src/utils/other.ts +1 -1
- package/src/utils/semver-satisfies.ts +1 -1
- package/src/utils/swagger.js +75 -45
- package/es/account/base.js +0 -259
- package/es/account/base.js.map +0 -1
- package/es/account/memory.js +0 -86
- package/es/account/memory.js.map +0 -1
- package/es/account/multiple.js +0 -267
- package/es/account/multiple.js.map +0 -1
- package/es/ae/aens.js +0 -829
- package/es/ae/aens.js.map +0 -1
- package/es/ae/aepp.js.map +0 -1
- package/es/ae/contract.js +0 -985
- package/es/ae/contract.js.map +0 -1
- package/es/ae/index.js +0 -442
- package/es/ae/index.js.map +0 -1
- package/es/ae/oracle.js +0 -690
- package/es/ae/oracle.js.map +0 -1
- package/es/ae/universal.js.map +0 -1
- package/es/ae/wallet.js.map +0 -1
- package/es/chain/index.js.map +0 -1
- package/es/chain/node.js +0 -1119
- package/es/chain/node.js.map +0 -1
- package/es/channel/handlers.js +0 -1601
- package/es/channel/handlers.js.map +0 -1
- package/es/channel/index.js.map +0 -1
- package/es/channel/internal.js +0 -438
- package/es/channel/internal.js.map +0 -1
- package/es/contract/aci/helpers.js +0 -298
- package/es/contract/aci/helpers.js.map +0 -1
- package/es/contract/aci/index.js +0 -517
- package/es/contract/aci/index.js.map +0 -1
- package/es/contract/aci/transformation.js +0 -742
- package/es/contract/aci/transformation.js.map +0 -1
- package/es/contract/compiler.js +0 -316
- package/es/contract/compiler.js.map +0 -1
- package/es/contract/ga/helpers.js +0 -120
- package/es/contract/ga/helpers.js.map +0 -1
- package/es/contract/ga/index.js +0 -307
- package/es/contract/ga/index.js.map +0 -1
- package/es/contract/index.js +0 -158
- package/es/contract/index.js.map +0 -1
- package/es/index.js +0 -57
- package/es/index.js.map +0 -1
- package/es/node-pool/index.js +0 -204
- package/es/node-pool/index.js.map +0 -1
- package/es/node.js +0 -228
- package/es/node.js.map +0 -1
- package/es/tx/builder/helpers.js +0 -355
- package/es/tx/builder/helpers.js.map +0 -1
- package/es/tx/builder/index.js +0 -686
- package/es/tx/builder/index.js.map +0 -1
- package/es/tx/builder/schema.js +0 -695
- package/es/tx/builder/schema.js.map +0 -1
- package/es/tx/index.js.map +0 -1
- package/es/tx/tx-object.js +0 -297
- package/es/tx/tx-object.js.map +0 -1
- package/es/tx/tx.js +0 -1757
- package/es/tx/tx.js.map +0 -1
- package/es/tx/validator.js +0 -344
- package/es/tx/validator.js.map +0 -1
- package/es/typings/blakejs/index.d.js +0 -2
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -211
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
- package/es/utils/aepp-wallet-communication/helpers.js +0 -148
- package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -652
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -285
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -763
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
- package/es/utils/aepp-wallet-communication/schema.js +0 -103
- package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
- package/es/utils/aepp-wallet-communication/wallet-detector.js +0 -135
- package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
- package/es/utils/amount-formatter.js +0 -152
- package/es/utils/amount-formatter.js.map +0 -1
- package/es/utils/async-init.js +0 -103
- package/es/utils/async-init.js.map +0 -1
- package/es/utils/bignumber.js +0 -36
- package/es/utils/bignumber.js.map +0 -1
- package/es/utils/bytes.js.map +0 -1
- package/es/utils/crypto-ts.js.map +0 -1
- package/es/utils/crypto.js +0 -358
- package/es/utils/crypto.js.map +0 -1
- package/es/utils/hd-wallet.js +0 -148
- package/es/utils/hd-wallet.js.map +0 -1
- package/es/utils/json-big.js +0 -78
- package/es/utils/json-big.js.map +0 -1
- package/es/utils/keystore.js +0 -393
- package/es/utils/keystore.js.map +0 -1
- package/es/utils/mptree.js +0 -198
- package/es/utils/mptree.js.map +0 -1
- package/es/utils/other.js +0 -93
- package/es/utils/other.js.map +0 -1
- package/es/utils/semver-satisfies.js +0 -35
- package/es/utils/semver-satisfies.js.map +0 -1
- package/es/utils/string.js.map +0 -1
- package/es/utils/swagger.js +0 -269
- package/es/utils/swagger.js.map +0 -1
- package/src/contract/aci/helpers.js +0 -140
- package/src/contract/aci/index.js +0 -191
- package/src/contract/aci/transformation.js +0 -464
- package/src/contract/index.js +0 -159
- package/src/utils/aepp-wallet-communication/schema.js +0 -110
package/src/utils/crypto.js
CHANGED
|
@@ -21,15 +21,14 @@
|
|
|
21
21
|
* @example import { Crypto } from '@aeternity/aepp-sdk'
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
import bs58check from 'bs58check'
|
|
25
|
-
import ed2curve from 'ed2curve'
|
|
26
24
|
import nacl from 'tweetnacl'
|
|
27
25
|
import aesjs from 'aes-js'
|
|
28
26
|
import shajs from 'sha.js'
|
|
29
27
|
|
|
30
|
-
import { str2buf
|
|
31
|
-
import { decode } from '../tx/builder/helpers'
|
|
28
|
+
import { str2buf } from './bytes'
|
|
29
|
+
import { encode, decode } from '../tx/builder/helpers'
|
|
32
30
|
import { hash } from './crypto-ts'
|
|
31
|
+
import { NotImplementedError } from './errors'
|
|
33
32
|
|
|
34
33
|
export * from './crypto-ts'
|
|
35
34
|
|
|
@@ -44,7 +43,7 @@ const Ecb = aesjs.ModeOfOperation.ecb
|
|
|
44
43
|
export function getAddressFromPriv (secret) {
|
|
45
44
|
const keys = nacl.sign.keyPair.fromSecretKey(str2buf(secret))
|
|
46
45
|
const publicBuffer = Buffer.from(keys.publicKey)
|
|
47
|
-
return
|
|
46
|
+
return encode(publicBuffer, 'ak')
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
/**
|
|
@@ -55,24 +54,14 @@ export function getAddressFromPriv (secret) {
|
|
|
55
54
|
* @return {Boolean} valid
|
|
56
55
|
*/
|
|
57
56
|
export function isAddressValid (address, prefix = 'ak') {
|
|
58
|
-
if (typeof address !== 'string') return false
|
|
59
57
|
try {
|
|
60
|
-
|
|
58
|
+
decode(address, prefix)
|
|
59
|
+
return true
|
|
61
60
|
} catch (e) {
|
|
62
61
|
return false
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
64
|
|
|
66
|
-
/**
|
|
67
|
-
* Parse decimal address and return base58Check encoded address with prefix 'ak'
|
|
68
|
-
* @rtype (input: String) => address: String
|
|
69
|
-
* @param {String} decimalAddress - Address
|
|
70
|
-
* @return {String} address
|
|
71
|
-
*/
|
|
72
|
-
export function addressFromDecimal (decimalAddress) {
|
|
73
|
-
return aeEncodeKey(toBytes(decimalAddress, true))
|
|
74
|
-
}
|
|
75
|
-
|
|
76
65
|
/**
|
|
77
66
|
* Calculate SHA256 hash of `input`
|
|
78
67
|
* @rtype (input: String) => hash: String
|
|
@@ -92,66 +81,6 @@ export function salt () {
|
|
|
92
81
|
return Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER))
|
|
93
82
|
}
|
|
94
83
|
|
|
95
|
-
/**
|
|
96
|
-
* Base64check encode given `input`
|
|
97
|
-
* @rtype (input: String|buffer) => Buffer
|
|
98
|
-
* @param {String} input - Data to encode
|
|
99
|
-
* @return {Buffer} Base64check encoded data
|
|
100
|
-
*/
|
|
101
|
-
export function encodeBase64Check (input) {
|
|
102
|
-
const buffer = Buffer.from(input)
|
|
103
|
-
const checksum = checkSumFn(input)
|
|
104
|
-
const payloadWithChecksum = Buffer.concat([buffer, checksum], buffer.length + 4)
|
|
105
|
-
return payloadWithChecksum.toString('base64')
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export function checkSumFn (payload) {
|
|
109
|
-
return sha256hash(sha256hash(payload)).slice(0, 4)
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
function decodeRaw (buffer) {
|
|
113
|
-
const payload = buffer.slice(0, -4)
|
|
114
|
-
const checksum = buffer.slice(-4)
|
|
115
|
-
const newChecksum = checkSumFn(payload)
|
|
116
|
-
|
|
117
|
-
if (!checksum.equals(newChecksum)) return
|
|
118
|
-
|
|
119
|
-
return payload
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Base64check decode given `str`
|
|
124
|
-
* @rtype (str: String) => Buffer
|
|
125
|
-
* @param {String} str - Data to decode
|
|
126
|
-
* @return {Buffer} Base64check decoded data
|
|
127
|
-
*/
|
|
128
|
-
export function decodeBase64Check (str) {
|
|
129
|
-
const buffer = Buffer.from(str, 'base64')
|
|
130
|
-
const payload = decodeRaw(buffer)
|
|
131
|
-
if (!payload) throw new Error('Invalid checksum')
|
|
132
|
-
return Buffer.from(payload)
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Base58 encode given `input`
|
|
137
|
-
* @rtype (input: String) => String
|
|
138
|
-
* @param {String|Buffer} input - Data to encode
|
|
139
|
-
* @return {String} Base58 encoded data
|
|
140
|
-
*/
|
|
141
|
-
export function encodeBase58Check (input) {
|
|
142
|
-
return bs58check.encode(Buffer.from(input))
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Base58 decode given `str`
|
|
147
|
-
* @rtype (str: String) => Buffer
|
|
148
|
-
* @param {String} str - Data to decode
|
|
149
|
-
* @return {Buffer} Base58 decoded data
|
|
150
|
-
*/
|
|
151
|
-
export function decodeBase58Check (str) {
|
|
152
|
-
return bs58check.decode(str)
|
|
153
|
-
}
|
|
154
|
-
|
|
155
84
|
/**
|
|
156
85
|
* Converts a positive integer to the smallest possible
|
|
157
86
|
* representation in a binary digit representation
|
|
@@ -176,7 +105,7 @@ export function encodeUnsigned (value) {
|
|
|
176
105
|
export function encodeContractAddress (owner, nonce) {
|
|
177
106
|
const publicKey = decode(owner, 'ak')
|
|
178
107
|
const binary = Buffer.concat([publicKey, encodeUnsigned(nonce)])
|
|
179
|
-
return
|
|
108
|
+
return encode(hash(binary), 'ct')
|
|
180
109
|
}
|
|
181
110
|
|
|
182
111
|
// KEY-PAIR HELPERS
|
|
@@ -193,7 +122,7 @@ export function generateKeyPairFromSecret (secret) {
|
|
|
193
122
|
|
|
194
123
|
/**
|
|
195
124
|
* Generate a random ED25519 keypair
|
|
196
|
-
* @rtype (raw: Boolean) => {publicKey: String, secretKey: String
|
|
125
|
+
* @rtype (raw: Boolean) => {publicKey: String | Buffer, secretKey: String | Buffer}
|
|
197
126
|
* @param {Boolean} raw - Whether to return raw (binary) keys
|
|
198
127
|
* @return {Object} Key pair
|
|
199
128
|
*/
|
|
@@ -211,7 +140,7 @@ export function generateKeyPair (raw = false) {
|
|
|
211
140
|
}
|
|
212
141
|
} else {
|
|
213
142
|
return {
|
|
214
|
-
publicKey:
|
|
143
|
+
publicKey: encode(publicBuffer, 'ak'),
|
|
215
144
|
secretKey: secretBuffer.toString('hex')
|
|
216
145
|
}
|
|
217
146
|
}
|
|
@@ -272,7 +201,7 @@ export function verify (str, signature, publicKey) {
|
|
|
272
201
|
export function messageToHash (message) {
|
|
273
202
|
const p = Buffer.from('aeternity Signed Message:\n', 'utf8')
|
|
274
203
|
const msg = Buffer.from(message, 'utf8')
|
|
275
|
-
if (msg.length >= 0xFD) throw new
|
|
204
|
+
if (msg.length >= 0xFD) throw new NotImplementedError('Message too long')
|
|
276
205
|
return hash(Buffer.concat([Buffer.from([p.length]), p, Buffer.from([msg.length]), msg]))
|
|
277
206
|
}
|
|
278
207
|
|
|
@@ -284,19 +213,6 @@ export function verifyMessage (str, signature, publicKey) {
|
|
|
284
213
|
return verify(messageToHash(str), signature, publicKey)
|
|
285
214
|
}
|
|
286
215
|
|
|
287
|
-
/**
|
|
288
|
-
* æternity readable public keys are the base58-encoded public key, prepended
|
|
289
|
-
* with 'ak_'
|
|
290
|
-
* @rtype (binaryKey: Buffer) => String
|
|
291
|
-
* @param {Buffer} binaryKey - Key to encode
|
|
292
|
-
* @return {String} Encoded key
|
|
293
|
-
*/
|
|
294
|
-
export function aeEncodeKey (binaryKey) {
|
|
295
|
-
const publicKeyBuffer = Buffer.from(binaryKey, 'hex')
|
|
296
|
-
const pubKeyAddress = encodeBase58Check(publicKeyBuffer)
|
|
297
|
-
return `ak_${pubKeyAddress}`
|
|
298
|
-
}
|
|
299
|
-
|
|
300
216
|
/**
|
|
301
217
|
* Check key pair for validity
|
|
302
218
|
*
|
|
@@ -311,53 +227,3 @@ export function isValidKeypair (privateKey, publicKey) {
|
|
|
311
227
|
const signature = sign(message, privateKey)
|
|
312
228
|
return verify(message, signature, publicKey)
|
|
313
229
|
}
|
|
314
|
-
|
|
315
|
-
/**
|
|
316
|
-
* This function encrypts a message using base58check encoded and 'ak' prefixed
|
|
317
|
-
* publicKey such that only the corresponding secretKey will
|
|
318
|
-
* be able to decrypt
|
|
319
|
-
* @rtype (msg: String, publicKey: String) => Object
|
|
320
|
-
* @param {Buffer} msg - Data to encode
|
|
321
|
-
* @param {String} publicKey - Public key
|
|
322
|
-
* @return {Object}
|
|
323
|
-
*/
|
|
324
|
-
export function encryptData (msg, publicKey) {
|
|
325
|
-
const ephemeralKeyPair = nacl.box.keyPair()
|
|
326
|
-
const pubKeyUInt8Array = decode(publicKey, 'ak')
|
|
327
|
-
const nonce = nacl.randomBytes(nacl.box.nonceLength)
|
|
328
|
-
|
|
329
|
-
const encryptedMessage = nacl.box(
|
|
330
|
-
Buffer.from(msg),
|
|
331
|
-
nonce,
|
|
332
|
-
ed2curve.convertPublicKey(pubKeyUInt8Array),
|
|
333
|
-
ephemeralKeyPair.secretKey
|
|
334
|
-
)
|
|
335
|
-
|
|
336
|
-
return {
|
|
337
|
-
ciphertext: Buffer.from(encryptedMessage).toString('hex'),
|
|
338
|
-
ephemPubKey: Buffer.from(ephemeralKeyPair.publicKey).toString('hex'),
|
|
339
|
-
nonce: Buffer.from(nonce).toString('hex'),
|
|
340
|
-
version: 'x25519-xsalsa20-poly1305'
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
/**
|
|
345
|
-
* This function decrypt a message using secret key
|
|
346
|
-
* @rtype (secretKey: String, encryptedData: Object) => Buffer|null
|
|
347
|
-
* @param {String} secretKey - Secret key
|
|
348
|
-
* @param {Object} encryptedData - Encrypted data
|
|
349
|
-
* @return {Buffer|null}
|
|
350
|
-
*/
|
|
351
|
-
export function decryptData (secretKey, encryptedData) {
|
|
352
|
-
const receiverSecretKeyUint8Array = ed2curve.convertSecretKey(Buffer.from(secretKey, 'hex'))
|
|
353
|
-
const nonce = Buffer.from(encryptedData.nonce, 'hex')
|
|
354
|
-
const ciphertext = Buffer.from(encryptedData.ciphertext, 'hex')
|
|
355
|
-
const ephemPubKey = Buffer.from(encryptedData.ephemPubKey, 'hex')
|
|
356
|
-
const decrypted = nacl.box.open(
|
|
357
|
-
ciphertext,
|
|
358
|
-
nonce,
|
|
359
|
-
ephemPubKey,
|
|
360
|
-
receiverSecretKeyUint8Array
|
|
361
|
-
)
|
|
362
|
-
return decrypted ? Buffer.from(decrypted) : decrypted
|
|
363
|
-
}
|