asdf
This commit is contained in:
parent
50ed0fa1ae
commit
7ac220beb6
|
@ -325,7 +325,7 @@ type msgCounter2 struct {
|
|||
// Implements Msg
|
||||
func (msg msgCounter2) Type() string { return typeMsgCounter2 }
|
||||
func (msg msgCounter2) GetSignBytes() []byte { return nil }
|
||||
func (msg msgCounter2) GetSigners() []sdk.Address { return nil }
|
||||
func (msg msgCounter2) GetSigners() []sdk.AccAddress { return nil }
|
||||
func (msg msgCounter2) ValidateBasic() sdk.Error {
|
||||
if msg.Counter >= 0 {
|
||||
return nil
|
||||
|
|
|
@ -109,7 +109,7 @@ func (ctx CoreContext) queryStore(key cmn.HexBytes, storeName, endPath string) (
|
|||
}
|
||||
|
||||
// Get the from address from the name flag
|
||||
func (ctx CoreContext) GetFromAddress() (from sdk.Address, err error) {
|
||||
func (ctx CoreContext) GetFromAddress() (from sdk.AccAddress, err error) {
|
||||
|
||||
keybase, err := keys.GetKeyBase()
|
||||
if err != nil {
|
||||
|
@ -126,7 +126,7 @@ func (ctx CoreContext) GetFromAddress() (from sdk.Address, err error) {
|
|||
return nil, errors.Errorf("no key for: %s", name)
|
||||
}
|
||||
|
||||
return sdk.Address(info.GetPubKey().Address()), nil
|
||||
return sdk.AccAddress(info.GetPubKey().Address()), nil
|
||||
}
|
||||
|
||||
// sign and build the transaction from the msg
|
||||
|
|
|
@ -163,8 +163,8 @@ type NewKeyBody struct {
|
|||
|
||||
// new key response REST body
|
||||
type NewKeyResponse struct {
|
||||
Address sdk.Address `json:"address"`
|
||||
Mnemonic string `json:"mnemonic"`
|
||||
Address sdk.AccAddress `json:"address"`
|
||||
Mnemonic string `json:"mnemonic"`
|
||||
}
|
||||
|
||||
// add new key REST handler
|
||||
|
@ -215,7 +215,7 @@ func AddNewKeyRequestHandler(w http.ResponseWriter, r *http.Request) {
|
|||
w.Write([]byte(err.Error()))
|
||||
return
|
||||
}
|
||||
address := sdk.Address(info.GetPubKey().Address().Bytes())
|
||||
address := sdk.AccAddress(info.GetPubKey().Address().Bytes())
|
||||
bz, err := json.Marshal(NewKeyResponse{
|
||||
Address: address,
|
||||
Mnemonic: mnemonic,
|
||||
|
|
|
@ -48,11 +48,11 @@ func SetKeyBase(kb keys.Keybase) {
|
|||
|
||||
// used for outputting keys.Info over REST
|
||||
type KeyOutput struct {
|
||||
Name string `json:"name"`
|
||||
Type string `json:"type"`
|
||||
Address sdk.Address `json:"address"`
|
||||
PubKey string `json:"pub_key"`
|
||||
Seed string `json:"seed,omitempty"`
|
||||
Name string `json:"name"`
|
||||
Type string `json:"type"`
|
||||
Address sdk.AccAddress `json:"address"`
|
||||
PubKey string `json:"pub_key"`
|
||||
Seed string `json:"seed,omitempty"`
|
||||
}
|
||||
|
||||
// create a list of KeyOutput in bech32 format
|
||||
|
@ -70,7 +70,7 @@ func Bech32KeysOutput(infos []keys.Info) ([]KeyOutput, error) {
|
|||
|
||||
// create a KeyOutput in bech32 format
|
||||
func Bech32KeyOutput(info keys.Info) (KeyOutput, error) {
|
||||
account := sdk.Address(info.GetPubKey().Address().Bytes())
|
||||
account := sdk.AccAddress(info.GetPubKey().Address().Bytes())
|
||||
bechPubKey, err := sdk.Bech32ifyAccPub(info.GetPubKey())
|
||||
if err != nil {
|
||||
return KeyOutput{}, err
|
||||
|
|
|
@ -36,7 +36,7 @@ func init() {
|
|||
func TestKeys(t *testing.T) {
|
||||
name, password := "test", "1234567890"
|
||||
addr, seed := CreateAddr(t, "test", password, GetKB(t))
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.Address{addr})
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
||||
defer cleanup()
|
||||
|
||||
// get seed
|
||||
|
@ -109,7 +109,7 @@ func TestKeys(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestVersion(t *testing.T) {
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.Address{})
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{})
|
||||
defer cleanup()
|
||||
|
||||
// node info
|
||||
|
@ -132,7 +132,7 @@ func TestVersion(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestNodeStatus(t *testing.T) {
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.Address{})
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{})
|
||||
defer cleanup()
|
||||
|
||||
// node info
|
||||
|
@ -154,7 +154,7 @@ func TestNodeStatus(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestBlock(t *testing.T) {
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.Address{})
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{})
|
||||
defer cleanup()
|
||||
|
||||
var resultBlock ctypes.ResultBlock
|
||||
|
@ -184,7 +184,7 @@ func TestBlock(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestValidators(t *testing.T) {
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.Address{})
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{})
|
||||
defer cleanup()
|
||||
|
||||
var resultVals rpc.ResultValidatorsOutput
|
||||
|
@ -219,12 +219,12 @@ func TestValidators(t *testing.T) {
|
|||
func TestCoinSend(t *testing.T) {
|
||||
name, password := "test", "1234567890"
|
||||
addr, seed := CreateAddr(t, "test", password, GetKB(t))
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.Address{addr})
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
||||
defer cleanup()
|
||||
|
||||
bz, err := hex.DecodeString("8FA6AB57AD6870F6B5B2E57735F38F2F30E73CB6")
|
||||
require.NoError(t, err)
|
||||
someFakeAddr := sdk.Address(bz)
|
||||
someFakeAddr := sdk.AccAddress(bz)
|
||||
|
||||
// query empty
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/accounts/%s", someFakeAddr), nil)
|
||||
|
@ -261,7 +261,7 @@ func TestCoinSend(t *testing.T) {
|
|||
func TestIBCTransfer(t *testing.T) {
|
||||
name, password := "test", "1234567890"
|
||||
addr, seed := CreateAddr(t, "test", password, GetKB(t))
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.Address{addr})
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
||||
defer cleanup()
|
||||
|
||||
acc := getAccount(t, port, addr)
|
||||
|
@ -290,7 +290,7 @@ func TestIBCTransfer(t *testing.T) {
|
|||
func TestTxs(t *testing.T) {
|
||||
name, password := "test", "1234567890"
|
||||
addr, seed := CreateAddr(t, "test", password, GetKB(t))
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.Address{addr})
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
||||
defer cleanup()
|
||||
|
||||
// query wrong
|
||||
|
@ -353,7 +353,7 @@ func TestTxs(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestValidatorsQuery(t *testing.T) {
|
||||
cleanup, pks, port := InitializeTestLCD(t, 2, []sdk.Address{})
|
||||
cleanup, pks, port := InitializeTestLCD(t, 2, []sdk.AccAddress{})
|
||||
defer cleanup()
|
||||
require.Equal(t, 2, len(pks))
|
||||
|
||||
|
@ -377,10 +377,10 @@ func TestValidatorsQuery(t *testing.T) {
|
|||
func TestBonding(t *testing.T) {
|
||||
name, password, denom := "test", "1234567890", "steak"
|
||||
addr, seed := CreateAddr(t, "test", password, GetKB(t))
|
||||
cleanup, pks, port := InitializeTestLCD(t, 1, []sdk.Address{addr})
|
||||
cleanup, pks, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
||||
defer cleanup()
|
||||
|
||||
validator1Owner := sdk.Address(pks[0].Address())
|
||||
validator1Owner := sdk.AccAddress(pks[0].Address())
|
||||
|
||||
// create bond TX
|
||||
resultTx := doDelegate(t, port, seed, name, password, addr, validator1Owner)
|
||||
|
@ -427,7 +427,7 @@ func TestBonding(t *testing.T) {
|
|||
func TestSubmitProposal(t *testing.T) {
|
||||
name, password := "test", "1234567890"
|
||||
addr, seed := CreateAddr(t, "test", password, GetKB(t))
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.Address{addr})
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
||||
defer cleanup()
|
||||
|
||||
// create SubmitProposal TX
|
||||
|
@ -449,7 +449,7 @@ func TestSubmitProposal(t *testing.T) {
|
|||
func TestDeposit(t *testing.T) {
|
||||
name, password := "test", "1234567890"
|
||||
addr, seed := CreateAddr(t, "test", password, GetKB(t))
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.Address{addr})
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
||||
defer cleanup()
|
||||
|
||||
// create SubmitProposal TX
|
||||
|
@ -483,7 +483,7 @@ func TestDeposit(t *testing.T) {
|
|||
func TestVote(t *testing.T) {
|
||||
name, password := "test", "1234567890"
|
||||
addr, seed := CreateAddr(t, "test", password, GetKB(t))
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.Address{addr})
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
||||
defer cleanup()
|
||||
|
||||
// create SubmitProposal TX
|
||||
|
@ -521,13 +521,13 @@ func TestVote(t *testing.T) {
|
|||
func TestUnrevoke(t *testing.T) {
|
||||
_, password := "test", "1234567890"
|
||||
addr, _ := CreateAddr(t, "test", password, GetKB(t))
|
||||
cleanup, pks, port := InitializeTestLCD(t, 1, []sdk.Address{addr})
|
||||
cleanup, pks, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr})
|
||||
defer cleanup()
|
||||
|
||||
// XXX: any less than this and it fails
|
||||
tests.WaitForHeight(3, port)
|
||||
|
||||
signingInfo := getSigningInfo(t, port, pks[0].Address())
|
||||
signingInfo := getSigningInfo(t, port, sdk.ValAddress(pks[0].Address()))
|
||||
tests.WaitForHeight(4, port)
|
||||
require.Equal(t, true, signingInfo.IndexOffset > 0)
|
||||
require.Equal(t, int64(0), signingInfo.JailedUntil)
|
||||
|
@ -539,7 +539,7 @@ func TestProposalsQuery(t *testing.T) {
|
|||
name2, password2 := "test2", "1234567890"
|
||||
addr, seed := CreateAddr(t, "test", password1, GetKB(t))
|
||||
addr2, seed2 := CreateAddr(t, "test2", password2, GetKB(t))
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.Address{addr, addr2})
|
||||
cleanup, _, port := InitializeTestLCD(t, 1, []sdk.AccAddress{addr, addr2})
|
||||
defer cleanup()
|
||||
|
||||
// Addr1 proposes (and deposits) proposals #1 and #2
|
||||
|
@ -605,9 +605,8 @@ func TestProposalsQuery(t *testing.T) {
|
|||
|
||||
//_____________________________________________________________________________
|
||||
// get the account to get the sequence
|
||||
func getAccount(t *testing.T, port string, addr sdk.Address) auth.Account {
|
||||
addrBech32 := sdk.MustBech32ifyAcc(addr)
|
||||
res, body := Request(t, port, "GET", "/accounts/"+addrBech32, nil)
|
||||
func getAccount(t *testing.T, port string, addr sdk.AccAddress) auth.Account {
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/accounts/%s", addr), nil)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
var acc auth.Account
|
||||
err := cdc.UnmarshalJSON([]byte(body), &acc)
|
||||
|
@ -615,14 +614,13 @@ func getAccount(t *testing.T, port string, addr sdk.Address) auth.Account {
|
|||
return acc
|
||||
}
|
||||
|
||||
func doSend(t *testing.T, port, seed, name, password string, addr sdk.Address) (receiveAddr sdk.Address, resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
func doSend(t *testing.T, port, seed, name, password string, addr sdk.AccAddress) (receiveAddr sdk.AccAddress, resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
|
||||
// create receive address
|
||||
kb := client.MockKeyBase()
|
||||
receiveInfo, _, err := kb.CreateMnemonic("receive_address", cryptoKeys.English, "1234567890", cryptoKeys.SigningAlgo("secp256k1"))
|
||||
require.Nil(t, err)
|
||||
receiveAddr = receiveInfo.GetPubKey().Address()
|
||||
receiveAddrBech := sdk.MustBech32ifyAcc(receiveAddr)
|
||||
receiveAddr = sdk.AccAddress(receiveInfo.GetPubKey().Address())
|
||||
|
||||
acc := getAccount(t, port, addr)
|
||||
accnum := acc.GetAccountNumber()
|
||||
|
@ -644,7 +642,7 @@ func doSend(t *testing.T, port, seed, name, password string, addr sdk.Address) (
|
|||
"amount":[%s],
|
||||
"chain_id":"%s"
|
||||
}`, name, password, accnum, sequence, coinbz, chainID))
|
||||
res, body := Request(t, port, "POST", "/accounts/"+receiveAddrBech+"/send", jsonStr)
|
||||
res, body := Request(t, port, "POST", fmt.Sprintf("/accounts/%s/send", receiveAddr), jsonStr)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
|
||||
err = cdc.UnmarshalJSON([]byte(body), &resultTx)
|
||||
|
@ -653,13 +651,12 @@ func doSend(t *testing.T, port, seed, name, password string, addr sdk.Address) (
|
|||
return receiveAddr, resultTx
|
||||
}
|
||||
|
||||
func doIBCTransfer(t *testing.T, port, seed, name, password string, addr sdk.Address) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
func doIBCTransfer(t *testing.T, port, seed, name, password string, addr sdk.AccAddress) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
// create receive address
|
||||
kb := client.MockKeyBase()
|
||||
receiveInfo, _, err := kb.CreateMnemonic("receive_address", cryptoKeys.English, "1234567890", cryptoKeys.SigningAlgo("secp256k1"))
|
||||
require.Nil(t, err)
|
||||
receiveAddr := receiveInfo.GetPubKey().Address()
|
||||
receiveAddrBech := sdk.MustBech32ifyAcc(receiveAddr)
|
||||
receiveAddr := sdk.AccAddress(receiveInfo.GetPubKey().Address())
|
||||
|
||||
chainID := viper.GetString(client.FlagChainID)
|
||||
|
||||
|
@ -683,7 +680,7 @@ func doIBCTransfer(t *testing.T, port, seed, name, password string, addr sdk.Add
|
|||
}
|
||||
]
|
||||
}`, name, password, accnum, sequence, chainID, "steak"))
|
||||
res, body := Request(t, port, "POST", "/ibc/testchain/"+receiveAddrBech+"/send", jsonStr)
|
||||
res, body := Request(t, port, "POST", fmt.Sprintf("/ibc/testchain/%s/send", receiveAddr), jsonStr)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
|
||||
err = cdc.UnmarshalJSON([]byte(body), &resultTx)
|
||||
|
@ -692,9 +689,8 @@ func doIBCTransfer(t *testing.T, port, seed, name, password string, addr sdk.Add
|
|||
return resultTx
|
||||
}
|
||||
|
||||
func getSigningInfo(t *testing.T, port string, validatorAddr sdk.Address) slashing.ValidatorSigningInfo {
|
||||
validatorAddrBech := sdk.MustBech32ifyVal(validatorAddr)
|
||||
res, body := Request(t, port, "GET", "/slashing/signing_info/"+validatorAddrBech, nil)
|
||||
func getSigningInfo(t *testing.T, port string, validatorAddr sdk.ValAddress) slashing.ValidatorSigningInfo {
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/slashing/signing_info/%s", validatorAddr), nil)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
var signingInfo slashing.ValidatorSigningInfo
|
||||
err := cdc.UnmarshalJSON([]byte(body), &signingInfo)
|
||||
|
@ -702,13 +698,10 @@ func getSigningInfo(t *testing.T, port string, validatorAddr sdk.Address) slashi
|
|||
return signingInfo
|
||||
}
|
||||
|
||||
func getDelegation(t *testing.T, port string, delegatorAddr, validatorAddr sdk.Address) stake.Delegation {
|
||||
|
||||
delegatorAddrBech := sdk.MustBech32ifyAcc(delegatorAddr)
|
||||
validatorAddrBech := sdk.MustBech32ifyVal(validatorAddr)
|
||||
func getDelegation(t *testing.T, port string, delegatorAddr, validatorAddr sdk.AccAddress) stake.Delegation {
|
||||
|
||||
// get the account to get the sequence
|
||||
res, body := Request(t, port, "GET", "/stake/"+delegatorAddrBech+"/delegation/"+validatorAddrBech, nil)
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/stake/%s/delegation/%s", delegatorAddr, validatorAddr), nil)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
var bond stake.Delegation
|
||||
err := cdc.UnmarshalJSON([]byte(body), &bond)
|
||||
|
@ -716,15 +709,12 @@ func getDelegation(t *testing.T, port string, delegatorAddr, validatorAddr sdk.A
|
|||
return bond
|
||||
}
|
||||
|
||||
func doDelegate(t *testing.T, port, seed, name, password string, delegatorAddr, validatorAddr sdk.Address) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
func doDelegate(t *testing.T, port, seed, name, password string, delegatorAddr, validatorAddr sdk.AccAddress) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
// get the account to get the sequence
|
||||
acc := getAccount(t, port, delegatorAddr)
|
||||
accnum := acc.GetAccountNumber()
|
||||
sequence := acc.GetSequence()
|
||||
|
||||
delegatorAddrBech := sdk.MustBech32ifyAcc(delegatorAddr)
|
||||
validatorAddrBech := sdk.MustBech32ifyVal(validatorAddr)
|
||||
|
||||
chainID := viper.GetString(client.FlagChainID)
|
||||
|
||||
// send
|
||||
|
@ -746,7 +736,7 @@ func doDelegate(t *testing.T, port, seed, name, password string, delegatorAddr,
|
|||
"complete_unbondings": [],
|
||||
"begin_redelegates": [],
|
||||
"complete_redelegates": []
|
||||
}`, name, password, accnum, sequence, chainID, delegatorAddrBech, validatorAddrBech, "steak"))
|
||||
}`, name, password, accnum, sequence, chainID, delegatorAddr, validatorAddr, "steak"))
|
||||
res, body := Request(t, port, "POST", "/stake/delegations", jsonStr)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
|
||||
|
@ -758,16 +748,13 @@ func doDelegate(t *testing.T, port, seed, name, password string, delegatorAddr,
|
|||
}
|
||||
|
||||
func doBeginUnbonding(t *testing.T, port, seed, name, password string,
|
||||
delegatorAddr, validatorAddr sdk.Address) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
delegatorAddr, validatorAddr sdk.AccAddress) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
|
||||
// get the account to get the sequence
|
||||
acc := getAccount(t, port, delegatorAddr)
|
||||
accnum := acc.GetAccountNumber()
|
||||
sequence := acc.GetSequence()
|
||||
|
||||
delegatorAddrBech := sdk.MustBech32ifyAcc(delegatorAddr)
|
||||
validatorAddrBech := sdk.MustBech32ifyVal(validatorAddr)
|
||||
|
||||
chainID := viper.GetString(client.FlagChainID)
|
||||
|
||||
// send
|
||||
|
@ -789,7 +776,7 @@ func doBeginUnbonding(t *testing.T, port, seed, name, password string,
|
|||
"complete_unbondings": [],
|
||||
"begin_redelegates": [],
|
||||
"complete_redelegates": []
|
||||
}`, name, password, accnum, sequence, chainID, delegatorAddrBech, validatorAddrBech))
|
||||
}`, name, password, accnum, sequence, chainID, delegatorAddr, validatorAddr))
|
||||
res, body := Request(t, port, "POST", "/stake/delegations", jsonStr)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
|
||||
|
@ -801,17 +788,13 @@ func doBeginUnbonding(t *testing.T, port, seed, name, password string,
|
|||
}
|
||||
|
||||
func doBeginRedelegation(t *testing.T, port, seed, name, password string,
|
||||
delegatorAddr, validatorSrcAddr, validatorDstAddr sdk.Address) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
delegatorAddr, validatorSrcAddr, validatorDstAddr sdk.AccAddress) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
|
||||
// get the account to get the sequence
|
||||
acc := getAccount(t, port, delegatorAddr)
|
||||
accnum := acc.GetAccountNumber()
|
||||
sequence := acc.GetSequence()
|
||||
|
||||
delegatorAddrBech := sdk.MustBech32ifyAcc(delegatorAddr)
|
||||
validatorSrcAddrBech := sdk.MustBech32ifyVal(validatorSrcAddr)
|
||||
validatorDstAddrBech := sdk.MustBech32ifyVal(validatorDstAddr)
|
||||
|
||||
chainID := viper.GetString(client.FlagChainID)
|
||||
|
||||
// send
|
||||
|
@ -834,7 +817,7 @@ func doBeginRedelegation(t *testing.T, port, seed, name, password string,
|
|||
}
|
||||
],
|
||||
"complete_redelegates": []
|
||||
}`, name, password, accnum, sequence, chainID, delegatorAddrBech, validatorSrcAddrBech, validatorDstAddrBech))
|
||||
}`, name, password, accnum, sequence, chainID, delegatorAddr, validatorSrcAddr, validatorDstAddr))
|
||||
res, body := Request(t, port, "POST", "/stake/delegations", jsonStr)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
|
||||
|
@ -864,9 +847,8 @@ func getProposal(t *testing.T, port string, proposalID int64) gov.ProposalRest {
|
|||
return proposal
|
||||
}
|
||||
|
||||
func getDeposit(t *testing.T, port string, proposalID int64, depositerAddr sdk.Address) gov.DepositRest {
|
||||
bechDepositerAddr := sdk.MustBech32ifyAcc(depositerAddr)
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals/%d/deposits/%s", proposalID, bechDepositerAddr), nil)
|
||||
func getDeposit(t *testing.T, port string, proposalID int64, depositerAddr sdk.AccAddress) gov.DepositRest {
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals/%d/deposits/%s", proposalID, depositerAddr), nil)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
var deposit gov.DepositRest
|
||||
err := cdc.UnmarshalJSON([]byte(body), &deposit)
|
||||
|
@ -874,9 +856,8 @@ func getDeposit(t *testing.T, port string, proposalID int64, depositerAddr sdk.A
|
|||
return deposit
|
||||
}
|
||||
|
||||
func getVote(t *testing.T, port string, proposalID int64, voterAddr sdk.Address) gov.VoteRest {
|
||||
bechVoterAddr := sdk.MustBech32ifyAcc(voterAddr)
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals/%d/votes/%s", proposalID, bechVoterAddr), nil)
|
||||
func getVote(t *testing.T, port string, proposalID int64, voterAddr sdk.AccAddress) gov.VoteRest {
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals/%d/votes/%s", proposalID, voterAddr), nil)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
var vote gov.VoteRest
|
||||
err := cdc.UnmarshalJSON([]byte(body), &vote)
|
||||
|
@ -894,10 +875,8 @@ func getProposalsAll(t *testing.T, port string) []gov.ProposalRest {
|
|||
return proposals
|
||||
}
|
||||
|
||||
func getProposalsFilterDepositer(t *testing.T, port string, depositerAddr sdk.Address) []gov.ProposalRest {
|
||||
bechDepositerAddr := sdk.MustBech32ifyAcc(depositerAddr)
|
||||
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals?depositer=%s", bechDepositerAddr), nil)
|
||||
func getProposalsFilterDepositer(t *testing.T, port string, depositerAddr sdk.AccAddress) []gov.ProposalRest {
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals?depositer=%s", depositerAddr), nil)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
|
||||
var proposals []gov.ProposalRest
|
||||
|
@ -906,10 +885,8 @@ func getProposalsFilterDepositer(t *testing.T, port string, depositerAddr sdk.Ad
|
|||
return proposals
|
||||
}
|
||||
|
||||
func getProposalsFilterVoter(t *testing.T, port string, voterAddr sdk.Address) []gov.ProposalRest {
|
||||
bechVoterAddr := sdk.MustBech32ifyAcc(voterAddr)
|
||||
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals?voter=%s", bechVoterAddr), nil)
|
||||
func getProposalsFilterVoter(t *testing.T, port string, voterAddr sdk.AccAddress) []gov.ProposalRest {
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals?voter=%s", voterAddr), nil)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
|
||||
var proposals []gov.ProposalRest
|
||||
|
@ -918,11 +895,8 @@ func getProposalsFilterVoter(t *testing.T, port string, voterAddr sdk.Address) [
|
|||
return proposals
|
||||
}
|
||||
|
||||
func getProposalsFilterVoterDepositer(t *testing.T, port string, voterAddr sdk.Address, depositerAddr sdk.Address) []gov.ProposalRest {
|
||||
bechVoterAddr := sdk.MustBech32ifyAcc(voterAddr)
|
||||
bechDepositerAddr := sdk.MustBech32ifyAcc(depositerAddr)
|
||||
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals?depositer=%s&voter=%s", bechDepositerAddr, bechVoterAddr), nil)
|
||||
func getProposalsFilterVoterDepositer(t *testing.T, port string, voterAddr, depositerAddr sdk.AccAddress) []gov.ProposalRest {
|
||||
res, body := Request(t, port, "GET", fmt.Sprintf("/gov/proposals?depositer=%s&voter=%s", depositerAddr, voterAddr), nil)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
|
||||
var proposals []gov.ProposalRest
|
||||
|
@ -931,7 +905,7 @@ func getProposalsFilterVoterDepositer(t *testing.T, port string, voterAddr sdk.A
|
|||
return proposals
|
||||
}
|
||||
|
||||
func doSubmitProposal(t *testing.T, port, seed, name, password string, proposerAddr sdk.Address) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
func doSubmitProposal(t *testing.T, port, seed, name, password string, proposerAddr sdk.AccAddress) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
// get the account to get the sequence
|
||||
acc := getAccount(t, port, proposerAddr)
|
||||
accnum := acc.GetAccountNumber()
|
||||
|
@ -939,8 +913,6 @@ func doSubmitProposal(t *testing.T, port, seed, name, password string, proposerA
|
|||
|
||||
chainID := viper.GetString(client.FlagChainID)
|
||||
|
||||
bechProposerAddr := sdk.MustBech32ifyAcc(proposerAddr)
|
||||
|
||||
// submitproposal
|
||||
jsonStr := []byte(fmt.Sprintf(`{
|
||||
"title": "Test",
|
||||
|
@ -956,7 +928,7 @@ func doSubmitProposal(t *testing.T, port, seed, name, password string, proposerA
|
|||
"sequence":"%d",
|
||||
"gas":"100000"
|
||||
}
|
||||
}`, bechProposerAddr, name, password, chainID, accnum, sequence))
|
||||
}`, proposerAddr, name, password, chainID, accnum, sequence))
|
||||
res, body := Request(t, port, "POST", "/gov/proposals", jsonStr)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
|
||||
|
@ -967,7 +939,7 @@ func doSubmitProposal(t *testing.T, port, seed, name, password string, proposerA
|
|||
return results
|
||||
}
|
||||
|
||||
func doDeposit(t *testing.T, port, seed, name, password string, proposerAddr sdk.Address, proposalID int64) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
func doDeposit(t *testing.T, port, seed, name, password string, proposerAddr sdk.AccAddress, proposalID int64) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
// get the account to get the sequence
|
||||
acc := getAccount(t, port, proposerAddr)
|
||||
accnum := acc.GetAccountNumber()
|
||||
|
@ -975,8 +947,6 @@ func doDeposit(t *testing.T, port, seed, name, password string, proposerAddr sdk
|
|||
|
||||
chainID := viper.GetString(client.FlagChainID)
|
||||
|
||||
bechProposerAddr := sdk.MustBech32ifyAcc(proposerAddr)
|
||||
|
||||
// deposit on proposal
|
||||
jsonStr := []byte(fmt.Sprintf(`{
|
||||
"depositer": "%s",
|
||||
|
@ -989,7 +959,7 @@ func doDeposit(t *testing.T, port, seed, name, password string, proposerAddr sdk
|
|||
"sequence": "%d",
|
||||
"gas":"100000"
|
||||
}
|
||||
}`, bechProposerAddr, name, password, chainID, accnum, sequence))
|
||||
}`, proposerAddr, name, password, chainID, accnum, sequence))
|
||||
res, body := Request(t, port, "POST", fmt.Sprintf("/gov/proposals/%d/deposits", proposalID), jsonStr)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
|
||||
|
@ -1000,7 +970,7 @@ func doDeposit(t *testing.T, port, seed, name, password string, proposerAddr sdk
|
|||
return results
|
||||
}
|
||||
|
||||
func doVote(t *testing.T, port, seed, name, password string, proposerAddr sdk.Address, proposalID int64) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
func doVote(t *testing.T, port, seed, name, password string, proposerAddr sdk.AccAddress, proposalID int64) (resultTx ctypes.ResultBroadcastTxCommit) {
|
||||
// get the account to get the sequence
|
||||
acc := getAccount(t, port, proposerAddr)
|
||||
accnum := acc.GetAccountNumber()
|
||||
|
@ -1008,8 +978,6 @@ func doVote(t *testing.T, port, seed, name, password string, proposerAddr sdk.Ad
|
|||
|
||||
chainID := viper.GetString(client.FlagChainID)
|
||||
|
||||
bechProposerAddr := sdk.MustBech32ifyAcc(proposerAddr)
|
||||
|
||||
// vote on proposal
|
||||
jsonStr := []byte(fmt.Sprintf(`{
|
||||
"voter": "%s",
|
||||
|
@ -1022,7 +990,7 @@ func doVote(t *testing.T, port, seed, name, password string, proposerAddr sdk.Ad
|
|||
"sequence": "%d",
|
||||
"gas":"100000"
|
||||
}
|
||||
}`, bechProposerAddr, name, password, chainID, accnum, sequence))
|
||||
}`, proposerAddr, name, password, chainID, accnum, sequence))
|
||||
res, body := Request(t, port, "POST", fmt.Sprintf("/gov/proposals/%d/votes", proposalID), jsonStr)
|
||||
fmt.Println(res)
|
||||
require.Equal(t, http.StatusOK, res.StatusCode, body)
|
||||
|
|
|
@ -80,19 +80,19 @@ func GetKB(t *testing.T) crkeys.Keybase {
|
|||
}
|
||||
|
||||
// add an address to the store return name and password
|
||||
func CreateAddr(t *testing.T, name, password string, kb crkeys.Keybase) (addr sdk.Address, seed string) {
|
||||
func CreateAddr(t *testing.T, name, password string, kb crkeys.Keybase) (addr sdk.AccAddress, seed string) {
|
||||
var info crkeys.Info
|
||||
var err error
|
||||
info, seed, err = kb.CreateMnemonic(name, crkeys.English, password, crkeys.Secp256k1)
|
||||
require.NoError(t, err)
|
||||
addr = sdk.Address(info.GetPubKey().Address())
|
||||
addr = sdk.AccAddress(info.GetPubKey().Address())
|
||||
return
|
||||
}
|
||||
|
||||
// strt TM and the LCD in process, listening on their respective sockets
|
||||
// nValidators = number of validators
|
||||
// initAddrs = accounts to initialize with some steaks
|
||||
func InitializeTestLCD(t *testing.T, nValidators int, initAddrs []sdk.Address) (cleanup func(), validatorsPKs []crypto.PubKey, port string) {
|
||||
func InitializeTestLCD(t *testing.T, nValidators int, initAddrs []sdk.AccAddress) (cleanup func(), validatorsPKs []crypto.PubKey, port string) {
|
||||
|
||||
config := GetConfig()
|
||||
config.Consensus.TimeoutCommit = 100
|
||||
|
@ -132,7 +132,7 @@ func InitializeTestLCD(t *testing.T, nValidators int, initAddrs []sdk.Address) (
|
|||
for _, gdValidator := range genDoc.Validators {
|
||||
pk := gdValidator.PubKey
|
||||
validatorsPKs = append(validatorsPKs, pk) // append keys for output
|
||||
appGenTx, _, _, err := gapp.GaiaAppGenTxNF(cdc, pk, sdk.Address(pk.Address()), "test_val1")
|
||||
appGenTx, _, _, err := gapp.GaiaAppGenTxNF(cdc, pk, sdk.AccAddress(pk.Address()), "test_val1")
|
||||
require.NoError(t, err)
|
||||
appGenTxs = append(appGenTxs, appGenTx)
|
||||
}
|
||||
|
|
|
@ -32,10 +32,10 @@ func ValidatorCommand() *cobra.Command {
|
|||
|
||||
// Validator output in bech32 format
|
||||
type ValidatorOutput struct {
|
||||
Address string `json:"address"` // in bech32
|
||||
PubKey string `json:"pub_key"` // in bech32
|
||||
Accum int64 `json:"accum"`
|
||||
VotingPower int64 `json:"voting_power"`
|
||||
Address sdk.ValAddress `json:"address"` // in bech32
|
||||
PubKey string `json:"pub_key"` // in bech32
|
||||
Accum int64 `json:"accum"`
|
||||
VotingPower int64 `json:"voting_power"`
|
||||
}
|
||||
|
||||
// Validators at a certain height output in bech32 format
|
||||
|
@ -45,17 +45,13 @@ type ResultValidatorsOutput struct {
|
|||
}
|
||||
|
||||
func bech32ValidatorOutput(validator *tmtypes.Validator) (ValidatorOutput, error) {
|
||||
bechAddress, err := sdk.Bech32ifyVal(validator.Address)
|
||||
if err != nil {
|
||||
return ValidatorOutput{}, err
|
||||
}
|
||||
bechValPubkey, err := sdk.Bech32ifyValPub(validator.PubKey)
|
||||
if err != nil {
|
||||
return ValidatorOutput{}, err
|
||||
}
|
||||
|
||||
return ValidatorOutput{
|
||||
Address: bechAddress,
|
||||
Address: sdk.ValAddress(validator.Address),
|
||||
PubKey: bechValPubkey,
|
||||
Accum: validator.Accum,
|
||||
VotingPower: validator.VotingPower,
|
||||
|
|
|
@ -124,7 +124,7 @@ func SearchTxRequestHandlerFn(ctx context.CoreContext, cdc *wire.Codec) http.Han
|
|||
return
|
||||
}
|
||||
|
||||
tag = strings.TrimRight(key, "_bech32") + "='" + sdk.Address(bz).String() + "'"
|
||||
tag = strings.TrimRight(key, "_bech32") + "='" + sdk.AccAddress(bz).String() + "'"
|
||||
}
|
||||
|
||||
txs, err := searchTxs(ctx, cdc, []string{tag})
|
||||
|
|
|
@ -30,8 +30,8 @@ type GenesisState struct {
|
|||
|
||||
// GenesisAccount doesn't need pubkey or sequence
|
||||
type GenesisAccount struct {
|
||||
Address string `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
Address sdk.AccAddress `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
}
|
||||
|
||||
func NewGenesisAccount(acc *auth.BaseAccount) GenesisAccount {
|
||||
|
@ -76,9 +76,9 @@ func GaiaAppInit() server.AppInit {
|
|||
|
||||
// simple genesis tx
|
||||
type GaiaGenTx struct {
|
||||
Name string `json:"name"`
|
||||
Address string `json:"address"`
|
||||
PubKey string `json:"pub_key"`
|
||||
Name string `json:"name"`
|
||||
Address sdk.AccAddress `json:"address"`
|
||||
PubKey string `json:"pub_key"`
|
||||
}
|
||||
|
||||
// Generate a gaia genesis transaction with flags
|
||||
|
@ -88,7 +88,7 @@ func GaiaAppGenTx(cdc *wire.Codec, pk crypto.PubKey, genTxConfig config.GenTx) (
|
|||
return nil, nil, tmtypes.GenesisValidator{}, errors.New("Must specify --name (validator moniker)")
|
||||
}
|
||||
|
||||
var addr string
|
||||
var addr sdk.AccAddress
|
||||
var secret string
|
||||
addr, secret, err = server.GenerateSaveCoinKey(genTxConfig.CliRoot, genTxConfig.Name, "1234567890", genTxConfig.Overwrite)
|
||||
if err != nil {
|
||||
|
@ -108,7 +108,7 @@ func GaiaAppGenTx(cdc *wire.Codec, pk crypto.PubKey, genTxConfig config.GenTx) (
|
|||
}
|
||||
|
||||
// Generate a gaia genesis transaction without flags
|
||||
func GaiaAppGenTxNF(cdc *wire.Codec, pk crypto.PubKey, addr string, name string) (
|
||||
func GaiaAppGenTxNF(cdc *wire.Codec, pk crypto.PubKey, addr sdk.AccAddress, name string) (
|
||||
appGenTx, cliPrint json.RawMessage, validator tmtypes.GenesisValidator, err error) {
|
||||
|
||||
var bz []byte
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
|
||||
func TestToAccount(t *testing.T) {
|
||||
priv := crypto.GenPrivKeyEd25519()
|
||||
addr := sdk.Address(priv.PubKey().Address())
|
||||
addr := sdk.AccAddress(priv.PubKey().Address())
|
||||
authAcc := auth.NewBaseAccountWithAddress(addr)
|
||||
genAcc := NewGenesisAccount(&authAcc)
|
||||
require.Equal(t, authAcc, *genAcc.ToAccount())
|
||||
|
|
|
@ -52,37 +52,35 @@ func TestGaiaCLISend(t *testing.T) {
|
|||
tests.WaitForNextHeightTM(port)
|
||||
|
||||
fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
||||
fooCech := sdk.MustBech32ifyAcc(fooAddr)
|
||||
barAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show bar --output=json --home=%s", gaiacliHome))
|
||||
barCech := sdk.MustBech32ifyAcc(barAddr)
|
||||
|
||||
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags))
|
||||
|
||||
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", fooAddr, flags))
|
||||
require.Equal(t, int64(50), fooAcc.GetCoins().AmountOf("steak").Int64())
|
||||
|
||||
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --from=foo", flags, barCech), pass)
|
||||
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%s --from=foo", flags, barAddr), pass)
|
||||
tests.WaitForNextHeightTM(port)
|
||||
|
||||
barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barCech, flags))
|
||||
barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", barAddr, flags))
|
||||
require.Equal(t, int64(10), barAcc.GetCoins().AmountOf("steak").Int64())
|
||||
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags))
|
||||
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", fooAddr, flags))
|
||||
require.Equal(t, int64(40), fooAcc.GetCoins().AmountOf("steak").Int64())
|
||||
|
||||
// test autosequencing
|
||||
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --from=foo", flags, barCech), pass)
|
||||
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%s --from=foo", flags, barAddr), pass)
|
||||
tests.WaitForNextHeightTM(port)
|
||||
|
||||
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barCech, flags))
|
||||
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", barAddr, flags))
|
||||
require.Equal(t, int64(20), barAcc.GetCoins().AmountOf("steak").Int64())
|
||||
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags))
|
||||
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", fooAddr, flags))
|
||||
require.Equal(t, int64(30), fooAcc.GetCoins().AmountOf("steak").Int64())
|
||||
|
||||
// test memo
|
||||
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --from=foo --memo 'testmemo'", flags, barCech), pass)
|
||||
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%s --from=foo --memo 'testmemo'", flags, barAddr), pass)
|
||||
tests.WaitForNextHeightTM(port)
|
||||
|
||||
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barCech, flags))
|
||||
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", barAddr, flags))
|
||||
require.Equal(t, int64(30), barAcc.GetCoins().AmountOf("steak").Int64())
|
||||
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags))
|
||||
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", fooAddr, flags))
|
||||
require.Equal(t, int64(20), fooAcc.GetCoins().AmountOf("steak").Int64())
|
||||
}
|
||||
|
||||
|
@ -106,23 +104,21 @@ func TestGaiaCLICreateValidator(t *testing.T) {
|
|||
tests.WaitForNextHeightTM(port)
|
||||
|
||||
fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
||||
fooCech := sdk.MustBech32ifyAcc(fooAddr)
|
||||
barAddr, barPubKey := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show bar --output=json --home=%s", gaiacliHome))
|
||||
barCech := sdk.MustBech32ifyAcc(barAddr)
|
||||
barCeshPubKey := sdk.MustBech32ifyValPub(barPubKey)
|
||||
|
||||
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --from=foo", flags, barCech), pass)
|
||||
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10steak --to=%v --from=foo", flags, barAddr), pass)
|
||||
tests.WaitForNextHeightTM(port)
|
||||
|
||||
barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barCech, flags))
|
||||
barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", barAddr, flags))
|
||||
require.Equal(t, int64(10), barAcc.GetCoins().AmountOf("steak").Int64())
|
||||
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags))
|
||||
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", fooAddr, flags))
|
||||
require.Equal(t, int64(40), fooAcc.GetCoins().AmountOf("steak").Int64())
|
||||
|
||||
// create validator
|
||||
cvStr := fmt.Sprintf("gaiacli stake create-validator %v", flags)
|
||||
cvStr += fmt.Sprintf(" --from=%v", "bar")
|
||||
cvStr += fmt.Sprintf(" --address-validator=%v", barCech)
|
||||
cvStr += fmt.Sprintf(" --address-validator=%v", barAddr)
|
||||
cvStr += fmt.Sprintf(" --pubkey=%v", barCeshPubKey)
|
||||
cvStr += fmt.Sprintf(" --amount=%v", "2steak")
|
||||
cvStr += fmt.Sprintf(" --moniker=%v", "bar-vally")
|
||||
|
@ -130,18 +126,18 @@ func TestGaiaCLICreateValidator(t *testing.T) {
|
|||
executeWrite(t, cvStr, pass)
|
||||
tests.WaitForNextHeightTM(port)
|
||||
|
||||
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barCech, flags))
|
||||
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", barAddr, flags))
|
||||
require.Equal(t, int64(8), barAcc.GetCoins().AmountOf("steak").Int64(), "%v", barAcc)
|
||||
|
||||
validator := executeGetValidator(t, fmt.Sprintf("gaiacli stake validator %v --output=json %v", barCech, flags))
|
||||
validator := executeGetValidator(t, fmt.Sprintf("gaiacli stake validator %s --output=json %v", barAddr, flags))
|
||||
require.Equal(t, validator.Owner, barAddr)
|
||||
require.Equal(t, "2/1", validator.PoolShares.Amount.String())
|
||||
|
||||
// unbond a single share
|
||||
unbondStr := fmt.Sprintf("gaiacli stake unbond begin %v", flags)
|
||||
unbondStr += fmt.Sprintf(" --from=%v", "bar")
|
||||
unbondStr += fmt.Sprintf(" --address-validator=%v", barCech)
|
||||
unbondStr += fmt.Sprintf(" --address-delegator=%v", barCech)
|
||||
unbondStr += fmt.Sprintf(" --address-validator=%s", barAddr)
|
||||
unbondStr += fmt.Sprintf(" --address-delegator=%s", barAddr)
|
||||
unbondStr += fmt.Sprintf(" --shares-amount=%v", "1")
|
||||
|
||||
success := executeWrite(t, unbondStr, pass)
|
||||
|
@ -152,7 +148,7 @@ func TestGaiaCLICreateValidator(t *testing.T) {
|
|||
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barCech, flags))
|
||||
require.Equal(t, int64(9), barAcc.GetCoins().AmountOf("steak").Int64(), "%v", barAcc)
|
||||
*/
|
||||
validator = executeGetValidator(t, fmt.Sprintf("gaiacli stake validator %v --output=json %v", barCech, flags))
|
||||
validator = executeGetValidator(t, fmt.Sprintf("gaiacli stake validator %s --output=json %v", barAddr, flags))
|
||||
require.Equal(t, "1/1", validator.PoolShares.Amount.String())
|
||||
}
|
||||
|
||||
|
@ -176,34 +172,33 @@ func TestGaiaCLISubmitProposal(t *testing.T) {
|
|||
tests.WaitForNextHeightTM(port)
|
||||
|
||||
fooAddr, _ := executeGetAddrPK(t, fmt.Sprintf("gaiacli keys show foo --output=json --home=%s", gaiacliHome))
|
||||
fooCech := sdk.MustBech32ifyAcc(fooAddr)
|
||||
|
||||
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags))
|
||||
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", fooAddr, flags))
|
||||
require.Equal(t, int64(50), fooAcc.GetCoins().AmountOf("steak").Int64())
|
||||
|
||||
executeWrite(t, fmt.Sprintf("gaiacli gov submit-proposal %v --proposer=%v --deposit=5steak --type=Text --title=Test --description=test --from=foo", flags, fooCech), pass)
|
||||
executeWrite(t, fmt.Sprintf("gaiacli gov submit-proposal %v --proposer=%s --deposit=5steak --type=Text --title=Test --description=test --from=foo", flags, fooAddr), pass)
|
||||
tests.WaitForNextHeightTM(port)
|
||||
|
||||
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags))
|
||||
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", fooAddr, flags))
|
||||
require.Equal(t, int64(45), fooAcc.GetCoins().AmountOf("steak").Int64())
|
||||
|
||||
proposal1 := executeGetProposal(t, fmt.Sprintf("gaiacli gov query-proposal --proposalID=1 --output=json %v", flags))
|
||||
require.Equal(t, int64(1), proposal1.ProposalID)
|
||||
require.Equal(t, gov.StatusToString(gov.StatusDepositPeriod), proposal1.Status)
|
||||
|
||||
executeWrite(t, fmt.Sprintf("gaiacli gov deposit %v --depositer=%v --deposit=10steak --proposalID=1 --from=foo", flags, fooCech), pass)
|
||||
executeWrite(t, fmt.Sprintf("gaiacli gov deposit %v --depositer=%s --deposit=10steak --proposalID=1 --from=foo", flags, fooAddr), pass)
|
||||
tests.WaitForNextHeightTM(port)
|
||||
|
||||
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooCech, flags))
|
||||
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %s %v", fooAddr, flags))
|
||||
require.Equal(t, int64(35), fooAcc.GetCoins().AmountOf("steak").Int64())
|
||||
proposal1 = executeGetProposal(t, fmt.Sprintf("gaiacli gov query-proposal --proposalID=1 --output=json %v", flags))
|
||||
require.Equal(t, int64(1), proposal1.ProposalID)
|
||||
require.Equal(t, gov.StatusToString(gov.StatusVotingPeriod), proposal1.Status)
|
||||
|
||||
executeWrite(t, fmt.Sprintf("gaiacli gov vote %v --proposalID=1 --voter=%v --option=Yes --from=foo", flags, fooCech), pass)
|
||||
executeWrite(t, fmt.Sprintf("gaiacli gov vote %v --proposalID=1 --voter=%s --option=Yes --from=foo", flags, fooAddr), pass)
|
||||
tests.WaitForNextHeightTM(port)
|
||||
|
||||
vote := executeGetVote(t, fmt.Sprintf("gaiacli gov query-vote --proposalID=1 --voter=%v --output=json %v", fooCech, flags))
|
||||
vote := executeGetVote(t, fmt.Sprintf("gaiacli gov query-vote --proposalID=1 --voter=%s --output=json %v", fooAddr, flags))
|
||||
require.Equal(t, int64(1), vote.ProposalID)
|
||||
require.Equal(t, gov.VoteOptionToString(gov.OptionYes), vote.Option)
|
||||
}
|
||||
|
@ -259,18 +254,15 @@ func executeInit(t *testing.T, cmdStr string) (chainID string) {
|
|||
return
|
||||
}
|
||||
|
||||
func executeGetAddrPK(t *testing.T, cmdStr string) (sdk.Address, crypto.PubKey) {
|
||||
func executeGetAddrPK(t *testing.T, cmdStr string) (sdk.AccAddress, crypto.PubKey) {
|
||||
out := tests.ExecuteT(t, cmdStr)
|
||||
var ko keys.KeyOutput
|
||||
keys.UnmarshalJSON([]byte(out), &ko)
|
||||
|
||||
address, err := sdk.GetAccAddressBech32(ko.Address)
|
||||
require.NoError(t, err)
|
||||
|
||||
pk, err := sdk.GetAccPubKeyBech32(ko.PubKey)
|
||||
require.NoError(t, err)
|
||||
|
||||
return address, pk
|
||||
return ko.Address, pk
|
||||
}
|
||||
|
||||
func executeGetAccount(t *testing.T, cmdStr string) auth.BaseAccount {
|
||||
|
|
|
@ -151,7 +151,7 @@ func runAddrCmd(cmd *cobra.Command, args []string) error {
|
|||
}
|
||||
|
||||
addrString := args[0]
|
||||
var addr sdk.Address
|
||||
var addr []byte
|
||||
|
||||
// try hex, then bech32
|
||||
var err error
|
||||
|
@ -174,14 +174,9 @@ func runAddrCmd(cmd *cobra.Command, args []string) error {
|
|||
}
|
||||
}
|
||||
|
||||
accAddr, err := sdk.Bech32ifyAcc(addr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
valAddr, err := sdk.Bech32ifyVal(addr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
accAddr := sdk.AccAddress(addr)
|
||||
valAddr := sdk.ValAddress(addr)
|
||||
|
||||
fmt.Println("Address:", addr)
|
||||
fmt.Println("Bech32 Acc:", accAddr)
|
||||
fmt.Println("Bech32 Val:", valAddr)
|
||||
|
|
|
@ -51,13 +51,13 @@ var _ sdk.Msg = MsgSend{}
|
|||
|
||||
// MsgSend to send coins from Input to Output
|
||||
type MsgSend struct {
|
||||
From sdk.Address `json:"from"`
|
||||
To sdk.Address `json:"to"`
|
||||
Amount sdk.Coins `json:"amount"`
|
||||
From sdk.AccAddress `json:"from"`
|
||||
To sdk.AccAddress `json:"to"`
|
||||
Amount sdk.Coins `json:"amount"`
|
||||
}
|
||||
|
||||
// NewMsgSend
|
||||
func NewMsgSend(from, to sdk.Address, amt sdk.Coins) MsgSend {
|
||||
func NewMsgSend(from, to sdk.AccAddress, amt sdk.Coins) MsgSend {
|
||||
return MsgSend{from, to, amt}
|
||||
}
|
||||
|
||||
|
@ -89,8 +89,8 @@ func (msg MsgSend) GetSignBytes() []byte {
|
|||
}
|
||||
|
||||
// Implements Msg. Return the signer.
|
||||
func (msg MsgSend) GetSigners() []sdk.Address {
|
||||
return []sdk.Address{msg.From}
|
||||
func (msg MsgSend) GetSigners() []sdk.AccAddress {
|
||||
return []sdk.AccAddress{msg.From}
|
||||
}
|
||||
|
||||
// Returns the sdk.Tags for the message
|
||||
|
@ -136,7 +136,7 @@ func handleMsgSend(key *sdk.KVStoreKey) sdk.Handler {
|
|||
}
|
||||
|
||||
// Convenience Handlers
|
||||
func handleFrom(store sdk.KVStore, from sdk.Address, amt sdk.Coins) sdk.Result {
|
||||
func handleFrom(store sdk.KVStore, from sdk.AccAddress, amt sdk.Coins) sdk.Result {
|
||||
// Get sender account from the store.
|
||||
accBytes := store.Get(from)
|
||||
if accBytes == nil {
|
||||
|
@ -174,7 +174,7 @@ func handleFrom(store sdk.KVStore, from sdk.Address, amt sdk.Coins) sdk.Result {
|
|||
return sdk.Result{}
|
||||
}
|
||||
|
||||
func handleTo(store sdk.KVStore, to sdk.Address, amt sdk.Coins) sdk.Result {
|
||||
func handleTo(store sdk.KVStore, to sdk.AccAddress, amt sdk.Coins) sdk.Result {
|
||||
// Add msg amount to receiver account
|
||||
accBytes := store.Get(to)
|
||||
var acc appAccount
|
||||
|
|
|
@ -68,8 +68,8 @@ func NewApp2(logger log.Logger, db dbm.DB) *bapp.BaseApp {
|
|||
// MsgIssue to allow a registered issuer
|
||||
// to issue new coins.
|
||||
type MsgIssue struct {
|
||||
Issuer sdk.Address
|
||||
Receiver sdk.Address
|
||||
Issuer sdk.AccAddress
|
||||
Receiver sdk.AccAddress
|
||||
Coin sdk.Coin
|
||||
}
|
||||
|
||||
|
@ -104,8 +104,8 @@ func (msg MsgIssue) GetSignBytes() []byte {
|
|||
}
|
||||
|
||||
// Implements Msg. Return the signer.
|
||||
func (msg MsgIssue) GetSigners() []sdk.Address {
|
||||
return []sdk.Address{msg.Issuer}
|
||||
func (msg MsgIssue) GetSigners() []sdk.AccAddress {
|
||||
return []sdk.AccAddress{msg.Issuer}
|
||||
}
|
||||
|
||||
// Returns the sdk.Tags for the message
|
||||
|
@ -146,7 +146,7 @@ func handleMsgIssue(keyIssue *sdk.KVStoreKey, keyAcc *sdk.KVStoreKey) sdk.Handle
|
|||
}
|
||||
}
|
||||
|
||||
func handleIssuer(store sdk.KVStore, issuer sdk.Address, coin sdk.Coin) sdk.Result {
|
||||
func handleIssuer(store sdk.KVStore, issuer sdk.AccAddress, coin sdk.Coin) sdk.Result {
|
||||
// the issuer address is stored directly under the coin denomination
|
||||
denom := []byte(coin.Denom)
|
||||
infoBytes := store.Get(denom)
|
||||
|
@ -170,7 +170,7 @@ func handleIssuer(store sdk.KVStore, issuer sdk.Address, coin sdk.Coin) sdk.Resu
|
|||
|
||||
// coinInfo stores meta data about a coin
|
||||
type coinInfo struct {
|
||||
Issuer sdk.Address `json:"issuer"`
|
||||
Issuer sdk.AccAddress `json:"issuer"`
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------
|
||||
|
|
|
@ -61,8 +61,8 @@ type GenesisState struct {
|
|||
|
||||
// GenesisAccount doesn't need pubkey or sequence
|
||||
type GenesisAccount struct {
|
||||
Address sdk.Address `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
Address sdk.AccAddress `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
}
|
||||
|
||||
// Converts GenesisAccount to auth.BaseAccount for storage in account store
|
||||
|
|
|
@ -43,7 +43,7 @@ func TestGenesis(t *testing.T) {
|
|||
|
||||
// construct a pubkey and an address for the test account
|
||||
pubkey := crypto.GenPrivKeyEd25519().PubKey()
|
||||
addr := pubkey.Address()
|
||||
addr := sdk.AccAddress(pubkey.Address())
|
||||
|
||||
// construct some test coins
|
||||
coins, err := sdk.ParseCoins("77foocoin,99barcoin")
|
||||
|
|
|
@ -54,9 +54,9 @@ type GenesisState struct {
|
|||
// GenesisAccount reflects a genesis account the application expects in it's
|
||||
// genesis state.
|
||||
type GenesisAccount struct {
|
||||
Name string `json:"name"`
|
||||
Address sdk.Address `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
Name string `json:"name"`
|
||||
Address sdk.AccAddress `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
}
|
||||
|
||||
// NewGenesisAccount returns a reference to a new GenesisAccount given an
|
||||
|
|
|
@ -47,7 +47,7 @@ func TestGenesis(t *testing.T) {
|
|||
|
||||
// Construct some genesis bytes to reflect democoin/types/AppAccount
|
||||
pk := crypto.GenPrivKeyEd25519().PubKey()
|
||||
addr := pk.Address()
|
||||
addr := sdk.AccAddress(pk.Address())
|
||||
coins, err := sdk.ParseCoins("77foocoin,99barcoin")
|
||||
require.Nil(t, err)
|
||||
baseAcc := auth.BaseAccount{
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
|
||||
// Validator implements sdk.Validator
|
||||
type Validator struct {
|
||||
Address sdk.Address
|
||||
Address sdk.AccAddress
|
||||
Power sdk.Rat
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ func (v Validator) GetStatus() sdk.BondStatus {
|
|||
}
|
||||
|
||||
// Implements sdk.Validator
|
||||
func (v Validator) GetOwner() sdk.Address {
|
||||
func (v Validator) GetOwner() sdk.AccAddress {
|
||||
return v.Address
|
||||
}
|
||||
|
||||
|
@ -73,7 +73,7 @@ func (vs *ValidatorSet) IterateValidatorsBonded(ctx sdk.Context, fn func(index i
|
|||
}
|
||||
|
||||
// Validator implements sdk.ValidatorSet
|
||||
func (vs *ValidatorSet) Validator(ctx sdk.Context, addr sdk.Address) sdk.Validator {
|
||||
func (vs *ValidatorSet) Validator(ctx sdk.Context, addr sdk.AccAddress) sdk.Validator {
|
||||
for _, val := range vs.Validators {
|
||||
if bytes.Equal(val.Address, addr) {
|
||||
return val
|
||||
|
@ -97,7 +97,7 @@ func (vs *ValidatorSet) AddValidator(val Validator) {
|
|||
}
|
||||
|
||||
// Helper function for removing exsting validator
|
||||
func (vs *ValidatorSet) RemoveValidator(addr sdk.Address) {
|
||||
func (vs *ValidatorSet) RemoveValidator(addr sdk.AccAddress) {
|
||||
pos := -1
|
||||
for i, val := range vs.Validators {
|
||||
if bytes.Equal(val.Address, addr) {
|
||||
|
|
|
@ -51,9 +51,9 @@ type GenesisState struct {
|
|||
|
||||
// GenesisAccount doesn't need pubkey or sequence
|
||||
type GenesisAccount struct {
|
||||
Name string `json:"name"`
|
||||
Address sdk.Address `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
Name string `json:"name"`
|
||||
Address sdk.AccAddress `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
}
|
||||
|
||||
func NewGenesisAccount(aa *AppAccount) *GenesisAccount {
|
||||
|
|
|
@ -37,7 +37,7 @@ func NewValidatorSet(cdc *wire.Codec, key sdk.KVStoreGetter, valset sdk.Validato
|
|||
}
|
||||
|
||||
// Implements sdk.ValidatorSet
|
||||
func (valset ValidatorSet) Validator(ctx sdk.Context, addr sdk.Address) (res sdk.Validator) {
|
||||
func (valset ValidatorSet) Validator(ctx sdk.Context, addr sdk.AccAddress) (res sdk.Validator) {
|
||||
store := valset.key.KVStore(ctx)
|
||||
base := store.Get(GetBaseKey(addr))
|
||||
res = valset.ValidatorSet.Validator(ctx, base)
|
||||
|
@ -47,23 +47,23 @@ func (valset ValidatorSet) Validator(ctx sdk.Context, addr sdk.Address) (res sdk
|
|||
return
|
||||
}
|
||||
|
||||
// GetBaseKey :: sdk.Address -> sdk.Address
|
||||
func GetBaseKey(addr sdk.Address) []byte {
|
||||
// GetBaseKey :: sdk.AccAddress -> sdk.AccAddress
|
||||
func GetBaseKey(addr sdk.AccAddress) []byte {
|
||||
return append([]byte{0x00}, addr...)
|
||||
}
|
||||
|
||||
// GetAssocPrefix :: sdk.Address -> (sdk.Address -> byte)
|
||||
func GetAssocPrefix(base sdk.Address) []byte {
|
||||
// GetAssocPrefix :: sdk.AccAddress -> (sdk.AccAddress -> byte)
|
||||
func GetAssocPrefix(base sdk.AccAddress) []byte {
|
||||
return append([]byte{0x01}, base...)
|
||||
}
|
||||
|
||||
// GetAssocKey :: (sdk.Address, sdk.Address) -> byte
|
||||
func GetAssocKey(base sdk.Address, assoc sdk.Address) []byte {
|
||||
// GetAssocKey :: (sdk.AccAddress, sdk.AccAddress) -> byte
|
||||
func GetAssocKey(base sdk.AccAddress, assoc sdk.AccAddress) []byte {
|
||||
return append(append([]byte{0x01}, base...), assoc...)
|
||||
}
|
||||
|
||||
// Associate associates new address with validator address
|
||||
func (valset ValidatorSet) Associate(ctx sdk.Context, base sdk.Address, assoc sdk.Address) bool {
|
||||
func (valset ValidatorSet) Associate(ctx sdk.Context, base sdk.AccAddress, assoc sdk.AccAddress) bool {
|
||||
if len(base) != valset.addrLen || len(assoc) != valset.addrLen {
|
||||
return false
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ func (valset ValidatorSet) Associate(ctx sdk.Context, base sdk.Address, assoc sd
|
|||
}
|
||||
|
||||
// Dissociate removes association between addresses
|
||||
func (valset ValidatorSet) Dissociate(ctx sdk.Context, base sdk.Address, assoc sdk.Address) bool {
|
||||
func (valset ValidatorSet) Dissociate(ctx sdk.Context, base sdk.AccAddress, assoc sdk.AccAddress) bool {
|
||||
if len(base) != valset.addrLen || len(assoc) != valset.addrLen {
|
||||
return false
|
||||
}
|
||||
|
@ -93,9 +93,9 @@ func (valset ValidatorSet) Dissociate(ctx sdk.Context, base sdk.Address, assoc s
|
|||
}
|
||||
|
||||
// Associations returns all associated addresses with a validator
|
||||
func (valset ValidatorSet) Associations(ctx sdk.Context, base sdk.Address) (res []sdk.Address) {
|
||||
func (valset ValidatorSet) Associations(ctx sdk.Context, base sdk.AccAddress) (res []sdk.AccAddress) {
|
||||
store := valset.key.KVStore(ctx)
|
||||
res = make([]sdk.Address, valset.maxAssoc)
|
||||
res = make([]sdk.AccAddress, valset.maxAssoc)
|
||||
iter := sdk.KVStorePrefixIterator(store, GetAssocPrefix(base))
|
||||
i := 0
|
||||
for ; iter.Valid(); iter.Next() {
|
||||
|
|
|
@ -15,7 +15,7 @@ import (
|
|||
var (
|
||||
priv1 = crypto.GenPrivKeyEd25519()
|
||||
pubKey = priv1.PubKey()
|
||||
addr1 = pubKey.Address()
|
||||
addr1 = sdk.AccAddress(pubKey.Address())
|
||||
|
||||
quizMsg1 = MsgQuiz{
|
||||
Sender: addr1,
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
// a really cool msg type, these fields are can be entirely arbitrary and
|
||||
// custom to your message
|
||||
type MsgSetTrend struct {
|
||||
Sender sdk.Address
|
||||
Sender sdk.AccAddress
|
||||
Cool string
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ type Genesis struct {
|
|||
}
|
||||
|
||||
// new cool message
|
||||
func NewMsgSetTrend(sender sdk.Address, cool string) MsgSetTrend {
|
||||
func NewMsgSetTrend(sender sdk.AccAddress, cool string) MsgSetTrend {
|
||||
return MsgSetTrend{
|
||||
Sender: sender,
|
||||
Cool: cool,
|
||||
|
@ -32,8 +32,8 @@ func NewMsgSetTrend(sender sdk.Address, cool string) MsgSetTrend {
|
|||
var _ sdk.Msg = MsgSetTrend{}
|
||||
|
||||
// nolint
|
||||
func (msg MsgSetTrend) Type() string { return "cool" }
|
||||
func (msg MsgSetTrend) GetSigners() []sdk.Address { return []sdk.Address{msg.Sender} }
|
||||
func (msg MsgSetTrend) Type() string { return "cool" }
|
||||
func (msg MsgSetTrend) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{msg.Sender} }
|
||||
func (msg MsgSetTrend) String() string {
|
||||
return fmt.Sprintf("MsgSetTrend{Sender: %v, Cool: %v}", msg.Sender, msg.Cool)
|
||||
}
|
||||
|
@ -66,12 +66,12 @@ func (msg MsgSetTrend) GetSignBytes() []byte {
|
|||
// A message type to quiz how cool you are. these fields are can be entirely
|
||||
// arbitrary and custom to your message
|
||||
type MsgQuiz struct {
|
||||
Sender sdk.Address
|
||||
Sender sdk.AccAddress
|
||||
CoolAnswer string
|
||||
}
|
||||
|
||||
// New cool message
|
||||
func NewMsgQuiz(sender sdk.Address, coolerthancool string) MsgQuiz {
|
||||
func NewMsgQuiz(sender sdk.AccAddress, coolerthancool string) MsgQuiz {
|
||||
return MsgQuiz{
|
||||
Sender: sender,
|
||||
CoolAnswer: coolerthancool,
|
||||
|
@ -82,8 +82,8 @@ func NewMsgQuiz(sender sdk.Address, coolerthancool string) MsgQuiz {
|
|||
var _ sdk.Msg = MsgQuiz{}
|
||||
|
||||
// nolint
|
||||
func (msg MsgQuiz) Type() string { return "cool" }
|
||||
func (msg MsgQuiz) GetSigners() []sdk.Address { return []sdk.Address{msg.Sender} }
|
||||
func (msg MsgQuiz) Type() string { return "cool" }
|
||||
func (msg MsgQuiz) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{msg.Sender} }
|
||||
func (msg MsgQuiz) String() string {
|
||||
return fmt.Sprintf("MsgQuiz{Sender: %v, CoolAnswer: %v}", msg.Sender, msg.CoolAnswer)
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ const (
|
|||
// Error constructors
|
||||
|
||||
// ErrNotValidator called when the signer of a Msg is not a validator
|
||||
func ErrNotValidator(codespace sdk.CodespaceType, address sdk.Address) sdk.Error {
|
||||
func ErrNotValidator(codespace sdk.CodespaceType, address sdk.AccAddress) sdk.Error {
|
||||
return sdk.NewError(codespace, CodeNotValidator, address.String())
|
||||
}
|
||||
|
||||
|
|
|
@ -84,14 +84,14 @@ func (keeper Keeper) setInfo(ctx sdk.Context, p Payload, info Info) {
|
|||
store.Set(key, bz)
|
||||
}
|
||||
|
||||
func (keeper Keeper) sign(ctx sdk.Context, p Payload, signer sdk.Address) {
|
||||
func (keeper Keeper) sign(ctx sdk.Context, p Payload, signer sdk.AccAddress) {
|
||||
store := keeper.key.KVStore(ctx)
|
||||
|
||||
key := GetSignKey(p, signer, keeper.cdc)
|
||||
store.Set(key, signer)
|
||||
}
|
||||
|
||||
func (keeper Keeper) signed(ctx sdk.Context, p Payload, signer sdk.Address) bool {
|
||||
func (keeper Keeper) signed(ctx sdk.Context, p Payload, signer sdk.AccAddress) bool {
|
||||
store := keeper.key.KVStore(ctx)
|
||||
|
||||
key := GetSignKey(p, signer, keeper.cdc)
|
||||
|
|
|
@ -18,6 +18,6 @@ func GetSignPrefix(p Payload, cdc *wire.Codec) []byte {
|
|||
}
|
||||
|
||||
// GetSignKey returns the key for sign
|
||||
func GetSignKey(p Payload, signer sdk.Address, cdc *wire.Codec) []byte {
|
||||
func GetSignKey(p Payload, signer sdk.AccAddress, cdc *wire.Codec) []byte {
|
||||
return append(GetSignPrefix(p, cdc), signer...)
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
// Msg - struct for voting on payloads
|
||||
type Msg struct {
|
||||
Payload
|
||||
Signer sdk.Address
|
||||
Signer sdk.AccAddress
|
||||
}
|
||||
|
||||
// GetSignBytes implements sdk.Msg
|
||||
|
@ -22,8 +22,8 @@ func (msg Msg) GetSignBytes() []byte {
|
|||
}
|
||||
|
||||
// GetSigners implements sdk.Msg
|
||||
func (msg Msg) GetSigners() []sdk.Address {
|
||||
return []sdk.Address{msg.Signer}
|
||||
func (msg Msg) GetSigners() []sdk.AccAddress {
|
||||
return []sdk.AccAddress{msg.Signer}
|
||||
}
|
||||
|
||||
// Payload defines inner data for actual execution
|
||||
|
|
|
@ -16,7 +16,7 @@ import (
|
|||
|
||||
var (
|
||||
priv1 = crypto.GenPrivKeyEd25519()
|
||||
addr1 = priv1.PubKey().Address()
|
||||
addr1 = sdk.AccAddress(priv1.PubKey().Address())
|
||||
)
|
||||
|
||||
// initialize the mock application for this module
|
||||
|
|
|
@ -27,7 +27,7 @@ func TestPowHandler(t *testing.T) {
|
|||
|
||||
handler := keeper.Handler
|
||||
|
||||
addr := sdk.Address([]byte("sender"))
|
||||
addr := sdk.AccAddress([]byte("sender"))
|
||||
count := uint64(1)
|
||||
difficulty := uint64(2)
|
||||
|
||||
|
|
|
@ -124,7 +124,7 @@ func (k Keeper) CheckValid(ctx sdk.Context, difficulty uint64, count uint64) (ui
|
|||
}
|
||||
|
||||
// Add some coins for a POW well done
|
||||
func (k Keeper) ApplyValid(ctx sdk.Context, sender sdk.Address, newDifficulty uint64, newCount uint64) sdk.Error {
|
||||
func (k Keeper) ApplyValid(ctx sdk.Context, sender sdk.AccAddress, newDifficulty uint64, newCount uint64) sdk.Error {
|
||||
_, _, ckErr := k.ck.AddCoins(ctx, sender, []sdk.Coin{sdk.NewCoin(k.config.Denomination, k.config.Reward)})
|
||||
if ckErr != nil {
|
||||
return ckErr
|
||||
|
|
|
@ -10,12 +10,12 @@ import (
|
|||
)
|
||||
|
||||
// generate the mine message
|
||||
func GenerateMsgMine(sender sdk.Address, count uint64, difficulty uint64) MsgMine {
|
||||
func GenerateMsgMine(sender sdk.AccAddress, count uint64, difficulty uint64) MsgMine {
|
||||
nonce, hash := mine(sender, count, difficulty)
|
||||
return NewMsgMine(sender, difficulty, count, nonce, hash)
|
||||
}
|
||||
|
||||
func hash(sender sdk.Address, count uint64, nonce uint64) []byte {
|
||||
func hash(sender sdk.AccAddress, count uint64, nonce uint64) []byte {
|
||||
var bytes []byte
|
||||
bytes = append(bytes, []byte(sender)...)
|
||||
countBytes := strconv.FormatUint(count, 16)
|
||||
|
@ -30,7 +30,7 @@ func hash(sender sdk.Address, count uint64, nonce uint64) []byte {
|
|||
return ret[:16]
|
||||
}
|
||||
|
||||
func mine(sender sdk.Address, count uint64, difficulty uint64) (uint64, []byte) {
|
||||
func mine(sender sdk.AccAddress, count uint64, difficulty uint64) (uint64, []byte) {
|
||||
target := math.MaxUint64 / difficulty
|
||||
for nonce := uint64(0); ; nonce++ {
|
||||
hash := hash(sender, count, nonce)
|
||||
|
|
|
@ -15,24 +15,24 @@ import (
|
|||
|
||||
// MsgMine - mine some coins with PoW
|
||||
type MsgMine struct {
|
||||
Sender sdk.Address `json:"sender"`
|
||||
Difficulty uint64 `json:"difficulty"`
|
||||
Count uint64 `json:"count"`
|
||||
Nonce uint64 `json:"nonce"`
|
||||
Proof []byte `json:"proof"`
|
||||
Sender sdk.AccAddress `json:"sender"`
|
||||
Difficulty uint64 `json:"difficulty"`
|
||||
Count uint64 `json:"count"`
|
||||
Nonce uint64 `json:"nonce"`
|
||||
Proof []byte `json:"proof"`
|
||||
}
|
||||
|
||||
// enforce the msg type at compile time
|
||||
var _ sdk.Msg = MsgMine{}
|
||||
|
||||
// NewMsgMine - construct mine message
|
||||
func NewMsgMine(sender sdk.Address, difficulty uint64, count uint64, nonce uint64, proof []byte) MsgMine {
|
||||
func NewMsgMine(sender sdk.AccAddress, difficulty uint64, count uint64, nonce uint64, proof []byte) MsgMine {
|
||||
return MsgMine{sender, difficulty, count, nonce, proof}
|
||||
}
|
||||
|
||||
// nolint
|
||||
func (msg MsgMine) Type() string { return "pow" }
|
||||
func (msg MsgMine) GetSigners() []sdk.Address { return []sdk.Address{msg.Sender} }
|
||||
func (msg MsgMine) Type() string { return "pow" }
|
||||
func (msg MsgMine) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{msg.Sender} }
|
||||
func (msg MsgMine) String() string {
|
||||
return fmt.Sprintf("MsgMine{Sender: %v, Difficulty: %d, Count: %d, Nonce: %d, Proof: %s}", msg.Sender, msg.Difficulty, msg.Count, msg.Nonce, msg.Proof)
|
||||
}
|
||||
|
|
|
@ -10,21 +10,21 @@ import (
|
|||
)
|
||||
|
||||
func TestNewMsgMine(t *testing.T) {
|
||||
addr := sdk.Address([]byte("sender"))
|
||||
addr := sdk.AccAddress([]byte("sender"))
|
||||
msg := MsgMine{addr, 0, 0, 0, []byte("")}
|
||||
equiv := NewMsgMine(addr, 0, 0, 0, []byte(""))
|
||||
require.Equal(t, msg, equiv, "%s != %s", msg, equiv)
|
||||
}
|
||||
|
||||
func TestMsgMineType(t *testing.T) {
|
||||
addr := sdk.Address([]byte("sender"))
|
||||
addr := sdk.AccAddress([]byte("sender"))
|
||||
msg := MsgMine{addr, 0, 0, 0, []byte("")}
|
||||
require.Equal(t, msg.Type(), "pow")
|
||||
}
|
||||
|
||||
func TestMsgMineValidation(t *testing.T) {
|
||||
addr := sdk.Address([]byte("sender"))
|
||||
otherAddr := sdk.Address([]byte("another"))
|
||||
addr := sdk.AccAddress([]byte("sender"))
|
||||
otherAddr := sdk.AccAddress([]byte("another"))
|
||||
count := uint64(0)
|
||||
|
||||
for difficulty := uint64(1); difficulty < 1000; difficulty += 100 {
|
||||
|
@ -52,21 +52,21 @@ func TestMsgMineValidation(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestMsgMineString(t *testing.T) {
|
||||
addr := sdk.Address([]byte("sender"))
|
||||
addr := sdk.AccAddress([]byte("sender"))
|
||||
msg := MsgMine{addr, 0, 0, 0, []byte("abc")}
|
||||
res := msg.String()
|
||||
require.Equal(t, res, "MsgMine{Sender: 73656E646572, Difficulty: 0, Count: 0, Nonce: 0, Proof: abc}")
|
||||
}
|
||||
|
||||
func TestMsgMineGetSignBytes(t *testing.T) {
|
||||
addr := sdk.Address([]byte("sender"))
|
||||
addr := sdk.AccAddress([]byte("sender"))
|
||||
msg := MsgMine{addr, 1, 1, 1, []byte("abc")}
|
||||
res := msg.GetSignBytes()
|
||||
require.Equal(t, string(res), `{"count":1,"difficulty":1,"nonce":1,"proof":"YWJj","sender":"73656E646572"}`)
|
||||
}
|
||||
|
||||
func TestMsgMineGetSigners(t *testing.T) {
|
||||
addr := sdk.Address([]byte("sender"))
|
||||
addr := sdk.AccAddress([]byte("sender"))
|
||||
msg := MsgMine{addr, 1, 1, 1, []byte("abc")}
|
||||
res := msg.GetSigners()
|
||||
require.Equal(t, fmt.Sprintf("%v", res), "[73656E646572]")
|
||||
|
|
|
@ -32,7 +32,7 @@ func NewKeeper(key sdk.StoreKey, coinKeeper bank.Keeper, codespace sdk.Codespace
|
|||
}
|
||||
}
|
||||
|
||||
func (k Keeper) getBondInfo(ctx sdk.Context, addr sdk.Address) bondInfo {
|
||||
func (k Keeper) getBondInfo(ctx sdk.Context, addr sdk.AccAddress) bondInfo {
|
||||
store := ctx.KVStore(k.key)
|
||||
bz := store.Get(addr)
|
||||
if bz == nil {
|
||||
|
@ -46,7 +46,7 @@ func (k Keeper) getBondInfo(ctx sdk.Context, addr sdk.Address) bondInfo {
|
|||
return bi
|
||||
}
|
||||
|
||||
func (k Keeper) setBondInfo(ctx sdk.Context, addr sdk.Address, bi bondInfo) {
|
||||
func (k Keeper) setBondInfo(ctx sdk.Context, addr sdk.AccAddress, bi bondInfo) {
|
||||
store := ctx.KVStore(k.key)
|
||||
bz, err := k.cdc.MarshalBinary(bi)
|
||||
if err != nil {
|
||||
|
@ -55,13 +55,13 @@ func (k Keeper) setBondInfo(ctx sdk.Context, addr sdk.Address, bi bondInfo) {
|
|||
store.Set(addr, bz)
|
||||
}
|
||||
|
||||
func (k Keeper) deleteBondInfo(ctx sdk.Context, addr sdk.Address) {
|
||||
func (k Keeper) deleteBondInfo(ctx sdk.Context, addr sdk.AccAddress) {
|
||||
store := ctx.KVStore(k.key)
|
||||
store.Delete(addr)
|
||||
}
|
||||
|
||||
// register a bond with the keeper
|
||||
func (k Keeper) Bond(ctx sdk.Context, addr sdk.Address, pubKey crypto.PubKey, stake sdk.Coin) (int64, sdk.Error) {
|
||||
func (k Keeper) Bond(ctx sdk.Context, addr sdk.AccAddress, pubKey crypto.PubKey, stake sdk.Coin) (int64, sdk.Error) {
|
||||
if stake.Denom != stakingToken {
|
||||
return 0, ErrIncorrectStakingToken(k.codespace)
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ func (k Keeper) Bond(ctx sdk.Context, addr sdk.Address, pubKey crypto.PubKey, st
|
|||
}
|
||||
|
||||
// register an unbond with the keeper
|
||||
func (k Keeper) Unbond(ctx sdk.Context, addr sdk.Address) (crypto.PubKey, int64, sdk.Error) {
|
||||
func (k Keeper) Unbond(ctx sdk.Context, addr sdk.AccAddress) (crypto.PubKey, int64, sdk.Error) {
|
||||
bi := k.getBondInfo(ctx, addr)
|
||||
if bi.isEmpty() {
|
||||
return nil, 0, ErrInvalidUnbond(k.codespace)
|
||||
|
@ -105,7 +105,7 @@ func (k Keeper) Unbond(ctx sdk.Context, addr sdk.Address) (crypto.PubKey, int64,
|
|||
|
||||
// FOR TESTING PURPOSES -------------------------------------------------
|
||||
|
||||
func (k Keeper) bondWithoutCoins(ctx sdk.Context, addr sdk.Address, pubKey crypto.PubKey, stake sdk.Coin) (int64, sdk.Error) {
|
||||
func (k Keeper) bondWithoutCoins(ctx sdk.Context, addr sdk.AccAddress, pubKey crypto.PubKey, stake sdk.Coin) (int64, sdk.Error) {
|
||||
if stake.Denom != stakingToken {
|
||||
return 0, ErrIncorrectStakingToken(k.codespace)
|
||||
}
|
||||
|
@ -124,7 +124,7 @@ func (k Keeper) bondWithoutCoins(ctx sdk.Context, addr sdk.Address, pubKey crypt
|
|||
return bi.Power, nil
|
||||
}
|
||||
|
||||
func (k Keeper) unbondWithoutCoins(ctx sdk.Context, addr sdk.Address) (crypto.PubKey, int64, sdk.Error) {
|
||||
func (k Keeper) unbondWithoutCoins(ctx sdk.Context, addr sdk.AccAddress) (crypto.PubKey, int64, sdk.Error) {
|
||||
bi := k.getBondInfo(ctx, addr)
|
||||
if bi.isEmpty() {
|
||||
return nil, 0, ErrInvalidUnbond(k.codespace)
|
||||
|
|
|
@ -38,7 +38,7 @@ func TestKeeperGetSet(t *testing.T) {
|
|||
accountMapper := auth.NewAccountMapper(cdc, authKey, &auth.BaseAccount{})
|
||||
stakeKeeper := NewKeeper(capKey, bank.NewKeeper(accountMapper), DefaultCodespace)
|
||||
ctx := sdk.NewContext(ms, abci.Header{}, false, log.NewNopLogger())
|
||||
addr := sdk.Address([]byte("some-address"))
|
||||
addr := sdk.AccAddress([]byte("some-address"))
|
||||
|
||||
bi := stakeKeeper.getBondInfo(ctx, addr)
|
||||
require.Equal(t, bi, bondInfo{})
|
||||
|
@ -68,7 +68,7 @@ func TestBonding(t *testing.T) {
|
|||
accountMapper := auth.NewAccountMapper(cdc, authKey, &auth.BaseAccount{})
|
||||
coinKeeper := bank.NewKeeper(accountMapper)
|
||||
stakeKeeper := NewKeeper(capKey, coinKeeper, DefaultCodespace)
|
||||
addr := sdk.Address([]byte("some-address"))
|
||||
addr := sdk.AccAddress([]byte("some-address"))
|
||||
privKey := crypto.GenPrivKeyEd25519()
|
||||
pubKey := privKey.PubKey()
|
||||
|
||||
|
|
|
@ -12,12 +12,12 @@ import (
|
|||
|
||||
// simple bond message
|
||||
type MsgBond struct {
|
||||
Address sdk.Address `json:"address"`
|
||||
Stake sdk.Coin `json:"coins"`
|
||||
PubKey crypto.PubKey `json:"pub_key"`
|
||||
Address sdk.AccAddress `json:"address"`
|
||||
Stake sdk.Coin `json:"coins"`
|
||||
PubKey crypto.PubKey `json:"pub_key"`
|
||||
}
|
||||
|
||||
func NewMsgBond(addr sdk.Address, stake sdk.Coin, pubKey crypto.PubKey) MsgBond {
|
||||
func NewMsgBond(addr sdk.AccAddress, stake sdk.Coin, pubKey crypto.PubKey) MsgBond {
|
||||
return MsgBond{
|
||||
Address: addr,
|
||||
Stake: stake,
|
||||
|
@ -26,8 +26,8 @@ func NewMsgBond(addr sdk.Address, stake sdk.Coin, pubKey crypto.PubKey) MsgBond
|
|||
}
|
||||
|
||||
//nolint
|
||||
func (msg MsgBond) Type() string { return moduleName } //TODO update "stake/createvalidator"
|
||||
func (msg MsgBond) GetSigners() []sdk.Address { return []sdk.Address{msg.Address} }
|
||||
func (msg MsgBond) Type() string { return moduleName } //TODO update "stake/createvalidator"
|
||||
func (msg MsgBond) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{msg.Address} }
|
||||
|
||||
// basic validation of the bond message
|
||||
func (msg MsgBond) ValidateBasic() sdk.Error {
|
||||
|
@ -55,19 +55,19 @@ func (msg MsgBond) GetSignBytes() []byte {
|
|||
|
||||
// simple unbond message
|
||||
type MsgUnbond struct {
|
||||
Address sdk.Address `json:"address"`
|
||||
Address sdk.AccAddress `json:"address"`
|
||||
}
|
||||
|
||||
func NewMsgUnbond(addr sdk.Address) MsgUnbond {
|
||||
func NewMsgUnbond(addr sdk.AccAddress) MsgUnbond {
|
||||
return MsgUnbond{
|
||||
Address: addr,
|
||||
}
|
||||
}
|
||||
|
||||
//nolint
|
||||
func (msg MsgUnbond) Type() string { return moduleName } //TODO update "stake/createvalidator"
|
||||
func (msg MsgUnbond) GetSigners() []sdk.Address { return []sdk.Address{msg.Address} }
|
||||
func (msg MsgUnbond) ValidateBasic() sdk.Error { return nil }
|
||||
func (msg MsgUnbond) Type() string { return moduleName } //TODO update "stake/createvalidator"
|
||||
func (msg MsgUnbond) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{msg.Address} }
|
||||
func (msg MsgUnbond) ValidateBasic() sdk.Error { return nil }
|
||||
|
||||
// get unbond message sign bytes
|
||||
func (msg MsgUnbond) GetSignBytes() []byte {
|
||||
|
|
|
@ -16,8 +16,8 @@ func TestBondMsgValidation(t *testing.T) {
|
|||
valid bool
|
||||
msgBond MsgBond
|
||||
}{
|
||||
{true, NewMsgBond(sdk.Address{}, sdk.NewCoin("mycoin", 5), privKey.PubKey())},
|
||||
{false, NewMsgBond(sdk.Address{}, sdk.NewCoin("mycoin", 0), privKey.PubKey())},
|
||||
{true, NewMsgBond(sdk.AccAddress{}, sdk.NewCoin("mycoin", 5), privKey.PubKey())},
|
||||
{false, NewMsgBond(sdk.AccAddress{}, sdk.NewCoin("mycoin", 0), privKey.PubKey())},
|
||||
}
|
||||
|
||||
for i, tc := range cases {
|
||||
|
|
|
@ -35,7 +35,7 @@ func (tx kvstoreTx) ValidateBasic() sdk.Error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (tx kvstoreTx) GetSigners() []sdk.Address {
|
||||
func (tx kvstoreTx) GetSigners() []sdk.AccAddress {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -376,22 +376,22 @@ var DefaultAppInit = AppInit{
|
|||
|
||||
// simple genesis tx
|
||||
type SimpleGenTx struct {
|
||||
Addr string `json:"addr"`
|
||||
Addr sdk.AccAddress `json:"addr"`
|
||||
}
|
||||
|
||||
// Generate a genesis transaction
|
||||
func SimpleAppGenTx(cdc *wire.Codec, pk crypto.PubKey, genTxConfig serverconfig.GenTx) (
|
||||
appGenTx, cliPrint json.RawMessage, validator tmtypes.GenesisValidator, err error) {
|
||||
|
||||
var bech32Addr string
|
||||
var addr sdk.AccAddress
|
||||
var secret string
|
||||
bech32Addr, secret, err = GenerateCoinKey()
|
||||
addr, secret, err = GenerateCoinKey()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
var bz []byte
|
||||
simpleGenTx := SimpleGenTx{bech32Addr}
|
||||
simpleGenTx := SimpleGenTx{addr}
|
||||
bz, err = cdc.MarshalJSON(simpleGenTx)
|
||||
if err != nil {
|
||||
return
|
||||
|
@ -444,7 +444,7 @@ func SimpleAppGenState(cdc *wire.Codec, appGenTxs []json.RawMessage) (appState j
|
|||
|
||||
// GenerateCoinKey returns the address of a public key, along with the secret
|
||||
// phrase to recover the private key.
|
||||
func GenerateCoinKey() (string, string, error) {
|
||||
func GenerateCoinKey() (sdk.AccAddress, string, error) {
|
||||
|
||||
// construct an in-memory key store
|
||||
keybase := keys.New(
|
||||
|
@ -457,12 +457,12 @@ func GenerateCoinKey() (string, string, error) {
|
|||
return "", "", err
|
||||
}
|
||||
addr := info.GetPubKey().Address()
|
||||
return sdk.MustBech32ifyAcc(sdk.Address(addr)), secret, nil
|
||||
return sdk.AccAddress(addr), secret, nil
|
||||
}
|
||||
|
||||
// GenerateSaveCoinKey returns the address of a public key, along with the secret
|
||||
// phrase to recover the private key.
|
||||
func GenerateSaveCoinKey(clientRoot, keyName, keyPass string, overwrite bool) (string, string, error) {
|
||||
func GenerateSaveCoinKey(clientRoot, keyName, keyPass string, overwrite bool) (sdk.AccAddress, string, error) {
|
||||
|
||||
// get the keystore from the client
|
||||
keybase, err := clkeys.GetKeyBaseFromDir(clientRoot)
|
||||
|
@ -484,5 +484,5 @@ func GenerateSaveCoinKey(clientRoot, keyName, keyPass string, overwrite bool) (s
|
|||
return "", "", err
|
||||
}
|
||||
addr := info.GetPubKey().Address()
|
||||
return sdk.MustBech32ifyAcc(sdk.Address(addr)), secret, nil
|
||||
return sdk.AccAddress(addr), secret, nil
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ func (tx kvstoreTx) ValidateBasic() sdk.Error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (tx kvstoreTx) GetSigners() []sdk.Address {
|
||||
func (tx kvstoreTx) GetSigners() []sdk.AccAddress {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
203
types/account.go
203
types/account.go
|
@ -21,26 +21,45 @@ const (
|
|||
Bech32PrefixValPub = "cosmosvalpub"
|
||||
)
|
||||
|
||||
// Address is a go crypto-style Address
|
||||
type Address []byte
|
||||
//__________________________________________________________
|
||||
|
||||
func NewAddress(bech32String string) (Address, error) {
|
||||
return GetAccAddressHex(bech32String)
|
||||
// AccAddress is a go crypto-style Address
|
||||
type AccAddress []byte
|
||||
|
||||
// create an Address from a hex string
|
||||
func GetAccAddressHex(address string) (addr AccAddress, err error) {
|
||||
if len(address) == 0 {
|
||||
return addr, errors.New("decoding bech32 address failed: must provide an address")
|
||||
}
|
||||
bz, err := hex.DecodeString(address)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return AccAddress(bz), nil
|
||||
}
|
||||
|
||||
// create an Address from a bech32 string
|
||||
func GetAccAddressBech32(address string) (addr AccAddress, err error) {
|
||||
bz, err := GetFromBech32(address, Bech32PrefixAccAddr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return AccAddress(bz), nil
|
||||
}
|
||||
|
||||
// Marshal needed for protobuf compatibility
|
||||
func (bz Address) Marshal() ([]byte, error) {
|
||||
func (bz AccAddress) Marshal() ([]byte, error) {
|
||||
return bz, nil
|
||||
}
|
||||
|
||||
// Unmarshal needed for protobuf compatibility
|
||||
func (bz *Address) Unmarshal(data []byte) error {
|
||||
func (bz *AccAddress) Unmarshal(data []byte) error {
|
||||
*bz = data
|
||||
return nil
|
||||
}
|
||||
|
||||
// Marshals to JSON using Bech32
|
||||
func (bz Address) MarshalJSON() ([]byte, error) {
|
||||
func (bz AccAddress) MarshalJSON() ([]byte, error) {
|
||||
s := bz.String()
|
||||
jbz := make([]byte, len(s)+2)
|
||||
jbz[0] = '"'
|
||||
|
@ -50,12 +69,12 @@ func (bz Address) MarshalJSON() ([]byte, error) {
|
|||
}
|
||||
|
||||
// Unmarshals from JSON assuming Bech32 encoding
|
||||
func (bz *Address) UnmarshalJSON(data []byte) error {
|
||||
func (bz *AccAddress) UnmarshalJSON(data []byte) error {
|
||||
if len(data) < 2 || data[0] != '"' || data[len(data)-1] != '"' {
|
||||
return fmt.Errorf("Invalid bech32 string: %s", data)
|
||||
}
|
||||
|
||||
bz2, err := GetAccAddressHex(string(data[1 : len(data)-1]))
|
||||
bz2, err := GetAccAddressBech32(string(data[1 : len(data)-1]))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -64,11 +83,11 @@ func (bz *Address) UnmarshalJSON(data []byte) error {
|
|||
}
|
||||
|
||||
// Allow it to fulfill various interfaces in light-client, etc...
|
||||
func (bz Address) Bytes() []byte {
|
||||
func (bz AccAddress) Bytes() []byte {
|
||||
return bz
|
||||
}
|
||||
|
||||
func (bz Address) String() string {
|
||||
func (bz AccAddress) String() string {
|
||||
bech32Addr, err := bech32.ConvertAndEncode(Bech32PrefixAccAddr, bz.Bytes())
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
@ -77,7 +96,93 @@ func (bz Address) String() string {
|
|||
}
|
||||
|
||||
// For Printf / Sprintf, returns bech32 when using %s
|
||||
func (bz Address) Format(s fmt.State, verb rune) {
|
||||
func (bz AccAddress) Format(s fmt.State, verb rune) {
|
||||
switch verb {
|
||||
case 's':
|
||||
s.Write([]byte(fmt.Sprintf("%s", bz.String())))
|
||||
case 'p':
|
||||
s.Write([]byte(fmt.Sprintf("%p", bz)))
|
||||
default:
|
||||
s.Write([]byte(fmt.Sprintf("%X", []byte(bz))))
|
||||
}
|
||||
}
|
||||
|
||||
//__________________________________________________________
|
||||
|
||||
// Address is a go crypto-style Address
|
||||
type ValAddress []byte
|
||||
|
||||
// create a ValAddress from a hex string
|
||||
func GetValAddressHex(address string) (addr ValAddress, err error) {
|
||||
if len(address) == 0 {
|
||||
return addr, errors.New("decoding bech32 address failed: must provide an address")
|
||||
}
|
||||
bz, err := hex.DecodeString(address)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ValAddress(bz), nil
|
||||
}
|
||||
|
||||
// create a ValAddress from a bech32 string
|
||||
func GetValAddressBech32(address string) (addr ValAddress, err error) {
|
||||
bz, err := GetFromBech32(address, Bech32PrefixValAddr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ValAddress(bz), nil
|
||||
}
|
||||
|
||||
// Marshal needed for protobuf compatibility
|
||||
func (bz ValAddress) Marshal() ([]byte, error) {
|
||||
return bz, nil
|
||||
}
|
||||
|
||||
// Unmarshal needed for protobuf compatibility
|
||||
func (bz *ValAddress) Unmarshal(data []byte) error {
|
||||
*bz = data
|
||||
return nil
|
||||
}
|
||||
|
||||
// Marshals to JSON using Bech32
|
||||
func (bz ValAddress) MarshalJSON() ([]byte, error) {
|
||||
s := bz.String()
|
||||
jbz := make([]byte, len(s)+2)
|
||||
jbz[0] = '"'
|
||||
copy(jbz[1:], []byte(s))
|
||||
jbz[len(jbz)-1] = '"'
|
||||
return jbz, nil
|
||||
}
|
||||
|
||||
// Unmarshals from JSON assuming Bech32 encoding
|
||||
func (bz *ValAddress) UnmarshalJSON(data []byte) error {
|
||||
if len(data) < 2 || data[0] != '"' || data[len(data)-1] != '"' {
|
||||
return fmt.Errorf("Invalid bech32 string: %s", data)
|
||||
}
|
||||
|
||||
bz2, err := GetValAddressBech32(string(data[1 : len(data)-1]))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
*bz = bz2
|
||||
return nil
|
||||
}
|
||||
|
||||
// Allow it to fulfill various interfaces in light-client, etc...
|
||||
func (bz ValAddress) Bytes() []byte {
|
||||
return bz
|
||||
}
|
||||
|
||||
func (bz ValAddress) String() string {
|
||||
bech32Addr, err := bech32.ConvertAndEncode(Bech32PrefixValAddr, bz.Bytes())
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return bech32Addr
|
||||
}
|
||||
|
||||
// For Printf / Sprintf, returns bech32 when using %s
|
||||
func (bz ValAddress) Format(s fmt.State, verb rune) {
|
||||
switch verb {
|
||||
case 's':
|
||||
s.Write([]byte(fmt.Sprintf("%s", bz.String())))
|
||||
|
@ -102,20 +207,6 @@ func MustBech32ifyAccPub(pub crypto.PubKey) string {
|
|||
return enc
|
||||
}
|
||||
|
||||
// Bech32ifyVal returns the bech32 encoded string for a validator address
|
||||
func Bech32ifyVal(bz []byte) (string, error) {
|
||||
return bech32.ConvertAndEncode(Bech32PrefixValAddr, bz)
|
||||
}
|
||||
|
||||
// MustBech32ifyVal panics on bech32-encoding failure
|
||||
func MustBech32ifyVal(bz []byte) string {
|
||||
enc, err := Bech32ifyVal(bz)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return enc
|
||||
}
|
||||
|
||||
// Bech32ifyValPub returns the bech32 encoded string for a validator pubkey
|
||||
func Bech32ifyValPub(pub crypto.PubKey) (string, error) {
|
||||
return bech32.ConvertAndEncode(Bech32PrefixValPub, pub.Bytes())
|
||||
|
@ -130,36 +221,6 @@ func MustBech32ifyValPub(pub crypto.PubKey) string {
|
|||
return enc
|
||||
}
|
||||
|
||||
// create an Address from a string
|
||||
func GetAccAddressHex(address string) (addr Address, err error) {
|
||||
if len(address) == 0 {
|
||||
return addr, errors.New("decoding bech32 address failed: must provide an address")
|
||||
}
|
||||
bz, err := hex.DecodeString(address)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return Address(bz), nil
|
||||
}
|
||||
|
||||
// create an Address from a string
|
||||
func GetAccAddressBech32(address string) (addr Address, err error) {
|
||||
bz, err := GetFromBech32(address, Bech32PrefixAccAddr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return Address(bz), nil
|
||||
}
|
||||
|
||||
// create an Address from a string, panics on error
|
||||
func MustGetAccAddressBech32(address string) (addr Address) {
|
||||
addr, err := GetAccAddressBech32(address)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return addr
|
||||
}
|
||||
|
||||
// create a Pubkey from a string
|
||||
func GetAccPubKeyBech32(address string) (pk crypto.PubKey, err error) {
|
||||
bz, err := GetFromBech32(address, Bech32PrefixAccPub)
|
||||
|
@ -184,36 +245,6 @@ func MustGetAccPubKeyBech32(address string) (pk crypto.PubKey) {
|
|||
return pk
|
||||
}
|
||||
|
||||
// create an Address from a hex string
|
||||
func GetValAddressHex(address string) (addr Address, err error) {
|
||||
if len(address) == 0 {
|
||||
return addr, errors.New("decoding bech32 address failed: must provide an address")
|
||||
}
|
||||
bz, err := hex.DecodeString(address)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return Address(bz), nil
|
||||
}
|
||||
|
||||
// create an Address from a bech32 string
|
||||
func GetValAddressBech32(address string) (addr Address, err error) {
|
||||
bz, err := GetFromBech32(address, Bech32PrefixValAddr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return Address(bz), nil
|
||||
}
|
||||
|
||||
// create an Address from a string, panics on error
|
||||
func MustGetValAddressBech32(address string) (addr Address) {
|
||||
addr, err := GetValAddressBech32(address)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return addr
|
||||
}
|
||||
|
||||
// decode a validator public key into a PubKey
|
||||
func GetValPubKeyBech32(pubkey string) (pk crypto.PubKey, err error) {
|
||||
bz, err := GetFromBech32(pubkey, Bech32PrefixValPub)
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
package types
|
|
@ -35,7 +35,7 @@ type Validator interface {
|
|||
GetRevoked() bool // whether the validator is revoked
|
||||
GetMoniker() string // moniker of the validator
|
||||
GetStatus() BondStatus // status of the validator
|
||||
GetOwner() Address // owner address to receive/return validators coins
|
||||
GetOwner() AccAddress // owner AccAddress to receive/return validators coins
|
||||
GetPubKey() crypto.PubKey // validation pubkey
|
||||
GetPower() Rat // validation power
|
||||
GetDelegatorShares() Rat // Total out standing delegator shares
|
||||
|
@ -52,16 +52,16 @@ func ABCIValidator(v Validator) abci.Validator {
|
|||
|
||||
// properties for the set of all validators
|
||||
type ValidatorSet interface {
|
||||
// iterate through validator by owner-address, execute func for each validator
|
||||
// iterate through validator by owner-AccAddress, execute func for each validator
|
||||
IterateValidators(Context,
|
||||
func(index int64, validator Validator) (stop bool))
|
||||
|
||||
// iterate through bonded validator by pubkey-address, execute func for each validator
|
||||
// iterate through bonded validator by pubkey-AccAddress, execute func for each validator
|
||||
IterateValidatorsBonded(Context,
|
||||
func(index int64, validator Validator) (stop bool))
|
||||
|
||||
Validator(Context, Address) Validator // get a particular validator by owner address
|
||||
TotalPower(Context) Rat // total power of the validator set
|
||||
Validator(Context, AccAddress) Validator // get a particular validator by owner AccAddress
|
||||
TotalPower(Context) Rat // total power of the validator set
|
||||
|
||||
// slash the validator and delegators of the validator, specifying offence height, offence power, and slash fraction
|
||||
Slash(Context, crypto.PubKey, int64, int64, Rat)
|
||||
|
@ -73,17 +73,17 @@ type ValidatorSet interface {
|
|||
|
||||
// delegation bond for a delegated proof of stake system
|
||||
type Delegation interface {
|
||||
GetDelegator() Address // delegator address for the bond
|
||||
GetValidator() Address // validator owner address for the bond
|
||||
GetBondShares() Rat // amount of validator's shares
|
||||
GetDelegator() AccAddress // delegator AccAddress for the bond
|
||||
GetValidator() AccAddress // validator owner AccAddress for the bond
|
||||
GetBondShares() Rat // amount of validator's shares
|
||||
}
|
||||
|
||||
// properties for the set of all delegations for a particular
|
||||
type DelegationSet interface {
|
||||
GetValidatorSet() ValidatorSet // validator set for which delegation set is based upon
|
||||
|
||||
// iterate through all delegations from one delegator by validator-address,
|
||||
// iterate through all delegations from one delegator by validator-AccAddress,
|
||||
// execute func for each validator
|
||||
IterateDelegations(ctx Context, delegator Address,
|
||||
IterateDelegations(ctx Context, delegator AccAddress,
|
||||
fn func(index int64, delegation Delegation) (stop bool))
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ type Msg interface {
|
|||
// Signers returns the addrs of signers that must sign.
|
||||
// CONTRACT: All signatures must be present to be valid.
|
||||
// CONTRACT: Returns addrs in some deterministic order.
|
||||
GetSigners() []Address
|
||||
GetSigners() []AccAddress
|
||||
}
|
||||
|
||||
//__________________________________________________________
|
||||
|
@ -44,10 +44,10 @@ var _ Msg = (*TestMsg)(nil)
|
|||
|
||||
// msg type for testing
|
||||
type TestMsg struct {
|
||||
signers []Address
|
||||
signers []AccAddress
|
||||
}
|
||||
|
||||
func NewTestMsg(addrs ...Address) *TestMsg {
|
||||
func NewTestMsg(addrs ...AccAddress) *TestMsg {
|
||||
return &TestMsg{
|
||||
signers: addrs,
|
||||
}
|
||||
|
@ -63,6 +63,6 @@ func (msg *TestMsg) GetSignBytes() []byte {
|
|||
return MustSortJSON(bz)
|
||||
}
|
||||
func (msg *TestMsg) ValidateBasic() Error { return nil }
|
||||
func (msg *TestMsg) GetSigners() []Address {
|
||||
func (msg *TestMsg) GetSigners() []AccAddress {
|
||||
return msg.signers
|
||||
}
|
||||
|
|
|
@ -11,8 +11,8 @@ import (
|
|||
// Account is a standard account using a sequence number for replay protection
|
||||
// and a pubkey for authentication.
|
||||
type Account interface {
|
||||
GetAddress() sdk.Address
|
||||
SetAddress(sdk.Address) error // errors if already set.
|
||||
GetAddress() sdk.AccAddress
|
||||
SetAddress(sdk.AccAddress) error // errors if already set.
|
||||
|
||||
GetPubKey() crypto.PubKey // can return nil.
|
||||
SetPubKey(crypto.PubKey) error
|
||||
|
@ -39,26 +39,26 @@ var _ Account = (*BaseAccount)(nil)
|
|||
// Extend this by embedding this in your AppAccount.
|
||||
// See the examples/basecoin/types/account.go for an example.
|
||||
type BaseAccount struct {
|
||||
Address sdk.Address `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
PubKey crypto.PubKey `json:"public_key"`
|
||||
AccountNumber int64 `json:"account_number"`
|
||||
Sequence int64 `json:"sequence"`
|
||||
Address sdk.AccAddress `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
PubKey crypto.PubKey `json:"public_key"`
|
||||
AccountNumber int64 `json:"account_number"`
|
||||
Sequence int64 `json:"sequence"`
|
||||
}
|
||||
|
||||
func NewBaseAccountWithAddress(addr sdk.Address) BaseAccount {
|
||||
func NewBaseAccountWithAddress(addr sdk.AccAddress) BaseAccount {
|
||||
return BaseAccount{
|
||||
Address: addr,
|
||||
}
|
||||
}
|
||||
|
||||
// Implements sdk.Account.
|
||||
func (acc BaseAccount) GetAddress() sdk.Address {
|
||||
func (acc BaseAccount) GetAddress() sdk.AccAddress {
|
||||
return acc.Address
|
||||
}
|
||||
|
||||
// Implements sdk.Account.
|
||||
func (acc *BaseAccount) SetAddress(addr sdk.Address) error {
|
||||
func (acc *BaseAccount) SetAddress(addr sdk.AccAddress) error {
|
||||
if len(acc.Address) != 0 {
|
||||
return errors.New("cannot override BaseAccount address")
|
||||
}
|
||||
|
|
|
@ -11,10 +11,10 @@ import (
|
|||
wire "github.com/cosmos/cosmos-sdk/wire"
|
||||
)
|
||||
|
||||
func keyPubAddr() (crypto.PrivKey, crypto.PubKey, sdk.Address) {
|
||||
func keyPubAddr() (crypto.PrivKey, crypto.PubKey, sdk.AccAddress) {
|
||||
key := crypto.GenPrivKeyEd25519()
|
||||
pub := key.PubKey()
|
||||
addr := pub.Address()
|
||||
addr := sdk.AccAddress(pub.Address())
|
||||
return key, pub, addr
|
||||
}
|
||||
|
||||
|
|
|
@ -118,7 +118,7 @@ func NewAnteHandler(am AccountMapper, fck FeeCollectionKeeper) sdk.AnteHandler {
|
|||
// if the account doesn't have a pubkey, set it.
|
||||
func processSig(
|
||||
ctx sdk.Context, am AccountMapper,
|
||||
addr sdk.Address, sig StdSignature, signBytes []byte) (
|
||||
addr sdk.AccAddress, sig StdSignature, signBytes []byte) (
|
||||
acc Account, res sdk.Result) {
|
||||
|
||||
// Get the account.
|
||||
|
|
|
@ -13,7 +13,7 @@ import (
|
|||
wire "github.com/cosmos/cosmos-sdk/wire"
|
||||
)
|
||||
|
||||
func newTestMsg(addrs ...sdk.Address) *sdk.TestMsg {
|
||||
func newTestMsg(addrs ...sdk.AccAddress) *sdk.TestMsg {
|
||||
return sdk.NewTestMsg(addrs...)
|
||||
}
|
||||
|
||||
|
@ -31,9 +31,9 @@ func newCoins() sdk.Coins {
|
|||
}
|
||||
|
||||
// generate a priv key and return it with its address
|
||||
func privAndAddr() (crypto.PrivKey, sdk.Address) {
|
||||
func privAndAddr() (crypto.PrivKey, sdk.AccAddress) {
|
||||
priv := crypto.GenPrivKeyEd25519()
|
||||
addr := priv.PubKey().Address()
|
||||
addr := sdk.AccAddress(priv.PubKey().Address())
|
||||
return priv, addr
|
||||
}
|
||||
|
||||
|
@ -135,7 +135,7 @@ func TestAnteHandlerSigErrors(t *testing.T) {
|
|||
tx = newTestTx(ctx, msgs, privs, accNums, seqs, fee)
|
||||
|
||||
// tx.GetSigners returns addresses in correct order: addr1, addr2, addr3
|
||||
expectedSigners := []sdk.Address{addr1, addr2, addr3}
|
||||
expectedSigners := []sdk.AccAddress{addr1, addr2, addr3}
|
||||
stdTx := tx.(StdTx)
|
||||
require.Equal(t, expectedSigners, stdTx.GetSigners())
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ func NewAccountMapper(cdc *wire.Codec, key sdk.StoreKey, proto Account) AccountM
|
|||
}
|
||||
|
||||
// Implaements sdk.AccountMapper.
|
||||
func (am AccountMapper) NewAccountWithAddress(ctx sdk.Context, addr sdk.Address) Account {
|
||||
func (am AccountMapper) NewAccountWithAddress(ctx sdk.Context, addr sdk.AccAddress) Account {
|
||||
acc := am.clonePrototype()
|
||||
err := acc.SetAddress(addr)
|
||||
if err != nil {
|
||||
|
@ -63,12 +63,12 @@ func (am AccountMapper) NewAccount(ctx sdk.Context, acc Account) Account {
|
|||
}
|
||||
|
||||
// Turn an address to key used to get it from the account store
|
||||
func AddressStoreKey(addr sdk.Address) []byte {
|
||||
func AddressStoreKey(addr sdk.AccAddress) []byte {
|
||||
return append([]byte("account:"), addr.Bytes()...)
|
||||
}
|
||||
|
||||
// Implements sdk.AccountMapper.
|
||||
func (am AccountMapper) GetAccount(ctx sdk.Context, addr sdk.Address) Account {
|
||||
func (am AccountMapper) GetAccount(ctx sdk.Context, addr sdk.AccAddress) Account {
|
||||
store := ctx.KVStore(am.key)
|
||||
bz := store.Get(AddressStoreKey(addr))
|
||||
if bz == nil {
|
||||
|
@ -104,7 +104,7 @@ func (am AccountMapper) IterateAccounts(ctx sdk.Context, process func(Account) (
|
|||
}
|
||||
|
||||
// Returns the PubKey of the account at address
|
||||
func (am AccountMapper) GetPubKey(ctx sdk.Context, addr sdk.Address) (crypto.PubKey, sdk.Error) {
|
||||
func (am AccountMapper) GetPubKey(ctx sdk.Context, addr sdk.AccAddress) (crypto.PubKey, sdk.Error) {
|
||||
acc := am.GetAccount(ctx, addr)
|
||||
if acc == nil {
|
||||
return nil, sdk.ErrUnknownAddress(addr.String())
|
||||
|
@ -113,7 +113,7 @@ func (am AccountMapper) GetPubKey(ctx sdk.Context, addr sdk.Address) (crypto.Pub
|
|||
}
|
||||
|
||||
// Returns the Sequence of the account at address
|
||||
func (am AccountMapper) GetSequence(ctx sdk.Context, addr sdk.Address) (int64, sdk.Error) {
|
||||
func (am AccountMapper) GetSequence(ctx sdk.Context, addr sdk.AccAddress) (int64, sdk.Error) {
|
||||
acc := am.GetAccount(ctx, addr)
|
||||
if acc == nil {
|
||||
return 0, sdk.ErrUnknownAddress(addr.String())
|
||||
|
@ -121,7 +121,7 @@ func (am AccountMapper) GetSequence(ctx sdk.Context, addr sdk.Address) (int64, s
|
|||
return acc.GetSequence(), nil
|
||||
}
|
||||
|
||||
func (am AccountMapper) setSequence(ctx sdk.Context, addr sdk.Address, newSequence int64) sdk.Error {
|
||||
func (am AccountMapper) setSequence(ctx sdk.Context, addr sdk.AccAddress, newSequence int64) sdk.Error {
|
||||
acc := am.GetAccount(ctx, addr)
|
||||
if acc == nil {
|
||||
return sdk.ErrUnknownAddress(addr.String())
|
||||
|
|
|
@ -34,7 +34,7 @@ func TestAccountMapperGetSet(t *testing.T) {
|
|||
ctx := sdk.NewContext(ms, abci.Header{}, false, log.NewNopLogger())
|
||||
mapper := NewAccountMapper(cdc, capKey, &BaseAccount{})
|
||||
|
||||
addr := sdk.Address([]byte("some-address"))
|
||||
addr := sdk.AccAddress([]byte("some-address"))
|
||||
|
||||
// no account before its created
|
||||
acc := mapper.GetAccount(ctx, addr)
|
||||
|
|
|
@ -89,11 +89,11 @@ func (app *App) InitChainer(ctx sdk.Context, _ abci.RequestInitChain) abci.Respo
|
|||
}
|
||||
|
||||
// Generate genesis accounts loaded with coins, and returns their addresses, pubkeys, and privkeys
|
||||
func CreateGenAccounts(numAccs int64, genCoins sdk.Coins) (genAccs []auth.Account, addrs []sdk.Address, pubKeys []crypto.PubKey, privKeys []crypto.PrivKey) {
|
||||
func CreateGenAccounts(numAccs int64, genCoins sdk.Coins) (genAccs []auth.Account, addrs []sdk.AccAddress, pubKeys []crypto.PubKey, privKeys []crypto.PrivKey) {
|
||||
for i := int64(0); i < numAccs; i++ {
|
||||
privKey := crypto.GenPrivKeyEd25519()
|
||||
pubKey := privKey.PubKey()
|
||||
addr := sdk.Address(pubKey.Address())
|
||||
addr := sdk.AccAddress(pubKey.Address())
|
||||
|
||||
genAcc := &auth.BaseAccount{
|
||||
Address: addr,
|
||||
|
|
|
@ -0,0 +1,92 @@
|
|||
package mock
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/auth"
|
||||
|
||||
abci "github.com/tendermint/tendermint/abci/types"
|
||||
"github.com/tendermint/tendermint/crypto"
|
||||
)
|
||||
|
||||
// A mock transaction that has a validation which can fail.
|
||||
type testMsg struct {
|
||||
signers []sdk.AccAddress
|
||||
positiveNum int64
|
||||
}
|
||||
|
||||
// TODO: Clean this up, make it public
|
||||
const msgType = "testMsg"
|
||||
|
||||
func (tx testMsg) Type() string { return msgType }
|
||||
func (tx testMsg) GetMsg() sdk.Msg { return tx }
|
||||
func (tx testMsg) GetMemo() string { return "" }
|
||||
func (tx testMsg) GetSignBytes() []byte { return nil }
|
||||
func (tx testMsg) GetSigners() []sdk.AccAddress { return tx.signers }
|
||||
func (tx testMsg) GetSignatures() []auth.StdSignature { return nil }
|
||||
func (tx testMsg) ValidateBasic() sdk.Error {
|
||||
if tx.positiveNum >= 0 {
|
||||
return nil
|
||||
}
|
||||
return sdk.ErrTxDecode("positiveNum should be a non-negative integer.")
|
||||
}
|
||||
|
||||
// test auth module messages
|
||||
|
||||
var (
|
||||
priv1 = crypto.GenPrivKeyEd25519()
|
||||
addr1 = sdk.AccAddress(priv1.PubKey().Address())
|
||||
priv2 = crypto.GenPrivKeyEd25519()
|
||||
addr2 = sdk.AccAddress(priv2.PubKey().Address())
|
||||
|
||||
coins = sdk.Coins{sdk.NewCoin("foocoin", 10)}
|
||||
testMsg1 = testMsg{signers: []sdk.AccAddress{addr1}, positiveNum: 1}
|
||||
)
|
||||
|
||||
// initialize the mock application for this module
|
||||
func getMockApp(t *testing.T) *App {
|
||||
mapp := NewApp()
|
||||
|
||||
mapp.Router().AddRoute(msgType, func(ctx sdk.Context, msg sdk.Msg) (res sdk.Result) { return })
|
||||
require.NoError(t, mapp.CompleteSetup([]*sdk.KVStoreKey{}))
|
||||
return mapp
|
||||
}
|
||||
|
||||
func TestMsgPrivKeys(t *testing.T) {
|
||||
mapp := getMockApp(t)
|
||||
mapp.Cdc.RegisterConcrete(testMsg{}, "mock/testMsg", nil)
|
||||
|
||||
// Construct some genesis bytes to reflect basecoin/types/AppAccount
|
||||
// Give 77 foocoin to the first key
|
||||
coins := sdk.Coins{sdk.NewCoin("foocoin", 77)}
|
||||
acc1 := &auth.BaseAccount{
|
||||
Address: addr1,
|
||||
Coins: coins,
|
||||
}
|
||||
accs := []auth.Account{acc1}
|
||||
|
||||
// Construct genesis state
|
||||
SetGenesis(mapp, accs)
|
||||
|
||||
// A checkTx context (true)
|
||||
ctxCheck := mapp.BaseApp.NewContext(true, abci.Header{})
|
||||
res1 := mapp.AccountMapper.GetAccount(ctxCheck, addr1)
|
||||
require.Equal(t, acc1, res1.(*auth.BaseAccount))
|
||||
|
||||
// Run a CheckDeliver
|
||||
SignCheckDeliver(t, mapp.BaseApp, []sdk.Msg{testMsg1}, []int64{0}, []int64{0}, true, priv1)
|
||||
|
||||
// signing a SendMsg with the wrong privKey should be an auth error
|
||||
mapp.BeginBlock(abci.RequestBeginBlock{})
|
||||
tx := GenTx([]sdk.Msg{testMsg1}, []int64{0}, []int64{1}, priv2)
|
||||
res := mapp.Deliver(tx)
|
||||
require.Equal(t, sdk.ToABCICode(sdk.CodespaceRoot, sdk.CodeUnauthorized), res.Code, res.Log)
|
||||
|
||||
// resigning the tx with the correct priv key should still work
|
||||
res = SignCheckDeliver(t, mapp.BaseApp, []sdk.Msg{testMsg1}, []int64{0}, []int64{1}, true, priv1)
|
||||
|
||||
require.Equal(t, sdk.ToABCICode(sdk.CodespaceRoot, sdk.CodeOK), res.Code, res.Log)
|
||||
}
|
|
@ -0,0 +1,110 @@
|
|||
package mock
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/baseapp"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/auth"
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/tendermint/tendermint/crypto"
|
||||
|
||||
abci "github.com/tendermint/tendermint/abci/types"
|
||||
)
|
||||
|
||||
var chainID = "" // TODO
|
||||
|
||||
// set the mock app genesis
|
||||
func SetGenesis(app *App, accs []auth.Account) {
|
||||
|
||||
// pass the accounts in via the application (lazy) instead of through RequestInitChain
|
||||
app.GenesisAccounts = accs
|
||||
|
||||
app.InitChain(abci.RequestInitChain{})
|
||||
app.Commit()
|
||||
}
|
||||
|
||||
// check an account balance
|
||||
func CheckBalance(t *testing.T, app *App, addr sdk.AccAddress, exp sdk.Coins) {
|
||||
ctxCheck := app.BaseApp.NewContext(true, abci.Header{})
|
||||
res := app.AccountMapper.GetAccount(ctxCheck, addr)
|
||||
require.Equal(t, exp, res.GetCoins())
|
||||
}
|
||||
|
||||
// generate a signed transaction
|
||||
func GenTx(msgs []sdk.Msg, accnums []int64, seq []int64, priv ...crypto.PrivKeyEd25519) auth.StdTx {
|
||||
|
||||
// make the transaction free
|
||||
fee := auth.StdFee{
|
||||
sdk.Coins{sdk.NewCoin("foocoin", 0)},
|
||||
100000,
|
||||
}
|
||||
|
||||
sigs := make([]auth.StdSignature, len(priv))
|
||||
memo := "testmemotestmemo"
|
||||
for i, p := range priv {
|
||||
sig, err := p.Sign(auth.StdSignBytes(chainID, accnums[i], seq[i], fee, msgs, memo))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
sigs[i] = auth.StdSignature{
|
||||
PubKey: p.PubKey(),
|
||||
Signature: sig,
|
||||
AccountNumber: accnums[i],
|
||||
Sequence: seq[i],
|
||||
}
|
||||
}
|
||||
return auth.NewStdTx(msgs, fee, sigs, memo)
|
||||
}
|
||||
|
||||
// generate a set of signed transactions a msg, that differ only by having the
|
||||
// sequence numbers incremented between every transaction.
|
||||
func GenSequenceOfTxs(msgs []sdk.Msg, accnums []int64, initSeqNums []int64, numToGenerate int, priv ...crypto.PrivKeyEd25519) []auth.StdTx {
|
||||
txs := make([]auth.StdTx, numToGenerate, numToGenerate)
|
||||
for i := 0; i < numToGenerate; i++ {
|
||||
txs[i] = GenTx(msgs, accnums, initSeqNums, priv...)
|
||||
incrementAllSequenceNumbers(initSeqNums)
|
||||
}
|
||||
return txs
|
||||
}
|
||||
|
||||
func incrementAllSequenceNumbers(initSeqNums []int64) {
|
||||
for i := 0; i < len(initSeqNums); i++ {
|
||||
initSeqNums[i]++
|
||||
}
|
||||
}
|
||||
|
||||
// check a transaction result
|
||||
func SignCheck(app *baseapp.BaseApp, msgs []sdk.Msg, accnums []int64, seq []int64, priv ...crypto.PrivKeyEd25519) sdk.Result {
|
||||
tx := GenTx(msgs, accnums, seq, priv...)
|
||||
res := app.Check(tx)
|
||||
return res
|
||||
}
|
||||
|
||||
// simulate a block
|
||||
func SignCheckDeliver(t *testing.T, app *baseapp.BaseApp, msgs []sdk.Msg, accnums []int64, seq []int64, expPass bool, priv ...crypto.PrivKeyEd25519) sdk.Result {
|
||||
|
||||
// Sign the tx
|
||||
tx := GenTx(msgs, accnums, seq, priv...)
|
||||
|
||||
// Run a Check
|
||||
res := app.Check(tx)
|
||||
if expPass {
|
||||
require.Equal(t, sdk.ABCICodeOK, res.Code, res.Log)
|
||||
} else {
|
||||
require.NotEqual(t, sdk.ABCICodeOK, res.Code, res.Log)
|
||||
}
|
||||
|
||||
// Simulate a Block
|
||||
app.BeginBlock(abci.RequestBeginBlock{})
|
||||
res = app.Deliver(tx)
|
||||
if expPass {
|
||||
require.Equal(t, sdk.ABCICodeOK, res.Code, res.Log)
|
||||
} else {
|
||||
require.NotEqual(t, sdk.ABCICodeOK, res.Code, res.Log)
|
||||
}
|
||||
app.EndBlock(abci.RequestEndBlock{})
|
||||
|
||||
app.Commit()
|
||||
return res
|
||||
}
|
|
@ -35,9 +35,9 @@ func (tx StdTx) GetMsgs() []sdk.Msg { return tx.Msgs }
|
|||
// They are accumulated from the GetSigners method for each Msg
|
||||
// in the order they appear in tx.GetMsgs().
|
||||
// Duplicate addresses will be omitted.
|
||||
func (tx StdTx) GetSigners() []sdk.Address {
|
||||
func (tx StdTx) GetSigners() []sdk.AccAddress {
|
||||
seen := map[string]bool{}
|
||||
var signers []sdk.Address
|
||||
var signers []sdk.AccAddress
|
||||
for _, msg := range tx.GetMsgs() {
|
||||
for _, addr := range msg.GetSigners() {
|
||||
if !seen[addr.String()] {
|
||||
|
@ -65,7 +65,7 @@ func (tx StdTx) GetSignatures() []StdSignature { return tx.Signatures }
|
|||
// FeePayer returns the address responsible for paying the fees
|
||||
// for the transactions. It's the first address returned by msg.GetSigners().
|
||||
// If GetSigners() is empty, this panics.
|
||||
func FeePayer(tx sdk.Tx) sdk.Address {
|
||||
func FeePayer(tx sdk.Tx) sdk.AccAddress {
|
||||
return tx.GetMsgs()[0].GetSigners()[0]
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ import (
|
|||
|
||||
func TestStdTx(t *testing.T) {
|
||||
priv := crypto.GenPrivKeyEd25519()
|
||||
addr := priv.PubKey().Address()
|
||||
addr := sdk.AccAddress(priv.PubKey().Address())
|
||||
msgs := []sdk.Msg{sdk.NewTestMsg(addr)}
|
||||
fee := newStdFee()
|
||||
sigs := []StdSignature{}
|
||||
|
|
|
@ -18,12 +18,12 @@ import (
|
|||
// test bank module in a mock application
|
||||
var (
|
||||
priv1 = crypto.GenPrivKeyEd25519()
|
||||
addr1 = sdk.Address(priv1.PubKey().Address())
|
||||
addr1 = sdk.AccAddress(priv1.PubKey().Address())
|
||||
priv2 = crypto.GenPrivKeyEd25519()
|
||||
addr2 = sdk.Address(priv2.PubKey().Address())
|
||||
addr3 = sdk.Address(crypto.GenPrivKeyEd25519().PubKey().Address())
|
||||
addr2 = sdk.AccAddress(priv2.PubKey().Address())
|
||||
addr3 = sdk.AccAddress(crypto.GenPrivKeyEd25519().PubKey().Address())
|
||||
priv4 = crypto.GenPrivKeyEd25519()
|
||||
addr4 = sdk.Address(priv4.PubKey().Address())
|
||||
addr4 = sdk.AccAddress(priv4.PubKey().Address())
|
||||
coins = sdk.Coins{sdk.NewCoin("foocoin", 10)}
|
||||
halfCoins = sdk.Coins{sdk.NewCoin("foocoin", 5)}
|
||||
manyCoins = sdk.Coins{sdk.NewCoin("foocoin", 1), sdk.NewCoin("barcoin", 1)}
|
||||
|
|
|
@ -80,7 +80,7 @@ func SendRequestHandlerFn(cdc *wire.Codec, kb keys.Keybase, ctx context.CoreCont
|
|||
}
|
||||
|
||||
// build message
|
||||
msg := client.BuildMsg(sdk.Address(info.GetPubKey().Address()), to, m.Amount)
|
||||
msg := client.BuildMsg(sdk.AccAddress(info.GetPubKey().Address()), to, m.Amount)
|
||||
if err != nil { // XXX rechecking same error ?
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
w.Write([]byte(err.Error()))
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
)
|
||||
|
||||
// build the sendTx msg
|
||||
func BuildMsg(from sdk.Address, to sdk.Address, coins sdk.Coins) sdk.Msg {
|
||||
func BuildMsg(from sdk.AccAddress, to sdk.AccAddress, coins sdk.Coins) sdk.Msg {
|
||||
input := bank.NewInput(from, coins)
|
||||
output := bank.NewOutput(to, coins)
|
||||
msg := bank.NewMsgSend([]bank.Input{input}, []bank.Output{output})
|
||||
|
|
|
@ -26,32 +26,32 @@ func NewKeeper(am auth.AccountMapper) Keeper {
|
|||
}
|
||||
|
||||
// GetCoins returns the coins at the addr.
|
||||
func (keeper Keeper) GetCoins(ctx sdk.Context, addr sdk.Address) sdk.Coins {
|
||||
func (keeper Keeper) GetCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins {
|
||||
return getCoins(ctx, keeper.am, addr)
|
||||
}
|
||||
|
||||
// SetCoins sets the coins at the addr.
|
||||
func (keeper Keeper) SetCoins(ctx sdk.Context, addr sdk.Address, amt sdk.Coins) sdk.Error {
|
||||
func (keeper Keeper) SetCoins(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coins) sdk.Error {
|
||||
return setCoins(ctx, keeper.am, addr, amt)
|
||||
}
|
||||
|
||||
// HasCoins returns whether or not an account has at least amt coins.
|
||||
func (keeper Keeper) HasCoins(ctx sdk.Context, addr sdk.Address, amt sdk.Coins) bool {
|
||||
func (keeper Keeper) HasCoins(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coins) bool {
|
||||
return hasCoins(ctx, keeper.am, addr, amt)
|
||||
}
|
||||
|
||||
// SubtractCoins subtracts amt from the coins at the addr.
|
||||
func (keeper Keeper) SubtractCoins(ctx sdk.Context, addr sdk.Address, amt sdk.Coins) (sdk.Coins, sdk.Tags, sdk.Error) {
|
||||
func (keeper Keeper) SubtractCoins(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coins) (sdk.Coins, sdk.Tags, sdk.Error) {
|
||||
return subtractCoins(ctx, keeper.am, addr, amt)
|
||||
}
|
||||
|
||||
// AddCoins adds amt to the coins at the addr.
|
||||
func (keeper Keeper) AddCoins(ctx sdk.Context, addr sdk.Address, amt sdk.Coins) (sdk.Coins, sdk.Tags, sdk.Error) {
|
||||
func (keeper Keeper) AddCoins(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coins) (sdk.Coins, sdk.Tags, sdk.Error) {
|
||||
return addCoins(ctx, keeper.am, addr, amt)
|
||||
}
|
||||
|
||||
// SendCoins moves coins from one account to another
|
||||
func (keeper Keeper) SendCoins(ctx sdk.Context, fromAddr sdk.Address, toAddr sdk.Address, amt sdk.Coins) (sdk.Tags, sdk.Error) {
|
||||
func (keeper Keeper) SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) (sdk.Tags, sdk.Error) {
|
||||
return sendCoins(ctx, keeper.am, fromAddr, toAddr, amt)
|
||||
}
|
||||
|
||||
|
@ -73,17 +73,17 @@ func NewSendKeeper(am auth.AccountMapper) SendKeeper {
|
|||
}
|
||||
|
||||
// GetCoins returns the coins at the addr.
|
||||
func (keeper SendKeeper) GetCoins(ctx sdk.Context, addr sdk.Address) sdk.Coins {
|
||||
func (keeper SendKeeper) GetCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins {
|
||||
return getCoins(ctx, keeper.am, addr)
|
||||
}
|
||||
|
||||
// HasCoins returns whether or not an account has at least amt coins.
|
||||
func (keeper SendKeeper) HasCoins(ctx sdk.Context, addr sdk.Address, amt sdk.Coins) bool {
|
||||
func (keeper SendKeeper) HasCoins(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coins) bool {
|
||||
return hasCoins(ctx, keeper.am, addr, amt)
|
||||
}
|
||||
|
||||
// SendCoins moves coins from one account to another
|
||||
func (keeper SendKeeper) SendCoins(ctx sdk.Context, fromAddr sdk.Address, toAddr sdk.Address, amt sdk.Coins) (sdk.Tags, sdk.Error) {
|
||||
func (keeper SendKeeper) SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) (sdk.Tags, sdk.Error) {
|
||||
return sendCoins(ctx, keeper.am, fromAddr, toAddr, amt)
|
||||
}
|
||||
|
||||
|
@ -105,18 +105,18 @@ func NewViewKeeper(am auth.AccountMapper) ViewKeeper {
|
|||
}
|
||||
|
||||
// GetCoins returns the coins at the addr.
|
||||
func (keeper ViewKeeper) GetCoins(ctx sdk.Context, addr sdk.Address) sdk.Coins {
|
||||
func (keeper ViewKeeper) GetCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins {
|
||||
return getCoins(ctx, keeper.am, addr)
|
||||
}
|
||||
|
||||
// HasCoins returns whether or not an account has at least amt coins.
|
||||
func (keeper ViewKeeper) HasCoins(ctx sdk.Context, addr sdk.Address, amt sdk.Coins) bool {
|
||||
func (keeper ViewKeeper) HasCoins(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coins) bool {
|
||||
return hasCoins(ctx, keeper.am, addr, amt)
|
||||
}
|
||||
|
||||
//______________________________________________________________________________________________
|
||||
|
||||
func getCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.Address) sdk.Coins {
|
||||
func getCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.AccAddress) sdk.Coins {
|
||||
ctx.GasMeter().ConsumeGas(costGetCoins, "getCoins")
|
||||
acc := am.GetAccount(ctx, addr)
|
||||
if acc == nil {
|
||||
|
@ -125,7 +125,7 @@ func getCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.Address) sdk.Coin
|
|||
return acc.GetCoins()
|
||||
}
|
||||
|
||||
func setCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.Address, amt sdk.Coins) sdk.Error {
|
||||
func setCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.AccAddress, amt sdk.Coins) sdk.Error {
|
||||
ctx.GasMeter().ConsumeGas(costSetCoins, "setCoins")
|
||||
acc := am.GetAccount(ctx, addr)
|
||||
if acc == nil {
|
||||
|
@ -141,13 +141,13 @@ func setCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.Address, amt sdk.
|
|||
}
|
||||
|
||||
// HasCoins returns whether or not an account has at least amt coins.
|
||||
func hasCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.Address, amt sdk.Coins) bool {
|
||||
func hasCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.AccAddress, amt sdk.Coins) bool {
|
||||
ctx.GasMeter().ConsumeGas(costHasCoins, "hasCoins")
|
||||
return getCoins(ctx, am, addr).IsGTE(amt)
|
||||
}
|
||||
|
||||
// SubtractCoins subtracts amt from the coins at the addr.
|
||||
func subtractCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.Address, amt sdk.Coins) (sdk.Coins, sdk.Tags, sdk.Error) {
|
||||
func subtractCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.AccAddress, amt sdk.Coins) (sdk.Coins, sdk.Tags, sdk.Error) {
|
||||
ctx.GasMeter().ConsumeGas(costSubtractCoins, "subtractCoins")
|
||||
oldCoins := getCoins(ctx, am, addr)
|
||||
newCoins := oldCoins.Minus(amt)
|
||||
|
@ -160,7 +160,7 @@ func subtractCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.Address, amt
|
|||
}
|
||||
|
||||
// AddCoins adds amt to the coins at the addr.
|
||||
func addCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.Address, amt sdk.Coins) (sdk.Coins, sdk.Tags, sdk.Error) {
|
||||
func addCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.AccAddress, amt sdk.Coins) (sdk.Coins, sdk.Tags, sdk.Error) {
|
||||
ctx.GasMeter().ConsumeGas(costAddCoins, "addCoins")
|
||||
oldCoins := getCoins(ctx, am, addr)
|
||||
newCoins := oldCoins.Plus(amt)
|
||||
|
@ -174,7 +174,7 @@ func addCoins(ctx sdk.Context, am auth.AccountMapper, addr sdk.Address, amt sdk.
|
|||
|
||||
// SendCoins moves coins from one account to another
|
||||
// NOTE: Make sure to revert state changes from tx on error
|
||||
func sendCoins(ctx sdk.Context, am auth.AccountMapper, fromAddr sdk.Address, toAddr sdk.Address, amt sdk.Coins) (sdk.Tags, sdk.Error) {
|
||||
func sendCoins(ctx sdk.Context, am auth.AccountMapper, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) (sdk.Tags, sdk.Error) {
|
||||
_, subTags, err := subtractCoins(ctx, am, fromAddr, amt)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
@ -36,9 +36,9 @@ func TestKeeper(t *testing.T) {
|
|||
accountMapper := auth.NewAccountMapper(cdc, authKey, &auth.BaseAccount{})
|
||||
coinKeeper := NewKeeper(accountMapper)
|
||||
|
||||
addr := sdk.Address([]byte("addr1"))
|
||||
addr2 := sdk.Address([]byte("addr2"))
|
||||
addr3 := sdk.Address([]byte("addr3"))
|
||||
addr := sdk.AccAddress([]byte("addr1"))
|
||||
addr2 := sdk.AccAddress([]byte("addr2"))
|
||||
addr3 := sdk.AccAddress([]byte("addr3"))
|
||||
acc := accountMapper.NewAccountWithAddress(ctx, addr)
|
||||
|
||||
// Test GetCoins/SetCoins
|
||||
|
@ -122,9 +122,9 @@ func TestSendKeeper(t *testing.T) {
|
|||
coinKeeper := NewKeeper(accountMapper)
|
||||
sendKeeper := NewSendKeeper(accountMapper)
|
||||
|
||||
addr := sdk.Address([]byte("addr1"))
|
||||
addr2 := sdk.Address([]byte("addr2"))
|
||||
addr3 := sdk.Address([]byte("addr3"))
|
||||
addr := sdk.AccAddress([]byte("addr1"))
|
||||
addr2 := sdk.AccAddress([]byte("addr2"))
|
||||
addr3 := sdk.AccAddress([]byte("addr3"))
|
||||
acc := accountMapper.NewAccountWithAddress(ctx, addr)
|
||||
|
||||
// Test GetCoins/SetCoins
|
||||
|
@ -191,7 +191,7 @@ func TestViewKeeper(t *testing.T) {
|
|||
coinKeeper := NewKeeper(accountMapper)
|
||||
viewKeeper := NewViewKeeper(accountMapper)
|
||||
|
||||
addr := sdk.Address([]byte("addr1"))
|
||||
addr := sdk.AccAddress([]byte("addr1"))
|
||||
acc := accountMapper.NewAccountWithAddress(ctx, addr)
|
||||
|
||||
// Test GetCoins/SetCoins
|
||||
|
|
|
@ -76,8 +76,8 @@ func (msg MsgSend) GetSignBytes() []byte {
|
|||
}
|
||||
|
||||
// Implements Msg.
|
||||
func (msg MsgSend) GetSigners() []sdk.Address {
|
||||
addrs := make([]sdk.Address, len(msg.Inputs))
|
||||
func (msg MsgSend) GetSigners() []sdk.AccAddress {
|
||||
addrs := make([]sdk.AccAddress, len(msg.Inputs))
|
||||
for i, in := range msg.Inputs {
|
||||
addrs[i] = in.Address
|
||||
}
|
||||
|
@ -89,14 +89,14 @@ func (msg MsgSend) GetSigners() []sdk.Address {
|
|||
|
||||
// MsgIssue - high level transaction of the coin module
|
||||
type MsgIssue struct {
|
||||
Banker sdk.Address `json:"banker"`
|
||||
Outputs []Output `json:"outputs"`
|
||||
Banker sdk.AccAddress `json:"banker"`
|
||||
Outputs []Output `json:"outputs"`
|
||||
}
|
||||
|
||||
var _ sdk.Msg = MsgIssue{}
|
||||
|
||||
// NewMsgIssue - construct arbitrary multi-in, multi-out send msg.
|
||||
func NewMsgIssue(banker sdk.Address, out []Output) MsgIssue {
|
||||
func NewMsgIssue(banker sdk.AccAddress, out []Output) MsgIssue {
|
||||
return MsgIssue{Banker: banker, Outputs: out}
|
||||
}
|
||||
|
||||
|
@ -124,7 +124,7 @@ func (msg MsgIssue) GetSignBytes() []byte {
|
|||
outputs = append(outputs, output.GetSignBytes())
|
||||
}
|
||||
b, err := msgCdc.MarshalJSON(struct {
|
||||
Banker sdk.Address `json:"banker"`
|
||||
Banker sdk.AccAddress `json:"banker"`
|
||||
Outputs []json.RawMessage `json:"outputs"`
|
||||
}{
|
||||
Banker: msg.Banker,
|
||||
|
@ -137,8 +137,8 @@ func (msg MsgIssue) GetSignBytes() []byte {
|
|||
}
|
||||
|
||||
// Implements Msg.
|
||||
func (msg MsgIssue) GetSigners() []sdk.Address {
|
||||
return []sdk.Address{msg.Banker}
|
||||
func (msg MsgIssue) GetSigners() []sdk.AccAddress {
|
||||
return []sdk.AccAddress{msg.Banker}
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
|
@ -146,8 +146,8 @@ func (msg MsgIssue) GetSigners() []sdk.Address {
|
|||
|
||||
// Transaction Input
|
||||
type Input struct {
|
||||
Address sdk.Address `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
Address sdk.AccAddress `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
}
|
||||
|
||||
// Return bytes to sign for Input
|
||||
|
@ -174,7 +174,7 @@ func (in Input) ValidateBasic() sdk.Error {
|
|||
}
|
||||
|
||||
// NewInput - create a transaction input, used with MsgSend
|
||||
func NewInput(addr sdk.Address, coins sdk.Coins) Input {
|
||||
func NewInput(addr sdk.AccAddress, coins sdk.Coins) Input {
|
||||
input := Input{
|
||||
Address: addr,
|
||||
Coins: coins,
|
||||
|
@ -187,8 +187,8 @@ func NewInput(addr sdk.Address, coins sdk.Coins) Input {
|
|||
|
||||
// Transaction Output
|
||||
type Output struct {
|
||||
Address sdk.Address `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
Address sdk.AccAddress `json:"address"`
|
||||
Coins sdk.Coins `json:"coins"`
|
||||
}
|
||||
|
||||
// Return bytes to sign for Output
|
||||
|
@ -215,7 +215,7 @@ func (out Output) ValidateBasic() sdk.Error {
|
|||
}
|
||||
|
||||
// NewOutput - create a transaction output, used with MsgSend
|
||||
func NewOutput(addr sdk.Address, coins sdk.Coins) Output {
|
||||
func NewOutput(addr sdk.AccAddress, coins sdk.Coins) Output {
|
||||
output := Output{
|
||||
Address: addr,
|
||||
Coins: coins,
|
||||
|
|
|
@ -13,8 +13,8 @@ func TestNewMsgSend(t *testing.T) {}
|
|||
|
||||
func TestMsgSendType(t *testing.T) {
|
||||
// Construct a MsgSend
|
||||
addr1 := sdk.Address([]byte("input"))
|
||||
addr2 := sdk.Address([]byte("output"))
|
||||
addr1 := sdk.AccAddress([]byte("input"))
|
||||
addr2 := sdk.AccAddress([]byte("output"))
|
||||
coins := sdk.Coins{sdk.NewCoin("atom", 10)}
|
||||
var msg = MsgSend{
|
||||
Inputs: []Input{NewInput(addr1, coins)},
|
||||
|
@ -26,12 +26,12 @@ func TestMsgSendType(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestInputValidation(t *testing.T) {
|
||||
addr1 := sdk.Address([]byte{1, 2})
|
||||
addr2 := sdk.Address([]byte{7, 8})
|
||||
addr1 := sdk.AccAddress([]byte{1, 2})
|
||||
addr2 := sdk.AccAddress([]byte{7, 8})
|
||||
someCoins := sdk.Coins{sdk.NewCoin("atom", 123)}
|
||||
multiCoins := sdk.Coins{sdk.NewCoin("atom", 123), sdk.NewCoin("eth", 20)}
|
||||
|
||||
var emptyAddr sdk.Address
|
||||
var emptyAddr sdk.AccAddress
|
||||
emptyCoins := sdk.Coins{}
|
||||
emptyCoins2 := sdk.Coins{sdk.NewCoin("eth", 0)}
|
||||
someEmptyCoins := sdk.Coins{sdk.NewCoin("eth", 10), sdk.NewCoin("atom", 0)}
|
||||
|
@ -68,12 +68,12 @@ func TestInputValidation(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestOutputValidation(t *testing.T) {
|
||||
addr1 := sdk.Address([]byte{1, 2})
|
||||
addr2 := sdk.Address([]byte{7, 8})
|
||||
addr1 := sdk.AccAddress([]byte{1, 2})
|
||||
addr2 := sdk.AccAddress([]byte{7, 8})
|
||||
someCoins := sdk.Coins{sdk.NewCoin("atom", 123)}
|
||||
multiCoins := sdk.Coins{sdk.NewCoin("atom", 123), sdk.NewCoin("eth", 20)}
|
||||
|
||||
var emptyAddr sdk.Address
|
||||
var emptyAddr sdk.AccAddress
|
||||
emptyCoins := sdk.Coins{}
|
||||
emptyCoins2 := sdk.Coins{sdk.NewCoin("eth", 0)}
|
||||
someEmptyCoins := sdk.Coins{sdk.NewCoin("eth", 10), sdk.NewCoin("atom", 0)}
|
||||
|
@ -110,8 +110,8 @@ func TestOutputValidation(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestMsgSendValidation(t *testing.T) {
|
||||
addr1 := sdk.Address([]byte{1, 2})
|
||||
addr2 := sdk.Address([]byte{7, 8})
|
||||
addr1 := sdk.AccAddress([]byte{1, 2})
|
||||
addr2 := sdk.AccAddress([]byte{7, 8})
|
||||
atom123 := sdk.Coins{sdk.NewCoin("atom", 123)}
|
||||
atom124 := sdk.Coins{sdk.NewCoin("atom", 124)}
|
||||
eth123 := sdk.Coins{sdk.NewCoin("eth", 123)}
|
||||
|
@ -124,7 +124,7 @@ func TestMsgSendValidation(t *testing.T) {
|
|||
output3 := NewOutput(addr2, eth123)
|
||||
outputMulti := NewOutput(addr2, atom123eth123)
|
||||
|
||||
var emptyAddr sdk.Address
|
||||
var emptyAddr sdk.AccAddress
|
||||
|
||||
cases := []struct {
|
||||
valid bool
|
||||
|
@ -178,8 +178,8 @@ func TestMsgSendValidation(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestMsgSendGetSignBytes(t *testing.T) {
|
||||
addr1 := sdk.Address([]byte("input"))
|
||||
addr2 := sdk.Address([]byte("output"))
|
||||
addr1 := sdk.AccAddress([]byte("input"))
|
||||
addr2 := sdk.AccAddress([]byte("output"))
|
||||
coins := sdk.Coins{sdk.NewCoin("atom", 10)}
|
||||
var msg = MsgSend{
|
||||
Inputs: []Input{NewInput(addr1, coins)},
|
||||
|
@ -194,9 +194,9 @@ func TestMsgSendGetSignBytes(t *testing.T) {
|
|||
func TestMsgSendGetSigners(t *testing.T) {
|
||||
var msg = MsgSend{
|
||||
Inputs: []Input{
|
||||
NewInput(sdk.Address([]byte("input1")), nil),
|
||||
NewInput(sdk.Address([]byte("input2")), nil),
|
||||
NewInput(sdk.Address([]byte("input3")), nil),
|
||||
NewInput(sdk.AccAddress([]byte("input1")), nil),
|
||||
NewInput(sdk.AccAddress([]byte("input2")), nil),
|
||||
NewInput(sdk.AccAddress([]byte("input3")), nil),
|
||||
},
|
||||
}
|
||||
res := msg.GetSigners()
|
||||
|
@ -207,7 +207,7 @@ func TestMsgSendGetSigners(t *testing.T) {
|
|||
/*
|
||||
// what to do w/ this test?
|
||||
func TestMsgSendSigners(t *testing.T) {
|
||||
signers := []sdk.Address{
|
||||
signers := []sdk.AccAddress{
|
||||
{1, 2, 3},
|
||||
{4, 5, 6},
|
||||
{7, 8, 9},
|
||||
|
@ -233,10 +233,10 @@ func TestNewMsgIssue(t *testing.T) {
|
|||
|
||||
func TestMsgIssueType(t *testing.T) {
|
||||
// Construct an MsgIssue
|
||||
addr := sdk.Address([]byte("loan-from-bank"))
|
||||
addr := sdk.AccAddress([]byte("loan-from-bank"))
|
||||
coins := sdk.Coins{sdk.NewCoin("atom", 10)}
|
||||
var msg = MsgIssue{
|
||||
Banker: sdk.Address([]byte("input")),
|
||||
Banker: sdk.AccAddress([]byte("input")),
|
||||
Outputs: []Output{NewOutput(addr, coins)},
|
||||
}
|
||||
|
||||
|
@ -249,10 +249,10 @@ func TestMsgIssueValidation(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestMsgIssueGetSignBytes(t *testing.T) {
|
||||
addr := sdk.Address([]byte("loan-from-bank"))
|
||||
addr := sdk.AccAddress([]byte("loan-from-bank"))
|
||||
coins := sdk.Coins{sdk.NewCoin("atom", 10)}
|
||||
var msg = MsgIssue{
|
||||
Banker: sdk.Address([]byte("input")),
|
||||
Banker: sdk.AccAddress([]byte("input")),
|
||||
Outputs: []Output{NewOutput(addr, coins)},
|
||||
}
|
||||
res := msg.GetSignBytes()
|
||||
|
@ -263,7 +263,7 @@ func TestMsgIssueGetSignBytes(t *testing.T) {
|
|||
|
||||
func TestMsgIssueGetSigners(t *testing.T) {
|
||||
var msg = MsgIssue{
|
||||
Banker: sdk.Address([]byte("onlyone")),
|
||||
Banker: sdk.AccAddress([]byte("onlyone")),
|
||||
}
|
||||
res := msg.GetSigners()
|
||||
require.Equal(t, fmt.Sprintf("%v", res), "[6F6E6C796F6E65]")
|
||||
|
|
|
@ -375,8 +375,8 @@ func queryProposalsWithParameterFn(cdc *wire.Codec) http.HandlerFunc {
|
|||
bechDepositerAddr := r.URL.Query().Get(RestDepositer)
|
||||
|
||||
var err error
|
||||
var voterAddr sdk.Address
|
||||
var depositerAddr sdk.Address
|
||||
var voterAddr sdk.AccAddress
|
||||
var depositerAddr sdk.AccAddress
|
||||
|
||||
if len(bechVoterAddr) != 0 {
|
||||
voterAddr, err = sdk.GetAccAddressBech32(bechVoterAddr)
|
||||
|
|
|
@ -18,16 +18,16 @@ const (
|
|||
|
||||
// Vote
|
||||
type Vote struct {
|
||||
Voter sdk.Address `json:"voter"` // address of the voter
|
||||
ProposalID int64 `json:"proposal_id"` // proposalID of the proposal
|
||||
Option VoteOption `json:"option"` // option from OptionSet chosen by the voter
|
||||
Voter sdk.AccAddress `json:"voter"` // address of the voter
|
||||
ProposalID int64 `json:"proposal_id"` // proposalID of the proposal
|
||||
Option VoteOption `json:"option"` // option from OptionSet chosen by the voter
|
||||
}
|
||||
|
||||
// Deposit
|
||||
type Deposit struct {
|
||||
Depositer sdk.Address `json:"depositer"` // Address of the depositer
|
||||
ProposalID int64 `json:"proposal_id"` // proposalID of the proposal
|
||||
Amount sdk.Coins `json:"amount"` // Deposit amount
|
||||
Depositer sdk.AccAddress `json:"depositer"` // Address of the depositer
|
||||
ProposalID int64 `json:"proposal_id"` // proposalID of the proposal
|
||||
Amount sdk.Coins `json:"amount"` // Deposit amount
|
||||
}
|
||||
|
||||
// ProposalTypeToString for pretty prints of ProposalType
|
||||
|
@ -77,9 +77,9 @@ func StringToVoteOption(str string) (VoteOption, sdk.Error) {
|
|||
|
||||
// Rest Deposits
|
||||
type DepositRest struct {
|
||||
Depositer sdk.Address `json:"depositer"` // address of the depositer
|
||||
ProposalID int64 `json:"proposal_id"` // proposalID of the proposal
|
||||
Amount sdk.Coins `json:"option"`
|
||||
Depositer sdk.AccAddress `json:"depositer"` // address of the depositer
|
||||
ProposalID int64 `json:"proposal_id"` // proposalID of the proposal
|
||||
Amount sdk.Coins `json:"option"`
|
||||
}
|
||||
|
||||
// Turn any Deposit to a DepositRest
|
||||
|
@ -93,9 +93,9 @@ func DepositToRest(deposit Deposit) DepositRest {
|
|||
|
||||
// Rest Votes
|
||||
type VoteRest struct {
|
||||
Voter sdk.Address `json:"voter"` // address of the voter
|
||||
ProposalID int64 `json:"proposal_id"` // proposalID of the proposal
|
||||
Option string `json:"option"`
|
||||
Voter sdk.AccAddress `json:"voter"` // address of the voter
|
||||
ProposalID int64 `json:"proposal_id"` // proposalID of the proposal
|
||||
Option string `json:"option"`
|
||||
}
|
||||
|
||||
// Turn any Vote to a VoteRest
|
||||
|
|
|
@ -41,7 +41,7 @@ func ErrAlreadyFinishedProposal(codespace sdk.CodespaceType, proposalID int64) s
|
|||
return sdk.NewError(codespace, CodeAlreadyFinishedProposal, fmt.Sprintf("Proposal %d has already passed its voting period", proposalID))
|
||||
}
|
||||
|
||||
func ErrAddressNotStaked(codespace sdk.CodespaceType, address sdk.Address) sdk.Error {
|
||||
func ErrAddressNotStaked(codespace sdk.CodespaceType, address sdk.AccAddress) sdk.Error {
|
||||
return sdk.NewError(codespace, CodeAddressNotStaked, fmt.Sprintf("Address %s is not staked and is thus ineligible to vote", address))
|
||||
}
|
||||
|
||||
|
|
|
@ -93,7 +93,7 @@ func handleMsgVote(ctx sdk.Context, keeper Keeper, msg MsgVote) sdk.Result {
|
|||
}
|
||||
|
||||
// Called every block, process inflation, update validator set
|
||||
func EndBlocker(ctx sdk.Context, keeper Keeper) (tags sdk.Tags, nonVotingVals []sdk.Address) {
|
||||
func EndBlocker(ctx sdk.Context, keeper Keeper) (tags sdk.Tags, nonVotingVals []sdk.AccAddress) {
|
||||
|
||||
tags = sdk.NewTags()
|
||||
|
||||
|
|
|
@ -156,7 +156,7 @@ func (keeper Keeper) GetTallyingProcedure() TallyingProcedure {
|
|||
// Votes
|
||||
|
||||
// Adds a vote on a specific proposal
|
||||
func (keeper Keeper) AddVote(ctx sdk.Context, proposalID int64, voterAddr sdk.Address, option VoteOption) sdk.Error {
|
||||
func (keeper Keeper) AddVote(ctx sdk.Context, proposalID int64, voterAddr sdk.AccAddress, option VoteOption) sdk.Error {
|
||||
proposal := keeper.GetProposal(ctx, proposalID)
|
||||
if proposal == nil {
|
||||
return ErrUnknownProposal(keeper.codespace, proposalID)
|
||||
|
@ -180,7 +180,7 @@ func (keeper Keeper) AddVote(ctx sdk.Context, proposalID int64, voterAddr sdk.Ad
|
|||
}
|
||||
|
||||
// Gets the vote of a specific voter on a specific proposal
|
||||
func (keeper Keeper) GetVote(ctx sdk.Context, proposalID int64, voterAddr sdk.Address) (Vote, bool) {
|
||||
func (keeper Keeper) GetVote(ctx sdk.Context, proposalID int64, voterAddr sdk.AccAddress) (Vote, bool) {
|
||||
store := ctx.KVStore(keeper.storeKey)
|
||||
bz := store.Get(KeyVote(proposalID, voterAddr))
|
||||
if bz == nil {
|
||||
|
@ -191,7 +191,7 @@ func (keeper Keeper) GetVote(ctx sdk.Context, proposalID int64, voterAddr sdk.Ad
|
|||
return vote, true
|
||||
}
|
||||
|
||||
func (keeper Keeper) setVote(ctx sdk.Context, proposalID int64, voterAddr sdk.Address, vote Vote) {
|
||||
func (keeper Keeper) setVote(ctx sdk.Context, proposalID int64, voterAddr sdk.AccAddress, vote Vote) {
|
||||
store := ctx.KVStore(keeper.storeKey)
|
||||
bz := keeper.cdc.MustMarshalBinary(vote)
|
||||
store.Set(KeyVote(proposalID, voterAddr), bz)
|
||||
|
@ -203,7 +203,7 @@ func (keeper Keeper) GetVotes(ctx sdk.Context, proposalID int64) sdk.Iterator {
|
|||
return sdk.KVStorePrefixIterator(store, KeyVotesSubspace(proposalID))
|
||||
}
|
||||
|
||||
func (keeper Keeper) deleteVote(ctx sdk.Context, proposalID int64, voterAddr sdk.Address) {
|
||||
func (keeper Keeper) deleteVote(ctx sdk.Context, proposalID int64, voterAddr sdk.AccAddress) {
|
||||
store := ctx.KVStore(keeper.storeKey)
|
||||
store.Delete(KeyVote(proposalID, voterAddr))
|
||||
}
|
||||
|
@ -212,7 +212,7 @@ func (keeper Keeper) deleteVote(ctx sdk.Context, proposalID int64, voterAddr sdk
|
|||
// Deposits
|
||||
|
||||
// Gets the deposit of a specific depositer on a specific proposal
|
||||
func (keeper Keeper) GetDeposit(ctx sdk.Context, proposalID int64, depositerAddr sdk.Address) (Deposit, bool) {
|
||||
func (keeper Keeper) GetDeposit(ctx sdk.Context, proposalID int64, depositerAddr sdk.AccAddress) (Deposit, bool) {
|
||||
store := ctx.KVStore(keeper.storeKey)
|
||||
bz := store.Get(KeyDeposit(proposalID, depositerAddr))
|
||||
if bz == nil {
|
||||
|
@ -223,7 +223,7 @@ func (keeper Keeper) GetDeposit(ctx sdk.Context, proposalID int64, depositerAddr
|
|||
return deposit, true
|
||||
}
|
||||
|
||||
func (keeper Keeper) setDeposit(ctx sdk.Context, proposalID int64, depositerAddr sdk.Address, deposit Deposit) {
|
||||
func (keeper Keeper) setDeposit(ctx sdk.Context, proposalID int64, depositerAddr sdk.AccAddress, deposit Deposit) {
|
||||
store := ctx.KVStore(keeper.storeKey)
|
||||
bz := keeper.cdc.MustMarshalBinary(deposit)
|
||||
store.Set(KeyDeposit(proposalID, depositerAddr), bz)
|
||||
|
@ -231,7 +231,7 @@ func (keeper Keeper) setDeposit(ctx sdk.Context, proposalID int64, depositerAddr
|
|||
|
||||
// Adds or updates a deposit of a specific depositer on a specific proposal
|
||||
// Activates voting period when appropriate
|
||||
func (keeper Keeper) AddDeposit(ctx sdk.Context, proposalID int64, depositerAddr sdk.Address, depositAmount sdk.Coins) (sdk.Error, bool) {
|
||||
func (keeper Keeper) AddDeposit(ctx sdk.Context, proposalID int64, depositerAddr sdk.AccAddress, depositAmount sdk.Coins) (sdk.Error, bool) {
|
||||
// Checks to see if proposal exists
|
||||
proposal := keeper.GetProposal(ctx, proposalID)
|
||||
if proposal == nil {
|
||||
|
|
|
@ -21,12 +21,12 @@ func KeyProposal(proposalID int64) []byte {
|
|||
}
|
||||
|
||||
// Key for getting a specific deposit from the store
|
||||
func KeyDeposit(proposalID int64, depositerAddr sdk.Address) []byte {
|
||||
func KeyDeposit(proposalID int64, depositerAddr sdk.AccAddress) []byte {
|
||||
return []byte(fmt.Sprintf("deposits:%d:%d", proposalID, depositerAddr))
|
||||
}
|
||||
|
||||
// Key for getting a specific vote from the store
|
||||
func KeyVote(proposalID int64, voterAddr sdk.Address) []byte {
|
||||
func KeyVote(proposalID int64, voterAddr sdk.AccAddress) []byte {
|
||||
return []byte(fmt.Sprintf("votes:%d:%d", proposalID, voterAddr))
|
||||
}
|
||||
|
||||
|
|
|
@ -12,14 +12,14 @@ const MsgType = "gov"
|
|||
//-----------------------------------------------------------
|
||||
// MsgSubmitProposal
|
||||
type MsgSubmitProposal struct {
|
||||
Title string // Title of the proposal
|
||||
Description string // Description of the proposal
|
||||
ProposalType ProposalKind // Type of proposal. Initial set {PlainTextProposal, SoftwareUpgradeProposal}
|
||||
Proposer sdk.Address // Address of the proposer
|
||||
InitialDeposit sdk.Coins // Initial deposit paid by sender. Must be strictly positive.
|
||||
Title string // Title of the proposal
|
||||
Description string // Description of the proposal
|
||||
ProposalType ProposalKind // Type of proposal. Initial set {PlainTextProposal, SoftwareUpgradeProposal}
|
||||
Proposer sdk.AccAddress // Address of the proposer
|
||||
InitialDeposit sdk.Coins // Initial deposit paid by sender. Must be strictly positive.
|
||||
}
|
||||
|
||||
func NewMsgSubmitProposal(title string, description string, proposalType ProposalKind, proposer sdk.Address, initialDeposit sdk.Coins) MsgSubmitProposal {
|
||||
func NewMsgSubmitProposal(title string, description string, proposalType ProposalKind, proposer sdk.AccAddress, initialDeposit sdk.Coins) MsgSubmitProposal {
|
||||
return MsgSubmitProposal{
|
||||
Title: title,
|
||||
Description: description,
|
||||
|
@ -67,16 +67,16 @@ func (msg MsgSubmitProposal) Get(key interface{}) (value interface{}) {
|
|||
// Implements Msg.
|
||||
func (msg MsgSubmitProposal) GetSignBytes() []byte {
|
||||
b, err := msgCdc.MarshalJSON(struct {
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
ProposalType string `json:"proposal_type"`
|
||||
Proposer string `json:"proposer"`
|
||||
InitialDeposit sdk.Coins `json:"deposit"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
ProposalType string `json:"proposal_type"`
|
||||
Proposer sdk.AccAddress `json:"proposer"`
|
||||
InitialDeposit sdk.Coins `json:"deposit"`
|
||||
}{
|
||||
Title: msg.Title,
|
||||
Description: msg.Description,
|
||||
ProposalType: ProposalTypeToString(msg.ProposalType),
|
||||
Proposer: sdk.MustBech32ifyVal(msg.Proposer),
|
||||
Proposer: msg.Proposer,
|
||||
InitialDeposit: msg.InitialDeposit,
|
||||
})
|
||||
if err != nil {
|
||||
|
@ -86,19 +86,19 @@ func (msg MsgSubmitProposal) GetSignBytes() []byte {
|
|||
}
|
||||
|
||||
// Implements Msg.
|
||||
func (msg MsgSubmitProposal) GetSigners() []sdk.Address {
|
||||
return []sdk.Address{msg.Proposer}
|
||||
func (msg MsgSubmitProposal) GetSigners() []sdk.AccAddress {
|
||||
return []sdk.AccAddress{msg.Proposer}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// MsgDeposit
|
||||
type MsgDeposit struct {
|
||||
ProposalID int64 `json:"proposalID"` // ID of the proposal
|
||||
Depositer sdk.Address `json:"depositer"` // Address of the depositer
|
||||
Amount sdk.Coins `json:"amount"` // Coins to add to the proposal's deposit
|
||||
ProposalID int64 `json:"proposalID"` // ID of the proposal
|
||||
Depositer sdk.AccAddress `json:"depositer"` // Address of the depositer
|
||||
Amount sdk.Coins `json:"amount"` // Coins to add to the proposal's deposit
|
||||
}
|
||||
|
||||
func NewMsgDeposit(depositer sdk.Address, proposalID int64, amount sdk.Coins) MsgDeposit {
|
||||
func NewMsgDeposit(depositer sdk.AccAddress, proposalID int64, amount sdk.Coins) MsgDeposit {
|
||||
return MsgDeposit{
|
||||
ProposalID: proposalID,
|
||||
Depositer: depositer,
|
||||
|
@ -138,12 +138,12 @@ func (msg MsgDeposit) Get(key interface{}) (value interface{}) {
|
|||
// Implements Msg.
|
||||
func (msg MsgDeposit) GetSignBytes() []byte {
|
||||
b, err := msgCdc.MarshalJSON(struct {
|
||||
ProposalID int64 `json:"proposalID"`
|
||||
Depositer string `json:"proposer"`
|
||||
Amount sdk.Coins `json:"deposit"`
|
||||
ProposalID int64 `json:"proposalID"`
|
||||
Depositer sdk.AccAddress `json:"proposer"`
|
||||
Amount sdk.Coins `json:"deposit"`
|
||||
}{
|
||||
ProposalID: msg.ProposalID,
|
||||
Depositer: sdk.MustBech32ifyVal(msg.Depositer),
|
||||
Depositer: msg.Depositer,
|
||||
Amount: msg.Amount,
|
||||
})
|
||||
if err != nil {
|
||||
|
@ -153,19 +153,19 @@ func (msg MsgDeposit) GetSignBytes() []byte {
|
|||
}
|
||||
|
||||
// Implements Msg.
|
||||
func (msg MsgDeposit) GetSigners() []sdk.Address {
|
||||
return []sdk.Address{msg.Depositer}
|
||||
func (msg MsgDeposit) GetSigners() []sdk.AccAddress {
|
||||
return []sdk.AccAddress{msg.Depositer}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// MsgVote
|
||||
type MsgVote struct {
|
||||
ProposalID int64 // proposalID of the proposal
|
||||
Voter sdk.Address // address of the voter
|
||||
Option VoteOption // option from OptionSet chosen by the voter
|
||||
ProposalID int64 // proposalID of the proposal
|
||||
Voter sdk.AccAddress // address of the voter
|
||||
Option VoteOption // option from OptionSet chosen by the voter
|
||||
}
|
||||
|
||||
func NewMsgVote(voter sdk.Address, proposalID int64, option VoteOption) MsgVote {
|
||||
func NewMsgVote(voter sdk.AccAddress, proposalID int64, option VoteOption) MsgVote {
|
||||
return MsgVote{
|
||||
ProposalID: proposalID,
|
||||
Voter: voter,
|
||||
|
@ -202,12 +202,12 @@ func (msg MsgVote) Get(key interface{}) (value interface{}) {
|
|||
// Implements Msg.
|
||||
func (msg MsgVote) GetSignBytes() []byte {
|
||||
b, err := msgCdc.MarshalJSON(struct {
|
||||
ProposalID int64 `json:"proposalID"`
|
||||
Voter string `json:"voter"`
|
||||
Option string `json:"option"`
|
||||
ProposalID int64 `json:"proposalID"`
|
||||
Voter sdk.AccAddress `json:"voter"`
|
||||
Option string `json:"option"`
|
||||
}{
|
||||
ProposalID: msg.ProposalID,
|
||||
Voter: sdk.MustBech32ifyVal(msg.Voter),
|
||||
Voter: msg.Voter,
|
||||
Option: VoteOptionToString(msg.Option),
|
||||
})
|
||||
if err != nil {
|
||||
|
@ -217,6 +217,6 @@ func (msg MsgVote) GetSignBytes() []byte {
|
|||
}
|
||||
|
||||
// Implements Msg.
|
||||
func (msg MsgVote) GetSigners() []sdk.Address {
|
||||
return []sdk.Address{msg.Voter}
|
||||
func (msg MsgVote) GetSigners() []sdk.AccAddress {
|
||||
return []sdk.AccAddress{msg.Voter}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ func TestMsgSubmitProposal(t *testing.T) {
|
|||
tests := []struct {
|
||||
title, description string
|
||||
proposalType byte
|
||||
proposerAddr sdk.Address
|
||||
proposerAddr sdk.AccAddress
|
||||
initialDeposit sdk.Coins
|
||||
expectPass bool
|
||||
}{
|
||||
|
@ -33,7 +33,7 @@ func TestMsgSubmitProposal(t *testing.T) {
|
|||
{"Test Proposal", "the purpose of this proposal is to test", ProposalTypeParameterChange, addrs[0], coinsPos, true},
|
||||
{"Test Proposal", "the purpose of this proposal is to test", ProposalTypeSoftwareUpgrade, addrs[0], coinsPos, true},
|
||||
{"Test Proposal", "the purpose of this proposal is to test", 0x05, addrs[0], coinsPos, false},
|
||||
{"Test Proposal", "the purpose of this proposal is to test", ProposalTypeText, sdk.Address{}, coinsPos, false},
|
||||
{"Test Proposal", "the purpose of this proposal is to test", ProposalTypeText, sdk.AccAddress{}, coinsPos, false},
|
||||
{"Test Proposal", "the purpose of this proposal is to test", ProposalTypeText, addrs[0], coinsZero, true},
|
||||
{"Test Proposal", "the purpose of this proposal is to test", ProposalTypeText, addrs[0], coinsNeg, false},
|
||||
{"Test Proposal", "the purpose of this proposal is to test", ProposalTypeText, addrs[0], coinsMulti, true},
|
||||
|
@ -54,13 +54,13 @@ func TestMsgDeposit(t *testing.T) {
|
|||
_, addrs, _, _ := mock.CreateGenAccounts(1, sdk.Coins{})
|
||||
tests := []struct {
|
||||
proposalID int64
|
||||
depositerAddr sdk.Address
|
||||
depositerAddr sdk.AccAddress
|
||||
depositAmount sdk.Coins
|
||||
expectPass bool
|
||||
}{
|
||||
{0, addrs[0], coinsPos, true},
|
||||
{-1, addrs[0], coinsPos, false},
|
||||
{1, sdk.Address{}, coinsPos, false},
|
||||
{1, sdk.AccAddress{}, coinsPos, false},
|
||||
{1, addrs[0], coinsZero, true},
|
||||
{1, addrs[0], coinsNeg, false},
|
||||
{1, addrs[0], coinsMulti, true},
|
||||
|
@ -81,13 +81,13 @@ func TestMsgVote(t *testing.T) {
|
|||
_, addrs, _, _ := mock.CreateGenAccounts(1, sdk.Coins{})
|
||||
tests := []struct {
|
||||
proposalID int64
|
||||
voterAddr sdk.Address
|
||||
voterAddr sdk.AccAddress
|
||||
option VoteOption
|
||||
expectPass bool
|
||||
}{
|
||||
{0, addrs[0], OptionYes, true},
|
||||
{-1, addrs[0], OptionYes, false},
|
||||
{0, sdk.Address{}, OptionYes, false},
|
||||
{0, sdk.AccAddress{}, OptionYes, false},
|
||||
{0, addrs[0], OptionNo, true},
|
||||
{0, addrs[0], OptionNoWithVeto, true},
|
||||
{0, addrs[0], OptionAbstain, true},
|
||||
|
|
|
@ -6,14 +6,14 @@ import (
|
|||
|
||||
// validatorGovInfo used for tallying
|
||||
type validatorGovInfo struct {
|
||||
Address sdk.Address // sdk.Address of the validator owner
|
||||
Power sdk.Rat // Power of a Validator
|
||||
DelegatorShares sdk.Rat // Total outstanding delegator shares
|
||||
Minus sdk.Rat // Minus of validator, used to compute validator's voting power
|
||||
Vote VoteOption // Vote of the validator
|
||||
Address sdk.AccAddress // sdk.AccAddress of the validator owner
|
||||
Power sdk.Rat // Power of a Validator
|
||||
DelegatorShares sdk.Rat // Total outstanding delegator shares
|
||||
Minus sdk.Rat // Minus of validator, used to compute validator's voting power
|
||||
Vote VoteOption // Vote of the validator
|
||||
}
|
||||
|
||||
func tally(ctx sdk.Context, keeper Keeper, proposal Proposal) (passes bool, nonVoting []sdk.Address) {
|
||||
func tally(ctx sdk.Context, keeper Keeper, proposal Proposal) (passes bool, nonVoting []sdk.AccAddress) {
|
||||
results := make(map[VoteOption]sdk.Rat)
|
||||
results[OptionYes] = sdk.ZeroRat()
|
||||
results[OptionAbstain] = sdk.ZeroRat()
|
||||
|
@ -67,7 +67,7 @@ func tally(ctx sdk.Context, keeper Keeper, proposal Proposal) (passes bool, nonV
|
|||
votesIterator.Close()
|
||||
|
||||
// Iterate over the validators again to tally their voting power and see who didn't vote
|
||||
nonVoting = []sdk.Address{}
|
||||
nonVoting = []sdk.AccAddress{}
|
||||
for _, val := range currValidators {
|
||||
if val.Vote == OptionEmpty {
|
||||
nonVoting = append(nonVoting, val.Address)
|
||||
|
|
|
@ -18,7 +18,7 @@ import (
|
|||
)
|
||||
|
||||
// initialize the mock application for this module
|
||||
func getMockApp(t *testing.T, numGenAccs int) (*mock.App, Keeper, stake.Keeper, []sdk.Address, []crypto.PubKey, []crypto.PrivKey) {
|
||||
func getMockApp(t *testing.T, numGenAccs int) (*mock.App, Keeper, stake.Keeper, []sdk.AccAddress, []crypto.PubKey, []crypto.PrivKey) {
|
||||
mapp := mock.NewApp()
|
||||
|
||||
stake.RegisterWire(mapp.Cdc)
|
||||
|
@ -68,7 +68,7 @@ func getInitChainer(mapp *mock.App, keeper Keeper, stakeKeeper stake.Keeper) sdk
|
|||
}
|
||||
|
||||
// Sorts Addresses
|
||||
func SortAddresses(addrs []sdk.Address) {
|
||||
func SortAddresses(addrs []sdk.AccAddress) {
|
||||
var byteAddrs [][]byte
|
||||
for _, addr := range addrs {
|
||||
byteAddrs = append(byteAddrs, addr.Bytes())
|
||||
|
|
|
@ -35,7 +35,7 @@ func TestIBCMsgs(t *testing.T) {
|
|||
destChain := "dest-chain"
|
||||
|
||||
priv1 := crypto.GenPrivKeyEd25519()
|
||||
addr1 := sdk.Address(priv1.PubKey().Address())
|
||||
addr1 := sdk.AccAddress(priv1.PubKey().Address())
|
||||
coins := sdk.Coins{sdk.NewCoin("foocoin", 10)}
|
||||
var emptyCoins sdk.Coins
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ func IBCTransferCmd(cdc *wire.Codec) *cobra.Command {
|
|||
return cmd
|
||||
}
|
||||
|
||||
func buildMsg(from sdk.Address) (sdk.Msg, error) {
|
||||
func buildMsg(from sdk.AccAddress) (sdk.Msg, error) {
|
||||
amount := viper.GetString(flagAmount)
|
||||
coins, err := sdk.ParseCoins(amount)
|
||||
if err != nil {
|
||||
|
@ -68,7 +68,7 @@ func buildMsg(from sdk.Address) (sdk.Msg, error) {
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
to := sdk.Address(bz)
|
||||
to := sdk.AccAddress(bz)
|
||||
|
||||
packet := ibc.NewIBCPacket(from, to, coins, viper.GetString(client.FlagChainID),
|
||||
viper.GetString(flagChain))
|
||||
|
|
|
@ -27,7 +27,7 @@ const (
|
|||
|
||||
type relayCommander struct {
|
||||
cdc *wire.Codec
|
||||
address sdk.Address
|
||||
address sdk.AccAddress
|
||||
decoder auth.AccountDecoder
|
||||
mainStore string
|
||||
ibcStore string
|
||||
|
|
|
@ -73,10 +73,10 @@ func TransferRequestHandlerFn(cdc *wire.Codec, kb keys.Keybase, ctx context.Core
|
|||
w.Write([]byte(err.Error()))
|
||||
return
|
||||
}
|
||||
to := sdk.Address(bz)
|
||||
to := sdk.AccAddress(bz)
|
||||
|
||||
// build message
|
||||
packet := ibc.NewIBCPacket(sdk.Address(info.GetPubKey().Address()), to, m.Amount, m.SrcChainID, destChainID)
|
||||
packet := ibc.NewIBCPacket(sdk.AccAddress(info.GetPubKey().Address()), to, m.Amount, m.SrcChainID, destChainID)
|
||||
msg := ibc.IBCTransferMsg{packet}
|
||||
|
||||
// add gas to context
|
||||
|
|
|
@ -28,11 +28,11 @@ func defaultContext(key sdk.StoreKey) sdk.Context {
|
|||
return ctx
|
||||
}
|
||||
|
||||
func newAddress() crypto.Address {
|
||||
return crypto.GenPrivKeyEd25519().PubKey().Address()
|
||||
func newAddress() sdk.AccAddress {
|
||||
return sdk.AccAddress(crypto.GenPrivKeyEd25519().PubKey().Address())
|
||||
}
|
||||
|
||||
func getCoins(ck bank.Keeper, ctx sdk.Context, addr crypto.Address) (sdk.Coins, sdk.Error) {
|
||||
func getCoins(ck bank.Keeper, ctx sdk.Context, addr sdk.AccAddress) (sdk.Coins, sdk.Error) {
|
||||
zero := sdk.Coins(nil)
|
||||
coins, _, err := ck.AddCoins(ctx, addr, zero)
|
||||
return coins, err
|
||||
|
|
|
@ -22,14 +22,14 @@ func init() {
|
|||
// IBCPacket defines a piece of data that can be send between two separate
|
||||
// blockchains.
|
||||
type IBCPacket struct {
|
||||
SrcAddr sdk.Address
|
||||
DestAddr sdk.Address
|
||||
SrcAddr sdk.AccAddress
|
||||
DestAddr sdk.AccAddress
|
||||
Coins sdk.Coins
|
||||
SrcChain string
|
||||
DestChain string
|
||||
}
|
||||
|
||||
func NewIBCPacket(srcAddr sdk.Address, destAddr sdk.Address, coins sdk.Coins,
|
||||
func NewIBCPacket(srcAddr sdk.AccAddress, destAddr sdk.AccAddress, coins sdk.Coins,
|
||||
srcChain string, destChain string) IBCPacket {
|
||||
|
||||
return IBCPacket{
|
||||
|
@ -74,7 +74,7 @@ type IBCTransferMsg struct {
|
|||
func (msg IBCTransferMsg) Type() string { return "ibc" }
|
||||
|
||||
// x/bank/tx.go MsgSend.GetSigners()
|
||||
func (msg IBCTransferMsg) GetSigners() []sdk.Address { return []sdk.Address{msg.SrcAddr} }
|
||||
func (msg IBCTransferMsg) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{msg.SrcAddr} }
|
||||
|
||||
// get the sign bytes for ibc transfer message
|
||||
func (msg IBCTransferMsg) GetSignBytes() []byte {
|
||||
|
@ -94,7 +94,7 @@ func (msg IBCTransferMsg) ValidateBasic() sdk.Error {
|
|||
// to the destination chain.
|
||||
type IBCReceiveMsg struct {
|
||||
IBCPacket
|
||||
Relayer sdk.Address
|
||||
Relayer sdk.AccAddress
|
||||
Sequence int64
|
||||
}
|
||||
|
||||
|
@ -103,13 +103,13 @@ func (msg IBCReceiveMsg) Type() string { return "ibc" }
|
|||
func (msg IBCReceiveMsg) ValidateBasic() sdk.Error { return msg.IBCPacket.ValidateBasic() }
|
||||
|
||||
// x/bank/tx.go MsgSend.GetSigners()
|
||||
func (msg IBCReceiveMsg) GetSigners() []sdk.Address { return []sdk.Address{msg.Relayer} }
|
||||
func (msg IBCReceiveMsg) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{msg.Relayer} }
|
||||
|
||||
// get the sign bytes for ibc receive message
|
||||
func (msg IBCReceiveMsg) GetSignBytes() []byte {
|
||||
b, err := msgCdc.MarshalJSON(struct {
|
||||
IBCPacket json.RawMessage
|
||||
Relayer sdk.Address
|
||||
Relayer sdk.AccAddress
|
||||
Sequence int64
|
||||
}{
|
||||
IBCPacket: json.RawMessage(msg.IBCPacket.GetSignBytes()),
|
||||
|
|
|
@ -67,7 +67,7 @@ func TestIBCTransferMsgValidation(t *testing.T) {
|
|||
|
||||
func TestIBCReceiveMsg(t *testing.T) {
|
||||
packet := constructIBCPacket(true)
|
||||
msg := IBCReceiveMsg{packet, sdk.Address([]byte("relayer")), 0}
|
||||
msg := IBCReceiveMsg{packet, sdk.AccAddress([]byte("relayer")), 0}
|
||||
|
||||
require.Equal(t, msg.Type(), "ibc")
|
||||
}
|
||||
|
@ -80,8 +80,8 @@ func TestIBCReceiveMsgValidation(t *testing.T) {
|
|||
valid bool
|
||||
msg IBCReceiveMsg
|
||||
}{
|
||||
{true, IBCReceiveMsg{validPacket, sdk.Address([]byte("relayer")), 0}},
|
||||
{false, IBCReceiveMsg{invalidPacket, sdk.Address([]byte("relayer")), 0}},
|
||||
{true, IBCReceiveMsg{validPacket, sdk.AccAddress([]byte("relayer")), 0}},
|
||||
{false, IBCReceiveMsg{invalidPacket, sdk.AccAddress([]byte("relayer")), 0}},
|
||||
}
|
||||
|
||||
for i, tc := range cases {
|
||||
|
@ -98,8 +98,8 @@ func TestIBCReceiveMsgValidation(t *testing.T) {
|
|||
// Helpers
|
||||
|
||||
func constructIBCPacket(valid bool) IBCPacket {
|
||||
srcAddr := sdk.Address([]byte("source"))
|
||||
destAddr := sdk.Address([]byte("destination"))
|
||||
srcAddr := sdk.AccAddress([]byte("source"))
|
||||
destAddr := sdk.AccAddress([]byte("destination"))
|
||||
coins := sdk.Coins{sdk.NewCoin("atom", 10)}
|
||||
srcChain := "source-chain"
|
||||
destChain := "dest-chain"
|
||||
|
|
|
@ -15,7 +15,7 @@ import (
|
|||
|
||||
var (
|
||||
priv1 = crypto.GenPrivKeyEd25519()
|
||||
addr1 = sdk.Address(priv1.PubKey().Address())
|
||||
addr1 = sdk.AccAddress(priv1.PubKey().Address())
|
||||
coins = sdk.Coins{sdk.NewCoin("foocoin", 10)}
|
||||
)
|
||||
|
||||
|
@ -61,7 +61,7 @@ func getInitChainer(mapp *mock.App, keeper stake.Keeper) sdk.InitChainer {
|
|||
}
|
||||
|
||||
func checkValidator(t *testing.T, mapp *mock.App, keeper stake.Keeper,
|
||||
addr sdk.Address, expFound bool) stake.Validator {
|
||||
addr sdk.AccAddress, expFound bool) stake.Validator {
|
||||
ctxCheck := mapp.BaseApp.NewContext(true, abci.Header{})
|
||||
validator, found := keeper.GetValidator(ctxCheck, addr1)
|
||||
require.Equal(t, expFound, found)
|
||||
|
@ -69,7 +69,7 @@ func checkValidator(t *testing.T, mapp *mock.App, keeper stake.Keeper,
|
|||
}
|
||||
|
||||
func checkValidatorSigningInfo(t *testing.T, mapp *mock.App, keeper Keeper,
|
||||
addr sdk.Address, expFound bool) ValidatorSigningInfo {
|
||||
addr sdk.ValAddress, expFound bool) ValidatorSigningInfo {
|
||||
ctxCheck := mapp.BaseApp.NewContext(true, abci.Header{})
|
||||
signingInfo, found := keeper.getValidatorSigningInfo(ctxCheck, addr)
|
||||
require.Equal(t, expFound, found)
|
||||
|
@ -100,9 +100,10 @@ func TestSlashingMsgs(t *testing.T) {
|
|||
require.Equal(t, addr1, validator.Owner)
|
||||
require.Equal(t, sdk.Bonded, validator.Status())
|
||||
require.True(sdk.RatEq(t, sdk.NewRat(10), validator.PoolShares.Bonded()))
|
||||
unrevokeMsg := MsgUnrevoke{ValidatorAddr: sdk.Address(validator.PubKey.Address())}
|
||||
unrevokeMsg := MsgUnrevoke{ValidatorAddr: sdk.AccAddress(validator.PubKey.Address())}
|
||||
|
||||
checkValidatorSigningInfo(t, mapp, keeper, addr1, false)
|
||||
// no signing info yet
|
||||
checkValidatorSigningInfo(t, mapp, keeper, sdk.ValAddress(addr1), false)
|
||||
|
||||
// unrevoke should fail with unknown validator
|
||||
res := mock.CheckGenTx(t, mapp.BaseApp, []sdk.Msg{unrevokeMsg}, []int64{0}, []int64{1}, false, priv1)
|
||||
|
|
|
@ -25,7 +25,7 @@ func GetCmdQuerySigningInfo(storeName string, cdc *wire.Codec) *cobra.Command {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
key := slashing.GetValidatorSigningInfoKey(sdk.Address(pk.Address()))
|
||||
key := slashing.GetValidatorSigningInfoKey(sdk.ValAddress(pk.Address()))
|
||||
ctx := context.NewCoreContextFromViper()
|
||||
res, err := ctx.QueryStore(key, storeName)
|
||||
if err != nil {
|
||||
|
|
|
@ -30,7 +30,7 @@ func handleMsgUnrevoke(ctx sdk.Context, msg MsgUnrevoke, k Keeper) sdk.Result {
|
|||
return ErrValidatorNotRevoked(k.codespace).Result()
|
||||
}
|
||||
|
||||
addr := sdk.Address(validator.GetPubKey().Address())
|
||||
addr := sdk.ValAddress(validator.GetPubKey().Address())
|
||||
|
||||
// Signing info must exist
|
||||
info, found := k.getValidatorSigningInfo(ctx, addr)
|
||||
|
|
|
@ -34,7 +34,7 @@ func (k Keeper) handleDoubleSign(ctx sdk.Context, pubkey crypto.PubKey, infracti
|
|||
logger := ctx.Logger().With("module", "x/slashing")
|
||||
time := ctx.BlockHeader().Time
|
||||
age := time - timestamp
|
||||
address := sdk.Address(pubkey.Address())
|
||||
address := sdk.ValAddress(pubkey.Address())
|
||||
|
||||
// Double sign too old
|
||||
if age > MaxEvidenceAge {
|
||||
|
@ -64,7 +64,7 @@ func (k Keeper) handleDoubleSign(ctx sdk.Context, pubkey crypto.PubKey, infracti
|
|||
func (k Keeper) handleValidatorSignature(ctx sdk.Context, pubkey crypto.PubKey, power int64, signed bool) {
|
||||
logger := ctx.Logger().With("module", "x/slashing")
|
||||
height := ctx.BlockHeight()
|
||||
address := sdk.Address(pubkey.Address())
|
||||
address := sdk.ValAddress(pubkey.Address())
|
||||
|
||||
// Local index, so counts blocks validator *should* have signed
|
||||
// Will use the 0-value default signing info if not present, except for start height
|
||||
|
|
|
@ -68,7 +68,7 @@ func TestHandleAbsentValidator(t *testing.T) {
|
|||
stake.EndBlocker(ctx, sk)
|
||||
require.Equal(t, ck.GetCoins(ctx, addr), sdk.Coins{{sk.GetParams(ctx).BondDenom, initCoins.Sub(amt)}})
|
||||
require.True(t, sdk.NewRatFromInt(amt).Equal(sk.Validator(ctx, addr).GetPower()))
|
||||
info, found := keeper.getValidatorSigningInfo(ctx, val.Address())
|
||||
info, found := keeper.getValidatorSigningInfo(ctx, sdk.ValAddress(val.Address()))
|
||||
require.False(t, found)
|
||||
require.Equal(t, int64(0), info.StartHeight)
|
||||
require.Equal(t, int64(0), info.IndexOffset)
|
||||
|
@ -81,7 +81,7 @@ func TestHandleAbsentValidator(t *testing.T) {
|
|||
ctx = ctx.WithBlockHeight(height)
|
||||
keeper.handleValidatorSignature(ctx, val, amtInt, true)
|
||||
}
|
||||
info, found = keeper.getValidatorSigningInfo(ctx, val.Address())
|
||||
info, found = keeper.getValidatorSigningInfo(ctx, sdk.ValAddress(val.Address()))
|
||||
require.True(t, found)
|
||||
require.Equal(t, int64(0), info.StartHeight)
|
||||
require.Equal(t, SignedBlocksWindow, info.SignedBlocksCounter)
|
||||
|
@ -91,7 +91,7 @@ func TestHandleAbsentValidator(t *testing.T) {
|
|||
ctx = ctx.WithBlockHeight(height)
|
||||
keeper.handleValidatorSignature(ctx, val, amtInt, false)
|
||||
}
|
||||
info, found = keeper.getValidatorSigningInfo(ctx, val.Address())
|
||||
info, found = keeper.getValidatorSigningInfo(ctx, sdk.ValAddress(val.Address()))
|
||||
require.True(t, found)
|
||||
require.Equal(t, int64(0), info.StartHeight)
|
||||
require.Equal(t, SignedBlocksWindow-MinSignedPerWindow, info.SignedBlocksCounter)
|
||||
|
@ -105,7 +105,7 @@ func TestHandleAbsentValidator(t *testing.T) {
|
|||
// 501st block missed
|
||||
ctx = ctx.WithBlockHeight(height)
|
||||
keeper.handleValidatorSignature(ctx, val, amtInt, false)
|
||||
info, found = keeper.getValidatorSigningInfo(ctx, val.Address())
|
||||
info, found = keeper.getValidatorSigningInfo(ctx, sdk.ValAddress(val.Address()))
|
||||
require.True(t, found)
|
||||
require.Equal(t, int64(0), info.StartHeight)
|
||||
require.Equal(t, SignedBlocksWindow-MinSignedPerWindow-1, info.SignedBlocksCounter)
|
||||
|
@ -132,7 +132,7 @@ func TestHandleAbsentValidator(t *testing.T) {
|
|||
require.Equal(t, int64(amtInt-1), pool.BondedTokens)
|
||||
|
||||
// validator start height should have been changed
|
||||
info, found = keeper.getValidatorSigningInfo(ctx, val.Address())
|
||||
info, found = keeper.getValidatorSigningInfo(ctx, sdk.ValAddress(val.Address()))
|
||||
require.True(t, found)
|
||||
require.Equal(t, height, info.StartHeight)
|
||||
require.Equal(t, SignedBlocksWindow-MinSignedPerWindow-1, info.SignedBlocksCounter)
|
||||
|
@ -183,7 +183,7 @@ func TestHandleNewValidator(t *testing.T) {
|
|||
ctx = ctx.WithBlockHeight(SignedBlocksWindow + 2)
|
||||
keeper.handleValidatorSignature(ctx, val, 100, false)
|
||||
|
||||
info, found := keeper.getValidatorSigningInfo(ctx, val.Address())
|
||||
info, found := keeper.getValidatorSigningInfo(ctx, sdk.ValAddress(val.Address()))
|
||||
require.True(t, found)
|
||||
require.Equal(t, int64(SignedBlocksWindow+1), info.StartHeight)
|
||||
require.Equal(t, int64(2), info.IndexOffset)
|
||||
|
|
|
@ -15,26 +15,22 @@ var _ sdk.Msg = &MsgUnrevoke{}
|
|||
|
||||
// MsgUnrevoke - struct for unrevoking revoked validator
|
||||
type MsgUnrevoke struct {
|
||||
ValidatorAddr sdk.Address `json:"address"` // address of the validator owner
|
||||
ValidatorAddr sdk.AccAddress `json:"address"` // address of the validator owner
|
||||
}
|
||||
|
||||
func NewMsgUnrevoke(validatorAddr sdk.Address) MsgUnrevoke {
|
||||
func NewMsgUnrevoke(validatorAddr sdk.AccAddress) MsgUnrevoke {
|
||||
return MsgUnrevoke{
|
||||
ValidatorAddr: validatorAddr,
|
||||
}
|
||||
}
|
||||
|
||||
//nolint
|
||||
func (msg MsgUnrevoke) Type() string { return MsgType }
|
||||
func (msg MsgUnrevoke) GetSigners() []sdk.Address { return []sdk.Address{msg.ValidatorAddr} }
|
||||
func (msg MsgUnrevoke) Type() string { return MsgType }
|
||||
func (msg MsgUnrevoke) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{msg.ValidatorAddr} }
|
||||
|
||||
// get the bytes for the message signer to sign on
|
||||
func (msg MsgUnrevoke) GetSignBytes() []byte {
|
||||
b, err := cdc.MarshalJSON(struct {
|
||||
ValidatorAddr string `json:"address"`
|
||||
}{
|
||||
ValidatorAddr: sdk.MustBech32ifyVal(msg.ValidatorAddr),
|
||||
})
|
||||
b, err := cdc.MarshalJSON(msg)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
)
|
||||
|
||||
func TestMsgUnrevokeGetSignBytes(t *testing.T) {
|
||||
addr := sdk.Address("abcd")
|
||||
addr := sdk.AccAddress("abcd")
|
||||
msg := NewMsgUnrevoke(addr)
|
||||
bytes := msg.GetSignBytes()
|
||||
require.Equal(t, string(bytes), `{"address":"cosmosvaladdr1v93xxeqamr0mv"}`)
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
)
|
||||
|
||||
// Stored by *validator* address (not owner address)
|
||||
func (k Keeper) getValidatorSigningInfo(ctx sdk.Context, address sdk.Address) (info ValidatorSigningInfo, found bool) {
|
||||
func (k Keeper) getValidatorSigningInfo(ctx sdk.Context, address sdk.ValAddress) (info ValidatorSigningInfo, found bool) {
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
bz := store.Get(GetValidatorSigningInfoKey(address))
|
||||
if bz == nil {
|
||||
|
@ -21,14 +21,14 @@ func (k Keeper) getValidatorSigningInfo(ctx sdk.Context, address sdk.Address) (i
|
|||
}
|
||||
|
||||
// Stored by *validator* address (not owner address)
|
||||
func (k Keeper) setValidatorSigningInfo(ctx sdk.Context, address sdk.Address, info ValidatorSigningInfo) {
|
||||
func (k Keeper) setValidatorSigningInfo(ctx sdk.Context, address sdk.ValAddress, info ValidatorSigningInfo) {
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
bz := k.cdc.MustMarshalBinary(info)
|
||||
store.Set(GetValidatorSigningInfoKey(address), bz)
|
||||
}
|
||||
|
||||
// Stored by *validator* address (not owner address)
|
||||
func (k Keeper) getValidatorSigningBitArray(ctx sdk.Context, address sdk.Address, index int64) (signed bool) {
|
||||
func (k Keeper) getValidatorSigningBitArray(ctx sdk.Context, address sdk.ValAddress, index int64) (signed bool) {
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
bz := store.Get(GetValidatorSigningBitArrayKey(address, index))
|
||||
if bz == nil {
|
||||
|
@ -41,7 +41,7 @@ func (k Keeper) getValidatorSigningBitArray(ctx sdk.Context, address sdk.Address
|
|||
}
|
||||
|
||||
// Stored by *validator* address (not owner address)
|
||||
func (k Keeper) setValidatorSigningBitArray(ctx sdk.Context, address sdk.Address, index int64, signed bool) {
|
||||
func (k Keeper) setValidatorSigningBitArray(ctx sdk.Context, address sdk.ValAddress, index int64, signed bool) {
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
bz := k.cdc.MustMarshalBinary(signed)
|
||||
store.Set(GetValidatorSigningBitArrayKey(address, index), bz)
|
||||
|
@ -72,12 +72,12 @@ func (i ValidatorSigningInfo) HumanReadableString() string {
|
|||
}
|
||||
|
||||
// Stored by *validator* address (not owner address)
|
||||
func GetValidatorSigningInfoKey(v sdk.Address) []byte {
|
||||
func GetValidatorSigningInfoKey(v sdk.ValAddress) []byte {
|
||||
return append([]byte{0x01}, v.Bytes()...)
|
||||
}
|
||||
|
||||
// Stored by *validator* address (not owner address)
|
||||
func GetValidatorSigningBitArrayKey(v sdk.Address, i int64) []byte {
|
||||
func GetValidatorSigningBitArrayKey(v sdk.ValAddress, i int64) []byte {
|
||||
b := make([]byte, 8)
|
||||
binary.LittleEndian.PutUint64(b, uint64(i))
|
||||
return append([]byte{0x02}, append(v.Bytes(), b...)...)
|
||||
|
|
|
@ -4,11 +4,13 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
)
|
||||
|
||||
func TestGetSetValidatorSigningInfo(t *testing.T) {
|
||||
ctx, _, _, keeper := createTestInput(t)
|
||||
info, found := keeper.getValidatorSigningInfo(ctx, addrs[0])
|
||||
info, found := keeper.getValidatorSigningInfo(ctx, sdk.ValAddress(addrs[0]))
|
||||
require.False(t, found)
|
||||
newInfo := ValidatorSigningInfo{
|
||||
StartHeight: int64(4),
|
||||
|
@ -16,8 +18,8 @@ func TestGetSetValidatorSigningInfo(t *testing.T) {
|
|||
JailedUntil: int64(2),
|
||||
SignedBlocksCounter: int64(10),
|
||||
}
|
||||
keeper.setValidatorSigningInfo(ctx, addrs[0], newInfo)
|
||||
info, found = keeper.getValidatorSigningInfo(ctx, addrs[0])
|
||||
keeper.setValidatorSigningInfo(ctx, sdk.ValAddress(addrs[0]), newInfo)
|
||||
info, found = keeper.getValidatorSigningInfo(ctx, sdk.ValAddress(addrs[0]))
|
||||
require.True(t, found)
|
||||
require.Equal(t, info.StartHeight, int64(4))
|
||||
require.Equal(t, info.IndexOffset, int64(3))
|
||||
|
@ -27,9 +29,9 @@ func TestGetSetValidatorSigningInfo(t *testing.T) {
|
|||
|
||||
func TestGetSetValidatorSigningBitArray(t *testing.T) {
|
||||
ctx, _, _, keeper := createTestInput(t)
|
||||
signed := keeper.getValidatorSigningBitArray(ctx, addrs[0], 0)
|
||||
signed := keeper.getValidatorSigningBitArray(ctx, sdk.ValAddress(addrs[0]), 0)
|
||||
require.False(t, signed) // treat empty key as unsigned
|
||||
keeper.setValidatorSigningBitArray(ctx, addrs[0], 0, true)
|
||||
signed = keeper.getValidatorSigningBitArray(ctx, addrs[0], 0)
|
||||
keeper.setValidatorSigningBitArray(ctx, sdk.ValAddress(addrs[0]), 0, true)
|
||||
signed = keeper.getValidatorSigningBitArray(ctx, sdk.ValAddress(addrs[0]), 0)
|
||||
require.True(t, signed) // now should be signed
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ var (
|
|||
newPubKey("0B485CFC0EECC619440448436F8FC9DF40566F2369E72400281454CB552AFB51"),
|
||||
newPubKey("0B485CFC0EECC619440448436F8FC9DF40566F2369E72400281454CB552AFB52"),
|
||||
}
|
||||
addrs = []sdk.Address{
|
||||
addrs = []sdk.AccAddress{
|
||||
pks[0].Address(),
|
||||
pks[1].Address(),
|
||||
pks[2].Address(),
|
||||
|
@ -85,12 +85,12 @@ func newPubKey(pk string) (res crypto.PubKey) {
|
|||
return pkEd
|
||||
}
|
||||
|
||||
func testAddr(addr string) sdk.Address {
|
||||
func testAddr(addr string) sdk.AccAddress {
|
||||
res := []byte(addr)
|
||||
return res
|
||||
}
|
||||
|
||||
func newTestMsgCreateValidator(address sdk.Address, pubKey crypto.PubKey, amt sdk.Int) stake.MsgCreateValidator {
|
||||
func newTestMsgCreateValidator(address sdk.AccAddress, pubKey crypto.PubKey, amt sdk.Int) stake.MsgCreateValidator {
|
||||
return stake.MsgCreateValidator{
|
||||
Description: stake.Description{},
|
||||
ValidatorAddr: address,
|
||||
|
|
|
@ -37,7 +37,7 @@ func TestBeginBlocker(t *testing.T) {
|
|||
}
|
||||
BeginBlocker(ctx, req, keeper)
|
||||
|
||||
info, found := keeper.getValidatorSigningInfo(ctx, pk.Address())
|
||||
info, found := keeper.getValidatorSigningInfo(ctx, sdk.ValAddress(pk.Address()))
|
||||
require.True(t, found)
|
||||
require.Equal(t, ctx.BlockHeight(), info.StartHeight)
|
||||
require.Equal(t, int64(1), info.IndexOffset)
|
||||
|
|
|
@ -14,23 +14,17 @@ import (
|
|||
|
||||
var (
|
||||
priv1 = crypto.GenPrivKeyEd25519()
|
||||
addr1 = sdk.Address(priv1.PubKey().Address())
|
||||
addr1 = sdk.AccAddress(priv1.PubKey().Address())
|
||||
priv2 = crypto.GenPrivKeyEd25519()
|
||||
addr2 = sdk.Address(priv2.PubKey().Address())
|
||||
addr3 = sdk.Address(crypto.GenPrivKeyEd25519().PubKey().Address())
|
||||
addr2 = sdk.AccAddress(priv2.PubKey().Address())
|
||||
addr3 = sdk.AccAddress(crypto.GenPrivKeyEd25519().PubKey().Address())
|
||||
priv4 = crypto.GenPrivKeyEd25519()
|
||||
<<<<<<< HEAD
|
||||
addr4 = priv4.PubKey().Address()
|
||||
coins = sdk.NewCoin("foocoin", 10)
|
||||
fee = auth.StdFee{sdk.Coins{sdk.NewCoin("foocoin", 0)}, 100000}
|
||||
=======
|
||||
addr4 = sdk.Address(priv4.PubKey().Address())
|
||||
addr4 = sdk.AccAddress(priv4.PubKey().Address())
|
||||
coins = sdk.Coins{{"foocoin", sdk.NewInt(10)}}
|
||||
fee = auth.StdFee{
|
||||
sdk.Coins{{"foocoin", sdk.NewInt(0)}},
|
||||
100000,
|
||||
}
|
||||
>>>>>>> asdf
|
||||
)
|
||||
|
||||
// getMockApp returns an initialized mock application for this module.
|
||||
|
@ -77,10 +71,11 @@ func getInitChainer(mapp *mock.App, keeper Keeper) sdk.InitChainer {
|
|||
}
|
||||
}
|
||||
|
||||
func checkValidator(
|
||||
t *testing.T, mapp *mock.App, keeper Keeper,
|
||||
addr sdk.Address, expFound bool,
|
||||
) Validator {
|
||||
//__________________________________________________________________________________________
|
||||
|
||||
func checkValidator(t *testing.T, mapp *mock.App, keeper Keeper,
|
||||
addr sdk.AccAddress, expFound bool) Validator {
|
||||
|
||||
ctxCheck := mapp.BaseApp.NewContext(true, abci.Header{})
|
||||
validator, found := keeper.GetValidator(ctxCheck, addr1)
|
||||
|
||||
|
@ -88,10 +83,12 @@ func checkValidator(
|
|||
return validator
|
||||
}
|
||||
|
||||
|
||||
func checkDelegation(
|
||||
t *testing.T, mapp *mock.App, keeper Keeper, delegatorAddr,
|
||||
validatorAddr sdk.Address, expFound bool, expShares sdk.Rat,
|
||||
validatorAddr sdk.AccAddress, expFound bool, expShares sdk.Rat,
|
||||
) {
|
||||
|
||||
ctxCheck := mapp.BaseApp.NewContext(true, abci.Header{})
|
||||
delegation, found := keeper.GetDelegation(ctxCheck, delegatorAddr, validatorAddr)
|
||||
if expFound {
|
||||
|
|
|
@ -209,7 +209,7 @@ func GetCmdQueryUnbondingDelegation(storeName string, cdc *wire.Codec) *cobra.Co
|
|||
return err
|
||||
}
|
||||
|
||||
delAddr, err := sdk.GetValAddressHex(viper.GetString(FlagAddressDelegator))
|
||||
delAddr, err := sdk.GetAccAddressBech32(viper.GetString(FlagAddressDelegator))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -302,7 +302,7 @@ func GetCmdQueryRedelegation(storeName string, cdc *wire.Codec) *cobra.Command {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
delAddr, err := sdk.GetValAddressHex(viper.GetString(FlagAddressDelegator))
|
||||
delAddr, err := sdk.GetAccAddressBech32(viper.GetString(FlagAddressDelegator))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -209,7 +209,7 @@ func GetCmdBeginRedelegate(storeName string, cdc *wire.Codec) *cobra.Command {
|
|||
}
|
||||
|
||||
func getShares(storeName string, cdc *wire.Codec, sharesAmountStr, sharesPercentStr string,
|
||||
delegatorAddr, validatorAddr sdk.Address) (sharesAmount sdk.Rat, err error) {
|
||||
delegatorAddr, validatorAddr sdk.AccAddress) (sharesAmount sdk.Rat, err error) {
|
||||
|
||||
switch {
|
||||
case sharesAmountStr != "" && sharesPercentStr != "":
|
||||
|
|
|
@ -55,7 +55,7 @@ func delegationHandlerFn(ctx context.CoreContext, cdc *wire.Codec) http.HandlerF
|
|||
return
|
||||
}
|
||||
|
||||
validatorAddr, err := sdk.GetValAddressBech32(bech32validator)
|
||||
validatorAddr, err := sdk.GetAccAddressBech32(bech32validator)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write([]byte(err.Error()))
|
||||
|
@ -111,7 +111,7 @@ func ubdHandlerFn(ctx context.CoreContext, cdc *wire.Codec) http.HandlerFunc {
|
|||
return
|
||||
}
|
||||
|
||||
validatorAddr, err := sdk.GetValAddressBech32(bech32validator)
|
||||
validatorAddr, err := sdk.GetAccAddressBech32(bech32validator)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write([]byte(err.Error()))
|
||||
|
@ -168,14 +168,14 @@ func redHandlerFn(ctx context.CoreContext, cdc *wire.Codec) http.HandlerFunc {
|
|||
return
|
||||
}
|
||||
|
||||
validatorSrcAddr, err := sdk.GetValAddressBech32(bech32validatorSrc)
|
||||
validatorSrcAddr, err := sdk.GetAccAddressBech32(bech32validatorSrc)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write([]byte(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
validatorDstAddr, err := sdk.GetValAddressBech32(bech32validatorDst)
|
||||
validatorDstAddr, err := sdk.GetAccAddressBech32(bech32validatorDst)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write([]byte(err.Error()))
|
||||
|
@ -217,9 +217,9 @@ func redHandlerFn(ctx context.CoreContext, cdc *wire.Codec) http.HandlerFunc {
|
|||
|
||||
// TODO move exist next to validator struct for maintainability
|
||||
type StakeValidatorOutput struct {
|
||||
Owner string `json:"owner"` // in bech32
|
||||
PubKey string `json:"pub_key"` // in bech32
|
||||
Revoked bool `json:"revoked"` // has the validator been revoked from bonded status?
|
||||
Owner sdk.AccAddress `json:"owner"` // in bech32
|
||||
PubKey string `json:"pub_key"` // in bech32
|
||||
Revoked bool `json:"revoked"` // has the validator been revoked from bonded status?
|
||||
|
||||
PoolShares stake.PoolShares `json:"pool_shares"` // total shares for tokens held in the pool
|
||||
DelegatorShares sdk.Rat `json:"delegator_shares"` // total shares issued to a validator's delegators
|
||||
|
@ -231,7 +231,7 @@ type StakeValidatorOutput struct {
|
|||
|
||||
Commission sdk.Rat `json:"commission"` // XXX the commission rate of fees charged to any delegators
|
||||
CommissionMax sdk.Rat `json:"commission_max"` // XXX maximum commission rate which this validator can ever charge
|
||||
CommissionChangeRate sdk.Rat `json:"commission_change_rate"` // XXX maximum daily increase of the validator commission
|
||||
CommissionChangeRate sdk.Rat `json:"commisrsion_change_rate"` // XXX maximum daily increase of the validator commission
|
||||
CommissionChangeToday sdk.Rat `json:"commission_change_today"` // XXX commission rate change today, reset each day (UTC time)
|
||||
|
||||
// fee related
|
||||
|
@ -239,17 +239,13 @@ type StakeValidatorOutput struct {
|
|||
}
|
||||
|
||||
func bech32StakeValidatorOutput(validator stake.Validator) (StakeValidatorOutput, error) {
|
||||
bechOwner, err := sdk.Bech32ifyVal(validator.Owner)
|
||||
if err != nil {
|
||||
return StakeValidatorOutput{}, err
|
||||
}
|
||||
bechValPubkey, err := sdk.Bech32ifyValPub(validator.PubKey)
|
||||
if err != nil {
|
||||
return StakeValidatorOutput{}, err
|
||||
}
|
||||
|
||||
return StakeValidatorOutput{
|
||||
Owner: bechOwner,
|
||||
Owner: validator.Owner,
|
||||
PubKey: bechValPubkey,
|
||||
Revoked: validator.Revoked,
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ func editDelegationsRequestHandlerFn(cdc *wire.Codec, kb keys.Keybase, ctx conte
|
|||
w.Write([]byte(fmt.Sprintf("Couldn't decode delegator. Error: %s", err.Error())))
|
||||
return
|
||||
}
|
||||
validatorAddr, err := sdk.GetValAddressBech32(msg.ValidatorAddr)
|
||||
validatorAddr, err := sdk.GetAccAddressBech32(msg.ValidatorAddr)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
w.Write([]byte(fmt.Sprintf("Couldn't decode validator. Error: %s", err.Error())))
|
||||
|
@ -134,13 +134,13 @@ func editDelegationsRequestHandlerFn(cdc *wire.Codec, kb keys.Keybase, ctx conte
|
|||
w.Write([]byte("Must use own delegator address"))
|
||||
return
|
||||
}
|
||||
validatorSrcAddr, err := sdk.GetValAddressBech32(msg.ValidatorSrcAddr)
|
||||
validatorSrcAddr, err := sdk.GetAccAddressBech32(msg.ValidatorSrcAddr)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
w.Write([]byte(fmt.Sprintf("Couldn't decode validator. Error: %s", err.Error())))
|
||||
return
|
||||
}
|
||||
validatorDstAddr, err := sdk.GetValAddressBech32(msg.ValidatorDstAddr)
|
||||
validatorDstAddr, err := sdk.GetAccAddressBech32(msg.ValidatorDstAddr)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
w.Write([]byte(fmt.Sprintf("Couldn't decode validator. Error: %s", err.Error())))
|
||||
|
@ -168,13 +168,13 @@ func editDelegationsRequestHandlerFn(cdc *wire.Codec, kb keys.Keybase, ctx conte
|
|||
w.Write([]byte(fmt.Sprintf("Couldn't decode delegator. Error: %s", err.Error())))
|
||||
return
|
||||
}
|
||||
validatorSrcAddr, err := sdk.GetValAddressBech32(msg.ValidatorSrcAddr)
|
||||
validatorSrcAddr, err := sdk.GetAccAddressBech32(msg.ValidatorSrcAddr)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
w.Write([]byte(fmt.Sprintf("Couldn't decode validator. Error: %s", err.Error())))
|
||||
return
|
||||
}
|
||||
validatorDstAddr, err := sdk.GetValAddressBech32(msg.ValidatorDstAddr)
|
||||
validatorDstAddr, err := sdk.GetAccAddressBech32(msg.ValidatorDstAddr)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
w.Write([]byte(fmt.Sprintf("Couldn't decode validator. Error: %s", err.Error())))
|
||||
|
@ -205,7 +205,7 @@ func editDelegationsRequestHandlerFn(cdc *wire.Codec, kb keys.Keybase, ctx conte
|
|||
w.Write([]byte("Must use own delegator address"))
|
||||
return
|
||||
}
|
||||
validatorAddr, err := sdk.GetValAddressBech32(msg.ValidatorAddr)
|
||||
validatorAddr, err := sdk.GetAccAddressBech32(msg.ValidatorAddr)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
w.Write([]byte(fmt.Sprintf("Couldn't decode validator. Error: %s", err.Error())))
|
||||
|
@ -232,7 +232,7 @@ func editDelegationsRequestHandlerFn(cdc *wire.Codec, kb keys.Keybase, ctx conte
|
|||
w.Write([]byte(fmt.Sprintf("Couldn't decode delegator. Error: %s", err.Error())))
|
||||
return
|
||||
}
|
||||
validatorAddr, err := sdk.GetValAddressBech32(msg.ValidatorAddr)
|
||||
validatorAddr, err := sdk.GetAccAddressBech32(msg.ValidatorAddr)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
w.Write([]byte(fmt.Sprintf("Couldn't decode validator. Error: %s", err.Error())))
|
||||
|
|
|
@ -14,7 +14,7 @@ import (
|
|||
|
||||
//______________________________________________________________________
|
||||
|
||||
func newTestMsgCreateValidator(address sdk.Address, pubKey crypto.PubKey, amt int64) MsgCreateValidator {
|
||||
func newTestMsgCreateValidator(address sdk.AccAddress, pubKey crypto.PubKey, amt int64) MsgCreateValidator {
|
||||
return MsgCreateValidator{
|
||||
Description: Description{},
|
||||
ValidatorAddr: address,
|
||||
|
@ -23,7 +23,7 @@ func newTestMsgCreateValidator(address sdk.Address, pubKey crypto.PubKey, amt in
|
|||
}
|
||||
}
|
||||
|
||||
func newTestMsgDelegate(delegatorAddr, validatorAddr sdk.Address, amt int64) MsgDelegate {
|
||||
func newTestMsgDelegate(delegatorAddr, validatorAddr sdk.AccAddress, amt int64) MsgDelegate {
|
||||
return MsgDelegate{
|
||||
DelegatorAddr: delegatorAddr,
|
||||
ValidatorAddr: validatorAddr,
|
||||
|
@ -307,7 +307,7 @@ func TestMultipleMsgCreateValidator(t *testing.T) {
|
|||
ctx, accMapper, keeper := keep.CreateTestInput(t, false, initBond)
|
||||
params := setInstantUnbondPeriod(keeper, ctx)
|
||||
|
||||
validatorAddrs := []sdk.Address{keep.Addrs[0], keep.Addrs[1], keep.Addrs[2]}
|
||||
validatorAddrs := []sdk.AccAddress{keep.Addrs[0], keep.Addrs[1], keep.Addrs[2]}
|
||||
|
||||
// bond them all
|
||||
for i, validatorAddr := range validatorAddrs {
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
|
||||
// load a delegation
|
||||
func (k Keeper) GetDelegation(ctx sdk.Context,
|
||||
delegatorAddr, validatorAddr sdk.Address) (delegation types.Delegation, found bool) {
|
||||
delegatorAddr, validatorAddr sdk.AccAddress) (delegation types.Delegation, found bool) {
|
||||
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
key := GetDelegationKey(delegatorAddr, validatorAddr)
|
||||
|
@ -41,7 +41,7 @@ func (k Keeper) GetAllDelegations(ctx sdk.Context) (delegations []types.Delegati
|
|||
}
|
||||
|
||||
// load all delegations for a delegator
|
||||
func (k Keeper) GetDelegations(ctx sdk.Context, delegator sdk.Address,
|
||||
func (k Keeper) GetDelegations(ctx sdk.Context, delegator sdk.AccAddress,
|
||||
maxRetrieve int16) (delegations []types.Delegation) {
|
||||
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
|
@ -79,7 +79,7 @@ func (k Keeper) RemoveDelegation(ctx sdk.Context, delegation types.Delegation) {
|
|||
|
||||
// load a unbonding delegation
|
||||
func (k Keeper) GetUnbondingDelegation(ctx sdk.Context,
|
||||
DelegatorAddr, ValidatorAddr sdk.Address) (ubd types.UnbondingDelegation, found bool) {
|
||||
DelegatorAddr, ValidatorAddr sdk.AccAddress) (ubd types.UnbondingDelegation, found bool) {
|
||||
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
key := GetUBDKey(DelegatorAddr, ValidatorAddr)
|
||||
|
@ -93,7 +93,11 @@ func (k Keeper) GetUnbondingDelegation(ctx sdk.Context,
|
|||
}
|
||||
|
||||
// load all unbonding delegations from a particular validator
|
||||
<<<<<<< HEAD
|
||||
func (k Keeper) GetUnbondingDelegationsFromValidator(ctx sdk.Context, valAddr sdk.Address) (ubds []types.UnbondingDelegation) {
|
||||
=======
|
||||
func (k Keeper) GetUnbondingDelegationsFromValidator(ctx sdk.Context, valAddr sdk.AccAddress) (unbondingDelegations []types.UnbondingDelegation) {
|
||||
>>>>>>> asdf
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
iterator := sdk.KVStorePrefixIterator(store, GetUBDsByValIndexKey(valAddr))
|
||||
for {
|
||||
|
@ -131,7 +135,7 @@ func (k Keeper) RemoveUnbondingDelegation(ctx sdk.Context, ubd types.UnbondingDe
|
|||
|
||||
// load a redelegation
|
||||
func (k Keeper) GetRedelegation(ctx sdk.Context,
|
||||
DelegatorAddr, ValidatorSrcAddr, ValidatorDstAddr sdk.Address) (red types.Redelegation, found bool) {
|
||||
DelegatorAddr, ValidatorSrcAddr, ValidatorDstAddr sdk.AccAddress) (red types.Redelegation, found bool) {
|
||||
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
key := GetREDKey(DelegatorAddr, ValidatorSrcAddr, ValidatorDstAddr)
|
||||
|
@ -145,7 +149,11 @@ func (k Keeper) GetRedelegation(ctx sdk.Context,
|
|||
}
|
||||
|
||||
// load all redelegations from a particular validator
|
||||
<<<<<<< HEAD
|
||||
func (k Keeper) GetRedelegationsFromValidator(ctx sdk.Context, valAddr sdk.Address) (reds []types.Redelegation) {
|
||||
=======
|
||||
func (k Keeper) GetRedelegationsFromValidator(ctx sdk.Context, valAddr sdk.AccAddress) (redelegations []types.Redelegation) {
|
||||
>>>>>>> asdf
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
iterator := sdk.KVStorePrefixIterator(store, GetREDsFromValSrcIndexKey(valAddr))
|
||||
for {
|
||||
|
@ -164,7 +172,7 @@ func (k Keeper) GetRedelegationsFromValidator(ctx sdk.Context, valAddr sdk.Addre
|
|||
|
||||
// has a redelegation
|
||||
func (k Keeper) HasReceivingRedelegation(ctx sdk.Context,
|
||||
DelegatorAddr, ValidatorDstAddr sdk.Address) bool {
|
||||
DelegatorAddr, ValidatorDstAddr sdk.AccAddress) bool {
|
||||
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
prefix := GetREDsByDelToValDstIndexKey(DelegatorAddr, ValidatorDstAddr)
|
||||
|
@ -201,7 +209,7 @@ func (k Keeper) RemoveRedelegation(ctx sdk.Context, red types.Redelegation) {
|
|||
//_____________________________________________________________________________________
|
||||
|
||||
// Perform a delegation, set/update everything necessary within the store
|
||||
func (k Keeper) Delegate(ctx sdk.Context, delegatorAddr sdk.Address, bondAmt sdk.Coin,
|
||||
func (k Keeper) Delegate(ctx sdk.Context, delegatorAddr sdk.AccAddress, bondAmt sdk.Coin,
|
||||
validator types.Validator) (newShares sdk.Rat, err sdk.Error) {
|
||||
|
||||
// Get or create the delegator delegation
|
||||
|
@ -234,7 +242,7 @@ func (k Keeper) Delegate(ctx sdk.Context, delegatorAddr sdk.Address, bondAmt sdk
|
|||
}
|
||||
|
||||
// unbond the the delegation return
|
||||
func (k Keeper) unbond(ctx sdk.Context, delegatorAddr, validatorAddr sdk.Address,
|
||||
func (k Keeper) unbond(ctx sdk.Context, delegatorAddr, validatorAddr sdk.AccAddress,
|
||||
shares sdk.Rat) (amount int64, err sdk.Error) {
|
||||
|
||||
// check if delegation has any shares in it unbond
|
||||
|
@ -293,7 +301,7 @@ func (k Keeper) unbond(ctx sdk.Context, delegatorAddr, validatorAddr sdk.Address
|
|||
//______________________________________________________________________________________________________
|
||||
|
||||
// complete unbonding an unbonding record
|
||||
func (k Keeper) BeginUnbonding(ctx sdk.Context, delegatorAddr, validatorAddr sdk.Address, sharesAmount sdk.Rat) sdk.Error {
|
||||
func (k Keeper) BeginUnbonding(ctx sdk.Context, delegatorAddr, validatorAddr sdk.AccAddress, sharesAmount sdk.Rat) sdk.Error {
|
||||
|
||||
returnAmount, err := k.unbond(ctx, delegatorAddr, validatorAddr, sharesAmount)
|
||||
if err != nil {
|
||||
|
@ -317,7 +325,7 @@ func (k Keeper) BeginUnbonding(ctx sdk.Context, delegatorAddr, validatorAddr sdk
|
|||
}
|
||||
|
||||
// complete unbonding an unbonding record
|
||||
func (k Keeper) CompleteUnbonding(ctx sdk.Context, delegatorAddr, validatorAddr sdk.Address) sdk.Error {
|
||||
func (k Keeper) CompleteUnbonding(ctx sdk.Context, delegatorAddr, validatorAddr sdk.AccAddress) sdk.Error {
|
||||
|
||||
ubd, found := k.GetUnbondingDelegation(ctx, delegatorAddr, validatorAddr)
|
||||
if !found {
|
||||
|
@ -340,7 +348,7 @@ func (k Keeper) CompleteUnbonding(ctx sdk.Context, delegatorAddr, validatorAddr
|
|||
|
||||
// complete unbonding an unbonding record
|
||||
func (k Keeper) BeginRedelegation(ctx sdk.Context, delegatorAddr, validatorSrcAddr,
|
||||
validatorDstAddr sdk.Address, sharesAmount sdk.Rat) sdk.Error {
|
||||
validatorDstAddr sdk.AccAddress, sharesAmount sdk.Rat) sdk.Error {
|
||||
|
||||
// check if this is a transitive redelegation
|
||||
if k.HasReceivingRedelegation(ctx, delegatorAddr, validatorSrcAddr) {
|
||||
|
@ -381,7 +389,7 @@ func (k Keeper) BeginRedelegation(ctx sdk.Context, delegatorAddr, validatorSrcAd
|
|||
}
|
||||
|
||||
// complete unbonding an ongoing redelegation
|
||||
func (k Keeper) CompleteRedelegation(ctx sdk.Context, delegatorAddr, validatorSrcAddr, validatorDstAddr sdk.Address) sdk.Error {
|
||||
func (k Keeper) CompleteRedelegation(ctx sdk.Context, delegatorAddr, validatorSrcAddr, validatorDstAddr sdk.AccAddress) sdk.Error {
|
||||
|
||||
red, found := k.GetRedelegation(ctx, delegatorAddr, validatorSrcAddr, validatorDstAddr)
|
||||
if !found {
|
||||
|
|
|
@ -36,7 +36,7 @@ const maxDigitsForAccount = 12 // ~220,000,000 atoms created at launch
|
|||
|
||||
// get the key for the validator with address.
|
||||
// VALUE: stake/types.Validator
|
||||
func GetValidatorKey(ownerAddr sdk.Address) []byte {
|
||||
func GetValidatorKey(ownerAddr sdk.AccAddress) []byte {
|
||||
return append(ValidatorsKey, ownerAddr.Bytes()...)
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ func GetValidatorByPubKeyIndexKey(pubkey crypto.PubKey) []byte {
|
|||
|
||||
// get the key for the current validator group
|
||||
// VALUE: none (key rearrangement with GetValKeyFromValBondedIndexKey)
|
||||
func GetValidatorsBondedIndexKey(ownerAddr sdk.Address) []byte {
|
||||
func GetValidatorsBondedIndexKey(ownerAddr sdk.AccAddress) []byte {
|
||||
return append(ValidatorsBondedIndexKey, ownerAddr.Bytes()...)
|
||||
}
|
||||
|
||||
|
@ -96,7 +96,7 @@ func getValidatorPowerRank(validator types.Validator, pool types.Pool) []byte {
|
|||
// get the key for the accumulated update validators.
|
||||
// VALUE: abci.Validator
|
||||
// note records using these keys should never persist between blocks
|
||||
func GetTendermintUpdatesKey(ownerAddr sdk.Address) []byte {
|
||||
func GetTendermintUpdatesKey(ownerAddr sdk.AccAddress) []byte {
|
||||
return append(TendermintUpdatesKey, ownerAddr.Bytes()...)
|
||||
}
|
||||
|
||||
|
@ -104,12 +104,12 @@ func GetTendermintUpdatesKey(ownerAddr sdk.Address) []byte {
|
|||
|
||||
// get the key for delegator bond with validator.
|
||||
// VALUE: stake/types.Delegation
|
||||
func GetDelegationKey(delegatorAddr, validatorAddr sdk.Address) []byte {
|
||||
func GetDelegationKey(delegatorAddr, validatorAddr sdk.AccAddress) []byte {
|
||||
return append(GetDelegationsKey(delegatorAddr), validatorAddr.Bytes()...)
|
||||
}
|
||||
|
||||
// get the prefix for a delegator for all validators
|
||||
func GetDelegationsKey(delegatorAddr sdk.Address) []byte {
|
||||
func GetDelegationsKey(delegatorAddr sdk.AccAddress) []byte {
|
||||
return append(DelegationKey, delegatorAddr.Bytes()...)
|
||||
}
|
||||
|
||||
|
@ -117,7 +117,7 @@ func GetDelegationsKey(delegatorAddr sdk.Address) []byte {
|
|||
|
||||
// get the key for an unbonding delegation by delegator and validator addr.
|
||||
// VALUE: stake/types.UnbondingDelegation
|
||||
func GetUBDKey(delegatorAddr, validatorAddr sdk.Address) []byte {
|
||||
func GetUBDKey(delegatorAddr, validatorAddr sdk.AccAddress) []byte {
|
||||
return append(
|
||||
GetUBDsKey(delegatorAddr.Bytes()),
|
||||
validatorAddr.Bytes()...)
|
||||
|
@ -125,7 +125,7 @@ func GetUBDKey(delegatorAddr, validatorAddr sdk.Address) []byte {
|
|||
|
||||
// get the index-key for an unbonding delegation, stored by validator-index
|
||||
// VALUE: none (key rearrangement used)
|
||||
func GetUBDByValIndexKey(delegatorAddr, validatorAddr sdk.Address) []byte {
|
||||
func GetUBDByValIndexKey(delegatorAddr, validatorAddr sdk.AccAddress) []byte {
|
||||
return append(GetUBDsByValIndexKey(validatorAddr), delegatorAddr.Bytes()...)
|
||||
}
|
||||
|
||||
|
@ -143,12 +143,12 @@ func GetUBDKeyFromValIndexKey(IndexKey []byte) []byte {
|
|||
//______________
|
||||
|
||||
// get the prefix for all unbonding delegations from a delegator
|
||||
func GetUBDsKey(delegatorAddr sdk.Address) []byte {
|
||||
func GetUBDsKey(delegatorAddr sdk.AccAddress) []byte {
|
||||
return append(UnbondingDelegationKey, delegatorAddr.Bytes()...)
|
||||
}
|
||||
|
||||
// get the prefix keyspace for the indexes of unbonding delegations for a validator
|
||||
func GetUBDsByValIndexKey(validatorAddr sdk.Address) []byte {
|
||||
func GetUBDsByValIndexKey(validatorAddr sdk.AccAddress) []byte {
|
||||
return append(UnbondingDelegationByValIndexKey, validatorAddr.Bytes()...)
|
||||
}
|
||||
|
||||
|
@ -156,9 +156,7 @@ func GetUBDsByValIndexKey(validatorAddr sdk.Address) []byte {
|
|||
|
||||
// get the key for a redelegation
|
||||
// VALUE: stake/types.RedelegationKey
|
||||
func GetREDKey(delegatorAddr, validatorSrcAddr,
|
||||
validatorDstAddr sdk.Address) []byte {
|
||||
|
||||
func GetREDKey(delegatorAddr, validatorSrcAddr, validatorDstAddr sdk.AccAddress) []byte {
|
||||
return append(append(
|
||||
GetREDsKey(delegatorAddr.Bytes()),
|
||||
validatorSrcAddr.Bytes()...),
|
||||
|
@ -167,9 +165,7 @@ func GetREDKey(delegatorAddr, validatorSrcAddr,
|
|||
|
||||
// get the index-key for a redelegation, stored by source-validator-index
|
||||
// VALUE: none (key rearrangement used)
|
||||
func GetREDByValSrcIndexKey(delegatorAddr, validatorSrcAddr,
|
||||
validatorDstAddr sdk.Address) []byte {
|
||||
|
||||
func GetREDByValSrcIndexKey(delegatorAddr, validatorSrcAddr, validatorDstAddr sdk.AccAddress) []byte {
|
||||
return append(append(
|
||||
GetREDsFromValSrcIndexKey(validatorSrcAddr),
|
||||
delegatorAddr.Bytes()...),
|
||||
|
@ -178,9 +174,7 @@ func GetREDByValSrcIndexKey(delegatorAddr, validatorSrcAddr,
|
|||
|
||||
// get the index-key for a redelegation, stored by destination-validator-index
|
||||
// VALUE: none (key rearrangement used)
|
||||
func GetREDByValDstIndexKey(delegatorAddr, validatorSrcAddr,
|
||||
validatorDstAddr sdk.Address) []byte {
|
||||
|
||||
func GetREDByValDstIndexKey(delegatorAddr, validatorSrcAddr, validatorDstAddr sdk.AccAddress) []byte {
|
||||
return append(append(
|
||||
GetREDsToValDstIndexKey(validatorDstAddr),
|
||||
delegatorAddr.Bytes()...),
|
||||
|
@ -215,25 +209,23 @@ func GetREDKeyFromValDstIndexKey(IndexKey []byte) []byte {
|
|||
//______________
|
||||
|
||||
// get the prefix keyspace for redelegations from a delegator
|
||||
func GetREDsKey(delegatorAddr sdk.Address) []byte {
|
||||
func GetREDsKey(delegatorAddr sdk.AccAddress) []byte {
|
||||
return append(RedelegationKey, delegatorAddr.Bytes()...)
|
||||
}
|
||||
|
||||
// get the prefix keyspace for all redelegations redelegating away from a source validator
|
||||
func GetREDsFromValSrcIndexKey(validatorSrcAddr sdk.Address) []byte {
|
||||
func GetREDsFromValSrcIndexKey(validatorSrcAddr sdk.AccAddress) []byte {
|
||||
return append(RedelegationByValSrcIndexKey, validatorSrcAddr.Bytes()...)
|
||||
}
|
||||
|
||||
// get the prefix keyspace for all redelegations redelegating towards a destination validator
|
||||
func GetREDsToValDstIndexKey(validatorDstAddr sdk.Address) []byte {
|
||||
func GetREDsToValDstIndexKey(validatorDstAddr sdk.AccAddress) []byte {
|
||||
return append(RedelegationByValDstIndexKey, validatorDstAddr.Bytes()...)
|
||||
}
|
||||
|
||||
// get the prefix keyspace for all redelegations redelegating towards a destination validator
|
||||
// from a particular delegator
|
||||
func GetREDsByDelToValDstIndexKey(delegatorAddr sdk.Address,
|
||||
validatorDstAddr sdk.Address) []byte {
|
||||
|
||||
func GetREDsByDelToValDstIndexKey(delegatorAddr sdk.Address, validatorDstAddr sdk.AccAddress) []byte {
|
||||
return append(
|
||||
GetREDsToValDstIndexKey(validatorDstAddr),
|
||||
delegatorAddr.Bytes()...)
|
||||
|
|
|
@ -49,7 +49,7 @@ func (k Keeper) IterateValidatorsBonded(ctx sdk.Context, fn func(index int64, va
|
|||
}
|
||||
|
||||
// get the sdk.validator for a particular address
|
||||
func (k Keeper) Validator(ctx sdk.Context, address sdk.Address) sdk.Validator {
|
||||
func (k Keeper) Validator(ctx sdk.Context, address sdk.AccAddress) sdk.Validator {
|
||||
val, found := k.GetValidator(ctx, address)
|
||||
if !found {
|
||||
return nil
|
||||
|
@ -75,7 +75,7 @@ func (k Keeper) GetValidatorSet() sdk.ValidatorSet {
|
|||
}
|
||||
|
||||
// get the delegation for a particular set of delegator and validator addresses
|
||||
func (k Keeper) Delegation(ctx sdk.Context, addrDel sdk.Address, addrVal sdk.Address) sdk.Delegation {
|
||||
func (k Keeper) Delegation(ctx sdk.Context, addrDel sdk.AccAddress, addrVal sdk.AccAddress) sdk.Delegation {
|
||||
bond, ok := k.GetDelegation(ctx, addrDel, addrVal)
|
||||
if !ok {
|
||||
return nil
|
||||
|
@ -84,7 +84,7 @@ func (k Keeper) Delegation(ctx sdk.Context, addrDel sdk.Address, addrVal sdk.Add
|
|||
}
|
||||
|
||||
// iterate through the active validator set and perform the provided function
|
||||
func (k Keeper) IterateDelegations(ctx sdk.Context, delAddr sdk.Address, fn func(index int64, delegation sdk.Delegation) (stop bool)) {
|
||||
func (k Keeper) IterateDelegations(ctx sdk.Context, delAddr sdk.AccAddress, fn func(index int64, delegation sdk.Delegation) (stop bool)) {
|
||||
store := ctx.KVStore(k.storeKey)
|
||||
key := GetDelegationsKey(delAddr)
|
||||
iterator := sdk.KVStorePrefixIterator(store, key)
|
||||
|
|
|
@ -25,14 +25,14 @@ import (
|
|||
var (
|
||||
Addrs = createTestAddrs(100)
|
||||
PKs = createTestPubKeys(100)
|
||||
emptyAddr sdk.Address
|
||||
emptyAddr sdk.AccAddress
|
||||
emptyPubkey crypto.PubKey
|
||||
|
||||
addrDels = []sdk.Address{
|
||||
addrDels = []sdk.AccAddress{
|
||||
Addrs[0],
|
||||
Addrs[1],
|
||||
}
|
||||
addrVals = []sdk.Address{
|
||||
addrVals = []sdk.AccAddress{
|
||||
Addrs[2],
|
||||
Addrs[3],
|
||||
Addrs[4],
|
||||
|
@ -137,7 +137,7 @@ func NewPubKey(pk string) (res crypto.PubKey) {
|
|||
}
|
||||
|
||||
// for incode address generation
|
||||
func TestAddr(addr string, bech string) sdk.Address {
|
||||
func TestAddr(addr string, bech string) sdk.AccAddress {
|
||||
|
||||
res, err := sdk.GetAccAddressHex(addr)
|
||||
if err != nil {
|
||||
|
@ -160,8 +160,8 @@ func TestAddr(addr string, bech string) sdk.Address {
|
|||
}
|
||||
|
||||
// nolint: unparam
|
||||
func createTestAddrs(numAddrs int) []sdk.Address {
|
||||
var addresses []sdk.Address
|
||||
func createTestAddrs(numAddrs int) []sdk.AccAddress {
|
||||
var addresses []sdk.AccAddress
|
||||
var buffer bytes.Buffer
|
||||
|
||||
// start at 100 so we can make up to 999 test addresses with valid test addresses
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue