Skip to content

Commit

Permalink
vms/avm: add tx serialization test case with signers (ava-labs#1278)
Browse files Browse the repository at this point in the history
  • Loading branch information
gyuho authored Apr 8, 2022
1 parent b00f472 commit ae4a50a
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 8 deletions.
66 changes: 65 additions & 1 deletion vms/avm/base_tx_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import (
"math"
"testing"

"github.com/stretchr/testify/assert"

"github.com/ava-labs/avalanchego/database/manager"
"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/snow"
Expand Down Expand Up @@ -123,11 +125,73 @@ func TestBaseTxSerialization(t *testing.T) {
if err := tx.SignSECP256K1Fx(c, nil); err != nil {
t.Fatal(err)
}

assert.Equal(t, tx.ID().String(), "zeqT8FTnRAxes7QQQYkaWhNkHavd9d6aCdH8TQu2Mx5KEydEz")
result := tx.Bytes()
if !bytes.Equal(expected, result) {
t.Fatalf("\nExpected: 0x%x\nResult: 0x%x", expected, result)
}

credBytes := []byte{
// type id
0x00, 0x00, 0x00, 0x09,

// there are two signers (thus two signatures)
0x00, 0x00, 0x00, 0x02,

// 65 bytes
0x7d, 0x89, 0x8e, 0xe9, 0x8a, 0xf8, 0x33, 0x5d, 0x37, 0xe6,
0xfa, 0xda, 0x0c, 0xbb, 0x44, 0xa1, 0x44, 0x05, 0xd3, 0xbb,
0x94, 0x0d, 0xfc, 0x0d, 0x99, 0xa6, 0xd3, 0xff, 0x5c, 0x71,
0x5a, 0xff, 0x26, 0xd1, 0x84, 0x84, 0xf2, 0x9b, 0x28, 0x96,
0x44, 0x96, 0x8f, 0xed, 0xff, 0xeb, 0x23, 0xe0, 0x30, 0x66,
0x5d, 0x73, 0x6d, 0x94, 0xfc, 0x80, 0xbc, 0x73, 0x5f, 0x51,
0xc8, 0x06, 0xd7, 0x43, 0x00,

// 65 bytes
0x7d, 0x89, 0x8e, 0xe9, 0x8a, 0xf8, 0x33, 0x5d, 0x37, 0xe6,
0xfa, 0xda, 0x0c, 0xbb, 0x44, 0xa1, 0x44, 0x05, 0xd3, 0xbb,
0x94, 0x0d, 0xfc, 0x0d, 0x99, 0xa6, 0xd3, 0xff, 0x5c, 0x71,
0x5a, 0xff, 0x26, 0xd1, 0x84, 0x84, 0xf2, 0x9b, 0x28, 0x96,
0x44, 0x96, 0x8f, 0xed, 0xff, 0xeb, 0x23, 0xe0, 0x30, 0x66,
0x5d, 0x73, 0x6d, 0x94, 0xfc, 0x80, 0xbc, 0x73, 0x5f, 0x51,
0xc8, 0x06, 0xd7, 0x43, 0x00,

// type id
0x00, 0x00, 0x00, 0x09,

// there are two signers (thus two signatures)
0x00, 0x00, 0x00, 0x02,

// 65 bytes
0x7d, 0x89, 0x8e, 0xe9, 0x8a, 0xf8, 0x33, 0x5d, 0x37, 0xe6,
0xfa, 0xda, 0x0c, 0xbb, 0x44, 0xa1, 0x44, 0x05, 0xd3, 0xbb,
0x94, 0x0d, 0xfc, 0x0d, 0x99, 0xa6, 0xd3, 0xff, 0x5c, 0x71,
0x5a, 0xff, 0x26, 0xd1, 0x84, 0x84, 0xf2, 0x9b, 0x28, 0x96,
0x44, 0x96, 0x8f, 0xed, 0xff, 0xeb, 0x23, 0xe0, 0x30, 0x66,
0x5d, 0x73, 0x6d, 0x94, 0xfc, 0x80, 0xbc, 0x73, 0x5f, 0x51,
0xc8, 0x06, 0xd7, 0x43, 0x00,

// 65 bytes
0x7d, 0x89, 0x8e, 0xe9, 0x8a, 0xf8, 0x33, 0x5d, 0x37, 0xe6,
0xfa, 0xda, 0x0c, 0xbb, 0x44, 0xa1, 0x44, 0x05, 0xd3, 0xbb,
0x94, 0x0d, 0xfc, 0x0d, 0x99, 0xa6, 0xd3, 0xff, 0x5c, 0x71,
0x5a, 0xff, 0x26, 0xd1, 0x84, 0x84, 0xf2, 0x9b, 0x28, 0x96,
0x44, 0x96, 0x8f, 0xed, 0xff, 0xeb, 0x23, 0xe0, 0x30, 0x66,
0x5d, 0x73, 0x6d, 0x94, 0xfc, 0x80, 0xbc, 0x73, 0x5f, 0x51,
0xc8, 0x06, 0xd7, 0x43, 0x00,
}
if err := tx.SignSECP256K1Fx(c, [][]*crypto.PrivateKeySECP256K1R{{keys[0], keys[0]}, {keys[0], keys[0]}}); err != nil {
t.Fatal(err)
}
assert.Equal(t, tx.ID().String(), "QnTUuie2qe6BKyYrC2jqd73bJ828QNhYnZbdA2HWsnVRPjBfV")
result = tx.Bytes()

// there are two credentials
expected[len(expected)-1] = 0x02
expected = append(expected, credBytes...)
if !bytes.Equal(expected, result) {
t.Fatalf("\nExpected: 0x%x\nResult: 0x%x", expected, result)
}
}

func TestBaseTxGetters(t *testing.T) {
Expand Down
6 changes: 3 additions & 3 deletions vms/avm/pubsub_filterer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ import (
"bytes"
"testing"

"github.com/ava-labs/avalanchego/pubsub"
"github.com/ava-labs/avalanchego/vms/components/avax"
"github.com/ava-labs/avalanchego/vms/secp256k1fx"
"github.com/stretchr/testify/assert"

"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/pubsub"
"github.com/ava-labs/avalanchego/vms/components/avax"
"github.com/ava-labs/avalanchego/vms/secp256k1fx"
)

type mockFilter struct {
Expand Down
3 changes: 2 additions & 1 deletion vms/avm/vm_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import (
"errors"
"testing"

"github.com/stretchr/testify/assert"

"github.com/ava-labs/avalanchego/api/keystore"
"github.com/ava-labs/avalanchego/chains/atomic"
"github.com/ava-labs/avalanchego/database/manager"
Expand All @@ -28,7 +30,6 @@ import (
"github.com/ava-labs/avalanchego/vms/nftfx"
"github.com/ava-labs/avalanchego/vms/propertyfx"
"github.com/ava-labs/avalanchego/vms/secp256k1fx"
"github.com/stretchr/testify/assert"
)

var (
Expand Down
3 changes: 2 additions & 1 deletion vms/platformvm/create_chain_tx_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@ import (
"testing"
"time"

"github.com/stretchr/testify/assert"

"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/utils/constants"
"github.com/ava-labs/avalanchego/utils/crypto"
"github.com/ava-labs/avalanchego/utils/hashing"
"github.com/ava-labs/avalanchego/utils/units"
"github.com/ava-labs/avalanchego/vms/components/avax"
"github.com/ava-labs/avalanchego/vms/secp256k1fx"
"github.com/stretchr/testify/assert"
)

func TestUnsignedCreateChainTxVerify(t *testing.T) {
Expand Down
3 changes: 2 additions & 1 deletion vms/platformvm/create_subnet_tx_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@ import (
"testing"
"time"

"github.com/stretchr/testify/assert"

"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/utils/units"
"github.com/ava-labs/avalanchego/vms/components/avax"
"github.com/ava-labs/avalanchego/vms/secp256k1fx"
"github.com/stretchr/testify/assert"
)

func TestCreateSubnetTxAP3FeeChange(t *testing.T) {
Expand Down
3 changes: 2 additions & 1 deletion vms/platformvm/standard_block_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import (
"testing"
"time"

"github.com/stretchr/testify/assert"

"github.com/ava-labs/avalanchego/chains/atomic"
"github.com/ava-labs/avalanchego/database/prefixdb"
"github.com/ava-labs/avalanchego/ids"
Expand All @@ -15,7 +17,6 @@ import (
"github.com/ava-labs/avalanchego/vms/components/avax"
"github.com/ava-labs/avalanchego/vms/platformvm/status"
"github.com/ava-labs/avalanchego/vms/secp256k1fx"
"github.com/stretchr/testify/assert"
)

func TestAtomicTxImports(t *testing.T) {
Expand Down

0 comments on commit ae4a50a

Please sign in to comment.