2019-06-05 16:26:17 -07:00
|
|
|
package types
|
2018-09-26 06:39:05 -07:00
|
|
|
|
|
|
|
import (
|
|
|
|
"reflect"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
|
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestTxBuilderBuild(t *testing.T) {
|
|
|
|
type fields struct {
|
2018-12-12 13:29:42 -08:00
|
|
|
TxEncoder sdk.TxEncoder
|
2018-11-26 03:29:21 -08:00
|
|
|
AccountNumber uint64
|
|
|
|
Sequence uint64
|
2018-11-19 09:13:45 -08:00
|
|
|
Gas uint64
|
2018-09-26 06:39:05 -07:00
|
|
|
GasAdjustment float64
|
|
|
|
SimulateGas bool
|
|
|
|
ChainID string
|
|
|
|
Memo string
|
2018-12-19 16:26:33 -08:00
|
|
|
Fees sdk.Coins
|
2019-01-18 08:45:20 -08:00
|
|
|
GasPrices sdk.DecCoins
|
2018-09-26 06:39:05 -07:00
|
|
|
}
|
|
|
|
defaultMsg := []sdk.Msg{sdk.NewTestMsg(addr)}
|
|
|
|
tests := []struct {
|
2019-04-09 05:46:13 -07:00
|
|
|
name string
|
2018-09-26 06:39:05 -07:00
|
|
|
fields fields
|
|
|
|
msgs []sdk.Msg
|
|
|
|
want StdSignMsg
|
|
|
|
wantErr bool
|
|
|
|
}{
|
|
|
|
{
|
2019-04-09 05:46:13 -07:00
|
|
|
"builder with fees",
|
2018-09-26 06:39:05 -07:00
|
|
|
fields{
|
2019-06-05 16:26:17 -07:00
|
|
|
TxEncoder: DefaultTxEncoder(codec.New()),
|
2018-09-26 06:39:05 -07:00
|
|
|
AccountNumber: 1,
|
|
|
|
Sequence: 1,
|
2019-01-18 08:45:20 -08:00
|
|
|
Gas: 200000,
|
2018-09-26 06:39:05 -07:00
|
|
|
GasAdjustment: 1.1,
|
|
|
|
SimulateGas: false,
|
|
|
|
ChainID: "test-chain",
|
2019-01-18 08:45:20 -08:00
|
|
|
Memo: "hello from Voyager 1!",
|
2019-04-09 05:46:13 -07:00
|
|
|
Fees: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1))),
|
2018-09-26 06:39:05 -07:00
|
|
|
},
|
|
|
|
defaultMsg,
|
|
|
|
StdSignMsg{
|
|
|
|
ChainID: "test-chain",
|
|
|
|
AccountNumber: 1,
|
|
|
|
Sequence: 1,
|
2019-01-18 08:45:20 -08:00
|
|
|
Memo: "hello from Voyager 1!",
|
2018-09-26 06:39:05 -07:00
|
|
|
Msgs: defaultMsg,
|
2019-06-05 16:26:17 -07:00
|
|
|
Fee: NewStdFee(200000, sdk.Coins{sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1))}),
|
2019-01-18 08:45:20 -08:00
|
|
|
},
|
|
|
|
false,
|
|
|
|
},
|
|
|
|
{
|
2019-04-09 05:46:13 -07:00
|
|
|
"builder with gas prices",
|
2019-01-18 08:45:20 -08:00
|
|
|
fields{
|
2019-06-05 16:26:17 -07:00
|
|
|
TxEncoder: DefaultTxEncoder(codec.New()),
|
2019-01-18 08:45:20 -08:00
|
|
|
AccountNumber: 1,
|
|
|
|
Sequence: 1,
|
|
|
|
Gas: 200000,
|
|
|
|
GasAdjustment: 1.1,
|
|
|
|
SimulateGas: false,
|
|
|
|
ChainID: "test-chain",
|
|
|
|
Memo: "hello from Voyager 2!",
|
2019-02-13 15:01:50 -08:00
|
|
|
GasPrices: sdk.DecCoins{sdk.NewDecCoinFromDec(sdk.DefaultBondDenom, sdk.NewDecWithPrec(10000, sdk.Precision))},
|
2019-01-18 08:45:20 -08:00
|
|
|
},
|
|
|
|
defaultMsg,
|
|
|
|
StdSignMsg{
|
|
|
|
ChainID: "test-chain",
|
|
|
|
AccountNumber: 1,
|
|
|
|
Sequence: 1,
|
|
|
|
Memo: "hello from Voyager 2!",
|
|
|
|
Msgs: defaultMsg,
|
2019-06-05 16:26:17 -07:00
|
|
|
Fee: NewStdFee(200000, sdk.Coins{sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1))}),
|
2018-09-26 06:39:05 -07:00
|
|
|
},
|
|
|
|
false,
|
|
|
|
},
|
2019-04-09 05:46:13 -07:00
|
|
|
{
|
|
|
|
"no chain-id supplied",
|
|
|
|
fields{
|
2019-06-05 16:26:17 -07:00
|
|
|
TxEncoder: DefaultTxEncoder(codec.New()),
|
2019-04-09 05:46:13 -07:00
|
|
|
AccountNumber: 1,
|
|
|
|
Sequence: 1,
|
|
|
|
Gas: 200000,
|
|
|
|
GasAdjustment: 1.1,
|
|
|
|
SimulateGas: false,
|
|
|
|
ChainID: "",
|
|
|
|
Memo: "hello from Voyager 1!",
|
|
|
|
Fees: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1))),
|
|
|
|
},
|
|
|
|
defaultMsg,
|
|
|
|
StdSignMsg{
|
|
|
|
ChainID: "test-chain",
|
|
|
|
AccountNumber: 1,
|
|
|
|
Sequence: 1,
|
|
|
|
Memo: "hello from Voyager 1!",
|
|
|
|
Msgs: defaultMsg,
|
2019-06-05 16:26:17 -07:00
|
|
|
Fee: NewStdFee(200000, sdk.Coins{sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1))}),
|
2019-04-09 05:46:13 -07:00
|
|
|
},
|
|
|
|
true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"builder w/ fees and gas prices",
|
|
|
|
fields{
|
2019-06-05 16:26:17 -07:00
|
|
|
TxEncoder: DefaultTxEncoder(codec.New()),
|
2019-04-09 05:46:13 -07:00
|
|
|
AccountNumber: 1,
|
|
|
|
Sequence: 1,
|
|
|
|
Gas: 200000,
|
|
|
|
GasAdjustment: 1.1,
|
|
|
|
SimulateGas: false,
|
|
|
|
ChainID: "test-chain",
|
|
|
|
Memo: "hello from Voyager 1!",
|
|
|
|
Fees: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1))),
|
|
|
|
GasPrices: sdk.DecCoins{sdk.NewDecCoinFromDec(sdk.DefaultBondDenom, sdk.NewDecWithPrec(10000, sdk.Precision))},
|
|
|
|
},
|
|
|
|
defaultMsg,
|
|
|
|
StdSignMsg{
|
|
|
|
ChainID: "test-chain",
|
|
|
|
AccountNumber: 1,
|
|
|
|
Sequence: 1,
|
|
|
|
Memo: "hello from Voyager 1!",
|
|
|
|
Msgs: defaultMsg,
|
2019-06-05 16:26:17 -07:00
|
|
|
Fee: NewStdFee(200000, sdk.Coins{sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1))}),
|
2019-04-09 05:46:13 -07:00
|
|
|
},
|
|
|
|
true,
|
|
|
|
},
|
2018-09-26 06:39:05 -07:00
|
|
|
}
|
2019-01-18 08:45:20 -08:00
|
|
|
|
2019-04-09 05:46:13 -07:00
|
|
|
for _, tt := range tests {
|
2019-10-17 06:47:35 -07:00
|
|
|
tt := tt
|
2019-04-09 05:46:13 -07:00
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
|
|
bldr := NewTxBuilder(
|
|
|
|
tt.fields.TxEncoder, tt.fields.AccountNumber, tt.fields.Sequence,
|
|
|
|
tt.fields.Gas, tt.fields.GasAdjustment, tt.fields.SimulateGas,
|
|
|
|
tt.fields.ChainID, tt.fields.Memo, tt.fields.Fees, tt.fields.GasPrices,
|
|
|
|
)
|
|
|
|
got, err := bldr.BuildSignMsg(tt.msgs)
|
|
|
|
require.Equal(t, tt.wantErr, (err != nil))
|
|
|
|
if err == nil {
|
|
|
|
require.True(t, reflect.DeepEqual(tt.want, got))
|
|
|
|
}
|
|
|
|
})
|
2018-09-26 06:39:05 -07:00
|
|
|
}
|
|
|
|
}
|