From 0467171a6f353daf3582cbc6b4cd65fa07769756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8A=9B=E4=BB=81?= Date: Wed, 14 Aug 2019 11:51:35 +0800 Subject: [PATCH 1/5] expose stakev2wrappe --- package-lock.json | 2 +- package.json | 2 +- src/index.ts | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index aa9edd4..45d6bc7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@finbook/duo-contract-wrapper", - "version": "1.5.0", + "version": "1.5.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index f145ae9..cdf7a3f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@finbook/duo-contract-wrapper", - "version": "1.5.0", + "version": "1.5.1", "description": "DUO Contract Wrapper", "author": "FinBook Pte Ltd", "main": "dist/index.js", diff --git a/src/index.ts b/src/index.ts index 8d937c6..4ffca64 100644 --- a/src/index.ts +++ b/src/index.ts @@ -8,4 +8,5 @@ export { MagiWrapper } from './MagiWrapper'; export * from './types'; export { Web3Wrapper } from './Web3Wrapper'; export { VivaldiWrapper } from './VivaldiWrapper'; -export { StakeWrapper } from './StakeWrapper'; \ No newline at end of file +export { StakeWrapper } from './StakeWrapper'; +export { StakeV2Wrapper } from './StakeV2Wrapper'; \ No newline at end of file From b6c3016b66b458b222198baa88aad5dda8ce5186 Mon Sep 17 00:00:00 2001 From: weitao Date: Thu, 15 Aug 2019 17:58:54 +0800 Subject: [PATCH 2/5] fix bug --- src/StakeV2Wrapper.test.ts | 2 +- src/StakeV2Wrapper.ts | 12 ++++++------ src/__snapshots__/StakeV2Wrapper.test.ts.snap | 2 +- src/types.ts | 4 +++- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/StakeV2Wrapper.test.ts b/src/StakeV2Wrapper.test.ts index 0a9ad2e..cc36537 100644 --- a/src/StakeV2Wrapper.test.ts +++ b/src/StakeV2Wrapper.test.ts @@ -211,7 +211,7 @@ const web3Wrapper = { maxOracleStakeAmtInWei: jest.fn(() => ({ call: jest.fn(() => Promise.resolve('50000000000000000000000')) })), - totalAwardsToDistributeInWei: jest.fn(() => ({ + totalRewardsToDistributeInWei: jest.fn(() => ({ call: jest.fn(() => Promise.resolve('50000000000000000000000')) })), getOracleSize: jest.fn(() => ({ diff --git a/src/StakeV2Wrapper.ts b/src/StakeV2Wrapper.ts index b79192f..3af33bd 100644 --- a/src/StakeV2Wrapper.ts +++ b/src/StakeV2Wrapper.ts @@ -39,8 +39,8 @@ export class StakeV2Wrapper extends BaseContractWrapper { maxStakePerOracle: Web3Wrapper.fromWei( (await this.contract.methods.maxOracleStakeAmtInWei().call()).valueOf() ), - totalAwardsToDistribute: Web3Wrapper.fromWei( - (await this.contract.methods.totalAwardsToDistributeInWei().call()).valueOf() + totalRewardsToDistribute: Web3Wrapper.fromWei( + (await this.contract.methods.totalRewardsToDistributeInWei().call()).valueOf() ) }; } @@ -71,8 +71,8 @@ export class StakeV2Wrapper extends BaseContractWrapper { public async getStagingAddReward(index: number): Promise { const userReward: IRewardFromContract = await this.contract.methods - .addRewardStagingList() - .call(index); + .addRewardStagingList(index) + .call(); return { user: userReward.user, amount: Web3Wrapper.fromWei(userReward.amtInWei) @@ -81,8 +81,8 @@ export class StakeV2Wrapper extends BaseContractWrapper { public async getStagingReduceReward(index: number): Promise { const userReward: IRewardFromContract = await this.contract.methods - .reduceRewardStagingList() - .call(index); + .reduceRewardStagingList(index) + .call(); return { user: userReward.user, amount: Web3Wrapper.fromWei(userReward.amtInWei) diff --git a/src/__snapshots__/StakeV2Wrapper.test.ts.snap b/src/__snapshots__/StakeV2Wrapper.test.ts.snap index f32f1af..331078b 100644 --- a/src/__snapshots__/StakeV2Wrapper.test.ts.snap +++ b/src/__snapshots__/StakeV2Wrapper.test.ts.snap @@ -335,7 +335,7 @@ Object { "maxStakePerOracle": 50000, "minStakeAmt": 5000, "stakingEnabled": true, - "totalAwardsToDistribute": 50000, + "totalRewardsToDistribute": 50000, } `; diff --git a/src/types.ts b/src/types.ts index cc96ad9..d590e9a 100644 --- a/src/types.ts +++ b/src/types.ts @@ -76,15 +76,17 @@ export interface IStakeBaseStates { lockMinTimeInSecond: number; minStakeAmt: number; maxStakePerOracle: number; - totalAwardsToDistribute: number; + } export interface IStakeStates extends IStakeBaseStates { canStake: boolean; canUnstake: boolean; + totalAwardsToDistribute: number; } export interface IStakeV2States extends IStakeBaseStates { stakingEnabled: boolean; + totalRewardsToDistribute: number; } export interface IStakeAddress { From d9f58c28190fa2dc337a0fb06f8e85e690a0939c Mon Sep 17 00:00:00 2001 From: weitao Date: Thu, 15 Aug 2019 18:12:34 +0800 Subject: [PATCH 3/5] add commit gas --- src/StakeV2Wrapper.ts | 4 ++-- src/__snapshots__/StakeV2Wrapper.test.ts.snap | 8 ++++---- src/constants.ts | 2 ++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/StakeV2Wrapper.ts b/src/StakeV2Wrapper.ts index 3af33bd..5a85ea7 100644 --- a/src/StakeV2Wrapper.ts +++ b/src/StakeV2Wrapper.ts @@ -247,7 +247,7 @@ export class StakeV2Wrapper extends BaseContractWrapper { if (this.web3Wrapper.isReadOnly()) return this.web3Wrapper.readOnlyReject(); const txOption = await this.web3Wrapper.getTransactionOption( account, - CST.DEFAULT_TX_GAS_LIMIT, + CST.STAKE_V2_COMMIT_ADD_REWAD_LIMIT, option ); @@ -267,7 +267,7 @@ export class StakeV2Wrapper extends BaseContractWrapper { if (this.web3Wrapper.isReadOnly()) return this.web3Wrapper.readOnlyReject(); const txOption = await this.web3Wrapper.getTransactionOption( account, - CST.DEFAULT_TX_GAS_LIMIT, + CST.STAKE_V2_COMMIT_ADD_REWAD_LIMIT, option ); diff --git a/src/__snapshots__/StakeV2Wrapper.test.ts.snap b/src/__snapshots__/StakeV2Wrapper.test.ts.snap index 331078b..010db3a 100644 --- a/src/__snapshots__/StakeV2Wrapper.test.ts.snap +++ b/src/__snapshots__/StakeV2Wrapper.test.ts.snap @@ -133,12 +133,12 @@ exports[`commitAddReward 5`] = ` Array [ Array [ "account", - 30000, + 500000, Object {}, ], Array [ "account", - 30000, + 500000, Object { "gasLimit": 20000, "gasPrice": 1000000000, @@ -169,12 +169,12 @@ exports[`commitReduceReward 5`] = ` Array [ Array [ "account", - 30000, + 500000, Object {}, ], Array [ "account", - 30000, + 500000, Object { "gasLimit": 20000, "gasPrice": 1000000000, diff --git a/src/constants.ts b/src/constants.ts index 706ada7..8a55c5c 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -139,6 +139,8 @@ export const STAKE_V2_ENABLE_STAKING_GAS = 50000; export const STAKE_V2_DISENABLE_STAKING_GAS = 50000; export const STAKE_V2_STAGE_ADD_REWAD_LIMIT = 500000; export const STAKE_V2_STAGE_REDUCE_REWAD_LIMIT = 500000; +export const STAKE_V2_COMMIT_REDUCE_REWAD_LIMIT = 500000; +export const STAKE_V2_COMMIT_ADD_REWAD_LIMIT = 500000; export const BTV_STATE = { LAST_OPERATION_TIME: 0, From f134959db86bed63a885f97136cf619f9b36a1c3 Mon Sep 17 00:00:00 2001 From: weitao Date: Sun, 18 Aug 2019 10:06:55 +0800 Subject: [PATCH 4/5] update stake v2 constants --- src/StakeV2Wrapper.ts | 12 ++++++------ src/__snapshots__/StakeV2Wrapper.test.ts.snap | 8 ++++---- src/constants.ts | 10 ++++++---- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/StakeV2Wrapper.ts b/src/StakeV2Wrapper.ts index 5a85ea7..250cab1 100644 --- a/src/StakeV2Wrapper.ts +++ b/src/StakeV2Wrapper.ts @@ -206,7 +206,7 @@ export class StakeV2Wrapper extends BaseContractWrapper { if (this.web3Wrapper.isReadOnly()) return this.web3Wrapper.readOnlyReject(); const txOption = await this.web3Wrapper.getTransactionOption( account, - CST.STAKE_V2_STAGE_ADD_REWAD_LIMIT, + CST.STAKE_V2_STAGE_ADD_REWAD_GAS, option ); @@ -227,7 +227,7 @@ export class StakeV2Wrapper extends BaseContractWrapper { if (this.web3Wrapper.isReadOnly()) return this.web3Wrapper.readOnlyReject(); const txOption = await this.web3Wrapper.getTransactionOption( account, - CST.STAKE_V2_STAGE_REDUCE_REWAD_LIMIT, + CST.STAKE_V2_STAGE_REDUCE_REWAD_GAS, option ); @@ -247,7 +247,7 @@ export class StakeV2Wrapper extends BaseContractWrapper { if (this.web3Wrapper.isReadOnly()) return this.web3Wrapper.readOnlyReject(); const txOption = await this.web3Wrapper.getTransactionOption( account, - CST.STAKE_V2_COMMIT_ADD_REWAD_LIMIT, + CST.STAKE_V2_COMMIT_ADD_REWAD_GAS, option ); @@ -267,7 +267,7 @@ export class StakeV2Wrapper extends BaseContractWrapper { if (this.web3Wrapper.isReadOnly()) return this.web3Wrapper.readOnlyReject(); const txOption = await this.web3Wrapper.getTransactionOption( account, - CST.STAKE_V2_COMMIT_ADD_REWAD_LIMIT, + CST.STAKE_V2_COMMIT_ADD_REWAD_GAS, option ); @@ -286,7 +286,7 @@ export class StakeV2Wrapper extends BaseContractWrapper { if (this.web3Wrapper.isReadOnly()) return this.web3Wrapper.readOnlyReject(); const txOption = await this.web3Wrapper.getTransactionOption( account, - CST.DEFAULT_TX_GAS_LIMIT, + CST.STAKE_V2_RESET_STAGING_GAS, option ); @@ -307,7 +307,7 @@ export class StakeV2Wrapper extends BaseContractWrapper { if (this.web3Wrapper.isReadOnly()) return this.web3Wrapper.readOnlyReject(); const txOption = await this.web3Wrapper.getTransactionOption( account, - CST.DEFAULT_TX_GAS_LIMIT, + CST.STAKE_V2_AUTO_ROLL_GAS, option ); diff --git a/src/__snapshots__/StakeV2Wrapper.test.ts.snap b/src/__snapshots__/StakeV2Wrapper.test.ts.snap index 010db3a..dfafed1 100644 --- a/src/__snapshots__/StakeV2Wrapper.test.ts.snap +++ b/src/__snapshots__/StakeV2Wrapper.test.ts.snap @@ -59,12 +59,12 @@ exports[`autoRoll 5`] = ` Array [ Array [ "account", - 30000, + 200000, Object {}, ], Array [ "account", - 30000, + 200000, Object { "gasLimit": 20000, "gasPrice": 1000000000, @@ -419,12 +419,12 @@ exports[`resetStagingAwards 5`] = ` Array [ Array [ "account", - 30000, + 100000, Object {}, ], Array [ "account", - 30000, + 100000, Object { "gasLimit": 20000, "gasPrice": 1000000000, diff --git a/src/constants.ts b/src/constants.ts index 8a55c5c..3b252f7 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -137,10 +137,12 @@ export const STAKE_V2_UNSTAKING_GAS = 240000; export const STAKE_V2_CLAIM_REWARD_GAS = 60000; export const STAKE_V2_ENABLE_STAKING_GAS = 50000; export const STAKE_V2_DISENABLE_STAKING_GAS = 50000; -export const STAKE_V2_STAGE_ADD_REWAD_LIMIT = 500000; -export const STAKE_V2_STAGE_REDUCE_REWAD_LIMIT = 500000; -export const STAKE_V2_COMMIT_REDUCE_REWAD_LIMIT = 500000; -export const STAKE_V2_COMMIT_ADD_REWAD_LIMIT = 500000; +export const STAKE_V2_STAGE_ADD_REWAD_GAS = 500000; +export const STAKE_V2_STAGE_REDUCE_REWAD_GAS = 500000; +export const STAKE_V2_COMMIT_REDUCE_REWAD_GAS = 500000; +export const STAKE_V2_COMMIT_ADD_REWAD_GAS = 500000; +export const STAKE_V2_AUTO_ROLL_GAS = 200000; +export const STAKE_V2_RESET_STAGING_GAS = 100000; export const BTV_STATE = { LAST_OPERATION_TIME: 0, From 9f0d327251f3916d7310348c2a8a339e07dce416 Mon Sep 17 00:00:00 2001 From: WYANG008 Date: Mon, 19 Aug 2019 19:43:22 +0800 Subject: [PATCH 5/5] deploy main net --- package-lock.json | 26 +++++++++++++------------- src/contractAddresses.ts | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 45d6bc7..b1f0dfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1334,12 +1334,12 @@ }, "babel-plugin-syntax-async-functions": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" }, "babel-plugin-syntax-trailing-function-commas": { @@ -1707,7 +1707,7 @@ }, "babelify": { "version": "7.3.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", + "resolved": "http://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", "requires": { "babel-core": "^6.0.14", @@ -1999,7 +1999,7 @@ }, "browserify-rsa": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { "bn.js": "^4.1.0", @@ -2335,7 +2335,7 @@ }, "commander": { "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "resolved": "http://registry.npmjs.org/commander/-/commander-2.8.1.tgz", "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", "requires": { "graceful-readlink": ">= 1.0.0" @@ -2819,7 +2819,7 @@ }, "diffie-hellman": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "requires": { "bn.js": "^4.1.0", @@ -6210,7 +6210,7 @@ }, "jsonfile": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "requires": { "graceful-fs": "^4.1.6" @@ -6316,7 +6316,7 @@ }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "~1.0.0", @@ -6353,7 +6353,7 @@ }, "readable-stream": { "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { "core-util-is": "~1.0.0", @@ -6843,7 +6843,7 @@ }, "node-fetch": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", + "resolved": "http://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" }, "node-int64": { @@ -8597,7 +8597,7 @@ "dependencies": { "bluebird": { "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "resolved": "http://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" } } @@ -8638,7 +8638,7 @@ }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { @@ -9487,7 +9487,7 @@ }, "whatwg-fetch": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "resolved": "http://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" }, "whatwg-mimetype": { diff --git a/src/contractAddresses.ts b/src/contractAddresses.ts index 22e7b1e..adf3a31 100644 --- a/src/contractAddresses.ts +++ b/src/contractAddresses.ts @@ -161,7 +161,7 @@ export const mainnet: IContractAddresses = { StakesV2: [ { code: 'Stake-0', - address: '0x0000000000000000000000000000000000000000' + address: '0xb74437bb3bc31821d2f3446f2e75f615ac03f412' } ], DUO: {