Giter VIP home page Giter VIP logo

vault's Issues

abi文档

{
          id: 'ycrv',
          name: 'yCRV',
          symbol: 'yCRV',
          description: 'yCRV',
          poolSymbol: 'YFII',
          poolAddress: '0xa1d0E215a23d7030842FC67cE582a6aFa3CCaB83',
          erc20address: '0xdF5e0e81Dff6FAF3A7e52BA697820c5e32D806A8',
          vaultContractAddress: '0xD2db1EF55549eCdacb4e7da081216AE96f0Eedcb',
          StrategyContractAddress:'0xfd4c75184bed2013fdb621f54885b2d2ed7c3894',
          vaultContractABI: config.vaultContractABI,
          strategyContractABI: config.strategyContractABI,
          balance: 0,
          pooledBalance: 0,
          decimals: 18,
          version: 1,
          earnNeed24Hours: true
        }

基于上面的配置文件

poolAddress 是分红代币的地址
erc20address 是需要存入代币的地址

方法

image

读的数据

当前拥有分红代币的余额 方法是

let erc20Contract = new web3.eth.Contract(config.erc20ABI, poolAddress)
var balance = await erc20Contract.methods.balanceOf(account.address).call({ from: account.address });
balance = parseFloat(balance)/10**asset.decimals

当前拥有存入代币的余额

let erc20Contract = new web3.eth.Contract(config.erc20ABI, erc20address)
var balance = await erc20Contract.methods.balanceOf(account.address).call({ from: account.address });
balance = parseFloat(balance)/10**asset.decimals

deposit 金额

let vaultContract = new web3.eth.Contract(vaultContractABI,vaultContractAddress)

var deposit_data = await vaultContract.methods.plyr_(account.address).call({ from: account.address });
var deposit = deposit_data["stake"]/1e18

eared金额

let vaultContract = new web3.eth.Contract(vaultContractABI,vaultContractAddress)
let eared = await vaultContract.methods.cal_out(account.address).call({ from: account.address });
eared = eared/1e18

pending金额

需要先读到
let data = vaultContract.methods.global_(0)..call({ from: account.address });
total_stake = data["total_stake"]
earnings_per_share = data['earnings_per_share']
var plyr_data = await vaultContract.methods.plyr_(account.address).call({ from: account.address });

var payout = plyr_data["payout"]
magnitude = 10**40

然后还需要用下面 yield查询里面的数值(假设为yield_value

earnings_per_share = earnings_per_share+yield_value*(magnitude)/(total_stake)

earnings_per_share*他质押的金额(也就是上面的deposit,没有除以1e18的值)/magnitude - payout

这个结果就是pending的金额,需要除以1e18显示给用户看.

操作

deposit:

deposit之前需要授权金额大于他 deposit的金额

检查授权金额为

let erc20Contract = new web3.eth.Contract(config.erc20ABI, erc20address)

let approve_balance = await vaultContract.methods.allowance(account.address,vaultContractAddress).call({ from: account.address });

如果授权金额小于存入金额,则授权

        await erc20Contract.methods.approve(vaultContractAddress, web3.utils.toWei('79228162514', "ether")).send({ from: account.address, gasPrice: web3.utils.toWei(await this._getGasPrice(), 'gwei') })

授权结束后 再是deposit操作

deposit 操作 的方法是 vaultContractAddress 的deposit ,参数是 存入的金额,存入的金额需要小于他的余额

claim

操作 的方法是 vaultContractAddress 的claim ,无参数

withdraw

操作 的方法是 vaultContractAddress 的withdraw ,参数是他要取出的金额,需要小于他存入的最大金额

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.