github.com/lino-network/lino@v0.6.11/test/global/stake_interest_test.go (about)

     1  package global
     2  
     3  // import (
     4  // 	"testing"
     5  // 	"time"
     6  
     7  // 	"github.com/lino-network/lino/test"
     8  // 	"github.com/lino-network/lino/types"
     9  // 	"github.com/tendermint/tendermint/crypto/secp256k1"
    10  
    11  // 	posttypes "github.com/lino-network/lino/x/post/types"
    12  // 	vote "github.com/lino-network/lino/x/vote/types"
    13  // )
    14  
    15  // func TestStakeInterest(t *testing.T) {
    16  // 	postUserPriv := secp256k1.GenPrivKey()
    17  // 	donatorPriv := secp256k1.GenPrivKey()
    18  // 	u1Priv := secp256k1.GenPrivKey()
    19  // 	u2Priv := secp256k1.GenPrivKey()
    20  
    21  // 	postUserName := "poster"
    22  // 	donatorName := "donator"
    23  // 	u1Name := "user1"
    24  // 	u2Name := "user2"
    25  
    26  // 	postID := "New Post"
    27  
    28  // to recover the coin day
    29  // baseT := time.Unix(0,0).Add(7200 * time.Second)
    30  // baseTime := baseT.Unix()
    31  // lb := test.NewTestLinoBlockchain(t, test.DefaultNumOfVal, baseT)
    32  
    33  // 	test.CreateAccount(t, donatorName, lb, 0,
    34  // 		secp256k1.GenPrivKey(), donatorPriv, secp256k1.GenPrivKey(), "100000")
    35  // 	test.CreateAccount(t, u1Name, lb, 1,
    36  // 		secp256k1.GenPrivKey(), u1Priv, secp256k1.GenPrivKey(), "100000")
    37  // 	test.CreateAccount(t, u2Name, lb, 2,
    38  // 		secp256k1.GenPrivKey(), u2Priv, secp256k1.GenPrivKey(), "100000")
    39  // 	test.CreateAccount(t, postUserName, lb, 3,
    40  // 		secp256k1.GenPrivKey(), postUserPriv, secp256k1.GenPrivKey(), "100000")
    41  // 	test.CreateTestPost(
    42  // 		t, lb, postUserName, postID, 0, postUserPriv, baseTime)
    43  
    44  // 	donateMsg := posttypes.NewDonateMsg(
    45  // 		donatorName, types.LNO("2000"), postUserName, postID, "", "")
    46  // 	u1StakeInMsg := vote.NewStakeInMsg(u1Name, types.LNO("10000"))
    47  // 	u2StakeInMsg := vote.NewStakeInMsg(u2Name, types.LNO("40000"))
    48  
    49  // 	test.SignCheckDeliver(t, lb, donateMsg, 0, true, donatorPriv, baseTime)
    50  // 	test.SignCheckDeliver(t, lb, u1StakeInMsg, 0, true, u1Priv, baseTime)
    51  // 	test.SignCheckDeliver(t, lb, u2StakeInMsg, 0, true, u2Priv, baseTime)
    52  
    53  // 	test.CheckBalance(t, u1Name, lb, types.NewCoinFromInt64(89999*types.Decimals))
    54  // 	test.CheckBalance(t, u2Name, lb, types.NewCoinFromInt64(59999*types.Decimals))
    55  
    56  // 	// 3rd day
    57  // 	baseTime += 3600 * 24 * 3
    58  // 	test.SimulateOneBlock(lb, baseTime)
    59  
    60  // 	u1ClaimInterestMsg := vote.NewClaimInterestMsg(u1Name)
    61  // 	u2ClaimInterestMsg := vote.NewClaimInterestMsg(u2Name)
    62  
    63  // 	test.SignCheckDeliver(t, lb, u1ClaimInterestMsg, 1, true, u1Priv, baseTime)
    64  // 	test.SignCheckDeliver(t, lb, u2ClaimInterestMsg, 1, true, u2Priv, baseTime)
    65  
    66  // 	test.CheckBalance(t, u1Name, lb, types.NewCoinFromInt64((89999+0.15748)*types.Decimals))
    67  // 	test.CheckBalance(t, u2Name, lb, types.NewCoinFromInt64((59999+0.62992)*types.Decimals))
    68  
    69  // 	u1StakeInMsg = vote.NewStakeInMsg(u1Name, types.LNO("20000"))
    70  // 	u2StakeOutMsg := vote.NewStakeOutMsg(u2Name, types.LNO("10000"))
    71  
    72  // 	test.SignCheckDeliver(t, lb, u1StakeInMsg, 2, true, u1Priv, baseTime)
    73  // 	test.SignCheckDeliver(t, lb, u2StakeOutMsg, 2, true, u2Priv, baseTime)
    74  // 	test.SignCheckDeliver(t, lb, donateMsg, 1, true, donatorPriv, baseTime)
    75  
    76  // 	// 4th day
    77  // 	baseTime += 3600 * 24 * 1
    78  // 	test.SimulateOneBlock(lb, baseTime)
    79  // 	test.SignCheckDeliver(t, lb, donateMsg, 2, true, donatorPriv, baseTime)
    80  
    81  // 	// 5th day
    82  // 	baseTime += 3600 * 24 * 1
    83  // 	test.SimulateOneBlock(lb, baseTime)
    84  // 	test.SignCheckDeliver(t, lb, donateMsg, 3, true, donatorPriv, baseTime)
    85  
    86  // 	u1StakeOutMsg := vote.NewStakeOutMsg(u1Name, types.LNO("30000"))
    87  // 	u2StakeOutMsg = vote.NewStakeOutMsg(u2Name, types.LNO("30000"))
    88  
    89  // 	test.SignCheckDeliver(t, lb, u1StakeOutMsg, 3, true, u1Priv, baseTime)
    90  // 	test.SignCheckDeliver(t, lb, u2StakeOutMsg, 3, true, u2Priv, baseTime)
    91  
    92  // 	// 6th day
    93  // 	baseTime += 3600 * 24 * 1
    94  // 	test.SimulateOneBlock(lb, baseTime)
    95  
    96  // 	test.SignCheckDeliver(t, lb, u1ClaimInterestMsg, 4, true, u1Priv, baseTime)
    97  // 	test.SignCheckDeliver(t, lb, u2ClaimInterestMsg, 4, true, u2Priv, baseTime)
    98  
    99  // 	test.CheckBalance(t, u1Name, lb, types.NewCoinFromInt64((69999+1.10088)*types.Decimals))
   100  // 	test.CheckBalance(t, u2Name, lb, types.NewCoinFromInt64((59999+1.57332)*types.Decimals))
   101  
   102  // }