github.com/lino-network/lino@v0.6.11/test/account/transfer_test.go (about) 1 package account 2 3 import ( 4 "testing" 5 "time" 6 7 sdk "github.com/cosmos/cosmos-sdk/types" 8 "github.com/tendermint/tendermint/crypto/secp256k1" 9 10 "github.com/lino-network/lino/test" 11 "github.com/lino-network/lino/types" 12 acctypes "github.com/lino-network/lino/x/account/types" 13 ) 14 15 // test normal transfer to account name 16 func TestTransferToAccount(t *testing.T) { 17 newAccountName := "newuser" 18 19 baseT := time.Unix(0, 0) 20 baseTime := baseT.Unix() 21 lb := test.NewTestLinoBlockchain(t, test.DefaultNumOfVal, baseT) 22 23 test.CreateAccount(t, newAccountName, lb, 0, 24 secp256k1.GenPrivKey(), secp256k1.GenPrivKey(), "100") 25 26 transferMsg := acctypes.NewTransferMsg( 27 test.GenesisUser, newAccountName, types.LNO("200"), "") 28 29 test.SignCheckDeliver(t, lb, transferMsg, 1, true, test.GenesisTransactionPriv, baseTime) 30 31 test.CheckBalance(t, test.GenesisUser, lb, 32 test.GetGenesisAccountCoin(test.DefaultNumOfVal).Minus(types.NewCoinFromInt64(300*types.Decimals))) 33 test.CheckBalance(t, newAccountName, lb, types.NewCoinFromInt64(299*types.Decimals)) 34 } 35 36 // test transfer between addresses. 37 func TestTransferToAddress(t *testing.T) { 38 newAccountName := "newuser" 39 newReceiver := "newreceiver" 40 41 baseT := time.Unix(0, 0) 42 baseTime := baseT.Unix() 43 lb := test.NewTestLinoBlockchain(t, test.DefaultNumOfVal, baseT) 44 45 senderPriv := secp256k1.GenPrivKey() 46 receiverPriv := secp256k1.GenPrivKey() 47 48 test.CreateAccount(t, newAccountName, lb, 0, 49 senderPriv, secp256k1.GenPrivKey(), "100") 50 test.CreateAccount(t, newReceiver, lb, 1, 51 receiverPriv, secp256k1.GenPrivKey(), "100") 52 53 // user -> address 54 transferMsg := acctypes.NewTransferV2Msg( 55 types.NewAccOrAddrFromAcc(types.AccountKey(test.GenesisUser)), 56 types.NewAccOrAddrFromAddr(sdk.AccAddress(senderPriv.PubKey().Address())), 57 types.LNO("200"), "") 58 test.SignCheckDeliver(t, lb, transferMsg, 2, true, test.GenesisTransactionPriv, baseTime) 59 60 test.CheckBalance(t, test.GenesisUser, lb, 61 test.GetGenesisAccountCoin(test.DefaultNumOfVal).Minus(types.NewCoinFromInt64(400*types.Decimals))) 62 test.CheckBalance(t, newAccountName, lb, types.NewCoinFromInt64(299*types.Decimals)) 63 64 // addr -> addr 65 transferMsg = acctypes.NewTransferV2Msg( 66 types.NewAccOrAddrFromAddr(sdk.AccAddress(senderPriv.PubKey().Address())), 67 types.NewAccOrAddrFromAddr(sdk.AccAddress(receiverPriv.PubKey().Address())), 68 types.LNO("100"), "") 69 test.SignCheckDeliver(t, lb, transferMsg, 1, true, senderPriv, baseTime) 70 71 test.CheckBalance(t, newAccountName, lb, types.NewCoinFromInt64(199*types.Decimals)) 72 test.CheckBalance(t, newReceiver, lb, types.NewCoinFromInt64(199*types.Decimals)) 73 74 // addr -> user 75 transferMsg = acctypes.NewTransferV2Msg( 76 types.NewAccOrAddrFromAddr(sdk.AccAddress(senderPriv.PubKey().Address())), 77 types.NewAccOrAddrFromAcc(types.AccountKey(newReceiver)), 78 types.LNO("100"), "") 79 test.SignCheckDeliver(t, lb, transferMsg, 2, true, senderPriv, baseTime) 80 81 test.CheckBalance(t, newAccountName, lb, types.NewCoinFromInt64(99*types.Decimals)) 82 test.CheckBalance(t, newReceiver, lb, types.NewCoinFromInt64(299*types.Decimals)) 83 }