rpc/request: add (*Param).GetUint160FromAddressOrHex()
Allow to get address from both representations.
This commit is contained in:
parent
3f2f0be2c2
commit
62bb130ccb
2 changed files with 29 additions and 0 deletions
|
@ -163,6 +163,16 @@ func (p *Param) GetUint160FromAddress() (util.Uint160, error) {
|
|||
return address.StringToUint160(s)
|
||||
}
|
||||
|
||||
// GetUint160FromAddressOrHex returns Uint160 value of the parameter that was
|
||||
// supplied either as raw hex or as an address.
|
||||
func (p *Param) GetUint160FromAddressOrHex() (util.Uint160, error) {
|
||||
u, err := p.GetUint160FromHex()
|
||||
if err == nil {
|
||||
return u, err
|
||||
}
|
||||
return p.GetUint160FromAddress()
|
||||
}
|
||||
|
||||
// GetFuncParam returns current parameter as a function call parameter.
|
||||
func (p *Param) GetFuncParam() (FuncParam, error) {
|
||||
if p == nil {
|
||||
|
|
|
@ -205,6 +205,25 @@ func TestParamGetUint160FromAddress(t *testing.T) {
|
|||
require.NotNil(t, err)
|
||||
}
|
||||
|
||||
func TestParam_GetUint160FromAddressOrHex(t *testing.T) {
|
||||
in := "NPAsqZkx9WhNd4P72uhZxBhLinSuNkxfB8"
|
||||
inHex, _ := address.StringToUint160(in)
|
||||
|
||||
t.Run("Address", func(t *testing.T) {
|
||||
p := Param{StringT, in}
|
||||
u, err := p.GetUint160FromAddressOrHex()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, inHex, u)
|
||||
})
|
||||
|
||||
t.Run("Hex", func(t *testing.T) {
|
||||
p := Param{StringT, inHex.StringLE()}
|
||||
u, err := p.GetUint160FromAddressOrHex()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, inHex, u)
|
||||
})
|
||||
}
|
||||
|
||||
func TestParamGetFuncParam(t *testing.T) {
|
||||
fp := FuncParam{
|
||||
Type: smartcontract.StringType,
|
||||
|
|
Loading…
Reference in a new issue