github.com/lino-network/lino@v0.6.11/test/global/delegate_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"
    13  // )
    14  
    15  // func TestDelegateInterest(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  // 	u1DelegateMsg := vote.NewDelegateMsg(u1Name, u2Name, types.LNO("10000"))
    47  // 	u2DelegateMsg := vote.NewDelegateMsg(u2Name, u1Name, types.LNO("40000"))
    48  
    49  // 	test.SignCheckDeliver(t, lb, donateMsg, 0, true, donatorPriv, baseTime)
    50  // 	test.SignCheckDeliver(t, lb, u1DelegateMsg, 0, true, u1Priv, baseTime)
    51  // 	test.SignCheckDeliver(t, lb, u2DelegateMsg, 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  // 	u1DelegateMsg = vote.NewDelegateMsg(u1Name, u2Name, types.LNO("20000"))
    70  // 	u2StakeOutMsg := vote.NewStakeOutMsg(u2Name, types.LNO("10000"))
    71  // 	u2DelegatorWithdrawMsg := vote.NewDelegatorWithdrawMsg(u2Name, u1Name, types.LNO("10000"))
    72  
    73  // 	test.SignCheckDeliver(t, lb, u1DelegateMsg, 2, true, u1Priv, baseTime)
    74  // 	test.SignCheckDeliver(t, lb, u2StakeOutMsg, 2, false, u2Priv, baseTime)
    75  // 	test.SignCheckDeliver(t, lb, u2DelegatorWithdrawMsg, 3, true, u2Priv, baseTime)
    76  // 	test.SignCheckDeliver(t, lb, donateMsg, 1, true, donatorPriv, baseTime)
    77  
    78  // 	// 4th day
    79  // 	baseTime += 3600 * 24 * 1
    80  // 	test.SimulateOneBlock(lb, baseTime)
    81  // 	test.SignCheckDeliver(t, lb, donateMsg, 2, true, donatorPriv, baseTime)
    82  
    83  // 	// 5th day
    84  // 	baseTime += 3600 * 24 * 1
    85  // 	test.SimulateOneBlock(lb, baseTime)
    86  // 	test.SignCheckDeliver(t, lb, donateMsg, 3, true, donatorPriv, baseTime)
    87  
    88  // 	u1DelegatorWithdrawMsg := vote.NewDelegatorWithdrawMsg(u1Name, u2Name, types.LNO("30000"))
    89  // 	u2DelegatorWithdrawMsg = vote.NewDelegatorWithdrawMsg(u2Name, u1Name, types.LNO("30000"))
    90  
    91  // 	test.SignCheckDeliver(t, lb, u1DelegatorWithdrawMsg, 3, true, u1Priv, baseTime)
    92  // 	test.SignCheckDeliver(t, lb, u2DelegatorWithdrawMsg, 4, true, u2Priv, baseTime)
    93  
    94  // 	// 6th day
    95  // 	baseTime += 3600 * 24 * 1
    96  // 	test.SimulateOneBlock(lb, baseTime)
    97  
    98  // 	test.SignCheckDeliver(t, lb, u1ClaimInterestMsg, 4, true, u1Priv, baseTime)
    99  // 	test.SignCheckDeliver(t, lb, u2ClaimInterestMsg, 5, true, u2Priv, baseTime)
   100  
   101  // 	test.CheckBalance(t, u1Name, lb, types.NewCoinFromInt64((69999+1.10088)*types.Decimals))
   102  // 	test.CheckBalance(t, u2Name, lb, types.NewCoinFromInt64((59999+1.57332)*types.Decimals))
   103  
   104  // }