Updated remaining tests to use maker signatures when adding to pool
This commit is contained in:
@@ -61,7 +61,7 @@ describe('Staking Core', () => {
|
||||
[zrxTokenContract] = await erc20Wrapper.deployDummyTokensAsync(1, ZRX_TOKEN_DECIMALS);
|
||||
await erc20Wrapper.setBalancesAndAllowancesAsync();
|
||||
// deploy staking contracts
|
||||
stakingWrapper = new StakingWrapper(provider, owner, erc20ProxyContract, zrxTokenContract);
|
||||
stakingWrapper = new StakingWrapper(provider, owner, erc20ProxyContract, zrxTokenContract, accounts);
|
||||
await stakingWrapper.deployAndConfigureContracts();
|
||||
});
|
||||
beforeEach(async () => {
|
||||
@@ -608,16 +608,27 @@ describe('Staking Core', () => {
|
||||
stakingWrapper.toBaseUnitAmount(4.54522236),
|
||||
stakingWrapper.toBaseUnitAmount(0)
|
||||
];
|
||||
const makerSignatures = [
|
||||
// pool 0
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[0], makersByPoolId[0][0]).signature,
|
||||
// pool 1
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[1], makersByPoolId[1][0]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[1], makersByPoolId[1][1]).signature,
|
||||
// pool 2
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][0]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][1]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][2]).signature,
|
||||
]
|
||||
await Promise.all([
|
||||
// pool 0
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[0], makersByPoolId[0][0], "0x00", poolOperators[0]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[0], makersByPoolId[0][0], makerSignatures[0], poolOperators[0]),
|
||||
// pool 1
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][0], "0x00", poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][1], "0x00", poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][0], makerSignatures[1], poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][1], makerSignatures[2], poolOperators[1]),
|
||||
// pool 2
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][0], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][1], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][2], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][0], makerSignatures[3], poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][1], makerSignatures[4], poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][2], makerSignatures[5], poolOperators[2]),
|
||||
]);
|
||||
///// 2 PAY FEES /////
|
||||
await Promise.all([
|
||||
@@ -775,7 +786,7 @@ describe('Staking Core', () => {
|
||||
expect(ownerRewardFloatingPoint).to.be.bignumber.equal(expectedOwnerReward);
|
||||
});
|
||||
|
||||
it.only('pool management', async() => {
|
||||
it('pool management', async() => {
|
||||
// create first pool
|
||||
const operatorAddress = stakers[0];
|
||||
const operatorShare = 39;
|
||||
@@ -787,8 +798,7 @@ describe('Staking Core', () => {
|
||||
expect(nextPoolId).to.be.equal(expectedNextPoolId);
|
||||
// add maker to pool
|
||||
const makerAddress = makers[0];
|
||||
const makerPrivateKey = constants.TESTRPC_PRIVATE_KEYS[accounts.indexOf(makerAddress)];
|
||||
const makerApproval = stakingWrapper.getSignedApprovalForStakingPool(poolId, makerAddress, makerPrivateKey);
|
||||
const makerApproval = stakingWrapper.signApprovalForStakingPool(poolId, makerAddress);
|
||||
await stakingWrapper.addMakerToPoolAsync(poolId, makerAddress, makerApproval.signature, operatorAddress);
|
||||
// check the pool id of the maker
|
||||
const poolIdOfMaker = await stakingWrapper.getMakerPoolId(makerAddress);
|
||||
@@ -804,8 +814,7 @@ describe('Staking Core', () => {
|
||||
// try to add a new maker address from an address other than the pool operator
|
||||
const notOperatorAddress = owner;
|
||||
const anotherMakerAddress = makers[1];
|
||||
const anotherMakerPrivateKey = constants.TESTRPC_PRIVATE_KEYS[accounts.indexOf(anotherMakerAddress)];
|
||||
const anotherMakerApproval = stakingWrapper.getSignedApprovalForStakingPool(poolId, anotherMakerAddress, anotherMakerPrivateKey);
|
||||
const anotherMakerApproval = stakingWrapper.signApprovalForStakingPool(poolId, anotherMakerAddress);
|
||||
await expectTransactionFailedAsync(
|
||||
stakingWrapper.addMakerToPoolAsync(poolId, anotherMakerAddress, anotherMakerApproval.signature, notOperatorAddress),
|
||||
RevertReason.OnlyCallableByPoolOperator
|
||||
@@ -861,16 +870,27 @@ describe('Staking Core', () => {
|
||||
stakingWrapper.toBaseUnitAmount(4.54522236),
|
||||
stakingWrapper.toBaseUnitAmount(0)
|
||||
];
|
||||
const makerSignatures = [
|
||||
// pool 0
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[0], makersByPoolId[0][0]).signature,
|
||||
// pool 1
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[1], makersByPoolId[1][0]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[1], makersByPoolId[1][1]).signature,
|
||||
// pool 2
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][0]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][1]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][2]).signature,
|
||||
]
|
||||
await Promise.all([
|
||||
// pool 0
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[0], makersByPoolId[0][0], "0x00", poolOperators[0]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[0], makersByPoolId[0][0], makerSignatures[0], poolOperators[0]),
|
||||
// pool 1
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][0], "0x00", poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][1], "0x00", poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][0], makerSignatures[1], poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][1], makerSignatures[2], poolOperators[1]),
|
||||
// pool 2
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][0], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][1], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][2], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][0], makerSignatures[3], poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][1], makerSignatures[4], poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][2], makerSignatures[5], poolOperators[2]),
|
||||
]);
|
||||
///// 2 PAY FEES /////
|
||||
await Promise.all([
|
||||
@@ -1009,16 +1029,27 @@ describe('Staking Core', () => {
|
||||
stakingWrapper.toBaseUnitAmount(4.54522236),
|
||||
stakingWrapper.toBaseUnitAmount(0)
|
||||
];
|
||||
const makerSignatures = [
|
||||
// pool 0
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[0], makersByPoolId[0][0]).signature,
|
||||
// pool 1
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[1], makersByPoolId[1][0]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[1], makersByPoolId[1][1]).signature,
|
||||
// pool 2
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][0]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][1]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][2]).signature,
|
||||
]
|
||||
await Promise.all([
|
||||
// pool 0
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[0], makersByPoolId[0][0], "0x00", poolOperators[0]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[0], makersByPoolId[0][0], makerSignatures[0], poolOperators[0]),
|
||||
// pool 1
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][0], "0x00", poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][1], "0x00", poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][0], makerSignatures[1], poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][1], makerSignatures[2], poolOperators[1]),
|
||||
// pool 2
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][0], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][1], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][2], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][0], makerSignatures[3], poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][1], makerSignatures[4], poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][2], makerSignatures[5], poolOperators[2]),
|
||||
]);
|
||||
///// 2 PAY FEES /////
|
||||
await Promise.all([
|
||||
@@ -1253,16 +1284,27 @@ describe('Staking Core', () => {
|
||||
stakingWrapper.toBaseUnitAmount(4.54522236),
|
||||
stakingWrapper.toBaseUnitAmount(0)
|
||||
];
|
||||
const makerSignatures = [
|
||||
// pool 0
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[0], makersByPoolId[0][0]).signature,
|
||||
// pool 1
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[1], makersByPoolId[1][0]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[1], makersByPoolId[1][1]).signature,
|
||||
// pool 2
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][0]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][1]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][2]).signature,
|
||||
]
|
||||
await Promise.all([
|
||||
// pool 0
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[0], makersByPoolId[0][0], "0x00", poolOperators[0]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[0], makersByPoolId[0][0], makerSignatures[0], poolOperators[0]),
|
||||
// pool 1
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][0], "0x00", poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][1], "0x00", poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][0], makerSignatures[1], poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][1], makerSignatures[2], poolOperators[1]),
|
||||
// pool 2
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][0], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][1], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][2], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][0], makerSignatures[3], poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][1], makerSignatures[4], poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][2], makerSignatures[5], poolOperators[2]),
|
||||
]);
|
||||
///// 2 PAY FEES /////
|
||||
await Promise.all([
|
||||
@@ -1439,16 +1481,27 @@ describe('Staking Core', () => {
|
||||
stakingWrapper.toBaseUnitAmount(4.54522236),
|
||||
stakingWrapper.toBaseUnitAmount(0)
|
||||
];
|
||||
const makerSignatures = [
|
||||
// pool 0
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[0], makersByPoolId[0][0]).signature,
|
||||
// pool 1
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[1], makersByPoolId[1][0]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[1], makersByPoolId[1][1]).signature,
|
||||
// pool 2
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][0]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][1]).signature,
|
||||
stakingWrapper.signApprovalForStakingPool(poolIds[2], makersByPoolId[2][2]).signature,
|
||||
]
|
||||
await Promise.all([
|
||||
// pool 0
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[0], makersByPoolId[0][0], "0x00", poolOperators[0]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[0], makersByPoolId[0][0], makerSignatures[0], poolOperators[0]),
|
||||
// pool 1
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][0], "0x00", poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][1], "0x00", poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][0], makerSignatures[1], poolOperators[1]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[1], makersByPoolId[1][1], makerSignatures[2], poolOperators[1]),
|
||||
// pool 2
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][0], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][1], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][2], "0x00", poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][0], makerSignatures[3], poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][1], makerSignatures[4], poolOperators[2]),
|
||||
stakingWrapper.addMakerToPoolAsync(poolIds[2], makersByPoolId[2][2], makerSignatures[5], poolOperators[2]),
|
||||
]);
|
||||
///// 2 PAY FEES /////
|
||||
await Promise.all([
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { LogDecoder, txDefaults } from '@0x/contracts-test-utils';
|
||||
import { constants as testUtilsConstants, LogDecoder, txDefaults } from '@0x/contracts-test-utils';
|
||||
import { BigNumber } from '@0x/utils';
|
||||
import { Web3Wrapper } from '@0x/web3-wrapper';
|
||||
import * as chai from 'chai';
|
||||
@@ -23,13 +23,14 @@ export class StakingWrapper {
|
||||
private readonly _ownerAddres: string;
|
||||
private readonly _erc20ProxyContract: ERC20ProxyContract;
|
||||
private readonly _zrxTokenContract: DummyERC20TokenContract;
|
||||
private readonly _accounts: string[];
|
||||
private _stakingContractIfExists?: StakingContract;
|
||||
private _stakingProxyContractIfExists?: StakingProxyContract;
|
||||
private _zrxVaultContractIfExists?: ZrxVaultContract;
|
||||
private _rewardVaultContractIfExists?: RewardVaultContract;
|
||||
private _libMathTestContractIfExists?: LibMathTestContract;
|
||||
|
||||
constructor(provider: Provider, ownerAddres: string, erc20ProxyContract: ERC20ProxyContract, zrxTokenContract: DummyERC20TokenContract) {
|
||||
constructor(provider: Provider, ownerAddres: string, erc20ProxyContract: ERC20ProxyContract, zrxTokenContract: DummyERC20TokenContract, accounts: string[]) {
|
||||
this._web3Wrapper = new Web3Wrapper(provider);
|
||||
this._provider = provider;
|
||||
const decoderArtifacts = _.merge(artifacts, erc20Artifacts);
|
||||
@@ -37,6 +38,7 @@ export class StakingWrapper {
|
||||
this._ownerAddres= ownerAddres;
|
||||
this._erc20ProxyContract = erc20ProxyContract;
|
||||
this._zrxTokenContract = zrxTokenContract;
|
||||
this._accounts = accounts;
|
||||
}
|
||||
public getStakingContract(): StakingContract {
|
||||
this._validateDeployedOrThrow();
|
||||
@@ -288,8 +290,9 @@ export class StakingWrapper {
|
||||
const messageHash = this.getStakingContract().getStakingPoolApprovalMessageHash.getABIDecodedReturnData(returndata);
|
||||
return messageHash;
|
||||
}
|
||||
public getSignedApprovalForStakingPool(poolId: string, makerAddress: string, makerPrivateKey: Buffer, signatureType: SignatureType = SignatureType.EthSign): SignedStakingPoolApproval {
|
||||
const signedStakingPoolApproval = this.getSignedApprovalForStakingPoolFlexible(
|
||||
public signApprovalForStakingPool(poolId: string, makerAddress: string, signatureType: SignatureType = SignatureType.EthSign): SignedStakingPoolApproval {
|
||||
const makerPrivateKey = testUtilsConstants.TESTRPC_PRIVATE_KEYS[this._accounts.indexOf(makerAddress)];
|
||||
const signedStakingPoolApproval = this.signApprovalForStakingPoolFlexible(
|
||||
poolId,
|
||||
makerAddress,
|
||||
makerPrivateKey,
|
||||
@@ -299,7 +302,7 @@ export class StakingWrapper {
|
||||
);
|
||||
return signedStakingPoolApproval;
|
||||
}
|
||||
public getSignedApprovalForStakingPoolFlexible(
|
||||
public signApprovalForStakingPoolFlexible(
|
||||
poolId: string,
|
||||
makerAddress: string,
|
||||
makerPrivateKey: Buffer,
|
||||
|
||||
Reference in New Issue
Block a user