proofjs v0.0.1
使用
调试模式
http://192.168.56.1:9009/proof.js?t=随机数/时间戳
生产环境
#导入文件
import Proof from '../proof'
#npm安装依赖
npm install -S proofjs
web3js二次封装文档
导入 import Proof from '../proof'
文件 实例化 new Proof
对象
方法调用
Promise
风格
Proof.getBalance(address).then((balance)=>{
console.log(balance);
}).catch(function (reason) {
console.log('错误')
})
async/await
风格async/await
需要使用trycatch
来捕获错误
try {
const balance = await Proof.getBalance(address)
} catch (error) {
// Handle error. Likely the user rejected the login:
console.log('这是个美丽的错误')
}
MetaMask对象
需要Chrome浏览器安装MetaMask
插件, 使用中暴露全局对象 Proof
示例:
let account = Proof.selectedAddress
属性
isMetaMask
检测是否有MetaMask
插件
selectedAddress
当前选定账户
networkVersion
当前区块链的网络 ID
let networkData = {
1: 'Ethereum Main Network', //以太坊主网 1
2: 'Morden Test network', //自己的测试网络(Localhost:8545) 2
3: 'Ropsten Test Network', //Ropsten测试网 3
4: 'Rinkeby Test Network', //Rinkeby测试网 4
42: 'Kovan Test Network', //Kovan测试网络 42
5777: 'Custom Network', //自定义网络
}
networkName
当前区块链的网络 名称
方法()
一般都需要查链上数据
login()
完成
MetaMask 登录
参数: 无
返回值:
/**
*
* 返回用户详情信息
* @return { String } 账户名称
* @return { String } address 账户地址
* @return { String } networkId 网络类型ID
* @return { String } networkName 网络名称
* @return { String } balance 账户余额(ETH)
* @return { String } token Token余额
* @return { String } symbol Token符号
*
*/
示例
Proof.login().then((r)=>{
console.log(r);
})
isValidToken()
完成
Token 名称是否有效(是否已经注册过且链上未过期)
参数:
_symbol
: Token 符号
返回值:
false : true 是否有效
示例
Proof.isValidToken('RFT118888').then((r)=>{
console.log(r);
})
name()
完成
代币名称
参数: 无
示例
Proof.name().then((res)=>{
console.log(res);
})
symbol()
完成
代币符号
参数: 无
示例
Proof.symbol().then((res)=>{
console.log(res);
})
decimals()
完成
获取小数点
参数: 无
示例
Proof.decimals().then((res)=>{
console.log(res);
})
totalSupply()
完成
获取当前账户代币余额
参数:
_tokenSymbol
代币符号 (默认不传为平台代币币种)
unit
: 单位 默认 'ether' 为(ETH)单位
示例
Proof.totalSupply('PC').then((r)=>{
console.log(r);
})
balanceOf()
完成
获取某一地址的代币余额
参数:
address
: 地址
_tokenSymbol
代币符号 (默认不传为平台代币币种)
unit
: 单位 默认 'ether' 为(ETH)单位
示例
Proof.balanceOf(address).then((b)=>{
console.log(b);
})
getBalance(address, unit)
完成
获取ETH
余额
参数:
address
: 默认当前选定状态账户
unit
: 单位 默认 'ether' 为(ETH)单位
示例
Proof.getBalance('0xdB67e301D01c3C203162D4e87BdC9efae4C0A7F7', ).then((r)=>{
console.log(r);
})
signData()
完成
签名数据 Signature
参数:
value
: 默认当前选定状态账户
address
: 地址 默认当前用户地址(可不传)
返回值: 签名
示例
Proof.signData('随机数').then((r)=>{
console.log(r);
})
matemaskTransferFrom()
(废弃)
使用MetaMask
参数:
_to
: 向指定地址
_value
:
示例
Proof.matemaskTransferFrom(
'0xc96298090A3Db47ad27Fe39Be57f74146549DC71',
'0xde0b6b3a7640000' // an ether has 18 decimals, here in hex.
).then((res)=>{
console.log(res);
})
transfer()
完成
转代币 (注册费 给平台的)
参数:
_to
: 收件人的地址
_value
: 要传输的Token数量
示例
Proof.transfer(
'0xc96298090A3Db47ad27Fe39Be57f74146549DC71',
1000 // an ether has 18 decimals, here in hex.
).then((res)=>{
console.log(res);
})
getTickerDetails()
完成
返回给定ticker的所有者和时间戳(详情)
参数:
_tokenSymbol
: 唯一的令牌代码
Proof.getTickerDetails('RFT118888').then((r)=>{
console.log(r);
})
approveToken()
完成
授权Token (付250的手续费) 当不传代币符号时不会查询token符号有没有注册过
参数:
_tokenSymbol
: 唯一的令牌代码 (校验是否已经执行过)
_type
: 'register'(注册)/'generate'(创建)
_owner
: 令牌所有者的地址(默认当前地址) 可不传
返回值:
状态码
{
code: 1000300,
msg: "已经付过钱: 250000000000000000000"
}
{
code: 1000301,
msg: "已经注册过"
}
{
code: 1000302,
msg: "已经创建过"
}
# 待定功能
{
code: 1000200,
msg: "成功"
}
status
: 交易状态
gasUsed
: 矿工费
blockNumber
: 交易所在块的编号
transactionHash
: 交易hash
contractAddress
: 合约地址
url
: 查看交易详情URL
示例
Proof.approveToken(
'RFT',
'register'
).then((r)=>{
console.log(r);
})
registerToken()
完成
注册代币(写入链上)
参数:
_tokenSymbol
: 唯一的令牌代码
_tokenName
: 令牌的名称
_owner
: 令牌所有者的地址(默认当前地址) 可不传
返回值:
status
: 交易状态
gasUsed
: 矿工费
blockNumber
: 交易所在块的编号
transactionHash
: 交易hash
contractAddress
: 合约地址
url
: 查看交易详情URL
示例
Proof.registerToken(
'RFT',
'RFTNam',
).then((r)=>{
console.log(r);
})
generateToken()
完成
创建Token(部署到链上)
参数:
_tokenSymbol
: 唯一的令牌代码
_tokenName
: 令牌的名称
_tokenDetails
: 附加信息 (可不传)
_divisible
: 是否可以整除 (默认false)
返回值:
status
: 交易状态
gasUsed
: 矿工费
blockNumber
: 交易所在块的编号
transactionHash
: 交易hash
contractAddress
: 合约地址
url
: 查看交易详情URL
示例
Proof.generateToken(
'RFAB',
'RFA Name',
).then((r)=>{
console.log(r);
})
getSecurityTokenData()
完成
创建Token(部署到链上)
参数:
_address
: 唯一的令牌代码
返回值:
Token 信息
示例
Proof.getSecurityTokenData(
'0x19eD11461370439C417B5887e0BBEed29265aA28',
).then((r)=>{
console.log(r)
})
setCountTM()
完成
设置持有人数量
参数:
_count
: 数量 (-1 为暂停)
_tokenSymbol
: 代币符号
返回值:
status
: 交易状态
gasUsed
: 矿工费
blockNumber
: 交易所在块的编号
transactionHash
: 交易hash
contractAddress
: 合约地址
url
: 查看交易详情URL
示例
Proof.setCountTM(
'PT',
1010,
).then((r)=>{
console.log(r);
})
getCountTM()
完成
获取持有人数量
参数:
_tokenSymbol
: 代币符号
返回值:
当前数量
示例
Proof.getCountTM(
'PT',
).then((r)=>{
console.log(r);
})
setPercentageTM()
完成
设置百分比
参数:
_percentage
: 百分比 (-1 为暂停)
_tokenSymbol
: 代币符号
返回值:
status
: 交易状态
gasUsed
: 矿工费
blockNumber
: 交易所在块的编号
transactionHash
: 交易hash
contractAddress
: 合约地址
url
: 查看交易详情URL
示例
Proof.setPercentageTM(
'PC',
95,
).then((r)=>{
console.log(r);
})
getPercentageTM()
完成
获取持有人数量
参数:
_tokenSymbol
: 代币符号
返回值:
当前百分比
示例
Proof.getPercentageTM(
'PT',
).then((r)=>{
console.log(r);
})
setPauseTM()
完成
设置暂停开关
参数:
_tokenSymbol
: 代币符号
_type
: 类型 'count'-数量 'percentage'-百分比
_bool
: 开启/关闭 Boolean
返回值:
status
: 交易状态
gasUsed
: 矿工费
blockNumber
: 交易所在块的编号
transactionHash
: 交易hash
contractAddress
: 合约地址
url
: 查看交易详情URL
示例
Proof.setPauseTM(
'PCC',
'percentage', //count percentage
true
).then((r)=>{
console.log(r);
})
getTransferManagerInfo()
完成
获取数量 百分比信息
参数:
_tokenSymbol
: 代币符号
返回值:
当前百分比
示例
Proof.getTransferManagerInfo(
'PCC'
).then((r)=>{
console.log(r);
})
setWhitelistMultiTM()
完成
添加或删除白名单中的地址
参数:
_tokenSymbol
: 代币符号
_whitelist
: 白名单对象
[
{
address: '白名单的地址列表',
from: '销售锁定期结束且投资者可以自由出售其代币的那一刻',
to: '购买锁定期结束且投资者可以从其他人那里自由购买代币的那一刻',
expiry: '投资者KYC的一系列时刻将得到验证',
canBuyFromSTO: true
}
]
返回值:
status
: 交易状态
gasUsed
: 矿工费
blockNumber
: 交易所在块的编号
transactionHash
: 交易hash
contractAddress
: 合约地址
url
: 查看交易详情URL
示例
Proof.setWhitelistMultiTM(
'PC',
[
{
address: '0xee7ae74d964f2be7d72c1b187b38e2ed3615d4d1',
from: '5/5/2018',
to: '1/8/2018',
expiry: '10/10/2019',
canBuyFromSTO: true
}
]
).then((r)=>{
console.log(r);
})
setMintMultiTM()
完成
创造新的代币并将其分配给目标投资者(挖矿)
参数:
_tokenSymbol
: 代币符号
_distribData
: 分配对象
[
{
address: '0xee7ae74d964f2be7d72c1b187b38e2ed3615d4d1', //地址
amount: 1111, //金额
}
]
返回值:
status
: 交易状态
gasUsed
: 矿工费
blockNumber
: 交易所在块的编号
transactionHash
: 交易hash
contractAddress
: 合约地址
url
: 查看交易详情URL
示例
Proof.setMintMultiTM(
'PC',
[
{
address: '0xee7ae74d964f2be7d72c1b187b38e2ed3615d4d1',
amount: 1111,
}
]
).then((r)=>{
console.log(r);
})
getInvestors()
完成
获取投资者阵列的长度
参数:
_tokenSymbol
代币符号 (默认不传为平台代币币种)
示例
Proof.getInvestors('PC').then((r)=>{
console.log(r);
})
tokenDetails()
完成
Token 详情
参数:
_tokenSymbol
: 代币符号
返回值:
详情信息
示例
Proof.tokenDetails('PC').then((r)=>{
console.log(r);
})
upTokenDetails()
完成
更新 Token 附属信息
参数:
_tokenSymbol
: 代币符号
_tokenDetails
: 附属信息
返回值:
status
: 交易状态
gasUsed
: 矿工费
blockNumber
: 交易所在块的编号
transactionHash
: 交易hash
contractAddress
: 合约地址
url
: 查看交易详情URL
示例
Proof.upTokenDetails('PC', 'sdsdsdsdsds').then((r)=>{
console.log(r);
})
isAddress()
完成
地址是否有效
参数:
_address
: 地址
返回值:
布尔值
示例
Proof.isAddress('ABC')
isOnWhitelist()
完成
是否在白名单
参数:
_tokenSymbol
: 代币符号
_investor
: 地址
返回值:
布尔值
示例
Proof.isOnWhitelist(
'PC',
"0xee7ae74d964f2be7d72c1b187b38e2ed3615d4d1",
).then((r)=>{
console.log(r);
})
checkWhitelistMulti()
完成
校验白名单列表数据
参数:
_tokenSymbol
: 代币符号
_investors
: 地址列表
_type
: 默认(0)是否在白名单之内 KYC(1)投资有效期KYC
返回值:
verifiedArray
: 校验成功地址列表
failedArray
: 无效地址列表
示例
Proof.checkWhitelistMulti(
'PC',
[
"0xee7ae74d964f2be7d72c1b187b38e2ed3615d4d1",
"0xdB67e301D01c3C203162D4e87BdC9efae4C0A7F7"
]
).then((r)=>{
console.log(r);
})
accountsChanged()
完成
探测监听账号有变化
参数:
_callback
: 回调函数
返回值:
示例
Proof.accountsChanged((accounts)=>{
//账户发生变化
console.log('账户发生变化', accounts)
})
{
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}],
"stage-3"
],
"plugins": ["transform-vue-jsx", "transform-runtime"]
}
{
"presets": ["env"],
"plugins": ["transform-object-rest-spread", "transform-class-properties"]
}
{
"presets": [["env", { "modules": false }], "stage-3"],
"plugins": ["transform-runtime", "transform-object-rest-spread", "transform-class-properties"]
}
{
"presets": ["env", "flow-vue"],
"plugins": ["syntax-dynamic-import"]
}
"start": "cross-env NODE_ENV=development supervisor -w ./apk -i ./node_modules,./src,./public,./logs,./docs,./uploads,./unarchive ./apk/index.js", "dev": "webpack-dev-server --mode development", "build": "cross-env NODE_ENV=production webpack --mode production", "build:test": "rimraf ./dist && cross-env NODE_ENV=production webpack --mode production", "build:report": "npm run build --report", "dev:dist": "rollup -wm -c build/rollup.dev.config.js", "build:abi": "node --max-old-space-size=8096 build/build.js", "build:main": "node --max-old-space-size=8096 build/build.js"
5 years ago