Skip to content

Commit

Permalink
Add more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
gagliardetto committed Jan 5, 2022
1 parent 73311b0 commit 04b5b33
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions programs/system/CreateAccountWithSeed_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ import (
"strconv"
"testing"

bin "github.com/gagliardetto/binary"
ag_gofuzz "github.com/gagliardetto/gofuzz"
"github.com/gagliardetto/solana-go"
ag_require "github.com/stretchr/testify/require"
)

Expand All @@ -44,3 +46,51 @@ func TestEncodeDecode_CreateAccountWithSeed(t *testing.T) {
})
}
}

func TestEncDec(t *testing.T) {
instr := []byte{204, 95, 77, 127, 148, 25, 135, 127, 89, 146, 22, 90, 233, 80, 113, 3, 70, 176, 165, 222, 81, 200, 100, 223, 117, 165, 155, 44, 53, 225, 124, 20, 5, 0, 0, 0, 0, 0, 0, 0, 104, 101, 108, 108, 111, 192, 4, 14, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 57, 111, 59, 111, 183, 248, 249, 251, 128, 174, 206, 0, 81, 22, 3, 173, 244, 104, 15, 249, 239, 112, 33, 255, 66, 169, 29, 66, 7, 106, 231, 230}

{
payerPrivateKey := solana.MustPrivateKeyFromBase58("5LRLfrUP22VtiNaPGAEgHPucoJmG8ejmomMVmpn4fkXjexYsT7RQGfGuMePG5PKvecZxMGrqa6EP2RmYcm7TYQvX")
payerAccount, _ := solana.WalletFromPrivateKeyBase58(payerPrivateKey.String())
programID := "4sCcZNQR8vfWckyi5L9KdptdaiLxdiMjVgKQay7HxzmK"
programPubKey := solana.MustPublicKeyFromBase58(programID)

newSubAccount, err := solana.CreateWithSeed(
payerAccount.PublicKey(),
"hello",
programPubKey,
)
ag_require.NoError(t, err)

instruction := NewCreateAccountWithSeedInstruction(
payerAccount.PublicKey(),
"hello",
918720,
4,
programPubKey,
payerAccount.PublicKey(),
newSubAccount,
payerAccount.PublicKey(),
)

{
buffer := new(bytes.Buffer)
err = bin.NewBinEncoder(buffer).Encode(instruction)
ag_require.NoError(t, err)
ag_require.Equal(t, instr, buffer.Bytes())
}

{
got := new(CreateAccountWithSeed)
err = decodeT(got, instr)
got.AccountMetaSlice = solana.AccountMetaSlice{
solana.Meta(payerAccount.PublicKey()).WRITE().SIGNER(),
solana.Meta(newSubAccount).WRITE(),
solana.Meta(payerAccount.PublicKey()).SIGNER(),
}
ag_require.NoError(t, err)
ag_require.Equal(t, instruction, got)
}
}
}

0 comments on commit 04b5b33

Please sign in to comment.