Skip to content

Commit dd895c2

Browse files
authored
add logic for initial curve factor (#1184)
1 parent 043bbf1 commit dd895c2

6 files changed

Lines changed: 11 additions & 18 deletions

File tree

api/rewards/rewards_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func initRewardsServer(t *testing.T) *httptest.Server {
4242
params := thorChain.Contract(builtin.Params.Address, builtin.Params.ABI, genesis.DevAccounts()[0])
4343
err = params.MintTransaction("set", big.NewInt(0), thor.KeyMaxBlockProposers, big.NewInt(1))
4444
assert.NoError(t, err)
45-
err = params.MintTransaction("set", big.NewInt(0), thor.KeyCurveFactor, thor.CurveFactor)
45+
err = params.MintTransaction("set", big.NewInt(0), thor.KeyCurveFactor, thor.InitialCurveFactor)
4646
assert.NoError(t, err)
4747

4848
require.NoError(t, thorChain.MintBlock(genesis.DevAccounts()[0]))

builtin/energy/energy.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,10 @@ func (e *Energy) CalculateRewards(staker staker) (*big.Int, error) {
335335
if err != nil {
336336
return nil, err
337337
}
338+
if curveFactor.Uint64() == 0 {
339+
curveFactor = thor.InitialCurveFactor
340+
}
341+
338342
// reward = 1 * curveFactor * sqrt(totalStaked / 1e18) / blocksPerYear
339343
reward := big.NewInt(1)
340344
reward.Mul(reward, curveFactor)

builtin/energy/energy_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ func (m *mockStaker) IncreaseReward(master thor.Address, reward big.Int) error {
246246

247247
func TestCalculateRewards(t *testing.T) {
248248
st := state.New(muxdb.NewMem(), trie.Root{})
249-
st.SetStorage(thor.BytesToAddress([]byte("par")), thor.KeyCurveFactor, thor.BytesToBytes32(thor.CurveFactor.Bytes()))
249+
st.SetStorage(thor.BytesToAddress([]byte("par")), thor.KeyCurveFactor, thor.BytesToBytes32(thor.InitialCurveFactor.Bytes()))
250250

251251
p := params.New(thor.BytesToAddress([]byte("par")), st)
252252
eng := New(thor.BytesToAddress([]byte("eng")), st, 1, p)

builtin/native_calls_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -760,7 +760,7 @@ func TestEnergyNative(t *testing.T) {
760760
summary := thorChain.Repo().BestBlockSummary()
761761
firstPOS := summary.Header.Number() + 1
762762
st := thorChain.Stater().NewState(summary.Root())
763-
err = builtin.Params.Native(st).Set(thor.KeyCurveFactor, thor.CurveFactor)
763+
err = builtin.Params.Native(st).Set(thor.KeyCurveFactor, thor.InitialCurveFactor)
764764
assert.NoError(t, err)
765765

766766
energyAtBlock, err := builtin.Energy.Native(st, summary.Header.Timestamp()).Get(summary.Header.Beneficiary())

runtime/runtime.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -141,13 +141,6 @@ func New(
141141
if err := state.SetCode(builtin.Staker.Address, builtin.Staker.RuntimeBytecodes()); err != nil {
142142
panic(err)
143143
}
144-
145-
if err := builtin.Params.Native(state).Set(thor.KeyCurveFactor, thor.CurveFactor); err != nil {
146-
panic(err)
147-
}
148-
if err := builtin.Params.Native(state).Set(thor.KeyRewardRatio, thor.InitialRewardRatio); err != nil {
149-
panic(err)
150-
}
151144
}
152145

153146
rt := Runtime{

thor/params.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"math/big"
1010
"time"
1111

12-
"github.com/ethereum/go-ethereum/common"
1312
"github.com/ethereum/go-ethereum/params"
1413
)
1514

@@ -58,16 +57,13 @@ var (
5857
KeyProposerEndorsement = BytesToBytes32([]byte("proposer-endorsement"))
5958
KeyMaxBlockProposers = BytesToBytes32([]byte("max-block-proposers"))
6059
KeyStargateContractAddress = BytesToBytes32([]byte("stargate-contract-address"))
61-
KeyCurveFactor = BytesToBytes32([]byte("curve-factor"))
60+
KeyCurveFactor = BytesToBytes32([]byte("curve-factor")) // curve factor to define VTHO issuance after PoS
6261

6362
InitialRewardRatio = big.NewInt(3e17) // 30%
6463
InitialBaseGasPrice = big.NewInt(1e15)
6564
InitialProposerEndorsement = new(big.Int).Mul(big.NewInt(1e18), big.NewInt(25000000))
66-
InitialStargateAddress = common.Address{}.Big()
65+
InitialCurveFactor = big.NewInt(76800)
6766

68-
EnergyGrowthRate = big.NewInt(5000000000) // WEI THOR per token(VET) per second. about 0.000432 THOR per token per day.
69-
70-
CurveFactor = big.NewInt(76800)
71-
72-
NumberOfBlocksPerYear = big.NewInt(3153600) // number of blocks per year, non leap
67+
EnergyGrowthRate = big.NewInt(5000000000) // WEI THOR per token(VET) per second. about 0.000432 THOR per token per day.
68+
NumberOfBlocksPerYear = big.NewInt(3153600) // number of blocks per year, non leap
7369
)

0 commit comments

Comments
 (0)