1.1.7 • Published 6 years ago

covalentchain-wallet v1.1.7

Weekly downloads
32
License
ISC
Repository
github
Last release
6 years ago

CovalentchainWallet

一个基于以太坊web3的OnChain轻钱包

安装

$ sudo npm i covalentchain-wallet

或者

<script src="dist/covalentchain-wallet.min.js"></script>

使用

  • 首先你需要一个以太坊的节点,搭配以太坊 geth 使用,或者(推荐)使用 infura
const Wallet = require('covalentchain-wallet')
const wallet = new Wallet("your provider host")

或者

<script>
    var wallet = new Wallet('https://rinkeby.infura.io/6e4c0183d45e45d681bc94da2b751801')
    console.log("wallet web3 version", wallet.web3.version)
</script>

API调用

写在前面

  • 友情提醒

对于刚入手开发区块链钱包的童鞋,可以先了解下市面上的钱包产品如何工作的,然后可以扩展下自己的思路,下面推荐一块钱包产品,可以自己玩玩看(需要谷歌浏览器和科学上网 😎

MetaMask

  • 特别注意

助记词、用户密码 以及用户的私钥请绝对绝对不要触网存储,你可以在Promise或者回调函数中使用获取到的私钥以及助记词,助记词和私钥需要用户自己备份

  • 字段说明
// keyObject 对一个用户的账户需要本地存储keyObject
{
    address: '6df0a1724cac1e1d82425066694c1fe633e949bf', // 生成用户账户后的公钥地址
    // 下面这些都可以不用管...
    crypto: {
        cipher: 'aes-128-ctr',
        ciphertext: '430a6cde97217e43c0a19e3907a60ec9df07d5f3c2b39ffa4d8ee33811bdb8f0',
        cipherparams: {
            iv: 'b008e3eacdfc97f652466d510db904dc'
        },
        mac: 'a7132fd1beff669bfbc08a46be90b3f5674200604aff38a5c5d3e9b259fd8415',
        kdf: 'pbkdf2',
        kdfparams: {
            c: 262144,
            dklen: 32,
            prf: 'hmac-sha256',
            salt: 'f3976d6963d2fe48b2b8fcfae03d31476fe84452ea65d8a7b4bee51743b5a179'
        }
    },
    id: 'ac452a7f-bc58-4298-b8e3-4bf070a86901',
    version: 3
}

创建账户

wallet.createAccount()

参数

字段属性类型及范围说明
password必传参数string用户的密码
Promise返回functionresolve一个Object,其中包含两个字段,keyObject(带有公钥地址的对象) 和 mnemonic(助记词)

示例

// 创建账户
wallet.createAccount("password").then(res=>{
    console.log("[keyObject] ---", res.keyObject)
    console.log("[mnemonic] ---", res.mnemonic)
})

密码鉴权

wallet.passwordAuth()

参数

字段属性类型及范围说明
password必传参数string密码
keyObject必传参数object带有公钥地址的对象
Promise返回functionresolve用户的私钥

示例

// 密码鉴权
wallet.passwordAuth(password, keyObject).then(res => {
    console.log("[privateKey] ---", res)
})

助记词恢复账户

wallet.mnemonicRecover()

参数

字段属性类型及范围说明
words必传参数string用户的助记词
newpassword必传参数string用户的需要设置的新密码
keyObject必传参数object带有公钥地址的对象
Promise返回functionresolve一个Object,keyObject(带有公钥地址的对象)

示例

// 助记词恢复账户
wal.mnemonicRecover("aaa ddd ddddc casdc words", newpassword, keyObject).then(res=>{
    console.log("[keyObject] ---", res.keyObject)
})

获取以太币

wallet.getEthBalance()

参数

字段属性类型及范围说明
address必传参数string用户的公钥地址
Promise返回functionresolve一个以太币的数额(注意需要除以以太币的decimals)

示例

// 获取以太币
wal.getEthBalance(keyObject.address).then(res => {
    console.log("[balance] ---", res)
})

获取erc20代币

wallet.getErc20Balance()

参数

字段属性类型及范围说明
address必传参数string用户的公钥地址
contract必传参数string代币的合约地址
Promise返回functionresolve一个代币数额(注意需要除以代币的decimals)

示例

// 获取erc20代币
wal.getErc20Balance(keyObject.address, erc20Contract).then(res => {
    console.log("[balance] ---", res)
})

发起一笔以太币交易

wallet.sendEthTransaction()

参数

字段属性类型及范围说明
fromAddress必传参数string发起交易的用户公钥地址
toAddress必传参数string收取交易的用户公钥地址
value必传参数int交易数额
privateKey必传参数string用户私钥
Promise返回functionresolve一个交易的hash

示例

// 发起一笔以太币交易
wal.passwordAuth(password, keyObject).then(res => {
    console.log("[privateKey] ---", res)
    wal.sendEthTransaction(keyObject.address, toAddress, 1.2, res).then(res => {
        console.log("[txHash] ---", res)
    })
})

发起一笔erc20代币币交易

wallet.sendErc20Transaction()

参数

字段属性类型及范围说明
fromAddress必传参数string发起交易的用户公钥地址
toAddress必传参数string收取交易的用户公钥地址
contract必传参数string代币的合约地址
value必传参数int交易数额
privateKey必传参数string用户私钥
Promise返回functionresolve一个交易的hash

示例

// 发起一笔erc20代币币交易
wal.passwordAuth(password, keyObject).then(res => {
    console.log("[privateKey] ---", res)
    wal.sendErc20Transaction(keyObject.address, toAddress, erc20Contract, 1.2, res).then(res => {
        console.log("[txHash] ---", res)
    })
})

查看交易

wallet.getTransaction()

参数

字段属性类型及范围说明
txHash必传参数string交易的hash
Promise返回functionresolve交易的结果

示例

// 查看交易
wal.getTransaction(txHash).then(res => {
    console.log("[txHash] ---", res)
})
1.1.7

6 years ago

1.1.6

6 years ago

1.1.5

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.4

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago