proofjs v0.0.1
使用
调试模式
http://192.168.56.1:9009/proof.js?t=随机数/时间戳
生产环境
#导入文件
import Proof from '../proof'
#npm安装依赖
npm install -S proofjsweb3js二次封装文档
导入 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"
7 years ago