diff --git a/CHANGELOG.md b/CHANGELOG.md index eb0837bab3e..2eae99850e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ - [11196](https://github.com/vegaprotocol/vega/issues/11196) - Add an active field in the price monitoring bounds payload. - [11211](https://github.com/vegaprotocol/vega/issues/11211) - Liquidation engine includes `vAMM` shapes as available volume. - [11217](https://github.com/vegaprotocol/vega/issues/11217) - Allow market proposals to override risk factors. +- [11285](https://github.com/vegaprotocol/vega/issues/11285) - Add support for trading transaction ordering. ### 🐛 Fixes diff --git a/commands/transaction.go b/commands/transaction.go index 500dffcd214..7602d30c97c 100644 --- a/commands/transaction.go +++ b/commands/transaction.go @@ -264,6 +264,8 @@ func CheckInputData(rawInputData []byte) (*commandspb.InputData, Errors) { errs.Merge(checkAmendAMM(cmd.AmendAmm)) case *commandspb.InputData_CancelAmm: errs.Merge(checkCancelAMM(cmd.CancelAmm)) + case *commandspb.InputData_DelayedTransactionsWrapper: + break default: errs.AddForProperty("tx.input_data.command", ErrIsNotSupported) } diff --git a/core/blockchain/abci/abci.go b/core/blockchain/abci/abci.go index eddb59a4826..ad6869c66dd 100644 --- a/core/blockchain/abci/abci.go +++ b/core/blockchain/abci/abci.go @@ -148,11 +148,14 @@ func (app *App) FinalizeBlock(_ context.Context, req *types.RequestFinalizeBlock blockHeight := uint64(req.Height) blockTime := req.Time + println("FinalizeBlock", req.Height) + txs := make([]Tx, 0, len(req.Txs)) for _, rtx := range req.Txs { // getTx can't fail at this point as we've verified on processProposal, however as it can fail in nullblockchain, handle it here tx, _, err := app.getTx(rtx) if err != nil { + println("getTx failed!!!!") continue } app.removeTxFromCache(rtx) @@ -167,6 +170,7 @@ func (app *App) FinalizeBlock(_ context.Context, req *types.RequestFinalizeBlock // there must be a handling function at this point fn := app.deliverTxs[tx.Command()] txHash := hex.EncodeToString(tx.Hash()) + println("processing transaction", txHash) ctx := vgcontext.WithTxHash(app.ctx, txHash) // process the transaction and handle errors var result *types.ExecTxResult diff --git a/core/events/transaction_result.go b/core/events/transaction_result.go index a6541256f5d..6187393e336 100644 --- a/core/events/transaction_result.go +++ b/core/events/transaction_result.go @@ -82,6 +82,8 @@ func NewTransactionResultEventFailure( func (t *TransactionResult) setTx(tx interface{}) *TransactionResult { switch tv := tx.(type) { + case *commandspb.DelayedTransactionsWrapper: + break case *commandspb.OrderSubmission: t.evt.Transaction = &eventspb.TransactionResult_OrderSubmission{ OrderSubmission: tv, diff --git a/core/nodewallets/commander.go b/core/nodewallets/commander.go index b6927130722..f483e71e44f 100644 --- a/core/nodewallets/commander.go +++ b/core/nodewallets/commander.go @@ -70,6 +70,36 @@ func NewCommander(cfg Config, log *logging.Logger, bc Chain, w *vega.Wallet, bst }, nil } +func (c *Commander) NewTransaction(ctx context.Context, cmd txn.Command, payload proto.Message) ([]byte, error) { + chainID, err := c.bc.GetChainID(ctx) + if err != nil { + c.log.Error("couldn't retrieve chain ID", + logging.Error(err), + ) + return nil, err + } + inputData := commands.NewInputData(c.bstats.Height()) + wrapPayloadIntoInputData(inputData, cmd, payload) + marshalInputData, err := commands.MarshalInputData(inputData) + if err != nil { + // this should never be possible + c.log.Panic("could not marshal core transaction", logging.Error(err)) + } + + signature, err := c.sign(commands.BundleInputDataForSigning(marshalInputData, chainID)) + if err != nil { + // this should never be possible too + c.log.Panic("could not sign command", logging.Error(err)) + } + + tx := commands.NewTransaction(c.wallet.PubKey().Hex(), marshalInputData, signature) + marshalledTx, err := proto.Marshal(tx) + if err != nil { + return nil, err + } + return marshalledTx, nil +} + // Command - send command to chain. // Note: beware when passing in an exponential back off since the done function may be called many times. func (c *Commander) Command(ctx context.Context, cmd txn.Command, payload proto.Message, done func(string, error), bo *backoff.ExponentialBackOff) { @@ -165,6 +195,12 @@ func wrapPayloadIntoInputData(data *commandspb.InputData, cmd txn.Command, paylo switch cmd { case txn.SubmitOrderCommand, txn.CancelOrderCommand, txn.AmendOrderCommand, txn.VoteCommand, txn.WithdrawCommand, txn.LiquidityProvisionCommand, txn.ProposeCommand, txn.BatchProposeCommand, txn.SubmitOracleDataCommand, txn.StopOrdersCancellationCommand, txn.StopOrdersSubmissionCommand: panic("command is not supported to be sent by a node.") + case txn.DelayedTransactionsWrapper: + if underlyingCmd, ok := payload.(*commandspb.DelayedTransactionsWrapper); ok { + data.Command = &commandspb.InputData_DelayedTransactionsWrapper{ + DelayedTransactionsWrapper: underlyingCmd, + } + } case txn.ProtocolUpgradeCommand: if underlyingCmd, ok := payload.(*commandspb.ProtocolUpgradeProposal); ok { data.Command = &commandspb.InputData_ProtocolUpgradeProposal{ diff --git a/core/processor/abci.go b/core/processor/abci.go index 82e6b7142f6..db51fa64690 100644 --- a/core/processor/abci.go +++ b/core/processor/abci.go @@ -61,6 +61,7 @@ import ( eventspb "code.vegaprotocol.io/vega/protos/vega/events/v1" tmtypes "github.com/cometbft/cometbft/abci/types" + "github.com/cometbft/cometbft/crypto/tmhash" tmtypes1 "github.com/cometbft/cometbft/proto/tendermint/types" types1 "github.com/cometbft/cometbft/proto/tendermint/types" tmtypesint "github.com/cometbft/cometbft/types" @@ -192,6 +193,12 @@ type EthCallEngine interface { Start() } +type TxCache interface { + SetRawTxs(rtx [][]byte) + GetRawTxs() [][]byte + NewDelayedTransaction(ctx context.Context, delayed [][]byte) []byte +} + type App struct { abci *abci.App currentTimestamp time.Time @@ -253,6 +260,7 @@ type App struct { nilSpam bool maxBatchSize atomic.Uint64 + txCache TxCache } func NewApp(log *logging.Logger, @@ -297,6 +305,7 @@ func NewApp(log *logging.Logger, ethCallEngine EthCallEngine, balanceChecker BalanceChecker, partiesEngine PartiesEngine, + txCache TxCache, ) *App { log = log.Named(namedLogger) log.SetLevel(config.Level.Get()) @@ -345,6 +354,7 @@ func NewApp(log *logging.Logger, ethCallEngine: ethCallEngine, balanceChecker: balanceChecker, partiesEngine: partiesEngine, + txCache: txCache, } // setup handlers @@ -527,7 +537,9 @@ func NewApp(log *logging.Logger, ). HandleDeliverTx(txn.UpdatePartyProfileCommand, app.SendTransactionResult(app.UpdatePartyProfile), - ) + ). + HandleDeliverTx(txn.DelayedTransactionsWrapper, + app.SendTransactionResult(app.handleDelayedTransactionWrapper)) app.time.NotifyOnTick(app.onTick) @@ -891,7 +903,10 @@ func (app *App) prepareProposal(txs []abci.Tx, rawTxs [][]byte) [][]byte { validationResults := []pow.ValidationEntry{} maxGas := app.getMaxGas() totalGasWanted := uint64(0) - blockTxs := [][]byte{} + cancellations := [][]byte{} + postOnly := [][]byte{} + anythingElseFromThisBlock := [][]byte{} + nextBlockRtx := [][]byte{} for _, tx := range wrappedTxs { totalBytes += int64(len(tx.raw)) @@ -903,6 +918,11 @@ func (app *App) prepareProposal(txs []abci.Tx, rawTxs [][]byte) [][]byte { break } + if tx.tx.Command() == txn.DelayedTransactionsWrapper { + app.log.Debug("delayed transaction wrapper should never be submitted into the mempool") + continue + } + if !app.nilPow { vr, d := app.pow.CheckBlockTx(tx.tx) validationResults = append(validationResults, pow.ValidationEntry{Tx: tx.tx, Difficulty: d, ValResult: vr}) @@ -923,9 +943,71 @@ func (app *App) prepareProposal(txs []abci.Tx, rawTxs [][]byte) [][]byte { if err := app.canSubmitTx(tx.tx); err != nil { continue } - app.log.Debug("adding tx to blockProposal", logging.String("tx-hash", hex.EncodeToString(tx.tx.Hash())), logging.String("tid", tx.tx.GetPoWTID())) - blockTxs = append(blockTxs, tx.raw) + + switch tx.tx.Command() { + case txn.CancelOrderCommand, txn.CancelAMMCommand, txn.StopOrdersCancellationCommand: + cancellations = append(cancellations, tx.raw) + case txn.SubmitOrderCommand: + s := &commandspb.OrderSubmission{} + if err := tx.tx.Unmarshal(s); err != nil { + continue + } + if s.PostOnly { + postOnly = append(postOnly, tx.raw) + } else { + nextBlockRtx = append(nextBlockRtx, tx.raw) + } + case txn.AmendOrderCommand, txn.AmendAMMCommand, txn.StopOrdersSubmissionCommand: + nextBlockRtx = append(nextBlockRtx, tx.raw) + case txn.BatchMarketInstructions: + batch := &commandspb.BatchMarketInstructions{} + if err := tx.tx.Unmarshal(batch); err != nil { + continue + } + // if there are no amends/submissions + if len(batch.Amendments) == 0 && len(batch.Submissions) == 0 && len(batch.StopOrdersSubmission) == 0 { + cancellations = append(cancellations, tx.raw) + } else if len(batch.Amendments) == 0 && len(batch.StopOrdersSubmission) == 0 { + allPostOnly := true + for _, sub := range batch.Submissions { + if !sub.PostOnly { + allPostOnly = false + break + } + } + if allPostOnly { + postOnly = append(postOnly, tx.raw) + continue + } + } else { + nextBlockRtx = append(nextBlockRtx, tx.raw) + } + default: + anythingElseFromThisBlock = append(anythingElseFromThisBlock, tx.raw) + } + + app.log.Info("adding tx to blockProposal", logging.String("tx-hash", hex.EncodeToString(tx.tx.Hash())), logging.String("tid", tx.tx.GetPoWTID())) + } + + blockTxs := [][]byte{} + blockTxs = append(blockTxs, cancellations...) // cancellations go first + blockTxs = append(blockTxs, postOnly...) // then post only orders + if app.txCache.GetRawTxs() != nil { + println("adding from previous block", len(app.txCache.GetRawTxs())) + blockTxs = append(blockTxs, app.txCache.GetRawTxs()...) // then anything from previous block + } + blockTxs = append(blockTxs, anythingElseFromThisBlock...) // finally anything else from this block + blockTxs = append(blockTxs, app.txCache.NewDelayedTransaction(app.blockCtx, nextBlockRtx)) + + println("block proposal") + for i, ttxx := range blockTxs { + println(i, tmhash.Sum(ttxx)) } + println("with delayed transactions:") + for i, ttxx := range nextBlockRtx { + println(i, tmhash.Sum(ttxx)) + } + app.log.Debug("prepareProposal returned with", logging.Int("blockTxs", len(blockTxs))) if !app.nilPow { app.pow.EndPrepareProposal(validationResults) @@ -947,6 +1029,8 @@ func (app *App) processProposal(txs []abci.Tx) bool { maxGas := app.gastimator.GetMaxGas() maxBytes := tmtypesint.DefaultBlockParams().MaxBytes * 4 size := int64(0) + delayedTxCount := 0 + for _, tx := range txs { size += int64(tx.GetLength()) if size > maxBytes { @@ -960,6 +1044,13 @@ func (app *App) processProposal(txs []abci.Tx) bool { if totalGasWanted > int(maxGas) { return false } + // allow only one delayed transaction wrapper in one block and its transactions must match what we expect. + if tx.Command() == txn.DelayedTransactionsWrapper { + if delayedTxCount > 0 { + return false + } + delayedTxCount += 1 + } } if !app.nilPow && !app.pow.ProcessProposal(txs) { @@ -2715,6 +2806,17 @@ func (app *App) JoinTeam(ctx context.Context, tx abci.Tx) error { return nil } +func (app *App) handleDelayedTransactionWrapper(ctx context.Context, tx abci.Tx) error { + txs := &commandspb.DelayedTransactionsWrapper{} + if err := tx.Unmarshal(txs); err != nil { + println("failed to unmarshal delayed tx wrapper", err.Error()) + return fmt.Errorf("could not deserialize DelayedTransactionsWrapper command: %w", err) + } + println("setting tx cache to ", len(txs.Transactions), "transactions") + app.txCache.SetRawTxs(txs.Transactions) + return nil +} + func (app *App) UpdatePartyProfile(ctx context.Context, tx abci.Tx) error { params := &commandspb.UpdatePartyProfile{} if err := tx.Unmarshal(params); err != nil { diff --git a/core/processor/tx.go b/core/processor/tx.go index 20c1c73f7f2..a2fad51f70a 100644 --- a/core/processor/tx.go +++ b/core/processor/tx.go @@ -78,6 +78,8 @@ func DecodeTx(payload []byte, chainID string) (*Tx, error) { func (t Tx) Command() txn.Command { switch cmd := t.inputData.Command.(type) { + case *commandspb.InputData_DelayedTransactionsWrapper: + return txn.DelayedTransactionsWrapper case *commandspb.InputData_OrderSubmission: return txn.SubmitOrderCommand case *commandspb.InputData_OrderCancellation: @@ -261,6 +263,8 @@ func (t Tx) GetCmd() interface{} { return cmd.AmendAmm case *commandspb.InputData_CancelAmm: return cmd.CancelAmm + case *commandspb.InputData_DelayedTransactionsWrapper: + return cmd.DelayedTransactionsWrapper default: return fmt.Errorf("command %T is not supported", cmd) } @@ -490,6 +494,12 @@ func (t Tx) Unmarshal(i interface{}) error { return errors.New("failed to unmarshall to CancelAMM") } *underlyingCmd = *cmd.CancelAmm + case *commandspb.InputData_DelayedTransactionsWrapper: + underlyingCmd, ok := i.(*commandspb.DelayedTransactionsWrapper) + if !ok { + return errors.New("failed to unmarshall to DelayedTransactionsWrapper") + } + *underlyingCmd = *cmd.DelayedTransactionsWrapper default: return fmt.Errorf("command %T is not supported", cmd) } diff --git a/core/protocol/all_services.go b/core/protocol/all_services.go index 8b4482e8290..670486d2eef 100644 --- a/core/protocol/all_services.go +++ b/core/protocol/all_services.go @@ -63,6 +63,7 @@ import ( "code.vegaprotocol.io/vega/core/statevar" "code.vegaprotocol.io/vega/core/stats" "code.vegaprotocol.io/vega/core/teams" + "code.vegaprotocol.io/vega/core/txcache" "code.vegaprotocol.io/vega/core/types" "code.vegaprotocol.io/vega/core/validators" "code.vegaprotocol.io/vega/core/validators/erc20multisig" @@ -128,6 +129,7 @@ type allServices struct { ethereumOraclesVerifier *ethverifier.Verifier partiesEngine *parties.SnapshottedEngine + txCache *txcache.TxCache assets *assets.Service topology *validators.Topology @@ -289,6 +291,7 @@ func newServices( svcs.teamsEngine = teams.NewSnapshottedEngine(svcs.broker, svcs.timeService) svcs.partiesEngine = parties.NewSnapshottedEngine(svcs.broker) + svcs.txCache = txcache.NewTxCache(svcs.commander) svcs.statevar = statevar.New(svcs.log, svcs.conf.StateVar, svcs.broker, svcs.topology, svcs.commander) svcs.marketActivityTracker = common.NewMarketActivityTracker(svcs.log, svcs.teamsEngine, svcs.stakingAccounts, svcs.broker) diff --git a/core/protocol/protocol.go b/core/protocol/protocol.go index 86383ab3b30..dc74f82a981 100644 --- a/core/protocol/protocol.go +++ b/core/protocol/protocol.go @@ -151,6 +151,7 @@ func New( svcs.ethCallEngine, svcs.collateral, svcs.partiesEngine, + svcs.txCache, ), log: log, confWatcher: confWatcher, diff --git a/core/txcache/cache.go b/core/txcache/cache.go new file mode 100644 index 00000000000..13e62b74c93 --- /dev/null +++ b/core/txcache/cache.go @@ -0,0 +1,52 @@ +// Copyright (C) 2023 Gobalsky Labs Limited +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package txcache + +import ( + "context" + + "code.vegaprotocol.io/vega/core/nodewallets" + "code.vegaprotocol.io/vega/core/txn" + commandspb "code.vegaprotocol.io/vega/protos/vega/commands/v1" +) + +func NewTxCache(commander *nodewallets.Commander) *TxCache { + return &TxCache{ + commander: commander, + } +} + +type TxCache struct { + commander *nodewallets.Commander + rtxs [][]byte +} + +func (t *TxCache) NewDelayedTransaction(ctx context.Context, delayed [][]byte) []byte { + payload := &commandspb.DelayedTransactionsWrapper{Transactions: delayed} + tx, err := t.commander.NewTransaction(ctx, txn.DelayedTransactionsWrapper, payload) + if err != nil { + panic(err.Error()) + } + return tx +} + +func (t *TxCache) SetRawTxs(rtx [][]byte) { + t.rtxs = rtx +} + +func (t *TxCache) GetRawTxs() [][]byte { + return t.rtxs +} diff --git a/core/txn/command.go b/core/txn/command.go index 5d4ed97b1e1..8ddfae5da3f 100644 --- a/core/txn/command.go +++ b/core/txn/command.go @@ -94,6 +94,8 @@ const ( AmendAMMCommand Command = 0x65 // CancelAMMCommand ... CancelAMMCommand Command = 0x66 + // DelayedTransactionsWrapper ... + DelayedTransactionsWrapper Command = 0x67 ) var commandName = map[Command]string{ @@ -134,11 +136,12 @@ var commandName = map[Command]string{ SubmitAMMCommand: "Submit AMM", AmendAMMCommand: "Amend AMM", CancelAMMCommand: "Cancel AMM", + DelayedTransactionsWrapper: "Delatyed Transactions Wrapper", } func (cmd Command) IsValidatorCommand() bool { switch cmd { - case NodeSignatureCommand, ChainEventCommand, NodeVoteCommand, ValidatorHeartbeatCommand, RotateKeySubmissionCommand, StateVariableProposalCommand, RotateEthereumKeySubmissionCommand: + case DelayedTransactionsWrapper, NodeSignatureCommand, ChainEventCommand, NodeVoteCommand, ValidatorHeartbeatCommand, RotateKeySubmissionCommand, StateVariableProposalCommand, RotateEthereumKeySubmissionCommand: return true default: return false diff --git a/protos/sources/vega/commands/v1/commands.proto b/protos/sources/vega/commands/v1/commands.proto index 03d17159eff..6b2c4c83b07 100644 --- a/protos/sources/vega/commands/v1/commands.proto +++ b/protos/sources/vega/commands/v1/commands.proto @@ -497,3 +497,7 @@ message CancelAMM { // Method to use to cancel the AMM. Method method = 2; } + +message DelayedTransactionsWrapper { + repeated bytes transactions = 1; +} diff --git a/protos/sources/vega/commands/v1/transaction.proto b/protos/sources/vega/commands/v1/transaction.proto index 14d902d3888..052daee95ff 100644 --- a/protos/sources/vega/commands/v1/transaction.proto +++ b/protos/sources/vega/commands/v1/transaction.proto @@ -96,6 +96,8 @@ message InputData { IssueSignatures issue_signatures = 2010; // Command to submit external oracle data. OracleDataSubmission oracle_data_submission = 3001; + // Internal transactions used to convey delayed transactions to be included in the next block. + DelayedTransactionsWrapper delayed_transactions_wrapper = 4000; } } diff --git a/protos/vega/commands/v1/commands.pb.go b/protos/vega/commands/v1/commands.pb.go index 535a80e2a4c..2b0afcce050 100644 --- a/protos/vega/commands/v1/commands.pb.go +++ b/protos/vega/commands/v1/commands.pb.go @@ -2560,6 +2560,53 @@ func (x *CancelAMM) GetMethod() CancelAMM_Method { return CancelAMM_METHOD_UNSPECIFIED } +type DelayedTransactionsWrapper struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Transactions [][]byte `protobuf:"bytes,1,rep,name=transactions,proto3" json:"transactions,omitempty"` +} + +func (x *DelayedTransactionsWrapper) Reset() { + *x = DelayedTransactionsWrapper{} + if protoimpl.UnsafeEnabled { + mi := &file_vega_commands_v1_commands_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelayedTransactionsWrapper) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelayedTransactionsWrapper) ProtoMessage() {} + +func (x *DelayedTransactionsWrapper) ProtoReflect() protoreflect.Message { + mi := &file_vega_commands_v1_commands_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DelayedTransactionsWrapper.ProtoReflect.Descriptor instead. +func (*DelayedTransactionsWrapper) Descriptor() ([]byte, []int) { + return file_vega_commands_v1_commands_proto_rawDescGZIP(), []int{32} +} + +func (x *DelayedTransactionsWrapper) GetTransactions() [][]byte { + if x != nil { + return x.Transactions + } + return nil +} + type CreateReferralSet_Team struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2582,7 +2629,7 @@ type CreateReferralSet_Team struct { func (x *CreateReferralSet_Team) Reset() { *x = CreateReferralSet_Team{} if protoimpl.UnsafeEnabled { - mi := &file_vega_commands_v1_commands_proto_msgTypes[32] + mi := &file_vega_commands_v1_commands_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2595,7 +2642,7 @@ func (x *CreateReferralSet_Team) String() string { func (*CreateReferralSet_Team) ProtoMessage() {} func (x *CreateReferralSet_Team) ProtoReflect() protoreflect.Message { - mi := &file_vega_commands_v1_commands_proto_msgTypes[32] + mi := &file_vega_commands_v1_commands_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2669,7 +2716,7 @@ type UpdateReferralSet_Team struct { func (x *UpdateReferralSet_Team) Reset() { *x = UpdateReferralSet_Team{} if protoimpl.UnsafeEnabled { - mi := &file_vega_commands_v1_commands_proto_msgTypes[33] + mi := &file_vega_commands_v1_commands_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2682,7 +2729,7 @@ func (x *UpdateReferralSet_Team) String() string { func (*UpdateReferralSet_Team) ProtoMessage() {} func (x *UpdateReferralSet_Team) ProtoReflect() protoreflect.Message { - mi := &file_vega_commands_v1_commands_proto_msgTypes[33] + mi := &file_vega_commands_v1_commands_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2754,7 +2801,7 @@ type SubmitAMM_ConcentratedLiquidityParameters struct { func (x *SubmitAMM_ConcentratedLiquidityParameters) Reset() { *x = SubmitAMM_ConcentratedLiquidityParameters{} if protoimpl.UnsafeEnabled { - mi := &file_vega_commands_v1_commands_proto_msgTypes[34] + mi := &file_vega_commands_v1_commands_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2767,7 +2814,7 @@ func (x *SubmitAMM_ConcentratedLiquidityParameters) String() string { func (*SubmitAMM_ConcentratedLiquidityParameters) ProtoMessage() {} func (x *SubmitAMM_ConcentratedLiquidityParameters) ProtoReflect() protoreflect.Message { - mi := &file_vega_commands_v1_commands_proto_msgTypes[34] + mi := &file_vega_commands_v1_commands_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2839,7 +2886,7 @@ type AmendAMM_ConcentratedLiquidityParameters struct { func (x *AmendAMM_ConcentratedLiquidityParameters) Reset() { *x = AmendAMM_ConcentratedLiquidityParameters{} if protoimpl.UnsafeEnabled { - mi := &file_vega_commands_v1_commands_proto_msgTypes[35] + mi := &file_vega_commands_v1_commands_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2852,7 +2899,7 @@ func (x *AmendAMM_ConcentratedLiquidityParameters) String() string { func (*AmendAMM_ConcentratedLiquidityParameters) ProtoMessage() {} func (x *AmendAMM_ConcentratedLiquidityParameters) ProtoReflect() protoreflect.Message { - mi := &file_vega_commands_v1_commands_proto_msgTypes[35] + mi := &file_vega_commands_v1_commands_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3370,11 +3417,15 @@ var file_vega_commands_v1_commands_proto_rawDesc = []byte{ 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x49, 0x4d, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x52, 0x45, 0x44, 0x55, 0x43, 0x45, 0x5f, 0x4f, - 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x42, 0x33, 0x5a, 0x31, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x65, - 0x67, 0x61, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x65, - 0x67, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x67, 0x61, 0x2f, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x22, 0x40, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x57, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x33, 0x5a, 0x31, 0x63, 0x6f, 0x64, 0x65, 0x2e, + 0x76, 0x65, 0x67, 0x61, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x69, 0x6f, 0x2f, + 0x76, 0x65, 0x67, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x67, 0x61, + 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3390,7 +3441,7 @@ func file_vega_commands_v1_commands_proto_rawDescGZIP() []byte { } var file_vega_commands_v1_commands_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_vega_commands_v1_commands_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_vega_commands_v1_commands_proto_msgTypes = make([]protoimpl.MessageInfo, 37) var file_vega_commands_v1_commands_proto_goTypes = []interface{}{ (UpdateMarginMode_Mode)(0), // 0: vega.commands.v1.UpdateMarginMode.Mode (UndelegateSubmission_Method)(0), // 1: vega.commands.v1.UndelegateSubmission.Method @@ -3427,27 +3478,28 @@ var file_vega_commands_v1_commands_proto_goTypes = []interface{}{ (*SubmitAMM)(nil), // 32: vega.commands.v1.SubmitAMM (*AmendAMM)(nil), // 33: vega.commands.v1.AmendAMM (*CancelAMM)(nil), // 34: vega.commands.v1.CancelAMM - (*CreateReferralSet_Team)(nil), // 35: vega.commands.v1.CreateReferralSet.Team - (*UpdateReferralSet_Team)(nil), // 36: vega.commands.v1.UpdateReferralSet.Team - (*SubmitAMM_ConcentratedLiquidityParameters)(nil), // 37: vega.commands.v1.SubmitAMM.ConcentratedLiquidityParameters - (*AmendAMM_ConcentratedLiquidityParameters)(nil), // 38: vega.commands.v1.AmendAMM.ConcentratedLiquidityParameters - (vega.StopOrder_ExpiryStrategy)(0), // 39: vega.StopOrder.ExpiryStrategy - (vega.StopOrder_SizeOverrideSetting)(0), // 40: vega.StopOrder.SizeOverrideSetting - (*vega.StopOrder_SizeOverrideValue)(nil), // 41: vega.StopOrder.SizeOverrideValue - (vega.Side)(0), // 42: vega.Side - (vega.Order_TimeInForce)(0), // 43: vega.Order.TimeInForce - (vega.Order_Type)(0), // 44: vega.Order.Type - (*vega.PeggedOrder)(nil), // 45: vega.PeggedOrder - (vega.PeggedReference)(0), // 46: vega.PeggedReference - (*vega.WithdrawExt)(nil), // 47: vega.WithdrawExt - (*vega.ProposalTerms)(nil), // 48: vega.ProposalTerms - (*vega.ProposalRationale)(nil), // 49: vega.ProposalRationale - (*vega.BatchProposalTermsChange)(nil), // 50: vega.BatchProposalTermsChange - (vega.Vote_Value)(0), // 51: vega.Vote.Value - (vega.AccountType)(0), // 52: vega.AccountType - (*vega.DispatchStrategy)(nil), // 53: vega.DispatchStrategy - (NodeSignatureKind)(0), // 54: vega.commands.v1.NodeSignatureKind - (*vega.Metadata)(nil), // 55: vega.Metadata + (*DelayedTransactionsWrapper)(nil), // 35: vega.commands.v1.DelayedTransactionsWrapper + (*CreateReferralSet_Team)(nil), // 36: vega.commands.v1.CreateReferralSet.Team + (*UpdateReferralSet_Team)(nil), // 37: vega.commands.v1.UpdateReferralSet.Team + (*SubmitAMM_ConcentratedLiquidityParameters)(nil), // 38: vega.commands.v1.SubmitAMM.ConcentratedLiquidityParameters + (*AmendAMM_ConcentratedLiquidityParameters)(nil), // 39: vega.commands.v1.AmendAMM.ConcentratedLiquidityParameters + (vega.StopOrder_ExpiryStrategy)(0), // 40: vega.StopOrder.ExpiryStrategy + (vega.StopOrder_SizeOverrideSetting)(0), // 41: vega.StopOrder.SizeOverrideSetting + (*vega.StopOrder_SizeOverrideValue)(nil), // 42: vega.StopOrder.SizeOverrideValue + (vega.Side)(0), // 43: vega.Side + (vega.Order_TimeInForce)(0), // 44: vega.Order.TimeInForce + (vega.Order_Type)(0), // 45: vega.Order.Type + (*vega.PeggedOrder)(nil), // 46: vega.PeggedOrder + (vega.PeggedReference)(0), // 47: vega.PeggedReference + (*vega.WithdrawExt)(nil), // 48: vega.WithdrawExt + (*vega.ProposalTerms)(nil), // 49: vega.ProposalTerms + (*vega.ProposalRationale)(nil), // 50: vega.ProposalRationale + (*vega.BatchProposalTermsChange)(nil), // 51: vega.BatchProposalTermsChange + (vega.Vote_Value)(0), // 52: vega.Vote.Value + (vega.AccountType)(0), // 53: vega.AccountType + (*vega.DispatchStrategy)(nil), // 54: vega.DispatchStrategy + (NodeSignatureKind)(0), // 55: vega.commands.v1.NodeSignatureKind + (*vega.Metadata)(nil), // 56: vega.Metadata } var file_vega_commands_v1_commands_proto_depIdxs = []int32{ 10, // 0: vega.commands.v1.BatchMarketInstructions.cancellations:type_name -> vega.commands.v1.OrderCancellation @@ -3459,36 +3511,36 @@ var file_vega_commands_v1_commands_proto_depIdxs = []int32{ 5, // 6: vega.commands.v1.StopOrdersSubmission.rises_above:type_name -> vega.commands.v1.StopOrderSetup 5, // 7: vega.commands.v1.StopOrdersSubmission.falls_below:type_name -> vega.commands.v1.StopOrderSetup 7, // 8: vega.commands.v1.StopOrderSetup.order_submission:type_name -> vega.commands.v1.OrderSubmission - 39, // 9: vega.commands.v1.StopOrderSetup.expiry_strategy:type_name -> vega.StopOrder.ExpiryStrategy - 40, // 10: vega.commands.v1.StopOrderSetup.size_override_setting:type_name -> vega.StopOrder.SizeOverrideSetting - 41, // 11: vega.commands.v1.StopOrderSetup.size_override_value:type_name -> vega.StopOrder.SizeOverrideValue - 42, // 12: vega.commands.v1.OrderSubmission.side:type_name -> vega.Side - 43, // 13: vega.commands.v1.OrderSubmission.time_in_force:type_name -> vega.Order.TimeInForce - 44, // 14: vega.commands.v1.OrderSubmission.type:type_name -> vega.Order.Type - 45, // 15: vega.commands.v1.OrderSubmission.pegged_order:type_name -> vega.PeggedOrder + 40, // 9: vega.commands.v1.StopOrderSetup.expiry_strategy:type_name -> vega.StopOrder.ExpiryStrategy + 41, // 10: vega.commands.v1.StopOrderSetup.size_override_setting:type_name -> vega.StopOrder.SizeOverrideSetting + 42, // 11: vega.commands.v1.StopOrderSetup.size_override_value:type_name -> vega.StopOrder.SizeOverrideValue + 43, // 12: vega.commands.v1.OrderSubmission.side:type_name -> vega.Side + 44, // 13: vega.commands.v1.OrderSubmission.time_in_force:type_name -> vega.Order.TimeInForce + 45, // 14: vega.commands.v1.OrderSubmission.type:type_name -> vega.Order.Type + 46, // 15: vega.commands.v1.OrderSubmission.pegged_order:type_name -> vega.PeggedOrder 8, // 16: vega.commands.v1.OrderSubmission.iceberg_opts:type_name -> vega.commands.v1.IcebergOpts 0, // 17: vega.commands.v1.UpdateMarginMode.mode:type_name -> vega.commands.v1.UpdateMarginMode.Mode - 43, // 18: vega.commands.v1.OrderAmendment.time_in_force:type_name -> vega.Order.TimeInForce - 46, // 19: vega.commands.v1.OrderAmendment.pegged_reference:type_name -> vega.PeggedReference - 47, // 20: vega.commands.v1.WithdrawSubmission.ext:type_name -> vega.WithdrawExt - 48, // 21: vega.commands.v1.ProposalSubmission.terms:type_name -> vega.ProposalTerms - 49, // 22: vega.commands.v1.ProposalSubmission.rationale:type_name -> vega.ProposalRationale - 50, // 23: vega.commands.v1.BatchProposalSubmissionTerms.changes:type_name -> vega.BatchProposalTermsChange + 44, // 18: vega.commands.v1.OrderAmendment.time_in_force:type_name -> vega.Order.TimeInForce + 47, // 19: vega.commands.v1.OrderAmendment.pegged_reference:type_name -> vega.PeggedReference + 48, // 20: vega.commands.v1.WithdrawSubmission.ext:type_name -> vega.WithdrawExt + 49, // 21: vega.commands.v1.ProposalSubmission.terms:type_name -> vega.ProposalTerms + 50, // 22: vega.commands.v1.ProposalSubmission.rationale:type_name -> vega.ProposalRationale + 51, // 23: vega.commands.v1.BatchProposalSubmissionTerms.changes:type_name -> vega.BatchProposalTermsChange 17, // 24: vega.commands.v1.BatchProposalSubmission.terms:type_name -> vega.commands.v1.BatchProposalSubmissionTerms - 49, // 25: vega.commands.v1.BatchProposalSubmission.rationale:type_name -> vega.ProposalRationale - 51, // 26: vega.commands.v1.VoteSubmission.value:type_name -> vega.Vote.Value + 50, // 25: vega.commands.v1.BatchProposalSubmission.rationale:type_name -> vega.ProposalRationale + 52, // 26: vega.commands.v1.VoteSubmission.value:type_name -> vega.Vote.Value 1, // 27: vega.commands.v1.UndelegateSubmission.method:type_name -> vega.commands.v1.UndelegateSubmission.Method - 52, // 28: vega.commands.v1.Transfer.from_account_type:type_name -> vega.AccountType - 52, // 29: vega.commands.v1.Transfer.to_account_type:type_name -> vega.AccountType + 53, // 28: vega.commands.v1.Transfer.from_account_type:type_name -> vega.AccountType + 53, // 29: vega.commands.v1.Transfer.to_account_type:type_name -> vega.AccountType 23, // 30: vega.commands.v1.Transfer.one_off:type_name -> vega.commands.v1.OneOffTransfer 24, // 31: vega.commands.v1.Transfer.recurring:type_name -> vega.commands.v1.RecurringTransfer - 53, // 32: vega.commands.v1.RecurringTransfer.dispatch_strategy:type_name -> vega.DispatchStrategy - 54, // 33: vega.commands.v1.IssueSignatures.kind:type_name -> vega.commands.v1.NodeSignatureKind - 35, // 34: vega.commands.v1.CreateReferralSet.team:type_name -> vega.commands.v1.CreateReferralSet.Team - 36, // 35: vega.commands.v1.UpdateReferralSet.team:type_name -> vega.commands.v1.UpdateReferralSet.Team - 55, // 36: vega.commands.v1.UpdatePartyProfile.metadata:type_name -> vega.Metadata - 37, // 37: vega.commands.v1.SubmitAMM.concentrated_liquidity_parameters:type_name -> vega.commands.v1.SubmitAMM.ConcentratedLiquidityParameters - 38, // 38: vega.commands.v1.AmendAMM.concentrated_liquidity_parameters:type_name -> vega.commands.v1.AmendAMM.ConcentratedLiquidityParameters + 54, // 32: vega.commands.v1.RecurringTransfer.dispatch_strategy:type_name -> vega.DispatchStrategy + 55, // 33: vega.commands.v1.IssueSignatures.kind:type_name -> vega.commands.v1.NodeSignatureKind + 36, // 34: vega.commands.v1.CreateReferralSet.team:type_name -> vega.commands.v1.CreateReferralSet.Team + 37, // 35: vega.commands.v1.UpdateReferralSet.team:type_name -> vega.commands.v1.UpdateReferralSet.Team + 56, // 36: vega.commands.v1.UpdatePartyProfile.metadata:type_name -> vega.Metadata + 38, // 37: vega.commands.v1.SubmitAMM.concentrated_liquidity_parameters:type_name -> vega.commands.v1.SubmitAMM.ConcentratedLiquidityParameters + 39, // 38: vega.commands.v1.AmendAMM.concentrated_liquidity_parameters:type_name -> vega.commands.v1.AmendAMM.ConcentratedLiquidityParameters 2, // 39: vega.commands.v1.CancelAMM.method:type_name -> vega.commands.v1.CancelAMM.Method 40, // [40:40] is the sub-list for method output_type 40, // [40:40] is the sub-list for method input_type @@ -3889,7 +3941,7 @@ func file_vega_commands_v1_commands_proto_init() { } } file_vega_commands_v1_commands_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateReferralSet_Team); i { + switch v := v.(*DelayedTransactionsWrapper); i { case 0: return &v.state case 1: @@ -3901,7 +3953,7 @@ func file_vega_commands_v1_commands_proto_init() { } } file_vega_commands_v1_commands_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateReferralSet_Team); i { + switch v := v.(*CreateReferralSet_Team); i { case 0: return &v.state case 1: @@ -3913,7 +3965,7 @@ func file_vega_commands_v1_commands_proto_init() { } } file_vega_commands_v1_commands_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubmitAMM_ConcentratedLiquidityParameters); i { + switch v := v.(*UpdateReferralSet_Team); i { case 0: return &v.state case 1: @@ -3925,6 +3977,18 @@ func file_vega_commands_v1_commands_proto_init() { } } file_vega_commands_v1_commands_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubmitAMM_ConcentratedLiquidityParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vega_commands_v1_commands_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AmendAMM_ConcentratedLiquidityParameters); i { case 0: return &v.state @@ -3954,17 +4018,17 @@ func file_vega_commands_v1_commands_proto_init() { file_vega_commands_v1_commands_proto_msgTypes[24].OneofWrappers = []interface{}{} file_vega_commands_v1_commands_proto_msgTypes[25].OneofWrappers = []interface{}{} file_vega_commands_v1_commands_proto_msgTypes[30].OneofWrappers = []interface{}{} - file_vega_commands_v1_commands_proto_msgTypes[32].OneofWrappers = []interface{}{} file_vega_commands_v1_commands_proto_msgTypes[33].OneofWrappers = []interface{}{} file_vega_commands_v1_commands_proto_msgTypes[34].OneofWrappers = []interface{}{} file_vega_commands_v1_commands_proto_msgTypes[35].OneofWrappers = []interface{}{} + file_vega_commands_v1_commands_proto_msgTypes[36].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_vega_commands_v1_commands_proto_rawDesc, NumEnums: 3, - NumMessages: 36, + NumMessages: 37, NumExtensions: 0, NumServices: 0, }, diff --git a/protos/vega/commands/v1/transaction.pb.go b/protos/vega/commands/v1/transaction.pb.go index be8fcf8961e..0b419fcf368 100644 --- a/protos/vega/commands/v1/transaction.pb.go +++ b/protos/vega/commands/v1/transaction.pb.go @@ -124,6 +124,7 @@ type InputData struct { // *InputData_ProtocolUpgradeProposal // *InputData_IssueSignatures // *InputData_OracleDataSubmission + // *InputData_DelayedTransactionsWrapper Command isInputData_Command `protobuf_oneof:"command"` } @@ -439,6 +440,13 @@ func (x *InputData) GetOracleDataSubmission() *OracleDataSubmission { return nil } +func (x *InputData) GetDelayedTransactionsWrapper() *DelayedTransactionsWrapper { + if x, ok := x.GetCommand().(*InputData_DelayedTransactionsWrapper); ok { + return x.DelayedTransactionsWrapper + } + return nil +} + type isInputData_Command interface { isInputData_Command() } @@ -628,6 +636,11 @@ type InputData_OracleDataSubmission struct { OracleDataSubmission *OracleDataSubmission `protobuf:"bytes,3001,opt,name=oracle_data_submission,json=oracleDataSubmission,proto3,oneof"` } +type InputData_DelayedTransactionsWrapper struct { + // Internal transactions used to convey delayed transactions to be included in the next block. + DelayedTransactionsWrapper *DelayedTransactionsWrapper `protobuf:"bytes,4000,opt,name=delayed_transactions_wrapper,json=delayedTransactionsWrapper,proto3,oneof"` +} + func (*InputData_OrderSubmission) isInputData_Command() {} func (*InputData_OrderCancellation) isInputData_Command() {} @@ -702,6 +715,8 @@ func (*InputData_IssueSignatures) isInputData_Command() {} func (*InputData_OracleDataSubmission) isInputData_Command() {} +func (*InputData_DelayedTransactionsWrapper) isInputData_Command() {} + // Transaction containing a command that can be sent to instruct the network to execute an action. // A transaction contains a byte string representation of the input data which must then be signed, with the signature added to the transaction. type Transaction struct { @@ -899,7 +914,7 @@ var file_vega_commands_v1_transaction_proto_rawDesc = []byte{ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x76, 0x65, 0x67, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x8a, 0x1a, 0x0a, 0x09, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x6f, 0x22, 0xfd, 0x1a, 0x0a, 0x09, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, @@ -1106,38 +1121,45 @@ var file_vega_commands_v1_transaction_proto_rawDesc = []byte{ 0x67, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x14, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4a, 0x06, 0x08, 0xa1, 0x1f, 0x10, 0xa2, 0x1f, 0x22, 0x92, - 0x02, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, - 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, - 0x79, 0x12, 0x36, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xd0, 0x0f, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x03, 0x70, 0x6f, 0x77, - 0x18, 0xb8, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, - 0x4f, 0x66, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x03, 0x70, 0x6f, 0x77, 0x42, 0x06, 0x0a, 0x04, 0x66, - 0x72, 0x6f, 0x6d, 0x22, 0x35, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x66, 0x57, 0x6f, - 0x72, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x74, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x2a, 0x53, 0x0a, 0x09, 0x54, 0x78, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x58, 0x5f, 0x56, 0x45, - 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x58, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x58, 0x5f, 0x56, 0x45, 0x52, - 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x33, 0x10, 0x03, 0x22, 0x04, 0x08, 0x01, 0x10, 0x01, 0x42, - 0x33, 0x5a, 0x31, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x65, 0x67, 0x61, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x67, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x73, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x71, 0x0a, 0x1c, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xa0, 0x1f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x48, 0x00, 0x52, 0x1a, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x42, 0x09, + 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4a, 0x06, 0x08, 0xa1, 0x1f, 0x10, 0xa2, + 0x1f, 0x22, 0x92, 0x02, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x39, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x75, + 0x62, 0x4b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0xd0, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x78, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x03, + 0x70, 0x6f, 0x77, 0x18, 0xb8, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76, 0x65, 0x67, + 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x6f, 0x66, 0x4f, 0x66, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x03, 0x70, 0x6f, 0x77, 0x42, 0x06, + 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x22, 0x35, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4f, + 0x66, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x74, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x2a, 0x53, 0x0a, + 0x09, 0x54, 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x58, + 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x58, 0x5f, 0x56, 0x45, 0x52, + 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x58, 0x5f, + 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x33, 0x10, 0x03, 0x22, 0x04, 0x08, 0x01, + 0x10, 0x01, 0x42, 0x33, 0x5a, 0x31, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x65, 0x67, 0x61, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x67, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x73, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1196,7 +1218,8 @@ var file_vega_commands_v1_transaction_proto_goTypes = []interface{}{ (*ProtocolUpgradeProposal)(nil), // 38: vega.commands.v1.ProtocolUpgradeProposal (*IssueSignatures)(nil), // 39: vega.commands.v1.IssueSignatures (*OracleDataSubmission)(nil), // 40: vega.commands.v1.OracleDataSubmission - (*Signature)(nil), // 41: vega.commands.v1.Signature + (*DelayedTransactionsWrapper)(nil), // 41: vega.commands.v1.DelayedTransactionsWrapper + (*Signature)(nil), // 42: vega.commands.v1.Signature } var file_vega_commands_v1_transaction_proto_depIdxs = []int32{ 4, // 0: vega.commands.v1.InputData.order_submission:type_name -> vega.commands.v1.OrderSubmission @@ -1236,14 +1259,15 @@ var file_vega_commands_v1_transaction_proto_depIdxs = []int32{ 38, // 34: vega.commands.v1.InputData.protocol_upgrade_proposal:type_name -> vega.commands.v1.ProtocolUpgradeProposal 39, // 35: vega.commands.v1.InputData.issue_signatures:type_name -> vega.commands.v1.IssueSignatures 40, // 36: vega.commands.v1.InputData.oracle_data_submission:type_name -> vega.commands.v1.OracleDataSubmission - 41, // 37: vega.commands.v1.Transaction.signature:type_name -> vega.commands.v1.Signature - 0, // 38: vega.commands.v1.Transaction.version:type_name -> vega.commands.v1.TxVersion - 3, // 39: vega.commands.v1.Transaction.pow:type_name -> vega.commands.v1.ProofOfWork - 40, // [40:40] is the sub-list for method output_type - 40, // [40:40] is the sub-list for method input_type - 40, // [40:40] is the sub-list for extension type_name - 40, // [40:40] is the sub-list for extension extendee - 0, // [0:40] is the sub-list for field type_name + 41, // 37: vega.commands.v1.InputData.delayed_transactions_wrapper:type_name -> vega.commands.v1.DelayedTransactionsWrapper + 42, // 38: vega.commands.v1.Transaction.signature:type_name -> vega.commands.v1.Signature + 0, // 39: vega.commands.v1.Transaction.version:type_name -> vega.commands.v1.TxVersion + 3, // 40: vega.commands.v1.Transaction.pow:type_name -> vega.commands.v1.ProofOfWork + 41, // [41:41] is the sub-list for method output_type + 41, // [41:41] is the sub-list for method input_type + 41, // [41:41] is the sub-list for extension type_name + 41, // [41:41] is the sub-list for extension extendee + 0, // [0:41] is the sub-list for field type_name } func init() { file_vega_commands_v1_transaction_proto_init() } @@ -1331,6 +1355,7 @@ func file_vega_commands_v1_transaction_proto_init() { (*InputData_ProtocolUpgradeProposal)(nil), (*InputData_IssueSignatures)(nil), (*InputData_OracleDataSubmission)(nil), + (*InputData_DelayedTransactionsWrapper)(nil), } file_vega_commands_v1_transaction_proto_msgTypes[1].OneofWrappers = []interface{}{ (*Transaction_Address)(nil),