vault's People
Forkers
longjef lavande guyunxiang laok2020 popolon2000 speedx2020 madlty zhoudaqing ryanfoong lancelotm tokenchain yflite vaodiemm 0x3c sekmet dub22 landoyjx r2moon litchistudio ihabhamed vs-de root-servers cleancoindev bilbonlehobbit code-lichuanjiang debu976116vault's Issues
run npm install arise error.What's the reason? thank you!
error message:
npm ERR! code ENOENT
npm ERR! syscall spawn git
npm ERR! path git
npm ERR! errno ENOENT
npm ERR! enoent Error while executing:
npm ERR! enoent undefined ls-remote -h -t https://github.com/ethereumjs/ethereumjs-abi.git
npm ERR! enoent
npm ERR! enoent
npm ERR! enoent spawn git ENOENT
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
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 是需要存入代币的地址
方法
读的数据
当前拥有分红代币的余额 方法是
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 ,参数是他要取出的金额,需要小于他存入的最大金额
是否要把换币的服务放到我们前端
或者说帮用户适配?
类似于一键换成ycrv
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.