aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coreth.go5
-rw-r--r--plugin/evm/static_service.go21
-rw-r--r--plugin/evm/vm.go2
-rw-r--r--plugin/evm/vm_test.go6
4 files changed, 26 insertions, 8 deletions
diff --git a/coreth.go b/coreth.go
index 01bc9af..351a14d 100644
--- a/coreth.go
+++ b/coreth.go
@@ -2,7 +2,6 @@ package coreth
import (
"crypto/ecdsa"
- //"fmt"
"io"
"os"
@@ -18,10 +17,8 @@ import (
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/event"
- "github.com/ethereum/go-ethereum/trie"
-
- //"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/log"
+ "github.com/ethereum/go-ethereum/trie"
"github.com/mattn/go-isatty"
)
diff --git a/plugin/evm/static_service.go b/plugin/evm/static_service.go
index 1b45939..7b0fa8b 100644
--- a/plugin/evm/static_service.go
+++ b/plugin/evm/static_service.go
@@ -7,15 +7,32 @@ import (
"context"
"encoding/json"
+ "github.com/ava-labs/avalanchego/utils/formatting"
"github.com/ava-labs/coreth/core"
)
// StaticService defines the static API services exposed by the evm
type StaticService struct{}
+// BuildGenesisReply is the reply from BuildGenesis
+type BuildGenesisReply struct {
+ Bytes string `json:"bytes"`
+ Encoding formatting.Encoding `json:"encoding"`
+}
+
// BuildGenesis returns the UTXOs such that at least one address in [args.Addresses] is
// referenced in the UTXO.
-func (*StaticService) BuildGenesis(_ context.Context, args *core.Genesis) ([]byte, error) {
+func (*StaticService) BuildGenesis(_ context.Context, args *core.Genesis) (*BuildGenesisReply, error) {
bytes, err := json.Marshal(args)
- return bytes, err
+ if err != nil {
+ return nil, err
+ }
+ bytesStr, err := formatting.Encode(formatting.Hex, bytes)
+ if err != nil {
+ return nil, err
+ }
+ return &BuildGenesisReply{
+ Bytes: bytesStr,
+ Encoding: formatting.Hex,
+ }, nil
}
diff --git a/plugin/evm/vm.go b/plugin/evm/vm.go
index aaf7f10..58ab600 100644
--- a/plugin/evm/vm.go
+++ b/plugin/evm/vm.go
@@ -131,9 +131,9 @@ func init() {
c.RegisterType(&secp256k1fx.Credential{}),
c.RegisterType(&secp256k1fx.Input{}),
c.RegisterType(&secp256k1fx.OutputOwners{}),
+ Codec.RegisterCodec(codecVersion, c),
)
- errs.Add(Codec.RegisterCodec(0, c))
if errs.Errored() {
panic(errs.Err)
}
diff --git a/plugin/evm/vm_test.go b/plugin/evm/vm_test.go
index 1b894ce..2993b3b 100644
--- a/plugin/evm/vm_test.go
+++ b/plugin/evm/vm_test.go
@@ -63,10 +63,14 @@ func BuildGenesisTest(t *testing.T) []byte {
if err := json.Unmarshal([]byte(genesisJSON), genesis); err != nil {
t.Fatalf("Problem unmarshaling genesis JSON: %s", err)
}
- genesisBytes, err := ss.BuildGenesis(nil, genesis)
+ genesisReply, err := ss.BuildGenesis(nil, genesis)
if err != nil {
t.Fatalf("Failed to create test genesis")
}
+ genesisBytes, err := formatting.Decode(genesisReply.Encoding, genesisReply.Bytes)
+ if err != nil {
+ t.Fatalf("Failed to decode genesis bytes: %w", err)
+ }
return genesisBytes
}