Skip to content

Commit 8ece2ab

Browse files
authored
chore: gas estimates in sign bytes (#1257)
# Background Include gas estimate and fee structure in turnstone messages hash. # Testing completed - [ ] test coverage exists or has been added/updated - [ ] tested in a private testnet # Breaking changes - [ ] I have checked my code for breaking changes - [ ] If there are breaking changes, there is a supporting migration.
1 parent 851a8ac commit 8ece2ab

23 files changed

+345
-150
lines changed

proto/palomachain/paloma/evm/turnstone.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ message Message {
7272
(amino.dont_omitempty) = true,
7373
(gogoproto.nullable) = false
7474
];
75+
76+
string assigneeRemoteAddress = 10;
7577
}
7678

7779
message TxExecutedProof { bytes serializedTX = 1; }

x/consensus/keeper/cleanup.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,15 +86,15 @@ func (k Keeper) ReassignOrphanedMessages(ctx sdk.Context, blockAge int64) (err e
8686
return fmt.Errorf("failed to parse to evm message: %w", err)
8787
}
8888
req := deriveMessageRequirements(evmmsg, k.cdc)
89-
newVal, err := k.evmKeeper.PickValidatorForMessage(ctx, evmmsg.ChainReferenceID, req)
89+
newVal, newRemoteAddr, err := k.evmKeeper.PickValidatorForMessage(ctx, evmmsg.ChainReferenceID, req)
9090
if err != nil {
9191
logger.WithError(err).Error("failed to pick new validator for message.")
9292
return fmt.Errorf("failed to pick validator for message: %w", err)
9393
}
9494

9595
logger = logger.WithFields("current-validator", currentVal, "new-validator", newVal)
9696
logger.Debug("Attepting to reassign message...")
97-
if err := k.reassignMessageValidator(ctx, newVal, msg.GetId(), opt.QueueTypeName); err != nil {
97+
if err := k.reassignMessageValidator(ctx, newVal, newRemoteAddr, msg.GetId(), opt.QueueTypeName); err != nil {
9898
logger.WithError(err).Error("failed to reassign new validator to message.")
9999
return err
100100
}

x/consensus/keeper/concensus_keeper.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ func (k Keeper) SetMessageErrorData(
641641

642642
func (k Keeper) reassignMessageValidator(
643643
ctx sdk.Context,
644-
valAddr string,
644+
valAddr, remoteAddr string,
645645
msgID uint64,
646646
queueTypeName string,
647647
) error {
@@ -659,7 +659,7 @@ func (k Keeper) reassignMessageValidator(
659659
"new-assignee", valAddr,
660660
)
661661

662-
return cq.ReassignValidator(ctx, msgID, valAddr)
662+
return cq.ReassignValidator(ctx, msgID, valAddr, remoteAddr)
663663
}
664664

665665
func nonceFromID(id uint64) []byte {

x/consensus/keeper/consensus/batch.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,8 @@ func (c BatchQueue) AddEvidence(ctx context.Context, id uint64, evidence *types.
169169
return c.base.AddEvidence(sdkCtx, id, evidence)
170170
}
171171

172-
func (c BatchQueue) ReassignValidator(ctx sdk.Context, id uint64, val string) error {
173-
return c.base.ReassignValidator(ctx, id, val)
172+
func (c BatchQueue) ReassignValidator(ctx sdk.Context, id uint64, val, remoteAddr string) error {
173+
return c.base.ReassignValidator(ctx, id, val, remoteAddr)
174174
}
175175

176176
func (c BatchQueue) SetPublicAccessData(ctx context.Context, id uint64, data *types.PublicAccessData) error {

x/consensus/keeper/consensus/consensus.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,10 +226,10 @@ func (c Queue) AddEvidence(ctx context.Context, msgID uint64, evidence *types.Ev
226226

227227
type assignableMessage interface {
228228
proto.Message
229-
SetAssignee(ctx sdk.Context, val string)
229+
SetAssignee(ctx sdk.Context, val, remoteAddr string)
230230
}
231231

232-
func (c Queue) ReassignValidator(ctx sdk.Context, msgID uint64, val string) error {
232+
func (c Queue) ReassignValidator(ctx sdk.Context, msgID uint64, val, remoteAddr string) error {
233233
imsg, err := c.GetMsgByID(ctx, msgID)
234234
if err != nil {
235235
return err
@@ -243,7 +243,7 @@ func (c Queue) ReassignValidator(ctx sdk.Context, msgID uint64, val string) erro
243243
if !ok {
244244
return fmt.Errorf("message does not support setting assignee")
245245
}
246-
assignable.SetAssignee(ctx, val)
246+
assignable.SetAssignee(ctx, val, remoteAddr)
247247
var a proto.Message
248248
a = assignable
249249
msg := imsg.(*types.QueuedSignedMessage)

x/consensus/keeper/consensus/mocks/Queuer.go

Lines changed: 6 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

x/consensus/keeper/consensus/types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ type Queuer interface {
3737
GetAll(context.Context) ([]types.QueuedSignedMessageI, error)
3838
GetMsgByID(ctx context.Context, id uint64) (types.QueuedSignedMessageI, error)
3939
ChainInfo() (types.ChainType, string)
40-
ReassignValidator(ctx sdk.Context, id uint64, val string) error
40+
ReassignValidator(ctx sdk.Context, id uint64, val, remoteAddr string) error
4141
}
4242

4343
type QueueBatcher interface {

x/consensus/types/consensus.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,10 @@ func (q *QueuedSignedMessage) GetBytesToSign(unpacker AnyUnpacker) ([]byte, erro
9090
}
9191

9292
k := msg.(interface {
93-
Keccak256(uint64) []byte
93+
Keccak256WithSignedMessage(*QueuedSignedMessage) ([]byte, error)
9494
})
9595

96-
return k.Keccak256(q.GetId()), nil
96+
return k.Keccak256WithSignedMessage(q)
9797
}
9898

9999
func (q *QueuedSignedMessage) String() string {
@@ -179,8 +179,8 @@ func (b *Batch) GetSignBytes() []byte {
179179
}
180180

181181
// TODO should compute hash from msgs hashes
182-
func (b *Batch) Keccak256(_ uint64) []byte {
183-
return nil
182+
func (b *Batch) Keccak256WithSignedMessage(_ *QueuedSignedMessage) ([]byte, error) {
183+
return nil, nil
184184
}
185185

186186
func Queue(queueTypeName string, typ xchain.Type, refID xchain.ReferenceID) string {

x/consensus/types/expected_keepers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@ type ValsetKeeper interface {
3131

3232
//go:generate mockery --name=EvmKeeper
3333
type EvmKeeper interface {
34-
PickValidatorForMessage(ctx context.Context, chainReferenceID string, requirements *xchain.JobRequirements) (string, error)
34+
PickValidatorForMessage(ctx context.Context, chainReferenceID string, requirements *xchain.JobRequirements) (string, string, error)
3535
}

x/consensus/types/mocks/EvmKeeper.go

Lines changed: 14 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)