0.0.1 • Published 5 years ago

proofjs v0.0.1

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

使用

调试模式

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 对象

方法调用

  1. Promise 风格
  Proof.getBalance(address).then((balance)=>{
    console.log(balance);
  }).catch(function (reason) {
    console.log('错误')
  })
  1. 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"