1.0.39 • Published 7 years ago
waves-crypto v1.0.39
waves-crypto 
Using this library you can easily create and sign binary data for Waves blockchain. It provides all you need on crypto and binary layers. Small and dependency-free.
Includes:
- Address generation
- Address validation
- Key pair generation
- Bytes signature
- Signature validation
- Serialization primitives
Keys and Addresses
const wc = require('waves-crypto')
//Mainnet address
wc.address('seed') //3PGMh3vQekpTbvUAiKwdzhWsLaxoSBEcsFJ
//Testnet address
wc.address('seed', 'T')//3N4Lt6bWndH4yUAkTFge3F93yhT2c2Pmj9z
//Public and private keys from seed
wc.keyPair('seed')
/*{
public: 'HzSnoJKTVwezUBmo2gh9HYq52F1maKBsvv1ZWrZAHyHV',
private: '4mmuDf2GQJ6vJrKzVzyKUyGBwv6AfpC5TKpaF3MfEE5w'
}*/
//Public only
wc.publicKey('seed') //HzSnoJKTVwezUBmo2gh9HYq52F1maKBsvv1ZWrZAHyHV
//Private only
wc.privateKey('seed') //4mmuDf2GQJ6vJrKzVzyKUyGBwv6AfpC5TKpaF3MfEE5w
Address validation
const { validateAddress } = require('waves-crypto')
const validationErrors = validateAddress('3P2GVAniTmceyS7LE8HtQg1GEhyoghUZSvn')
// ['Address checksum is invalid.']
isValid(validationErrors) //false
Signatures and verification
const wc = require('waves-crypto')
const { verifySignature, signBytes, publicKey } = wc
const seed = 'magicseed'
const pubKey = publicKey(seed)
const bytes = Uint8Array.from([1, 2, 3, 4])
const sig = signBytes(bytes, seed)
const isValid = verifySignature(pubKey, bytes, sig) //true
Serialization primitives
const wc = require('waves-crypto')
const { LONG, SHORT, BYTE, STRING, OPTION, BASE58_STRING, LEN } = wc
//Transfer transaction for 1 waves
const tx = {
version: 1,
type: 4,
recipient: '3P6jpTTGxnVYGKpmaDWjCQWZxadYSdeykMP',
amount: 1 * Math.pow(10, 8),
fee: 100000,
senderPublicKey: wc.publicKey('seed'),
timestamp: Date.now(),
assetId: null,
feeAssetId: null,
attachment: null,
}
const bytes = wc.concat(
BYTE(tx.type),
BYTE(tx.version),
BASE58_STRING(tx.senderPublicKey),
OPTION(BASE58_STRING)(tx.assetId),
OPTION(BASE58_STRING)(tx.feeAssetId),
LONG(tx.timestamp),
LONG(tx.amount),
LONG(tx.fee),
BASE58_STRING(tx.recipient),
LEN(SHORT)(STRING)(tx.attachment),
)
wc.signBytes(bytes, 'seed') // 5FSwfLir7YRavgRjdzs9Hg2KEv2Pu8szmXMgNbkt6BAm9fAJGURzDp6PiN1QhRfXBUYU1xJghzqijFebFA9yFXyp
1.0.39
7 years ago
1.0.38
7 years ago
1.0.37
7 years ago
1.0.32
7 years ago
1.0.36
7 years ago
1.0.35
7 years ago
1.0.34
7 years ago
1.0.33
7 years ago
1.0.31
7 years ago
1.0.30
7 years ago
1.0.29
7 years ago
1.0.28
7 years ago
1.0.27
7 years ago
1.0.26
7 years ago
1.0.25
7 years ago
1.0.24
7 years ago
1.0.23
7 years ago
1.0.22
7 years ago
1.0.21
7 years ago
1.0.20
7 years ago
1.0.19
7 years ago
1.0.18
7 years ago
1.0.17
7 years ago
1.0.16
7 years ago
1.0.15
7 years ago
1.0.14
7 years ago
1.0.13
7 years ago
1.0.12
7 years ago
1.0.11
7 years ago
1.0.10
7 years ago
1.0.9
7 years ago
1.0.8
7 years ago
1.0.7
7 years ago
1.0.6
7 years ago
1.0.5
7 years ago
1.0.4
7 years ago
1.0.3
7 years ago
1.0.2
7 years ago
1.0.1
7 years ago