blockbook/fourbyte/fourbyte_test.go
2023-02-01 17:58:37 +01:00

56 lines
1.4 KiB
Go

package fourbyte
import (
"reflect"
"testing"
"github.com/trezor/blockbook/bchain"
)
func Test_parseSignatureFromText(t *testing.T) {
tests := []struct {
name string
signature string
want bchain.FourByteSignature
}{
{
name: "_gonsPerFragment",
signature: "_gonsPerFragment()",
want: bchain.FourByteSignature{
Name: "_gonsPerFragment",
},
},
{
name: "vestingDeposits",
signature: "vestingDeposits(address)",
want: bchain.FourByteSignature{
Name: "vestingDeposits",
Parameters: []string{"address"},
},
},
{
name: "batchTransferTokenB",
signature: "batchTransferTokenB(address[],uint256)",
want: bchain.FourByteSignature{
Name: "batchTransferTokenB",
Parameters: []string{"address[]", "uint256"},
},
},
{
name: "transmitAndSellTokenForEth",
signature: "transmitAndSellTokenForEth(address,uint256,uint256,uint256,address,(uint8,bytes32,bytes32),bytes)",
want: bchain.FourByteSignature{
Name: "transmitAndSellTokenForEth",
Parameters: []string{"address", "uint256", "uint256", "uint256", "address", "(uint8,bytes32,bytes32)", "bytes"},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := parseSignatureFromText(tt.signature); !reflect.DeepEqual(*got, tt.want) {
t.Errorf("parseSignatureFromText() = %v, want %v", *got, tt.want)
}
})
}
}