Skip to content

Commit 6a6e2b8

Browse files
authored
Enable Ethereum prefixed signatures on X-chain
1 parent 25c0ca9 commit 6a6e2b8

File tree

20 files changed

+178
-78
lines changed

20 files changed

+178
-78
lines changed

avalanchego/genesis/genesis.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -547,9 +547,12 @@ func VMGenesis(genesisBytes []byte, vmID ids.ID) (*pchaintxs.Tx, error) {
547547
}
548548

549549
func AVAXAssetID(avmGenesisBytes []byte) (ids.ID, error) {
550-
parser, err := xchaintxs.NewParser([]fxs.Fx{
551-
&secp256k1fx.Fx{},
552-
})
550+
parser, err := xchaintxs.NewParser(
551+
time.Time{},
552+
[]fxs.Fx{
553+
&secp256k1fx.Fx{},
554+
},
555+
)
553556
if err != nil {
554557
return ids.Empty, err
555558
}

avalanchego/scripts/versions.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77

88
# Set up the versions to be used
99
# Don't export them as their used in the context of other calls
10-
coreth_version=${CORETH_VERSION:-'v0.11.0-rc.4'}
11-
avalanche_version=${AVALANCHE_VERSION:-'v1.9.0'}
10+
coreth_version=${CORETH_VERSION:-'v0.12.0-rc.2'}
11+
avalanche_version=${AVALANCHE_VERSION:-'v1.10.0'}

avalanchego/vms/avm/blocks/block_test.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,12 @@ func TestStandardBlocks(t *testing.T) {
2929
// check standard block can be built and parsed
3030
require := require.New(t)
3131

32-
parser, err := NewParser([]fxs.Fx{
33-
&secp256k1fx.Fx{},
34-
})
32+
parser, err := NewParser(
33+
time.Time{},
34+
[]fxs.Fx{
35+
&secp256k1fx.Fx{},
36+
},
37+
)
3538
require.NoError(err)
3639

3740
blkTimestamp := time.Now()

avalanchego/vms/avm/blocks/builder/builder_test.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -519,9 +519,12 @@ func TestBlockBuilderAddLocalTx(t *testing.T) {
519519
ctrl := gomock.NewController(t)
520520
defer ctrl.Finish()
521521

522-
parser, err := blocks.NewParser([]fxs.Fx{
523-
&secp256k1fx.Fx{},
524-
})
522+
parser, err := blocks.NewParser(
523+
time.Time{},
524+
[]fxs.Fx{
525+
&secp256k1fx.Fx{},
526+
},
527+
)
525528
require.NoError(err)
526529

527530
backend := &txexecutor.Backend{

avalanchego/vms/avm/blocks/parser.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package blocks
66
import (
77
"fmt"
88
"reflect"
9+
"time"
910

1011
"github.com/ava-labs/avalanchego/codec"
1112
"github.com/ava-labs/avalanchego/utils/logging"
@@ -34,8 +35,8 @@ type parser struct {
3435
txs.Parser
3536
}
3637

37-
func NewParser(fxs []fxs.Fx) (Parser, error) {
38-
p, err := txs.NewParser(fxs)
38+
func NewParser(cortinaTime time.Time, fxs []fxs.Fx) (Parser, error) {
39+
p, err := txs.NewParser(cortinaTime, fxs)
3940
if err != nil {
4041
return nil, err
4142
}
@@ -53,12 +54,13 @@ func NewParser(fxs []fxs.Fx) (Parser, error) {
5354
}
5455

5556
func NewCustomParser(
57+
cortinaTime time.Time,
5658
typeToFxIndex map[reflect.Type]int,
5759
clock *mockable.Clock,
5860
log logging.Logger,
5961
fxs []fxs.Fx,
6062
) (Parser, error) {
61-
p, err := txs.NewCustomParser(typeToFxIndex, clock, log, fxs)
63+
p, err := txs.NewCustomParser(cortinaTime, typeToFxIndex, clock, log, fxs)
6264
if err != nil {
6365
return nil, err
6466
}

avalanchego/vms/avm/network/network_test.go

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"context"
88
"errors"
99
"testing"
10+
"time"
1011

1112
"github.com/golang/mock/gomock"
1213

@@ -41,9 +42,13 @@ func TestNetworkAppGossip(t *testing.T) {
4142
},
4243
}
4344

44-
parser, err := txs.NewParser([]fxs.Fx{
45-
&secp256k1fx.Fx{},
46-
})
45+
parser, err := txs.NewParser(
46+
time.Time{},
47+
[]fxs.Fx{
48+
&secp256k1fx.Fx{},
49+
},
50+
)
51+
4752
require.NoError(t, err)
4853
require.NoError(t, parser.InitializeTx(testTx))
4954

@@ -142,11 +147,14 @@ func TestNetworkAppGossip(t *testing.T) {
142147
ctrl := gomock.NewController(t)
143148
defer ctrl.Finish()
144149

145-
parser, err := txs.NewParser([]fxs.Fx{
146-
&secp256k1fx.Fx{},
147-
&nftfx.Fx{},
148-
&propertyfx.Fx{},
149-
})
150+
parser, err := txs.NewParser(
151+
time.Time{},
152+
[]fxs.Fx{
153+
&secp256k1fx.Fx{},
154+
&nftfx.Fx{},
155+
&propertyfx.Fx{},
156+
},
157+
)
150158
require.NoError(err)
151159

152160
n := New(
@@ -283,11 +291,14 @@ func TestNetworkIssueTx(t *testing.T) {
283291
ctrl := gomock.NewController(t)
284292
defer ctrl.Finish()
285293

286-
parser, err := txs.NewParser([]fxs.Fx{
287-
&secp256k1fx.Fx{},
288-
&nftfx.Fx{},
289-
&propertyfx.Fx{},
290-
})
294+
parser, err := txs.NewParser(
295+
time.Time{},
296+
[]fxs.Fx{
297+
&secp256k1fx.Fx{},
298+
&nftfx.Fx{},
299+
&propertyfx.Fx{},
300+
},
301+
)
291302
require.NoError(err)
292303

293304
n := New(
@@ -310,9 +321,12 @@ func TestNetworkGossipTx(t *testing.T) {
310321
ctrl := gomock.NewController(t)
311322
defer ctrl.Finish()
312323

313-
parser, err := txs.NewParser([]fxs.Fx{
314-
&secp256k1fx.Fx{},
315-
})
324+
parser, err := txs.NewParser(
325+
time.Time{},
326+
[]fxs.Fx{
327+
&secp256k1fx.Fx{},
328+
},
329+
)
316330
require.NoError(err)
317331

318332
appSender := common.NewMockSender(ctrl)

avalanchego/vms/avm/states/state_test.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,12 @@ var (
3636

3737
func init() {
3838
var err error
39-
parser, err = blocks.NewParser([]fxs.Fx{
40-
&secp256k1fx.Fx{},
41-
})
39+
parser, err = blocks.NewParser(
40+
time.Time{},
41+
[]fxs.Fx{
42+
&secp256k1fx.Fx{},
43+
},
44+
)
4245
if err != nil {
4346
panic(err)
4447
}

avalanchego/vms/avm/static_service.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"errors"
88
"fmt"
99
"net/http"
10+
"time"
1011

1112
stdjson "encoding/json"
1213

@@ -77,11 +78,14 @@ type BuildGenesisReply struct {
7778
// BuildGenesis returns the UTXOs such that at least one address in [args.Addresses] is
7879
// referenced in the UTXO.
7980
func (*StaticService) BuildGenesis(_ *http.Request, args *BuildGenesisArgs, reply *BuildGenesisReply) error {
80-
parser, err := txs.NewParser([]fxs.Fx{
81-
&secp256k1fx.Fx{},
82-
&nftfx.Fx{},
83-
&propertyfx.Fx{},
84-
})
81+
parser, err := txs.NewParser(
82+
time.Time{},
83+
[]fxs.Fx{
84+
&secp256k1fx.Fx{},
85+
&nftfx.Fx{},
86+
&propertyfx.Fx{},
87+
},
88+
)
8589
if err != nil {
8690
return err
8791
}

avalanchego/vms/avm/txs/base_tx_test.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package txs
55

66
import (
77
"testing"
8+
"time"
89

910
"github.com/stretchr/testify/require"
1011

@@ -125,9 +126,12 @@ func TestBaseTxSerialization(t *testing.T) {
125126
Memo: []byte{0x00, 0x01, 0x02, 0x03},
126127
}}}
127128

128-
parser, err := NewParser([]fxs.Fx{
129-
&secp256k1fx.Fx{},
130-
})
129+
parser, err := NewParser(
130+
time.Time{},
131+
[]fxs.Fx{
132+
&secp256k1fx.Fx{},
133+
},
134+
)
131135
require.NoError(err)
132136

133137
require.NoError(parser.InitializeTx(tx))

avalanchego/vms/avm/txs/codec.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package txs
55

66
import (
77
"reflect"
8+
"time"
89

910
"github.com/ava-labs/avalanchego/codec"
1011
"github.com/ava-labs/avalanchego/utils/logging"
@@ -41,6 +42,8 @@ type fxVM struct {
4142
clock *mockable.Clock
4243
log logging.Logger
4344
codecRegistry codec.Registry
45+
46+
cortinaTime time.Time
4447
}
4548

4649
func (vm *fxVM) Clock() *mockable.Clock {
@@ -56,5 +59,5 @@ func (vm *fxVM) Logger() logging.Logger {
5659
}
5760

5861
func (vm *fxVM) EthVerificationEnabled() bool {
59-
return false
62+
return !vm.clock.Time().Before(vm.cortinaTime)
6063
}

0 commit comments

Comments
 (0)