ain- util 语句
AI Network(AIN)的公用功能集. 方法与测试已经从 乙型六氯环己烷 财务报告和审定财务报表 用户。 。 。 .
安装
npm install @ainblockchain/ain-util
实例
const ainUtil = require('@ainblockchain/ain-util');
const message = { foo: 'bar' };
const privateKey = YOUR_OWN_PRIVATE_KEY;
// Alice generates signature using private key.
const signature = ainUtil.ecSignMessage(JSON.stringify(message), Buffer.from(privateKey, 'hex'));
// Bob verifies the message
const hash = ainUtil.hashMessage(JSON.stringify(message));
const sigBuffer = ainUtil.toBuffer(signature);
const len = sigBuffer.length;
const lenHash = len - 65;
const { r, s, v } = ainUtil.ecSplitSig(sigBuffer.slice(lenHash, len));
const publicKey = ainUtil.ecRecoverPub(Buffer.from(hash, 'hex'), r, s, v);
const address = ainUtil.toChecksumAddress(ainUtil.bufferToHex(ainUtil.pubToAddress(publicKey, publicKey.length === 65)));
const isVerified = ainUtil.ecVerifySig(JSON.stringify(message), signature, address);
// console.log(isVerified);
// will return
// ADDRESS
// true
API 密码
添加HexPrefix( 字符串) - > 字符串
在给定中添加“ 0x ” string 如果它还没有从"0x"开始.
缓冲TOHex( buf: 缓冲) - > 字符串
转换 a Buffer 变成六进制 string。 。 。 .
ecSignMessage( 消息: 任意, 私钥: 缓冲, 链路? : 数) - > 字符串
用私钥签名消息并返回 a string 签名.
ecRecoverPub(msgHash:缓冲,r:缓冲,s:缓冲,v:数,链路?)-> 缓冲
ECDSA 公用钥匙从签名取回.
ecSplitSig(签名:缓冲) - > ECDSASignature (英语)
转换 eth_sign RPC对签名参数的方法.
ecVifySig( 数据: 任何, 签名: 字符串, 地址: 字符串, 链路? 数字) - > 布尔
检查签名是否有效 .
ecSignTransaction(txData: AffairsBody,私钥:缓冲,链路?) - > 字符串
用私钥签名交易机构并返回 a string 签名.
hash 交易( 交易: 交易Body QQ字符串) - > 缓冲
使用交易机体生成keccak散列.
hashMessage(消息:任何) - > 缓冲
返回比特币的克恰克-256大麻的瓦林编码 message, (中文(简体) ),
前缀为标题“Ainetwork 已签名信件 :\n”.
是Hex 前缀( 字符串) - > 布尔
检查是否 str 以"0x"为前缀.
是Valid Private( 私人钥匙: 缓冲) - > 布尔
检查是否 privateKey 是有效的私人密钥( 遵循曲线 secp256k1 的规则) .
是Valid Public(公用钥匙:Buffer,isSEC1:布尔=假) - >布尔
检查是否 publicKey 是有效的公钥(遵循
曲线 secp256k1 并符合AIN的要求).
是ValidAddress(地址:字符串) - > 布尔
检查地址是否有效 .
相同地址( 地址1: 字符串, 地址2: 字符串) - > 布尔
检查两个地址是否相同.
keccak(输入:任意,位数:数字=256) - > 缓冲
创建输入的 Keccak 散列 .
私通公用( 私钥: 缓冲) - > 缓冲
返回给定的私钥的公钥.
pubToAddress(公用钥匙:Buffer,isSEC1:布尔=假) - > 缓冲
返回给定公钥的AI 网络地址.
私钥账户( 私钥: 缓冲) - > 账户
以给定的私钥返回账户.
序列化( 数据: 有, fields?: 阵列) - > 缓冲( 将贬值)
使用rlp编码将对象(如tx数据)序列化.
setLength(消息:任意,长度:数字,右边:布尔=假) - > 缓冲
废纸和 message 以0为主,直到完成 length 字节.
如果 message 长于 length。 。 。 .
条形Hex 前缀( 字符串) - > 字符串
从给定中删除“ 0x ” String 已存在.
至缓冲(v: 任何) - > 缓冲
试图将一个值变成 Buffer。作为其支持的投入 Buffer, (中文(简体) ),
String, (中文(简体) ), Number,无效/未定义, BN 和带有 a 的其他对象 toArray() 方法.
来检查和地址( 地址: 字符串) - > 字符串
返回一个校验的地址.
使用 PublicKey( publicKey: 字符串, 消息: 字符串) 加密 - > 答应
用公钥加密消息 .
解密With PrivateKey(私人Key:字符串,加密:加密了QQ字符串) - > 答应
用私钥解密加密数据.
创建账户( entropy?: string) - > 账户
用给定的 en创建账户.
私人 ToV3Keystore( 私人 Key: 缓冲, 密码: 字符串, 选项: V3Keystore options = {}) - > V3 键盘
将账户转换为 V3 键盘并用密码加密.
v3KeystoreTo Private(v3Keystore:V3Keystore QQ字符串,密码:字符串) -> 缓冲
从 V3 键盘返回一个私钥 .
编码( 关键: 字符串) - > 字符串
解码( 键: 字符串) - > 字符串
环境
测试了以下环境.
节点
- 页:1
- 页:1
- v6.x.x (英语)
- v7.x.x (中文(简体) )
自由主义
MPL - 2.0 导弹