lotus/chain/types_test.go

78 lines
1.6 KiB
Go
Raw Normal View History

2019-07-18 19:12:30 +00:00
package chain
import (
"crypto/rand"
2019-07-18 19:12:30 +00:00
"encoding/json"
"testing"
"github.com/filecoin-project/lotus/build"
"github.com/filecoin-project/go-address"
"github.com/filecoin-project/lotus/chain/types"
2019-07-18 19:12:30 +00:00
)
func TestSignedMessageJsonRoundtrip(t *testing.T) {
to, _ := address.NewIDAddress(5234623)
from, _ := address.NewIDAddress(603911192)
smsg := &types.SignedMessage{
2019-07-18 19:12:30 +00:00
Message: types.Message{
To: to,
From: from,
Params: []byte("some bytes, idk"),
Method: 1235126,
Value: types.NewInt(123123),
GasFeeCap: types.NewInt(1234),
GasPremium: types.NewInt(132414234),
GasLimit: 100_000_000,
Nonce: 123123,
2019-07-18 19:12:30 +00:00
},
}
out, err := json.Marshal(smsg)
if err != nil {
t.Fatal(err)
}
var osmsg types.SignedMessage
2019-07-18 19:12:30 +00:00
if err := json.Unmarshal(out, &osmsg); err != nil {
t.Fatal(err)
}
}
func TestAddressType(t *testing.T) {
build.SetAddressNetwork(address.Testnet)
addr, err := makeRandomAddress()
if err != nil {
t.Fatal(err)
}
if string(addr[0]) != address.TestnetPrefix {
t.Fatalf("address should start with %s", address.TestnetPrefix)
}
build.SetAddressNetwork(address.Mainnet)
addr, err = makeRandomAddress()
if err != nil {
t.Fatal(err)
}
if string(addr[0]) != address.MainnetPrefix {
t.Fatalf("address should start with %s", address.MainnetPrefix)
}
}
func makeRandomAddress() (string, error) {
bytes := make([]byte, 32)
_, err := rand.Read(bytes)
if err != nil {
return "", err
}
addr, err := address.NewActorAddress(bytes)
if err != nil {
return "", err
}
return addr.String(), nil
}