github.com/trezor/blockbook@v0.4.1-0.20240328132726-e9a08582ee2c/fourbyte/fourbyte_test.go (about) 1 package fourbyte 2 3 import ( 4 "reflect" 5 "testing" 6 7 "github.com/trezor/blockbook/bchain" 8 ) 9 10 func Test_parseSignatureFromText(t *testing.T) { 11 tests := []struct { 12 name string 13 signature string 14 want bchain.FourByteSignature 15 }{ 16 { 17 name: "_gonsPerFragment", 18 signature: "_gonsPerFragment()", 19 want: bchain.FourByteSignature{ 20 Name: "_gonsPerFragment", 21 }, 22 }, 23 { 24 name: "vestingDeposits", 25 signature: "vestingDeposits(address)", 26 want: bchain.FourByteSignature{ 27 Name: "vestingDeposits", 28 Parameters: []string{"address"}, 29 }, 30 }, 31 { 32 name: "batchTransferTokenB", 33 signature: "batchTransferTokenB(address[],uint256)", 34 want: bchain.FourByteSignature{ 35 Name: "batchTransferTokenB", 36 Parameters: []string{"address[]", "uint256"}, 37 }, 38 }, 39 { 40 name: "transmitAndSellTokenForEth", 41 signature: "transmitAndSellTokenForEth(address,uint256,uint256,uint256,address,(uint8,bytes32,bytes32),bytes)", 42 want: bchain.FourByteSignature{ 43 Name: "transmitAndSellTokenForEth", 44 Parameters: []string{"address", "uint256", "uint256", "uint256", "address", "(uint8,bytes32,bytes32)", "bytes"}, 45 }, 46 }, 47 } 48 for _, tt := range tests { 49 t.Run(tt.name, func(t *testing.T) { 50 if got := parseSignatureFromText(tt.signature); !reflect.DeepEqual(*got, tt.want) { 51 t.Errorf("parseSignatureFromText() = %v, want %v", *got, tt.want) 52 } 53 }) 54 } 55 }