81 lines
1.7 KiB
Go
81 lines
1.7 KiB
Go
// stm: #unit
|
|
package chain
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/filecoin-project/go-address"
|
|
|
|
"github.com/filecoin-project/lotus/build"
|
|
"github.com/filecoin-project/lotus/chain/types"
|
|
)
|
|
|
|
func TestSignedMessageJsonRoundtrip(t *testing.T) {
|
|
//stm: @TYPES_MESSAGE_JSON_EQUAL_CALL_002
|
|
to, _ := address.NewIDAddress(5234623)
|
|
from, _ := address.NewIDAddress(603911192)
|
|
smsg := &types.SignedMessage{
|
|
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,
|
|
},
|
|
}
|
|
|
|
out, err := json.Marshal(smsg)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
var osmsg types.SignedMessage
|
|
if err := json.Unmarshal(out, &osmsg); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestAddressType(t *testing.T) {
|
|
//stm: @CHAIN_TYPES_ADDRESS_PREFIX_001
|
|
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
|
|
}
|