Adding some tests to the reward vault

This commit is contained in:
Greg Hysen
2019-06-10 18:49:24 -07:00
parent 8c839b5c22
commit 316ef69074
10 changed files with 121 additions and 33 deletions

View File

@@ -64,6 +64,12 @@ export class StakingWrapper {
this._zrxTokenContract.address,
zrxAssetData
);
// deploy reward vault
this._rewardVaultContractIfExists = await RewardVaultContract.deployFrom0xArtifactAsync(
artifacts.RewardVault,
this._provider,
txDefaults,
);
// configure erc20 proxy to accept calls from zrx vault
await this._erc20ProxyContract.addAuthorizedAddress.awaitTransactionSuccessAsync((this._zrxVaultContractIfExists as ZrxVaultContract).address);
// deploy staking contract
@@ -92,17 +98,15 @@ export class StakingWrapper {
await this._web3Wrapper.sendTransactionAsync(setZrxVaultTxData)
);
// set reward vault in staking contract
/*
const setZrxVaultCalldata = await (this._stakingContractIfExists as StakingContract).setZrxVault.getABIEncodedTransactionData((this._zrxVaultContractIfExists as ZrxVaultContract).address);
const setZrxVaultTxData = {
const setRewardVaultCalldata = await (this._stakingContractIfExists as StakingContract).setRewardVault.getABIEncodedTransactionData((this._rewardVaultContractIfExists as RewardVaultContract).address);
const setRewardVaultTxData = {
from: this._ownerAddres,
to: (this._stakingProxyContractIfExists as StakingProxyContract).address,
data: setZrxVaultCalldata
data: setRewardVaultCalldata
}
await this._web3Wrapper.awaitTransactionSuccessAsync(
await this._web3Wrapper.sendTransactionAsync(setZrxVaultTxData)
await this._web3Wrapper.sendTransactionAsync(setRewardVaultTxData)
);
*/
// deploy libmath test
this._libMathTestContractIfExists = await LibMathTestContract.deployFrom0xArtifactAsync(
artifacts.LibMathTest,
@@ -405,21 +409,34 @@ export class StakingWrapper {
///// REWARD VAULT /////
public async depositRewardForAsync(poolId: string): Promise<BigNumber> {
public async rewardVaultDepositForAsync(poolId: string, amount: BigNumber, stakingContractAddress: string): Promise<TransactionReceiptWithDecodedLogs> {
const calldata = this.getRewardVaultContract().depositFor.getABIEncodedTransactionData(poolId);
const txReceipt = await this._executeTransactionAsync(calldata, stakingContractAddress, amount);
return txReceipt;
}
public async rewardVaultWithdrawFor(poolId: string, amount: BigNumber, stakingContractAddress: string): Promise<TransactionReceiptWithDecodedLogs> {
const calldata = this.getRewardVaultContract().withdrawFor.getABIEncodedTransactionData(poolId, amount);
const txReceipt = await this._executeTransactionAsync(calldata, stakingContractAddress);
return txReceipt;
}
public async rewardVaultWithdrawAllForAsync(poolId: string): Promise<TransactionReceiptWithDecodedLogs> {
const calldata = this.getRewardVaultContract().withdrawAllFrom.getABIEncodedTransactionData(poolId);
const txReceipt = await this._executeTransactionAsync(calldata);
return txReceipt;
}
public async rewardVaultEnterCatastrophicFailureModeAsync(zeroExMultisigAddress: string): Promise<TransactionReceiptWithDecodedLogs> {
const calldata = this.getRewardVaultContract().enterCatostrophicFailure.getABIEncodedTransactionData();
const txReceipt = await this._executeTransactionAsync(calldata, zeroExMultisigAddress);
return txReceipt;
}
public async rewardVaultGetBalanceAsync(poolId: string): Promise<BigNumber> {
const balance = await this.getRewardVaultContract().balanceOf.callAsync(poolId);
return balance;
}
public async withdrawRewardForAsync(poolId: string): Promise<BigNumber> {
const balance = await this.getRewardVaultContract().balanceOf.callAsync(poolId);
return balance;
}
public async withdrawAllRewardForAsync(poolId: string): Promise<BigNumber> {
const balance = await this.getRewardVaultContract().balanceOf.callAsync(poolId);
return balance;
}
public async getRewardBalanceInEthAsync(poolId: string): Promise<BigNumber> {
const balance = await this.getRewardVaultContract().balanceOf.callAsync(poolId);
return balance;
public async rewardVaultCreatePoolAsync(poolId: string, poolOwner: string, initialDeposit: BigNumber, stakingContractAddress: string): Promise<TransactionReceiptWithDecodedLogs> {
const calldata = this.getRewardVaultContract().createPool.getABIEncodedTransactionData(poolId, poolOwner);
const txReceipt = await this._executeTransactionAsync(calldata, stakingContractAddress, initialDeposit);
return txReceipt;
}
public async getEthBalanceOfRewardVaultAsync(): Promise<BigNumber> {
const balance = await this.getRewardVaultContract().balanceOf.callAsync(this.getZrxVaultContract().address);