美文网首页
94eth js lib库

94eth js lib库

作者: 泡沫与周期_白羊Jerry | 来源:发表于2018-06-26 14:42 被阅读33次

    94eth js lib库

    该库目的是为了方便dapp开发者使用js与内嵌的web3进行交互。

    • etherEnv.js

      环境库,用来检测metamask是否安装以及用户信息等。
      使用方法,以vue为例:

      1. Init(web3) return Promise
        返回一个context实例,内容包括:

        • web3 web3对象
        • address 当前登录的用户地址
        • network 当前连接的网络id
         const env = require('@/lib/etherEnv')
        
         mounted() {
             env.Init(window.web3)  //使用内嵌web3初始化
             .then(cxt => {
                 this.context = cxt   //保存context
                 ...
               })
             .catch(err => {
             // error 处理
             })
           }
        

      只有Init之后,才能继续调用该package的其它方法, Init后,也可以通过env.STATE获取到该context实例

      1. getEthBalance return Promise(BigNumber)
        返回当前账户的ETH余额

      2. txOnEtherscan(txid) return string
        返回指定交易在etherscan上的链接

      3. contractOnEtherscan(address) return string
        返回指定合约在etherscan上的链接

      4. getBalanceOf return Promise(BigNumber)
        返回某一个账户的eth余额

    • abi.js
      abi库,常用库的abi json

      1. erc20 erc20 标准abi
      2. eos eos 的abi
      3. stock 股份token的abi
      4. airdrop 空投合约的abi
      5. activity 直投合约的abi
      6. actGenerator 直投合约生成器合约的abi
    • deployed.js
      已经部署的合约的地址
      示例

      const deployed = require('@/lib/deployed')
      const holderAddr = deployed.holder['3']   //testnet上的股权合约
      
      
    • airdrop.js
      空投合约js封装,使用该类时,请首先初始化空投合约的contract对象,示例:

      let web3, etherenv // 请自行初始化web3, etherenv
      const Contract = require('./contract')
      const abi = require('./abi')
      const AirDrop = require('./airdrop)
      
      const airdrop = new Airdrop(web3)
      

      aridrop对象方法

      1. dropToken([]address, amount, tokenAddr) return Promise(txid)

        给出token地址,需要空投的地址列表和每个地址空投的token数量。
        会发出空投,返回空投交易哈希。

      2. dropEth([]address, amount) returns Promise(txid)

        给出需要空投的地址列表和每个地址空投token数量
        发出空投,返回空投交易哈希

      3. dropTokenS([]address, []amount, tokenAddr) return Promise(txid)

        提供每个地址都空投不同数量token的调用

      4. dropEthS([]address, []amount) return Promsie(txid)

        提供每个地址空投不同ETH的调用

    • batchControl.js
      batchControl主要用以账户批量管理模块的名额购买.
      请先用etherEnv里的STATE初始化一个batchControl对象

      const BatchControl = require('./batchControl')
      let etherEnv // Init环境...
      
      const batchControl = new BatchControl(etherEnv.STATE)
      

      batchControl 对象方法

      1. price() returns Promise(string)
        返回当前每账户名额的价格(字符串表示,以eth为单位)

      2. buy(n) returns Promise(txhash)
        购买n个账户,返回购买交易哈希

    附录

    1. error code对照表
    code error name 备注
    0 成功
    1 WEB3_MISS web3对象缺失,一般是前端没装metamask
    2 NETWORK_UNCONNECTED 节点没有连接上
    3 UNKNOWN_ACCOUNT
    4 ACCOUNT_LOCKED 未获取到ACCOUNT,一般是metamask没解锁账户
    5 INVALID_ADDRESS 地址非法
    6 RPC_ERROR 与节点RPC通信出错
    7 NOT_ERC20 合约并非erc20标准token
    8 RANGE_INVALID 起止范围错误
    9 MISS_PARAMETER 请求参数缺失
    10 UNSUPPORTED_NETWORK 不支持的ETH网络
    11 USER_AUTH_FAIL 用户验证失败
    12 TUTORIAL_NOT_BOUGHT 教程未购买
    13 TUTORIAL_NOT_READY 教程尚未上线
    14 ACCOUNTS_REACH_LIMIT 账户数量已满

    相关文章

      网友评论

          本文标题:94eth js lib库

          本文链接:https://www.haomeiwen.com/subject/hnxmyftx.html