From 692863ddea9cd3f5dfe489dc7ede3825e1cf56d3 Mon Sep 17 00:00:00 2001 From: beer-1 Date: Wed, 28 Aug 2024 15:33:25 +0900 Subject: [PATCH 01/16] impl force withdrawal --- go.mod | 1 + go.sum | 2 + proto/buf.lock | 5 + proto/buf.yaml | 1 + proto/opinit/opchild/v1/genesis.proto | 12 +- proto/opinit/opchild/v1/query.proto | 25 + proto/opinit/opchild/v1/tx.proto | 1 + proto/opinit/opchild/v1/types.proto | 11 +- proto/opinit/ophost/v1/query.proto | 11 +- proto/opinit/ophost/v1/tx.proto | 52 +- proto/opinit/ophost/v1/types.proto | 4 +- x/opchild/abci.go | 9 +- x/opchild/ante/ante.go | 4 +- x/opchild/ante/ante_test.go | 2 +- x/opchild/ante/common_test.go | 2 +- x/opchild/keeper/commitments.go | 42 + x/opchild/keeper/commitments_test.go | 85 ++ x/opchild/keeper/common_test.go | 4 +- x/opchild/keeper/compatibility_grpc_query.go | 2 +- x/opchild/keeper/keeper.go | 39 +- x/opchild/keeper/keeper_test.go | 34 + x/opchild/keeper/msg_server.go | 19 +- x/opchild/keeper/msg_server_test.go | 34 +- x/opchild/keeper/querier.go | 38 +- x/opchild/keeper/querier_test.go | 16 +- x/opchild/module.go | 10 +- x/opchild/types/client.go | 50 + x/opchild/types/commitments.go | 56 + x/opchild/types/commitments_test.go | 114 ++ x/opchild/types/encoding_helper.go | 75 ++ x/opchild/types/genesis.pb.go | 152 ++- x/opchild/types/keys.go | 19 +- x/opchild/types/proof.go | 93 ++ x/opchild/types/query.pb.go | 594 +++++++++- x/opchild/types/query.pb.gw.go | 101 ++ x/opchild/types/tx.pb.go | 1 + x/opchild/types/types.pb.go | 384 +++++-- x/ophost/keeper/msg_server.go | 75 +- x/ophost/keeper/msg_server_test.go | 210 +++- x/ophost/types/error.go | 2 + x/ophost/types/hook/bridge_hook.go | 5 - x/ophost/types/tx.go | 144 ++- x/ophost/types/tx.pb.go | 1034 +++++++++++++++--- x/ophost/types/tx_test.go | 137 +++ x/ophost/types/types.pb.go | 112 +- 45 files changed, 3361 insertions(+), 462 deletions(-) create mode 100644 x/opchild/keeper/commitments.go create mode 100644 x/opchild/keeper/commitments_test.go create mode 100644 x/opchild/keeper/keeper_test.go create mode 100644 x/opchild/types/client.go create mode 100644 x/opchild/types/commitments.go create mode 100644 x/opchild/types/commitments_test.go create mode 100644 x/opchild/types/encoding_helper.go create mode 100644 x/opchild/types/proof.go create mode 100644 x/ophost/types/tx_test.go diff --git a/go.mod b/go.mod index a4d097b1..d52c51b7 100644 --- a/go.mod +++ b/go.mod @@ -15,6 +15,7 @@ require ( cosmossdk.io/store v1.1.0 cosmossdk.io/x/tx v0.13.3 github.com/cometbft/cometbft v0.38.10 + github.com/cometbft/cometbft/api v1.0.0-rc.1 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-proto v1.0.0-beta.5 github.com/cosmos/cosmos-sdk v0.50.8 diff --git a/go.sum b/go.sum index fb1a3400..c1996fb5 100644 --- a/go.sum +++ b/go.sum @@ -366,6 +366,8 @@ github.com/cometbft/cometbft v0.38.10 h1:2ePuglchT+j0Iao+cfmt/nw5U7K2lnGDzXSUPGV github.com/cometbft/cometbft v0.38.10/go.mod h1:jHPx9vQpWzPHEAiYI/7EDKaB1NXhK6o3SArrrY8ExKc= github.com/cometbft/cometbft-db v0.10.0 h1:VMBQh88zXn64jXVvj39tlu/IgsGR84T7ImjS523DCiU= github.com/cometbft/cometbft-db v0.10.0/go.mod h1:7RR7NRv99j7keWJ5IkE9iZibUTKYdtepXTp7Ra0FxKk= +github.com/cometbft/cometbft/api v1.0.0-rc.1 h1:GtdXwDGlqwHYs16A4egjwylfYOMYyEacLBrs3Zvpt7g= +github.com/cometbft/cometbft/api v1.0.0-rc.1/go.mod h1:NDFKiBBD8HJC6QQLAoUI99YhsiRZtg2+FJWfk6A6m6o= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= diff --git a/proto/buf.lock b/proto/buf.lock index 33ee1fbc..fe4ad97d 100644 --- a/proto/buf.lock +++ b/proto/buf.lock @@ -1,6 +1,11 @@ # Generated by buf. DO NOT EDIT. version: v1 deps: + - remote: buf.build + owner: cometbft + repository: cometbft + commit: fedbb9acfd2f494b9755949cbb41dfca + digest: shake256:c1881013cf98a4833923d74638c3623ac32890fa066eef961986b40e5e86d646fee02f05a5c7fabe596cc81f01108ffb1ae28db39db73a797e7f72e26c289628 - remote: buf.build owner: cosmos repository: cosmos-proto diff --git a/proto/buf.yaml b/proto/buf.yaml index b8579c85..8faf63ed 100644 --- a/proto/buf.yaml +++ b/proto/buf.yaml @@ -2,6 +2,7 @@ version: v1 name: buf.build/initia-labs/OPinit deps: + - buf.build/cometbft/cometbft:fedbb9acfd2f494b9755949cbb41dfca - buf.build/cosmos/cosmos-sdk:v0.50.0 - buf.build/cosmos/cosmos-proto:1935555c206d4afb9e94615dfd0fad31 - buf.build/cosmos/gogo-proto:5e5b9fdd01804356895f8f79a6f1ddc1 diff --git a/proto/opinit/opchild/v1/genesis.proto b/proto/opinit/opchild/v1/genesis.proto index c7b3ce42..9a8327a3 100644 --- a/proto/opinit/opchild/v1/genesis.proto +++ b/proto/opinit/opchild/v1/genesis.proto @@ -23,10 +23,14 @@ message GenesisState { // the pending deposits that are not failed to be deposited. repeated PendingDeposits pending_deposits = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - uint64 next_l2_sequence = 5; - uint64 next_l1_sequence = 6; - BridgeInfo bridge_info = 7; - bool exported = 8; + // the withdrawal commitments for force withdrawal. + repeated WithdrawalCommitment withdrawal_commitments = 5 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + uint64 next_l2_sequence = 6; + uint64 next_l1_sequence = 7; + BridgeInfo bridge_info = 8; + bool exported = 9; } // LastValidatorPower required for validator set update logic. diff --git a/proto/opinit/opchild/v1/query.proto b/proto/opinit/opchild/v1/query.proto index a8af664e..374e030d 100644 --- a/proto/opinit/opchild/v1/query.proto +++ b/proto/opinit/opchild/v1/query.proto @@ -2,7 +2,9 @@ syntax = "proto3"; package opinit.opchild.v1; import "amino/amino.proto"; +import "cometbft/crypto/v1/proof.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; +import "cosmos/base/v1beta1/coin.proto"; import "cosmos/query/v1/query.proto"; import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; @@ -56,6 +58,11 @@ service Query { option (cosmos.query.v1.module_query_safe) = true; option (google.api.http).get = "/opinit/opchild/v1/base_denom/{denom}"; } + + rpc ForceWithdrawalProofs(QueryForceWithdrawalProofsRequest) returns (QueryForceWithdrawalProofsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/opinit/opchild/v1/withdrawals/{l2_sequence}/proofs"; + } } // QueryValidatorsRequest is request type for Query/Validators RPC method. @@ -130,3 +137,21 @@ message QueryBaseDenomRequest { message QueryBaseDenomResponse { string base_denom = 1; } + +// QueryForceWithdrawalProofsRequest is request type for the Query/ForceWithdrawalProofs RPC method. +message QueryForceWithdrawalProofsRequest { + // l2_sequence is the sequence number of the l2 block. + uint64 l2_sequence = 1; +} + +// QueryForceWithdrawalProofsResponse is response type for the Query/ForceWithdrawalProofs RPC method. +message QueryForceWithdrawalProofsResponse { + // withdrawal commitments and proofs + .cometbft.crypto.v1.ProofOps commitment_proof = 3 + [(gogoproto.moretags) = "yaml:\"commitment_proof\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // app hash and proof + bytes app_hash = 4 [(gogoproto.moretags) = "yaml:\"app_hash\""]; + .cometbft.crypto.v1.Proof app_hash_proof = 5 + [(gogoproto.moretags) = "yaml:\"app_hash_proof\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/opinit/opchild/v1/tx.proto b/proto/opinit/opchild/v1/tx.proto index e240b98a..3a61304d 100644 --- a/proto/opinit/opchild/v1/tx.proto +++ b/proto/opinit/opchild/v1/tx.proto @@ -148,6 +148,7 @@ message MsgInitiateTokenWithdrawal { // MsgInitiateTokenWithdrawalResponse returns create token result data message MsgInitiateTokenWithdrawalResponse { + // l2 sequence number uint64 sequence = 1; } diff --git a/proto/opinit/opchild/v1/types.proto b/proto/opinit/opchild/v1/types.proto index b040c420..f5501337 100644 --- a/proto/opinit/opchild/v1/types.proto +++ b/proto/opinit/opchild/v1/types.proto @@ -6,8 +6,9 @@ import "cosmos/base/v1beta1/coin.proto"; import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; import "google/protobuf/any.proto"; -import "tendermint/abci/types.proto"; +import "google/protobuf/timestamp.proto"; import "opinit/ophost/v1/types.proto"; +import "tendermint/abci/types.proto"; option go_package = "github.com/initia-labs/OPinit/x/opchild/types"; option (gogoproto.equal_all) = true; @@ -133,4 +134,10 @@ enum ResponseResultType { RESPONSE_RESULT_TYPE_NOOP = 1 [(gogoproto.enumvalue_customname) = "NOOP"]; // The message was executed successfully RESPONSE_RESULT_TYPE_SUCCESS = 2 [(gogoproto.enumvalue_customname) = "SUCCESS"]; -} \ No newline at end of file +} + +message WithdrawalCommitment { + bytes commitment = 1; + google.protobuf.Timestamp submit_time = 5 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; +} diff --git a/proto/opinit/ophost/v1/query.proto b/proto/opinit/ophost/v1/query.proto index f281d1dc..7b46d000 100644 --- a/proto/opinit/ophost/v1/query.proto +++ b/proto/opinit/ophost/v1/query.proto @@ -70,7 +70,7 @@ service Query { // Claimed queries whether the output is claimed. rpc Claimed(QueryClaimedRequest) returns (QueryClaimedResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/withdrawals/claimed/by_hash"; + option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/withdrawals/claimed/by_hash"; } // NextL1Sequence queries the next l1 sequence. @@ -225,16 +225,15 @@ message QueryNextL1SequenceResponse { uint64 next_l1_sequence = 1; } -// QueryBatchInfosRequest is request type for Query/BatchInfos RPC method. +// QueryBatchInfosRequest is request type for Query/BatchInfos RPC method. message QueryBatchInfosRequest { - uint64 bridge_id = 1; + uint64 bridge_id = 1; cosmos.base.query.v1beta1.PageRequest pagination = 2; } -// QueryBatchInfosResponse is response type for Query/BatchInfos RPC method. +// QueryBatchInfosResponse is response type for Query/BatchInfos RPC method. message QueryBatchInfosResponse { - repeated BatchInfoWithOutput batch_infos = 1 - [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated BatchInfoWithOutput batch_infos = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; // pagination defines the pagination in the response. cosmos.base.query.v1beta1.PageResponse pagination = 2; } diff --git a/proto/opinit/ophost/v1/tx.proto b/proto/opinit/ophost/v1/tx.proto index 0209850f..5066e7aa 100644 --- a/proto/opinit/ophost/v1/tx.proto +++ b/proto/opinit/ophost/v1/tx.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package opinit.ophost.v1; import "amino/amino.proto"; +import "cometbft/crypto/v1/proof.proto"; import "cosmos/base/v1beta1/coin.proto"; import "cosmos/msg/v1/msg.proto"; import "cosmos_proto/cosmos.proto"; @@ -48,6 +49,9 @@ service Msg { // FinalizeTokenWithdrawal defines a user facing l2 => l1 token transfer interface. rpc FinalizeTokenWithdrawal(MsgFinalizeTokenWithdrawal) returns (MsgFinalizeTokenWithdrawalResponse); + // ForceTokenWithdrwal defines a force token withdrawal interface. + rpc ForceTokenWithdrwal(MsgForceTokenWithdrawal) returns (MsgForceTokenWithdrawalResponse); + //////////////////////////// // Authority Messages @@ -112,17 +116,15 @@ message MsgProposeOutput { option (cosmos.msg.v1.signer) = "proposer"; option (amino.name) = "ophost/MsgProposeOutput"; - string proposer = 1 [(gogoproto.moretags) = "yaml:\"proposer\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; - uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; - uint64 output_index = 3 [(gogoproto.moretags) = "yaml:\"output_index\""]; + string proposer = 1 [(gogoproto.moretags) = "yaml:\"proposer\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; + uint64 output_index = 3 [(gogoproto.moretags) = "yaml:\"output_index\""]; uint64 l2_block_number = 4 [(gogoproto.moretags) = "yaml:\"l2_block_number\""]; bytes output_root = 5 [(gogoproto.moretags) = "yaml:\"output_root\""]; } // MsgProposeOutputResponse returns deposit result data -message MsgProposeOutputResponse { - -} +message MsgProposeOutputResponse {} //////////////////////////// // Challenger Messages @@ -187,14 +189,46 @@ message MsgFinalizeTokenWithdrawal { // output root proofs // version of the output root - bytes version = 8 [(gogoproto.moretags) = "yaml:\"version\""]; - bytes storage_root = 9 [(gogoproto.moretags) = "yaml:\"storage_root\""]; - bytes latest_block_hash = 10 [(gogoproto.moretags) = "yaml:\"latest_block_hash\""]; + bytes version = 8 [(gogoproto.moretags) = "yaml:\"version\""]; + bytes storage_root = 9 [(gogoproto.moretags) = "yaml:\"storage_root\""]; + bytes last_block_hash = 10 [(gogoproto.moretags) = "yaml:\"last_block_hash\""]; } // MsgFinalizeTokenWithdrawalResponse returns a message handle result. message MsgFinalizeTokenWithdrawalResponse {} +// MsgForceTokenWithdrawal is a message to force a token withdrawal from L2 to L1. +message MsgForceTokenWithdrawal { + option (cosmos.msg.v1.signer) = "receiver"; + option (amino.name) = "ophost/MsgForceTokenWithdrawal"; + + // anyone can force a token withdrawal from L2 to L1 even this is not the receiver. + uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; + uint64 output_index = 3 [(gogoproto.moretags) = "yaml:\"output_index\""]; + + // withdrawal commitments and proofs + uint64 l2_sequence = 4 [(gogoproto.moretags) = "yaml:\"l2_sequence\""]; + string sender = 5 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string receiver = 1 [(gogoproto.moretags) = "yaml:\"receiver\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + cosmos.base.v1beta1.Coin amount = 6 + [(gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + .cometbft.crypto.v1.ProofOps commitment_proof = 7 + [(gogoproto.moretags) = "yaml:\"commitment_proof\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // app hash and proof + bytes app_hash = 8 [(gogoproto.moretags) = "yaml:\"app_hash\""]; + .cometbft.crypto.v1.Proof app_hash_proof = 9 + [(gogoproto.moretags) = "yaml:\"app_hash_proof\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // output root proofs + bytes version = 10 [(gogoproto.moretags) = "yaml:\"version\""]; + bytes storage_root = 11 [(gogoproto.moretags) = "yaml:\"storage_root\""]; + bytes last_block_hash = 12 [(gogoproto.moretags) = "yaml:\"last_block_hash\""]; +} + +// MsgForceTokenWithdrawalResponse returns a message handle result. +message MsgForceTokenWithdrawalResponse {} + /////////////////////////// // Authority Messages diff --git a/proto/opinit/ophost/v1/types.proto b/proto/opinit/ophost/v1/types.proto index 6b345840..e62f0a95 100644 --- a/proto/opinit/ophost/v1/types.proto +++ b/proto/opinit/ophost/v1/types.proto @@ -5,8 +5,8 @@ import "amino/amino.proto"; import "cosmos/base/v1beta1/coin.proto"; import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; -import "google/protobuf/timestamp.proto"; import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; option go_package = "github.com/initia-labs/OPinit/x/ophost/types"; option (gogoproto.equal_all) = true; @@ -97,4 +97,4 @@ message Output { message BatchInfoWithOutput { BatchInfo batch_info = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; Output output = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; -} \ No newline at end of file +} diff --git a/x/opchild/abci.go b/x/opchild/abci.go index 699587af..f03d3e89 100644 --- a/x/opchild/abci.go +++ b/x/opchild/abci.go @@ -16,13 +16,18 @@ import ( // BeginBlocker will persist the current header and validator set as a historical entry // and prune the oldest entry based on the HistoricalEntries parameter -func BeginBlocker(ctx context.Context, k keeper.Keeper) error { +func BeginBlocker(ctx context.Context, k *keeper.Keeper) error { defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), telemetry.MetricKeyBeginBlocker) + err := k.TrackWithdrawalCommitments(ctx) + if err != nil { + return err + } + return k.TrackHistoricalInfo(ctx) } // Called every block, update validator set -func EndBlocker(ctx context.Context, k keeper.Keeper) ([]abci.ValidatorUpdate, error) { +func EndBlocker(ctx context.Context, k *keeper.Keeper) ([]abci.ValidatorUpdate, error) { defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), telemetry.MetricKeyEndBlocker) sdkCtx := sdk.UnwrapSDKContext(ctx) diff --git a/x/opchild/ante/ante.go b/x/opchild/ante/ante.go index 3ac29efe..71503c52 100644 --- a/x/opchild/ante/ante.go +++ b/x/opchild/ante/ante.go @@ -7,10 +7,10 @@ import ( ) type RedundantBridgeDecorator struct { - ms keeper.MsgServer + ms *keeper.MsgServer } -func NewRedundantBridgeDecorator(k keeper.Keeper) RedundantBridgeDecorator { +func NewRedundantBridgeDecorator(k *keeper.Keeper) RedundantBridgeDecorator { return RedundantBridgeDecorator{ ms: keeper.NewMsgServerImpl(k), } diff --git a/x/opchild/ante/ante_test.go b/x/opchild/ante/ante_test.go index a6e963f3..1724e0f3 100644 --- a/x/opchild/ante/ante_test.go +++ b/x/opchild/ante/ante_test.go @@ -147,7 +147,7 @@ func (t testTx) GetMsgs() []sdk.Msg { func TestRedundantTx(t *testing.T) { ctx, input := createTestInput(t, true) - rbd := ante.NewRedundantBridgeDecorator(input.OPChildKeeper) + rbd := ante.NewRedundantBridgeDecorator(&input.OPChildKeeper) // input.Faucet.Mint(ctx, addrs[0], sdk.NewCoin(testDenoms[0], math.NewInt(100000))) diff --git a/x/opchild/ante/common_test.go b/x/opchild/ante/common_test.go index 9ca1e25f..ac68481e 100644 --- a/x/opchild/ante/common_test.go +++ b/x/opchild/ante/common_test.go @@ -308,7 +308,7 @@ func _createTestInput( require.NoError(t, opchildKeeper.SetParams(ctx, opchildParams)) // register handlers to msg router - opchildtypes.RegisterMsgServer(msgRouter, opchildkeeper.NewMsgServerImpl(*opchildKeeper)) + opchildtypes.RegisterMsgServer(msgRouter, opchildkeeper.NewMsgServerImpl(opchildKeeper)) faucet := NewTestFaucet(t, ctx, bankKeeper, authtypes.Minter, initialTotalSupply()...) diff --git a/x/opchild/keeper/commitments.go b/x/opchild/keeper/commitments.go new file mode 100644 index 00000000..3ea63767 --- /dev/null +++ b/x/opchild/keeper/commitments.go @@ -0,0 +1,42 @@ +package keeper + +import ( + "context" + "errors" + + "cosmossdk.io/collections" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/initia-labs/OPinit/x/opchild/types" +) + +func (k Keeper) TrackWithdrawalCommitments(ctx context.Context) error { + info, err := k.BridgeInfo.Get(ctx) + if err != nil && errors.Is(err, collections.ErrNotFound) { + return nil + } else if err != nil { + return err + } + + sdkCtx := sdk.UnwrapSDKContext(ctx) + curTime := sdkCtx.BlockTime().UTC().Unix() + retensionPeriod := int64(info.BridgeConfig.FinalizationPeriod.Seconds() * 2) + + err = k.WithdrawalCommitments.Walk(ctx, nil, func(sequence uint64, wc types.WithdrawalCommitment) (stop bool, err error) { + // stop the iteration if the current time is less than the submit time + retension period + if curTime <= wc.SubmitTime.UTC().Unix()+retensionPeriod { + return true, nil + } + + err = k.WithdrawalCommitments.Remove(ctx, sequence) + if err != nil { + return true, err + } + + return false, nil + }) + if err != nil { + return err + } + + return nil +} diff --git a/x/opchild/keeper/commitments_test.go b/x/opchild/keeper/commitments_test.go new file mode 100644 index 00000000..bbed0596 --- /dev/null +++ b/x/opchild/keeper/commitments_test.go @@ -0,0 +1,85 @@ +package keeper_test + +import ( + "testing" + "time" + + "cosmossdk.io/collections" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stretchr/testify/require" + + "github.com/initia-labs/OPinit/x/opchild/types" + ophosttypes "github.com/initia-labs/OPinit/x/ophost/types" +) + +func Test_TrackWithdrawalCommitments(t *testing.T) { + now := time.Now() + ctx, input := createDefaultTestInput(t) + + err := input.OPChildKeeper.BridgeInfo.Set(ctx, types.BridgeInfo{ + BridgeConfig: ophosttypes.BridgeConfig{ + FinalizationPeriod: time.Second * 5, + }, + }) + require.NoError(t, err) + + // H: 1, T: 0 + ctx = sdk.UnwrapSDKContext(ctx).WithBlockHeight(1).WithBlockTime(now) + err = input.OPChildKeeper.TrackWithdrawalCommitments(ctx) + require.NoError(t, err) + + err = input.OPChildKeeper.WithdrawalCommitments.Set(ctx, 1, types.WithdrawalCommitment{ + Commitment: types.CommitWithdrawal(1, "recipient", sdk.NewInt64Coin("uinit", 100)), + SubmitTime: now, + }) + require.NoError(t, err) + + err = input.OPChildKeeper.WithdrawalCommitments.Set(ctx, 2, types.WithdrawalCommitment{ + Commitment: types.CommitWithdrawal(1, "recipient", sdk.NewInt64Coin("uinit", 100)), + SubmitTime: now, + }) + require.NoError(t, err) + + // H: 2, T: 5 + ctx = sdk.UnwrapSDKContext(ctx).WithBlockHeight(2).WithBlockTime(now.Add(time.Second * 5)) + err = input.OPChildKeeper.TrackWithdrawalCommitments(ctx) + require.NoError(t, err) + + // record historical withdrawal + err = input.OPChildKeeper.WithdrawalCommitments.Set(ctx, 3, types.WithdrawalCommitment{ + Commitment: types.CommitWithdrawal(1, "recipient", sdk.NewInt64Coin("uinit", 100)), + SubmitTime: now.Add(time.Second * 5), + }) + require.NoError(t, err) + + // should not be removed + _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 1) + require.NoError(t, err) + _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 2) + require.NoError(t, err) + _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 3) + require.NoError(t, err) + + // H: 3, T: 15 + ctx = sdk.UnwrapSDKContext(ctx).WithBlockHeight(3).WithBlockTime(now.Add(time.Second * 15)) + err = input.OPChildKeeper.TrackWithdrawalCommitments(ctx) + require.NoError(t, err) + + // should be removed entries of height 1 + _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 1) + require.ErrorIs(t, err, collections.ErrNotFound) + _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 2) + require.ErrorIs(t, err, collections.ErrNotFound) + // should not be removed + _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 3) + require.NoError(t, err) + + // H: 4, T: 25 + ctx = sdk.UnwrapSDKContext(ctx).WithBlockHeight(4).WithBlockTime(now.Add(time.Second * 25)) + err = input.OPChildKeeper.TrackWithdrawalCommitments(ctx) + require.NoError(t, err) + + // should be removed entries of height 2 + _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 3) + require.ErrorIs(t, err, collections.ErrNotFound) +} diff --git a/x/opchild/keeper/common_test.go b/x/opchild/keeper/common_test.go index f9c2e306..dda57b1c 100644 --- a/x/opchild/keeper/common_test.go +++ b/x/opchild/keeper/common_test.go @@ -201,6 +201,7 @@ func (f *TestFaucet) NewFundedAccount(ctx context.Context, amounts ...sdk.Coin) } type TestKeepers struct { + Cdc codec.Codec AccountKeeper authkeeper.AccountKeeper BankKeeper bankkeeper.Keeper OPChildKeeper opchildkeeper.Keeper @@ -329,11 +330,12 @@ func _createTestInput( require.NoError(t, opchildKeeper.SetParams(ctx, opchildParams)) // register handlers to msg router - opchildtypes.RegisterMsgServer(msgRouter, opchildkeeper.NewMsgServerImpl(*opchildKeeper)) + opchildtypes.RegisterMsgServer(msgRouter, opchildkeeper.NewMsgServerImpl(opchildKeeper)) faucet := NewTestFaucet(t, ctx, bankKeeper, authtypes.Minter, initialTotalSupply()...) keepers := TestKeepers{ + Cdc: appCodec, AccountKeeper: accountKeeper, BankKeeper: bankKeeper, OPChildKeeper: *opchildKeeper, diff --git a/x/opchild/keeper/compatibility_grpc_query.go b/x/opchild/keeper/compatibility_grpc_query.go index 2f682a79..ccf8b7e2 100644 --- a/x/opchild/keeper/compatibility_grpc_query.go +++ b/x/opchild/keeper/compatibility_grpc_query.go @@ -20,7 +20,7 @@ const ( // Querier is used as Keeper will have duplicate methods if used directly, and gRPC names take precedence over keeper type CompatibilityQuerier struct { - Keeper + *Keeper } var _ cosmostypes.QueryServer = CompatibilityQuerier{} diff --git a/x/opchild/keeper/keeper.go b/x/opchild/keeper/keeper.go index 6b1eae10..967a47e0 100644 --- a/x/opchild/keeper/keeper.go +++ b/x/opchild/keeper/keeper.go @@ -12,6 +12,7 @@ import ( cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" "github.com/cosmos/cosmos-sdk/baseapp" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" @@ -41,22 +42,26 @@ type Keeper struct { validatorAddressCodec address.Codec consensusAddressCodec address.Codec - Schema collections.Schema - NextL1Sequence collections.Sequence - NextL2Sequence collections.Sequence - Params collections.Item[types.Params] - BridgeInfo collections.Item[types.BridgeInfo] - LastValidatorPowers collections.Map[[]byte, int64] - Validators collections.Map[[]byte, types.Validator] - ValidatorsByConsAddr collections.Map[[]byte, []byte] - HistoricalInfos collections.Map[int64, cosmostypes.HistoricalInfo] - DenomPairs collections.Map[string, string] - PendingDeposits collections.Map[[]byte, types.CoinsWrapper] + Schema collections.Schema + NextL1Sequence collections.Sequence + NextL2Sequence collections.Sequence + Params collections.Item[types.Params] + BridgeInfo collections.Item[types.BridgeInfo] + LastValidatorPowers collections.Map[[]byte, int64] + Validators collections.Map[[]byte, types.Validator] + ValidatorsByConsAddr collections.Map[[]byte, []byte] + HistoricalInfos collections.Map[int64, cosmostypes.HistoricalInfo] + DenomPairs collections.Map[string, string] + PendingDeposits collections.Map[[]byte, types.CoinsWrapper] + WithdrawalCommitments collections.Map[uint64, types.WithdrawalCommitment] ExecutorChangePlans map[uint64]types.ExecutorChangePlan l2OracleHandler *L2OracleHandler HostValidatorStore *HostValidatorStore + + // for querier + clientCtx *client.Context } func NewKeeper( @@ -108,9 +113,10 @@ func NewKeeper( LastValidatorPowers: collections.NewMap(sb, types.LastValidatorPowerPrefix, "last_validator_powers", collections.BytesKey, collections.Int64Value), Validators: collections.NewMap(sb, types.ValidatorsPrefix, "validators", collections.BytesKey, codec.CollValue[types.Validator](cdc)), ValidatorsByConsAddr: collections.NewMap(sb, types.ValidatorsByConsAddrPrefix, "validators_by_cons_addr", collections.BytesKey, collections.BytesValue), - HistoricalInfos: collections.NewMap(sb, types.HistoricalInfoPrefix, "historical_infos", collections.Int64Key, codec.CollValue[cosmostypes.HistoricalInfo](cdc)), DenomPairs: collections.NewMap(sb, types.DenomPairPrefix, "denom_pairs", collections.StringKey, collections.StringValue), PendingDeposits: collections.NewMap(sb, types.PendingDepositsKey, "pending_deposits", collections.BytesKey, codec.CollValue[types.CoinsWrapper](cdc)), + HistoricalInfos: collections.NewMap(sb, types.HistoricalInfoPrefix, "historical_infos", collections.Int64Key, codec.CollValue[cosmostypes.HistoricalInfo](cdc)), + WithdrawalCommitments: collections.NewMap(sb, types.WithdrawalCommitmentPrefix, "withdrawal_commitments", collections.Uint64Key, codec.CollValue[types.WithdrawalCommitment](cdc)), ExecutorChangePlans: make(map[uint64]types.ExecutorChangePlan), HostValidatorStore: hostValidatorStore, @@ -126,6 +132,10 @@ func NewKeeper( return k } +func (k *Keeper) SetClientContext(ctx *client.Context) { + k.clientCtx = ctx +} + // GetAuthority returns the x/move module's authority. func (k Keeper) GetAuthority() string { return k.authority @@ -142,6 +152,11 @@ func (k Keeper) Router() *baseapp.MsgServiceRouter { return k.router } +// StoreService returns the KVStoreService +func (k Keeper) StoreService() corestoretypes.KVStoreService { + return k.storeService +} + // setDenomMetadata sets an OPinit token's denomination metadata func (k Keeper) setDenomMetadata(ctx context.Context, baseDenom, denom string) { metadata := banktypes.Metadata{ diff --git a/x/opchild/keeper/keeper_test.go b/x/opchild/keeper/keeper_test.go new file mode 100644 index 00000000..d6e2f42b --- /dev/null +++ b/x/opchild/keeper/keeper_test.go @@ -0,0 +1,34 @@ +package keeper_test + +import ( + "testing" + "time" + + "github.com/cosmos/cosmos-sdk/codec" + "github.com/stretchr/testify/require" + + "github.com/initia-labs/OPinit/x/opchild/types" +) + +func Test_WithdrawalCommitmentKey(t *testing.T) { + ctx, input := createDefaultTestInput(t) + + sequence := uint64(1) + now := time.Now().UTC() + + commitment := types.WithdrawalCommitment{ + Commitment: []byte{1, 2, 3, 4}, + SubmitTime: now, + } + input.OPChildKeeper.WithdrawalCommitments.Set( + ctx, + sequence, + commitment, + ) + + bz, err := input.OPChildKeeper.StoreService().OpenKVStore(ctx).Get(types.WithdrawalCommitmentKey(sequence)) + require.NoError(t, err) + ret, err := codec.CollValue[types.WithdrawalCommitment](input.Cdc).Decode(bz) + require.NoError(t, err) + require.Equal(t, commitment, ret) +} diff --git a/x/opchild/keeper/msg_server.go b/x/opchild/keeper/msg_server.go index d418bf8a..9323eac5 100644 --- a/x/opchild/keeper/msg_server.go +++ b/x/opchild/keeper/msg_server.go @@ -19,14 +19,14 @@ import ( ) type MsgServer struct { - Keeper + *Keeper } var _ types.MsgServer = MsgServer{} // NewMsgServerImpl return MsgServer instance -func NewMsgServerImpl(k Keeper) MsgServer { - return MsgServer{k} +func NewMsgServerImpl(k *Keeper) *MsgServer { + return &MsgServer{k} } // checkAdminPermission checks if the sender is the admin @@ -576,7 +576,18 @@ func (ms MsgServer) InitiateTokenWithdrawal(ctx context.Context, req *types.MsgI sdk.NewAttribute(types.AttributeKeyL2Sequence, strconv.FormatUint(l2Sequence, 10)), )) - return &types.MsgInitiateTokenWithdrawalResponse{}, nil + // record historical withdrawal + err = ms.WithdrawalCommitments.Set(ctx, l2Sequence, types.WithdrawalCommitment{ + Commitment: types.CommitWithdrawal(l2Sequence, req.To, sdk.NewCoin(baseDenom, coin.Amount)), + SubmitTime: sdkCtx.BlockTime().UTC(), + }) + if err != nil { + return nil, err + } + + return &types.MsgInitiateTokenWithdrawalResponse{ + Sequence: l2Sequence, + }, nil } func (ms MsgServer) UpdateOracle(ctx context.Context, req *types.MsgUpdateOracle) (*types.MsgUpdateOracleResponse, error) { diff --git a/x/opchild/keeper/msg_server_test.go b/x/opchild/keeper/msg_server_test.go index 4c0539be..b5540ede 100644 --- a/x/opchild/keeper/msg_server_test.go +++ b/x/opchild/keeper/msg_server_test.go @@ -39,7 +39,7 @@ import ( func Test_MsgServer_ExecuteMessages(t *testing.T) { ctx, input := createDefaultTestInput(t) - ms := keeper.NewMsgServerImpl(input.OPChildKeeper) + ms := keeper.NewMsgServerImpl(&input.OPChildKeeper) params, err := ms.GetParams(ctx) require.NoError(t, err) @@ -115,7 +115,7 @@ func Test_MsgServer_ExecuteMessages(t *testing.T) { func Test_MsgServer_AddValidator(t *testing.T) { ctx, input := createDefaultTestInput(t) - ms := keeper.NewMsgServerImpl(input.OPChildKeeper) + ms := keeper.NewMsgServerImpl(&input.OPChildKeeper) valPubKeys := testutilsims.CreateTestPubKeys(2) moduleAddr, err := input.AccountKeeper.AddressCodec().BytesToString(authtypes.NewModuleAddress(types.ModuleName)) @@ -173,7 +173,7 @@ func Test_MsgServer_AddValidator(t *testing.T) { func Test_MsgServer_RemoveValidator(t *testing.T) { ctx, input := createDefaultTestInput(t) - ms := keeper.NewMsgServerImpl(input.OPChildKeeper) + ms := keeper.NewMsgServerImpl(&input.OPChildKeeper) valPubKeys := testutilsims.CreateTestPubKeys(2) @@ -220,7 +220,7 @@ func Test_MsgServer_RemoveValidator(t *testing.T) { func Test_MsgServer_UpdateParams(t *testing.T) { ctx, input := createDefaultTestInput(t) - ms := keeper.NewMsgServerImpl(input.OPChildKeeper) + ms := keeper.NewMsgServerImpl(&input.OPChildKeeper) params, err := ms.GetParams(ctx) require.NoError(t, err) @@ -254,7 +254,7 @@ func Test_MsgServer_UpdateParams(t *testing.T) { func Test_MsgServer_SpendFeePool(t *testing.T) { ctx, input := createDefaultTestInput(t) - ms := keeper.NewMsgServerImpl(input.OPChildKeeper) + ms := keeper.NewMsgServerImpl(&input.OPChildKeeper) // fund fee pool collectedFees := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(100))) @@ -279,7 +279,7 @@ func Test_MsgServer_SpendFeePool(t *testing.T) { func Test_MsgServer_Withdraw(t *testing.T) { ctx, input := createDefaultTestInput(t) - ms := keeper.NewMsgServerImpl(input.OPChildKeeper) + ms := keeper.NewMsgServerImpl(&input.OPChildKeeper) info := types.BridgeInfo{ BridgeId: 1, @@ -306,7 +306,7 @@ func Test_MsgServer_Withdraw(t *testing.T) { baseDenom := "test_token" denom := ophosttypes.L2Denom(1, baseDenom) - _, err = ms.FinalizeTokenDeposit(ctx, types.NewMsgFinalizeTokenDeposit(addrsStr[0], "anyformataddr", addrsStr[1], sdk.NewCoin(denom, math.NewInt(100)), 1, 1, "test_token", nil)) + _, err = ms.FinalizeTokenDeposit(ctx, types.NewMsgFinalizeTokenDeposit(addrsStr[0], "anyformataddr", addrsStr[1], sdk.NewCoin(denom, math.NewInt(100)), 1, 1, "test/token", nil)) require.NoError(t, err) coins := sdk.NewCoins(sdk.NewCoin("foo", math.NewInt(1_000_000_000)), sdk.NewCoin(denom, math.NewInt(1_000_000_000))) @@ -322,8 +322,14 @@ func Test_MsgServer_Withdraw(t *testing.T) { // valid msg = types.NewMsgInitiateTokenWithdrawal(accountAddr, addrsStr[1], sdk.NewCoin(denom, math.NewInt(100))) - _, err = ms.InitiateTokenWithdrawal(ctx, msg) + res, err := ms.InitiateTokenWithdrawal(ctx, msg) + require.NoError(t, err) + + sdkCtx := sdk.UnwrapSDKContext(ctx) + wc, err := input.OPChildKeeper.WithdrawalCommitments.Get(ctx, uint64(1)) require.NoError(t, err) + require.Equal(t, types.CommitWithdrawal(res.Sequence, addrsStr[1], sdk.NewInt64Coin("test/token", 100)), wc.Commitment) + require.Equal(t, sdkCtx.BlockTime(), wc.SubmitTime) } ///////////////////////////////////////// @@ -331,7 +337,7 @@ func Test_MsgServer_Withdraw(t *testing.T) { func Test_MsgServer_SetBridgeInfo(t *testing.T) { ctx, input := createDefaultTestInput(t) - ms := keeper.NewMsgServerImpl(input.OPChildKeeper) + ms := keeper.NewMsgServerImpl(&input.OPChildKeeper) info := types.BridgeInfo{ BridgeId: 1, @@ -395,7 +401,7 @@ func Test_MsgServer_SetBridgeInfo(t *testing.T) { func Test_MsgServer_Deposit_ToModuleAccount(t *testing.T) { ctx, input := createDefaultTestInput(t) - ms := keeper.NewMsgServerImpl(input.OPChildKeeper) + ms := keeper.NewMsgServerImpl(&input.OPChildKeeper) bz := sha3.Sum256([]byte("test_token")) denom := "l2/" + hex.EncodeToString(bz[:]) @@ -427,7 +433,7 @@ func Test_MsgServer_Deposit_ToModuleAccount(t *testing.T) { func Test_MsgServer_Deposit_NoHook(t *testing.T) { ctx, input := createDefaultTestInput(t) - ms := keeper.NewMsgServerImpl(input.OPChildKeeper) + ms := keeper.NewMsgServerImpl(&input.OPChildKeeper) bz := sha3.Sum256([]byte("test_token")) denom := "l2/" + hex.EncodeToString(bz[:]) @@ -451,7 +457,7 @@ func Test_MsgServer_Deposit_NoHook(t *testing.T) { func Test_MsgServer_Deposit_HookSuccess(t *testing.T) { ctx, input := createDefaultTestInput(t) - ms := keeper.NewMsgServerImpl(input.OPChildKeeper) + ms := keeper.NewMsgServerImpl(&input.OPChildKeeper) bz := sha3.Sum256([]byte("test_token")) denom := "l2/" + hex.EncodeToString(bz[:]) @@ -484,7 +490,7 @@ func Test_MsgServer_Deposit_HookSuccess(t *testing.T) { func Test_MsgServer_Deposit_HookFail(t *testing.T) { ctx, input := createDefaultTestInput(t) - ms := keeper.NewMsgServerImpl(input.OPChildKeeper) + ms := keeper.NewMsgServerImpl(&input.OPChildKeeper) bz := sha3.Sum256([]byte("test_token")) denom := "l2/" + hex.EncodeToString(bz[:]) @@ -614,7 +620,7 @@ func Test_MsgServer_UpdateOracle(t *testing.T) { extCommitBz, err := extendedCommitCodec.Encode(eci) require.NoError(t, err) - ms := keeper.NewMsgServerImpl(opchildKeeper) + ms := keeper.NewMsgServerImpl(&opchildKeeper) _, err = ms.UpdateOracle(ctx, types.NewMsgUpdateOracle(addrsStr[0], 11, extCommitBz)) require.NoError(t, err) diff --git a/x/opchild/keeper/querier.go b/x/opchild/keeper/querier.go index 9205794f..34870546 100644 --- a/x/opchild/keeper/querier.go +++ b/x/opchild/keeper/querier.go @@ -3,22 +3,24 @@ package keeper import ( "context" - "github.com/cosmos/cosmos-sdk/types/query" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/query" + "github.com/initia-labs/OPinit/x/opchild/types" ) type Querier struct { - Keeper + *Keeper } var _ types.QueryServer = &Querier{} // NewQuerier return new Querier instance -func NewQuerier(k Keeper) Querier { - return Querier{k} +func NewQuerier(k *Keeper) types.QueryServer { + return &Querier{k} } func (q Querier) Validator(ctx context.Context, req *types.QueryValidatorRequest) (*types.QueryValidatorResponse, error) { @@ -102,3 +104,31 @@ func (q Querier) BaseDenom(ctx context.Context, req *types.QueryBaseDenomRequest return &types.QueryBaseDenomResponse{BaseDenom: baseDenom}, nil } + +// ForceWithdrawalProofs returns the force withdrawal proofs +// +// @dev: This query is not deterministic and should only be used for off-chain. +func (q Querier) ForceWithdrawalProofs(ctx context.Context, req *types.QueryForceWithdrawalProofsRequest) (*types.QueryForceWithdrawalProofsResponse, error) { + if q.clientCtx == nil { + return nil, status.Error(codes.Internal, "client context is not set") + } + + sdkCtx := sdk.UnwrapSDKContext(ctx) + height := sdkCtx.BlockHeight() + appHash, appHashProof, err := types.QueryAppHashWithProof(q.clientCtx, height) + if err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } + + sequence := req.L2Sequence + commitmentProof, err := types.QueryCommitmentProof(q.clientCtx, height, types.WithdrawalCommitmentKey(sequence)) + if err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } + + return &types.QueryForceWithdrawalProofsResponse{ + CommitmentProof: *commitmentProof, + AppHashProof: *appHashProof, + AppHash: appHash, + }, nil +} diff --git a/x/opchild/keeper/querier_test.go b/x/opchild/keeper/querier_test.go index bbfba323..34666d33 100644 --- a/x/opchild/keeper/querier_test.go +++ b/x/opchild/keeper/querier_test.go @@ -24,7 +24,7 @@ func Test_QueryValidator(t *testing.T) { require.NoError(t, err) require.NoError(t, input.OPChildKeeper.SetValidator(ctx, val)) - q := keeper.NewQuerier(input.OPChildKeeper) + q := keeper.NewQuerier(&input.OPChildKeeper) res, err := q.Validator(ctx, &types.QueryValidatorRequest{ValidatorAddr: val.OperatorAddress}) require.NoError(t, err) @@ -42,7 +42,7 @@ func Test_QueryValidators(t *testing.T) { require.NoError(t, err) require.NoError(t, input.OPChildKeeper.SetValidator(ctx, val1)) require.NoError(t, input.OPChildKeeper.SetValidator(ctx, val2)) - q := keeper.NewQuerier(input.OPChildKeeper) + q := keeper.NewQuerier(&input.OPChildKeeper) res, err := q.Validators(ctx, &types.QueryValidatorsRequest{}) require.NoError(t, err) @@ -71,7 +71,7 @@ func Test_QuerySetBridgeInfo(t *testing.T) { err := input.OPChildKeeper.BridgeInfo.Set(ctx, info) require.NoError(t, err) - q := keeper.NewQuerier(input.OPChildKeeper) + q := keeper.NewQuerier(&input.OPChildKeeper) res, err := q.BridgeInfo(ctx, &types.QueryBridgeInfoRequest{}) require.NoError(t, err) require.Equal(t, info, res.BridgeInfo) @@ -85,7 +85,7 @@ func Test_QueryParams(t *testing.T) { params.MinGasPrices = sdk.NewDecCoins(sdk.NewInt64DecCoin("stake", 1)) require.NoError(t, input.OPChildKeeper.SetParams(ctx, params)) - q := keeper.NewQuerier(input.OPChildKeeper) + q := keeper.NewQuerier(&input.OPChildKeeper) res, err := q.Params(ctx, &types.QueryParamsRequest{}) require.NoError(t, err) require.Equal(t, params, res.Params) @@ -97,7 +97,7 @@ func Test_QueryNextL1Sequence(t *testing.T) { // update the next L1 sequence require.NoError(t, input.OPChildKeeper.NextL1Sequence.Set(ctx, 100)) - q := keeper.NewQuerier(input.OPChildKeeper) + q := keeper.NewQuerier(&input.OPChildKeeper) res, err := q.NextL1Sequence(ctx, &types.QueryNextL1SequenceRequest{}) require.NoError(t, err) require.Equal(t, types.QueryNextL1SequenceResponse{NextL1Sequence: 100}, *res) @@ -109,7 +109,7 @@ func Test_QueryNextL2Sequence(t *testing.T) { // update the next L2 sequence require.NoError(t, input.OPChildKeeper.NextL2Sequence.Set(ctx, 100)) - q := keeper.NewQuerier(input.OPChildKeeper) + q := keeper.NewQuerier(&input.OPChildKeeper) res, err := q.NextL2Sequence(ctx, &types.QueryNextL2SequenceRequest{}) require.NoError(t, err) require.Equal(t, types.QueryNextL2SequenceResponse{NextL2Sequence: 100}, *res) @@ -121,7 +121,7 @@ func Test_QueryBaseDenom(t *testing.T) { bz := sha3.Sum256([]byte("base_denom")) denom := "l2/" + hex.EncodeToString(bz[:]) - ms := keeper.NewMsgServerImpl(input.OPChildKeeper) + ms := keeper.NewMsgServerImpl(&input.OPChildKeeper) _, err := ms.FinalizeTokenDeposit(ctx, &types.MsgFinalizeTokenDeposit{ Sender: addrsStr[0], Amount: sdk.NewInt64Coin(denom, 100), @@ -133,7 +133,7 @@ func Test_QueryBaseDenom(t *testing.T) { }) require.NoError(t, err) - q := keeper.NewQuerier(input.OPChildKeeper) + q := keeper.NewQuerier(&input.OPChildKeeper) res, err := q.BaseDenom(ctx, &types.QueryBaseDenomRequest{Denom: denom}) require.NoError(t, err) diff --git a/x/opchild/module.go b/x/opchild/module.go index 50d83216..b4285f16 100644 --- a/x/opchild/module.go +++ b/x/opchild/module.go @@ -40,6 +40,7 @@ var ( // AppModuleBasic defines the basic application module used by the opchild module. type AppModuleBasic struct { cdc codec.Codec + k *keeper.Keeper } func (b AppModuleBasic) RegisterLegacyAminoCodec(amino *codec.LegacyAmino) { @@ -47,6 +48,9 @@ func (b AppModuleBasic) RegisterLegacyAminoCodec(amino *codec.LegacyAmino) { } func (b AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, serveMux *runtime.ServeMux) { + // for commitment queries + b.k.SetClientContext(&clientCtx) + err := types.RegisterQueryHandlerClient(context.Background(), serveMux, types.NewQueryClient(clientCtx)) if err != nil { panic(err) @@ -94,7 +98,7 @@ func (b AppModuleBasic) RegisterInterfaces(registry cdctypes.InterfaceRegistry) // AppModule implements an application module for the move module. type AppModule struct { AppModuleBasic - keeper keeper.Keeper + keeper *keeper.Keeper } // ConsensusVersion is a sequence number for state-breaking change of the @@ -106,10 +110,10 @@ func (AppModule) ConsensusVersion() uint64 { return ConsensusVersion } // NewAppModule creates a new AppModule object func NewAppModule( cdc codec.Codec, - k keeper.Keeper, + k *keeper.Keeper, ) AppModule { return AppModule{ - AppModuleBasic: AppModuleBasic{cdc}, + AppModuleBasic: AppModuleBasic{cdc, k}, keeper: k, } } diff --git a/x/opchild/types/client.go b/x/opchild/types/client.go new file mode 100644 index 00000000..0124fb17 --- /dev/null +++ b/x/opchild/types/client.go @@ -0,0 +1,50 @@ +package types + +import ( + "context" + "fmt" + + abci "github.com/cometbft/cometbft/abci/types" + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + + "github.com/cosmos/cosmos-sdk/client" +) + +func QueryCommitmentProof(clientCtx *client.Context, height int64, key []byte) (*v1.ProofOps, error) { + if clientCtx == nil { + return nil, fmt.Errorf("clientCtx cannot be nil") + } + + req := abci.RequestQuery{ + Path: fmt.Sprintf("store/%s/key", StoreKey), + Height: height, + Data: key, + Prove: true, + } + + res, err := clientCtx.QueryABCI(req) + if err != nil { + return nil, err + } + + return NewProtoFromProofOps(res.ProofOps), nil +} + +func QueryAppHashWithProof(clientCtx *client.Context, height int64) ([]byte, *v1.Proof, error) { + if clientCtx == nil { + return nil, nil, fmt.Errorf("clientCtx cannot be nil") + } + + node, err := clientCtx.GetNode() + if err != nil { + return nil, nil, err + } + + block, err := node.Block(context.Background(), &height) + if err != nil { + return nil, nil, err + } + + appHashProof := NewAppHashProof(&block.Block.Header) + return block.Block.Header.AppHash, appHashProof, nil +} diff --git a/x/opchild/types/commitments.go b/x/opchild/types/commitments.go new file mode 100644 index 00000000..b8d4ef44 --- /dev/null +++ b/x/opchild/types/commitments.go @@ -0,0 +1,56 @@ +package types + +import ( + "crypto/sha256" + "encoding/binary" + "encoding/hex" + "fmt" + + "cosmossdk.io/collections" + "cosmossdk.io/store/rootmulti" + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + "github.com/cometbft/cometbft/libs/bytes" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// the state key for withdrawal commitment +func WithdrawalCommitmentKey(sequence uint64) []byte { + prefixLen := len(WithdrawalCommitmentPrefix) + buf := make([]byte, prefixLen+8) + copy(buf, WithdrawalCommitmentPrefix) + _, err := collections.Uint64Key.Encode(buf[prefixLen:], sequence) + if err != nil { + panic(err) + } + + return buf +} + +// CommitWithdrawal returns the withdrwwal commitment bytes. The commitment consists of: +// sha256_hash(receiver_address || l1_amount) +// from a given packet. This results in a fixed length preimage. +func CommitWithdrawal(sequence uint64, receiver string, amount sdk.Coin) []byte { + buf := make([]byte, 8) + binary.BigEndian.PutUint64(buf, sequence) + buf = append(buf, []byte(receiver)...) + buf = append(buf, amount.String()...) + hash := sha256.Sum256(buf) + return hash[:] +} + +func VerifyCommitment(appHash []byte, l2SequenceNumber uint64, receiver string, amount sdk.Coin, commitmentProof *v1.ProofOps) error { + key := WithdrawalCommitmentKey(l2SequenceNumber) + keyPath := fmt.Sprintf("/%s/x:%s", StoreKey, hex.EncodeToString(key)) + commitment := CommitWithdrawal(l2SequenceNumber, receiver, amount) + proofOps := NewProofOpsFromProto(commitmentProof) + return rootmulti.DefaultProofRuntime().VerifyValue(proofOps, appHash, keyPath, commitment) +} + +func VerifyAppHash(blockHash, appHash []byte, proof *v1.Proof) error { + mp, err := NewProofFromProto(proof) + if err != nil { + return err + } + + return mp.Verify(blockHash, cdcEncode(bytes.HexBytes(appHash))) +} diff --git a/x/opchild/types/commitments_test.go b/x/opchild/types/commitments_test.go new file mode 100644 index 00000000..784ea7d7 --- /dev/null +++ b/x/opchild/types/commitments_test.go @@ -0,0 +1,114 @@ +package types + +import ( + "crypto/rand" + "fmt" + "testing" + "time" + + "github.com/cometbft/cometbft/crypto/tmhash" + cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" + comettypes "github.com/cometbft/cometbft/types" + + "github.com/stretchr/testify/require" + + "cosmossdk.io/log" + "cosmossdk.io/store/iavl" + "cosmossdk.io/store/metrics" + "cosmossdk.io/store/rootmulti" + storetypes "cosmossdk.io/store/types" + dbm "github.com/cosmos/cosmos-db" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func Test_VerifyCommitment(t *testing.T) { + db := dbm.NewMemDB() + store := rootmulti.NewStore(db, log.NewNopLogger(), metrics.NewNoOpMetrics()) + iavlStoreKey := storetypes.NewKVStoreKey(StoreKey) + + store.MountStoreWithDB(iavlStoreKey, storetypes.StoreTypeIAVL, nil) + require.NoError(t, store.LoadVersion(0)) + + sequence := uint64(10) + commitmentKey := WithdrawalCommitmentKey(sequence) + + recipient := "recipient" + amount := sdk.NewInt64Coin("uinit", 100) + commitment := CommitWithdrawal(sequence, recipient, amount) + + iavlStore := store.GetCommitStore(iavlStoreKey).(*iavl.Store) + iavlStore.Set(commitmentKey, commitment) + cid := store.Commit() + + // Get Proof + // same with curl https://rpc.initia.xyz/abci_query\?path\="\"store/opchild/key\""\&data=0xcommitmentkey\&prove=true + res, err := store.Query(&storetypes.RequestQuery{ + Path: fmt.Sprintf("/%s/key", StoreKey), // required path to get key/value+proof + Data: commitmentKey, + Prove: true, + }) + require.NoError(t, err) + require.NotNil(t, res.ProofOps) + + // Verify proof. + err = VerifyCommitment(cid.Hash, sequence, recipient, amount, NewProtoFromProofOps(res.ProofOps)) + require.Nil(t, err) +} + +func Test_VerifyAppHash(t *testing.T) { + block := makeRandBlock(t) + header := block.Header + appHashProof := NewAppHashProof(&header) + require.NotNil(t, appHashProof) + + err := VerifyAppHash(block.Hash(), header.AppHash, appHashProof) + require.NoError(t, err) +} + +func makeRandBlock(t *testing.T) *comettypes.Block { + txs := []comettypes.Tx{comettypes.Tx("foo"), comettypes.Tx("bar")} + lastID := makeBlockIDRandom() + h := int64(3) + voteSet, valSet, vals := randVoteSet(h-1, 1, cmtproto.PrecommitType, 10, 1, false) + extCommit, err := comettypes.MakeExtCommit(lastID, h-1, 1, voteSet, vals, time.Now(), false) + require.NoError(t, err) + + ev, err := comettypes.NewMockDuplicateVoteEvidenceWithValidator(h, time.Now(), vals[0], "block-test-chain") + require.NoError(t, err) + evList := []comettypes.Evidence{ev} + + block := comettypes.MakeBlock(h, txs, extCommit.ToCommit(), evList) + block.ValidatorsHash = valSet.Hash() + block.AppHash = tmhash.Sum([]byte("app_hash")) + + return block +} + +func makeBlockIDRandom() comettypes.BlockID { + var ( + blockHash = make([]byte, tmhash.Size) + partSetHash = make([]byte, tmhash.Size) + ) + rand.Read(blockHash) //nolint: errcheck // ignore errcheck for read + rand.Read(partSetHash) //nolint: errcheck // ignore errcheck for read + return comettypes.BlockID{Hash: blockHash, PartSetHeader: comettypes.PartSetHeader{Total: 123, Hash: partSetHash}} +} + +// NOTE: privValidators are in order +func randVoteSet( + height int64, + round int32, + signedMsgType cmtproto.SignedMsgType, + numValidators int, + votingPower int64, + extEnabled bool, +) (*comettypes.VoteSet, *comettypes.ValidatorSet, []comettypes.PrivValidator) { + valSet, privValidators := comettypes.RandValidatorSet(numValidators, votingPower) + if extEnabled { + if signedMsgType != cmtproto.PrecommitType { + return nil, nil, nil + } + return comettypes.NewExtendedVoteSet("test_chain_id", height, round, signedMsgType, valSet), valSet, privValidators + } + return comettypes.NewVoteSet("test_chain_id", height, round, signedMsgType, valSet), valSet, privValidators +} diff --git a/x/opchild/types/encoding_helper.go b/x/opchild/types/encoding_helper.go new file mode 100644 index 00000000..1ace99f8 --- /dev/null +++ b/x/opchild/types/encoding_helper.go @@ -0,0 +1,75 @@ +package types + +import ( + "reflect" + + gogotypes "github.com/cosmos/gogoproto/types" + + "github.com/cometbft/cometbft/libs/bytes" +) + +// cdcEncode returns nil if the input is nil, otherwise returns +// proto.Marshal(Value{Value: item}) +func cdcEncode(item interface{}) []byte { + if item != nil && !isTypedNil(item) && !isEmpty(item) { + switch item := item.(type) { + case string: + i := gogotypes.StringValue{ + Value: item, + } + bz, err := i.Marshal() + if err != nil { + return nil + } + return bz + case int64: + i := gogotypes.Int64Value{ + Value: item, + } + bz, err := i.Marshal() + if err != nil { + return nil + } + return bz + case bytes.HexBytes: + i := gogotypes.BytesValue{ + Value: item, + } + bz, err := i.Marshal() + if err != nil { + return nil + } + return bz + default: + return nil + } + } + + return nil +} + +// Go lacks a simple and safe way to see if something is a typed nil. +// See: +// - https://dave.cheney.net/2017/08/09/typed-nils-in-go-2 +// - https://groups.google.com/forum/#!topic/golang-nuts/wnH302gBa4I/discussion +// - https://github.com/golang/go/issues/21538 +func isTypedNil(o interface{}) bool { + rv := reflect.ValueOf(o) + switch rv.Kind() { + case reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.Slice: + return rv.IsNil() + default: + return false + } +} + +// Returns true if it has zero length. +func isEmpty(o interface{}) bool { + rv := reflect.ValueOf(o) + switch rv.Kind() { + case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice, reflect.String: + return rv.Len() == 0 + default: + return false + } +} diff --git a/x/opchild/types/genesis.pb.go b/x/opchild/types/genesis.pb.go index 2b1e41c0..56fa90d8 100644 --- a/x/opchild/types/genesis.pb.go +++ b/x/opchild/types/genesis.pb.go @@ -36,10 +36,12 @@ type GenesisState struct { Validators []Validator `protobuf:"bytes,3,rep,name=validators,proto3" json:"validators"` // the pending deposits that are not failed to be deposited. PendingDeposits []PendingDeposits `protobuf:"bytes,4,rep,name=pending_deposits,json=pendingDeposits,proto3" json:"pending_deposits"` - NextL2Sequence uint64 `protobuf:"varint,5,opt,name=next_l2_sequence,json=nextL2Sequence,proto3" json:"next_l2_sequence,omitempty"` - NextL1Sequence uint64 `protobuf:"varint,6,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` - BridgeInfo *BridgeInfo `protobuf:"bytes,7,opt,name=bridge_info,json=bridgeInfo,proto3" json:"bridge_info,omitempty"` - Exported bool `protobuf:"varint,8,opt,name=exported,proto3" json:"exported,omitempty"` + // the withdrawal commitments for force withdrawal. + WithdrawalCommitments []WithdrawalCommitment `protobuf:"bytes,5,rep,name=withdrawal_commitments,json=withdrawalCommitments,proto3" json:"withdrawal_commitments"` + NextL2Sequence uint64 `protobuf:"varint,6,opt,name=next_l2_sequence,json=nextL2Sequence,proto3" json:"next_l2_sequence,omitempty"` + NextL1Sequence uint64 `protobuf:"varint,7,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` + BridgeInfo *BridgeInfo `protobuf:"bytes,8,opt,name=bridge_info,json=bridgeInfo,proto3" json:"bridge_info,omitempty"` + Exported bool `protobuf:"varint,9,opt,name=exported,proto3" json:"exported,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -103,6 +105,13 @@ func (m *GenesisState) GetPendingDeposits() []PendingDeposits { return nil } +func (m *GenesisState) GetWithdrawalCommitments() []WithdrawalCommitment { + if m != nil { + return m.WithdrawalCommitments + } + return nil +} + func (m *GenesisState) GetNextL2Sequence() uint64 { if m != nil { return m.NextL2Sequence @@ -180,38 +189,41 @@ func init() { func init() { proto.RegisterFile("opinit/opchild/v1/genesis.proto", fileDescriptor_08c29689c0e7bd55) } var fileDescriptor_08c29689c0e7bd55 = []byte{ - // 495 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0x41, 0x8b, 0xd3, 0x40, - 0x14, 0xc7, 0x93, 0x6d, 0xb7, 0xdb, 0x9d, 0x8a, 0xee, 0x8e, 0x15, 0xb2, 0xc5, 0x4d, 0x43, 0x41, - 0x08, 0x42, 0x13, 0x1a, 0x6f, 0x22, 0x82, 0x45, 0x28, 0xc2, 0x82, 0x25, 0x05, 0x11, 0x2f, 0x61, - 0xd2, 0xcc, 0xa6, 0x03, 0xe9, 0xcc, 0x98, 0x99, 0xad, 0xf5, 0x03, 0x08, 0x1e, 0xfd, 0x08, 0x7b, - 0xf4, 0xe8, 0xc1, 0x0f, 0xb1, 0xc7, 0xc5, 0x93, 0x27, 0x91, 0xf6, 0xa0, 0x1f, 0x43, 0x3a, 0x93, - 0xcd, 0x46, 0xda, 0xcb, 0x30, 0xef, 0xbd, 0xdf, 0xfb, 0xcf, 0x1b, 0xde, 0x1f, 0x74, 0x19, 0x27, - 0x94, 0x48, 0x9f, 0xf1, 0xe9, 0x8c, 0x64, 0x89, 0xbf, 0x18, 0xf8, 0x29, 0xa6, 0x58, 0x10, 0xe1, - 0xf1, 0x9c, 0x49, 0x06, 0x8f, 0x35, 0xe0, 0x15, 0x80, 0xb7, 0x18, 0x74, 0x8e, 0xd1, 0x9c, 0x50, - 0xe6, 0xab, 0x53, 0x53, 0x9d, 0x93, 0x29, 0x13, 0x73, 0x26, 0x22, 0x15, 0xf9, 0x3a, 0x28, 0x4a, - 0xed, 0x94, 0xa5, 0x4c, 0xe7, 0x37, 0xb7, 0x22, 0x7b, 0xba, 0xfd, 0xae, 0xfc, 0xc8, 0x71, 0xd1, - 0xd4, 0xfb, 0x54, 0x07, 0x77, 0x46, 0x7a, 0x8e, 0x89, 0x44, 0x12, 0xc3, 0x67, 0xa0, 0xc1, 0x51, - 0x8e, 0xe6, 0xc2, 0x32, 0x1d, 0xd3, 0x6d, 0x05, 0x27, 0xde, 0xd6, 0x5c, 0xde, 0x58, 0x01, 0xc3, - 0xc3, 0xab, 0x5f, 0x5d, 0xe3, 0xeb, 0x9f, 0x6f, 0x8f, 0xcd, 0xb0, 0xe8, 0x81, 0x09, 0x78, 0x90, - 0x21, 0x21, 0xa3, 0x05, 0xca, 0x48, 0x82, 0x24, 0xcb, 0x23, 0xce, 0x3e, 0xe0, 0x5c, 0x58, 0x7b, - 0x4e, 0xcd, 0x6d, 0x05, 0x8f, 0x76, 0x88, 0x9d, 0x21, 0x21, 0xdf, 0xdc, 0xe0, 0xe3, 0x0d, 0x5d, - 0x15, 0xbe, 0x9f, 0x6d, 0x95, 0x05, 0x1c, 0x01, 0x50, 0x3e, 0x20, 0xac, 0x9a, 0x92, 0x7e, 0xb8, - 0x43, 0xba, 0xec, 0xab, 0x2a, 0x56, 0x5a, 0xe1, 0x5b, 0x70, 0xc4, 0x31, 0x4d, 0x08, 0x4d, 0xa3, - 0x04, 0x73, 0x26, 0x88, 0x14, 0x56, 0x5d, 0xc9, 0xf5, 0x76, 0x7d, 0x5b, 0xa3, 0x2f, 0x0b, 0xb2, - 0x2a, 0x7a, 0x8f, 0xff, 0x5f, 0x83, 0x2e, 0x38, 0xa2, 0x78, 0x29, 0xa3, 0x2c, 0x88, 0x04, 0x7e, - 0x7f, 0x81, 0xe9, 0x14, 0x5b, 0xfb, 0x8e, 0xe9, 0xd6, 0xc3, 0xbb, 0x9b, 0xfc, 0x59, 0x30, 0x29, - 0xb2, 0xb7, 0xe4, 0xe0, 0x96, 0x6c, 0x54, 0xc8, 0x41, 0x49, 0x3e, 0x07, 0xad, 0x38, 0x27, 0x49, - 0x8a, 0x23, 0x42, 0xcf, 0x99, 0x75, 0xa0, 0xf6, 0x73, 0xba, 0x63, 0xd0, 0xa1, 0xa2, 0x5e, 0xd1, - 0x73, 0x16, 0x82, 0xb8, 0xbc, 0xc3, 0x0e, 0x68, 0xe2, 0x25, 0x67, 0xb9, 0xc4, 0x89, 0xd5, 0x74, - 0x4c, 0xb7, 0x19, 0x96, 0x71, 0x6f, 0x06, 0xe0, 0xf6, 0x22, 0x60, 0x00, 0x0e, 0x50, 0x92, 0xe4, - 0x58, 0x68, 0x37, 0x1c, 0x0e, 0xad, 0x1f, 0xdf, 0xfb, 0xed, 0xc2, 0x75, 0x2f, 0x74, 0x65, 0x22, - 0x73, 0x42, 0xd3, 0xf0, 0x06, 0x84, 0x6d, 0xb0, 0xaf, 0x76, 0x6e, 0xed, 0x39, 0xa6, 0x5b, 0x0b, - 0x75, 0xf0, 0xb4, 0xf9, 0xf9, 0xb2, 0x6b, 0xfc, 0xbd, 0xec, 0x1a, 0xc3, 0xd1, 0xd5, 0xca, 0x36, - 0xaf, 0x57, 0xb6, 0xf9, 0x7b, 0x65, 0x9b, 0x5f, 0xd6, 0xb6, 0x71, 0xbd, 0xb6, 0x8d, 0x9f, 0x6b, - 0xdb, 0x78, 0xd7, 0x4f, 0x89, 0x9c, 0x5d, 0xc4, 0xde, 0x94, 0xcd, 0xfd, 0xcd, 0x97, 0x08, 0xea, - 0x67, 0x28, 0x16, 0xfe, 0xeb, 0xb1, 0x72, 0xf0, 0xb2, 0xf4, 0xb0, 0x32, 0x70, 0xdc, 0x50, 0x0e, - 0x7e, 0xf2, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x8e, 0xf7, 0xbf, 0x5a, 0x03, 0x00, 0x00, + // 535 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x93, 0x41, 0x8b, 0xd3, 0x40, + 0x14, 0xc7, 0x93, 0xdd, 0x6e, 0xb7, 0x9d, 0x8a, 0xee, 0x8e, 0x5d, 0xc9, 0x16, 0x37, 0x2d, 0x05, + 0x31, 0x08, 0x4d, 0x68, 0xbd, 0x89, 0x08, 0x56, 0xa1, 0x08, 0x0b, 0x96, 0x14, 0x54, 0xbc, 0x84, + 0x69, 0x32, 0x9b, 0x0e, 0x24, 0x33, 0x63, 0x66, 0xb6, 0xad, 0xdf, 0xc0, 0xa3, 0x1f, 0x61, 0x8f, + 0x1e, 0x3d, 0xf8, 0x21, 0xf6, 0xb8, 0x78, 0xf2, 0x24, 0xd2, 0x1e, 0xf4, 0xe8, 0x47, 0x90, 0x4e, + 0xb2, 0xd9, 0x48, 0x73, 0x09, 0xf3, 0xde, 0xfb, 0xfd, 0xff, 0xf3, 0x86, 0xbc, 0x07, 0xda, 0x8c, + 0x13, 0x4a, 0xa4, 0xc3, 0xb8, 0x3f, 0x23, 0x51, 0xe0, 0xcc, 0xfb, 0x4e, 0x88, 0x29, 0x16, 0x44, + 0xd8, 0x3c, 0x61, 0x92, 0xc1, 0xc3, 0x14, 0xb0, 0x33, 0xc0, 0x9e, 0xf7, 0x5b, 0x87, 0x28, 0x26, + 0x94, 0x39, 0xea, 0x9b, 0x52, 0xad, 0x63, 0x9f, 0x89, 0x98, 0x09, 0x4f, 0x45, 0x4e, 0x1a, 0x64, + 0xa5, 0x66, 0xc8, 0x42, 0x96, 0xe6, 0x37, 0xa7, 0x2c, 0x7b, 0xb2, 0x7d, 0xaf, 0xfc, 0xc8, 0x71, + 0x26, 0xea, 0xfe, 0xad, 0x80, 0x5b, 0xa3, 0xb4, 0x8f, 0x89, 0x44, 0x12, 0xc3, 0xa7, 0xa0, 0xca, + 0x51, 0x82, 0x62, 0x61, 0xe8, 0x1d, 0xdd, 0x6a, 0x0c, 0x8e, 0xed, 0xad, 0xbe, 0xec, 0xb1, 0x02, + 0x86, 0xf5, 0xcb, 0x9f, 0x6d, 0xed, 0xcb, 0xef, 0xaf, 0x8f, 0x74, 0x37, 0xd3, 0xc0, 0x00, 0x1c, + 0x45, 0x48, 0x48, 0x6f, 0x8e, 0x22, 0x12, 0x20, 0xc9, 0x12, 0x8f, 0xb3, 0x05, 0x4e, 0x84, 0xb1, + 0xd3, 0xd9, 0xb5, 0x1a, 0x83, 0x07, 0x25, 0x66, 0xa7, 0x48, 0xc8, 0x37, 0xd7, 0xf8, 0x78, 0x43, + 0x17, 0x8d, 0xef, 0x46, 0x5b, 0x65, 0x01, 0x47, 0x00, 0xe4, 0x17, 0x08, 0x63, 0x57, 0x59, 0xdf, + 0x2f, 0xb1, 0xce, 0x75, 0x45, 0xc7, 0x82, 0x14, 0xbe, 0x03, 0x07, 0x1c, 0xd3, 0x80, 0xd0, 0xd0, + 0x0b, 0x30, 0x67, 0x82, 0x48, 0x61, 0x54, 0x94, 0x5d, 0xb7, 0xec, 0xd9, 0x29, 0xfa, 0x32, 0x23, + 0x8b, 0xa6, 0x77, 0xf8, 0xff, 0x35, 0x48, 0xc0, 0xbd, 0x05, 0x91, 0xb3, 0x20, 0x41, 0x0b, 0x14, + 0x79, 0x3e, 0x8b, 0x63, 0x22, 0x63, 0x4c, 0xa5, 0x30, 0xf6, 0x94, 0xff, 0xc3, 0x12, 0xff, 0xb7, + 0xb9, 0xe0, 0x45, 0xce, 0x17, 0x2f, 0x39, 0x5a, 0x94, 0x00, 0x02, 0x5a, 0xe0, 0x80, 0xe2, 0xa5, + 0xf4, 0xa2, 0x81, 0x27, 0xf0, 0x87, 0x73, 0x4c, 0x7d, 0x6c, 0x54, 0x3b, 0xba, 0x55, 0x71, 0x6f, + 0x6f, 0xf2, 0xa7, 0x83, 0x49, 0x96, 0xbd, 0x21, 0xfb, 0x37, 0xe4, 0x7e, 0x81, 0xec, 0xe7, 0xe4, + 0x33, 0xd0, 0x98, 0x26, 0x24, 0x08, 0xb1, 0x47, 0xe8, 0x19, 0x33, 0x6a, 0x6a, 0x14, 0x4e, 0x4a, + 0x7a, 0x1e, 0x2a, 0xea, 0x15, 0x3d, 0x63, 0x2e, 0x98, 0xe6, 0x67, 0xd8, 0x02, 0x35, 0xbc, 0xe4, + 0x2c, 0x91, 0x38, 0x30, 0xea, 0x1d, 0xdd, 0xaa, 0xb9, 0x79, 0xdc, 0x9d, 0x01, 0xb8, 0xfd, 0xcf, + 0xe1, 0x00, 0xec, 0xa3, 0x20, 0x48, 0xb0, 0x48, 0x07, 0xaf, 0x3e, 0x34, 0xbe, 0x7f, 0xeb, 0x35, + 0xb3, 0x01, 0x7f, 0x9e, 0x56, 0x26, 0x32, 0x21, 0x34, 0x74, 0xaf, 0x41, 0xd8, 0x04, 0x7b, 0x6a, + 0xbc, 0x8c, 0x9d, 0x8e, 0x6e, 0xed, 0xba, 0x69, 0xf0, 0xa4, 0xf6, 0xe9, 0xa2, 0xad, 0xfd, 0xb9, + 0x68, 0x6b, 0xc3, 0xd1, 0xe5, 0xca, 0xd4, 0xaf, 0x56, 0xa6, 0xfe, 0x6b, 0x65, 0xea, 0x9f, 0xd7, + 0xa6, 0x76, 0xb5, 0x36, 0xb5, 0x1f, 0x6b, 0x53, 0x7b, 0xdf, 0x0b, 0x89, 0x9c, 0x9d, 0x4f, 0x6d, + 0x9f, 0xc5, 0xce, 0xe6, 0x49, 0x04, 0xf5, 0x22, 0x34, 0x15, 0xce, 0xeb, 0xb1, 0x5a, 0x96, 0x65, + 0xbe, 0x2e, 0x6a, 0x57, 0xa6, 0x55, 0xb5, 0x2c, 0x8f, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x56, + 0xf7, 0x12, 0xfb, 0xc5, 0x03, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -242,7 +254,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0 } i-- - dAtA[i] = 0x40 + dAtA[i] = 0x48 } if m.BridgeInfo != nil { { @@ -254,17 +266,31 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x3a + dAtA[i] = 0x42 } if m.NextL1Sequence != 0 { i = encodeVarintGenesis(dAtA, i, uint64(m.NextL1Sequence)) i-- - dAtA[i] = 0x30 + dAtA[i] = 0x38 } if m.NextL2Sequence != 0 { i = encodeVarintGenesis(dAtA, i, uint64(m.NextL2Sequence)) i-- - dAtA[i] = 0x28 + dAtA[i] = 0x30 + } + if len(m.WithdrawalCommitments) > 0 { + for iNdEx := len(m.WithdrawalCommitments) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.WithdrawalCommitments[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } } if len(m.PendingDeposits) > 0 { for iNdEx := len(m.PendingDeposits) - 1; iNdEx >= 0; iNdEx-- { @@ -393,6 +419,12 @@ func (m *GenesisState) Size() (n int) { n += 1 + l + sovGenesis(uint64(l)) } } + if len(m.WithdrawalCommitments) > 0 { + for _, e := range m.WithdrawalCommitments { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } if m.NextL2Sequence != 0 { n += 1 + sovGenesis(uint64(m.NextL2Sequence)) } @@ -596,6 +628,40 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WithdrawalCommitments", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WithdrawalCommitments = append(m.WithdrawalCommitments, WithdrawalCommitment{}) + if err := m.WithdrawalCommitments[len(m.WithdrawalCommitments)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field NextL2Sequence", wireType) } @@ -614,7 +680,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { break } } - case 6: + case 7: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field NextL1Sequence", wireType) } @@ -633,7 +699,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { break } } - case 7: + case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field BridgeInfo", wireType) } @@ -669,7 +735,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 8: + case 9: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Exported", wireType) } diff --git a/x/opchild/types/keys.go b/x/opchild/types/keys.go index 7839ee56..367e560d 100644 --- a/x/opchild/types/keys.go +++ b/x/opchild/types/keys.go @@ -19,14 +19,17 @@ var ( BridgeInfoKey = []byte{0x13} // prefix for bridge_info NextL1SequenceKey = []byte{0x14} // prefix for inbound deposit sequence number - LastValidatorPowerPrefix = []byte{0x21} // prefix for each key to a validator index, for bonded validators - ValidatorsPrefix = []byte{0x31} // prefix for each key to a validator - ValidatorsByConsAddrPrefix = []byte{0x41} // prefix for each key to a validator index, by pubkey - HistoricalInfoPrefix = []byte{0x51} // prefix for the historical info - DenomPairPrefix = []byte{0x61} // prefix for the denom pair - PendingDepositsKey = []byte{0x62} // prefix for pending deposits + HistoricalInfoPrefix = []byte{0x21} // prefix for the historical info + WithdrawalCommitmentPrefix = []byte{0x22} // prefix for withdrawal commitments + + LastValidatorPowerPrefix = []byte{0x31} // prefix for each key to a validator index, for bonded validators + ValidatorsPrefix = []byte{0x32} // prefix for each key to a validator + ValidatorsByConsAddrPrefix = []byte{0x33} // prefix for each key to a validator index, by pubkey + + DenomPairPrefix = []byte{0x41} // prefix for the denom pair + PendingDepositsKey = []byte{0x42} // prefix for pending deposits // HostValidatorStore keys - HostHeightKey = []byte{0x71} - HostValidatorsPrefix = []byte{0x72} + HostHeightKey = []byte{0x51} + HostValidatorsPrefix = []byte{0x52} ) diff --git a/x/opchild/types/proof.go b/x/opchild/types/proof.go new file mode 100644 index 00000000..1158bb05 --- /dev/null +++ b/x/opchild/types/proof.go @@ -0,0 +1,93 @@ +package types + +import ( + "bytes" + + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + "github.com/cometbft/cometbft/crypto/merkle" + cmtcrypto "github.com/cometbft/cometbft/proto/tendermint/crypto" + cmttypes "github.com/cometbft/cometbft/types" + + gogotypes "github.com/cosmos/gogoproto/types" +) + +func NewProofFromProto(p *v1.Proof) (*merkle.Proof, error) { + proof := &merkle.Proof{ + Total: p.Total, + Index: p.Index, + LeafHash: p.LeafHash, + Aunts: p.Aunts, + } + + return proof, proof.ValidateBasic() +} + +func NewProofOpsFromProto(p *v1.ProofOps) *cmtcrypto.ProofOps { + ops := make([]cmtcrypto.ProofOp, len(p.Ops)) + for i, op := range p.Ops { + ops[i] = cmtcrypto.ProofOp(op) + } + + return &cmtcrypto.ProofOps{Ops: ops} +} + +func NewProtoFromProof(p *merkle.Proof) *v1.Proof { + return &v1.Proof{ + Total: p.Total, + Index: p.Index, + LeafHash: p.LeafHash, + Aunts: p.Aunts, + } +} + +func NewProtoFromProofOps(p *cmtcrypto.ProofOps) *v1.ProofOps { + ops := make([]v1.ProofOp, len(p.Ops)) + for i, op := range p.Ops { + ops[i] = v1.ProofOp(op) + } + + return &v1.ProofOps{Ops: ops} +} + +func NewAppHashProof(h *cmttypes.Header) *v1.Proof { + if h == nil || len(h.ValidatorsHash) == 0 { + return nil + } + hbz, err := h.Version.Marshal() + if err != nil { + return nil + } + + pbt, err := gogotypes.StdTimeMarshal(h.Time) + if err != nil { + return nil + } + + pbbi := h.LastBlockID.ToProto() + bzbi, err := pbbi.Marshal() + if err != nil { + return nil + } + + rootHash, proofs := merkle.ProofsFromByteSlices([][]byte{ + hbz, + cdcEncode(h.ChainID), + cdcEncode(h.Height), + pbt, + bzbi, + cdcEncode(h.LastCommitHash), + cdcEncode(h.DataHash), + cdcEncode(h.ValidatorsHash), + cdcEncode(h.NextValidatorsHash), + cdcEncode(h.ConsensusHash), + cdcEncode(h.AppHash), + cdcEncode(h.LastResultsHash), + cdcEncode(h.EvidenceHash), + cdcEncode(h.ProposerAddress), + }) + if !bytes.Equal(rootHash, h.Hash().Bytes()) { + return nil + } + + return NewProtoFromProof(proofs[10]) +} diff --git a/x/opchild/types/query.pb.go b/x/opchild/types/query.pb.go index 08dc6770..34c7aa13 100644 --- a/x/opchild/types/query.pb.go +++ b/x/opchild/types/query.pb.go @@ -6,7 +6,9 @@ package types import ( context "context" fmt "fmt" + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" _ "github.com/cosmos/cosmos-proto" + _ "github.com/cosmos/cosmos-sdk/types" query "github.com/cosmos/cosmos-sdk/types/query" _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" @@ -647,6 +649,115 @@ func (m *QueryBaseDenomResponse) GetBaseDenom() string { return "" } +// QueryForceWithdrawalProofsRequest is request type for the Query/ForceWithdrawalProofs RPC method. +type QueryForceWithdrawalProofsRequest struct { + // l2_sequence is the sequence number of the l2 block. + L2Sequence uint64 `protobuf:"varint,1,opt,name=l2_sequence,json=l2Sequence,proto3" json:"l2_sequence,omitempty"` +} + +func (m *QueryForceWithdrawalProofsRequest) Reset() { *m = QueryForceWithdrawalProofsRequest{} } +func (m *QueryForceWithdrawalProofsRequest) String() string { return proto.CompactTextString(m) } +func (*QueryForceWithdrawalProofsRequest) ProtoMessage() {} +func (*QueryForceWithdrawalProofsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_15cfbb5d02a763ec, []int{14} +} +func (m *QueryForceWithdrawalProofsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryForceWithdrawalProofsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryForceWithdrawalProofsRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryForceWithdrawalProofsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryForceWithdrawalProofsRequest.Merge(m, src) +} +func (m *QueryForceWithdrawalProofsRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryForceWithdrawalProofsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryForceWithdrawalProofsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryForceWithdrawalProofsRequest proto.InternalMessageInfo + +func (m *QueryForceWithdrawalProofsRequest) GetL2Sequence() uint64 { + if m != nil { + return m.L2Sequence + } + return 0 +} + +// QueryForceWithdrawalProofsResponse is response type for the Query/ForceWithdrawalProofs RPC method. +type QueryForceWithdrawalProofsResponse struct { + // withdrawal commitments and proofs + CommitmentProof v1.ProofOps `protobuf:"bytes,3,opt,name=commitment_proof,json=commitmentProof,proto3" json:"commitment_proof" yaml:"commitment_proof"` + // app hash and proof + AppHash []byte `protobuf:"bytes,4,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty" yaml:"app_hash"` + AppHashProof v1.Proof `protobuf:"bytes,5,opt,name=app_hash_proof,json=appHashProof,proto3" json:"app_hash_proof" yaml:"app_hash_proof"` +} + +func (m *QueryForceWithdrawalProofsResponse) Reset() { *m = QueryForceWithdrawalProofsResponse{} } +func (m *QueryForceWithdrawalProofsResponse) String() string { return proto.CompactTextString(m) } +func (*QueryForceWithdrawalProofsResponse) ProtoMessage() {} +func (*QueryForceWithdrawalProofsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_15cfbb5d02a763ec, []int{15} +} +func (m *QueryForceWithdrawalProofsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryForceWithdrawalProofsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryForceWithdrawalProofsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryForceWithdrawalProofsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryForceWithdrawalProofsResponse.Merge(m, src) +} +func (m *QueryForceWithdrawalProofsResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryForceWithdrawalProofsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryForceWithdrawalProofsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryForceWithdrawalProofsResponse proto.InternalMessageInfo + +func (m *QueryForceWithdrawalProofsResponse) GetCommitmentProof() v1.ProofOps { + if m != nil { + return m.CommitmentProof + } + return v1.ProofOps{} +} + +func (m *QueryForceWithdrawalProofsResponse) GetAppHash() []byte { + if m != nil { + return m.AppHash + } + return nil +} + +func (m *QueryForceWithdrawalProofsResponse) GetAppHashProof() v1.Proof { + if m != nil { + return m.AppHashProof + } + return v1.Proof{} +} + func init() { proto.RegisterType((*QueryValidatorsRequest)(nil), "opinit.opchild.v1.QueryValidatorsRequest") proto.RegisterType((*QueryValidatorsResponse)(nil), "opinit.opchild.v1.QueryValidatorsResponse") @@ -662,64 +773,79 @@ func init() { proto.RegisterType((*QueryNextL2SequenceResponse)(nil), "opinit.opchild.v1.QueryNextL2SequenceResponse") proto.RegisterType((*QueryBaseDenomRequest)(nil), "opinit.opchild.v1.QueryBaseDenomRequest") proto.RegisterType((*QueryBaseDenomResponse)(nil), "opinit.opchild.v1.QueryBaseDenomResponse") + proto.RegisterType((*QueryForceWithdrawalProofsRequest)(nil), "opinit.opchild.v1.QueryForceWithdrawalProofsRequest") + proto.RegisterType((*QueryForceWithdrawalProofsResponse)(nil), "opinit.opchild.v1.QueryForceWithdrawalProofsResponse") } func init() { proto.RegisterFile("opinit/opchild/v1/query.proto", fileDescriptor_15cfbb5d02a763ec) } var fileDescriptor_15cfbb5d02a763ec = []byte{ - // 820 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcf, 0x6b, 0xdb, 0x48, - 0x14, 0xc7, 0xad, 0xec, 0x26, 0xac, 0x5f, 0xd8, 0xb0, 0x99, 0xf5, 0xee, 0x3a, 0x4e, 0xec, 0x04, - 0x2d, 0x49, 0x1c, 0x2f, 0xd6, 0xac, 0xd5, 0x43, 0xa1, 0x14, 0x4a, 0x4d, 0xdb, 0x10, 0x28, 0x6d, - 0xea, 0x40, 0x29, 0xbd, 0xb8, 0x23, 0x6b, 0xa2, 0x08, 0x6c, 0x8d, 0x22, 0x29, 0x26, 0x21, 0x84, - 0x42, 0x4f, 0xbd, 0x35, 0xd0, 0x1e, 0x7b, 0xe9, 0xad, 0x90, 0x4b, 0x0f, 0xfd, 0x23, 0x72, 0x0c, - 0xed, 0xa5, 0xa7, 0x52, 0x92, 0x42, 0xff, 0x8d, 0xa2, 0xd1, 0xe8, 0x57, 0x2c, 0x27, 0x6e, 0x2f, - 0x89, 0xe7, 0xfd, 0x98, 0xef, 0x67, 0xde, 0xbc, 0x37, 0x08, 0xca, 0xcc, 0x36, 0x2d, 0xd3, 0xc3, - 0xcc, 0xee, 0x6c, 0x99, 0x5d, 0x1d, 0xf7, 0x1b, 0x78, 0x7b, 0x87, 0x3a, 0x7b, 0x8a, 0xed, 0x30, - 0x8f, 0xa1, 0xe9, 0xc0, 0xad, 0x08, 0xb7, 0xd2, 0x6f, 0x94, 0xa6, 0x49, 0xcf, 0xb4, 0x18, 0xe6, - 0x7f, 0x83, 0xa8, 0x52, 0xad, 0xc3, 0xdc, 0x1e, 0x73, 0xb1, 0x46, 0x5c, 0x1a, 0xa4, 0xe3, 0x7e, - 0x43, 0xa3, 0x1e, 0x69, 0x60, 0x9b, 0x18, 0xa6, 0x45, 0x3c, 0x93, 0x59, 0x22, 0x76, 0x56, 0xc4, - 0x86, 0x61, 0x49, 0xb9, 0xd2, 0x4c, 0xe0, 0x6c, 0xf3, 0x15, 0x0e, 0x16, 0xc2, 0x55, 0x30, 0x98, - 0xc1, 0x02, 0xbb, 0xff, 0x4b, 0x58, 0xe7, 0x0c, 0xc6, 0x8c, 0x2e, 0xc5, 0xc4, 0x36, 0x31, 0xb1, - 0x2c, 0xe6, 0x71, 0xa9, 0x30, 0x27, 0xe3, 0x70, 0xde, 0x9e, 0x4d, 0x85, 0x5b, 0x7e, 0x02, 0x7f, - 0x3f, 0xf0, 0xc5, 0x1f, 0x92, 0xae, 0xa9, 0x13, 0x8f, 0x39, 0x6e, 0x8b, 0x6e, 0xef, 0x50, 0xd7, - 0x43, 0x77, 0x00, 0x62, 0xf0, 0xa2, 0xb4, 0x20, 0x55, 0x27, 0xd5, 0x25, 0x45, 0xf0, 0xf8, 0xa7, - 0x54, 0x02, 0x6a, 0x71, 0x4a, 0x65, 0x9d, 0x18, 0x54, 0xe4, 0xb6, 0x12, 0x99, 0xf2, 0x91, 0x04, - 0xff, 0x0c, 0x48, 0xb8, 0x36, 0xb3, 0x5c, 0x8a, 0x56, 0x01, 0xfa, 0x91, 0xb5, 0x28, 0x2d, 0xfc, - 0x52, 0x9d, 0x54, 0xe7, 0x94, 0x81, 0x7a, 0x2b, 0x51, 0x6a, 0x33, 0x7f, 0xfc, 0x79, 0x3e, 0xf7, - 0xf6, 0xdb, 0xbb, 0x9a, 0xd4, 0x4a, 0xa4, 0xfa, 0x1b, 0x25, 0x60, 0xc7, 0x38, 0xec, 0xf2, 0xa5, - 0xb0, 0x01, 0x45, 0x8a, 0xf6, 0x11, 0xfc, 0x95, 0x86, 0x0d, 0xcb, 0x71, 0x03, 0xa6, 0x22, 0xbd, - 0x36, 0xd1, 0x75, 0x87, 0x97, 0x24, 0xdf, 0x2c, 0x7e, 0x78, 0x5f, 0x2f, 0x08, 0xa1, 0x9b, 0xba, - 0xee, 0x50, 0xd7, 0xdd, 0xf0, 0x1c, 0xd3, 0x32, 0x5a, 0xbf, 0x47, 0xf1, 0xbe, 0x5d, 0x6e, 0x9f, - 0xaf, 0x74, 0x54, 0x85, 0xdb, 0x90, 0x8f, 0x42, 0x45, 0xa1, 0x47, 0x2e, 0x42, 0x9c, 0x29, 0x17, - 0x85, 0x40, 0xd3, 0x31, 0x75, 0x83, 0xae, 0x59, 0x9b, 0x4c, 0xb0, 0xcb, 0xba, 0xb8, 0x81, 0xa4, - 0x47, 0x68, 0xaf, 0xc1, 0xa4, 0xc6, 0xad, 0x6d, 0xd3, 0xda, 0x64, 0x42, 0xbd, 0x9c, 0xa1, 0x1e, - 0xe7, 0xa6, 0xee, 0x40, 0x8b, 0xcc, 0x72, 0x01, 0x10, 0x57, 0x59, 0x27, 0x0e, 0xe9, 0x85, 0x6d, - 0x24, 0x6f, 0xc0, 0x9f, 0x29, 0xab, 0xd0, 0xbd, 0x0e, 0x13, 0x36, 0xb7, 0x08, 0xc9, 0x99, 0x0c, - 0xc9, 0x20, 0x25, 0x29, 0x27, 0x72, 0xe4, 0x39, 0x28, 0xf1, 0x4d, 0xef, 0xd1, 0x5d, 0xef, 0x6e, - 0x63, 0xc3, 0x97, 0xb2, 0x3a, 0x61, 0xf7, 0xc9, 0xab, 0x30, 0x9b, 0xe9, 0x15, 0xd2, 0x55, 0xf8, - 0xc3, 0xa2, 0xbb, 0x5e, 0xbb, 0xdb, 0x68, 0xbb, 0xc2, 0xc7, 0x21, 0x7e, 0x6d, 0x4d, 0x59, 0xa9, - 0x8c, 0xb4, 0x8c, 0x7a, 0xa1, 0x8c, 0x3a, 0x5c, 0x46, 0xcd, 0x96, 0x89, 0x32, 0xe4, 0xba, 0xe8, - 0xb9, 0x26, 0x71, 0xe9, 0x2d, 0x6a, 0xb1, 0x5e, 0xd8, 0x73, 0x05, 0x18, 0xd7, 0xfd, 0x75, 0xd0, - 0x6a, 0xad, 0x60, 0x21, 0x5f, 0x0d, 0xef, 0x39, 0x0e, 0x17, 0x92, 0x65, 0x00, 0xbf, 0xd7, 0xdb, - 0xc9, 0xa4, 0xbc, 0x16, 0x86, 0xa9, 0x47, 0xbf, 0xc1, 0x38, 0xcf, 0x44, 0x2f, 0x24, 0x80, 0x78, - 0x1c, 0xd1, 0x4a, 0x46, 0xf1, 0xb3, 0x5f, 0x85, 0x52, 0x6d, 0x94, 0xd0, 0x00, 0x47, 0xae, 0x3d, - 0xf7, 0x2f, 0xed, 0xd9, 0xc7, 0xaf, 0x2f, 0xc7, 0xe6, 0x51, 0x19, 0x0f, 0x3e, 0x44, 0x89, 0x01, - 0x7e, 0x2d, 0x41, 0x3e, 0xda, 0x02, 0x55, 0x2f, 0x55, 0x09, 0x79, 0x56, 0x46, 0x88, 0x14, 0x38, - 0xd7, 0x62, 0x1c, 0x8c, 0xea, 0x17, 0xe1, 0xe0, 0xfd, 0xf4, 0xa8, 0x1f, 0xa0, 0x43, 0x09, 0x20, - 0x9e, 0x80, 0xe1, 0x05, 0x1b, 0x98, 0xbd, 0xe1, 0x05, 0x1b, 0x1c, 0x46, 0xf9, 0xbf, 0x98, 0x70, - 0x01, 0x55, 0x32, 0x08, 0x13, 0xa3, 0x8a, 0x9e, 0xc2, 0x44, 0x30, 0x20, 0x68, 0x71, 0x98, 0x44, - 0x6a, 0x12, 0x4b, 0x4b, 0x97, 0x85, 0x09, 0x8a, 0xa5, 0x98, 0x62, 0x16, 0xcd, 0x64, 0x50, 0x04, - 0x43, 0x88, 0xde, 0x48, 0x30, 0x95, 0x1e, 0x31, 0x54, 0x1f, 0x26, 0x91, 0x39, 0xa8, 0x25, 0x65, - 0xd4, 0x70, 0x41, 0xf6, 0x7f, 0x4c, 0xb6, 0x88, 0xfe, 0xcd, 0x20, 0x3b, 0x3f, 0xd7, 0x31, 0xa3, - 0x3a, 0x22, 0xa3, 0xfa, 0x63, 0x8c, 0xea, 0xcf, 0x32, 0xc6, 0x8f, 0x02, 0x7a, 0x25, 0x41, 0x3e, - 0x9a, 0xe5, 0xe1, 0xad, 0x7f, 0xfe, 0x75, 0x18, 0xde, 0xfa, 0x03, 0x0f, 0x83, 0xac, 0xc6, 0x50, - 0xcb, 0x68, 0x31, 0xab, 0xb1, 0xa2, 0x67, 0x03, 0xef, 0xf3, 0x7f, 0x07, 0xcd, 0xd5, 0xe3, 0xd3, - 0x8a, 0x74, 0x72, 0x5a, 0x91, 0xbe, 0x9c, 0x56, 0xa4, 0xc3, 0xb3, 0x4a, 0xee, 0xe4, 0xac, 0x92, - 0xfb, 0x74, 0x56, 0xc9, 0x3d, 0xae, 0x1b, 0xa6, 0xb7, 0xb5, 0xa3, 0x29, 0x1d, 0xd6, 0xc3, 0xfe, - 0x46, 0x26, 0xa9, 0x77, 0x89, 0xe6, 0xe2, 0xfb, 0xeb, 0x7c, 0xdb, 0xdd, 0x68, 0x63, 0xfe, 0xa1, - 0xa1, 0x4d, 0xf0, 0x2f, 0x8d, 0x2b, 0xdf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xaa, 0x5e, 0xc4, 0x7b, - 0x67, 0x09, 0x00, 0x00, + // 1040 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcf, 0x6f, 0xdc, 0x44, + 0x14, 0xc7, 0xe3, 0xb4, 0x09, 0xec, 0x4b, 0x49, 0xdb, 0x69, 0x42, 0x37, 0x9b, 0x64, 0x37, 0x0c, + 0x24, 0xdd, 0x06, 0xad, 0xcd, 0xba, 0x54, 0x48, 0x15, 0x12, 0xb0, 0x2a, 0x0d, 0x95, 0x10, 0x0d, + 0x1b, 0x09, 0x10, 0x97, 0x65, 0x76, 0xed, 0xec, 0x5a, 0x5a, 0x7b, 0x5c, 0x7b, 0x92, 0x26, 0x8a, + 0x22, 0x24, 0x4e, 0xdc, 0xa8, 0x04, 0x47, 0x2e, 0xdc, 0x2a, 0x71, 0xe1, 0xc0, 0xdf, 0x80, 0x7a, + 0xac, 0xe0, 0xc2, 0x29, 0x42, 0x09, 0x12, 0xf7, 0x8a, 0x3f, 0x00, 0x79, 0x66, 0xec, 0xb1, 0xb3, + 0x76, 0xb2, 0xe5, 0x92, 0xc4, 0xf3, 0x7e, 0x7c, 0x3f, 0x7e, 0xf3, 0xf2, 0x95, 0x61, 0x99, 0xfa, + 0x8e, 0xe7, 0x30, 0x83, 0xfa, 0xbd, 0x81, 0x33, 0xb4, 0x8c, 0xdd, 0xa6, 0xf1, 0x70, 0xc7, 0x0e, + 0xf6, 0x75, 0x3f, 0xa0, 0x8c, 0xa2, 0xab, 0x22, 0xac, 0xcb, 0xb0, 0xbe, 0xdb, 0xac, 0x5c, 0x25, + 0xae, 0xe3, 0x51, 0x83, 0xff, 0x14, 0x59, 0x95, 0x6a, 0x8f, 0xba, 0x36, 0xeb, 0x6e, 0x33, 0xa3, + 0x17, 0xec, 0xfb, 0x8c, 0x46, 0x5d, 0xfc, 0x80, 0xd2, 0x6d, 0x19, 0x5f, 0xef, 0xd1, 0xd0, 0xa5, + 0xa1, 0xd1, 0x25, 0xa1, 0x2d, 0xda, 0x1b, 0xbb, 0xcd, 0xae, 0xcd, 0x48, 0xd3, 0xf0, 0x49, 0xdf, + 0xf1, 0x08, 0x73, 0xa8, 0xa7, 0x7a, 0xa9, 0xdc, 0x38, 0xab, 0x47, 0x9d, 0x38, 0xbe, 0x28, 0xe3, + 0x71, 0x9b, 0x34, 0x6e, 0x65, 0x41, 0x04, 0x3b, 0xfc, 0xc9, 0x10, 0x0f, 0x32, 0x34, 0xd7, 0xa7, + 0x7d, 0x2a, 0xce, 0xa3, 0xbf, 0xe4, 0xe9, 0x52, 0x9f, 0xd2, 0xfe, 0xd0, 0x36, 0x88, 0xef, 0x18, + 0xc4, 0xf3, 0x28, 0xe3, 0x28, 0x71, 0x4d, 0xce, 0x70, 0xd8, 0xbe, 0x6f, 0xcb, 0x30, 0xfe, 0x0a, + 0x5e, 0xfd, 0x34, 0x12, 0xff, 0x8c, 0x0c, 0x1d, 0x8b, 0x30, 0x1a, 0x84, 0x6d, 0xfb, 0xe1, 0x8e, + 0x1d, 0x32, 0x74, 0x0f, 0x40, 0xbd, 0x58, 0x59, 0x5b, 0xd1, 0xea, 0x33, 0xe6, 0x9a, 0x2e, 0x79, + 0xa2, 0x37, 0xd3, 0x05, 0xb5, 0x7c, 0x3f, 0x7d, 0x93, 0xf4, 0x6d, 0x59, 0xdb, 0x4e, 0x55, 0xe2, + 0x9f, 0x35, 0xb8, 0x3e, 0x22, 0x11, 0xfa, 0xd4, 0x0b, 0x6d, 0xb4, 0x01, 0xb0, 0x9b, 0x9c, 0x96, + 0xb5, 0x95, 0x0b, 0xf5, 0x19, 0x73, 0x49, 0x1f, 0xb9, 0x2f, 0x3d, 0x29, 0x6d, 0x95, 0x9e, 0x1e, + 0xd5, 0x26, 0x9e, 0xfc, 0xf3, 0xcb, 0xba, 0xd6, 0x4e, 0x95, 0x46, 0x8d, 0x52, 0xb0, 0x93, 0x1c, + 0xf6, 0xc6, 0xb9, 0xb0, 0x82, 0x22, 0x43, 0xfb, 0x05, 0xcc, 0x67, 0x61, 0xe3, 0x71, 0xbc, 0x07, + 0xb3, 0x89, 0x5e, 0x87, 0x58, 0x56, 0xc0, 0x47, 0x52, 0x6a, 0x95, 0x7f, 0xff, 0xb5, 0x31, 0x27, + 0x85, 0x3e, 0xb0, 0xac, 0xc0, 0x0e, 0xc3, 0x2d, 0x16, 0x38, 0x5e, 0xbf, 0xfd, 0x4a, 0x92, 0x1f, + 0x9d, 0xe3, 0xce, 0xe9, 0x49, 0x27, 0x53, 0xf8, 0x10, 0x4a, 0x49, 0xaa, 0x1c, 0xf4, 0xd8, 0x43, + 0x50, 0x95, 0xb8, 0x2c, 0x05, 0x5a, 0x81, 0x63, 0xf5, 0xed, 0xfb, 0xde, 0x36, 0x95, 0xec, 0xd8, + 0x92, 0x37, 0x90, 0x8e, 0x48, 0xed, 0xfb, 0x30, 0xd3, 0xe5, 0xa7, 0x1d, 0xc7, 0xdb, 0xa6, 0x52, + 0x7d, 0x39, 0x47, 0x5d, 0xd5, 0x66, 0xee, 0xa0, 0x9b, 0x1c, 0xe3, 0x39, 0x40, 0x5c, 0x65, 0x93, + 0x04, 0xc4, 0x8d, 0xd7, 0x08, 0x6f, 0xc1, 0xb5, 0xcc, 0xa9, 0xd4, 0x7d, 0x17, 0xa6, 0x7d, 0x7e, + 0x22, 0x25, 0x17, 0x72, 0x24, 0x45, 0x49, 0x5a, 0x4e, 0xd6, 0xe0, 0x25, 0xa8, 0xf0, 0xa6, 0x9f, + 0xd8, 0x7b, 0xec, 0xe3, 0xe6, 0x56, 0x24, 0xe5, 0xf5, 0xe2, 0xed, 0xc3, 0x1b, 0xb0, 0x98, 0x1b, + 0x95, 0xd2, 0x75, 0xb8, 0xe2, 0xd9, 0x7b, 0xac, 0x33, 0x6c, 0x76, 0x42, 0x19, 0xe3, 0x10, 0x17, + 0xdb, 0xb3, 0x5e, 0xa6, 0x22, 0x2b, 0x63, 0x9e, 0x29, 0x63, 0x16, 0xcb, 0x98, 0xf9, 0x32, 0x49, + 0x05, 0x6e, 0xc8, 0x9d, 0x6b, 0x91, 0xd0, 0xbe, 0x6b, 0x7b, 0xd4, 0x8d, 0x77, 0x6e, 0x0e, 0xa6, + 0xac, 0xe8, 0x59, 0xac, 0x5a, 0x5b, 0x3c, 0xe0, 0x77, 0xe2, 0x7b, 0x56, 0xe9, 0x52, 0x72, 0x19, + 0x20, 0xda, 0xf5, 0x4e, 0xba, 0xa8, 0xd4, 0x8d, 0xd3, 0xf0, 0x5d, 0x78, 0x8d, 0x17, 0xde, 0xa3, + 0x41, 0xcf, 0xfe, 0xdc, 0x61, 0x03, 0x2b, 0x20, 0x8f, 0xc8, 0x70, 0x33, 0x72, 0xb9, 0xe4, 0xdf, + 0xbe, 0x06, 0x33, 0xa3, 0xc4, 0x30, 0x54, 0xb4, 0x4f, 0x26, 0x01, 0x9f, 0xd5, 0x46, 0xb2, 0xb8, + 0x70, 0xa5, 0x47, 0x5d, 0xd7, 0x61, 0xae, 0xed, 0xb1, 0x0e, 0x77, 0xd2, 0xf2, 0x05, 0xb9, 0xdb, + 0xb1, 0xd5, 0xea, 0xc2, 0x6a, 0xf9, 0x5d, 0x47, 0x09, 0x0f, 0xfc, 0xb0, 0xf5, 0x46, 0x74, 0xdb, + 0xcf, 0x8f, 0x6a, 0xd7, 0xf7, 0x89, 0x3b, 0xbc, 0x83, 0x4f, 0xf7, 0xc0, 0x62, 0x11, 0x2e, 0xab, + 0x73, 0x5e, 0x89, 0x74, 0x78, 0x99, 0xf8, 0x7e, 0x67, 0x40, 0xc2, 0x41, 0xf9, 0xe2, 0x8a, 0x56, + 0xbf, 0xd4, 0xba, 0xf6, 0xfc, 0xa8, 0x76, 0x59, 0x34, 0x89, 0x23, 0xb8, 0xfd, 0x12, 0xf1, 0xfd, + 0x8f, 0x48, 0x38, 0x40, 0x3d, 0x98, 0x8d, 0x4f, 0x25, 0xdc, 0x94, 0xdc, 0xc3, 0x22, 0xb8, 0x16, + 0x96, 0x64, 0xf3, 0xd9, 0xa6, 0x19, 0xae, 0x4b, 0xb2, 0x3f, 0xaf, 0x30, 0xff, 0x2d, 0xc1, 0x14, + 0x1f, 0x15, 0xfa, 0x4e, 0x03, 0x50, 0xfe, 0x87, 0x6e, 0xe6, 0x6c, 0x7b, 0xbe, 0x0d, 0x57, 0xd6, + 0xc7, 0x49, 0x15, 0x33, 0xc7, 0xeb, 0xdf, 0x46, 0x10, 0xdf, 0xfc, 0xf1, 0xf7, 0xf7, 0x93, 0x35, + 0xb4, 0x6c, 0x8c, 0x3a, 0x7f, 0xca, 0x31, 0x7f, 0xd4, 0xa0, 0x94, 0xb4, 0x40, 0xf5, 0x73, 0x55, + 0x62, 0x9e, 0x9b, 0x63, 0x64, 0x4a, 0x9c, 0x3b, 0x0a, 0xc7, 0x40, 0x8d, 0xb3, 0x70, 0x8c, 0x83, + 0xac, 0xb7, 0x1e, 0xa2, 0xc7, 0x1a, 0x80, 0xb2, 0x9c, 0xe2, 0x81, 0x8d, 0x98, 0x5d, 0xf1, 0xc0, + 0x46, 0xdd, 0x0f, 0xbf, 0xa9, 0x08, 0x57, 0x50, 0x35, 0x87, 0x30, 0xe5, 0x8d, 0xe8, 0x6b, 0x98, + 0x16, 0x8e, 0x84, 0x56, 0x8b, 0x24, 0x32, 0xd6, 0x57, 0x59, 0x3b, 0x2f, 0x4d, 0x52, 0xac, 0x29, + 0x8a, 0x45, 0xb4, 0x90, 0x43, 0x21, 0x5c, 0x0f, 0xfd, 0xa4, 0xc1, 0x6c, 0xd6, 0xd3, 0x50, 0xa3, + 0x48, 0x22, 0xd7, 0x19, 0x2b, 0xfa, 0xb8, 0xe9, 0x92, 0xec, 0x2d, 0x45, 0xb6, 0x8a, 0x5e, 0xcf, + 0x21, 0x3b, 0x6d, 0xa4, 0x8a, 0xd1, 0x1c, 0x93, 0xd1, 0x7c, 0x31, 0x46, 0xf3, 0xff, 0x32, 0x2a, + 0x4f, 0x43, 0x3f, 0x68, 0x50, 0x4a, 0xcc, 0xb3, 0x78, 0xf5, 0x4f, 0xdb, 0x71, 0xf1, 0xea, 0x8f, + 0x38, 0x31, 0x36, 0x15, 0xd4, 0x0d, 0xb4, 0x9a, 0xb7, 0x58, 0x89, 0x4f, 0x1b, 0x07, 0xfc, 0xd7, + 0x21, 0xfa, 0x4d, 0x83, 0xf9, 0x5c, 0x4f, 0x45, 0x6f, 0x17, 0x09, 0x9f, 0xe5, 0xe4, 0x95, 0xdb, + 0x2f, 0x58, 0x25, 0xd1, 0xdf, 0x57, 0xe8, 0xb7, 0xd1, 0xad, 0x1c, 0xf4, 0x47, 0x49, 0x65, 0x68, + 0x1c, 0xa4, 0xe6, 0x7a, 0x28, 0xbe, 0x97, 0xc3, 0xd6, 0xc6, 0xd3, 0xe3, 0xaa, 0xf6, 0xec, 0xb8, + 0xaa, 0xfd, 0x75, 0x5c, 0xd5, 0x1e, 0x9f, 0x54, 0x27, 0x9e, 0x9d, 0x54, 0x27, 0xfe, 0x3c, 0xa9, + 0x4e, 0x7c, 0xd9, 0xe8, 0x3b, 0x6c, 0xb0, 0xd3, 0x8d, 0x3c, 0xd6, 0x88, 0xda, 0x3a, 0xa4, 0x31, + 0x24, 0xdd, 0xd0, 0x78, 0xb0, 0xc9, 0x45, 0xf6, 0x12, 0x19, 0xfe, 0x89, 0xda, 0x9d, 0xe6, 0xdf, + 0xa8, 0xb7, 0xfe, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xc7, 0xcd, 0x64, 0x2e, 0xe1, 0x0b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -750,6 +876,7 @@ type QueryClient interface { // NextL2Sequence queries the next l2 sequence number. NextL2Sequence(ctx context.Context, in *QueryNextL2SequenceRequest, opts ...grpc.CallOption) (*QueryNextL2SequenceResponse, error) BaseDenom(ctx context.Context, in *QueryBaseDenomRequest, opts ...grpc.CallOption) (*QueryBaseDenomResponse, error) + ForceWithdrawalProofs(ctx context.Context, in *QueryForceWithdrawalProofsRequest, opts ...grpc.CallOption) (*QueryForceWithdrawalProofsResponse, error) } type queryClient struct { @@ -823,6 +950,15 @@ func (c *queryClient) BaseDenom(ctx context.Context, in *QueryBaseDenomRequest, return out, nil } +func (c *queryClient) ForceWithdrawalProofs(ctx context.Context, in *QueryForceWithdrawalProofsRequest, opts ...grpc.CallOption) (*QueryForceWithdrawalProofsResponse, error) { + out := new(QueryForceWithdrawalProofsResponse) + err := c.cc.Invoke(ctx, "/opinit.opchild.v1.Query/ForceWithdrawalProofs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. type QueryServer interface { // Validators queries all validators @@ -841,6 +977,7 @@ type QueryServer interface { // NextL2Sequence queries the next l2 sequence number. NextL2Sequence(context.Context, *QueryNextL2SequenceRequest) (*QueryNextL2SequenceResponse, error) BaseDenom(context.Context, *QueryBaseDenomRequest) (*QueryBaseDenomResponse, error) + ForceWithdrawalProofs(context.Context, *QueryForceWithdrawalProofsRequest) (*QueryForceWithdrawalProofsResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -868,6 +1005,9 @@ func (*UnimplementedQueryServer) NextL2Sequence(ctx context.Context, req *QueryN func (*UnimplementedQueryServer) BaseDenom(ctx context.Context, req *QueryBaseDenomRequest) (*QueryBaseDenomResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BaseDenom not implemented") } +func (*UnimplementedQueryServer) ForceWithdrawalProofs(ctx context.Context, req *QueryForceWithdrawalProofsRequest) (*QueryForceWithdrawalProofsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ForceWithdrawalProofs not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -999,6 +1139,24 @@ func _Query_BaseDenom_Handler(srv interface{}, ctx context.Context, dec func(int return interceptor(ctx, in, info, handler) } +func _Query_ForceWithdrawalProofs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryForceWithdrawalProofsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).ForceWithdrawalProofs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/opinit.opchild.v1.Query/ForceWithdrawalProofs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).ForceWithdrawalProofs(ctx, req.(*QueryForceWithdrawalProofsRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "opinit.opchild.v1.Query", HandlerType: (*QueryServer)(nil), @@ -1031,6 +1189,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "BaseDenom", Handler: _Query_BaseDenom_Handler, }, + { + MethodName: "ForceWithdrawalProofs", + Handler: _Query_ForceWithdrawalProofs_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "opinit/opchild/v1/query.proto", @@ -1457,6 +1619,84 @@ func (m *QueryBaseDenomResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } +func (m *QueryForceWithdrawalProofsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryForceWithdrawalProofsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryForceWithdrawalProofsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.L2Sequence != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.L2Sequence)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *QueryForceWithdrawalProofsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryForceWithdrawalProofsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryForceWithdrawalProofsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.AppHashProof.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + if len(m.AppHash) > 0 { + i -= len(m.AppHash) + copy(dAtA[i:], m.AppHash) + i = encodeVarintQuery(dAtA, i, uint64(len(m.AppHash))) + i-- + dAtA[i] = 0x22 + } + { + size, err := m.CommitmentProof.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + return len(dAtA) - i, nil +} + func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { offset -= sovQuery(v) base := offset @@ -1632,6 +1872,35 @@ func (m *QueryBaseDenomResponse) Size() (n int) { return n } +func (m *QueryForceWithdrawalProofsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.L2Sequence != 0 { + n += 1 + sovQuery(uint64(m.L2Sequence)) + } + return n +} + +func (m *QueryForceWithdrawalProofsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.CommitmentProof.Size() + n += 1 + l + sovQuery(uint64(l)) + l = len(m.AppHash) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = m.AppHashProof.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + func sovQuery(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -2677,6 +2946,225 @@ func (m *QueryBaseDenomResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryForceWithdrawalProofsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryForceWithdrawalProofsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryForceWithdrawalProofsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field L2Sequence", wireType) + } + m.L2Sequence = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.L2Sequence |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryForceWithdrawalProofsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryForceWithdrawalProofsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryForceWithdrawalProofsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CommitmentProof", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.CommitmentProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...) + if m.AppHash == nil { + m.AppHash = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppHashProof", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.AppHashProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipQuery(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/opchild/types/query.pb.gw.go b/x/opchild/types/query.pb.gw.go index d80c1fcc..958443b5 100644 --- a/x/opchild/types/query.pb.gw.go +++ b/x/opchild/types/query.pb.gw.go @@ -249,6 +249,60 @@ func local_request_Query_BaseDenom_0(ctx context.Context, marshaler runtime.Mars } +func request_Query_ForceWithdrawalProofs_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryForceWithdrawalProofsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["l2_sequence"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "l2_sequence") + } + + protoReq.L2Sequence, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "l2_sequence", err) + } + + msg, err := client.ForceWithdrawalProofs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_ForceWithdrawalProofs_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryForceWithdrawalProofsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["l2_sequence"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "l2_sequence") + } + + protoReq.L2Sequence, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "l2_sequence", err) + } + + msg, err := server.ForceWithdrawalProofs(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // UnaryRPC :call QueryServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -416,6 +470,29 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) + mux.Handle("GET", pattern_Query_ForceWithdrawalProofs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_ForceWithdrawalProofs_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_ForceWithdrawalProofs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -597,6 +674,26 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) + mux.Handle("GET", pattern_Query_ForceWithdrawalProofs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_ForceWithdrawalProofs_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_ForceWithdrawalProofs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -614,6 +711,8 @@ var ( pattern_Query_NextL2Sequence_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"opinit", "opchild", "v1", "next_l2_sequence"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_BaseDenom_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"opinit", "opchild", "v1", "base_denom", "denom"}, "", runtime.AssumeColonVerbOpt(false))) + + pattern_Query_ForceWithdrawalProofs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"opinit", "opchild", "v1", "withdrawals", "l2_sequence", "proofs"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( @@ -630,4 +729,6 @@ var ( forward_Query_NextL2Sequence_0 = runtime.ForwardResponseMessage forward_Query_BaseDenom_0 = runtime.ForwardResponseMessage + + forward_Query_ForceWithdrawalProofs_0 = runtime.ForwardResponseMessage ) diff --git a/x/opchild/types/tx.pb.go b/x/opchild/types/tx.pb.go index 058c9478..7e4ef3aa 100644 --- a/x/opchild/types/tx.pb.go +++ b/x/opchild/types/tx.pb.go @@ -327,6 +327,7 @@ var xxx_messageInfo_MsgInitiateTokenWithdrawal proto.InternalMessageInfo // MsgInitiateTokenWithdrawalResponse returns create token result data type MsgInitiateTokenWithdrawalResponse struct { + // l2 sequence number Sequence uint64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"` } diff --git a/x/opchild/types/types.pb.go b/x/opchild/types/types.pb.go index 18aad6a8..bfcc7215 100644 --- a/x/opchild/types/types.pb.go +++ b/x/opchild/types/types.pb.go @@ -4,6 +4,7 @@ package types import ( + bytes "bytes" fmt "fmt" types2 "github.com/cometbft/cometbft/abci/types" _ "github.com/cosmos/cosmos-proto" @@ -13,16 +14,20 @@ import ( _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" + github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" types3 "github.com/initia-labs/OPinit/x/ophost/types" + _ "google.golang.org/protobuf/types/known/timestamppb" io "io" math "math" math_bits "math/bits" + time "time" ) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf +var _ = time.Kitchen // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. @@ -328,6 +333,44 @@ func (m *CoinsWrapper) XXX_DiscardUnknown() { var xxx_messageInfo_CoinsWrapper proto.InternalMessageInfo +type WithdrawalCommitment struct { + Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` + SubmitTime time.Time `protobuf:"bytes,5,opt,name=submit_time,json=submitTime,proto3,stdtime" json:"submit_time"` +} + +func (m *WithdrawalCommitment) Reset() { *m = WithdrawalCommitment{} } +func (m *WithdrawalCommitment) String() string { return proto.CompactTextString(m) } +func (*WithdrawalCommitment) ProtoMessage() {} +func (*WithdrawalCommitment) Descriptor() ([]byte, []int) { + return fileDescriptor_2cc6df244b706d68, []int{6} +} +func (m *WithdrawalCommitment) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WithdrawalCommitment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_WithdrawalCommitment.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *WithdrawalCommitment) XXX_Merge(src proto.Message) { + xxx_messageInfo_WithdrawalCommitment.Merge(m, src) +} +func (m *WithdrawalCommitment) XXX_Size() int { + return m.Size() +} +func (m *WithdrawalCommitment) XXX_DiscardUnknown() { + xxx_messageInfo_WithdrawalCommitment.DiscardUnknown(m) +} + +var xxx_messageInfo_WithdrawalCommitment proto.InternalMessageInfo + func init() { proto.RegisterEnum("opinit.opchild.v1.ResponseResultType", ResponseResultType_name, ResponseResultType_value) proto.RegisterType((*Params)(nil), "opinit.opchild.v1.Params") @@ -336,80 +379,86 @@ func init() { proto.RegisterType((*BridgeInfo)(nil), "opinit.opchild.v1.BridgeInfo") proto.RegisterType((*PendingDeposits)(nil), "opinit.opchild.v1.PendingDeposits") proto.RegisterType((*CoinsWrapper)(nil), "opinit.opchild.v1.CoinsWrapper") + proto.RegisterType((*WithdrawalCommitment)(nil), "opinit.opchild.v1.WithdrawalCommitment") } func init() { proto.RegisterFile("opinit/opchild/v1/types.proto", fileDescriptor_2cc6df244b706d68) } var fileDescriptor_2cc6df244b706d68 = []byte{ - // 1082 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xbf, 0x6f, 0xdb, 0x46, - 0x14, 0x16, 0x63, 0xd9, 0x8e, 0x4e, 0xb2, 0x2d, 0x1f, 0x1c, 0x54, 0x96, 0x1d, 0x92, 0xe0, 0x52, - 0xc1, 0xad, 0x48, 0xc8, 0xa9, 0x8b, 0xd6, 0x53, 0x23, 0x59, 0x29, 0x84, 0x04, 0xb6, 0x40, 0xd9, - 0x0d, 0x9a, 0x85, 0xe0, 0x8f, 0x93, 0x74, 0x30, 0xc9, 0x23, 0x78, 0x94, 0x62, 0xfd, 0x07, 0x81, - 0x97, 0x76, 0xec, 0x62, 0xc0, 0x40, 0x97, 0x34, 0x53, 0x0a, 0x74, 0xeb, 0x3f, 0x60, 0x14, 0x28, - 0x10, 0x74, 0xea, 0xa4, 0xb4, 0xf6, 0x90, 0xce, 0x1a, 0x3a, 0x17, 0x77, 0xa4, 0x7e, 0xc4, 0x75, - 0x90, 0x2e, 0x5d, 0xa4, 0xbb, 0xf7, 0x7d, 0xf7, 0xde, 0xbb, 0xef, 0xde, 0x7b, 0x04, 0x77, 0x49, - 0x80, 0x7d, 0x1c, 0x69, 0x24, 0xb0, 0xbb, 0xd8, 0x75, 0xb4, 0x7e, 0x45, 0x8b, 0x06, 0x01, 0xa2, - 0x6a, 0x10, 0x92, 0x88, 0xc0, 0xd5, 0x18, 0x56, 0x13, 0x58, 0xed, 0x57, 0x8a, 0xab, 0xa6, 0x87, - 0x7d, 0xa2, 0xf1, 0xdf, 0x98, 0x55, 0x14, 0x6d, 0x42, 0x3d, 0x42, 0x35, 0xcb, 0xa4, 0x48, 0xeb, - 0x57, 0x2c, 0x14, 0x99, 0x15, 0xcd, 0x26, 0xd8, 0x4f, 0xf0, 0xf5, 0x18, 0x37, 0xf8, 0x4e, 0x8b, - 0x37, 0x09, 0xb4, 0xd6, 0x21, 0x1d, 0x12, 0xdb, 0xd9, 0x6a, 0x7c, 0xa0, 0x43, 0x48, 0xc7, 0x45, - 0x1a, 0xdf, 0x59, 0xbd, 0xb6, 0x66, 0xfa, 0x83, 0x04, 0xda, 0x88, 0x90, 0xef, 0xa0, 0xd0, 0xc3, - 0x7e, 0xa4, 0x99, 0x96, 0x8d, 0x67, 0xd3, 0x2d, 0x6e, 0x4e, 0x6e, 0xd3, 0x25, 0x34, 0xba, 0x76, - 0x19, 0xe5, 0xd7, 0x34, 0x58, 0x68, 0x9a, 0xa1, 0xe9, 0x51, 0xf8, 0x05, 0x58, 0xf6, 0xcc, 0x13, - 0xa3, 0x6f, 0xba, 0xd8, 0x31, 0x23, 0x12, 0xd2, 0x82, 0x20, 0x0b, 0xa5, 0xa5, 0xea, 0xfa, 0x68, - 0x28, 0xdd, 0x19, 0x98, 0x9e, 0xbb, 0xab, 0xbc, 0x8d, 0x2b, 0xfa, 0x92, 0x67, 0x9e, 0x7c, 0x35, - 0xd9, 0xc3, 0x47, 0x00, 0x76, 0x31, 0x8d, 0x48, 0x88, 0x6d, 0xd3, 0x35, 0x90, 0x1f, 0x85, 0x18, - 0xd1, 0xc2, 0x2d, 0xee, 0xe5, 0xee, 0x68, 0x28, 0xad, 0xc7, 0x5e, 0xfe, 0xcd, 0x51, 0xf4, 0xd5, - 0xa9, 0xb1, 0x1e, 0xdb, 0xe0, 0x37, 0x02, 0x58, 0xf6, 0xb0, 0x6f, 0x74, 0x4c, 0xa6, 0x12, 0xb6, - 0x11, 0x2d, 0xcc, 0xc9, 0x73, 0xa5, 0xec, 0xf6, 0xa6, 0x9a, 0xc8, 0xc5, 0xb4, 0x55, 0x13, 0x6d, - 0xd5, 0x3d, 0x64, 0xd7, 0x08, 0xf6, 0xab, 0x0f, 0x2f, 0x86, 0x52, 0x6a, 0x34, 0x94, 0xd6, 0x92, - 0x94, 0x67, 0x3d, 0x28, 0x2f, 0x5e, 0x4b, 0x1f, 0x75, 0x70, 0xd4, 0xed, 0x59, 0xaa, 0x4d, 0xbc, - 0x44, 0xf6, 0xe4, 0xaf, 0x4c, 0x9d, 0xe3, 0x44, 0x9b, 0xc4, 0x17, 0xd5, 0x73, 0x1e, 0xf6, 0xbf, - 0x34, 0x69, 0x93, 0x87, 0x87, 0x36, 0xc8, 0x5b, 0x21, 0x76, 0x3a, 0xc8, 0x40, 0x27, 0xc8, 0xee, - 0x71, 0x8d, 0xd2, 0xf2, 0x5c, 0x29, 0x53, 0xfd, 0x6c, 0x34, 0x94, 0x3e, 0x88, 0x03, 0x5e, 0x67, - 0x28, 0xbf, 0xfd, 0x54, 0x5e, 0x4b, 0x12, 0xbe, 0xef, 0x38, 0x21, 0xa2, 0xb4, 0x15, 0x85, 0xd8, - 0xef, 0x3c, 0x7f, 0xf3, 0x72, 0x4b, 0xd0, 0x57, 0x62, 0x7e, 0x7d, 0x4c, 0x87, 0x35, 0x30, 0x6f, - 0x3a, 0x1e, 0xf6, 0x0b, 0xf3, 0xb2, 0x50, 0xca, 0x54, 0xcb, 0xa3, 0xa1, 0x94, 0x8b, 0x3d, 0x73, - 0xf3, 0x7b, 0xdc, 0xc5, 0x67, 0xe1, 0x13, 0xb0, 0xd4, 0x46, 0xc8, 0x78, 0xda, 0xc5, 0x11, 0x72, - 0x31, 0x8d, 0x0a, 0x0b, 0x3c, 0xcd, 0x9d, 0xa9, 0x2e, 0x6f, 0xc1, 0xef, 0x71, 0x9a, 0x6b, 0x23, - 0xf4, 0x78, 0xcc, 0xdd, 0xdd, 0xf8, 0xee, 0x5c, 0x4a, 0xfd, 0x75, 0x2e, 0x09, 0xa7, 0x6f, 0x5e, - 0x6e, 0x2d, 0x8f, 0x9b, 0x24, 0x2e, 0x22, 0xe5, 0xe7, 0x5b, 0x20, 0x33, 0xa9, 0x08, 0xf8, 0x31, - 0x58, 0xf4, 0x88, 0x8f, 0x8f, 0x51, 0xc8, 0x6b, 0x29, 0x53, 0x85, 0xa3, 0xa1, 0xb4, 0x9c, 0x3c, - 0x4c, 0x0c, 0x28, 0xfa, 0x98, 0x02, 0x1f, 0x80, 0x3c, 0x09, 0x50, 0xc8, 0x4e, 0x1a, 0x66, 0x9c, - 0x05, 0x2f, 0x9e, 0x4c, 0x75, 0x63, 0x2a, 0xef, 0x75, 0x86, 0xa2, 0xaf, 0x8c, 0x4d, 0x49, 0xe6, - 0x30, 0x02, 0x79, 0x9b, 0xf8, 0x14, 0xf9, 0xb4, 0x47, 0x8d, 0xa0, 0x67, 0x1d, 0xa3, 0x41, 0x61, - 0x4e, 0x16, 0x4a, 0xd9, 0xed, 0x35, 0x35, 0x6e, 0x22, 0x75, 0xdc, 0x44, 0xea, 0x7d, 0x7f, 0x50, - 0xbd, 0x37, 0xf5, 0x7e, 0xfd, 0x9c, 0xf2, 0xcb, 0x54, 0x18, 0x3b, 0x1c, 0x04, 0x11, 0x51, 0x9b, - 0x3d, 0xeb, 0x21, 0x1a, 0xe8, 0x2b, 0x13, 0x6a, 0x93, 0x33, 0xe1, 0x27, 0x00, 0x30, 0x93, 0x11, - 0x90, 0xa7, 0x28, 0x2c, 0xa4, 0x65, 0xa1, 0x34, 0x57, 0xbd, 0x33, 0x1a, 0x4a, 0xab, 0x53, 0xcf, - 0x31, 0xa6, 0xe8, 0x19, 0xb6, 0x69, 0xb2, 0xf5, 0x6e, 0xee, 0xd9, 0xb9, 0x94, 0x4a, 0x04, 0x4d, - 0x29, 0x06, 0xc8, 0x4f, 0xc4, 0x3b, 0x0a, 0x1c, 0x33, 0x42, 0x14, 0xd6, 0xc1, 0x62, 0x2f, 0x5e, - 0x16, 0x04, 0x5e, 0xfe, 0xb2, 0x3a, 0x6d, 0x77, 0x95, 0xb5, 0xbb, 0x7a, 0xed, 0x4c, 0x35, 0xc3, - 0x5a, 0x20, 0x7e, 0xba, 0xf1, 0xd9, 0xdd, 0x34, 0x0f, 0xf0, 0xb7, 0x00, 0x40, 0x95, 0x17, 0x5c, - 0xc3, 0x6f, 0x13, 0xb8, 0x01, 0x32, 0x49, 0xb9, 0x62, 0x87, 0xbf, 0x50, 0x5a, 0xbf, 0x1d, 0x1b, - 0x1a, 0x0e, 0xfc, 0x1c, 0x64, 0x13, 0x90, 0x49, 0x9d, 0xbc, 0x44, 0xe1, 0x5d, 0x95, 0xa2, 0x83, - 0x98, 0xcc, 0x8c, 0x50, 0x04, 0x59, 0xb7, 0x62, 0xd8, 0x5d, 0x13, 0xfb, 0xcc, 0x33, 0x13, 0x3f, - 0xa3, 0x67, 0xdc, 0x4a, 0x8d, 0x59, 0x1a, 0x0e, 0x94, 0x41, 0x8e, 0xe1, 0x2e, 0x46, 0x7e, 0xc4, - 0x08, 0x69, 0x4e, 0x00, 0x6e, 0xa5, 0xc6, 0x4d, 0x0d, 0x07, 0xee, 0x83, 0xa5, 0x24, 0xb8, 0x4d, - 0xfc, 0x36, 0xee, 0xf0, 0x6e, 0xc8, 0x6e, 0x8b, 0xea, 0x64, 0xf8, 0xb2, 0x69, 0xa6, 0xf6, 0x2b, - 0x6a, 0x7c, 0x9d, 0x1a, 0x67, 0xcd, 0xde, 0x3c, 0x67, 0xcd, 0x00, 0xca, 0x8f, 0x02, 0x58, 0x69, - 0x22, 0xdf, 0xc1, 0x7e, 0x67, 0x0f, 0x05, 0x84, 0xe2, 0x88, 0xc2, 0x4f, 0x41, 0x26, 0x44, 0x36, - 0x0e, 0x58, 0xc8, 0xa4, 0x3e, 0xdf, 0x7d, 0xbd, 0x29, 0x15, 0xb6, 0xc1, 0x3c, 0x1b, 0xe4, 0xac, - 0x38, 0xd9, 0x7b, 0xac, 0xdf, 0x38, 0x8e, 0xf8, 0x2c, 0xda, 0x61, 0xe9, 0xbc, 0x78, 0x2d, 0x95, - 0xfe, 0xc3, 0xcc, 0xe1, 0x03, 0x27, 0x69, 0x62, 0xee, 0x5e, 0xe9, 0x83, 0x1c, 0x37, 0x3e, 0x0e, - 0xcd, 0x20, 0x40, 0xe1, 0x34, 0xae, 0xf0, 0xbf, 0xc6, 0xdd, 0xfa, 0x41, 0x00, 0x50, 0x47, 0x34, - 0x60, 0x05, 0xae, 0x23, 0xda, 0x73, 0xa3, 0xc3, 0x41, 0x80, 0xe0, 0x0e, 0x90, 0xf5, 0x7a, 0xab, - 0x79, 0xb0, 0xdf, 0xaa, 0x1b, 0x7a, 0xbd, 0x75, 0xf4, 0xe8, 0xd0, 0x38, 0xfc, 0xba, 0x59, 0x37, - 0x8e, 0xf6, 0x5b, 0xcd, 0x7a, 0xad, 0xf1, 0xa0, 0x51, 0xdf, 0xcb, 0xa7, 0x8a, 0x2b, 0xa7, 0x67, - 0x72, 0x76, 0xc6, 0x04, 0x3f, 0x04, 0xeb, 0x37, 0x1e, 0xdb, 0x3f, 0x38, 0x68, 0xe6, 0x85, 0xe2, - 0xed, 0xd3, 0x33, 0x39, 0xcd, 0xd6, 0xb0, 0x0c, 0x36, 0x6f, 0x24, 0xb6, 0x8e, 0x6a, 0xb5, 0x7a, - 0xab, 0x95, 0xbf, 0x55, 0xcc, 0x9e, 0x9e, 0xc9, 0x8b, 0xc9, 0xb6, 0x98, 0x7e, 0xf6, 0xbd, 0x98, - 0xaa, 0x1e, 0x5c, 0xfc, 0x29, 0xa6, 0x9e, 0x5f, 0x8a, 0xc2, 0xc5, 0xa5, 0x28, 0xbc, 0xba, 0x14, - 0x85, 0x3f, 0x2e, 0x45, 0xe1, 0xdb, 0x2b, 0x31, 0xf5, 0xea, 0x4a, 0x4c, 0xfd, 0x7e, 0x25, 0xa6, - 0x9e, 0x94, 0x67, 0x34, 0x60, 0xa5, 0x83, 0xcd, 0xb2, 0x6b, 0x5a, 0x54, 0x3b, 0x68, 0xf2, 0xcf, - 0xe2, 0xc9, 0xe4, 0x33, 0xcf, 0xe5, 0xb0, 0x16, 0xf8, 0x68, 0xb8, 0xf7, 0x4f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xdc, 0x35, 0x91, 0x05, 0x05, 0x08, 0x00, 0x00, + // 1156 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xbf, 0x6f, 0xdb, 0x46, + 0x14, 0x16, 0x63, 0xe5, 0x87, 0x4e, 0xb2, 0x2d, 0x1f, 0x1c, 0x54, 0x96, 0x13, 0x52, 0xe0, 0x52, + 0x21, 0xad, 0x29, 0x28, 0x69, 0x8a, 0xd6, 0x53, 0x43, 0x45, 0x29, 0xdc, 0x04, 0xb6, 0x40, 0xd9, + 0x0d, 0x9a, 0x85, 0x38, 0x92, 0x67, 0xe9, 0x10, 0x92, 0x47, 0xf0, 0x4e, 0x8e, 0xb5, 0x76, 0x0a, + 0xbc, 0x34, 0x63, 0x97, 0x00, 0x01, 0xba, 0xa4, 0x99, 0x52, 0xa0, 0x5b, 0xff, 0x81, 0xa0, 0x40, + 0x81, 0xa0, 0x53, 0x27, 0xa5, 0x75, 0x86, 0x74, 0xd6, 0xd0, 0xb9, 0xb8, 0xe3, 0xe9, 0x47, 0x9c, + 0x04, 0xe9, 0xd2, 0xc5, 0xbe, 0x7b, 0xdf, 0xf7, 0xde, 0xbb, 0xfb, 0xde, 0x7b, 0x47, 0x81, 0x8b, + 0x34, 0x21, 0x31, 0xe1, 0x0d, 0x9a, 0xf8, 0x7d, 0x12, 0x06, 0x8d, 0x83, 0x66, 0x83, 0x0f, 0x13, + 0xcc, 0xac, 0x24, 0xa5, 0x9c, 0xc2, 0x95, 0x0c, 0xb6, 0x14, 0x6c, 0x1d, 0x34, 0xab, 0x2b, 0x28, + 0x22, 0x31, 0x6d, 0xc8, 0xbf, 0x19, 0xab, 0xaa, 0xfb, 0x94, 0x45, 0x94, 0x35, 0x3c, 0xc4, 0x70, + 0xe3, 0xa0, 0xe9, 0x61, 0x8e, 0x9a, 0x0d, 0x9f, 0x92, 0x58, 0xe1, 0x6b, 0x19, 0xee, 0xca, 0x5d, + 0x23, 0xdb, 0x28, 0x68, 0xb5, 0x47, 0x7b, 0x34, 0xb3, 0x8b, 0xd5, 0xc4, 0xa1, 0x47, 0x69, 0x2f, + 0xc4, 0x0d, 0xb9, 0xf3, 0x06, 0xfb, 0x0d, 0x14, 0x0f, 0x15, 0x64, 0x9c, 0x84, 0x38, 0x89, 0x30, + 0xe3, 0x28, 0x4a, 0x14, 0xe1, 0xc2, 0xf4, 0x46, 0x7d, 0xca, 0xf8, 0x89, 0x0b, 0x55, 0xd7, 0x39, + 0x8e, 0x03, 0x9c, 0x46, 0x24, 0xe6, 0x0d, 0xe4, 0xf9, 0x64, 0x1e, 0x34, 0x7f, 0xcb, 0x83, 0x33, + 0x1d, 0x94, 0xa2, 0x88, 0xc1, 0x2f, 0xc0, 0x52, 0x84, 0x0e, 0xdd, 0x03, 0x14, 0x92, 0x00, 0x71, + 0x9a, 0xb2, 0x8a, 0x56, 0xd3, 0xea, 0x8b, 0xf6, 0xda, 0x78, 0x64, 0x9c, 0x1f, 0xa2, 0x28, 0xdc, + 0x34, 0x5f, 0xc7, 0x4d, 0x67, 0x31, 0x42, 0x87, 0x5f, 0x4f, 0xf7, 0xf0, 0x16, 0x80, 0x7d, 0xc2, + 0x38, 0x4d, 0x89, 0x8f, 0x42, 0x17, 0xc7, 0x3c, 0x25, 0x98, 0x55, 0x4e, 0xc9, 0x28, 0x17, 0xc7, + 0x23, 0x63, 0x2d, 0x8b, 0xf2, 0x26, 0xc7, 0x74, 0x56, 0x66, 0xc6, 0x76, 0x66, 0x83, 0xdf, 0x69, + 0x60, 0x29, 0x22, 0xb1, 0xdb, 0x43, 0x42, 0x46, 0xe2, 0x63, 0x56, 0x59, 0xa8, 0x2d, 0xd4, 0x8b, + 0x97, 0x2f, 0x58, 0x4a, 0x4f, 0x21, 0xbe, 0xa5, 0xc4, 0xb7, 0xae, 0x63, 0xbf, 0x45, 0x49, 0x6c, + 0xdf, 0x7c, 0x36, 0x32, 0x72, 0xe3, 0x91, 0xb1, 0xaa, 0x8e, 0x3c, 0x1f, 0xc1, 0x7c, 0xf2, 0xc2, + 0xf8, 0xa8, 0x47, 0x78, 0x7f, 0xe0, 0x59, 0x3e, 0x8d, 0x54, 0x5d, 0xd4, 0xbf, 0x0d, 0x16, 0xdc, + 0x55, 0xda, 0xa8, 0x58, 0xcc, 0x29, 0x45, 0x24, 0xfe, 0x12, 0xb1, 0x8e, 0x4c, 0x0f, 0x7d, 0x50, + 0xf6, 0x52, 0x12, 0xf4, 0xb0, 0x8b, 0x0f, 0xb1, 0x3f, 0x90, 0x1a, 0xe5, 0x6b, 0x0b, 0xf5, 0x82, + 0xfd, 0xd9, 0x78, 0x64, 0x7c, 0x90, 0x25, 0x3c, 0xc9, 0x30, 0x7f, 0xff, 0x79, 0x63, 0x55, 0x1d, + 0xf8, 0x5a, 0x10, 0xa4, 0x98, 0xb1, 0x2e, 0x4f, 0x49, 0xdc, 0x7b, 0xfc, 0xea, 0xe9, 0x25, 0xcd, + 0x59, 0xce, 0xf8, 0xed, 0x09, 0x1d, 0xb6, 0xc0, 0x69, 0x14, 0x44, 0x24, 0xae, 0x9c, 0xae, 0x69, + 0xf5, 0x82, 0xbd, 0x31, 0x1e, 0x19, 0xa5, 0x2c, 0xb2, 0x34, 0xbf, 0x27, 0x5c, 0xe6, 0x0b, 0xef, + 0x80, 0xc5, 0x7d, 0x8c, 0xdd, 0x7b, 0x7d, 0xc2, 0x71, 0x48, 0x18, 0xaf, 0x9c, 0x91, 0xc7, 0xbc, + 0x3a, 0xd3, 0xe5, 0x35, 0xf8, 0x3d, 0x41, 0x4b, 0xfb, 0x18, 0xdf, 0x9e, 0x70, 0x37, 0xd7, 0xbf, + 0x7f, 0x64, 0xe4, 0xfe, 0x7e, 0x64, 0x68, 0x47, 0xaf, 0x9e, 0x5e, 0x5a, 0x9a, 0x4c, 0x51, 0xd6, + 0x44, 0xe6, 0x2f, 0xa7, 0x40, 0x61, 0xda, 0x11, 0xf0, 0x63, 0x70, 0x36, 0xa2, 0x31, 0xb9, 0x8b, + 0x53, 0xd9, 0x4b, 0x05, 0x1b, 0x8e, 0x47, 0xc6, 0x92, 0x2a, 0x4c, 0x06, 0x98, 0xce, 0x84, 0x02, + 0x6f, 0x80, 0x32, 0x4d, 0x70, 0x2a, 0x3c, 0x5d, 0x94, 0x9d, 0x42, 0x36, 0x4f, 0xc1, 0x5e, 0x9f, + 0xc9, 0x7b, 0x92, 0x61, 0x3a, 0xcb, 0x13, 0x93, 0x3a, 0x39, 0xe4, 0xa0, 0xec, 0xd3, 0x98, 0xe1, + 0x98, 0x0d, 0x98, 0x9b, 0x0c, 0xbc, 0xbb, 0x78, 0x58, 0x59, 0xa8, 0x69, 0xf5, 0xe2, 0xe5, 0x55, + 0x2b, 0x1b, 0x25, 0x6b, 0x32, 0x4a, 0xd6, 0xb5, 0x78, 0x68, 0x5f, 0x99, 0x45, 0x3f, 0xe9, 0x67, + 0xfe, 0x3a, 0x13, 0xc6, 0x4f, 0x87, 0x09, 0xa7, 0x56, 0x67, 0xe0, 0xdd, 0xc4, 0x43, 0x67, 0x79, + 0x4a, 0xed, 0x48, 0x26, 0xfc, 0x04, 0x00, 0x61, 0x72, 0x13, 0x7a, 0x0f, 0xa7, 0x95, 0x7c, 0x4d, + 0xab, 0x2f, 0xd8, 0xe7, 0xc7, 0x23, 0x63, 0x65, 0x16, 0x39, 0xc3, 0x4c, 0xa7, 0x20, 0x36, 0x1d, + 0xb1, 0xde, 0x2c, 0xdd, 0x7f, 0x64, 0xe4, 0x94, 0xa0, 0x39, 0xd3, 0x05, 0xe5, 0xa9, 0x78, 0x7b, + 0x49, 0x80, 0x38, 0x66, 0xb0, 0x0d, 0xce, 0x0e, 0xb2, 0x65, 0x45, 0x93, 0xed, 0x5f, 0xb3, 0x66, + 0x03, 0x6d, 0x89, 0x81, 0xb6, 0x4e, 0xf8, 0xd8, 0x05, 0x31, 0x02, 0x59, 0xe9, 0x26, 0xbe, 0x9b, + 0x79, 0x99, 0xe0, 0x1f, 0x0d, 0x00, 0x5b, 0x36, 0xdc, 0x56, 0xbc, 0x4f, 0xe1, 0x3a, 0x28, 0xa8, + 0x76, 0x25, 0x81, 0xac, 0x50, 0xde, 0x39, 0x97, 0x19, 0xb6, 0x02, 0xf8, 0x39, 0x28, 0x2a, 0x50, + 0x48, 0xad, 0x2a, 0x51, 0x79, 0x57, 0xa7, 0x38, 0x20, 0x23, 0x0b, 0x23, 0xd4, 0x41, 0x31, 0x6c, + 0xba, 0x7e, 0x1f, 0x91, 0x58, 0x44, 0x16, 0xe2, 0x17, 0x9c, 0x42, 0xd8, 0x6c, 0x09, 0xcb, 0x56, + 0x00, 0x6b, 0xa0, 0x24, 0xf0, 0x90, 0xe0, 0x98, 0x0b, 0x42, 0x5e, 0x12, 0x40, 0xd8, 0x6c, 0x49, + 0xd3, 0x56, 0x00, 0xb7, 0xc1, 0xa2, 0x4a, 0xee, 0xd3, 0x78, 0x9f, 0xf4, 0xe4, 0x34, 0x14, 0x2f, + 0xeb, 0xd6, 0xf4, 0x75, 0x16, 0x4f, 0x9d, 0x75, 0xd0, 0xb4, 0xb2, 0xeb, 0xb4, 0x24, 0x6b, 0xfe, + 0xe6, 0x25, 0x6f, 0x0e, 0x30, 0x7f, 0xd2, 0xc0, 0x72, 0x07, 0xc7, 0x01, 0x89, 0x7b, 0xd7, 0x71, + 0x42, 0x19, 0xe1, 0x0c, 0x7e, 0x0a, 0x0a, 0x29, 0xf6, 0x49, 0x22, 0x52, 0xaa, 0xfe, 0x7c, 0xf7, + 0xf5, 0x66, 0x54, 0xb8, 0x0f, 0x4e, 0x8b, 0x97, 0x5e, 0x34, 0xa7, 0xa8, 0xc7, 0xda, 0x5b, 0x9f, + 0x23, 0xf9, 0x16, 0x5d, 0x15, 0xc7, 0x79, 0xf2, 0xc2, 0xa8, 0xff, 0x87, 0x37, 0x47, 0x3e, 0x38, + 0x6a, 0x88, 0x65, 0x78, 0xf3, 0x00, 0x94, 0xa4, 0xf1, 0x76, 0x8a, 0x92, 0x04, 0xa7, 0xb3, 0xbc, + 0xda, 0xff, 0x9b, 0xf7, 0x5b, 0x0d, 0xac, 0xde, 0x26, 0xbc, 0x1f, 0xa4, 0xe8, 0x1e, 0x0a, 0x5b, + 0x34, 0x8a, 0x08, 0x8f, 0xc4, 0xc5, 0x75, 0xd1, 0xe2, 0x93, 0x9d, 0x54, 0xac, 0xe4, 0xcc, 0x59, + 0xe0, 0x57, 0xa0, 0xc8, 0x06, 0x5e, 0x44, 0xb8, 0x2b, 0xbe, 0x50, 0xaa, 0x64, 0xd5, 0x37, 0x66, + 0x6e, 0x77, 0xf2, 0xf9, 0xb2, 0x17, 0xc5, 0x39, 0x1f, 0xbc, 0x30, 0xb4, 0x2c, 0x3f, 0xc8, 0xbc, + 0x05, 0x7e, 0xe9, 0x47, 0x0d, 0x40, 0x07, 0xb3, 0x44, 0x4c, 0x99, 0x83, 0xd9, 0x20, 0xe4, 0xbb, + 0xc3, 0x04, 0xc3, 0xab, 0xa0, 0xe6, 0xb4, 0xbb, 0x9d, 0x9d, 0xed, 0x6e, 0xdb, 0x75, 0xda, 0xdd, + 0xbd, 0x5b, 0xbb, 0xee, 0xee, 0x37, 0x9d, 0xb6, 0xbb, 0xb7, 0xdd, 0xed, 0xb4, 0x5b, 0x5b, 0x37, + 0xb6, 0xda, 0xd7, 0xcb, 0xb9, 0xea, 0xf2, 0xd1, 0xc3, 0x5a, 0x71, 0xce, 0x04, 0x3f, 0x04, 0x6b, + 0x6f, 0x75, 0xdb, 0xde, 0xd9, 0xe9, 0x94, 0xb5, 0xea, 0xb9, 0xa3, 0x87, 0xb5, 0xbc, 0x58, 0xc3, + 0x0d, 0x70, 0xe1, 0xad, 0xc4, 0xee, 0x5e, 0xab, 0xd5, 0xee, 0x76, 0xcb, 0xa7, 0xaa, 0xc5, 0xa3, + 0x87, 0xb5, 0xb3, 0x6a, 0x5b, 0xcd, 0xdf, 0xff, 0x41, 0xcf, 0xd9, 0x3b, 0xcf, 0xfe, 0xd2, 0x73, + 0x8f, 0x8f, 0x75, 0xed, 0xd9, 0xb1, 0xae, 0x3d, 0x3f, 0xd6, 0xb5, 0x3f, 0x8f, 0x75, 0xed, 0xc1, + 0x4b, 0x3d, 0xf7, 0xfc, 0xa5, 0x9e, 0xfb, 0xe3, 0xa5, 0x9e, 0xbb, 0xb3, 0x31, 0x57, 0x08, 0xd1, + 0xbf, 0x04, 0x6d, 0x84, 0xc8, 0x63, 0x8d, 0x9d, 0x8e, 0xfc, 0x70, 0x1f, 0x4e, 0x7f, 0x8c, 0xc8, + 0x9a, 0x78, 0x67, 0xa4, 0x56, 0x57, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x9f, 0xf5, 0x5f, 0xd8, + 0xab, 0x08, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -563,6 +612,33 @@ func (this *CoinsWrapper) Equal(that interface{}) bool { } return true } +func (this *WithdrawalCommitment) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*WithdrawalCommitment) + if !ok { + that2, ok := that.(WithdrawalCommitment) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !bytes.Equal(this.Commitment, that1.Commitment) { + return false + } + if !this.SubmitTime.Equal(that1.SubmitTime) { + return false + } + return true +} func (m *Params) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -866,6 +942,44 @@ func (m *CoinsWrapper) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *WithdrawalCommitment) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WithdrawalCommitment) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WithdrawalCommitment) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + n3, err3 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.SubmitTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.SubmitTime):]) + if err3 != nil { + return 0, err3 + } + i -= n3 + i = encodeVarintTypes(dAtA, i, uint64(n3)) + i-- + dAtA[i] = 0x2a + if len(m.Commitment) > 0 { + i -= len(m.Commitment) + copy(dAtA[i:], m.Commitment) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Commitment))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintTypes(dAtA []byte, offset int, v uint64) int { offset -= sovTypes(v) base := offset @@ -1013,6 +1127,21 @@ func (m *CoinsWrapper) Size() (n int) { return n } +func (m *WithdrawalCommitment) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Commitment) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.SubmitTime) + n += 1 + l + sovTypes(uint64(l)) + return n +} + func sovTypes(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -1888,6 +2017,123 @@ func (m *CoinsWrapper) Unmarshal(dAtA []byte) error { } return nil } +func (m *WithdrawalCommitment) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WithdrawalCommitment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WithdrawalCommitment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Commitment = append(m.Commitment[:0], dAtA[iNdEx:postIndex]...) + if m.Commitment == nil { + m.Commitment = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SubmitTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.SubmitTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTypes(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/ophost/keeper/msg_server.go b/x/ophost/keeper/msg_server.go index e7706d55..92167426 100644 --- a/x/ophost/keeper/msg_server.go +++ b/x/ophost/keeper/msg_server.go @@ -12,6 +12,7 @@ import ( "github.com/cosmos/cosmos-sdk/types/errors" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + opchildtypes "github.com/initia-labs/OPinit/x/opchild/types" "github.com/initia-labs/OPinit/x/ophost/types" ) @@ -266,7 +267,9 @@ func (ms MsgServer) InitiateTokenDeposit(ctx context.Context, req *types.MsgInit sdk.NewAttribute(types.AttributeKeyData, hex.EncodeToString(req.Data)), )) - return &types.MsgInitiateTokenDepositResponse{}, nil + return &types.MsgInitiateTokenDepositResponse{ + Sequence: l1Sequence, + }, nil } func (ms MsgServer) FinalizeTokenWithdrawal(ctx context.Context, req *types.MsgFinalizeTokenWithdrawal) (*types.MsgFinalizeTokenWithdrawalResponse, error) { @@ -297,7 +300,7 @@ func (ms MsgServer) FinalizeTokenWithdrawal(ctx context.Context, req *types.MsgF } // validate output root generation - outputRoot := types.GenerateOutputRoot(req.Version[0], req.StorageRoot, req.LatestBlockHash) + outputRoot := types.GenerateOutputRoot(req.Version[0], req.StorageRoot, req.LastBlockHash) if !bytes.Equal(outputProposal.OutputRoot, outputRoot[:]) { return nil, types.ErrFailedToVerifyWithdrawal.Wrap("invalid output root") } @@ -343,6 +346,74 @@ func (ms MsgServer) FinalizeTokenWithdrawal(ctx context.Context, req *types.MsgF return &types.MsgFinalizeTokenWithdrawalResponse{}, nil } +// ForceTokenWithdrwal implements types.MsgServer. +func (ms MsgServer) ForceTokenWithdrwal(ctx context.Context, req *types.MsgForceTokenWithdrawal) (*types.MsgForceTokenWithdrawalResponse, error) { + if err := req.Validate(ms.authKeeper.AddressCodec()); err != nil { + return nil, err + } + + bridgeId := req.BridgeId + outputIndex := req.OutputIndex + l2Sequence := req.L2Sequence + appHash := req.AppHash + receiver := req.Receiver + amount := req.Amount + + if ok, err := ms.IsFinalized(ctx, bridgeId, outputIndex); err != nil { + return nil, err + } else if !ok { + return nil, types.ErrNotFinalized + } + + // check if the withdrawal is already claimed + withdrawalHash := types.GenerateWithdrawalHash(bridgeId, l2Sequence, req.Sender, receiver, amount.Denom, amount.Amount.Uint64()) + if ok, err := ms.HasProvenWithdrawal(ctx, bridgeId, withdrawalHash); err != nil { + return nil, err + } else if ok { + return nil, types.ErrWithdrawalAlreadyFinalized + } + + outputProposal, err := ms.GetOutputProposal(ctx, bridgeId, outputIndex) + if err != nil { + return nil, err + } + + // validate output root generation + outputRoot := types.GenerateOutputRoot(req.Version[0], req.StorageRoot, req.LastBlockHash) + if !bytes.Equal(outputProposal.OutputRoot, outputRoot[:]) { + return nil, types.ErrFailedToVerifyWithdrawal.Wrap("invalid output root") + } + + // verify app hash + if err := opchildtypes.VerifyAppHash(req.LastBlockHash, appHash, &req.AppHashProof); err != nil { + return nil, types.ErrFailedToVerifyWithdrawal.Wrap(err.Error()) + } + + // failed to verify commitment + if err := opchildtypes.VerifyCommitment(appHash, l2Sequence, receiver, amount, &req.CommitmentProof); err != nil { + return nil, types.ErrFailedToVerifyWithdrawal.Wrap(err.Error()) + } + + // record proven withdrawal + if err := ms.RecordProvenWithdrawal(ctx, bridgeId, withdrawalHash); err != nil { + return nil, err + } + + // transfer asset to a user from the bridge account + bridgeAddr := types.BridgeAddress(bridgeId) + receiverAccAddr, err := ms.authKeeper.AddressCodec().StringToBytes(receiver) + if err != nil { + return nil, err + } + + // transfer asset to a user from the bridge account + if err := ms.bankKeeper.SendCoins(ctx, bridgeAddr, receiverAccAddr, sdk.NewCoins(amount)); err != nil { + return nil, err + } + + return &types.MsgForceTokenWithdrawalResponse{}, nil +} + func (ms MsgServer) UpdateProposer(ctx context.Context, req *types.MsgUpdateProposer) (*types.MsgUpdateProposerResponse, error) { if err := req.Validate(ms.authKeeper.AddressCodec()); err != nil { return nil, err diff --git a/x/ophost/keeper/msg_server_test.go b/x/ophost/keeper/msg_server_test.go index 10e80e39..1d7a263e 100644 --- a/x/ophost/keeper/msg_server_test.go +++ b/x/ophost/keeper/msg_server_test.go @@ -1,17 +1,31 @@ package keeper_test import ( + "crypto/rand" "encoding/base64" + "fmt" "testing" "time" + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + "github.com/cometbft/cometbft/crypto/tmhash" + cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" + comettypes "github.com/cometbft/cometbft/types" + + "cosmossdk.io/log" "cosmossdk.io/math" + "cosmossdk.io/store/iavl" + "cosmossdk.io/store/metrics" + "cosmossdk.io/store/rootmulti" + storetypes "cosmossdk.io/store/types" + dbm "github.com/cosmos/cosmos-db" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/stretchr/testify/require" + opchildtypes "github.com/initia-labs/OPinit/x/opchild/types" "github.com/initia-labs/OPinit/x/ophost/keeper" - types "github.com/initia-labs/OPinit/x/ophost/types" + "github.com/initia-labs/OPinit/x/ophost/types" ) func Test_RecordBatch(t *testing.T) { @@ -229,7 +243,7 @@ func Test_FinalizeTokenWithdrawal(t *testing.T) { )) require.NoError(t, err) - receiverAddr, err := sdk.AccAddressFromBech32("cosmos174knscjg688ddtxj8smyjz073r3w5mms08musg") + receiverAddr, err := sdk.AccAddressFromBech32(receiver) require.NoError(t, err) require.Equal(t, amount, input.BankKeeper.GetBalance(ctx, receiverAddr, amount.Denom)) } @@ -518,3 +532,195 @@ func Test_MsgServer_UpdateParams(t *testing.T) { ) require.Error(t, err) } + +func Test_MsgServer_ForceWithdrawal(t *testing.T) { + ctx, input := createDefaultTestInput(t) + ms := keeper.NewMsgServerImpl(input.OPHostKeeper) + + config := types.BridgeConfig{ + Proposer: addrsStr[0], + Challengers: []string{addrsStr[1]}, + SubmissionInterval: time.Second * 10, + FinalizationPeriod: time.Second * 60, + SubmissionStartHeight: 1, + Metadata: []byte{1, 2, 3}, + BatchInfo: types.BatchInfo{Submitter: addrsStr[0], ChainType: types.BatchInfo_CHAIN_TYPE_INITIA}, + } + + _, err := ms.CreateBridge(ctx, types.NewMsgCreateBridge(addrsStr[0], config)) + require.NoError(t, err) + + // fund amount + amount := sdk.NewCoin("uinit", math.NewInt(1_000_000)) + input.Faucet.Fund(ctx, types.BridgeAddress(1), amount.Add(amount).Add(amount)) + + sender := "osmo174knscjg688ddtxj8smyjz073r3w5mms8ugvx6" + receiver := "cosmos174knscjg688ddtxj8smyjz073r3w5mms08musg" + + version := byte(1) + + leaf1 := types.GenerateWithdrawalHash(1, 1, sender, receiver, amount.Denom, amount.Amount.Uint64()) + leaf2 := types.GenerateWithdrawalHash(1, 2, sender, receiver, amount.Denom, amount.Amount.Uint64()) + leaf3 := types.GenerateWithdrawalHash(1, 3, sender, receiver, amount.Denom, amount.Amount.Uint64()) + + node33 := types.GenerateNodeHash(leaf3[:], leaf3[:]) + node12 := types.GenerateNodeHash(leaf1[:], leaf2[:]) + + storageRoot := types.GenerateNodeHash(node12[:], node33[:]) + appHash, commitmentProofs := makeAppHashWithCommitmentProof(t, []testInput{ + {recipient: receiver, amount: amount, l2Sequence: 1}, + {recipient: receiver, amount: amount, l2Sequence: 2}, + {recipient: receiver, amount: amount, l2Sequence: 3}, + }) + + block := makeRandBlock(t, appHash) + header := block.Header + blockHash := block.Hash() + appHashProof := opchildtypes.NewAppHashProof(&header) + err = opchildtypes.VerifyAppHash(blockHash, header.AppHash, appHashProof) + require.NoError(t, err) + outputRoot := types.GenerateOutputRoot(version, storageRoot[:], blockHash) + + now := time.Now().UTC() + ctx = ctx.WithBlockTime(now) + _, err = ms.ProposeOutput(ctx, types.NewMsgProposeOutput(addrsStr[0], 1, 1, 100, outputRoot[:])) + require.NoError(t, err) + + ctx = ctx.WithBlockTime(now.Add(time.Second * 60)) + + // force withdraw 1 + _, err = ms.ForceTokenWithdrwal(ctx, types.NewMsgForceTokenWithdrawal( + 1, 1, 1, sender, receiver, amount, *commitmentProofs[0], appHash, *appHashProof, version, storageRoot[:], blockHash, + )) + require.NoError(t, err) + + receiverAddr, err := sdk.AccAddressFromBech32(receiver) + require.NoError(t, err) + require.Equal(t, amount, input.BankKeeper.GetBalance(ctx, receiverAddr, amount.Denom)) + + // cannot finalize 1 again + proofs := [][]byte{leaf2[:], node33[:]} + _, err = ms.FinalizeTokenWithdrawal(ctx, types.NewMsgFinalizeTokenWithdrawal(1, 1, 1, proofs, + sender, + receiver, + amount, + []byte{version}, storageRoot[:], blockHash, + )) + require.Error(t, err) + + // can finalize withdrawal 2 + proofs = [][]byte{leaf1[:], node33[:]} + _, err = ms.FinalizeTokenWithdrawal(ctx, types.NewMsgFinalizeTokenWithdrawal(1, 1, 2, proofs, + sender, + receiver, + amount, + []byte{version}, storageRoot[:], blockHash, + )) + require.NoError(t, err) + require.Equal(t, amount.Add(amount), input.BankKeeper.GetBalance(ctx, receiverAddr, amount.Denom)) + + // cannot force withdraw 2 again + _, err = ms.ForceTokenWithdrwal(ctx, types.NewMsgForceTokenWithdrawal( + 1, 1, 2, sender, receiver, amount, *commitmentProofs[1], appHash, *appHashProof, version, storageRoot[:], blockHash, + )) + require.Error(t, err) + + // can force withdrawal 3 + _, err = ms.ForceTokenWithdrwal(ctx, types.NewMsgForceTokenWithdrawal( + 1, 1, 3, sender, receiver, amount, *commitmentProofs[2], appHash, *appHashProof, version, storageRoot[:], blockHash, + )) + require.NoError(t, err) + require.Equal(t, amount.Add(amount).Add(amount), input.BankKeeper.GetBalance(ctx, receiverAddr, amount.Denom)) +} + +type testInput struct { + recipient string + amount sdk.Coin + l2Sequence uint64 +} + +func makeAppHashWithCommitmentProof(t *testing.T, inputs []testInput) ([]byte, []*v1.ProofOps) { + db := dbm.NewMemDB() + store := rootmulti.NewStore(db, log.NewNopLogger(), metrics.NewNoOpMetrics()) + iavlStoreKey := storetypes.NewKVStoreKey(opchildtypes.StoreKey) + + store.MountStoreWithDB(iavlStoreKey, storetypes.StoreTypeIAVL, nil) + require.NoError(t, store.LoadVersion(0)) + + iavlStore := store.GetCommitStore(iavlStoreKey).(*iavl.Store) + + commitmentKeys := make([][]byte, len(inputs)) + for i, input := range inputs { + commitment := opchildtypes.CommitWithdrawal(input.l2Sequence, input.recipient, input.amount) + commitmentKeys[i] = opchildtypes.WithdrawalCommitmentKey(input.l2Sequence) + + iavlStore.Set(commitmentKeys[i], commitment) + } + + cid := store.Commit() + + // Get Proof + proofs := make([]*v1.ProofOps, len(commitmentKeys)) + for i, commitmentKey := range commitmentKeys { + // same with curl https://rpc.initia.xyz/abci_query\?path\="\"store/opchild/key\""\&data=0xcommitmentkey\&prove=true + res, err := store.Query(&storetypes.RequestQuery{ + Path: fmt.Sprintf("/%s/key", opchildtypes.StoreKey), // required path to get key/value+proof + Data: commitmentKey, + Prove: true, + }) + require.NoError(t, err) + require.NotNil(t, res.ProofOps) + + proofs[i] = opchildtypes.NewProtoFromProofOps(res.ProofOps) + } + + return cid.GetHash(), proofs +} + +func makeRandBlock(t *testing.T, appHash []byte) *comettypes.Block { + txs := []comettypes.Tx{comettypes.Tx("foo"), comettypes.Tx("bar")} + lastID := makeBlockIDRandom() + h := int64(3) + voteSet, valSet, vals := randVoteSet(h-1, 1, cmtproto.PrecommitType, 10, 1, false) + extCommit, err := comettypes.MakeExtCommit(lastID, h-1, 1, voteSet, vals, time.Now().UTC(), false) + require.NoError(t, err) + + ev, err := comettypes.NewMockDuplicateVoteEvidenceWithValidator(h, time.Now().UTC(), vals[0], "block-test-chain") + require.NoError(t, err) + evList := []comettypes.Evidence{ev} + + block := comettypes.MakeBlock(h, txs, extCommit.ToCommit(), evList) + block.ValidatorsHash = valSet.Hash() + block.AppHash = appHash + + return block +} + +func makeBlockIDRandom() comettypes.BlockID { + var ( + blockHash = make([]byte, tmhash.Size) + partSetHash = make([]byte, tmhash.Size) + ) + rand.Read(blockHash) //nolint: errcheck // ignore errcheck for read + rand.Read(partSetHash) //nolint: errcheck // ignore errcheck for read + return comettypes.BlockID{Hash: blockHash, PartSetHeader: comettypes.PartSetHeader{Total: 123, Hash: partSetHash}} +} + +// NOTE: privValidators are in order +func randVoteSet( + height int64, + round int32, + signedMsgType cmtproto.SignedMsgType, + numValidators int, + votingPower int64, + extEnabled bool, +) (*comettypes.VoteSet, *comettypes.ValidatorSet, []comettypes.PrivValidator) { + valSet, privValidators := comettypes.RandValidatorSet(numValidators, votingPower) + if extEnabled { + if signedMsgType != cmtproto.PrecommitType { + return nil, nil, nil + } + return comettypes.NewExtendedVoteSet("test_chain_id", height, round, signedMsgType, valSet), valSet, privValidators + } + return comettypes.NewVoteSet("test_chain_id", height, round, signedMsgType, valSet), valSet, privValidators +} diff --git a/x/ophost/types/error.go b/x/ophost/types/error.go index 08ed3c6b..b9eb1fb2 100644 --- a/x/ophost/types/error.go +++ b/x/ophost/types/error.go @@ -20,4 +20,6 @@ var ( ErrInvalidBridgeMetadata = errorsmod.Register(ModuleName, 13, "invalid bridge metadata") ErrInvalidBatchInfo = errorsmod.Register(ModuleName, 14, "invalid batch info") ErrInvalidChallengerUpdate = errorsmod.Register(ModuleName, 15, "invalid challenger update") + ErrEmptyCommitmentProof = errorsmod.Register(ModuleName, 16, "empty commitment proof") + ErrEmptyBatchBytes = errorsmod.Register(ModuleName, 17, "empty batch bytes") ) diff --git a/x/ophost/types/hook/bridge_hook.go b/x/ophost/types/hook/bridge_hook.go index d493ce8c..e8543954 100644 --- a/x/ophost/types/hook/bridge_hook.go +++ b/x/ophost/types/hook/bridge_hook.go @@ -45,11 +45,6 @@ func (h BridgeHook) BridgeCreated( return nil } - // TODO (reviewer): This is a temporary solution to allow only one challenger on bridge creation. - if len(bridgeConfig.Challengers) != 1 { - return errors.New("bridge must have exactly one challenger on creation") - } - challengers := make([]sdk.AccAddress, len(bridgeConfig.Challengers)) for i, challenger := range bridgeConfig.Challengers { challengerAddr, err := h.ac.StringToBytes(challenger) diff --git a/x/ophost/types/tx.go b/x/ophost/types/tx.go index 2284f202..264bfbe2 100644 --- a/x/ophost/types/tx.go +++ b/x/ophost/types/tx.go @@ -2,6 +2,7 @@ package types import ( "cosmossdk.io/core/address" + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -13,6 +14,7 @@ var ( _ sdk.Msg = &MsgDeleteOutput{} _ sdk.Msg = &MsgFinalizeTokenWithdrawal{} _ sdk.Msg = &MsgInitiateTokenDeposit{} + _ sdk.Msg = &MsgForceTokenWithdrawal{} _ sdk.Msg = &MsgUpdateProposer{} _ sdk.Msg = &MsgUpdateChallengers{} _ sdk.Msg = &MsgUpdateBatchInfo{} @@ -40,8 +42,8 @@ func NewMsgRecordBatch( } // Validate performs basic MsgRecordBatch message validation. -func (msg MsgRecordBatch) Validate(accAddressCodec address.Codec) error { - if _, err := accAddressCodec.StringToBytes(msg.Submitter); err != nil { +func (msg MsgRecordBatch) Validate(ac address.Codec) error { + if _, err := ac.StringToBytes(msg.Submitter); err != nil { return err } @@ -49,6 +51,10 @@ func (msg MsgRecordBatch) Validate(accAddressCodec address.Codec) error { return ErrInvalidBridgeId } + if len(msg.BatchBytes) == 0 { + return ErrEmptyBatchBytes + } + return nil } @@ -103,8 +109,8 @@ func NewMsgProposeOutput( } // Validate performs basic MsgProposeOutput message validation. -func (msg MsgProposeOutput) Validate(accAddressCodec address.Codec) error { - _, err := accAddressCodec.StringToBytes(msg.Proposer) +func (msg MsgProposeOutput) Validate(ac address.Codec) error { + _, err := ac.StringToBytes(msg.Proposer) if err != nil { return err } @@ -136,8 +142,8 @@ func NewMsgDeleteOutput( } // Validate performs basic MsgDeleteOutput message validation. -func (msg MsgDeleteOutput) Validate(accAddressCodec address.Codec) error { - if _, err := accAddressCodec.StringToBytes(msg.Challenger); err != nil { +func (msg MsgDeleteOutput) Validate(ac address.Codec) error { + if _, err := ac.StringToBytes(msg.Challenger); err != nil { return err } @@ -172,8 +178,8 @@ func NewMsgInitiateTokenDeposit( } // Validate performs basic MsgInitiateTokenDeposit message validation. -func (msg MsgInitiateTokenDeposit) Validate(accAddressCodec address.Codec) error { - if _, err := accAddressCodec.StringToBytes(msg.Sender); err != nil { +func (msg MsgInitiateTokenDeposit) Validate(ac address.Codec) error { + if _, err := ac.StringToBytes(msg.Sender); err != nil { return err } @@ -206,7 +212,7 @@ func NewMsgFinalizeTokenWithdrawal( amount sdk.Coin, version []byte, storageRoot []byte, - latestBlockHash []byte, + lastBlockHash []byte, ) *MsgFinalizeTokenWithdrawal { return &MsgFinalizeTokenWithdrawal{ BridgeId: bridgeId, @@ -218,18 +224,18 @@ func NewMsgFinalizeTokenWithdrawal( Amount: amount, Version: version, StorageRoot: storageRoot, - LatestBlockHash: latestBlockHash, + LastBlockHash: lastBlockHash, } } // Validate performs basic MsgFinalizeTokenWithdrawal message validation. -func (msg MsgFinalizeTokenWithdrawal) Validate(accAddressCodec address.Codec) error { +func (msg MsgFinalizeTokenWithdrawal) Validate(ac address.Codec) error { // cannot validate sender address as it can be any format of address based on the chain. if len(msg.Sender) == 0 { return sdkerrors.ErrInvalidAddress.Wrap("sender address cannot be empty") } - if _, err := accAddressCodec.StringToBytes(msg.Receiver); err != nil { + if _, err := ac.StringToBytes(msg.Receiver); err != nil { return err } @@ -263,8 +269,94 @@ func (msg MsgFinalizeTokenWithdrawal) Validate(accAddressCodec address.Codec) er return ErrInvalidHashLength.Wrap("storage_root") } - if len(msg.LatestBlockHash) != 32 { - return ErrInvalidHashLength.Wrap("latest_block_hash") + if len(msg.LastBlockHash) != 32 { + return ErrInvalidHashLength.Wrap("last_block_hash") + } + + return nil +} + +/* MsgForceTokenWithdrawal */ + +// NewMsgForceTokenWithdrawal creates a new MsgForceTokenWithdrawal instance. +func NewMsgForceTokenWithdrawal( + bridgeId uint64, + outputIndex uint64, + l2Sequence uint64, + sender string, + receiver string, + amount sdk.Coin, + commitmentProof v1.ProofOps, + appHash []byte, + appHashProof v1.Proof, + version byte, + storageRoot []byte, + lastBlockHash []byte, +) *MsgForceTokenWithdrawal { + return &MsgForceTokenWithdrawal{ + BridgeId: bridgeId, + OutputIndex: outputIndex, + + L2Sequence: l2Sequence, + Sender: sender, + Receiver: receiver, + Amount: amount, + CommitmentProof: commitmentProof, + + AppHash: appHash, + AppHashProof: appHashProof, + + Version: []byte{version}, + StorageRoot: storageRoot, + LastBlockHash: lastBlockHash, + } +} + +// Validate performs basic MsgForceTokenWithdrawal message validation. +func (msg MsgForceTokenWithdrawal) Validate(ac address.Codec) error { + if msg.BridgeId == 0 { + return ErrInvalidBridgeId + } + + if msg.OutputIndex == 0 { + return ErrInvalidOutputIndex + } + + if msg.L2Sequence == 0 { + return ErrInvalidSequence + } + + // cannot validate sender address as it can be any format of address based on the chain. + if len(msg.Sender) == 0 { + return sdkerrors.ErrInvalidAddress.Wrap("sender address cannot be empty") + } + + if _, err := ac.StringToBytes(msg.Receiver); err != nil { + return err + } + + if !msg.Amount.IsValid() || msg.Amount.IsZero() { + return ErrInvalidAmount + } + + if len(msg.CommitmentProof.Ops) == 0 { + return ErrEmptyCommitmentProof + } + + if len(msg.AppHash) != 32 { + return ErrInvalidHashLength.Wrap("data_hash") + } + + if len(msg.Version) != 1 { + return ErrInvalidHashLength.Wrap("version") + } + + if len(msg.StorageRoot) != 32 { + return ErrInvalidHashLength.Wrap("storage_root") + } + + if len(msg.LastBlockHash) != 32 { + return ErrInvalidHashLength.Wrap("last_block_hash") } return nil @@ -286,8 +378,8 @@ func NewMsgUpdateProposer( } // Validate performs basic MsgUpdateProposer message validation. -func (msg MsgUpdateProposer) Validate(accAddressCodec address.Codec) error { - if _, err := accAddressCodec.StringToBytes(msg.Authority); err != nil { +func (msg MsgUpdateProposer) Validate(ac address.Codec) error { + if _, err := ac.StringToBytes(msg.Authority); err != nil { return err } @@ -295,7 +387,7 @@ func (msg MsgUpdateProposer) Validate(accAddressCodec address.Codec) error { return ErrInvalidBridgeId } - if _, err := accAddressCodec.StringToBytes(msg.NewProposer); err != nil { + if _, err := ac.StringToBytes(msg.NewProposer); err != nil { return err } @@ -318,8 +410,8 @@ func NewMsgUpdateChallengers( } // Validate performs basic MsgUpdateChallengers message validation. -func (msg MsgUpdateChallengers) Validate(accAddressCodec address.Codec) error { - if _, err := accAddressCodec.StringToBytes(msg.Authority); err != nil { +func (msg MsgUpdateChallengers) Validate(ac address.Codec) error { + if _, err := ac.StringToBytes(msg.Authority); err != nil { return err } @@ -329,7 +421,7 @@ func (msg MsgUpdateChallengers) Validate(accAddressCodec address.Codec) error { dupCheckMap := make(map[string]bool) for _, challenger := range msg.NewChallengers { - _, err := accAddressCodec.StringToBytes(challenger) + _, err := ac.StringToBytes(challenger) if err != nil { return err } @@ -364,8 +456,8 @@ func NewMsgUpdateBatchInfo( } // Validate performs basic MsgUpdateChallenger message validation. -func (msg MsgUpdateBatchInfo) Validate(accAddressCodec address.Codec) error { - if _, err := accAddressCodec.StringToBytes(msg.Authority); err != nil { +func (msg MsgUpdateBatchInfo) Validate(ac address.Codec) error { + if _, err := ac.StringToBytes(msg.Authority); err != nil { return err } @@ -396,8 +488,8 @@ func NewMsgUpdateMetadata( } // Validate performs basic MsgUpdateMetadata message validation. -func (msg MsgUpdateMetadata) Validate(accAddressCodec address.Codec) error { - if _, err := accAddressCodec.StringToBytes(msg.Authority); err != nil { +func (msg MsgUpdateMetadata) Validate(ac address.Codec) error { + if _, err := ac.StringToBytes(msg.Authority); err != nil { return err } @@ -423,8 +515,8 @@ func NewMsgUpdateParams(authority string, params *Params) *MsgUpdateParams { } // Validate performs basic MsgUpdateParams message validation. -func (msg MsgUpdateParams) Validate(accAddressCodec address.Codec) error { - if _, err := accAddressCodec.StringToBytes(msg.Authority); err != nil { +func (msg MsgUpdateParams) Validate(ac address.Codec) error { + if _, err := ac.StringToBytes(msg.Authority); err != nil { return err } diff --git a/x/ophost/types/tx.pb.go b/x/ophost/types/tx.pb.go index 10978409..b3094cb5 100644 --- a/x/ophost/types/tx.pb.go +++ b/x/ophost/types/tx.pb.go @@ -6,6 +6,7 @@ package types import ( context "context" fmt "fmt" + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" _ "github.com/cosmos/cosmos-proto" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" @@ -435,9 +436,9 @@ type MsgFinalizeTokenWithdrawal struct { Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty" yaml:"sequence"` Amount types.Coin `protobuf:"bytes,7,opt,name=amount,proto3" json:"amount" yaml:"amount"` // version of the output root - Version []byte `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty" yaml:"version"` - StorageRoot []byte `protobuf:"bytes,9,opt,name=storage_root,json=storageRoot,proto3" json:"storage_root,omitempty" yaml:"storage_root"` - LatestBlockHash []byte `protobuf:"bytes,10,opt,name=latest_block_hash,json=latestBlockHash,proto3" json:"latest_block_hash,omitempty" yaml:"latest_block_hash"` + Version []byte `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty" yaml:"version"` + StorageRoot []byte `protobuf:"bytes,9,opt,name=storage_root,json=storageRoot,proto3" json:"storage_root,omitempty" yaml:"storage_root"` + LastBlockHash []byte `protobuf:"bytes,10,opt,name=last_block_hash,json=lastBlockHash,proto3" json:"last_block_hash,omitempty" yaml:"last_block_hash"` } func (m *MsgFinalizeTokenWithdrawal) Reset() { *m = MsgFinalizeTokenWithdrawal{} } @@ -510,6 +511,96 @@ func (m *MsgFinalizeTokenWithdrawalResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgFinalizeTokenWithdrawalResponse proto.InternalMessageInfo +// MsgForceTokenWithdrawal is a message to force a token withdrawal from L2 to L1. +type MsgForceTokenWithdrawal struct { + // anyone can force a token withdrawal from L2 to L1 even this is not the receiver. + BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty" yaml:"bridge_id"` + OutputIndex uint64 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty" yaml:"output_index"` + // withdrawal commitments and proofs + L2Sequence uint64 `protobuf:"varint,4,opt,name=l2_sequence,json=l2Sequence,proto3" json:"l2_sequence,omitempty" yaml:"l2_sequence"` + Sender string `protobuf:"bytes,5,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Receiver string `protobuf:"bytes,1,opt,name=receiver,proto3" json:"receiver,omitempty" yaml:"receiver"` + Amount types.Coin `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount" yaml:"amount"` + CommitmentProof v1.ProofOps `protobuf:"bytes,7,opt,name=commitment_proof,json=commitmentProof,proto3" json:"commitment_proof" yaml:"commitment_proof"` + // app hash and proof + AppHash []byte `protobuf:"bytes,8,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty" yaml:"app_hash"` + AppHashProof v1.Proof `protobuf:"bytes,9,opt,name=app_hash_proof,json=appHashProof,proto3" json:"app_hash_proof" yaml:"app_hash_proof"` + // output root proofs + Version []byte `protobuf:"bytes,10,opt,name=version,proto3" json:"version,omitempty" yaml:"version"` + StorageRoot []byte `protobuf:"bytes,11,opt,name=storage_root,json=storageRoot,proto3" json:"storage_root,omitempty" yaml:"storage_root"` + LastBlockHash []byte `protobuf:"bytes,12,opt,name=last_block_hash,json=lastBlockHash,proto3" json:"last_block_hash,omitempty" yaml:"last_block_hash"` +} + +func (m *MsgForceTokenWithdrawal) Reset() { *m = MsgForceTokenWithdrawal{} } +func (m *MsgForceTokenWithdrawal) String() string { return proto.CompactTextString(m) } +func (*MsgForceTokenWithdrawal) ProtoMessage() {} +func (*MsgForceTokenWithdrawal) Descriptor() ([]byte, []int) { + return fileDescriptor_d16af6eaf4088d05, []int{12} +} +func (m *MsgForceTokenWithdrawal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgForceTokenWithdrawal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgForceTokenWithdrawal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgForceTokenWithdrawal) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgForceTokenWithdrawal.Merge(m, src) +} +func (m *MsgForceTokenWithdrawal) XXX_Size() int { + return m.Size() +} +func (m *MsgForceTokenWithdrawal) XXX_DiscardUnknown() { + xxx_messageInfo_MsgForceTokenWithdrawal.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgForceTokenWithdrawal proto.InternalMessageInfo + +// MsgForceTokenWithdrawalResponse returns a message handle result. +type MsgForceTokenWithdrawalResponse struct { +} + +func (m *MsgForceTokenWithdrawalResponse) Reset() { *m = MsgForceTokenWithdrawalResponse{} } +func (m *MsgForceTokenWithdrawalResponse) String() string { return proto.CompactTextString(m) } +func (*MsgForceTokenWithdrawalResponse) ProtoMessage() {} +func (*MsgForceTokenWithdrawalResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_d16af6eaf4088d05, []int{13} +} +func (m *MsgForceTokenWithdrawalResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgForceTokenWithdrawalResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgForceTokenWithdrawalResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgForceTokenWithdrawalResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgForceTokenWithdrawalResponse.Merge(m, src) +} +func (m *MsgForceTokenWithdrawalResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgForceTokenWithdrawalResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgForceTokenWithdrawalResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgForceTokenWithdrawalResponse proto.InternalMessageInfo + // MsgUpdateProposer is a message to change a proposer type MsgUpdateProposer struct { // authority is the address that controls the module (defaults to x/gov unless overwritten) @@ -523,7 +614,7 @@ func (m *MsgUpdateProposer) Reset() { *m = MsgUpdateProposer{} } func (m *MsgUpdateProposer) String() string { return proto.CompactTextString(m) } func (*MsgUpdateProposer) ProtoMessage() {} func (*MsgUpdateProposer) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{12} + return fileDescriptor_d16af6eaf4088d05, []int{14} } func (m *MsgUpdateProposer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -564,7 +655,7 @@ func (m *MsgUpdateProposerResponse) Reset() { *m = MsgUpdateProposerResp func (m *MsgUpdateProposerResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateProposerResponse) ProtoMessage() {} func (*MsgUpdateProposerResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{13} + return fileDescriptor_d16af6eaf4088d05, []int{15} } func (m *MsgUpdateProposerResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -608,7 +699,7 @@ func (m *MsgUpdateChallengers) Reset() { *m = MsgUpdateChallengers{} } func (m *MsgUpdateChallengers) String() string { return proto.CompactTextString(m) } func (*MsgUpdateChallengers) ProtoMessage() {} func (*MsgUpdateChallengers) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{14} + return fileDescriptor_d16af6eaf4088d05, []int{16} } func (m *MsgUpdateChallengers) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -649,7 +740,7 @@ func (m *MsgUpdateChallengersResponse) Reset() { *m = MsgUpdateChallenge func (m *MsgUpdateChallengersResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateChallengersResponse) ProtoMessage() {} func (*MsgUpdateChallengersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{15} + return fileDescriptor_d16af6eaf4088d05, []int{17} } func (m *MsgUpdateChallengersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -691,7 +782,7 @@ func (m *MsgUpdateBatchInfo) Reset() { *m = MsgUpdateBatchInfo{} } func (m *MsgUpdateBatchInfo) String() string { return proto.CompactTextString(m) } func (*MsgUpdateBatchInfo) ProtoMessage() {} func (*MsgUpdateBatchInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{16} + return fileDescriptor_d16af6eaf4088d05, []int{18} } func (m *MsgUpdateBatchInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -732,7 +823,7 @@ func (m *MsgUpdateBatchInfoResponse) Reset() { *m = MsgUpdateBatchInfoRe func (m *MsgUpdateBatchInfoResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateBatchInfoResponse) ProtoMessage() {} func (*MsgUpdateBatchInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{17} + return fileDescriptor_d16af6eaf4088d05, []int{19} } func (m *MsgUpdateBatchInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -777,7 +868,7 @@ func (m *MsgUpdateMetadata) Reset() { *m = MsgUpdateMetadata{} } func (m *MsgUpdateMetadata) String() string { return proto.CompactTextString(m) } func (*MsgUpdateMetadata) ProtoMessage() {} func (*MsgUpdateMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{18} + return fileDescriptor_d16af6eaf4088d05, []int{20} } func (m *MsgUpdateMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -818,7 +909,7 @@ func (m *MsgUpdateMetadataResponse) Reset() { *m = MsgUpdateMetadataResp func (m *MsgUpdateMetadataResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateMetadataResponse) ProtoMessage() {} func (*MsgUpdateMetadataResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{19} + return fileDescriptor_d16af6eaf4088d05, []int{21} } func (m *MsgUpdateMetadataResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -860,7 +951,7 @@ func (m *MsgUpdateParams) Reset() { *m = MsgUpdateParams{} } func (m *MsgUpdateParams) String() string { return proto.CompactTextString(m) } func (*MsgUpdateParams) ProtoMessage() {} func (*MsgUpdateParams) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{20} + return fileDescriptor_d16af6eaf4088d05, []int{22} } func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -897,7 +988,7 @@ func (m *MsgUpdateParamsResponse) Reset() { *m = MsgUpdateParamsResponse func (m *MsgUpdateParamsResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateParamsResponse) ProtoMessage() {} func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{21} + return fileDescriptor_d16af6eaf4088d05, []int{23} } func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -939,6 +1030,8 @@ func init() { proto.RegisterType((*MsgInitiateTokenDepositResponse)(nil), "opinit.ophost.v1.MsgInitiateTokenDepositResponse") proto.RegisterType((*MsgFinalizeTokenWithdrawal)(nil), "opinit.ophost.v1.MsgFinalizeTokenWithdrawal") proto.RegisterType((*MsgFinalizeTokenWithdrawalResponse)(nil), "opinit.ophost.v1.MsgFinalizeTokenWithdrawalResponse") + proto.RegisterType((*MsgForceTokenWithdrawal)(nil), "opinit.ophost.v1.MsgForceTokenWithdrawal") + proto.RegisterType((*MsgForceTokenWithdrawalResponse)(nil), "opinit.ophost.v1.MsgForceTokenWithdrawalResponse") proto.RegisterType((*MsgUpdateProposer)(nil), "opinit.ophost.v1.MsgUpdateProposer") proto.RegisterType((*MsgUpdateProposerResponse)(nil), "opinit.ophost.v1.MsgUpdateProposerResponse") proto.RegisterType((*MsgUpdateChallengers)(nil), "opinit.ophost.v1.MsgUpdateChallengers") @@ -954,106 +1047,119 @@ func init() { func init() { proto.RegisterFile("opinit/ophost/v1/tx.proto", fileDescriptor_d16af6eaf4088d05) } var fileDescriptor_d16af6eaf4088d05 = []byte{ - // 1582 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0x1b, 0x45, - 0x14, 0xb7, 0x9d, 0x8f, 0xc6, 0xe3, 0x34, 0x1f, 0xdb, 0x34, 0x71, 0xb6, 0x95, 0x37, 0x19, 0x4a, - 0x49, 0xd3, 0xd4, 0x56, 0x52, 0x28, 0x92, 0x25, 0x0e, 0xdd, 0x54, 0xb4, 0xa9, 0x64, 0x1a, 0x2d, - 0x20, 0x04, 0x54, 0xb2, 0xd6, 0xf6, 0x64, 0xbd, 0xaa, 0xbd, 0x63, 0x76, 0xc6, 0x49, 0x83, 0x84, - 0x84, 0x38, 0x21, 0x4e, 0x48, 0xfc, 0x03, 0x15, 0xa7, 0x1e, 0x7b, 0xe0, 0xc0, 0x9f, 0x90, 0x0b, - 0x52, 0x85, 0x38, 0x70, 0xb2, 0xa0, 0x3d, 0x94, 0x23, 0x32, 0x47, 0x2e, 0x68, 0x3e, 0x76, 0x76, - 0xbd, 0xfe, 0x68, 0x88, 0xfa, 0x71, 0x89, 0x32, 0xef, 0xfd, 0xde, 0xbc, 0x79, 0xbf, 0xf7, 0xfc, - 0xde, 0xcc, 0x82, 0x65, 0xdc, 0x72, 0x3d, 0x97, 0x16, 0x70, 0xab, 0x8e, 0x09, 0x2d, 0xec, 0x6f, - 0x16, 0xe8, 0xfd, 0x7c, 0xcb, 0xc7, 0x14, 0x6b, 0x73, 0x42, 0x95, 0x17, 0xaa, 0xfc, 0xfe, 0xa6, - 0x3e, 0x6f, 0x37, 0x5d, 0x0f, 0x17, 0xf8, 0x5f, 0x01, 0xd2, 0x73, 0x55, 0x4c, 0x9a, 0x98, 0x14, - 0x2a, 0x36, 0x41, 0x85, 0xfd, 0xcd, 0x0a, 0xa2, 0xf6, 0x66, 0xa1, 0x8a, 0x5d, 0x4f, 0xea, 0x97, - 0xa4, 0xbe, 0x49, 0x1c, 0xb6, 0x79, 0x93, 0x38, 0x52, 0xb1, 0x2c, 0x14, 0x65, 0xbe, 0x2a, 0x88, - 0x85, 0x54, 0x2d, 0x38, 0xd8, 0xc1, 0x42, 0xce, 0xfe, 0x93, 0xd2, 0xf3, 0xfd, 0x27, 0x3d, 0x6c, - 0x21, 0x69, 0x03, 0xbb, 0x49, 0x30, 0x53, 0x22, 0x8e, 0x85, 0xaa, 0xd8, 0xaf, 0x99, 0x36, 0xad, - 0xd6, 0xb5, 0xdb, 0x20, 0x4d, 0xda, 0x95, 0xa6, 0x4b, 0x29, 0xf2, 0xb3, 0xc9, 0x95, 0xe4, 0x5a, - 0xda, 0xdc, 0xe8, 0x76, 0x8c, 0xb9, 0x43, 0xbb, 0xd9, 0x28, 0x42, 0xa5, 0x82, 0xbf, 0xfe, 0x74, - 0x65, 0x41, 0xfa, 0xbf, 0x5e, 0xab, 0xf9, 0x88, 0x90, 0x0f, 0xa9, 0xef, 0x7a, 0x8e, 0x15, 0x9a, - 0x6b, 0x9b, 0x20, 0x5d, 0xf1, 0xdd, 0x9a, 0x83, 0xca, 0x6e, 0x2d, 0x9b, 0x5a, 0x49, 0xae, 0x8d, - 0x9b, 0x0b, 0xe1, 0x5e, 0x4a, 0x05, 0xad, 0x29, 0xf1, 0xff, 0x4e, 0x4d, 0x7b, 0x17, 0x64, 0x2a, - 0xec, 0x1c, 0xe5, 0xca, 0x21, 0x45, 0x24, 0x3b, 0xb6, 0x92, 0x5c, 0x9b, 0x36, 0x17, 0xbb, 0x1d, - 0x43, 0x93, 0x46, 0xa1, 0x12, 0x5a, 0x80, 0xaf, 0x4c, 0xb6, 0x28, 0xae, 0x7d, 0xf3, 0xec, 0xd1, - 0x7a, 0xe8, 0xfb, 0xbb, 0x67, 0x8f, 0xd6, 0xcf, 0xca, 0xa0, 0x7b, 0x23, 0x84, 0x59, 0xb0, 0xd8, - 0x2b, 0xb1, 0x10, 0x69, 0x61, 0x8f, 0x20, 0xf8, 0x5b, 0x12, 0xcc, 0x96, 0x88, 0xb3, 0xed, 0x23, - 0x9b, 0x22, 0x93, 0x1f, 0x49, 0xbb, 0x01, 0x4e, 0x55, 0xd9, 0x1a, 0x07, 0x6c, 0xac, 0x77, 0x3b, - 0xc6, 0x8c, 0x38, 0x8c, 0x54, 0x0c, 0xe7, 0x22, 0x30, 0xd5, 0x2c, 0x30, 0x59, 0xc5, 0xde, 0x9e, - 0xeb, 0x70, 0x1a, 0x32, 0x5b, 0xb9, 0x7c, 0xbc, 0x4c, 0xf2, 0xc2, 0xdf, 0x36, 0x47, 0x99, 0xfa, - 0x51, 0xc7, 0x48, 0x74, 0x3b, 0xc6, 0x69, 0xe9, 0x88, 0x4b, 0xe1, 0xc3, 0x67, 0x8f, 0xd6, 0x93, - 0x96, 0xdc, 0xa9, 0xf8, 0x16, 0x8b, 0x38, 0xf0, 0xc0, 0xe2, 0x5d, 0x0c, 0xe3, 0x8d, 0x86, 0x00, - 0xaf, 0x81, 0xa5, 0x98, 0x28, 0x88, 0x58, 0x3b, 0x17, 0xcd, 0x10, 0x8b, 0x6f, 0x3c, 0xcc, 0x05, - 0xec, 0xa6, 0xc0, 0x5c, 0x89, 0x38, 0xbb, 0x3e, 0x6e, 0x61, 0x82, 0xee, 0xb4, 0x69, 0xab, 0x4d, - 0xb5, 0x9b, 0x60, 0xaa, 0x25, 0x04, 0x01, 0x21, 0x97, 0xbb, 0x1d, 0x63, 0x56, 0x9c, 0x33, 0xd0, - 0x0c, 0x67, 0x44, 0x19, 0x9f, 0xa4, 0x38, 0x8a, 0x60, 0x1a, 0xf3, 0x53, 0x94, 0x5d, 0xaf, 0x86, - 0xee, 0xf3, 0xea, 0x18, 0x37, 0x97, 0xba, 0x1d, 0xe3, 0x8c, 0xb0, 0x8a, 0x6a, 0xa1, 0x95, 0x11, - 0xcb, 0x1d, 0xb6, 0xd2, 0x4c, 0x30, 0xdb, 0xd8, 0x2a, 0x57, 0x1a, 0xb8, 0x7a, 0xaf, 0xec, 0xb5, - 0x9b, 0x15, 0xe4, 0x67, 0xc7, 0xb9, 0xb9, 0xde, 0xed, 0x18, 0x8b, 0xc2, 0x3c, 0x06, 0x80, 0xd6, - 0xe9, 0xc6, 0x96, 0xc9, 0x04, 0x1f, 0xf0, 0x35, 0x2b, 0x4e, 0xe9, 0xc1, 0xc7, 0x98, 0x66, 0x27, - 0xe2, 0xc5, 0x19, 0x51, 0x42, 0x0b, 0x88, 0x95, 0x85, 0x31, 0x2d, 0x5e, 0x62, 0xa9, 0x52, 0xa1, - 0xb3, 0x5c, 0x2d, 0x85, 0xb9, 0xea, 0xe1, 0x17, 0xea, 0x20, 0x1b, 0x97, 0xa9, 0xfa, 0xfc, 0x57, - 0xd4, 0xe7, 0x0d, 0xd4, 0x40, 0x34, 0xc8, 0x47, 0x09, 0x80, 0x6a, 0xdd, 0x6e, 0x34, 0x90, 0xe7, - 0xa8, 0x8c, 0x5c, 0xe9, 0x76, 0x8c, 0x79, 0x59, 0x39, 0x4a, 0x37, 0x3c, 0x27, 0x91, 0x0d, 0x5e, - 0x71, 0x56, 0x8a, 0xeb, 0x8c, 0x98, 0x88, 0xff, 0x58, 0x19, 0x47, 0x23, 0x85, 0xcb, 0xbc, 0x8c, - 0xa3, 0xa2, 0x90, 0x98, 0x14, 0xd7, 0xed, 0x78, 0x2e, 0x75, 0x6d, 0x8a, 0x3e, 0xc2, 0xf7, 0x90, - 0x77, 0x03, 0xb5, 0x30, 0x71, 0xa9, 0x76, 0x1d, 0x4c, 0x12, 0xe4, 0xd5, 0x14, 0x39, 0x97, 0xc2, - 0x9f, 0x95, 0x90, 0x0f, 0x27, 0x46, 0x1a, 0x9e, 0x84, 0x94, 0x77, 0x40, 0x8a, 0x62, 0x4e, 0x45, - 0xda, 0x7c, 0xb3, 0xdb, 0x31, 0xd2, 0x02, 0x4b, 0xf1, 0x70, 0x6f, 0x29, 0x8a, 0xb5, 0x12, 0x98, - 0xb4, 0x9b, 0xb8, 0xed, 0x51, 0x5e, 0x9c, 0x99, 0xad, 0xe5, 0xbc, 0x84, 0xb2, 0x49, 0x91, 0x97, - 0x93, 0x22, 0xbf, 0x8d, 0x5d, 0x2f, 0xde, 0x22, 0x84, 0x59, 0xd0, 0x22, 0xc4, 0x4a, 0xdb, 0x00, - 0xe3, 0x35, 0x9b, 0xda, 0xb2, 0x52, 0xb3, 0x47, 0x1d, 0x23, 0xd9, 0xed, 0x18, 0x19, 0x61, 0xc1, - 0x34, 0x1c, 0x9f, 0xb0, 0x38, 0xaa, 0x78, 0xed, 0xdb, 0x07, 0x46, 0xe2, 0xaf, 0x07, 0x46, 0x82, - 0x25, 0x45, 0xc6, 0xce, 0x12, 0x92, 0x0b, 0x13, 0x32, 0x88, 0x61, 0xf8, 0x1e, 0x30, 0x86, 0xa8, - 0x54, 0x9f, 0xd1, 0xc1, 0x14, 0x41, 0x5f, 0xb4, 0x91, 0x57, 0x45, 0x41, 0x9b, 0x09, 0xd6, 0xf0, - 0xe7, 0x09, 0xa0, 0x97, 0x88, 0xf3, 0xbe, 0xeb, 0xd9, 0x0d, 0xf7, 0x4b, 0x61, 0xff, 0x89, 0x4b, - 0xeb, 0x35, 0xdf, 0x3e, 0xb0, 0x1b, 0xaf, 0xba, 0x4f, 0x5c, 0x03, 0xf3, 0x07, 0xca, 0x39, 0x9b, - 0xb3, 0x78, 0x8f, 0x64, 0xc7, 0x57, 0xc6, 0xd6, 0xa6, 0xcd, 0x34, 0xe3, 0x4f, 0x10, 0x36, 0x17, - 0x62, 0x76, 0x39, 0x24, 0x52, 0x66, 0x13, 0x27, 0x2d, 0xb3, 0x9b, 0x60, 0xca, 0x47, 0x55, 0xe4, - 0xee, 0x0f, 0x6a, 0xad, 0x81, 0x66, 0x44, 0x6b, 0x0d, 0x20, 0x5a, 0x21, 0xc2, 0xf6, 0x24, 0x8f, - 0xfd, 0x4c, 0xb8, 0x91, 0xe2, 0x3d, 0x4c, 0x41, 0xa4, 0xec, 0x4e, 0xbd, 0x98, 0xb2, 0x3b, 0xb5, - 0x8f, 0x7c, 0xe2, 0x62, 0x2f, 0x3b, 0xc5, 0x2b, 0x4f, 0x0b, 0x67, 0xa6, 0x54, 0x40, 0x2b, 0x80, - 0xb0, 0x6c, 0x11, 0x8a, 0x7d, 0xdb, 0x41, 0xa2, 0xad, 0xa6, 0xb9, 0x49, 0x24, 0x5b, 0x51, 0x2d, - 0xb4, 0x32, 0x72, 0xc9, 0x1a, 0xab, 0x76, 0x0b, 0xcc, 0x37, 0x6c, 0x8a, 0x08, 0x95, 0x8d, 0xbb, - 0x6e, 0x93, 0x7a, 0x16, 0xf0, 0x0d, 0xce, 0x77, 0x3b, 0x46, 0x56, 0xf6, 0xf5, 0x38, 0x04, 0x5a, - 0xb3, 0x42, 0xc6, 0xbb, 0xfb, 0x2d, 0x9b, 0xd4, 0x8b, 0x57, 0x79, 0x8b, 0x0e, 0x28, 0x64, 0x65, - 0xbf, 0x1a, 0x96, 0xfd, 0x90, 0xda, 0x84, 0x17, 0x00, 0x1c, 0xae, 0x55, 0xdd, 0xe9, 0x87, 0x14, - 0x98, 0x2f, 0x11, 0xe7, 0xe3, 0x56, 0xcd, 0xa6, 0x68, 0x37, 0x98, 0x7f, 0xb7, 0x41, 0xda, 0x6e, - 0xd3, 0x3a, 0xf6, 0x5d, 0x7a, 0xd8, 0x7f, 0xd1, 0x52, 0xaa, 0x11, 0x17, 0x2d, 0x85, 0x39, 0xc9, - 0x6f, 0xc4, 0x02, 0xd3, 0x1e, 0x3a, 0x28, 0xab, 0x59, 0x2e, 0x5a, 0x55, 0x21, 0x64, 0x3d, 0xaa, - 0x1d, 0x7e, 0x88, 0x8c, 0x87, 0x0e, 0x82, 0x90, 0x8a, 0x97, 0xf9, 0x1d, 0x4c, 0x1d, 0x8b, 0x91, - 0x98, 0x0d, 0x49, 0xec, 0x8d, 0x1f, 0xee, 0x81, 0xe5, 0x3e, 0xa1, 0xea, 0x17, 0xab, 0xb1, 0x5f, - 0xb0, 0xe8, 0x19, 0x3d, 0x3f, 0xd4, 0x8b, 0xfd, 0x03, 0x9d, 0x47, 0x1e, 0x1b, 0xda, 0xf0, 0xc7, - 0x14, 0x58, 0x50, 0x8e, 0xb6, 0xd5, 0xa4, 0x21, 0xaf, 0x3b, 0x01, 0x9f, 0x83, 0x59, 0x46, 0x71, - 0x38, 0xfb, 0xd8, 0x6d, 0x77, 0x6c, 0x2d, 0x6d, 0x6e, 0x85, 0x17, 0x92, 0x18, 0x60, 0xf8, 0x51, - 0x66, 0x3c, 0x74, 0x10, 0x89, 0xad, 0x98, 0xef, 0xcf, 0xc4, 0xb9, 0x78, 0x26, 0x22, 0x78, 0xe8, - 0x82, 0xf3, 0x83, 0xe4, 0x2f, 0x23, 0x1f, 0x0f, 0x53, 0x40, 0x53, 0xbe, 0xf8, 0xfd, 0x7b, 0xc7, - 0xdb, 0xc3, 0xaf, 0x3b, 0x1b, 0x08, 0x30, 0x0a, 0xcb, 0xe2, 0x79, 0xe1, 0x7a, 0x7b, 0x62, 0x76, - 0x67, 0xb6, 0xce, 0x0d, 0xb8, 0xa8, 0x07, 0x67, 0x36, 0xa1, 0xec, 0x85, 0x67, 0xc3, 0x6c, 0x85, - 0x1b, 0xc8, 0x9e, 0xc8, 0x7e, 0x65, 0xca, 0xa2, 0xb8, 0xd1, 0x9f, 0x97, 0xe5, 0x78, 0x5e, 0x14, - 0x1a, 0x3a, 0x7c, 0x30, 0xc6, 0xa4, 0x2f, 0x23, 0x27, 0x7f, 0x27, 0x23, 0x1d, 0xaa, 0x84, 0xa8, - 0xcd, 0xee, 0x03, 0xaf, 0x3b, 0x25, 0x05, 0x30, 0xd5, 0x94, 0x47, 0x91, 0xef, 0xc0, 0xc8, 0x14, - 0x0b, 0x34, 0xd0, 0x52, 0xa0, 0x63, 0xb5, 0x9f, 0x20, 0xb8, 0x9e, 0xf6, 0x13, 0x08, 0x5f, 0x06, - 0xb5, 0xbf, 0x88, 0x3b, 0xbb, 0xec, 0x73, 0xb6, 0x6f, 0x37, 0x5f, 0x6c, 0xe7, 0xd9, 0x06, 0x93, - 0x2d, 0xbe, 0xab, 0x7c, 0x59, 0x66, 0xfb, 0x0b, 0x56, 0x78, 0x35, 0xe7, 0xc3, 0xa9, 0x2d, 0x2c, - 0xa0, 0x25, 0x4d, 0xc5, 0xfb, 0xa4, 0x97, 0xb9, 0xc5, 0xbe, 0xc6, 0x2d, 0x6c, 0xc4, 0x2d, 0x3c, - 0x2a, 0x0a, 0x58, 0xdb, 0xfa, 0x67, 0x0a, 0x8c, 0x95, 0x88, 0xa3, 0x7d, 0x0a, 0x32, 0xd1, 0x2f, - 0x0a, 0x2b, 0xfd, 0x27, 0xea, 0x7d, 0x7f, 0xeb, 0x6b, 0xcf, 0x43, 0xa8, 0xc4, 0xdc, 0x05, 0xd3, - 0x3d, 0xaf, 0xf3, 0xd5, 0x81, 0x96, 0x51, 0x88, 0x7e, 0xe9, 0xb9, 0x10, 0xb5, 0x7b, 0x19, 0x9c, - 0xee, 0x7d, 0xec, 0xc2, 0x81, 0xb6, 0x3d, 0x18, 0x7d, 0xfd, 0xf9, 0x98, 0xe8, 0xf1, 0x7b, 0x1e, - 0x6f, 0x83, 0x8f, 0x1f, 0x85, 0x0c, 0x39, 0xfe, 0xa0, 0x57, 0x90, 0x46, 0xc1, 0xc2, 0xc0, 0x17, - 0xd0, 0xe0, 0x2d, 0x06, 0x41, 0xf5, 0xcd, 0x63, 0x43, 0x95, 0xd7, 0xaf, 0xc0, 0xd2, 0xb0, 0xab, - 0xfb, 0xc6, 0xc0, 0xdd, 0x86, 0xa0, 0xf5, 0xb7, 0xff, 0x0f, 0x5a, 0xb9, 0xaf, 0x80, 0x99, 0xd8, - 0xc5, 0xea, 0x8d, 0x81, 0xfb, 0xf4, 0x82, 0xf4, 0xcb, 0xc7, 0x00, 0x29, 0x1f, 0xf7, 0xc0, 0x7c, - 0xff, 0xf5, 0xe1, 0xe2, 0x88, 0x1d, 0x22, 0x38, 0x3d, 0x7f, 0x3c, 0x9c, 0x72, 0x86, 0xc0, 0x6c, - 0x7c, 0x36, 0x5e, 0x18, 0xb1, 0x85, 0x42, 0xe9, 0x1b, 0xc7, 0x41, 0xf5, 0xf3, 0xa6, 0xda, 0xfd, - 0x28, 0xde, 0x02, 0xd0, 0x48, 0xde, 0xfa, 0xda, 0xe8, 0x5d, 0x30, 0xdd, 0xd3, 0xf7, 0x56, 0x47, - 0x91, 0xce, 0x21, 0x43, 0xca, 0x7d, 0x50, 0xbb, 0xd1, 0x27, 0xbe, 0x66, 0x03, 0xd6, 0xbc, 0x7d, - 0xf4, 0x67, 0x2e, 0x71, 0xf4, 0x24, 0x97, 0x7c, 0xfc, 0x24, 0x97, 0xfc, 0xe3, 0x49, 0x2e, 0xf9, - 0xfd, 0xd3, 0x5c, 0xe2, 0xf1, 0xd3, 0x5c, 0xe2, 0xf7, 0xa7, 0xb9, 0xc4, 0x67, 0x1b, 0x8e, 0x4b, - 0xeb, 0xed, 0x4a, 0xbe, 0x8a, 0x9b, 0x05, 0x97, 0x97, 0xf1, 0x95, 0x86, 0x5d, 0x21, 0x85, 0x3b, - 0xbb, 0xfc, 0xb3, 0xe8, 0xfd, 0xe0, 0xc3, 0x28, 0xff, 0x2a, 0x5a, 0x99, 0xe4, 0x9f, 0x45, 0xaf, - 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x03, 0xae, 0x51, 0x6d, 0xe0, 0x15, 0x00, 0x00, + // 1777 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xcb, 0x6f, 0x1b, 0xc7, + 0x19, 0x27, 0x69, 0xbd, 0x38, 0xa4, 0xf5, 0x58, 0x2b, 0x12, 0xb5, 0x36, 0x48, 0x69, 0xea, 0xa6, + 0xb2, 0x2c, 0x93, 0x15, 0xd3, 0x3a, 0x00, 0x81, 0x1e, 0xb2, 0x32, 0x92, 0xca, 0x00, 0x6b, 0x61, + 0xd3, 0xa2, 0x68, 0x1b, 0x80, 0x58, 0x92, 0xa3, 0xe5, 0xc2, 0xe4, 0xce, 0x76, 0x67, 0x28, 0x59, + 0x05, 0x0a, 0x04, 0x3d, 0x15, 0x3d, 0x15, 0xe8, 0x3f, 0x10, 0xf4, 0x94, 0xa3, 0x51, 0xf4, 0x8f, + 0xd0, 0xa5, 0x40, 0x50, 0xf4, 0xd0, 0x13, 0xd1, 0xda, 0x07, 0xe7, 0x58, 0xf0, 0xda, 0x4b, 0x31, + 0x8f, 0x9d, 0x7d, 0x70, 0x49, 0xcb, 0xaa, 0x1d, 0xe5, 0x22, 0x68, 0xe6, 0xfb, 0x7d, 0xef, 0x6f, + 0xbe, 0xf9, 0x66, 0x09, 0xb6, 0xb0, 0xe7, 0xb8, 0x0e, 0xad, 0x61, 0xaf, 0x87, 0x09, 0xad, 0x9d, + 0x1e, 0xd4, 0xe8, 0xb3, 0xaa, 0xe7, 0x63, 0x8a, 0xb5, 0x55, 0x41, 0xaa, 0x0a, 0x52, 0xf5, 0xf4, + 0x40, 0x5f, 0xb3, 0x06, 0x8e, 0x8b, 0x6b, 0xfc, 0xaf, 0x00, 0xe9, 0xe5, 0x0e, 0x1e, 0x20, 0xda, + 0x3e, 0xa1, 0xb5, 0x8e, 0x7f, 0xee, 0x51, 0xcc, 0x24, 0x78, 0x3e, 0xc6, 0x27, 0x21, 0x9d, 0x0c, + 0x30, 0xa9, 0xb5, 0x2d, 0x82, 0x6a, 0xa7, 0x07, 0x6d, 0x44, 0xad, 0x83, 0x5a, 0x07, 0x3b, 0xae, + 0xa4, 0x6f, 0x4a, 0xfa, 0x80, 0xd8, 0x8c, 0x75, 0x40, 0x6c, 0x49, 0xd8, 0x12, 0x84, 0x16, 0x5f, + 0xd5, 0xc4, 0x42, 0x92, 0xd6, 0x6d, 0x6c, 0x63, 0xb1, 0xcf, 0xfe, 0x93, 0xbb, 0x77, 0x26, 0x3d, + 0x39, 0xf7, 0x90, 0xe4, 0x81, 0xe3, 0x2c, 0x58, 0x6e, 0x12, 0xdb, 0x44, 0x1d, 0xec, 0x77, 0x0d, + 0x8b, 0x76, 0x7a, 0xda, 0x63, 0x90, 0x27, 0xc3, 0xf6, 0xc0, 0xa1, 0x14, 0xf9, 0xa5, 0xec, 0x76, + 0x76, 0x37, 0x6f, 0xec, 0x8f, 0x47, 0x95, 0xd5, 0x73, 0x6b, 0xd0, 0x6f, 0x40, 0x45, 0x82, 0x7f, + 0xff, 0xeb, 0x83, 0x75, 0xa9, 0xff, 0xa3, 0x6e, 0xd7, 0x47, 0x84, 0x7c, 0x4a, 0x7d, 0xc7, 0xb5, + 0xcd, 0x90, 0x5d, 0x3b, 0x00, 0xf9, 0xb6, 0xef, 0x74, 0x6d, 0xd4, 0x72, 0xba, 0xa5, 0xdc, 0x76, + 0x76, 0x77, 0xce, 0x58, 0x0f, 0x65, 0x29, 0x12, 0x34, 0x97, 0xc4, 0xff, 0x47, 0x5d, 0xed, 0x43, + 0x50, 0x68, 0x33, 0x3b, 0x5a, 0xed, 0x73, 0x8a, 0x48, 0xe9, 0xc6, 0x76, 0x76, 0xb7, 0x68, 0x6c, + 0x8c, 0x47, 0x15, 0x4d, 0x32, 0x85, 0x44, 0x68, 0x02, 0xbe, 0x32, 0xd8, 0xa2, 0xb1, 0xfb, 0xbb, + 0x57, 0xcf, 0xf7, 0x42, 0xdd, 0x7f, 0x78, 0xf5, 0x7c, 0xef, 0x3d, 0xe9, 0x74, 0xdc, 0x43, 0x58, + 0x02, 0x1b, 0xf1, 0x1d, 0x13, 0x11, 0x0f, 0xbb, 0x04, 0xc1, 0x7f, 0x64, 0xc1, 0x4a, 0x93, 0xd8, + 0x87, 0x3e, 0xb2, 0x28, 0x32, 0xb8, 0x49, 0xda, 0x23, 0xb0, 0xd8, 0x61, 0x6b, 0x1c, 0x44, 0x63, + 0x6f, 0x3c, 0xaa, 0x2c, 0x0b, 0x63, 0x24, 0x61, 0x7a, 0x2c, 0x02, 0x56, 0xcd, 0x04, 0x0b, 0x1d, + 0xec, 0x9e, 0x38, 0x36, 0x0f, 0x43, 0xa1, 0x5e, 0xae, 0x26, 0xcb, 0xa8, 0x2a, 0xf4, 0x1d, 0x72, + 0x94, 0xa1, 0x5f, 0x8c, 0x2a, 0x99, 0xf1, 0xa8, 0x72, 0x53, 0x2a, 0xe2, 0xbb, 0xf0, 0xcb, 0x57, + 0xcf, 0xf7, 0xb2, 0xa6, 0x94, 0xd4, 0xf8, 0x1e, 0xf3, 0x38, 0xd0, 0xc0, 0xfc, 0xdd, 0x08, 0xfd, + 0x8d, 0xba, 0x00, 0x1f, 0x82, 0xcd, 0xc4, 0x56, 0xe0, 0xb1, 0x76, 0x3b, 0x9a, 0x21, 0xe6, 0xdf, + 0x5c, 0x98, 0x0b, 0x38, 0xce, 0x81, 0xd5, 0x26, 0xb1, 0x8f, 0x7d, 0xec, 0x61, 0x82, 0x9e, 0x0c, + 0xa9, 0x37, 0xa4, 0xda, 0x27, 0x60, 0xc9, 0x13, 0x1b, 0x41, 0x40, 0xee, 0x8f, 0x47, 0x95, 0x15, + 0x61, 0x67, 0x40, 0x99, 0x1e, 0x11, 0xc5, 0x7c, 0x95, 0xe2, 0x68, 0x80, 0x22, 0xe6, 0x56, 0xb4, + 0x1c, 0xb7, 0x8b, 0x9e, 0xf1, 0xea, 0x98, 0x33, 0x36, 0xc7, 0xa3, 0xca, 0x2d, 0xc1, 0x15, 0xa5, + 0x42, 0xb3, 0x20, 0x96, 0x47, 0x6c, 0xa5, 0x19, 0x60, 0xa5, 0x5f, 0x6f, 0xb5, 0xfb, 0xb8, 0xf3, + 0xb4, 0xe5, 0x0e, 0x07, 0x6d, 0xe4, 0x97, 0xe6, 0x38, 0xbb, 0x3e, 0x1e, 0x55, 0x36, 0x04, 0x7b, + 0x02, 0x00, 0xcd, 0x9b, 0xfd, 0xba, 0xc1, 0x36, 0x7e, 0xc2, 0xd7, 0xac, 0x38, 0xa5, 0x06, 0x1f, + 0x63, 0x5a, 0x9a, 0x4f, 0x16, 0x67, 0x84, 0x08, 0x4d, 0x20, 0x56, 0x26, 0xc6, 0xb4, 0x71, 0x8f, + 0xa5, 0x4a, 0xb9, 0xce, 0x72, 0xb5, 0x19, 0xe6, 0x2a, 0x16, 0x5f, 0xa8, 0x83, 0x52, 0x72, 0x4f, + 0xd5, 0xe7, 0x7f, 0x45, 0x7d, 0x3e, 0x42, 0x7d, 0x44, 0x83, 0x7c, 0x34, 0x01, 0xe8, 0xf4, 0xac, + 0x7e, 0x1f, 0xb9, 0xb6, 0xca, 0xc8, 0x83, 0xf1, 0xa8, 0xb2, 0x26, 0x2b, 0x47, 0xd1, 0xa6, 0xe7, + 0x24, 0x22, 0xe0, 0x1b, 0xce, 0x4a, 0x63, 0x8f, 0x05, 0x26, 0xa2, 0x3f, 0x51, 0xc6, 0x51, 0x4f, + 0xe1, 0x16, 0x2f, 0xe3, 0xe8, 0x56, 0x18, 0x98, 0x1c, 0xa7, 0x1d, 0xb9, 0x0e, 0x75, 0x2c, 0x8a, + 0x7e, 0x8a, 0x9f, 0x22, 0xf7, 0x11, 0xf2, 0x30, 0x71, 0xa8, 0xf6, 0x11, 0x58, 0x20, 0xc8, 0xed, + 0xaa, 0xe0, 0xdc, 0x0b, 0x8f, 0x95, 0xd8, 0x9f, 0x1e, 0x18, 0xc9, 0x78, 0x95, 0xa0, 0xfc, 0x10, + 0xe4, 0x28, 0xe6, 0xa1, 0xc8, 0x1b, 0xdf, 0x1d, 0x8f, 0x2a, 0x79, 0x81, 0xa5, 0x78, 0xba, 0xb6, + 0x1c, 0xc5, 0x5a, 0x13, 0x2c, 0x58, 0x03, 0x3c, 0x74, 0x29, 0x2f, 0xce, 0x42, 0x7d, 0xab, 0x2a, + 0xa1, 0xec, 0xa6, 0xa8, 0xca, 0x9b, 0xa2, 0x7a, 0x88, 0x1d, 0x37, 0xd9, 0x22, 0x04, 0x5b, 0xd0, + 0x22, 0xc4, 0x4a, 0xdb, 0x07, 0x73, 0x5d, 0x8b, 0x5a, 0xb2, 0x52, 0x4b, 0x17, 0xa3, 0x4a, 0x76, + 0x3c, 0xaa, 0x14, 0x04, 0x07, 0xa3, 0x70, 0x7c, 0xc6, 0xe4, 0xa8, 0xc6, 0xc3, 0xdf, 0x7f, 0x51, + 0xc9, 0x7c, 0xfd, 0x45, 0x25, 0xc3, 0x92, 0x22, 0x7d, 0x67, 0x09, 0x29, 0x87, 0x09, 0x49, 0x8b, + 0x30, 0xfc, 0x11, 0xa8, 0x4c, 0x21, 0xa9, 0x3e, 0xa3, 0x83, 0x25, 0x82, 0x7e, 0x3d, 0x44, 0x6e, + 0x07, 0x05, 0x6d, 0x26, 0x58, 0xc3, 0xbf, 0xcc, 0x03, 0xbd, 0x49, 0xec, 0x8f, 0x1d, 0xd7, 0xea, + 0x3b, 0xbf, 0x11, 0xfc, 0x3f, 0x77, 0x68, 0xaf, 0xeb, 0x5b, 0x67, 0x56, 0xff, 0x9b, 0xee, 0x13, + 0x0f, 0xc1, 0xda, 0x99, 0x52, 0xde, 0xe2, 0x97, 0x36, 0x29, 0xcd, 0x6d, 0xdf, 0xd8, 0x2d, 0x1a, + 0x79, 0x16, 0x3f, 0x11, 0xb0, 0xd5, 0x10, 0x73, 0xcc, 0x21, 0x91, 0x32, 0x9b, 0xbf, 0x6a, 0x99, + 0x7d, 0x02, 0x96, 0x7c, 0xd4, 0x41, 0xce, 0x69, 0x5a, 0x6b, 0x0d, 0x28, 0x33, 0x5a, 0x6b, 0x00, + 0xd1, 0x6a, 0x91, 0x68, 0x2f, 0x70, 0xdf, 0x6f, 0x85, 0x82, 0x54, 0xdc, 0xc3, 0x14, 0x44, 0xca, + 0x6e, 0xf1, 0xed, 0x94, 0xdd, 0xe2, 0x29, 0xf2, 0x89, 0x83, 0xdd, 0xd2, 0x12, 0xaf, 0x3c, 0x2d, + 0xbc, 0x33, 0x25, 0x01, 0x9a, 0x01, 0x84, 0x65, 0x8b, 0x50, 0xec, 0x5b, 0x36, 0x12, 0x6d, 0x35, + 0xcf, 0x59, 0x22, 0xd9, 0x8a, 0x52, 0xa1, 0x59, 0x90, 0x4b, 0xd6, 0x58, 0x79, 0x57, 0xb7, 0x08, + 0x95, 0x6d, 0xbb, 0x67, 0x91, 0x5e, 0x09, 0x70, 0xf6, 0x68, 0x57, 0x8f, 0x03, 0x58, 0x57, 0xb7, + 0x08, 0xe5, 0x7d, 0xfd, 0xc7, 0x16, 0xe9, 0x35, 0x3e, 0xe0, 0xcd, 0x39, 0x08, 0x1e, 0x2b, 0xf8, + 0x9d, 0xb0, 0xe0, 0xa7, 0x54, 0x25, 0xbc, 0x0b, 0xe0, 0x74, 0xaa, 0xea, 0x4b, 0x9f, 0x2f, 0xf2, + 0xbe, 0xf4, 0x31, 0xf6, 0x3b, 0xd7, 0x5d, 0xd7, 0x1f, 0x82, 0x42, 0xbf, 0xde, 0x52, 0x65, 0x21, + 0xee, 0xbe, 0xc8, 0xdd, 0x15, 0x21, 0x42, 0x13, 0xf4, 0xeb, 0x9f, 0x06, 0xb5, 0xf1, 0x6d, 0x2a, + 0xec, 0xb0, 0x4e, 0x17, 0xde, 0x46, 0x9d, 0x0e, 0xc0, 0x6a, 0x07, 0x0f, 0x06, 0x0e, 0x1d, 0x20, + 0x97, 0x8a, 0xb3, 0x2e, 0x0f, 0xc0, 0x9d, 0x6a, 0x30, 0xc1, 0x57, 0xc5, 0x04, 0xcf, 0x26, 0x34, + 0x7e, 0xd2, 0x9f, 0x78, 0xc4, 0xb8, 0x2b, 0x65, 0x6f, 0x06, 0xd3, 0x59, 0x5c, 0x86, 0xd4, 0xb2, + 0x12, 0xee, 0x73, 0x4e, 0xad, 0x0a, 0x96, 0x2c, 0xcf, 0x13, 0x55, 0x2a, 0xce, 0x45, 0xe4, 0x58, + 0x06, 0x14, 0x68, 0x2e, 0x5a, 0x9e, 0xc7, 0x0a, 0x53, 0xeb, 0x80, 0xe5, 0x60, 0x57, 0x1a, 0x97, + 0x57, 0x5e, 0xa7, 0x1b, 0x67, 0x40, 0x69, 0xd9, 0x7b, 0x71, 0xa1, 0x31, 0xbb, 0x8a, 0x52, 0xbe, + 0x30, 0x2a, 0x72, 0x56, 0xc1, 0x9b, 0x9f, 0xd5, 0xc2, 0xff, 0x77, 0x56, 0x8b, 0x6f, 0x7a, 0x56, + 0xbf, 0x3f, 0x71, 0x56, 0x23, 0x97, 0x53, 0xda, 0x31, 0x83, 0x3b, 0xfc, 0x72, 0x4a, 0x23, 0xa9, + 0x53, 0xfa, 0xa7, 0x1c, 0x58, 0x6b, 0x12, 0xfb, 0x67, 0x5e, 0xd7, 0xa2, 0xe8, 0x38, 0x98, 0x4f, + 0x1f, 0x83, 0xbc, 0x35, 0xa4, 0x3d, 0xec, 0x3b, 0xf4, 0x7c, 0xf2, 0x21, 0xa4, 0x48, 0x33, 0x1e, + 0x42, 0x0a, 0x73, 0x95, 0xb3, 0x6e, 0x82, 0xa2, 0x8b, 0xce, 0x5a, 0x6a, 0xd6, 0x16, 0xa3, 0x44, + 0x2d, 0x8c, 0x74, 0x94, 0x3a, 0xdd, 0x88, 0x82, 0x8b, 0xce, 0x02, 0x97, 0x1a, 0xf7, 0xf9, 0x1b, + 0x49, 0x99, 0xc5, 0xc2, 0x57, 0x0a, 0xc3, 0x17, 0xf7, 0x1f, 0x9e, 0x80, 0xad, 0x89, 0x4d, 0x75, + 0x9f, 0xef, 0x24, 0x3a, 0x91, 0xb8, 0xd3, 0x63, 0x0d, 0xe7, 0xfd, 0xc9, 0x81, 0x9b, 0x7b, 0x9e, + 0x18, 0xaa, 0xe1, 0x9f, 0x73, 0x60, 0x5d, 0x29, 0x3a, 0x54, 0x93, 0x20, 0xb9, 0xee, 0x04, 0xfc, + 0x0a, 0xac, 0xb0, 0x10, 0x87, 0xb3, 0x29, 0x7b, 0x8d, 0xde, 0xd8, 0xcd, 0x1b, 0xf5, 0xb0, 0x5c, + 0x13, 0x80, 0xe9, 0xa6, 0x2c, 0xbb, 0xe8, 0x2c, 0xe2, 0x5b, 0xa3, 0x3a, 0x99, 0x89, 0xdb, 0xc9, + 0x4c, 0x44, 0xf0, 0xd0, 0x01, 0x77, 0xd2, 0xf6, 0xdf, 0x45, 0x3e, 0xbe, 0xcc, 0x01, 0x4d, 0xe9, + 0xe2, 0xef, 0xe3, 0x23, 0xf7, 0x04, 0x5f, 0x77, 0x36, 0x10, 0x60, 0x21, 0x6c, 0x89, 0xe7, 0xbf, + 0xe3, 0x9e, 0x88, 0xd9, 0xba, 0x50, 0xbf, 0x9d, 0xf2, 0x90, 0x0e, 0x6c, 0x4e, 0x76, 0xc3, 0xb8, + 0x80, 0xa0, 0x1b, 0xba, 0xe8, 0x4c, 0x71, 0x34, 0xf6, 0x27, 0xf3, 0xb2, 0x95, 0xcc, 0x8b, 0x42, + 0x43, 0x9b, 0x0f, 0xae, 0x89, 0xdd, 0x77, 0x91, 0x93, 0xff, 0x64, 0x23, 0x1d, 0xaa, 0x89, 0xa8, + 0xc5, 0xe6, 0xf5, 0xeb, 0x4e, 0x49, 0x0d, 0x2c, 0x0d, 0xa4, 0x29, 0xf2, 0x3b, 0x4d, 0xe4, 0x3a, + 0x0b, 0x28, 0xd0, 0x54, 0xa0, 0x4b, 0xb5, 0x9f, 0xc0, 0xb9, 0x58, 0xfb, 0x09, 0x36, 0xdf, 0x45, + 0x68, 0xff, 0x26, 0xde, 0xd4, 0xb2, 0xcf, 0x59, 0xbe, 0x35, 0x78, 0xbb, 0x9d, 0xe7, 0x10, 0x2c, + 0x78, 0x5c, 0xaa, 0xfc, 0xf2, 0x53, 0x9a, 0x2c, 0x58, 0xa1, 0xd5, 0x58, 0x0b, 0xa7, 0x15, 0xc1, + 0x01, 0x4d, 0xc9, 0x2a, 0xbe, 0x1f, 0xc4, 0x23, 0xb7, 0x31, 0xd1, 0xb8, 0x05, 0x8f, 0x78, 0x25, + 0x47, 0xb7, 0x82, 0xa8, 0xd5, 0xbf, 0xce, 0x83, 0x1b, 0x4d, 0x62, 0x6b, 0xbf, 0x00, 0x85, 0xe8, + 0x17, 0xbf, 0xed, 0x49, 0x8b, 0xe2, 0xdf, 0xc7, 0xf4, 0xdd, 0xd7, 0x21, 0x54, 0x62, 0x3e, 0x03, + 0xc5, 0xd8, 0xd7, 0xb3, 0x9d, 0x54, 0xce, 0x28, 0x44, 0xbf, 0xf7, 0x5a, 0x88, 0x92, 0xde, 0x02, + 0x37, 0xe3, 0x1f, 0xa3, 0x60, 0x2a, 0x6f, 0x0c, 0xa3, 0xef, 0xbd, 0x1e, 0x13, 0x35, 0x3f, 0xf6, + 0x71, 0x25, 0xdd, 0xfc, 0x28, 0x64, 0x8a, 0xf9, 0x69, 0x5f, 0x29, 0x34, 0x0a, 0xd6, 0x53, 0xbf, + 0x50, 0xa4, 0x8b, 0x48, 0x83, 0xea, 0x07, 0x97, 0x86, 0x2a, 0xad, 0xbf, 0x05, 0x9b, 0xd3, 0x9e, + 0xd6, 0xfb, 0xa9, 0xd2, 0xa6, 0xa0, 0xf5, 0x1f, 0xbc, 0x09, 0x5a, 0xa9, 0x27, 0xe0, 0x56, 0x72, + 0xf8, 0x62, 0xaa, 0xd3, 0x7d, 0x4e, 0x1b, 0xd3, 0xa6, 0xf8, 0x3c, 0x6b, 0xa2, 0xd3, 0xda, 0x60, + 0x39, 0x31, 0xcd, 0x7d, 0x27, 0x55, 0x48, 0x1c, 0xa4, 0xdf, 0xbf, 0x04, 0x48, 0xe9, 0x78, 0x0a, + 0xd6, 0x26, 0x67, 0x96, 0xf7, 0x67, 0x48, 0x88, 0xe0, 0xf4, 0xea, 0xe5, 0x70, 0x4a, 0x19, 0x02, + 0x2b, 0xc9, 0x0b, 0xf9, 0xee, 0x0c, 0x11, 0x0a, 0xa5, 0xef, 0x5f, 0x06, 0x35, 0x19, 0x37, 0x75, + 0xc7, 0xcc, 0x8a, 0x5b, 0x00, 0x9a, 0x19, 0xb7, 0x89, 0xde, 0xfd, 0x19, 0x28, 0xc6, 0x9a, 0xed, + 0xce, 0xac, 0xa0, 0x73, 0xc8, 0x94, 0x33, 0x96, 0xd6, 0xe3, 0xf4, 0xf9, 0xcf, 0xd9, 0xad, 0x6e, + 0x3c, 0xbe, 0xf8, 0x77, 0x39, 0x73, 0xf1, 0xa2, 0x9c, 0xfd, 0xea, 0x45, 0x39, 0xfb, 0xaf, 0x17, + 0xe5, 0xec, 0x1f, 0x5f, 0x96, 0x33, 0x5f, 0xbd, 0x2c, 0x67, 0xfe, 0xf9, 0xb2, 0x9c, 0xf9, 0xe5, + 0xbe, 0xed, 0xd0, 0xde, 0xb0, 0xcd, 0x9e, 0x51, 0x35, 0x87, 0x9f, 0x9d, 0x07, 0x7d, 0xab, 0x4d, + 0x6a, 0x4f, 0x8e, 0xf9, 0x6f, 0x25, 0xcf, 0x82, 0x5f, 0x4b, 0xf8, 0x4f, 0x25, 0xed, 0x05, 0xfe, + 0x5b, 0xc9, 0x07, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xd0, 0xe1, 0x27, 0x1b, 0x15, 0x1a, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1080,6 +1186,8 @@ type MsgClient interface { InitiateTokenDeposit(ctx context.Context, in *MsgInitiateTokenDeposit, opts ...grpc.CallOption) (*MsgInitiateTokenDepositResponse, error) // FinalizeTokenWithdrawal defines a user facing l2 => l1 token transfer interface. FinalizeTokenWithdrawal(ctx context.Context, in *MsgFinalizeTokenWithdrawal, opts ...grpc.CallOption) (*MsgFinalizeTokenWithdrawalResponse, error) + // ForceTokenWithdrwal defines a force token withdrawal interface. + ForceTokenWithdrwal(ctx context.Context, in *MsgForceTokenWithdrawal, opts ...grpc.CallOption) (*MsgForceTokenWithdrawalResponse, error) // UpdateProposer defines a rpc handler method for MsgUpdateProposer. UpdateProposer(ctx context.Context, in *MsgUpdateProposer, opts ...grpc.CallOption) (*MsgUpdateProposerResponse, error) // UpdateChallengers defines a rpc handler method for MsgUpdateChallengers. @@ -1155,6 +1263,15 @@ func (c *msgClient) FinalizeTokenWithdrawal(ctx context.Context, in *MsgFinalize return out, nil } +func (c *msgClient) ForceTokenWithdrwal(ctx context.Context, in *MsgForceTokenWithdrawal, opts ...grpc.CallOption) (*MsgForceTokenWithdrawalResponse, error) { + out := new(MsgForceTokenWithdrawalResponse) + err := c.cc.Invoke(ctx, "/opinit.ophost.v1.Msg/ForceTokenWithdrwal", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *msgClient) UpdateProposer(ctx context.Context, in *MsgUpdateProposer, opts ...grpc.CallOption) (*MsgUpdateProposerResponse, error) { out := new(MsgUpdateProposerResponse) err := c.cc.Invoke(ctx, "/opinit.ophost.v1.Msg/UpdateProposer", in, out, opts...) @@ -1214,6 +1331,8 @@ type MsgServer interface { InitiateTokenDeposit(context.Context, *MsgInitiateTokenDeposit) (*MsgInitiateTokenDepositResponse, error) // FinalizeTokenWithdrawal defines a user facing l2 => l1 token transfer interface. FinalizeTokenWithdrawal(context.Context, *MsgFinalizeTokenWithdrawal) (*MsgFinalizeTokenWithdrawalResponse, error) + // ForceTokenWithdrwal defines a force token withdrawal interface. + ForceTokenWithdrwal(context.Context, *MsgForceTokenWithdrawal) (*MsgForceTokenWithdrawalResponse, error) // UpdateProposer defines a rpc handler method for MsgUpdateProposer. UpdateProposer(context.Context, *MsgUpdateProposer) (*MsgUpdateProposerResponse, error) // UpdateChallengers defines a rpc handler method for MsgUpdateChallengers. @@ -1249,6 +1368,9 @@ func (*UnimplementedMsgServer) InitiateTokenDeposit(ctx context.Context, req *Ms func (*UnimplementedMsgServer) FinalizeTokenWithdrawal(ctx context.Context, req *MsgFinalizeTokenWithdrawal) (*MsgFinalizeTokenWithdrawalResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FinalizeTokenWithdrawal not implemented") } +func (*UnimplementedMsgServer) ForceTokenWithdrwal(ctx context.Context, req *MsgForceTokenWithdrawal) (*MsgForceTokenWithdrawalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ForceTokenWithdrwal not implemented") +} func (*UnimplementedMsgServer) UpdateProposer(ctx context.Context, req *MsgUpdateProposer) (*MsgUpdateProposerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateProposer not implemented") } @@ -1377,6 +1499,24 @@ func _Msg_FinalizeTokenWithdrawal_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _Msg_ForceTokenWithdrwal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgForceTokenWithdrawal) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).ForceTokenWithdrwal(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/opinit.ophost.v1.Msg/ForceTokenWithdrwal", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).ForceTokenWithdrwal(ctx, req.(*MsgForceTokenWithdrawal)) + } + return interceptor(ctx, in, info, handler) +} + func _Msg_UpdateProposer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MsgUpdateProposer) if err := dec(in); err != nil { @@ -1495,6 +1635,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "FinalizeTokenWithdrawal", Handler: _Msg_FinalizeTokenWithdrawal_Handler, }, + { + MethodName: "ForceTokenWithdrwal", + Handler: _Msg_ForceTokenWithdrwal_Handler, + }, { MethodName: "UpdateProposer", Handler: _Msg_UpdateProposer_Handler, @@ -1898,10 +2042,10 @@ func (m *MsgFinalizeTokenWithdrawal) MarshalToSizedBuffer(dAtA []byte) (int, err _ = i var l int _ = l - if len(m.LatestBlockHash) > 0 { - i -= len(m.LatestBlockHash) - copy(dAtA[i:], m.LatestBlockHash) - i = encodeVarintTx(dAtA, i, uint64(len(m.LatestBlockHash))) + if len(m.LastBlockHash) > 0 { + i -= len(m.LastBlockHash) + copy(dAtA[i:], m.LastBlockHash) + i = encodeVarintTx(dAtA, i, uint64(len(m.LastBlockHash))) i-- dAtA[i] = 0x52 } @@ -1993,6 +2137,139 @@ func (m *MsgFinalizeTokenWithdrawalResponse) MarshalToSizedBuffer(dAtA []byte) ( return len(dAtA) - i, nil } +func (m *MsgForceTokenWithdrawal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgForceTokenWithdrawal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgForceTokenWithdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.LastBlockHash) > 0 { + i -= len(m.LastBlockHash) + copy(dAtA[i:], m.LastBlockHash) + i = encodeVarintTx(dAtA, i, uint64(len(m.LastBlockHash))) + i-- + dAtA[i] = 0x62 + } + if len(m.StorageRoot) > 0 { + i -= len(m.StorageRoot) + copy(dAtA[i:], m.StorageRoot) + i = encodeVarintTx(dAtA, i, uint64(len(m.StorageRoot))) + i-- + dAtA[i] = 0x5a + } + if len(m.Version) > 0 { + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintTx(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0x52 + } + { + size, err := m.AppHashProof.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + if len(m.AppHash) > 0 { + i -= len(m.AppHash) + copy(dAtA[i:], m.AppHash) + i = encodeVarintTx(dAtA, i, uint64(len(m.AppHash))) + i-- + dAtA[i] = 0x42 + } + { + size, err := m.CommitmentProof.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + { + size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0x2a + } + if m.L2Sequence != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.L2Sequence)) + i-- + dAtA[i] = 0x20 + } + if m.OutputIndex != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.OutputIndex)) + i-- + dAtA[i] = 0x18 + } + if m.BridgeId != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.BridgeId)) + i-- + dAtA[i] = 0x10 + } + if len(m.Receiver) > 0 { + i -= len(m.Receiver) + copy(dAtA[i:], m.Receiver) + i = encodeVarintTx(dAtA, i, uint64(len(m.Receiver))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgForceTokenWithdrawalResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgForceTokenWithdrawalResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgForceTokenWithdrawalResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func (m *MsgUpdateProposer) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2570,7 +2847,7 @@ func (m *MsgFinalizeTokenWithdrawal) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } - l = len(m.LatestBlockHash) + l = len(m.LastBlockHash) if l > 0 { n += 1 + l + sovTx(uint64(l)) } @@ -2586,6 +2863,63 @@ func (m *MsgFinalizeTokenWithdrawalResponse) Size() (n int) { return n } +func (m *MsgForceTokenWithdrawal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Receiver) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.BridgeId != 0 { + n += 1 + sovTx(uint64(m.BridgeId)) + } + if m.OutputIndex != 0 { + n += 1 + sovTx(uint64(m.OutputIndex)) + } + if m.L2Sequence != 0 { + n += 1 + sovTx(uint64(m.L2Sequence)) + } + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = m.Amount.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.CommitmentProof.Size() + n += 1 + l + sovTx(uint64(l)) + l = len(m.AppHash) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = m.AppHashProof.Size() + n += 1 + l + sovTx(uint64(l)) + l = len(m.Version) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.StorageRoot) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.LastBlockHash) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgForceTokenWithdrawalResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func (m *MsgUpdateProposer) Size() (n int) { if m == nil { return 0 @@ -4074,7 +4408,7 @@ func (m *MsgFinalizeTokenWithdrawal) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LatestBlockHash", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LastBlockHash", wireType) } var byteLen int for shift := uint(0); ; shift += 7 { @@ -4101,9 +4435,9 @@ func (m *MsgFinalizeTokenWithdrawal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.LatestBlockHash = append(m.LatestBlockHash[:0], dAtA[iNdEx:postIndex]...) - if m.LatestBlockHash == nil { - m.LatestBlockHash = []byte{} + m.LastBlockHash = append(m.LastBlockHash[:0], dAtA[iNdEx:postIndex]...) + if m.LastBlockHash == nil { + m.LastBlockHash = []byte{} } iNdEx = postIndex default: @@ -4177,6 +4511,462 @@ func (m *MsgFinalizeTokenWithdrawalResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgForceTokenWithdrawal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgForceTokenWithdrawal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgForceTokenWithdrawal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Receiver", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Receiver = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BridgeId", wireType) + } + m.BridgeId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BridgeId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OutputIndex", wireType) + } + m.OutputIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OutputIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field L2Sequence", wireType) + } + m.L2Sequence = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.L2Sequence |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CommitmentProof", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.CommitmentProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...) + if m.AppHash == nil { + m.AppHash = []byte{} + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppHashProof", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.AppHashProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = append(m.Version[:0], dAtA[iNdEx:postIndex]...) + if m.Version == nil { + m.Version = []byte{} + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StorageRoot", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StorageRoot = append(m.StorageRoot[:0], dAtA[iNdEx:postIndex]...) + if m.StorageRoot == nil { + m.StorageRoot = []byte{} + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastBlockHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.LastBlockHash = append(m.LastBlockHash[:0], dAtA[iNdEx:postIndex]...) + if m.LastBlockHash == nil { + m.LastBlockHash = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgForceTokenWithdrawalResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgForceTokenWithdrawalResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgForceTokenWithdrawalResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *MsgUpdateProposer) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/x/ophost/types/tx_test.go b/x/ophost/types/tx_test.go new file mode 100644 index 00000000..00232fbc --- /dev/null +++ b/x/ophost/types/tx_test.go @@ -0,0 +1,137 @@ +package types + +import ( + "bytes" + "testing" + + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + "github.com/stretchr/testify/require" + + "github.com/cosmos/cosmos-sdk/codec/address" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func TestMsgRecordBatch_Validate(t *testing.T) { + ac := address.NewBech32Codec("init") + addr, err := ac.BytesToString(bytes.Repeat([]byte{1}, 20)) + require.NoError(t, err) + + // Valid input + validMsg := NewMsgRecordBatch(addr, 123, bytes.Repeat([]byte{1}, 32)) + require.NoError(t, validMsg.Validate(ac)) + + // Empty submitter + invalidMsg := NewMsgRecordBatch("", 123, bytes.Repeat([]byte{1}, 32)) + require.Error(t, invalidMsg.Validate(ac)) + + // Empty batch bytes + invalidMsg = NewMsgRecordBatch(addr, 123, nil) + require.Error(t, invalidMsg.Validate(ac)) +} + +func TestMsgForceTokenWithdrawal(t *testing.T) { + ac := address.NewBech32Codec("init") + addr, err := ac.BytesToString(bytes.Repeat([]byte{1}, 20)) + require.NoError(t, err) + + // Valid input + validMsg := NewMsgForceTokenWithdrawal( + 123, 456, + 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, + bytes.Repeat([]byte{1}, 32), + v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, + byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + ) + require.NoError(t, validMsg.Validate(ac)) + + // Empty app hash + invalidMsg := NewMsgForceTokenWithdrawal( + 123, 456, + 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, + nil, + v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, + byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + ) + require.Error(t, invalidMsg.Validate(ac)) + + // Empty sender + invalidMsg = NewMsgForceTokenWithdrawal( + 123, 456, + 1, "", addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, + bytes.Repeat([]byte{1}, 32), + v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, + byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + ) + require.Error(t, invalidMsg.Validate(ac)) + + // Empty receiver + invalidMsg = NewMsgForceTokenWithdrawal( + 123, 456, + 1, addr, "", sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, + bytes.Repeat([]byte{1}, 32), + v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, + byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + ) + require.Error(t, invalidMsg.Validate(ac)) + + // Empty amount + invalidMsg = NewMsgForceTokenWithdrawal( + 123, 456, + 1, addr, addr, sdk.NewInt64Coin("test", 0), v1.ProofOps{Ops: []v1.ProofOp{{}}}, + bytes.Repeat([]byte{1}, 32), + v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, + byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + ) + require.Error(t, invalidMsg.Validate(ac)) + + // Invalid version + invalidMsg = NewMsgForceTokenWithdrawal( + 123, 456, + 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, + bytes.Repeat([]byte{1}, 32), + v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, + byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + ) + invalidMsg.Version = []byte{1, 2} + require.Error(t, invalidMsg.Validate(ac)) + + // Empty storage root + invalidMsg = NewMsgForceTokenWithdrawal( + 123, 456, + 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, + bytes.Repeat([]byte{1}, 32), + v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, + byte(1), nil, bytes.Repeat([]byte{1}, 32), + ) + require.Error(t, invalidMsg.Validate(ac)) + + // Empty latest block hash + invalidMsg = NewMsgForceTokenWithdrawal( + 123, 456, + 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, + bytes.Repeat([]byte{1}, 32), + v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, + byte(1), bytes.Repeat([]byte{1}, 32), nil, + ) + require.Error(t, invalidMsg.Validate(ac)) + + // Empty commitment proof + invalidMsg = NewMsgForceTokenWithdrawal( + 123, 456, + 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{}}, + bytes.Repeat([]byte{1}, 32), + v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, + byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + ) + require.Error(t, invalidMsg.Validate(ac)) + + // Empty l2 sequence + invalidMsg = NewMsgForceTokenWithdrawal( + 123, 456, + 0, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, + bytes.Repeat([]byte{1}, 32), + v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, + byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + ) + require.Error(t, invalidMsg.Validate(ac)) +} diff --git a/x/ophost/types/types.pb.go b/x/ophost/types/types.pb.go index c90d3bdb..d06010fc 100644 --- a/x/ophost/types/types.pb.go +++ b/x/ophost/types/types.pb.go @@ -332,62 +332,62 @@ func init() { func init() { proto.RegisterFile("opinit/ophost/v1/types.proto", fileDescriptor_29cadbd84ee898dd) } var fileDescriptor_29cadbd84ee898dd = []byte{ - // 868 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x6f, 0xdb, 0x36, - 0x14, 0x37, 0x53, 0xcf, 0x8d, 0xe9, 0x64, 0x4d, 0x99, 0x76, 0x55, 0xbc, 0x4e, 0x36, 0x0c, 0x6c, - 0x30, 0x8a, 0x46, 0x82, 0xbd, 0x3f, 0x87, 0xee, 0x14, 0x39, 0x2e, 0x6a, 0x60, 0x73, 0x0d, 0xc5, - 0x43, 0xb1, 0x5d, 0x04, 0xca, 0xa6, 0x65, 0x22, 0x92, 0x28, 0x90, 0x74, 0xb0, 0x74, 0xdf, 0x60, - 0xa7, 0x02, 0xbb, 0x74, 0xb7, 0xee, 0x56, 0xec, 0xd4, 0xc3, 0x3e, 0x44, 0x8e, 0xc5, 0x4e, 0x3b, - 0xb5, 0x5b, 0x72, 0xe8, 0xb0, 0x4f, 0x31, 0x90, 0xa2, 0x1d, 0xb5, 0x0d, 0x8a, 0x61, 0x17, 0x9b, - 0x7c, 0xbf, 0xdf, 0x7b, 0xbf, 0xc7, 0xf7, 0x1e, 0x29, 0x78, 0x93, 0x65, 0x34, 0xa5, 0xd2, 0x65, - 0xd9, 0x9c, 0x09, 0xe9, 0x1e, 0x75, 0x5c, 0x79, 0x9c, 0x11, 0xe1, 0x64, 0x9c, 0x49, 0x86, 0xb6, - 0x72, 0xd4, 0xc9, 0x51, 0xe7, 0xa8, 0x53, 0xbf, 0x8a, 0x13, 0x9a, 0x32, 0x57, 0xff, 0xe6, 0xa4, - 0xba, 0x3d, 0x61, 0x22, 0x61, 0xc2, 0x0d, 0xb1, 0x20, 0xee, 0x51, 0x27, 0x24, 0x12, 0x77, 0xdc, - 0x09, 0xa3, 0xa9, 0xc1, 0x77, 0x72, 0x3c, 0xd0, 0x3b, 0x37, 0xdf, 0x18, 0xe8, 0x5a, 0xc4, 0x22, - 0x96, 0xdb, 0xd5, 0xca, 0x58, 0x1b, 0x11, 0x63, 0x51, 0x4c, 0x5c, 0xbd, 0x0b, 0x17, 0x33, 0x57, - 0xd2, 0x84, 0x08, 0x89, 0x93, 0x6c, 0xa9, 0xf8, 0x26, 0x61, 0xba, 0xe0, 0x58, 0x52, 0x66, 0x14, - 0x5b, 0xbf, 0x00, 0x58, 0x19, 0x61, 0x8e, 0x13, 0x81, 0x7e, 0x80, 0x5b, 0x9c, 0x44, 0x54, 0xc8, - 0x9c, 0x10, 0xcc, 0x08, 0xb1, 0x40, 0xf3, 0x52, 0xbb, 0xd6, 0xdd, 0x71, 0x4c, 0x2a, 0x2a, 0x6f, - 0xc7, 0xe4, 0xed, 0xf4, 0x18, 0x4d, 0xbd, 0xcf, 0x4f, 0x5e, 0x34, 0x4a, 0xbf, 0xbe, 0x6c, 0xb4, - 0x23, 0x2a, 0xe7, 0x8b, 0xd0, 0x99, 0xb0, 0xc4, 0xe4, 0x6d, 0xfe, 0x76, 0xc5, 0xf4, 0xd0, 0x14, - 0x4a, 0x39, 0x88, 0xa7, 0xaf, 0x9e, 0xdd, 0x02, 0xfe, 0x95, 0xa2, 0xd2, 0x5d, 0x42, 0xee, 0xd4, - 0x1f, 0x3f, 0x69, 0x94, 0xfe, 0x7e, 0xd2, 0x00, 0x3f, 0xbe, 0x7a, 0x76, 0x6b, 0xd3, 0x94, 0x38, - 0x4f, 0xac, 0xf5, 0x53, 0x19, 0x6e, 0x78, 0x9c, 0x4e, 0x23, 0xd2, 0x63, 0xe9, 0x8c, 0x46, 0xe8, - 0x0e, 0xac, 0x4d, 0xe6, 0x38, 0x8e, 0x49, 0x1a, 0x11, 0x2e, 0x74, 0x92, 0x55, 0xcf, 0xfa, 0xfd, - 0xb7, 0xdd, 0x6b, 0x26, 0xcf, 0xbd, 0xe9, 0x94, 0x13, 0x21, 0x0e, 0x24, 0xa7, 0x69, 0xe4, 0x17, - 0xc9, 0xe8, 0x33, 0xb8, 0x9e, 0x71, 0x96, 0x31, 0x41, 0xb8, 0xb5, 0xd6, 0x04, 0xef, 0x74, 0x5c, - 0x31, 0x51, 0x1f, 0xc2, 0x10, 0xcb, 0xc9, 0x3c, 0xa0, 0xe9, 0x8c, 0x59, 0x97, 0x9a, 0xa0, 0x5d, - 0xeb, 0x7e, 0xe8, 0xbc, 0xd9, 0x72, 0xc7, 0x53, 0x9c, 0x41, 0x3a, 0x63, 0x5e, 0x55, 0xd5, 0x25, - 0x3f, 0x6b, 0x35, 0x5c, 0x5a, 0xd1, 0x43, 0xb8, 0x2d, 0x16, 0x61, 0x42, 0x85, 0x50, 0x05, 0xa6, - 0xa9, 0x24, 0xfc, 0x08, 0xc7, 0x56, 0x59, 0xc7, 0xdb, 0x71, 0xf2, 0x5e, 0x39, 0xcb, 0x5e, 0x39, - 0xfb, 0xa6, 0x57, 0x9e, 0xa3, 0xa2, 0xfd, 0xf3, 0xa2, 0xf1, 0xd1, 0x05, 0xde, 0xb7, 0x59, 0x42, - 0x25, 0x49, 0x32, 0x79, 0xfc, 0xf8, 0x65, 0x03, 0xe4, 0x92, 0xe8, 0x9c, 0x37, 0x30, 0x34, 0xa5, - 0x3d, 0xa3, 0x29, 0x8e, 0xe9, 0xc3, 0xbc, 0xbd, 0x19, 0xe1, 0x94, 0x4d, 0xad, 0xf7, 0xfe, 0xb3, - 0xf6, 0x05, 0xde, 0x17, 0x6a, 0x17, 0x79, 0x23, 0x4d, 0x43, 0x5f, 0xc0, 0x1b, 0x85, 0xcc, 0x85, - 0xc4, 0x5c, 0x06, 0x73, 0x42, 0xa3, 0xb9, 0xb4, 0x2a, 0x4d, 0xd0, 0x2e, 0xfb, 0xd7, 0xcf, 0xe1, - 0x03, 0x85, 0xde, 0xd3, 0x20, 0xaa, 0xc3, 0xf5, 0x84, 0x48, 0x3c, 0xc5, 0x12, 0x5b, 0x97, 0x9b, - 0xa0, 0xbd, 0xe1, 0xaf, 0xf6, 0xad, 0x13, 0x00, 0xab, 0xab, 0x7a, 0xa3, 0x9b, 0xb0, 0xaa, 0x43, - 0x48, 0x49, 0xb8, 0x05, 0x54, 0x5f, 0xfd, 0x73, 0x03, 0xda, 0x87, 0x70, 0x32, 0xc7, 0x34, 0x0d, - 0xd4, 0x20, 0xea, 0xb6, 0xbf, 0xdf, 0xfd, 0xf8, 0x1d, 0xed, 0x73, 0x7a, 0x8a, 0x3d, 0x3e, 0xce, - 0x88, 0x5f, 0x9d, 0x2c, 0x97, 0xad, 0x07, 0xb0, 0xba, 0xb2, 0xa3, 0x3a, 0xfc, 0xa0, 0x77, 0x6f, - 0x6f, 0x30, 0x0c, 0xc6, 0xdf, 0x8e, 0xfa, 0xc1, 0x37, 0xc3, 0x83, 0x51, 0xbf, 0x37, 0xb8, 0x3b, - 0xe8, 0xef, 0x6f, 0x95, 0xd0, 0x75, 0x78, 0xb5, 0x80, 0x0d, 0x86, 0x83, 0xf1, 0x60, 0x6f, 0x0b, - 0xa0, 0x1b, 0x70, 0xbb, 0x60, 0xee, 0xf5, 0xbf, 0xea, 0x1f, 0x28, 0x60, 0xad, 0xb5, 0x07, 0xab, - 0x63, 0x76, 0x48, 0xd2, 0x11, 0xa6, 0x1c, 0xed, 0xc0, 0xf5, 0xb8, 0x13, 0x4c, 0x49, 0xca, 0x12, - 0x73, 0x90, 0xcb, 0x71, 0x67, 0x5f, 0x6d, 0x35, 0xd4, 0x35, 0xd0, 0x9a, 0x81, 0xba, 0x1a, 0x52, - 0xd5, 0xa8, 0xdc, 0x5f, 0xc8, 0x6c, 0x21, 0x51, 0x03, 0xd6, 0x98, 0x5e, 0x05, 0x9c, 0x31, 0xa9, - 0x63, 0x6c, 0xf8, 0x30, 0x37, 0xf9, 0x8c, 0x49, 0xf4, 0x09, 0xbc, 0x12, 0x77, 0x82, 0x30, 0x66, - 0x93, 0xc3, 0x20, 0x5d, 0x24, 0xa1, 0xb9, 0x09, 0x65, 0x7f, 0x33, 0xee, 0x78, 0xca, 0x3a, 0xd4, - 0x46, 0xf4, 0x35, 0xdc, 0x5c, 0xf1, 0xd4, 0xbb, 0x62, 0xe6, 0xbe, 0xfe, 0xd6, 0xac, 0x8c, 0x97, - 0x8f, 0x8e, 0xb7, 0xa9, 0x86, 0xe5, 0xd1, 0x6a, 0x16, 0x6a, 0x26, 0xa0, 0x22, 0x68, 0xd9, 0xee, - 0xeb, 0xb2, 0x65, 0x23, 0xdb, 0x2d, 0xc8, 0xb6, 0x7e, 0x06, 0x70, 0x7b, 0xd5, 0x89, 0x07, 0x54, - 0xce, 0xcd, 0xb9, 0x5e, 0xbf, 0x83, 0xe0, 0xff, 0xde, 0xc1, 0x2f, 0x61, 0x25, 0xaf, 0x85, 0x3e, - 0x74, 0xad, 0x6b, 0xbd, 0x1d, 0x22, 0x17, 0x2c, 0xfa, 0x1b, 0x17, 0x6f, 0x78, 0xf2, 0x97, 0x5d, - 0x7a, 0x7a, 0x6a, 0x83, 0x93, 0x53, 0x1b, 0x3c, 0x3f, 0xb5, 0xc1, 0x9f, 0xa7, 0x36, 0x78, 0x74, - 0x66, 0x97, 0x9e, 0x9f, 0xd9, 0xa5, 0x3f, 0xce, 0xec, 0xd2, 0x77, 0xb7, 0x0b, 0x0f, 0xa1, 0x0a, - 0x4b, 0xf1, 0x6e, 0x8c, 0x43, 0xe1, 0xde, 0x1f, 0xe9, 0x8f, 0xc7, 0xf7, 0xcb, 0xcf, 0x87, 0x7e, - 0x12, 0xc3, 0x8a, 0xae, 0xe1, 0xa7, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x1a, 0x31, 0x44, 0xf1, - 0x5c, 0x06, 0x00, 0x00, + // 869 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x6f, 0x1b, 0x45, + 0x14, 0xf7, 0xa4, 0xc6, 0x8d, 0xc7, 0x09, 0x4d, 0x27, 0x2d, 0xdd, 0x98, 0xb2, 0xb6, 0x2c, 0x81, + 0xac, 0xaa, 0xd9, 0x95, 0xcd, 0x9f, 0x43, 0x39, 0x65, 0x1d, 0x57, 0xb5, 0x04, 0xae, 0xb5, 0x31, + 0xaa, 0xe0, 0xb2, 0x9a, 0xb5, 0xc7, 0xeb, 0x51, 0x76, 0x77, 0x56, 0x3b, 0xe3, 0x88, 0x94, 0x6f, + 0xc0, 0xa9, 0x12, 0x97, 0x72, 0x2b, 0xb7, 0x8a, 0x53, 0x0f, 0x7c, 0x88, 0x1c, 0x2b, 0x4e, 0x9c, + 0x5a, 0x48, 0x0e, 0x45, 0x7c, 0x0a, 0x34, 0x7f, 0xec, 0x6c, 0xdb, 0xa8, 0x42, 0x5c, 0xec, 0x99, + 0xf7, 0xfb, 0xbd, 0xf7, 0x7b, 0xf3, 0xde, 0x9b, 0x59, 0x78, 0x93, 0x65, 0x34, 0xa5, 0xc2, 0x65, + 0xd9, 0x9c, 0x71, 0xe1, 0x1e, 0x75, 0x5c, 0x71, 0x9c, 0x11, 0xee, 0x64, 0x39, 0x13, 0x0c, 0x6d, + 0x69, 0xd4, 0xd1, 0xa8, 0x73, 0xd4, 0xa9, 0x5f, 0xc5, 0x09, 0x4d, 0x99, 0xab, 0x7e, 0x35, 0xa9, + 0x6e, 0x4f, 0x18, 0x4f, 0x18, 0x77, 0x43, 0xcc, 0x89, 0x7b, 0xd4, 0x09, 0x89, 0xc0, 0x1d, 0x77, + 0xc2, 0x68, 0x6a, 0xf0, 0x1d, 0x8d, 0x07, 0x6a, 0xe7, 0xea, 0x8d, 0x81, 0xae, 0x45, 0x2c, 0x62, + 0xda, 0x2e, 0x57, 0xcb, 0x80, 0x11, 0x63, 0x51, 0x4c, 0x5c, 0xb5, 0x0b, 0x17, 0x33, 0x77, 0xba, + 0xc8, 0xb1, 0xa0, 0x6c, 0x19, 0xb0, 0xf1, 0x26, 0x2e, 0x68, 0x42, 0xb8, 0xc0, 0x49, 0xa6, 0x09, + 0xad, 0x5f, 0x00, 0xac, 0x8c, 0x70, 0x8e, 0x13, 0x8e, 0x7e, 0x80, 0x5b, 0x39, 0x89, 0x28, 0x17, + 0x3a, 0x42, 0x30, 0x23, 0xc4, 0x02, 0xcd, 0x4b, 0xed, 0x5a, 0x77, 0xc7, 0x31, 0xa9, 0xc8, 0xbc, + 0x1d, 0x93, 0xb7, 0xd3, 0x63, 0x34, 0xf5, 0x3e, 0x3f, 0x79, 0xd1, 0x28, 0xfd, 0xfa, 0xb2, 0xd1, + 0x8e, 0xa8, 0x98, 0x2f, 0x42, 0x67, 0xc2, 0x12, 0x93, 0xb7, 0xf9, 0xdb, 0xe5, 0xd3, 0x43, 0x53, + 0x28, 0xe9, 0xc0, 0x9f, 0xbe, 0x7a, 0x76, 0x0b, 0xf8, 0x57, 0x8a, 0x4a, 0x77, 0x09, 0xb9, 0x53, + 0x7f, 0xfc, 0xa4, 0x51, 0xfa, 0xfb, 0x49, 0x03, 0xfc, 0xf8, 0xea, 0xd9, 0xad, 0x4d, 0x53, 0x62, + 0x9d, 0x58, 0xeb, 0xa7, 0x32, 0xdc, 0xf0, 0x72, 0x3a, 0x8d, 0x48, 0x8f, 0xa5, 0x33, 0x1a, 0xa1, + 0x3b, 0xb0, 0x36, 0x99, 0xe3, 0x38, 0x26, 0x69, 0x44, 0x72, 0xae, 0x92, 0xac, 0x7a, 0xd6, 0xef, + 0xbf, 0xed, 0x5e, 0x33, 0x79, 0xee, 0x4d, 0xa7, 0x39, 0xe1, 0xfc, 0x40, 0xe4, 0x34, 0x8d, 0xfc, + 0x22, 0x19, 0x7d, 0x06, 0xd7, 0xb3, 0x9c, 0x65, 0x8c, 0x93, 0xdc, 0x5a, 0x6b, 0x82, 0x77, 0x3a, + 0xae, 0x98, 0xa8, 0x0f, 0x61, 0x88, 0xc5, 0x64, 0x1e, 0xd0, 0x74, 0xc6, 0xac, 0x4b, 0x4d, 0xd0, + 0xae, 0x75, 0x3f, 0x74, 0xde, 0x6c, 0xb9, 0xe3, 0x49, 0xce, 0x20, 0x9d, 0x31, 0xaf, 0x2a, 0xeb, + 0xa2, 0xcf, 0x5a, 0x0d, 0x97, 0x56, 0xf4, 0x10, 0x6e, 0xf3, 0x45, 0x98, 0x50, 0xce, 0x65, 0x81, + 0x69, 0x2a, 0x48, 0x7e, 0x84, 0x63, 0xab, 0xac, 0xe2, 0xed, 0x38, 0xba, 0x59, 0xce, 0xb2, 0x59, + 0xce, 0xbe, 0x69, 0xa6, 0xe7, 0xc8, 0x68, 0xff, 0xbc, 0x68, 0x7c, 0x74, 0x81, 0xf7, 0x6d, 0x96, + 0x50, 0x41, 0x92, 0x4c, 0x1c, 0x3f, 0x7e, 0xd9, 0x00, 0x5a, 0x12, 0x9d, 0xf3, 0x06, 0x86, 0x26, + 0xb5, 0x67, 0x34, 0xc5, 0x31, 0x7d, 0xa8, 0xdb, 0x9b, 0x91, 0x9c, 0xb2, 0xa9, 0xf5, 0xde, 0x7f, + 0xd6, 0xbe, 0xc0, 0xfb, 0x42, 0xed, 0x22, 0x6f, 0xa4, 0x68, 0xe8, 0x0b, 0x78, 0xa3, 0x90, 0x39, + 0x17, 0x38, 0x17, 0xc1, 0x9c, 0xd0, 0x68, 0x2e, 0xac, 0x4a, 0x13, 0xb4, 0xcb, 0xfe, 0xf5, 0x73, + 0xf8, 0x40, 0xa2, 0xf7, 0x14, 0x88, 0xea, 0x70, 0x3d, 0x21, 0x02, 0x4f, 0xb1, 0xc0, 0xd6, 0xe5, + 0x26, 0x68, 0x6f, 0xf8, 0xab, 0x7d, 0xeb, 0x04, 0xc0, 0xea, 0xaa, 0xde, 0xe8, 0x26, 0xac, 0xaa, + 0x10, 0x42, 0x90, 0xdc, 0x02, 0xb2, 0xaf, 0xfe, 0xb9, 0x01, 0xed, 0x43, 0x38, 0x99, 0x63, 0x9a, + 0x06, 0x72, 0x10, 0x55, 0xdb, 0xdf, 0xef, 0x7e, 0xfc, 0x8e, 0xf6, 0x39, 0x3d, 0xc9, 0x1e, 0x1f, + 0x67, 0xc4, 0xaf, 0x4e, 0x96, 0xcb, 0xd6, 0x03, 0x58, 0x5d, 0xd9, 0x51, 0x1d, 0x7e, 0xd0, 0xbb, + 0xb7, 0x37, 0x18, 0x06, 0xe3, 0x6f, 0x47, 0xfd, 0xe0, 0x9b, 0xe1, 0xc1, 0xa8, 0xdf, 0x1b, 0xdc, + 0x1d, 0xf4, 0xf7, 0xb7, 0x4a, 0xe8, 0x3a, 0xbc, 0x5a, 0xc0, 0x06, 0xc3, 0xc1, 0x78, 0xb0, 0xb7, + 0x05, 0xd0, 0x0d, 0xb8, 0x5d, 0x30, 0xf7, 0xfa, 0x5f, 0xf5, 0x0f, 0x24, 0xb0, 0xd6, 0xda, 0x83, + 0xd5, 0x31, 0x3b, 0x24, 0xe9, 0x08, 0xd3, 0x1c, 0xed, 0xc0, 0xf5, 0xb8, 0x13, 0x4c, 0x49, 0xca, + 0x12, 0x73, 0x90, 0xcb, 0x71, 0x67, 0x5f, 0x6e, 0x15, 0xd4, 0x35, 0xd0, 0x9a, 0x81, 0xba, 0x0a, + 0x92, 0xd5, 0xa8, 0xdc, 0x5f, 0x88, 0x6c, 0x21, 0x50, 0x03, 0xd6, 0x98, 0x5a, 0x05, 0x39, 0x63, + 0x42, 0xc5, 0xd8, 0xf0, 0xa1, 0x36, 0xf9, 0x8c, 0x09, 0xf4, 0x09, 0xbc, 0x12, 0x77, 0x82, 0x30, + 0x66, 0x93, 0xc3, 0x20, 0x5d, 0x24, 0xa1, 0xb9, 0x09, 0x65, 0x7f, 0x33, 0xee, 0x78, 0xd2, 0x3a, + 0x54, 0x46, 0xf4, 0x35, 0xdc, 0x5c, 0xf1, 0xe4, 0xbb, 0x61, 0xe6, 0xbe, 0xfe, 0xd6, 0xac, 0x8c, + 0x97, 0x8f, 0x8a, 0xb7, 0x29, 0x87, 0xe5, 0xd1, 0x6a, 0x16, 0x6a, 0x26, 0xa0, 0x24, 0x28, 0xd9, + 0xee, 0xeb, 0xb2, 0x65, 0x23, 0xdb, 0x2d, 0xc8, 0xb6, 0x7e, 0x06, 0x70, 0x7b, 0xd5, 0x89, 0x07, + 0x54, 0xcc, 0xcd, 0xb9, 0x5e, 0xbf, 0x83, 0xe0, 0xff, 0xde, 0xc1, 0x2f, 0x61, 0x45, 0xd7, 0x42, + 0x1d, 0xba, 0xd6, 0xb5, 0xde, 0x0e, 0xa1, 0x05, 0x8b, 0xfe, 0xc6, 0xc5, 0x1b, 0x9e, 0xfc, 0x65, + 0x97, 0x9e, 0x9e, 0xda, 0xe0, 0xe4, 0xd4, 0x06, 0xcf, 0x4f, 0x6d, 0xf0, 0xe7, 0xa9, 0x0d, 0x1e, + 0x9d, 0xd9, 0xa5, 0xe7, 0x67, 0x76, 0xe9, 0x8f, 0x33, 0xbb, 0xf4, 0xdd, 0xed, 0xc2, 0x43, 0x28, + 0xc3, 0x52, 0xbc, 0x1b, 0xe3, 0x90, 0xbb, 0xf7, 0x47, 0xea, 0xe3, 0xf1, 0xfd, 0xf2, 0xf3, 0xa1, + 0x9e, 0xc4, 0xb0, 0xa2, 0x6a, 0xf8, 0xe9, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x90, 0xeb, + 0xf1, 0x5c, 0x06, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { From 8c0ab6399b0309462d034e0357c96158a60a9987 Mon Sep 17 00:00:00 2001 From: beer-1 Date: Wed, 28 Aug 2024 16:45:56 +0900 Subject: [PATCH 02/16] tidy --- api/go.sum | 10 ++++++++++ go.sum | 2 ++ 2 files changed, 12 insertions(+) diff --git a/api/go.sum b/api/go.sum index 71a81894..76ee24a5 100644 --- a/api/go.sum +++ b/api/go.sum @@ -3,18 +3,28 @@ buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fed buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 h1:b7EEYTUHmWSBEyISHlHvXbJPqtKiHRuUignL1tsHnNQ= buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2/go.mod h1:HqcXMSa5qnNuakaMUo+hWhF51mKbcrZxGl9Vp5EeJXc= cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= +cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= github.com/cosmos/gogoproto v1.5.0 h1:SDVwzEqZDDBoslaeZg+dGE55hdzHfgUA40pEanMh52o= +github.com/cosmos/gogoproto v1.5.0/go.mod h1:iUM31aofn3ymidYG6bUR5ZFrk+Om8p5s754eMUcyp8I= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= +golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5 h1:SbSDUWW1PAO24TNpLdeheoYPd7kllICcLU52x6eD4kQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= +google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= diff --git a/go.sum b/go.sum index 07e3ef60..040e847b 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 h1:90/4O5QkHb8EZdA2SAhueRzYw6u5ZHCPKtReFqshnTY= +buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2/go.mod h1:1+3gJj2NvZ1mTLAtHu+lMhOjGgQPiCKCeo+9MBww0Eo= buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 h1:b7EEYTUHmWSBEyISHlHvXbJPqtKiHRuUignL1tsHnNQ= +buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2/go.mod h1:HqcXMSa5qnNuakaMUo+hWhF51mKbcrZxGl9Vp5EeJXc= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= From 9d34042e730c8ddd78d3002459a00f83524d1bf9 Mon Sep 17 00:00:00 2001 From: beer-1 Date: Wed, 28 Aug 2024 22:37:02 +0900 Subject: [PATCH 03/16] finalize impl --- api/opinit/ophost/v1/tx.pulsar.go | 572 +++++++++++++-------------- contrib/launchtools/config.go | 4 + go.mod | 6 +- go.sum | 12 +- proto/opinit/ophost/v1/tx.proto | 6 +- specs/l2_output_oracle.md | 2 +- x/opchild/ante/common_test.go | 1 + x/opchild/keeper/commitments.go | 51 ++- x/opchild/keeper/commitments_test.go | 20 +- x/opchild/keeper/common_test.go | 1 + x/opchild/keeper/keeper.go | 37 +- x/opchild/keeper/keeper_test.go | 18 +- x/opchild/keeper/msg_server.go | 4 +- x/opchild/keeper/msg_server_test.go | 2 +- x/opchild/keeper/querier.go | 2 +- x/opchild/types/client.go | 16 +- x/opchild/types/commitments.go | 4 +- x/opchild/types/keys.go | 5 +- x/ophost/client/cli/tx.go | 86 +++- x/ophost/client/cli/tx_test.go | 2 +- x/ophost/client/cli/types.go | 34 +- x/ophost/keeper/msg_server.go | 6 +- x/ophost/keeper/msg_server_test.go | 6 +- x/ophost/types/tx.go | 10 +- x/ophost/types/tx.pb.go | 248 ++++++------ x/ophost/types/tx_test.go | 20 +- 26 files changed, 657 insertions(+), 518 deletions(-) diff --git a/api/opinit/ophost/v1/tx.pulsar.go b/api/opinit/ophost/v1/tx.pulsar.go index a32a8610..f6696a34 100644 --- a/api/opinit/ophost/v1/tx.pulsar.go +++ b/api/opinit/ophost/v1/tx.pulsar.go @@ -6139,7 +6139,7 @@ var ( md_MsgForceTokenWithdrawal protoreflect.MessageDescriptor fd_MsgForceTokenWithdrawal_bridge_id protoreflect.FieldDescriptor fd_MsgForceTokenWithdrawal_output_index protoreflect.FieldDescriptor - fd_MsgForceTokenWithdrawal_l2_sequence protoreflect.FieldDescriptor + fd_MsgForceTokenWithdrawal_sequence protoreflect.FieldDescriptor fd_MsgForceTokenWithdrawal_sender protoreflect.FieldDescriptor fd_MsgForceTokenWithdrawal_receiver protoreflect.FieldDescriptor fd_MsgForceTokenWithdrawal_amount protoreflect.FieldDescriptor @@ -6156,7 +6156,7 @@ func init() { md_MsgForceTokenWithdrawal = File_opinit_ophost_v1_tx_proto.Messages().ByName("MsgForceTokenWithdrawal") fd_MsgForceTokenWithdrawal_bridge_id = md_MsgForceTokenWithdrawal.Fields().ByName("bridge_id") fd_MsgForceTokenWithdrawal_output_index = md_MsgForceTokenWithdrawal.Fields().ByName("output_index") - fd_MsgForceTokenWithdrawal_l2_sequence = md_MsgForceTokenWithdrawal.Fields().ByName("l2_sequence") + fd_MsgForceTokenWithdrawal_sequence = md_MsgForceTokenWithdrawal.Fields().ByName("sequence") fd_MsgForceTokenWithdrawal_sender = md_MsgForceTokenWithdrawal.Fields().ByName("sender") fd_MsgForceTokenWithdrawal_receiver = md_MsgForceTokenWithdrawal.Fields().ByName("receiver") fd_MsgForceTokenWithdrawal_amount = md_MsgForceTokenWithdrawal.Fields().ByName("amount") @@ -6245,9 +6245,9 @@ func (x *fastReflection_MsgForceTokenWithdrawal) Range(f func(protoreflect.Field return } } - if x.L2Sequence != uint64(0) { - value := protoreflect.ValueOfUint64(x.L2Sequence) - if !f(fd_MsgForceTokenWithdrawal_l2_sequence, value) { + if x.Sequence != uint64(0) { + value := protoreflect.ValueOfUint64(x.Sequence) + if !f(fd_MsgForceTokenWithdrawal_sequence, value) { return } } @@ -6324,8 +6324,8 @@ func (x *fastReflection_MsgForceTokenWithdrawal) Has(fd protoreflect.FieldDescri return x.BridgeId != uint64(0) case "opinit.ophost.v1.MsgForceTokenWithdrawal.output_index": return x.OutputIndex != uint64(0) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.l2_sequence": - return x.L2Sequence != uint64(0) + case "opinit.ophost.v1.MsgForceTokenWithdrawal.sequence": + return x.Sequence != uint64(0) case "opinit.ophost.v1.MsgForceTokenWithdrawal.sender": return x.Sender != "" case "opinit.ophost.v1.MsgForceTokenWithdrawal.receiver": @@ -6364,8 +6364,8 @@ func (x *fastReflection_MsgForceTokenWithdrawal) Clear(fd protoreflect.FieldDesc x.BridgeId = uint64(0) case "opinit.ophost.v1.MsgForceTokenWithdrawal.output_index": x.OutputIndex = uint64(0) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.l2_sequence": - x.L2Sequence = uint64(0) + case "opinit.ophost.v1.MsgForceTokenWithdrawal.sequence": + x.Sequence = uint64(0) case "opinit.ophost.v1.MsgForceTokenWithdrawal.sender": x.Sender = "" case "opinit.ophost.v1.MsgForceTokenWithdrawal.receiver": @@ -6406,8 +6406,8 @@ func (x *fastReflection_MsgForceTokenWithdrawal) Get(descriptor protoreflect.Fie case "opinit.ophost.v1.MsgForceTokenWithdrawal.output_index": value := x.OutputIndex return protoreflect.ValueOfUint64(value) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.l2_sequence": - value := x.L2Sequence + case "opinit.ophost.v1.MsgForceTokenWithdrawal.sequence": + value := x.Sequence return protoreflect.ValueOfUint64(value) case "opinit.ophost.v1.MsgForceTokenWithdrawal.sender": value := x.Sender @@ -6460,8 +6460,8 @@ func (x *fastReflection_MsgForceTokenWithdrawal) Set(fd protoreflect.FieldDescri x.BridgeId = value.Uint() case "opinit.ophost.v1.MsgForceTokenWithdrawal.output_index": x.OutputIndex = value.Uint() - case "opinit.ophost.v1.MsgForceTokenWithdrawal.l2_sequence": - x.L2Sequence = value.Uint() + case "opinit.ophost.v1.MsgForceTokenWithdrawal.sequence": + x.Sequence = value.Uint() case "opinit.ophost.v1.MsgForceTokenWithdrawal.sender": x.Sender = value.Interface().(string) case "opinit.ophost.v1.MsgForceTokenWithdrawal.receiver": @@ -6519,8 +6519,8 @@ func (x *fastReflection_MsgForceTokenWithdrawal) Mutable(fd protoreflect.FieldDe panic(fmt.Errorf("field bridge_id of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) case "opinit.ophost.v1.MsgForceTokenWithdrawal.output_index": panic(fmt.Errorf("field output_index of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.l2_sequence": - panic(fmt.Errorf("field l2_sequence of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) + case "opinit.ophost.v1.MsgForceTokenWithdrawal.sequence": + panic(fmt.Errorf("field sequence of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) case "opinit.ophost.v1.MsgForceTokenWithdrawal.sender": panic(fmt.Errorf("field sender of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) case "opinit.ophost.v1.MsgForceTokenWithdrawal.receiver": @@ -6550,7 +6550,7 @@ func (x *fastReflection_MsgForceTokenWithdrawal) NewField(fd protoreflect.FieldD return protoreflect.ValueOfUint64(uint64(0)) case "opinit.ophost.v1.MsgForceTokenWithdrawal.output_index": return protoreflect.ValueOfUint64(uint64(0)) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.l2_sequence": + case "opinit.ophost.v1.MsgForceTokenWithdrawal.sequence": return protoreflect.ValueOfUint64(uint64(0)) case "opinit.ophost.v1.MsgForceTokenWithdrawal.sender": return protoreflect.ValueOfString("") @@ -6648,8 +6648,8 @@ func (x *fastReflection_MsgForceTokenWithdrawal) ProtoMethods() *protoiface.Meth if x.OutputIndex != 0 { n += 1 + runtime.Sov(uint64(x.OutputIndex)) } - if x.L2Sequence != 0 { - n += 1 + runtime.Sov(uint64(x.L2Sequence)) + if x.Sequence != 0 { + n += 1 + runtime.Sov(uint64(x.Sequence)) } l = len(x.Sender) if l > 0 { @@ -6793,8 +6793,8 @@ func (x *fastReflection_MsgForceTokenWithdrawal) ProtoMethods() *protoiface.Meth i-- dAtA[i] = 0x2a } - if x.L2Sequence != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.L2Sequence)) + if x.Sequence != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Sequence)) i-- dAtA[i] = 0x20 } @@ -6904,9 +6904,9 @@ func (x *fastReflection_MsgForceTokenWithdrawal) ProtoMethods() *protoiface.Meth } case 4: if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field L2Sequence", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType) } - x.L2Sequence = 0 + x.Sequence = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -6916,7 +6916,7 @@ func (x *fastReflection_MsgForceTokenWithdrawal) ProtoMethods() *protoiface.Meth } b := dAtA[iNdEx] iNdEx++ - x.L2Sequence |= uint64(b&0x7F) << shift + x.Sequence |= uint64(b&0x7F) << shift if b < 0x80 { break } @@ -13965,7 +13965,7 @@ type MsgForceTokenWithdrawal struct { BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` OutputIndex uint64 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"` // withdrawal commitments and proofs - L2Sequence uint64 `protobuf:"varint,4,opt,name=l2_sequence,json=l2Sequence,proto3" json:"l2_sequence,omitempty"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` Sender string `protobuf:"bytes,5,opt,name=sender,proto3" json:"sender,omitempty"` Receiver string `protobuf:"bytes,1,opt,name=receiver,proto3" json:"receiver,omitempty"` Amount *v1beta1.Coin `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount,omitempty"` @@ -14013,9 +14013,9 @@ func (x *MsgForceTokenWithdrawal) GetOutputIndex() uint64 { return 0 } -func (x *MsgForceTokenWithdrawal) GetL2Sequence() uint64 { +func (x *MsgForceTokenWithdrawal) GetSequence() uint64 { if x != nil { - return x.L2Sequence + return x.Sequence } return 0 } @@ -14837,7 +14837,7 @@ var file_opinit_ophost_v1_tx_proto_rawDesc = []byte{ 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x22, 0x24, 0x0a, 0x22, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, 0x07, 0x0a, 0x17, 0x4d, 0x73, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf8, 0x06, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, @@ -14846,277 +14846,277 @@ var file_opinit_ophost_v1_tx_proto_rawDesc = []byte{ 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x37, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x16, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, - 0x6d, 0x6c, 0x3a, 0x22, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, - 0x52, 0x0a, 0x6c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xf2, 0xde, - 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0xd2, - 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x47, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x2b, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x42, 0x1a, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, - 0x6c, 0x3a, 0x22, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, 0x74, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x70, 0x73, 0x42, - 0x24, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x2e, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x13, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, - 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x52, 0x07, 0x61, - 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x12, 0x63, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x22, 0xc8, 0xde, 0x1f, 0x00, 0xf2, - 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x61, - 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x2c, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x12, 0xf2, 0xde, - 0x1f, 0x0e, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0c, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x42, - 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x1a, - 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x3a, 0x30, 0x82, 0xe7, 0xb0, 0x2a, 0x08, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, 0x6f, 0x70, 0x68, - 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x22, 0x21, 0x0a, 0x1f, 0x4d, - 0x73, 0x67, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x93, - 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, - 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, - 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xf2, 0xde, 0x1f, 0x13, 0x79, - 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x3a, 0x2b, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x22, 0x66, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, - 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xa2, 0x02, 0x0a, - 0x14, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, - 0x6e, 0x67, 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, - 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, + 0x64, 0x65, 0x78, 0x12, 0x2f, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x13, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xf2, 0xde, 0x1f, 0x0f, 0x79, + 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x68, 0x61, 0x6c, - 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x32, 0xf2, - 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, - 0x73, 0x3a, 0x2e, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x12, 0x4d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x1a, 0xc8, 0xde, 0x1f, + 0x00, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x6d, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, + 0x6f, 0x6f, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6d, 0x65, + 0x74, 0x62, 0x66, 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x70, 0x73, 0x42, 0x24, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, + 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x2e, + 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, + 0x42, 0x13, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x70, 0x70, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x22, 0x52, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x12, 0x63, + 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, + 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6f, + 0x66, 0x42, 0x22, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x50, 0x72, + 0x6f, 0x6f, 0x66, 0x12, 0x2c, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0c, 0x42, 0x12, 0xf2, 0xde, 0x1f, 0x0e, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x3a, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, + 0x6c, 0x3a, 0x22, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, + 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x42, 0x0a, + 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x1a, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, + 0x3a, 0x22, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x22, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, + 0x68, 0x3a, 0x30, 0x82, 0xe7, 0xb0, 0x2a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x46, + 0x6f, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x61, 0x6c, 0x22, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, + 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x0c, 0x6e, + 0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2f, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, + 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x3a, + 0x2b, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, + 0xe7, 0xb0, 0x2a, 0x18, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x22, 0x66, 0x0a, 0x19, + 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, + 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0xa2, 0x02, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, + 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, + 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x0f, + 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x32, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, + 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x43, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x2e, 0x82, 0xe7, 0xb0, 0x2a, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x6f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x22, 0x69, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, - 0x73, 0x22, 0x69, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, - 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, - 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xa8, 0x02, 0x0a, - 0x12, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, - 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, - 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x49, 0x64, 0x12, 0x65, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x22, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, - 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x6e, 0x65, 0x77, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x3a, 0x2c, 0x82, 0xe7, 0xb0, 0x2a, 0x09, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x19, 0x6f, 0x70, - 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x67, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, + 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0xa8, 0x02, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x09, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, + 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, + 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, + 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x65, 0x0a, 0x0e, 0x6e, 0x65, + 0x77, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x42, + 0x22, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, + 0x65, 0x77, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x3a, 0x2c, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x19, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0x67, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, + 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, + 0x64, 0x12, 0x40, 0x0a, 0x0e, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x19, 0xf2, 0xde, 0x1f, 0x15, 0x79, + 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x22, 0x52, 0x0d, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x3a, 0x2f, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, + 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4a, 0x0a, 0x09, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, + 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, + 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, + 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x13, 0xf2, 0xde, + 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x2b, 0x82, 0xe7, 0xb0, + 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x66, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, - 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, - 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, - 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, - 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0e, 0x6f, 0x72, 0x61, - 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x19, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x72, 0x61, - 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x52, 0x0d, 0x6f, 0x72, - 0x61, 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x2f, 0x82, 0xe7, 0xb0, - 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1f, 0x0a, 0x1d, - 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf0, 0x01, - 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, - 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, - 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0c, 0x42, 0x13, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x3a, 0x2b, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, - 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x66, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4a, 0x0a, 0x09, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x42, 0x11, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x22, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x29, 0x82, - 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, - 0x2a, 0x16, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x32, 0xe8, 0x09, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x59, 0x0a, 0x0b, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x1a, 0x28, 0x2e, 0x6f, + 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, + 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, + 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x12, 0x43, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x11, 0xf2, 0xde, 0x1f, 0x0d, + 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x29, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x16, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xe8, 0x09, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x12, 0x59, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, + 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x21, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0d, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x22, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, + 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x21, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x14, 0x49, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, + 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x1a, 0x31, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x7d, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, - 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, - 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x14, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x29, 0x2e, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, - 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x17, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, - 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x61, 0x6c, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x13, 0x46, 0x6f, 0x72, 0x63, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x77, 0x61, 0x6c, 0x12, - 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, + 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, - 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, - 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, - 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x6b, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, - 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x12, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x1a, 0x2e, - 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, - 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, - 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x73, 0x0a, 0x13, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x77, 0x61, 0x6c, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x6f, + 0x72, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x61, 0x6c, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x2b, 0x2e, 0x6f, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x11, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x12, 0x26, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, + 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x29, 0x2e, 0x6f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xc2, - 0x01, 0xc8, 0xe1, 0x1e, 0x00, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x4f, - 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x10, 0x4f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x4f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x5c, 0x56, 0x31, 0xe2, - 0x02, 0x1c, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x5c, - 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x12, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x1a, + 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, + 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, + 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xc2, 0x01, 0xc8, 0xe1, 0x1e, 0x00, 0x0a, 0x14, 0x63, + 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, + 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x4f, + 0x58, 0xaa, 0x02, 0x10, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x5c, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, + 0x3a, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/contrib/launchtools/config.go b/contrib/launchtools/config.go index c87ec9be..0b6218f8 100644 --- a/contrib/launchtools/config.go +++ b/contrib/launchtools/config.go @@ -168,6 +168,7 @@ func (opBridge *OpBridge) UnmarshalJSON(data []byte) error { OutputFinalizationPeriod string `json:"output_finalization_period,omitempty"` OutputSubmissionStartHeight uint64 `json:"output_submission_start_height,omitempty"` BatchSubmissionTarget ophosttypes.BatchInfo_ChainType `json:"batch_submission_target,omitempty"` + EnableOracle *bool `json:"enable_oracle,omitempty"` } if err := json.Unmarshal(data, &tmp); err != nil { @@ -194,6 +195,7 @@ func (opBridge *OpBridge) UnmarshalJSON(data []byte) error { opBridge.OutputSubmissionStartHeight = tmp.OutputSubmissionStartHeight opBridge.BatchSubmissionTarget = tmp.BatchSubmissionTarget + opBridge.EnableOracle = tmp.EnableOracle return nil } @@ -204,9 +206,11 @@ func (opBridge OpBridge) MarshalJSON() ([]byte, error) { OutputFinalizationPeriod string `json:"output_finalization_period,omitempty"` OutputSubmissionStartHeight uint64 `json:"output_submission_start_height,omitempty"` BatchSubmissionTarget ophosttypes.BatchInfo_ChainType `json:"batch_submission_target,omitempty"` + EnableOracle *bool `json:"enable_oracle,omitempty"` }{ OutputSubmissionStartHeight: opBridge.OutputSubmissionStartHeight, BatchSubmissionTarget: opBridge.BatchSubmissionTarget, + EnableOracle: opBridge.EnableOracle, } if opBridge.OutputSubmissionInterval != nil { diff --git a/go.mod b/go.mod index 3003bf30..33588757 100644 --- a/go.mod +++ b/go.mod @@ -7,18 +7,18 @@ toolchain go1.22.2 require ( cosmossdk.io/api v0.7.5 cosmossdk.io/collections v0.4.0 - cosmossdk.io/core v0.11.0 + cosmossdk.io/core v0.11.1 cosmossdk.io/errors v1.0.1 cosmossdk.io/log v1.3.1 cosmossdk.io/math v1.3.0 cosmossdk.io/simapp v0.0.0-20231211060251-d8fb76d4c267 cosmossdk.io/store v1.1.0 - cosmossdk.io/x/tx v0.13.3 + cosmossdk.io/x/tx v0.13.4 github.com/cometbft/cometbft v0.38.10 github.com/cometbft/cometbft/api v1.0.0-rc.1 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-proto v1.0.0-beta.5 - github.com/cosmos/cosmos-sdk v0.50.8 + github.com/cosmos/cosmos-sdk v0.50.9 github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogoproto v1.5.0 github.com/cosmos/ibc-go/v8 v8.2.0 diff --git a/go.sum b/go.sum index 040e847b..1fba48d8 100644 --- a/go.sum +++ b/go.sum @@ -192,8 +192,8 @@ cosmossdk.io/client/v2 v2.0.0-beta.1.0.20240124105859-5ad1805d0e79 h1:Hr1t0fCq1n cosmossdk.io/client/v2 v2.0.0-beta.1.0.20240124105859-5ad1805d0e79/go.mod h1:8pN6LSVReNnIxrC2QGcvuIJ/m1pJN6FNYn2kAYtYftI= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= -cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= -cosmossdk.io/core v0.11.0/go.mod h1:LaTtayWBSoacF5xNzoF8tmLhehqlA9z1SWiPuNC6X1w= +cosmossdk.io/core v0.11.1 h1:h9WfBey7NAiFfIcUhDVNS503I2P2HdZLebJlUIs8LPA= +cosmossdk.io/core v0.11.1/go.mod h1:OJzxcdC+RPrgGF8NJZR2uoQr56tc7gfBKhiKeDO7hH0= cosmossdk.io/depinject v1.0.0 h1:dQaTu6+O6askNXO06+jyeUAnF2/ssKwrrszP9t5q050= cosmossdk.io/depinject v1.0.0/go.mod h1:zxK/h3HgHoA/eJVtiSsoaRaRA2D5U4cJ5thIG4ssbB8= cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= @@ -214,8 +214,8 @@ cosmossdk.io/x/feegrant v0.1.0 h1:c7s3oAq/8/UO0EiN1H5BIjwVntujVTkYs35YPvvrdQk= cosmossdk.io/x/feegrant v0.1.0/go.mod h1:4r+FsViJRpcZif/yhTn+E0E6OFfg4n0Lx+6cCtnZElU= cosmossdk.io/x/nft v0.1.0 h1:VhcsFiEK33ODN27kxKLa0r/CeFd8laBfbDBwYqCyYCM= cosmossdk.io/x/nft v0.1.0/go.mod h1:ec4j4QAO4mJZ+45jeYRnW7awLHby1JZANqe1hNZ4S3g= -cosmossdk.io/x/tx v0.13.3 h1:Ha4mNaHmxBc6RMun9aKuqul8yHiL78EKJQ8g23Zf73g= -cosmossdk.io/x/tx v0.13.3/go.mod h1:I8xaHv0rhUdIvIdptKIqzYy27+n2+zBVaxO6fscFhys= +cosmossdk.io/x/tx v0.13.4 h1:Eg0PbJgeO0gM8p5wx6xa0fKR7hIV6+8lC56UrsvSo0Y= +cosmossdk.io/x/tx v0.13.4/go.mod h1:BkFqrnGGgW50Y6cwTy+JvgAhiffbGEKW6KF9ufcDpvk= cosmossdk.io/x/upgrade v0.1.3 h1:q4XpXc6zp0dX6x74uBtfN6+J7ikaQev5Bla6Q0ADLK8= cosmossdk.io/x/upgrade v0.1.3/go.mod h1:jOdQhnaY5B8CDUoUbed23/Lre0Dk+r6BMQE40iKlVVQ= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -390,8 +390,8 @@ github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAK github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= -github.com/cosmos/cosmos-sdk v0.50.8 h1:2UJHssUaGHTl4/dFp8xyREKAnfiRU6VVfqtKG9n8w5g= -github.com/cosmos/cosmos-sdk v0.50.8/go.mod h1:Zb+DgHtiByNwgj71IlJBXwOq6dLhtyAq3AgqpXm/jHo= +github.com/cosmos/cosmos-sdk v0.50.9 h1:gt2usjz0H0qW6KwAxWw7ZJ3XU8uDwmhN+hYG3nTLeSg= +github.com/cosmos/cosmos-sdk v0.50.9/go.mod h1:TMH6wpoYBcg7Cp5BEg8fneLr+8XloNQkf2MRNF9V6JE= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= diff --git a/proto/opinit/ophost/v1/tx.proto b/proto/opinit/ophost/v1/tx.proto index d8611247..f404f578 100644 --- a/proto/opinit/ophost/v1/tx.proto +++ b/proto/opinit/ophost/v1/tx.proto @@ -207,9 +207,9 @@ message MsgForceTokenWithdrawal { uint64 output_index = 3 [(gogoproto.moretags) = "yaml:\"output_index\""]; // withdrawal commitments and proofs - uint64 l2_sequence = 4 [(gogoproto.moretags) = "yaml:\"l2_sequence\""]; - string sender = 5 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; - string receiver = 1 [(gogoproto.moretags) = "yaml:\"receiver\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + uint64 sequence = 4 [(gogoproto.moretags) = "yaml:\"sequence\""]; + string sender = 5 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string receiver = 1 [(gogoproto.moretags) = "yaml:\"receiver\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; cosmos.base.v1beta1.Coin amount = 6 [(gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; cometbft.crypto.v1.ProofOps commitment_proof = 7 diff --git a/specs/l2_output_oracle.md b/specs/l2_output_oracle.md index 332a232f..d8f4f936 100644 --- a/specs/l2_output_oracle.md +++ b/specs/l2_output_oracle.md @@ -15,7 +15,7 @@ The followings are the components of `output_root`. - `version`: the version of output root - `state_root`: l2 state root - `storage_root`: withdrawal storage root -- `latest_block_hash`: l2 latest block hash +- `last_block_hash`: l2 latest block hash To build the `output_root`, concatenate all the components in sequence and apply `sha3_256`. diff --git a/x/opchild/ante/common_test.go b/x/opchild/ante/common_test.go index ac68481e..1f67fd69 100644 --- a/x/opchild/ante/common_test.go +++ b/x/opchild/ante/common_test.go @@ -295,6 +295,7 @@ func _createTestInput( bridgeHook.Hook, &oracleKeeper, msgRouter, + nil, authtypes.NewModuleAddress(opchildtypes.ModuleName).String(), authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()), authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()), diff --git a/x/opchild/keeper/commitments.go b/x/opchild/keeper/commitments.go index 3ea63767..73381fc7 100644 --- a/x/opchild/keeper/commitments.go +++ b/x/opchild/keeper/commitments.go @@ -3,6 +3,7 @@ package keeper import ( "context" "errors" + "time" "cosmossdk.io/collections" sdk "github.com/cosmos/cosmos-sdk/types" @@ -21,18 +22,13 @@ func (k Keeper) TrackWithdrawalCommitments(ctx context.Context) error { curTime := sdkCtx.BlockTime().UTC().Unix() retensionPeriod := int64(info.BridgeConfig.FinalizationPeriod.Seconds() * 2) - err = k.WithdrawalCommitments.Walk(ctx, nil, func(sequence uint64, wc types.WithdrawalCommitment) (stop bool, err error) { + err = k.CommitmentTimes.Walk(ctx, nil, func(sequence uint64, submitTime time.Time) (stop bool, err error) { // stop the iteration if the current time is less than the submit time + retension period - if curTime <= wc.SubmitTime.UTC().Unix()+retensionPeriod { + if curTime <= submitTime.UTC().Unix()+retensionPeriod { return true, nil } - err = k.WithdrawalCommitments.Remove(ctx, sequence) - if err != nil { - return true, err - } - - return false, nil + return false, k.RemoveWithdrawalCommitment(ctx, sequence) }) if err != nil { return err @@ -40,3 +36,42 @@ func (k Keeper) TrackWithdrawalCommitments(ctx context.Context) error { return nil } + +func (k Keeper) SetWithdrawalCommitment(ctx context.Context, sequence uint64, wc types.WithdrawalCommitment) error { + if err := k.CommitmentTimes.Set(ctx, sequence, wc.SubmitTime); err != nil { + return err + } + if err := k.Commitments.Set(ctx, sequence, wc.Commitment); err != nil { + return err + } + + return nil +} + +func (k Keeper) GetWithdrawalCommitment(ctx context.Context, sequence uint64) (types.WithdrawalCommitment, error) { + commitment, err := k.Commitments.Get(ctx, sequence) + if err != nil { + return types.WithdrawalCommitment{}, err + } + + submitTime, err := k.CommitmentTimes.Get(ctx, sequence) + if err != nil { + return types.WithdrawalCommitment{}, err + } + + return types.WithdrawalCommitment{ + Commitment: commitment, + SubmitTime: submitTime, + }, nil +} + +func (k Keeper) RemoveWithdrawalCommitment(ctx context.Context, sequence uint64) error { + if err := k.CommitmentTimes.Remove(ctx, sequence); err != nil { + return err + } + if err := k.Commitments.Remove(ctx, sequence); err != nil { + return err + } + + return nil +} diff --git a/x/opchild/keeper/commitments_test.go b/x/opchild/keeper/commitments_test.go index bbed0596..7b124142 100644 --- a/x/opchild/keeper/commitments_test.go +++ b/x/opchild/keeper/commitments_test.go @@ -28,13 +28,13 @@ func Test_TrackWithdrawalCommitments(t *testing.T) { err = input.OPChildKeeper.TrackWithdrawalCommitments(ctx) require.NoError(t, err) - err = input.OPChildKeeper.WithdrawalCommitments.Set(ctx, 1, types.WithdrawalCommitment{ + err = input.OPChildKeeper.SetWithdrawalCommitment(ctx, 1, types.WithdrawalCommitment{ Commitment: types.CommitWithdrawal(1, "recipient", sdk.NewInt64Coin("uinit", 100)), SubmitTime: now, }) require.NoError(t, err) - err = input.OPChildKeeper.WithdrawalCommitments.Set(ctx, 2, types.WithdrawalCommitment{ + err = input.OPChildKeeper.SetWithdrawalCommitment(ctx, 2, types.WithdrawalCommitment{ Commitment: types.CommitWithdrawal(1, "recipient", sdk.NewInt64Coin("uinit", 100)), SubmitTime: now, }) @@ -46,18 +46,18 @@ func Test_TrackWithdrawalCommitments(t *testing.T) { require.NoError(t, err) // record historical withdrawal - err = input.OPChildKeeper.WithdrawalCommitments.Set(ctx, 3, types.WithdrawalCommitment{ + err = input.OPChildKeeper.SetWithdrawalCommitment(ctx, 3, types.WithdrawalCommitment{ Commitment: types.CommitWithdrawal(1, "recipient", sdk.NewInt64Coin("uinit", 100)), SubmitTime: now.Add(time.Second * 5), }) require.NoError(t, err) // should not be removed - _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 1) + _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 1) require.NoError(t, err) - _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 2) + _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 2) require.NoError(t, err) - _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 3) + _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 3) require.NoError(t, err) // H: 3, T: 15 @@ -66,12 +66,12 @@ func Test_TrackWithdrawalCommitments(t *testing.T) { require.NoError(t, err) // should be removed entries of height 1 - _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 1) + _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 1) require.ErrorIs(t, err, collections.ErrNotFound) - _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 2) + _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 2) require.ErrorIs(t, err, collections.ErrNotFound) // should not be removed - _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 3) + _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 3) require.NoError(t, err) // H: 4, T: 25 @@ -80,6 +80,6 @@ func Test_TrackWithdrawalCommitments(t *testing.T) { require.NoError(t, err) // should be removed entries of height 2 - _, err = input.OPChildKeeper.WithdrawalCommitments.Get(ctx, 3) + _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 3) require.ErrorIs(t, err, collections.ErrNotFound) } diff --git a/x/opchild/keeper/common_test.go b/x/opchild/keeper/common_test.go index dda57b1c..4d4f4aae 100644 --- a/x/opchild/keeper/common_test.go +++ b/x/opchild/keeper/common_test.go @@ -317,6 +317,7 @@ func _createTestInput( bridgeHook.Hook, &oracleKeeper, msgRouter, + nil, authtypes.NewModuleAddress(opchildtypes.ModuleName).String(), authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()), authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()), diff --git a/x/opchild/keeper/keeper.go b/x/opchild/keeper/keeper.go index 967a47e0..a2cb8eb5 100644 --- a/x/opchild/keeper/keeper.go +++ b/x/opchild/keeper/keeper.go @@ -4,8 +4,10 @@ import ( "context" "errors" "fmt" + "time" "cosmossdk.io/collections" + collcodec "cosmossdk.io/collections/codec" "cosmossdk.io/core/address" corestoretypes "cosmossdk.io/core/store" "cosmossdk.io/log" @@ -42,18 +44,19 @@ type Keeper struct { validatorAddressCodec address.Codec consensusAddressCodec address.Codec - Schema collections.Schema - NextL1Sequence collections.Sequence - NextL2Sequence collections.Sequence - Params collections.Item[types.Params] - BridgeInfo collections.Item[types.BridgeInfo] - LastValidatorPowers collections.Map[[]byte, int64] - Validators collections.Map[[]byte, types.Validator] - ValidatorsByConsAddr collections.Map[[]byte, []byte] - HistoricalInfos collections.Map[int64, cosmostypes.HistoricalInfo] - DenomPairs collections.Map[string, string] - PendingDeposits collections.Map[[]byte, types.CoinsWrapper] - WithdrawalCommitments collections.Map[uint64, types.WithdrawalCommitment] + Schema collections.Schema + NextL1Sequence collections.Sequence + NextL2Sequence collections.Sequence + Params collections.Item[types.Params] + BridgeInfo collections.Item[types.BridgeInfo] + LastValidatorPowers collections.Map[[]byte, int64] + Validators collections.Map[[]byte, types.Validator] + ValidatorsByConsAddr collections.Map[[]byte, []byte] + HistoricalInfos collections.Map[int64, cosmostypes.HistoricalInfo] + DenomPairs collections.Map[string, string] + PendingDeposits collections.Map[[]byte, types.CoinsWrapper] + Commitments collections.Map[uint64, []byte] + CommitmentTimes collections.Map[uint64, time.Time] ExecutorChangePlans map[uint64]types.ExecutorChangePlan @@ -61,7 +64,8 @@ type Keeper struct { HostValidatorStore *HostValidatorStore // for querier - clientCtx *client.Context + clientCtx *client.Context + baseAppQuerier types.BaseAppQuerier } func NewKeeper( @@ -72,6 +76,7 @@ func NewKeeper( bh types.BridgeHook, ok types.OracleKeeper, router *baseapp.MsgServiceRouter, + querier types.BaseAppQuerier, authority string, addressCodec address.Codec, validatorAddressCodec address.Codec, @@ -116,10 +121,14 @@ func NewKeeper( DenomPairs: collections.NewMap(sb, types.DenomPairPrefix, "denom_pairs", collections.StringKey, collections.StringValue), PendingDeposits: collections.NewMap(sb, types.PendingDepositsKey, "pending_deposits", collections.BytesKey, codec.CollValue[types.CoinsWrapper](cdc)), HistoricalInfos: collections.NewMap(sb, types.HistoricalInfoPrefix, "historical_infos", collections.Int64Key, codec.CollValue[cosmostypes.HistoricalInfo](cdc)), - WithdrawalCommitments: collections.NewMap(sb, types.WithdrawalCommitmentPrefix, "withdrawal_commitments", collections.Uint64Key, codec.CollValue[types.WithdrawalCommitment](cdc)), + Commitments: collections.NewMap(sb, types.CommitmentPrefix, "commitments", collections.Uint64Key, collections.BytesValue), + CommitmentTimes: collections.NewMap(sb, types.CommitmentTimePrefix, "commitment_times", collections.Uint64Key, collcodec.KeyToValueCodec(sdk.TimeKey)), ExecutorChangePlans: make(map[uint64]types.ExecutorChangePlan), HostValidatorStore: hostValidatorStore, + + // for querier + baseAppQuerier: querier, } schema, err := sb.Build() diff --git a/x/opchild/keeper/keeper_test.go b/x/opchild/keeper/keeper_test.go index d6e2f42b..a821f5cc 100644 --- a/x/opchild/keeper/keeper_test.go +++ b/x/opchild/keeper/keeper_test.go @@ -2,9 +2,8 @@ package keeper_test import ( "testing" - "time" - "github.com/cosmos/cosmos-sdk/codec" + "cosmossdk.io/collections" "github.com/stretchr/testify/require" "github.com/initia-labs/OPinit/x/opchild/types" @@ -14,21 +13,16 @@ func Test_WithdrawalCommitmentKey(t *testing.T) { ctx, input := createDefaultTestInput(t) sequence := uint64(1) - now := time.Now().UTC() - - commitment := types.WithdrawalCommitment{ - Commitment: []byte{1, 2, 3, 4}, - SubmitTime: now, - } - input.OPChildKeeper.WithdrawalCommitments.Set( + err := input.OPChildKeeper.Commitments.Set( ctx, sequence, - commitment, + []byte{1, 2, 3, 4}, ) + require.NoError(t, err) bz, err := input.OPChildKeeper.StoreService().OpenKVStore(ctx).Get(types.WithdrawalCommitmentKey(sequence)) require.NoError(t, err) - ret, err := codec.CollValue[types.WithdrawalCommitment](input.Cdc).Decode(bz) + ret, err := collections.BytesValue.Decode(bz) require.NoError(t, err) - require.Equal(t, commitment, ret) + require.Equal(t, []byte{1, 2, 3, 4}, ret) } diff --git a/x/opchild/keeper/msg_server.go b/x/opchild/keeper/msg_server.go index 9784b694..f0a90057 100644 --- a/x/opchild/keeper/msg_server.go +++ b/x/opchild/keeper/msg_server.go @@ -576,8 +576,8 @@ func (ms MsgServer) InitiateTokenWithdrawal(ctx context.Context, req *types.MsgI sdk.NewAttribute(types.AttributeKeyL2Sequence, strconv.FormatUint(l2Sequence, 10)), )) - // record historical withdrawal - err = ms.WithdrawalCommitments.Set(ctx, l2Sequence, types.WithdrawalCommitment{ + // record withdrawal commitment + err = ms.SetWithdrawalCommitment(ctx, l2Sequence, types.WithdrawalCommitment{ Commitment: types.CommitWithdrawal(l2Sequence, req.To, sdk.NewCoin(baseDenom, coin.Amount)), SubmitTime: sdkCtx.BlockTime().UTC(), }) diff --git a/x/opchild/keeper/msg_server_test.go b/x/opchild/keeper/msg_server_test.go index 0e6f92c0..e5c268ab 100644 --- a/x/opchild/keeper/msg_server_test.go +++ b/x/opchild/keeper/msg_server_test.go @@ -326,7 +326,7 @@ func Test_MsgServer_Withdraw(t *testing.T) { require.NoError(t, err) sdkCtx := sdk.UnwrapSDKContext(ctx) - wc, err := input.OPChildKeeper.WithdrawalCommitments.Get(ctx, uint64(1)) + wc, err := input.OPChildKeeper.GetWithdrawalCommitment(sdkCtx, uint64(1)) require.NoError(t, err) require.Equal(t, types.CommitWithdrawal(res.Sequence, addrsStr[1], sdk.NewInt64Coin("test/token", 100)), wc.Commitment) require.Equal(t, sdkCtx.BlockTime(), wc.SubmitTime) diff --git a/x/opchild/keeper/querier.go b/x/opchild/keeper/querier.go index 34870546..48eacf58 100644 --- a/x/opchild/keeper/querier.go +++ b/x/opchild/keeper/querier.go @@ -121,7 +121,7 @@ func (q Querier) ForceWithdrawalProofs(ctx context.Context, req *types.QueryForc } sequence := req.L2Sequence - commitmentProof, err := types.QueryCommitmentProof(q.clientCtx, height, types.WithdrawalCommitmentKey(sequence)) + commitmentProof, err := types.QueryCommitmentProof(q.baseAppQuerier, height-1, types.WithdrawalCommitmentKey(sequence)) if err != nil { return nil, status.Error(codes.Internal, err.Error()) } diff --git a/x/opchild/types/client.go b/x/opchild/types/client.go index 0124fb17..4ec83816 100644 --- a/x/opchild/types/client.go +++ b/x/opchild/types/client.go @@ -10,19 +10,15 @@ import ( "github.com/cosmos/cosmos-sdk/client" ) -func QueryCommitmentProof(clientCtx *client.Context, height int64, key []byte) (*v1.ProofOps, error) { - if clientCtx == nil { - return nil, fmt.Errorf("clientCtx cannot be nil") - } +type BaseAppQuerier func(_ context.Context, req *abci.RequestQuery) (resp *abci.ResponseQuery, err error) - req := abci.RequestQuery{ - Path: fmt.Sprintf("store/%s/key", StoreKey), +func QueryCommitmentProof(baseAppQuerier BaseAppQuerier, height int64, commitmentKey []byte) (*v1.ProofOps, error) { + res, err := baseAppQuerier(context.Background(), &abci.RequestQuery{ + Path: fmt.Sprintf("/store/%s/key", StoreKey), + Data: commitmentKey, Height: height, - Data: key, Prove: true, - } - - res, err := clientCtx.QueryABCI(req) + }) if err != nil { return nil, err } diff --git a/x/opchild/types/commitments.go b/x/opchild/types/commitments.go index b8d4ef44..7f9492fe 100644 --- a/x/opchild/types/commitments.go +++ b/x/opchild/types/commitments.go @@ -15,9 +15,9 @@ import ( // the state key for withdrawal commitment func WithdrawalCommitmentKey(sequence uint64) []byte { - prefixLen := len(WithdrawalCommitmentPrefix) + prefixLen := len(CommitmentPrefix) buf := make([]byte, prefixLen+8) - copy(buf, WithdrawalCommitmentPrefix) + copy(buf, CommitmentPrefix) _, err := collections.Uint64Key.Encode(buf[prefixLen:], sequence) if err != nil { panic(err) diff --git a/x/opchild/types/keys.go b/x/opchild/types/keys.go index 367e560d..93e5ccf8 100644 --- a/x/opchild/types/keys.go +++ b/x/opchild/types/keys.go @@ -19,8 +19,9 @@ var ( BridgeInfoKey = []byte{0x13} // prefix for bridge_info NextL1SequenceKey = []byte{0x14} // prefix for inbound deposit sequence number - HistoricalInfoPrefix = []byte{0x21} // prefix for the historical info - WithdrawalCommitmentPrefix = []byte{0x22} // prefix for withdrawal commitments + HistoricalInfoPrefix = []byte{0x21} // prefix for the historical info + CommitmentTimePrefix = []byte{0x22} // prefix for withdrawal commitments creation time + CommitmentPrefix = []byte{0x23} // prefix for withdrawal commitments LastValidatorPowerPrefix = []byte{0x31} // prefix for each key to a validator index, for bonded validators ValidatorsPrefix = []byte{0x32} // prefix for each key to a validator diff --git a/x/ophost/client/cli/tx.go b/x/ophost/client/cli/tx.go index ad817ff3..95a1dfc8 100644 --- a/x/ophost/client/cli/tx.go +++ b/x/ophost/client/cli/tx.go @@ -38,6 +38,7 @@ func GetTxCmd(ac address.Codec) *cobra.Command { NewDeleteOutput(ac), NewInitiateTokenDeposit(ac), NewFinalizeTokenWithdrawal(ac), + NewForceTokenWithdrawal(ac), ) return ophostTxCmd @@ -342,7 +343,7 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { "amount": "10000000uinit", "version": "base64-encoded version", "storage_root": "base64-encoded storage-root", - "latest_block_hash": "base64-encoded latest-block-hash" + "last_block_hash": "base64-encoded latest-block-hash" }`, version.AppName, ), ), @@ -389,7 +390,88 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { amount, withdrawalInfo.Version, withdrawalInfo.StorageRoot, - withdrawalInfo.LatestBlockHash, + withdrawalInfo.LastBlockHash, + ) + if err = msg.Validate(ac); err != nil { + return err + } + + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + + return cmd +} + +func NewForceTokenWithdrawal(ac address.Codec) *cobra.Command { + cmd := &cobra.Command{ + Use: "force-token-withdrawal [path/to/withdrawal-info.json]", + Short: "send a tx to force withdraw", + Long: strings.TrimSpace( + fmt.Sprintf( + `send a tx to finalize token withdrawal with withdrawal info json. + Example: + $ %s tx ophost finalize-token-withdrawal path/to/withdrawal-info.json + + Where withrawal-info.json contains: + { + "bridge_id": "1", + "output_index": "1", + "sequence": "1", + "sender" : "bech32-address", + "amount": "10000000uinit", + "commitment_proof": {"ops":[{"type":"ics23:iavl","key":"","data":""}, ...]}, + "app_hash": "base64-encoded app-hash", + "app_hash_proof": {"total": 1, "index": 1, "leaf_hash": "base64-encoded leaf-hash", "aunts": ["base64-encoded aunts"]}, + "version": "base64-encoded version", + "storage_root": "base64-encoded storage-root", + "last_block_hash": "base64-encoded latest-block-hash" + }`, version.AppName, + ), + ), + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + withdrawalBytes, err := os.ReadFile(args[0]) + if err != nil { + return err + } + withdrawalInfo := types.MsgForceTokenWithdrawal{} + err = clientCtx.Codec.UnmarshalJSON(withdrawalBytes, &withdrawalInfo) + if err != nil { + return err + } + + // cannot validate sender address here because it is l2 address. + sender := withdrawalInfo.Sender + if len(sender) == 0 { + return fmt.Errorf("sender address is required") + } + + receiver, err := ac.BytesToString(clientCtx.GetFromAddress()) + if err != nil { + return err + } + + msg := types.NewMsgForceTokenWithdrawal( + withdrawalInfo.BridgeId, + withdrawalInfo.OutputIndex, + withdrawalInfo.Sequence, + sender, + receiver, + withdrawalInfo.Amount, + withdrawalInfo.CommitmentProof, + withdrawalInfo.AppHash, + withdrawalInfo.AppHashProof, + withdrawalInfo.Version, + withdrawalInfo.StorageRoot, + withdrawalInfo.LastBlockHash, ) if err = msg.Validate(ac); err != nil { return err diff --git a/x/ophost/client/cli/tx_test.go b/x/ophost/client/cli/tx_test.go index 13338c2d..282aa316 100644 --- a/x/ophost/client/cli/tx_test.go +++ b/x/ophost/client/cli/tx_test.go @@ -525,7 +525,7 @@ func (s *CLITestSuite) TestNewFinalizeTokenWithdrawal() { "amount": "100uinit", "version": "AQ==", "storage_root": "KGlalV+mBHC7YFOLNX3g9LLzmyvP7QCm42HKo9N3Lu8=", - "latest_block_hash": "6oFdc+PEkXVJAo5IpXJ91vbCT9FNuKCz5VSlaFmxG+Y=" + "last_block_hash": "6oFdc+PEkXVJAo5IpXJ91vbCT9FNuKCz5VSlaFmxG+Y=" }`) s.NoError(err) diff --git a/x/ophost/client/cli/types.go b/x/ophost/client/cli/types.go index b4ed7428..da61e0f5 100644 --- a/x/ophost/client/cli/types.go +++ b/x/ophost/client/cli/types.go @@ -1,6 +1,9 @@ package cli -import "github.com/initia-labs/OPinit/x/ophost/types" +import ( + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + "github.com/initia-labs/OPinit/x/ophost/types" +) // BridgeConfig defines the set of bridge config. // NOTE: it is a modified BridgeConfig from x/ophost/types/types.go to make unmarshal easier @@ -22,12 +25,25 @@ type MsgFinalizeTokenWithdrawal struct { OutputIndex uint64 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty" yaml:"output_index"` WithdrawalProofs [][]byte `protobuf:"bytes,4,rep,name=withdrawal_proofs,json=withdrawalProofs,proto3" json:"withdrawal_proofs,omitempty"` Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - // no receiver here - // Receiver string `protobuf:"bytes,5,opt,name=receiver,proto3" json:"receiver,omitempty" yaml:"receiver"` - Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty" yaml:"sequence"` - Amount string `protobuf:"bytes,7,opt,name=amount,proto3" json:"amount" yaml:"amount"` - // version of the output root - Version []byte `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty" yaml:"version"` - StorageRoot []byte `protobuf:"bytes,10,opt,name=storage_root,json=storageRoot,proto3" json:"storage_root,omitempty" yaml:"storage_root"` - LatestBlockHash []byte `protobuf:"bytes,11,opt,name=latest_block_hash,json=latestBlockHash,proto3" json:"latest_block_hash,omitempty" yaml:"latest_block_hash"` + Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty" yaml:"sequence"` + Amount string `protobuf:"bytes,7,opt,name=amount,proto3" json:"amount" yaml:"amount"` + Version []byte `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty" yaml:"version"` + StorageRoot []byte `protobuf:"bytes,10,opt,name=storage_root,json=storageRoot,proto3" json:"storage_root,omitempty" yaml:"storage_root"` + LastBlockHash []byte `protobuf:"bytes,11,opt,name=last_block_hash,json=latestBlockHash,proto3" json:"last_block_hash,omitempty" yaml:"last_block_hash"` +} + +// MsgForceTokenWithdrawal is a message to force a token withdrawal from L2 to L1. +type MsgForceTokenWithdrawal struct { + // anyone can force a token withdrawal from L2 to L1 even this is not the receiver. + BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty" yaml:"bridge_id"` + OutputIndex uint64 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty" yaml:"output_index"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty" yaml:"sequence"` + Sender string `protobuf:"bytes,5,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Amount string `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount" yaml:"amount"` + CommitmentProof v1.ProofOps `protobuf:"bytes,7,opt,name=commitment_proof,json=commitmentProof,proto3" json:"commitment_proof" yaml:"commitment_proof"` + AppHash []byte `protobuf:"bytes,8,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty" yaml:"app_hash"` + AppHashProof v1.Proof `protobuf:"bytes,9,opt,name=app_hash_proof,json=appHashProof,proto3" json:"app_hash_proof" yaml:"app_hash_proof"` + Version []byte `protobuf:"bytes,10,opt,name=version,proto3" json:"version,omitempty" yaml:"version"` + StorageRoot []byte `protobuf:"bytes,11,opt,name=storage_root,json=storageRoot,proto3" json:"storage_root,omitempty" yaml:"storage_root"` + LastBlockHash []byte `protobuf:"bytes,12,opt,name=last_block_hash,json=lastBlockHash,proto3" json:"last_block_hash,omitempty" yaml:"last_block_hash"` } diff --git a/x/ophost/keeper/msg_server.go b/x/ophost/keeper/msg_server.go index cf673819..2c4fdf65 100644 --- a/x/ophost/keeper/msg_server.go +++ b/x/ophost/keeper/msg_server.go @@ -355,7 +355,7 @@ func (ms MsgServer) ForceTokenWithdrwal(ctx context.Context, req *types.MsgForce bridgeId := req.BridgeId outputIndex := req.OutputIndex - l2Sequence := req.L2Sequence + sequence := req.Sequence appHash := req.AppHash receiver := req.Receiver amount := req.Amount @@ -367,7 +367,7 @@ func (ms MsgServer) ForceTokenWithdrwal(ctx context.Context, req *types.MsgForce } // check if the withdrawal is already claimed - withdrawalHash := types.GenerateWithdrawalHash(bridgeId, l2Sequence, req.Sender, receiver, amount.Denom, amount.Amount.Uint64()) + withdrawalHash := types.GenerateWithdrawalHash(bridgeId, sequence, req.Sender, receiver, amount.Denom, amount.Amount.Uint64()) if ok, err := ms.HasProvenWithdrawal(ctx, bridgeId, withdrawalHash); err != nil { return nil, err } else if ok { @@ -391,7 +391,7 @@ func (ms MsgServer) ForceTokenWithdrwal(ctx context.Context, req *types.MsgForce } // failed to verify commitment - if err := opchildtypes.VerifyCommitment(appHash, l2Sequence, receiver, amount, &req.CommitmentProof); err != nil { + if err := opchildtypes.VerifyCommitment(appHash, sequence, receiver, amount, &req.CommitmentProof); err != nil { return nil, types.ErrFailedToVerifyWithdrawal.Wrap(err.Error()) } diff --git a/x/ophost/keeper/msg_server_test.go b/x/ophost/keeper/msg_server_test.go index 20491634..04c998d2 100644 --- a/x/ophost/keeper/msg_server_test.go +++ b/x/ophost/keeper/msg_server_test.go @@ -635,7 +635,7 @@ func Test_MsgServer_ForceWithdrawal(t *testing.T) { // force withdraw 1 _, err = ms.ForceTokenWithdrwal(ctx, types.NewMsgForceTokenWithdrawal( - 1, 1, 1, sender, receiver, amount, *commitmentProofs[0], appHash, *appHashProof, version, storageRoot[:], blockHash, + 1, 1, 1, sender, receiver, amount, *commitmentProofs[0], appHash, *appHashProof, []byte{version}, storageRoot[:], blockHash, )) require.NoError(t, err) @@ -666,13 +666,13 @@ func Test_MsgServer_ForceWithdrawal(t *testing.T) { // cannot force withdraw 2 again _, err = ms.ForceTokenWithdrwal(ctx, types.NewMsgForceTokenWithdrawal( - 1, 1, 2, sender, receiver, amount, *commitmentProofs[1], appHash, *appHashProof, version, storageRoot[:], blockHash, + 1, 1, 2, sender, receiver, amount, *commitmentProofs[1], appHash, *appHashProof, []byte{version}, storageRoot[:], blockHash, )) require.Error(t, err) // can force withdrawal 3 _, err = ms.ForceTokenWithdrwal(ctx, types.NewMsgForceTokenWithdrawal( - 1, 1, 3, sender, receiver, amount, *commitmentProofs[2], appHash, *appHashProof, version, storageRoot[:], blockHash, + 1, 1, 3, sender, receiver, amount, *commitmentProofs[2], appHash, *appHashProof, []byte{version}, storageRoot[:], blockHash, )) require.NoError(t, err) require.Equal(t, amount.Add(amount).Add(amount), input.BankKeeper.GetBalance(ctx, receiverAddr, amount.Denom)) diff --git a/x/ophost/types/tx.go b/x/ophost/types/tx.go index 93b6f79d..9aa90b2b 100644 --- a/x/ophost/types/tx.go +++ b/x/ophost/types/tx.go @@ -282,14 +282,14 @@ func (msg MsgFinalizeTokenWithdrawal) Validate(ac address.Codec) error { func NewMsgForceTokenWithdrawal( bridgeId uint64, outputIndex uint64, - l2Sequence uint64, + sequence uint64, sender string, receiver string, amount sdk.Coin, commitmentProof v1.ProofOps, appHash []byte, appHashProof v1.Proof, - version byte, + version []byte, storageRoot []byte, lastBlockHash []byte, ) *MsgForceTokenWithdrawal { @@ -297,7 +297,7 @@ func NewMsgForceTokenWithdrawal( BridgeId: bridgeId, OutputIndex: outputIndex, - L2Sequence: l2Sequence, + Sequence: sequence, Sender: sender, Receiver: receiver, Amount: amount, @@ -306,7 +306,7 @@ func NewMsgForceTokenWithdrawal( AppHash: appHash, AppHashProof: appHashProof, - Version: []byte{version}, + Version: version, StorageRoot: storageRoot, LastBlockHash: lastBlockHash, } @@ -322,7 +322,7 @@ func (msg MsgForceTokenWithdrawal) Validate(ac address.Codec) error { return ErrInvalidOutputIndex } - if msg.L2Sequence == 0 { + if msg.Sequence == 0 { return ErrInvalidSequence } diff --git a/x/ophost/types/tx.pb.go b/x/ophost/types/tx.pb.go index 08422479..d6e24fbf 100644 --- a/x/ophost/types/tx.pb.go +++ b/x/ophost/types/tx.pb.go @@ -517,7 +517,7 @@ type MsgForceTokenWithdrawal struct { BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty" yaml:"bridge_id"` OutputIndex uint64 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty" yaml:"output_index"` // withdrawal commitments and proofs - L2Sequence uint64 `protobuf:"varint,4,opt,name=l2_sequence,json=l2Sequence,proto3" json:"l2_sequence,omitempty" yaml:"l2_sequence"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty" yaml:"sequence"` Sender string `protobuf:"bytes,5,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` Receiver string `protobuf:"bytes,1,opt,name=receiver,proto3" json:"receiver,omitempty" yaml:"receiver"` Amount types.Coin `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount" yaml:"amount"` @@ -1128,122 +1128,122 @@ func init() { func init() { proto.RegisterFile("opinit/ophost/v1/tx.proto", fileDescriptor_d16af6eaf4088d05) } var fileDescriptor_d16af6eaf4088d05 = []byte{ - // 1840 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xdd, 0x6f, 0x1b, 0x59, - 0x15, 0x8f, 0xdd, 0x34, 0x89, 0xaf, 0xdd, 0x7c, 0x4c, 0xd3, 0xc4, 0x99, 0x16, 0x4f, 0x72, 0x29, - 0x4b, 0x9a, 0xa6, 0x36, 0xf1, 0x42, 0x57, 0xb2, 0x84, 0xc4, 0x4e, 0xca, 0x2e, 0xad, 0x64, 0x5a, - 0xcd, 0x82, 0x10, 0xb0, 0x92, 0x35, 0xb6, 0x6f, 0xc6, 0xa3, 0xda, 0x73, 0x87, 0xb9, 0xd7, 0x49, - 0x83, 0x84, 0xb4, 0xe2, 0x09, 0x78, 0x42, 0xe2, 0x1f, 0x58, 0xf1, 0xb4, 0x8f, 0x15, 0xe2, 0x8f, - 0xe8, 0x0b, 0xd2, 0x0a, 0xf1, 0xc0, 0x93, 0x05, 0xed, 0x43, 0xf7, 0x11, 0xf9, 0x95, 0x17, 0x74, - 0x3f, 0xe6, 0xce, 0x87, 0xc7, 0x6e, 0x1a, 0xda, 0x66, 0x5f, 0xa2, 0xdc, 0x73, 0x7e, 0xe7, 0x9e, - 0xcf, 0x7b, 0xee, 0x99, 0x6b, 0xb0, 0x85, 0x7d, 0xd7, 0x73, 0x69, 0x0d, 0xfb, 0x3d, 0x4c, 0x68, - 0xed, 0xf8, 0xa0, 0x46, 0x9f, 0x54, 0xfd, 0x00, 0x53, 0xac, 0xad, 0x0a, 0x56, 0x55, 0xb0, 0xaa, - 0xc7, 0x07, 0xfa, 0x9a, 0x3d, 0x70, 0x3d, 0x5c, 0xe3, 0x7f, 0x05, 0x48, 0xaf, 0x74, 0xf0, 0x00, - 0xd1, 0xf6, 0x11, 0xad, 0x75, 0x82, 0x53, 0x9f, 0x62, 0xb6, 0x83, 0x1f, 0x60, 0x7c, 0x14, 0xf1, - 0xc9, 0x00, 0x93, 0x5a, 0xdb, 0x26, 0xa8, 0x76, 0x7c, 0xd0, 0x46, 0xd4, 0x3e, 0xa8, 0x75, 0xb0, - 0xeb, 0x49, 0xfe, 0xa6, 0xe4, 0x0f, 0x88, 0xc3, 0x44, 0x07, 0xc4, 0x91, 0x8c, 0x2d, 0xc1, 0x68, - 0xf1, 0x55, 0x4d, 0x2c, 0x24, 0x6b, 0xdd, 0xc1, 0x0e, 0x16, 0x74, 0xf6, 0x9f, 0xa4, 0xde, 0x98, - 0xf4, 0xe4, 0xd4, 0x47, 0x52, 0x06, 0x8e, 0x73, 0x60, 0xb9, 0x49, 0x1c, 0x0b, 0x75, 0x70, 0xd0, - 0x35, 0x6d, 0xda, 0xe9, 0x69, 0x0f, 0x40, 0x81, 0x0c, 0xdb, 0x03, 0x97, 0x52, 0x14, 0x94, 0x73, - 0xdb, 0xb9, 0xdd, 0x82, 0xb9, 0x3f, 0x1e, 0x19, 0xab, 0xa7, 0xf6, 0xa0, 0xdf, 0x80, 0x8a, 0x05, - 0xff, 0xfe, 0xd7, 0x3b, 0xeb, 0x52, 0xff, 0x87, 0xdd, 0x6e, 0x80, 0x08, 0xf9, 0x84, 0x06, 0xae, - 0xe7, 0x58, 0x91, 0xb8, 0x76, 0x00, 0x0a, 0xed, 0xc0, 0xed, 0x3a, 0xa8, 0xe5, 0x76, 0xcb, 0xf9, - 0xed, 0xdc, 0xee, 0xbc, 0xb9, 0x1e, 0xed, 0xa5, 0x58, 0xd0, 0x5a, 0x12, 0xff, 0xdf, 0xef, 0x6a, - 0x1f, 0x80, 0x62, 0x9b, 0xd9, 0xd1, 0x6a, 0x9f, 0x52, 0x44, 0xca, 0x97, 0xb6, 0x73, 0xbb, 0x25, - 0x73, 0x63, 0x3c, 0x32, 0x34, 0x29, 0x14, 0x31, 0xa1, 0x05, 0xf8, 0xca, 0x64, 0x8b, 0xc6, 0xee, - 0x6f, 0x5f, 0x3e, 0xdd, 0x8b, 0x74, 0xff, 0xe1, 0xe5, 0xd3, 0xbd, 0x6b, 0xd2, 0xe9, 0xa4, 0x87, - 0xb0, 0x0c, 0x36, 0x92, 0x14, 0x0b, 0x11, 0x1f, 0x7b, 0x04, 0xc1, 0x7f, 0xe4, 0xc0, 0x4a, 0x93, - 0x38, 0x87, 0x01, 0xb2, 0x29, 0x32, 0xb9, 0x49, 0xda, 0x3d, 0xb0, 0xd8, 0x61, 0x6b, 0x1c, 0x46, - 0x63, 0x6f, 0x3c, 0x32, 0x96, 0x85, 0x31, 0x92, 0x31, 0x3d, 0x16, 0xa1, 0xa8, 0x66, 0x81, 0x85, - 0x0e, 0xf6, 0x8e, 0x5c, 0x87, 0x87, 0xa1, 0x58, 0xaf, 0x54, 0xd3, 0x65, 0x54, 0x15, 0xfa, 0x0e, - 0x39, 0xca, 0xd4, 0x9f, 0x8d, 0x8c, 0xb9, 0xf1, 0xc8, 0xb8, 0x22, 0x15, 0x71, 0x2a, 0xfc, 0xe2, - 0xe5, 0xd3, 0xbd, 0x9c, 0x25, 0x77, 0x6a, 0x7c, 0x9b, 0x79, 0x1c, 0x6a, 0x60, 0xfe, 0x6e, 0x44, - 0xfe, 0xc6, 0x5d, 0x80, 0x77, 0xc1, 0x66, 0x8a, 0x14, 0x7a, 0xac, 0x5d, 0x8f, 0x67, 0x88, 0xf9, - 0x37, 0x1f, 0xe5, 0x02, 0x8e, 0xf3, 0x60, 0xb5, 0x49, 0x9c, 0x47, 0x01, 0xf6, 0x31, 0x41, 0x0f, - 0x87, 0xd4, 0x1f, 0x52, 0xed, 0x63, 0xb0, 0xe4, 0x0b, 0x42, 0x18, 0x90, 0xdb, 0xe3, 0x91, 0xb1, - 0x22, 0xec, 0x0c, 0x39, 0xd3, 0x23, 0xa2, 0x84, 0xcf, 0x53, 0x1c, 0x0d, 0x50, 0xc2, 0xdc, 0x8a, - 0x96, 0xeb, 0x75, 0xd1, 0x13, 0x5e, 0x1d, 0xf3, 0xe6, 0xe6, 0x78, 0x64, 0x5c, 0x15, 0x52, 0x71, - 0x2e, 0xb4, 0x8a, 0x62, 0x79, 0x9f, 0xad, 0x34, 0x13, 0xac, 0xf4, 0xeb, 0xad, 0x76, 0x1f, 0x77, - 0x1e, 0xb7, 0xbc, 0xe1, 0xa0, 0x8d, 0x82, 0xf2, 0x3c, 0x17, 0xd7, 0xc7, 0x23, 0x63, 0x43, 0x88, - 0xa7, 0x00, 0xd0, 0xba, 0xd2, 0xaf, 0x9b, 0x8c, 0xf0, 0x63, 0xbe, 0x66, 0xc5, 0x29, 0x35, 0x04, - 0x18, 0xd3, 0xf2, 0xe5, 0x74, 0x71, 0xc6, 0x98, 0xd0, 0x02, 0x62, 0x65, 0x61, 0x4c, 0x1b, 0xb7, - 0x58, 0xaa, 0x94, 0xeb, 0x2c, 0x57, 0x9b, 0x51, 0xae, 0x12, 0xf1, 0x85, 0x3a, 0x28, 0xa7, 0x69, - 0xaa, 0x3e, 0xff, 0x2b, 0xea, 0xf3, 0x1e, 0xea, 0x23, 0x1a, 0xe6, 0xa3, 0x09, 0x40, 0xa7, 0x67, - 0xf7, 0xfb, 0xc8, 0x73, 0x54, 0x46, 0xee, 0x8c, 0x47, 0xc6, 0x9a, 0xac, 0x1c, 0xc5, 0x9b, 0x9e, - 0x93, 0xd8, 0x06, 0xef, 0x38, 0x2b, 0x8d, 0x3d, 0x16, 0x98, 0x98, 0xfe, 0x54, 0x19, 0xc7, 0x3d, - 0x85, 0x5b, 0xbc, 0x8c, 0xe3, 0xa4, 0x28, 0x30, 0x79, 0xce, 0xbb, 0xef, 0xb9, 0xd4, 0xb5, 0x29, - 0xfa, 0x09, 0x7e, 0x8c, 0xbc, 0x7b, 0xc8, 0xc7, 0xc4, 0xa5, 0xda, 0x87, 0x60, 0x81, 0x20, 0xaf, - 0xab, 0x82, 0x73, 0x2b, 0x3a, 0x56, 0x82, 0x3e, 0x3d, 0x30, 0x52, 0xf0, 0x3c, 0x41, 0xf9, 0x1e, - 0xc8, 0x53, 0xcc, 0x43, 0x51, 0x30, 0xbf, 0x35, 0x1e, 0x19, 0x05, 0x81, 0xa5, 0x78, 0xba, 0xb6, - 0x3c, 0xc5, 0x5a, 0x13, 0x2c, 0xd8, 0x03, 0x3c, 0xf4, 0x28, 0x2f, 0xce, 0x62, 0x7d, 0xab, 0x2a, - 0xa1, 0xec, 0xa6, 0xa8, 0xca, 0x9b, 0xa2, 0x7a, 0x88, 0x5d, 0x2f, 0xdd, 0x22, 0x84, 0x58, 0xd8, - 0x22, 0xc4, 0x4a, 0xdb, 0x07, 0xf3, 0x5d, 0x9b, 0xda, 0xb2, 0x52, 0xcb, 0xcf, 0x46, 0x46, 0x6e, - 0x3c, 0x32, 0x8a, 0x42, 0x82, 0x71, 0x38, 0x7e, 0xce, 0xe2, 0xa8, 0xc6, 0xdd, 0xdf, 0x7d, 0x6e, - 0xcc, 0x7d, 0xf5, 0xb9, 0x31, 0xc7, 0x92, 0x22, 0x7d, 0x67, 0x09, 0xa9, 0x44, 0x09, 0xc9, 0x8a, - 0x30, 0xfc, 0x3e, 0x30, 0xa6, 0xb0, 0x54, 0x9f, 0xd1, 0xc1, 0x12, 0x41, 0xbf, 0x1a, 0x22, 0xaf, - 0x83, 0xc2, 0x36, 0x13, 0xae, 0xe1, 0x5f, 0x2e, 0x03, 0xbd, 0x49, 0x9c, 0x8f, 0x5c, 0xcf, 0xee, - 0xbb, 0xbf, 0x16, 0xf2, 0x3f, 0x73, 0x69, 0xaf, 0x1b, 0xd8, 0x27, 0x76, 0xff, 0x5d, 0xf7, 0x89, - 0xbb, 0x60, 0xed, 0x44, 0x29, 0x6f, 0xf1, 0x4b, 0x9b, 0x94, 0xe7, 0xb7, 0x2f, 0xed, 0x96, 0xcc, - 0x02, 0x8b, 0x9f, 0x08, 0xd8, 0x6a, 0x84, 0x79, 0xc4, 0x21, 0xb1, 0x32, 0xbb, 0x7c, 0xde, 0x32, - 0xfb, 0x18, 0x2c, 0x05, 0xa8, 0x83, 0xdc, 0xe3, 0xac, 0xd6, 0x1a, 0x72, 0x66, 0xb4, 0xd6, 0x10, - 0xa2, 0xd5, 0x62, 0xd1, 0x5e, 0xe0, 0xbe, 0x5f, 0x8d, 0x36, 0x52, 0x71, 0x8f, 0x52, 0x10, 0x2b, - 0xbb, 0xc5, 0x37, 0x53, 0x76, 0x8b, 0xc7, 0x28, 0x20, 0x2e, 0xf6, 0xca, 0x4b, 0xbc, 0xf2, 0xb4, - 0xe8, 0xce, 0x94, 0x0c, 0x68, 0x85, 0x10, 0x96, 0x2d, 0x42, 0x71, 0x60, 0x3b, 0x48, 0xb4, 0xd5, - 0x02, 0x17, 0x89, 0x65, 0x2b, 0xce, 0x85, 0x56, 0x51, 0x2e, 0x59, 0x63, 0xe5, 0x5d, 0xdd, 0x26, - 0x54, 0xb6, 0xed, 0x9e, 0x4d, 0x7a, 0x65, 0xc0, 0xc5, 0xe3, 0x5d, 0x3d, 0x09, 0x60, 0x5d, 0xdd, - 0x26, 0x94, 0xf7, 0xf5, 0x1f, 0xd9, 0xa4, 0xd7, 0x78, 0x9f, 0x37, 0xe7, 0x30, 0x78, 0xac, 0xe0, - 0x77, 0xa2, 0x82, 0x9f, 0x52, 0x95, 0xf0, 0x26, 0x80, 0xd3, 0xb9, 0xaa, 0x2f, 0x7d, 0xb6, 0xc8, - 0xfb, 0xd2, 0x47, 0x38, 0xe8, 0x5c, 0x74, 0x5d, 0x7f, 0x00, 0x8a, 0xfd, 0x7a, 0x4b, 0x95, 0x85, - 0xb8, 0xfb, 0x62, 0x77, 0x57, 0x8c, 0x09, 0x2d, 0xd0, 0xaf, 0x7f, 0x12, 0xd6, 0xc6, 0xd7, 0xa9, - 0xb0, 0xa3, 0x3a, 0x5d, 0x78, 0x13, 0x75, 0x3a, 0x00, 0xab, 0x1d, 0x3c, 0x18, 0xb8, 0x74, 0x80, - 0x3c, 0x2a, 0xce, 0xba, 0x3c, 0x00, 0x37, 0xaa, 0xe1, 0x04, 0x5f, 0x15, 0x13, 0x3c, 0x9b, 0xd0, - 0xf8, 0x49, 0x7f, 0xe8, 0x13, 0xf3, 0xa6, 0xdc, 0x7b, 0x33, 0x9c, 0xce, 0x92, 0x7b, 0x48, 0x2d, - 0x2b, 0x11, 0x9d, 0x4b, 0x6a, 0x55, 0xb0, 0x64, 0xfb, 0xbe, 0xa8, 0x52, 0x71, 0x2e, 0x62, 0xc7, - 0x32, 0xe4, 0x40, 0x6b, 0xd1, 0xf6, 0x7d, 0x56, 0x98, 0x5a, 0x07, 0x2c, 0x87, 0x54, 0x69, 0x5c, - 0x41, 0x79, 0x9d, 0x6d, 0x9c, 0x09, 0xa5, 0x65, 0xd7, 0x92, 0x9b, 0x26, 0xec, 0x2a, 0xc9, 0xfd, - 0x85, 0x51, 0xb1, 0xb3, 0x0a, 0x5e, 0xff, 0xac, 0x16, 0xff, 0xbf, 0xb3, 0x5a, 0x7a, 0xdd, 0xb3, - 0xfa, 0x9d, 0x89, 0xb3, 0x1a, 0xbb, 0x9c, 0xb2, 0x8e, 0x19, 0xdc, 0xe1, 0x97, 0x53, 0x16, 0x4b, - 0x9d, 0xd2, 0x3f, 0xe5, 0xc1, 0x5a, 0x93, 0x38, 0x3f, 0xf5, 0xbb, 0x36, 0x45, 0x8f, 0xc2, 0xf9, - 0xf4, 0x01, 0x28, 0xd8, 0x43, 0xda, 0xc3, 0x81, 0x4b, 0x4f, 0x27, 0x3f, 0x84, 0x14, 0x6b, 0xc6, - 0x87, 0x90, 0xc2, 0x9c, 0xe7, 0xac, 0x5b, 0xa0, 0xe4, 0xa1, 0x93, 0x96, 0x9a, 0xb5, 0xc5, 0x28, - 0x51, 0x8b, 0x22, 0x1d, 0xe7, 0x4e, 0x37, 0xa2, 0xe8, 0xa1, 0x93, 0xd0, 0xa5, 0xc6, 0x6d, 0xfe, - 0x8d, 0xa4, 0xcc, 0x62, 0xe1, 0x2b, 0x47, 0xe1, 0x4b, 0xfa, 0x0f, 0x8f, 0xc0, 0xd6, 0x04, 0x51, - 0xdd, 0xe7, 0x3b, 0xa9, 0x4e, 0x24, 0xee, 0xf4, 0x44, 0xc3, 0x79, 0x6f, 0x72, 0xe0, 0xe6, 0x9e, - 0xa7, 0x86, 0x6a, 0xf8, 0xe7, 0x3c, 0x58, 0x57, 0x8a, 0x0e, 0xd5, 0x24, 0x48, 0x2e, 0x3a, 0x01, - 0xbf, 0x04, 0x2b, 0x2c, 0xc4, 0xd1, 0x6c, 0xca, 0xbe, 0x46, 0x2f, 0xed, 0x16, 0xcc, 0x7a, 0x54, - 0xae, 0x29, 0xc0, 0x74, 0x53, 0x96, 0x3d, 0x74, 0x12, 0xf3, 0xad, 0x51, 0x9d, 0xcc, 0xc4, 0xf5, - 0x74, 0x26, 0x62, 0x78, 0xe8, 0x82, 0x1b, 0x59, 0xf4, 0xb7, 0x91, 0x8f, 0x2f, 0xf2, 0x40, 0x53, - 0xba, 0xf8, 0xf7, 0xf1, 0x7d, 0xef, 0x08, 0x5f, 0x74, 0x36, 0x10, 0x60, 0x21, 0x6c, 0x89, 0xcf, - 0x7f, 0xd7, 0x3b, 0x12, 0xb3, 0x75, 0xb1, 0x7e, 0x3d, 0xe3, 0x43, 0x3a, 0xb4, 0x39, 0xdd, 0x0d, - 0x93, 0x1b, 0x84, 0xdd, 0xd0, 0x43, 0x27, 0x4a, 0xa2, 0xb1, 0x3f, 0x99, 0x97, 0xad, 0x74, 0x5e, - 0x14, 0x1a, 0x3a, 0x7c, 0x70, 0x4d, 0x51, 0xdf, 0x46, 0x4e, 0x7e, 0x9f, 0x07, 0xd7, 0x94, 0xa6, - 0x87, 0x81, 0xdd, 0xe9, 0xcb, 0x87, 0x82, 0x8b, 0x4e, 0xcb, 0x0f, 0xc0, 0x32, 0xe6, 0xe6, 0xb4, - 0x90, 0x67, 0xb7, 0xfb, 0xa8, 0xcb, 0xd3, 0xb2, 0x64, 0x6e, 0x45, 0x51, 0x4f, 0xf2, 0xa1, 0x75, - 0x45, 0x10, 0x7e, 0x28, 0xd6, 0x8d, 0xda, 0x64, 0xc4, 0x6f, 0xa4, 0x23, 0x1e, 0xf7, 0x18, 0x1a, - 0xe0, 0x1b, 0x99, 0x0c, 0xd5, 0xce, 0xff, 0x93, 0x8b, 0xb5, 0xf3, 0x26, 0xa2, 0x36, 0xfb, 0xb8, - 0xb9, 0xe8, 0x40, 0xd5, 0xc0, 0xd2, 0x40, 0x9a, 0x22, 0x1f, 0xb5, 0x62, 0x77, 0x7f, 0xc8, 0x81, - 0x96, 0x02, 0x9d, 0xa9, 0x57, 0x87, 0xce, 0x25, 0x7a, 0x75, 0x48, 0x7c, 0x1b, 0x75, 0xf8, 0x37, - 0xf1, 0x00, 0x21, 0x2f, 0x05, 0x3b, 0xb0, 0x07, 0x6f, 0xb6, 0x4d, 0x1f, 0x82, 0x05, 0x9f, 0xef, - 0x2a, 0x9f, 0xc9, 0xca, 0x93, 0xa7, 0x5b, 0x68, 0x35, 0xd7, 0xa2, 0xd1, 0x4e, 0x48, 0x40, 0x4b, - 0x8a, 0x8a, 0xc7, 0x96, 0x64, 0xe4, 0x36, 0x26, 0x6e, 0x39, 0x21, 0x23, 0x9e, 0x14, 0xe2, 0xa4, - 0x30, 0x6a, 0xf5, 0xaf, 0x0a, 0xe0, 0x52, 0x93, 0x38, 0xda, 0xcf, 0x41, 0x31, 0xfe, 0x3c, 0xba, - 0x3d, 0x69, 0x51, 0xf2, 0x31, 0x51, 0xdf, 0x7d, 0x15, 0x42, 0x25, 0xe6, 0x53, 0x50, 0x4a, 0x3c, - 0x35, 0xee, 0x64, 0x4a, 0xc6, 0x21, 0xfa, 0xad, 0x57, 0x42, 0xd4, 0xee, 0x2d, 0x70, 0x25, 0xf9, - 0x72, 0x07, 0x33, 0x65, 0x13, 0x18, 0x7d, 0xef, 0xd5, 0x98, 0xb8, 0xf9, 0x89, 0x97, 0xa8, 0x6c, - 0xf3, 0xe3, 0x90, 0x29, 0xe6, 0x67, 0x3d, 0xe9, 0x68, 0x14, 0xac, 0x67, 0x3e, 0xe7, 0x64, 0x6f, - 0x91, 0x05, 0xd5, 0x0f, 0xce, 0x0c, 0x55, 0x5a, 0x7f, 0x03, 0x36, 0xa7, 0xbd, 0x43, 0xec, 0x67, - 0xee, 0x36, 0x05, 0xad, 0x7f, 0xf7, 0x75, 0xd0, 0x4a, 0x3d, 0x01, 0x57, 0xd3, 0x93, 0x2a, 0x53, - 0x9d, 0xed, 0x73, 0xd6, 0x4c, 0x3b, 0xc5, 0xe7, 0x59, 0xe3, 0xaf, 0xd6, 0x06, 0xcb, 0xa9, 0xd1, - 0xf7, 0x9b, 0x99, 0x9b, 0x24, 0x41, 0xfa, 0xed, 0x33, 0x80, 0x94, 0x8e, 0xc7, 0x60, 0x6d, 0x72, - 0xc0, 0x7b, 0x6f, 0xc6, 0x0e, 0x31, 0x9c, 0x5e, 0x3d, 0x1b, 0x4e, 0x29, 0x43, 0x60, 0x25, 0x3d, - 0xbd, 0xdc, 0x9c, 0xb1, 0x85, 0x42, 0xe9, 0xfb, 0x67, 0x41, 0x4d, 0xc6, 0x4d, 0xdd, 0x31, 0xb3, - 0xe2, 0x16, 0x82, 0x66, 0xc6, 0x6d, 0xa2, 0x77, 0x7f, 0x0a, 0x4a, 0x89, 0x66, 0xbb, 0x33, 0x2b, - 0xe8, 0x1c, 0x32, 0xe5, 0x8c, 0x65, 0xf5, 0x38, 0xfd, 0xf2, 0x67, 0x6c, 0x04, 0x32, 0x1f, 0x3c, - 0xfb, 0x77, 0x65, 0xee, 0xd9, 0xf3, 0x4a, 0xee, 0xcb, 0xe7, 0x95, 0xdc, 0xbf, 0x9e, 0x57, 0x72, - 0x7f, 0x7c, 0x51, 0x99, 0xfb, 0xf2, 0x45, 0x65, 0xee, 0x9f, 0x2f, 0x2a, 0x73, 0xbf, 0xd8, 0x77, - 0x5c, 0xda, 0x1b, 0xb6, 0xd9, 0x37, 0x67, 0xcd, 0xe5, 0x67, 0xe7, 0x4e, 0xdf, 0x6e, 0x93, 0xda, - 0xc3, 0x47, 0xfc, 0x87, 0xa5, 0x27, 0xe1, 0x4f, 0x4b, 0xfc, 0x77, 0xa5, 0xf6, 0x02, 0xff, 0x61, - 0xe9, 0xfd, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x6b, 0xe7, 0x08, 0xd4, 0x42, 0x1b, 0x00, 0x00, + // 1825 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xdd, 0x6f, 0x1b, 0x4b, + 0x15, 0x8f, 0xdd, 0xd4, 0xb5, 0xc7, 0x6e, 0x3e, 0xb6, 0x69, 0xe2, 0x6c, 0x8b, 0x37, 0x19, 0xca, + 0x25, 0x4d, 0x53, 0x9b, 0xe4, 0x42, 0x91, 0x2c, 0x21, 0x71, 0x37, 0xe5, 0x5e, 0x5a, 0xc9, 0xb4, + 0x5a, 0x40, 0x08, 0xb8, 0x92, 0xb5, 0xb6, 0x27, 0xeb, 0x55, 0xed, 0x9d, 0x65, 0x67, 0x9c, 0x34, + 0x48, 0x48, 0x88, 0x27, 0xe0, 0x09, 0x89, 0x7f, 0xe0, 0x8a, 0xa7, 0xfb, 0x58, 0x21, 0xfe, 0x88, + 0xbe, 0x20, 0x5d, 0x21, 0x1e, 0x78, 0xb2, 0xa0, 0x7d, 0xe8, 0x7d, 0x44, 0x7e, 0x42, 0xe2, 0x05, + 0xcd, 0xc7, 0xce, 0x7e, 0x78, 0xed, 0xa6, 0xa1, 0xbd, 0xb9, 0x2f, 0x51, 0xe6, 0x9c, 0xdf, 0x99, + 0xf3, 0x39, 0x67, 0xce, 0x8e, 0xc1, 0x26, 0xf6, 0x5d, 0xcf, 0xa5, 0x0d, 0xec, 0xf7, 0x31, 0xa1, + 0x8d, 0xe3, 0xfd, 0x06, 0x7d, 0x5a, 0xf7, 0x03, 0x4c, 0xb1, 0xb6, 0x22, 0x58, 0x75, 0xc1, 0xaa, + 0x1f, 0xef, 0xeb, 0xab, 0xf6, 0xd0, 0xf5, 0x70, 0x83, 0xff, 0x15, 0x20, 0xbd, 0xd6, 0xc5, 0x43, + 0x44, 0x3b, 0x47, 0xb4, 0xd1, 0x0d, 0x4e, 0x7d, 0x8a, 0xd9, 0x0e, 0x7e, 0x80, 0xf1, 0x51, 0xc4, + 0x27, 0x43, 0x4c, 0x1a, 0x1d, 0x9b, 0xa0, 0xc6, 0xf1, 0x7e, 0x07, 0x51, 0x7b, 0xbf, 0xd1, 0xc5, + 0xae, 0x27, 0xf9, 0x1b, 0x92, 0x3f, 0x24, 0x0e, 0x13, 0x1d, 0x12, 0x47, 0x32, 0x36, 0x05, 0xa3, + 0xcd, 0x57, 0x0d, 0xb1, 0x90, 0xac, 0x35, 0x07, 0x3b, 0x58, 0xd0, 0xd9, 0x7f, 0x92, 0x7a, 0x73, + 0xda, 0x93, 0x53, 0x1f, 0x49, 0x19, 0x38, 0xc9, 0x81, 0xa5, 0x16, 0x71, 0x2c, 0xd4, 0xc5, 0x41, + 0xcf, 0xb4, 0x69, 0xb7, 0xaf, 0x3d, 0x04, 0x25, 0x32, 0xea, 0x0c, 0x5d, 0x4a, 0x51, 0x50, 0xcd, + 0x6d, 0xe5, 0x76, 0x4a, 0xe6, 0xde, 0x64, 0x6c, 0xac, 0x9c, 0xda, 0xc3, 0x41, 0x13, 0x2a, 0x16, + 0xfc, 0xdb, 0x5f, 0xee, 0xae, 0x49, 0xfd, 0x1f, 0xf4, 0x7a, 0x01, 0x22, 0xe4, 0x87, 0x34, 0x70, + 0x3d, 0xc7, 0x8a, 0xc4, 0xb5, 0x7d, 0x50, 0xea, 0x04, 0x6e, 0xcf, 0x41, 0x6d, 0xb7, 0x57, 0xcd, + 0x6f, 0xe5, 0x76, 0x16, 0xcd, 0xb5, 0x68, 0x2f, 0xc5, 0x82, 0x56, 0x51, 0xfc, 0xff, 0xa0, 0xa7, + 0x7d, 0x1b, 0x94, 0x3b, 0xcc, 0x8e, 0x76, 0xe7, 0x94, 0x22, 0x52, 0xbd, 0xb4, 0x95, 0xdb, 0xa9, + 0x98, 0xeb, 0x93, 0xb1, 0xa1, 0x49, 0xa1, 0x88, 0x09, 0x2d, 0xc0, 0x57, 0x26, 0x5b, 0x34, 0x77, + 0x7e, 0xf3, 0xea, 0xd9, 0x6e, 0xa4, 0xfb, 0xf7, 0xaf, 0x9e, 0xed, 0x5e, 0x97, 0x4e, 0x27, 0x3d, + 0x84, 0x55, 0xb0, 0x9e, 0xa4, 0x58, 0x88, 0xf8, 0xd8, 0x23, 0x08, 0xfe, 0x3d, 0x07, 0x96, 0x5b, + 0xc4, 0x39, 0x0c, 0x90, 0x4d, 0x91, 0xc9, 0x4d, 0xd2, 0xee, 0x83, 0x2b, 0x5d, 0xb6, 0xc6, 0x61, + 0x34, 0x76, 0x27, 0x63, 0x63, 0x49, 0x18, 0x23, 0x19, 0xb3, 0x63, 0x11, 0x8a, 0x6a, 0x16, 0x28, + 0x74, 0xb1, 0x77, 0xe4, 0x3a, 0x3c, 0x0c, 0xe5, 0x83, 0x5a, 0x3d, 0x5d, 0x46, 0x75, 0xa1, 0xef, + 0x90, 0xa3, 0x4c, 0xfd, 0xf9, 0xd8, 0x58, 0x98, 0x8c, 0x8d, 0xab, 0x52, 0x11, 0xa7, 0xc2, 0x4f, + 0x5f, 0x3d, 0xdb, 0xcd, 0x59, 0x72, 0xa7, 0xe6, 0xd7, 0x99, 0xc7, 0xa1, 0x06, 0xe6, 0xef, 0x7a, + 0xe4, 0x6f, 0xdc, 0x05, 0x78, 0x0f, 0x6c, 0xa4, 0x48, 0xa1, 0xc7, 0xda, 0x8d, 0x78, 0x86, 0x98, + 0x7f, 0x8b, 0x51, 0x2e, 0xe0, 0x24, 0x0f, 0x56, 0x5a, 0xc4, 0x79, 0x1c, 0x60, 0x1f, 0x13, 0xf4, + 0x68, 0x44, 0xfd, 0x11, 0xd5, 0x3e, 0x02, 0x45, 0x5f, 0x10, 0xc2, 0x80, 0xdc, 0x99, 0x8c, 0x8d, + 0x65, 0x61, 0x67, 0xc8, 0x99, 0x1d, 0x11, 0x25, 0x7c, 0x9e, 0xe2, 0x68, 0x82, 0x0a, 0xe6, 0x56, + 0xb4, 0x5d, 0xaf, 0x87, 0x9e, 0xf2, 0xea, 0x58, 0x34, 0x37, 0x26, 0x63, 0xe3, 0x9a, 0x90, 0x8a, + 0x73, 0xa1, 0x55, 0x16, 0xcb, 0x07, 0x6c, 0xa5, 0x99, 0x60, 0x79, 0x70, 0xd0, 0xee, 0x0c, 0x70, + 0xf7, 0x49, 0xdb, 0x1b, 0x0d, 0x3b, 0x28, 0xa8, 0x2e, 0x72, 0x71, 0x7d, 0x32, 0x36, 0xd6, 0x85, + 0x78, 0x0a, 0x00, 0xad, 0xab, 0x83, 0x03, 0x93, 0x11, 0x7e, 0xc0, 0xd7, 0xac, 0x38, 0xa5, 0x86, + 0x00, 0x63, 0x5a, 0xbd, 0x9c, 0x2e, 0xce, 0x18, 0x13, 0x5a, 0x40, 0xac, 0x2c, 0x8c, 0x69, 0xf3, + 0x36, 0x4b, 0x95, 0x72, 0x9d, 0xe5, 0x6a, 0x23, 0xca, 0x55, 0x22, 0xbe, 0x50, 0x07, 0xd5, 0x34, + 0x4d, 0xd5, 0xe7, 0x7f, 0x45, 0x7d, 0xde, 0x47, 0x03, 0x44, 0xc3, 0x7c, 0xb4, 0x00, 0xe8, 0xf6, + 0xed, 0xc1, 0x00, 0x79, 0x8e, 0xca, 0xc8, 0xdd, 0xc9, 0xd8, 0x58, 0x95, 0x95, 0xa3, 0x78, 0xb3, + 0x73, 0x12, 0xdb, 0xe0, 0x0b, 0xce, 0x4a, 0x73, 0x97, 0x05, 0x26, 0xa6, 0x3f, 0x55, 0xc6, 0x71, + 0x4f, 0xe1, 0x26, 0x2f, 0xe3, 0x38, 0x29, 0x0a, 0x4c, 0x9e, 0xf3, 0x1e, 0x78, 0x2e, 0x75, 0x6d, + 0x8a, 0x7e, 0x84, 0x9f, 0x20, 0xef, 0x3e, 0xf2, 0x31, 0x71, 0xa9, 0xf6, 0x01, 0x28, 0x10, 0xe4, + 0xf5, 0x54, 0x70, 0x6e, 0x47, 0xc7, 0x4a, 0xd0, 0x67, 0x07, 0x46, 0x0a, 0x9e, 0x27, 0x28, 0xdf, + 0x02, 0x79, 0x8a, 0x79, 0x28, 0x4a, 0xe6, 0xd7, 0x26, 0x63, 0xa3, 0x24, 0xb0, 0x14, 0xcf, 0xd6, + 0x96, 0xa7, 0x58, 0x6b, 0x81, 0x82, 0x3d, 0xc4, 0x23, 0x8f, 0xf2, 0xe2, 0x2c, 0x1f, 0x6c, 0xd6, + 0x25, 0x94, 0xdd, 0x14, 0x75, 0x79, 0x53, 0xd4, 0x0f, 0xb1, 0xeb, 0xa5, 0x5b, 0x84, 0x10, 0x0b, + 0x5b, 0x84, 0x58, 0x69, 0x7b, 0x60, 0xb1, 0x67, 0x53, 0x5b, 0x56, 0x6a, 0xf5, 0xf9, 0xd8, 0xc8, + 0x4d, 0xc6, 0x46, 0x59, 0x48, 0x30, 0x0e, 0xc7, 0x2f, 0x58, 0x1c, 0xd5, 0xbc, 0xf7, 0xdb, 0x4f, + 0x8c, 0x85, 0xcf, 0x3f, 0x31, 0x16, 0x58, 0x52, 0xa4, 0xef, 0x2c, 0x21, 0xb5, 0x28, 0x21, 0x59, + 0x11, 0x86, 0xdf, 0x01, 0xc6, 0x0c, 0x96, 0xea, 0x33, 0x3a, 0x28, 0x12, 0xf4, 0x8b, 0x11, 0xf2, + 0xba, 0x28, 0x6c, 0x33, 0xe1, 0x1a, 0xfe, 0xf9, 0x32, 0xd0, 0x5b, 0xc4, 0xf9, 0xd0, 0xf5, 0xec, + 0x81, 0xfb, 0x4b, 0x21, 0xff, 0x13, 0x97, 0xf6, 0x7b, 0x81, 0x7d, 0x62, 0x0f, 0xbe, 0xe8, 0x3e, + 0x71, 0x0f, 0xac, 0x9e, 0x28, 0xe5, 0x6d, 0x7e, 0x69, 0x93, 0xea, 0xe2, 0xd6, 0xa5, 0x9d, 0x8a, + 0x59, 0x62, 0xf1, 0x13, 0x01, 0x5b, 0x89, 0x30, 0x8f, 0x39, 0x24, 0x56, 0x66, 0x97, 0xcf, 0x5b, + 0x66, 0x1f, 0x81, 0x62, 0x80, 0xba, 0xc8, 0x3d, 0xce, 0x6a, 0xad, 0x21, 0x67, 0x4e, 0x6b, 0x0d, + 0x21, 0x5a, 0x23, 0x16, 0xed, 0x02, 0xf7, 0xfd, 0x5a, 0xb4, 0x91, 0x8a, 0x7b, 0x94, 0x82, 0x58, + 0xd9, 0x5d, 0x79, 0x3b, 0x65, 0x77, 0xe5, 0x18, 0x05, 0xc4, 0xc5, 0x5e, 0xb5, 0xc8, 0x2b, 0x4f, + 0x8b, 0xee, 0x4c, 0xc9, 0x80, 0x56, 0x08, 0x61, 0xd9, 0x22, 0x14, 0x07, 0xb6, 0x83, 0x44, 0x5b, + 0x2d, 0x71, 0x91, 0x58, 0xb6, 0xe2, 0x5c, 0x68, 0x95, 0xe5, 0x92, 0x35, 0x56, 0xde, 0xd5, 0x6d, + 0x42, 0x65, 0xdb, 0xee, 0xdb, 0xa4, 0x5f, 0x05, 0x5c, 0x3c, 0xde, 0xd5, 0x93, 0x00, 0xd6, 0xd5, + 0x6d, 0x42, 0x79, 0x5f, 0xff, 0xbe, 0x4d, 0xfa, 0xcd, 0xf7, 0x79, 0x73, 0x0e, 0x83, 0xc7, 0x0a, + 0x7e, 0x3b, 0x2a, 0xf8, 0x19, 0x55, 0x09, 0x6f, 0x01, 0x38, 0x9b, 0xab, 0xfa, 0xd2, 0x7f, 0x0a, + 0xbc, 0x2f, 0x7d, 0x88, 0x83, 0xee, 0x45, 0xd7, 0x75, 0xbc, 0x26, 0x16, 0xcf, 0x52, 0x13, 0x5f, + 0xa6, 0x82, 0x8e, 0xea, 0xb3, 0xf0, 0x36, 0xea, 0x73, 0x08, 0x56, 0xba, 0x78, 0x38, 0x74, 0xe9, + 0x10, 0x79, 0x54, 0x9c, 0x71, 0x59, 0xf8, 0x37, 0xeb, 0xe1, 0xe4, 0x5e, 0x17, 0x93, 0x3b, 0x9b, + 0xcc, 0xf8, 0x09, 0x7f, 0xe4, 0x13, 0xf3, 0x96, 0xdc, 0x7b, 0x23, 0x9c, 0xca, 0x92, 0x7b, 0x48, + 0x2d, 0xcb, 0x11, 0x9d, 0x4b, 0x6a, 0x75, 0x50, 0xb4, 0x7d, 0x5f, 0x54, 0xa7, 0x38, 0x0f, 0xb1, + 0xd0, 0x87, 0x1c, 0x68, 0x5d, 0xb1, 0x7d, 0x9f, 0x15, 0xa4, 0xd6, 0x05, 0x4b, 0x21, 0x55, 0x1a, + 0x57, 0x52, 0x5e, 0x67, 0x1b, 0x67, 0x42, 0x69, 0xd9, 0xf5, 0xe4, 0xa6, 0x09, 0xbb, 0x2a, 0x72, + 0x7f, 0x61, 0x54, 0xec, 0x8c, 0x82, 0x37, 0x3f, 0xa3, 0xe5, 0xff, 0xef, 0x8c, 0x56, 0xde, 0xf4, + 0x8c, 0x7e, 0x63, 0xea, 0x8c, 0xc6, 0x2e, 0xa5, 0xac, 0xe3, 0x05, 0xb7, 0xf9, 0xa5, 0x94, 0xc5, + 0x52, 0xa7, 0xf3, 0x8f, 0x79, 0xb0, 0xda, 0x22, 0xce, 0x8f, 0xfd, 0x9e, 0x4d, 0xd1, 0xe3, 0x70, + 0x2e, 0x7d, 0x08, 0x4a, 0xf6, 0x88, 0xf6, 0x71, 0xe0, 0xd2, 0xd3, 0xe9, 0x0f, 0x20, 0xc5, 0x9a, + 0xf3, 0x01, 0xa4, 0x30, 0xe7, 0x39, 0xe3, 0x16, 0xa8, 0x78, 0xe8, 0xa4, 0xad, 0x66, 0x6c, 0x31, + 0x42, 0x34, 0xa2, 0x48, 0xc7, 0xb9, 0xb3, 0x8d, 0x28, 0x7b, 0xe8, 0x24, 0x74, 0xa9, 0x79, 0x87, + 0x7f, 0x1b, 0x29, 0xb3, 0x58, 0xf8, 0xaa, 0x51, 0xf8, 0x92, 0xfe, 0xc3, 0x23, 0xb0, 0x39, 0x45, + 0x54, 0xf7, 0xf8, 0x76, 0xaa, 0x03, 0x89, 0xbb, 0x3c, 0xd1, 0x68, 0xde, 0x9b, 0x1e, 0xb4, 0xb9, + 0xe7, 0xa9, 0x61, 0x1a, 0xfe, 0x29, 0x0f, 0xd6, 0x94, 0xa2, 0x43, 0x35, 0x01, 0x92, 0x8b, 0x4e, + 0xc0, 0xcf, 0xc1, 0x32, 0x0b, 0x71, 0x34, 0x93, 0xb2, 0xaf, 0xd0, 0x4b, 0x3b, 0x25, 0xf3, 0x20, + 0x2a, 0xd7, 0x14, 0x60, 0xb6, 0x29, 0x4b, 0x1e, 0x3a, 0x89, 0xf9, 0xd6, 0xac, 0x4f, 0x67, 0xe2, + 0x46, 0x3a, 0x13, 0x31, 0x3c, 0x74, 0xc1, 0xcd, 0x2c, 0xfa, 0xbb, 0xc8, 0xc7, 0xa7, 0x79, 0xa0, + 0x29, 0x5d, 0xfc, 0xbb, 0xf8, 0x81, 0x77, 0x84, 0x2f, 0x3a, 0x1b, 0x08, 0xb0, 0x10, 0xb6, 0xc5, + 0x67, 0xbf, 0xeb, 0x1d, 0x89, 0x99, 0xba, 0x7c, 0x70, 0x23, 0xe3, 0x03, 0x3a, 0xb4, 0x39, 0xdd, + 0x0d, 0x93, 0x1b, 0x84, 0xdd, 0xd0, 0x43, 0x27, 0x4a, 0xa2, 0xb9, 0x37, 0x9d, 0x97, 0xcd, 0x74, + 0x5e, 0x14, 0x1a, 0x3a, 0x7c, 0x60, 0x4d, 0x51, 0xdf, 0x45, 0x4e, 0x7e, 0x97, 0x07, 0xd7, 0x95, + 0xa6, 0x47, 0x81, 0xdd, 0x1d, 0xc8, 0x07, 0x82, 0x8b, 0x4e, 0xcb, 0x77, 0xc1, 0x12, 0xe6, 0xe6, + 0xb4, 0x91, 0x67, 0x77, 0x06, 0xa8, 0xc7, 0xd3, 0x52, 0x34, 0x37, 0xa3, 0xa8, 0x27, 0xf9, 0xd0, + 0xba, 0x2a, 0x08, 0xdf, 0x13, 0xeb, 0x66, 0x63, 0x3a, 0xe2, 0x37, 0xd3, 0x11, 0x8f, 0x7b, 0x0c, + 0x0d, 0xf0, 0x95, 0x4c, 0x86, 0x6a, 0xe7, 0xff, 0xce, 0xc5, 0xda, 0x79, 0x0b, 0x51, 0x9b, 0x7d, + 0xd4, 0x5c, 0x74, 0xa0, 0x1a, 0xa0, 0x38, 0x94, 0xa6, 0xc8, 0xc7, 0xac, 0xd8, 0xdd, 0x1f, 0x72, + 0xa0, 0xa5, 0x40, 0x67, 0xea, 0xd5, 0xa1, 0x73, 0x89, 0x5e, 0x1d, 0x12, 0xdf, 0x45, 0x1d, 0xfe, + 0x55, 0x3c, 0x3c, 0xc8, 0x4b, 0xc1, 0x0e, 0xec, 0xe1, 0xdb, 0x6d, 0xd3, 0x87, 0xa0, 0xe0, 0xf3, + 0x5d, 0xe5, 0xf3, 0x58, 0x75, 0xfa, 0x74, 0x0b, 0xad, 0xe6, 0x6a, 0x34, 0xda, 0x09, 0x09, 0x68, + 0x49, 0x51, 0xf1, 0xc8, 0x92, 0x8c, 0xdc, 0xfa, 0xd4, 0x2d, 0x27, 0x64, 0xc4, 0x53, 0x42, 0x9c, + 0x14, 0x46, 0xed, 0xe0, 0xf3, 0x12, 0xb8, 0xd4, 0x22, 0x8e, 0xf6, 0x53, 0x50, 0x8e, 0x3f, 0x8b, + 0x6e, 0x4d, 0x5b, 0x94, 0x7c, 0x44, 0xd4, 0x77, 0x5e, 0x87, 0x50, 0x89, 0xf9, 0x18, 0x54, 0x12, + 0x4f, 0x8c, 0xdb, 0x99, 0x92, 0x71, 0x88, 0x7e, 0xfb, 0xb5, 0x10, 0xb5, 0x7b, 0x1b, 0x5c, 0x4d, + 0xbe, 0xd8, 0xc1, 0x4c, 0xd9, 0x04, 0x46, 0xdf, 0x7d, 0x3d, 0x26, 0x6e, 0x7e, 0xe2, 0x05, 0x2a, + 0xdb, 0xfc, 0x38, 0x64, 0x86, 0xf9, 0x59, 0x4f, 0x39, 0x1a, 0x05, 0x6b, 0x99, 0xcf, 0x38, 0xd9, + 0x5b, 0x64, 0x41, 0xf5, 0xfd, 0x33, 0x43, 0x95, 0xd6, 0x5f, 0x81, 0x8d, 0x59, 0xef, 0x0f, 0x7b, + 0x99, 0xbb, 0xcd, 0x40, 0xeb, 0xdf, 0x7c, 0x13, 0xb4, 0x52, 0x4f, 0xc0, 0xb5, 0xf4, 0xa4, 0xca, + 0x54, 0x67, 0xfb, 0x9c, 0x35, 0xd3, 0xce, 0xf0, 0x79, 0xde, 0xf8, 0xab, 0x75, 0xc0, 0x52, 0x6a, + 0xf4, 0xfd, 0x6a, 0xe6, 0x26, 0x49, 0x90, 0x7e, 0xe7, 0x0c, 0x20, 0xa5, 0xe3, 0x09, 0x58, 0x9d, + 0x1e, 0xf0, 0xde, 0x9b, 0xb3, 0x43, 0x0c, 0xa7, 0xd7, 0xcf, 0x86, 0x53, 0xca, 0x10, 0x58, 0x4e, + 0x4f, 0x2f, 0xb7, 0xe6, 0x6c, 0xa1, 0x50, 0xfa, 0xde, 0x59, 0x50, 0xd3, 0x71, 0x53, 0x77, 0xcc, + 0xbc, 0xb8, 0x85, 0xa0, 0xb9, 0x71, 0x9b, 0xea, 0xdd, 0x1f, 0x83, 0x4a, 0xa2, 0xd9, 0x6e, 0xcf, + 0x0b, 0x3a, 0x87, 0xcc, 0x38, 0x63, 0x59, 0x3d, 0x4e, 0xbf, 0xfc, 0x6b, 0x36, 0x02, 0x99, 0x0f, + 0x9f, 0xff, 0xab, 0xb6, 0xf0, 0xfc, 0x45, 0x2d, 0xf7, 0xd9, 0x8b, 0x5a, 0xee, 0x9f, 0x2f, 0x6a, + 0xb9, 0x3f, 0xbc, 0xac, 0x2d, 0x7c, 0xf6, 0xb2, 0xb6, 0xf0, 0x8f, 0x97, 0xb5, 0x85, 0x9f, 0xed, + 0x39, 0x2e, 0xed, 0x8f, 0x3a, 0xec, 0x9b, 0xb3, 0xe1, 0xf2, 0xb3, 0x73, 0x77, 0x60, 0x77, 0x48, + 0xe3, 0xd1, 0x63, 0xfe, 0x83, 0xd2, 0xd3, 0xf0, 0x27, 0x25, 0xfe, 0x7b, 0x52, 0xa7, 0xc0, 0x7f, + 0x50, 0x7a, 0xff, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x55, 0xca, 0x0c, 0xb0, 0x3a, 0x1b, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2306,8 +2306,8 @@ func (m *MsgForceTokenWithdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) i-- dAtA[i] = 0x2a } - if m.L2Sequence != 0 { - i = encodeVarintTx(dAtA, i, uint64(m.L2Sequence)) + if m.Sequence != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Sequence)) i-- dAtA[i] = 0x20 } @@ -3031,8 +3031,8 @@ func (m *MsgForceTokenWithdrawal) Size() (n int) { if m.OutputIndex != 0 { n += 1 + sovTx(uint64(m.OutputIndex)) } - if m.L2Sequence != 0 { - n += 1 + sovTx(uint64(m.L2Sequence)) + if m.Sequence != 0 { + n += 1 + sovTx(uint64(m.Sequence)) } l = len(m.Sender) if l > 0 { @@ -4792,9 +4792,9 @@ func (m *MsgForceTokenWithdrawal) Unmarshal(dAtA []byte) error { } case 4: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field L2Sequence", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType) } - m.L2Sequence = 0 + m.Sequence = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -4804,7 +4804,7 @@ func (m *MsgForceTokenWithdrawal) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.L2Sequence |= uint64(b&0x7F) << shift + m.Sequence |= uint64(b&0x7F) << shift if b < 0x80 { break } diff --git a/x/ophost/types/tx_test.go b/x/ophost/types/tx_test.go index 00232fbc..c412c66a 100644 --- a/x/ophost/types/tx_test.go +++ b/x/ophost/types/tx_test.go @@ -40,7 +40,7 @@ func TestMsgForceTokenWithdrawal(t *testing.T) { 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, bytes.Repeat([]byte{1}, 32), v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), ) require.NoError(t, validMsg.Validate(ac)) @@ -50,7 +50,7 @@ func TestMsgForceTokenWithdrawal(t *testing.T) { 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, nil, v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), ) require.Error(t, invalidMsg.Validate(ac)) @@ -60,7 +60,7 @@ func TestMsgForceTokenWithdrawal(t *testing.T) { 1, "", addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, bytes.Repeat([]byte{1}, 32), v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), ) require.Error(t, invalidMsg.Validate(ac)) @@ -70,7 +70,7 @@ func TestMsgForceTokenWithdrawal(t *testing.T) { 1, addr, "", sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, bytes.Repeat([]byte{1}, 32), v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), ) require.Error(t, invalidMsg.Validate(ac)) @@ -80,7 +80,7 @@ func TestMsgForceTokenWithdrawal(t *testing.T) { 1, addr, addr, sdk.NewInt64Coin("test", 0), v1.ProofOps{Ops: []v1.ProofOp{{}}}, bytes.Repeat([]byte{1}, 32), v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), ) require.Error(t, invalidMsg.Validate(ac)) @@ -90,7 +90,7 @@ func TestMsgForceTokenWithdrawal(t *testing.T) { 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, bytes.Repeat([]byte{1}, 32), v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), ) invalidMsg.Version = []byte{1, 2} require.Error(t, invalidMsg.Validate(ac)) @@ -101,7 +101,7 @@ func TestMsgForceTokenWithdrawal(t *testing.T) { 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, bytes.Repeat([]byte{1}, 32), v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - byte(1), nil, bytes.Repeat([]byte{1}, 32), + []byte{1}, nil, bytes.Repeat([]byte{1}, 32), ) require.Error(t, invalidMsg.Validate(ac)) @@ -111,7 +111,7 @@ func TestMsgForceTokenWithdrawal(t *testing.T) { 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, bytes.Repeat([]byte{1}, 32), v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - byte(1), bytes.Repeat([]byte{1}, 32), nil, + []byte{1}, bytes.Repeat([]byte{1}, 32), nil, ) require.Error(t, invalidMsg.Validate(ac)) @@ -121,7 +121,7 @@ func TestMsgForceTokenWithdrawal(t *testing.T) { 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{}}, bytes.Repeat([]byte{1}, 32), v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), ) require.Error(t, invalidMsg.Validate(ac)) @@ -131,7 +131,7 @@ func TestMsgForceTokenWithdrawal(t *testing.T) { 0, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, bytes.Repeat([]byte{1}, 32), v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - byte(1), bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), + []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), ) require.Error(t, invalidMsg.Validate(ac)) } From 5dd302e8b770a1e50ceb34e7cbe8cddf666206f7 Mon Sep 17 00:00:00 2001 From: beer-1 Date: Wed, 28 Aug 2024 23:20:01 +0900 Subject: [PATCH 04/16] add comments --- api/opinit/opchild/v1/query.pulsar.go | 273 +++++++++++++------------- proto/opinit/opchild/v1/query.proto | 6 +- x/opchild/client/cli/tx.go | 3 +- x/opchild/client/cli/tx_test.go | 3 +- x/opchild/keeper/querier.go | 20 +- x/opchild/types/query.pb.go | 154 +++++++-------- x/opchild/types/query.pb.gw.go | 18 +- x/ophost/client/cli/tx.go | 26 ++- x/ophost/client/cli/tx_test.go | 114 ++++++++++- x/ophost/client/cli/types.go | 33 +--- 10 files changed, 367 insertions(+), 283 deletions(-) diff --git a/api/opinit/opchild/v1/query.pulsar.go b/api/opinit/opchild/v1/query.pulsar.go index ccf7add7..4d4d98fe 100644 --- a/api/opinit/opchild/v1/query.pulsar.go +++ b/api/opinit/opchild/v1/query.pulsar.go @@ -5826,14 +5826,14 @@ func (x *fastReflection_QueryBaseDenomResponse) ProtoMethods() *protoiface.Metho } var ( - md_QueryForceWithdrawalProofsRequest protoreflect.MessageDescriptor - fd_QueryForceWithdrawalProofsRequest_l2_sequence protoreflect.FieldDescriptor + md_QueryForceWithdrawalProofsRequest protoreflect.MessageDescriptor + fd_QueryForceWithdrawalProofsRequest_sequence protoreflect.FieldDescriptor ) func init() { file_opinit_opchild_v1_query_proto_init() md_QueryForceWithdrawalProofsRequest = File_opinit_opchild_v1_query_proto.Messages().ByName("QueryForceWithdrawalProofsRequest") - fd_QueryForceWithdrawalProofsRequest_l2_sequence = md_QueryForceWithdrawalProofsRequest.Fields().ByName("l2_sequence") + fd_QueryForceWithdrawalProofsRequest_sequence = md_QueryForceWithdrawalProofsRequest.Fields().ByName("sequence") } var _ protoreflect.Message = (*fastReflection_QueryForceWithdrawalProofsRequest)(nil) @@ -5901,9 +5901,9 @@ func (x *fastReflection_QueryForceWithdrawalProofsRequest) Interface() protorefl // While iterating, mutating operations may only be performed // on the current field descriptor. func (x *fastReflection_QueryForceWithdrawalProofsRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.L2Sequence != uint64(0) { - value := protoreflect.ValueOfUint64(x.L2Sequence) - if !f(fd_QueryForceWithdrawalProofsRequest_l2_sequence, value) { + if x.Sequence != uint64(0) { + value := protoreflect.ValueOfUint64(x.Sequence) + if !f(fd_QueryForceWithdrawalProofsRequest_sequence, value) { return } } @@ -5922,8 +5922,8 @@ func (x *fastReflection_QueryForceWithdrawalProofsRequest) Range(f func(protoref // a repeated field is populated if it is non-empty. func (x *fastReflection_QueryForceWithdrawalProofsRequest) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.l2_sequence": - return x.L2Sequence != uint64(0) + case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.sequence": + return x.Sequence != uint64(0) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsRequest")) @@ -5940,8 +5940,8 @@ func (x *fastReflection_QueryForceWithdrawalProofsRequest) Has(fd protoreflect.F // Clear is a mutating operation and unsafe for concurrent use. func (x *fastReflection_QueryForceWithdrawalProofsRequest) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.l2_sequence": - x.L2Sequence = uint64(0) + case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.sequence": + x.Sequence = uint64(0) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsRequest")) @@ -5958,8 +5958,8 @@ func (x *fastReflection_QueryForceWithdrawalProofsRequest) Clear(fd protoreflect // of the value; to obtain a mutable reference, use Mutable. func (x *fastReflection_QueryForceWithdrawalProofsRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.l2_sequence": - value := x.L2Sequence + case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.sequence": + value := x.Sequence return protoreflect.ValueOfUint64(value) default: if descriptor.IsExtension() { @@ -5981,8 +5981,8 @@ func (x *fastReflection_QueryForceWithdrawalProofsRequest) Get(descriptor protor // Set is a mutating operation and unsafe for concurrent use. func (x *fastReflection_QueryForceWithdrawalProofsRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.l2_sequence": - x.L2Sequence = value.Uint() + case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.sequence": + x.Sequence = value.Uint() default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsRequest")) @@ -6003,8 +6003,8 @@ func (x *fastReflection_QueryForceWithdrawalProofsRequest) Set(fd protoreflect.F // Mutable is a mutating operation and unsafe for concurrent use. func (x *fastReflection_QueryForceWithdrawalProofsRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.l2_sequence": - panic(fmt.Errorf("field l2_sequence of message opinit.opchild.v1.QueryForceWithdrawalProofsRequest is not mutable")) + case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.sequence": + panic(fmt.Errorf("field sequence of message opinit.opchild.v1.QueryForceWithdrawalProofsRequest is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsRequest")) @@ -6018,7 +6018,7 @@ func (x *fastReflection_QueryForceWithdrawalProofsRequest) Mutable(fd protorefle // For lists, maps, and messages, this returns a new, empty, mutable value. func (x *fastReflection_QueryForceWithdrawalProofsRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.l2_sequence": + case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.sequence": return protoreflect.ValueOfUint64(uint64(0)) default: if fd.IsExtension() { @@ -6089,8 +6089,8 @@ func (x *fastReflection_QueryForceWithdrawalProofsRequest) ProtoMethods() *proto var n int var l int _ = l - if x.L2Sequence != 0 { - n += 1 + runtime.Sov(uint64(x.L2Sequence)) + if x.Sequence != 0 { + n += 1 + runtime.Sov(uint64(x.Sequence)) } if x.unknownFields != nil { n += len(x.unknownFields) @@ -6121,8 +6121,8 @@ func (x *fastReflection_QueryForceWithdrawalProofsRequest) ProtoMethods() *proto i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if x.L2Sequence != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.L2Sequence)) + if x.Sequence != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Sequence)) i-- dAtA[i] = 0x8 } @@ -6177,9 +6177,9 @@ func (x *fastReflection_QueryForceWithdrawalProofsRequest) ProtoMethods() *proto switch fieldNum { case 1: if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field L2Sequence", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType) } - x.L2Sequence = 0 + x.Sequence = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -6189,7 +6189,7 @@ func (x *fastReflection_QueryForceWithdrawalProofsRequest) ProtoMethods() *proto } b := dAtA[iNdEx] iNdEx++ - x.L2Sequence |= uint64(b&0x7F) << shift + x.Sequence |= uint64(b&0x7F) << shift if b < 0x80 { break } @@ -7313,8 +7313,8 @@ type QueryForceWithdrawalProofsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // l2_sequence is the sequence number of the l2 block. - L2Sequence uint64 `protobuf:"varint,1,opt,name=l2_sequence,json=l2Sequence,proto3" json:"l2_sequence,omitempty"` + // sequence is the sequence number of the withdrawal. + Sequence uint64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"` } func (x *QueryForceWithdrawalProofsRequest) Reset() { @@ -7337,9 +7337,9 @@ func (*QueryForceWithdrawalProofsRequest) Descriptor() ([]byte, []int) { return file_opinit_opchild_v1_query_proto_rawDescGZIP(), []int{14} } -func (x *QueryForceWithdrawalProofsRequest) GetL2Sequence() uint64 { +func (x *QueryForceWithdrawalProofsRequest) GetSequence() uint64 { if x != nil { - return x.L2Sequence + return x.Sequence } return 0 } @@ -7483,123 +7483,122 @@ var file_opinit_opchild_v1_query_proto_rawDesc = []byte{ 0x37, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, - 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x44, 0x0a, 0x21, 0x51, 0x75, 0x65, 0x72, + 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x3f, 0x0a, 0x21, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, - 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, - 0x0b, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xa8, - 0x02, 0x0a, 0x22, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x70, 0x73, 0x42, 0x24, 0xc8, - 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x2e, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x13, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, - 0x3a, 0x22, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x52, 0x07, 0x61, 0x70, 0x70, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x63, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, - 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x22, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, - 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, - 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x61, 0x70, 0x70, - 0x48, 0x61, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x32, 0xf4, 0x09, 0x0a, 0x05, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x12, 0x8f, 0x01, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xa8, 0x02, 0x0a, 0x22, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x6d, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6d, + 0x65, 0x74, 0x62, 0x66, 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x70, 0x73, 0x42, 0x24, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, + 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, + 0x2e, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0c, 0x42, 0x13, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x70, 0x70, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x52, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x63, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, + 0x66, 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x6f, 0x66, 0x42, 0x22, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, + 0x3a, 0x22, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x32, 0xf1, 0x09, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x8f, + 0x01, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, - 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, - 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x7d, 0x12, 0x90, 0x01, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1f, 0x12, 0x1d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, + 0x12, 0x9c, 0x01, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x88, 0xe7, 0xb0, 0x2a, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x7f, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x26, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x0e, 0x4e, 0x65, 0x78, - 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x88, 0xe7, 0xb0, 0x2a, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0xa1, 0x01, 0x0a, - 0x0e, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, - 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, + 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, + 0x12, 0x2d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2f, 0x7b, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x12, + 0x90, 0x01, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, - 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x6f, 0x70, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x12, 0x7f, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x25, 0x2e, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x88, 0xe7, 0xb0, + 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x0e, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, + 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, + 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x25, 0x12, 0x23, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x0e, 0x4e, 0x65, 0x78, 0x74, + 0x4c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x88, 0xe7, 0xb0, 0x2a, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, + 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x09, + 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x73, + 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, + 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x94, 0x01, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x28, - 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x32, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, - 0x12, 0x25, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x2f, - 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0xc6, 0x01, 0x0a, 0x15, 0x46, 0x6f, 0x72, 0x63, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x7d, 0x12, 0xc3, 0x01, 0x0a, 0x15, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x12, 0x34, 0x2e, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, 0x66, - 0x73, 0x12, 0x34, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x63, 0x65, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, - 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, - 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, - 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x6c, 0x32, 0x5f, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, - 0x42, 0xc8, 0x01, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, - 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x11, - 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1d, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, - 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x13, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, - 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x88, 0xe7, 0xb0, 0x2a, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, + 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x42, 0xc8, 0x01, 0x0a, 0x15, 0x63, 0x6f, 0x6d, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, + 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, + 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1d, + 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x13, + 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/opinit/opchild/v1/query.proto b/proto/opinit/opchild/v1/query.proto index 7466e2e9..e5d3c63f 100644 --- a/proto/opinit/opchild/v1/query.proto +++ b/proto/opinit/opchild/v1/query.proto @@ -61,7 +61,7 @@ service Query { rpc ForceWithdrawalProofs(QueryForceWithdrawalProofsRequest) returns (QueryForceWithdrawalProofsResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/opchild/v1/withdrawals/{l2_sequence}/proofs"; + option (google.api.http).get = "/opinit/opchild/v1/withdrawals/{sequence}/proofs"; } } @@ -140,8 +140,8 @@ message QueryBaseDenomResponse { // QueryForceWithdrawalProofsRequest is request type for the Query/ForceWithdrawalProofs RPC method. message QueryForceWithdrawalProofsRequest { - // l2_sequence is the sequence number of the l2 block. - uint64 l2_sequence = 1; + // sequence is the sequence number of the withdrawal. + uint64 sequence = 1; } // QueryForceWithdrawalProofsResponse is response type for the Query/ForceWithdrawalProofs RPC method. diff --git a/x/opchild/client/cli/tx.go b/x/opchild/client/cli/tx.go index f7d4b4a6..b97e4aa8 100644 --- a/x/opchild/client/cli/tx.go +++ b/x/opchild/client/cli/tx.go @@ -299,7 +299,7 @@ func NewSetBridgeInfoCmd(ac address.Codec) *cobra.Command { return err } - origConfig := ophostcli.BridgeCliConfig{} + var origConfig ophostcli.BridgeCliConfig err = json.Unmarshal(configBytes, &origConfig) if err != nil { return err @@ -328,6 +328,7 @@ func NewSetBridgeInfoCmd(ac address.Codec) *cobra.Command { SubmissionStartHeight: submissionStartHeight, Metadata: []byte(origConfig.Metadata), BatchInfo: origConfig.BatchInfo, + OracleEnabled: origConfig.OracleEnabled, } if err = bridgeConfig.ValidateWithNoAddrValidation(); err != nil { diff --git a/x/opchild/client/cli/tx_test.go b/x/opchild/client/cli/tx_test.go index 70f9b468..d98b1879 100644 --- a/x/opchild/client/cli/tx_test.go +++ b/x/opchild/client/cli/tx_test.go @@ -439,7 +439,8 @@ func (s *CLITestSuite) TestNewSetBridgeInfo() { "batch_info": { "submitter": "init1q6jhwnarkw2j5qqgx3qlu20k8nrdglft5ksr0g", "chain_type": "INITIA" - } + }, + "oracle_enabled": true }`) s.NoError(err) diff --git a/x/opchild/keeper/querier.go b/x/opchild/keeper/querier.go index 48eacf58..09c3b770 100644 --- a/x/opchild/keeper/querier.go +++ b/x/opchild/keeper/querier.go @@ -105,9 +105,11 @@ func (q Querier) BaseDenom(ctx context.Context, req *types.QueryBaseDenomRequest return &types.QueryBaseDenomResponse{BaseDenom: baseDenom}, nil } -// ForceWithdrawalProofs returns the force withdrawal proofs +// ForceWithdrawalProofs returns the force withdrawal proofs. // // @dev: This query is not deterministic and should only be used for off-chain. +// @dev: The caller must use the height query to get the app hash and commitment proof at the specific height. +// The height should be the L2 block number contained in the output submitted to L1, and this height should be higher than the block where the withdrawal occurred. func (q Querier) ForceWithdrawalProofs(ctx context.Context, req *types.QueryForceWithdrawalProofsRequest) (*types.QueryForceWithdrawalProofsResponse, error) { if q.clientCtx == nil { return nil, status.Error(codes.Internal, "client context is not set") @@ -120,8 +122,20 @@ func (q Querier) ForceWithdrawalProofs(ctx context.Context, req *types.QueryForc return nil, status.Error(codes.Internal, err.Error()) } - sequence := req.L2Sequence - commitmentProof, err := types.QueryCommitmentProof(q.baseAppQuerier, height-1, types.WithdrawalCommitmentKey(sequence)) + sequence := req.Sequence + if ok, err := q.Commitments.Has(ctx, sequence); err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } else if !ok { + return nil, status.Errorf(codes.NotFound, "withdrawal commitment %d not found at height %d", sequence, height) + } + + commitmentProof, err := types.QueryCommitmentProof( + q.baseAppQuerier, + // we should compute the `height-1` here because the app hash of a block is + // the one that is committed in the previous block. + height-1, + types.WithdrawalCommitmentKey(sequence), + ) if err != nil { return nil, status.Error(codes.Internal, err.Error()) } diff --git a/x/opchild/types/query.pb.go b/x/opchild/types/query.pb.go index 34c7aa13..3d9376ad 100644 --- a/x/opchild/types/query.pb.go +++ b/x/opchild/types/query.pb.go @@ -651,8 +651,8 @@ func (m *QueryBaseDenomResponse) GetBaseDenom() string { // QueryForceWithdrawalProofsRequest is request type for the Query/ForceWithdrawalProofs RPC method. type QueryForceWithdrawalProofsRequest struct { - // l2_sequence is the sequence number of the l2 block. - L2Sequence uint64 `protobuf:"varint,1,opt,name=l2_sequence,json=l2Sequence,proto3" json:"l2_sequence,omitempty"` + // sequence is the sequence number of the withdrawal. + Sequence uint64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"` } func (m *QueryForceWithdrawalProofsRequest) Reset() { *m = QueryForceWithdrawalProofsRequest{} } @@ -688,9 +688,9 @@ func (m *QueryForceWithdrawalProofsRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryForceWithdrawalProofsRequest proto.InternalMessageInfo -func (m *QueryForceWithdrawalProofsRequest) GetL2Sequence() uint64 { +func (m *QueryForceWithdrawalProofsRequest) GetSequence() uint64 { if m != nil { - return m.L2Sequence + return m.Sequence } return 0 } @@ -780,72 +780,72 @@ func init() { func init() { proto.RegisterFile("opinit/opchild/v1/query.proto", fileDescriptor_15cfbb5d02a763ec) } var fileDescriptor_15cfbb5d02a763ec = []byte{ - // 1040 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcf, 0x6f, 0xdc, 0x44, - 0x14, 0xc7, 0xe3, 0xb4, 0x09, 0xec, 0x4b, 0x49, 0xdb, 0x69, 0x42, 0x37, 0x9b, 0x64, 0x37, 0x0c, - 0x24, 0xdd, 0x06, 0xad, 0xcd, 0xba, 0x54, 0x48, 0x15, 0x12, 0xb0, 0x2a, 0x0d, 0x95, 0x10, 0x0d, - 0x1b, 0x09, 0x10, 0x97, 0x65, 0x76, 0xed, 0xec, 0x5a, 0x5a, 0x7b, 0x5c, 0x7b, 0x92, 0x26, 0x8a, - 0x22, 0x24, 0x4e, 0xdc, 0xa8, 0x04, 0x47, 0x2e, 0xdc, 0x2a, 0x71, 0xe1, 0xc0, 0xdf, 0x80, 0x7a, - 0xac, 0xe0, 0xc2, 0x29, 0x42, 0x09, 0x12, 0xf7, 0x8a, 0x3f, 0x00, 0x79, 0x66, 0xec, 0xb1, 0xb3, - 0x76, 0xb2, 0xe5, 0x92, 0xc4, 0xf3, 0x7e, 0x7c, 0x3f, 0x7e, 0xf3, 0xf2, 0x95, 0x61, 0x99, 0xfa, - 0x8e, 0xe7, 0x30, 0x83, 0xfa, 0xbd, 0x81, 0x33, 0xb4, 0x8c, 0xdd, 0xa6, 0xf1, 0x70, 0xc7, 0x0e, - 0xf6, 0x75, 0x3f, 0xa0, 0x8c, 0xa2, 0xab, 0x22, 0xac, 0xcb, 0xb0, 0xbe, 0xdb, 0xac, 0x5c, 0x25, - 0xae, 0xe3, 0x51, 0x83, 0xff, 0x14, 0x59, 0x95, 0x6a, 0x8f, 0xba, 0x36, 0xeb, 0x6e, 0x33, 0xa3, - 0x17, 0xec, 0xfb, 0x8c, 0x46, 0x5d, 0xfc, 0x80, 0xd2, 0x6d, 0x19, 0x5f, 0xef, 0xd1, 0xd0, 0xa5, - 0xa1, 0xd1, 0x25, 0xa1, 0x2d, 0xda, 0x1b, 0xbb, 0xcd, 0xae, 0xcd, 0x48, 0xd3, 0xf0, 0x49, 0xdf, - 0xf1, 0x08, 0x73, 0xa8, 0xa7, 0x7a, 0xa9, 0xdc, 0x38, 0xab, 0x47, 0x9d, 0x38, 0xbe, 0x28, 0xe3, - 0x71, 0x9b, 0x34, 0x6e, 0x65, 0x41, 0x04, 0x3b, 0xfc, 0xc9, 0x10, 0x0f, 0x32, 0x34, 0xd7, 0xa7, - 0x7d, 0x2a, 0xce, 0xa3, 0xbf, 0xe4, 0xe9, 0x52, 0x9f, 0xd2, 0xfe, 0xd0, 0x36, 0x88, 0xef, 0x18, - 0xc4, 0xf3, 0x28, 0xe3, 0x28, 0x71, 0x4d, 0xce, 0x70, 0xd8, 0xbe, 0x6f, 0xcb, 0x30, 0xfe, 0x0a, - 0x5e, 0xfd, 0x34, 0x12, 0xff, 0x8c, 0x0c, 0x1d, 0x8b, 0x30, 0x1a, 0x84, 0x6d, 0xfb, 0xe1, 0x8e, - 0x1d, 0x32, 0x74, 0x0f, 0x40, 0xbd, 0x58, 0x59, 0x5b, 0xd1, 0xea, 0x33, 0xe6, 0x9a, 0x2e, 0x79, - 0xa2, 0x37, 0xd3, 0x05, 0xb5, 0x7c, 0x3f, 0x7d, 0x93, 0xf4, 0x6d, 0x59, 0xdb, 0x4e, 0x55, 0xe2, - 0x9f, 0x35, 0xb8, 0x3e, 0x22, 0x11, 0xfa, 0xd4, 0x0b, 0x6d, 0xb4, 0x01, 0xb0, 0x9b, 0x9c, 0x96, - 0xb5, 0x95, 0x0b, 0xf5, 0x19, 0x73, 0x49, 0x1f, 0xb9, 0x2f, 0x3d, 0x29, 0x6d, 0x95, 0x9e, 0x1e, - 0xd5, 0x26, 0x9e, 0xfc, 0xf3, 0xcb, 0xba, 0xd6, 0x4e, 0x95, 0x46, 0x8d, 0x52, 0xb0, 0x93, 0x1c, - 0xf6, 0xc6, 0xb9, 0xb0, 0x82, 0x22, 0x43, 0xfb, 0x05, 0xcc, 0x67, 0x61, 0xe3, 0x71, 0xbc, 0x07, - 0xb3, 0x89, 0x5e, 0x87, 0x58, 0x56, 0xc0, 0x47, 0x52, 0x6a, 0x95, 0x7f, 0xff, 0xb5, 0x31, 0x27, - 0x85, 0x3e, 0xb0, 0xac, 0xc0, 0x0e, 0xc3, 0x2d, 0x16, 0x38, 0x5e, 0xbf, 0xfd, 0x4a, 0x92, 0x1f, - 0x9d, 0xe3, 0xce, 0xe9, 0x49, 0x27, 0x53, 0xf8, 0x10, 0x4a, 0x49, 0xaa, 0x1c, 0xf4, 0xd8, 0x43, - 0x50, 0x95, 0xb8, 0x2c, 0x05, 0x5a, 0x81, 0x63, 0xf5, 0xed, 0xfb, 0xde, 0x36, 0x95, 0xec, 0xd8, - 0x92, 0x37, 0x90, 0x8e, 0x48, 0xed, 0xfb, 0x30, 0xd3, 0xe5, 0xa7, 0x1d, 0xc7, 0xdb, 0xa6, 0x52, - 0x7d, 0x39, 0x47, 0x5d, 0xd5, 0x66, 0xee, 0xa0, 0x9b, 0x1c, 0xe3, 0x39, 0x40, 0x5c, 0x65, 0x93, - 0x04, 0xc4, 0x8d, 0xd7, 0x08, 0x6f, 0xc1, 0xb5, 0xcc, 0xa9, 0xd4, 0x7d, 0x17, 0xa6, 0x7d, 0x7e, - 0x22, 0x25, 0x17, 0x72, 0x24, 0x45, 0x49, 0x5a, 0x4e, 0xd6, 0xe0, 0x25, 0xa8, 0xf0, 0xa6, 0x9f, - 0xd8, 0x7b, 0xec, 0xe3, 0xe6, 0x56, 0x24, 0xe5, 0xf5, 0xe2, 0xed, 0xc3, 0x1b, 0xb0, 0x98, 0x1b, - 0x95, 0xd2, 0x75, 0xb8, 0xe2, 0xd9, 0x7b, 0xac, 0x33, 0x6c, 0x76, 0x42, 0x19, 0xe3, 0x10, 0x17, - 0xdb, 0xb3, 0x5e, 0xa6, 0x22, 0x2b, 0x63, 0x9e, 0x29, 0x63, 0x16, 0xcb, 0x98, 0xf9, 0x32, 0x49, - 0x05, 0x6e, 0xc8, 0x9d, 0x6b, 0x91, 0xd0, 0xbe, 0x6b, 0x7b, 0xd4, 0x8d, 0x77, 0x6e, 0x0e, 0xa6, - 0xac, 0xe8, 0x59, 0xac, 0x5a, 0x5b, 0x3c, 0xe0, 0x77, 0xe2, 0x7b, 0x56, 0xe9, 0x52, 0x72, 0x19, - 0x20, 0xda, 0xf5, 0x4e, 0xba, 0xa8, 0xd4, 0x8d, 0xd3, 0xf0, 0x5d, 0x78, 0x8d, 0x17, 0xde, 0xa3, - 0x41, 0xcf, 0xfe, 0xdc, 0x61, 0x03, 0x2b, 0x20, 0x8f, 0xc8, 0x70, 0x33, 0x72, 0xb9, 0xe4, 0xdf, - 0xbe, 0x06, 0x33, 0xa3, 0xc4, 0x30, 0x54, 0xb4, 0x4f, 0x26, 0x01, 0x9f, 0xd5, 0x46, 0xb2, 0xb8, - 0x70, 0xa5, 0x47, 0x5d, 0xd7, 0x61, 0xae, 0xed, 0xb1, 0x0e, 0x77, 0xd2, 0xf2, 0x05, 0xb9, 0xdb, - 0xb1, 0xd5, 0xea, 0xc2, 0x6a, 0xf9, 0x5d, 0x47, 0x09, 0x0f, 0xfc, 0xb0, 0xf5, 0x46, 0x74, 0xdb, - 0xcf, 0x8f, 0x6a, 0xd7, 0xf7, 0x89, 0x3b, 0xbc, 0x83, 0x4f, 0xf7, 0xc0, 0x62, 0x11, 0x2e, 0xab, - 0x73, 0x5e, 0x89, 0x74, 0x78, 0x99, 0xf8, 0x7e, 0x67, 0x40, 0xc2, 0x41, 0xf9, 0xe2, 0x8a, 0x56, - 0xbf, 0xd4, 0xba, 0xf6, 0xfc, 0xa8, 0x76, 0x59, 0x34, 0x89, 0x23, 0xb8, 0xfd, 0x12, 0xf1, 0xfd, - 0x8f, 0x48, 0x38, 0x40, 0x3d, 0x98, 0x8d, 0x4f, 0x25, 0xdc, 0x94, 0xdc, 0xc3, 0x22, 0xb8, 0x16, - 0x96, 0x64, 0xf3, 0xd9, 0xa6, 0x19, 0xae, 0x4b, 0xb2, 0x3f, 0xaf, 0x30, 0xff, 0x2d, 0xc1, 0x14, - 0x1f, 0x15, 0xfa, 0x4e, 0x03, 0x50, 0xfe, 0x87, 0x6e, 0xe6, 0x6c, 0x7b, 0xbe, 0x0d, 0x57, 0xd6, - 0xc7, 0x49, 0x15, 0x33, 0xc7, 0xeb, 0xdf, 0x46, 0x10, 0xdf, 0xfc, 0xf1, 0xf7, 0xf7, 0x93, 0x35, - 0xb4, 0x6c, 0x8c, 0x3a, 0x7f, 0xca, 0x31, 0x7f, 0xd4, 0xa0, 0x94, 0xb4, 0x40, 0xf5, 0x73, 0x55, - 0x62, 0x9e, 0x9b, 0x63, 0x64, 0x4a, 0x9c, 0x3b, 0x0a, 0xc7, 0x40, 0x8d, 0xb3, 0x70, 0x8c, 0x83, - 0xac, 0xb7, 0x1e, 0xa2, 0xc7, 0x1a, 0x80, 0xb2, 0x9c, 0xe2, 0x81, 0x8d, 0x98, 0x5d, 0xf1, 0xc0, - 0x46, 0xdd, 0x0f, 0xbf, 0xa9, 0x08, 0x57, 0x50, 0x35, 0x87, 0x30, 0xe5, 0x8d, 0xe8, 0x6b, 0x98, - 0x16, 0x8e, 0x84, 0x56, 0x8b, 0x24, 0x32, 0xd6, 0x57, 0x59, 0x3b, 0x2f, 0x4d, 0x52, 0xac, 0x29, - 0x8a, 0x45, 0xb4, 0x90, 0x43, 0x21, 0x5c, 0x0f, 0xfd, 0xa4, 0xc1, 0x6c, 0xd6, 0xd3, 0x50, 0xa3, - 0x48, 0x22, 0xd7, 0x19, 0x2b, 0xfa, 0xb8, 0xe9, 0x92, 0xec, 0x2d, 0x45, 0xb6, 0x8a, 0x5e, 0xcf, - 0x21, 0x3b, 0x6d, 0xa4, 0x8a, 0xd1, 0x1c, 0x93, 0xd1, 0x7c, 0x31, 0x46, 0xf3, 0xff, 0x32, 0x2a, - 0x4f, 0x43, 0x3f, 0x68, 0x50, 0x4a, 0xcc, 0xb3, 0x78, 0xf5, 0x4f, 0xdb, 0x71, 0xf1, 0xea, 0x8f, - 0x38, 0x31, 0x36, 0x15, 0xd4, 0x0d, 0xb4, 0x9a, 0xb7, 0x58, 0x89, 0x4f, 0x1b, 0x07, 0xfc, 0xd7, - 0x21, 0xfa, 0x4d, 0x83, 0xf9, 0x5c, 0x4f, 0x45, 0x6f, 0x17, 0x09, 0x9f, 0xe5, 0xe4, 0x95, 0xdb, - 0x2f, 0x58, 0x25, 0xd1, 0xdf, 0x57, 0xe8, 0xb7, 0xd1, 0xad, 0x1c, 0xf4, 0x47, 0x49, 0x65, 0x68, - 0x1c, 0xa4, 0xe6, 0x7a, 0x28, 0xbe, 0x97, 0xc3, 0xd6, 0xc6, 0xd3, 0xe3, 0xaa, 0xf6, 0xec, 0xb8, - 0xaa, 0xfd, 0x75, 0x5c, 0xd5, 0x1e, 0x9f, 0x54, 0x27, 0x9e, 0x9d, 0x54, 0x27, 0xfe, 0x3c, 0xa9, - 0x4e, 0x7c, 0xd9, 0xe8, 0x3b, 0x6c, 0xb0, 0xd3, 0x8d, 0x3c, 0xd6, 0x88, 0xda, 0x3a, 0xa4, 0x31, - 0x24, 0xdd, 0xd0, 0x78, 0xb0, 0xc9, 0x45, 0xf6, 0x12, 0x19, 0xfe, 0x89, 0xda, 0x9d, 0xe6, 0xdf, - 0xa8, 0xb7, 0xfe, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xc7, 0xcd, 0x64, 0x2e, 0xe1, 0x0b, 0x00, 0x00, + // 1039 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xc7, 0xb3, 0x69, 0x13, 0xea, 0x97, 0x92, 0xb6, 0xd3, 0x84, 0x3a, 0x4e, 0xe2, 0x84, 0x81, + 0xa4, 0x6e, 0x90, 0x77, 0xea, 0x05, 0x84, 0x54, 0x81, 0x2a, 0x2c, 0x68, 0xa8, 0x84, 0x68, 0x70, + 0x24, 0x40, 0x5c, 0xcc, 0xd8, 0x3b, 0xb1, 0x57, 0xf2, 0xee, 0x6c, 0x77, 0x27, 0x69, 0xa2, 0x28, + 0x42, 0xe2, 0xc4, 0x8d, 0x4a, 0x70, 0xe4, 0xc2, 0xad, 0x12, 0x17, 0x0e, 0xfc, 0x07, 0x5c, 0x7a, + 0xac, 0xe0, 0xc2, 0x29, 0x42, 0x09, 0x12, 0x67, 0xfa, 0x17, 0xa0, 0x9d, 0x99, 0xdd, 0xf5, 0xda, + 0xeb, 0xc4, 0xe5, 0x92, 0x64, 0xe7, 0xfd, 0xf8, 0x7e, 0xf6, 0xcd, 0xcb, 0x57, 0x0b, 0xcb, 0xdc, + 0x77, 0x3c, 0x47, 0x10, 0xee, 0xb7, 0xbb, 0x4e, 0xcf, 0x26, 0x7b, 0x35, 0xf2, 0x70, 0x97, 0x05, + 0x07, 0xa6, 0x1f, 0x70, 0xc1, 0xd1, 0x35, 0x15, 0x36, 0x75, 0xd8, 0xdc, 0xab, 0x95, 0xae, 0x51, + 0xd7, 0xf1, 0x38, 0x91, 0x3f, 0x55, 0x56, 0xa9, 0xdc, 0xe6, 0x2e, 0x13, 0xad, 0x1d, 0x41, 0xda, + 0xc1, 0x81, 0x2f, 0x78, 0xd4, 0xc5, 0x0f, 0x38, 0xdf, 0xd1, 0xf1, 0x8d, 0x36, 0x0f, 0x5d, 0x1e, + 0x92, 0x16, 0x0d, 0x99, 0x6a, 0x4f, 0xf6, 0x6a, 0x2d, 0x26, 0x68, 0x8d, 0xf8, 0xb4, 0xe3, 0x78, + 0x54, 0x38, 0xdc, 0x4b, 0x7b, 0xa5, 0xb9, 0x71, 0x56, 0x9b, 0x3b, 0x71, 0x7c, 0x51, 0xc7, 0xe3, + 0x36, 0xfd, 0xb8, 0xa5, 0x05, 0x15, 0x6c, 0xca, 0x27, 0xa2, 0x1e, 0x74, 0x68, 0xae, 0xc3, 0x3b, + 0x5c, 0x9d, 0x47, 0x7f, 0xe9, 0xd3, 0xa5, 0x0e, 0xe7, 0x9d, 0x1e, 0x23, 0xd4, 0x77, 0x08, 0xf5, + 0x3c, 0x2e, 0x24, 0x4a, 0x5c, 0x93, 0x33, 0x1c, 0x71, 0xe0, 0x33, 0x1d, 0xc6, 0x5f, 0xc1, 0x2b, + 0x9f, 0x46, 0xe2, 0x9f, 0xd1, 0x9e, 0x63, 0x53, 0xc1, 0x83, 0xb0, 0xc1, 0x1e, 0xee, 0xb2, 0x50, + 0xa0, 0x7b, 0x00, 0xe9, 0x8b, 0x15, 0x8d, 0x55, 0xa3, 0x32, 0x63, 0xad, 0x9b, 0x9a, 0x27, 0x7a, + 0x33, 0x53, 0x51, 0xeb, 0xf7, 0x33, 0xb7, 0x68, 0x87, 0xe9, 0xda, 0x46, 0x5f, 0x25, 0xfe, 0xd9, + 0x80, 0x1b, 0x43, 0x12, 0xa1, 0xcf, 0xbd, 0x90, 0xa1, 0x4d, 0x80, 0xbd, 0xe4, 0xb4, 0x68, 0xac, + 0x5e, 0xa8, 0xcc, 0x58, 0x4b, 0xe6, 0xd0, 0x7d, 0x99, 0x49, 0x69, 0xbd, 0xf0, 0xf4, 0x78, 0x65, + 0xe2, 0xc9, 0x3f, 0xbf, 0x6c, 0x18, 0x8d, 0xbe, 0xd2, 0xa8, 0x51, 0x1f, 0xec, 0xa4, 0x84, 0xbd, + 0x79, 0x2e, 0xac, 0xa2, 0xc8, 0xd0, 0x7e, 0x01, 0xf3, 0x59, 0xd8, 0x78, 0x1c, 0x77, 0x61, 0x36, + 0xd1, 0x6b, 0x52, 0xdb, 0x0e, 0xe4, 0x48, 0x0a, 0xf5, 0xe2, 0xef, 0xbf, 0x56, 0xe7, 0xb4, 0xd0, + 0xfb, 0xb6, 0x1d, 0xb0, 0x30, 0xdc, 0x16, 0x81, 0xe3, 0x75, 0x1a, 0x2f, 0x27, 0xf9, 0xd1, 0x39, + 0x6e, 0x0e, 0x4e, 0x3a, 0x99, 0xc2, 0x87, 0x50, 0x48, 0x52, 0xf5, 0xa0, 0xc7, 0x1e, 0x42, 0x5a, + 0x89, 0x8b, 0x5a, 0xa0, 0x1e, 0x38, 0x76, 0x87, 0xdd, 0xf7, 0x76, 0xb8, 0x66, 0xc7, 0xb6, 0xbe, + 0x81, 0xfe, 0x88, 0xd6, 0xbe, 0x0f, 0x33, 0x2d, 0x79, 0xda, 0x74, 0xbc, 0x1d, 0xae, 0xd5, 0x97, + 0x73, 0xd4, 0xd3, 0xda, 0xcc, 0x1d, 0xb4, 0x92, 0x63, 0x3c, 0x07, 0x48, 0xaa, 0x6c, 0xd1, 0x80, + 0xba, 0xf1, 0x1a, 0xe1, 0x6d, 0xb8, 0x9e, 0x39, 0xd5, 0xba, 0xef, 0xc2, 0xb4, 0x2f, 0x4f, 0xb4, + 0xe4, 0x42, 0x8e, 0xa4, 0x2a, 0xe9, 0x97, 0xd3, 0x35, 0x78, 0x09, 0x4a, 0xb2, 0xe9, 0x27, 0x6c, + 0x5f, 0x7c, 0x5c, 0xdb, 0x8e, 0xa4, 0xbc, 0x76, 0xbc, 0x7d, 0x78, 0x13, 0x16, 0x73, 0xa3, 0x5a, + 0xba, 0x02, 0x57, 0x3d, 0xb6, 0x2f, 0x9a, 0xbd, 0x5a, 0x33, 0xd4, 0x31, 0x09, 0x71, 0xb1, 0x31, + 0xeb, 0x65, 0x2a, 0xb2, 0x32, 0xd6, 0x99, 0x32, 0xd6, 0x68, 0x19, 0x2b, 0x5f, 0x26, 0xa9, 0xc0, + 0x55, 0xbd, 0x73, 0x75, 0x1a, 0xb2, 0x0f, 0x98, 0xc7, 0xdd, 0x78, 0xe7, 0xe6, 0x60, 0xca, 0x8e, + 0x9e, 0xd5, 0xaa, 0x35, 0xd4, 0x03, 0x7e, 0x27, 0xbe, 0xe7, 0x34, 0x5d, 0x4b, 0x2e, 0x03, 0x44, + 0xbb, 0xde, 0xec, 0x2f, 0x2a, 0xb4, 0xe2, 0x34, 0x7c, 0x17, 0x5e, 0x95, 0x85, 0xf7, 0x78, 0xd0, + 0x66, 0x9f, 0x3b, 0xa2, 0x6b, 0x07, 0xf4, 0x11, 0xed, 0x6d, 0x45, 0x2e, 0x97, 0xfc, 0xdb, 0x97, + 0xe0, 0xd2, 0x00, 0x6e, 0xf2, 0x8c, 0x9f, 0x4c, 0x02, 0x3e, 0xab, 0x83, 0xc6, 0x70, 0xe1, 0x6a, + 0x9b, 0xbb, 0xae, 0x23, 0x5c, 0xe6, 0x89, 0xa6, 0x34, 0xd1, 0xe2, 0x05, 0xbd, 0xd6, 0xb1, 0xcb, + 0x9a, 0xca, 0x65, 0xe5, 0x35, 0x47, 0x09, 0x0f, 0xfc, 0xb0, 0xfe, 0x7a, 0x74, 0xd1, 0xcf, 0x8f, + 0x57, 0x6e, 0x1c, 0x50, 0xb7, 0x77, 0x07, 0x0f, 0xf6, 0xc0, 0x6a, 0x07, 0xae, 0xa4, 0xe7, 0xb2, + 0x12, 0x99, 0x70, 0x89, 0xfa, 0x7e, 0xb3, 0x4b, 0xc3, 0x6e, 0xf1, 0xe2, 0xaa, 0x51, 0xb9, 0x5c, + 0xbf, 0xfe, 0xfc, 0x78, 0xe5, 0x8a, 0x6a, 0x12, 0x47, 0x70, 0xe3, 0x25, 0xea, 0xfb, 0x1f, 0xd1, + 0xb0, 0x8b, 0xda, 0x30, 0x1b, 0x9f, 0x6a, 0xb8, 0x29, 0xbd, 0x82, 0xa3, 0xe0, 0xea, 0x58, 0x93, + 0xcd, 0x67, 0x9b, 0x66, 0xb8, 0x2e, 0xeb, 0xfe, 0xb2, 0xc2, 0xfa, 0xb7, 0x00, 0x53, 0x72, 0x54, + 0xe8, 0x3b, 0x03, 0x20, 0xb5, 0x3e, 0x74, 0x2b, 0x67, 0xd1, 0xf3, 0x1d, 0xb8, 0xb4, 0x31, 0x4e, + 0xaa, 0x9a, 0x39, 0xde, 0xf8, 0x36, 0x82, 0xf8, 0xe6, 0x8f, 0xbf, 0xbf, 0x9f, 0x5c, 0x41, 0xcb, + 0x64, 0xd8, 0xf4, 0xfb, 0xcc, 0xf2, 0x47, 0x03, 0x0a, 0x49, 0x0b, 0x54, 0x39, 0x57, 0x25, 0xe6, + 0xb9, 0x35, 0x46, 0xa6, 0xc6, 0xb9, 0x93, 0xe2, 0x10, 0x54, 0x3d, 0x0b, 0x87, 0x1c, 0x66, 0x6d, + 0xf5, 0x08, 0x3d, 0x36, 0x00, 0x52, 0xb7, 0x19, 0x3d, 0xb0, 0x21, 0x9f, 0x1b, 0x3d, 0xb0, 0x61, + 0xe3, 0xc3, 0x6f, 0xa4, 0x84, 0xab, 0xa8, 0x9c, 0x43, 0xd8, 0x67, 0x8b, 0xe8, 0x6b, 0x98, 0x56, + 0x66, 0x84, 0xd6, 0x46, 0x49, 0x64, 0x5c, 0xaf, 0xb4, 0x7e, 0x5e, 0x9a, 0xa6, 0x58, 0x4f, 0x29, + 0x16, 0xd1, 0x42, 0x0e, 0x85, 0x32, 0x3c, 0xf4, 0x93, 0x01, 0xb3, 0x59, 0x3b, 0x43, 0xd5, 0x51, + 0x12, 0xb9, 0xa6, 0x58, 0x32, 0xc7, 0x4d, 0xd7, 0x64, 0xb7, 0x53, 0xb2, 0x35, 0xf4, 0x5a, 0x0e, + 0xd9, 0xa0, 0x87, 0xa6, 0x8c, 0xd6, 0x98, 0x8c, 0xd6, 0x8b, 0x31, 0x5a, 0xff, 0x97, 0x31, 0x35, + 0x60, 0xf4, 0x83, 0x01, 0x85, 0xc4, 0x37, 0x47, 0xaf, 0xfe, 0xa0, 0x13, 0x8f, 0x5e, 0xfd, 0x21, + 0x13, 0xc6, 0x56, 0x0a, 0x75, 0x13, 0xad, 0xe5, 0x2d, 0x56, 0x62, 0xd1, 0xe4, 0x50, 0xfe, 0x3a, + 0x42, 0xbf, 0x19, 0x30, 0x9f, 0xeb, 0xa9, 0xe8, 0xad, 0x51, 0xc2, 0x67, 0x99, 0x78, 0xe9, 0xed, + 0x17, 0xac, 0xd2, 0xe8, 0xef, 0xa5, 0xe8, 0x16, 0xba, 0x9d, 0x83, 0xfe, 0x28, 0xa9, 0x0c, 0xc9, + 0x61, 0x3c, 0xd4, 0x23, 0xf5, 0x9d, 0x1c, 0xd6, 0x37, 0x9f, 0x9e, 0x94, 0x8d, 0x67, 0x27, 0x65, + 0xe3, 0xaf, 0x93, 0xb2, 0xf1, 0xf8, 0xb4, 0x3c, 0xf1, 0xec, 0xb4, 0x3c, 0xf1, 0xe7, 0x69, 0x79, + 0xe2, 0xcb, 0x6a, 0xc7, 0x11, 0xdd, 0xdd, 0x56, 0x64, 0xb0, 0x24, 0xea, 0xe9, 0xd0, 0x6a, 0x8f, + 0xb6, 0x42, 0xf2, 0x60, 0x4b, 0x2a, 0xec, 0x27, 0x1a, 0xf2, 0xd3, 0xb4, 0x35, 0x2d, 0xbf, 0x4d, + 0xdf, 0xfc, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x77, 0xb0, 0x7d, 0x2c, 0xd9, 0x0b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1639,8 +1639,8 @@ func (m *QueryForceWithdrawalProofsRequest) MarshalToSizedBuffer(dAtA []byte) (i _ = i var l int _ = l - if m.L2Sequence != 0 { - i = encodeVarintQuery(dAtA, i, uint64(m.L2Sequence)) + if m.Sequence != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Sequence)) i-- dAtA[i] = 0x8 } @@ -1878,8 +1878,8 @@ func (m *QueryForceWithdrawalProofsRequest) Size() (n int) { } var l int _ = l - if m.L2Sequence != 0 { - n += 1 + sovQuery(uint64(m.L2Sequence)) + if m.Sequence != 0 { + n += 1 + sovQuery(uint64(m.Sequence)) } return n } @@ -2977,9 +2977,9 @@ func (m *QueryForceWithdrawalProofsRequest) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field L2Sequence", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType) } - m.L2Sequence = 0 + m.Sequence = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -2989,7 +2989,7 @@ func (m *QueryForceWithdrawalProofsRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.L2Sequence |= uint64(b&0x7F) << shift + m.Sequence |= uint64(b&0x7F) << shift if b < 0x80 { break } diff --git a/x/opchild/types/query.pb.gw.go b/x/opchild/types/query.pb.gw.go index 958443b5..e3932d60 100644 --- a/x/opchild/types/query.pb.gw.go +++ b/x/opchild/types/query.pb.gw.go @@ -260,15 +260,15 @@ func request_Query_ForceWithdrawalProofs_0(ctx context.Context, marshaler runtim _ = err ) - val, ok = pathParams["l2_sequence"] + val, ok = pathParams["sequence"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "l2_sequence") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "sequence") } - protoReq.L2Sequence, err = runtime.Uint64(val) + protoReq.Sequence, err = runtime.Uint64(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "l2_sequence", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "sequence", err) } msg, err := client.ForceWithdrawalProofs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) @@ -287,15 +287,15 @@ func local_request_Query_ForceWithdrawalProofs_0(ctx context.Context, marshaler _ = err ) - val, ok = pathParams["l2_sequence"] + val, ok = pathParams["sequence"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "l2_sequence") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "sequence") } - protoReq.L2Sequence, err = runtime.Uint64(val) + protoReq.Sequence, err = runtime.Uint64(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "l2_sequence", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "sequence", err) } msg, err := server.ForceWithdrawalProofs(ctx, &protoReq) @@ -712,7 +712,7 @@ var ( pattern_Query_BaseDenom_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"opinit", "opchild", "v1", "base_denom", "denom"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_ForceWithdrawalProofs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"opinit", "opchild", "v1", "withdrawals", "l2_sequence", "proofs"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_ForceWithdrawalProofs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"opinit", "opchild", "v1", "withdrawals", "sequence", "proofs"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( diff --git a/x/ophost/client/cli/tx.go b/x/ophost/client/cli/tx.go index 95a1dfc8..04e32f25 100644 --- a/x/ophost/client/cli/tx.go +++ b/x/ophost/client/cli/tx.go @@ -120,7 +120,7 @@ func NewCreateBridge(ac address.Codec) *cobra.Command { return err } - origConfig := BridgeCliConfig{} + var origConfig BridgeCliConfig err = json.Unmarshal(configBytes, &origConfig) if err != nil { @@ -150,6 +150,7 @@ func NewCreateBridge(ac address.Codec) *cobra.Command { SubmissionStartHeight: submissionStartHeight, Metadata: []byte(origConfig.Metadata), BatchInfo: origConfig.BatchInfo, + OracleEnabled: origConfig.OracleEnabled, } if err = config.Validate(ac); err != nil { @@ -335,12 +336,12 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { Where withrawal-info.json contains: { - "bridge_id": 1, - "output_index": 0, - "withdrawal_proofs": [ "base64-encoded proof1", "proof2", ... ], + "bridge_id": "1", + "output_index": "1", + "sequence": "1", "sender" : "bech32-address", - "sequence": 0, - "amount": "10000000uinit", + "amount": {"amount": "10000000", "denom": "uinit"}, + "withdrawal_proofs": [ "base64-encoded proof1", "proof2", ... ], "version": "base64-encoded version", "storage_root": "base64-encoded storage-root", "last_block_hash": "base64-encoded latest-block-hash" @@ -358,8 +359,8 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { if err != nil { return err } - withdrawalInfo := MsgFinalizeTokenWithdrawal{} - err = json.Unmarshal(withdrawalBytes, &withdrawalInfo) + var withdrawalInfo types.MsgFinalizeTokenWithdrawal + err = clientCtx.Codec.UnmarshalJSON(withdrawalBytes, &withdrawalInfo) if err != nil { return err } @@ -370,11 +371,6 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { return fmt.Errorf("sender address is required") } - amount, err := sdk.ParseCoinNormalized(withdrawalInfo.Amount) - if err != nil { - return err - } - receiver, err := ac.BytesToString(clientCtx.GetFromAddress()) if err != nil { return err @@ -387,7 +383,7 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { withdrawalInfo.WithdrawalProofs, sender, receiver, - amount, + withdrawalInfo.Amount, withdrawalInfo.Version, withdrawalInfo.StorageRoot, withdrawalInfo.LastBlockHash, @@ -421,7 +417,7 @@ func NewForceTokenWithdrawal(ac address.Codec) *cobra.Command { "output_index": "1", "sequence": "1", "sender" : "bech32-address", - "amount": "10000000uinit", + "amount": {"amount": "10000000", "denom": "uinit"}, "commitment_proof": {"ops":[{"type":"ics23:iavl","key":"","data":""}, ...]}, "app_hash": "base64-encoded app-hash", "app_hash_proof": {"total": 1, "index": 1, "leaf_hash": "base64-encoded leaf-hash", "aunts": ["base64-encoded aunts"]}, diff --git a/x/ophost/client/cli/tx_test.go b/x/ophost/client/cli/tx_test.go index 282aa316..4a834450 100644 --- a/x/ophost/client/cli/tx_test.go +++ b/x/ophost/client/cli/tx_test.go @@ -175,7 +175,8 @@ func (s *CLITestSuite) TestNewCreateBridge() { "batch_info": { "submitter": "init1q6jhwnarkw2j5qqgx3qlu20k8nrdglft5ksr0g", "chain_type": "CELESTIA" - } + }, + "oracle_enabled": true }`) s.NoError(err) @@ -515,14 +516,14 @@ func (s *CLITestSuite) TestNewFinalizeTokenWithdrawal() { _, err = invalidConfig.WriteString(`{}`) s.NoError(err) _, err = validConfig.WriteString(`{ - "bridge_id": 1, - "output_index": 1180, + "bridge_id": "1", + "output_index": "1180", "withdrawal_proofs": [ "q6T8JJm7AdbD4rgZ3BjanRHdE1x7aLZwp36pPrOOey4=" ], "sender": "init1q6jhwnarkw2j5qqgx3qlu20k8nrdglft5ksr0g", - "sequence": 5, - "amount": "100uinit", + "sequence": "5", + "amount": {"amount": "100", "denom": "uinit"}, "version": "AQ==", "storage_root": "KGlalV+mBHC7YFOLNX3g9LLzmyvP7QCm42HKo9N3Lu8=", "last_block_hash": "6oFdc+PEkXVJAo5IpXJ91vbCT9FNuKCz5VSlaFmxG+Y=" @@ -579,6 +580,109 @@ func (s *CLITestSuite) TestNewFinalizeTokenWithdrawal() { } } +//nolint:dupl +func (s *CLITestSuite) TestNewForceWithdrawal() { + require := s.Require() + cmd := cli.NewForceTokenWithdrawal(s.ac) + + addr0, err := s.ac.BytesToString(s.addrs[0]) + s.NoError(err) + + invalidConfig, err := os.CreateTemp("/tmp", "force_withdrawal_info") + require.NoError(err) + defer os.Remove(invalidConfig.Name()) + validConfig, err := os.CreateTemp("/tmp", "force_withdrawal_info") + require.NoError(err) + defer os.Remove(validConfig.Name()) + + _, err = invalidConfig.WriteString(`{}`) + s.NoError(err) + _, err = validConfig.WriteString(`{ + "bridge_id": "1", + "output_index": "1180", + "sequence": "5", + "sender": "init1q6jhwnarkw2j5qqgx3qlu20k8nrdglft5ksr0g", + "amount": {"amount": "100", "denom": "uinit"}, + "commitment_proof": {"ops": [{ + "type": "ics23:iavl", + "key": "IwAAAAAAAAAB", + "data": "CpMCCgkjAAAAAAAAAAESIMtX9/DuZvK6Ly5Ofai5mysOIMcc1smtkWGcJ9oE5Of6GgsIARgBIAEqAwACPCIpCAESJQIEPCDkbki1CAPOMl4Ctcyzudf7s8Zp4r+XHyHcj4hiCi1L5yAiKQgBEiUGCkAgAH/09hE0xKNYZmvloM+7ctsEYu/HQrlxV5ZxN4ImjHIgIikIARIlCBpAIJ0yvyT/hmehmQlXWKgYi417k187zU3n7lrVfUs5rDtuICIrCAESBAomQCAaISB6C9R6RalaXaXNuZGvXREt/d2Q5+TOzKlOdaamN42TPyIpCAESJQxYQCCQjCpw17bW9Bs834jmy4Vzo+UgMtoKUHzkMOhLUgyFnCA=" + }, + { + "type": "ics23:simple", + "key": "b3BjaGlsZA==", + "data": "Cv0BCgdvcGNoaWxkEiA5Hk4w8gqHwNcz/a+Fwx6e6b3Y5ZJ8/3NWw221YiLm/RoJCAEYASABKgEAIiUIARIhAUHASkLkeZTU28swYO7deS17Yj8b9h9PdJi9Xj4RGWZqIiUIARIhAV+QXBx9gArOP6US8yedcqldayaUyBfSAuixPNGd9nQxIicIARIBARogFhYnngyIgDM5RQ7IZQ35ljkp499OXrHC/5ZW2Z+2I+kiJwgBEgEBGiBOU4xO6+ZWJUItAU20nVBj3BQqfUH+BCSkmuHMEAQzqCIlCAESIQG33+cAibPmm9NGEZ6REEzPVaua/bAJQBspD5drk5UDjQ==" + } + ] + }, + "app_hash": "YokP3+yupFP2knNBqfJVFMa64FusQ4a3/B27UbfAX+c=", + "app_hash_proof": { + "total": "14", + "index": "10", + "leaf_hash": "62Ov0/tOgXUg7KHKcVwOc0GYCIWoftO7jjaSOgcLBPU=", + "aunts": [ + "n7nHUzyvHSGNo69tJ39rEBxC48O3XXhCQtpmNgTdU8I=", + "u32kdXs9V+sV711i+qWhv8/ouUNED+IcloCESsG2tXY=", + "zW9k0LARqw0as3I22ood9j21lGzEJAuQVrEZ741bzJU=", + "LSh6zkBwp78gIuPh2qWg05Thz1UihCkIdMCV1hhguOA=" + ] + }, + "version": "AQ==", + "storage_root": "KGlalV+mBHC7YFOLNX3g9LLzmyvP7QCm42HKo9N3Lu8=", + "last_block_hash": "6oFdc+PEkXVJAo5IpXJ91vbCT9FNuKCz5VSlaFmxG+Y=" + }`) + s.NoError(err) + + testCases := []struct { + name string + args []string + expectErr bool + expectedCode uint32 + respType proto.Message + }{ + { + "invalid transaction (invalid force withdrawal info)", + []string{ + invalidConfig.Name(), + fmt.Sprintf("--%s=%s", flags.FlagFrom, addr0), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(10))).String()), + }, + true, 0, &sdk.TxResponse{}, + }, + { + "valid transaction", + []string{ + validConfig.Name(), + fmt.Sprintf("--%s=%s", flags.FlagFrom, addr0), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(10))).String()), + }, + false, 0, &sdk.TxResponse{}, + }, + } + + for _, tc := range testCases { + tc := tc + s.Run(tc.name, func() { + out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) + if tc.expectErr { + require.Error(err) + } else { + require.NoError(err, "test: %s\noutput: %s", tc.name, out.String()) + err = s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType) + require.NoError(err, out.String(), "test: %s, output\n:", tc.name, out.String()) + + txResp := tc.respType.(*sdk.TxResponse) + require.Equal(tc.expectedCode, txResp.Code, + "test: %s, output\n:", tc.name, out.String()) + } + }) + } +} + func TestCLITestSuite(t *testing.T) { suite.Run(t, new(CLITestSuite)) } diff --git a/x/ophost/client/cli/types.go b/x/ophost/client/cli/types.go index da61e0f5..132a3b50 100644 --- a/x/ophost/client/cli/types.go +++ b/x/ophost/client/cli/types.go @@ -1,7 +1,6 @@ package cli import ( - v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" "github.com/initia-labs/OPinit/x/ophost/types" ) @@ -15,35 +14,5 @@ type BridgeCliConfig struct { SubmissionStartHeight string `json:"submission_start_height"` Metadata string `json:"metadata"` BatchInfo types.BatchInfo `json:"batch_info"` -} - -// MsgFinalizeTokenWithdrawal is a message to remove a validator from designated list -// -// NOTE: it is a modified MsgFinalizeTokenWithdrawal from x/ophost/types/tx.pb.go to make unmarshal easier -type MsgFinalizeTokenWithdrawal struct { - BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty" yaml:"bridge_id"` - OutputIndex uint64 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty" yaml:"output_index"` - WithdrawalProofs [][]byte `protobuf:"bytes,4,rep,name=withdrawal_proofs,json=withdrawalProofs,proto3" json:"withdrawal_proofs,omitempty"` - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty" yaml:"sequence"` - Amount string `protobuf:"bytes,7,opt,name=amount,proto3" json:"amount" yaml:"amount"` - Version []byte `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty" yaml:"version"` - StorageRoot []byte `protobuf:"bytes,10,opt,name=storage_root,json=storageRoot,proto3" json:"storage_root,omitempty" yaml:"storage_root"` - LastBlockHash []byte `protobuf:"bytes,11,opt,name=last_block_hash,json=latestBlockHash,proto3" json:"last_block_hash,omitempty" yaml:"last_block_hash"` -} - -// MsgForceTokenWithdrawal is a message to force a token withdrawal from L2 to L1. -type MsgForceTokenWithdrawal struct { - // anyone can force a token withdrawal from L2 to L1 even this is not the receiver. - BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty" yaml:"bridge_id"` - OutputIndex uint64 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty" yaml:"output_index"` - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty" yaml:"sequence"` - Sender string `protobuf:"bytes,5,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Amount string `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount" yaml:"amount"` - CommitmentProof v1.ProofOps `protobuf:"bytes,7,opt,name=commitment_proof,json=commitmentProof,proto3" json:"commitment_proof" yaml:"commitment_proof"` - AppHash []byte `protobuf:"bytes,8,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty" yaml:"app_hash"` - AppHashProof v1.Proof `protobuf:"bytes,9,opt,name=app_hash_proof,json=appHashProof,proto3" json:"app_hash_proof" yaml:"app_hash_proof"` - Version []byte `protobuf:"bytes,10,opt,name=version,proto3" json:"version,omitempty" yaml:"version"` - StorageRoot []byte `protobuf:"bytes,11,opt,name=storage_root,json=storageRoot,proto3" json:"storage_root,omitempty" yaml:"storage_root"` - LastBlockHash []byte `protobuf:"bytes,12,opt,name=last_block_hash,json=lastBlockHash,proto3" json:"last_block_hash,omitempty" yaml:"last_block_hash"` + OracleEnabled bool `json:"oracle_enabled"` } From 7d98ea1c5f4ccd218a8fd00274c822942e6a434b Mon Sep 17 00:00:00 2001 From: beer-1 Date: Tue, 3 Sep 2024 17:38:11 +0900 Subject: [PATCH 05/16] change hook operation to receive signed tx bytes --- api/opinit/opchild/v1/genesis.pulsar.go | 424 +--- api/opinit/opchild/v1/query.pulsar.go | 1383 ++----------- api/opinit/opchild/v1/query_grpc.pb.go | 51 +- api/opinit/opchild/v1/tx.pulsar.go | 389 ++-- api/opinit/opchild/v1/types.pulsar.go | 1737 +++------------- api/opinit/ophost/v1/tx.pulsar.go | 2393 +++-------------------- api/opinit/ophost/v1/tx_grpc.pb.go | 39 - proto/buf.gen.pulsar.yaml | 1 - proto/opinit/opchild/v1/genesis.proto | 7 - proto/opinit/opchild/v1/query.proto | 24 - proto/opinit/opchild/v1/tx.proto | 6 +- proto/opinit/opchild/v1/types.proto | 20 - proto/opinit/ophost/v1/tx.proto | 40 +- x/opchild/abci.go | 5 - x/opchild/ante/ante_test.go | 10 +- x/opchild/ante/common_test.go | 13 +- x/opchild/client/cli/tx_test.go | 4 +- x/opchild/keeper/commitments.go | 77 - x/opchild/keeper/commitments_test.go | 85 - x/opchild/keeper/common_test.go | 102 +- x/opchild/keeper/deposit.go | 99 + x/opchild/keeper/genesis.go | 33 - x/opchild/keeper/genesis_test.go | 7 - x/opchild/keeper/keeper.go | 38 +- x/opchild/keeper/keeper_test.go | 28 - x/opchild/keeper/msg_server.go | 167 +- x/opchild/keeper/msg_server_test.go | 94 +- x/opchild/keeper/querier.go | 43 - x/opchild/module.go | 6 +- x/opchild/types/client.go | 46 - x/opchild/types/commitments.go | 56 - x/opchild/types/commitments_test.go | 114 -- x/opchild/types/encoding_helper.go | 75 - x/opchild/types/events.go | 3 + x/opchild/types/genesis.go | 2 - x/opchild/types/genesis.pb.go | 201 +- x/opchild/types/hook.go | 19 - x/opchild/types/keys.go | 3 +- x/opchild/types/proof.go | 93 - x/opchild/types/query.pb.go | 593 +----- x/opchild/types/query.pb.gw.go | 101 - x/opchild/types/tx.go | 2 +- x/opchild/types/tx.pb.go | 156 +- x/opchild/types/types.pb.go | 636 +----- x/ophost/client/cli/tx.go | 82 - x/ophost/client/cli/tx_test.go | 103 - x/ophost/keeper/msg_server.go | 80 +- x/ophost/keeper/msg_server_test.go | 206 -- x/ophost/types/tx.go | 91 +- x/ophost/types/tx.pb.go | 1057 ++-------- x/ophost/types/tx_test.go | 109 -- 51 files changed, 1681 insertions(+), 9472 deletions(-) delete mode 100644 x/opchild/keeper/commitments.go delete mode 100644 x/opchild/keeper/commitments_test.go create mode 100644 x/opchild/keeper/deposit.go delete mode 100644 x/opchild/keeper/keeper_test.go delete mode 100644 x/opchild/types/client.go delete mode 100644 x/opchild/types/commitments.go delete mode 100644 x/opchild/types/commitments_test.go delete mode 100644 x/opchild/types/encoding_helper.go delete mode 100644 x/opchild/types/hook.go delete mode 100644 x/opchild/types/proof.go diff --git a/api/opinit/opchild/v1/genesis.pulsar.go b/api/opinit/opchild/v1/genesis.pulsar.go index 6aed5c3f..145f50cf 100644 --- a/api/opinit/opchild/v1/genesis.pulsar.go +++ b/api/opinit/opchild/v1/genesis.pulsar.go @@ -117,119 +117,15 @@ func (x *_GenesisState_3_list) IsValid() bool { return x.list != nil } -var _ protoreflect.List = (*_GenesisState_4_list)(nil) - -type _GenesisState_4_list struct { - list *[]*PendingDeposits -} - -func (x *_GenesisState_4_list) Len() int { - if x.list == nil { - return 0 - } - return len(*x.list) -} - -func (x *_GenesisState_4_list) Get(i int) protoreflect.Value { - return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) -} - -func (x *_GenesisState_4_list) Set(i int, value protoreflect.Value) { - valueUnwrapped := value.Message() - concreteValue := valueUnwrapped.Interface().(*PendingDeposits) - (*x.list)[i] = concreteValue -} - -func (x *_GenesisState_4_list) Append(value protoreflect.Value) { - valueUnwrapped := value.Message() - concreteValue := valueUnwrapped.Interface().(*PendingDeposits) - *x.list = append(*x.list, concreteValue) -} - -func (x *_GenesisState_4_list) AppendMutable() protoreflect.Value { - v := new(PendingDeposits) - *x.list = append(*x.list, v) - return protoreflect.ValueOfMessage(v.ProtoReflect()) -} - -func (x *_GenesisState_4_list) Truncate(n int) { - for i := n; i < len(*x.list); i++ { - (*x.list)[i] = nil - } - *x.list = (*x.list)[:n] -} - -func (x *_GenesisState_4_list) NewElement() protoreflect.Value { - v := new(PendingDeposits) - return protoreflect.ValueOfMessage(v.ProtoReflect()) -} - -func (x *_GenesisState_4_list) IsValid() bool { - return x.list != nil -} - -var _ protoreflect.List = (*_GenesisState_5_list)(nil) - -type _GenesisState_5_list struct { - list *[]*WithdrawalCommitment -} - -func (x *_GenesisState_5_list) Len() int { - if x.list == nil { - return 0 - } - return len(*x.list) -} - -func (x *_GenesisState_5_list) Get(i int) protoreflect.Value { - return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) -} - -func (x *_GenesisState_5_list) Set(i int, value protoreflect.Value) { - valueUnwrapped := value.Message() - concreteValue := valueUnwrapped.Interface().(*WithdrawalCommitment) - (*x.list)[i] = concreteValue -} - -func (x *_GenesisState_5_list) Append(value protoreflect.Value) { - valueUnwrapped := value.Message() - concreteValue := valueUnwrapped.Interface().(*WithdrawalCommitment) - *x.list = append(*x.list, concreteValue) -} - -func (x *_GenesisState_5_list) AppendMutable() protoreflect.Value { - v := new(WithdrawalCommitment) - *x.list = append(*x.list, v) - return protoreflect.ValueOfMessage(v.ProtoReflect()) -} - -func (x *_GenesisState_5_list) Truncate(n int) { - for i := n; i < len(*x.list); i++ { - (*x.list)[i] = nil - } - *x.list = (*x.list)[:n] -} - -func (x *_GenesisState_5_list) NewElement() protoreflect.Value { - v := new(WithdrawalCommitment) - return protoreflect.ValueOfMessage(v.ProtoReflect()) -} - -func (x *_GenesisState_5_list) IsValid() bool { - return x.list != nil -} - var ( - md_GenesisState protoreflect.MessageDescriptor - fd_GenesisState_params protoreflect.FieldDescriptor - fd_GenesisState_last_validator_powers protoreflect.FieldDescriptor - fd_GenesisState_validators protoreflect.FieldDescriptor - fd_GenesisState_pending_deposits protoreflect.FieldDescriptor - fd_GenesisState_withdrawal_commitments protoreflect.FieldDescriptor - fd_GenesisState_next_l2_sequence protoreflect.FieldDescriptor - fd_GenesisState_next_l1_sequence protoreflect.FieldDescriptor - fd_GenesisState_bridge_info protoreflect.FieldDescriptor - fd_GenesisState_exported protoreflect.FieldDescriptor + md_GenesisState protoreflect.MessageDescriptor + fd_GenesisState_params protoreflect.FieldDescriptor + fd_GenesisState_last_validator_powers protoreflect.FieldDescriptor + fd_GenesisState_validators protoreflect.FieldDescriptor + fd_GenesisState_next_l2_sequence protoreflect.FieldDescriptor + fd_GenesisState_next_l1_sequence protoreflect.FieldDescriptor + fd_GenesisState_bridge_info protoreflect.FieldDescriptor + fd_GenesisState_exported protoreflect.FieldDescriptor ) func init() { @@ -238,8 +134,6 @@ func init() { fd_GenesisState_params = md_GenesisState.Fields().ByName("params") fd_GenesisState_last_validator_powers = md_GenesisState.Fields().ByName("last_validator_powers") fd_GenesisState_validators = md_GenesisState.Fields().ByName("validators") - fd_GenesisState_pending_deposits = md_GenesisState.Fields().ByName("pending_deposits") - fd_GenesisState_withdrawal_commitments = md_GenesisState.Fields().ByName("withdrawal_commitments") fd_GenesisState_next_l2_sequence = md_GenesisState.Fields().ByName("next_l2_sequence") fd_GenesisState_next_l1_sequence = md_GenesisState.Fields().ByName("next_l1_sequence") fd_GenesisState_bridge_info = md_GenesisState.Fields().ByName("bridge_info") @@ -329,18 +223,6 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, return } } - if len(x.PendingDeposits) != 0 { - value := protoreflect.ValueOfList(&_GenesisState_4_list{list: &x.PendingDeposits}) - if !f(fd_GenesisState_pending_deposits, value) { - return - } - } - if len(x.WithdrawalCommitments) != 0 { - value := protoreflect.ValueOfList(&_GenesisState_5_list{list: &x.WithdrawalCommitments}) - if !f(fd_GenesisState_withdrawal_commitments, value) { - return - } - } if x.NextL2Sequence != uint64(0) { value := protoreflect.ValueOfUint64(x.NextL2Sequence) if !f(fd_GenesisState_next_l2_sequence, value) { @@ -386,10 +268,6 @@ func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool return len(x.LastValidatorPowers) != 0 case "opinit.opchild.v1.GenesisState.validators": return len(x.Validators) != 0 - case "opinit.opchild.v1.GenesisState.pending_deposits": - return len(x.PendingDeposits) != 0 - case "opinit.opchild.v1.GenesisState.withdrawal_commitments": - return len(x.WithdrawalCommitments) != 0 case "opinit.opchild.v1.GenesisState.next_l2_sequence": return x.NextL2Sequence != uint64(0) case "opinit.opchild.v1.GenesisState.next_l1_sequence": @@ -420,10 +298,6 @@ func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) { x.LastValidatorPowers = nil case "opinit.opchild.v1.GenesisState.validators": x.Validators = nil - case "opinit.opchild.v1.GenesisState.pending_deposits": - x.PendingDeposits = nil - case "opinit.opchild.v1.GenesisState.withdrawal_commitments": - x.WithdrawalCommitments = nil case "opinit.opchild.v1.GenesisState.next_l2_sequence": x.NextL2Sequence = uint64(0) case "opinit.opchild.v1.GenesisState.next_l1_sequence": @@ -463,18 +337,6 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto } listValue := &_GenesisState_3_list{list: &x.Validators} return protoreflect.ValueOfList(listValue) - case "opinit.opchild.v1.GenesisState.pending_deposits": - if len(x.PendingDeposits) == 0 { - return protoreflect.ValueOfList(&_GenesisState_4_list{}) - } - listValue := &_GenesisState_4_list{list: &x.PendingDeposits} - return protoreflect.ValueOfList(listValue) - case "opinit.opchild.v1.GenesisState.withdrawal_commitments": - if len(x.WithdrawalCommitments) == 0 { - return protoreflect.ValueOfList(&_GenesisState_5_list{}) - } - listValue := &_GenesisState_5_list{list: &x.WithdrawalCommitments} - return protoreflect.ValueOfList(listValue) case "opinit.opchild.v1.GenesisState.next_l2_sequence": value := x.NextL2Sequence return protoreflect.ValueOfUint64(value) @@ -517,14 +379,6 @@ func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value lv := value.List() clv := lv.(*_GenesisState_3_list) x.Validators = *clv.list - case "opinit.opchild.v1.GenesisState.pending_deposits": - lv := value.List() - clv := lv.(*_GenesisState_4_list) - x.PendingDeposits = *clv.list - case "opinit.opchild.v1.GenesisState.withdrawal_commitments": - lv := value.List() - clv := lv.(*_GenesisState_5_list) - x.WithdrawalCommitments = *clv.list case "opinit.opchild.v1.GenesisState.next_l2_sequence": x.NextL2Sequence = value.Uint() case "opinit.opchild.v1.GenesisState.next_l1_sequence": @@ -570,18 +424,6 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p } value := &_GenesisState_3_list{list: &x.Validators} return protoreflect.ValueOfList(value) - case "opinit.opchild.v1.GenesisState.pending_deposits": - if x.PendingDeposits == nil { - x.PendingDeposits = []*PendingDeposits{} - } - value := &_GenesisState_4_list{list: &x.PendingDeposits} - return protoreflect.ValueOfList(value) - case "opinit.opchild.v1.GenesisState.withdrawal_commitments": - if x.WithdrawalCommitments == nil { - x.WithdrawalCommitments = []*WithdrawalCommitment{} - } - value := &_GenesisState_5_list{list: &x.WithdrawalCommitments} - return protoreflect.ValueOfList(value) case "opinit.opchild.v1.GenesisState.bridge_info": if x.BridgeInfo == nil { x.BridgeInfo = new(BridgeInfo) @@ -615,12 +457,6 @@ func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) case "opinit.opchild.v1.GenesisState.validators": list := []*Validator{} return protoreflect.ValueOfList(&_GenesisState_3_list{list: &list}) - case "opinit.opchild.v1.GenesisState.pending_deposits": - list := []*PendingDeposits{} - return protoreflect.ValueOfList(&_GenesisState_4_list{list: &list}) - case "opinit.opchild.v1.GenesisState.withdrawal_commitments": - list := []*WithdrawalCommitment{} - return protoreflect.ValueOfList(&_GenesisState_5_list{list: &list}) case "opinit.opchild.v1.GenesisState.next_l2_sequence": return protoreflect.ValueOfUint64(uint64(0)) case "opinit.opchild.v1.GenesisState.next_l1_sequence": @@ -715,18 +551,6 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { n += 1 + l + runtime.Sov(uint64(l)) } } - if len(x.PendingDeposits) > 0 { - for _, e := range x.PendingDeposits { - l = options.Size(e) - n += 1 + l + runtime.Sov(uint64(l)) - } - } - if len(x.WithdrawalCommitments) > 0 { - for _, e := range x.WithdrawalCommitments { - l = options.Size(e) - n += 1 + l + runtime.Sov(uint64(l)) - } - } if x.NextL2Sequence != 0 { n += 1 + runtime.Sov(uint64(x.NextL2Sequence)) } @@ -803,38 +627,6 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { i-- dAtA[i] = 0x30 } - if len(x.WithdrawalCommitments) > 0 { - for iNdEx := len(x.WithdrawalCommitments) - 1; iNdEx >= 0; iNdEx-- { - encoded, err := options.Marshal(x.WithdrawalCommitments[iNdEx]) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x2a - } - } - if len(x.PendingDeposits) > 0 { - for iNdEx := len(x.PendingDeposits) - 1; iNdEx >= 0; iNdEx-- { - encoded, err := options.Marshal(x.PendingDeposits[iNdEx]) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x22 - } - } if len(x.Validators) > 0 { for iNdEx := len(x.Validators) - 1; iNdEx >= 0; iNdEx-- { encoded, err := options.Marshal(x.Validators[iNdEx]) @@ -1034,74 +826,6 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 4: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field PendingDeposits", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.PendingDeposits = append(x.PendingDeposits, &PendingDeposits{}) - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.PendingDeposits[len(x.PendingDeposits)-1]); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field WithdrawalCommitments", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.WithdrawalCommitments = append(x.WithdrawalCommitments, &WithdrawalCommitment{}) - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.WithdrawalCommitments[len(x.WithdrawalCommitments)-1]); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex case 6: if wireType != 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NextL2Sequence", wireType) @@ -1724,15 +1448,11 @@ type GenesisState struct { // of the last-block's bonded validators. LastValidatorPowers []*LastValidatorPower `protobuf:"bytes,2,rep,name=last_validator_powers,json=lastValidatorPowers,proto3" json:"last_validator_powers,omitempty"` // delegations defines the validator set at genesis. - Validators []*Validator `protobuf:"bytes,3,rep,name=validators,proto3" json:"validators,omitempty"` - // the pending deposits that are not failed to be deposited. - PendingDeposits []*PendingDeposits `protobuf:"bytes,4,rep,name=pending_deposits,json=pendingDeposits,proto3" json:"pending_deposits,omitempty"` - // the withdrawal commitments for force withdrawal. - WithdrawalCommitments []*WithdrawalCommitment `protobuf:"bytes,5,rep,name=withdrawal_commitments,json=withdrawalCommitments,proto3" json:"withdrawal_commitments,omitempty"` - NextL2Sequence uint64 `protobuf:"varint,6,opt,name=next_l2_sequence,json=nextL2Sequence,proto3" json:"next_l2_sequence,omitempty"` - NextL1Sequence uint64 `protobuf:"varint,7,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` - BridgeInfo *BridgeInfo `protobuf:"bytes,8,opt,name=bridge_info,json=bridgeInfo,proto3" json:"bridge_info,omitempty"` - Exported bool `protobuf:"varint,9,opt,name=exported,proto3" json:"exported,omitempty"` + Validators []*Validator `protobuf:"bytes,3,rep,name=validators,proto3" json:"validators,omitempty"` + NextL2Sequence uint64 `protobuf:"varint,6,opt,name=next_l2_sequence,json=nextL2Sequence,proto3" json:"next_l2_sequence,omitempty"` + NextL1Sequence uint64 `protobuf:"varint,7,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` + BridgeInfo *BridgeInfo `protobuf:"bytes,8,opt,name=bridge_info,json=bridgeInfo,proto3" json:"bridge_info,omitempty"` + Exported bool `protobuf:"varint,9,opt,name=exported,proto3" json:"exported,omitempty"` } func (x *GenesisState) Reset() { @@ -1776,20 +1496,6 @@ func (x *GenesisState) GetValidators() []*Validator { return nil } -func (x *GenesisState) GetPendingDeposits() []*PendingDeposits { - if x != nil { - return x.PendingDeposits - } - return nil -} - -func (x *GenesisState) GetWithdrawalCommitments() []*WithdrawalCommitment { - if x != nil { - return x.WithdrawalCommitments - } - return nil -} - func (x *GenesisState) GetNextL2Sequence() uint64 { if x != nil { return x.NextL2Sequence @@ -1876,7 +1582,7 @@ var file_opinit_opchild_v1_genesis_proto_rawDesc = []byte{ 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf0, 0x04, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xab, 0x03, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, @@ -1892,50 +1598,38 @@ var file_opinit_opchild_v1_genesis_proto_rawDesc = []byte{ 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x58, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, - 0x69, 0x0a, 0x16, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x15, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, - 0x6e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3e, - 0x0a, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, - 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x22, 0x68, 0x0a, 0x12, 0x4c, 0x61, - 0x73, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x77, 0x65, 0x72, - 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, - 0xe8, 0xa0, 0x1f, 0x00, 0x42, 0xca, 0x01, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x42, 0x0c, - 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1d, 0x4f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x13, 0x4f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x32, + 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, + 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x22, 0x68, 0x0a, 0x12, 0x4c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x70, 0x6f, 0x77, 0x65, 0x72, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x42, + 0xca, 0x01, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, + 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, + 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, + 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x6f, + 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x4f, 0x58, 0xaa, 0x02, + 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, + 0x56, 0x31, 0xca, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1d, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, + 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x13, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, + 0x3a, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1952,26 +1646,22 @@ func file_opinit_opchild_v1_genesis_proto_rawDescGZIP() []byte { var file_opinit_opchild_v1_genesis_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_opinit_opchild_v1_genesis_proto_goTypes = []interface{}{ - (*GenesisState)(nil), // 0: opinit.opchild.v1.GenesisState - (*LastValidatorPower)(nil), // 1: opinit.opchild.v1.LastValidatorPower - (*Params)(nil), // 2: opinit.opchild.v1.Params - (*Validator)(nil), // 3: opinit.opchild.v1.Validator - (*PendingDeposits)(nil), // 4: opinit.opchild.v1.PendingDeposits - (*WithdrawalCommitment)(nil), // 5: opinit.opchild.v1.WithdrawalCommitment - (*BridgeInfo)(nil), // 6: opinit.opchild.v1.BridgeInfo + (*GenesisState)(nil), // 0: opinit.opchild.v1.GenesisState + (*LastValidatorPower)(nil), // 1: opinit.opchild.v1.LastValidatorPower + (*Params)(nil), // 2: opinit.opchild.v1.Params + (*Validator)(nil), // 3: opinit.opchild.v1.Validator + (*BridgeInfo)(nil), // 4: opinit.opchild.v1.BridgeInfo } var file_opinit_opchild_v1_genesis_proto_depIdxs = []int32{ 2, // 0: opinit.opchild.v1.GenesisState.params:type_name -> opinit.opchild.v1.Params 1, // 1: opinit.opchild.v1.GenesisState.last_validator_powers:type_name -> opinit.opchild.v1.LastValidatorPower 3, // 2: opinit.opchild.v1.GenesisState.validators:type_name -> opinit.opchild.v1.Validator - 4, // 3: opinit.opchild.v1.GenesisState.pending_deposits:type_name -> opinit.opchild.v1.PendingDeposits - 5, // 4: opinit.opchild.v1.GenesisState.withdrawal_commitments:type_name -> opinit.opchild.v1.WithdrawalCommitment - 6, // 5: opinit.opchild.v1.GenesisState.bridge_info:type_name -> opinit.opchild.v1.BridgeInfo - 6, // [6:6] is the sub-list for method output_type - 6, // [6:6] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 4, // 3: opinit.opchild.v1.GenesisState.bridge_info:type_name -> opinit.opchild.v1.BridgeInfo + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name } func init() { file_opinit_opchild_v1_genesis_proto_init() } diff --git a/api/opinit/opchild/v1/query.pulsar.go b/api/opinit/opchild/v1/query.pulsar.go index 4d4d98fe..a27d9f72 100644 --- a/api/opinit/opchild/v1/query.pulsar.go +++ b/api/opinit/opchild/v1/query.pulsar.go @@ -2,7 +2,6 @@ package opchildv1 import ( - v1 "buf.build/gen/go/cometbft/cometbft/protocolbuffers/go/cometbft/crypto/v1" _ "cosmossdk.io/api/amino" v1beta1 "cosmossdk.io/api/cosmos/base/query/v1beta1" _ "cosmossdk.io/api/cosmos/base/v1beta1" @@ -5825,990 +5824,6 @@ func (x *fastReflection_QueryBaseDenomResponse) ProtoMethods() *protoiface.Metho } } -var ( - md_QueryForceWithdrawalProofsRequest protoreflect.MessageDescriptor - fd_QueryForceWithdrawalProofsRequest_sequence protoreflect.FieldDescriptor -) - -func init() { - file_opinit_opchild_v1_query_proto_init() - md_QueryForceWithdrawalProofsRequest = File_opinit_opchild_v1_query_proto.Messages().ByName("QueryForceWithdrawalProofsRequest") - fd_QueryForceWithdrawalProofsRequest_sequence = md_QueryForceWithdrawalProofsRequest.Fields().ByName("sequence") -} - -var _ protoreflect.Message = (*fastReflection_QueryForceWithdrawalProofsRequest)(nil) - -type fastReflection_QueryForceWithdrawalProofsRequest QueryForceWithdrawalProofsRequest - -func (x *QueryForceWithdrawalProofsRequest) ProtoReflect() protoreflect.Message { - return (*fastReflection_QueryForceWithdrawalProofsRequest)(x) -} - -func (x *QueryForceWithdrawalProofsRequest) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_opchild_v1_query_proto_msgTypes[14] - 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) -} - -var _fastReflection_QueryForceWithdrawalProofsRequest_messageType fastReflection_QueryForceWithdrawalProofsRequest_messageType -var _ protoreflect.MessageType = fastReflection_QueryForceWithdrawalProofsRequest_messageType{} - -type fastReflection_QueryForceWithdrawalProofsRequest_messageType struct{} - -func (x fastReflection_QueryForceWithdrawalProofsRequest_messageType) Zero() protoreflect.Message { - return (*fastReflection_QueryForceWithdrawalProofsRequest)(nil) -} -func (x fastReflection_QueryForceWithdrawalProofsRequest_messageType) New() protoreflect.Message { - return new(fastReflection_QueryForceWithdrawalProofsRequest) -} -func (x fastReflection_QueryForceWithdrawalProofsRequest_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_QueryForceWithdrawalProofsRequest -} - -// Descriptor returns message descriptor, which contains only the protobuf -// type information for the message. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) Descriptor() protoreflect.MessageDescriptor { - return md_QueryForceWithdrawalProofsRequest -} - -// Type returns the message type, which encapsulates both Go and protobuf -// type information. If the Go type information is not needed, -// it is recommended that the message descriptor be used instead. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) Type() protoreflect.MessageType { - return _fastReflection_QueryForceWithdrawalProofsRequest_messageType -} - -// New returns a newly allocated and mutable empty message. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) New() protoreflect.Message { - return new(fastReflection_QueryForceWithdrawalProofsRequest) -} - -// Interface unwraps the message reflection interface and -// returns the underlying ProtoMessage interface. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) Interface() protoreflect.ProtoMessage { - return (*QueryForceWithdrawalProofsRequest)(x) -} - -// Range iterates over every populated field in an undefined order, -// calling f for each field descriptor and value encountered. -// Range returns immediately if f returns false. -// While iterating, mutating operations may only be performed -// on the current field descriptor. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.Sequence != uint64(0) { - value := protoreflect.ValueOfUint64(x.Sequence) - if !f(fd_QueryForceWithdrawalProofsRequest_sequence, value) { - return - } - } -} - -// Has reports whether a field is populated. -// -// Some fields have the property of nullability where it is possible to -// distinguish between the default value of a field and whether the field -// was explicitly populated with the default value. Singular message fields, -// member fields of a oneof, and proto2 scalar fields are nullable. Such -// fields are populated only if explicitly set. -// -// In other cases (aside from the nullable cases above), -// a proto3 scalar field is populated if it contains a non-zero value, and -// a repeated field is populated if it is non-empty. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) Has(fd protoreflect.FieldDescriptor) bool { - switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.sequence": - return x.Sequence != uint64(0) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsRequest")) - } - panic(fmt.Errorf("message opinit.opchild.v1.QueryForceWithdrawalProofsRequest does not contain field %s", fd.FullName())) - } -} - -// Clear clears the field such that a subsequent Has call reports false. -// -// Clearing an extension field clears both the extension type and value -// associated with the given field number. -// -// Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) Clear(fd protoreflect.FieldDescriptor) { - switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.sequence": - x.Sequence = uint64(0) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsRequest")) - } - panic(fmt.Errorf("message opinit.opchild.v1.QueryForceWithdrawalProofsRequest does not contain field %s", fd.FullName())) - } -} - -// Get retrieves the value for a field. -// -// For unpopulated scalars, it returns the default value, where -// the default value of a bytes scalar is guaranteed to be a copy. -// For unpopulated composite types, it returns an empty, read-only view -// of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { - switch descriptor.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.sequence": - value := x.Sequence - return protoreflect.ValueOfUint64(value) - default: - if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsRequest")) - } - panic(fmt.Errorf("message opinit.opchild.v1.QueryForceWithdrawalProofsRequest does not contain field %s", descriptor.FullName())) - } -} - -// Set stores the value for a field. -// -// For a field belonging to a oneof, it implicitly clears any other field -// that may be currently set within the same oneof. -// For extension fields, it implicitly stores the provided ExtensionType. -// When setting a composite type, it is unspecified whether the stored value -// aliases the source's memory in any way. If the composite value is an -// empty, read-only value, then it panics. -// -// Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { - switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.sequence": - x.Sequence = value.Uint() - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsRequest")) - } - panic(fmt.Errorf("message opinit.opchild.v1.QueryForceWithdrawalProofsRequest does not contain field %s", fd.FullName())) - } -} - -// Mutable returns a mutable reference to a composite type. -// -// If the field is unpopulated, it may allocate a composite value. -// For a field belonging to a oneof, it implicitly clears any other field -// that may be currently set within the same oneof. -// For extension fields, it implicitly stores the provided ExtensionType -// if not already stored. -// It panics if the field does not contain a composite type. -// -// Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.sequence": - panic(fmt.Errorf("field sequence of message opinit.opchild.v1.QueryForceWithdrawalProofsRequest is not mutable")) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsRequest")) - } - panic(fmt.Errorf("message opinit.opchild.v1.QueryForceWithdrawalProofsRequest does not contain field %s", fd.FullName())) - } -} - -// NewField returns a new value that is assignable to the field -// for the given descriptor. For scalars, this returns the default value. -// For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsRequest.sequence": - return protoreflect.ValueOfUint64(uint64(0)) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsRequest")) - } - panic(fmt.Errorf("message opinit.opchild.v1.QueryForceWithdrawalProofsRequest does not contain field %s", fd.FullName())) - } -} - -// WhichOneof reports which field within the oneof is populated, -// returning nil if none are populated. -// It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - switch d.FullName() { - default: - panic(fmt.Errorf("%s is not a oneof field in opinit.opchild.v1.QueryForceWithdrawalProofsRequest", d.FullName())) - } - panic("unreachable") -} - -// GetUnknown retrieves the entire list of unknown fields. -// The caller may only mutate the contents of the RawFields -// if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) GetUnknown() protoreflect.RawFields { - return x.unknownFields -} - -// SetUnknown stores an entire list of unknown fields. -// The raw fields must be syntactically valid according to the wire format. -// An implementation may panic if this is not the case. -// Once stored, the caller must not mutate the content of the RawFields. -// An empty RawFields may be passed to clear the fields. -// -// SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) SetUnknown(fields protoreflect.RawFields) { - x.unknownFields = fields -} - -// IsValid reports whether the message is valid. -// -// An invalid message is an empty, read-only value. -// -// An invalid message often corresponds to a nil pointer of the concrete -// message type, but the details are implementation dependent. -// Validity is not part of the protobuf data model, and may not -// be preserved in marshaling or other operations. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) IsValid() bool { - return x != nil -} - -// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. -// This method may return nil. -// -// The returned methods type is identical to -// "google.golang.org/protobuf/runtime/protoiface".Methods. -// Consult the protoiface package documentation for details. -func (x *fastReflection_QueryForceWithdrawalProofsRequest) ProtoMethods() *protoiface.Methods { - size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*QueryForceWithdrawalProofsRequest) - if x == nil { - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: 0, - } - } - options := runtime.SizeInputToOptions(input) - _ = options - var n int - var l int - _ = l - if x.Sequence != 0 { - n += 1 + runtime.Sov(uint64(x.Sequence)) - } - if x.unknownFields != nil { - n += len(x.unknownFields) - } - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: n, - } - } - - marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*QueryForceWithdrawalProofsRequest) - if x == nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - options := runtime.MarshalInputToOptions(input) - _ = options - size := options.Size(x) - dAtA := make([]byte, size) - i := len(dAtA) - _ = i - var l int - _ = l - if x.unknownFields != nil { - i -= len(x.unknownFields) - copy(dAtA[i:], x.unknownFields) - } - if x.Sequence != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.Sequence)) - i-- - dAtA[i] = 0x8 - } - if input.Buf != nil { - input.Buf = append(input.Buf, dAtA...) - } else { - input.Buf = dAtA - } - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*QueryForceWithdrawalProofsRequest) - if x == nil { - return protoiface.UnmarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Flags: input.Flags, - }, nil - } - options := runtime.UnmarshalInputToOptions(input) - _ = options - dAtA := input.Buf - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryForceWithdrawalProofsRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryForceWithdrawalProofsRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType) - } - x.Sequence = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - x.Sequence |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := runtime.Skip(dAtA[iNdEx:]) - if err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if !options.DiscardUnknown { - x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - } - iNdEx += skippy - } - } - - if iNdEx > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil - } - return &protoiface.Methods{ - NoUnkeyedLiterals: struct{}{}, - Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, - Size: size, - Marshal: marshal, - Unmarshal: unmarshal, - Merge: nil, - CheckInitialized: nil, - } -} - -var ( - md_QueryForceWithdrawalProofsResponse protoreflect.MessageDescriptor - fd_QueryForceWithdrawalProofsResponse_commitment_proof protoreflect.FieldDescriptor - fd_QueryForceWithdrawalProofsResponse_app_hash protoreflect.FieldDescriptor - fd_QueryForceWithdrawalProofsResponse_app_hash_proof protoreflect.FieldDescriptor -) - -func init() { - file_opinit_opchild_v1_query_proto_init() - md_QueryForceWithdrawalProofsResponse = File_opinit_opchild_v1_query_proto.Messages().ByName("QueryForceWithdrawalProofsResponse") - fd_QueryForceWithdrawalProofsResponse_commitment_proof = md_QueryForceWithdrawalProofsResponse.Fields().ByName("commitment_proof") - fd_QueryForceWithdrawalProofsResponse_app_hash = md_QueryForceWithdrawalProofsResponse.Fields().ByName("app_hash") - fd_QueryForceWithdrawalProofsResponse_app_hash_proof = md_QueryForceWithdrawalProofsResponse.Fields().ByName("app_hash_proof") -} - -var _ protoreflect.Message = (*fastReflection_QueryForceWithdrawalProofsResponse)(nil) - -type fastReflection_QueryForceWithdrawalProofsResponse QueryForceWithdrawalProofsResponse - -func (x *QueryForceWithdrawalProofsResponse) ProtoReflect() protoreflect.Message { - return (*fastReflection_QueryForceWithdrawalProofsResponse)(x) -} - -func (x *QueryForceWithdrawalProofsResponse) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_opchild_v1_query_proto_msgTypes[15] - 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) -} - -var _fastReflection_QueryForceWithdrawalProofsResponse_messageType fastReflection_QueryForceWithdrawalProofsResponse_messageType -var _ protoreflect.MessageType = fastReflection_QueryForceWithdrawalProofsResponse_messageType{} - -type fastReflection_QueryForceWithdrawalProofsResponse_messageType struct{} - -func (x fastReflection_QueryForceWithdrawalProofsResponse_messageType) Zero() protoreflect.Message { - return (*fastReflection_QueryForceWithdrawalProofsResponse)(nil) -} -func (x fastReflection_QueryForceWithdrawalProofsResponse_messageType) New() protoreflect.Message { - return new(fastReflection_QueryForceWithdrawalProofsResponse) -} -func (x fastReflection_QueryForceWithdrawalProofsResponse_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_QueryForceWithdrawalProofsResponse -} - -// Descriptor returns message descriptor, which contains only the protobuf -// type information for the message. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) Descriptor() protoreflect.MessageDescriptor { - return md_QueryForceWithdrawalProofsResponse -} - -// Type returns the message type, which encapsulates both Go and protobuf -// type information. If the Go type information is not needed, -// it is recommended that the message descriptor be used instead. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) Type() protoreflect.MessageType { - return _fastReflection_QueryForceWithdrawalProofsResponse_messageType -} - -// New returns a newly allocated and mutable empty message. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) New() protoreflect.Message { - return new(fastReflection_QueryForceWithdrawalProofsResponse) -} - -// Interface unwraps the message reflection interface and -// returns the underlying ProtoMessage interface. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) Interface() protoreflect.ProtoMessage { - return (*QueryForceWithdrawalProofsResponse)(x) -} - -// Range iterates over every populated field in an undefined order, -// calling f for each field descriptor and value encountered. -// Range returns immediately if f returns false. -// While iterating, mutating operations may only be performed -// on the current field descriptor. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.CommitmentProof != nil { - value := protoreflect.ValueOfMessage(x.CommitmentProof.ProtoReflect()) - if !f(fd_QueryForceWithdrawalProofsResponse_commitment_proof, value) { - return - } - } - if len(x.AppHash) != 0 { - value := protoreflect.ValueOfBytes(x.AppHash) - if !f(fd_QueryForceWithdrawalProofsResponse_app_hash, value) { - return - } - } - if x.AppHashProof != nil { - value := protoreflect.ValueOfMessage(x.AppHashProof.ProtoReflect()) - if !f(fd_QueryForceWithdrawalProofsResponse_app_hash_proof, value) { - return - } - } -} - -// Has reports whether a field is populated. -// -// Some fields have the property of nullability where it is possible to -// distinguish between the default value of a field and whether the field -// was explicitly populated with the default value. Singular message fields, -// member fields of a oneof, and proto2 scalar fields are nullable. Such -// fields are populated only if explicitly set. -// -// In other cases (aside from the nullable cases above), -// a proto3 scalar field is populated if it contains a non-zero value, and -// a repeated field is populated if it is non-empty. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) Has(fd protoreflect.FieldDescriptor) bool { - switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.commitment_proof": - return x.CommitmentProof != nil - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash": - return len(x.AppHash) != 0 - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash_proof": - return x.AppHashProof != nil - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsResponse")) - } - panic(fmt.Errorf("message opinit.opchild.v1.QueryForceWithdrawalProofsResponse does not contain field %s", fd.FullName())) - } -} - -// Clear clears the field such that a subsequent Has call reports false. -// -// Clearing an extension field clears both the extension type and value -// associated with the given field number. -// -// Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) Clear(fd protoreflect.FieldDescriptor) { - switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.commitment_proof": - x.CommitmentProof = nil - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash": - x.AppHash = nil - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash_proof": - x.AppHashProof = nil - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsResponse")) - } - panic(fmt.Errorf("message opinit.opchild.v1.QueryForceWithdrawalProofsResponse does not contain field %s", fd.FullName())) - } -} - -// Get retrieves the value for a field. -// -// For unpopulated scalars, it returns the default value, where -// the default value of a bytes scalar is guaranteed to be a copy. -// For unpopulated composite types, it returns an empty, read-only view -// of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { - switch descriptor.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.commitment_proof": - value := x.CommitmentProof - return protoreflect.ValueOfMessage(value.ProtoReflect()) - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash": - value := x.AppHash - return protoreflect.ValueOfBytes(value) - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash_proof": - value := x.AppHashProof - return protoreflect.ValueOfMessage(value.ProtoReflect()) - default: - if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsResponse")) - } - panic(fmt.Errorf("message opinit.opchild.v1.QueryForceWithdrawalProofsResponse does not contain field %s", descriptor.FullName())) - } -} - -// Set stores the value for a field. -// -// For a field belonging to a oneof, it implicitly clears any other field -// that may be currently set within the same oneof. -// For extension fields, it implicitly stores the provided ExtensionType. -// When setting a composite type, it is unspecified whether the stored value -// aliases the source's memory in any way. If the composite value is an -// empty, read-only value, then it panics. -// -// Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { - switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.commitment_proof": - x.CommitmentProof = value.Message().Interface().(*v1.ProofOps) - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash": - x.AppHash = value.Bytes() - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash_proof": - x.AppHashProof = value.Message().Interface().(*v1.Proof) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsResponse")) - } - panic(fmt.Errorf("message opinit.opchild.v1.QueryForceWithdrawalProofsResponse does not contain field %s", fd.FullName())) - } -} - -// Mutable returns a mutable reference to a composite type. -// -// If the field is unpopulated, it may allocate a composite value. -// For a field belonging to a oneof, it implicitly clears any other field -// that may be currently set within the same oneof. -// For extension fields, it implicitly stores the provided ExtensionType -// if not already stored. -// It panics if the field does not contain a composite type. -// -// Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.commitment_proof": - if x.CommitmentProof == nil { - x.CommitmentProof = new(v1.ProofOps) - } - return protoreflect.ValueOfMessage(x.CommitmentProof.ProtoReflect()) - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash_proof": - if x.AppHashProof == nil { - x.AppHashProof = new(v1.Proof) - } - return protoreflect.ValueOfMessage(x.AppHashProof.ProtoReflect()) - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash": - panic(fmt.Errorf("field app_hash of message opinit.opchild.v1.QueryForceWithdrawalProofsResponse is not mutable")) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsResponse")) - } - panic(fmt.Errorf("message opinit.opchild.v1.QueryForceWithdrawalProofsResponse does not contain field %s", fd.FullName())) - } -} - -// NewField returns a new value that is assignable to the field -// for the given descriptor. For scalars, this returns the default value. -// For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.commitment_proof": - m := new(v1.ProofOps) - return protoreflect.ValueOfMessage(m.ProtoReflect()) - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash": - return protoreflect.ValueOfBytes(nil) - case "opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash_proof": - m := new(v1.Proof) - return protoreflect.ValueOfMessage(m.ProtoReflect()) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryForceWithdrawalProofsResponse")) - } - panic(fmt.Errorf("message opinit.opchild.v1.QueryForceWithdrawalProofsResponse does not contain field %s", fd.FullName())) - } -} - -// WhichOneof reports which field within the oneof is populated, -// returning nil if none are populated. -// It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - switch d.FullName() { - default: - panic(fmt.Errorf("%s is not a oneof field in opinit.opchild.v1.QueryForceWithdrawalProofsResponse", d.FullName())) - } - panic("unreachable") -} - -// GetUnknown retrieves the entire list of unknown fields. -// The caller may only mutate the contents of the RawFields -// if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) GetUnknown() protoreflect.RawFields { - return x.unknownFields -} - -// SetUnknown stores an entire list of unknown fields. -// The raw fields must be syntactically valid according to the wire format. -// An implementation may panic if this is not the case. -// Once stored, the caller must not mutate the content of the RawFields. -// An empty RawFields may be passed to clear the fields. -// -// SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) SetUnknown(fields protoreflect.RawFields) { - x.unknownFields = fields -} - -// IsValid reports whether the message is valid. -// -// An invalid message is an empty, read-only value. -// -// An invalid message often corresponds to a nil pointer of the concrete -// message type, but the details are implementation dependent. -// Validity is not part of the protobuf data model, and may not -// be preserved in marshaling or other operations. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) IsValid() bool { - return x != nil -} - -// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. -// This method may return nil. -// -// The returned methods type is identical to -// "google.golang.org/protobuf/runtime/protoiface".Methods. -// Consult the protoiface package documentation for details. -func (x *fastReflection_QueryForceWithdrawalProofsResponse) ProtoMethods() *protoiface.Methods { - size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*QueryForceWithdrawalProofsResponse) - if x == nil { - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: 0, - } - } - options := runtime.SizeInputToOptions(input) - _ = options - var n int - var l int - _ = l - if x.CommitmentProof != nil { - l = options.Size(x.CommitmentProof) - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.AppHash) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - if x.AppHashProof != nil { - l = options.Size(x.AppHashProof) - n += 1 + l + runtime.Sov(uint64(l)) - } - if x.unknownFields != nil { - n += len(x.unknownFields) - } - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: n, - } - } - - marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*QueryForceWithdrawalProofsResponse) - if x == nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - options := runtime.MarshalInputToOptions(input) - _ = options - size := options.Size(x) - dAtA := make([]byte, size) - i := len(dAtA) - _ = i - var l int - _ = l - if x.unknownFields != nil { - i -= len(x.unknownFields) - copy(dAtA[i:], x.unknownFields) - } - if x.AppHashProof != nil { - encoded, err := options.Marshal(x.AppHashProof) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x2a - } - if len(x.AppHash) > 0 { - i -= len(x.AppHash) - copy(dAtA[i:], x.AppHash) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.AppHash))) - i-- - dAtA[i] = 0x22 - } - if x.CommitmentProof != nil { - encoded, err := options.Marshal(x.CommitmentProof) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x1a - } - if input.Buf != nil { - input.Buf = append(input.Buf, dAtA...) - } else { - input.Buf = dAtA - } - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*QueryForceWithdrawalProofsResponse) - if x == nil { - return protoiface.UnmarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Flags: input.Flags, - }, nil - } - options := runtime.UnmarshalInputToOptions(input) - _ = options - dAtA := input.Buf - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryForceWithdrawalProofsResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryForceWithdrawalProofsResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 3: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field CommitmentProof", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if x.CommitmentProof == nil { - x.CommitmentProof = &v1.ProofOps{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.CommitmentProof); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.AppHash = append(x.AppHash[:0], dAtA[iNdEx:postIndex]...) - if x.AppHash == nil { - x.AppHash = []byte{} - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AppHashProof", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if x.AppHashProof == nil { - x.AppHashProof = &v1.Proof{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.AppHashProof); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := runtime.Skip(dAtA[iNdEx:]) - if err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if !options.DiscardUnknown { - x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - } - iNdEx += skippy - } - } - - if iNdEx > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil - } - return &protoiface.Methods{ - NoUnkeyedLiterals: struct{}{}, - Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, - Size: size, - Marshal: marshal, - Unmarshal: unmarshal, - Merge: nil, - CheckInitialized: nil, - } -} - // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.0 @@ -7307,97 +6322,6 @@ func (x *QueryBaseDenomResponse) GetBaseDenom() string { return "" } -// QueryForceWithdrawalProofsRequest is request type for the Query/ForceWithdrawalProofs RPC method. -type QueryForceWithdrawalProofsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // sequence is the sequence number of the withdrawal. - Sequence uint64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"` -} - -func (x *QueryForceWithdrawalProofsRequest) Reset() { - *x = QueryForceWithdrawalProofsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_opinit_opchild_v1_query_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *QueryForceWithdrawalProofsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*QueryForceWithdrawalProofsRequest) ProtoMessage() {} - -// Deprecated: Use QueryForceWithdrawalProofsRequest.ProtoReflect.Descriptor instead. -func (*QueryForceWithdrawalProofsRequest) Descriptor() ([]byte, []int) { - return file_opinit_opchild_v1_query_proto_rawDescGZIP(), []int{14} -} - -func (x *QueryForceWithdrawalProofsRequest) GetSequence() uint64 { - if x != nil { - return x.Sequence - } - return 0 -} - -// QueryForceWithdrawalProofsResponse is response type for the Query/ForceWithdrawalProofs RPC method. -type QueryForceWithdrawalProofsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // withdrawal commitments and proofs - CommitmentProof *v1.ProofOps `protobuf:"bytes,3,opt,name=commitment_proof,json=commitmentProof,proto3" json:"commitment_proof,omitempty"` - // app hash and proof - AppHash []byte `protobuf:"bytes,4,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` - AppHashProof *v1.Proof `protobuf:"bytes,5,opt,name=app_hash_proof,json=appHashProof,proto3" json:"app_hash_proof,omitempty"` -} - -func (x *QueryForceWithdrawalProofsResponse) Reset() { - *x = QueryForceWithdrawalProofsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_opinit_opchild_v1_query_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *QueryForceWithdrawalProofsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*QueryForceWithdrawalProofsResponse) ProtoMessage() {} - -// Deprecated: Use QueryForceWithdrawalProofsResponse.ProtoReflect.Descriptor instead. -func (*QueryForceWithdrawalProofsResponse) Descriptor() ([]byte, []int) { - return file_opinit_opchild_v1_query_proto_rawDescGZIP(), []int{15} -} - -func (x *QueryForceWithdrawalProofsResponse) GetCommitmentProof() *v1.ProofOps { - if x != nil { - return x.CommitmentProof - } - return nil -} - -func (x *QueryForceWithdrawalProofsResponse) GetAppHash() []byte { - if x != nil { - return x.AppHash - } - return nil -} - -func (x *QueryForceWithdrawalProofsResponse) GetAppHashProof() *v1.Proof { - if x != nil { - return x.AppHashProof - } - return nil -} - var File_opinit_opchild_v1_query_proto protoreflect.FileDescriptor var file_opinit_opchild_v1_query_proto_rawDesc = []byte{ @@ -7405,8 +6329,6 @@ var file_opinit_opchild_v1_query_proto_rawDesc = []byte{ 0x2f, 0x76, 0x31, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, 0x74, 0x2f, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, @@ -7483,122 +6405,87 @@ var file_opinit_opchild_v1_query_proto_rawDesc = []byte{ 0x37, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, - 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x3f, 0x0a, 0x21, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, - 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xa8, 0x02, 0x0a, 0x22, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x6d, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, - 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6d, - 0x65, 0x74, 0x62, 0x66, 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x70, 0x73, 0x42, 0x24, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, - 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, - 0x2e, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x42, 0x13, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x70, 0x70, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x52, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x63, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x6f, - 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, - 0x66, 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x42, 0x22, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, - 0x3a, 0x22, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, - 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x32, 0xf1, 0x09, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x8f, - 0x01, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x29, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1f, 0x12, 0x1d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x12, 0x9c, 0x01, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x28, - 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, - 0x12, 0x2d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2f, 0x7b, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x12, - 0x90, 0x01, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, - 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x12, 0x7f, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x25, 0x2e, 0x6f, + 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x32, 0xab, 0x08, 0x0a, 0x05, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x12, 0x8f, 0x01, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x88, 0xe7, 0xb0, - 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x0e, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, - 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, - 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x25, 0x12, 0x23, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x0e, 0x4e, 0x65, 0x78, 0x74, - 0x4c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, + 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x7d, 0x12, 0x90, 0x01, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x88, 0xe7, 0xb0, 0x2a, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, + 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x7f, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x26, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x0e, 0x4e, 0x65, 0x78, 0x74, + 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x09, - 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x73, - 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, - 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, - 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, - 0x6d, 0x7d, 0x12, 0xc3, 0x01, 0x0a, 0x15, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x12, 0x34, 0x2e, 0x6f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x63, - 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, 0x66, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x88, 0xe7, 0xb0, 0x2a, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, - 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x42, 0xc8, 0x01, 0x0a, 0x15, 0x63, 0x6f, 0x6d, + 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x0e, + 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, - 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x76, 0x31, 0xa2, - 0x02, 0x03, 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, - 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1d, - 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x13, - 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x88, + 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x94, 0x01, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x28, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x32, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, + 0x25, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x2f, 0x7b, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x42, 0xc8, 0x01, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, + 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1d, 0x4f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x13, 0x4f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -7613,62 +6500,54 @@ func file_opinit_opchild_v1_query_proto_rawDescGZIP() []byte { return file_opinit_opchild_v1_query_proto_rawDescData } -var file_opinit_opchild_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_opinit_opchild_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_opinit_opchild_v1_query_proto_goTypes = []interface{}{ - (*QueryValidatorsRequest)(nil), // 0: opinit.opchild.v1.QueryValidatorsRequest - (*QueryValidatorsResponse)(nil), // 1: opinit.opchild.v1.QueryValidatorsResponse - (*QueryValidatorRequest)(nil), // 2: opinit.opchild.v1.QueryValidatorRequest - (*QueryValidatorResponse)(nil), // 3: opinit.opchild.v1.QueryValidatorResponse - (*QueryBridgeInfoRequest)(nil), // 4: opinit.opchild.v1.QueryBridgeInfoRequest - (*QueryBridgeInfoResponse)(nil), // 5: opinit.opchild.v1.QueryBridgeInfoResponse - (*QueryParamsRequest)(nil), // 6: opinit.opchild.v1.QueryParamsRequest - (*QueryParamsResponse)(nil), // 7: opinit.opchild.v1.QueryParamsResponse - (*QueryNextL1SequenceRequest)(nil), // 8: opinit.opchild.v1.QueryNextL1SequenceRequest - (*QueryNextL1SequenceResponse)(nil), // 9: opinit.opchild.v1.QueryNextL1SequenceResponse - (*QueryNextL2SequenceRequest)(nil), // 10: opinit.opchild.v1.QueryNextL2SequenceRequest - (*QueryNextL2SequenceResponse)(nil), // 11: opinit.opchild.v1.QueryNextL2SequenceResponse - (*QueryBaseDenomRequest)(nil), // 12: opinit.opchild.v1.QueryBaseDenomRequest - (*QueryBaseDenomResponse)(nil), // 13: opinit.opchild.v1.QueryBaseDenomResponse - (*QueryForceWithdrawalProofsRequest)(nil), // 14: opinit.opchild.v1.QueryForceWithdrawalProofsRequest - (*QueryForceWithdrawalProofsResponse)(nil), // 15: opinit.opchild.v1.QueryForceWithdrawalProofsResponse - (*v1beta1.PageRequest)(nil), // 16: cosmos.base.query.v1beta1.PageRequest - (*Validator)(nil), // 17: opinit.opchild.v1.Validator - (*v1beta1.PageResponse)(nil), // 18: cosmos.base.query.v1beta1.PageResponse - (*BridgeInfo)(nil), // 19: opinit.opchild.v1.BridgeInfo - (*Params)(nil), // 20: opinit.opchild.v1.Params - (*v1.ProofOps)(nil), // 21: cometbft.crypto.v1.ProofOps - (*v1.Proof)(nil), // 22: cometbft.crypto.v1.Proof + (*QueryValidatorsRequest)(nil), // 0: opinit.opchild.v1.QueryValidatorsRequest + (*QueryValidatorsResponse)(nil), // 1: opinit.opchild.v1.QueryValidatorsResponse + (*QueryValidatorRequest)(nil), // 2: opinit.opchild.v1.QueryValidatorRequest + (*QueryValidatorResponse)(nil), // 3: opinit.opchild.v1.QueryValidatorResponse + (*QueryBridgeInfoRequest)(nil), // 4: opinit.opchild.v1.QueryBridgeInfoRequest + (*QueryBridgeInfoResponse)(nil), // 5: opinit.opchild.v1.QueryBridgeInfoResponse + (*QueryParamsRequest)(nil), // 6: opinit.opchild.v1.QueryParamsRequest + (*QueryParamsResponse)(nil), // 7: opinit.opchild.v1.QueryParamsResponse + (*QueryNextL1SequenceRequest)(nil), // 8: opinit.opchild.v1.QueryNextL1SequenceRequest + (*QueryNextL1SequenceResponse)(nil), // 9: opinit.opchild.v1.QueryNextL1SequenceResponse + (*QueryNextL2SequenceRequest)(nil), // 10: opinit.opchild.v1.QueryNextL2SequenceRequest + (*QueryNextL2SequenceResponse)(nil), // 11: opinit.opchild.v1.QueryNextL2SequenceResponse + (*QueryBaseDenomRequest)(nil), // 12: opinit.opchild.v1.QueryBaseDenomRequest + (*QueryBaseDenomResponse)(nil), // 13: opinit.opchild.v1.QueryBaseDenomResponse + (*v1beta1.PageRequest)(nil), // 14: cosmos.base.query.v1beta1.PageRequest + (*Validator)(nil), // 15: opinit.opchild.v1.Validator + (*v1beta1.PageResponse)(nil), // 16: cosmos.base.query.v1beta1.PageResponse + (*BridgeInfo)(nil), // 17: opinit.opchild.v1.BridgeInfo + (*Params)(nil), // 18: opinit.opchild.v1.Params } var file_opinit_opchild_v1_query_proto_depIdxs = []int32{ - 16, // 0: opinit.opchild.v1.QueryValidatorsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 17, // 1: opinit.opchild.v1.QueryValidatorsResponse.validators:type_name -> opinit.opchild.v1.Validator - 18, // 2: opinit.opchild.v1.QueryValidatorsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 17, // 3: opinit.opchild.v1.QueryValidatorResponse.validator:type_name -> opinit.opchild.v1.Validator - 19, // 4: opinit.opchild.v1.QueryBridgeInfoResponse.bridge_info:type_name -> opinit.opchild.v1.BridgeInfo - 20, // 5: opinit.opchild.v1.QueryParamsResponse.params:type_name -> opinit.opchild.v1.Params - 21, // 6: opinit.opchild.v1.QueryForceWithdrawalProofsResponse.commitment_proof:type_name -> cometbft.crypto.v1.ProofOps - 22, // 7: opinit.opchild.v1.QueryForceWithdrawalProofsResponse.app_hash_proof:type_name -> cometbft.crypto.v1.Proof - 0, // 8: opinit.opchild.v1.Query.Validators:input_type -> opinit.opchild.v1.QueryValidatorsRequest - 2, // 9: opinit.opchild.v1.Query.Validator:input_type -> opinit.opchild.v1.QueryValidatorRequest - 4, // 10: opinit.opchild.v1.Query.BridgeInfo:input_type -> opinit.opchild.v1.QueryBridgeInfoRequest - 6, // 11: opinit.opchild.v1.Query.Params:input_type -> opinit.opchild.v1.QueryParamsRequest - 8, // 12: opinit.opchild.v1.Query.NextL1Sequence:input_type -> opinit.opchild.v1.QueryNextL1SequenceRequest - 10, // 13: opinit.opchild.v1.Query.NextL2Sequence:input_type -> opinit.opchild.v1.QueryNextL2SequenceRequest - 12, // 14: opinit.opchild.v1.Query.BaseDenom:input_type -> opinit.opchild.v1.QueryBaseDenomRequest - 14, // 15: opinit.opchild.v1.Query.ForceWithdrawalProofs:input_type -> opinit.opchild.v1.QueryForceWithdrawalProofsRequest - 1, // 16: opinit.opchild.v1.Query.Validators:output_type -> opinit.opchild.v1.QueryValidatorsResponse - 3, // 17: opinit.opchild.v1.Query.Validator:output_type -> opinit.opchild.v1.QueryValidatorResponse - 5, // 18: opinit.opchild.v1.Query.BridgeInfo:output_type -> opinit.opchild.v1.QueryBridgeInfoResponse - 7, // 19: opinit.opchild.v1.Query.Params:output_type -> opinit.opchild.v1.QueryParamsResponse - 9, // 20: opinit.opchild.v1.Query.NextL1Sequence:output_type -> opinit.opchild.v1.QueryNextL1SequenceResponse - 11, // 21: opinit.opchild.v1.Query.NextL2Sequence:output_type -> opinit.opchild.v1.QueryNextL2SequenceResponse - 13, // 22: opinit.opchild.v1.Query.BaseDenom:output_type -> opinit.opchild.v1.QueryBaseDenomResponse - 15, // 23: opinit.opchild.v1.Query.ForceWithdrawalProofs:output_type -> opinit.opchild.v1.QueryForceWithdrawalProofsResponse - 16, // [16:24] is the sub-list for method output_type - 8, // [8:16] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 14, // 0: opinit.opchild.v1.QueryValidatorsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 15, // 1: opinit.opchild.v1.QueryValidatorsResponse.validators:type_name -> opinit.opchild.v1.Validator + 16, // 2: opinit.opchild.v1.QueryValidatorsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 15, // 3: opinit.opchild.v1.QueryValidatorResponse.validator:type_name -> opinit.opchild.v1.Validator + 17, // 4: opinit.opchild.v1.QueryBridgeInfoResponse.bridge_info:type_name -> opinit.opchild.v1.BridgeInfo + 18, // 5: opinit.opchild.v1.QueryParamsResponse.params:type_name -> opinit.opchild.v1.Params + 0, // 6: opinit.opchild.v1.Query.Validators:input_type -> opinit.opchild.v1.QueryValidatorsRequest + 2, // 7: opinit.opchild.v1.Query.Validator:input_type -> opinit.opchild.v1.QueryValidatorRequest + 4, // 8: opinit.opchild.v1.Query.BridgeInfo:input_type -> opinit.opchild.v1.QueryBridgeInfoRequest + 6, // 9: opinit.opchild.v1.Query.Params:input_type -> opinit.opchild.v1.QueryParamsRequest + 8, // 10: opinit.opchild.v1.Query.NextL1Sequence:input_type -> opinit.opchild.v1.QueryNextL1SequenceRequest + 10, // 11: opinit.opchild.v1.Query.NextL2Sequence:input_type -> opinit.opchild.v1.QueryNextL2SequenceRequest + 12, // 12: opinit.opchild.v1.Query.BaseDenom:input_type -> opinit.opchild.v1.QueryBaseDenomRequest + 1, // 13: opinit.opchild.v1.Query.Validators:output_type -> opinit.opchild.v1.QueryValidatorsResponse + 3, // 14: opinit.opchild.v1.Query.Validator:output_type -> opinit.opchild.v1.QueryValidatorResponse + 5, // 15: opinit.opchild.v1.Query.BridgeInfo:output_type -> opinit.opchild.v1.QueryBridgeInfoResponse + 7, // 16: opinit.opchild.v1.Query.Params:output_type -> opinit.opchild.v1.QueryParamsResponse + 9, // 17: opinit.opchild.v1.Query.NextL1Sequence:output_type -> opinit.opchild.v1.QueryNextL1SequenceResponse + 11, // 18: opinit.opchild.v1.Query.NextL2Sequence:output_type -> opinit.opchild.v1.QueryNextL2SequenceResponse + 13, // 19: opinit.opchild.v1.Query.BaseDenom:output_type -> opinit.opchild.v1.QueryBaseDenomResponse + 13, // [13:20] is the sub-list for method output_type + 6, // [6:13] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name } func init() { file_opinit_opchild_v1_query_proto_init() } @@ -7846,30 +6725,6 @@ func file_opinit_opchild_v1_query_proto_init() { return nil } } - file_opinit_opchild_v1_query_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryForceWithdrawalProofsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_opinit_opchild_v1_query_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryForceWithdrawalProofsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } } type x struct{} out := protoimpl.TypeBuilder{ @@ -7877,7 +6732,7 @@ func file_opinit_opchild_v1_query_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_opinit_opchild_v1_query_proto_rawDesc, NumEnums: 0, - NumMessages: 16, + NumMessages: 14, NumExtensions: 0, NumServices: 1, }, diff --git a/api/opinit/opchild/v1/query_grpc.pb.go b/api/opinit/opchild/v1/query_grpc.pb.go index 07ec2410..32fb8a10 100644 --- a/api/opinit/opchild/v1/query_grpc.pb.go +++ b/api/opinit/opchild/v1/query_grpc.pb.go @@ -19,14 +19,13 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - Query_Validators_FullMethodName = "/opinit.opchild.v1.Query/Validators" - Query_Validator_FullMethodName = "/opinit.opchild.v1.Query/Validator" - Query_BridgeInfo_FullMethodName = "/opinit.opchild.v1.Query/BridgeInfo" - Query_Params_FullMethodName = "/opinit.opchild.v1.Query/Params" - Query_NextL1Sequence_FullMethodName = "/opinit.opchild.v1.Query/NextL1Sequence" - Query_NextL2Sequence_FullMethodName = "/opinit.opchild.v1.Query/NextL2Sequence" - Query_BaseDenom_FullMethodName = "/opinit.opchild.v1.Query/BaseDenom" - Query_ForceWithdrawalProofs_FullMethodName = "/opinit.opchild.v1.Query/ForceWithdrawalProofs" + Query_Validators_FullMethodName = "/opinit.opchild.v1.Query/Validators" + Query_Validator_FullMethodName = "/opinit.opchild.v1.Query/Validator" + Query_BridgeInfo_FullMethodName = "/opinit.opchild.v1.Query/BridgeInfo" + Query_Params_FullMethodName = "/opinit.opchild.v1.Query/Params" + Query_NextL1Sequence_FullMethodName = "/opinit.opchild.v1.Query/NextL1Sequence" + Query_NextL2Sequence_FullMethodName = "/opinit.opchild.v1.Query/NextL2Sequence" + Query_BaseDenom_FullMethodName = "/opinit.opchild.v1.Query/BaseDenom" ) // QueryClient is the client API for Query service. @@ -49,7 +48,6 @@ type QueryClient interface { // NextL2Sequence queries the next l2 sequence number. NextL2Sequence(ctx context.Context, in *QueryNextL2SequenceRequest, opts ...grpc.CallOption) (*QueryNextL2SequenceResponse, error) BaseDenom(ctx context.Context, in *QueryBaseDenomRequest, opts ...grpc.CallOption) (*QueryBaseDenomResponse, error) - ForceWithdrawalProofs(ctx context.Context, in *QueryForceWithdrawalProofsRequest, opts ...grpc.CallOption) (*QueryForceWithdrawalProofsResponse, error) } type queryClient struct { @@ -123,15 +121,6 @@ func (c *queryClient) BaseDenom(ctx context.Context, in *QueryBaseDenomRequest, return out, nil } -func (c *queryClient) ForceWithdrawalProofs(ctx context.Context, in *QueryForceWithdrawalProofsRequest, opts ...grpc.CallOption) (*QueryForceWithdrawalProofsResponse, error) { - out := new(QueryForceWithdrawalProofsResponse) - err := c.cc.Invoke(ctx, Query_ForceWithdrawalProofs_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - // QueryServer is the server API for Query service. // All implementations must embed UnimplementedQueryServer // for forward compatibility @@ -152,7 +141,6 @@ type QueryServer interface { // NextL2Sequence queries the next l2 sequence number. NextL2Sequence(context.Context, *QueryNextL2SequenceRequest) (*QueryNextL2SequenceResponse, error) BaseDenom(context.Context, *QueryBaseDenomRequest) (*QueryBaseDenomResponse, error) - ForceWithdrawalProofs(context.Context, *QueryForceWithdrawalProofsRequest) (*QueryForceWithdrawalProofsResponse, error) mustEmbedUnimplementedQueryServer() } @@ -181,9 +169,6 @@ func (UnimplementedQueryServer) NextL2Sequence(context.Context, *QueryNextL2Sequ func (UnimplementedQueryServer) BaseDenom(context.Context, *QueryBaseDenomRequest) (*QueryBaseDenomResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BaseDenom not implemented") } -func (UnimplementedQueryServer) ForceWithdrawalProofs(context.Context, *QueryForceWithdrawalProofsRequest) (*QueryForceWithdrawalProofsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ForceWithdrawalProofs not implemented") -} func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {} // UnsafeQueryServer may be embedded to opt out of forward compatibility for this service. @@ -323,24 +308,6 @@ func _Query_BaseDenom_Handler(srv interface{}, ctx context.Context, dec func(int return interceptor(ctx, in, info, handler) } -func _Query_ForceWithdrawalProofs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryForceWithdrawalProofsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).ForceWithdrawalProofs(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: Query_ForceWithdrawalProofs_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).ForceWithdrawalProofs(ctx, req.(*QueryForceWithdrawalProofsRequest)) - } - return interceptor(ctx, in, info, handler) -} - // Query_ServiceDesc is the grpc.ServiceDesc for Query service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -376,10 +343,6 @@ var Query_ServiceDesc = grpc.ServiceDesc{ MethodName: "BaseDenom", Handler: _Query_BaseDenom_Handler, }, - { - MethodName: "ForceWithdrawalProofs", - Handler: _Query_ForceWithdrawalProofs_Handler, - }, }, Streams: []grpc.StreamDesc{}, Metadata: "opinit/opchild/v1/query.proto", diff --git a/api/opinit/opchild/v1/tx.pulsar.go b/api/opinit/opchild/v1/tx.pulsar.go index 4c6a9019..666f91f7 100644 --- a/api/opinit/opchild/v1/tx.pulsar.go +++ b/api/opinit/opchild/v1/tx.pulsar.go @@ -8727,7 +8727,7 @@ type MsgFinalizeTokenDeposit struct { Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` // from is l1 sender address From string `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"` - // to is l2 recipient address + // to is l2 recipient address or "hook" To string `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"` // amount is the coin amount to deposit. Amount *v1beta1.Coin `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"` @@ -9392,218 +9392,215 @@ var file_opinit_opchild_v1_tx_proto_rawDesc = []byte{ 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x03, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, 0x03, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x66, 0x72, 0x6f, - 0x6d, 0x12, 0x28, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, - 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x4d, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x1a, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0d, - 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1d, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x09, 0xc8, 0xde, 0x1f, - 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x2f, 0x82, 0xe7, - 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1f, 0x6f, 0x70, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x22, 0x60, 0x0a, - 0x1f, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3d, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, - 0xfb, 0x01, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x30, - 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, - 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x12, 0x28, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, - 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x4d, 0x0a, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x1a, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0d, 0x79, - 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x32, 0x82, 0xe7, 0xb0, 0x2a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x22, 0x6f, 0x70, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x2f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x22, 0x40, 0x0a, - 0x22, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, - 0xba, 0x02, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, - 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, - 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, + 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x28, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x02, 0x74, + 0x6f, 0x12, 0x4d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x1a, 0xc8, 0xde, + 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x73, 0x65, 0x44, 0x65, + 0x6e, 0x6f, 0x6d, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0c, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x3a, 0x2f, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x8a, + 0xe7, 0xb0, 0x2a, 0x1f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x4d, 0x73, 0x67, 0x46, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x22, 0x60, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xe1, 0x01, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x46, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, - 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x3a, 0x32, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, - 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x8a, 0xe7, 0xb0, 0x2a, 0x17, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x4d, 0x73, 0x67, - 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x19, 0x0a, 0x17, - 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x4a, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x4d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x42, 0x1a, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x32, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x22, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x4d, + 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x22, 0x40, 0x0a, 0x22, 0x4d, 0x73, 0x67, + 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xba, 0x02, 0x0a, 0x0f, + 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, + 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x06, + 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, + 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, + 0x62, 0x6b, 0x65, 0x79, 0x3a, 0x32, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, + 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, + 0x17, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x41, + 0x64, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, + 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x2d, 0x82, + 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, + 0x2a, 0x1a, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1c, 0x0a, 0x1a, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0f, 0x4d, + 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x3a, 0x2d, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1a, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x4d, 0x73, - 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, - 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, - 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, - 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x3a, 0x2a, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x17, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x4d, 0x73, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, - 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x02, 0x0a, 0x0f, 0x4d, 0x73, 0x67, - 0x53, 0x70, 0x65, 0x6e, 0x64, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4a, 0x0a, 0x09, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, - 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, - 0x00, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x2a, 0x82, 0xe7, 0xb0, - 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x17, - 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x53, 0x70, - 0x65, 0x6e, 0x64, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, - 0x3a, 0x22, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x2a, 0x82, + 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, + 0x2a, 0x17, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x02, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x70, 0x65, 0x6e, + 0x64, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, + 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x27, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x17, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, - 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, - 0x63, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xba, 0x07, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x12, 0x67, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x2d, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x0d, - 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x76, 0x0a, 0x14, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, + 0x67, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, + 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xaa, 0xdf, + 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x2a, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x17, 0x6f, 0x70, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x46, 0x65, 0x65, 0x50, + 0x6f, 0x6f, 0x6c, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x46, + 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbb, + 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, + 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x29, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x3a, 0x27, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x8a, 0xe7, 0xb0, 0x2a, 0x17, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x22, 0x19, 0x0a, 0x17, + 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xba, 0x07, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, + 0x67, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x42, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x2b, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x14, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, + 0x73, 0x69, 0x74, 0x12, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x17, 0x49, 0x6e, 0x69, 0x74, 0x69, - 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x61, 0x6c, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, - 0x6c, 0x1a, 0x35, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x1a, + 0x32, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x17, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x2d, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x1a, 0x35, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x2a, 0x2e, 0x6f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x2e, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x5e, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, + 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x2d, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, + 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, - 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x5e, 0x0a, 0x0c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, - 0x6c, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, + 0x0c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x22, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x46, 0x65, - 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, - 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x70, 0x65, - 0x6e, 0x64, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x5e, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, - 0x65, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, + 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, + 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x12, 0x22, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, + 0x65, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, - 0x72, 0x61, 0x63, 0x6c, 0x65, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, - 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xc9, 0x01, 0xc8, 0xe1, 0x1e, 0x00, 0x0a, - 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x76, 0x31, - 0xa2, 0x02, 0x03, 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x11, 0x4f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0xe2, 0x02, - 0x1d, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, - 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x13, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x61, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, + 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xc9, 0x01, 0xc8, 0xe1, 0x1e, 0x00, 0x0a, 0x15, 0x63, 0x6f, 0x6d, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, + 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, + 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, + 0x4f, 0x58, 0xaa, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, + 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1d, 0x4f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x13, 0x4f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/opinit/opchild/v1/types.pulsar.go b/api/opinit/opchild/v1/types.pulsar.go index 06ce153e..98d0a9df 100644 --- a/api/opinit/opchild/v1/types.pulsar.go +++ b/api/opinit/opchild/v1/types.pulsar.go @@ -14,7 +14,6 @@ import ( protoiface "google.golang.org/protobuf/runtime/protoiface" protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" io "io" reflect "reflect" sync "sync" @@ -2702,1081 +2701,78 @@ func (x *fastReflection_BridgeInfo) ProtoMethods() *protoiface.Methods { } } -var _ protoreflect.List = (*_PendingDeposits_2_list)(nil) +var _ protoreflect.List = (*_CoinsWrapper_1_list)(nil) -type _PendingDeposits_2_list struct { +type _CoinsWrapper_1_list struct { list *[]*v1beta1.Coin } -func (x *_PendingDeposits_2_list) Len() int { +func (x *_CoinsWrapper_1_list) Len() int { if x.list == nil { return 0 } return len(*x.list) } -func (x *_PendingDeposits_2_list) Get(i int) protoreflect.Value { +func (x *_CoinsWrapper_1_list) Get(i int) protoreflect.Value { return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) } -func (x *_PendingDeposits_2_list) Set(i int, value protoreflect.Value) { +func (x *_CoinsWrapper_1_list) Set(i int, value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*v1beta1.Coin) (*x.list)[i] = concreteValue } -func (x *_PendingDeposits_2_list) Append(value protoreflect.Value) { +func (x *_CoinsWrapper_1_list) Append(value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*v1beta1.Coin) - *x.list = append(*x.list, concreteValue) -} - -func (x *_PendingDeposits_2_list) AppendMutable() protoreflect.Value { - v := new(v1beta1.Coin) - *x.list = append(*x.list, v) - return protoreflect.ValueOfMessage(v.ProtoReflect()) -} - -func (x *_PendingDeposits_2_list) Truncate(n int) { - for i := n; i < len(*x.list); i++ { - (*x.list)[i] = nil - } - *x.list = (*x.list)[:n] -} - -func (x *_PendingDeposits_2_list) NewElement() protoreflect.Value { - v := new(v1beta1.Coin) - return protoreflect.ValueOfMessage(v.ProtoReflect()) -} - -func (x *_PendingDeposits_2_list) IsValid() bool { - return x.list != nil -} - -var ( - md_PendingDeposits protoreflect.MessageDescriptor - fd_PendingDeposits_recipient protoreflect.FieldDescriptor - fd_PendingDeposits_coins protoreflect.FieldDescriptor -) - -func init() { - file_opinit_opchild_v1_types_proto_init() - md_PendingDeposits = File_opinit_opchild_v1_types_proto.Messages().ByName("PendingDeposits") - fd_PendingDeposits_recipient = md_PendingDeposits.Fields().ByName("recipient") - fd_PendingDeposits_coins = md_PendingDeposits.Fields().ByName("coins") -} - -var _ protoreflect.Message = (*fastReflection_PendingDeposits)(nil) - -type fastReflection_PendingDeposits PendingDeposits - -func (x *PendingDeposits) ProtoReflect() protoreflect.Message { - return (*fastReflection_PendingDeposits)(x) -} - -func (x *PendingDeposits) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_opchild_v1_types_proto_msgTypes[4] - 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) -} - -var _fastReflection_PendingDeposits_messageType fastReflection_PendingDeposits_messageType -var _ protoreflect.MessageType = fastReflection_PendingDeposits_messageType{} - -type fastReflection_PendingDeposits_messageType struct{} - -func (x fastReflection_PendingDeposits_messageType) Zero() protoreflect.Message { - return (*fastReflection_PendingDeposits)(nil) -} -func (x fastReflection_PendingDeposits_messageType) New() protoreflect.Message { - return new(fastReflection_PendingDeposits) -} -func (x fastReflection_PendingDeposits_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_PendingDeposits -} - -// Descriptor returns message descriptor, which contains only the protobuf -// type information for the message. -func (x *fastReflection_PendingDeposits) Descriptor() protoreflect.MessageDescriptor { - return md_PendingDeposits -} - -// Type returns the message type, which encapsulates both Go and protobuf -// type information. If the Go type information is not needed, -// it is recommended that the message descriptor be used instead. -func (x *fastReflection_PendingDeposits) Type() protoreflect.MessageType { - return _fastReflection_PendingDeposits_messageType -} - -// New returns a newly allocated and mutable empty message. -func (x *fastReflection_PendingDeposits) New() protoreflect.Message { - return new(fastReflection_PendingDeposits) -} - -// Interface unwraps the message reflection interface and -// returns the underlying ProtoMessage interface. -func (x *fastReflection_PendingDeposits) Interface() protoreflect.ProtoMessage { - return (*PendingDeposits)(x) -} - -// Range iterates over every populated field in an undefined order, -// calling f for each field descriptor and value encountered. -// Range returns immediately if f returns false. -// While iterating, mutating operations may only be performed -// on the current field descriptor. -func (x *fastReflection_PendingDeposits) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.Recipient != "" { - value := protoreflect.ValueOfString(x.Recipient) - if !f(fd_PendingDeposits_recipient, value) { - return - } - } - if len(x.Coins) != 0 { - value := protoreflect.ValueOfList(&_PendingDeposits_2_list{list: &x.Coins}) - if !f(fd_PendingDeposits_coins, value) { - return - } - } -} - -// Has reports whether a field is populated. -// -// Some fields have the property of nullability where it is possible to -// distinguish between the default value of a field and whether the field -// was explicitly populated with the default value. Singular message fields, -// member fields of a oneof, and proto2 scalar fields are nullable. Such -// fields are populated only if explicitly set. -// -// In other cases (aside from the nullable cases above), -// a proto3 scalar field is populated if it contains a non-zero value, and -// a repeated field is populated if it is non-empty. -func (x *fastReflection_PendingDeposits) Has(fd protoreflect.FieldDescriptor) bool { - switch fd.FullName() { - case "opinit.opchild.v1.PendingDeposits.recipient": - return x.Recipient != "" - case "opinit.opchild.v1.PendingDeposits.coins": - return len(x.Coins) != 0 - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.PendingDeposits")) - } - panic(fmt.Errorf("message opinit.opchild.v1.PendingDeposits does not contain field %s", fd.FullName())) - } -} - -// Clear clears the field such that a subsequent Has call reports false. -// -// Clearing an extension field clears both the extension type and value -// associated with the given field number. -// -// Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_PendingDeposits) Clear(fd protoreflect.FieldDescriptor) { - switch fd.FullName() { - case "opinit.opchild.v1.PendingDeposits.recipient": - x.Recipient = "" - case "opinit.opchild.v1.PendingDeposits.coins": - x.Coins = nil - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.PendingDeposits")) - } - panic(fmt.Errorf("message opinit.opchild.v1.PendingDeposits does not contain field %s", fd.FullName())) - } -} - -// Get retrieves the value for a field. -// -// For unpopulated scalars, it returns the default value, where -// the default value of a bytes scalar is guaranteed to be a copy. -// For unpopulated composite types, it returns an empty, read-only view -// of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_PendingDeposits) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { - switch descriptor.FullName() { - case "opinit.opchild.v1.PendingDeposits.recipient": - value := x.Recipient - return protoreflect.ValueOfString(value) - case "opinit.opchild.v1.PendingDeposits.coins": - if len(x.Coins) == 0 { - return protoreflect.ValueOfList(&_PendingDeposits_2_list{}) - } - listValue := &_PendingDeposits_2_list{list: &x.Coins} - return protoreflect.ValueOfList(listValue) - default: - if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.PendingDeposits")) - } - panic(fmt.Errorf("message opinit.opchild.v1.PendingDeposits does not contain field %s", descriptor.FullName())) - } -} - -// Set stores the value for a field. -// -// For a field belonging to a oneof, it implicitly clears any other field -// that may be currently set within the same oneof. -// For extension fields, it implicitly stores the provided ExtensionType. -// When setting a composite type, it is unspecified whether the stored value -// aliases the source's memory in any way. If the composite value is an -// empty, read-only value, then it panics. -// -// Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_PendingDeposits) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { - switch fd.FullName() { - case "opinit.opchild.v1.PendingDeposits.recipient": - x.Recipient = value.Interface().(string) - case "opinit.opchild.v1.PendingDeposits.coins": - lv := value.List() - clv := lv.(*_PendingDeposits_2_list) - x.Coins = *clv.list - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.PendingDeposits")) - } - panic(fmt.Errorf("message opinit.opchild.v1.PendingDeposits does not contain field %s", fd.FullName())) - } -} - -// Mutable returns a mutable reference to a composite type. -// -// If the field is unpopulated, it may allocate a composite value. -// For a field belonging to a oneof, it implicitly clears any other field -// that may be currently set within the same oneof. -// For extension fields, it implicitly stores the provided ExtensionType -// if not already stored. -// It panics if the field does not contain a composite type. -// -// Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_PendingDeposits) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - case "opinit.opchild.v1.PendingDeposits.coins": - if x.Coins == nil { - x.Coins = []*v1beta1.Coin{} - } - value := &_PendingDeposits_2_list{list: &x.Coins} - return protoreflect.ValueOfList(value) - case "opinit.opchild.v1.PendingDeposits.recipient": - panic(fmt.Errorf("field recipient of message opinit.opchild.v1.PendingDeposits is not mutable")) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.PendingDeposits")) - } - panic(fmt.Errorf("message opinit.opchild.v1.PendingDeposits does not contain field %s", fd.FullName())) - } -} - -// NewField returns a new value that is assignable to the field -// for the given descriptor. For scalars, this returns the default value. -// For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_PendingDeposits) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - case "opinit.opchild.v1.PendingDeposits.recipient": - return protoreflect.ValueOfString("") - case "opinit.opchild.v1.PendingDeposits.coins": - list := []*v1beta1.Coin{} - return protoreflect.ValueOfList(&_PendingDeposits_2_list{list: &list}) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.PendingDeposits")) - } - panic(fmt.Errorf("message opinit.opchild.v1.PendingDeposits does not contain field %s", fd.FullName())) - } -} - -// WhichOneof reports which field within the oneof is populated, -// returning nil if none are populated. -// It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_PendingDeposits) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - switch d.FullName() { - default: - panic(fmt.Errorf("%s is not a oneof field in opinit.opchild.v1.PendingDeposits", d.FullName())) - } - panic("unreachable") -} - -// GetUnknown retrieves the entire list of unknown fields. -// The caller may only mutate the contents of the RawFields -// if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_PendingDeposits) GetUnknown() protoreflect.RawFields { - return x.unknownFields -} - -// SetUnknown stores an entire list of unknown fields. -// The raw fields must be syntactically valid according to the wire format. -// An implementation may panic if this is not the case. -// Once stored, the caller must not mutate the content of the RawFields. -// An empty RawFields may be passed to clear the fields. -// -// SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_PendingDeposits) SetUnknown(fields protoreflect.RawFields) { - x.unknownFields = fields -} - -// IsValid reports whether the message is valid. -// -// An invalid message is an empty, read-only value. -// -// An invalid message often corresponds to a nil pointer of the concrete -// message type, but the details are implementation dependent. -// Validity is not part of the protobuf data model, and may not -// be preserved in marshaling or other operations. -func (x *fastReflection_PendingDeposits) IsValid() bool { - return x != nil -} - -// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. -// This method may return nil. -// -// The returned methods type is identical to -// "google.golang.org/protobuf/runtime/protoiface".Methods. -// Consult the protoiface package documentation for details. -func (x *fastReflection_PendingDeposits) ProtoMethods() *protoiface.Methods { - size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*PendingDeposits) - if x == nil { - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: 0, - } - } - options := runtime.SizeInputToOptions(input) - _ = options - var n int - var l int - _ = l - l = len(x.Recipient) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - if len(x.Coins) > 0 { - for _, e := range x.Coins { - l = options.Size(e) - n += 1 + l + runtime.Sov(uint64(l)) - } - } - if x.unknownFields != nil { - n += len(x.unknownFields) - } - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: n, - } - } - - marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*PendingDeposits) - if x == nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - options := runtime.MarshalInputToOptions(input) - _ = options - size := options.Size(x) - dAtA := make([]byte, size) - i := len(dAtA) - _ = i - var l int - _ = l - if x.unknownFields != nil { - i -= len(x.unknownFields) - copy(dAtA[i:], x.unknownFields) - } - if len(x.Coins) > 0 { - for iNdEx := len(x.Coins) - 1; iNdEx >= 0; iNdEx-- { - encoded, err := options.Marshal(x.Coins[iNdEx]) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x12 - } - } - if len(x.Recipient) > 0 { - i -= len(x.Recipient) - copy(dAtA[i:], x.Recipient) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Recipient))) - i-- - dAtA[i] = 0xa - } - if input.Buf != nil { - input.Buf = append(input.Buf, dAtA...) - } else { - input.Buf = dAtA - } - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*PendingDeposits) - if x == nil { - return protoiface.UnmarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Flags: input.Flags, - }, nil - } - options := runtime.UnmarshalInputToOptions(input) - _ = options - dAtA := input.Buf - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: PendingDeposits: wiretype end group for non-group") - } - if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: PendingDeposits: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Recipient", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.Recipient = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Coins", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.Coins = append(x.Coins, &v1beta1.Coin{}) - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Coins[len(x.Coins)-1]); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := runtime.Skip(dAtA[iNdEx:]) - if err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if !options.DiscardUnknown { - x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - } - iNdEx += skippy - } - } - - if iNdEx > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil - } - return &protoiface.Methods{ - NoUnkeyedLiterals: struct{}{}, - Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, - Size: size, - Marshal: marshal, - Unmarshal: unmarshal, - Merge: nil, - CheckInitialized: nil, - } -} - -var _ protoreflect.List = (*_CoinsWrapper_1_list)(nil) - -type _CoinsWrapper_1_list struct { - list *[]*v1beta1.Coin -} - -func (x *_CoinsWrapper_1_list) Len() int { - if x.list == nil { - return 0 - } - return len(*x.list) -} - -func (x *_CoinsWrapper_1_list) Get(i int) protoreflect.Value { - return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) -} - -func (x *_CoinsWrapper_1_list) Set(i int, value protoreflect.Value) { - valueUnwrapped := value.Message() - concreteValue := valueUnwrapped.Interface().(*v1beta1.Coin) - (*x.list)[i] = concreteValue -} - -func (x *_CoinsWrapper_1_list) Append(value protoreflect.Value) { - valueUnwrapped := value.Message() - concreteValue := valueUnwrapped.Interface().(*v1beta1.Coin) - *x.list = append(*x.list, concreteValue) -} - -func (x *_CoinsWrapper_1_list) AppendMutable() protoreflect.Value { - v := new(v1beta1.Coin) - *x.list = append(*x.list, v) - return protoreflect.ValueOfMessage(v.ProtoReflect()) -} - -func (x *_CoinsWrapper_1_list) Truncate(n int) { - for i := n; i < len(*x.list); i++ { - (*x.list)[i] = nil - } - *x.list = (*x.list)[:n] -} - -func (x *_CoinsWrapper_1_list) NewElement() protoreflect.Value { - v := new(v1beta1.Coin) - return protoreflect.ValueOfMessage(v.ProtoReflect()) -} - -func (x *_CoinsWrapper_1_list) IsValid() bool { - return x.list != nil -} - -var ( - md_CoinsWrapper protoreflect.MessageDescriptor - fd_CoinsWrapper_coins protoreflect.FieldDescriptor -) - -func init() { - file_opinit_opchild_v1_types_proto_init() - md_CoinsWrapper = File_opinit_opchild_v1_types_proto.Messages().ByName("CoinsWrapper") - fd_CoinsWrapper_coins = md_CoinsWrapper.Fields().ByName("coins") -} - -var _ protoreflect.Message = (*fastReflection_CoinsWrapper)(nil) - -type fastReflection_CoinsWrapper CoinsWrapper - -func (x *CoinsWrapper) ProtoReflect() protoreflect.Message { - return (*fastReflection_CoinsWrapper)(x) -} - -func (x *CoinsWrapper) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_opchild_v1_types_proto_msgTypes[5] - 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) -} - -var _fastReflection_CoinsWrapper_messageType fastReflection_CoinsWrapper_messageType -var _ protoreflect.MessageType = fastReflection_CoinsWrapper_messageType{} - -type fastReflection_CoinsWrapper_messageType struct{} - -func (x fastReflection_CoinsWrapper_messageType) Zero() protoreflect.Message { - return (*fastReflection_CoinsWrapper)(nil) -} -func (x fastReflection_CoinsWrapper_messageType) New() protoreflect.Message { - return new(fastReflection_CoinsWrapper) -} -func (x fastReflection_CoinsWrapper_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_CoinsWrapper -} - -// Descriptor returns message descriptor, which contains only the protobuf -// type information for the message. -func (x *fastReflection_CoinsWrapper) Descriptor() protoreflect.MessageDescriptor { - return md_CoinsWrapper -} - -// Type returns the message type, which encapsulates both Go and protobuf -// type information. If the Go type information is not needed, -// it is recommended that the message descriptor be used instead. -func (x *fastReflection_CoinsWrapper) Type() protoreflect.MessageType { - return _fastReflection_CoinsWrapper_messageType -} - -// New returns a newly allocated and mutable empty message. -func (x *fastReflection_CoinsWrapper) New() protoreflect.Message { - return new(fastReflection_CoinsWrapper) -} - -// Interface unwraps the message reflection interface and -// returns the underlying ProtoMessage interface. -func (x *fastReflection_CoinsWrapper) Interface() protoreflect.ProtoMessage { - return (*CoinsWrapper)(x) -} - -// Range iterates over every populated field in an undefined order, -// calling f for each field descriptor and value encountered. -// Range returns immediately if f returns false. -// While iterating, mutating operations may only be performed -// on the current field descriptor. -func (x *fastReflection_CoinsWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if len(x.Coins) != 0 { - value := protoreflect.ValueOfList(&_CoinsWrapper_1_list{list: &x.Coins}) - if !f(fd_CoinsWrapper_coins, value) { - return - } - } -} - -// Has reports whether a field is populated. -// -// Some fields have the property of nullability where it is possible to -// distinguish between the default value of a field and whether the field -// was explicitly populated with the default value. Singular message fields, -// member fields of a oneof, and proto2 scalar fields are nullable. Such -// fields are populated only if explicitly set. -// -// In other cases (aside from the nullable cases above), -// a proto3 scalar field is populated if it contains a non-zero value, and -// a repeated field is populated if it is non-empty. -func (x *fastReflection_CoinsWrapper) Has(fd protoreflect.FieldDescriptor) bool { - switch fd.FullName() { - case "opinit.opchild.v1.CoinsWrapper.coins": - return len(x.Coins) != 0 - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.CoinsWrapper")) - } - panic(fmt.Errorf("message opinit.opchild.v1.CoinsWrapper does not contain field %s", fd.FullName())) - } -} - -// Clear clears the field such that a subsequent Has call reports false. -// -// Clearing an extension field clears both the extension type and value -// associated with the given field number. -// -// Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_CoinsWrapper) Clear(fd protoreflect.FieldDescriptor) { - switch fd.FullName() { - case "opinit.opchild.v1.CoinsWrapper.coins": - x.Coins = nil - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.CoinsWrapper")) - } - panic(fmt.Errorf("message opinit.opchild.v1.CoinsWrapper does not contain field %s", fd.FullName())) - } -} - -// Get retrieves the value for a field. -// -// For unpopulated scalars, it returns the default value, where -// the default value of a bytes scalar is guaranteed to be a copy. -// For unpopulated composite types, it returns an empty, read-only view -// of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_CoinsWrapper) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { - switch descriptor.FullName() { - case "opinit.opchild.v1.CoinsWrapper.coins": - if len(x.Coins) == 0 { - return protoreflect.ValueOfList(&_CoinsWrapper_1_list{}) - } - listValue := &_CoinsWrapper_1_list{list: &x.Coins} - return protoreflect.ValueOfList(listValue) - default: - if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.CoinsWrapper")) - } - panic(fmt.Errorf("message opinit.opchild.v1.CoinsWrapper does not contain field %s", descriptor.FullName())) - } -} - -// Set stores the value for a field. -// -// For a field belonging to a oneof, it implicitly clears any other field -// that may be currently set within the same oneof. -// For extension fields, it implicitly stores the provided ExtensionType. -// When setting a composite type, it is unspecified whether the stored value -// aliases the source's memory in any way. If the composite value is an -// empty, read-only value, then it panics. -// -// Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_CoinsWrapper) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { - switch fd.FullName() { - case "opinit.opchild.v1.CoinsWrapper.coins": - lv := value.List() - clv := lv.(*_CoinsWrapper_1_list) - x.Coins = *clv.list - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.CoinsWrapper")) - } - panic(fmt.Errorf("message opinit.opchild.v1.CoinsWrapper does not contain field %s", fd.FullName())) - } -} - -// Mutable returns a mutable reference to a composite type. -// -// If the field is unpopulated, it may allocate a composite value. -// For a field belonging to a oneof, it implicitly clears any other field -// that may be currently set within the same oneof. -// For extension fields, it implicitly stores the provided ExtensionType -// if not already stored. -// It panics if the field does not contain a composite type. -// -// Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_CoinsWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - case "opinit.opchild.v1.CoinsWrapper.coins": - if x.Coins == nil { - x.Coins = []*v1beta1.Coin{} - } - value := &_CoinsWrapper_1_list{list: &x.Coins} - return protoreflect.ValueOfList(value) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.CoinsWrapper")) - } - panic(fmt.Errorf("message opinit.opchild.v1.CoinsWrapper does not contain field %s", fd.FullName())) - } -} - -// NewField returns a new value that is assignable to the field -// for the given descriptor. For scalars, this returns the default value. -// For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_CoinsWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - case "opinit.opchild.v1.CoinsWrapper.coins": - list := []*v1beta1.Coin{} - return protoreflect.ValueOfList(&_CoinsWrapper_1_list{list: &list}) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.CoinsWrapper")) - } - panic(fmt.Errorf("message opinit.opchild.v1.CoinsWrapper does not contain field %s", fd.FullName())) - } -} - -// WhichOneof reports which field within the oneof is populated, -// returning nil if none are populated. -// It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_CoinsWrapper) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - switch d.FullName() { - default: - panic(fmt.Errorf("%s is not a oneof field in opinit.opchild.v1.CoinsWrapper", d.FullName())) - } - panic("unreachable") -} - -// GetUnknown retrieves the entire list of unknown fields. -// The caller may only mutate the contents of the RawFields -// if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_CoinsWrapper) GetUnknown() protoreflect.RawFields { - return x.unknownFields -} - -// SetUnknown stores an entire list of unknown fields. -// The raw fields must be syntactically valid according to the wire format. -// An implementation may panic if this is not the case. -// Once stored, the caller must not mutate the content of the RawFields. -// An empty RawFields may be passed to clear the fields. -// -// SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_CoinsWrapper) SetUnknown(fields protoreflect.RawFields) { - x.unknownFields = fields -} - -// IsValid reports whether the message is valid. -// -// An invalid message is an empty, read-only value. -// -// An invalid message often corresponds to a nil pointer of the concrete -// message type, but the details are implementation dependent. -// Validity is not part of the protobuf data model, and may not -// be preserved in marshaling or other operations. -func (x *fastReflection_CoinsWrapper) IsValid() bool { - return x != nil -} - -// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. -// This method may return nil. -// -// The returned methods type is identical to -// "google.golang.org/protobuf/runtime/protoiface".Methods. -// Consult the protoiface package documentation for details. -func (x *fastReflection_CoinsWrapper) ProtoMethods() *protoiface.Methods { - size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*CoinsWrapper) - if x == nil { - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: 0, - } - } - options := runtime.SizeInputToOptions(input) - _ = options - var n int - var l int - _ = l - if len(x.Coins) > 0 { - for _, e := range x.Coins { - l = options.Size(e) - n += 1 + l + runtime.Sov(uint64(l)) - } - } - if x.unknownFields != nil { - n += len(x.unknownFields) - } - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: n, - } - } - - marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*CoinsWrapper) - if x == nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - options := runtime.MarshalInputToOptions(input) - _ = options - size := options.Size(x) - dAtA := make([]byte, size) - i := len(dAtA) - _ = i - var l int - _ = l - if x.unknownFields != nil { - i -= len(x.unknownFields) - copy(dAtA[i:], x.unknownFields) - } - if len(x.Coins) > 0 { - for iNdEx := len(x.Coins) - 1; iNdEx >= 0; iNdEx-- { - encoded, err := options.Marshal(x.Coins[iNdEx]) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0xa - } - } - if input.Buf != nil { - input.Buf = append(input.Buf, dAtA...) - } else { - input.Buf = dAtA - } - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*CoinsWrapper) - if x == nil { - return protoiface.UnmarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Flags: input.Flags, - }, nil - } - options := runtime.UnmarshalInputToOptions(input) - _ = options - dAtA := input.Buf - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: CoinsWrapper: wiretype end group for non-group") - } - if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: CoinsWrapper: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Coins", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.Coins = append(x.Coins, &v1beta1.Coin{}) - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Coins[len(x.Coins)-1]); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := runtime.Skip(dAtA[iNdEx:]) - if err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if !options.DiscardUnknown { - x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - } - iNdEx += skippy - } - } - - if iNdEx > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil - } - return &protoiface.Methods{ - NoUnkeyedLiterals: struct{}{}, - Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, - Size: size, - Marshal: marshal, - Unmarshal: unmarshal, - Merge: nil, - CheckInitialized: nil, + *x.list = append(*x.list, concreteValue) +} + +func (x *_CoinsWrapper_1_list) AppendMutable() protoreflect.Value { + v := new(v1beta1.Coin) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_CoinsWrapper_1_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil } + *x.list = (*x.list)[:n] +} + +func (x *_CoinsWrapper_1_list) NewElement() protoreflect.Value { + v := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_CoinsWrapper_1_list) IsValid() bool { + return x.list != nil } var ( - md_WithdrawalCommitment protoreflect.MessageDescriptor - fd_WithdrawalCommitment_commitment protoreflect.FieldDescriptor - fd_WithdrawalCommitment_submit_time protoreflect.FieldDescriptor + md_CoinsWrapper protoreflect.MessageDescriptor + fd_CoinsWrapper_coins protoreflect.FieldDescriptor ) func init() { file_opinit_opchild_v1_types_proto_init() - md_WithdrawalCommitment = File_opinit_opchild_v1_types_proto.Messages().ByName("WithdrawalCommitment") - fd_WithdrawalCommitment_commitment = md_WithdrawalCommitment.Fields().ByName("commitment") - fd_WithdrawalCommitment_submit_time = md_WithdrawalCommitment.Fields().ByName("submit_time") + md_CoinsWrapper = File_opinit_opchild_v1_types_proto.Messages().ByName("CoinsWrapper") + fd_CoinsWrapper_coins = md_CoinsWrapper.Fields().ByName("coins") } -var _ protoreflect.Message = (*fastReflection_WithdrawalCommitment)(nil) +var _ protoreflect.Message = (*fastReflection_CoinsWrapper)(nil) -type fastReflection_WithdrawalCommitment WithdrawalCommitment +type fastReflection_CoinsWrapper CoinsWrapper -func (x *WithdrawalCommitment) ProtoReflect() protoreflect.Message { - return (*fastReflection_WithdrawalCommitment)(x) +func (x *CoinsWrapper) ProtoReflect() protoreflect.Message { + return (*fastReflection_CoinsWrapper)(x) } -func (x *WithdrawalCommitment) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_opchild_v1_types_proto_msgTypes[6] +func (x *CoinsWrapper) slowProtoReflect() protoreflect.Message { + mi := &file_opinit_opchild_v1_types_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3787,43 +2783,43 @@ func (x *WithdrawalCommitment) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_WithdrawalCommitment_messageType fastReflection_WithdrawalCommitment_messageType -var _ protoreflect.MessageType = fastReflection_WithdrawalCommitment_messageType{} +var _fastReflection_CoinsWrapper_messageType fastReflection_CoinsWrapper_messageType +var _ protoreflect.MessageType = fastReflection_CoinsWrapper_messageType{} -type fastReflection_WithdrawalCommitment_messageType struct{} +type fastReflection_CoinsWrapper_messageType struct{} -func (x fastReflection_WithdrawalCommitment_messageType) Zero() protoreflect.Message { - return (*fastReflection_WithdrawalCommitment)(nil) +func (x fastReflection_CoinsWrapper_messageType) Zero() protoreflect.Message { + return (*fastReflection_CoinsWrapper)(nil) } -func (x fastReflection_WithdrawalCommitment_messageType) New() protoreflect.Message { - return new(fastReflection_WithdrawalCommitment) +func (x fastReflection_CoinsWrapper_messageType) New() protoreflect.Message { + return new(fastReflection_CoinsWrapper) } -func (x fastReflection_WithdrawalCommitment_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_WithdrawalCommitment +func (x fastReflection_CoinsWrapper_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_CoinsWrapper } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_WithdrawalCommitment) Descriptor() protoreflect.MessageDescriptor { - return md_WithdrawalCommitment +func (x *fastReflection_CoinsWrapper) Descriptor() protoreflect.MessageDescriptor { + return md_CoinsWrapper } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_WithdrawalCommitment) Type() protoreflect.MessageType { - return _fastReflection_WithdrawalCommitment_messageType +func (x *fastReflection_CoinsWrapper) Type() protoreflect.MessageType { + return _fastReflection_CoinsWrapper_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_WithdrawalCommitment) New() protoreflect.Message { - return new(fastReflection_WithdrawalCommitment) +func (x *fastReflection_CoinsWrapper) New() protoreflect.Message { + return new(fastReflection_CoinsWrapper) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_WithdrawalCommitment) Interface() protoreflect.ProtoMessage { - return (*WithdrawalCommitment)(x) +func (x *fastReflection_CoinsWrapper) Interface() protoreflect.ProtoMessage { + return (*CoinsWrapper)(x) } // Range iterates over every populated field in an undefined order, @@ -3831,16 +2827,10 @@ func (x *fastReflection_WithdrawalCommitment) Interface() protoreflect.ProtoMess // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_WithdrawalCommitment) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if len(x.Commitment) != 0 { - value := protoreflect.ValueOfBytes(x.Commitment) - if !f(fd_WithdrawalCommitment_commitment, value) { - return - } - } - if x.SubmitTime != nil { - value := protoreflect.ValueOfMessage(x.SubmitTime.ProtoReflect()) - if !f(fd_WithdrawalCommitment_submit_time, value) { +func (x *fastReflection_CoinsWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Coins) != 0 { + value := protoreflect.ValueOfList(&_CoinsWrapper_1_list{list: &x.Coins}) + if !f(fd_CoinsWrapper_coins, value) { return } } @@ -3857,17 +2847,15 @@ func (x *fastReflection_WithdrawalCommitment) Range(f func(protoreflect.FieldDes // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_WithdrawalCommitment) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_CoinsWrapper) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "opinit.opchild.v1.WithdrawalCommitment.commitment": - return len(x.Commitment) != 0 - case "opinit.opchild.v1.WithdrawalCommitment.submit_time": - return x.SubmitTime != nil + case "opinit.opchild.v1.CoinsWrapper.coins": + return len(x.Coins) != 0 default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.WithdrawalCommitment")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.CoinsWrapper")) } - panic(fmt.Errorf("message opinit.opchild.v1.WithdrawalCommitment does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.opchild.v1.CoinsWrapper does not contain field %s", fd.FullName())) } } @@ -3877,17 +2865,15 @@ func (x *fastReflection_WithdrawalCommitment) Has(fd protoreflect.FieldDescripto // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_WithdrawalCommitment) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_CoinsWrapper) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "opinit.opchild.v1.WithdrawalCommitment.commitment": - x.Commitment = nil - case "opinit.opchild.v1.WithdrawalCommitment.submit_time": - x.SubmitTime = nil + case "opinit.opchild.v1.CoinsWrapper.coins": + x.Coins = nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.WithdrawalCommitment")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.CoinsWrapper")) } - panic(fmt.Errorf("message opinit.opchild.v1.WithdrawalCommitment does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.opchild.v1.CoinsWrapper does not contain field %s", fd.FullName())) } } @@ -3897,19 +2883,19 @@ func (x *fastReflection_WithdrawalCommitment) Clear(fd protoreflect.FieldDescrip // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_WithdrawalCommitment) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_CoinsWrapper) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "opinit.opchild.v1.WithdrawalCommitment.commitment": - value := x.Commitment - return protoreflect.ValueOfBytes(value) - case "opinit.opchild.v1.WithdrawalCommitment.submit_time": - value := x.SubmitTime - return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "opinit.opchild.v1.CoinsWrapper.coins": + if len(x.Coins) == 0 { + return protoreflect.ValueOfList(&_CoinsWrapper_1_list{}) + } + listValue := &_CoinsWrapper_1_list{list: &x.Coins} + return protoreflect.ValueOfList(listValue) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.WithdrawalCommitment")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.CoinsWrapper")) } - panic(fmt.Errorf("message opinit.opchild.v1.WithdrawalCommitment does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message opinit.opchild.v1.CoinsWrapper does not contain field %s", descriptor.FullName())) } } @@ -3923,17 +2909,17 @@ func (x *fastReflection_WithdrawalCommitment) Get(descriptor protoreflect.FieldD // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_WithdrawalCommitment) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_CoinsWrapper) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "opinit.opchild.v1.WithdrawalCommitment.commitment": - x.Commitment = value.Bytes() - case "opinit.opchild.v1.WithdrawalCommitment.submit_time": - x.SubmitTime = value.Message().Interface().(*timestamppb.Timestamp) + case "opinit.opchild.v1.CoinsWrapper.coins": + lv := value.List() + clv := lv.(*_CoinsWrapper_1_list) + x.Coins = *clv.list default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.WithdrawalCommitment")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.CoinsWrapper")) } - panic(fmt.Errorf("message opinit.opchild.v1.WithdrawalCommitment does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.opchild.v1.CoinsWrapper does not contain field %s", fd.FullName())) } } @@ -3947,48 +2933,45 @@ func (x *fastReflection_WithdrawalCommitment) Set(fd protoreflect.FieldDescripto // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_WithdrawalCommitment) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_CoinsWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "opinit.opchild.v1.WithdrawalCommitment.submit_time": - if x.SubmitTime == nil { - x.SubmitTime = new(timestamppb.Timestamp) + case "opinit.opchild.v1.CoinsWrapper.coins": + if x.Coins == nil { + x.Coins = []*v1beta1.Coin{} } - return protoreflect.ValueOfMessage(x.SubmitTime.ProtoReflect()) - case "opinit.opchild.v1.WithdrawalCommitment.commitment": - panic(fmt.Errorf("field commitment of message opinit.opchild.v1.WithdrawalCommitment is not mutable")) + value := &_CoinsWrapper_1_list{list: &x.Coins} + return protoreflect.ValueOfList(value) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.WithdrawalCommitment")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.CoinsWrapper")) } - panic(fmt.Errorf("message opinit.opchild.v1.WithdrawalCommitment does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.opchild.v1.CoinsWrapper does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_WithdrawalCommitment) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_CoinsWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "opinit.opchild.v1.WithdrawalCommitment.commitment": - return protoreflect.ValueOfBytes(nil) - case "opinit.opchild.v1.WithdrawalCommitment.submit_time": - m := new(timestamppb.Timestamp) - return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "opinit.opchild.v1.CoinsWrapper.coins": + list := []*v1beta1.Coin{} + return protoreflect.ValueOfList(&_CoinsWrapper_1_list{list: &list}) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.WithdrawalCommitment")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.CoinsWrapper")) } - panic(fmt.Errorf("message opinit.opchild.v1.WithdrawalCommitment does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.opchild.v1.CoinsWrapper does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_WithdrawalCommitment) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_CoinsWrapper) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in opinit.opchild.v1.WithdrawalCommitment", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in opinit.opchild.v1.CoinsWrapper", d.FullName())) } panic("unreachable") } @@ -3996,7 +2979,7 @@ func (x *fastReflection_WithdrawalCommitment) WhichOneof(d protoreflect.OneofDes // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_WithdrawalCommitment) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_CoinsWrapper) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -4007,7 +2990,7 @@ func (x *fastReflection_WithdrawalCommitment) GetUnknown() protoreflect.RawField // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_WithdrawalCommitment) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_CoinsWrapper) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -4019,7 +3002,7 @@ func (x *fastReflection_WithdrawalCommitment) SetUnknown(fields protoreflect.Raw // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_WithdrawalCommitment) IsValid() bool { +func (x *fastReflection_CoinsWrapper) IsValid() bool { return x != nil } @@ -4029,9 +3012,9 @@ func (x *fastReflection_WithdrawalCommitment) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_WithdrawalCommitment) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_CoinsWrapper) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*WithdrawalCommitment) + x := input.Message.Interface().(*CoinsWrapper) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -4043,13 +3026,11 @@ func (x *fastReflection_WithdrawalCommitment) ProtoMethods() *protoiface.Methods var n int var l int _ = l - l = len(x.Commitment) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - if x.SubmitTime != nil { - l = options.Size(x.SubmitTime) - n += 1 + l + runtime.Sov(uint64(l)) + if len(x.Coins) > 0 { + for _, e := range x.Coins { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } } if x.unknownFields != nil { n += len(x.unknownFields) @@ -4061,7 +3042,7 @@ func (x *fastReflection_WithdrawalCommitment) ProtoMethods() *protoiface.Methods } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*WithdrawalCommitment) + x := input.Message.Interface().(*CoinsWrapper) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -4080,26 +3061,21 @@ func (x *fastReflection_WithdrawalCommitment) ProtoMethods() *protoiface.Methods i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if x.SubmitTime != nil { - encoded, err := options.Marshal(x.SubmitTime) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err + if len(x.Coins) > 0 { + for iNdEx := len(x.Coins) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Coins[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x2a - } - if len(x.Commitment) > 0 { - i -= len(x.Commitment) - copy(dAtA[i:], x.Commitment) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Commitment))) - i-- - dAtA[i] = 0xa } if input.Buf != nil { input.Buf = append(input.Buf, dAtA...) @@ -4112,7 +3088,7 @@ func (x *fastReflection_WithdrawalCommitment) ProtoMethods() *protoiface.Methods }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*WithdrawalCommitment) + x := input.Message.Interface().(*CoinsWrapper) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -4144,49 +3120,15 @@ func (x *fastReflection_WithdrawalCommitment) ProtoMethods() *protoiface.Methods fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: WithdrawalCommitment: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: CoinsWrapper: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: WithdrawalCommitment: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: CoinsWrapper: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.Commitment = append(x.Commitment[:0], dAtA[iNdEx:postIndex]...) - if x.Commitment == nil { - x.Commitment = []byte{} - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SubmitTime", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Coins", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4213,10 +3155,8 @@ func (x *fastReflection_WithdrawalCommitment) ProtoMethods() *protoiface.Methods if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - if x.SubmitTime == nil { - x.SubmitTime = ×tamppb.Timestamp{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.SubmitTime); err != nil { + x.Coins = append(x.Coins, &v1beta1.Coin{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Coins[len(x.Coins)-1]); err != nil { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex @@ -4586,52 +3526,6 @@ func (x *BridgeInfo) GetBridgeConfig() *v1.BridgeConfig { return nil } -// PendingDeposits defines the set of pending deposits. -type PendingDeposits struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // recipient is the address of the recipient. - Recipient string `protobuf:"bytes,1,opt,name=recipient,proto3" json:"recipient,omitempty"` - // coins is a list of coins to be deposited. - Coins []*v1beta1.Coin `protobuf:"bytes,2,rep,name=coins,proto3" json:"coins,omitempty"` -} - -func (x *PendingDeposits) Reset() { - *x = PendingDeposits{} - if protoimpl.UnsafeEnabled { - mi := &file_opinit_opchild_v1_types_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PendingDeposits) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PendingDeposits) ProtoMessage() {} - -// Deprecated: Use PendingDeposits.ProtoReflect.Descriptor instead. -func (*PendingDeposits) Descriptor() ([]byte, []int) { - return file_opinit_opchild_v1_types_proto_rawDescGZIP(), []int{4} -} - -func (x *PendingDeposits) GetRecipient() string { - if x != nil { - return x.Recipient - } - return "" -} - -func (x *PendingDeposits) GetCoins() []*v1beta1.Coin { - if x != nil { - return x.Coins - } - return nil -} - // CoinsWrapper defines the set of coins. type CoinsWrapper struct { state protoimpl.MessageState @@ -4644,7 +3538,7 @@ type CoinsWrapper struct { func (x *CoinsWrapper) Reset() { *x = CoinsWrapper{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_opchild_v1_types_proto_msgTypes[5] + mi := &file_opinit_opchild_v1_types_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4658,7 +3552,7 @@ func (*CoinsWrapper) ProtoMessage() {} // Deprecated: Use CoinsWrapper.ProtoReflect.Descriptor instead. func (*CoinsWrapper) Descriptor() ([]byte, []int) { - return file_opinit_opchild_v1_types_proto_rawDescGZIP(), []int{5} + return file_opinit_opchild_v1_types_proto_rawDescGZIP(), []int{4} } func (x *CoinsWrapper) GetCoins() []*v1beta1.Coin { @@ -4668,49 +3562,6 @@ func (x *CoinsWrapper) GetCoins() []*v1beta1.Coin { return nil } -type WithdrawalCommitment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - SubmitTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=submit_time,json=submitTime,proto3" json:"submit_time,omitempty"` -} - -func (x *WithdrawalCommitment) Reset() { - *x = WithdrawalCommitment{} - if protoimpl.UnsafeEnabled { - mi := &file_opinit_opchild_v1_types_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WithdrawalCommitment) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WithdrawalCommitment) ProtoMessage() {} - -// Deprecated: Use WithdrawalCommitment.ProtoReflect.Descriptor instead. -func (*WithdrawalCommitment) Descriptor() ([]byte, []int) { - return file_opinit_opchild_v1_types_proto_rawDescGZIP(), []int{6} -} - -func (x *WithdrawalCommitment) GetCommitment() []byte { - if x != nil { - return x.Commitment - } - return nil -} - -func (x *WithdrawalCommitment) GetSubmitTime() *timestamppb.Timestamp { - if x != nil { - return x.SubmitTime - } - return nil -} - var File_opinit_opchild_v1_types_proto protoreflect.FileDescriptor var file_opinit_opchild_v1_types_proto_rawDesc = []byte{ @@ -4725,142 +3576,121 @@ var file_opinit_opchild_v1_types_proto_rawDesc = []byte{ 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1c, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x1b, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x61, 0x62, 0x63, - 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcd, 0x04, - 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x19, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x61, 0x78, 0x5f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x52, 0x0d, 0x6d, 0x61, 0x78, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x12, 0x68, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x1d, 0xf2, 0xde, 0x1f, 0x19, 0x79, 0x61, 0x6d, 0x6c, - 0x3a, 0x22, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x22, 0x52, 0x11, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, - 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x8f, 0x01, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, - 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, - 0x4b, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x14, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, - 0x69, 0x6e, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xaa, 0xdf, 0x1f, - 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x52, 0x0c, 0x6d, 0x69, - 0x6e, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x63, 0x0a, 0x10, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x09, 0x42, 0x38, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, - 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x12, - 0x43, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, - 0xf2, 0xde, 0x1f, 0x0c, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, + 0x6f, 0x1a, 0x1c, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1b, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x61, 0x62, 0x63, 0x69, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcd, 0x04, 0x0a, + 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x19, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x61, 0x78, 0x5f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x12, 0x68, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x1d, 0xf2, 0xde, 0x1f, 0x19, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x22, 0x52, 0x11, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, + 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x8f, 0x01, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, + 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4b, + 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x14, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x69, + 0x6e, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xaa, 0xdf, 0x1f, 0x2b, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x52, 0x0c, 0x6d, 0x69, 0x6e, + 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x63, 0x0a, 0x10, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x38, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x5a, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x77, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x35, 0xf2, 0xde, 0x1f, - 0x14, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x66, 0x65, 0x65, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x3a, 0x1b, 0x98, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x0e, 0x6f, - 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xbb, 0x02, - 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2c, 0x0a, 0x07, 0x6d, - 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x12, 0xf2, 0xde, - 0x1f, 0x0e, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x22, - 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x10, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x1b, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, - 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x74, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, - 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, - 0x79, 0x42, 0x33, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x22, 0xca, 0xb4, - 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, - 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x5f, - 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x42, 0x15, 0xf2, 0xde, 0x1f, - 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x6f, 0x77, 0x65, - 0x72, 0x22, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x3a, 0x0c, 0x88, - 0xa0, 0x1f, 0x00, 0x98, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x5f, 0x0a, 0x10, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, - 0x45, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, - 0x63, 0x69, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xf6, 0x01, 0x0a, - 0x0a, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0b, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, + 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x43, + 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xf2, + 0xde, 0x1f, 0x0c, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x31, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x31, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x09, 0xc8, 0xde, - 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xb1, 0x01, 0x0a, 0x0f, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x72, 0x65, 0x63, - 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x12, 0x5a, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x35, 0xf2, 0xde, 0x1f, 0x14, + 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x66, 0x65, 0x65, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x3a, + 0x1b, 0x98, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x0e, 0x6f, 0x70, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xbb, 0x02, 0x0a, + 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2c, 0x0a, 0x07, 0x6d, 0x6f, + 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x12, 0xf2, 0xde, 0x1f, + 0x0e, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x22, 0x52, + 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x1b, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, + 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x74, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, 0x75, + 0x62, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x42, 0x33, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x22, 0xca, 0xb4, 0x2d, + 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, + 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x70, + 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x42, 0x15, 0xf2, 0xde, 0x1f, 0x11, + 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x22, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x3a, 0x0c, 0x88, 0xa0, + 0x1f, 0x00, 0x98, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x5f, 0x0a, 0x10, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x45, + 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, + 0x69, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xf6, 0x01, 0x0a, 0x0a, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x66, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, - 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x22, 0x76, 0x0a, 0x0c, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x66, 0x0a, 0x05, 0x63, 0x6f, 0x69, - 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, - 0x73, 0x22, 0x82, 0x01, 0x0a, 0x14, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x73, 0x75, - 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, - 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x2a, 0xa9, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, - 0x20, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a, 0x9d, 0x20, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x12, 0x27, 0x0a, 0x19, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, - 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4f, - 0x50, 0x10, 0x01, 0x1a, 0x08, 0x8a, 0x9d, 0x20, 0x04, 0x4e, 0x4f, 0x4f, 0x50, 0x12, 0x2d, 0x0a, - 0x1c, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x02, 0x1a, - 0x0b, 0x8a, 0x9d, 0x20, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x1a, 0x04, 0x88, 0xa3, - 0x1e, 0x00, 0x42, 0xd0, 0x01, 0xc8, 0xe1, 0x1e, 0x00, 0xa8, 0xe2, 0x1e, 0x01, 0x0a, 0x15, 0x63, - 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, - 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x76, - 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2e, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x11, 0x4f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0xe2, - 0x02, 0x1d, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x13, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x64, + 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x31, 0x43, 0x68, 0x61, 0x69, 0x6e, + 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x31, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x09, 0xc8, 0xde, 0x1f, + 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0x76, 0x0a, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x57, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x12, 0x66, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, + 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x2a, 0xa9, 0x01, 0x0a, + 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, 0x20, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, + 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a, 0x9d, 0x20, 0x0b, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x12, 0x27, 0x0a, 0x19, 0x52, 0x45, + 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4f, 0x50, 0x10, 0x01, 0x1a, 0x08, 0x8a, 0x9d, 0x20, 0x04, 0x4e, + 0x4f, 0x4f, 0x50, 0x12, 0x2d, 0x0a, 0x1c, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, + 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, + 0x45, 0x53, 0x53, 0x10, 0x02, 0x1a, 0x0b, 0x8a, 0x9d, 0x20, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, + 0x53, 0x53, 0x1a, 0x04, 0x88, 0xa3, 0x1e, 0x00, 0x42, 0xd0, 0x01, 0xc8, 0xe1, 0x1e, 0x00, 0xa8, + 0xe2, 0x1e, 0x01, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, + 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x11, + 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x11, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1d, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, + 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x13, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, + 0x4f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -4876,36 +3706,31 @@ func file_opinit_opchild_v1_types_proto_rawDescGZIP() []byte { } var file_opinit_opchild_v1_types_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_opinit_opchild_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_opinit_opchild_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_opinit_opchild_v1_types_proto_goTypes = []interface{}{ - (ResponseResultType)(0), // 0: opinit.opchild.v1.ResponseResultType - (*Params)(nil), // 1: opinit.opchild.v1.Params - (*Validator)(nil), // 2: opinit.opchild.v1.Validator - (*ValidatorUpdates)(nil), // 3: opinit.opchild.v1.ValidatorUpdates - (*BridgeInfo)(nil), // 4: opinit.opchild.v1.BridgeInfo - (*PendingDeposits)(nil), // 5: opinit.opchild.v1.PendingDeposits - (*CoinsWrapper)(nil), // 6: opinit.opchild.v1.CoinsWrapper - (*WithdrawalCommitment)(nil), // 7: opinit.opchild.v1.WithdrawalCommitment - (*v1beta1.DecCoin)(nil), // 8: cosmos.base.v1beta1.DecCoin - (*anypb.Any)(nil), // 9: google.protobuf.Any - (*abci.ValidatorUpdate)(nil), // 10: tendermint.abci.ValidatorUpdate - (*v1.BridgeConfig)(nil), // 11: opinit.ophost.v1.BridgeConfig - (*v1beta1.Coin)(nil), // 12: cosmos.base.v1beta1.Coin - (*timestamppb.Timestamp)(nil), // 13: google.protobuf.Timestamp + (ResponseResultType)(0), // 0: opinit.opchild.v1.ResponseResultType + (*Params)(nil), // 1: opinit.opchild.v1.Params + (*Validator)(nil), // 2: opinit.opchild.v1.Validator + (*ValidatorUpdates)(nil), // 3: opinit.opchild.v1.ValidatorUpdates + (*BridgeInfo)(nil), // 4: opinit.opchild.v1.BridgeInfo + (*CoinsWrapper)(nil), // 5: opinit.opchild.v1.CoinsWrapper + (*v1beta1.DecCoin)(nil), // 6: cosmos.base.v1beta1.DecCoin + (*anypb.Any)(nil), // 7: google.protobuf.Any + (*abci.ValidatorUpdate)(nil), // 8: tendermint.abci.ValidatorUpdate + (*v1.BridgeConfig)(nil), // 9: opinit.ophost.v1.BridgeConfig + (*v1beta1.Coin)(nil), // 10: cosmos.base.v1beta1.Coin } var file_opinit_opchild_v1_types_proto_depIdxs = []int32{ - 8, // 0: opinit.opchild.v1.Params.min_gas_prices:type_name -> cosmos.base.v1beta1.DecCoin - 9, // 1: opinit.opchild.v1.Validator.consensus_pubkey:type_name -> google.protobuf.Any - 10, // 2: opinit.opchild.v1.ValidatorUpdates.updates:type_name -> tendermint.abci.ValidatorUpdate - 11, // 3: opinit.opchild.v1.BridgeInfo.bridge_config:type_name -> opinit.ophost.v1.BridgeConfig - 12, // 4: opinit.opchild.v1.PendingDeposits.coins:type_name -> cosmos.base.v1beta1.Coin - 12, // 5: opinit.opchild.v1.CoinsWrapper.coins:type_name -> cosmos.base.v1beta1.Coin - 13, // 6: opinit.opchild.v1.WithdrawalCommitment.submit_time:type_name -> google.protobuf.Timestamp - 7, // [7:7] is the sub-list for method output_type - 7, // [7:7] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 6, // 0: opinit.opchild.v1.Params.min_gas_prices:type_name -> cosmos.base.v1beta1.DecCoin + 7, // 1: opinit.opchild.v1.Validator.consensus_pubkey:type_name -> google.protobuf.Any + 8, // 2: opinit.opchild.v1.ValidatorUpdates.updates:type_name -> tendermint.abci.ValidatorUpdate + 9, // 3: opinit.opchild.v1.BridgeInfo.bridge_config:type_name -> opinit.ophost.v1.BridgeConfig + 10, // 4: opinit.opchild.v1.CoinsWrapper.coins:type_name -> cosmos.base.v1beta1.Coin + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_opinit_opchild_v1_types_proto_init() } @@ -4963,18 +3788,6 @@ func file_opinit_opchild_v1_types_proto_init() { } } file_opinit_opchild_v1_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PendingDeposits); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_opinit_opchild_v1_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CoinsWrapper); i { case 0: return &v.state @@ -4986,18 +3799,6 @@ func file_opinit_opchild_v1_types_proto_init() { return nil } } - file_opinit_opchild_v1_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WithdrawalCommitment); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } } type x struct{} out := protoimpl.TypeBuilder{ @@ -5005,7 +3806,7 @@ func file_opinit_opchild_v1_types_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_opinit_opchild_v1_types_proto_rawDesc, NumEnums: 1, - NumMessages: 7, + NumMessages: 5, NumExtensions: 0, NumServices: 0, }, diff --git a/api/opinit/ophost/v1/tx.pulsar.go b/api/opinit/ophost/v1/tx.pulsar.go index f6696a34..ce03bcbf 100644 --- a/api/opinit/ophost/v1/tx.pulsar.go +++ b/api/opinit/ophost/v1/tx.pulsar.go @@ -2,7 +2,6 @@ package ophostv1 import ( - v1 "buf.build/gen/go/cometbft/cometbft/protocolbuffers/go/cometbft/crypto/v1" _ "cosmossdk.io/api/amino" v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" _ "cosmossdk.io/api/cosmos/msg/v1" @@ -6135,1491 +6134,6 @@ func (x *fastReflection_MsgFinalizeTokenWithdrawalResponse) ProtoMethods() *prot } } -var ( - md_MsgForceTokenWithdrawal protoreflect.MessageDescriptor - fd_MsgForceTokenWithdrawal_bridge_id protoreflect.FieldDescriptor - fd_MsgForceTokenWithdrawal_output_index protoreflect.FieldDescriptor - fd_MsgForceTokenWithdrawal_sequence protoreflect.FieldDescriptor - fd_MsgForceTokenWithdrawal_sender protoreflect.FieldDescriptor - fd_MsgForceTokenWithdrawal_receiver protoreflect.FieldDescriptor - fd_MsgForceTokenWithdrawal_amount protoreflect.FieldDescriptor - fd_MsgForceTokenWithdrawal_commitment_proof protoreflect.FieldDescriptor - fd_MsgForceTokenWithdrawal_app_hash protoreflect.FieldDescriptor - fd_MsgForceTokenWithdrawal_app_hash_proof protoreflect.FieldDescriptor - fd_MsgForceTokenWithdrawal_version protoreflect.FieldDescriptor - fd_MsgForceTokenWithdrawal_storage_root protoreflect.FieldDescriptor - fd_MsgForceTokenWithdrawal_last_block_hash protoreflect.FieldDescriptor -) - -func init() { - file_opinit_ophost_v1_tx_proto_init() - md_MsgForceTokenWithdrawal = File_opinit_ophost_v1_tx_proto.Messages().ByName("MsgForceTokenWithdrawal") - fd_MsgForceTokenWithdrawal_bridge_id = md_MsgForceTokenWithdrawal.Fields().ByName("bridge_id") - fd_MsgForceTokenWithdrawal_output_index = md_MsgForceTokenWithdrawal.Fields().ByName("output_index") - fd_MsgForceTokenWithdrawal_sequence = md_MsgForceTokenWithdrawal.Fields().ByName("sequence") - fd_MsgForceTokenWithdrawal_sender = md_MsgForceTokenWithdrawal.Fields().ByName("sender") - fd_MsgForceTokenWithdrawal_receiver = md_MsgForceTokenWithdrawal.Fields().ByName("receiver") - fd_MsgForceTokenWithdrawal_amount = md_MsgForceTokenWithdrawal.Fields().ByName("amount") - fd_MsgForceTokenWithdrawal_commitment_proof = md_MsgForceTokenWithdrawal.Fields().ByName("commitment_proof") - fd_MsgForceTokenWithdrawal_app_hash = md_MsgForceTokenWithdrawal.Fields().ByName("app_hash") - fd_MsgForceTokenWithdrawal_app_hash_proof = md_MsgForceTokenWithdrawal.Fields().ByName("app_hash_proof") - fd_MsgForceTokenWithdrawal_version = md_MsgForceTokenWithdrawal.Fields().ByName("version") - fd_MsgForceTokenWithdrawal_storage_root = md_MsgForceTokenWithdrawal.Fields().ByName("storage_root") - fd_MsgForceTokenWithdrawal_last_block_hash = md_MsgForceTokenWithdrawal.Fields().ByName("last_block_hash") -} - -var _ protoreflect.Message = (*fastReflection_MsgForceTokenWithdrawal)(nil) - -type fastReflection_MsgForceTokenWithdrawal MsgForceTokenWithdrawal - -func (x *MsgForceTokenWithdrawal) ProtoReflect() protoreflect.Message { - return (*fastReflection_MsgForceTokenWithdrawal)(x) -} - -func (x *MsgForceTokenWithdrawal) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[12] - 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) -} - -var _fastReflection_MsgForceTokenWithdrawal_messageType fastReflection_MsgForceTokenWithdrawal_messageType -var _ protoreflect.MessageType = fastReflection_MsgForceTokenWithdrawal_messageType{} - -type fastReflection_MsgForceTokenWithdrawal_messageType struct{} - -func (x fastReflection_MsgForceTokenWithdrawal_messageType) Zero() protoreflect.Message { - return (*fastReflection_MsgForceTokenWithdrawal)(nil) -} -func (x fastReflection_MsgForceTokenWithdrawal_messageType) New() protoreflect.Message { - return new(fastReflection_MsgForceTokenWithdrawal) -} -func (x fastReflection_MsgForceTokenWithdrawal_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_MsgForceTokenWithdrawal -} - -// Descriptor returns message descriptor, which contains only the protobuf -// type information for the message. -func (x *fastReflection_MsgForceTokenWithdrawal) Descriptor() protoreflect.MessageDescriptor { - return md_MsgForceTokenWithdrawal -} - -// Type returns the message type, which encapsulates both Go and protobuf -// type information. If the Go type information is not needed, -// it is recommended that the message descriptor be used instead. -func (x *fastReflection_MsgForceTokenWithdrawal) Type() protoreflect.MessageType { - return _fastReflection_MsgForceTokenWithdrawal_messageType -} - -// New returns a newly allocated and mutable empty message. -func (x *fastReflection_MsgForceTokenWithdrawal) New() protoreflect.Message { - return new(fastReflection_MsgForceTokenWithdrawal) -} - -// Interface unwraps the message reflection interface and -// returns the underlying ProtoMessage interface. -func (x *fastReflection_MsgForceTokenWithdrawal) Interface() protoreflect.ProtoMessage { - return (*MsgForceTokenWithdrawal)(x) -} - -// Range iterates over every populated field in an undefined order, -// calling f for each field descriptor and value encountered. -// Range returns immediately if f returns false. -// While iterating, mutating operations may only be performed -// on the current field descriptor. -func (x *fastReflection_MsgForceTokenWithdrawal) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.BridgeId != uint64(0) { - value := protoreflect.ValueOfUint64(x.BridgeId) - if !f(fd_MsgForceTokenWithdrawal_bridge_id, value) { - return - } - } - if x.OutputIndex != uint64(0) { - value := protoreflect.ValueOfUint64(x.OutputIndex) - if !f(fd_MsgForceTokenWithdrawal_output_index, value) { - return - } - } - if x.Sequence != uint64(0) { - value := protoreflect.ValueOfUint64(x.Sequence) - if !f(fd_MsgForceTokenWithdrawal_sequence, value) { - return - } - } - if x.Sender != "" { - value := protoreflect.ValueOfString(x.Sender) - if !f(fd_MsgForceTokenWithdrawal_sender, value) { - return - } - } - if x.Receiver != "" { - value := protoreflect.ValueOfString(x.Receiver) - if !f(fd_MsgForceTokenWithdrawal_receiver, value) { - return - } - } - if x.Amount != nil { - value := protoreflect.ValueOfMessage(x.Amount.ProtoReflect()) - if !f(fd_MsgForceTokenWithdrawal_amount, value) { - return - } - } - if x.CommitmentProof != nil { - value := protoreflect.ValueOfMessage(x.CommitmentProof.ProtoReflect()) - if !f(fd_MsgForceTokenWithdrawal_commitment_proof, value) { - return - } - } - if len(x.AppHash) != 0 { - value := protoreflect.ValueOfBytes(x.AppHash) - if !f(fd_MsgForceTokenWithdrawal_app_hash, value) { - return - } - } - if x.AppHashProof != nil { - value := protoreflect.ValueOfMessage(x.AppHashProof.ProtoReflect()) - if !f(fd_MsgForceTokenWithdrawal_app_hash_proof, value) { - return - } - } - if len(x.Version) != 0 { - value := protoreflect.ValueOfBytes(x.Version) - if !f(fd_MsgForceTokenWithdrawal_version, value) { - return - } - } - if len(x.StorageRoot) != 0 { - value := protoreflect.ValueOfBytes(x.StorageRoot) - if !f(fd_MsgForceTokenWithdrawal_storage_root, value) { - return - } - } - if len(x.LastBlockHash) != 0 { - value := protoreflect.ValueOfBytes(x.LastBlockHash) - if !f(fd_MsgForceTokenWithdrawal_last_block_hash, value) { - return - } - } -} - -// Has reports whether a field is populated. -// -// Some fields have the property of nullability where it is possible to -// distinguish between the default value of a field and whether the field -// was explicitly populated with the default value. Singular message fields, -// member fields of a oneof, and proto2 scalar fields are nullable. Such -// fields are populated only if explicitly set. -// -// In other cases (aside from the nullable cases above), -// a proto3 scalar field is populated if it contains a non-zero value, and -// a repeated field is populated if it is non-empty. -func (x *fastReflection_MsgForceTokenWithdrawal) Has(fd protoreflect.FieldDescriptor) bool { - switch fd.FullName() { - case "opinit.ophost.v1.MsgForceTokenWithdrawal.bridge_id": - return x.BridgeId != uint64(0) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.output_index": - return x.OutputIndex != uint64(0) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.sequence": - return x.Sequence != uint64(0) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.sender": - return x.Sender != "" - case "opinit.ophost.v1.MsgForceTokenWithdrawal.receiver": - return x.Receiver != "" - case "opinit.ophost.v1.MsgForceTokenWithdrawal.amount": - return x.Amount != nil - case "opinit.ophost.v1.MsgForceTokenWithdrawal.commitment_proof": - return x.CommitmentProof != nil - case "opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash": - return len(x.AppHash) != 0 - case "opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash_proof": - return x.AppHashProof != nil - case "opinit.ophost.v1.MsgForceTokenWithdrawal.version": - return len(x.Version) != 0 - case "opinit.ophost.v1.MsgForceTokenWithdrawal.storage_root": - return len(x.StorageRoot) != 0 - case "opinit.ophost.v1.MsgForceTokenWithdrawal.last_block_hash": - return len(x.LastBlockHash) != 0 - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgForceTokenWithdrawal")) - } - panic(fmt.Errorf("message opinit.ophost.v1.MsgForceTokenWithdrawal does not contain field %s", fd.FullName())) - } -} - -// Clear clears the field such that a subsequent Has call reports false. -// -// Clearing an extension field clears both the extension type and value -// associated with the given field number. -// -// Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgForceTokenWithdrawal) Clear(fd protoreflect.FieldDescriptor) { - switch fd.FullName() { - case "opinit.ophost.v1.MsgForceTokenWithdrawal.bridge_id": - x.BridgeId = uint64(0) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.output_index": - x.OutputIndex = uint64(0) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.sequence": - x.Sequence = uint64(0) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.sender": - x.Sender = "" - case "opinit.ophost.v1.MsgForceTokenWithdrawal.receiver": - x.Receiver = "" - case "opinit.ophost.v1.MsgForceTokenWithdrawal.amount": - x.Amount = nil - case "opinit.ophost.v1.MsgForceTokenWithdrawal.commitment_proof": - x.CommitmentProof = nil - case "opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash": - x.AppHash = nil - case "opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash_proof": - x.AppHashProof = nil - case "opinit.ophost.v1.MsgForceTokenWithdrawal.version": - x.Version = nil - case "opinit.ophost.v1.MsgForceTokenWithdrawal.storage_root": - x.StorageRoot = nil - case "opinit.ophost.v1.MsgForceTokenWithdrawal.last_block_hash": - x.LastBlockHash = nil - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgForceTokenWithdrawal")) - } - panic(fmt.Errorf("message opinit.ophost.v1.MsgForceTokenWithdrawal does not contain field %s", fd.FullName())) - } -} - -// Get retrieves the value for a field. -// -// For unpopulated scalars, it returns the default value, where -// the default value of a bytes scalar is guaranteed to be a copy. -// For unpopulated composite types, it returns an empty, read-only view -// of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_MsgForceTokenWithdrawal) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { - switch descriptor.FullName() { - case "opinit.ophost.v1.MsgForceTokenWithdrawal.bridge_id": - value := x.BridgeId - return protoreflect.ValueOfUint64(value) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.output_index": - value := x.OutputIndex - return protoreflect.ValueOfUint64(value) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.sequence": - value := x.Sequence - return protoreflect.ValueOfUint64(value) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.sender": - value := x.Sender - return protoreflect.ValueOfString(value) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.receiver": - value := x.Receiver - return protoreflect.ValueOfString(value) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.amount": - value := x.Amount - return protoreflect.ValueOfMessage(value.ProtoReflect()) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.commitment_proof": - value := x.CommitmentProof - return protoreflect.ValueOfMessage(value.ProtoReflect()) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash": - value := x.AppHash - return protoreflect.ValueOfBytes(value) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash_proof": - value := x.AppHashProof - return protoreflect.ValueOfMessage(value.ProtoReflect()) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.version": - value := x.Version - return protoreflect.ValueOfBytes(value) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.storage_root": - value := x.StorageRoot - return protoreflect.ValueOfBytes(value) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.last_block_hash": - value := x.LastBlockHash - return protoreflect.ValueOfBytes(value) - default: - if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgForceTokenWithdrawal")) - } - panic(fmt.Errorf("message opinit.ophost.v1.MsgForceTokenWithdrawal does not contain field %s", descriptor.FullName())) - } -} - -// Set stores the value for a field. -// -// For a field belonging to a oneof, it implicitly clears any other field -// that may be currently set within the same oneof. -// For extension fields, it implicitly stores the provided ExtensionType. -// When setting a composite type, it is unspecified whether the stored value -// aliases the source's memory in any way. If the composite value is an -// empty, read-only value, then it panics. -// -// Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgForceTokenWithdrawal) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { - switch fd.FullName() { - case "opinit.ophost.v1.MsgForceTokenWithdrawal.bridge_id": - x.BridgeId = value.Uint() - case "opinit.ophost.v1.MsgForceTokenWithdrawal.output_index": - x.OutputIndex = value.Uint() - case "opinit.ophost.v1.MsgForceTokenWithdrawal.sequence": - x.Sequence = value.Uint() - case "opinit.ophost.v1.MsgForceTokenWithdrawal.sender": - x.Sender = value.Interface().(string) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.receiver": - x.Receiver = value.Interface().(string) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.amount": - x.Amount = value.Message().Interface().(*v1beta1.Coin) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.commitment_proof": - x.CommitmentProof = value.Message().Interface().(*v1.ProofOps) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash": - x.AppHash = value.Bytes() - case "opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash_proof": - x.AppHashProof = value.Message().Interface().(*v1.Proof) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.version": - x.Version = value.Bytes() - case "opinit.ophost.v1.MsgForceTokenWithdrawal.storage_root": - x.StorageRoot = value.Bytes() - case "opinit.ophost.v1.MsgForceTokenWithdrawal.last_block_hash": - x.LastBlockHash = value.Bytes() - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgForceTokenWithdrawal")) - } - panic(fmt.Errorf("message opinit.ophost.v1.MsgForceTokenWithdrawal does not contain field %s", fd.FullName())) - } -} - -// Mutable returns a mutable reference to a composite type. -// -// If the field is unpopulated, it may allocate a composite value. -// For a field belonging to a oneof, it implicitly clears any other field -// that may be currently set within the same oneof. -// For extension fields, it implicitly stores the provided ExtensionType -// if not already stored. -// It panics if the field does not contain a composite type. -// -// Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgForceTokenWithdrawal) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - case "opinit.ophost.v1.MsgForceTokenWithdrawal.amount": - if x.Amount == nil { - x.Amount = new(v1beta1.Coin) - } - return protoreflect.ValueOfMessage(x.Amount.ProtoReflect()) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.commitment_proof": - if x.CommitmentProof == nil { - x.CommitmentProof = new(v1.ProofOps) - } - return protoreflect.ValueOfMessage(x.CommitmentProof.ProtoReflect()) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash_proof": - if x.AppHashProof == nil { - x.AppHashProof = new(v1.Proof) - } - return protoreflect.ValueOfMessage(x.AppHashProof.ProtoReflect()) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.bridge_id": - panic(fmt.Errorf("field bridge_id of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.output_index": - panic(fmt.Errorf("field output_index of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.sequence": - panic(fmt.Errorf("field sequence of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.sender": - panic(fmt.Errorf("field sender of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.receiver": - panic(fmt.Errorf("field receiver of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash": - panic(fmt.Errorf("field app_hash of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.version": - panic(fmt.Errorf("field version of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.storage_root": - panic(fmt.Errorf("field storage_root of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.last_block_hash": - panic(fmt.Errorf("field last_block_hash of message opinit.ophost.v1.MsgForceTokenWithdrawal is not mutable")) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgForceTokenWithdrawal")) - } - panic(fmt.Errorf("message opinit.ophost.v1.MsgForceTokenWithdrawal does not contain field %s", fd.FullName())) - } -} - -// NewField returns a new value that is assignable to the field -// for the given descriptor. For scalars, this returns the default value. -// For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_MsgForceTokenWithdrawal) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - case "opinit.ophost.v1.MsgForceTokenWithdrawal.bridge_id": - return protoreflect.ValueOfUint64(uint64(0)) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.output_index": - return protoreflect.ValueOfUint64(uint64(0)) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.sequence": - return protoreflect.ValueOfUint64(uint64(0)) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.sender": - return protoreflect.ValueOfString("") - case "opinit.ophost.v1.MsgForceTokenWithdrawal.receiver": - return protoreflect.ValueOfString("") - case "opinit.ophost.v1.MsgForceTokenWithdrawal.amount": - m := new(v1beta1.Coin) - return protoreflect.ValueOfMessage(m.ProtoReflect()) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.commitment_proof": - m := new(v1.ProofOps) - return protoreflect.ValueOfMessage(m.ProtoReflect()) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash": - return protoreflect.ValueOfBytes(nil) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash_proof": - m := new(v1.Proof) - return protoreflect.ValueOfMessage(m.ProtoReflect()) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.version": - return protoreflect.ValueOfBytes(nil) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.storage_root": - return protoreflect.ValueOfBytes(nil) - case "opinit.ophost.v1.MsgForceTokenWithdrawal.last_block_hash": - return protoreflect.ValueOfBytes(nil) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgForceTokenWithdrawal")) - } - panic(fmt.Errorf("message opinit.ophost.v1.MsgForceTokenWithdrawal does not contain field %s", fd.FullName())) - } -} - -// WhichOneof reports which field within the oneof is populated, -// returning nil if none are populated. -// It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_MsgForceTokenWithdrawal) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - switch d.FullName() { - default: - panic(fmt.Errorf("%s is not a oneof field in opinit.ophost.v1.MsgForceTokenWithdrawal", d.FullName())) - } - panic("unreachable") -} - -// GetUnknown retrieves the entire list of unknown fields. -// The caller may only mutate the contents of the RawFields -// if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_MsgForceTokenWithdrawal) GetUnknown() protoreflect.RawFields { - return x.unknownFields -} - -// SetUnknown stores an entire list of unknown fields. -// The raw fields must be syntactically valid according to the wire format. -// An implementation may panic if this is not the case. -// Once stored, the caller must not mutate the content of the RawFields. -// An empty RawFields may be passed to clear the fields. -// -// SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgForceTokenWithdrawal) SetUnknown(fields protoreflect.RawFields) { - x.unknownFields = fields -} - -// IsValid reports whether the message is valid. -// -// An invalid message is an empty, read-only value. -// -// An invalid message often corresponds to a nil pointer of the concrete -// message type, but the details are implementation dependent. -// Validity is not part of the protobuf data model, and may not -// be preserved in marshaling or other operations. -func (x *fastReflection_MsgForceTokenWithdrawal) IsValid() bool { - return x != nil -} - -// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. -// This method may return nil. -// -// The returned methods type is identical to -// "google.golang.org/protobuf/runtime/protoiface".Methods. -// Consult the protoiface package documentation for details. -func (x *fastReflection_MsgForceTokenWithdrawal) ProtoMethods() *protoiface.Methods { - size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*MsgForceTokenWithdrawal) - if x == nil { - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: 0, - } - } - options := runtime.SizeInputToOptions(input) - _ = options - var n int - var l int - _ = l - if x.BridgeId != 0 { - n += 1 + runtime.Sov(uint64(x.BridgeId)) - } - if x.OutputIndex != 0 { - n += 1 + runtime.Sov(uint64(x.OutputIndex)) - } - if x.Sequence != 0 { - n += 1 + runtime.Sov(uint64(x.Sequence)) - } - l = len(x.Sender) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.Receiver) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - if x.Amount != nil { - l = options.Size(x.Amount) - n += 1 + l + runtime.Sov(uint64(l)) - } - if x.CommitmentProof != nil { - l = options.Size(x.CommitmentProof) - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.AppHash) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - if x.AppHashProof != nil { - l = options.Size(x.AppHashProof) - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.Version) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.StorageRoot) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.LastBlockHash) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - if x.unknownFields != nil { - n += len(x.unknownFields) - } - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: n, - } - } - - marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*MsgForceTokenWithdrawal) - if x == nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - options := runtime.MarshalInputToOptions(input) - _ = options - size := options.Size(x) - dAtA := make([]byte, size) - i := len(dAtA) - _ = i - var l int - _ = l - if x.unknownFields != nil { - i -= len(x.unknownFields) - copy(dAtA[i:], x.unknownFields) - } - if len(x.LastBlockHash) > 0 { - i -= len(x.LastBlockHash) - copy(dAtA[i:], x.LastBlockHash) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.LastBlockHash))) - i-- - dAtA[i] = 0x62 - } - if len(x.StorageRoot) > 0 { - i -= len(x.StorageRoot) - copy(dAtA[i:], x.StorageRoot) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.StorageRoot))) - i-- - dAtA[i] = 0x5a - } - if len(x.Version) > 0 { - i -= len(x.Version) - copy(dAtA[i:], x.Version) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Version))) - i-- - dAtA[i] = 0x52 - } - if x.AppHashProof != nil { - encoded, err := options.Marshal(x.AppHashProof) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x4a - } - if len(x.AppHash) > 0 { - i -= len(x.AppHash) - copy(dAtA[i:], x.AppHash) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.AppHash))) - i-- - dAtA[i] = 0x42 - } - if x.CommitmentProof != nil { - encoded, err := options.Marshal(x.CommitmentProof) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x3a - } - if x.Amount != nil { - encoded, err := options.Marshal(x.Amount) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x32 - } - if len(x.Sender) > 0 { - i -= len(x.Sender) - copy(dAtA[i:], x.Sender) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Sender))) - i-- - dAtA[i] = 0x2a - } - if x.Sequence != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.Sequence)) - i-- - dAtA[i] = 0x20 - } - if x.OutputIndex != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.OutputIndex)) - i-- - dAtA[i] = 0x18 - } - if x.BridgeId != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.BridgeId)) - i-- - dAtA[i] = 0x10 - } - if len(x.Receiver) > 0 { - i -= len(x.Receiver) - copy(dAtA[i:], x.Receiver) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Receiver))) - i-- - dAtA[i] = 0xa - } - if input.Buf != nil { - input.Buf = append(input.Buf, dAtA...) - } else { - input.Buf = dAtA - } - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*MsgForceTokenWithdrawal) - if x == nil { - return protoiface.UnmarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Flags: input.Flags, - }, nil - } - options := runtime.UnmarshalInputToOptions(input) - _ = options - dAtA := input.Buf - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgForceTokenWithdrawal: wiretype end group for non-group") - } - if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgForceTokenWithdrawal: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 2: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BridgeId", wireType) - } - x.BridgeId = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - x.BridgeId |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OutputIndex", wireType) - } - x.OutputIndex = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - x.OutputIndex |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType) - } - x.Sequence = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - x.Sequence |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.Sender = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 1: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Receiver", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.Receiver = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if x.Amount == nil { - x.Amount = &v1beta1.Coin{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Amount); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field CommitmentProof", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if x.CommitmentProof == nil { - x.CommitmentProof = &v1.ProofOps{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.CommitmentProof); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.AppHash = append(x.AppHash[:0], dAtA[iNdEx:postIndex]...) - if x.AppHash == nil { - x.AppHash = []byte{} - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AppHashProof", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if x.AppHashProof == nil { - x.AppHashProof = &v1.Proof{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.AppHashProof); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.Version = append(x.Version[:0], dAtA[iNdEx:postIndex]...) - if x.Version == nil { - x.Version = []byte{} - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field StorageRoot", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.StorageRoot = append(x.StorageRoot[:0], dAtA[iNdEx:postIndex]...) - if x.StorageRoot == nil { - x.StorageRoot = []byte{} - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LastBlockHash", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.LastBlockHash = append(x.LastBlockHash[:0], dAtA[iNdEx:postIndex]...) - if x.LastBlockHash == nil { - x.LastBlockHash = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := runtime.Skip(dAtA[iNdEx:]) - if err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if !options.DiscardUnknown { - x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - } - iNdEx += skippy - } - } - - if iNdEx > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil - } - return &protoiface.Methods{ - NoUnkeyedLiterals: struct{}{}, - Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, - Size: size, - Marshal: marshal, - Unmarshal: unmarshal, - Merge: nil, - CheckInitialized: nil, - } -} - -var ( - md_MsgForceTokenWithdrawalResponse protoreflect.MessageDescriptor -) - -func init() { - file_opinit_ophost_v1_tx_proto_init() - md_MsgForceTokenWithdrawalResponse = File_opinit_ophost_v1_tx_proto.Messages().ByName("MsgForceTokenWithdrawalResponse") -} - -var _ protoreflect.Message = (*fastReflection_MsgForceTokenWithdrawalResponse)(nil) - -type fastReflection_MsgForceTokenWithdrawalResponse MsgForceTokenWithdrawalResponse - -func (x *MsgForceTokenWithdrawalResponse) ProtoReflect() protoreflect.Message { - return (*fastReflection_MsgForceTokenWithdrawalResponse)(x) -} - -func (x *MsgForceTokenWithdrawalResponse) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[13] - 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) -} - -var _fastReflection_MsgForceTokenWithdrawalResponse_messageType fastReflection_MsgForceTokenWithdrawalResponse_messageType -var _ protoreflect.MessageType = fastReflection_MsgForceTokenWithdrawalResponse_messageType{} - -type fastReflection_MsgForceTokenWithdrawalResponse_messageType struct{} - -func (x fastReflection_MsgForceTokenWithdrawalResponse_messageType) Zero() protoreflect.Message { - return (*fastReflection_MsgForceTokenWithdrawalResponse)(nil) -} -func (x fastReflection_MsgForceTokenWithdrawalResponse_messageType) New() protoreflect.Message { - return new(fastReflection_MsgForceTokenWithdrawalResponse) -} -func (x fastReflection_MsgForceTokenWithdrawalResponse_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_MsgForceTokenWithdrawalResponse -} - -// Descriptor returns message descriptor, which contains only the protobuf -// type information for the message. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) Descriptor() protoreflect.MessageDescriptor { - return md_MsgForceTokenWithdrawalResponse -} - -// Type returns the message type, which encapsulates both Go and protobuf -// type information. If the Go type information is not needed, -// it is recommended that the message descriptor be used instead. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) Type() protoreflect.MessageType { - return _fastReflection_MsgForceTokenWithdrawalResponse_messageType -} - -// New returns a newly allocated and mutable empty message. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) New() protoreflect.Message { - return new(fastReflection_MsgForceTokenWithdrawalResponse) -} - -// Interface unwraps the message reflection interface and -// returns the underlying ProtoMessage interface. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) Interface() protoreflect.ProtoMessage { - return (*MsgForceTokenWithdrawalResponse)(x) -} - -// Range iterates over every populated field in an undefined order, -// calling f for each field descriptor and value encountered. -// Range returns immediately if f returns false. -// While iterating, mutating operations may only be performed -// on the current field descriptor. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { -} - -// Has reports whether a field is populated. -// -// Some fields have the property of nullability where it is possible to -// distinguish between the default value of a field and whether the field -// was explicitly populated with the default value. Singular message fields, -// member fields of a oneof, and proto2 scalar fields are nullable. Such -// fields are populated only if explicitly set. -// -// In other cases (aside from the nullable cases above), -// a proto3 scalar field is populated if it contains a non-zero value, and -// a repeated field is populated if it is non-empty. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) Has(fd protoreflect.FieldDescriptor) bool { - switch fd.FullName() { - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgForceTokenWithdrawalResponse")) - } - panic(fmt.Errorf("message opinit.ophost.v1.MsgForceTokenWithdrawalResponse does not contain field %s", fd.FullName())) - } -} - -// Clear clears the field such that a subsequent Has call reports false. -// -// Clearing an extension field clears both the extension type and value -// associated with the given field number. -// -// Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) Clear(fd protoreflect.FieldDescriptor) { - switch fd.FullName() { - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgForceTokenWithdrawalResponse")) - } - panic(fmt.Errorf("message opinit.ophost.v1.MsgForceTokenWithdrawalResponse does not contain field %s", fd.FullName())) - } -} - -// Get retrieves the value for a field. -// -// For unpopulated scalars, it returns the default value, where -// the default value of a bytes scalar is guaranteed to be a copy. -// For unpopulated composite types, it returns an empty, read-only view -// of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { - switch descriptor.FullName() { - default: - if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgForceTokenWithdrawalResponse")) - } - panic(fmt.Errorf("message opinit.ophost.v1.MsgForceTokenWithdrawalResponse does not contain field %s", descriptor.FullName())) - } -} - -// Set stores the value for a field. -// -// For a field belonging to a oneof, it implicitly clears any other field -// that may be currently set within the same oneof. -// For extension fields, it implicitly stores the provided ExtensionType. -// When setting a composite type, it is unspecified whether the stored value -// aliases the source's memory in any way. If the composite value is an -// empty, read-only value, then it panics. -// -// Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { - switch fd.FullName() { - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgForceTokenWithdrawalResponse")) - } - panic(fmt.Errorf("message opinit.ophost.v1.MsgForceTokenWithdrawalResponse does not contain field %s", fd.FullName())) - } -} - -// Mutable returns a mutable reference to a composite type. -// -// If the field is unpopulated, it may allocate a composite value. -// For a field belonging to a oneof, it implicitly clears any other field -// that may be currently set within the same oneof. -// For extension fields, it implicitly stores the provided ExtensionType -// if not already stored. -// It panics if the field does not contain a composite type. -// -// Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgForceTokenWithdrawalResponse")) - } - panic(fmt.Errorf("message opinit.ophost.v1.MsgForceTokenWithdrawalResponse does not contain field %s", fd.FullName())) - } -} - -// NewField returns a new value that is assignable to the field -// for the given descriptor. For scalars, this returns the default value. -// For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgForceTokenWithdrawalResponse")) - } - panic(fmt.Errorf("message opinit.ophost.v1.MsgForceTokenWithdrawalResponse does not contain field %s", fd.FullName())) - } -} - -// WhichOneof reports which field within the oneof is populated, -// returning nil if none are populated. -// It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - switch d.FullName() { - default: - panic(fmt.Errorf("%s is not a oneof field in opinit.ophost.v1.MsgForceTokenWithdrawalResponse", d.FullName())) - } - panic("unreachable") -} - -// GetUnknown retrieves the entire list of unknown fields. -// The caller may only mutate the contents of the RawFields -// if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) GetUnknown() protoreflect.RawFields { - return x.unknownFields -} - -// SetUnknown stores an entire list of unknown fields. -// The raw fields must be syntactically valid according to the wire format. -// An implementation may panic if this is not the case. -// Once stored, the caller must not mutate the content of the RawFields. -// An empty RawFields may be passed to clear the fields. -// -// SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) SetUnknown(fields protoreflect.RawFields) { - x.unknownFields = fields -} - -// IsValid reports whether the message is valid. -// -// An invalid message is an empty, read-only value. -// -// An invalid message often corresponds to a nil pointer of the concrete -// message type, but the details are implementation dependent. -// Validity is not part of the protobuf data model, and may not -// be preserved in marshaling or other operations. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) IsValid() bool { - return x != nil -} - -// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. -// This method may return nil. -// -// The returned methods type is identical to -// "google.golang.org/protobuf/runtime/protoiface".Methods. -// Consult the protoiface package documentation for details. -func (x *fastReflection_MsgForceTokenWithdrawalResponse) ProtoMethods() *protoiface.Methods { - size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*MsgForceTokenWithdrawalResponse) - if x == nil { - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: 0, - } - } - options := runtime.SizeInputToOptions(input) - _ = options - var n int - var l int - _ = l - if x.unknownFields != nil { - n += len(x.unknownFields) - } - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: n, - } - } - - marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*MsgForceTokenWithdrawalResponse) - if x == nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - options := runtime.MarshalInputToOptions(input) - _ = options - size := options.Size(x) - dAtA := make([]byte, size) - i := len(dAtA) - _ = i - var l int - _ = l - if x.unknownFields != nil { - i -= len(x.unknownFields) - copy(dAtA[i:], x.unknownFields) - } - if input.Buf != nil { - input.Buf = append(input.Buf, dAtA...) - } else { - input.Buf = dAtA - } - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, nil - } - unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*MsgForceTokenWithdrawalResponse) - if x == nil { - return protoiface.UnmarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Flags: input.Flags, - }, nil - } - options := runtime.UnmarshalInputToOptions(input) - _ = options - dAtA := input.Buf - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgForceTokenWithdrawalResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgForceTokenWithdrawalResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := runtime.Skip(dAtA[iNdEx:]) - if err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if !options.DiscardUnknown { - x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - } - iNdEx += skippy - } - } - - if iNdEx > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil - } - return &protoiface.Methods{ - NoUnkeyedLiterals: struct{}{}, - Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, - Size: size, - Marshal: marshal, - Unmarshal: unmarshal, - Merge: nil, - CheckInitialized: nil, - } -} - var ( md_MsgUpdateProposer protoreflect.MessageDescriptor fd_MsgUpdateProposer_authority protoreflect.FieldDescriptor @@ -7644,7 +6158,7 @@ func (x *MsgUpdateProposer) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateProposer) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[14] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8174,7 +6688,7 @@ func (x *MsgUpdateProposerResponse) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateProposerResponse) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[15] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8674,7 +7188,7 @@ func (x *MsgUpdateChallengers) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateChallengers) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[16] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9218,7 +7732,7 @@ func (x *MsgUpdateChallengersResponse) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateChallengersResponse) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[17] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9672,7 +8186,7 @@ func (x *MsgUpdateBatchInfo) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateBatchInfo) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[18] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10217,7 +8731,7 @@ func (x *MsgUpdateBatchInfoResponse) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateBatchInfoResponse) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[19] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10671,7 +9185,7 @@ func (x *MsgUpdateOracleConfig) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateOracleConfig) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[20] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11187,7 +9701,7 @@ func (x *MsgUpdateOracleConfigResponse) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateOracleConfigResponse) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[21] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11549,7 +10063,7 @@ func (x *MsgUpdateMetadata) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateMetadata) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[22] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12081,7 +10595,7 @@ func (x *MsgUpdateMetadataResponse) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateMetadataResponse) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[23] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12533,7 +11047,7 @@ func (x *MsgUpdateParams) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateParams) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[24] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13028,7 +11542,7 @@ func (x *MsgUpdateParamsResponse) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateParamsResponse) slowProtoReflect() protoreflect.Message { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[25] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13955,161 +12469,6 @@ func (*MsgFinalizeTokenWithdrawalResponse) Descriptor() ([]byte, []int) { return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{11} } -// MsgForceTokenWithdrawal is a message to force a token withdrawal from L2 to L1. -type MsgForceTokenWithdrawal struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // anyone can force a token withdrawal from L2 to L1 even this is not the receiver. - BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` - OutputIndex uint64 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"` - // withdrawal commitments and proofs - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` - Sender string `protobuf:"bytes,5,opt,name=sender,proto3" json:"sender,omitempty"` - Receiver string `protobuf:"bytes,1,opt,name=receiver,proto3" json:"receiver,omitempty"` - Amount *v1beta1.Coin `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount,omitempty"` - CommitmentProof *v1.ProofOps `protobuf:"bytes,7,opt,name=commitment_proof,json=commitmentProof,proto3" json:"commitment_proof,omitempty"` - // app hash and proof - AppHash []byte `protobuf:"bytes,8,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` - AppHashProof *v1.Proof `protobuf:"bytes,9,opt,name=app_hash_proof,json=appHashProof,proto3" json:"app_hash_proof,omitempty"` - // output root proofs - Version []byte `protobuf:"bytes,10,opt,name=version,proto3" json:"version,omitempty"` - StorageRoot []byte `protobuf:"bytes,11,opt,name=storage_root,json=storageRoot,proto3" json:"storage_root,omitempty"` - LastBlockHash []byte `protobuf:"bytes,12,opt,name=last_block_hash,json=lastBlockHash,proto3" json:"last_block_hash,omitempty"` -} - -func (x *MsgForceTokenWithdrawal) Reset() { - *x = MsgForceTokenWithdrawal{} - if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MsgForceTokenWithdrawal) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MsgForceTokenWithdrawal) ProtoMessage() {} - -// Deprecated: Use MsgForceTokenWithdrawal.ProtoReflect.Descriptor instead. -func (*MsgForceTokenWithdrawal) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{12} -} - -func (x *MsgForceTokenWithdrawal) GetBridgeId() uint64 { - if x != nil { - return x.BridgeId - } - return 0 -} - -func (x *MsgForceTokenWithdrawal) GetOutputIndex() uint64 { - if x != nil { - return x.OutputIndex - } - return 0 -} - -func (x *MsgForceTokenWithdrawal) GetSequence() uint64 { - if x != nil { - return x.Sequence - } - return 0 -} - -func (x *MsgForceTokenWithdrawal) GetSender() string { - if x != nil { - return x.Sender - } - return "" -} - -func (x *MsgForceTokenWithdrawal) GetReceiver() string { - if x != nil { - return x.Receiver - } - return "" -} - -func (x *MsgForceTokenWithdrawal) GetAmount() *v1beta1.Coin { - if x != nil { - return x.Amount - } - return nil -} - -func (x *MsgForceTokenWithdrawal) GetCommitmentProof() *v1.ProofOps { - if x != nil { - return x.CommitmentProof - } - return nil -} - -func (x *MsgForceTokenWithdrawal) GetAppHash() []byte { - if x != nil { - return x.AppHash - } - return nil -} - -func (x *MsgForceTokenWithdrawal) GetAppHashProof() *v1.Proof { - if x != nil { - return x.AppHashProof - } - return nil -} - -func (x *MsgForceTokenWithdrawal) GetVersion() []byte { - if x != nil { - return x.Version - } - return nil -} - -func (x *MsgForceTokenWithdrawal) GetStorageRoot() []byte { - if x != nil { - return x.StorageRoot - } - return nil -} - -func (x *MsgForceTokenWithdrawal) GetLastBlockHash() []byte { - if x != nil { - return x.LastBlockHash - } - return nil -} - -// MsgForceTokenWithdrawalResponse returns a message handle result. -type MsgForceTokenWithdrawalResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *MsgForceTokenWithdrawalResponse) Reset() { - *x = MsgForceTokenWithdrawalResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MsgForceTokenWithdrawalResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MsgForceTokenWithdrawalResponse) ProtoMessage() {} - -// Deprecated: Use MsgForceTokenWithdrawalResponse.ProtoReflect.Descriptor instead. -func (*MsgForceTokenWithdrawalResponse) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{13} -} - // MsgUpdateProposer is a message to change a proposer type MsgUpdateProposer struct { state protoimpl.MessageState @@ -14126,7 +12485,7 @@ type MsgUpdateProposer struct { func (x *MsgUpdateProposer) Reset() { *x = MsgUpdateProposer{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[14] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14140,7 +12499,7 @@ func (*MsgUpdateProposer) ProtoMessage() {} // Deprecated: Use MsgUpdateProposer.ProtoReflect.Descriptor instead. func (*MsgUpdateProposer) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{14} + return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{12} } func (x *MsgUpdateProposer) GetAuthority() string { @@ -14179,7 +12538,7 @@ type MsgUpdateProposerResponse struct { func (x *MsgUpdateProposerResponse) Reset() { *x = MsgUpdateProposerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[15] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14193,7 +12552,7 @@ func (*MsgUpdateProposerResponse) ProtoMessage() {} // Deprecated: Use MsgUpdateProposerResponse.ProtoReflect.Descriptor instead. func (*MsgUpdateProposerResponse) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{15} + return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{13} } func (x *MsgUpdateProposerResponse) GetOutputIndex() uint64 { @@ -14228,7 +12587,7 @@ type MsgUpdateChallengers struct { func (x *MsgUpdateChallengers) Reset() { *x = MsgUpdateChallengers{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[16] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14242,7 +12601,7 @@ func (*MsgUpdateChallengers) ProtoMessage() {} // Deprecated: Use MsgUpdateChallengers.ProtoReflect.Descriptor instead. func (*MsgUpdateChallengers) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{16} + return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{14} } func (x *MsgUpdateChallengers) GetAuthority() string { @@ -14281,7 +12640,7 @@ type MsgUpdateChallengersResponse struct { func (x *MsgUpdateChallengersResponse) Reset() { *x = MsgUpdateChallengersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[17] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14295,7 +12654,7 @@ func (*MsgUpdateChallengersResponse) ProtoMessage() {} // Deprecated: Use MsgUpdateChallengersResponse.ProtoReflect.Descriptor instead. func (*MsgUpdateChallengersResponse) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{17} + return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{15} } func (x *MsgUpdateChallengersResponse) GetOutputIndex() uint64 { @@ -14328,7 +12687,7 @@ type MsgUpdateBatchInfo struct { func (x *MsgUpdateBatchInfo) Reset() { *x = MsgUpdateBatchInfo{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[18] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14342,7 +12701,7 @@ func (*MsgUpdateBatchInfo) ProtoMessage() {} // Deprecated: Use MsgUpdateBatchInfo.ProtoReflect.Descriptor instead. func (*MsgUpdateBatchInfo) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{18} + return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{16} } func (x *MsgUpdateBatchInfo) GetAuthority() string { @@ -14381,7 +12740,7 @@ type MsgUpdateBatchInfoResponse struct { func (x *MsgUpdateBatchInfoResponse) Reset() { *x = MsgUpdateBatchInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[19] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14395,7 +12754,7 @@ func (*MsgUpdateBatchInfoResponse) ProtoMessage() {} // Deprecated: Use MsgUpdateBatchInfoResponse.ProtoReflect.Descriptor instead. func (*MsgUpdateBatchInfoResponse) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{19} + return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{17} } func (x *MsgUpdateBatchInfoResponse) GetOutputIndex() uint64 { @@ -14428,7 +12787,7 @@ type MsgUpdateOracleConfig struct { func (x *MsgUpdateOracleConfig) Reset() { *x = MsgUpdateOracleConfig{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[20] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14442,7 +12801,7 @@ func (*MsgUpdateOracleConfig) ProtoMessage() {} // Deprecated: Use MsgUpdateOracleConfig.ProtoReflect.Descriptor instead. func (*MsgUpdateOracleConfig) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{20} + return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{18} } func (x *MsgUpdateOracleConfig) GetAuthority() string { @@ -14476,7 +12835,7 @@ type MsgUpdateOracleConfigResponse struct { func (x *MsgUpdateOracleConfigResponse) Reset() { *x = MsgUpdateOracleConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[21] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14490,7 +12849,7 @@ func (*MsgUpdateOracleConfigResponse) ProtoMessage() {} // Deprecated: Use MsgUpdateOracleConfigResponse.ProtoReflect.Descriptor instead. func (*MsgUpdateOracleConfigResponse) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{21} + return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{19} } // MsgUpdateMetadata is a message to change metadata @@ -14512,7 +12871,7 @@ type MsgUpdateMetadata struct { func (x *MsgUpdateMetadata) Reset() { *x = MsgUpdateMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[22] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14526,7 +12885,7 @@ func (*MsgUpdateMetadata) ProtoMessage() {} // Deprecated: Use MsgUpdateMetadata.ProtoReflect.Descriptor instead. func (*MsgUpdateMetadata) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{22} + return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{20} } func (x *MsgUpdateMetadata) GetAuthority() string { @@ -14565,7 +12924,7 @@ type MsgUpdateMetadataResponse struct { func (x *MsgUpdateMetadataResponse) Reset() { *x = MsgUpdateMetadataResponse{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[23] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14579,7 +12938,7 @@ func (*MsgUpdateMetadataResponse) ProtoMessage() {} // Deprecated: Use MsgUpdateMetadataResponse.ProtoReflect.Descriptor instead. func (*MsgUpdateMetadataResponse) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{23} + return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{21} } func (x *MsgUpdateMetadataResponse) GetOutputIndex() uint64 { @@ -14612,7 +12971,7 @@ type MsgUpdateParams struct { func (x *MsgUpdateParams) Reset() { *x = MsgUpdateParams{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[24] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14626,7 +12985,7 @@ func (*MsgUpdateParams) ProtoMessage() {} // Deprecated: Use MsgUpdateParams.ProtoReflect.Descriptor instead. func (*MsgUpdateParams) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{24} + return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{22} } func (x *MsgUpdateParams) GetAuthority() string { @@ -14653,7 +13012,7 @@ type MsgUpdateParamsResponse struct { func (x *MsgUpdateParamsResponse) Reset() { *x = MsgUpdateParamsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_opinit_ophost_v1_tx_proto_msgTypes[25] + mi := &file_opinit_ophost_v1_tx_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14667,7 +13026,7 @@ func (*MsgUpdateParamsResponse) ProtoMessage() {} // Deprecated: Use MsgUpdateParamsResponse.ProtoReflect.Descriptor instead. func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) { - return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{25} + return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{23} } var File_opinit_ophost_v1_tx_proto protoreflect.FileDescriptor @@ -14677,8 +13036,6 @@ var file_opinit_ophost_v1_tx_proto_rawDesc = []byte{ 0x76, 0x31, 0x2f, 0x74, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x1e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, 0x74, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, @@ -14764,7 +13121,7 @@ var file_opinit_ophost_v1_tx_proto_rawDesc = []byte{ 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xfb, 0x02, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, + 0x22, 0xe3, 0x02, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0xd2, @@ -14773,41 +13130,38 @@ var file_opinit_ophost_v1_tx_proto_rawDesc = []byte{ 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x49, 0x64, 0x12, 0x35, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, - 0xf2, 0xde, 0x1f, 0x09, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x6f, 0x22, 0xd2, 0xb4, 0x2d, - 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x4d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x1a, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, - 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x18, 0xc8, 0xde, 0x1f, 0x01, 0xf2, 0xde, 0x1f, 0x0b, - 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x00, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x36, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, - 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x22, 0x3d, - 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xb2, 0x05, - 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x09, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, - 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, - 0x3a, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, - 0x22, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x52, 0x0b, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x36, 0x0a, 0x11, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, - 0x00, 0x52, 0x10, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x29, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, + 0xf2, 0xde, 0x1f, 0x09, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x6f, 0x22, 0x52, 0x02, 0x74, + 0x6f, 0x12, 0x4d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x1a, 0xc8, 0xde, + 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x18, + 0xc8, 0xde, 0x1f, 0x01, 0xf2, 0xde, 0x1f, 0x0b, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x64, 0x61, + 0x74, 0x61, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x36, + 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, + 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x22, 0x3d, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x9a, 0x05, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, + 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x17, 0xf2, + 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x36, 0x0a, 0x11, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, + 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x09, + 0xc8, 0xde, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x00, 0x52, 0x10, 0x77, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x11, 0xf2, 0xde, 0x1f, + 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x22, 0xd2, 0xb4, 0x2d, @@ -14837,90 +13191,57 @@ var file_opinit_ophost_v1_tx_proto_rawDesc = []byte{ 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x22, 0x24, 0x0a, 0x22, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf8, 0x06, 0x0a, 0x17, 0x4d, 0x73, 0x67, - 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, - 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x17, 0xf2, - 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x2f, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x13, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, - 0x22, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x4a, + 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xf2, 0xde, 0x1f, 0x0f, 0x79, - 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x22, 0xd2, 0xb4, - 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, - 0x12, 0x4d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x1a, 0xc8, 0xde, 0x1f, - 0x00, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x6d, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, - 0x6f, 0x6f, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6d, 0x65, - 0x74, 0x62, 0x66, 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x70, 0x73, 0x42, 0x24, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, - 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x2e, - 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, - 0x42, 0x13, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x70, 0x70, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x22, 0x52, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x12, 0x63, - 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, - 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x42, 0x22, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, - 0x22, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x50, 0x72, - 0x6f, 0x6f, 0x66, 0x12, 0x2c, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0c, 0x42, 0x12, 0xf2, 0xde, 0x1f, 0x0e, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x3a, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x6f, 0x6f, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, - 0x6c, 0x3a, 0x22, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, - 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x42, 0x0a, - 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x1a, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, - 0x3a, 0x22, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x22, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, - 0x68, 0x3a, 0x30, 0x82, 0xe7, 0xb0, 0x2a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, - 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x46, - 0x6f, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x61, 0x6c, 0x22, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x09, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, - 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x0c, 0x6e, - 0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x2f, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, - 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x3a, - 0x2b, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, - 0xe7, 0xb0, 0x2a, 0x18, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x22, 0x66, 0x0a, 0x19, - 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, - 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x22, 0xa2, 0x02, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, + 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, + 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x52, 0x0a, + 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2f, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, + 0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x22, 0xd2, 0xb4, 0x2d, 0x14, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x3a, 0x2b, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x22, 0x66, + 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, + 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xa2, 0x02, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x12, + 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, + 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x5b, + 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x32, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, + 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, + 0x72, 0x73, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0e, 0x6e, 0x65, 0x77, + 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x2e, 0x82, 0xe7, 0xb0, + 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x22, 0x69, 0x0a, 0x1c, 0x4d, + 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, + 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xa8, 0x02, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, @@ -14928,195 +13249,162 @@ var file_opinit_ophost_v1_tx_proto_rawDesc = []byte{ 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, - 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x0f, - 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x32, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, - 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, - 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x43, 0x68, - 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x2e, 0x82, 0xe7, 0xb0, 0x2a, 0x09, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x6f, 0x70, - 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, - 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x22, 0x69, 0x0a, 0x1c, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, - 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x22, 0xa8, 0x02, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, - 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, - 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, - 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x65, 0x0a, 0x0e, 0x6e, 0x65, - 0x77, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x42, - 0x22, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, - 0x65, 0x77, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, - 0x6f, 0x3a, 0x2c, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x19, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, - 0x67, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, - 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, - 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, - 0x64, 0x12, 0x40, 0x0a, 0x0e, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x19, 0xf2, 0xde, 0x1f, 0x15, 0x79, - 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x22, 0x52, 0x0d, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x3a, 0x2f, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, + 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x65, 0x0a, 0x0e, + 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x42, 0x22, 0xc8, 0xde, 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x6e, 0x66, 0x6f, 0x3a, 0x2c, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x19, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, + 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x67, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4a, 0x0a, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, - 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, - 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, - 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x13, 0xf2, 0xde, - 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x2b, 0x82, 0xe7, 0xb0, - 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x66, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x12, 0x43, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x11, 0xf2, 0xde, 0x1f, 0x0d, - 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x29, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x16, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xe8, 0x09, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x12, 0x59, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0e, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x19, 0xf2, 0xde, 0x1f, + 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x52, 0x0d, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x2f, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4a, 0x0a, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, + 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, + 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x13, + 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x2b, 0x82, + 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, + 0x2a, 0x18, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x66, 0x0a, 0x19, 0x4d, 0x73, + 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, + 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xd2, + 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x43, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x11, 0xf2, 0xde, + 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x29, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x16, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf3, 0x08, + 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x59, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, - 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x21, - 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0d, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x22, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, - 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x21, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x14, 0x49, - 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, - 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x1a, 0x31, + 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5c, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, + 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, + 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, + 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, + 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5c, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, + 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, + 0x14, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, + 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x7d, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6f, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x73, 0x0a, 0x13, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x77, 0x61, 0x6c, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x6f, - 0x72, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x61, 0x6c, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x1a, 0x2b, 0x2e, 0x6f, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x12, 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x12, 0x26, 0x2e, 0x6f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x72, 0x73, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, + 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x11, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x12, 0x26, + 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x2e, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, + 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, - 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x1a, - 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, - 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, - 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, - 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, - 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xc2, 0x01, 0xc8, 0xe1, 0x1e, 0x00, 0x0a, 0x14, 0x63, - 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, - 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x4f, - 0x58, 0xaa, 0x02, 0x10, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, - 0x68, 0x6f, 0x73, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x5c, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, - 0x3a, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, + 0xb0, 0x2a, 0x01, 0x42, 0xc2, 0x01, 0xc8, 0xe1, 0x1e, 0x00, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x2d, 0x6c, + 0x61, 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x3b, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x4f, 0x58, 0xaa, 0x02, + 0x10, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x10, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x4f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -15131,7 +13419,7 @@ func file_opinit_ophost_v1_tx_proto_rawDescGZIP() []byte { return file_opinit_ophost_v1_tx_proto_rawDescData } -var file_opinit_ophost_v1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_opinit_ophost_v1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_opinit_ophost_v1_tx_proto_goTypes = []interface{}{ (*MsgRecordBatch)(nil), // 0: opinit.ophost.v1.MsgRecordBatch (*MsgRecordBatchResponse)(nil), // 1: opinit.ophost.v1.MsgRecordBatchResponse @@ -15145,65 +13433,56 @@ var file_opinit_ophost_v1_tx_proto_goTypes = []interface{}{ (*MsgInitiateTokenDepositResponse)(nil), // 9: opinit.ophost.v1.MsgInitiateTokenDepositResponse (*MsgFinalizeTokenWithdrawal)(nil), // 10: opinit.ophost.v1.MsgFinalizeTokenWithdrawal (*MsgFinalizeTokenWithdrawalResponse)(nil), // 11: opinit.ophost.v1.MsgFinalizeTokenWithdrawalResponse - (*MsgForceTokenWithdrawal)(nil), // 12: opinit.ophost.v1.MsgForceTokenWithdrawal - (*MsgForceTokenWithdrawalResponse)(nil), // 13: opinit.ophost.v1.MsgForceTokenWithdrawalResponse - (*MsgUpdateProposer)(nil), // 14: opinit.ophost.v1.MsgUpdateProposer - (*MsgUpdateProposerResponse)(nil), // 15: opinit.ophost.v1.MsgUpdateProposerResponse - (*MsgUpdateChallengers)(nil), // 16: opinit.ophost.v1.MsgUpdateChallengers - (*MsgUpdateChallengersResponse)(nil), // 17: opinit.ophost.v1.MsgUpdateChallengersResponse - (*MsgUpdateBatchInfo)(nil), // 18: opinit.ophost.v1.MsgUpdateBatchInfo - (*MsgUpdateBatchInfoResponse)(nil), // 19: opinit.ophost.v1.MsgUpdateBatchInfoResponse - (*MsgUpdateOracleConfig)(nil), // 20: opinit.ophost.v1.MsgUpdateOracleConfig - (*MsgUpdateOracleConfigResponse)(nil), // 21: opinit.ophost.v1.MsgUpdateOracleConfigResponse - (*MsgUpdateMetadata)(nil), // 22: opinit.ophost.v1.MsgUpdateMetadata - (*MsgUpdateMetadataResponse)(nil), // 23: opinit.ophost.v1.MsgUpdateMetadataResponse - (*MsgUpdateParams)(nil), // 24: opinit.ophost.v1.MsgUpdateParams - (*MsgUpdateParamsResponse)(nil), // 25: opinit.ophost.v1.MsgUpdateParamsResponse - (*BridgeConfig)(nil), // 26: opinit.ophost.v1.BridgeConfig - (*v1beta1.Coin)(nil), // 27: cosmos.base.v1beta1.Coin - (*v1.ProofOps)(nil), // 28: cometbft.crypto.v1.ProofOps - (*v1.Proof)(nil), // 29: cometbft.crypto.v1.Proof - (*BatchInfo)(nil), // 30: opinit.ophost.v1.BatchInfo - (*Params)(nil), // 31: opinit.ophost.v1.Params + (*MsgUpdateProposer)(nil), // 12: opinit.ophost.v1.MsgUpdateProposer + (*MsgUpdateProposerResponse)(nil), // 13: opinit.ophost.v1.MsgUpdateProposerResponse + (*MsgUpdateChallengers)(nil), // 14: opinit.ophost.v1.MsgUpdateChallengers + (*MsgUpdateChallengersResponse)(nil), // 15: opinit.ophost.v1.MsgUpdateChallengersResponse + (*MsgUpdateBatchInfo)(nil), // 16: opinit.ophost.v1.MsgUpdateBatchInfo + (*MsgUpdateBatchInfoResponse)(nil), // 17: opinit.ophost.v1.MsgUpdateBatchInfoResponse + (*MsgUpdateOracleConfig)(nil), // 18: opinit.ophost.v1.MsgUpdateOracleConfig + (*MsgUpdateOracleConfigResponse)(nil), // 19: opinit.ophost.v1.MsgUpdateOracleConfigResponse + (*MsgUpdateMetadata)(nil), // 20: opinit.ophost.v1.MsgUpdateMetadata + (*MsgUpdateMetadataResponse)(nil), // 21: opinit.ophost.v1.MsgUpdateMetadataResponse + (*MsgUpdateParams)(nil), // 22: opinit.ophost.v1.MsgUpdateParams + (*MsgUpdateParamsResponse)(nil), // 23: opinit.ophost.v1.MsgUpdateParamsResponse + (*BridgeConfig)(nil), // 24: opinit.ophost.v1.BridgeConfig + (*v1beta1.Coin)(nil), // 25: cosmos.base.v1beta1.Coin + (*BatchInfo)(nil), // 26: opinit.ophost.v1.BatchInfo + (*Params)(nil), // 27: opinit.ophost.v1.Params } var file_opinit_ophost_v1_tx_proto_depIdxs = []int32{ - 26, // 0: opinit.ophost.v1.MsgCreateBridge.config:type_name -> opinit.ophost.v1.BridgeConfig - 27, // 1: opinit.ophost.v1.MsgInitiateTokenDeposit.amount:type_name -> cosmos.base.v1beta1.Coin - 27, // 2: opinit.ophost.v1.MsgFinalizeTokenWithdrawal.amount:type_name -> cosmos.base.v1beta1.Coin - 27, // 3: opinit.ophost.v1.MsgForceTokenWithdrawal.amount:type_name -> cosmos.base.v1beta1.Coin - 28, // 4: opinit.ophost.v1.MsgForceTokenWithdrawal.commitment_proof:type_name -> cometbft.crypto.v1.ProofOps - 29, // 5: opinit.ophost.v1.MsgForceTokenWithdrawal.app_hash_proof:type_name -> cometbft.crypto.v1.Proof - 30, // 6: opinit.ophost.v1.MsgUpdateBatchInfo.new_batch_info:type_name -> opinit.ophost.v1.BatchInfo - 31, // 7: opinit.ophost.v1.MsgUpdateParams.params:type_name -> opinit.ophost.v1.Params - 0, // 8: opinit.ophost.v1.Msg.RecordBatch:input_type -> opinit.ophost.v1.MsgRecordBatch - 2, // 9: opinit.ophost.v1.Msg.CreateBridge:input_type -> opinit.ophost.v1.MsgCreateBridge - 4, // 10: opinit.ophost.v1.Msg.ProposeOutput:input_type -> opinit.ophost.v1.MsgProposeOutput - 6, // 11: opinit.ophost.v1.Msg.DeleteOutput:input_type -> opinit.ophost.v1.MsgDeleteOutput - 8, // 12: opinit.ophost.v1.Msg.InitiateTokenDeposit:input_type -> opinit.ophost.v1.MsgInitiateTokenDeposit - 10, // 13: opinit.ophost.v1.Msg.FinalizeTokenWithdrawal:input_type -> opinit.ophost.v1.MsgFinalizeTokenWithdrawal - 12, // 14: opinit.ophost.v1.Msg.ForceTokenWithdrwal:input_type -> opinit.ophost.v1.MsgForceTokenWithdrawal - 14, // 15: opinit.ophost.v1.Msg.UpdateProposer:input_type -> opinit.ophost.v1.MsgUpdateProposer - 16, // 16: opinit.ophost.v1.Msg.UpdateChallengers:input_type -> opinit.ophost.v1.MsgUpdateChallengers - 18, // 17: opinit.ophost.v1.Msg.UpdateBatchInfo:input_type -> opinit.ophost.v1.MsgUpdateBatchInfo - 22, // 18: opinit.ophost.v1.Msg.UpdateMetadata:input_type -> opinit.ophost.v1.MsgUpdateMetadata - 24, // 19: opinit.ophost.v1.Msg.UpdateParams:input_type -> opinit.ophost.v1.MsgUpdateParams - 1, // 20: opinit.ophost.v1.Msg.RecordBatch:output_type -> opinit.ophost.v1.MsgRecordBatchResponse - 3, // 21: opinit.ophost.v1.Msg.CreateBridge:output_type -> opinit.ophost.v1.MsgCreateBridgeResponse - 5, // 22: opinit.ophost.v1.Msg.ProposeOutput:output_type -> opinit.ophost.v1.MsgProposeOutputResponse - 7, // 23: opinit.ophost.v1.Msg.DeleteOutput:output_type -> opinit.ophost.v1.MsgDeleteOutputResponse - 9, // 24: opinit.ophost.v1.Msg.InitiateTokenDeposit:output_type -> opinit.ophost.v1.MsgInitiateTokenDepositResponse - 11, // 25: opinit.ophost.v1.Msg.FinalizeTokenWithdrawal:output_type -> opinit.ophost.v1.MsgFinalizeTokenWithdrawalResponse - 13, // 26: opinit.ophost.v1.Msg.ForceTokenWithdrwal:output_type -> opinit.ophost.v1.MsgForceTokenWithdrawalResponse - 15, // 27: opinit.ophost.v1.Msg.UpdateProposer:output_type -> opinit.ophost.v1.MsgUpdateProposerResponse - 17, // 28: opinit.ophost.v1.Msg.UpdateChallengers:output_type -> opinit.ophost.v1.MsgUpdateChallengersResponse - 19, // 29: opinit.ophost.v1.Msg.UpdateBatchInfo:output_type -> opinit.ophost.v1.MsgUpdateBatchInfoResponse - 23, // 30: opinit.ophost.v1.Msg.UpdateMetadata:output_type -> opinit.ophost.v1.MsgUpdateMetadataResponse - 25, // 31: opinit.ophost.v1.Msg.UpdateParams:output_type -> opinit.ophost.v1.MsgUpdateParamsResponse - 20, // [20:32] is the sub-list for method output_type - 8, // [8:20] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 24, // 0: opinit.ophost.v1.MsgCreateBridge.config:type_name -> opinit.ophost.v1.BridgeConfig + 25, // 1: opinit.ophost.v1.MsgInitiateTokenDeposit.amount:type_name -> cosmos.base.v1beta1.Coin + 25, // 2: opinit.ophost.v1.MsgFinalizeTokenWithdrawal.amount:type_name -> cosmos.base.v1beta1.Coin + 26, // 3: opinit.ophost.v1.MsgUpdateBatchInfo.new_batch_info:type_name -> opinit.ophost.v1.BatchInfo + 27, // 4: opinit.ophost.v1.MsgUpdateParams.params:type_name -> opinit.ophost.v1.Params + 0, // 5: opinit.ophost.v1.Msg.RecordBatch:input_type -> opinit.ophost.v1.MsgRecordBatch + 2, // 6: opinit.ophost.v1.Msg.CreateBridge:input_type -> opinit.ophost.v1.MsgCreateBridge + 4, // 7: opinit.ophost.v1.Msg.ProposeOutput:input_type -> opinit.ophost.v1.MsgProposeOutput + 6, // 8: opinit.ophost.v1.Msg.DeleteOutput:input_type -> opinit.ophost.v1.MsgDeleteOutput + 8, // 9: opinit.ophost.v1.Msg.InitiateTokenDeposit:input_type -> opinit.ophost.v1.MsgInitiateTokenDeposit + 10, // 10: opinit.ophost.v1.Msg.FinalizeTokenWithdrawal:input_type -> opinit.ophost.v1.MsgFinalizeTokenWithdrawal + 12, // 11: opinit.ophost.v1.Msg.UpdateProposer:input_type -> opinit.ophost.v1.MsgUpdateProposer + 14, // 12: opinit.ophost.v1.Msg.UpdateChallengers:input_type -> opinit.ophost.v1.MsgUpdateChallengers + 16, // 13: opinit.ophost.v1.Msg.UpdateBatchInfo:input_type -> opinit.ophost.v1.MsgUpdateBatchInfo + 20, // 14: opinit.ophost.v1.Msg.UpdateMetadata:input_type -> opinit.ophost.v1.MsgUpdateMetadata + 22, // 15: opinit.ophost.v1.Msg.UpdateParams:input_type -> opinit.ophost.v1.MsgUpdateParams + 1, // 16: opinit.ophost.v1.Msg.RecordBatch:output_type -> opinit.ophost.v1.MsgRecordBatchResponse + 3, // 17: opinit.ophost.v1.Msg.CreateBridge:output_type -> opinit.ophost.v1.MsgCreateBridgeResponse + 5, // 18: opinit.ophost.v1.Msg.ProposeOutput:output_type -> opinit.ophost.v1.MsgProposeOutputResponse + 7, // 19: opinit.ophost.v1.Msg.DeleteOutput:output_type -> opinit.ophost.v1.MsgDeleteOutputResponse + 9, // 20: opinit.ophost.v1.Msg.InitiateTokenDeposit:output_type -> opinit.ophost.v1.MsgInitiateTokenDepositResponse + 11, // 21: opinit.ophost.v1.Msg.FinalizeTokenWithdrawal:output_type -> opinit.ophost.v1.MsgFinalizeTokenWithdrawalResponse + 13, // 22: opinit.ophost.v1.Msg.UpdateProposer:output_type -> opinit.ophost.v1.MsgUpdateProposerResponse + 15, // 23: opinit.ophost.v1.Msg.UpdateChallengers:output_type -> opinit.ophost.v1.MsgUpdateChallengersResponse + 17, // 24: opinit.ophost.v1.Msg.UpdateBatchInfo:output_type -> opinit.ophost.v1.MsgUpdateBatchInfoResponse + 21, // 25: opinit.ophost.v1.Msg.UpdateMetadata:output_type -> opinit.ophost.v1.MsgUpdateMetadataResponse + 23, // 26: opinit.ophost.v1.Msg.UpdateParams:output_type -> opinit.ophost.v1.MsgUpdateParamsResponse + 16, // [16:27] is the sub-list for method output_type + 5, // [5:16] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_opinit_ophost_v1_tx_proto_init() } @@ -15358,30 +13637,6 @@ func file_opinit_ophost_v1_tx_proto_init() { } } file_opinit_ophost_v1_tx_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgForceTokenWithdrawal); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_opinit_ophost_v1_tx_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgForceTokenWithdrawalResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_opinit_ophost_v1_tx_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateProposer); i { case 0: return &v.state @@ -15393,7 +13648,7 @@ func file_opinit_ophost_v1_tx_proto_init() { return nil } } - file_opinit_ophost_v1_tx_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_opinit_ophost_v1_tx_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateProposerResponse); i { case 0: return &v.state @@ -15405,7 +13660,7 @@ func file_opinit_ophost_v1_tx_proto_init() { return nil } } - file_opinit_ophost_v1_tx_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_opinit_ophost_v1_tx_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateChallengers); i { case 0: return &v.state @@ -15417,7 +13672,7 @@ func file_opinit_ophost_v1_tx_proto_init() { return nil } } - file_opinit_ophost_v1_tx_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_opinit_ophost_v1_tx_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateChallengersResponse); i { case 0: return &v.state @@ -15429,7 +13684,7 @@ func file_opinit_ophost_v1_tx_proto_init() { return nil } } - file_opinit_ophost_v1_tx_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_opinit_ophost_v1_tx_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateBatchInfo); i { case 0: return &v.state @@ -15441,7 +13696,7 @@ func file_opinit_ophost_v1_tx_proto_init() { return nil } } - file_opinit_ophost_v1_tx_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_opinit_ophost_v1_tx_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateBatchInfoResponse); i { case 0: return &v.state @@ -15453,7 +13708,7 @@ func file_opinit_ophost_v1_tx_proto_init() { return nil } } - file_opinit_ophost_v1_tx_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_opinit_ophost_v1_tx_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateOracleConfig); i { case 0: return &v.state @@ -15465,7 +13720,7 @@ func file_opinit_ophost_v1_tx_proto_init() { return nil } } - file_opinit_ophost_v1_tx_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_opinit_ophost_v1_tx_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateOracleConfigResponse); i { case 0: return &v.state @@ -15477,7 +13732,7 @@ func file_opinit_ophost_v1_tx_proto_init() { return nil } } - file_opinit_ophost_v1_tx_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_opinit_ophost_v1_tx_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateMetadata); i { case 0: return &v.state @@ -15489,7 +13744,7 @@ func file_opinit_ophost_v1_tx_proto_init() { return nil } } - file_opinit_ophost_v1_tx_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_opinit_ophost_v1_tx_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateMetadataResponse); i { case 0: return &v.state @@ -15501,7 +13756,7 @@ func file_opinit_ophost_v1_tx_proto_init() { return nil } } - file_opinit_ophost_v1_tx_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_opinit_ophost_v1_tx_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateParams); i { case 0: return &v.state @@ -15513,7 +13768,7 @@ func file_opinit_ophost_v1_tx_proto_init() { return nil } } - file_opinit_ophost_v1_tx_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_opinit_ophost_v1_tx_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateParamsResponse); i { case 0: return &v.state @@ -15532,7 +13787,7 @@ func file_opinit_ophost_v1_tx_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_opinit_ophost_v1_tx_proto_rawDesc, NumEnums: 0, - NumMessages: 26, + NumMessages: 24, NumExtensions: 0, NumServices: 1, }, diff --git a/api/opinit/ophost/v1/tx_grpc.pb.go b/api/opinit/ophost/v1/tx_grpc.pb.go index 59ef6486..292022f0 100644 --- a/api/opinit/ophost/v1/tx_grpc.pb.go +++ b/api/opinit/ophost/v1/tx_grpc.pb.go @@ -25,7 +25,6 @@ const ( Msg_DeleteOutput_FullMethodName = "/opinit.ophost.v1.Msg/DeleteOutput" Msg_InitiateTokenDeposit_FullMethodName = "/opinit.ophost.v1.Msg/InitiateTokenDeposit" Msg_FinalizeTokenWithdrawal_FullMethodName = "/opinit.ophost.v1.Msg/FinalizeTokenWithdrawal" - Msg_ForceTokenWithdrwal_FullMethodName = "/opinit.ophost.v1.Msg/ForceTokenWithdrwal" Msg_UpdateProposer_FullMethodName = "/opinit.ophost.v1.Msg/UpdateProposer" Msg_UpdateChallengers_FullMethodName = "/opinit.ophost.v1.Msg/UpdateChallengers" Msg_UpdateBatchInfo_FullMethodName = "/opinit.ophost.v1.Msg/UpdateBatchInfo" @@ -49,8 +48,6 @@ type MsgClient interface { InitiateTokenDeposit(ctx context.Context, in *MsgInitiateTokenDeposit, opts ...grpc.CallOption) (*MsgInitiateTokenDepositResponse, error) // FinalizeTokenWithdrawal defines a user facing l2 => l1 token transfer interface. FinalizeTokenWithdrawal(ctx context.Context, in *MsgFinalizeTokenWithdrawal, opts ...grpc.CallOption) (*MsgFinalizeTokenWithdrawalResponse, error) - // ForceTokenWithdrwal defines a force token withdrawal interface. - ForceTokenWithdrwal(ctx context.Context, in *MsgForceTokenWithdrawal, opts ...grpc.CallOption) (*MsgForceTokenWithdrawalResponse, error) // UpdateProposer defines a rpc handler method for MsgUpdateProposer. UpdateProposer(ctx context.Context, in *MsgUpdateProposer, opts ...grpc.CallOption) (*MsgUpdateProposerResponse, error) // UpdateChallengers defines a rpc handler method for MsgUpdateChallengers. @@ -126,15 +123,6 @@ func (c *msgClient) FinalizeTokenWithdrawal(ctx context.Context, in *MsgFinalize return out, nil } -func (c *msgClient) ForceTokenWithdrwal(ctx context.Context, in *MsgForceTokenWithdrawal, opts ...grpc.CallOption) (*MsgForceTokenWithdrawalResponse, error) { - out := new(MsgForceTokenWithdrawalResponse) - err := c.cc.Invoke(ctx, Msg_ForceTokenWithdrwal_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *msgClient) UpdateProposer(ctx context.Context, in *MsgUpdateProposer, opts ...grpc.CallOption) (*MsgUpdateProposerResponse, error) { out := new(MsgUpdateProposerResponse) err := c.cc.Invoke(ctx, Msg_UpdateProposer_FullMethodName, in, out, opts...) @@ -196,8 +184,6 @@ type MsgServer interface { InitiateTokenDeposit(context.Context, *MsgInitiateTokenDeposit) (*MsgInitiateTokenDepositResponse, error) // FinalizeTokenWithdrawal defines a user facing l2 => l1 token transfer interface. FinalizeTokenWithdrawal(context.Context, *MsgFinalizeTokenWithdrawal) (*MsgFinalizeTokenWithdrawalResponse, error) - // ForceTokenWithdrwal defines a force token withdrawal interface. - ForceTokenWithdrwal(context.Context, *MsgForceTokenWithdrawal) (*MsgForceTokenWithdrawalResponse, error) // UpdateProposer defines a rpc handler method for MsgUpdateProposer. UpdateProposer(context.Context, *MsgUpdateProposer) (*MsgUpdateProposerResponse, error) // UpdateChallengers defines a rpc handler method for MsgUpdateChallengers. @@ -234,9 +220,6 @@ func (UnimplementedMsgServer) InitiateTokenDeposit(context.Context, *MsgInitiate func (UnimplementedMsgServer) FinalizeTokenWithdrawal(context.Context, *MsgFinalizeTokenWithdrawal) (*MsgFinalizeTokenWithdrawalResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FinalizeTokenWithdrawal not implemented") } -func (UnimplementedMsgServer) ForceTokenWithdrwal(context.Context, *MsgForceTokenWithdrawal) (*MsgForceTokenWithdrawalResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ForceTokenWithdrwal not implemented") -} func (UnimplementedMsgServer) UpdateProposer(context.Context, *MsgUpdateProposer) (*MsgUpdateProposerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateProposer not implemented") } @@ -373,24 +356,6 @@ func _Msg_FinalizeTokenWithdrawal_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } -func _Msg_ForceTokenWithdrwal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgForceTokenWithdrawal) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MsgServer).ForceTokenWithdrwal(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: Msg_ForceTokenWithdrwal_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).ForceTokenWithdrwal(ctx, req.(*MsgForceTokenWithdrawal)) - } - return interceptor(ctx, in, info, handler) -} - func _Msg_UpdateProposer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MsgUpdateProposer) if err := dec(in); err != nil { @@ -512,10 +477,6 @@ var Msg_ServiceDesc = grpc.ServiceDesc{ MethodName: "FinalizeTokenWithdrawal", Handler: _Msg_FinalizeTokenWithdrawal_Handler, }, - { - MethodName: "ForceTokenWithdrwal", - Handler: _Msg_ForceTokenWithdrwal_Handler, - }, { MethodName: "UpdateProposer", Handler: _Msg_UpdateProposer_Handler, diff --git a/proto/buf.gen.pulsar.yaml b/proto/buf.gen.pulsar.yaml index 993c412b..e671b94a 100644 --- a/proto/buf.gen.pulsar.yaml +++ b/proto/buf.gen.pulsar.yaml @@ -10,7 +10,6 @@ managed: - buf.build/cosmos/ibc override: buf.build/cosmos/cosmos-sdk: cosmossdk.io/api - buf.build/cometbft/cometbft: buf.build/gen/go/cometbft/cometbft/protocolbuffers/go plugins: - name: go-pulsar out: ../api diff --git a/proto/opinit/opchild/v1/genesis.proto b/proto/opinit/opchild/v1/genesis.proto index 9a8327a3..432d126c 100644 --- a/proto/opinit/opchild/v1/genesis.proto +++ b/proto/opinit/opchild/v1/genesis.proto @@ -20,13 +20,6 @@ message GenesisState { // delegations defines the validator set at genesis. repeated Validator validators = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - // the pending deposits that are not failed to be deposited. - repeated PendingDeposits pending_deposits = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - - // the withdrawal commitments for force withdrawal. - repeated WithdrawalCommitment withdrawal_commitments = 5 - [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - uint64 next_l2_sequence = 6; uint64 next_l1_sequence = 7; BridgeInfo bridge_info = 8; diff --git a/proto/opinit/opchild/v1/query.proto b/proto/opinit/opchild/v1/query.proto index e5d3c63f..80132854 100644 --- a/proto/opinit/opchild/v1/query.proto +++ b/proto/opinit/opchild/v1/query.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package opinit.opchild.v1; import "amino/amino.proto"; -import "cometbft/crypto/v1/proof.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; import "cosmos/base/v1beta1/coin.proto"; import "cosmos/query/v1/query.proto"; @@ -58,11 +57,6 @@ service Query { option (cosmos.query.v1.module_query_safe) = true; option (google.api.http).get = "/opinit/opchild/v1/base_denom/{denom}"; } - - rpc ForceWithdrawalProofs(QueryForceWithdrawalProofsRequest) returns (QueryForceWithdrawalProofsResponse) { - option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/opchild/v1/withdrawals/{sequence}/proofs"; - } } // QueryValidatorsRequest is request type for Query/Validators RPC method. @@ -137,21 +131,3 @@ message QueryBaseDenomRequest { message QueryBaseDenomResponse { string base_denom = 1; } - -// QueryForceWithdrawalProofsRequest is request type for the Query/ForceWithdrawalProofs RPC method. -message QueryForceWithdrawalProofsRequest { - // sequence is the sequence number of the withdrawal. - uint64 sequence = 1; -} - -// QueryForceWithdrawalProofsResponse is response type for the Query/ForceWithdrawalProofs RPC method. -message QueryForceWithdrawalProofsResponse { - // withdrawal commitments and proofs - cometbft.crypto.v1.ProofOps commitment_proof = 3 - [(gogoproto.moretags) = "yaml:\"commitment_proof\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - - // app hash and proof - bytes app_hash = 4 [(gogoproto.moretags) = "yaml:\"app_hash\""]; - cometbft.crypto.v1.Proof app_hash_proof = 5 - [(gogoproto.moretags) = "yaml:\"app_hash_proof\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; -} diff --git a/proto/opinit/opchild/v1/tx.proto b/proto/opinit/opchild/v1/tx.proto index 3a61304d..17c57617 100644 --- a/proto/opinit/opchild/v1/tx.proto +++ b/proto/opinit/opchild/v1/tx.proto @@ -103,9 +103,9 @@ message MsgFinalizeTokenDeposit { string sender = 1 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; // from is l1 sender address - string from = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string from = 2; - // to is l2 recipient address + // to is l2 recipient address or "hook" string to = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; // amount is the coin amount to deposit. @@ -139,7 +139,7 @@ message MsgInitiateTokenWithdrawal { string sender = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; // to is l1 recipient address - string to = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string to = 2; // amount is the coin amount to withdraw. cosmos.base.v1beta1.Coin amount = 4 diff --git a/proto/opinit/opchild/v1/types.proto b/proto/opinit/opchild/v1/types.proto index f5501337..45a4a57e 100644 --- a/proto/opinit/opchild/v1/types.proto +++ b/proto/opinit/opchild/v1/types.proto @@ -6,7 +6,6 @@ import "cosmos/base/v1beta1/coin.proto"; import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; import "google/protobuf/any.proto"; -import "google/protobuf/timestamp.proto"; import "opinit/ophost/v1/types.proto"; import "tendermint/abci/types.proto"; @@ -102,19 +101,6 @@ message BridgeInfo { opinit.ophost.v1.BridgeConfig bridge_config = 5 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; } -// PendingDeposits defines the set of pending deposits. -message PendingDeposits { - // recipient is the address of the recipient. - string recipient = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - - // coins is a list of coins to be deposited. - repeated cosmos.base.v1beta1.Coin coins = 2 [ - (gogoproto.nullable) = false, - (amino.dont_omitempty) = true, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; -} - // CoinsWrapper defines the set of coins. message CoinsWrapper { repeated cosmos.base.v1beta1.Coin coins = 1 [ @@ -135,9 +121,3 @@ enum ResponseResultType { // The message was executed successfully RESPONSE_RESULT_TYPE_SUCCESS = 2 [(gogoproto.enumvalue_customname) = "SUCCESS"]; } - -message WithdrawalCommitment { - bytes commitment = 1; - google.protobuf.Timestamp submit_time = 5 - [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; -} diff --git a/proto/opinit/ophost/v1/tx.proto b/proto/opinit/ophost/v1/tx.proto index f404f578..c2f10eae 100644 --- a/proto/opinit/ophost/v1/tx.proto +++ b/proto/opinit/ophost/v1/tx.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package opinit.ophost.v1; import "amino/amino.proto"; -import "cometbft/crypto/v1/proof.proto"; import "cosmos/base/v1beta1/coin.proto"; import "cosmos/msg/v1/msg.proto"; import "cosmos_proto/cosmos.proto"; @@ -49,9 +48,6 @@ service Msg { // FinalizeTokenWithdrawal defines a user facing l2 => l1 token transfer interface. rpc FinalizeTokenWithdrawal(MsgFinalizeTokenWithdrawal) returns (MsgFinalizeTokenWithdrawalResponse); - // ForceTokenWithdrwal defines a force token withdrawal interface. - rpc ForceTokenWithdrwal(MsgForceTokenWithdrawal) returns (MsgForceTokenWithdrawalResponse); - //////////////////////////// // Authority Messages @@ -156,7 +152,7 @@ message MsgInitiateTokenDeposit { string sender = 1 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; - string to = 3 [(gogoproto.moretags) = "yaml:\"to\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string to = 3 [(gogoproto.moretags) = "yaml:\"to\""]; cosmos.base.v1beta1.Coin amount = 4 [(gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; bytes data = 5 [(gogoproto.moretags) = "yaml:\"data\"", (gogoproto.nullable) = true, (amino.dont_omitempty) = false]; @@ -180,7 +176,7 @@ message MsgFinalizeTokenWithdrawal { // withdraw tx data - string sender = 5 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string sender = 5 [(gogoproto.moretags) = "yaml:\"sender\""]; string receiver = 1 [(gogoproto.moretags) = "yaml:\"receiver\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; uint64 sequence = 6 [(gogoproto.moretags) = "yaml:\"sequence\""]; cosmos.base.v1beta1.Coin amount = 7 @@ -197,38 +193,6 @@ message MsgFinalizeTokenWithdrawal { // MsgFinalizeTokenWithdrawalResponse returns a message handle result. message MsgFinalizeTokenWithdrawalResponse {} -// MsgForceTokenWithdrawal is a message to force a token withdrawal from L2 to L1. -message MsgForceTokenWithdrawal { - option (cosmos.msg.v1.signer) = "receiver"; - option (amino.name) = "ophost/MsgForceTokenWithdrawal"; - - // anyone can force a token withdrawal from L2 to L1 even this is not the receiver. - uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; - uint64 output_index = 3 [(gogoproto.moretags) = "yaml:\"output_index\""]; - - // withdrawal commitments and proofs - uint64 sequence = 4 [(gogoproto.moretags) = "yaml:\"sequence\""]; - string sender = 5 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; - string receiver = 1 [(gogoproto.moretags) = "yaml:\"receiver\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; - cosmos.base.v1beta1.Coin amount = 6 - [(gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - cometbft.crypto.v1.ProofOps commitment_proof = 7 - [(gogoproto.moretags) = "yaml:\"commitment_proof\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - - // app hash and proof - bytes app_hash = 8 [(gogoproto.moretags) = "yaml:\"app_hash\""]; - cometbft.crypto.v1.Proof app_hash_proof = 9 - [(gogoproto.moretags) = "yaml:\"app_hash_proof\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - - // output root proofs - bytes version = 10 [(gogoproto.moretags) = "yaml:\"version\""]; - bytes storage_root = 11 [(gogoproto.moretags) = "yaml:\"storage_root\""]; - bytes last_block_hash = 12 [(gogoproto.moretags) = "yaml:\"last_block_hash\""]; -} - -// MsgForceTokenWithdrawalResponse returns a message handle result. -message MsgForceTokenWithdrawalResponse {} - /////////////////////////// // Authority Messages diff --git a/x/opchild/abci.go b/x/opchild/abci.go index f03d3e89..addd731d 100644 --- a/x/opchild/abci.go +++ b/x/opchild/abci.go @@ -18,11 +18,6 @@ import ( // and prune the oldest entry based on the HistoricalEntries parameter func BeginBlocker(ctx context.Context, k *keeper.Keeper) error { defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), telemetry.MetricKeyBeginBlocker) - err := k.TrackWithdrawalCommitments(ctx) - if err != nil { - return err - } - return k.TrackHistoricalInfo(ctx) } diff --git a/x/opchild/ante/ante_test.go b/x/opchild/ante/ante_test.go index 1724e0f3..8c63cbcf 100644 --- a/x/opchild/ante/ante_test.go +++ b/x/opchild/ante/ante_test.go @@ -154,10 +154,10 @@ func TestRedundantTx(t *testing.T) { tx := testTx{ msgs: []sdk.Msg{ types.NewMsgFinalizeTokenDeposit( - addrsStr[0], addrsStr[0], addrsStr[1], sdk.NewCoin(testDenoms[0], math.NewInt(100)), 1, 1, "l1_test0", []byte(""), + addrsStr[0], addrsStr[0], addrsStr[1], sdk.NewCoin(testDenoms[0], math.NewInt(100)), 1, 1, "l1_test0", nil, ), types.NewMsgFinalizeTokenDeposit( - addrsStr[0], addrsStr[0], addrsStr[1], sdk.NewCoin(testDenoms[0], math.NewInt(100)), 2, 1, "l1_test0", []byte(""), + addrsStr[0], addrsStr[0], addrsStr[1], sdk.NewCoin(testDenoms[0], math.NewInt(100)), 2, 1, "l1_test0", nil, ), }, } @@ -172,10 +172,10 @@ func TestRedundantTx(t *testing.T) { tx = testTx{ msgs: []sdk.Msg{ types.NewMsgFinalizeTokenDeposit( - addrsStr[0], addrsStr[0], addrsStr[1], sdk.NewCoin(testDenoms[0], math.NewInt(100)), 2, 1, "l1_test0", []byte(""), + addrsStr[0], addrsStr[0], addrsStr[1], sdk.NewCoin(testDenoms[0], math.NewInt(100)), 2, 1, "l1_test0", nil, ), types.NewMsgFinalizeTokenDeposit( - addrsStr[0], addrsStr[0], addrsStr[1], sdk.NewCoin(testDenoms[0], math.NewInt(100)), 3, 1, "l1_test0", []byte(""), + addrsStr[0], addrsStr[0], addrsStr[1], sdk.NewCoin(testDenoms[0], math.NewInt(100)), 3, 1, "l1_test0", nil, ), }, } @@ -186,7 +186,7 @@ func TestRedundantTx(t *testing.T) { tx = testTx{ msgs: []sdk.Msg{ types.NewMsgFinalizeTokenDeposit( - addrsStr[0], addrsStr[0], addrsStr[1], sdk.NewCoin(testDenoms[0], math.NewInt(100)), 4, 1, "l1_test0", []byte(""), + addrsStr[0], addrsStr[0], addrsStr[1], sdk.NewCoin(testDenoms[0], math.NewInt(100)), 4, 1, "l1_test0", nil, ), }, } diff --git a/x/opchild/ante/common_test.go b/x/opchild/ante/common_test.go index 1f67fd69..b8032d72 100644 --- a/x/opchild/ante/common_test.go +++ b/x/opchild/ante/common_test.go @@ -31,6 +31,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" "github.com/cosmos/cosmos-sdk/x/auth" + authante "github.com/cosmos/cosmos-sdk/x/auth/ante" authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec" authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" "github.com/cosmos/cosmos-sdk/x/auth/tx" @@ -241,6 +242,8 @@ func _createTestInput( encodingConfig := MakeEncodingConfig(t) appCodec := encodingConfig.Marshaler + txDecoder := encodingConfig.TxConfig.TxDecoder() + signModeHandler := encodingConfig.TxConfig.SignModeHandler() maccPerms := map[string][]string{ // module account permissions authtypes.FeeCollectorName: nil, @@ -292,10 +295,16 @@ func _createTestInput( runtime.NewKVStoreService(keys[opchildtypes.StoreKey]), accountKeeper, bankKeeper, - bridgeHook.Hook, &oracleKeeper, + sdk.ChainAnteDecorators( + authante.NewSetPubKeyDecorator(accountKeeper), + authante.NewValidateSigCountDecorator(accountKeeper), + authante.NewSigGasConsumeDecorator(accountKeeper, authante.DefaultSigVerificationGasConsumer), + authante.NewSigVerificationDecorator(accountKeeper, signModeHandler), + authante.NewIncrementSequenceDecorator(accountKeeper), + ), + txDecoder, msgRouter, - nil, authtypes.NewModuleAddress(opchildtypes.ModuleName).String(), authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()), authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()), diff --git a/x/opchild/client/cli/tx_test.go b/x/opchild/client/cli/tx_test.go index d98b1879..0fbdda51 100644 --- a/x/opchild/client/cli/tx_test.go +++ b/x/opchild/client/cli/tx_test.go @@ -116,7 +116,7 @@ func (s *CLITestSuite) TestNewWithdrawCmd() { "invalid transaction (invalid amount)", []string{ s.addrs[0].String(), - "0umin", + "-1umin", fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), @@ -221,7 +221,7 @@ func (s *CLITestSuite) TestNewDepositCmd() { "1", s.addrs[0].String(), s.addrs[1].String(), - "0umin", + "-1umin", "test_token", fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), diff --git a/x/opchild/keeper/commitments.go b/x/opchild/keeper/commitments.go deleted file mode 100644 index 73381fc7..00000000 --- a/x/opchild/keeper/commitments.go +++ /dev/null @@ -1,77 +0,0 @@ -package keeper - -import ( - "context" - "errors" - "time" - - "cosmossdk.io/collections" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/initia-labs/OPinit/x/opchild/types" -) - -func (k Keeper) TrackWithdrawalCommitments(ctx context.Context) error { - info, err := k.BridgeInfo.Get(ctx) - if err != nil && errors.Is(err, collections.ErrNotFound) { - return nil - } else if err != nil { - return err - } - - sdkCtx := sdk.UnwrapSDKContext(ctx) - curTime := sdkCtx.BlockTime().UTC().Unix() - retensionPeriod := int64(info.BridgeConfig.FinalizationPeriod.Seconds() * 2) - - err = k.CommitmentTimes.Walk(ctx, nil, func(sequence uint64, submitTime time.Time) (stop bool, err error) { - // stop the iteration if the current time is less than the submit time + retension period - if curTime <= submitTime.UTC().Unix()+retensionPeriod { - return true, nil - } - - return false, k.RemoveWithdrawalCommitment(ctx, sequence) - }) - if err != nil { - return err - } - - return nil -} - -func (k Keeper) SetWithdrawalCommitment(ctx context.Context, sequence uint64, wc types.WithdrawalCommitment) error { - if err := k.CommitmentTimes.Set(ctx, sequence, wc.SubmitTime); err != nil { - return err - } - if err := k.Commitments.Set(ctx, sequence, wc.Commitment); err != nil { - return err - } - - return nil -} - -func (k Keeper) GetWithdrawalCommitment(ctx context.Context, sequence uint64) (types.WithdrawalCommitment, error) { - commitment, err := k.Commitments.Get(ctx, sequence) - if err != nil { - return types.WithdrawalCommitment{}, err - } - - submitTime, err := k.CommitmentTimes.Get(ctx, sequence) - if err != nil { - return types.WithdrawalCommitment{}, err - } - - return types.WithdrawalCommitment{ - Commitment: commitment, - SubmitTime: submitTime, - }, nil -} - -func (k Keeper) RemoveWithdrawalCommitment(ctx context.Context, sequence uint64) error { - if err := k.CommitmentTimes.Remove(ctx, sequence); err != nil { - return err - } - if err := k.Commitments.Remove(ctx, sequence); err != nil { - return err - } - - return nil -} diff --git a/x/opchild/keeper/commitments_test.go b/x/opchild/keeper/commitments_test.go deleted file mode 100644 index 7b124142..00000000 --- a/x/opchild/keeper/commitments_test.go +++ /dev/null @@ -1,85 +0,0 @@ -package keeper_test - -import ( - "testing" - "time" - - "cosmossdk.io/collections" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/stretchr/testify/require" - - "github.com/initia-labs/OPinit/x/opchild/types" - ophosttypes "github.com/initia-labs/OPinit/x/ophost/types" -) - -func Test_TrackWithdrawalCommitments(t *testing.T) { - now := time.Now() - ctx, input := createDefaultTestInput(t) - - err := input.OPChildKeeper.BridgeInfo.Set(ctx, types.BridgeInfo{ - BridgeConfig: ophosttypes.BridgeConfig{ - FinalizationPeriod: time.Second * 5, - }, - }) - require.NoError(t, err) - - // H: 1, T: 0 - ctx = sdk.UnwrapSDKContext(ctx).WithBlockHeight(1).WithBlockTime(now) - err = input.OPChildKeeper.TrackWithdrawalCommitments(ctx) - require.NoError(t, err) - - err = input.OPChildKeeper.SetWithdrawalCommitment(ctx, 1, types.WithdrawalCommitment{ - Commitment: types.CommitWithdrawal(1, "recipient", sdk.NewInt64Coin("uinit", 100)), - SubmitTime: now, - }) - require.NoError(t, err) - - err = input.OPChildKeeper.SetWithdrawalCommitment(ctx, 2, types.WithdrawalCommitment{ - Commitment: types.CommitWithdrawal(1, "recipient", sdk.NewInt64Coin("uinit", 100)), - SubmitTime: now, - }) - require.NoError(t, err) - - // H: 2, T: 5 - ctx = sdk.UnwrapSDKContext(ctx).WithBlockHeight(2).WithBlockTime(now.Add(time.Second * 5)) - err = input.OPChildKeeper.TrackWithdrawalCommitments(ctx) - require.NoError(t, err) - - // record historical withdrawal - err = input.OPChildKeeper.SetWithdrawalCommitment(ctx, 3, types.WithdrawalCommitment{ - Commitment: types.CommitWithdrawal(1, "recipient", sdk.NewInt64Coin("uinit", 100)), - SubmitTime: now.Add(time.Second * 5), - }) - require.NoError(t, err) - - // should not be removed - _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 1) - require.NoError(t, err) - _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 2) - require.NoError(t, err) - _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 3) - require.NoError(t, err) - - // H: 3, T: 15 - ctx = sdk.UnwrapSDKContext(ctx).WithBlockHeight(3).WithBlockTime(now.Add(time.Second * 15)) - err = input.OPChildKeeper.TrackWithdrawalCommitments(ctx) - require.NoError(t, err) - - // should be removed entries of height 1 - _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 1) - require.ErrorIs(t, err, collections.ErrNotFound) - _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 2) - require.ErrorIs(t, err, collections.ErrNotFound) - // should not be removed - _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 3) - require.NoError(t, err) - - // H: 4, T: 25 - ctx = sdk.UnwrapSDKContext(ctx).WithBlockHeight(4).WithBlockTime(now.Add(time.Second * 25)) - err = input.OPChildKeeper.TrackWithdrawalCommitments(ctx) - require.NoError(t, err) - - // should be removed entries of height 2 - _, err = input.OPChildKeeper.GetWithdrawalCommitment(ctx, 3) - require.ErrorIs(t, err, collections.ErrNotFound) -} diff --git a/x/opchild/keeper/common_test.go b/x/opchild/keeper/common_test.go index 4d4f4aae..017984f6 100644 --- a/x/opchild/keeper/common_test.go +++ b/x/opchild/keeper/common_test.go @@ -8,9 +8,6 @@ import ( "github.com/stretchr/testify/require" - "github.com/cometbft/cometbft/crypto" - "github.com/cometbft/cometbft/crypto/ed25519" - "github.com/cometbft/cometbft/crypto/secp256k1" tmproto "github.com/cometbft/cometbft/proto/tendermint/types" "cosmossdk.io/log" @@ -18,22 +15,28 @@ import ( "cosmossdk.io/store" "cosmossdk.io/store/metrics" storetypes "cosmossdk.io/store/types" - "cosmossdk.io/x/tx/signing" + signingmod "cosmossdk.io/x/tx/signing" dbm "github.com/cosmos/cosmos-db" + "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/tx" "github.com/cosmos/cosmos-sdk/codec" codecaddress "github.com/cosmos/cosmos-sdk/codec/address" codectypes "github.com/cosmos/cosmos-sdk/codec/types" + cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" "github.com/cosmos/cosmos-sdk/runtime" "github.com/cosmos/cosmos-sdk/std" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" + "github.com/cosmos/cosmos-sdk/types/tx/signing" "github.com/cosmos/cosmos-sdk/x/auth" + authante "github.com/cosmos/cosmos-sdk/x/auth/ante" authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec" authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" - "github.com/cosmos/cosmos-sdk/x/auth/tx" + authsign "github.com/cosmos/cosmos-sdk/x/auth/signing" + authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/cosmos/cosmos-sdk/x/bank" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" @@ -56,7 +59,7 @@ var ModuleBasics = module.NewBasicManager( ) var ( - pubKeys = []crypto.PubKey{ + pubKeys = []cryptotypes.PubKey{ secp256k1.GenPrivKey().PubKey(), secp256k1.GenPrivKey().PubKey(), secp256k1.GenPrivKey().PubKey(), @@ -121,14 +124,14 @@ func MakeTestCodec(t testing.TB) codec.Codec { func MakeEncodingConfig(_ testing.TB) EncodingConfig { interfaceRegistry, _ := codectypes.NewInterfaceRegistryWithOptions(codectypes.InterfaceRegistryOptions{ ProtoFiles: proto.HybridResolver, - SigningOptions: signing.Options{ + SigningOptions: signingmod.Options{ AddressCodec: codecaddress.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()), ValidatorAddressCodec: codecaddress.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()), }, }) appCodec := codec.NewProtoCodec(interfaceRegistry) legacyAmino := codec.NewLegacyAmino() - txConfig := tx.NewTxConfig(appCodec, tx.DefaultSignModes) + txConfig := authtx.NewTxConfig(appCodec, authtx.DefaultSignModes) std.RegisterInterfaces(interfaceRegistry) std.RegisterLegacyAminoCodec(legacyAmino) @@ -206,7 +209,6 @@ type TestKeepers struct { BankKeeper bankkeeper.Keeper OPChildKeeper opchildkeeper.Keeper OracleKeeper *oraclekeeper.Keeper - BridgeHook *bridgeHook EncodingConfig EncodingConfig Faucet *TestFaucet } @@ -225,12 +227,12 @@ var keyCounter uint64 // we need to make this deterministic (same every test run), as encoded address size and thus gas cost, // depends on the actual bytes (due to ugly CanonicalAddress encoding) -func keyPubAddr() (crypto.PrivKey, crypto.PubKey, sdk.AccAddress) { +func keyPubAddr() (cryptotypes.PrivKey, cryptotypes.PubKey, sdk.AccAddress) { keyCounter++ seed := make([]byte, 8) binary.BigEndian.PutUint64(seed, keyCounter) - key := ed25519.GenPrivKeyFromSecret(seed) + key := secp256k1.GenPrivKeyFromSecret(seed) pub := key.PubKey() addr := sdk.AccAddress(pub.Address()) return key, pub, addr @@ -263,6 +265,8 @@ func _createTestInput( encodingConfig := MakeEncodingConfig(t) appCodec := encodingConfig.Marshaler + txDecoder := encodingConfig.TxConfig.TxDecoder() + signModeHandler := encodingConfig.TxConfig.SignModeHandler() maccPerms := map[string][]string{ // module account permissions authtypes.FeeCollectorName: nil, @@ -283,6 +287,7 @@ func _createTestInput( sdk.GetConfig().GetBech32AccountAddrPrefix(), authtypes.NewModuleAddress(opchildtypes.ModuleName).String(), ) + require.NoError(t, accountKeeper.Params.Set(ctx, authtypes.DefaultParams())) blockedAddrs := make(map[string]bool) for acc := range maccPerms { blockedAddrs[authtypes.NewModuleAddress(acc).String()] = true @@ -301,6 +306,9 @@ func _createTestInput( msgRouter := baseapp.NewMsgServiceRouter() msgRouter.SetInterfaceRegistry(encodingConfig.InterfaceRegistry) + // register bank message service to the router + banktypes.RegisterMsgServer(msgRouter, bankkeeper.NewMsgServerImpl(bankKeeper)) + oracleKeeper := oraclekeeper.NewKeeper( runtime.NewKVStoreService(keys[oracletypes.StoreKey]), appCodec, @@ -308,16 +316,21 @@ func _createTestInput( authtypes.NewModuleAddress(opchildtypes.ModuleName), ) - bridgeHook := &bridgeHook{} opchildKeeper := opchildkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(keys[opchildtypes.StoreKey]), accountKeeper, bankKeeper, - bridgeHook.Hook, &oracleKeeper, + sdk.ChainAnteDecorators( + authante.NewSetPubKeyDecorator(accountKeeper), + authante.NewValidateSigCountDecorator(accountKeeper), + authante.NewSigGasConsumeDecorator(accountKeeper, authante.DefaultSigVerificationGasConsumer), + authante.NewSigVerificationDecorator(accountKeeper, signModeHandler), + authante.NewIncrementSequenceDecorator(accountKeeper), + ), + txDecoder, msgRouter, - nil, authtypes.NewModuleAddress(opchildtypes.ModuleName).String(), authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()), authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()), @@ -341,22 +354,63 @@ func _createTestInput( BankKeeper: bankKeeper, OPChildKeeper: *opchildKeeper, OracleKeeper: &oracleKeeper, - BridgeHook: bridgeHook, EncodingConfig: encodingConfig, Faucet: faucet, } return ctx, keepers } -type bridgeHook struct { - msgBytes []byte - err error -} - -func (h *bridgeHook) Hook(ctx context.Context, sender sdk.AccAddress, msgBytes []byte) error { - if h.err == nil { - h.msgBytes = msgBytes +func generateTestTx( + t *testing.T, input TestKeepers, msgs []sdk.Msg, + privs []cryptotypes.PrivKey, accNums []uint64, + accSeqs []uint64, chainID string, +) authsign.Tx { + txConfig := input.EncodingConfig.TxConfig + txBuilder := txConfig.NewTxBuilder() + + defaultSignMode, err := authsign.APISignModeToInternal(txConfig.SignModeHandler().DefaultMode()) + require.NoError(t, err) + + // set msgs + txBuilder.SetMsgs(msgs...) + + // First round: we gather all the signer infos. We use the "set empty + // signature" hack to do that. + var sigsV2 []signing.SignatureV2 + for i, priv := range privs { + sigV2 := signing.SignatureV2{ + PubKey: priv.PubKey(), + Data: &signing.SingleSignatureData{ + SignMode: defaultSignMode, + Signature: nil, + }, + Sequence: accSeqs[i], + } + + sigsV2 = append(sigsV2, sigV2) + } + err = txBuilder.SetSignatures(sigsV2...) + require.NoError(t, err) + + // Second round: all signer infos are set, so each signer can sign. + sigsV2 = []signing.SignatureV2{} + for i, priv := range privs { + signerData := authsign.SignerData{ + Address: sdk.AccAddress(priv.PubKey().Address()).String(), + ChainID: chainID, + AccountNumber: accNums[i], + Sequence: accSeqs[i], + PubKey: priv.PubKey(), + } + sigV2, err := tx.SignWithPrivKey( + context.TODO(), defaultSignMode, signerData, + txBuilder, priv, txConfig, accSeqs[i]) + require.NoError(t, err) + + sigsV2 = append(sigsV2, sigV2) } + err = txBuilder.SetSignatures(sigsV2...) + require.NoError(t, err) - return h.err + return txBuilder.GetTx() } diff --git a/x/opchild/keeper/deposit.go b/x/opchild/keeper/deposit.go new file mode 100644 index 00000000..077a6361 --- /dev/null +++ b/x/opchild/keeper/deposit.go @@ -0,0 +1,99 @@ +package keeper + +import ( + "context" + "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/initia-labs/OPinit/x/opchild/types" +) + +func (k Keeper) HandleBridgeHook(ctx sdk.Context, sender sdk.AccAddress, data []byte) (success bool, reason string) { + defer func() { + if r := recover(); r != nil { + reason = fmt.Sprintf("panic: %v", r) + } + + const maxReasonLength = 128 + if len(reason) > maxReasonLength { + reason = reason[:maxReasonLength] + "..." + } + }() + + tx, err := k.txDecoder(data) + if err != nil { + reason = fmt.Sprintf("Failed to decode tx: %s", err) + return + } + + ctx, err = k.decorators(ctx, tx, false) + if err != nil { + reason = fmt.Sprintf("Failed to run AnteHandler: %s", err) + return + } + + cacheCtx, commit := ctx.CacheContext() + for _, msg := range tx.GetMsgs() { + handler := k.router.Handler(msg) + if handler == nil { + reason = fmt.Sprintf("Unrecognized Msg type: %s", sdk.MsgTypeURL(msg)) + return + } + + _, err = handler(cacheCtx, msg) + if err != nil { + reason = fmt.Sprintf("Failed to execute Msg: %s", err) + return + } + } + + commit() + success = true + + return +} + +// safeDepositToken mint and send coins to the recipient. Rollback all state changes +// if the deposit is failed. +func (ms MsgServer) safeDepositToken(ctx context.Context, toAddr sdk.AccAddress, coins sdk.Coins) (success bool, reason string) { + // if coin is zero, just create an account + if coins.IsZero() { + newAcc := ms.authKeeper.NewAccountWithAddress(ctx, toAddr) + ms.authKeeper.SetAccount(ctx, newAcc) + return true, "" + } + + var err error + defer func() { + if r := recover(); r != nil { + reason = fmt.Sprintf("panic: %v", r) + } + + const maxReasonLength = 128 + if len(reason) > maxReasonLength { + reason = reason[:maxReasonLength] + "..." + } + }() + + // use cache context to avoid relaying failure + sdkCtx := sdk.UnwrapSDKContext(ctx) + cacheCtx, commit := sdkCtx.CacheContext() + + // mint coins to the module account + if err = ms.bankKeeper.MintCoins(cacheCtx, types.ModuleName, coins); err != nil { + reason = fmt.Sprintf("failed to mint coins: %s", err) + return + } + + // transfer can be failed due to contract logics + if err = ms.bankKeeper.SendCoinsFromModuleToAccount(cacheCtx, types.ModuleName, toAddr, coins); err != nil { + reason = fmt.Sprintf("failed to send coins: %s", err) + return + } + + // write the changes only if the transfer is successful + commit() + success = true + + return +} diff --git a/x/opchild/keeper/genesis.go b/x/opchild/keeper/genesis.go index 31e55a4f..06a0041b 100644 --- a/x/opchild/keeper/genesis.go +++ b/x/opchild/keeper/genesis.go @@ -89,21 +89,6 @@ func (k Keeper) InitGenesis(ctx context.Context, data *types.GenesisState) (res } } - for _, pd := range data.PendingDeposits { - addr, err := k.addressCodec.StringToBytes(pd.Recipient) - if err != nil { - panic(err) - } - - if err := pd.Coins.Validate(); err != nil { - panic(err) - } - - if err := k.PendingDeposits.Set(ctx, addr, types.CoinsWrapper{Coins: pd.Coins}); err != nil { - panic(err) - } - } - return res } @@ -152,23 +137,6 @@ func (k Keeper) ExportGenesis(ctx context.Context) *types.GenesisState { bridgeInfo = &bridgeInfo_ } - pendingDeposits := []types.PendingDeposits{} - err = k.PendingDeposits.Walk(ctx, nil, func(key []byte, value types.CoinsWrapper) (stop bool, err error) { - addr, err := k.addressCodec.BytesToString(key) - if err != nil { - return false, err - } - - pendingDeposits = append(pendingDeposits, types.PendingDeposits{ - Recipient: addr, - Coins: value.Coins, - }) - return false, nil - }) - if err != nil { - panic(err) - } - return &types.GenesisState{ Params: params, LastValidatorPowers: lastValidatorPowers, @@ -177,6 +145,5 @@ func (k Keeper) ExportGenesis(ctx context.Context) *types.GenesisState { NextL1Sequence: finalizedL1Sequence, NextL2Sequence: nextL2Sequence, BridgeInfo: bridgeInfo, - PendingDeposits: pendingDeposits, } } diff --git a/x/opchild/keeper/genesis_test.go b/x/opchild/keeper/genesis_test.go index 4ecd5cff..348af68f 100644 --- a/x/opchild/keeper/genesis_test.go +++ b/x/opchild/keeper/genesis_test.go @@ -6,8 +6,6 @@ import ( "github.com/stretchr/testify/require" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/initia-labs/OPinit/x/opchild/types" ophosttypes "github.com/initia-labs/OPinit/x/ophost/types" ) @@ -49,11 +47,6 @@ func Test_GenesisImportExport(t *testing.T) { }, } - genState.PendingDeposits = append( - genState.PendingDeposits, - types.PendingDeposits{Recipient: addrsStr[0], Coins: sdk.NewCoins(sdk.NewInt64Coin("eth", 100))}, - ) - input.OPChildKeeper.InitGenesis(ctx, genState) genState_ := input.OPChildKeeper.ExportGenesis(ctx) require.Equal(t, genState, genState_) diff --git a/x/opchild/keeper/keeper.go b/x/opchild/keeper/keeper.go index a2cb8eb5..95c6b0cd 100644 --- a/x/opchild/keeper/keeper.go +++ b/x/opchild/keeper/keeper.go @@ -14,7 +14,6 @@ import ( cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" "github.com/cosmos/cosmos-sdk/baseapp" - "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" @@ -31,10 +30,11 @@ type Keeper struct { authKeeper types.AccountKeeper bankKeeper types.BankKeeper - bridgeHook types.BridgeHook - // Msg server router - router *baseapp.MsgServiceRouter + // sig verify and sequence increment decorators + decorators sdk.AnteHandler + txDecoder sdk.TxDecoder + router *baseapp.MsgServiceRouter // the address capable of executing a MsgUpdateParams message. Typically, this // should be the x/opchild module account. @@ -54,7 +54,6 @@ type Keeper struct { ValidatorsByConsAddr collections.Map[[]byte, []byte] HistoricalInfos collections.Map[int64, cosmostypes.HistoricalInfo] DenomPairs collections.Map[string, string] - PendingDeposits collections.Map[[]byte, types.CoinsWrapper] Commitments collections.Map[uint64, []byte] CommitmentTimes collections.Map[uint64, time.Time] @@ -62,10 +61,6 @@ type Keeper struct { l2OracleHandler *L2OracleHandler HostValidatorStore *HostValidatorStore - - // for querier - clientCtx *client.Context - baseAppQuerier types.BaseAppQuerier } func NewKeeper( @@ -73,10 +68,20 @@ func NewKeeper( storeService corestoretypes.KVStoreService, ak types.AccountKeeper, bk types.BankKeeper, - bh types.BridgeHook, ok types.OracleKeeper, + /* + Should provide the following decorators + sdk.ChainAnteDecorators( + authante.NewSetPubKeyDecorator(accountKeeper), + authante.NewValidateSigCountDecorator(accountKeeper), + authante.NewSigGasConsumeDecorator(accountKeeper, authante.DefaultSigVerificationGasConsumer), + authante.NewSigVerificationDecorator(accountKeeper, signModeHandler), + authante.NewIncrementSequenceDecorator(accountKeeper), + ), + */ + decorators sdk.AnteHandler, + txDecoder sdk.TxDecoder, router *baseapp.MsgServiceRouter, - querier types.BaseAppQuerier, authority string, addressCodec address.Codec, validatorAddressCodec address.Codec, @@ -105,7 +110,8 @@ func NewKeeper( storeService: storeService, authKeeper: ak, bankKeeper: bk, - bridgeHook: bh, + decorators: decorators, + txDecoder: txDecoder, router: router, authority: authority, addressCodec: addressCodec, @@ -119,16 +125,12 @@ func NewKeeper( Validators: collections.NewMap(sb, types.ValidatorsPrefix, "validators", collections.BytesKey, codec.CollValue[types.Validator](cdc)), ValidatorsByConsAddr: collections.NewMap(sb, types.ValidatorsByConsAddrPrefix, "validators_by_cons_addr", collections.BytesKey, collections.BytesValue), DenomPairs: collections.NewMap(sb, types.DenomPairPrefix, "denom_pairs", collections.StringKey, collections.StringValue), - PendingDeposits: collections.NewMap(sb, types.PendingDepositsKey, "pending_deposits", collections.BytesKey, codec.CollValue[types.CoinsWrapper](cdc)), HistoricalInfos: collections.NewMap(sb, types.HistoricalInfoPrefix, "historical_infos", collections.Int64Key, codec.CollValue[cosmostypes.HistoricalInfo](cdc)), Commitments: collections.NewMap(sb, types.CommitmentPrefix, "commitments", collections.Uint64Key, collections.BytesValue), CommitmentTimes: collections.NewMap(sb, types.CommitmentTimePrefix, "commitment_times", collections.Uint64Key, collcodec.KeyToValueCodec(sdk.TimeKey)), ExecutorChangePlans: make(map[uint64]types.ExecutorChangePlan), HostValidatorStore: hostValidatorStore, - - // for querier - baseAppQuerier: querier, } schema, err := sb.Build() @@ -141,10 +143,6 @@ func NewKeeper( return k } -func (k *Keeper) SetClientContext(ctx *client.Context) { - k.clientCtx = ctx -} - // GetAuthority returns the x/move module's authority. func (k Keeper) GetAuthority() string { return k.authority diff --git a/x/opchild/keeper/keeper_test.go b/x/opchild/keeper/keeper_test.go deleted file mode 100644 index a821f5cc..00000000 --- a/x/opchild/keeper/keeper_test.go +++ /dev/null @@ -1,28 +0,0 @@ -package keeper_test - -import ( - "testing" - - "cosmossdk.io/collections" - "github.com/stretchr/testify/require" - - "github.com/initia-labs/OPinit/x/opchild/types" -) - -func Test_WithdrawalCommitmentKey(t *testing.T) { - ctx, input := createDefaultTestInput(t) - - sequence := uint64(1) - err := input.OPChildKeeper.Commitments.Set( - ctx, - sequence, - []byte{1, 2, 3, 4}, - ) - require.NoError(t, err) - - bz, err := input.OPChildKeeper.StoreService().OpenKVStore(ctx).Get(types.WithdrawalCommitmentKey(sequence)) - require.NoError(t, err) - ret, err := collections.BytesValue.Decode(bz) - require.NoError(t, err) - require.Equal(t, []byte{1, 2, 3, 4}, ret) -} diff --git a/x/opchild/keeper/msg_server.go b/x/opchild/keeper/msg_server.go index f0a90057..363112d6 100644 --- a/x/opchild/keeper/msg_server.go +++ b/x/opchild/keeper/msg_server.go @@ -3,12 +3,10 @@ package keeper import ( "bytes" "context" - "errors" + "fmt" "strconv" - "cosmossdk.io/collections" errorsmod "cosmossdk.io/errors" - "cosmossdk.io/math" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -391,30 +389,19 @@ func (ms MsgServer) FinalizeTokenDeposit(ctx context.Context, req *types.MsgFina return nil, types.ErrInvalidSequence } - coins := sdk.NewCoins(coin) - if err := ms.bankKeeper.MintCoins(ctx, types.ModuleName, coins); err != nil { - return nil, err - } - - // handle hook - if the recipient is "hook" - executeHook := len(req.Data) > 0 && req.To == "hook" - - var toAddr sdk.AccAddress - if executeHook { - // intermediate address - toAddr = types.DeriveIntermediateSender(req.From) - } else { - toAddr, err = ms.authKeeper.AddressCodec().StringToBytes(req.To) - if err != nil { - return nil, err - } - } - - success, err := ms.safeDepositToken(ctx, toAddr, coins) + // deposit token + var success bool + var reason string + toAddr, err := ms.authKeeper.AddressCodec().StringToBytes(req.To) if err != nil { - return nil, err + success = false + reason = fmt.Sprintf("failed to convert recipient address: %s", err) + } else { + // rollback if the deposit is failed + success, reason = ms.safeDepositToken(ctx, toAddr, sdk.NewCoins(coin)) } + // updae l1 sequence if _, err := ms.IncreaseNextL1Sequence(ctx); err != nil { return nil, err } @@ -442,57 +429,34 @@ func (ms MsgServer) FinalizeTokenDeposit(ctx context.Context, req *types.MsgFina sdk.NewAttribute(types.AttributeKeyBaseDenom, req.BaseDenom), sdk.NewAttribute(types.AttributeKeyAmount, coin.Amount.String()), sdk.NewAttribute(types.AttributeKeyFinalizeHeight, strconv.FormatUint(req.Height, 10)), + sdk.NewAttribute(types.AttributeKeySuccess, strconv.FormatBool(success)), + sdk.NewAttribute(types.AttributeKeyReason, reason), ) - if success && executeHook { - cacheCtx, commit := sdkCtx.CacheContext() - - // in this case, the recipient is "hook" and the toAddr is the intermediate address - if err := ms.bridgeHook(cacheCtx, toAddr, req.Data); err == nil { - commit() - } - - event = event.AppendAttributes(sdk.NewAttribute(types.AttributeKeyHookSuccess, strconv.FormatBool(err == nil))) + // if the deposit is successful and the data is not empty, execute the hook + if success && len(req.Data) > 0 { + success, reason := ms.HandleBridgeHook(sdkCtx, toAddr, req.Data) + event = event.AppendAttributes(sdk.NewAttribute(types.AttributeKeyHookSuccess, strconv.FormatBool(success))) + event = event.AppendAttributes(sdk.NewAttribute(types.AttributeKeyHookReason, reason)) } + // emit deposit event sdkCtx.EventManager().EmitEvent(event) - return &types.MsgFinalizeTokenDepositResponse{Result: types.SUCCESS}, nil -} - -// safeDepositToken deposits the token to the recipient address -// - if the deposit is failed, it records the pending deposit -// - if the deposit is successful, it returns true and writes the changes -func (ms MsgServer) safeDepositToken(ctx context.Context, toAddr sdk.AccAddress, coins sdk.Coins) (success bool, err error) { - // use cache context to avoid relaying failure - sdkCtx := sdk.UnwrapSDKContext(ctx) - cacheCtx, commit := sdkCtx.CacheContext() - // transfer can be failed due to contract logics - if err = ms.bankKeeper.SendCoinsFromModuleToAccount(cacheCtx, types.ModuleName, toAddr, coins); err != nil { - ms.Logger(ctx).Error("failed to finalize token deposit", "error", err) - - // records pending deposits - pendingDeposits, err := ms.PendingDeposits.Get(ctx, toAddr) - if err != nil && errors.Is(err, collections.ErrNotFound) { - pendingDeposits = types.CoinsWrapper{ - Coins: sdk.NewCoins(), - } - } else if err != nil { - return false, err + // if the deposit is failed, initate a withdrawal + if !success { + l2Sequence, err := ms.IncreaseNextL2Sequence(ctx) + if err != nil { + return nil, err } - pendingDeposits.Coins = pendingDeposits.Coins.Add(coins...) - if err := ms.PendingDeposits.Set(ctx, toAddr, pendingDeposits); err != nil { - return false, err + err = ms.emitWithdrawEvents(ctx, types.NewMsgInitiateTokenWithdrawal(req.To, req.From, coin), l2Sequence) + if err != nil { + return nil, err } - - return false, nil } - // write the changes only if the transfer is successful - commit() - - return true, nil + return &types.MsgFinalizeTokenDepositResponse{Result: types.SUCCESS}, nil } ///////////////////////////////////////////////////// @@ -507,51 +471,11 @@ func (ms MsgServer) InitiateTokenWithdrawal(ctx context.Context, req *types.MsgI coin := req.Amount burnCoins := sdk.NewCoins(coin) - baseDenom, err := ms.GetBaseDenom(ctx, coin.Denom) - if err != nil { - return nil, err - } - senderAddr, err := ms.authKeeper.AddressCodec().StringToBytes(req.Sender) if err != nil { return nil, err } - // check pending deposits and withdraw from them if necessary - pendingDeposits, err := ms.PendingDeposits.Get(ctx, senderAddr) - if err == nil { - pendingAmount := pendingDeposits.Coins.AmountOf(coin.Denom) - if pendingAmount.IsPositive() { - var pendingWithdrawAmount math.Int - if coin.Amount.GT(pendingAmount) { - pendingWithdrawAmount = pendingAmount - } else { - pendingWithdrawAmount = coin.Amount - } - - // withdraw from the pending deposits - withdrawnCoinFromPendingDeposits := sdk.NewCoin(coin.Denom, pendingWithdrawAmount) - coin = coin.Sub(withdrawnCoinFromPendingDeposits) - - // update pending deposits - pendingDeposits.Coins = pendingDeposits.Coins.Sub(withdrawnCoinFromPendingDeposits) - if pendingDeposits.Coins.IsZero() { - if err := ms.PendingDeposits.Remove(ctx, senderAddr); err != nil { - return nil, err - } - } else { - if err := ms.PendingDeposits.Set(ctx, senderAddr, pendingDeposits); err != nil { - return nil, err - } - } - } - } - - l2Sequence, err := ms.IncreaseNextL2Sequence(ctx) - if err != nil { - return nil, err - } - // send coins to the module account only if the amount is positive // - pending deposits are already accounted for if coin.IsPositive() { @@ -565,6 +489,28 @@ func (ms MsgServer) InitiateTokenWithdrawal(ctx context.Context, req *types.MsgI return nil, err } + l2Sequence, err := ms.IncreaseNextL2Sequence(ctx) + if err != nil { + return nil, err + } + + err = ms.emitWithdrawEvents(ctx, req, l2Sequence) + if err != nil { + return nil, err + } + + return &types.MsgInitiateTokenWithdrawalResponse{ + Sequence: l2Sequence, + }, nil +} + +func (ms MsgServer) emitWithdrawEvents(ctx context.Context, req *types.MsgInitiateTokenWithdrawal, l2Sequence uint64) error { + coin := req.Amount + baseDenom, err := ms.GetBaseDenom(ctx, coin.Denom) + if err != nil { + return err + } + sdkCtx := sdk.UnwrapSDKContext(ctx) sdkCtx.EventManager().EmitEvent(sdk.NewEvent( types.EventTypeInitiateTokenWithdrawal, @@ -576,18 +522,7 @@ func (ms MsgServer) InitiateTokenWithdrawal(ctx context.Context, req *types.MsgI sdk.NewAttribute(types.AttributeKeyL2Sequence, strconv.FormatUint(l2Sequence, 10)), )) - // record withdrawal commitment - err = ms.SetWithdrawalCommitment(ctx, l2Sequence, types.WithdrawalCommitment{ - Commitment: types.CommitWithdrawal(l2Sequence, req.To, sdk.NewCoin(baseDenom, coin.Amount)), - SubmitTime: sdkCtx.BlockTime().UTC(), - }) - if err != nil { - return nil, err - } - - return &types.MsgInitiateTokenWithdrawalResponse{ - Sequence: l2Sequence, - }, nil + return nil } func (ms MsgServer) UpdateOracle(ctx context.Context, req *types.MsgUpdateOracle) (*types.MsgUpdateOracleResponse, error) { diff --git a/x/opchild/keeper/msg_server_test.go b/x/opchild/keeper/msg_server_test.go index e5c268ab..7464d336 100644 --- a/x/opchild/keeper/msg_server_test.go +++ b/x/opchild/keeper/msg_server_test.go @@ -3,17 +3,17 @@ package keeper_test import ( "bytes" "encoding/hex" - "encoding/json" - "errors" "math/big" "slices" "testing" "time" "cosmossdk.io/math" + cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" testutilsims "github.com/cosmos/cosmos-sdk/testutil/sims" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" protoio "github.com/cosmos/gogoproto/io" "github.com/cosmos/gogoproto/proto" @@ -322,14 +322,8 @@ func Test_MsgServer_Withdraw(t *testing.T) { // valid msg = types.NewMsgInitiateTokenWithdrawal(accountAddr, addrsStr[1], sdk.NewCoin(denom, math.NewInt(100))) - res, err := ms.InitiateTokenWithdrawal(ctx, msg) - require.NoError(t, err) - - sdkCtx := sdk.UnwrapSDKContext(ctx) - wc, err := input.OPChildKeeper.GetWithdrawalCommitment(sdkCtx, uint64(1)) + _, err = ms.InitiateTokenWithdrawal(ctx, msg) require.NoError(t, err) - require.Equal(t, types.CommitWithdrawal(res.Sequence, addrsStr[1], sdk.NewInt64Coin("test/token", 100)), wc.Commitment) - require.Equal(t, sdkCtx.BlockTime(), wc.SubmitTime) } ///////////////////////////////////////// @@ -423,12 +417,20 @@ func Test_MsgServer_Deposit_ToModuleAccount(t *testing.T) { require.Equal(t, math.ZeroInt(), afterToBalance.Amount) afterModuleBalance := input.BankKeeper.GetBalance(ctx, opchildModuleAddress, denom) - require.Equal(t, math.NewInt(100), afterModuleBalance.Amount) - - // pending deposits - deposits, err := input.OPChildKeeper.PendingDeposits.Get(ctx, opchildModuleAddress) - require.NoError(t, err) - require.Equal(t, deposits.Coins[0].Amount, math.NewInt(100)) + require.True(t, afterModuleBalance.Amount.IsZero()) + + // token withdrawal inititated + events := sdk.UnwrapSDKContext(ctx).EventManager().Events() + lastEvent := events[len(events)-1] + require.Equal(t, sdk.NewEvent( + types.EventTypeInitiateTokenWithdrawal, + sdk.NewAttribute(types.AttributeKeyFrom, opchildModuleAddress.String()), + sdk.NewAttribute(types.AttributeKeyTo, addrsStr[1]), + sdk.NewAttribute(types.AttributeKeyDenom, denom), + sdk.NewAttribute(types.AttributeKeyBaseDenom, "test_token"), + sdk.NewAttribute(types.AttributeKeyAmount, "100"), + sdk.NewAttribute(types.AttributeKeyL2Sequence, "1"), + ), lastEvent) } func Test_MsgServer_Deposit_NoHook(t *testing.T) { @@ -464,17 +466,28 @@ func Test_MsgServer_Deposit_HookSuccess(t *testing.T) { require.Equal(t, math.ZeroInt(), input.BankKeeper.GetBalance(ctx, addrs[1], denom).Amount) - hookMsgBytes, err := json.Marshal("message bytes") + // empty deposit to create account + priv, _, addr := keyPubAddr() + msg := types.NewMsgFinalizeTokenDeposit(addrsStr[0], addrsStr[1], addr.String(), sdk.NewCoin(denom, math.ZeroInt()), 1, 1, "test_token", nil) + _, err := ms.FinalizeTokenDeposit(ctx, msg) require.NoError(t, err) - input.BridgeHook.msgBytes = hookMsgBytes - input.BridgeHook.err = nil + // create hook data + acc := input.AccountKeeper.GetAccount(ctx, addr) + require.NotNil(t, acc) + privs, accNums, accSeqs := []cryptotypes.PrivKey{priv}, []uint64{acc.GetAccountNumber()}, []uint64{0} + signedTxBz, err := input.EncodingConfig.TxConfig.TxEncoder()(generateTestTx( + t, input, + []sdk.Msg{banktypes.NewMsgSend(addr, addrs[2], sdk.NewCoins(sdk.NewCoin(denom, math.NewInt(50))))}, // send half tokens to addrs[2] + privs, accNums, accSeqs, sdk.UnwrapSDKContext(ctx).ChainID(), + )) + require.NoError(t, err) // valid deposit - msg := types.NewMsgFinalizeTokenDeposit(addrsStr[0], addrsStr[1], "hook", sdk.NewCoin(denom, math.NewInt(100)), 1, 1, "test_token", hookMsgBytes) + ctx = sdk.UnwrapSDKContext(ctx).WithEventManager(sdk.NewEventManager()) + msg = types.NewMsgFinalizeTokenDeposit(addrsStr[0], addrsStr[1], addr.String(), sdk.NewCoin(denom, math.NewInt(100)), 2, 1, "test_token", signedTxBz) _, err = ms.FinalizeTokenDeposit(ctx, msg) require.NoError(t, err) - require.Equal(t, hookMsgBytes, input.BridgeHook.msgBytes) for _, event := range sdk.UnwrapSDKContext(ctx).EventManager().Events() { if event.Type == types.EventTypeFinalizeTokenDeposit { @@ -482,10 +495,9 @@ func Test_MsgServer_Deposit_HookSuccess(t *testing.T) { } } - // intermediate sender balance - intermediateSender := types.DeriveIntermediateSender(addrsStr[1]) - afterBalance := input.BankKeeper.GetBalance(ctx, intermediateSender, denom) - require.Equal(t, math.NewInt(100), afterBalance.Amount) + // check addrs[2] balance + afterBalance := input.BankKeeper.GetBalance(ctx, addrs[2], denom) + require.Equal(t, math.NewInt(50), afterBalance.Amount) } func Test_MsgServer_Deposit_HookFail(t *testing.T) { @@ -495,24 +507,40 @@ func Test_MsgServer_Deposit_HookFail(t *testing.T) { bz := sha3.Sum256([]byte("test_token")) denom := "l2/" + hex.EncodeToString(bz[:]) - input.BridgeHook.err = errors.New("should be failed") + require.Equal(t, math.ZeroInt(), input.BankKeeper.GetBalance(ctx, addrs[1], denom).Amount) - // valid deposit - msg := types.NewMsgFinalizeTokenDeposit(addrsStr[0], addrsStr[1], addrsStr[1], sdk.NewCoin(denom, math.NewInt(100)), 1, 1, "test_token", []byte("invalid_message")) + // empty deposit to create account + priv, _, addr := keyPubAddr() + msg := types.NewMsgFinalizeTokenDeposit(addrsStr[0], addrsStr[1], addr.String(), sdk.NewCoin(denom, math.ZeroInt()), 1, 1, "test_token", nil) _, err := ms.FinalizeTokenDeposit(ctx, msg) require.NoError(t, err) - require.Empty(t, input.BridgeHook.msgBytes) + + // create hook data + acc := input.AccountKeeper.GetAccount(ctx, addr) + require.NotNil(t, acc) + privs, accNums, accSeqs := []cryptotypes.PrivKey{priv}, []uint64{acc.GetAccountNumber()}, []uint64{0} + signedTxBz, err := input.EncodingConfig.TxConfig.TxEncoder()(generateTestTx( + t, input, + []sdk.Msg{banktypes.NewMsgSend(addr, addrs[2], sdk.NewCoins(sdk.NewCoin(denom, math.NewInt(101))))}, // send more than deposited tokens + privs, accNums, accSeqs, sdk.UnwrapSDKContext(ctx).ChainID(), + )) + require.NoError(t, err) + + // valid deposit + ctx = sdk.UnwrapSDKContext(ctx).WithEventManager(sdk.NewEventManager()) + msg = types.NewMsgFinalizeTokenDeposit(addrsStr[0], addrsStr[1], addr.String(), sdk.NewCoin(denom, math.NewInt(100)), 2, 1, "test_token", signedTxBz) + _, err = ms.FinalizeTokenDeposit(ctx, msg) + require.NoError(t, err) for _, event := range sdk.UnwrapSDKContext(ctx).EventManager().Events() { if event.Type == types.EventTypeFinalizeTokenDeposit { - for _, attr := range event.Attributes { - if attr.Key == types.AttributeKeyHookSuccess { - require.Equal(t, "false", attr.Value) - } - } + require.True(t, slices.Contains(event.Attributes, sdk.NewAttribute(types.AttributeKeyHookSuccess, "false").ToKVPair())) } } + // check addrs[2] balance + afterBalance := input.BankKeeper.GetBalance(ctx, addrs[2], denom) + require.Equal(t, math.NewInt(0), afterBalance.Amount) } func Test_MsgServer_UpdateOracle(t *testing.T) { diff --git a/x/opchild/keeper/querier.go b/x/opchild/keeper/querier.go index 09c3b770..a283d7ad 100644 --- a/x/opchild/keeper/querier.go +++ b/x/opchild/keeper/querier.go @@ -6,7 +6,6 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/query" "github.com/initia-labs/OPinit/x/opchild/types" @@ -104,45 +103,3 @@ func (q Querier) BaseDenom(ctx context.Context, req *types.QueryBaseDenomRequest return &types.QueryBaseDenomResponse{BaseDenom: baseDenom}, nil } - -// ForceWithdrawalProofs returns the force withdrawal proofs. -// -// @dev: This query is not deterministic and should only be used for off-chain. -// @dev: The caller must use the height query to get the app hash and commitment proof at the specific height. -// The height should be the L2 block number contained in the output submitted to L1, and this height should be higher than the block where the withdrawal occurred. -func (q Querier) ForceWithdrawalProofs(ctx context.Context, req *types.QueryForceWithdrawalProofsRequest) (*types.QueryForceWithdrawalProofsResponse, error) { - if q.clientCtx == nil { - return nil, status.Error(codes.Internal, "client context is not set") - } - - sdkCtx := sdk.UnwrapSDKContext(ctx) - height := sdkCtx.BlockHeight() - appHash, appHashProof, err := types.QueryAppHashWithProof(q.clientCtx, height) - if err != nil { - return nil, status.Error(codes.Internal, err.Error()) - } - - sequence := req.Sequence - if ok, err := q.Commitments.Has(ctx, sequence); err != nil { - return nil, status.Error(codes.Internal, err.Error()) - } else if !ok { - return nil, status.Errorf(codes.NotFound, "withdrawal commitment %d not found at height %d", sequence, height) - } - - commitmentProof, err := types.QueryCommitmentProof( - q.baseAppQuerier, - // we should compute the `height-1` here because the app hash of a block is - // the one that is committed in the previous block. - height-1, - types.WithdrawalCommitmentKey(sequence), - ) - if err != nil { - return nil, status.Error(codes.Internal, err.Error()) - } - - return &types.QueryForceWithdrawalProofsResponse{ - CommitmentProof: *commitmentProof, - AppHashProof: *appHashProof, - AppHash: appHash, - }, nil -} diff --git a/x/opchild/module.go b/x/opchild/module.go index b4285f16..5ed2e187 100644 --- a/x/opchild/module.go +++ b/x/opchild/module.go @@ -40,7 +40,6 @@ var ( // AppModuleBasic defines the basic application module used by the opchild module. type AppModuleBasic struct { cdc codec.Codec - k *keeper.Keeper } func (b AppModuleBasic) RegisterLegacyAminoCodec(amino *codec.LegacyAmino) { @@ -48,9 +47,6 @@ func (b AppModuleBasic) RegisterLegacyAminoCodec(amino *codec.LegacyAmino) { } func (b AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, serveMux *runtime.ServeMux) { - // for commitment queries - b.k.SetClientContext(&clientCtx) - err := types.RegisterQueryHandlerClient(context.Background(), serveMux, types.NewQueryClient(clientCtx)) if err != nil { panic(err) @@ -113,7 +109,7 @@ func NewAppModule( k *keeper.Keeper, ) AppModule { return AppModule{ - AppModuleBasic: AppModuleBasic{cdc, k}, + AppModuleBasic: AppModuleBasic{cdc}, keeper: k, } } diff --git a/x/opchild/types/client.go b/x/opchild/types/client.go deleted file mode 100644 index 4ec83816..00000000 --- a/x/opchild/types/client.go +++ /dev/null @@ -1,46 +0,0 @@ -package types - -import ( - "context" - "fmt" - - abci "github.com/cometbft/cometbft/abci/types" - v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" - - "github.com/cosmos/cosmos-sdk/client" -) - -type BaseAppQuerier func(_ context.Context, req *abci.RequestQuery) (resp *abci.ResponseQuery, err error) - -func QueryCommitmentProof(baseAppQuerier BaseAppQuerier, height int64, commitmentKey []byte) (*v1.ProofOps, error) { - res, err := baseAppQuerier(context.Background(), &abci.RequestQuery{ - Path: fmt.Sprintf("/store/%s/key", StoreKey), - Data: commitmentKey, - Height: height, - Prove: true, - }) - if err != nil { - return nil, err - } - - return NewProtoFromProofOps(res.ProofOps), nil -} - -func QueryAppHashWithProof(clientCtx *client.Context, height int64) ([]byte, *v1.Proof, error) { - if clientCtx == nil { - return nil, nil, fmt.Errorf("clientCtx cannot be nil") - } - - node, err := clientCtx.GetNode() - if err != nil { - return nil, nil, err - } - - block, err := node.Block(context.Background(), &height) - if err != nil { - return nil, nil, err - } - - appHashProof := NewAppHashProof(&block.Block.Header) - return block.Block.Header.AppHash, appHashProof, nil -} diff --git a/x/opchild/types/commitments.go b/x/opchild/types/commitments.go deleted file mode 100644 index 7f9492fe..00000000 --- a/x/opchild/types/commitments.go +++ /dev/null @@ -1,56 +0,0 @@ -package types - -import ( - "crypto/sha256" - "encoding/binary" - "encoding/hex" - "fmt" - - "cosmossdk.io/collections" - "cosmossdk.io/store/rootmulti" - v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" - "github.com/cometbft/cometbft/libs/bytes" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -// the state key for withdrawal commitment -func WithdrawalCommitmentKey(sequence uint64) []byte { - prefixLen := len(CommitmentPrefix) - buf := make([]byte, prefixLen+8) - copy(buf, CommitmentPrefix) - _, err := collections.Uint64Key.Encode(buf[prefixLen:], sequence) - if err != nil { - panic(err) - } - - return buf -} - -// CommitWithdrawal returns the withdrwwal commitment bytes. The commitment consists of: -// sha256_hash(receiver_address || l1_amount) -// from a given packet. This results in a fixed length preimage. -func CommitWithdrawal(sequence uint64, receiver string, amount sdk.Coin) []byte { - buf := make([]byte, 8) - binary.BigEndian.PutUint64(buf, sequence) - buf = append(buf, []byte(receiver)...) - buf = append(buf, amount.String()...) - hash := sha256.Sum256(buf) - return hash[:] -} - -func VerifyCommitment(appHash []byte, l2SequenceNumber uint64, receiver string, amount sdk.Coin, commitmentProof *v1.ProofOps) error { - key := WithdrawalCommitmentKey(l2SequenceNumber) - keyPath := fmt.Sprintf("/%s/x:%s", StoreKey, hex.EncodeToString(key)) - commitment := CommitWithdrawal(l2SequenceNumber, receiver, amount) - proofOps := NewProofOpsFromProto(commitmentProof) - return rootmulti.DefaultProofRuntime().VerifyValue(proofOps, appHash, keyPath, commitment) -} - -func VerifyAppHash(blockHash, appHash []byte, proof *v1.Proof) error { - mp, err := NewProofFromProto(proof) - if err != nil { - return err - } - - return mp.Verify(blockHash, cdcEncode(bytes.HexBytes(appHash))) -} diff --git a/x/opchild/types/commitments_test.go b/x/opchild/types/commitments_test.go deleted file mode 100644 index 784ea7d7..00000000 --- a/x/opchild/types/commitments_test.go +++ /dev/null @@ -1,114 +0,0 @@ -package types - -import ( - "crypto/rand" - "fmt" - "testing" - "time" - - "github.com/cometbft/cometbft/crypto/tmhash" - cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" - comettypes "github.com/cometbft/cometbft/types" - - "github.com/stretchr/testify/require" - - "cosmossdk.io/log" - "cosmossdk.io/store/iavl" - "cosmossdk.io/store/metrics" - "cosmossdk.io/store/rootmulti" - storetypes "cosmossdk.io/store/types" - dbm "github.com/cosmos/cosmos-db" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -func Test_VerifyCommitment(t *testing.T) { - db := dbm.NewMemDB() - store := rootmulti.NewStore(db, log.NewNopLogger(), metrics.NewNoOpMetrics()) - iavlStoreKey := storetypes.NewKVStoreKey(StoreKey) - - store.MountStoreWithDB(iavlStoreKey, storetypes.StoreTypeIAVL, nil) - require.NoError(t, store.LoadVersion(0)) - - sequence := uint64(10) - commitmentKey := WithdrawalCommitmentKey(sequence) - - recipient := "recipient" - amount := sdk.NewInt64Coin("uinit", 100) - commitment := CommitWithdrawal(sequence, recipient, amount) - - iavlStore := store.GetCommitStore(iavlStoreKey).(*iavl.Store) - iavlStore.Set(commitmentKey, commitment) - cid := store.Commit() - - // Get Proof - // same with curl https://rpc.initia.xyz/abci_query\?path\="\"store/opchild/key\""\&data=0xcommitmentkey\&prove=true - res, err := store.Query(&storetypes.RequestQuery{ - Path: fmt.Sprintf("/%s/key", StoreKey), // required path to get key/value+proof - Data: commitmentKey, - Prove: true, - }) - require.NoError(t, err) - require.NotNil(t, res.ProofOps) - - // Verify proof. - err = VerifyCommitment(cid.Hash, sequence, recipient, amount, NewProtoFromProofOps(res.ProofOps)) - require.Nil(t, err) -} - -func Test_VerifyAppHash(t *testing.T) { - block := makeRandBlock(t) - header := block.Header - appHashProof := NewAppHashProof(&header) - require.NotNil(t, appHashProof) - - err := VerifyAppHash(block.Hash(), header.AppHash, appHashProof) - require.NoError(t, err) -} - -func makeRandBlock(t *testing.T) *comettypes.Block { - txs := []comettypes.Tx{comettypes.Tx("foo"), comettypes.Tx("bar")} - lastID := makeBlockIDRandom() - h := int64(3) - voteSet, valSet, vals := randVoteSet(h-1, 1, cmtproto.PrecommitType, 10, 1, false) - extCommit, err := comettypes.MakeExtCommit(lastID, h-1, 1, voteSet, vals, time.Now(), false) - require.NoError(t, err) - - ev, err := comettypes.NewMockDuplicateVoteEvidenceWithValidator(h, time.Now(), vals[0], "block-test-chain") - require.NoError(t, err) - evList := []comettypes.Evidence{ev} - - block := comettypes.MakeBlock(h, txs, extCommit.ToCommit(), evList) - block.ValidatorsHash = valSet.Hash() - block.AppHash = tmhash.Sum([]byte("app_hash")) - - return block -} - -func makeBlockIDRandom() comettypes.BlockID { - var ( - blockHash = make([]byte, tmhash.Size) - partSetHash = make([]byte, tmhash.Size) - ) - rand.Read(blockHash) //nolint: errcheck // ignore errcheck for read - rand.Read(partSetHash) //nolint: errcheck // ignore errcheck for read - return comettypes.BlockID{Hash: blockHash, PartSetHeader: comettypes.PartSetHeader{Total: 123, Hash: partSetHash}} -} - -// NOTE: privValidators are in order -func randVoteSet( - height int64, - round int32, - signedMsgType cmtproto.SignedMsgType, - numValidators int, - votingPower int64, - extEnabled bool, -) (*comettypes.VoteSet, *comettypes.ValidatorSet, []comettypes.PrivValidator) { - valSet, privValidators := comettypes.RandValidatorSet(numValidators, votingPower) - if extEnabled { - if signedMsgType != cmtproto.PrecommitType { - return nil, nil, nil - } - return comettypes.NewExtendedVoteSet("test_chain_id", height, round, signedMsgType, valSet), valSet, privValidators - } - return comettypes.NewVoteSet("test_chain_id", height, round, signedMsgType, valSet), valSet, privValidators -} diff --git a/x/opchild/types/encoding_helper.go b/x/opchild/types/encoding_helper.go deleted file mode 100644 index 1ace99f8..00000000 --- a/x/opchild/types/encoding_helper.go +++ /dev/null @@ -1,75 +0,0 @@ -package types - -import ( - "reflect" - - gogotypes "github.com/cosmos/gogoproto/types" - - "github.com/cometbft/cometbft/libs/bytes" -) - -// cdcEncode returns nil if the input is nil, otherwise returns -// proto.Marshal(Value{Value: item}) -func cdcEncode(item interface{}) []byte { - if item != nil && !isTypedNil(item) && !isEmpty(item) { - switch item := item.(type) { - case string: - i := gogotypes.StringValue{ - Value: item, - } - bz, err := i.Marshal() - if err != nil { - return nil - } - return bz - case int64: - i := gogotypes.Int64Value{ - Value: item, - } - bz, err := i.Marshal() - if err != nil { - return nil - } - return bz - case bytes.HexBytes: - i := gogotypes.BytesValue{ - Value: item, - } - bz, err := i.Marshal() - if err != nil { - return nil - } - return bz - default: - return nil - } - } - - return nil -} - -// Go lacks a simple and safe way to see if something is a typed nil. -// See: -// - https://dave.cheney.net/2017/08/09/typed-nils-in-go-2 -// - https://groups.google.com/forum/#!topic/golang-nuts/wnH302gBa4I/discussion -// - https://github.com/golang/go/issues/21538 -func isTypedNil(o interface{}) bool { - rv := reflect.ValueOf(o) - switch rv.Kind() { - case reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.Slice: - return rv.IsNil() - default: - return false - } -} - -// Returns true if it has zero length. -func isEmpty(o interface{}) bool { - rv := reflect.ValueOf(o) - switch rv.Kind() { - case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice, reflect.String: - return rv.Len() == 0 - default: - return false - } -} diff --git a/x/opchild/types/events.go b/x/opchild/types/events.go index 8d7412b5..7729e058 100644 --- a/x/opchild/types/events.go +++ b/x/opchild/types/events.go @@ -20,6 +20,8 @@ const ( AttributeKeyRecipient = "recipient" AttributeKeyAmount = "amount" AttributeKeyDenom = "denom" + AttributeKeySuccess = "success" + AttributeKeyReason = "reason" AttributeKeyBaseDenom = "base_denom" AttributeKeyStructTag = "struct_tag" AttributeKeyValidator = "validator" @@ -27,6 +29,7 @@ const ( AttributeKeyL1Sequence = "l1_sequence" AttributeKeyFinalizeHeight = "finalize_height" AttributeKeyHookSuccess = "hook_success" + AttributeKeyHookReason = "hook_reason" AttributeKeyFrom = "from" AttributeKeyTo = "to" AttributeKeyL2Sequence = "l2_sequence" diff --git a/x/opchild/types/genesis.go b/x/opchild/types/genesis.go index 59a39b2c..1827aac7 100644 --- a/x/opchild/types/genesis.go +++ b/x/opchild/types/genesis.go @@ -19,7 +19,6 @@ func NewGenesisState(params Params, validators []Validator, bridgeInfo *BridgeIn return &GenesisState{ Params: params, LastValidatorPowers: []LastValidatorPower{}, - PendingDeposits: []PendingDeposits{}, Validators: validators, Exported: false, BridgeInfo: bridgeInfo, @@ -32,7 +31,6 @@ func DefaultGenesisState() *GenesisState { Params: DefaultParams(), LastValidatorPowers: []LastValidatorPower{}, Validators: []Validator{}, - PendingDeposits: []PendingDeposits{}, NextL1Sequence: DefaultL1SequenceStart, NextL2Sequence: DefaultL2SequenceStart, BridgeInfo: nil, diff --git a/x/opchild/types/genesis.pb.go b/x/opchild/types/genesis.pb.go index 56fa90d8..e8ec6f84 100644 --- a/x/opchild/types/genesis.pb.go +++ b/x/opchild/types/genesis.pb.go @@ -33,15 +33,11 @@ type GenesisState struct { // of the last-block's bonded validators. LastValidatorPowers []LastValidatorPower `protobuf:"bytes,2,rep,name=last_validator_powers,json=lastValidatorPowers,proto3" json:"last_validator_powers"` // delegations defines the validator set at genesis. - Validators []Validator `protobuf:"bytes,3,rep,name=validators,proto3" json:"validators"` - // the pending deposits that are not failed to be deposited. - PendingDeposits []PendingDeposits `protobuf:"bytes,4,rep,name=pending_deposits,json=pendingDeposits,proto3" json:"pending_deposits"` - // the withdrawal commitments for force withdrawal. - WithdrawalCommitments []WithdrawalCommitment `protobuf:"bytes,5,rep,name=withdrawal_commitments,json=withdrawalCommitments,proto3" json:"withdrawal_commitments"` - NextL2Sequence uint64 `protobuf:"varint,6,opt,name=next_l2_sequence,json=nextL2Sequence,proto3" json:"next_l2_sequence,omitempty"` - NextL1Sequence uint64 `protobuf:"varint,7,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` - BridgeInfo *BridgeInfo `protobuf:"bytes,8,opt,name=bridge_info,json=bridgeInfo,proto3" json:"bridge_info,omitempty"` - Exported bool `protobuf:"varint,9,opt,name=exported,proto3" json:"exported,omitempty"` + Validators []Validator `protobuf:"bytes,3,rep,name=validators,proto3" json:"validators"` + NextL2Sequence uint64 `protobuf:"varint,6,opt,name=next_l2_sequence,json=nextL2Sequence,proto3" json:"next_l2_sequence,omitempty"` + NextL1Sequence uint64 `protobuf:"varint,7,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` + BridgeInfo *BridgeInfo `protobuf:"bytes,8,opt,name=bridge_info,json=bridgeInfo,proto3" json:"bridge_info,omitempty"` + Exported bool `protobuf:"varint,9,opt,name=exported,proto3" json:"exported,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -98,20 +94,6 @@ func (m *GenesisState) GetValidators() []Validator { return nil } -func (m *GenesisState) GetPendingDeposits() []PendingDeposits { - if m != nil { - return m.PendingDeposits - } - return nil -} - -func (m *GenesisState) GetWithdrawalCommitments() []WithdrawalCommitment { - if m != nil { - return m.WithdrawalCommitments - } - return nil -} - func (m *GenesisState) GetNextL2Sequence() uint64 { if m != nil { return m.NextL2Sequence @@ -189,41 +171,36 @@ func init() { func init() { proto.RegisterFile("opinit/opchild/v1/genesis.proto", fileDescriptor_08c29689c0e7bd55) } var fileDescriptor_08c29689c0e7bd55 = []byte{ - // 535 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x93, 0x41, 0x8b, 0xd3, 0x40, - 0x14, 0xc7, 0x93, 0xdd, 0x6e, 0xb7, 0x9d, 0x8a, 0xee, 0x8e, 0x5d, 0xc9, 0x16, 0x37, 0x2d, 0x05, - 0x31, 0x08, 0x4d, 0x68, 0xbd, 0x89, 0x08, 0x56, 0xa1, 0x08, 0x0b, 0x96, 0x14, 0x54, 0xbc, 0x84, - 0x69, 0x32, 0x9b, 0x0e, 0x24, 0x33, 0x63, 0x66, 0xb6, 0xad, 0xdf, 0xc0, 0xa3, 0x1f, 0x61, 0x8f, - 0x1e, 0x3d, 0xf8, 0x21, 0xf6, 0xb8, 0x78, 0xf2, 0x24, 0xd2, 0x1e, 0xf4, 0xe8, 0x47, 0x90, 0x4e, - 0xb2, 0xd9, 0x48, 0x73, 0x09, 0xf3, 0xde, 0xfb, 0xfd, 0xff, 0xf3, 0x86, 0xbc, 0x07, 0xda, 0x8c, - 0x13, 0x4a, 0xa4, 0xc3, 0xb8, 0x3f, 0x23, 0x51, 0xe0, 0xcc, 0xfb, 0x4e, 0x88, 0x29, 0x16, 0x44, - 0xd8, 0x3c, 0x61, 0x92, 0xc1, 0xc3, 0x14, 0xb0, 0x33, 0xc0, 0x9e, 0xf7, 0x5b, 0x87, 0x28, 0x26, - 0x94, 0x39, 0xea, 0x9b, 0x52, 0xad, 0x63, 0x9f, 0x89, 0x98, 0x09, 0x4f, 0x45, 0x4e, 0x1a, 0x64, - 0xa5, 0x66, 0xc8, 0x42, 0x96, 0xe6, 0x37, 0xa7, 0x2c, 0x7b, 0xb2, 0x7d, 0xaf, 0xfc, 0xc8, 0x71, - 0x26, 0xea, 0xfe, 0xad, 0x80, 0x5b, 0xa3, 0xb4, 0x8f, 0x89, 0x44, 0x12, 0xc3, 0xa7, 0xa0, 0xca, - 0x51, 0x82, 0x62, 0x61, 0xe8, 0x1d, 0xdd, 0x6a, 0x0c, 0x8e, 0xed, 0xad, 0xbe, 0xec, 0xb1, 0x02, - 0x86, 0xf5, 0xcb, 0x9f, 0x6d, 0xed, 0xcb, 0xef, 0xaf, 0x8f, 0x74, 0x37, 0xd3, 0xc0, 0x00, 0x1c, - 0x45, 0x48, 0x48, 0x6f, 0x8e, 0x22, 0x12, 0x20, 0xc9, 0x12, 0x8f, 0xb3, 0x05, 0x4e, 0x84, 0xb1, - 0xd3, 0xd9, 0xb5, 0x1a, 0x83, 0x07, 0x25, 0x66, 0xa7, 0x48, 0xc8, 0x37, 0xd7, 0xf8, 0x78, 0x43, - 0x17, 0x8d, 0xef, 0x46, 0x5b, 0x65, 0x01, 0x47, 0x00, 0xe4, 0x17, 0x08, 0x63, 0x57, 0x59, 0xdf, - 0x2f, 0xb1, 0xce, 0x75, 0x45, 0xc7, 0x82, 0x14, 0xbe, 0x03, 0x07, 0x1c, 0xd3, 0x80, 0xd0, 0xd0, - 0x0b, 0x30, 0x67, 0x82, 0x48, 0x61, 0x54, 0x94, 0x5d, 0xb7, 0xec, 0xd9, 0x29, 0xfa, 0x32, 0x23, - 0x8b, 0xa6, 0x77, 0xf8, 0xff, 0x35, 0x48, 0xc0, 0xbd, 0x05, 0x91, 0xb3, 0x20, 0x41, 0x0b, 0x14, - 0x79, 0x3e, 0x8b, 0x63, 0x22, 0x63, 0x4c, 0xa5, 0x30, 0xf6, 0x94, 0xff, 0xc3, 0x12, 0xff, 0xb7, - 0xb9, 0xe0, 0x45, 0xce, 0x17, 0x2f, 0x39, 0x5a, 0x94, 0x00, 0x02, 0x5a, 0xe0, 0x80, 0xe2, 0xa5, - 0xf4, 0xa2, 0x81, 0x27, 0xf0, 0x87, 0x73, 0x4c, 0x7d, 0x6c, 0x54, 0x3b, 0xba, 0x55, 0x71, 0x6f, - 0x6f, 0xf2, 0xa7, 0x83, 0x49, 0x96, 0xbd, 0x21, 0xfb, 0x37, 0xe4, 0x7e, 0x81, 0xec, 0xe7, 0xe4, - 0x33, 0xd0, 0x98, 0x26, 0x24, 0x08, 0xb1, 0x47, 0xe8, 0x19, 0x33, 0x6a, 0x6a, 0x14, 0x4e, 0x4a, - 0x7a, 0x1e, 0x2a, 0xea, 0x15, 0x3d, 0x63, 0x2e, 0x98, 0xe6, 0x67, 0xd8, 0x02, 0x35, 0xbc, 0xe4, - 0x2c, 0x91, 0x38, 0x30, 0xea, 0x1d, 0xdd, 0xaa, 0xb9, 0x79, 0xdc, 0x9d, 0x01, 0xb8, 0xfd, 0xcf, - 0xe1, 0x00, 0xec, 0xa3, 0x20, 0x48, 0xb0, 0x48, 0x07, 0xaf, 0x3e, 0x34, 0xbe, 0x7f, 0xeb, 0x35, - 0xb3, 0x01, 0x7f, 0x9e, 0x56, 0x26, 0x32, 0x21, 0x34, 0x74, 0xaf, 0x41, 0xd8, 0x04, 0x7b, 0x6a, - 0xbc, 0x8c, 0x9d, 0x8e, 0x6e, 0xed, 0xba, 0x69, 0xf0, 0xa4, 0xf6, 0xe9, 0xa2, 0xad, 0xfd, 0xb9, - 0x68, 0x6b, 0xc3, 0xd1, 0xe5, 0xca, 0xd4, 0xaf, 0x56, 0xa6, 0xfe, 0x6b, 0x65, 0xea, 0x9f, 0xd7, - 0xa6, 0x76, 0xb5, 0x36, 0xb5, 0x1f, 0x6b, 0x53, 0x7b, 0xdf, 0x0b, 0x89, 0x9c, 0x9d, 0x4f, 0x6d, - 0x9f, 0xc5, 0xce, 0xe6, 0x49, 0x04, 0xf5, 0x22, 0x34, 0x15, 0xce, 0xeb, 0xb1, 0x5a, 0x96, 0x65, - 0xbe, 0x2e, 0x6a, 0x57, 0xa6, 0x55, 0xb5, 0x2c, 0x8f, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x56, - 0xf7, 0x12, 0xfb, 0xc5, 0x03, 0x00, 0x00, + // 464 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0x41, 0x8b, 0xd3, 0x40, + 0x14, 0xc7, 0x33, 0x5b, 0xed, 0xb6, 0x53, 0x11, 0x77, 0xac, 0x90, 0x2d, 0x6e, 0x1a, 0x16, 0x84, + 0x20, 0x34, 0xa1, 0xf1, 0x26, 0x22, 0xd8, 0x4b, 0x11, 0x16, 0x2c, 0x29, 0x78, 0xf0, 0x12, 0x26, + 0xcd, 0x6c, 0x3a, 0x90, 0xce, 0xc4, 0x99, 0xd9, 0x5a, 0xbf, 0x81, 0x47, 0x3f, 0xc2, 0x1e, 0x05, + 0x2f, 0x1e, 0xfc, 0x10, 0x7b, 0x5c, 0x3c, 0x79, 0x12, 0x69, 0x0f, 0xfa, 0x31, 0x96, 0xce, 0x64, + 0xb3, 0x85, 0xf4, 0x12, 0xe6, 0xbd, 0xf7, 0x7b, 0xff, 0x79, 0x99, 0xf7, 0x87, 0x7d, 0x5e, 0x50, + 0x46, 0x55, 0xc0, 0x8b, 0xd9, 0x9c, 0xe6, 0x69, 0xb0, 0x1c, 0x06, 0x19, 0x61, 0x44, 0x52, 0xe9, + 0x17, 0x82, 0x2b, 0x8e, 0x8e, 0x0c, 0xe0, 0x97, 0x80, 0xbf, 0x1c, 0xf6, 0x8e, 0xf0, 0x82, 0x32, + 0x1e, 0xe8, 0xaf, 0xa1, 0x7a, 0xc7, 0x33, 0x2e, 0x17, 0x5c, 0xc6, 0x3a, 0x0a, 0x4c, 0x50, 0x96, + 0xba, 0x19, 0xcf, 0xb8, 0xc9, 0x6f, 0x4f, 0x65, 0xf6, 0xa4, 0x7e, 0xaf, 0xfa, 0x5c, 0x90, 0xb2, + 0xe9, 0xf4, 0x7b, 0x03, 0x3e, 0x18, 0x9b, 0x39, 0xa6, 0x0a, 0x2b, 0x82, 0x5e, 0xc1, 0x66, 0x81, + 0x05, 0x5e, 0x48, 0x1b, 0xb8, 0xc0, 0xeb, 0x84, 0xc7, 0x7e, 0x6d, 0x2e, 0x7f, 0xa2, 0x81, 0x51, + 0xfb, 0xea, 0x4f, 0xdf, 0xfa, 0xf6, 0xef, 0xc7, 0x73, 0x10, 0x95, 0x3d, 0x28, 0x85, 0x4f, 0x72, + 0x2c, 0x55, 0xbc, 0xc4, 0x39, 0x4d, 0xb1, 0xe2, 0x22, 0x2e, 0xf8, 0x27, 0x22, 0xa4, 0x7d, 0xe0, + 0x36, 0xbc, 0x4e, 0xf8, 0x6c, 0x8f, 0xd8, 0x19, 0x96, 0xea, 0xfd, 0x2d, 0x3e, 0xd9, 0xd2, 0xbb, + 0xc2, 0x8f, 0xf3, 0x5a, 0x59, 0xa2, 0x31, 0x84, 0xd5, 0x05, 0xd2, 0x6e, 0x68, 0xe9, 0xa7, 0x7b, + 0xa4, 0xab, 0xbe, 0x5d, 0xc5, 0x9d, 0x56, 0xe4, 0xc1, 0x47, 0x8c, 0xac, 0x54, 0x9c, 0x87, 0xb1, + 0x24, 0x1f, 0x2f, 0x08, 0x9b, 0x11, 0xbb, 0xe9, 0x02, 0xef, 0x5e, 0xf4, 0x70, 0x9b, 0x3f, 0x0b, + 0xa7, 0x65, 0xf6, 0x8e, 0x1c, 0xde, 0x91, 0x87, 0x3b, 0xe4, 0xb0, 0x22, 0x5f, 0xc3, 0x4e, 0x22, + 0x68, 0x9a, 0x91, 0x98, 0xb2, 0x73, 0x6e, 0xb7, 0xf4, 0x2b, 0x9e, 0xec, 0x99, 0x6e, 0xa4, 0xa9, + 0xb7, 0xec, 0x9c, 0x47, 0x30, 0xa9, 0xce, 0xa8, 0x07, 0x5b, 0x64, 0x55, 0x70, 0xa1, 0x48, 0x6a, + 0xb7, 0x5d, 0xe0, 0xb5, 0xa2, 0x2a, 0x3e, 0x9d, 0x43, 0x54, 0x7f, 0x2e, 0x14, 0xc2, 0x43, 0x9c, + 0xa6, 0x82, 0x48, 0xb3, 0xb3, 0xf6, 0xc8, 0xfe, 0xf5, 0x73, 0xd0, 0x2d, 0xbd, 0xf1, 0xc6, 0x54, + 0xa6, 0x4a, 0x50, 0x96, 0x45, 0xb7, 0x20, 0xea, 0xc2, 0xfb, 0x7a, 0x33, 0xf6, 0x81, 0x0b, 0xbc, + 0x46, 0x64, 0x82, 0x97, 0xad, 0x2f, 0x97, 0x7d, 0xeb, 0xff, 0x65, 0xdf, 0x1a, 0x8d, 0xaf, 0xd6, + 0x0e, 0xb8, 0x5e, 0x3b, 0xe0, 0xef, 0xda, 0x01, 0x5f, 0x37, 0x8e, 0x75, 0xbd, 0x71, 0xac, 0xdf, + 0x1b, 0xc7, 0xfa, 0x30, 0xc8, 0xa8, 0x9a, 0x5f, 0x24, 0xfe, 0x8c, 0x2f, 0x82, 0xed, 0x2f, 0x51, + 0x3c, 0xc8, 0x71, 0x22, 0x83, 0x77, 0x13, 0xed, 0xb3, 0x55, 0xe5, 0x34, 0x6d, 0xb3, 0xa4, 0xa9, + 0x7d, 0xf6, 0xe2, 0x26, 0x00, 0x00, 0xff, 0xff, 0xb0, 0x6d, 0xcc, 0x7e, 0x00, 0x03, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -278,34 +255,6 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x30 } - if len(m.WithdrawalCommitments) > 0 { - for iNdEx := len(m.WithdrawalCommitments) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.WithdrawalCommitments[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenesis(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - } - if len(m.PendingDeposits) > 0 { - for iNdEx := len(m.PendingDeposits) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.PendingDeposits[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenesis(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - } if len(m.Validators) > 0 { for iNdEx := len(m.Validators) - 1; iNdEx >= 0; iNdEx-- { { @@ -413,18 +362,6 @@ func (m *GenesisState) Size() (n int) { n += 1 + l + sovGenesis(uint64(l)) } } - if len(m.PendingDeposits) > 0 { - for _, e := range m.PendingDeposits { - l = e.Size() - n += 1 + l + sovGenesis(uint64(l)) - } - } - if len(m.WithdrawalCommitments) > 0 { - for _, e := range m.WithdrawalCommitments { - l = e.Size() - n += 1 + l + sovGenesis(uint64(l)) - } - } if m.NextL2Sequence != 0 { n += 1 + sovGenesis(uint64(m.NextL2Sequence)) } @@ -593,74 +530,6 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PendingDeposits", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenesis - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenesis - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenesis - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PendingDeposits = append(m.PendingDeposits, PendingDeposits{}) - if err := m.PendingDeposits[len(m.PendingDeposits)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field WithdrawalCommitments", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenesis - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenesis - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenesis - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.WithdrawalCommitments = append(m.WithdrawalCommitments, WithdrawalCommitment{}) - if err := m.WithdrawalCommitments[len(m.WithdrawalCommitments)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 6: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field NextL2Sequence", wireType) diff --git a/x/opchild/types/hook.go b/x/opchild/types/hook.go deleted file mode 100644 index a6a0103b..00000000 --- a/x/opchild/types/hook.go +++ /dev/null @@ -1,19 +0,0 @@ -package types - -import ( - context "context" - - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/address" -) - -type BridgeHook = func(ctx context.Context, sender sdk.AccAddress, msgBytes []byte) error - -const senderPrefix = "opinit-hook-intermediary" - -// DeriveIntermediateSender compute intermediate sender address -// Bech32(Hash(Hash("opinit-hook-intermediary") + sender)) -func DeriveIntermediateSender(originalSender string) sdk.AccAddress { - senderAddr := sdk.AccAddress(address.Hash(senderPrefix, []byte(originalSender))) - return senderAddr -} diff --git a/x/opchild/types/keys.go b/x/opchild/types/keys.go index 93e5ccf8..7309f37f 100644 --- a/x/opchild/types/keys.go +++ b/x/opchild/types/keys.go @@ -27,8 +27,7 @@ var ( ValidatorsPrefix = []byte{0x32} // prefix for each key to a validator ValidatorsByConsAddrPrefix = []byte{0x33} // prefix for each key to a validator index, by pubkey - DenomPairPrefix = []byte{0x41} // prefix for the denom pair - PendingDepositsKey = []byte{0x42} // prefix for pending deposits + DenomPairPrefix = []byte{0x41} // prefix for the denom pair // HostValidatorStore keys HostHeightKey = []byte{0x51} diff --git a/x/opchild/types/proof.go b/x/opchild/types/proof.go deleted file mode 100644 index 1158bb05..00000000 --- a/x/opchild/types/proof.go +++ /dev/null @@ -1,93 +0,0 @@ -package types - -import ( - "bytes" - - v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" - "github.com/cometbft/cometbft/crypto/merkle" - cmtcrypto "github.com/cometbft/cometbft/proto/tendermint/crypto" - cmttypes "github.com/cometbft/cometbft/types" - - gogotypes "github.com/cosmos/gogoproto/types" -) - -func NewProofFromProto(p *v1.Proof) (*merkle.Proof, error) { - proof := &merkle.Proof{ - Total: p.Total, - Index: p.Index, - LeafHash: p.LeafHash, - Aunts: p.Aunts, - } - - return proof, proof.ValidateBasic() -} - -func NewProofOpsFromProto(p *v1.ProofOps) *cmtcrypto.ProofOps { - ops := make([]cmtcrypto.ProofOp, len(p.Ops)) - for i, op := range p.Ops { - ops[i] = cmtcrypto.ProofOp(op) - } - - return &cmtcrypto.ProofOps{Ops: ops} -} - -func NewProtoFromProof(p *merkle.Proof) *v1.Proof { - return &v1.Proof{ - Total: p.Total, - Index: p.Index, - LeafHash: p.LeafHash, - Aunts: p.Aunts, - } -} - -func NewProtoFromProofOps(p *cmtcrypto.ProofOps) *v1.ProofOps { - ops := make([]v1.ProofOp, len(p.Ops)) - for i, op := range p.Ops { - ops[i] = v1.ProofOp(op) - } - - return &v1.ProofOps{Ops: ops} -} - -func NewAppHashProof(h *cmttypes.Header) *v1.Proof { - if h == nil || len(h.ValidatorsHash) == 0 { - return nil - } - hbz, err := h.Version.Marshal() - if err != nil { - return nil - } - - pbt, err := gogotypes.StdTimeMarshal(h.Time) - if err != nil { - return nil - } - - pbbi := h.LastBlockID.ToProto() - bzbi, err := pbbi.Marshal() - if err != nil { - return nil - } - - rootHash, proofs := merkle.ProofsFromByteSlices([][]byte{ - hbz, - cdcEncode(h.ChainID), - cdcEncode(h.Height), - pbt, - bzbi, - cdcEncode(h.LastCommitHash), - cdcEncode(h.DataHash), - cdcEncode(h.ValidatorsHash), - cdcEncode(h.NextValidatorsHash), - cdcEncode(h.ConsensusHash), - cdcEncode(h.AppHash), - cdcEncode(h.LastResultsHash), - cdcEncode(h.EvidenceHash), - cdcEncode(h.ProposerAddress), - }) - if !bytes.Equal(rootHash, h.Hash().Bytes()) { - return nil - } - - return NewProtoFromProof(proofs[10]) -} diff --git a/x/opchild/types/query.pb.go b/x/opchild/types/query.pb.go index 3d9376ad..12a58d95 100644 --- a/x/opchild/types/query.pb.go +++ b/x/opchild/types/query.pb.go @@ -6,7 +6,6 @@ package types import ( context "context" fmt "fmt" - v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" _ "github.com/cosmos/cosmos-proto" _ "github.com/cosmos/cosmos-sdk/types" query "github.com/cosmos/cosmos-sdk/types/query" @@ -649,115 +648,6 @@ func (m *QueryBaseDenomResponse) GetBaseDenom() string { return "" } -// QueryForceWithdrawalProofsRequest is request type for the Query/ForceWithdrawalProofs RPC method. -type QueryForceWithdrawalProofsRequest struct { - // sequence is the sequence number of the withdrawal. - Sequence uint64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"` -} - -func (m *QueryForceWithdrawalProofsRequest) Reset() { *m = QueryForceWithdrawalProofsRequest{} } -func (m *QueryForceWithdrawalProofsRequest) String() string { return proto.CompactTextString(m) } -func (*QueryForceWithdrawalProofsRequest) ProtoMessage() {} -func (*QueryForceWithdrawalProofsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_15cfbb5d02a763ec, []int{14} -} -func (m *QueryForceWithdrawalProofsRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *QueryForceWithdrawalProofsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_QueryForceWithdrawalProofsRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *QueryForceWithdrawalProofsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryForceWithdrawalProofsRequest.Merge(m, src) -} -func (m *QueryForceWithdrawalProofsRequest) XXX_Size() int { - return m.Size() -} -func (m *QueryForceWithdrawalProofsRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryForceWithdrawalProofsRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryForceWithdrawalProofsRequest proto.InternalMessageInfo - -func (m *QueryForceWithdrawalProofsRequest) GetSequence() uint64 { - if m != nil { - return m.Sequence - } - return 0 -} - -// QueryForceWithdrawalProofsResponse is response type for the Query/ForceWithdrawalProofs RPC method. -type QueryForceWithdrawalProofsResponse struct { - // withdrawal commitments and proofs - CommitmentProof v1.ProofOps `protobuf:"bytes,3,opt,name=commitment_proof,json=commitmentProof,proto3" json:"commitment_proof" yaml:"commitment_proof"` - // app hash and proof - AppHash []byte `protobuf:"bytes,4,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty" yaml:"app_hash"` - AppHashProof v1.Proof `protobuf:"bytes,5,opt,name=app_hash_proof,json=appHashProof,proto3" json:"app_hash_proof" yaml:"app_hash_proof"` -} - -func (m *QueryForceWithdrawalProofsResponse) Reset() { *m = QueryForceWithdrawalProofsResponse{} } -func (m *QueryForceWithdrawalProofsResponse) String() string { return proto.CompactTextString(m) } -func (*QueryForceWithdrawalProofsResponse) ProtoMessage() {} -func (*QueryForceWithdrawalProofsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_15cfbb5d02a763ec, []int{15} -} -func (m *QueryForceWithdrawalProofsResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *QueryForceWithdrawalProofsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_QueryForceWithdrawalProofsResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *QueryForceWithdrawalProofsResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryForceWithdrawalProofsResponse.Merge(m, src) -} -func (m *QueryForceWithdrawalProofsResponse) XXX_Size() int { - return m.Size() -} -func (m *QueryForceWithdrawalProofsResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryForceWithdrawalProofsResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryForceWithdrawalProofsResponse proto.InternalMessageInfo - -func (m *QueryForceWithdrawalProofsResponse) GetCommitmentProof() v1.ProofOps { - if m != nil { - return m.CommitmentProof - } - return v1.ProofOps{} -} - -func (m *QueryForceWithdrawalProofsResponse) GetAppHash() []byte { - if m != nil { - return m.AppHash - } - return nil -} - -func (m *QueryForceWithdrawalProofsResponse) GetAppHashProof() v1.Proof { - if m != nil { - return m.AppHashProof - } - return v1.Proof{} -} - func init() { proto.RegisterType((*QueryValidatorsRequest)(nil), "opinit.opchild.v1.QueryValidatorsRequest") proto.RegisterType((*QueryValidatorsResponse)(nil), "opinit.opchild.v1.QueryValidatorsResponse") @@ -773,79 +663,64 @@ func init() { proto.RegisterType((*QueryNextL2SequenceResponse)(nil), "opinit.opchild.v1.QueryNextL2SequenceResponse") proto.RegisterType((*QueryBaseDenomRequest)(nil), "opinit.opchild.v1.QueryBaseDenomRequest") proto.RegisterType((*QueryBaseDenomResponse)(nil), "opinit.opchild.v1.QueryBaseDenomResponse") - proto.RegisterType((*QueryForceWithdrawalProofsRequest)(nil), "opinit.opchild.v1.QueryForceWithdrawalProofsRequest") - proto.RegisterType((*QueryForceWithdrawalProofsResponse)(nil), "opinit.opchild.v1.QueryForceWithdrawalProofsResponse") } func init() { proto.RegisterFile("opinit/opchild/v1/query.proto", fileDescriptor_15cfbb5d02a763ec) } var fileDescriptor_15cfbb5d02a763ec = []byte{ - // 1039 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcf, 0x6f, 0x1b, 0x45, - 0x14, 0xc7, 0xb3, 0x69, 0x13, 0xea, 0x97, 0x92, 0xb6, 0xd3, 0x84, 0x3a, 0x4e, 0xe2, 0x84, 0x81, - 0xa4, 0x6e, 0x90, 0x77, 0xea, 0x05, 0x84, 0x54, 0x81, 0x2a, 0x2c, 0x68, 0xa8, 0x84, 0x68, 0x70, - 0x24, 0x40, 0x5c, 0xcc, 0xd8, 0x3b, 0xb1, 0x57, 0xf2, 0xee, 0x6c, 0x77, 0x27, 0x69, 0xa2, 0x28, - 0x42, 0xe2, 0xc4, 0x8d, 0x4a, 0x70, 0xe4, 0xc2, 0xad, 0x12, 0x17, 0x0e, 0xfc, 0x07, 0x5c, 0x7a, - 0xac, 0xe0, 0xc2, 0x29, 0x42, 0x09, 0x12, 0x67, 0xfa, 0x17, 0xa0, 0x9d, 0x99, 0xdd, 0xf5, 0xda, - 0xeb, 0xc4, 0xe5, 0x92, 0x64, 0xe7, 0xfd, 0xf8, 0x7e, 0xf6, 0xcd, 0xcb, 0x57, 0x0b, 0xcb, 0xdc, - 0x77, 0x3c, 0x47, 0x10, 0xee, 0xb7, 0xbb, 0x4e, 0xcf, 0x26, 0x7b, 0x35, 0xf2, 0x70, 0x97, 0x05, - 0x07, 0xa6, 0x1f, 0x70, 0xc1, 0xd1, 0x35, 0x15, 0x36, 0x75, 0xd8, 0xdc, 0xab, 0x95, 0xae, 0x51, - 0xd7, 0xf1, 0x38, 0x91, 0x3f, 0x55, 0x56, 0xa9, 0xdc, 0xe6, 0x2e, 0x13, 0xad, 0x1d, 0x41, 0xda, - 0xc1, 0x81, 0x2f, 0x78, 0xd4, 0xc5, 0x0f, 0x38, 0xdf, 0xd1, 0xf1, 0x8d, 0x36, 0x0f, 0x5d, 0x1e, - 0x92, 0x16, 0x0d, 0x99, 0x6a, 0x4f, 0xf6, 0x6a, 0x2d, 0x26, 0x68, 0x8d, 0xf8, 0xb4, 0xe3, 0x78, - 0x54, 0x38, 0xdc, 0x4b, 0x7b, 0xa5, 0xb9, 0x71, 0x56, 0x9b, 0x3b, 0x71, 0x7c, 0x51, 0xc7, 0xe3, - 0x36, 0xfd, 0xb8, 0xa5, 0x05, 0x15, 0x6c, 0xca, 0x27, 0xa2, 0x1e, 0x74, 0x68, 0xae, 0xc3, 0x3b, - 0x5c, 0x9d, 0x47, 0x7f, 0xe9, 0xd3, 0xa5, 0x0e, 0xe7, 0x9d, 0x1e, 0x23, 0xd4, 0x77, 0x08, 0xf5, - 0x3c, 0x2e, 0x24, 0x4a, 0x5c, 0x93, 0x33, 0x1c, 0x71, 0xe0, 0x33, 0x1d, 0xc6, 0x5f, 0xc1, 0x2b, - 0x9f, 0x46, 0xe2, 0x9f, 0xd1, 0x9e, 0x63, 0x53, 0xc1, 0x83, 0xb0, 0xc1, 0x1e, 0xee, 0xb2, 0x50, - 0xa0, 0x7b, 0x00, 0xe9, 0x8b, 0x15, 0x8d, 0x55, 0xa3, 0x32, 0x63, 0xad, 0x9b, 0x9a, 0x27, 0x7a, - 0x33, 0x53, 0x51, 0xeb, 0xf7, 0x33, 0xb7, 0x68, 0x87, 0xe9, 0xda, 0x46, 0x5f, 0x25, 0xfe, 0xd9, - 0x80, 0x1b, 0x43, 0x12, 0xa1, 0xcf, 0xbd, 0x90, 0xa1, 0x4d, 0x80, 0xbd, 0xe4, 0xb4, 0x68, 0xac, - 0x5e, 0xa8, 0xcc, 0x58, 0x4b, 0xe6, 0xd0, 0x7d, 0x99, 0x49, 0x69, 0xbd, 0xf0, 0xf4, 0x78, 0x65, - 0xe2, 0xc9, 0x3f, 0xbf, 0x6c, 0x18, 0x8d, 0xbe, 0xd2, 0xa8, 0x51, 0x1f, 0xec, 0xa4, 0x84, 0xbd, - 0x79, 0x2e, 0xac, 0xa2, 0xc8, 0xd0, 0x7e, 0x01, 0xf3, 0x59, 0xd8, 0x78, 0x1c, 0x77, 0x61, 0x36, - 0xd1, 0x6b, 0x52, 0xdb, 0x0e, 0xe4, 0x48, 0x0a, 0xf5, 0xe2, 0xef, 0xbf, 0x56, 0xe7, 0xb4, 0xd0, - 0xfb, 0xb6, 0x1d, 0xb0, 0x30, 0xdc, 0x16, 0x81, 0xe3, 0x75, 0x1a, 0x2f, 0x27, 0xf9, 0xd1, 0x39, - 0x6e, 0x0e, 0x4e, 0x3a, 0x99, 0xc2, 0x87, 0x50, 0x48, 0x52, 0xf5, 0xa0, 0xc7, 0x1e, 0x42, 0x5a, - 0x89, 0x8b, 0x5a, 0xa0, 0x1e, 0x38, 0x76, 0x87, 0xdd, 0xf7, 0x76, 0xb8, 0x66, 0xc7, 0xb6, 0xbe, - 0x81, 0xfe, 0x88, 0xd6, 0xbe, 0x0f, 0x33, 0x2d, 0x79, 0xda, 0x74, 0xbc, 0x1d, 0xae, 0xd5, 0x97, - 0x73, 0xd4, 0xd3, 0xda, 0xcc, 0x1d, 0xb4, 0x92, 0x63, 0x3c, 0x07, 0x48, 0xaa, 0x6c, 0xd1, 0x80, - 0xba, 0xf1, 0x1a, 0xe1, 0x6d, 0xb8, 0x9e, 0x39, 0xd5, 0xba, 0xef, 0xc2, 0xb4, 0x2f, 0x4f, 0xb4, - 0xe4, 0x42, 0x8e, 0xa4, 0x2a, 0xe9, 0x97, 0xd3, 0x35, 0x78, 0x09, 0x4a, 0xb2, 0xe9, 0x27, 0x6c, - 0x5f, 0x7c, 0x5c, 0xdb, 0x8e, 0xa4, 0xbc, 0x76, 0xbc, 0x7d, 0x78, 0x13, 0x16, 0x73, 0xa3, 0x5a, - 0xba, 0x02, 0x57, 0x3d, 0xb6, 0x2f, 0x9a, 0xbd, 0x5a, 0x33, 0xd4, 0x31, 0x09, 0x71, 0xb1, 0x31, - 0xeb, 0x65, 0x2a, 0xb2, 0x32, 0xd6, 0x99, 0x32, 0xd6, 0x68, 0x19, 0x2b, 0x5f, 0x26, 0xa9, 0xc0, - 0x55, 0xbd, 0x73, 0x75, 0x1a, 0xb2, 0x0f, 0x98, 0xc7, 0xdd, 0x78, 0xe7, 0xe6, 0x60, 0xca, 0x8e, - 0x9e, 0xd5, 0xaa, 0x35, 0xd4, 0x03, 0x7e, 0x27, 0xbe, 0xe7, 0x34, 0x5d, 0x4b, 0x2e, 0x03, 0x44, - 0xbb, 0xde, 0xec, 0x2f, 0x2a, 0xb4, 0xe2, 0x34, 0x7c, 0x17, 0x5e, 0x95, 0x85, 0xf7, 0x78, 0xd0, - 0x66, 0x9f, 0x3b, 0xa2, 0x6b, 0x07, 0xf4, 0x11, 0xed, 0x6d, 0x45, 0x2e, 0x97, 0xfc, 0xdb, 0x97, - 0xe0, 0xd2, 0x00, 0x6e, 0xf2, 0x8c, 0x9f, 0x4c, 0x02, 0x3e, 0xab, 0x83, 0xc6, 0x70, 0xe1, 0x6a, - 0x9b, 0xbb, 0xae, 0x23, 0x5c, 0xe6, 0x89, 0xa6, 0x34, 0xd1, 0xe2, 0x05, 0xbd, 0xd6, 0xb1, 0xcb, - 0x9a, 0xca, 0x65, 0xe5, 0x35, 0x47, 0x09, 0x0f, 0xfc, 0xb0, 0xfe, 0x7a, 0x74, 0xd1, 0xcf, 0x8f, - 0x57, 0x6e, 0x1c, 0x50, 0xb7, 0x77, 0x07, 0x0f, 0xf6, 0xc0, 0x6a, 0x07, 0xae, 0xa4, 0xe7, 0xb2, - 0x12, 0x99, 0x70, 0x89, 0xfa, 0x7e, 0xb3, 0x4b, 0xc3, 0x6e, 0xf1, 0xe2, 0xaa, 0x51, 0xb9, 0x5c, - 0xbf, 0xfe, 0xfc, 0x78, 0xe5, 0x8a, 0x6a, 0x12, 0x47, 0x70, 0xe3, 0x25, 0xea, 0xfb, 0x1f, 0xd1, - 0xb0, 0x8b, 0xda, 0x30, 0x1b, 0x9f, 0x6a, 0xb8, 0x29, 0xbd, 0x82, 0xa3, 0xe0, 0xea, 0x58, 0x93, - 0xcd, 0x67, 0x9b, 0x66, 0xb8, 0x2e, 0xeb, 0xfe, 0xb2, 0xc2, 0xfa, 0xb7, 0x00, 0x53, 0x72, 0x54, - 0xe8, 0x3b, 0x03, 0x20, 0xb5, 0x3e, 0x74, 0x2b, 0x67, 0xd1, 0xf3, 0x1d, 0xb8, 0xb4, 0x31, 0x4e, - 0xaa, 0x9a, 0x39, 0xde, 0xf8, 0x36, 0x82, 0xf8, 0xe6, 0x8f, 0xbf, 0xbf, 0x9f, 0x5c, 0x41, 0xcb, - 0x64, 0xd8, 0xf4, 0xfb, 0xcc, 0xf2, 0x47, 0x03, 0x0a, 0x49, 0x0b, 0x54, 0x39, 0x57, 0x25, 0xe6, - 0xb9, 0x35, 0x46, 0xa6, 0xc6, 0xb9, 0x93, 0xe2, 0x10, 0x54, 0x3d, 0x0b, 0x87, 0x1c, 0x66, 0x6d, - 0xf5, 0x08, 0x3d, 0x36, 0x00, 0x52, 0xb7, 0x19, 0x3d, 0xb0, 0x21, 0x9f, 0x1b, 0x3d, 0xb0, 0x61, - 0xe3, 0xc3, 0x6f, 0xa4, 0x84, 0xab, 0xa8, 0x9c, 0x43, 0xd8, 0x67, 0x8b, 0xe8, 0x6b, 0x98, 0x56, - 0x66, 0x84, 0xd6, 0x46, 0x49, 0x64, 0x5c, 0xaf, 0xb4, 0x7e, 0x5e, 0x9a, 0xa6, 0x58, 0x4f, 0x29, - 0x16, 0xd1, 0x42, 0x0e, 0x85, 0x32, 0x3c, 0xf4, 0x93, 0x01, 0xb3, 0x59, 0x3b, 0x43, 0xd5, 0x51, - 0x12, 0xb9, 0xa6, 0x58, 0x32, 0xc7, 0x4d, 0xd7, 0x64, 0xb7, 0x53, 0xb2, 0x35, 0xf4, 0x5a, 0x0e, - 0xd9, 0xa0, 0x87, 0xa6, 0x8c, 0xd6, 0x98, 0x8c, 0xd6, 0x8b, 0x31, 0x5a, 0xff, 0x97, 0x31, 0x35, - 0x60, 0xf4, 0x83, 0x01, 0x85, 0xc4, 0x37, 0x47, 0xaf, 0xfe, 0xa0, 0x13, 0x8f, 0x5e, 0xfd, 0x21, - 0x13, 0xc6, 0x56, 0x0a, 0x75, 0x13, 0xad, 0xe5, 0x2d, 0x56, 0x62, 0xd1, 0xe4, 0x50, 0xfe, 0x3a, - 0x42, 0xbf, 0x19, 0x30, 0x9f, 0xeb, 0xa9, 0xe8, 0xad, 0x51, 0xc2, 0x67, 0x99, 0x78, 0xe9, 0xed, - 0x17, 0xac, 0xd2, 0xe8, 0xef, 0xa5, 0xe8, 0x16, 0xba, 0x9d, 0x83, 0xfe, 0x28, 0xa9, 0x0c, 0xc9, - 0x61, 0x3c, 0xd4, 0x23, 0xf5, 0x9d, 0x1c, 0xd6, 0x37, 0x9f, 0x9e, 0x94, 0x8d, 0x67, 0x27, 0x65, - 0xe3, 0xaf, 0x93, 0xb2, 0xf1, 0xf8, 0xb4, 0x3c, 0xf1, 0xec, 0xb4, 0x3c, 0xf1, 0xe7, 0x69, 0x79, - 0xe2, 0xcb, 0x6a, 0xc7, 0x11, 0xdd, 0xdd, 0x56, 0x64, 0xb0, 0x24, 0xea, 0xe9, 0xd0, 0x6a, 0x8f, - 0xb6, 0x42, 0xf2, 0x60, 0x4b, 0x2a, 0xec, 0x27, 0x1a, 0xf2, 0xd3, 0xb4, 0x35, 0x2d, 0xbf, 0x4d, - 0xdf, 0xfc, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x77, 0xb0, 0x7d, 0x2c, 0xd9, 0x0b, 0x00, 0x00, + // 826 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcf, 0x6b, 0x13, 0x4d, + 0x18, 0xc7, 0xb3, 0x7d, 0xdf, 0x96, 0x37, 0x4f, 0x79, 0x8b, 0x1d, 0xa3, 0xa6, 0x69, 0xb3, 0x2d, + 0x2b, 0x6d, 0xd3, 0x48, 0x76, 0xcc, 0x7a, 0x10, 0x44, 0x10, 0x83, 0x5a, 0x0a, 0xa2, 0x35, 0x05, + 0x11, 0x2f, 0x71, 0x36, 0xbb, 0xdd, 0x2e, 0x24, 0x3b, 0xdb, 0xdd, 0x6d, 0x68, 0x29, 0x45, 0xf0, + 0xe4, 0xcd, 0x82, 0x1e, 0xbd, 0x78, 0x13, 0x7a, 0xf1, 0xe0, 0x1f, 0xd1, 0x63, 0xd1, 0x8b, 0x27, + 0x91, 0x56, 0xf0, 0xdf, 0x90, 0x9d, 0x9d, 0xfd, 0xd5, 0x6c, 0xda, 0xe8, 0xa5, 0xcd, 0x3c, 0x3f, + 0xe6, 0xfb, 0x99, 0x67, 0x9e, 0x67, 0x58, 0x28, 0x53, 0xdb, 0xb4, 0x4c, 0x0f, 0x53, 0xbb, 0xbd, + 0x61, 0x76, 0x34, 0xdc, 0xab, 0xe3, 0xcd, 0x2d, 0xdd, 0xd9, 0x91, 0x6d, 0x87, 0x7a, 0x14, 0x4d, + 0x06, 0x6e, 0x99, 0xbb, 0xe5, 0x5e, 0xbd, 0x34, 0x49, 0xba, 0xa6, 0x45, 0x31, 0xfb, 0x1b, 0x44, + 0x95, 0xaa, 0x6d, 0xea, 0x76, 0xa9, 0x8b, 0x55, 0xe2, 0xea, 0x41, 0x3a, 0xee, 0xd5, 0x55, 0xdd, + 0x23, 0x75, 0x6c, 0x13, 0xc3, 0xb4, 0x88, 0x67, 0x52, 0x8b, 0xc7, 0x8a, 0xc9, 0xd8, 0x30, 0xaa, + 0x4d, 0xcd, 0xd0, 0x3f, 0xcd, 0xfd, 0xe1, 0x36, 0x49, 0x9c, 0xd2, 0x54, 0xe0, 0x6c, 0xb1, 0x15, + 0x0e, 0x16, 0xdc, 0x55, 0x30, 0xa8, 0x41, 0x03, 0xbb, 0xff, 0x8b, 0x5b, 0x67, 0x0c, 0x4a, 0x8d, + 0x8e, 0x8e, 0x89, 0x6d, 0x62, 0x62, 0x59, 0xd4, 0x63, 0x28, 0x61, 0x4e, 0xc6, 0xe1, 0xbd, 0x1d, + 0x5b, 0xe7, 0x6e, 0xe9, 0x05, 0x5c, 0x7e, 0xe2, 0x8b, 0x3f, 0x25, 0x1d, 0x53, 0x23, 0x1e, 0x75, + 0xdc, 0xa6, 0xbe, 0xb9, 0xa5, 0xbb, 0x1e, 0x7a, 0x00, 0x10, 0x1f, 0xac, 0x28, 0xcc, 0x09, 0x95, + 0x71, 0x65, 0x41, 0xe6, 0x3c, 0xfe, 0xc9, 0xe4, 0x80, 0x9a, 0x9f, 0x4f, 0x5e, 0x25, 0x86, 0xce, + 0x73, 0x9b, 0x89, 0x4c, 0xe9, 0x40, 0x80, 0x2b, 0x7d, 0x12, 0xae, 0x4d, 0x2d, 0x57, 0x47, 0xcb, + 0x00, 0xbd, 0xc8, 0x5a, 0x14, 0xe6, 0xfe, 0xa9, 0x8c, 0x2b, 0x33, 0x72, 0xdf, 0x7d, 0xc8, 0x51, + 0x6a, 0x23, 0x7f, 0xf8, 0x7d, 0x36, 0xf7, 0xf1, 0xd7, 0xa7, 0xaa, 0xd0, 0x4c, 0xa4, 0xfa, 0x1b, + 0x25, 0x60, 0x47, 0x18, 0xec, 0xe2, 0xb9, 0xb0, 0x01, 0x45, 0x8a, 0xf6, 0x19, 0x5c, 0x4a, 0xc3, + 0x86, 0xe5, 0xb8, 0x03, 0x13, 0x91, 0x5e, 0x8b, 0x68, 0x9a, 0xc3, 0x4a, 0x92, 0x6f, 0x14, 0xbf, + 0x7c, 0xae, 0x15, 0xb8, 0xd0, 0x5d, 0x4d, 0x73, 0x74, 0xd7, 0x5d, 0xf3, 0x1c, 0xd3, 0x32, 0x9a, + 0xff, 0x47, 0xf1, 0xbe, 0x5d, 0x6a, 0x9d, 0xae, 0x74, 0x54, 0x85, 0xfb, 0x90, 0x8f, 0x42, 0x79, + 0xa1, 0x87, 0x2e, 0x42, 0x9c, 0x29, 0x15, 0xb9, 0x40, 0xc3, 0x31, 0x35, 0x43, 0x5f, 0xb1, 0xd6, + 0x29, 0x67, 0x97, 0x34, 0x7e, 0x03, 0x49, 0x0f, 0xd7, 0x5e, 0x81, 0x71, 0x95, 0x59, 0x5b, 0xa6, + 0xb5, 0x4e, 0xb9, 0x7a, 0x39, 0x43, 0x3d, 0xce, 0x4d, 0xdd, 0x81, 0x1a, 0x99, 0xa5, 0x02, 0x20, + 0xa6, 0xb2, 0x4a, 0x1c, 0xd2, 0x0d, 0xdb, 0x48, 0x5a, 0x83, 0x8b, 0x29, 0x2b, 0xd7, 0xbd, 0x0d, + 0x63, 0x36, 0xb3, 0x70, 0xc9, 0xa9, 0x0c, 0xc9, 0x20, 0x25, 0x29, 0xc7, 0x73, 0xa4, 0x19, 0x28, + 0xb1, 0x4d, 0x1f, 0xe9, 0xdb, 0xde, 0xc3, 0xfa, 0x9a, 0x2f, 0x65, 0xb5, 0xc3, 0xee, 0x93, 0x96, + 0x61, 0x3a, 0xd3, 0xcb, 0xa5, 0x2b, 0x70, 0xc1, 0xd2, 0xb7, 0xbd, 0x56, 0xa7, 0xde, 0x72, 0xb9, + 0x8f, 0x41, 0xfc, 0xdb, 0x9c, 0xb0, 0x52, 0x19, 0x69, 0x19, 0xe5, 0x4c, 0x19, 0x65, 0xb0, 0x8c, + 0x92, 0x2d, 0x13, 0x65, 0x48, 0x35, 0xde, 0x73, 0x0d, 0xe2, 0xea, 0xf7, 0x74, 0x8b, 0x76, 0xc3, + 0x9e, 0x2b, 0xc0, 0xa8, 0xe6, 0xaf, 0x83, 0x56, 0x6b, 0x06, 0x0b, 0xe9, 0x66, 0x78, 0xcf, 0x71, + 0x38, 0x97, 0x2c, 0x03, 0xf8, 0xbd, 0xde, 0x4a, 0x26, 0xe5, 0xd5, 0x30, 0x4c, 0x39, 0xf8, 0x0f, + 0x46, 0x59, 0x26, 0x7a, 0x23, 0x00, 0xc4, 0xe3, 0x88, 0x96, 0x32, 0x8a, 0x9f, 0xfd, 0x2a, 0x94, + 0xaa, 0xc3, 0x84, 0x06, 0x38, 0x52, 0xf5, 0xb5, 0x7f, 0x69, 0xaf, 0xbe, 0xfe, 0x7c, 0x3b, 0x32, + 0x8b, 0xca, 0xb8, 0xff, 0x21, 0x4a, 0x0c, 0xf0, 0x7b, 0x01, 0xf2, 0xd1, 0x16, 0xa8, 0x72, 0xae, + 0x4a, 0xc8, 0xb3, 0x34, 0x44, 0x24, 0xc7, 0xb9, 0x15, 0xe3, 0x60, 0x54, 0x3b, 0x0b, 0x07, 0xef, + 0xa6, 0x47, 0x7d, 0x0f, 0xed, 0x0b, 0x00, 0xf1, 0x04, 0x0c, 0x2e, 0x58, 0xdf, 0xec, 0x0d, 0x2e, + 0x58, 0xff, 0x30, 0x4a, 0xd7, 0x62, 0xc2, 0x39, 0x24, 0x66, 0x10, 0x26, 0x46, 0x15, 0xbd, 0x84, + 0xb1, 0x60, 0x40, 0xd0, 0xfc, 0x20, 0x89, 0xd4, 0x24, 0x96, 0x16, 0xce, 0x0b, 0xe3, 0x14, 0x0b, + 0x31, 0xc5, 0x34, 0x9a, 0xca, 0xa0, 0x08, 0x86, 0x10, 0x7d, 0x10, 0x60, 0x22, 0x3d, 0x62, 0xa8, + 0x36, 0x48, 0x22, 0x73, 0x50, 0x4b, 0xf2, 0xb0, 0xe1, 0x9c, 0xec, 0x7a, 0x4c, 0x36, 0x8f, 0xae, + 0x66, 0x90, 0x9d, 0x9e, 0xeb, 0x98, 0x51, 0x19, 0x92, 0x51, 0xf9, 0x33, 0x46, 0xe5, 0x6f, 0x19, + 0xe3, 0x47, 0x01, 0xbd, 0x13, 0x20, 0x1f, 0xcd, 0xf2, 0xe0, 0xd6, 0x3f, 0xfd, 0x3a, 0x0c, 0x6e, + 0xfd, 0xbe, 0x87, 0x41, 0x52, 0x62, 0xa8, 0x45, 0x34, 0x9f, 0xd5, 0x58, 0xd1, 0xb3, 0x81, 0x77, + 0xd9, 0xbf, 0xbd, 0xc6, 0xf2, 0xe1, 0xb1, 0x28, 0x1c, 0x1d, 0x8b, 0xc2, 0x8f, 0x63, 0x51, 0xd8, + 0x3f, 0x11, 0x73, 0x47, 0x27, 0x62, 0xee, 0xdb, 0x89, 0x98, 0x7b, 0x5e, 0x33, 0x4c, 0x6f, 0x63, + 0x4b, 0x95, 0xdb, 0xb4, 0x8b, 0xfd, 0x8d, 0x4c, 0x52, 0xeb, 0x10, 0xd5, 0xc5, 0x8f, 0x57, 0xd9, + 0xb6, 0xdb, 0xd1, 0xc6, 0xec, 0x43, 0x43, 0x1d, 0x63, 0x5f, 0x1a, 0x37, 0x7e, 0x07, 0x00, 0x00, + 0xff, 0xff, 0xf0, 0x63, 0xf9, 0xf4, 0x87, 0x09, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -876,7 +751,6 @@ type QueryClient interface { // NextL2Sequence queries the next l2 sequence number. NextL2Sequence(ctx context.Context, in *QueryNextL2SequenceRequest, opts ...grpc.CallOption) (*QueryNextL2SequenceResponse, error) BaseDenom(ctx context.Context, in *QueryBaseDenomRequest, opts ...grpc.CallOption) (*QueryBaseDenomResponse, error) - ForceWithdrawalProofs(ctx context.Context, in *QueryForceWithdrawalProofsRequest, opts ...grpc.CallOption) (*QueryForceWithdrawalProofsResponse, error) } type queryClient struct { @@ -950,15 +824,6 @@ func (c *queryClient) BaseDenom(ctx context.Context, in *QueryBaseDenomRequest, return out, nil } -func (c *queryClient) ForceWithdrawalProofs(ctx context.Context, in *QueryForceWithdrawalProofsRequest, opts ...grpc.CallOption) (*QueryForceWithdrawalProofsResponse, error) { - out := new(QueryForceWithdrawalProofsResponse) - err := c.cc.Invoke(ctx, "/opinit.opchild.v1.Query/ForceWithdrawalProofs", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - // QueryServer is the server API for Query service. type QueryServer interface { // Validators queries all validators @@ -977,7 +842,6 @@ type QueryServer interface { // NextL2Sequence queries the next l2 sequence number. NextL2Sequence(context.Context, *QueryNextL2SequenceRequest) (*QueryNextL2SequenceResponse, error) BaseDenom(context.Context, *QueryBaseDenomRequest) (*QueryBaseDenomResponse, error) - ForceWithdrawalProofs(context.Context, *QueryForceWithdrawalProofsRequest) (*QueryForceWithdrawalProofsResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -1005,9 +869,6 @@ func (*UnimplementedQueryServer) NextL2Sequence(ctx context.Context, req *QueryN func (*UnimplementedQueryServer) BaseDenom(ctx context.Context, req *QueryBaseDenomRequest) (*QueryBaseDenomResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BaseDenom not implemented") } -func (*UnimplementedQueryServer) ForceWithdrawalProofs(ctx context.Context, req *QueryForceWithdrawalProofsRequest) (*QueryForceWithdrawalProofsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ForceWithdrawalProofs not implemented") -} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -1139,24 +1000,6 @@ func _Query_BaseDenom_Handler(srv interface{}, ctx context.Context, dec func(int return interceptor(ctx, in, info, handler) } -func _Query_ForceWithdrawalProofs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryForceWithdrawalProofsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).ForceWithdrawalProofs(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/opinit.opchild.v1.Query/ForceWithdrawalProofs", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).ForceWithdrawalProofs(ctx, req.(*QueryForceWithdrawalProofsRequest)) - } - return interceptor(ctx, in, info, handler) -} - var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "opinit.opchild.v1.Query", HandlerType: (*QueryServer)(nil), @@ -1189,10 +1032,6 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "BaseDenom", Handler: _Query_BaseDenom_Handler, }, - { - MethodName: "ForceWithdrawalProofs", - Handler: _Query_ForceWithdrawalProofs_Handler, - }, }, Streams: []grpc.StreamDesc{}, Metadata: "opinit/opchild/v1/query.proto", @@ -1619,84 +1458,6 @@ func (m *QueryBaseDenomResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *QueryForceWithdrawalProofsRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *QueryForceWithdrawalProofsRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *QueryForceWithdrawalProofsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Sequence != 0 { - i = encodeVarintQuery(dAtA, i, uint64(m.Sequence)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *QueryForceWithdrawalProofsResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *QueryForceWithdrawalProofsResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *QueryForceWithdrawalProofsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.AppHashProof.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - if len(m.AppHash) > 0 { - i -= len(m.AppHash) - copy(dAtA[i:], m.AppHash) - i = encodeVarintQuery(dAtA, i, uint64(len(m.AppHash))) - i-- - dAtA[i] = 0x22 - } - { - size, err := m.CommitmentProof.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - return len(dAtA) - i, nil -} - func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { offset -= sovQuery(v) base := offset @@ -1872,35 +1633,6 @@ func (m *QueryBaseDenomResponse) Size() (n int) { return n } -func (m *QueryForceWithdrawalProofsRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Sequence != 0 { - n += 1 + sovQuery(uint64(m.Sequence)) - } - return n -} - -func (m *QueryForceWithdrawalProofsResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.CommitmentProof.Size() - n += 1 + l + sovQuery(uint64(l)) - l = len(m.AppHash) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - l = m.AppHashProof.Size() - n += 1 + l + sovQuery(uint64(l)) - return n -} - func sovQuery(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -2946,225 +2678,6 @@ func (m *QueryBaseDenomResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryForceWithdrawalProofsRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryForceWithdrawalProofsRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryForceWithdrawalProofsRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType) - } - m.Sequence = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Sequence |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryForceWithdrawalProofsResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryForceWithdrawalProofsResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryForceWithdrawalProofsResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CommitmentProof", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.CommitmentProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...) - if m.AppHash == nil { - m.AppHash = []byte{} - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AppHashProof", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.AppHashProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func skipQuery(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/opchild/types/query.pb.gw.go b/x/opchild/types/query.pb.gw.go index e3932d60..d80c1fcc 100644 --- a/x/opchild/types/query.pb.gw.go +++ b/x/opchild/types/query.pb.gw.go @@ -249,60 +249,6 @@ func local_request_Query_BaseDenom_0(ctx context.Context, marshaler runtime.Mars } -func request_Query_ForceWithdrawalProofs_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryForceWithdrawalProofsRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["sequence"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "sequence") - } - - protoReq.Sequence, err = runtime.Uint64(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "sequence", err) - } - - msg, err := client.ForceWithdrawalProofs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_Query_ForceWithdrawalProofs_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryForceWithdrawalProofsRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["sequence"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "sequence") - } - - protoReq.Sequence, err = runtime.Uint64(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "sequence", err) - } - - msg, err := server.ForceWithdrawalProofs(ctx, &protoReq) - return msg, metadata, err - -} - // RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // UnaryRPC :call QueryServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -470,29 +416,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) - mux.Handle("GET", pattern_Query_ForceWithdrawalProofs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_Query_ForceWithdrawalProofs_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Query_ForceWithdrawalProofs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - return nil } @@ -674,26 +597,6 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) - mux.Handle("GET", pattern_Query_ForceWithdrawalProofs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_Query_ForceWithdrawalProofs_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Query_ForceWithdrawalProofs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - return nil } @@ -711,8 +614,6 @@ var ( pattern_Query_NextL2Sequence_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"opinit", "opchild", "v1", "next_l2_sequence"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_BaseDenom_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"opinit", "opchild", "v1", "base_denom", "denom"}, "", runtime.AssumeColonVerbOpt(false))) - - pattern_Query_ForceWithdrawalProofs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"opinit", "opchild", "v1", "withdrawals", "sequence", "proofs"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( @@ -729,6 +630,4 @@ var ( forward_Query_NextL2Sequence_0 = runtime.ForwardResponseMessage forward_Query_BaseDenom_0 = runtime.ForwardResponseMessage - - forward_Query_ForceWithdrawalProofs_0 = runtime.ForwardResponseMessage ) diff --git a/x/opchild/types/tx.go b/x/opchild/types/tx.go index 671f3c83..4ec8e411 100644 --- a/x/opchild/types/tx.go +++ b/x/opchild/types/tx.go @@ -258,7 +258,7 @@ func (msg MsgFinalizeTokenDeposit) Validate(ac address.Codec) error { } } - if !msg.Amount.IsValid() || msg.Amount.IsZero() { + if !msg.Amount.IsValid() { return ErrInvalidAmount } diff --git a/x/opchild/types/tx.pb.go b/x/opchild/types/tx.pb.go index 7e4ef3aa..eb827172 100644 --- a/x/opchild/types/tx.pb.go +++ b/x/opchild/types/tx.pb.go @@ -197,7 +197,7 @@ type MsgFinalizeTokenDeposit struct { Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` // from is l1 sender address From string `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"` - // to is l2 recipient address + // to is l2 recipient address or "hook" To string `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"` // amount is the coin amount to deposit. Amount types1.Coin `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount" yaml:"amount"` @@ -788,83 +788,83 @@ func init() { func init() { proto.RegisterFile("opinit/opchild/v1/tx.proto", fileDescriptor_1ee96a503651b6e4) } var fileDescriptor_1ee96a503651b6e4 = []byte{ - // 1206 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x41, 0x6f, 0xe3, 0xc4, - 0x17, 0x8f, 0x93, 0x6e, 0xda, 0x4e, 0x77, 0xff, 0x6d, 0xad, 0xea, 0x5f, 0xd7, 0xa2, 0x49, 0x65, - 0x84, 0x08, 0x61, 0x63, 0x6f, 0x83, 0xe0, 0x10, 0x09, 0x89, 0x86, 0xdd, 0x4a, 0x65, 0x15, 0x6d, - 0xe5, 0x2e, 0x20, 0x71, 0xa0, 0x4c, 0xe2, 0xa9, 0x33, 0x6a, 0xec, 0x31, 0x9e, 0x49, 0x68, 0xb8, - 0x80, 0x38, 0x21, 0x4e, 0x7c, 0x84, 0x3d, 0x20, 0x84, 0x38, 0xf5, 0xc0, 0x69, 0xe1, 0x03, 0x54, - 0x7b, 0x5a, 0x71, 0x40, 0x9c, 0x0a, 0xb4, 0x87, 0x72, 0xde, 0x2b, 0x17, 0x64, 0xcf, 0xc4, 0x71, - 0x12, 0xbb, 0xe9, 0xa2, 0xc2, 0xa5, 0xcd, 0xbc, 0xf7, 0x9b, 0x37, 0xef, 0xf7, 0xde, 0x9b, 0xf7, - 0xc6, 0x40, 0x25, 0x1e, 0x76, 0x31, 0x33, 0x88, 0xd7, 0x6a, 0xe3, 0x8e, 0x65, 0xf4, 0x36, 0x0d, - 0x76, 0xa4, 0x7b, 0x3e, 0x61, 0x44, 0x5e, 0xe6, 0x3a, 0x5d, 0xe8, 0xf4, 0xde, 0xa6, 0xba, 0x0c, - 0x1d, 0xec, 0x12, 0x23, 0xfc, 0xcb, 0x51, 0x6a, 0xa1, 0x45, 0xa8, 0x43, 0xa8, 0xd1, 0x84, 0x14, - 0x19, 0xbd, 0xcd, 0x26, 0x62, 0x70, 0xd3, 0x68, 0x11, 0xec, 0x0a, 0xfd, 0xaa, 0xd0, 0x3b, 0xd4, - 0x0e, 0xac, 0x3b, 0xd4, 0x16, 0x8a, 0x35, 0xae, 0xd8, 0x0f, 0x57, 0x06, 0x5f, 0x08, 0xd5, 0x8a, - 0x4d, 0x6c, 0xc2, 0xe5, 0xc1, 0xaf, 0xc1, 0x06, 0x9b, 0x10, 0xbb, 0x83, 0x8c, 0x70, 0xd5, 0xec, - 0x1e, 0x18, 0xd0, 0xed, 0x0b, 0xd5, 0x7a, 0x02, 0x8d, 0xbe, 0x87, 0x84, 0x3d, 0xed, 0x1b, 0x09, - 0xc8, 0x0d, 0x6a, 0xdf, 0x3b, 0x42, 0xad, 0x2e, 0x43, 0x0d, 0x44, 0x29, 0xb4, 0x11, 0x95, 0xef, - 0x80, 0x3c, 0x45, 0xae, 0x85, 0x7c, 0x45, 0xda, 0x90, 0x4a, 0xf3, 0x75, 0xe5, 0xe7, 0x1f, 0x2a, - 0x2b, 0xc2, 0x91, 0x2d, 0xcb, 0xf2, 0x11, 0xa5, 0x7b, 0xcc, 0xc7, 0xae, 0x6d, 0x0a, 0x9c, 0x7c, - 0x07, 0xcc, 0x39, 0x62, 0xb7, 0x92, 0xdd, 0xc8, 0x95, 0x16, 0xaa, 0x2b, 0x3a, 0xf7, 0x4a, 0x1f, - 0x78, 0xa5, 0x6f, 0xb9, 0x7d, 0x33, 0x42, 0xd5, 0xca, 0x5f, 0x5c, 0x1c, 0x97, 0xc5, 0xf6, 0xaf, - 0x2e, 0x8e, 0xcb, 0xea, 0xc0, 0xc5, 0x49, 0x7f, 0xb4, 0x17, 0x80, 0x3a, 0x29, 0x35, 0x11, 0xf5, - 0x88, 0x4b, 0x91, 0xf6, 0x44, 0x02, 0x4b, 0x0d, 0x6a, 0xef, 0x21, 0x56, 0xf7, 0xb1, 0x65, 0xa3, - 0x1d, 0xf7, 0x80, 0xc8, 0x5b, 0x63, 0x14, 0x5e, 0x79, 0x76, 0x5a, 0xbc, 0xd5, 0x87, 0x4e, 0xa7, - 0xa6, 0x71, 0xb9, 0x36, 0x95, 0xd3, 0x0e, 0x58, 0x68, 0x86, 0x06, 0xf7, 0xb1, 0x7b, 0x40, 0x94, - 0xec, 0x86, 0x54, 0x5a, 0xa8, 0xae, 0xeb, 0x13, 0xc9, 0xd7, 0x87, 0xc7, 0xd6, 0xe7, 0x4f, 0x4e, - 0x8b, 0x99, 0xef, 0x2e, 0x8e, 0xcb, 0x92, 0x09, 0x9a, 0x91, 0xb8, 0x56, 0x1a, 0x23, 0xab, 0xc4, - 0xc8, 0x8e, 0xf8, 0xad, 0xa9, 0x40, 0x19, 0x97, 0x45, 0x44, 0xbf, 0xcd, 0x81, 0xd5, 0x06, 0xb5, - 0xb7, 0xb1, 0x0b, 0x3b, 0xf8, 0x53, 0xf4, 0x90, 0x1c, 0x22, 0xf7, 0x2e, 0xf2, 0x08, 0xc5, 0xec, - 0x3a, 0xf8, 0xde, 0x06, 0x33, 0x07, 0x3e, 0x71, 0x42, 0xa2, 0x97, 0xe5, 0x3c, 0x44, 0xc9, 0x25, - 0x90, 0x65, 0x44, 0xc9, 0x4d, 0xc1, 0x66, 0x19, 0x91, 0x1b, 0x20, 0x0f, 0x1d, 0xd2, 0x75, 0x99, - 0x32, 0x13, 0x86, 0x70, 0x4d, 0x17, 0xd0, 0xe0, 0x66, 0xe8, 0xe2, 0x66, 0xe8, 0x6f, 0x13, 0xec, - 0xd6, 0xd5, 0x20, 0x7c, 0x43, 0xcf, 0xf9, 0x36, 0x8d, 0xc7, 0x53, 0x18, 0x91, 0x55, 0x30, 0x47, - 0xd1, 0xc7, 0x5d, 0xe4, 0xb6, 0x90, 0x72, 0x63, 0x43, 0x2a, 0xcd, 0x98, 0xd1, 0x5a, 0xfe, 0x3f, - 0xc8, 0xb7, 0x11, 0xb6, 0xdb, 0x4c, 0xc9, 0x87, 0x1a, 0xb1, 0x92, 0xd7, 0x01, 0x08, 0x0e, 0xdb, - 0xb7, 0x90, 0x4b, 0x1c, 0x65, 0x36, 0x70, 0xda, 0x9c, 0x0f, 0x24, 0x77, 0x03, 0x81, 0xbc, 0x0e, - 0x66, 0x2c, 0xc8, 0xa0, 0x32, 0xb7, 0x21, 0x95, 0x6e, 0x86, 0x39, 0x94, 0xf8, 0x99, 0xa1, 0xb8, - 0x66, 0x8c, 0x65, 0xaf, 0x18, 0xcb, 0x5e, 0x52, 0x32, 0xb4, 0x8f, 0x40, 0x31, 0x45, 0x35, 0xc8, - 0xa5, 0xfc, 0x26, 0xc8, 0xfb, 0x88, 0x76, 0x3b, 0x2c, 0xcc, 0xd7, 0xff, 0xaa, 0x2f, 0x25, 0xd4, - 0xd5, 0x00, 0x6c, 0x86, 0xc0, 0x87, 0x7d, 0x0f, 0x99, 0x62, 0x93, 0xf6, 0x97, 0x14, 0x5e, 0x89, - 0x1d, 0x17, 0x33, 0x0c, 0x19, 0x3f, 0xe2, 0x7d, 0xcc, 0xda, 0x96, 0x0f, 0x3f, 0x81, 0x9d, 0x7f, - 0x70, 0x81, 0x79, 0x3a, 0xb3, 0xff, 0x79, 0x3a, 0x6b, 0xd5, 0xb1, 0xe0, 0x6a, 0xb1, 0xe0, 0xa6, - 0xd0, 0xd3, 0xde, 0x02, 0x5a, 0xba, 0x36, 0x0a, 0x71, 0xbc, 0x50, 0xa4, 0xd1, 0x42, 0xd1, 0x1e, - 0x67, 0xc1, 0x62, 0x83, 0xda, 0x5b, 0x96, 0xf5, 0x1e, 0xec, 0x60, 0x0b, 0x32, 0xe2, 0xcb, 0xef, - 0x80, 0x79, 0xd8, 0x65, 0x6d, 0xe2, 0x63, 0xd6, 0x17, 0x71, 0xbb, 0xfd, 0xec, 0xb4, 0xb8, 0x24, - 0x9c, 0x1f, 0xa8, 0xd2, 0x2f, 0xd2, 0x70, 0xbb, 0xac, 0x80, 0x59, 0x87, 0xb8, 0xf8, 0x10, 0xf9, - 0x3c, 0xa6, 0xe6, 0x60, 0x29, 0xdf, 0x03, 0xcb, 0xbd, 0xc1, 0x91, 0xfb, 0x90, 0xef, 0x9f, 0x7a, - 0x8d, 0x96, 0xa2, 0x2d, 0x42, 0x2e, 0x6f, 0x83, 0xbc, 0xd7, 0x6d, 0x1e, 0xa2, 0xbe, 0xc8, 0x42, - 0x62, 0xbb, 0xad, 0x2b, 0x4f, 0x86, 0x16, 0x5b, 0x7e, 0xdf, 0x63, 0x44, 0xdf, 0xed, 0x36, 0xef, - 0xa3, 0xbe, 0x29, 0x76, 0xd7, 0xaa, 0x5f, 0x3e, 0x2a, 0x66, 0xfe, 0x7c, 0x54, 0xcc, 0x04, 0x69, - 0x18, 0x12, 0x08, 0x32, 0xb1, 0x1a, 0xcb, 0x44, 0x3c, 0x50, 0xda, 0x5a, 0xd8, 0x86, 0xe2, 0xa2, - 0xa8, 0x45, 0xfd, 0xc2, 0x07, 0x8a, 0x89, 0x1c, 0xd2, 0x43, 0xff, 0x4e, 0x68, 0x13, 0x03, 0x98, - 0x7d, 0xde, 0x00, 0xd6, 0x2a, 0x93, 0x84, 0xe3, 0x23, 0x68, 0x8c, 0x81, 0x18, 0x41, 0x63, 0xd2, - 0x88, 0xf6, 0x4f, 0x52, 0x58, 0x4e, 0xef, 0x7a, 0x16, 0x64, 0x68, 0x17, 0xfa, 0xd0, 0xa1, 0xd7, - 0xca, 0x79, 0x13, 0xe4, 0xbd, 0xd0, 0xaa, 0x98, 0x42, 0x6b, 0x09, 0xdd, 0x82, 0x1f, 0x6b, 0x0a, - 0x20, 0x9f, 0xaf, 0xe9, 0x09, 0x8d, 0xbb, 0x2a, 0x12, 0x1a, 0x17, 0x0d, 0x99, 0xf1, 0x8b, 0xb2, - 0xe7, 0x21, 0xd7, 0xda, 0x46, 0x68, 0x97, 0x90, 0xce, 0xb5, 0x32, 0x7b, 0x03, 0xcc, 0xfb, 0xa8, - 0x85, 0x3d, 0x8c, 0x5c, 0x36, 0x35, 0x8b, 0x43, 0xa8, 0xdc, 0x8f, 0xba, 0x50, 0x2e, 0x7c, 0x6e, - 0x5c, 0xd2, 0x85, 0xb6, 0x13, 0xbb, 0xd0, 0xf7, 0xbf, 0x15, 0x4b, 0x36, 0x66, 0xed, 0x6e, 0x53, - 0x6f, 0x11, 0x47, 0x3c, 0xb3, 0xc4, 0xbf, 0x0a, 0xb5, 0x0e, 0xc5, 0x3b, 0x29, 0xb0, 0x40, 0x47, - 0x3b, 0xd6, 0x94, 0xc8, 0xc6, 0x43, 0x25, 0x22, 0x1b, 0x17, 0x45, 0x91, 0xfd, 0x31, 0x5e, 0x33, - 0x0f, 0x7c, 0xd8, 0xea, 0xa0, 0xeb, 0x98, 0xe2, 0xeb, 0xd1, 0x08, 0x0c, 0xa2, 0x39, 0x53, 0xbf, - 0x21, 0x9c, 0x8f, 0x26, 0x21, 0x1f, 0x75, 0xb9, 0xe4, 0x51, 0xf7, 0xf2, 0x58, 0x37, 0x9e, 0x2c, - 0x19, 0xee, 0xe9, 0x48, 0xc9, 0x70, 0xd1, 0x80, 0x58, 0xf5, 0xf1, 0x2c, 0xc8, 0x35, 0xa8, 0x2d, - 0xdb, 0x60, 0x71, 0xfc, 0x61, 0x99, 0x34, 0xe5, 0x26, 0x5f, 0x76, 0x6a, 0xe5, 0x4a, 0xb0, 0xa8, - 0xd1, 0x43, 0x70, 0x6b, 0xf4, 0xf1, 0xf7, 0x62, 0xf2, 0xfe, 0x11, 0x90, 0xfa, 0xea, 0x15, 0x40, - 0xd1, 0x11, 0x3d, 0xb0, 0x92, 0xf8, 0xec, 0x2a, 0x27, 0x1b, 0x49, 0xc2, 0xaa, 0xd5, 0xab, 0x63, - 0xa3, 0x73, 0x3f, 0x03, 0xab, 0x69, 0x33, 0x3e, 0x25, 0x48, 0x29, 0x70, 0xf5, 0xf5, 0xe7, 0x82, - 0x47, 0x0e, 0x7c, 0x08, 0x6e, 0x8e, 0x0c, 0x49, 0x2d, 0xd9, 0x4c, 0x1c, 0xa3, 0x96, 0xa7, 0x63, - 0x22, 0xfb, 0x36, 0x58, 0x1c, 0x1f, 0x16, 0x29, 0x45, 0x32, 0x06, 0x4b, 0x2b, 0x92, 0x94, 0x16, - 0x1d, 0x10, 0x19, 0x69, 0xcf, 0x29, 0x44, 0xe2, 0x98, 0x34, 0x22, 0x49, 0x8d, 0x32, 0xb0, 0x3f, - 0xd2, 0x24, 0x53, 0xec, 0xc7, 0x31, 0x69, 0xf6, 0x93, 0xda, 0xc5, 0xd0, 0x7f, 0xd1, 0x2a, 0x2e, - 0xf5, 0x9f, 0x63, 0x2e, 0xf7, 0x7f, 0xf4, 0xd6, 0xaa, 0x37, 0x3e, 0x0f, 0xda, 0x40, 0xfd, 0xfe, - 0xc9, 0x1f, 0x85, 0xcc, 0xc9, 0x59, 0x41, 0x7a, 0x7a, 0x56, 0x90, 0x7e, 0x3f, 0x2b, 0x48, 0x5f, - 0x9f, 0x17, 0x32, 0x4f, 0xcf, 0x0b, 0x99, 0x5f, 0xcf, 0x0b, 0x99, 0x0f, 0x2a, 0xb1, 0x8e, 0x89, - 0xc3, 0xca, 0xa9, 0x74, 0x60, 0x93, 0x1a, 0x0f, 0x76, 0xc3, 0xaf, 0xcc, 0xa3, 0xe8, 0x3b, 0x33, - 0x6c, 0x9e, 0xcd, 0x7c, 0xf8, 0x18, 0x79, 0xed, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x92, 0x33, - 0xd1, 0xf2, 0x4d, 0x0f, 0x00, 0x00, + // 1205 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0x41, 0x6f, 0xe3, 0x44, + 0x14, 0x8e, 0xd3, 0x36, 0x6d, 0xa6, 0xbb, 0xdb, 0xd6, 0xaa, 0xa8, 0x6b, 0xd1, 0xa4, 0x32, 0x42, + 0x84, 0x40, 0xec, 0x6d, 0x10, 0x1c, 0x22, 0x21, 0xd1, 0xb0, 0x5b, 0xa9, 0xac, 0xa2, 0xad, 0xd2, + 0x05, 0x24, 0x0e, 0x94, 0x49, 0x3c, 0x75, 0x46, 0x8d, 0x3d, 0xc6, 0x33, 0x09, 0x0d, 0x17, 0x10, + 0x27, 0xc4, 0x89, 0x9f, 0xb0, 0x07, 0x0e, 0x88, 0x53, 0x0f, 0x9c, 0x16, 0x7e, 0x40, 0xb5, 0xa7, + 0x15, 0x07, 0xc4, 0xa9, 0x40, 0x7b, 0x28, 0xe7, 0x5e, 0xb9, 0x20, 0x8f, 0x27, 0x8e, 0xe3, 0xd8, + 0x6d, 0x17, 0x75, 0x2f, 0x6d, 0xe6, 0xbd, 0x6f, 0xde, 0xbc, 0xf7, 0xbd, 0x37, 0xef, 0x8d, 0x81, + 0x4a, 0x5c, 0xec, 0x60, 0x66, 0x10, 0xb7, 0xdd, 0xc1, 0x5d, 0xd3, 0xe8, 0x6f, 0x18, 0xec, 0x50, + 0x77, 0x3d, 0xc2, 0x88, 0xbc, 0x14, 0xe8, 0x74, 0xa1, 0xd3, 0xfb, 0x1b, 0xea, 0x12, 0xb4, 0xb1, + 0x43, 0x0c, 0xfe, 0x37, 0x40, 0xa9, 0x85, 0x36, 0xa1, 0x36, 0xa1, 0x46, 0x0b, 0x52, 0x64, 0xf4, + 0x37, 0x5a, 0x88, 0xc1, 0x0d, 0xa3, 0x4d, 0xb0, 0x23, 0xf4, 0x2b, 0x42, 0x6f, 0x53, 0xcb, 0xb7, + 0x6e, 0x53, 0x4b, 0x28, 0x56, 0x03, 0xc5, 0x1e, 0x5f, 0x19, 0xc1, 0x42, 0xa8, 0x96, 0x2d, 0x62, + 0x91, 0x40, 0xee, 0xff, 0x1a, 0x6e, 0xb0, 0x08, 0xb1, 0xba, 0xc8, 0xe0, 0xab, 0x56, 0x6f, 0xdf, + 0x80, 0xce, 0x40, 0xa8, 0xd6, 0x12, 0xc2, 0x18, 0xb8, 0x48, 0xd8, 0xd3, 0x7e, 0x90, 0x80, 0xdc, + 0xa0, 0xd6, 0xfd, 0x43, 0xd4, 0xee, 0x31, 0xd4, 0x40, 0x94, 0x42, 0x0b, 0x51, 0xf9, 0x2e, 0xc8, + 0x51, 0xe4, 0x98, 0xc8, 0x53, 0xa4, 0x75, 0xa9, 0x94, 0xaf, 0x2b, 0xbf, 0xfd, 0x5c, 0x59, 0x16, + 0x8e, 0x6c, 0x9a, 0xa6, 0x87, 0x28, 0xdd, 0x65, 0x1e, 0x76, 0xac, 0xa6, 0xc0, 0xc9, 0x77, 0xc1, + 0x9c, 0x2d, 0x76, 0x2b, 0xd9, 0xf5, 0xa9, 0xd2, 0x7c, 0x75, 0x59, 0x0f, 0xbc, 0xd2, 0x87, 0x5e, + 0xe9, 0x9b, 0xce, 0xa0, 0x19, 0xa2, 0x6a, 0xe5, 0x6f, 0xce, 0x8f, 0xca, 0x62, 0xfb, 0x77, 0xe7, + 0x47, 0x65, 0x75, 0xe8, 0xe2, 0xa4, 0x3f, 0xda, 0xcb, 0x40, 0x9d, 0x94, 0x36, 0x11, 0x75, 0x89, + 0x43, 0x91, 0xf6, 0x54, 0x02, 0x8b, 0x0d, 0x6a, 0xed, 0x22, 0x56, 0xf7, 0xb0, 0x69, 0xa1, 0x6d, + 0x67, 0x9f, 0xc8, 0x9b, 0xb1, 0x10, 0x5e, 0xbf, 0x38, 0x29, 0xde, 0x1e, 0x40, 0xbb, 0x5b, 0xd3, + 0x02, 0xb9, 0x76, 0x65, 0x4c, 0xdb, 0x60, 0xbe, 0xc5, 0x0d, 0xee, 0x61, 0x67, 0x9f, 0x28, 0xd9, + 0x75, 0xa9, 0x34, 0x5f, 0x5d, 0xd3, 0x27, 0x92, 0xaf, 0x8f, 0x8e, 0xad, 0xe7, 0x8f, 0x4f, 0x8a, + 0x99, 0x1f, 0xcf, 0x8f, 0xca, 0x52, 0x13, 0xb4, 0x42, 0x71, 0xad, 0x14, 0x0b, 0x56, 0x89, 0x04, + 0x3b, 0xe6, 0xb7, 0xa6, 0x02, 0x25, 0x2e, 0x0b, 0x03, 0xbd, 0xc8, 0x82, 0x95, 0x06, 0xb5, 0xb6, + 0xb0, 0x03, 0xbb, 0xf8, 0x4b, 0xf4, 0x88, 0x1c, 0x20, 0xe7, 0x1e, 0x72, 0x09, 0xc5, 0xec, 0x26, + 0xe2, 0x95, 0xc1, 0xf4, 0xbe, 0x47, 0x6c, 0x1e, 0x68, 0xbe, 0xc9, 0x7f, 0xcb, 0x77, 0x40, 0x96, + 0x11, 0x65, 0x8a, 0x4b, 0xb2, 0x8c, 0xc8, 0x0d, 0x90, 0x83, 0x36, 0xe9, 0x39, 0x4c, 0x99, 0xe6, + 0x74, 0xac, 0xea, 0xc2, 0xa4, 0x5f, 0xe5, 0xba, 0xa8, 0x72, 0xfd, 0x7d, 0x82, 0x9d, 0xba, 0xea, + 0x53, 0x31, 0xf2, 0x22, 0xd8, 0xa6, 0x05, 0xdc, 0x08, 0x23, 0xb2, 0x0a, 0xe6, 0x28, 0xfa, 0xbc, + 0x87, 0x9c, 0x36, 0x52, 0x66, 0xd6, 0xa5, 0xd2, 0x74, 0x33, 0x5c, 0xcb, 0x2f, 0x81, 0x5c, 0x07, + 0x61, 0xab, 0xc3, 0x94, 0x1c, 0xd7, 0x88, 0x95, 0xbc, 0x06, 0x80, 0x7f, 0xd8, 0x9e, 0x89, 0x1c, + 0x62, 0x2b, 0xb3, 0xdc, 0xb5, 0xbc, 0x2f, 0xb9, 0xe7, 0x0b, 0xe4, 0x35, 0x30, 0x6d, 0x42, 0x06, + 0x95, 0xb9, 0x75, 0xa9, 0x74, 0x8b, 0xe7, 0x43, 0x0a, 0xce, 0xe4, 0xe2, 0x9a, 0x11, 0xcb, 0x44, + 0x31, 0x92, 0x89, 0x24, 0x62, 0xb5, 0xcf, 0x40, 0x31, 0x45, 0x35, 0xcc, 0x8b, 0xfc, 0x2e, 0xc8, + 0x79, 0x88, 0xf6, 0xba, 0x8c, 0x73, 0x7f, 0xa7, 0xfa, 0x6a, 0x42, 0x8d, 0x0c, 0xc1, 0x4d, 0x0e, + 0x7c, 0x34, 0x70, 0x51, 0x53, 0x6c, 0xd2, 0xfe, 0x95, 0x78, 0x79, 0x6f, 0x3b, 0x98, 0x61, 0xc8, + 0x82, 0x23, 0x3e, 0xc6, 0xac, 0x63, 0x7a, 0xf0, 0x0b, 0xd8, 0xfd, 0x1f, 0x97, 0xb1, 0xc4, 0x93, + 0x96, 0xbd, 0x02, 0x7d, 0xf3, 0xe9, 0xac, 0x55, 0x63, 0xe4, 0x6a, 0x11, 0x72, 0x53, 0xc2, 0xd3, + 0xde, 0x03, 0x5a, 0xba, 0x36, 0xa4, 0x38, 0x5a, 0x28, 0xd2, 0x78, 0xa1, 0x68, 0x4f, 0xb2, 0x60, + 0xa1, 0x41, 0xad, 0x4d, 0xd3, 0xfc, 0x08, 0x76, 0xb1, 0x09, 0x19, 0xf1, 0xe4, 0x0f, 0x40, 0x1e, + 0xf6, 0x58, 0x87, 0x78, 0x98, 0x0d, 0x04, 0x6f, 0x6f, 0x5e, 0x9c, 0x14, 0x17, 0x85, 0xf3, 0x43, + 0x55, 0xfa, 0xa5, 0x18, 0x6d, 0x97, 0x15, 0x30, 0x6b, 0x13, 0x07, 0x1f, 0x20, 0x4f, 0x5c, 0x8d, + 0xe1, 0x52, 0xbe, 0x0f, 0x96, 0xfa, 0xc3, 0x23, 0xf7, 0x60, 0xb0, 0x3f, 0xb8, 0x2c, 0x97, 0xf0, + 0xbe, 0x18, 0x6e, 0x11, 0x72, 0x79, 0x0b, 0xe4, 0xdc, 0x5e, 0xeb, 0x00, 0x0d, 0x44, 0x16, 0x12, + 0x5b, 0x67, 0x5d, 0x79, 0x3a, 0xb2, 0xd8, 0xf6, 0x06, 0x2e, 0x23, 0xfa, 0x4e, 0xaf, 0xf5, 0x00, + 0x0d, 0x9a, 0x62, 0x77, 0xad, 0xfa, 0xed, 0xe3, 0x62, 0xe6, 0x9f, 0xc7, 0xc5, 0x8c, 0x9f, 0x86, + 0x51, 0x00, 0x7e, 0x26, 0x56, 0x22, 0x99, 0x88, 0x12, 0xa5, 0xad, 0xf2, 0x96, 0x12, 0x15, 0x85, + 0xed, 0xe6, 0xf7, 0x60, 0x38, 0x34, 0x91, 0x4d, 0xfa, 0xe8, 0xc5, 0x50, 0x9b, 0x48, 0x60, 0xf6, + 0x79, 0x09, 0xac, 0x55, 0x26, 0x03, 0x8e, 0x8e, 0x93, 0x58, 0x04, 0x62, 0x9c, 0xc4, 0xa4, 0x61, + 0xd8, 0xbf, 0x4a, 0xbc, 0x9c, 0x3e, 0x74, 0x4d, 0xc8, 0xd0, 0x0e, 0xf4, 0xa0, 0x4d, 0x6f, 0x34, + 0xe6, 0x0d, 0x90, 0x73, 0xb9, 0x55, 0x31, 0x51, 0x56, 0x13, 0xba, 0x45, 0x70, 0x6c, 0x53, 0x00, + 0x83, 0x59, 0x99, 0x9e, 0xd0, 0xa8, 0xab, 0x22, 0xa1, 0x51, 0xd1, 0x28, 0xb2, 0xe0, 0xa2, 0xec, + 0xba, 0xc8, 0x31, 0xb7, 0x10, 0xda, 0x21, 0xa4, 0x7b, 0xa3, 0x91, 0xbd, 0x03, 0xf2, 0x1e, 0x6a, + 0x63, 0x17, 0x23, 0x87, 0x5d, 0x99, 0xc5, 0x11, 0x54, 0x1e, 0x84, 0x5d, 0x68, 0x8a, 0x3f, 0x1d, + 0x2e, 0xe9, 0x42, 0x5b, 0x89, 0x5d, 0xe8, 0xa7, 0x3f, 0x8b, 0x25, 0x0b, 0xb3, 0x4e, 0xaf, 0xa5, + 0xb7, 0x89, 0x2d, 0x9e, 0x4c, 0xe2, 0x5f, 0x85, 0x9a, 0x07, 0xe2, 0xcd, 0xe3, 0x5b, 0xa0, 0xe3, + 0x1d, 0xeb, 0x0a, 0x66, 0xa3, 0x54, 0x09, 0x66, 0xa3, 0xa2, 0x90, 0xd9, 0x5f, 0xa2, 0x35, 0xf3, + 0xd0, 0x83, 0xed, 0x2e, 0xba, 0x89, 0x89, 0xbc, 0x16, 0x8e, 0x40, 0x9f, 0xcd, 0xe9, 0xfa, 0x8c, + 0x70, 0x3e, 0x9c, 0x84, 0xc1, 0xa8, 0x9b, 0x4a, 0x1e, 0x75, 0xaf, 0xc5, 0xba, 0xf1, 0x64, 0xc9, + 0x04, 0x9e, 0x8e, 0x95, 0x4c, 0x20, 0x1a, 0x06, 0x56, 0x7d, 0x32, 0x0b, 0xa6, 0x1a, 0xd4, 0x92, + 0x2d, 0xb0, 0x10, 0x7f, 0x24, 0x26, 0x4d, 0xb9, 0xc9, 0x57, 0x9a, 0x5a, 0xb9, 0x16, 0x2c, 0x6c, + 0xf4, 0x10, 0xdc, 0x1e, 0x7f, 0xc8, 0xbd, 0x92, 0xbc, 0x7f, 0x0c, 0xa4, 0xbe, 0x71, 0x0d, 0x50, + 0x78, 0x44, 0x1f, 0x2c, 0x27, 0x3e, 0xa1, 0xca, 0xc9, 0x46, 0x92, 0xb0, 0x6a, 0xf5, 0xfa, 0xd8, + 0xf0, 0xdc, 0xaf, 0xc0, 0x4a, 0xda, 0x8c, 0x4f, 0x21, 0x29, 0x05, 0xae, 0xbe, 0xfd, 0x5c, 0xf0, + 0xd0, 0x81, 0x4f, 0xc1, 0xad, 0xb1, 0x21, 0xa9, 0x25, 0x9b, 0x89, 0x62, 0xd4, 0xf2, 0xd5, 0x98, + 0xd0, 0xbe, 0x05, 0x16, 0xe2, 0xc3, 0x22, 0xa5, 0x48, 0x62, 0xb0, 0xb4, 0x22, 0x49, 0x69, 0xd1, + 0x7e, 0x20, 0x63, 0xed, 0x39, 0x25, 0x90, 0x28, 0x26, 0x2d, 0x90, 0xa4, 0x46, 0xe9, 0xdb, 0x1f, + 0x6b, 0x92, 0x29, 0xf6, 0xa3, 0x98, 0x34, 0xfb, 0x49, 0xed, 0x62, 0xe4, 0xbf, 0x68, 0x15, 0x97, + 0xfa, 0x1f, 0x60, 0x2e, 0xf7, 0x7f, 0xfc, 0xd6, 0xaa, 0x33, 0x5f, 0xfb, 0x6d, 0xa0, 0xfe, 0xe0, + 0xf8, 0xef, 0x42, 0xe6, 0xf8, 0xb4, 0x20, 0x3d, 0x3b, 0x2d, 0x48, 0x7f, 0x9d, 0x16, 0xa4, 0xef, + 0xcf, 0x0a, 0x99, 0x67, 0x67, 0x85, 0xcc, 0x1f, 0x67, 0x85, 0xcc, 0x27, 0x95, 0x48, 0xc7, 0xc4, + 0xbc, 0x72, 0x2a, 0x5d, 0xd8, 0xa2, 0xc6, 0xc3, 0x1d, 0xfe, 0xc5, 0x78, 0x18, 0x7e, 0x33, 0xf2, + 0xe6, 0xd9, 0xca, 0xf1, 0xc7, 0xc8, 0x5b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x99, 0xc9, 0x6a, + 0x7b, 0x19, 0x0f, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/opchild/types/types.pb.go b/x/opchild/types/types.pb.go index bfcc7215..2dbe9061 100644 --- a/x/opchild/types/types.pb.go +++ b/x/opchild/types/types.pb.go @@ -4,7 +4,6 @@ package types import ( - bytes "bytes" fmt "fmt" types2 "github.com/cometbft/cometbft/abci/types" _ "github.com/cosmos/cosmos-proto" @@ -14,20 +13,16 @@ import ( _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" - github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" types3 "github.com/initia-labs/OPinit/x/ophost/types" - _ "google.golang.org/protobuf/types/known/timestamppb" io "io" math "math" math_bits "math/bits" - time "time" ) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf -var _ = time.Kitchen // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. @@ -254,47 +249,6 @@ func (m *BridgeInfo) XXX_DiscardUnknown() { var xxx_messageInfo_BridgeInfo proto.InternalMessageInfo -// PendingDeposits defines the set of pending deposits. -type PendingDeposits struct { - // recipient is the address of the recipient. - Recipient string `protobuf:"bytes,1,opt,name=recipient,proto3" json:"recipient,omitempty"` - // coins is a list of coins to be deposited. - Coins github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,2,rep,name=coins,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"coins"` -} - -func (m *PendingDeposits) Reset() { *m = PendingDeposits{} } -func (m *PendingDeposits) String() string { return proto.CompactTextString(m) } -func (*PendingDeposits) ProtoMessage() {} -func (*PendingDeposits) Descriptor() ([]byte, []int) { - return fileDescriptor_2cc6df244b706d68, []int{4} -} -func (m *PendingDeposits) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PendingDeposits) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PendingDeposits.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PendingDeposits) XXX_Merge(src proto.Message) { - xxx_messageInfo_PendingDeposits.Merge(m, src) -} -func (m *PendingDeposits) XXX_Size() int { - return m.Size() -} -func (m *PendingDeposits) XXX_DiscardUnknown() { - xxx_messageInfo_PendingDeposits.DiscardUnknown(m) -} - -var xxx_messageInfo_PendingDeposits proto.InternalMessageInfo - // CoinsWrapper defines the set of coins. type CoinsWrapper struct { Coins github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=coins,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"coins"` @@ -304,7 +258,7 @@ func (m *CoinsWrapper) Reset() { *m = CoinsWrapper{} } func (m *CoinsWrapper) String() string { return proto.CompactTextString(m) } func (*CoinsWrapper) ProtoMessage() {} func (*CoinsWrapper) Descriptor() ([]byte, []int) { - return fileDescriptor_2cc6df244b706d68, []int{5} + return fileDescriptor_2cc6df244b706d68, []int{4} } func (m *CoinsWrapper) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -333,132 +287,84 @@ func (m *CoinsWrapper) XXX_DiscardUnknown() { var xxx_messageInfo_CoinsWrapper proto.InternalMessageInfo -type WithdrawalCommitment struct { - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - SubmitTime time.Time `protobuf:"bytes,5,opt,name=submit_time,json=submitTime,proto3,stdtime" json:"submit_time"` -} - -func (m *WithdrawalCommitment) Reset() { *m = WithdrawalCommitment{} } -func (m *WithdrawalCommitment) String() string { return proto.CompactTextString(m) } -func (*WithdrawalCommitment) ProtoMessage() {} -func (*WithdrawalCommitment) Descriptor() ([]byte, []int) { - return fileDescriptor_2cc6df244b706d68, []int{6} -} -func (m *WithdrawalCommitment) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *WithdrawalCommitment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_WithdrawalCommitment.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *WithdrawalCommitment) XXX_Merge(src proto.Message) { - xxx_messageInfo_WithdrawalCommitment.Merge(m, src) -} -func (m *WithdrawalCommitment) XXX_Size() int { - return m.Size() -} -func (m *WithdrawalCommitment) XXX_DiscardUnknown() { - xxx_messageInfo_WithdrawalCommitment.DiscardUnknown(m) -} - -var xxx_messageInfo_WithdrawalCommitment proto.InternalMessageInfo - func init() { proto.RegisterEnum("opinit.opchild.v1.ResponseResultType", ResponseResultType_name, ResponseResultType_value) proto.RegisterType((*Params)(nil), "opinit.opchild.v1.Params") proto.RegisterType((*Validator)(nil), "opinit.opchild.v1.Validator") proto.RegisterType((*ValidatorUpdates)(nil), "opinit.opchild.v1.ValidatorUpdates") proto.RegisterType((*BridgeInfo)(nil), "opinit.opchild.v1.BridgeInfo") - proto.RegisterType((*PendingDeposits)(nil), "opinit.opchild.v1.PendingDeposits") proto.RegisterType((*CoinsWrapper)(nil), "opinit.opchild.v1.CoinsWrapper") - proto.RegisterType((*WithdrawalCommitment)(nil), "opinit.opchild.v1.WithdrawalCommitment") } func init() { proto.RegisterFile("opinit/opchild/v1/types.proto", fileDescriptor_2cc6df244b706d68) } var fileDescriptor_2cc6df244b706d68 = []byte{ - // 1156 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xbf, 0x6f, 0xdb, 0x46, - 0x14, 0x16, 0x63, 0xe5, 0x87, 0x4e, 0xb2, 0x2d, 0x1f, 0x1c, 0x54, 0x96, 0x13, 0x52, 0xe0, 0x52, - 0x21, 0xad, 0x29, 0x28, 0x69, 0x8a, 0xd6, 0x53, 0x43, 0x45, 0x29, 0xdc, 0x04, 0xb6, 0x40, 0xd9, - 0x0d, 0x9a, 0x85, 0x38, 0x92, 0x67, 0xe9, 0x10, 0x92, 0x47, 0xf0, 0x4e, 0x8e, 0xb5, 0x76, 0x0a, - 0xbc, 0x34, 0x63, 0x97, 0x00, 0x01, 0xba, 0xa4, 0x99, 0x52, 0xa0, 0x5b, 0xff, 0x81, 0xa0, 0x40, - 0x81, 0xa0, 0x53, 0x27, 0xa5, 0x75, 0x86, 0x74, 0xd6, 0xd0, 0xb9, 0xb8, 0xe3, 0xe9, 0x47, 0x9c, - 0x04, 0xe9, 0xd2, 0xc5, 0xbe, 0x7b, 0xdf, 0xf7, 0xde, 0xbb, 0xfb, 0xde, 0x7b, 0x47, 0x81, 0x8b, - 0x34, 0x21, 0x31, 0xe1, 0x0d, 0x9a, 0xf8, 0x7d, 0x12, 0x06, 0x8d, 0x83, 0x66, 0x83, 0x0f, 0x13, - 0xcc, 0xac, 0x24, 0xa5, 0x9c, 0xc2, 0x95, 0x0c, 0xb6, 0x14, 0x6c, 0x1d, 0x34, 0xab, 0x2b, 0x28, - 0x22, 0x31, 0x6d, 0xc8, 0xbf, 0x19, 0xab, 0xaa, 0xfb, 0x94, 0x45, 0x94, 0x35, 0x3c, 0xc4, 0x70, - 0xe3, 0xa0, 0xe9, 0x61, 0x8e, 0x9a, 0x0d, 0x9f, 0x92, 0x58, 0xe1, 0x6b, 0x19, 0xee, 0xca, 0x5d, - 0x23, 0xdb, 0x28, 0x68, 0xb5, 0x47, 0x7b, 0x34, 0xb3, 0x8b, 0xd5, 0xc4, 0xa1, 0x47, 0x69, 0x2f, - 0xc4, 0x0d, 0xb9, 0xf3, 0x06, 0xfb, 0x0d, 0x14, 0x0f, 0x15, 0x64, 0x9c, 0x84, 0x38, 0x89, 0x30, - 0xe3, 0x28, 0x4a, 0x14, 0xe1, 0xc2, 0xf4, 0x46, 0x7d, 0xca, 0xf8, 0x89, 0x0b, 0x55, 0xd7, 0x39, - 0x8e, 0x03, 0x9c, 0x46, 0x24, 0xe6, 0x0d, 0xe4, 0xf9, 0x64, 0x1e, 0x34, 0x7f, 0xcb, 0x83, 0x33, - 0x1d, 0x94, 0xa2, 0x88, 0xc1, 0x2f, 0xc0, 0x52, 0x84, 0x0e, 0xdd, 0x03, 0x14, 0x92, 0x00, 0x71, - 0x9a, 0xb2, 0x8a, 0x56, 0xd3, 0xea, 0x8b, 0xf6, 0xda, 0x78, 0x64, 0x9c, 0x1f, 0xa2, 0x28, 0xdc, - 0x34, 0x5f, 0xc7, 0x4d, 0x67, 0x31, 0x42, 0x87, 0x5f, 0x4f, 0xf7, 0xf0, 0x16, 0x80, 0x7d, 0xc2, - 0x38, 0x4d, 0x89, 0x8f, 0x42, 0x17, 0xc7, 0x3c, 0x25, 0x98, 0x55, 0x4e, 0xc9, 0x28, 0x17, 0xc7, - 0x23, 0x63, 0x2d, 0x8b, 0xf2, 0x26, 0xc7, 0x74, 0x56, 0x66, 0xc6, 0x76, 0x66, 0x83, 0xdf, 0x69, - 0x60, 0x29, 0x22, 0xb1, 0xdb, 0x43, 0x42, 0x46, 0xe2, 0x63, 0x56, 0x59, 0xa8, 0x2d, 0xd4, 0x8b, - 0x97, 0x2f, 0x58, 0x4a, 0x4f, 0x21, 0xbe, 0xa5, 0xc4, 0xb7, 0xae, 0x63, 0xbf, 0x45, 0x49, 0x6c, - 0xdf, 0x7c, 0x36, 0x32, 0x72, 0xe3, 0x91, 0xb1, 0xaa, 0x8e, 0x3c, 0x1f, 0xc1, 0x7c, 0xf2, 0xc2, - 0xf8, 0xa8, 0x47, 0x78, 0x7f, 0xe0, 0x59, 0x3e, 0x8d, 0x54, 0x5d, 0xd4, 0xbf, 0x0d, 0x16, 0xdc, - 0x55, 0xda, 0xa8, 0x58, 0xcc, 0x29, 0x45, 0x24, 0xfe, 0x12, 0xb1, 0x8e, 0x4c, 0x0f, 0x7d, 0x50, - 0xf6, 0x52, 0x12, 0xf4, 0xb0, 0x8b, 0x0f, 0xb1, 0x3f, 0x90, 0x1a, 0xe5, 0x6b, 0x0b, 0xf5, 0x82, - 0xfd, 0xd9, 0x78, 0x64, 0x7c, 0x90, 0x25, 0x3c, 0xc9, 0x30, 0x7f, 0xff, 0x79, 0x63, 0x55, 0x1d, - 0xf8, 0x5a, 0x10, 0xa4, 0x98, 0xb1, 0x2e, 0x4f, 0x49, 0xdc, 0x7b, 0xfc, 0xea, 0xe9, 0x25, 0xcd, - 0x59, 0xce, 0xf8, 0xed, 0x09, 0x1d, 0xb6, 0xc0, 0x69, 0x14, 0x44, 0x24, 0xae, 0x9c, 0xae, 0x69, - 0xf5, 0x82, 0xbd, 0x31, 0x1e, 0x19, 0xa5, 0x2c, 0xb2, 0x34, 0xbf, 0x27, 0x5c, 0xe6, 0x0b, 0xef, - 0x80, 0xc5, 0x7d, 0x8c, 0xdd, 0x7b, 0x7d, 0xc2, 0x71, 0x48, 0x18, 0xaf, 0x9c, 0x91, 0xc7, 0xbc, - 0x3a, 0xd3, 0xe5, 0x35, 0xf8, 0x3d, 0x41, 0x4b, 0xfb, 0x18, 0xdf, 0x9e, 0x70, 0x37, 0xd7, 0xbf, - 0x7f, 0x64, 0xe4, 0xfe, 0x7e, 0x64, 0x68, 0x47, 0xaf, 0x9e, 0x5e, 0x5a, 0x9a, 0x4c, 0x51, 0xd6, - 0x44, 0xe6, 0x2f, 0xa7, 0x40, 0x61, 0xda, 0x11, 0xf0, 0x63, 0x70, 0x36, 0xa2, 0x31, 0xb9, 0x8b, - 0x53, 0xd9, 0x4b, 0x05, 0x1b, 0x8e, 0x47, 0xc6, 0x92, 0x2a, 0x4c, 0x06, 0x98, 0xce, 0x84, 0x02, - 0x6f, 0x80, 0x32, 0x4d, 0x70, 0x2a, 0x3c, 0x5d, 0x94, 0x9d, 0x42, 0x36, 0x4f, 0xc1, 0x5e, 0x9f, - 0xc9, 0x7b, 0x92, 0x61, 0x3a, 0xcb, 0x13, 0x93, 0x3a, 0x39, 0xe4, 0xa0, 0xec, 0xd3, 0x98, 0xe1, - 0x98, 0x0d, 0x98, 0x9b, 0x0c, 0xbc, 0xbb, 0x78, 0x58, 0x59, 0xa8, 0x69, 0xf5, 0xe2, 0xe5, 0x55, - 0x2b, 0x1b, 0x25, 0x6b, 0x32, 0x4a, 0xd6, 0xb5, 0x78, 0x68, 0x5f, 0x99, 0x45, 0x3f, 0xe9, 0x67, - 0xfe, 0x3a, 0x13, 0xc6, 0x4f, 0x87, 0x09, 0xa7, 0x56, 0x67, 0xe0, 0xdd, 0xc4, 0x43, 0x67, 0x79, - 0x4a, 0xed, 0x48, 0x26, 0xfc, 0x04, 0x00, 0x61, 0x72, 0x13, 0x7a, 0x0f, 0xa7, 0x95, 0x7c, 0x4d, - 0xab, 0x2f, 0xd8, 0xe7, 0xc7, 0x23, 0x63, 0x65, 0x16, 0x39, 0xc3, 0x4c, 0xa7, 0x20, 0x36, 0x1d, - 0xb1, 0xde, 0x2c, 0xdd, 0x7f, 0x64, 0xe4, 0x94, 0xa0, 0x39, 0xd3, 0x05, 0xe5, 0xa9, 0x78, 0x7b, - 0x49, 0x80, 0x38, 0x66, 0xb0, 0x0d, 0xce, 0x0e, 0xb2, 0x65, 0x45, 0x93, 0xed, 0x5f, 0xb3, 0x66, - 0x03, 0x6d, 0x89, 0x81, 0xb6, 0x4e, 0xf8, 0xd8, 0x05, 0x31, 0x02, 0x59, 0xe9, 0x26, 0xbe, 0x9b, - 0x79, 0x99, 0xe0, 0x1f, 0x0d, 0x00, 0x5b, 0x36, 0xdc, 0x56, 0xbc, 0x4f, 0xe1, 0x3a, 0x28, 0xa8, - 0x76, 0x25, 0x81, 0xac, 0x50, 0xde, 0x39, 0x97, 0x19, 0xb6, 0x02, 0xf8, 0x39, 0x28, 0x2a, 0x50, - 0x48, 0xad, 0x2a, 0x51, 0x79, 0x57, 0xa7, 0x38, 0x20, 0x23, 0x0b, 0x23, 0xd4, 0x41, 0x31, 0x6c, - 0xba, 0x7e, 0x1f, 0x91, 0x58, 0x44, 0x16, 0xe2, 0x17, 0x9c, 0x42, 0xd8, 0x6c, 0x09, 0xcb, 0x56, - 0x00, 0x6b, 0xa0, 0x24, 0xf0, 0x90, 0xe0, 0x98, 0x0b, 0x42, 0x5e, 0x12, 0x40, 0xd8, 0x6c, 0x49, - 0xd3, 0x56, 0x00, 0xb7, 0xc1, 0xa2, 0x4a, 0xee, 0xd3, 0x78, 0x9f, 0xf4, 0xe4, 0x34, 0x14, 0x2f, - 0xeb, 0xd6, 0xf4, 0x75, 0x16, 0x4f, 0x9d, 0x75, 0xd0, 0xb4, 0xb2, 0xeb, 0xb4, 0x24, 0x6b, 0xfe, - 0xe6, 0x25, 0x6f, 0x0e, 0x30, 0x7f, 0xd2, 0xc0, 0x72, 0x07, 0xc7, 0x01, 0x89, 0x7b, 0xd7, 0x71, - 0x42, 0x19, 0xe1, 0x0c, 0x7e, 0x0a, 0x0a, 0x29, 0xf6, 0x49, 0x22, 0x52, 0xaa, 0xfe, 0x7c, 0xf7, - 0xf5, 0x66, 0x54, 0xb8, 0x0f, 0x4e, 0x8b, 0x97, 0x5e, 0x34, 0xa7, 0xa8, 0xc7, 0xda, 0x5b, 0x9f, - 0x23, 0xf9, 0x16, 0x5d, 0x15, 0xc7, 0x79, 0xf2, 0xc2, 0xa8, 0xff, 0x87, 0x37, 0x47, 0x3e, 0x38, - 0x6a, 0x88, 0x65, 0x78, 0xf3, 0x00, 0x94, 0xa4, 0xf1, 0x76, 0x8a, 0x92, 0x04, 0xa7, 0xb3, 0xbc, - 0xda, 0xff, 0x9b, 0xf7, 0x5b, 0x0d, 0xac, 0xde, 0x26, 0xbc, 0x1f, 0xa4, 0xe8, 0x1e, 0x0a, 0x5b, - 0x34, 0x8a, 0x08, 0x8f, 0xc4, 0xc5, 0x75, 0xd1, 0xe2, 0x93, 0x9d, 0x54, 0xac, 0xe4, 0xcc, 0x59, - 0xe0, 0x57, 0xa0, 0xc8, 0x06, 0x5e, 0x44, 0xb8, 0x2b, 0xbe, 0x50, 0xaa, 0x64, 0xd5, 0x37, 0x66, - 0x6e, 0x77, 0xf2, 0xf9, 0xb2, 0x17, 0xc5, 0x39, 0x1f, 0xbc, 0x30, 0xb4, 0x2c, 0x3f, 0xc8, 0xbc, - 0x05, 0x7e, 0xe9, 0x47, 0x0d, 0x40, 0x07, 0xb3, 0x44, 0x4c, 0x99, 0x83, 0xd9, 0x20, 0xe4, 0xbb, - 0xc3, 0x04, 0xc3, 0xab, 0xa0, 0xe6, 0xb4, 0xbb, 0x9d, 0x9d, 0xed, 0x6e, 0xdb, 0x75, 0xda, 0xdd, - 0xbd, 0x5b, 0xbb, 0xee, 0xee, 0x37, 0x9d, 0xb6, 0xbb, 0xb7, 0xdd, 0xed, 0xb4, 0x5b, 0x5b, 0x37, - 0xb6, 0xda, 0xd7, 0xcb, 0xb9, 0xea, 0xf2, 0xd1, 0xc3, 0x5a, 0x71, 0xce, 0x04, 0x3f, 0x04, 0x6b, - 0x6f, 0x75, 0xdb, 0xde, 0xd9, 0xe9, 0x94, 0xb5, 0xea, 0xb9, 0xa3, 0x87, 0xb5, 0xbc, 0x58, 0xc3, - 0x0d, 0x70, 0xe1, 0xad, 0xc4, 0xee, 0x5e, 0xab, 0xd5, 0xee, 0x76, 0xcb, 0xa7, 0xaa, 0xc5, 0xa3, - 0x87, 0xb5, 0xb3, 0x6a, 0x5b, 0xcd, 0xdf, 0xff, 0x41, 0xcf, 0xd9, 0x3b, 0xcf, 0xfe, 0xd2, 0x73, - 0x8f, 0x8f, 0x75, 0xed, 0xd9, 0xb1, 0xae, 0x3d, 0x3f, 0xd6, 0xb5, 0x3f, 0x8f, 0x75, 0xed, 0xc1, - 0x4b, 0x3d, 0xf7, 0xfc, 0xa5, 0x9e, 0xfb, 0xe3, 0xa5, 0x9e, 0xbb, 0xb3, 0x31, 0x57, 0x08, 0xd1, - 0xbf, 0x04, 0x6d, 0x84, 0xc8, 0x63, 0x8d, 0x9d, 0x8e, 0xfc, 0x70, 0x1f, 0x4e, 0x7f, 0x8c, 0xc8, - 0x9a, 0x78, 0x67, 0xa4, 0x56, 0x57, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x9f, 0xf5, 0x5f, 0xd8, - 0xab, 0x08, 0x00, 0x00, + // 1040 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xbf, 0x6f, 0xdb, 0x46, + 0x14, 0x16, 0x63, 0xc5, 0x8e, 0x4e, 0xb2, 0x2d, 0x1f, 0x1c, 0x54, 0x96, 0x1d, 0x92, 0xe0, 0x52, + 0xc1, 0xad, 0x48, 0xc8, 0xa9, 0x81, 0xd6, 0x53, 0x23, 0x45, 0x29, 0x84, 0x04, 0xb6, 0x40, 0xd9, + 0x0d, 0x9a, 0x85, 0x38, 0x91, 0x27, 0xe9, 0x60, 0x92, 0x47, 0xf0, 0x28, 0xc5, 0xfa, 0x0f, 0x02, + 0x2f, 0xed, 0xd8, 0xc5, 0x80, 0x81, 0x2e, 0x69, 0xa6, 0x0c, 0xdd, 0xfa, 0x0f, 0x18, 0x05, 0x0a, + 0x04, 0x9d, 0x3a, 0x29, 0xad, 0x3d, 0xa4, 0xb3, 0x86, 0xce, 0xc5, 0x1d, 0xa9, 0x1f, 0x71, 0x5d, + 0xa4, 0x8b, 0x7d, 0xf7, 0xbe, 0xef, 0x7d, 0xf7, 0xf4, 0xdd, 0x7b, 0x47, 0x70, 0x8f, 0x06, 0xc4, + 0x27, 0x91, 0x41, 0x03, 0xbb, 0x47, 0x5c, 0xc7, 0x18, 0x54, 0x8c, 0x68, 0x18, 0x60, 0xa6, 0x07, + 0x21, 0x8d, 0x28, 0x5c, 0x8b, 0x61, 0x3d, 0x81, 0xf5, 0x41, 0xa5, 0xb8, 0x86, 0x3c, 0xe2, 0x53, + 0x43, 0xfc, 0x8d, 0x59, 0x45, 0xd9, 0xa6, 0xcc, 0xa3, 0xcc, 0x68, 0x23, 0x86, 0x8d, 0x41, 0xa5, + 0x8d, 0x23, 0x54, 0x31, 0x6c, 0x4a, 0xfc, 0x04, 0xdf, 0x88, 0x71, 0x4b, 0xec, 0x8c, 0x78, 0x93, + 0x40, 0xeb, 0x5d, 0xda, 0xa5, 0x71, 0x9c, 0xaf, 0x26, 0x09, 0x5d, 0x4a, 0xbb, 0x2e, 0x36, 0xc4, + 0xae, 0xdd, 0xef, 0x18, 0xc8, 0x1f, 0x26, 0xd0, 0xd6, 0xb4, 0xe0, 0x1e, 0x65, 0xd1, 0xb5, 0x7a, + 0x8b, 0x9b, 0x11, 0xf6, 0x1d, 0x1c, 0x7a, 0xc4, 0x8f, 0x0c, 0xd4, 0xb6, 0xc9, 0x3c, 0xa8, 0xfd, + 0x9a, 0x06, 0x8b, 0x4d, 0x14, 0x22, 0x8f, 0xc1, 0x2f, 0xc1, 0x8a, 0x87, 0x4e, 0xac, 0x01, 0x72, + 0x89, 0x83, 0x22, 0x1a, 0xb2, 0x82, 0xa4, 0x4a, 0xa5, 0xe5, 0xea, 0xc6, 0x78, 0xa4, 0xdc, 0x1d, + 0x22, 0xcf, 0xdd, 0xd3, 0xde, 0xc7, 0x35, 0x73, 0xd9, 0x43, 0x27, 0x5f, 0x4f, 0xf7, 0xf0, 0x09, + 0x80, 0x3d, 0xc2, 0x22, 0x1a, 0x12, 0x1b, 0xb9, 0x16, 0xf6, 0xa3, 0x90, 0x60, 0x56, 0xb8, 0x25, + 0x54, 0xee, 0x8d, 0x47, 0xca, 0x46, 0xac, 0xf2, 0x6f, 0x8e, 0x66, 0xae, 0xcd, 0x82, 0xf5, 0x38, + 0x06, 0xbf, 0x95, 0xc0, 0x8a, 0x47, 0x7c, 0xab, 0x8b, 0xb8, 0x4b, 0xc4, 0xc6, 0xac, 0xb0, 0xa0, + 0x2e, 0x94, 0xb2, 0x3b, 0x5b, 0x7a, 0x62, 0x17, 0xf7, 0x56, 0x4f, 0xbc, 0xd5, 0x1f, 0x62, 0xbb, + 0x46, 0x89, 0x5f, 0x7d, 0x7c, 0x31, 0x52, 0x52, 0xe3, 0x91, 0xb2, 0x9e, 0x94, 0x3c, 0xaf, 0xa0, + 0xbd, 0x7a, 0xab, 0x7c, 0xd2, 0x25, 0x51, 0xaf, 0xdf, 0xd6, 0x6d, 0xea, 0x25, 0xb6, 0x27, 0xff, + 0xca, 0xcc, 0x39, 0x4e, 0xbc, 0x49, 0xb4, 0x98, 0x99, 0xf3, 0x88, 0xff, 0x15, 0x62, 0x4d, 0x71, + 0x3c, 0xb4, 0x41, 0xbe, 0x1d, 0x12, 0xa7, 0x8b, 0x2d, 0x7c, 0x82, 0xed, 0xbe, 0xf0, 0x28, 0xad, + 0x2e, 0x94, 0x32, 0xd5, 0xcf, 0xc7, 0x23, 0xe5, 0xa3, 0xf8, 0xc0, 0xeb, 0x0c, 0xed, 0xb7, 0x9f, + 0xca, 0xeb, 0x49, 0xc1, 0x0f, 0x1c, 0x27, 0xc4, 0x8c, 0xb5, 0xa2, 0x90, 0xf8, 0xdd, 0x97, 0xef, + 0x5e, 0x6f, 0x4b, 0xe6, 0x6a, 0xcc, 0xaf, 0x4f, 0xe8, 0xb0, 0x06, 0x6e, 0x23, 0xc7, 0x23, 0x7e, + 0xe1, 0xb6, 0x2a, 0x95, 0x32, 0xd5, 0xf2, 0x78, 0xa4, 0xe4, 0x62, 0x65, 0x11, 0xfe, 0x80, 0x5c, + 0x9c, 0x0b, 0x9f, 0x81, 0xe5, 0x0e, 0xc6, 0xd6, 0xf3, 0x1e, 0x89, 0xb0, 0x4b, 0x58, 0x54, 0x58, + 0x14, 0x65, 0xee, 0xce, 0x7c, 0x79, 0x0f, 0xfe, 0x80, 0x68, 0xae, 0x83, 0xf1, 0xd3, 0x09, 0x77, + 0x6f, 0xf3, 0xfb, 0x73, 0x25, 0xf5, 0xd7, 0xb9, 0x22, 0x9d, 0xbe, 0x7b, 0xbd, 0xbd, 0x32, 0x19, + 0x92, 0xb8, 0x89, 0xb4, 0x9f, 0x6f, 0x81, 0xcc, 0xb4, 0x23, 0xe0, 0xa7, 0x60, 0xc9, 0xa3, 0x3e, + 0x39, 0xc6, 0xa1, 0xe8, 0xa5, 0x4c, 0x15, 0x8e, 0x47, 0xca, 0x4a, 0x72, 0x31, 0x31, 0xa0, 0x99, + 0x13, 0x0a, 0x7c, 0x04, 0xf2, 0x34, 0xc0, 0x21, 0xcf, 0xb4, 0x50, 0x5c, 0x85, 0x68, 0x9e, 0x4c, + 0x75, 0x73, 0x66, 0xef, 0x75, 0x86, 0x66, 0xae, 0x4e, 0x42, 0x49, 0xe5, 0x30, 0x02, 0x79, 0x9b, + 0xfa, 0x0c, 0xfb, 0xac, 0xcf, 0xac, 0xa0, 0xdf, 0x3e, 0xc6, 0xc3, 0xc2, 0x82, 0x2a, 0x95, 0xb2, + 0x3b, 0xeb, 0x7a, 0x3c, 0x44, 0xfa, 0x64, 0x88, 0xf4, 0x07, 0xfe, 0xb0, 0x7a, 0x7f, 0xa6, 0x7e, + 0x3d, 0x4f, 0xfb, 0x65, 0x66, 0x8c, 0x1d, 0x0e, 0x83, 0x88, 0xea, 0xcd, 0x7e, 0xfb, 0x31, 0x1e, + 0x9a, 0xab, 0x53, 0x6a, 0x53, 0x30, 0xe1, 0x67, 0x00, 0xf0, 0x90, 0x15, 0xd0, 0xe7, 0x38, 0x2c, + 0xa4, 0x55, 0xa9, 0xb4, 0x50, 0xbd, 0x3b, 0x1e, 0x29, 0x6b, 0x33, 0xe5, 0x18, 0xd3, 0xcc, 0x0c, + 0xdf, 0x34, 0xf9, 0x7a, 0x2f, 0xf7, 0xe2, 0x5c, 0x49, 0x25, 0x86, 0xa6, 0x34, 0x0b, 0xe4, 0xa7, + 0xe6, 0x1d, 0x05, 0x0e, 0x8a, 0x30, 0x83, 0x75, 0xb0, 0xd4, 0x8f, 0x97, 0x05, 0x49, 0xb4, 0xbf, + 0xaa, 0xcf, 0x06, 0x5a, 0xe7, 0x03, 0xad, 0x5f, 0xcb, 0xa9, 0x66, 0xf8, 0x08, 0xc4, 0x57, 0x37, + 0xc9, 0xdd, 0x4b, 0x8b, 0x03, 0xfe, 0x96, 0x00, 0xa8, 0x8a, 0x86, 0x6b, 0xf8, 0x1d, 0x0a, 0x37, + 0x41, 0x26, 0x69, 0x57, 0xe2, 0x88, 0x1b, 0x4a, 0x9b, 0x77, 0xe2, 0x40, 0xc3, 0x81, 0x5f, 0x80, + 0x6c, 0x02, 0x72, 0xab, 0x93, 0x9b, 0x28, 0xfc, 0x57, 0xa7, 0x98, 0x20, 0x26, 0xf3, 0x20, 0x94, + 0x41, 0xd6, 0xad, 0x58, 0x76, 0x0f, 0x11, 0x9f, 0x2b, 0x73, 0xf3, 0x33, 0x66, 0xc6, 0xad, 0xd4, + 0x78, 0xa4, 0xe1, 0x40, 0x15, 0xe4, 0x38, 0xee, 0x12, 0xec, 0x47, 0x9c, 0x90, 0x16, 0x04, 0xe0, + 0x56, 0x6a, 0x22, 0xd4, 0x70, 0xe0, 0x3e, 0x58, 0x4e, 0x0e, 0xb7, 0xa9, 0xdf, 0x21, 0x5d, 0x31, + 0x0d, 0xd9, 0x1d, 0x59, 0x9f, 0x3e, 0xbe, 0xfc, 0xa9, 0xd3, 0x07, 0x15, 0x3d, 0xfe, 0x39, 0x35, + 0xc1, 0x9a, 0xff, 0xe5, 0xb9, 0xf6, 0x1c, 0xa0, 0x0d, 0x40, 0x4e, 0x4c, 0xf4, 0xd3, 0x10, 0x05, + 0x01, 0x0e, 0x61, 0x07, 0xdc, 0xe6, 0x8f, 0xf1, 0xc4, 0xd3, 0x8d, 0x1b, 0x9f, 0x14, 0xf1, 0x9e, + 0xec, 0x72, 0xc9, 0x57, 0x6f, 0x95, 0xd2, 0xff, 0x78, 0x37, 0xc4, 0x11, 0xc9, 0x20, 0x0a, 0xf9, + 0xed, 0x1f, 0x25, 0x00, 0x4d, 0xcc, 0x02, 0xde, 0x2c, 0x26, 0x66, 0x7d, 0x37, 0x3a, 0x1c, 0x06, + 0x18, 0xee, 0x02, 0xd5, 0xac, 0xb7, 0x9a, 0x07, 0xfb, 0xad, 0xba, 0x65, 0xd6, 0x5b, 0x47, 0x4f, + 0x0e, 0xad, 0xc3, 0x6f, 0x9a, 0x75, 0xeb, 0x68, 0xbf, 0xd5, 0xac, 0xd7, 0x1a, 0x8f, 0x1a, 0xf5, + 0x87, 0xf9, 0x54, 0x71, 0xf5, 0xf4, 0x4c, 0xcd, 0xce, 0x85, 0xe0, 0xc7, 0x60, 0xe3, 0xc6, 0xb4, + 0xfd, 0x83, 0x83, 0x66, 0x5e, 0x2a, 0xde, 0x39, 0x3d, 0x53, 0xd3, 0x7c, 0x0d, 0xcb, 0x60, 0xeb, + 0x46, 0x62, 0xeb, 0xa8, 0x56, 0xab, 0xb7, 0x5a, 0xf9, 0x5b, 0xc5, 0xec, 0xe9, 0x99, 0xba, 0x94, + 0x6c, 0x8b, 0xe9, 0x17, 0x3f, 0xc8, 0xa9, 0xea, 0xc1, 0xc5, 0x9f, 0x72, 0xea, 0xe5, 0xa5, 0x2c, + 0x5d, 0x5c, 0xca, 0xd2, 0x9b, 0x4b, 0x59, 0xfa, 0xe3, 0x52, 0x96, 0xbe, 0xbb, 0x92, 0x53, 0x6f, + 0xae, 0xe4, 0xd4, 0xef, 0x57, 0x72, 0xea, 0x59, 0x79, 0xce, 0x03, 0x7e, 0x0d, 0x04, 0x95, 0x5d, + 0xd4, 0x66, 0xc6, 0x41, 0x53, 0x7c, 0x7f, 0x4e, 0xa6, 0x9f, 0x4c, 0x61, 0x47, 0x7b, 0x51, 0x8c, + 0xd9, 0xfd, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x2d, 0x89, 0xf2, 0x29, 0x51, 0x07, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -551,38 +457,6 @@ func (this *BridgeInfo) Equal(that interface{}) bool { } return true } -func (this *PendingDeposits) Equal(that interface{}) bool { - if that == nil { - return this == nil - } - - that1, ok := that.(*PendingDeposits) - if !ok { - that2, ok := that.(PendingDeposits) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - return this == nil - } else if this == nil { - return false - } - if this.Recipient != that1.Recipient { - return false - } - if len(this.Coins) != len(that1.Coins) { - return false - } - for i := range this.Coins { - if !this.Coins[i].Equal(&that1.Coins[i]) { - return false - } - } - return true -} func (this *CoinsWrapper) Equal(that interface{}) bool { if that == nil { return this == nil @@ -612,33 +486,6 @@ func (this *CoinsWrapper) Equal(that interface{}) bool { } return true } -func (this *WithdrawalCommitment) Equal(that interface{}) bool { - if that == nil { - return this == nil - } - - that1, ok := that.(*WithdrawalCommitment) - if !ok { - that2, ok := that.(WithdrawalCommitment) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - return this == nil - } else if this == nil { - return false - } - if !bytes.Equal(this.Commitment, that1.Commitment) { - return false - } - if !this.SubmitTime.Equal(that1.SubmitTime) { - return false - } - return true -} func (m *Params) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -861,50 +708,6 @@ func (m *BridgeInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *PendingDeposits) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PendingDeposits) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PendingDeposits) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Coins) > 0 { - for iNdEx := len(m.Coins) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Coins[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTypes(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - if len(m.Recipient) > 0 { - i -= len(m.Recipient) - copy(dAtA[i:], m.Recipient) - i = encodeVarintTypes(dAtA, i, uint64(len(m.Recipient))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *CoinsWrapper) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -942,44 +745,6 @@ func (m *CoinsWrapper) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *WithdrawalCommitment) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *WithdrawalCommitment) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *WithdrawalCommitment) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - n3, err3 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.SubmitTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.SubmitTime):]) - if err3 != nil { - return 0, err3 - } - i -= n3 - i = encodeVarintTypes(dAtA, i, uint64(n3)) - i-- - dAtA[i] = 0x2a - if len(m.Commitment) > 0 { - i -= len(m.Commitment) - copy(dAtA[i:], m.Commitment) - i = encodeVarintTypes(dAtA, i, uint64(len(m.Commitment))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func encodeVarintTypes(dAtA []byte, offset int, v uint64) int { offset -= sovTypes(v) base := offset @@ -1093,25 +858,6 @@ func (m *BridgeInfo) Size() (n int) { return n } -func (m *PendingDeposits) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Recipient) - if l > 0 { - n += 1 + l + sovTypes(uint64(l)) - } - if len(m.Coins) > 0 { - for _, e := range m.Coins { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - return n -} - func (m *CoinsWrapper) Size() (n int) { if m == nil { return 0 @@ -1127,21 +873,6 @@ func (m *CoinsWrapper) Size() (n int) { return n } -func (m *WithdrawalCommitment) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Commitment) - if l > 0 { - n += 1 + l + sovTypes(uint64(l)) - } - l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.SubmitTime) - n += 1 + l + sovTypes(uint64(l)) - return n -} - func sovTypes(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -1817,122 +1548,6 @@ func (m *BridgeInfo) Unmarshal(dAtA []byte) error { } return nil } -func (m *PendingDeposits) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PendingDeposits: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PendingDeposits: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Recipient", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Recipient = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Coins", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Coins = append(m.Coins, types.Coin{}) - if err := m.Coins[len(m.Coins)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *CoinsWrapper) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -2017,123 +1632,6 @@ func (m *CoinsWrapper) Unmarshal(dAtA []byte) error { } return nil } -func (m *WithdrawalCommitment) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: WithdrawalCommitment: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: WithdrawalCommitment: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthTypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Commitment = append(m.Commitment[:0], dAtA[iNdEx:postIndex]...) - if m.Commitment == nil { - m.Commitment = []byte{} - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubmitTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.SubmitTime, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func skipTypes(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/ophost/client/cli/tx.go b/x/ophost/client/cli/tx.go index 04e32f25..e58d6e83 100644 --- a/x/ophost/client/cli/tx.go +++ b/x/ophost/client/cli/tx.go @@ -38,7 +38,6 @@ func GetTxCmd(ac address.Codec) *cobra.Command { NewDeleteOutput(ac), NewInitiateTokenDeposit(ac), NewFinalizeTokenWithdrawal(ac), - NewForceTokenWithdrawal(ac), ) return ophostTxCmd @@ -400,84 +399,3 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { return cmd } - -func NewForceTokenWithdrawal(ac address.Codec) *cobra.Command { - cmd := &cobra.Command{ - Use: "force-token-withdrawal [path/to/withdrawal-info.json]", - Short: "send a tx to force withdraw", - Long: strings.TrimSpace( - fmt.Sprintf( - `send a tx to finalize token withdrawal with withdrawal info json. - Example: - $ %s tx ophost finalize-token-withdrawal path/to/withdrawal-info.json - - Where withrawal-info.json contains: - { - "bridge_id": "1", - "output_index": "1", - "sequence": "1", - "sender" : "bech32-address", - "amount": {"amount": "10000000", "denom": "uinit"}, - "commitment_proof": {"ops":[{"type":"ics23:iavl","key":"","data":""}, ...]}, - "app_hash": "base64-encoded app-hash", - "app_hash_proof": {"total": 1, "index": 1, "leaf_hash": "base64-encoded leaf-hash", "aunts": ["base64-encoded aunts"]}, - "version": "base64-encoded version", - "storage_root": "base64-encoded storage-root", - "last_block_hash": "base64-encoded latest-block-hash" - }`, version.AppName, - ), - ), - Args: cobra.ExactArgs(1), - RunE: func(cmd *cobra.Command, args []string) error { - clientCtx, err := client.GetClientTxContext(cmd) - if err != nil { - return err - } - - withdrawalBytes, err := os.ReadFile(args[0]) - if err != nil { - return err - } - withdrawalInfo := types.MsgForceTokenWithdrawal{} - err = clientCtx.Codec.UnmarshalJSON(withdrawalBytes, &withdrawalInfo) - if err != nil { - return err - } - - // cannot validate sender address here because it is l2 address. - sender := withdrawalInfo.Sender - if len(sender) == 0 { - return fmt.Errorf("sender address is required") - } - - receiver, err := ac.BytesToString(clientCtx.GetFromAddress()) - if err != nil { - return err - } - - msg := types.NewMsgForceTokenWithdrawal( - withdrawalInfo.BridgeId, - withdrawalInfo.OutputIndex, - withdrawalInfo.Sequence, - sender, - receiver, - withdrawalInfo.Amount, - withdrawalInfo.CommitmentProof, - withdrawalInfo.AppHash, - withdrawalInfo.AppHashProof, - withdrawalInfo.Version, - withdrawalInfo.StorageRoot, - withdrawalInfo.LastBlockHash, - ) - if err = msg.Validate(ac); err != nil { - return err - } - - return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) - }, - } - - flags.AddTxFlagsToCmd(cmd) - - return cmd -} diff --git a/x/ophost/client/cli/tx_test.go b/x/ophost/client/cli/tx_test.go index 4a834450..92aad7a7 100644 --- a/x/ophost/client/cli/tx_test.go +++ b/x/ophost/client/cli/tx_test.go @@ -580,109 +580,6 @@ func (s *CLITestSuite) TestNewFinalizeTokenWithdrawal() { } } -//nolint:dupl -func (s *CLITestSuite) TestNewForceWithdrawal() { - require := s.Require() - cmd := cli.NewForceTokenWithdrawal(s.ac) - - addr0, err := s.ac.BytesToString(s.addrs[0]) - s.NoError(err) - - invalidConfig, err := os.CreateTemp("/tmp", "force_withdrawal_info") - require.NoError(err) - defer os.Remove(invalidConfig.Name()) - validConfig, err := os.CreateTemp("/tmp", "force_withdrawal_info") - require.NoError(err) - defer os.Remove(validConfig.Name()) - - _, err = invalidConfig.WriteString(`{}`) - s.NoError(err) - _, err = validConfig.WriteString(`{ - "bridge_id": "1", - "output_index": "1180", - "sequence": "5", - "sender": "init1q6jhwnarkw2j5qqgx3qlu20k8nrdglft5ksr0g", - "amount": {"amount": "100", "denom": "uinit"}, - "commitment_proof": {"ops": [{ - "type": "ics23:iavl", - "key": "IwAAAAAAAAAB", - "data": "CpMCCgkjAAAAAAAAAAESIMtX9/DuZvK6Ly5Ofai5mysOIMcc1smtkWGcJ9oE5Of6GgsIARgBIAEqAwACPCIpCAESJQIEPCDkbki1CAPOMl4Ctcyzudf7s8Zp4r+XHyHcj4hiCi1L5yAiKQgBEiUGCkAgAH/09hE0xKNYZmvloM+7ctsEYu/HQrlxV5ZxN4ImjHIgIikIARIlCBpAIJ0yvyT/hmehmQlXWKgYi417k187zU3n7lrVfUs5rDtuICIrCAESBAomQCAaISB6C9R6RalaXaXNuZGvXREt/d2Q5+TOzKlOdaamN42TPyIpCAESJQxYQCCQjCpw17bW9Bs834jmy4Vzo+UgMtoKUHzkMOhLUgyFnCA=" - }, - { - "type": "ics23:simple", - "key": "b3BjaGlsZA==", - "data": "Cv0BCgdvcGNoaWxkEiA5Hk4w8gqHwNcz/a+Fwx6e6b3Y5ZJ8/3NWw221YiLm/RoJCAEYASABKgEAIiUIARIhAUHASkLkeZTU28swYO7deS17Yj8b9h9PdJi9Xj4RGWZqIiUIARIhAV+QXBx9gArOP6US8yedcqldayaUyBfSAuixPNGd9nQxIicIARIBARogFhYnngyIgDM5RQ7IZQ35ljkp499OXrHC/5ZW2Z+2I+kiJwgBEgEBGiBOU4xO6+ZWJUItAU20nVBj3BQqfUH+BCSkmuHMEAQzqCIlCAESIQG33+cAibPmm9NGEZ6REEzPVaua/bAJQBspD5drk5UDjQ==" - } - ] - }, - "app_hash": "YokP3+yupFP2knNBqfJVFMa64FusQ4a3/B27UbfAX+c=", - "app_hash_proof": { - "total": "14", - "index": "10", - "leaf_hash": "62Ov0/tOgXUg7KHKcVwOc0GYCIWoftO7jjaSOgcLBPU=", - "aunts": [ - "n7nHUzyvHSGNo69tJ39rEBxC48O3XXhCQtpmNgTdU8I=", - "u32kdXs9V+sV711i+qWhv8/ouUNED+IcloCESsG2tXY=", - "zW9k0LARqw0as3I22ood9j21lGzEJAuQVrEZ741bzJU=", - "LSh6zkBwp78gIuPh2qWg05Thz1UihCkIdMCV1hhguOA=" - ] - }, - "version": "AQ==", - "storage_root": "KGlalV+mBHC7YFOLNX3g9LLzmyvP7QCm42HKo9N3Lu8=", - "last_block_hash": "6oFdc+PEkXVJAo5IpXJ91vbCT9FNuKCz5VSlaFmxG+Y=" - }`) - s.NoError(err) - - testCases := []struct { - name string - args []string - expectErr bool - expectedCode uint32 - respType proto.Message - }{ - { - "invalid transaction (invalid force withdrawal info)", - []string{ - invalidConfig.Name(), - fmt.Sprintf("--%s=%s", flags.FlagFrom, addr0), - fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), - fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(10))).String()), - }, - true, 0, &sdk.TxResponse{}, - }, - { - "valid transaction", - []string{ - validConfig.Name(), - fmt.Sprintf("--%s=%s", flags.FlagFrom, addr0), - fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), - fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(10))).String()), - }, - false, 0, &sdk.TxResponse{}, - }, - } - - for _, tc := range testCases { - tc := tc - s.Run(tc.name, func() { - out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { - require.Error(err) - } else { - require.NoError(err, "test: %s\noutput: %s", tc.name, out.String()) - err = s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType) - require.NoError(err, out.String(), "test: %s, output\n:", tc.name, out.String()) - - txResp := tc.respType.(*sdk.TxResponse) - require.Equal(tc.expectedCode, txResp.Code, - "test: %s, output\n:", tc.name, out.String()) - } - }) - } -} - func TestCLITestSuite(t *testing.T) { suite.Run(t, new(CLITestSuite)) } diff --git a/x/ophost/keeper/msg_server.go b/x/ophost/keeper/msg_server.go index 2c4fdf65..6903b1bf 100644 --- a/x/ophost/keeper/msg_server.go +++ b/x/ophost/keeper/msg_server.go @@ -12,7 +12,6 @@ import ( "github.com/cosmos/cosmos-sdk/types/errors" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - opchildtypes "github.com/initia-labs/OPinit/x/opchild/types" "github.com/initia-labs/OPinit/x/ophost/types" ) @@ -239,10 +238,13 @@ func (ms MsgServer) InitiateTokenDeposit(ctx context.Context, req *types.MsgInit return nil, err } - // send the funds to bridge address - bridgeAddr := types.BridgeAddress(bridgeId) - if err := ms.bankKeeper.SendCoins(ctx, sender, bridgeAddr, sdk.NewCoins(coin)); err != nil { - return nil, err + // transfer only positive amount + if coin.IsPositive() { + // send the funds to bridge address + bridgeAddr := types.BridgeAddress(bridgeId) + if err := ms.bankKeeper.SendCoins(ctx, sender, bridgeAddr, sdk.NewCoins(coin)); err != nil { + return nil, err + } } // record token pairs @@ -347,74 +349,6 @@ func (ms MsgServer) FinalizeTokenWithdrawal(ctx context.Context, req *types.MsgF return &types.MsgFinalizeTokenWithdrawalResponse{}, nil } -// ForceTokenWithdrwal implements types.MsgServer. -func (ms MsgServer) ForceTokenWithdrwal(ctx context.Context, req *types.MsgForceTokenWithdrawal) (*types.MsgForceTokenWithdrawalResponse, error) { - if err := req.Validate(ms.authKeeper.AddressCodec()); err != nil { - return nil, err - } - - bridgeId := req.BridgeId - outputIndex := req.OutputIndex - sequence := req.Sequence - appHash := req.AppHash - receiver := req.Receiver - amount := req.Amount - - if ok, err := ms.IsFinalized(ctx, bridgeId, outputIndex); err != nil { - return nil, err - } else if !ok { - return nil, types.ErrNotFinalized - } - - // check if the withdrawal is already claimed - withdrawalHash := types.GenerateWithdrawalHash(bridgeId, sequence, req.Sender, receiver, amount.Denom, amount.Amount.Uint64()) - if ok, err := ms.HasProvenWithdrawal(ctx, bridgeId, withdrawalHash); err != nil { - return nil, err - } else if ok { - return nil, types.ErrWithdrawalAlreadyFinalized - } - - outputProposal, err := ms.GetOutputProposal(ctx, bridgeId, outputIndex) - if err != nil { - return nil, err - } - - // validate output root generation - outputRoot := types.GenerateOutputRoot(req.Version[0], req.StorageRoot, req.LastBlockHash) - if !bytes.Equal(outputProposal.OutputRoot, outputRoot[:]) { - return nil, types.ErrFailedToVerifyWithdrawal.Wrap("invalid output root") - } - - // verify app hash - if err := opchildtypes.VerifyAppHash(req.LastBlockHash, appHash, &req.AppHashProof); err != nil { - return nil, types.ErrFailedToVerifyWithdrawal.Wrap(err.Error()) - } - - // failed to verify commitment - if err := opchildtypes.VerifyCommitment(appHash, sequence, receiver, amount, &req.CommitmentProof); err != nil { - return nil, types.ErrFailedToVerifyWithdrawal.Wrap(err.Error()) - } - - // record proven withdrawal - if err := ms.RecordProvenWithdrawal(ctx, bridgeId, withdrawalHash); err != nil { - return nil, err - } - - // transfer asset to a user from the bridge account - bridgeAddr := types.BridgeAddress(bridgeId) - receiverAccAddr, err := ms.authKeeper.AddressCodec().StringToBytes(receiver) - if err != nil { - return nil, err - } - - // transfer asset to a user from the bridge account - if err := ms.bankKeeper.SendCoins(ctx, bridgeAddr, receiverAccAddr, sdk.NewCoins(amount)); err != nil { - return nil, err - } - - return &types.MsgForceTokenWithdrawalResponse{}, nil -} - func (ms MsgServer) UpdateProposer(ctx context.Context, req *types.MsgUpdateProposer) (*types.MsgUpdateProposerResponse, error) { if err := req.Validate(ms.authKeeper.AddressCodec()); err != nil { return nil, err diff --git a/x/ophost/keeper/msg_server_test.go b/x/ophost/keeper/msg_server_test.go index 04c998d2..3e043268 100644 --- a/x/ophost/keeper/msg_server_test.go +++ b/x/ophost/keeper/msg_server_test.go @@ -1,29 +1,15 @@ package keeper_test import ( - "crypto/rand" "encoding/base64" - "fmt" "testing" "time" - v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" - "github.com/cometbft/cometbft/crypto/tmhash" - cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" - comettypes "github.com/cometbft/cometbft/types" - - "cosmossdk.io/log" "cosmossdk.io/math" - "cosmossdk.io/store/iavl" - "cosmossdk.io/store/metrics" - "cosmossdk.io/store/rootmulti" - storetypes "cosmossdk.io/store/types" - dbm "github.com/cosmos/cosmos-db" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/stretchr/testify/require" - opchildtypes "github.com/initia-labs/OPinit/x/opchild/types" "github.com/initia-labs/OPinit/x/ophost/keeper" "github.com/initia-labs/OPinit/x/ophost/types" ) @@ -577,195 +563,3 @@ func Test_MsgServer_UpdateParams(t *testing.T) { ) require.Error(t, err) } - -func Test_MsgServer_ForceWithdrawal(t *testing.T) { - ctx, input := createDefaultTestInput(t) - ms := keeper.NewMsgServerImpl(input.OPHostKeeper) - - config := types.BridgeConfig{ - Proposer: addrsStr[0], - Challengers: []string{addrsStr[1]}, - SubmissionInterval: time.Second * 10, - FinalizationPeriod: time.Second * 60, - SubmissionStartHeight: 1, - Metadata: []byte{1, 2, 3}, - BatchInfo: types.BatchInfo{Submitter: addrsStr[0], ChainType: types.BatchInfo_CHAIN_TYPE_INITIA}, - } - - _, err := ms.CreateBridge(ctx, types.NewMsgCreateBridge(addrsStr[0], config)) - require.NoError(t, err) - - // fund amount - amount := sdk.NewCoin("uinit", math.NewInt(1_000_000)) - input.Faucet.Fund(ctx, types.BridgeAddress(1), amount.Add(amount).Add(amount)) - - sender := "osmo174knscjg688ddtxj8smyjz073r3w5mms8ugvx6" - receiver := "cosmos174knscjg688ddtxj8smyjz073r3w5mms08musg" - - version := byte(1) - - leaf1 := types.GenerateWithdrawalHash(1, 1, sender, receiver, amount.Denom, amount.Amount.Uint64()) - leaf2 := types.GenerateWithdrawalHash(1, 2, sender, receiver, amount.Denom, amount.Amount.Uint64()) - leaf3 := types.GenerateWithdrawalHash(1, 3, sender, receiver, amount.Denom, amount.Amount.Uint64()) - - node33 := types.GenerateNodeHash(leaf3[:], leaf3[:]) - node12 := types.GenerateNodeHash(leaf1[:], leaf2[:]) - - storageRoot := types.GenerateNodeHash(node12[:], node33[:]) - appHash, commitmentProofs := makeAppHashWithCommitmentProof(t, []testInput{ - {recipient: receiver, amount: amount, l2Sequence: 1}, - {recipient: receiver, amount: amount, l2Sequence: 2}, - {recipient: receiver, amount: amount, l2Sequence: 3}, - }) - - block := makeRandBlock(t, appHash) - header := block.Header - blockHash := block.Hash() - appHashProof := opchildtypes.NewAppHashProof(&header) - err = opchildtypes.VerifyAppHash(blockHash, header.AppHash, appHashProof) - require.NoError(t, err) - outputRoot := types.GenerateOutputRoot(version, storageRoot[:], blockHash) - - now := time.Now().UTC() - ctx = ctx.WithBlockTime(now) - _, err = ms.ProposeOutput(ctx, types.NewMsgProposeOutput(addrsStr[0], 1, 1, 100, outputRoot[:])) - require.NoError(t, err) - - ctx = ctx.WithBlockTime(now.Add(time.Second * 60)) - - // force withdraw 1 - _, err = ms.ForceTokenWithdrwal(ctx, types.NewMsgForceTokenWithdrawal( - 1, 1, 1, sender, receiver, amount, *commitmentProofs[0], appHash, *appHashProof, []byte{version}, storageRoot[:], blockHash, - )) - require.NoError(t, err) - - receiverAddr, err := sdk.AccAddressFromBech32(receiver) - require.NoError(t, err) - require.Equal(t, amount, input.BankKeeper.GetBalance(ctx, receiverAddr, amount.Denom)) - - // cannot finalize 1 again - proofs := [][]byte{leaf2[:], node33[:]} - _, err = ms.FinalizeTokenWithdrawal(ctx, types.NewMsgFinalizeTokenWithdrawal(1, 1, 1, proofs, - sender, - receiver, - amount, - []byte{version}, storageRoot[:], blockHash, - )) - require.Error(t, err) - - // can finalize withdrawal 2 - proofs = [][]byte{leaf1[:], node33[:]} - _, err = ms.FinalizeTokenWithdrawal(ctx, types.NewMsgFinalizeTokenWithdrawal(1, 1, 2, proofs, - sender, - receiver, - amount, - []byte{version}, storageRoot[:], blockHash, - )) - require.NoError(t, err) - require.Equal(t, amount.Add(amount), input.BankKeeper.GetBalance(ctx, receiverAddr, amount.Denom)) - - // cannot force withdraw 2 again - _, err = ms.ForceTokenWithdrwal(ctx, types.NewMsgForceTokenWithdrawal( - 1, 1, 2, sender, receiver, amount, *commitmentProofs[1], appHash, *appHashProof, []byte{version}, storageRoot[:], blockHash, - )) - require.Error(t, err) - - // can force withdrawal 3 - _, err = ms.ForceTokenWithdrwal(ctx, types.NewMsgForceTokenWithdrawal( - 1, 1, 3, sender, receiver, amount, *commitmentProofs[2], appHash, *appHashProof, []byte{version}, storageRoot[:], blockHash, - )) - require.NoError(t, err) - require.Equal(t, amount.Add(amount).Add(amount), input.BankKeeper.GetBalance(ctx, receiverAddr, amount.Denom)) -} - -type testInput struct { - recipient string - amount sdk.Coin - l2Sequence uint64 -} - -func makeAppHashWithCommitmentProof(t *testing.T, inputs []testInput) ([]byte, []*v1.ProofOps) { - db := dbm.NewMemDB() - store := rootmulti.NewStore(db, log.NewNopLogger(), metrics.NewNoOpMetrics()) - iavlStoreKey := storetypes.NewKVStoreKey(opchildtypes.StoreKey) - - store.MountStoreWithDB(iavlStoreKey, storetypes.StoreTypeIAVL, nil) - require.NoError(t, store.LoadVersion(0)) - - iavlStore := store.GetCommitStore(iavlStoreKey).(*iavl.Store) - - commitmentKeys := make([][]byte, len(inputs)) - for i, input := range inputs { - commitment := opchildtypes.CommitWithdrawal(input.l2Sequence, input.recipient, input.amount) - commitmentKeys[i] = opchildtypes.WithdrawalCommitmentKey(input.l2Sequence) - - iavlStore.Set(commitmentKeys[i], commitment) - } - - cid := store.Commit() - - // Get Proof - proofs := make([]*v1.ProofOps, len(commitmentKeys)) - for i, commitmentKey := range commitmentKeys { - // same with curl https://rpc.initia.xyz/abci_query\?path\="\"store/opchild/key\""\&data=0xcommitmentkey\&prove=true - res, err := store.Query(&storetypes.RequestQuery{ - Path: fmt.Sprintf("/%s/key", opchildtypes.StoreKey), // required path to get key/value+proof - Data: commitmentKey, - Prove: true, - }) - require.NoError(t, err) - require.NotNil(t, res.ProofOps) - - proofs[i] = opchildtypes.NewProtoFromProofOps(res.ProofOps) - } - - return cid.GetHash(), proofs -} - -func makeRandBlock(t *testing.T, appHash []byte) *comettypes.Block { - txs := []comettypes.Tx{comettypes.Tx("foo"), comettypes.Tx("bar")} - lastID := makeBlockIDRandom() - h := int64(3) - voteSet, valSet, vals := randVoteSet(h-1, 1, cmtproto.PrecommitType, 10, 1, false) - extCommit, err := comettypes.MakeExtCommit(lastID, h-1, 1, voteSet, vals, time.Now().UTC(), false) - require.NoError(t, err) - - ev, err := comettypes.NewMockDuplicateVoteEvidenceWithValidator(h, time.Now().UTC(), vals[0], "block-test-chain") - require.NoError(t, err) - evList := []comettypes.Evidence{ev} - - block := comettypes.MakeBlock(h, txs, extCommit.ToCommit(), evList) - block.ValidatorsHash = valSet.Hash() - block.AppHash = appHash - - return block -} - -func makeBlockIDRandom() comettypes.BlockID { - var ( - blockHash = make([]byte, tmhash.Size) - partSetHash = make([]byte, tmhash.Size) - ) - rand.Read(blockHash) //nolint: errcheck // ignore errcheck for read - rand.Read(partSetHash) //nolint: errcheck // ignore errcheck for read - return comettypes.BlockID{Hash: blockHash, PartSetHeader: comettypes.PartSetHeader{Total: 123, Hash: partSetHash}} -} - -// NOTE: privValidators are in order -func randVoteSet( - height int64, - round int32, - signedMsgType cmtproto.SignedMsgType, - numValidators int, - votingPower int64, - extEnabled bool, -) (*comettypes.VoteSet, *comettypes.ValidatorSet, []comettypes.PrivValidator) { - valSet, privValidators := comettypes.RandValidatorSet(numValidators, votingPower) - if extEnabled { - if signedMsgType != cmtproto.PrecommitType { - return nil, nil, nil - } - return comettypes.NewExtendedVoteSet("test_chain_id", height, round, signedMsgType, valSet), valSet, privValidators - } - return comettypes.NewVoteSet("test_chain_id", height, round, signedMsgType, valSet), valSet, privValidators -} diff --git a/x/ophost/types/tx.go b/x/ophost/types/tx.go index 9aa90b2b..67194589 100644 --- a/x/ophost/types/tx.go +++ b/x/ophost/types/tx.go @@ -2,7 +2,6 @@ package types import ( "cosmossdk.io/core/address" - v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -14,7 +13,6 @@ var ( _ sdk.Msg = &MsgDeleteOutput{} _ sdk.Msg = &MsgFinalizeTokenWithdrawal{} _ sdk.Msg = &MsgInitiateTokenDeposit{} - _ sdk.Msg = &MsgForceTokenWithdrawal{} _ sdk.Msg = &MsgUpdateProposer{} _ sdk.Msg = &MsgUpdateChallengers{} _ sdk.Msg = &MsgUpdateBatchInfo{} @@ -188,7 +186,8 @@ func (msg MsgInitiateTokenDeposit) Validate(ac address.Codec) error { return sdkerrors.ErrInvalidAddress.Wrap("to address cannot be empty") } - if !msg.Amount.IsValid() || msg.Amount.IsZero() { + // allow zero amount for creating account + if !msg.Amount.IsValid() { return ErrInvalidAmount } @@ -276,92 +275,6 @@ func (msg MsgFinalizeTokenWithdrawal) Validate(ac address.Codec) error { return nil } -/* MsgForceTokenWithdrawal */ - -// NewMsgForceTokenWithdrawal creates a new MsgForceTokenWithdrawal instance. -func NewMsgForceTokenWithdrawal( - bridgeId uint64, - outputIndex uint64, - sequence uint64, - sender string, - receiver string, - amount sdk.Coin, - commitmentProof v1.ProofOps, - appHash []byte, - appHashProof v1.Proof, - version []byte, - storageRoot []byte, - lastBlockHash []byte, -) *MsgForceTokenWithdrawal { - return &MsgForceTokenWithdrawal{ - BridgeId: bridgeId, - OutputIndex: outputIndex, - - Sequence: sequence, - Sender: sender, - Receiver: receiver, - Amount: amount, - CommitmentProof: commitmentProof, - - AppHash: appHash, - AppHashProof: appHashProof, - - Version: version, - StorageRoot: storageRoot, - LastBlockHash: lastBlockHash, - } -} - -// Validate performs basic MsgForceTokenWithdrawal message validation. -func (msg MsgForceTokenWithdrawal) Validate(ac address.Codec) error { - if msg.BridgeId == 0 { - return ErrInvalidBridgeId - } - - if msg.OutputIndex == 0 { - return ErrInvalidOutputIndex - } - - if msg.Sequence == 0 { - return ErrInvalidSequence - } - - // cannot validate sender address as it can be any format of address based on the chain. - if len(msg.Sender) == 0 { - return sdkerrors.ErrInvalidAddress.Wrap("sender address cannot be empty") - } - - if _, err := ac.StringToBytes(msg.Receiver); err != nil { - return err - } - - if !msg.Amount.IsValid() || msg.Amount.IsZero() { - return ErrInvalidAmount - } - - if len(msg.CommitmentProof.Ops) == 0 { - return ErrEmptyCommitmentProof - } - - if len(msg.AppHash) != 32 { - return ErrInvalidHashLength.Wrap("data_hash") - } - - if len(msg.Version) != 1 { - return ErrInvalidHashLength.Wrap("version") - } - - if len(msg.StorageRoot) != 32 { - return ErrInvalidHashLength.Wrap("storage_root") - } - - if len(msg.LastBlockHash) != 32 { - return ErrInvalidHashLength.Wrap("last_block_hash") - } - - return nil -} - /* MsgUpdateProposer */ // NewMsgUpdateProposer creates a new MsgUpdateProposer instance. diff --git a/x/ophost/types/tx.pb.go b/x/ophost/types/tx.pb.go index d6e24fbf..91a85878 100644 --- a/x/ophost/types/tx.pb.go +++ b/x/ophost/types/tx.pb.go @@ -6,7 +6,6 @@ package types import ( context "context" fmt "fmt" - v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" _ "github.com/cosmos/cosmos-proto" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" @@ -511,96 +510,6 @@ func (m *MsgFinalizeTokenWithdrawalResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgFinalizeTokenWithdrawalResponse proto.InternalMessageInfo -// MsgForceTokenWithdrawal is a message to force a token withdrawal from L2 to L1. -type MsgForceTokenWithdrawal struct { - // anyone can force a token withdrawal from L2 to L1 even this is not the receiver. - BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty" yaml:"bridge_id"` - OutputIndex uint64 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty" yaml:"output_index"` - // withdrawal commitments and proofs - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty" yaml:"sequence"` - Sender string `protobuf:"bytes,5,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Receiver string `protobuf:"bytes,1,opt,name=receiver,proto3" json:"receiver,omitempty" yaml:"receiver"` - Amount types.Coin `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount" yaml:"amount"` - CommitmentProof v1.ProofOps `protobuf:"bytes,7,opt,name=commitment_proof,json=commitmentProof,proto3" json:"commitment_proof" yaml:"commitment_proof"` - // app hash and proof - AppHash []byte `protobuf:"bytes,8,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty" yaml:"app_hash"` - AppHashProof v1.Proof `protobuf:"bytes,9,opt,name=app_hash_proof,json=appHashProof,proto3" json:"app_hash_proof" yaml:"app_hash_proof"` - // output root proofs - Version []byte `protobuf:"bytes,10,opt,name=version,proto3" json:"version,omitempty" yaml:"version"` - StorageRoot []byte `protobuf:"bytes,11,opt,name=storage_root,json=storageRoot,proto3" json:"storage_root,omitempty" yaml:"storage_root"` - LastBlockHash []byte `protobuf:"bytes,12,opt,name=last_block_hash,json=lastBlockHash,proto3" json:"last_block_hash,omitempty" yaml:"last_block_hash"` -} - -func (m *MsgForceTokenWithdrawal) Reset() { *m = MsgForceTokenWithdrawal{} } -func (m *MsgForceTokenWithdrawal) String() string { return proto.CompactTextString(m) } -func (*MsgForceTokenWithdrawal) ProtoMessage() {} -func (*MsgForceTokenWithdrawal) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{12} -} -func (m *MsgForceTokenWithdrawal) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgForceTokenWithdrawal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgForceTokenWithdrawal.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgForceTokenWithdrawal) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgForceTokenWithdrawal.Merge(m, src) -} -func (m *MsgForceTokenWithdrawal) XXX_Size() int { - return m.Size() -} -func (m *MsgForceTokenWithdrawal) XXX_DiscardUnknown() { - xxx_messageInfo_MsgForceTokenWithdrawal.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgForceTokenWithdrawal proto.InternalMessageInfo - -// MsgForceTokenWithdrawalResponse returns a message handle result. -type MsgForceTokenWithdrawalResponse struct { -} - -func (m *MsgForceTokenWithdrawalResponse) Reset() { *m = MsgForceTokenWithdrawalResponse{} } -func (m *MsgForceTokenWithdrawalResponse) String() string { return proto.CompactTextString(m) } -func (*MsgForceTokenWithdrawalResponse) ProtoMessage() {} -func (*MsgForceTokenWithdrawalResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{13} -} -func (m *MsgForceTokenWithdrawalResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgForceTokenWithdrawalResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgForceTokenWithdrawalResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgForceTokenWithdrawalResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgForceTokenWithdrawalResponse.Merge(m, src) -} -func (m *MsgForceTokenWithdrawalResponse) XXX_Size() int { - return m.Size() -} -func (m *MsgForceTokenWithdrawalResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MsgForceTokenWithdrawalResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgForceTokenWithdrawalResponse proto.InternalMessageInfo - // MsgUpdateProposer is a message to change a proposer type MsgUpdateProposer struct { // authority is the address that controls the module (defaults to x/gov unless overwritten) @@ -614,7 +523,7 @@ func (m *MsgUpdateProposer) Reset() { *m = MsgUpdateProposer{} } func (m *MsgUpdateProposer) String() string { return proto.CompactTextString(m) } func (*MsgUpdateProposer) ProtoMessage() {} func (*MsgUpdateProposer) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{14} + return fileDescriptor_d16af6eaf4088d05, []int{12} } func (m *MsgUpdateProposer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -655,7 +564,7 @@ func (m *MsgUpdateProposerResponse) Reset() { *m = MsgUpdateProposerResp func (m *MsgUpdateProposerResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateProposerResponse) ProtoMessage() {} func (*MsgUpdateProposerResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{15} + return fileDescriptor_d16af6eaf4088d05, []int{13} } func (m *MsgUpdateProposerResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -699,7 +608,7 @@ func (m *MsgUpdateChallengers) Reset() { *m = MsgUpdateChallengers{} } func (m *MsgUpdateChallengers) String() string { return proto.CompactTextString(m) } func (*MsgUpdateChallengers) ProtoMessage() {} func (*MsgUpdateChallengers) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{16} + return fileDescriptor_d16af6eaf4088d05, []int{14} } func (m *MsgUpdateChallengers) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -740,7 +649,7 @@ func (m *MsgUpdateChallengersResponse) Reset() { *m = MsgUpdateChallenge func (m *MsgUpdateChallengersResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateChallengersResponse) ProtoMessage() {} func (*MsgUpdateChallengersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{17} + return fileDescriptor_d16af6eaf4088d05, []int{15} } func (m *MsgUpdateChallengersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -782,7 +691,7 @@ func (m *MsgUpdateBatchInfo) Reset() { *m = MsgUpdateBatchInfo{} } func (m *MsgUpdateBatchInfo) String() string { return proto.CompactTextString(m) } func (*MsgUpdateBatchInfo) ProtoMessage() {} func (*MsgUpdateBatchInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{18} + return fileDescriptor_d16af6eaf4088d05, []int{16} } func (m *MsgUpdateBatchInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -823,7 +732,7 @@ func (m *MsgUpdateBatchInfoResponse) Reset() { *m = MsgUpdateBatchInfoRe func (m *MsgUpdateBatchInfoResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateBatchInfoResponse) ProtoMessage() {} func (*MsgUpdateBatchInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{19} + return fileDescriptor_d16af6eaf4088d05, []int{17} } func (m *MsgUpdateBatchInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -865,7 +774,7 @@ func (m *MsgUpdateOracleConfig) Reset() { *m = MsgUpdateOracleConfig{} } func (m *MsgUpdateOracleConfig) String() string { return proto.CompactTextString(m) } func (*MsgUpdateOracleConfig) ProtoMessage() {} func (*MsgUpdateOracleConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{20} + return fileDescriptor_d16af6eaf4088d05, []int{18} } func (m *MsgUpdateOracleConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -902,7 +811,7 @@ func (m *MsgUpdateOracleConfigResponse) Reset() { *m = MsgUpdateOracleCo func (m *MsgUpdateOracleConfigResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateOracleConfigResponse) ProtoMessage() {} func (*MsgUpdateOracleConfigResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{21} + return fileDescriptor_d16af6eaf4088d05, []int{19} } func (m *MsgUpdateOracleConfigResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -947,7 +856,7 @@ func (m *MsgUpdateMetadata) Reset() { *m = MsgUpdateMetadata{} } func (m *MsgUpdateMetadata) String() string { return proto.CompactTextString(m) } func (*MsgUpdateMetadata) ProtoMessage() {} func (*MsgUpdateMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{22} + return fileDescriptor_d16af6eaf4088d05, []int{20} } func (m *MsgUpdateMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -988,7 +897,7 @@ func (m *MsgUpdateMetadataResponse) Reset() { *m = MsgUpdateMetadataResp func (m *MsgUpdateMetadataResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateMetadataResponse) ProtoMessage() {} func (*MsgUpdateMetadataResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{23} + return fileDescriptor_d16af6eaf4088d05, []int{21} } func (m *MsgUpdateMetadataResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1030,7 +939,7 @@ func (m *MsgUpdateParams) Reset() { *m = MsgUpdateParams{} } func (m *MsgUpdateParams) String() string { return proto.CompactTextString(m) } func (*MsgUpdateParams) ProtoMessage() {} func (*MsgUpdateParams) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{24} + return fileDescriptor_d16af6eaf4088d05, []int{22} } func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1067,7 +976,7 @@ func (m *MsgUpdateParamsResponse) Reset() { *m = MsgUpdateParamsResponse func (m *MsgUpdateParamsResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateParamsResponse) ProtoMessage() {} func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_d16af6eaf4088d05, []int{25} + return fileDescriptor_d16af6eaf4088d05, []int{23} } func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1109,8 +1018,6 @@ func init() { proto.RegisterType((*MsgInitiateTokenDepositResponse)(nil), "opinit.ophost.v1.MsgInitiateTokenDepositResponse") proto.RegisterType((*MsgFinalizeTokenWithdrawal)(nil), "opinit.ophost.v1.MsgFinalizeTokenWithdrawal") proto.RegisterType((*MsgFinalizeTokenWithdrawalResponse)(nil), "opinit.ophost.v1.MsgFinalizeTokenWithdrawalResponse") - proto.RegisterType((*MsgForceTokenWithdrawal)(nil), "opinit.ophost.v1.MsgForceTokenWithdrawal") - proto.RegisterType((*MsgForceTokenWithdrawalResponse)(nil), "opinit.ophost.v1.MsgForceTokenWithdrawalResponse") proto.RegisterType((*MsgUpdateProposer)(nil), "opinit.ophost.v1.MsgUpdateProposer") proto.RegisterType((*MsgUpdateProposerResponse)(nil), "opinit.ophost.v1.MsgUpdateProposerResponse") proto.RegisterType((*MsgUpdateChallengers)(nil), "opinit.ophost.v1.MsgUpdateChallengers") @@ -1128,122 +1035,110 @@ func init() { func init() { proto.RegisterFile("opinit/ophost/v1/tx.proto", fileDescriptor_d16af6eaf4088d05) } var fileDescriptor_d16af6eaf4088d05 = []byte{ - // 1825 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xdd, 0x6f, 0x1b, 0x4b, - 0x15, 0x8f, 0xdd, 0xd4, 0xb5, 0xc7, 0x6e, 0x3e, 0xb6, 0x69, 0xe2, 0x6c, 0x8b, 0x37, 0x19, 0xca, - 0x25, 0x4d, 0x53, 0x9b, 0xe4, 0x42, 0x91, 0x2c, 0x21, 0x71, 0x37, 0xe5, 0x5e, 0x5a, 0xc9, 0xb4, - 0x5a, 0x40, 0x08, 0xb8, 0x92, 0xb5, 0xb6, 0x27, 0xeb, 0x55, 0xed, 0x9d, 0x65, 0x67, 0x9c, 0x34, - 0x48, 0x48, 0x88, 0x27, 0xe0, 0x09, 0x89, 0x7f, 0xe0, 0x8a, 0xa7, 0xfb, 0x58, 0x21, 0xfe, 0x88, - 0xbe, 0x20, 0x5d, 0x21, 0x1e, 0x78, 0xb2, 0xa0, 0x7d, 0xe8, 0x7d, 0x44, 0x7e, 0x42, 0xe2, 0x05, - 0xcd, 0xc7, 0xce, 0x7e, 0x78, 0xed, 0xa6, 0xa1, 0xbd, 0xb9, 0x2f, 0x51, 0xe6, 0x9c, 0xdf, 0x99, - 0xf3, 0x39, 0x67, 0xce, 0x8e, 0xc1, 0x26, 0xf6, 0x5d, 0xcf, 0xa5, 0x0d, 0xec, 0xf7, 0x31, 0xa1, - 0x8d, 0xe3, 0xfd, 0x06, 0x7d, 0x5a, 0xf7, 0x03, 0x4c, 0xb1, 0xb6, 0x22, 0x58, 0x75, 0xc1, 0xaa, - 0x1f, 0xef, 0xeb, 0xab, 0xf6, 0xd0, 0xf5, 0x70, 0x83, 0xff, 0x15, 0x20, 0xbd, 0xd6, 0xc5, 0x43, - 0x44, 0x3b, 0x47, 0xb4, 0xd1, 0x0d, 0x4e, 0x7d, 0x8a, 0xd9, 0x0e, 0x7e, 0x80, 0xf1, 0x51, 0xc4, - 0x27, 0x43, 0x4c, 0x1a, 0x1d, 0x9b, 0xa0, 0xc6, 0xf1, 0x7e, 0x07, 0x51, 0x7b, 0xbf, 0xd1, 0xc5, - 0xae, 0x27, 0xf9, 0x1b, 0x92, 0x3f, 0x24, 0x0e, 0x13, 0x1d, 0x12, 0x47, 0x32, 0x36, 0x05, 0xa3, - 0xcd, 0x57, 0x0d, 0xb1, 0x90, 0xac, 0x35, 0x07, 0x3b, 0x58, 0xd0, 0xd9, 0x7f, 0x92, 0x7a, 0x73, - 0xda, 0x93, 0x53, 0x1f, 0x49, 0x19, 0x38, 0xc9, 0x81, 0xa5, 0x16, 0x71, 0x2c, 0xd4, 0xc5, 0x41, - 0xcf, 0xb4, 0x69, 0xb7, 0xaf, 0x3d, 0x04, 0x25, 0x32, 0xea, 0x0c, 0x5d, 0x4a, 0x51, 0x50, 0xcd, - 0x6d, 0xe5, 0x76, 0x4a, 0xe6, 0xde, 0x64, 0x6c, 0xac, 0x9c, 0xda, 0xc3, 0x41, 0x13, 0x2a, 0x16, - 0xfc, 0xdb, 0x5f, 0xee, 0xae, 0x49, 0xfd, 0x1f, 0xf4, 0x7a, 0x01, 0x22, 0xe4, 0x87, 0x34, 0x70, - 0x3d, 0xc7, 0x8a, 0xc4, 0xb5, 0x7d, 0x50, 0xea, 0x04, 0x6e, 0xcf, 0x41, 0x6d, 0xb7, 0x57, 0xcd, - 0x6f, 0xe5, 0x76, 0x16, 0xcd, 0xb5, 0x68, 0x2f, 0xc5, 0x82, 0x56, 0x51, 0xfc, 0xff, 0xa0, 0xa7, - 0x7d, 0x1b, 0x94, 0x3b, 0xcc, 0x8e, 0x76, 0xe7, 0x94, 0x22, 0x52, 0xbd, 0xb4, 0x95, 0xdb, 0xa9, - 0x98, 0xeb, 0x93, 0xb1, 0xa1, 0x49, 0xa1, 0x88, 0x09, 0x2d, 0xc0, 0x57, 0x26, 0x5b, 0x34, 0x77, - 0x7e, 0xf3, 0xea, 0xd9, 0x6e, 0xa4, 0xfb, 0xf7, 0xaf, 0x9e, 0xed, 0x5e, 0x97, 0x4e, 0x27, 0x3d, - 0x84, 0x55, 0xb0, 0x9e, 0xa4, 0x58, 0x88, 0xf8, 0xd8, 0x23, 0x08, 0xfe, 0x3d, 0x07, 0x96, 0x5b, - 0xc4, 0x39, 0x0c, 0x90, 0x4d, 0x91, 0xc9, 0x4d, 0xd2, 0xee, 0x83, 0x2b, 0x5d, 0xb6, 0xc6, 0x61, - 0x34, 0x76, 0x27, 0x63, 0x63, 0x49, 0x18, 0x23, 0x19, 0xb3, 0x63, 0x11, 0x8a, 0x6a, 0x16, 0x28, - 0x74, 0xb1, 0x77, 0xe4, 0x3a, 0x3c, 0x0c, 0xe5, 0x83, 0x5a, 0x3d, 0x5d, 0x46, 0x75, 0xa1, 0xef, - 0x90, 0xa3, 0x4c, 0xfd, 0xf9, 0xd8, 0x58, 0x98, 0x8c, 0x8d, 0xab, 0x52, 0x11, 0xa7, 0xc2, 0x4f, - 0x5f, 0x3d, 0xdb, 0xcd, 0x59, 0x72, 0xa7, 0xe6, 0xd7, 0x99, 0xc7, 0xa1, 0x06, 0xe6, 0xef, 0x7a, - 0xe4, 0x6f, 0xdc, 0x05, 0x78, 0x0f, 0x6c, 0xa4, 0x48, 0xa1, 0xc7, 0xda, 0x8d, 0x78, 0x86, 0x98, - 0x7f, 0x8b, 0x51, 0x2e, 0xe0, 0x24, 0x0f, 0x56, 0x5a, 0xc4, 0x79, 0x1c, 0x60, 0x1f, 0x13, 0xf4, - 0x68, 0x44, 0xfd, 0x11, 0xd5, 0x3e, 0x02, 0x45, 0x5f, 0x10, 0xc2, 0x80, 0xdc, 0x99, 0x8c, 0x8d, - 0x65, 0x61, 0x67, 0xc8, 0x99, 0x1d, 0x11, 0x25, 0x7c, 0x9e, 0xe2, 0x68, 0x82, 0x0a, 0xe6, 0x56, - 0xb4, 0x5d, 0xaf, 0x87, 0x9e, 0xf2, 0xea, 0x58, 0x34, 0x37, 0x26, 0x63, 0xe3, 0x9a, 0x90, 0x8a, - 0x73, 0xa1, 0x55, 0x16, 0xcb, 0x07, 0x6c, 0xa5, 0x99, 0x60, 0x79, 0x70, 0xd0, 0xee, 0x0c, 0x70, - 0xf7, 0x49, 0xdb, 0x1b, 0x0d, 0x3b, 0x28, 0xa8, 0x2e, 0x72, 0x71, 0x7d, 0x32, 0x36, 0xd6, 0x85, - 0x78, 0x0a, 0x00, 0xad, 0xab, 0x83, 0x03, 0x93, 0x11, 0x7e, 0xc0, 0xd7, 0xac, 0x38, 0xa5, 0x86, - 0x00, 0x63, 0x5a, 0xbd, 0x9c, 0x2e, 0xce, 0x18, 0x13, 0x5a, 0x40, 0xac, 0x2c, 0x8c, 0x69, 0xf3, - 0x36, 0x4b, 0x95, 0x72, 0x9d, 0xe5, 0x6a, 0x23, 0xca, 0x55, 0x22, 0xbe, 0x50, 0x07, 0xd5, 0x34, - 0x4d, 0xd5, 0xe7, 0x7f, 0x45, 0x7d, 0xde, 0x47, 0x03, 0x44, 0xc3, 0x7c, 0xb4, 0x00, 0xe8, 0xf6, - 0xed, 0xc1, 0x00, 0x79, 0x8e, 0xca, 0xc8, 0xdd, 0xc9, 0xd8, 0x58, 0x95, 0x95, 0xa3, 0x78, 0xb3, - 0x73, 0x12, 0xdb, 0xe0, 0x0b, 0xce, 0x4a, 0x73, 0x97, 0x05, 0x26, 0xa6, 0x3f, 0x55, 0xc6, 0x71, - 0x4f, 0xe1, 0x26, 0x2f, 0xe3, 0x38, 0x29, 0x0a, 0x4c, 0x9e, 0xf3, 0x1e, 0x78, 0x2e, 0x75, 0x6d, - 0x8a, 0x7e, 0x84, 0x9f, 0x20, 0xef, 0x3e, 0xf2, 0x31, 0x71, 0xa9, 0xf6, 0x01, 0x28, 0x10, 0xe4, - 0xf5, 0x54, 0x70, 0x6e, 0x47, 0xc7, 0x4a, 0xd0, 0x67, 0x07, 0x46, 0x0a, 0x9e, 0x27, 0x28, 0xdf, - 0x02, 0x79, 0x8a, 0x79, 0x28, 0x4a, 0xe6, 0xd7, 0x26, 0x63, 0xa3, 0x24, 0xb0, 0x14, 0xcf, 0xd6, - 0x96, 0xa7, 0x58, 0x6b, 0x81, 0x82, 0x3d, 0xc4, 0x23, 0x8f, 0xf2, 0xe2, 0x2c, 0x1f, 0x6c, 0xd6, - 0x25, 0x94, 0xdd, 0x14, 0x75, 0x79, 0x53, 0xd4, 0x0f, 0xb1, 0xeb, 0xa5, 0x5b, 0x84, 0x10, 0x0b, - 0x5b, 0x84, 0x58, 0x69, 0x7b, 0x60, 0xb1, 0x67, 0x53, 0x5b, 0x56, 0x6a, 0xf5, 0xf9, 0xd8, 0xc8, - 0x4d, 0xc6, 0x46, 0x59, 0x48, 0x30, 0x0e, 0xc7, 0x2f, 0x58, 0x1c, 0xd5, 0xbc, 0xf7, 0xdb, 0x4f, - 0x8c, 0x85, 0xcf, 0x3f, 0x31, 0x16, 0x58, 0x52, 0xa4, 0xef, 0x2c, 0x21, 0xb5, 0x28, 0x21, 0x59, - 0x11, 0x86, 0xdf, 0x01, 0xc6, 0x0c, 0x96, 0xea, 0x33, 0x3a, 0x28, 0x12, 0xf4, 0x8b, 0x11, 0xf2, - 0xba, 0x28, 0x6c, 0x33, 0xe1, 0x1a, 0xfe, 0xf9, 0x32, 0xd0, 0x5b, 0xc4, 0xf9, 0xd0, 0xf5, 0xec, - 0x81, 0xfb, 0x4b, 0x21, 0xff, 0x13, 0x97, 0xf6, 0x7b, 0x81, 0x7d, 0x62, 0x0f, 0xbe, 0xe8, 0x3e, - 0x71, 0x0f, 0xac, 0x9e, 0x28, 0xe5, 0x6d, 0x7e, 0x69, 0x93, 0xea, 0xe2, 0xd6, 0xa5, 0x9d, 0x8a, - 0x59, 0x62, 0xf1, 0x13, 0x01, 0x5b, 0x89, 0x30, 0x8f, 0x39, 0x24, 0x56, 0x66, 0x97, 0xcf, 0x5b, - 0x66, 0x1f, 0x81, 0x62, 0x80, 0xba, 0xc8, 0x3d, 0xce, 0x6a, 0xad, 0x21, 0x67, 0x4e, 0x6b, 0x0d, - 0x21, 0x5a, 0x23, 0x16, 0xed, 0x02, 0xf7, 0xfd, 0x5a, 0xb4, 0x91, 0x8a, 0x7b, 0x94, 0x82, 0x58, - 0xd9, 0x5d, 0x79, 0x3b, 0x65, 0x77, 0xe5, 0x18, 0x05, 0xc4, 0xc5, 0x5e, 0xb5, 0xc8, 0x2b, 0x4f, - 0x8b, 0xee, 0x4c, 0xc9, 0x80, 0x56, 0x08, 0x61, 0xd9, 0x22, 0x14, 0x07, 0xb6, 0x83, 0x44, 0x5b, - 0x2d, 0x71, 0x91, 0x58, 0xb6, 0xe2, 0x5c, 0x68, 0x95, 0xe5, 0x92, 0x35, 0x56, 0xde, 0xd5, 0x6d, - 0x42, 0x65, 0xdb, 0xee, 0xdb, 0xa4, 0x5f, 0x05, 0x5c, 0x3c, 0xde, 0xd5, 0x93, 0x00, 0xd6, 0xd5, - 0x6d, 0x42, 0x79, 0x5f, 0xff, 0xbe, 0x4d, 0xfa, 0xcd, 0xf7, 0x79, 0x73, 0x0e, 0x83, 0xc7, 0x0a, - 0x7e, 0x3b, 0x2a, 0xf8, 0x19, 0x55, 0x09, 0x6f, 0x01, 0x38, 0x9b, 0xab, 0xfa, 0xd2, 0x7f, 0x0a, - 0xbc, 0x2f, 0x7d, 0x88, 0x83, 0xee, 0x45, 0xd7, 0x75, 0xbc, 0x26, 0x16, 0xcf, 0x52, 0x13, 0x5f, - 0xa6, 0x82, 0x8e, 0xea, 0xb3, 0xf0, 0x36, 0xea, 0x73, 0x08, 0x56, 0xba, 0x78, 0x38, 0x74, 0xe9, - 0x10, 0x79, 0x54, 0x9c, 0x71, 0x59, 0xf8, 0x37, 0xeb, 0xe1, 0xe4, 0x5e, 0x17, 0x93, 0x3b, 0x9b, - 0xcc, 0xf8, 0x09, 0x7f, 0xe4, 0x13, 0xf3, 0x96, 0xdc, 0x7b, 0x23, 0x9c, 0xca, 0x92, 0x7b, 0x48, - 0x2d, 0xcb, 0x11, 0x9d, 0x4b, 0x6a, 0x75, 0x50, 0xb4, 0x7d, 0x5f, 0x54, 0xa7, 0x38, 0x0f, 0xb1, - 0xd0, 0x87, 0x1c, 0x68, 0x5d, 0xb1, 0x7d, 0x9f, 0x15, 0xa4, 0xd6, 0x05, 0x4b, 0x21, 0x55, 0x1a, - 0x57, 0x52, 0x5e, 0x67, 0x1b, 0x67, 0x42, 0x69, 0xd9, 0xf5, 0xe4, 0xa6, 0x09, 0xbb, 0x2a, 0x72, - 0x7f, 0x61, 0x54, 0xec, 0x8c, 0x82, 0x37, 0x3f, 0xa3, 0xe5, 0xff, 0xef, 0x8c, 0x56, 0xde, 0xf4, - 0x8c, 0x7e, 0x63, 0xea, 0x8c, 0xc6, 0x2e, 0xa5, 0xac, 0xe3, 0x05, 0xb7, 0xf9, 0xa5, 0x94, 0xc5, - 0x52, 0xa7, 0xf3, 0x8f, 0x79, 0xb0, 0xda, 0x22, 0xce, 0x8f, 0xfd, 0x9e, 0x4d, 0xd1, 0xe3, 0x70, - 0x2e, 0x7d, 0x08, 0x4a, 0xf6, 0x88, 0xf6, 0x71, 0xe0, 0xd2, 0xd3, 0xe9, 0x0f, 0x20, 0xc5, 0x9a, - 0xf3, 0x01, 0xa4, 0x30, 0xe7, 0x39, 0xe3, 0x16, 0xa8, 0x78, 0xe8, 0xa4, 0xad, 0x66, 0x6c, 0x31, - 0x42, 0x34, 0xa2, 0x48, 0xc7, 0xb9, 0xb3, 0x8d, 0x28, 0x7b, 0xe8, 0x24, 0x74, 0xa9, 0x79, 0x87, - 0x7f, 0x1b, 0x29, 0xb3, 0x58, 0xf8, 0xaa, 0x51, 0xf8, 0x92, 0xfe, 0xc3, 0x23, 0xb0, 0x39, 0x45, - 0x54, 0xf7, 0xf8, 0x76, 0xaa, 0x03, 0x89, 0xbb, 0x3c, 0xd1, 0x68, 0xde, 0x9b, 0x1e, 0xb4, 0xb9, - 0xe7, 0xa9, 0x61, 0x1a, 0xfe, 0x29, 0x0f, 0xd6, 0x94, 0xa2, 0x43, 0x35, 0x01, 0x92, 0x8b, 0x4e, - 0xc0, 0xcf, 0xc1, 0x32, 0x0b, 0x71, 0x34, 0x93, 0xb2, 0xaf, 0xd0, 0x4b, 0x3b, 0x25, 0xf3, 0x20, - 0x2a, 0xd7, 0x14, 0x60, 0xb6, 0x29, 0x4b, 0x1e, 0x3a, 0x89, 0xf9, 0xd6, 0xac, 0x4f, 0x67, 0xe2, - 0x46, 0x3a, 0x13, 0x31, 0x3c, 0x74, 0xc1, 0xcd, 0x2c, 0xfa, 0xbb, 0xc8, 0xc7, 0xa7, 0x79, 0xa0, - 0x29, 0x5d, 0xfc, 0xbb, 0xf8, 0x81, 0x77, 0x84, 0x2f, 0x3a, 0x1b, 0x08, 0xb0, 0x10, 0xb6, 0xc5, - 0x67, 0xbf, 0xeb, 0x1d, 0x89, 0x99, 0xba, 0x7c, 0x70, 0x23, 0xe3, 0x03, 0x3a, 0xb4, 0x39, 0xdd, - 0x0d, 0x93, 0x1b, 0x84, 0xdd, 0xd0, 0x43, 0x27, 0x4a, 0xa2, 0xb9, 0x37, 0x9d, 0x97, 0xcd, 0x74, - 0x5e, 0x14, 0x1a, 0x3a, 0x7c, 0x60, 0x4d, 0x51, 0xdf, 0x45, 0x4e, 0x7e, 0x97, 0x07, 0xd7, 0x95, - 0xa6, 0x47, 0x81, 0xdd, 0x1d, 0xc8, 0x07, 0x82, 0x8b, 0x4e, 0xcb, 0x77, 0xc1, 0x12, 0xe6, 0xe6, - 0xb4, 0x91, 0x67, 0x77, 0x06, 0xa8, 0xc7, 0xd3, 0x52, 0x34, 0x37, 0xa3, 0xa8, 0x27, 0xf9, 0xd0, - 0xba, 0x2a, 0x08, 0xdf, 0x13, 0xeb, 0x66, 0x63, 0x3a, 0xe2, 0x37, 0xd3, 0x11, 0x8f, 0x7b, 0x0c, - 0x0d, 0xf0, 0x95, 0x4c, 0x86, 0x6a, 0xe7, 0xff, 0xce, 0xc5, 0xda, 0x79, 0x0b, 0x51, 0x9b, 0x7d, - 0xd4, 0x5c, 0x74, 0xa0, 0x1a, 0xa0, 0x38, 0x94, 0xa6, 0xc8, 0xc7, 0xac, 0xd8, 0xdd, 0x1f, 0x72, - 0xa0, 0xa5, 0x40, 0x67, 0xea, 0xd5, 0xa1, 0x73, 0x89, 0x5e, 0x1d, 0x12, 0xdf, 0x45, 0x1d, 0xfe, - 0x55, 0x3c, 0x3c, 0xc8, 0x4b, 0xc1, 0x0e, 0xec, 0xe1, 0xdb, 0x6d, 0xd3, 0x87, 0xa0, 0xe0, 0xf3, - 0x5d, 0xe5, 0xf3, 0x58, 0x75, 0xfa, 0x74, 0x0b, 0xad, 0xe6, 0x6a, 0x34, 0xda, 0x09, 0x09, 0x68, - 0x49, 0x51, 0xf1, 0xc8, 0x92, 0x8c, 0xdc, 0xfa, 0xd4, 0x2d, 0x27, 0x64, 0xc4, 0x53, 0x42, 0x9c, - 0x14, 0x46, 0xed, 0xe0, 0xf3, 0x12, 0xb8, 0xd4, 0x22, 0x8e, 0xf6, 0x53, 0x50, 0x8e, 0x3f, 0x8b, - 0x6e, 0x4d, 0x5b, 0x94, 0x7c, 0x44, 0xd4, 0x77, 0x5e, 0x87, 0x50, 0x89, 0xf9, 0x18, 0x54, 0x12, - 0x4f, 0x8c, 0xdb, 0x99, 0x92, 0x71, 0x88, 0x7e, 0xfb, 0xb5, 0x10, 0xb5, 0x7b, 0x1b, 0x5c, 0x4d, - 0xbe, 0xd8, 0xc1, 0x4c, 0xd9, 0x04, 0x46, 0xdf, 0x7d, 0x3d, 0x26, 0x6e, 0x7e, 0xe2, 0x05, 0x2a, - 0xdb, 0xfc, 0x38, 0x64, 0x86, 0xf9, 0x59, 0x4f, 0x39, 0x1a, 0x05, 0x6b, 0x99, 0xcf, 0x38, 0xd9, - 0x5b, 0x64, 0x41, 0xf5, 0xfd, 0x33, 0x43, 0x95, 0xd6, 0x5f, 0x81, 0x8d, 0x59, 0xef, 0x0f, 0x7b, - 0x99, 0xbb, 0xcd, 0x40, 0xeb, 0xdf, 0x7c, 0x13, 0xb4, 0x52, 0x4f, 0xc0, 0xb5, 0xf4, 0xa4, 0xca, - 0x54, 0x67, 0xfb, 0x9c, 0x35, 0xd3, 0xce, 0xf0, 0x79, 0xde, 0xf8, 0xab, 0x75, 0xc0, 0x52, 0x6a, - 0xf4, 0xfd, 0x6a, 0xe6, 0x26, 0x49, 0x90, 0x7e, 0xe7, 0x0c, 0x20, 0xa5, 0xe3, 0x09, 0x58, 0x9d, - 0x1e, 0xf0, 0xde, 0x9b, 0xb3, 0x43, 0x0c, 0xa7, 0xd7, 0xcf, 0x86, 0x53, 0xca, 0x10, 0x58, 0x4e, - 0x4f, 0x2f, 0xb7, 0xe6, 0x6c, 0xa1, 0x50, 0xfa, 0xde, 0x59, 0x50, 0xd3, 0x71, 0x53, 0x77, 0xcc, - 0xbc, 0xb8, 0x85, 0xa0, 0xb9, 0x71, 0x9b, 0xea, 0xdd, 0x1f, 0x83, 0x4a, 0xa2, 0xd9, 0x6e, 0xcf, - 0x0b, 0x3a, 0x87, 0xcc, 0x38, 0x63, 0x59, 0x3d, 0x4e, 0xbf, 0xfc, 0x6b, 0x36, 0x02, 0x99, 0x0f, - 0x9f, 0xff, 0xab, 0xb6, 0xf0, 0xfc, 0x45, 0x2d, 0xf7, 0xd9, 0x8b, 0x5a, 0xee, 0x9f, 0x2f, 0x6a, - 0xb9, 0x3f, 0xbc, 0xac, 0x2d, 0x7c, 0xf6, 0xb2, 0xb6, 0xf0, 0x8f, 0x97, 0xb5, 0x85, 0x9f, 0xed, - 0x39, 0x2e, 0xed, 0x8f, 0x3a, 0xec, 0x9b, 0xb3, 0xe1, 0xf2, 0xb3, 0x73, 0x77, 0x60, 0x77, 0x48, - 0xe3, 0xd1, 0x63, 0xfe, 0x83, 0xd2, 0xd3, 0xf0, 0x27, 0x25, 0xfe, 0x7b, 0x52, 0xa7, 0xc0, 0x7f, - 0x50, 0x7a, 0xff, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x55, 0xca, 0x0c, 0xb0, 0x3a, 0x1b, 0x00, - 0x00, + // 1639 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0x1b, 0x45, + 0x14, 0xb7, 0x9d, 0x8f, 0xda, 0xe3, 0x7c, 0x6e, 0xd3, 0xc4, 0xd9, 0xb6, 0xde, 0x64, 0xa8, 0x4a, + 0x92, 0xa6, 0xb6, 0x92, 0xa2, 0x22, 0x59, 0x42, 0xa2, 0x9b, 0x42, 0x49, 0x25, 0xd3, 0x68, 0x01, + 0x21, 0xa0, 0x92, 0xb5, 0xb6, 0x27, 0xeb, 0x55, 0xed, 0x1d, 0xb3, 0x33, 0x4e, 0x1a, 0x24, 0x24, + 0xc4, 0x09, 0x38, 0x21, 0x71, 0xe3, 0x54, 0x71, 0xea, 0xb1, 0x07, 0xfe, 0x88, 0x5c, 0x90, 0x2a, + 0xc4, 0x81, 0x93, 0x05, 0xcd, 0xa1, 0x1c, 0x91, 0x39, 0x72, 0x41, 0x33, 0xb3, 0x3b, 0xfb, 0x61, + 0x3b, 0x0d, 0x55, 0xdb, 0x5c, 0xa2, 0xcc, 0x7b, 0xbf, 0x37, 0xef, 0xbd, 0xdf, 0x7b, 0x7e, 0x33, + 0xb3, 0x60, 0x11, 0xb7, 0x6d, 0xc7, 0xa6, 0x45, 0xdc, 0x6e, 0x60, 0x42, 0x8b, 0x7b, 0x1b, 0x45, + 0x7a, 0xbf, 0xd0, 0x76, 0x31, 0xc5, 0xca, 0x8c, 0x50, 0x15, 0x84, 0xaa, 0xb0, 0xb7, 0xa1, 0xce, + 0x9a, 0x2d, 0xdb, 0xc1, 0x45, 0xfe, 0x57, 0x80, 0xd4, 0x7c, 0x0d, 0x93, 0x16, 0x26, 0xc5, 0xaa, + 0x49, 0x50, 0x71, 0x6f, 0xa3, 0x8a, 0xa8, 0xb9, 0x51, 0xac, 0x61, 0xdb, 0xf1, 0xf4, 0x0b, 0x9e, + 0xbe, 0x45, 0x2c, 0xb6, 0x79, 0x8b, 0x58, 0x9e, 0x62, 0x51, 0x28, 0x2a, 0x7c, 0x55, 0x14, 0x0b, + 0x4f, 0x35, 0x67, 0x61, 0x0b, 0x0b, 0x39, 0xfb, 0xcf, 0x93, 0x5e, 0xe8, 0x8f, 0xf4, 0xa0, 0x8d, + 0x3c, 0x1b, 0xd8, 0x4b, 0x82, 0xa9, 0x32, 0xb1, 0x0c, 0x54, 0xc3, 0x6e, 0x5d, 0x37, 0x69, 0xad, + 0xa1, 0xdc, 0x06, 0x19, 0xd2, 0xa9, 0xb6, 0x6c, 0x4a, 0x91, 0x9b, 0x4b, 0x2e, 0x25, 0x57, 0x32, + 0xfa, 0x7a, 0xaf, 0xab, 0xcd, 0x1c, 0x98, 0xad, 0x66, 0x09, 0x4a, 0x15, 0xfc, 0xf5, 0xe7, 0xab, + 0x73, 0x9e, 0xff, 0x1b, 0xf5, 0xba, 0x8b, 0x08, 0xf9, 0x80, 0xba, 0xb6, 0x63, 0x19, 0x81, 0xb9, + 0xb2, 0x01, 0x32, 0x55, 0xd7, 0xae, 0x5b, 0xa8, 0x62, 0xd7, 0x73, 0xa9, 0xa5, 0xe4, 0xca, 0xa8, + 0x3e, 0x17, 0xec, 0x25, 0x55, 0xd0, 0x48, 0x8b, 0xff, 0xb7, 0xeb, 0xca, 0x9b, 0x20, 0x5b, 0x65, + 0x71, 0x54, 0xaa, 0x07, 0x14, 0x91, 0xdc, 0xc8, 0x52, 0x72, 0x65, 0x42, 0x9f, 0xef, 0x75, 0x35, + 0xc5, 0x33, 0x0a, 0x94, 0xd0, 0x00, 0x7c, 0xa5, 0xb3, 0x45, 0x69, 0xe5, 0xeb, 0xa7, 0x8f, 0xd6, + 0x02, 0xdf, 0xdf, 0x3d, 0x7d, 0xb4, 0x76, 0xce, 0x4b, 0x3a, 0x9a, 0x21, 0xcc, 0x81, 0xf9, 0xa8, + 0xc4, 0x40, 0xa4, 0x8d, 0x1d, 0x82, 0xe0, 0x6f, 0x49, 0x30, 0x5d, 0x26, 0xd6, 0x96, 0x8b, 0x4c, + 0x8a, 0x74, 0x1e, 0x92, 0x72, 0x13, 0x9c, 0xa9, 0xb1, 0x35, 0xf6, 0xd9, 0x58, 0xeb, 0x75, 0xb5, + 0x29, 0x11, 0x8c, 0xa7, 0x18, 0xce, 0x85, 0x6f, 0xaa, 0x18, 0x60, 0xbc, 0x86, 0x9d, 0x5d, 0xdb, + 0xe2, 0x34, 0x64, 0x37, 0xf3, 0x85, 0x78, 0x9b, 0x14, 0x84, 0xbf, 0x2d, 0x8e, 0xd2, 0xd5, 0xc3, + 0xae, 0x96, 0xe8, 0x75, 0xb5, 0x49, 0xcf, 0x11, 0x97, 0xc2, 0x87, 0x4f, 0x1f, 0xad, 0x25, 0x0d, + 0x6f, 0xa7, 0xd2, 0xeb, 0x2c, 0x63, 0xdf, 0x03, 0xcb, 0x77, 0x3e, 0xc8, 0x37, 0x9c, 0x02, 0xbc, + 0x0e, 0x16, 0x62, 0x22, 0x3f, 0x63, 0xe5, 0x7c, 0xb8, 0x42, 0x2c, 0xbf, 0xd1, 0xa0, 0x16, 0xb0, + 0x97, 0x02, 0x33, 0x65, 0x62, 0xed, 0xb8, 0xb8, 0x8d, 0x09, 0xba, 0xd3, 0xa1, 0xed, 0x0e, 0x55, + 0x6e, 0x81, 0x74, 0x5b, 0x08, 0x7c, 0x42, 0xae, 0xf4, 0xba, 0xda, 0xb4, 0x88, 0xd3, 0xd7, 0x0c, + 0x67, 0x44, 0x1a, 0x3f, 0x4f, 0x73, 0x94, 0xc0, 0x04, 0xe6, 0x51, 0x54, 0x6c, 0xa7, 0x8e, 0xee, + 0xf3, 0xee, 0x18, 0xd5, 0x17, 0x7a, 0x5d, 0xed, 0xac, 0xb0, 0x0a, 0x6b, 0xa1, 0x91, 0x15, 0xcb, + 0x6d, 0xb6, 0x52, 0x74, 0x30, 0xdd, 0xdc, 0xac, 0x54, 0x9b, 0xb8, 0x76, 0xaf, 0xe2, 0x74, 0x5a, + 0x55, 0xe4, 0xe6, 0x46, 0xb9, 0xb9, 0xda, 0xeb, 0x6a, 0xf3, 0xc2, 0x3c, 0x06, 0x80, 0xc6, 0x64, + 0x73, 0x53, 0x67, 0x82, 0xf7, 0xf9, 0x9a, 0x35, 0xa7, 0xe7, 0xc1, 0xc5, 0x98, 0xe6, 0xc6, 0xe2, + 0xcd, 0x19, 0x52, 0x42, 0x03, 0x88, 0x95, 0x81, 0x31, 0x2d, 0xad, 0xb2, 0x52, 0xc9, 0xd4, 0x59, + 0xad, 0x16, 0x82, 0x5a, 0x45, 0xf8, 0x85, 0x2a, 0xc8, 0xc5, 0x65, 0xb2, 0x3f, 0xff, 0x15, 0xfd, + 0x79, 0x13, 0x35, 0x11, 0xf5, 0xeb, 0x51, 0x06, 0xa0, 0xd6, 0x30, 0x9b, 0x4d, 0xe4, 0x58, 0xb2, + 0x22, 0x57, 0x7b, 0x5d, 0x6d, 0xd6, 0xeb, 0x1c, 0xa9, 0x1b, 0x5e, 0x93, 0xd0, 0x06, 0xaf, 0xb8, + 0x2a, 0xa5, 0x35, 0x46, 0x4c, 0xc8, 0x7f, 0xac, 0x8d, 0xc3, 0x99, 0xc2, 0x45, 0xde, 0xc6, 0x61, + 0x91, 0x24, 0xe6, 0x28, 0xc5, 0x75, 0xdb, 0x8e, 0x4d, 0x6d, 0x93, 0xa2, 0x0f, 0xf1, 0x3d, 0xe4, + 0xdc, 0x44, 0x6d, 0x4c, 0x6c, 0xaa, 0xdc, 0x00, 0xe3, 0x04, 0x39, 0x75, 0x49, 0xce, 0x6a, 0xf0, + 0xb3, 0x12, 0xf2, 0xe1, 0xc4, 0x78, 0x86, 0xcf, 0x43, 0xca, 0x45, 0x90, 0xa2, 0x98, 0x53, 0x91, + 0xd1, 0x27, 0x7b, 0x5d, 0x2d, 0x23, 0xb0, 0x14, 0x43, 0x23, 0x45, 0xb1, 0x52, 0x06, 0xe3, 0x66, + 0x0b, 0x77, 0x1c, 0xca, 0x9b, 0x30, 0xbb, 0xb9, 0x58, 0xf0, 0x02, 0x60, 0x27, 0x42, 0xc1, 0x3b, + 0x11, 0x0a, 0x5b, 0xd8, 0x76, 0xe2, 0xa3, 0x40, 0x98, 0xf9, 0xa3, 0x40, 0xac, 0x94, 0x75, 0x30, + 0x5a, 0x37, 0xa9, 0xe9, 0x75, 0x64, 0xee, 0xb0, 0xab, 0x25, 0x7b, 0x5d, 0x2d, 0x2b, 0x2c, 0x98, + 0x86, 0xe3, 0x13, 0x06, 0x47, 0x95, 0xae, 0x7f, 0xf3, 0x40, 0x4b, 0xfc, 0xf5, 0x40, 0x4b, 0x30, + 0xf2, 0xbd, 0x1c, 0x19, 0xf1, 0xf9, 0x80, 0xf8, 0x41, 0x4c, 0xc2, 0xb7, 0x80, 0x36, 0x44, 0x25, + 0xe7, 0x89, 0x0a, 0xd2, 0x04, 0x7d, 0xde, 0x41, 0x4e, 0x0d, 0xf9, 0xe3, 0xc4, 0x5f, 0xc3, 0x1f, + 0xc7, 0x80, 0x5a, 0x26, 0xd6, 0xbb, 0xb6, 0x63, 0x36, 0xed, 0x2f, 0x84, 0xfd, 0xc7, 0x36, 0x6d, + 0xd4, 0x5d, 0x73, 0xdf, 0x6c, 0xbe, 0xea, 0x79, 0x70, 0x1d, 0xcc, 0xee, 0x4b, 0xe7, 0xec, 0x3c, + 0xc5, 0xbb, 0x24, 0x37, 0xba, 0x34, 0xb2, 0x32, 0xa1, 0x67, 0x18, 0x7f, 0x82, 0xb0, 0x99, 0x00, + 0xb3, 0xc3, 0x21, 0xca, 0xaa, 0x6c, 0xa7, 0x31, 0x5e, 0xdc, 0xd9, 0xbe, 0x76, 0x92, 0x6d, 0x73, + 0x0b, 0xa4, 0x5d, 0x54, 0x43, 0xf6, 0xde, 0xa0, 0x51, 0xe9, 0x6b, 0x8e, 0x19, 0x95, 0x3e, 0x44, + 0x29, 0x86, 0x58, 0x1d, 0xe7, 0x39, 0x9e, 0x0d, 0x36, 0x92, 0xfc, 0x06, 0x54, 0x87, 0xda, 0xeb, + 0xcc, 0x8b, 0x69, 0xaf, 0x33, 0x7b, 0xc8, 0x25, 0x36, 0x76, 0x72, 0x69, 0xde, 0x61, 0x4a, 0x70, + 0x06, 0x7a, 0x0a, 0x68, 0xf8, 0x10, 0x56, 0x15, 0x42, 0xb1, 0x6b, 0x5a, 0x48, 0x8c, 0xc9, 0x0c, + 0x37, 0x09, 0x55, 0x25, 0xac, 0x85, 0x46, 0xd6, 0x5b, 0xb2, 0x41, 0xc9, 0xa7, 0xb4, 0x49, 0xa8, + 0x37, 0x86, 0x1b, 0x26, 0x69, 0xe4, 0x00, 0x37, 0x0f, 0x4f, 0xe9, 0x28, 0x80, 0x4d, 0x69, 0x93, + 0x50, 0x3e, 0xa7, 0xdf, 0x33, 0x49, 0xa3, 0x74, 0x8d, 0x0f, 0x5b, 0x9f, 0x3c, 0xd6, 0xd8, 0xcb, + 0x41, 0x63, 0x0f, 0xe9, 0x3e, 0x78, 0x09, 0xc0, 0xe1, 0x5a, 0x39, 0x67, 0x7e, 0x48, 0x81, 0xd9, + 0x32, 0xb1, 0x3e, 0x6a, 0xd7, 0x4d, 0x8a, 0x76, 0xfc, 0x93, 0xec, 0x36, 0xc8, 0x98, 0x1d, 0xda, + 0xc0, 0xae, 0x4d, 0x0f, 0xfa, 0xaf, 0x4c, 0x52, 0x75, 0xcc, 0x95, 0x49, 0x62, 0x9e, 0xe7, 0x57, + 0x60, 0x80, 0x09, 0x07, 0xed, 0x57, 0xe4, 0xa9, 0x2c, 0x86, 0x4e, 0x31, 0xe0, 0x3b, 0xac, 0x1d, + 0x1e, 0x44, 0xd6, 0x41, 0xfb, 0x7e, 0x4a, 0xa5, 0x2b, 0xfc, 0x36, 0x25, 0xc3, 0x62, 0x24, 0xe6, + 0x02, 0x12, 0xa3, 0xf9, 0xc3, 0x5d, 0xb0, 0xd8, 0x27, 0x94, 0x13, 0x61, 0x39, 0xf6, 0x1b, 0x15, + 0x53, 0x21, 0xf2, 0x53, 0xbc, 0xdc, 0x7f, 0x34, 0xf3, 0xcc, 0x63, 0xc7, 0x2f, 0xfc, 0x29, 0x05, + 0xe6, 0xa4, 0xa3, 0x2d, 0x79, 0x66, 0x90, 0xd3, 0x2e, 0xc0, 0x67, 0x60, 0x9a, 0x51, 0x1c, 0x9c, + 0x62, 0xec, 0xde, 0x3a, 0xb2, 0x92, 0xd1, 0x37, 0x83, 0xa6, 0x8d, 0x01, 0x86, 0x87, 0x32, 0xe5, + 0xa0, 0xfd, 0x50, 0x6e, 0xa5, 0x42, 0x7f, 0x25, 0xce, 0xc7, 0x2b, 0x11, 0xc2, 0x43, 0x1b, 0x5c, + 0x18, 0x24, 0x7f, 0x19, 0xf5, 0x78, 0x98, 0x02, 0x8a, 0xf4, 0xc5, 0x6f, 0xd2, 0xdb, 0xce, 0x2e, + 0x3e, 0xed, 0x6a, 0x20, 0xc0, 0x28, 0xac, 0x88, 0x87, 0x82, 0xed, 0xec, 0x8a, 0x53, 0x38, 0xbb, + 0x79, 0x7e, 0xc0, 0x95, 0xdb, 0x8f, 0x59, 0x87, 0xde, 0x14, 0x3c, 0x17, 0x54, 0x2b, 0xd8, 0xc0, + 0x9b, 0x86, 0xec, 0x57, 0x26, 0x2d, 0x4a, 0xeb, 0xfd, 0x75, 0x59, 0x8c, 0xd7, 0x45, 0xa2, 0xa1, + 0xc5, 0x8f, 0xbe, 0x98, 0xf4, 0x65, 0xd4, 0xe4, 0xdb, 0x14, 0x38, 0x27, 0x3d, 0xdd, 0x71, 0xcd, + 0x5a, 0xd3, 0x7b, 0x52, 0x9c, 0x76, 0x59, 0xde, 0x06, 0x53, 0x98, 0x87, 0x53, 0x41, 0x8e, 0x59, + 0x6d, 0xa2, 0x3a, 0x2f, 0x4b, 0x5a, 0x5f, 0x0c, 0x58, 0x8f, 0xea, 0xa1, 0x31, 0x29, 0x04, 0xef, + 0x88, 0x75, 0xa9, 0xd8, 0xcf, 0xf8, 0x85, 0x38, 0xe3, 0xe1, 0x8c, 0xa1, 0x06, 0x2e, 0x0e, 0x54, + 0xc8, 0x71, 0xfe, 0x77, 0x32, 0x34, 0xce, 0xcb, 0x88, 0x9a, 0xec, 0x7a, 0x74, 0xda, 0x44, 0x15, + 0x41, 0xba, 0xe5, 0x85, 0xe2, 0x3d, 0x7f, 0x43, 0x87, 0xbd, 0xaf, 0x81, 0x86, 0x04, 0x9d, 0x68, + 0x56, 0xfb, 0xc9, 0x45, 0x66, 0xb5, 0x2f, 0x7c, 0x19, 0x7d, 0xf8, 0x8b, 0x78, 0xaa, 0x78, 0x87, + 0x82, 0xe9, 0x9a, 0xad, 0x17, 0x3b, 0xa6, 0xb7, 0xc0, 0x78, 0x9b, 0xef, 0xea, 0x3d, 0xa8, 0x73, + 0xfd, 0xbf, 0x6e, 0xe1, 0x35, 0x7c, 0x41, 0x13, 0x16, 0xd0, 0xf0, 0x4c, 0xc5, 0xb3, 0x2c, 0xca, + 0xdc, 0x7c, 0xdf, 0x29, 0x27, 0x6c, 0xc4, 0xe3, 0x23, 0x2c, 0xf2, 0x59, 0xdb, 0xfc, 0x27, 0x0d, + 0x46, 0xca, 0xc4, 0x52, 0x3e, 0x01, 0xd9, 0xf0, 0x87, 0x94, 0xa5, 0xfe, 0x88, 0xa2, 0x9f, 0x1d, + 0xd4, 0x95, 0x67, 0x21, 0x64, 0x61, 0xee, 0x82, 0x89, 0xc8, 0x47, 0x89, 0xe5, 0x81, 0x96, 0x61, + 0x88, 0xba, 0xfa, 0x4c, 0x88, 0xdc, 0xbd, 0x02, 0x26, 0xa3, 0x6f, 0x7c, 0x38, 0xd0, 0x36, 0x82, + 0x51, 0xd7, 0x9e, 0x8d, 0x09, 0x87, 0x1f, 0x79, 0xb3, 0x0e, 0x0e, 0x3f, 0x0c, 0x19, 0x12, 0xfe, + 0xa0, 0xc7, 0x9f, 0x42, 0xc1, 0xdc, 0xc0, 0x87, 0xdf, 0xe0, 0x2d, 0x06, 0x41, 0xd5, 0x8d, 0x13, + 0x43, 0xa5, 0xd7, 0x2f, 0xc1, 0xc2, 0xb0, 0x97, 0xcc, 0xfa, 0xc0, 0xdd, 0x86, 0xa0, 0xd5, 0x37, + 0xfe, 0x0f, 0x5a, 0xba, 0xaf, 0x82, 0xa9, 0xd8, 0x2d, 0xf4, 0xb5, 0x81, 0xfb, 0x44, 0x41, 0xea, + 0x95, 0x13, 0x80, 0xa4, 0x8f, 0x7b, 0x60, 0xb6, 0xff, 0xae, 0x75, 0xf9, 0x98, 0x1d, 0x42, 0x38, + 0xb5, 0x70, 0x32, 0x9c, 0x74, 0x86, 0xc0, 0x74, 0xfc, 0x22, 0x71, 0xe9, 0x98, 0x2d, 0x24, 0x4a, + 0x5d, 0x3f, 0x09, 0xaa, 0x9f, 0x37, 0x39, 0xee, 0x8f, 0xe3, 0xcd, 0x07, 0x1d, 0xcb, 0x5b, 0xdf, + 0x18, 0xbd, 0x0b, 0x26, 0x22, 0x73, 0x6f, 0xf9, 0x38, 0xd2, 0x39, 0x64, 0x48, 0xbb, 0x0f, 0x1a, + 0x37, 0xea, 0xd8, 0x57, 0xec, 0x36, 0xa2, 0xdf, 0x3e, 0xfc, 0x33, 0x9f, 0x38, 0x7c, 0x92, 0x4f, + 0x3e, 0x7e, 0x92, 0x4f, 0xfe, 0xf1, 0x24, 0x9f, 0xfc, 0xfe, 0x28, 0x9f, 0x78, 0x7c, 0x94, 0x4f, + 0xfc, 0x7e, 0x94, 0x4f, 0x7c, 0xba, 0x6e, 0xd9, 0xb4, 0xd1, 0xa9, 0x16, 0x6a, 0xb8, 0x55, 0xb4, + 0x79, 0x1b, 0x5f, 0x6d, 0x9a, 0x55, 0x52, 0xbc, 0xb3, 0xc3, 0xbf, 0x06, 0xdf, 0xf7, 0xbf, 0x07, + 0xf3, 0x8f, 0xc1, 0xd5, 0x71, 0xfe, 0x35, 0xf8, 0xda, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xac, + 0x23, 0x4f, 0x3f, 0xd7, 0x16, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1270,8 +1165,6 @@ type MsgClient interface { InitiateTokenDeposit(ctx context.Context, in *MsgInitiateTokenDeposit, opts ...grpc.CallOption) (*MsgInitiateTokenDepositResponse, error) // FinalizeTokenWithdrawal defines a user facing l2 => l1 token transfer interface. FinalizeTokenWithdrawal(ctx context.Context, in *MsgFinalizeTokenWithdrawal, opts ...grpc.CallOption) (*MsgFinalizeTokenWithdrawalResponse, error) - // ForceTokenWithdrwal defines a force token withdrawal interface. - ForceTokenWithdrwal(ctx context.Context, in *MsgForceTokenWithdrawal, opts ...grpc.CallOption) (*MsgForceTokenWithdrawalResponse, error) // UpdateProposer defines a rpc handler method for MsgUpdateProposer. UpdateProposer(ctx context.Context, in *MsgUpdateProposer, opts ...grpc.CallOption) (*MsgUpdateProposerResponse, error) // UpdateChallengers defines a rpc handler method for MsgUpdateChallengers. @@ -1347,15 +1240,6 @@ func (c *msgClient) FinalizeTokenWithdrawal(ctx context.Context, in *MsgFinalize return out, nil } -func (c *msgClient) ForceTokenWithdrwal(ctx context.Context, in *MsgForceTokenWithdrawal, opts ...grpc.CallOption) (*MsgForceTokenWithdrawalResponse, error) { - out := new(MsgForceTokenWithdrawalResponse) - err := c.cc.Invoke(ctx, "/opinit.ophost.v1.Msg/ForceTokenWithdrwal", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *msgClient) UpdateProposer(ctx context.Context, in *MsgUpdateProposer, opts ...grpc.CallOption) (*MsgUpdateProposerResponse, error) { out := new(MsgUpdateProposerResponse) err := c.cc.Invoke(ctx, "/opinit.ophost.v1.Msg/UpdateProposer", in, out, opts...) @@ -1415,8 +1299,6 @@ type MsgServer interface { InitiateTokenDeposit(context.Context, *MsgInitiateTokenDeposit) (*MsgInitiateTokenDepositResponse, error) // FinalizeTokenWithdrawal defines a user facing l2 => l1 token transfer interface. FinalizeTokenWithdrawal(context.Context, *MsgFinalizeTokenWithdrawal) (*MsgFinalizeTokenWithdrawalResponse, error) - // ForceTokenWithdrwal defines a force token withdrawal interface. - ForceTokenWithdrwal(context.Context, *MsgForceTokenWithdrawal) (*MsgForceTokenWithdrawalResponse, error) // UpdateProposer defines a rpc handler method for MsgUpdateProposer. UpdateProposer(context.Context, *MsgUpdateProposer) (*MsgUpdateProposerResponse, error) // UpdateChallengers defines a rpc handler method for MsgUpdateChallengers. @@ -1452,9 +1334,6 @@ func (*UnimplementedMsgServer) InitiateTokenDeposit(ctx context.Context, req *Ms func (*UnimplementedMsgServer) FinalizeTokenWithdrawal(ctx context.Context, req *MsgFinalizeTokenWithdrawal) (*MsgFinalizeTokenWithdrawalResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FinalizeTokenWithdrawal not implemented") } -func (*UnimplementedMsgServer) ForceTokenWithdrwal(ctx context.Context, req *MsgForceTokenWithdrawal) (*MsgForceTokenWithdrawalResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ForceTokenWithdrwal not implemented") -} func (*UnimplementedMsgServer) UpdateProposer(ctx context.Context, req *MsgUpdateProposer) (*MsgUpdateProposerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateProposer not implemented") } @@ -1583,24 +1462,6 @@ func _Msg_FinalizeTokenWithdrawal_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } -func _Msg_ForceTokenWithdrwal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgForceTokenWithdrawal) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MsgServer).ForceTokenWithdrwal(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/opinit.ophost.v1.Msg/ForceTokenWithdrwal", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).ForceTokenWithdrwal(ctx, req.(*MsgForceTokenWithdrawal)) - } - return interceptor(ctx, in, info, handler) -} - func _Msg_UpdateProposer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MsgUpdateProposer) if err := dec(in); err != nil { @@ -1719,10 +1580,6 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "FinalizeTokenWithdrawal", Handler: _Msg_FinalizeTokenWithdrawal_Handler, }, - { - MethodName: "ForceTokenWithdrwal", - Handler: _Msg_ForceTokenWithdrwal_Handler, - }, { MethodName: "UpdateProposer", Handler: _Msg_UpdateProposer_Handler, @@ -2221,139 +2078,6 @@ func (m *MsgFinalizeTokenWithdrawalResponse) MarshalToSizedBuffer(dAtA []byte) ( return len(dAtA) - i, nil } -func (m *MsgForceTokenWithdrawal) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgForceTokenWithdrawal) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgForceTokenWithdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.LastBlockHash) > 0 { - i -= len(m.LastBlockHash) - copy(dAtA[i:], m.LastBlockHash) - i = encodeVarintTx(dAtA, i, uint64(len(m.LastBlockHash))) - i-- - dAtA[i] = 0x62 - } - if len(m.StorageRoot) > 0 { - i -= len(m.StorageRoot) - copy(dAtA[i:], m.StorageRoot) - i = encodeVarintTx(dAtA, i, uint64(len(m.StorageRoot))) - i-- - dAtA[i] = 0x5a - } - if len(m.Version) > 0 { - i -= len(m.Version) - copy(dAtA[i:], m.Version) - i = encodeVarintTx(dAtA, i, uint64(len(m.Version))) - i-- - dAtA[i] = 0x52 - } - { - size, err := m.AppHashProof.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTx(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x4a - if len(m.AppHash) > 0 { - i -= len(m.AppHash) - copy(dAtA[i:], m.AppHash) - i = encodeVarintTx(dAtA, i, uint64(len(m.AppHash))) - i-- - dAtA[i] = 0x42 - } - { - size, err := m.CommitmentProof.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTx(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - { - size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTx(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - if len(m.Sender) > 0 { - i -= len(m.Sender) - copy(dAtA[i:], m.Sender) - i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) - i-- - dAtA[i] = 0x2a - } - if m.Sequence != 0 { - i = encodeVarintTx(dAtA, i, uint64(m.Sequence)) - i-- - dAtA[i] = 0x20 - } - if m.OutputIndex != 0 { - i = encodeVarintTx(dAtA, i, uint64(m.OutputIndex)) - i-- - dAtA[i] = 0x18 - } - if m.BridgeId != 0 { - i = encodeVarintTx(dAtA, i, uint64(m.BridgeId)) - i-- - dAtA[i] = 0x10 - } - if len(m.Receiver) > 0 { - i -= len(m.Receiver) - copy(dAtA[i:], m.Receiver) - i = encodeVarintTx(dAtA, i, uint64(len(m.Receiver))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *MsgForceTokenWithdrawalResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgForceTokenWithdrawalResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgForceTokenWithdrawalResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - func (m *MsgUpdateProposer) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3015,64 +2739,42 @@ func (m *MsgFinalizeTokenWithdrawalResponse) Size() (n int) { return n } -func (m *MsgForceTokenWithdrawal) Size() (n int) { +func (m *MsgUpdateProposer) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Receiver) + l = len(m.Authority) if l > 0 { n += 1 + l + sovTx(uint64(l)) } if m.BridgeId != 0 { n += 1 + sovTx(uint64(m.BridgeId)) } - if m.OutputIndex != 0 { - n += 1 + sovTx(uint64(m.OutputIndex)) - } - if m.Sequence != 0 { - n += 1 + sovTx(uint64(m.Sequence)) - } - l = len(m.Sender) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - l = m.Amount.Size() - n += 1 + l + sovTx(uint64(l)) - l = m.CommitmentProof.Size() - n += 1 + l + sovTx(uint64(l)) - l = len(m.AppHash) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - l = m.AppHashProof.Size() - n += 1 + l + sovTx(uint64(l)) - l = len(m.Version) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - l = len(m.StorageRoot) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - l = len(m.LastBlockHash) + l = len(m.NewProposer) if l > 0 { n += 1 + l + sovTx(uint64(l)) } return n } -func (m *MsgForceTokenWithdrawalResponse) Size() (n int) { +func (m *MsgUpdateProposerResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l + if m.OutputIndex != 0 { + n += 1 + sovTx(uint64(m.OutputIndex)) + } + if m.L2BlockNumber != 0 { + n += 1 + sovTx(uint64(m.L2BlockNumber)) + } return n } -func (m *MsgUpdateProposer) Size() (n int) { +func (m *MsgUpdateChallengers) Size() (n int) { if m == nil { return 0 } @@ -3085,14 +2787,16 @@ func (m *MsgUpdateProposer) Size() (n int) { if m.BridgeId != 0 { n += 1 + sovTx(uint64(m.BridgeId)) } - l = len(m.NewProposer) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) + if len(m.NewChallengers) > 0 { + for _, s := range m.NewChallengers { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } } return n } -func (m *MsgUpdateProposerResponse) Size() (n int) { +func (m *MsgUpdateChallengersResponse) Size() (n int) { if m == nil { return 0 } @@ -3107,44 +2811,7 @@ func (m *MsgUpdateProposerResponse) Size() (n int) { return n } -func (m *MsgUpdateChallengers) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Authority) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - if m.BridgeId != 0 { - n += 1 + sovTx(uint64(m.BridgeId)) - } - if len(m.NewChallengers) > 0 { - for _, s := range m.NewChallengers { - l = len(s) - n += 1 + l + sovTx(uint64(l)) - } - } - return n -} - -func (m *MsgUpdateChallengersResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.OutputIndex != 0 { - n += 1 + sovTx(uint64(m.OutputIndex)) - } - if m.L2BlockNumber != 0 { - n += 1 + sovTx(uint64(m.L2BlockNumber)) - } - return n -} - -func (m *MsgUpdateBatchInfo) Size() (n int) { +func (m *MsgUpdateBatchInfo) Size() (n int) { if m == nil { return 0 } @@ -4691,462 +4358,6 @@ func (m *MsgFinalizeTokenWithdrawalResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgForceTokenWithdrawal) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgForceTokenWithdrawal: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgForceTokenWithdrawal: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Receiver", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Receiver = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BridgeId", wireType) - } - m.BridgeId = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.BridgeId |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OutputIndex", wireType) - } - m.OutputIndex = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.OutputIndex |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType) - } - m.Sequence = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Sequence |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Sender = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CommitmentProof", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.CommitmentProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...) - if m.AppHash == nil { - m.AppHash = []byte{} - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AppHashProof", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.AppHashProof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Version = append(m.Version[:0], dAtA[iNdEx:postIndex]...) - if m.Version == nil { - m.Version = []byte{} - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StorageRoot", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.StorageRoot = append(m.StorageRoot[:0], dAtA[iNdEx:postIndex]...) - if m.StorageRoot == nil { - m.StorageRoot = []byte{} - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastBlockHash", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.LastBlockHash = append(m.LastBlockHash[:0], dAtA[iNdEx:postIndex]...) - if m.LastBlockHash == nil { - m.LastBlockHash = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgForceTokenWithdrawalResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgForceTokenWithdrawalResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgForceTokenWithdrawalResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *MsgUpdateProposer) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/x/ophost/types/tx_test.go b/x/ophost/types/tx_test.go index c412c66a..5574c560 100644 --- a/x/ophost/types/tx_test.go +++ b/x/ophost/types/tx_test.go @@ -4,11 +4,9 @@ import ( "bytes" "testing" - v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" "github.com/stretchr/testify/require" "github.com/cosmos/cosmos-sdk/codec/address" - sdk "github.com/cosmos/cosmos-sdk/types" ) func TestMsgRecordBatch_Validate(t *testing.T) { @@ -28,110 +26,3 @@ func TestMsgRecordBatch_Validate(t *testing.T) { invalidMsg = NewMsgRecordBatch(addr, 123, nil) require.Error(t, invalidMsg.Validate(ac)) } - -func TestMsgForceTokenWithdrawal(t *testing.T) { - ac := address.NewBech32Codec("init") - addr, err := ac.BytesToString(bytes.Repeat([]byte{1}, 20)) - require.NoError(t, err) - - // Valid input - validMsg := NewMsgForceTokenWithdrawal( - 123, 456, - 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, - bytes.Repeat([]byte{1}, 32), - v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), - ) - require.NoError(t, validMsg.Validate(ac)) - - // Empty app hash - invalidMsg := NewMsgForceTokenWithdrawal( - 123, 456, - 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, - nil, - v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), - ) - require.Error(t, invalidMsg.Validate(ac)) - - // Empty sender - invalidMsg = NewMsgForceTokenWithdrawal( - 123, 456, - 1, "", addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, - bytes.Repeat([]byte{1}, 32), - v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), - ) - require.Error(t, invalidMsg.Validate(ac)) - - // Empty receiver - invalidMsg = NewMsgForceTokenWithdrawal( - 123, 456, - 1, addr, "", sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, - bytes.Repeat([]byte{1}, 32), - v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), - ) - require.Error(t, invalidMsg.Validate(ac)) - - // Empty amount - invalidMsg = NewMsgForceTokenWithdrawal( - 123, 456, - 1, addr, addr, sdk.NewInt64Coin("test", 0), v1.ProofOps{Ops: []v1.ProofOp{{}}}, - bytes.Repeat([]byte{1}, 32), - v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), - ) - require.Error(t, invalidMsg.Validate(ac)) - - // Invalid version - invalidMsg = NewMsgForceTokenWithdrawal( - 123, 456, - 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, - bytes.Repeat([]byte{1}, 32), - v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), - ) - invalidMsg.Version = []byte{1, 2} - require.Error(t, invalidMsg.Validate(ac)) - - // Empty storage root - invalidMsg = NewMsgForceTokenWithdrawal( - 123, 456, - 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, - bytes.Repeat([]byte{1}, 32), - v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - []byte{1}, nil, bytes.Repeat([]byte{1}, 32), - ) - require.Error(t, invalidMsg.Validate(ac)) - - // Empty latest block hash - invalidMsg = NewMsgForceTokenWithdrawal( - 123, 456, - 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, - bytes.Repeat([]byte{1}, 32), - v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - []byte{1}, bytes.Repeat([]byte{1}, 32), nil, - ) - require.Error(t, invalidMsg.Validate(ac)) - - // Empty commitment proof - invalidMsg = NewMsgForceTokenWithdrawal( - 123, 456, - 1, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{}}, - bytes.Repeat([]byte{1}, 32), - v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), - ) - require.Error(t, invalidMsg.Validate(ac)) - - // Empty l2 sequence - invalidMsg = NewMsgForceTokenWithdrawal( - 123, 456, - 0, addr, addr, sdk.NewInt64Coin("test", 100), v1.ProofOps{Ops: []v1.ProofOp{{}}}, - bytes.Repeat([]byte{1}, 32), - v1.Proof{Total: 1, Index: 1, LeafHash: bytes.Repeat([]byte{1}, 32), Aunts: [][]byte{bytes.Repeat([]byte{2}, 32)}}, - []byte{1}, bytes.Repeat([]byte{1}, 32), bytes.Repeat([]byte{1}, 32), - ) - require.Error(t, invalidMsg.Validate(ac)) -} From 9dd2a3a3512530dda7c2f3b9188bbf2bb2bf0cd8 Mon Sep 17 00:00:00 2001 From: beer-1 Date: Tue, 3 Sep 2024 17:38:44 +0900 Subject: [PATCH 06/16] rename function --- x/opchild/keeper/deposit.go | 2 +- x/opchild/keeper/msg_server.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x/opchild/keeper/deposit.go b/x/opchild/keeper/deposit.go index 077a6361..54334c98 100644 --- a/x/opchild/keeper/deposit.go +++ b/x/opchild/keeper/deposit.go @@ -8,7 +8,7 @@ import ( "github.com/initia-labs/OPinit/x/opchild/types" ) -func (k Keeper) HandleBridgeHook(ctx sdk.Context, sender sdk.AccAddress, data []byte) (success bool, reason string) { +func (k Keeper) handleBridgeHook(ctx sdk.Context, sender sdk.AccAddress, data []byte) (success bool, reason string) { defer func() { if r := recover(); r != nil { reason = fmt.Sprintf("panic: %v", r) diff --git a/x/opchild/keeper/msg_server.go b/x/opchild/keeper/msg_server.go index 363112d6..1a01d5e6 100644 --- a/x/opchild/keeper/msg_server.go +++ b/x/opchild/keeper/msg_server.go @@ -435,7 +435,7 @@ func (ms MsgServer) FinalizeTokenDeposit(ctx context.Context, req *types.MsgFina // if the deposit is successful and the data is not empty, execute the hook if success && len(req.Data) > 0 { - success, reason := ms.HandleBridgeHook(sdkCtx, toAddr, req.Data) + success, reason := ms.handleBridgeHook(sdkCtx, toAddr, req.Data) event = event.AppendAttributes(sdk.NewAttribute(types.AttributeKeyHookSuccess, strconv.FormatBool(success))) event = event.AppendAttributes(sdk.NewAttribute(types.AttributeKeyHookReason, reason)) } From ec9d00ea360169eefa40c154b7de638e1e0d65ac Mon Sep 17 00:00:00 2001 From: beer-1 Date: Tue, 3 Sep 2024 17:39:34 +0900 Subject: [PATCH 07/16] add comments --- x/opchild/keeper/deposit.go | 1 + 1 file changed, 1 insertion(+) diff --git a/x/opchild/keeper/deposit.go b/x/opchild/keeper/deposit.go index 54334c98..ea8dc5ae 100644 --- a/x/opchild/keeper/deposit.go +++ b/x/opchild/keeper/deposit.go @@ -32,6 +32,7 @@ func (k Keeper) handleBridgeHook(ctx sdk.Context, sender sdk.AccAddress, data [] return } + // use cache context from here to avoid resetting sequencer number on failure cacheCtx, commit := ctx.CacheContext() for _, msg := range tx.GetMsgs() { handler := k.router.Handler(msg) From e6bae3f80b5b836389d307625a7ff8ee3b3da8fd Mon Sep 17 00:00:00 2001 From: beer-1 Date: Tue, 3 Sep 2024 17:41:05 +0900 Subject: [PATCH 08/16] remove unused params --- x/opchild/keeper/deposit.go | 2 +- x/opchild/keeper/msg_server.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x/opchild/keeper/deposit.go b/x/opchild/keeper/deposit.go index ea8dc5ae..76f6b158 100644 --- a/x/opchild/keeper/deposit.go +++ b/x/opchild/keeper/deposit.go @@ -8,7 +8,7 @@ import ( "github.com/initia-labs/OPinit/x/opchild/types" ) -func (k Keeper) handleBridgeHook(ctx sdk.Context, sender sdk.AccAddress, data []byte) (success bool, reason string) { +func (k Keeper) handleBridgeHook(ctx sdk.Context, data []byte) (success bool, reason string) { defer func() { if r := recover(); r != nil { reason = fmt.Sprintf("panic: %v", r) diff --git a/x/opchild/keeper/msg_server.go b/x/opchild/keeper/msg_server.go index 1a01d5e6..1add4b41 100644 --- a/x/opchild/keeper/msg_server.go +++ b/x/opchild/keeper/msg_server.go @@ -435,7 +435,7 @@ func (ms MsgServer) FinalizeTokenDeposit(ctx context.Context, req *types.MsgFina // if the deposit is successful and the data is not empty, execute the hook if success && len(req.Data) > 0 { - success, reason := ms.handleBridgeHook(sdkCtx, toAddr, req.Data) + success, reason := ms.handleBridgeHook(sdkCtx, req.Data) event = event.AppendAttributes(sdk.NewAttribute(types.AttributeKeyHookSuccess, strconv.FormatBool(success))) event = event.AppendAttributes(sdk.NewAttribute(types.AttributeKeyHookReason, reason)) } From 47694dfc5b7300a5992c2e6ce26b21ed6e998209 Mon Sep 17 00:00:00 2001 From: beer-1 Date: Tue, 3 Sep 2024 17:42:54 +0900 Subject: [PATCH 09/16] remove unused go mod --- api/go.mod | 2 -- api/go.sum | 4 ---- go.mod | 3 --- go.sum | 6 ------ 4 files changed, 15 deletions(-) diff --git a/api/go.mod b/api/go.mod index 5c011b1e..0a9a7ce8 100644 --- a/api/go.mod +++ b/api/go.mod @@ -3,7 +3,6 @@ module github.com/initia-labs/OPinit/api go 1.22 require ( - buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 cosmossdk.io/api v0.7.5 github.com/cosmos/cosmos-proto v1.0.0-beta.5 github.com/cosmos/gogoproto v1.5.0 @@ -13,7 +12,6 @@ require ( ) require ( - buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 // indirect github.com/google/go-cmp v0.6.0 // indirect golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect golang.org/x/net v0.27.0 // indirect diff --git a/api/go.sum b/api/go.sum index 76ee24a5..41425465 100644 --- a/api/go.sum +++ b/api/go.sum @@ -1,7 +1,3 @@ -buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 h1:90/4O5QkHb8EZdA2SAhueRzYw6u5ZHCPKtReFqshnTY= -buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2/go.mod h1:1+3gJj2NvZ1mTLAtHu+lMhOjGgQPiCKCeo+9MBww0Eo= -buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 h1:b7EEYTUHmWSBEyISHlHvXbJPqtKiHRuUignL1tsHnNQ= -buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2/go.mod h1:HqcXMSa5qnNuakaMUo+hWhF51mKbcrZxGl9Vp5EeJXc= cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= diff --git a/go.mod b/go.mod index 33588757..0e42fd2a 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,6 @@ require ( cosmossdk.io/store v1.1.0 cosmossdk.io/x/tx v0.13.4 github.com/cometbft/cometbft v0.38.10 - github.com/cometbft/cometbft/api v1.0.0-rc.1 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-proto v1.0.0-beta.5 github.com/cosmos/cosmos-sdk v0.50.9 @@ -41,8 +40,6 @@ require ( ) require ( - buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 // indirect - buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 // indirect cloud.google.com/go v0.112.1 // indirect cloud.google.com/go/compute/metadata v0.3.0 // indirect cloud.google.com/go/iam v1.1.6 // indirect diff --git a/go.sum b/go.sum index 1fba48d8..c754bd5e 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,3 @@ -buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 h1:90/4O5QkHb8EZdA2SAhueRzYw6u5ZHCPKtReFqshnTY= -buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2/go.mod h1:1+3gJj2NvZ1mTLAtHu+lMhOjGgQPiCKCeo+9MBww0Eo= -buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 h1:b7EEYTUHmWSBEyISHlHvXbJPqtKiHRuUignL1tsHnNQ= -buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2/go.mod h1:HqcXMSa5qnNuakaMUo+hWhF51mKbcrZxGl9Vp5EeJXc= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -370,8 +366,6 @@ github.com/cometbft/cometbft v0.38.10 h1:2ePuglchT+j0Iao+cfmt/nw5U7K2lnGDzXSUPGV github.com/cometbft/cometbft v0.38.10/go.mod h1:jHPx9vQpWzPHEAiYI/7EDKaB1NXhK6o3SArrrY8ExKc= github.com/cometbft/cometbft-db v0.10.0 h1:VMBQh88zXn64jXVvj39tlu/IgsGR84T7ImjS523DCiU= github.com/cometbft/cometbft-db v0.10.0/go.mod h1:7RR7NRv99j7keWJ5IkE9iZibUTKYdtepXTp7Ra0FxKk= -github.com/cometbft/cometbft/api v1.0.0-rc.1 h1:GtdXwDGlqwHYs16A4egjwylfYOMYyEacLBrs3Zvpt7g= -github.com/cometbft/cometbft/api v1.0.0-rc.1/go.mod h1:NDFKiBBD8HJC6QQLAoUI99YhsiRZtg2+FJWfk6A6m6o= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= From d070aaa401f4ab3c63b6f3cf97dfa96f8a01a73c Mon Sep 17 00:00:00 2001 From: beer-1 Date: Tue, 3 Sep 2024 17:50:32 +0900 Subject: [PATCH 10/16] cleanup --- api/opinit/opchild/v1/genesis.pulsar.go | 32 ++--- api/opinit/opchild/v1/query.pulsar.go | 3 - api/opinit/opchild/v1/tx.pulsar.go | 2 +- proto/buf.gen.pulsar.yaml | 3 - proto/buf.lock | 5 - proto/buf.yaml | 1 - proto/opinit/opchild/v1/genesis.proto | 8 +- proto/opinit/opchild/v1/query.proto | 1 - proto/opinit/opchild/v1/tx.proto | 2 +- x/opchild/keeper/keeper.go | 11 -- x/opchild/types/genesis.pb.go | 85 ++++++------- x/opchild/types/keys.go | 2 - x/opchild/types/query.pb.go | 107 ++++++++-------- x/opchild/types/tx.go | 1 + x/opchild/types/tx.pb.go | 154 ++++++++++++------------ x/ophost/types/error.go | 3 +- 16 files changed, 197 insertions(+), 223 deletions(-) diff --git a/api/opinit/opchild/v1/genesis.pulsar.go b/api/opinit/opchild/v1/genesis.pulsar.go index 145f50cf..2e403b09 100644 --- a/api/opinit/opchild/v1/genesis.pulsar.go +++ b/api/opinit/opchild/v1/genesis.pulsar.go @@ -601,7 +601,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { dAtA[i] = 0 } i-- - dAtA[i] = 0x48 + dAtA[i] = 0x38 } if x.BridgeInfo != nil { encoded, err := options.Marshal(x.BridgeInfo) @@ -615,17 +615,17 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x42 + dAtA[i] = 0x32 } if x.NextL1Sequence != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.NextL1Sequence)) i-- - dAtA[i] = 0x38 + dAtA[i] = 0x28 } if x.NextL2Sequence != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.NextL2Sequence)) i-- - dAtA[i] = 0x30 + dAtA[i] = 0x20 } if len(x.Validators) > 0 { for iNdEx := len(x.Validators) - 1; iNdEx >= 0; iNdEx-- { @@ -826,7 +826,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 6: + case 4: if wireType != 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NextL2Sequence", wireType) } @@ -845,7 +845,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { break } } - case 7: + case 5: if wireType != 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NextL1Sequence", wireType) } @@ -864,7 +864,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { break } } - case 8: + case 6: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BridgeInfo", wireType) } @@ -900,7 +900,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 9: + case 7: if wireType != 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Exported", wireType) } @@ -1449,10 +1449,10 @@ type GenesisState struct { LastValidatorPowers []*LastValidatorPower `protobuf:"bytes,2,rep,name=last_validator_powers,json=lastValidatorPowers,proto3" json:"last_validator_powers,omitempty"` // delegations defines the validator set at genesis. Validators []*Validator `protobuf:"bytes,3,rep,name=validators,proto3" json:"validators,omitempty"` - NextL2Sequence uint64 `protobuf:"varint,6,opt,name=next_l2_sequence,json=nextL2Sequence,proto3" json:"next_l2_sequence,omitempty"` - NextL1Sequence uint64 `protobuf:"varint,7,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` - BridgeInfo *BridgeInfo `protobuf:"bytes,8,opt,name=bridge_info,json=bridgeInfo,proto3" json:"bridge_info,omitempty"` - Exported bool `protobuf:"varint,9,opt,name=exported,proto3" json:"exported,omitempty"` + NextL2Sequence uint64 `protobuf:"varint,4,opt,name=next_l2_sequence,json=nextL2Sequence,proto3" json:"next_l2_sequence,omitempty"` + NextL1Sequence uint64 `protobuf:"varint,5,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` + BridgeInfo *BridgeInfo `protobuf:"bytes,6,opt,name=bridge_info,json=bridgeInfo,proto3" json:"bridge_info,omitempty"` + Exported bool `protobuf:"varint,7,opt,name=exported,proto3" json:"exported,omitempty"` } func (x *GenesisState) Reset() { @@ -1599,16 +1599,16 @@ var file_opinit_opchild_v1_genesis_proto_rawDesc = []byte{ 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x32, - 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, + 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x64, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x22, 0x68, 0x0a, 0x12, 0x4c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, diff --git a/api/opinit/opchild/v1/query.pulsar.go b/api/opinit/opchild/v1/query.pulsar.go index a27d9f72..7839cbc2 100644 --- a/api/opinit/opchild/v1/query.pulsar.go +++ b/api/opinit/opchild/v1/query.pulsar.go @@ -4,7 +4,6 @@ package opchildv1 import ( _ "cosmossdk.io/api/amino" v1beta1 "cosmossdk.io/api/cosmos/base/query/v1beta1" - _ "cosmossdk.io/api/cosmos/base/v1beta1" _ "cosmossdk.io/api/cosmos/query/v1" fmt "fmt" _ "github.com/cosmos/cosmos-proto" @@ -6332,8 +6331,6 @@ var file_opinit_opchild_v1_query_proto_rawDesc = []byte{ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, diff --git a/api/opinit/opchild/v1/tx.pulsar.go b/api/opinit/opchild/v1/tx.pulsar.go index 666f91f7..e3b3f523 100644 --- a/api/opinit/opchild/v1/tx.pulsar.go +++ b/api/opinit/opchild/v1/tx.pulsar.go @@ -8727,7 +8727,7 @@ type MsgFinalizeTokenDeposit struct { Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` // from is l1 sender address From string `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"` - // to is l2 recipient address or "hook" + // to is l2 recipient address To string `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"` // amount is the coin amount to deposit. Amount *v1beta1.Coin `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"` diff --git a/proto/buf.gen.pulsar.yaml b/proto/buf.gen.pulsar.yaml index e671b94a..ecd944eb 100644 --- a/proto/buf.gen.pulsar.yaml +++ b/proto/buf.gen.pulsar.yaml @@ -17,6 +17,3 @@ plugins: - name: go-grpc out: ../api opt: paths=source_relative - - name: go-cosmos-orm - out: ../api - opt: paths=source_relative diff --git a/proto/buf.lock b/proto/buf.lock index fe4ad97d..33ee1fbc 100644 --- a/proto/buf.lock +++ b/proto/buf.lock @@ -1,11 +1,6 @@ # Generated by buf. DO NOT EDIT. version: v1 deps: - - remote: buf.build - owner: cometbft - repository: cometbft - commit: fedbb9acfd2f494b9755949cbb41dfca - digest: shake256:c1881013cf98a4833923d74638c3623ac32890fa066eef961986b40e5e86d646fee02f05a5c7fabe596cc81f01108ffb1ae28db39db73a797e7f72e26c289628 - remote: buf.build owner: cosmos repository: cosmos-proto diff --git a/proto/buf.yaml b/proto/buf.yaml index 8faf63ed..b8579c85 100644 --- a/proto/buf.yaml +++ b/proto/buf.yaml @@ -2,7 +2,6 @@ version: v1 name: buf.build/initia-labs/OPinit deps: - - buf.build/cometbft/cometbft:fedbb9acfd2f494b9755949cbb41dfca - buf.build/cosmos/cosmos-sdk:v0.50.0 - buf.build/cosmos/cosmos-proto:1935555c206d4afb9e94615dfd0fad31 - buf.build/cosmos/gogo-proto:5e5b9fdd01804356895f8f79a6f1ddc1 diff --git a/proto/opinit/opchild/v1/genesis.proto b/proto/opinit/opchild/v1/genesis.proto index 432d126c..1b816ef5 100644 --- a/proto/opinit/opchild/v1/genesis.proto +++ b/proto/opinit/opchild/v1/genesis.proto @@ -20,10 +20,10 @@ message GenesisState { // delegations defines the validator set at genesis. repeated Validator validators = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - uint64 next_l2_sequence = 6; - uint64 next_l1_sequence = 7; - BridgeInfo bridge_info = 8; - bool exported = 9; + uint64 next_l2_sequence = 4; + uint64 next_l1_sequence = 5; + BridgeInfo bridge_info = 6; + bool exported = 7; } // LastValidatorPower required for validator set update logic. diff --git a/proto/opinit/opchild/v1/query.proto b/proto/opinit/opchild/v1/query.proto index 80132854..a8af664e 100644 --- a/proto/opinit/opchild/v1/query.proto +++ b/proto/opinit/opchild/v1/query.proto @@ -3,7 +3,6 @@ package opinit.opchild.v1; import "amino/amino.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; -import "cosmos/base/v1beta1/coin.proto"; import "cosmos/query/v1/query.proto"; import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; diff --git a/proto/opinit/opchild/v1/tx.proto b/proto/opinit/opchild/v1/tx.proto index 17c57617..62955e10 100644 --- a/proto/opinit/opchild/v1/tx.proto +++ b/proto/opinit/opchild/v1/tx.proto @@ -105,7 +105,7 @@ message MsgFinalizeTokenDeposit { // from is l1 sender address string from = 2; - // to is l2 recipient address or "hook" + // to is l2 recipient address string to = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; // amount is the coin amount to deposit. diff --git a/x/opchild/keeper/keeper.go b/x/opchild/keeper/keeper.go index 95c6b0cd..124c6d12 100644 --- a/x/opchild/keeper/keeper.go +++ b/x/opchild/keeper/keeper.go @@ -4,10 +4,8 @@ import ( "context" "errors" "fmt" - "time" "cosmossdk.io/collections" - collcodec "cosmossdk.io/collections/codec" "cosmossdk.io/core/address" corestoretypes "cosmossdk.io/core/store" "cosmossdk.io/log" @@ -54,8 +52,6 @@ type Keeper struct { ValidatorsByConsAddr collections.Map[[]byte, []byte] HistoricalInfos collections.Map[int64, cosmostypes.HistoricalInfo] DenomPairs collections.Map[string, string] - Commitments collections.Map[uint64, []byte] - CommitmentTimes collections.Map[uint64, time.Time] ExecutorChangePlans map[uint64]types.ExecutorChangePlan @@ -126,8 +122,6 @@ func NewKeeper( ValidatorsByConsAddr: collections.NewMap(sb, types.ValidatorsByConsAddrPrefix, "validators_by_cons_addr", collections.BytesKey, collections.BytesValue), DenomPairs: collections.NewMap(sb, types.DenomPairPrefix, "denom_pairs", collections.StringKey, collections.StringValue), HistoricalInfos: collections.NewMap(sb, types.HistoricalInfoPrefix, "historical_infos", collections.Int64Key, codec.CollValue[cosmostypes.HistoricalInfo](cdc)), - Commitments: collections.NewMap(sb, types.CommitmentPrefix, "commitments", collections.Uint64Key, collections.BytesValue), - CommitmentTimes: collections.NewMap(sb, types.CommitmentTimePrefix, "commitment_times", collections.Uint64Key, collcodec.KeyToValueCodec(sdk.TimeKey)), ExecutorChangePlans: make(map[uint64]types.ExecutorChangePlan), HostValidatorStore: hostValidatorStore, @@ -159,11 +153,6 @@ func (k Keeper) Router() *baseapp.MsgServiceRouter { return k.router } -// StoreService returns the KVStoreService -func (k Keeper) StoreService() corestoretypes.KVStoreService { - return k.storeService -} - // setDenomMetadata sets an OPinit token's denomination metadata func (k Keeper) setDenomMetadata(ctx context.Context, baseDenom, denom string) { metadata := banktypes.Metadata{ diff --git a/x/opchild/types/genesis.pb.go b/x/opchild/types/genesis.pb.go index e8ec6f84..65774714 100644 --- a/x/opchild/types/genesis.pb.go +++ b/x/opchild/types/genesis.pb.go @@ -34,10 +34,10 @@ type GenesisState struct { LastValidatorPowers []LastValidatorPower `protobuf:"bytes,2,rep,name=last_validator_powers,json=lastValidatorPowers,proto3" json:"last_validator_powers"` // delegations defines the validator set at genesis. Validators []Validator `protobuf:"bytes,3,rep,name=validators,proto3" json:"validators"` - NextL2Sequence uint64 `protobuf:"varint,6,opt,name=next_l2_sequence,json=nextL2Sequence,proto3" json:"next_l2_sequence,omitempty"` - NextL1Sequence uint64 `protobuf:"varint,7,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` - BridgeInfo *BridgeInfo `protobuf:"bytes,8,opt,name=bridge_info,json=bridgeInfo,proto3" json:"bridge_info,omitempty"` - Exported bool `protobuf:"varint,9,opt,name=exported,proto3" json:"exported,omitempty"` + NextL2Sequence uint64 `protobuf:"varint,4,opt,name=next_l2_sequence,json=nextL2Sequence,proto3" json:"next_l2_sequence,omitempty"` + NextL1Sequence uint64 `protobuf:"varint,5,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` + BridgeInfo *BridgeInfo `protobuf:"bytes,6,opt,name=bridge_info,json=bridgeInfo,proto3" json:"bridge_info,omitempty"` + Exported bool `protobuf:"varint,7,opt,name=exported,proto3" json:"exported,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -171,36 +171,37 @@ func init() { func init() { proto.RegisterFile("opinit/opchild/v1/genesis.proto", fileDescriptor_08c29689c0e7bd55) } var fileDescriptor_08c29689c0e7bd55 = []byte{ - // 464 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0x41, 0x8b, 0xd3, 0x40, - 0x14, 0xc7, 0x33, 0x5b, 0xed, 0xb6, 0x53, 0x11, 0x77, 0xac, 0x90, 0x2d, 0x6e, 0x1a, 0x16, 0x84, - 0x20, 0x34, 0xa1, 0xf1, 0x26, 0x22, 0xd8, 0x4b, 0x11, 0x16, 0x2c, 0x29, 0x78, 0xf0, 0x12, 0x26, - 0xcd, 0x6c, 0x3a, 0x90, 0xce, 0xc4, 0x99, 0xd9, 0x5a, 0xbf, 0x81, 0x47, 0x3f, 0xc2, 0x1e, 0x05, - 0x2f, 0x1e, 0xfc, 0x10, 0x7b, 0x5c, 0x3c, 0x79, 0x12, 0x69, 0x0f, 0xfa, 0x31, 0x96, 0xce, 0x64, - 0xb3, 0x85, 0xf4, 0x12, 0xe6, 0xbd, 0xf7, 0x7b, 0xff, 0x79, 0x99, 0xf7, 0x87, 0x7d, 0x5e, 0x50, - 0x46, 0x55, 0xc0, 0x8b, 0xd9, 0x9c, 0xe6, 0x69, 0xb0, 0x1c, 0x06, 0x19, 0x61, 0x44, 0x52, 0xe9, - 0x17, 0x82, 0x2b, 0x8e, 0x8e, 0x0c, 0xe0, 0x97, 0x80, 0xbf, 0x1c, 0xf6, 0x8e, 0xf0, 0x82, 0x32, - 0x1e, 0xe8, 0xaf, 0xa1, 0x7a, 0xc7, 0x33, 0x2e, 0x17, 0x5c, 0xc6, 0x3a, 0x0a, 0x4c, 0x50, 0x96, - 0xba, 0x19, 0xcf, 0xb8, 0xc9, 0x6f, 0x4f, 0x65, 0xf6, 0xa4, 0x7e, 0xaf, 0xfa, 0x5c, 0x90, 0xb2, - 0xe9, 0xf4, 0x7b, 0x03, 0x3e, 0x18, 0x9b, 0x39, 0xa6, 0x0a, 0x2b, 0x82, 0x5e, 0xc1, 0x66, 0x81, - 0x05, 0x5e, 0x48, 0x1b, 0xb8, 0xc0, 0xeb, 0x84, 0xc7, 0x7e, 0x6d, 0x2e, 0x7f, 0xa2, 0x81, 0x51, - 0xfb, 0xea, 0x4f, 0xdf, 0xfa, 0xf6, 0xef, 0xc7, 0x73, 0x10, 0x95, 0x3d, 0x28, 0x85, 0x4f, 0x72, - 0x2c, 0x55, 0xbc, 0xc4, 0x39, 0x4d, 0xb1, 0xe2, 0x22, 0x2e, 0xf8, 0x27, 0x22, 0xa4, 0x7d, 0xe0, - 0x36, 0xbc, 0x4e, 0xf8, 0x6c, 0x8f, 0xd8, 0x19, 0x96, 0xea, 0xfd, 0x2d, 0x3e, 0xd9, 0xd2, 0xbb, - 0xc2, 0x8f, 0xf3, 0x5a, 0x59, 0xa2, 0x31, 0x84, 0xd5, 0x05, 0xd2, 0x6e, 0x68, 0xe9, 0xa7, 0x7b, - 0xa4, 0xab, 0xbe, 0x5d, 0xc5, 0x9d, 0x56, 0xe4, 0xc1, 0x47, 0x8c, 0xac, 0x54, 0x9c, 0x87, 0xb1, - 0x24, 0x1f, 0x2f, 0x08, 0x9b, 0x11, 0xbb, 0xe9, 0x02, 0xef, 0x5e, 0xf4, 0x70, 0x9b, 0x3f, 0x0b, - 0xa7, 0x65, 0xf6, 0x8e, 0x1c, 0xde, 0x91, 0x87, 0x3b, 0xe4, 0xb0, 0x22, 0x5f, 0xc3, 0x4e, 0x22, - 0x68, 0x9a, 0x91, 0x98, 0xb2, 0x73, 0x6e, 0xb7, 0xf4, 0x2b, 0x9e, 0xec, 0x99, 0x6e, 0xa4, 0xa9, - 0xb7, 0xec, 0x9c, 0x47, 0x30, 0xa9, 0xce, 0xa8, 0x07, 0x5b, 0x64, 0x55, 0x70, 0xa1, 0x48, 0x6a, - 0xb7, 0x5d, 0xe0, 0xb5, 0xa2, 0x2a, 0x3e, 0x9d, 0x43, 0x54, 0x7f, 0x2e, 0x14, 0xc2, 0x43, 0x9c, - 0xa6, 0x82, 0x48, 0xb3, 0xb3, 0xf6, 0xc8, 0xfe, 0xf5, 0x73, 0xd0, 0x2d, 0xbd, 0xf1, 0xc6, 0x54, - 0xa6, 0x4a, 0x50, 0x96, 0x45, 0xb7, 0x20, 0xea, 0xc2, 0xfb, 0x7a, 0x33, 0xf6, 0x81, 0x0b, 0xbc, - 0x46, 0x64, 0x82, 0x97, 0xad, 0x2f, 0x97, 0x7d, 0xeb, 0xff, 0x65, 0xdf, 0x1a, 0x8d, 0xaf, 0xd6, - 0x0e, 0xb8, 0x5e, 0x3b, 0xe0, 0xef, 0xda, 0x01, 0x5f, 0x37, 0x8e, 0x75, 0xbd, 0x71, 0xac, 0xdf, - 0x1b, 0xc7, 0xfa, 0x30, 0xc8, 0xa8, 0x9a, 0x5f, 0x24, 0xfe, 0x8c, 0x2f, 0x82, 0xed, 0x2f, 0x51, - 0x3c, 0xc8, 0x71, 0x22, 0x83, 0x77, 0x13, 0xed, 0xb3, 0x55, 0xe5, 0x34, 0x6d, 0xb3, 0xa4, 0xa9, - 0x7d, 0xf6, 0xe2, 0x26, 0x00, 0x00, 0xff, 0xff, 0xb0, 0x6d, 0xcc, 0x7e, 0x00, 0x03, 0x00, 0x00, + // 465 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0x41, 0x6b, 0xdb, 0x30, + 0x14, 0xc7, 0xad, 0xa6, 0x4d, 0x53, 0x65, 0x8c, 0x55, 0xcb, 0xc0, 0x0d, 0xab, 0x63, 0x0a, 0x03, + 0x33, 0x88, 0x4d, 0xbc, 0xdb, 0x18, 0x83, 0xe5, 0x12, 0x06, 0x85, 0x05, 0x07, 0x76, 0xd8, 0xc5, + 0xc8, 0xb1, 0xea, 0x08, 0x1c, 0xc9, 0x93, 0xd4, 0x2c, 0xfb, 0x06, 0x3b, 0xee, 0x23, 0xf4, 0x38, + 0xd8, 0x65, 0x87, 0x7d, 0x88, 0x1e, 0xcb, 0x4e, 0x3b, 0x8d, 0x91, 0x1c, 0xb6, 0x8f, 0x51, 0x22, + 0xb9, 0x6e, 0xc0, 0xb9, 0x18, 0xbd, 0xf7, 0x7e, 0xef, 0xaf, 0x67, 0xbd, 0x3f, 0xec, 0xf1, 0x82, + 0x32, 0xaa, 0x02, 0x5e, 0x4c, 0x67, 0x34, 0x4f, 0x83, 0xc5, 0x20, 0xc8, 0x08, 0x23, 0x92, 0x4a, + 0xbf, 0x10, 0x5c, 0x71, 0x74, 0x6c, 0x00, 0xbf, 0x04, 0xfc, 0xc5, 0xa0, 0x7b, 0x8c, 0xe7, 0x94, + 0xf1, 0x40, 0x7f, 0x0d, 0xd5, 0x3d, 0x99, 0x72, 0x39, 0xe7, 0x32, 0xd6, 0x51, 0x60, 0x82, 0xb2, + 0xd4, 0xc9, 0x78, 0xc6, 0x4d, 0x7e, 0x73, 0x2a, 0xb3, 0xa7, 0xf5, 0x7b, 0xd5, 0xe7, 0x82, 0x94, + 0x4d, 0x67, 0xdf, 0x1b, 0xf0, 0xc1, 0xc8, 0xcc, 0x31, 0x51, 0x58, 0x11, 0xf4, 0x0a, 0x36, 0x0b, + 0x2c, 0xf0, 0x5c, 0xda, 0xc0, 0x05, 0x5e, 0x3b, 0x3c, 0xf1, 0x6b, 0x73, 0xf9, 0x63, 0x0d, 0x0c, + 0x8f, 0xae, 0xff, 0xf4, 0xac, 0x6f, 0xff, 0x7e, 0x3c, 0x07, 0x51, 0xd9, 0x83, 0x52, 0xf8, 0x24, + 0xc7, 0x52, 0xc5, 0x0b, 0x9c, 0xd3, 0x14, 0x2b, 0x2e, 0xe2, 0x82, 0x7f, 0x22, 0x42, 0xda, 0x7b, + 0x6e, 0xc3, 0x6b, 0x87, 0xcf, 0x76, 0x88, 0x9d, 0x63, 0xa9, 0xde, 0xdf, 0xe1, 0xe3, 0x0d, 0xbd, + 0x2d, 0xfc, 0x38, 0xaf, 0x95, 0x25, 0x1a, 0x41, 0x58, 0x5d, 0x20, 0xed, 0x86, 0x96, 0x7e, 0xba, + 0x43, 0xba, 0xea, 0xdb, 0x56, 0xdc, 0x6a, 0x45, 0x1e, 0x7c, 0xc4, 0xc8, 0x52, 0xc5, 0x79, 0x18, + 0x4b, 0xf2, 0xf1, 0x92, 0xb0, 0x29, 0xb1, 0xf7, 0x5d, 0xe0, 0xed, 0x47, 0x0f, 0x37, 0xf9, 0xf3, + 0x70, 0x52, 0x66, 0xef, 0xc9, 0xc1, 0x3d, 0x79, 0xb0, 0x45, 0x0e, 0x2a, 0xf2, 0x35, 0x6c, 0x27, + 0x82, 0xa6, 0x19, 0x89, 0x29, 0xbb, 0xe0, 0x76, 0x53, 0xbf, 0xe2, 0xe9, 0x8e, 0xe9, 0x86, 0x9a, + 0x7a, 0xcb, 0x2e, 0x78, 0x04, 0x93, 0xea, 0x8c, 0xba, 0xb0, 0x45, 0x96, 0x05, 0x17, 0x8a, 0xa4, + 0xf6, 0xa1, 0x0b, 0xbc, 0x56, 0x54, 0xc5, 0x67, 0x33, 0x88, 0xea, 0xcf, 0x85, 0x42, 0x78, 0x88, + 0xd3, 0x54, 0x10, 0x69, 0x76, 0x76, 0x34, 0xb4, 0x7f, 0xfd, 0xec, 0x77, 0x4a, 0x6f, 0xbc, 0x31, + 0x95, 0x89, 0x12, 0x94, 0x65, 0xd1, 0x1d, 0x88, 0x3a, 0xf0, 0x40, 0x6f, 0xc6, 0xde, 0x73, 0x81, + 0xd7, 0x88, 0x4c, 0xf0, 0xb2, 0xf5, 0xe5, 0xaa, 0x67, 0xfd, 0xbf, 0xea, 0x59, 0xc3, 0xd1, 0xf5, + 0xca, 0x01, 0x37, 0x2b, 0x07, 0xfc, 0x5d, 0x39, 0xe0, 0xeb, 0xda, 0xb1, 0x6e, 0xd6, 0x8e, 0xf5, + 0x7b, 0xed, 0x58, 0x1f, 0xfa, 0x19, 0x55, 0xb3, 0xcb, 0xc4, 0x9f, 0xf2, 0x79, 0xb0, 0xf9, 0x25, + 0x8a, 0xfb, 0x39, 0x4e, 0x64, 0xf0, 0x6e, 0xac, 0x7d, 0xb6, 0xac, 0x9c, 0xa6, 0x6d, 0x96, 0x34, + 0xb5, 0xcf, 0x5e, 0xdc, 0x06, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x97, 0x80, 0x16, 0x00, 0x03, 0x00, + 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -231,7 +232,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0 } i-- - dAtA[i] = 0x48 + dAtA[i] = 0x38 } if m.BridgeInfo != nil { { @@ -243,17 +244,17 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x42 + dAtA[i] = 0x32 } if m.NextL1Sequence != 0 { i = encodeVarintGenesis(dAtA, i, uint64(m.NextL1Sequence)) i-- - dAtA[i] = 0x38 + dAtA[i] = 0x28 } if m.NextL2Sequence != 0 { i = encodeVarintGenesis(dAtA, i, uint64(m.NextL2Sequence)) i-- - dAtA[i] = 0x30 + dAtA[i] = 0x20 } if len(m.Validators) > 0 { for iNdEx := len(m.Validators) - 1; iNdEx >= 0; iNdEx-- { @@ -530,7 +531,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 6: + case 4: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field NextL2Sequence", wireType) } @@ -549,7 +550,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { break } } - case 7: + case 5: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field NextL1Sequence", wireType) } @@ -568,7 +569,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { break } } - case 8: + case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field BridgeInfo", wireType) } @@ -604,7 +605,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 9: + case 7: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Exported", wireType) } diff --git a/x/opchild/types/keys.go b/x/opchild/types/keys.go index 7309f37f..18bfb47a 100644 --- a/x/opchild/types/keys.go +++ b/x/opchild/types/keys.go @@ -20,8 +20,6 @@ var ( NextL1SequenceKey = []byte{0x14} // prefix for inbound deposit sequence number HistoricalInfoPrefix = []byte{0x21} // prefix for the historical info - CommitmentTimePrefix = []byte{0x22} // prefix for withdrawal commitments creation time - CommitmentPrefix = []byte{0x23} // prefix for withdrawal commitments LastValidatorPowerPrefix = []byte{0x31} // prefix for each key to a validator index, for bonded validators ValidatorsPrefix = []byte{0x32} // prefix for each key to a validator diff --git a/x/opchild/types/query.pb.go b/x/opchild/types/query.pb.go index 12a58d95..08dc6770 100644 --- a/x/opchild/types/query.pb.go +++ b/x/opchild/types/query.pb.go @@ -7,7 +7,6 @@ import ( context "context" fmt "fmt" _ "github.com/cosmos/cosmos-proto" - _ "github.com/cosmos/cosmos-sdk/types" query "github.com/cosmos/cosmos-sdk/types/query" _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" @@ -668,59 +667,59 @@ func init() { func init() { proto.RegisterFile("opinit/opchild/v1/query.proto", fileDescriptor_15cfbb5d02a763ec) } var fileDescriptor_15cfbb5d02a763ec = []byte{ - // 826 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcf, 0x6b, 0x13, 0x4d, - 0x18, 0xc7, 0xb3, 0x7d, 0xdf, 0x96, 0x37, 0x4f, 0x79, 0x8b, 0x1d, 0xa3, 0xa6, 0x69, 0xb3, 0x2d, - 0x2b, 0x6d, 0xd3, 0x48, 0x76, 0xcc, 0x7a, 0x10, 0x44, 0x10, 0x83, 0x5a, 0x0a, 0xa2, 0x35, 0x05, - 0x11, 0x2f, 0x71, 0x36, 0xbb, 0xdd, 0x2e, 0x24, 0x3b, 0xdb, 0xdd, 0x6d, 0x68, 0x29, 0x45, 0xf0, - 0xe4, 0xcd, 0x82, 0x1e, 0xbd, 0x78, 0x13, 0x7a, 0xf1, 0xe0, 0x1f, 0xd1, 0x63, 0xd1, 0x8b, 0x27, - 0x91, 0x56, 0xf0, 0xdf, 0x90, 0x9d, 0x9d, 0xfd, 0xd5, 0x6c, 0xda, 0xe8, 0xa5, 0xcd, 0x3c, 0x3f, - 0xe6, 0xfb, 0x99, 0x67, 0x9e, 0x67, 0x58, 0x28, 0x53, 0xdb, 0xb4, 0x4c, 0x0f, 0x53, 0xbb, 0xbd, - 0x61, 0x76, 0x34, 0xdc, 0xab, 0xe3, 0xcd, 0x2d, 0xdd, 0xd9, 0x91, 0x6d, 0x87, 0x7a, 0x14, 0x4d, - 0x06, 0x6e, 0x99, 0xbb, 0xe5, 0x5e, 0xbd, 0x34, 0x49, 0xba, 0xa6, 0x45, 0x31, 0xfb, 0x1b, 0x44, - 0x95, 0xaa, 0x6d, 0xea, 0x76, 0xa9, 0x8b, 0x55, 0xe2, 0xea, 0x41, 0x3a, 0xee, 0xd5, 0x55, 0xdd, - 0x23, 0x75, 0x6c, 0x13, 0xc3, 0xb4, 0x88, 0x67, 0x52, 0x8b, 0xc7, 0x8a, 0xc9, 0xd8, 0x30, 0xaa, - 0x4d, 0xcd, 0xd0, 0x3f, 0xcd, 0xfd, 0xe1, 0x36, 0x49, 0x9c, 0xd2, 0x54, 0xe0, 0x6c, 0xb1, 0x15, - 0x0e, 0x16, 0xdc, 0x55, 0x30, 0xa8, 0x41, 0x03, 0xbb, 0xff, 0x8b, 0x5b, 0x67, 0x0c, 0x4a, 0x8d, - 0x8e, 0x8e, 0x89, 0x6d, 0x62, 0x62, 0x59, 0xd4, 0x63, 0x28, 0x61, 0x4e, 0xc6, 0xe1, 0xbd, 0x1d, - 0x5b, 0xe7, 0x6e, 0xe9, 0x05, 0x5c, 0x7e, 0xe2, 0x8b, 0x3f, 0x25, 0x1d, 0x53, 0x23, 0x1e, 0x75, - 0xdc, 0xa6, 0xbe, 0xb9, 0xa5, 0xbb, 0x1e, 0x7a, 0x00, 0x10, 0x1f, 0xac, 0x28, 0xcc, 0x09, 0x95, - 0x71, 0x65, 0x41, 0xe6, 0x3c, 0xfe, 0xc9, 0xe4, 0x80, 0x9a, 0x9f, 0x4f, 0x5e, 0x25, 0x86, 0xce, - 0x73, 0x9b, 0x89, 0x4c, 0xe9, 0x40, 0x80, 0x2b, 0x7d, 0x12, 0xae, 0x4d, 0x2d, 0x57, 0x47, 0xcb, - 0x00, 0xbd, 0xc8, 0x5a, 0x14, 0xe6, 0xfe, 0xa9, 0x8c, 0x2b, 0x33, 0x72, 0xdf, 0x7d, 0xc8, 0x51, - 0x6a, 0x23, 0x7f, 0xf8, 0x7d, 0x36, 0xf7, 0xf1, 0xd7, 0xa7, 0xaa, 0xd0, 0x4c, 0xa4, 0xfa, 0x1b, - 0x25, 0x60, 0x47, 0x18, 0xec, 0xe2, 0xb9, 0xb0, 0x01, 0x45, 0x8a, 0xf6, 0x19, 0x5c, 0x4a, 0xc3, - 0x86, 0xe5, 0xb8, 0x03, 0x13, 0x91, 0x5e, 0x8b, 0x68, 0x9a, 0xc3, 0x4a, 0x92, 0x6f, 0x14, 0xbf, - 0x7c, 0xae, 0x15, 0xb8, 0xd0, 0x5d, 0x4d, 0x73, 0x74, 0xd7, 0x5d, 0xf3, 0x1c, 0xd3, 0x32, 0x9a, - 0xff, 0x47, 0xf1, 0xbe, 0x5d, 0x6a, 0x9d, 0xae, 0x74, 0x54, 0x85, 0xfb, 0x90, 0x8f, 0x42, 0x79, - 0xa1, 0x87, 0x2e, 0x42, 0x9c, 0x29, 0x15, 0xb9, 0x40, 0xc3, 0x31, 0x35, 0x43, 0x5f, 0xb1, 0xd6, - 0x29, 0x67, 0x97, 0x34, 0x7e, 0x03, 0x49, 0x0f, 0xd7, 0x5e, 0x81, 0x71, 0x95, 0x59, 0x5b, 0xa6, - 0xb5, 0x4e, 0xb9, 0x7a, 0x39, 0x43, 0x3d, 0xce, 0x4d, 0xdd, 0x81, 0x1a, 0x99, 0xa5, 0x02, 0x20, - 0xa6, 0xb2, 0x4a, 0x1c, 0xd2, 0x0d, 0xdb, 0x48, 0x5a, 0x83, 0x8b, 0x29, 0x2b, 0xd7, 0xbd, 0x0d, - 0x63, 0x36, 0xb3, 0x70, 0xc9, 0xa9, 0x0c, 0xc9, 0x20, 0x25, 0x29, 0xc7, 0x73, 0xa4, 0x19, 0x28, - 0xb1, 0x4d, 0x1f, 0xe9, 0xdb, 0xde, 0xc3, 0xfa, 0x9a, 0x2f, 0x65, 0xb5, 0xc3, 0xee, 0x93, 0x96, - 0x61, 0x3a, 0xd3, 0xcb, 0xa5, 0x2b, 0x70, 0xc1, 0xd2, 0xb7, 0xbd, 0x56, 0xa7, 0xde, 0x72, 0xb9, - 0x8f, 0x41, 0xfc, 0xdb, 0x9c, 0xb0, 0x52, 0x19, 0x69, 0x19, 0xe5, 0x4c, 0x19, 0x65, 0xb0, 0x8c, - 0x92, 0x2d, 0x13, 0x65, 0x48, 0x35, 0xde, 0x73, 0x0d, 0xe2, 0xea, 0xf7, 0x74, 0x8b, 0x76, 0xc3, - 0x9e, 0x2b, 0xc0, 0xa8, 0xe6, 0xaf, 0x83, 0x56, 0x6b, 0x06, 0x0b, 0xe9, 0x66, 0x78, 0xcf, 0x71, - 0x38, 0x97, 0x2c, 0x03, 0xf8, 0xbd, 0xde, 0x4a, 0x26, 0xe5, 0xd5, 0x30, 0x4c, 0x39, 0xf8, 0x0f, - 0x46, 0x59, 0x26, 0x7a, 0x23, 0x00, 0xc4, 0xe3, 0x88, 0x96, 0x32, 0x8a, 0x9f, 0xfd, 0x2a, 0x94, - 0xaa, 0xc3, 0x84, 0x06, 0x38, 0x52, 0xf5, 0xb5, 0x7f, 0x69, 0xaf, 0xbe, 0xfe, 0x7c, 0x3b, 0x32, - 0x8b, 0xca, 0xb8, 0xff, 0x21, 0x4a, 0x0c, 0xf0, 0x7b, 0x01, 0xf2, 0xd1, 0x16, 0xa8, 0x72, 0xae, - 0x4a, 0xc8, 0xb3, 0x34, 0x44, 0x24, 0xc7, 0xb9, 0x15, 0xe3, 0x60, 0x54, 0x3b, 0x0b, 0x07, 0xef, - 0xa6, 0x47, 0x7d, 0x0f, 0xed, 0x0b, 0x00, 0xf1, 0x04, 0x0c, 0x2e, 0x58, 0xdf, 0xec, 0x0d, 0x2e, - 0x58, 0xff, 0x30, 0x4a, 0xd7, 0x62, 0xc2, 0x39, 0x24, 0x66, 0x10, 0x26, 0x46, 0x15, 0xbd, 0x84, - 0xb1, 0x60, 0x40, 0xd0, 0xfc, 0x20, 0x89, 0xd4, 0x24, 0x96, 0x16, 0xce, 0x0b, 0xe3, 0x14, 0x0b, - 0x31, 0xc5, 0x34, 0x9a, 0xca, 0xa0, 0x08, 0x86, 0x10, 0x7d, 0x10, 0x60, 0x22, 0x3d, 0x62, 0xa8, - 0x36, 0x48, 0x22, 0x73, 0x50, 0x4b, 0xf2, 0xb0, 0xe1, 0x9c, 0xec, 0x7a, 0x4c, 0x36, 0x8f, 0xae, - 0x66, 0x90, 0x9d, 0x9e, 0xeb, 0x98, 0x51, 0x19, 0x92, 0x51, 0xf9, 0x33, 0x46, 0xe5, 0x6f, 0x19, - 0xe3, 0x47, 0x01, 0xbd, 0x13, 0x20, 0x1f, 0xcd, 0xf2, 0xe0, 0xd6, 0x3f, 0xfd, 0x3a, 0x0c, 0x6e, - 0xfd, 0xbe, 0x87, 0x41, 0x52, 0x62, 0xa8, 0x45, 0x34, 0x9f, 0xd5, 0x58, 0xd1, 0xb3, 0x81, 0x77, - 0xd9, 0xbf, 0xbd, 0xc6, 0xf2, 0xe1, 0xb1, 0x28, 0x1c, 0x1d, 0x8b, 0xc2, 0x8f, 0x63, 0x51, 0xd8, - 0x3f, 0x11, 0x73, 0x47, 0x27, 0x62, 0xee, 0xdb, 0x89, 0x98, 0x7b, 0x5e, 0x33, 0x4c, 0x6f, 0x63, - 0x4b, 0x95, 0xdb, 0xb4, 0x8b, 0xfd, 0x8d, 0x4c, 0x52, 0xeb, 0x10, 0xd5, 0xc5, 0x8f, 0x57, 0xd9, - 0xb6, 0xdb, 0xd1, 0xc6, 0xec, 0x43, 0x43, 0x1d, 0x63, 0x5f, 0x1a, 0x37, 0x7e, 0x07, 0x00, 0x00, - 0xff, 0xff, 0xf0, 0x63, 0xf9, 0xf4, 0x87, 0x09, 0x00, 0x00, + // 820 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcf, 0x6b, 0xdb, 0x48, + 0x14, 0xc7, 0xad, 0xec, 0x26, 0xac, 0x5f, 0xd8, 0xb0, 0x99, 0xf5, 0xee, 0x3a, 0x4e, 0xec, 0x04, + 0x2d, 0x49, 0x1c, 0x2f, 0xd6, 0xac, 0xd5, 0x43, 0xa1, 0x14, 0x4a, 0x4d, 0xdb, 0x10, 0x28, 0x6d, + 0xea, 0x40, 0x29, 0xbd, 0xb8, 0x23, 0x6b, 0xa2, 0x08, 0x6c, 0x8d, 0x22, 0x29, 0x26, 0x21, 0x84, + 0x42, 0x4f, 0xbd, 0x35, 0xd0, 0x1e, 0x7b, 0xe9, 0xad, 0x90, 0x4b, 0x0f, 0xfd, 0x23, 0x72, 0x0c, + 0xed, 0xa5, 0xa7, 0x52, 0x92, 0x42, 0xff, 0x8d, 0xa2, 0xd1, 0xe8, 0x57, 0x2c, 0x27, 0x6e, 0x2f, + 0x89, 0xe7, 0xfd, 0x98, 0xef, 0x67, 0xde, 0xbc, 0x37, 0x08, 0xca, 0xcc, 0x36, 0x2d, 0xd3, 0xc3, + 0xcc, 0xee, 0x6c, 0x99, 0x5d, 0x1d, 0xf7, 0x1b, 0x78, 0x7b, 0x87, 0x3a, 0x7b, 0x8a, 0xed, 0x30, + 0x8f, 0xa1, 0xe9, 0xc0, 0xad, 0x08, 0xb7, 0xd2, 0x6f, 0x94, 0xa6, 0x49, 0xcf, 0xb4, 0x18, 0xe6, + 0x7f, 0x83, 0xa8, 0x52, 0xad, 0xc3, 0xdc, 0x1e, 0x73, 0xb1, 0x46, 0x5c, 0x1a, 0xa4, 0xe3, 0x7e, + 0x43, 0xa3, 0x1e, 0x69, 0x60, 0x9b, 0x18, 0xa6, 0x45, 0x3c, 0x93, 0x59, 0x22, 0x76, 0x56, 0xc4, + 0x86, 0x61, 0x49, 0xb9, 0xd2, 0x4c, 0xe0, 0x6c, 0xf3, 0x15, 0x0e, 0x16, 0xc2, 0x55, 0x30, 0x98, + 0xc1, 0x02, 0xbb, 0xff, 0x4b, 0x58, 0xe7, 0x0c, 0xc6, 0x8c, 0x2e, 0xc5, 0xc4, 0x36, 0x31, 0xb1, + 0x2c, 0xe6, 0x71, 0xa9, 0x30, 0x27, 0xe3, 0x70, 0xde, 0x9e, 0x4d, 0x85, 0x5b, 0x7e, 0x02, 0x7f, + 0x3f, 0xf0, 0xc5, 0x1f, 0x92, 0xae, 0xa9, 0x13, 0x8f, 0x39, 0x6e, 0x8b, 0x6e, 0xef, 0x50, 0xd7, + 0x43, 0x77, 0x00, 0x62, 0xf0, 0xa2, 0xb4, 0x20, 0x55, 0x27, 0xd5, 0x25, 0x45, 0xf0, 0xf8, 0xa7, + 0x54, 0x02, 0x6a, 0x71, 0x4a, 0x65, 0x9d, 0x18, 0x54, 0xe4, 0xb6, 0x12, 0x99, 0xf2, 0x91, 0x04, + 0xff, 0x0c, 0x48, 0xb8, 0x36, 0xb3, 0x5c, 0x8a, 0x56, 0x01, 0xfa, 0x91, 0xb5, 0x28, 0x2d, 0xfc, + 0x52, 0x9d, 0x54, 0xe7, 0x94, 0x81, 0x7a, 0x2b, 0x51, 0x6a, 0x33, 0x7f, 0xfc, 0x79, 0x3e, 0xf7, + 0xf6, 0xdb, 0xbb, 0x9a, 0xd4, 0x4a, 0xa4, 0xfa, 0x1b, 0x25, 0x60, 0xc7, 0x38, 0xec, 0xf2, 0xa5, + 0xb0, 0x01, 0x45, 0x8a, 0xf6, 0x11, 0xfc, 0x95, 0x86, 0x0d, 0xcb, 0x71, 0x03, 0xa6, 0x22, 0xbd, + 0x36, 0xd1, 0x75, 0x87, 0x97, 0x24, 0xdf, 0x2c, 0x7e, 0x78, 0x5f, 0x2f, 0x08, 0xa1, 0x9b, 0xba, + 0xee, 0x50, 0xd7, 0xdd, 0xf0, 0x1c, 0xd3, 0x32, 0x5a, 0xbf, 0x47, 0xf1, 0xbe, 0x5d, 0x6e, 0x9f, + 0xaf, 0x74, 0x54, 0x85, 0xdb, 0x90, 0x8f, 0x42, 0x45, 0xa1, 0x47, 0x2e, 0x42, 0x9c, 0x29, 0x17, + 0x85, 0x40, 0xd3, 0x31, 0x75, 0x83, 0xae, 0x59, 0x9b, 0x4c, 0xb0, 0xcb, 0xba, 0xb8, 0x81, 0xa4, + 0x47, 0x68, 0xaf, 0xc1, 0xa4, 0xc6, 0xad, 0x6d, 0xd3, 0xda, 0x64, 0x42, 0xbd, 0x9c, 0xa1, 0x1e, + 0xe7, 0xa6, 0xee, 0x40, 0x8b, 0xcc, 0x72, 0x01, 0x10, 0x57, 0x59, 0x27, 0x0e, 0xe9, 0x85, 0x6d, + 0x24, 0x6f, 0xc0, 0x9f, 0x29, 0xab, 0xd0, 0xbd, 0x0e, 0x13, 0x36, 0xb7, 0x08, 0xc9, 0x99, 0x0c, + 0xc9, 0x20, 0x25, 0x29, 0x27, 0x72, 0xe4, 0x39, 0x28, 0xf1, 0x4d, 0xef, 0xd1, 0x5d, 0xef, 0x6e, + 0x63, 0xc3, 0x97, 0xb2, 0x3a, 0x61, 0xf7, 0xc9, 0xab, 0x30, 0x9b, 0xe9, 0x15, 0xd2, 0x55, 0xf8, + 0xc3, 0xa2, 0xbb, 0x5e, 0xbb, 0xdb, 0x68, 0xbb, 0xc2, 0xc7, 0x21, 0x7e, 0x6d, 0x4d, 0x59, 0xa9, + 0x8c, 0xb4, 0x8c, 0x7a, 0xa1, 0x8c, 0x3a, 0x5c, 0x46, 0xcd, 0x96, 0x89, 0x32, 0xe4, 0xba, 0xe8, + 0xb9, 0x26, 0x71, 0xe9, 0x2d, 0x6a, 0xb1, 0x5e, 0xd8, 0x73, 0x05, 0x18, 0xd7, 0xfd, 0x75, 0xd0, + 0x6a, 0xad, 0x60, 0x21, 0x5f, 0x0d, 0xef, 0x39, 0x0e, 0x17, 0x92, 0x65, 0x00, 0xbf, 0xd7, 0xdb, + 0xc9, 0xa4, 0xbc, 0x16, 0x86, 0xa9, 0x47, 0xbf, 0xc1, 0x38, 0xcf, 0x44, 0x2f, 0x24, 0x80, 0x78, + 0x1c, 0xd1, 0x4a, 0x46, 0xf1, 0xb3, 0x5f, 0x85, 0x52, 0x6d, 0x94, 0xd0, 0x00, 0x47, 0xae, 0x3d, + 0xf7, 0x2f, 0xed, 0xd9, 0xc7, 0xaf, 0x2f, 0xc7, 0xe6, 0x51, 0x19, 0x0f, 0x3e, 0x44, 0x89, 0x01, + 0x7e, 0x2d, 0x41, 0x3e, 0xda, 0x02, 0x55, 0x2f, 0x55, 0x09, 0x79, 0x56, 0x46, 0x88, 0x14, 0x38, + 0xd7, 0x62, 0x1c, 0x8c, 0xea, 0x17, 0xe1, 0xe0, 0xfd, 0xf4, 0xa8, 0x1f, 0xa0, 0x43, 0x09, 0x20, + 0x9e, 0x80, 0xe1, 0x05, 0x1b, 0x98, 0xbd, 0xe1, 0x05, 0x1b, 0x1c, 0x46, 0xf9, 0xbf, 0x98, 0x70, + 0x01, 0x55, 0x32, 0x08, 0x13, 0xa3, 0x8a, 0x9e, 0xc2, 0x44, 0x30, 0x20, 0x68, 0x71, 0x98, 0x44, + 0x6a, 0x12, 0x4b, 0x4b, 0x97, 0x85, 0x09, 0x8a, 0xa5, 0x98, 0x62, 0x16, 0xcd, 0x64, 0x50, 0x04, + 0x43, 0x88, 0xde, 0x48, 0x30, 0x95, 0x1e, 0x31, 0x54, 0x1f, 0x26, 0x91, 0x39, 0xa8, 0x25, 0x65, + 0xd4, 0x70, 0x41, 0xf6, 0x7f, 0x4c, 0xb6, 0x88, 0xfe, 0xcd, 0x20, 0x3b, 0x3f, 0xd7, 0x31, 0xa3, + 0x3a, 0x22, 0xa3, 0xfa, 0x63, 0x8c, 0xea, 0xcf, 0x32, 0xc6, 0x8f, 0x02, 0x7a, 0x25, 0x41, 0x3e, + 0x9a, 0xe5, 0xe1, 0xad, 0x7f, 0xfe, 0x75, 0x18, 0xde, 0xfa, 0x03, 0x0f, 0x83, 0xac, 0xc6, 0x50, + 0xcb, 0x68, 0x31, 0xab, 0xb1, 0xa2, 0x67, 0x03, 0xef, 0xf3, 0x7f, 0x07, 0xcd, 0xd5, 0xe3, 0xd3, + 0x8a, 0x74, 0x72, 0x5a, 0x91, 0xbe, 0x9c, 0x56, 0xa4, 0xc3, 0xb3, 0x4a, 0xee, 0xe4, 0xac, 0x92, + 0xfb, 0x74, 0x56, 0xc9, 0x3d, 0xae, 0x1b, 0xa6, 0xb7, 0xb5, 0xa3, 0x29, 0x1d, 0xd6, 0xc3, 0xfe, + 0x46, 0x26, 0xa9, 0x77, 0x89, 0xe6, 0xe2, 0xfb, 0xeb, 0x7c, 0xdb, 0xdd, 0x68, 0x63, 0xfe, 0xa1, + 0xa1, 0x4d, 0xf0, 0x2f, 0x8d, 0x2b, 0xdf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xaa, 0x5e, 0xc4, 0x7b, + 0x67, 0x09, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/opchild/types/tx.go b/x/opchild/types/tx.go index 4ec8e411..9639c1a0 100644 --- a/x/opchild/types/tx.go +++ b/x/opchild/types/tx.go @@ -258,6 +258,7 @@ func (msg MsgFinalizeTokenDeposit) Validate(ac address.Codec) error { } } + // allow zero amount if !msg.Amount.IsValid() { return ErrInvalidAmount } diff --git a/x/opchild/types/tx.pb.go b/x/opchild/types/tx.pb.go index eb827172..b4e7dd66 100644 --- a/x/opchild/types/tx.pb.go +++ b/x/opchild/types/tx.pb.go @@ -197,7 +197,7 @@ type MsgFinalizeTokenDeposit struct { Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` // from is l1 sender address From string `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"` - // to is l2 recipient address or "hook" + // to is l2 recipient address To string `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"` // amount is the coin amount to deposit. Amount types1.Coin `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount" yaml:"amount"` @@ -788,83 +788,83 @@ func init() { func init() { proto.RegisterFile("opinit/opchild/v1/tx.proto", fileDescriptor_1ee96a503651b6e4) } var fileDescriptor_1ee96a503651b6e4 = []byte{ - // 1205 bytes of a gzipped FileDescriptorProto + // 1204 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0x41, 0x6f, 0xe3, 0x44, - 0x14, 0x8e, 0xd3, 0x36, 0x6d, 0xa6, 0xbb, 0xdb, 0xd6, 0xaa, 0xa8, 0x6b, 0xd1, 0xa4, 0x32, 0x42, - 0x84, 0x40, 0xec, 0x6d, 0x10, 0x1c, 0x22, 0x21, 0xd1, 0xb0, 0x5b, 0xa9, 0xac, 0xa2, 0xad, 0xd2, - 0x05, 0x24, 0x0e, 0x94, 0x49, 0x3c, 0x75, 0x46, 0x8d, 0x3d, 0xc6, 0x33, 0x09, 0x0d, 0x17, 0x10, - 0x27, 0xc4, 0x89, 0x9f, 0xb0, 0x07, 0x0e, 0x88, 0x53, 0x0f, 0x9c, 0x16, 0x7e, 0x40, 0xb5, 0xa7, - 0x15, 0x07, 0xc4, 0xa9, 0x40, 0x7b, 0x28, 0xe7, 0x5e, 0xb9, 0x20, 0x8f, 0x27, 0x8e, 0xe3, 0xd8, - 0x6d, 0x17, 0x75, 0x2f, 0x6d, 0xe6, 0xbd, 0x6f, 0xde, 0xbc, 0xf7, 0xbd, 0x37, 0xef, 0x8d, 0x81, - 0x4a, 0x5c, 0xec, 0x60, 0x66, 0x10, 0xb7, 0xdd, 0xc1, 0x5d, 0xd3, 0xe8, 0x6f, 0x18, 0xec, 0x50, - 0x77, 0x3d, 0xc2, 0x88, 0xbc, 0x14, 0xe8, 0x74, 0xa1, 0xd3, 0xfb, 0x1b, 0xea, 0x12, 0xb4, 0xb1, - 0x43, 0x0c, 0xfe, 0x37, 0x40, 0xa9, 0x85, 0x36, 0xa1, 0x36, 0xa1, 0x46, 0x0b, 0x52, 0x64, 0xf4, - 0x37, 0x5a, 0x88, 0xc1, 0x0d, 0xa3, 0x4d, 0xb0, 0x23, 0xf4, 0x2b, 0x42, 0x6f, 0x53, 0xcb, 0xb7, - 0x6e, 0x53, 0x4b, 0x28, 0x56, 0x03, 0xc5, 0x1e, 0x5f, 0x19, 0xc1, 0x42, 0xa8, 0x96, 0x2d, 0x62, - 0x91, 0x40, 0xee, 0xff, 0x1a, 0x6e, 0xb0, 0x08, 0xb1, 0xba, 0xc8, 0xe0, 0xab, 0x56, 0x6f, 0xdf, - 0x80, 0xce, 0x40, 0xa8, 0xd6, 0x12, 0xc2, 0x18, 0xb8, 0x48, 0xd8, 0xd3, 0x7e, 0x90, 0x80, 0xdc, - 0xa0, 0xd6, 0xfd, 0x43, 0xd4, 0xee, 0x31, 0xd4, 0x40, 0x94, 0x42, 0x0b, 0x51, 0xf9, 0x2e, 0xc8, - 0x51, 0xe4, 0x98, 0xc8, 0x53, 0xa4, 0x75, 0xa9, 0x94, 0xaf, 0x2b, 0xbf, 0xfd, 0x5c, 0x59, 0x16, - 0x8e, 0x6c, 0x9a, 0xa6, 0x87, 0x28, 0xdd, 0x65, 0x1e, 0x76, 0xac, 0xa6, 0xc0, 0xc9, 0x77, 0xc1, - 0x9c, 0x2d, 0x76, 0x2b, 0xd9, 0xf5, 0xa9, 0xd2, 0x7c, 0x75, 0x59, 0x0f, 0xbc, 0xd2, 0x87, 0x5e, - 0xe9, 0x9b, 0xce, 0xa0, 0x19, 0xa2, 0x6a, 0xe5, 0x6f, 0xce, 0x8f, 0xca, 0x62, 0xfb, 0x77, 0xe7, - 0x47, 0x65, 0x75, 0xe8, 0xe2, 0xa4, 0x3f, 0xda, 0xcb, 0x40, 0x9d, 0x94, 0x36, 0x11, 0x75, 0x89, - 0x43, 0x91, 0xf6, 0x54, 0x02, 0x8b, 0x0d, 0x6a, 0xed, 0x22, 0x56, 0xf7, 0xb0, 0x69, 0xa1, 0x6d, - 0x67, 0x9f, 0xc8, 0x9b, 0xb1, 0x10, 0x5e, 0xbf, 0x38, 0x29, 0xde, 0x1e, 0x40, 0xbb, 0x5b, 0xd3, - 0x02, 0xb9, 0x76, 0x65, 0x4c, 0xdb, 0x60, 0xbe, 0xc5, 0x0d, 0xee, 0x61, 0x67, 0x9f, 0x28, 0xd9, - 0x75, 0xa9, 0x34, 0x5f, 0x5d, 0xd3, 0x27, 0x92, 0xaf, 0x8f, 0x8e, 0xad, 0xe7, 0x8f, 0x4f, 0x8a, - 0x99, 0x1f, 0xcf, 0x8f, 0xca, 0x52, 0x13, 0xb4, 0x42, 0x71, 0xad, 0x14, 0x0b, 0x56, 0x89, 0x04, - 0x3b, 0xe6, 0xb7, 0xa6, 0x02, 0x25, 0x2e, 0x0b, 0x03, 0xbd, 0xc8, 0x82, 0x95, 0x06, 0xb5, 0xb6, - 0xb0, 0x03, 0xbb, 0xf8, 0x4b, 0xf4, 0x88, 0x1c, 0x20, 0xe7, 0x1e, 0x72, 0x09, 0xc5, 0xec, 0x26, - 0xe2, 0x95, 0xc1, 0xf4, 0xbe, 0x47, 0x6c, 0x1e, 0x68, 0xbe, 0xc9, 0x7f, 0xcb, 0x77, 0x40, 0x96, - 0x11, 0x65, 0x8a, 0x4b, 0xb2, 0x8c, 0xc8, 0x0d, 0x90, 0x83, 0x36, 0xe9, 0x39, 0x4c, 0x99, 0xe6, - 0x74, 0xac, 0xea, 0xc2, 0xa4, 0x5f, 0xe5, 0xba, 0xa8, 0x72, 0xfd, 0x7d, 0x82, 0x9d, 0xba, 0xea, - 0x53, 0x31, 0xf2, 0x22, 0xd8, 0xa6, 0x05, 0xdc, 0x08, 0x23, 0xb2, 0x0a, 0xe6, 0x28, 0xfa, 0xbc, - 0x87, 0x9c, 0x36, 0x52, 0x66, 0xd6, 0xa5, 0xd2, 0x74, 0x33, 0x5c, 0xcb, 0x2f, 0x81, 0x5c, 0x07, - 0x61, 0xab, 0xc3, 0x94, 0x1c, 0xd7, 0x88, 0x95, 0xbc, 0x06, 0x80, 0x7f, 0xd8, 0x9e, 0x89, 0x1c, - 0x62, 0x2b, 0xb3, 0xdc, 0xb5, 0xbc, 0x2f, 0xb9, 0xe7, 0x0b, 0xe4, 0x35, 0x30, 0x6d, 0x42, 0x06, - 0x95, 0xb9, 0x75, 0xa9, 0x74, 0x8b, 0xe7, 0x43, 0x0a, 0xce, 0xe4, 0xe2, 0x9a, 0x11, 0xcb, 0x44, - 0x31, 0x92, 0x89, 0x24, 0x62, 0xb5, 0xcf, 0x40, 0x31, 0x45, 0x35, 0xcc, 0x8b, 0xfc, 0x2e, 0xc8, - 0x79, 0x88, 0xf6, 0xba, 0x8c, 0x73, 0x7f, 0xa7, 0xfa, 0x6a, 0x42, 0x8d, 0x0c, 0xc1, 0x4d, 0x0e, - 0x7c, 0x34, 0x70, 0x51, 0x53, 0x6c, 0xd2, 0xfe, 0x95, 0x78, 0x79, 0x6f, 0x3b, 0x98, 0x61, 0xc8, - 0x82, 0x23, 0x3e, 0xc6, 0xac, 0x63, 0x7a, 0xf0, 0x0b, 0xd8, 0xfd, 0x1f, 0x97, 0xb1, 0xc4, 0x93, - 0x96, 0xbd, 0x02, 0x7d, 0xf3, 0xe9, 0xac, 0x55, 0x63, 0xe4, 0x6a, 0x11, 0x72, 0x53, 0xc2, 0xd3, - 0xde, 0x03, 0x5a, 0xba, 0x36, 0xa4, 0x38, 0x5a, 0x28, 0xd2, 0x78, 0xa1, 0x68, 0x4f, 0xb2, 0x60, - 0xa1, 0x41, 0xad, 0x4d, 0xd3, 0xfc, 0x08, 0x76, 0xb1, 0x09, 0x19, 0xf1, 0xe4, 0x0f, 0x40, 0x1e, - 0xf6, 0x58, 0x87, 0x78, 0x98, 0x0d, 0x04, 0x6f, 0x6f, 0x5e, 0x9c, 0x14, 0x17, 0x85, 0xf3, 0x43, - 0x55, 0xfa, 0xa5, 0x18, 0x6d, 0x97, 0x15, 0x30, 0x6b, 0x13, 0x07, 0x1f, 0x20, 0x4f, 0x5c, 0x8d, - 0xe1, 0x52, 0xbe, 0x0f, 0x96, 0xfa, 0xc3, 0x23, 0xf7, 0x60, 0xb0, 0x3f, 0xb8, 0x2c, 0x97, 0xf0, - 0xbe, 0x18, 0x6e, 0x11, 0x72, 0x79, 0x0b, 0xe4, 0xdc, 0x5e, 0xeb, 0x00, 0x0d, 0x44, 0x16, 0x12, - 0x5b, 0x67, 0x5d, 0x79, 0x3a, 0xb2, 0xd8, 0xf6, 0x06, 0x2e, 0x23, 0xfa, 0x4e, 0xaf, 0xf5, 0x00, - 0x0d, 0x9a, 0x62, 0x77, 0xad, 0xfa, 0xed, 0xe3, 0x62, 0xe6, 0x9f, 0xc7, 0xc5, 0x8c, 0x9f, 0x86, - 0x51, 0x00, 0x7e, 0x26, 0x56, 0x22, 0x99, 0x88, 0x12, 0xa5, 0xad, 0xf2, 0x96, 0x12, 0x15, 0x85, - 0xed, 0xe6, 0xf7, 0x60, 0x38, 0x34, 0x91, 0x4d, 0xfa, 0xe8, 0xc5, 0x50, 0x9b, 0x48, 0x60, 0xf6, - 0x79, 0x09, 0xac, 0x55, 0x26, 0x03, 0x8e, 0x8e, 0x93, 0x58, 0x04, 0x62, 0x9c, 0xc4, 0xa4, 0x61, - 0xd8, 0xbf, 0x4a, 0xbc, 0x9c, 0x3e, 0x74, 0x4d, 0xc8, 0xd0, 0x0e, 0xf4, 0xa0, 0x4d, 0x6f, 0x34, - 0xe6, 0x0d, 0x90, 0x73, 0xb9, 0x55, 0x31, 0x51, 0x56, 0x13, 0xba, 0x45, 0x70, 0x6c, 0x53, 0x00, - 0x83, 0x59, 0x99, 0x9e, 0xd0, 0xa8, 0xab, 0x22, 0xa1, 0x51, 0xd1, 0x28, 0xb2, 0xe0, 0xa2, 0xec, - 0xba, 0xc8, 0x31, 0xb7, 0x10, 0xda, 0x21, 0xa4, 0x7b, 0xa3, 0x91, 0xbd, 0x03, 0xf2, 0x1e, 0x6a, - 0x63, 0x17, 0x23, 0x87, 0x5d, 0x99, 0xc5, 0x11, 0x54, 0x1e, 0x84, 0x5d, 0x68, 0x8a, 0x3f, 0x1d, - 0x2e, 0xe9, 0x42, 0x5b, 0x89, 0x5d, 0xe8, 0xa7, 0x3f, 0x8b, 0x25, 0x0b, 0xb3, 0x4e, 0xaf, 0xa5, - 0xb7, 0x89, 0x2d, 0x9e, 0x4c, 0xe2, 0x5f, 0x85, 0x9a, 0x07, 0xe2, 0xcd, 0xe3, 0x5b, 0xa0, 0xe3, - 0x1d, 0xeb, 0x0a, 0x66, 0xa3, 0x54, 0x09, 0x66, 0xa3, 0xa2, 0x90, 0xd9, 0x5f, 0xa2, 0x35, 0xf3, - 0xd0, 0x83, 0xed, 0x2e, 0xba, 0x89, 0x89, 0xbc, 0x16, 0x8e, 0x40, 0x9f, 0xcd, 0xe9, 0xfa, 0x8c, - 0x70, 0x3e, 0x9c, 0x84, 0xc1, 0xa8, 0x9b, 0x4a, 0x1e, 0x75, 0xaf, 0xc5, 0xba, 0xf1, 0x64, 0xc9, - 0x04, 0x9e, 0x8e, 0x95, 0x4c, 0x20, 0x1a, 0x06, 0x56, 0x7d, 0x32, 0x0b, 0xa6, 0x1a, 0xd4, 0x92, - 0x2d, 0xb0, 0x10, 0x7f, 0x24, 0x26, 0x4d, 0xb9, 0xc9, 0x57, 0x9a, 0x5a, 0xb9, 0x16, 0x2c, 0x6c, - 0xf4, 0x10, 0xdc, 0x1e, 0x7f, 0xc8, 0xbd, 0x92, 0xbc, 0x7f, 0x0c, 0xa4, 0xbe, 0x71, 0x0d, 0x50, - 0x78, 0x44, 0x1f, 0x2c, 0x27, 0x3e, 0xa1, 0xca, 0xc9, 0x46, 0x92, 0xb0, 0x6a, 0xf5, 0xfa, 0xd8, - 0xf0, 0xdc, 0xaf, 0xc0, 0x4a, 0xda, 0x8c, 0x4f, 0x21, 0x29, 0x05, 0xae, 0xbe, 0xfd, 0x5c, 0xf0, - 0xd0, 0x81, 0x4f, 0xc1, 0xad, 0xb1, 0x21, 0xa9, 0x25, 0x9b, 0x89, 0x62, 0xd4, 0xf2, 0xd5, 0x98, - 0xd0, 0xbe, 0x05, 0x16, 0xe2, 0xc3, 0x22, 0xa5, 0x48, 0x62, 0xb0, 0xb4, 0x22, 0x49, 0x69, 0xd1, - 0x7e, 0x20, 0x63, 0xed, 0x39, 0x25, 0x90, 0x28, 0x26, 0x2d, 0x90, 0xa4, 0x46, 0xe9, 0xdb, 0x1f, - 0x6b, 0x92, 0x29, 0xf6, 0xa3, 0x98, 0x34, 0xfb, 0x49, 0xed, 0x62, 0xe4, 0xbf, 0x68, 0x15, 0x97, - 0xfa, 0x1f, 0x60, 0x2e, 0xf7, 0x7f, 0xfc, 0xd6, 0xaa, 0x33, 0x5f, 0xfb, 0x6d, 0xa0, 0xfe, 0xe0, - 0xf8, 0xef, 0x42, 0xe6, 0xf8, 0xb4, 0x20, 0x3d, 0x3b, 0x2d, 0x48, 0x7f, 0x9d, 0x16, 0xa4, 0xef, - 0xcf, 0x0a, 0x99, 0x67, 0x67, 0x85, 0xcc, 0x1f, 0x67, 0x85, 0xcc, 0x27, 0x95, 0x48, 0xc7, 0xc4, - 0xbc, 0x72, 0x2a, 0x5d, 0xd8, 0xa2, 0xc6, 0xc3, 0x1d, 0xfe, 0xc5, 0x78, 0x18, 0x7e, 0x33, 0xf2, - 0xe6, 0xd9, 0xca, 0xf1, 0xc7, 0xc8, 0x5b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x99, 0xc9, 0x6a, - 0x7b, 0x19, 0x0f, 0x00, 0x00, + 0x14, 0x8e, 0x93, 0x6e, 0x76, 0x33, 0xdd, 0xdd, 0xb6, 0x56, 0x45, 0x5d, 0x8b, 0x26, 0x95, 0x11, + 0x22, 0x04, 0x62, 0x6f, 0x83, 0xe0, 0x10, 0x09, 0x89, 0x86, 0xdd, 0x4a, 0x65, 0x15, 0x6d, 0x95, + 0x2e, 0x20, 0x71, 0xa0, 0x4c, 0xe2, 0xa9, 0x33, 0x6a, 0xec, 0x31, 0x9e, 0x49, 0x68, 0xb8, 0x80, + 0x38, 0x21, 0xc4, 0x81, 0x9f, 0xb0, 0x07, 0x0e, 0x88, 0x53, 0x0f, 0x9c, 0x16, 0x7e, 0x40, 0xb5, + 0xa7, 0x15, 0x07, 0xc4, 0xa9, 0xb0, 0xed, 0xa1, 0x9c, 0xf7, 0x17, 0x20, 0x8f, 0x27, 0x8e, 0xe3, + 0xd8, 0x4d, 0x17, 0x95, 0x4b, 0x9b, 0x79, 0xef, 0x9b, 0x37, 0xef, 0x7b, 0xef, 0xcd, 0x7b, 0x63, + 0xa0, 0x12, 0x17, 0x3b, 0x98, 0x19, 0xc4, 0xed, 0x74, 0x71, 0xcf, 0x34, 0x06, 0x1b, 0x06, 0x3b, + 0xd4, 0x5d, 0x8f, 0x30, 0x22, 0x2f, 0x05, 0x3a, 0x5d, 0xe8, 0xf4, 0xc1, 0x86, 0xba, 0x04, 0x6d, + 0xec, 0x10, 0x83, 0xff, 0x0d, 0x50, 0x6a, 0xb1, 0x43, 0xa8, 0x4d, 0xa8, 0xd1, 0x86, 0x14, 0x19, + 0x83, 0x8d, 0x36, 0x62, 0x70, 0xc3, 0xe8, 0x10, 0xec, 0x08, 0xfd, 0x8a, 0xd0, 0xdb, 0xd4, 0xf2, + 0xad, 0xdb, 0xd4, 0x12, 0x8a, 0xd5, 0x40, 0xb1, 0xc7, 0x57, 0x46, 0xb0, 0x10, 0xaa, 0x65, 0x8b, + 0x58, 0x24, 0x90, 0xfb, 0xbf, 0x46, 0x1b, 0x2c, 0x42, 0xac, 0x1e, 0x32, 0xf8, 0xaa, 0xdd, 0xdf, + 0x37, 0xa0, 0x33, 0x14, 0xaa, 0xb5, 0x04, 0x1a, 0x43, 0x17, 0x09, 0x7b, 0xda, 0x8f, 0x12, 0x90, + 0x9b, 0xd4, 0xba, 0x77, 0x88, 0x3a, 0x7d, 0x86, 0x9a, 0x88, 0x52, 0x68, 0x21, 0x2a, 0xdf, 0x01, + 0x79, 0x8a, 0x1c, 0x13, 0x79, 0x8a, 0xb4, 0x2e, 0x95, 0x0b, 0x0d, 0xe5, 0xf7, 0x5f, 0xaa, 0xcb, + 0xc2, 0x91, 0x4d, 0xd3, 0xf4, 0x10, 0xa5, 0xbb, 0xcc, 0xc3, 0x8e, 0xd5, 0x12, 0x38, 0xf9, 0x0e, + 0xb8, 0x61, 0x8b, 0xdd, 0x4a, 0x76, 0x3d, 0x57, 0x9e, 0xaf, 0x2d, 0xeb, 0x81, 0x57, 0xfa, 0xc8, + 0x2b, 0x7d, 0xd3, 0x19, 0xb6, 0x42, 0x54, 0xbd, 0xf2, 0xcd, 0xf9, 0x51, 0x45, 0x6c, 0xff, 0xee, + 0xfc, 0xa8, 0xa2, 0x8e, 0x5c, 0x9c, 0xf6, 0x47, 0x7b, 0x19, 0xa8, 0xd3, 0xd2, 0x16, 0xa2, 0x2e, + 0x71, 0x28, 0xd2, 0x9e, 0x48, 0x60, 0xb1, 0x49, 0xad, 0x5d, 0xc4, 0x1a, 0x1e, 0x36, 0x2d, 0xb4, + 0xed, 0xec, 0x13, 0x79, 0x33, 0x46, 0xe1, 0xf5, 0xe7, 0x27, 0xa5, 0x5b, 0x43, 0x68, 0xf7, 0xea, + 0x5a, 0x20, 0xd7, 0x66, 0x72, 0xda, 0x06, 0xf3, 0x6d, 0x6e, 0x70, 0x0f, 0x3b, 0xfb, 0x44, 0xc9, + 0xae, 0x4b, 0xe5, 0xf9, 0xda, 0x9a, 0x3e, 0x95, 0x7c, 0x7d, 0x7c, 0x6c, 0xa3, 0x70, 0x7c, 0x52, + 0xca, 0xfc, 0x74, 0x7e, 0x54, 0x91, 0x5a, 0xa0, 0x1d, 0x8a, 0xeb, 0xe5, 0x18, 0x59, 0x25, 0x42, + 0x76, 0xc2, 0x6f, 0x4d, 0x05, 0x4a, 0x5c, 0x16, 0x12, 0xfd, 0x3e, 0x07, 0x56, 0x9a, 0xd4, 0xda, + 0xc2, 0x0e, 0xec, 0xe1, 0x2f, 0xd1, 0x43, 0x72, 0x80, 0x9c, 0xbb, 0xc8, 0x25, 0x14, 0xb3, 0xab, + 0xe0, 0x2b, 0x83, 0xb9, 0x7d, 0x8f, 0xd8, 0x9c, 0x68, 0xa1, 0xc5, 0x7f, 0xcb, 0x65, 0x90, 0x65, + 0x44, 0xc9, 0xcd, 0xa8, 0x82, 0x2c, 0x23, 0x72, 0x13, 0xe4, 0xa1, 0x4d, 0xfa, 0x0e, 0x53, 0xe6, + 0x78, 0xa0, 0x56, 0x75, 0x01, 0xf5, 0xeb, 0x5f, 0x17, 0xf5, 0xaf, 0xbf, 0x4f, 0xb0, 0xd3, 0x50, + 0xfd, 0x20, 0x8d, 0xfd, 0x0b, 0xb6, 0x69, 0x41, 0xd4, 0x84, 0x11, 0x59, 0x05, 0x37, 0x28, 0xfa, + 0xbc, 0x8f, 0x9c, 0x0e, 0x52, 0xae, 0xad, 0x4b, 0xe5, 0xb9, 0x56, 0xb8, 0x96, 0x5f, 0x02, 0xf9, + 0x2e, 0xc2, 0x56, 0x97, 0x29, 0x79, 0xae, 0x11, 0x2b, 0x79, 0x0d, 0x00, 0xff, 0xb0, 0x3d, 0x13, + 0x39, 0xc4, 0x56, 0xae, 0x73, 0x1a, 0x05, 0x5f, 0x72, 0xd7, 0x17, 0xc8, 0x6b, 0x60, 0xce, 0x84, + 0x0c, 0x2a, 0x37, 0xd6, 0xa5, 0xf2, 0x4d, 0x9e, 0x29, 0x29, 0x38, 0x93, 0x8b, 0xeb, 0x46, 0x2c, + 0x47, 0xa5, 0x48, 0x8e, 0x92, 0x42, 0xae, 0x7d, 0x06, 0x4a, 0x29, 0xaa, 0x51, 0xc6, 0xe4, 0x77, + 0x41, 0xde, 0x43, 0xb4, 0xdf, 0x63, 0x3c, 0x2b, 0xb7, 0x6b, 0xaf, 0x26, 0x54, 0xcf, 0x08, 0xdc, + 0xe2, 0xc0, 0x87, 0x43, 0x17, 0xb5, 0xc4, 0x26, 0xed, 0x99, 0xc4, 0x0b, 0x7f, 0xdb, 0xc1, 0x0c, + 0x43, 0x16, 0x1c, 0xf1, 0x31, 0x66, 0x5d, 0xd3, 0x83, 0x5f, 0xc0, 0xde, 0x7f, 0xb8, 0xa6, 0xb7, + 0x79, 0x3a, 0x83, 0x04, 0x5f, 0x7d, 0xd2, 0xea, 0xb5, 0x58, 0x08, 0xb5, 0x48, 0x08, 0x53, 0x48, + 0x68, 0xef, 0x01, 0x2d, 0x5d, 0x1b, 0x06, 0x32, 0x5a, 0x0e, 0xd2, 0x64, 0x39, 0x68, 0x8f, 0xb3, + 0x60, 0xa1, 0x49, 0xad, 0x4d, 0xd3, 0xfc, 0x08, 0xf6, 0xb0, 0x09, 0x19, 0xf1, 0xe4, 0x0f, 0x40, + 0x01, 0xf6, 0x59, 0x97, 0x78, 0x98, 0x0d, 0x45, 0x74, 0xde, 0x7c, 0x7e, 0x52, 0x5a, 0x14, 0xce, + 0x8f, 0x54, 0xe9, 0x97, 0x62, 0xbc, 0x5d, 0x56, 0xc0, 0x75, 0x9b, 0x38, 0xf8, 0x00, 0x79, 0x22, + 0x72, 0xa3, 0xa5, 0x7c, 0x0f, 0x2c, 0x0d, 0x46, 0x47, 0xee, 0xc1, 0x60, 0xff, 0xcc, 0xcb, 0xb2, + 0x18, 0x6e, 0x11, 0x72, 0x79, 0x0b, 0xe4, 0xdd, 0x7e, 0xfb, 0x00, 0x0d, 0x45, 0x16, 0x12, 0x5b, + 0x67, 0x43, 0x79, 0x32, 0xb6, 0xd8, 0xf1, 0x86, 0x2e, 0x23, 0xfa, 0x4e, 0xbf, 0x7d, 0x1f, 0x0d, + 0x5b, 0x62, 0x77, 0xbd, 0xf6, 0xed, 0xa3, 0x52, 0xe6, 0x9f, 0x47, 0xa5, 0x8c, 0x9f, 0x86, 0x31, + 0x01, 0x3f, 0x13, 0x2b, 0x91, 0x4c, 0x44, 0x03, 0xa5, 0xad, 0xf2, 0x96, 0x12, 0x15, 0x85, 0xed, + 0xe6, 0x8f, 0x60, 0x38, 0xb4, 0x90, 0x4d, 0x06, 0xe8, 0xff, 0x09, 0x6d, 0x62, 0x00, 0xb3, 0x2f, + 0x1a, 0xc0, 0x7a, 0x75, 0x9a, 0x70, 0x74, 0x9c, 0xc4, 0x18, 0x88, 0x71, 0x12, 0x93, 0x86, 0xb4, + 0x7f, 0x93, 0x78, 0x39, 0x7d, 0xe8, 0x9a, 0x90, 0xa1, 0x1d, 0xe8, 0x41, 0x9b, 0x5e, 0x29, 0xe7, + 0x0d, 0x90, 0x77, 0xb9, 0x55, 0x31, 0x51, 0x56, 0x13, 0x7a, 0x42, 0x70, 0x6c, 0x4b, 0x00, 0x83, + 0x59, 0x99, 0x9e, 0xd0, 0xa8, 0xab, 0x22, 0xa1, 0x51, 0xd1, 0x98, 0x59, 0x70, 0x51, 0x76, 0x5d, + 0xe4, 0x98, 0x5b, 0x08, 0xed, 0x10, 0xd2, 0xbb, 0x52, 0x66, 0xef, 0x80, 0x82, 0x87, 0x3a, 0xd8, + 0xc5, 0xc8, 0x61, 0x33, 0xb3, 0x38, 0x86, 0xca, 0xc3, 0xb0, 0x0b, 0xe5, 0xf8, 0xd3, 0xe1, 0x82, + 0x2e, 0xb4, 0x95, 0xd8, 0x85, 0x7e, 0xfe, 0xab, 0x54, 0xb6, 0x30, 0xeb, 0xf6, 0xdb, 0x7a, 0x87, + 0xd8, 0xe2, 0xc9, 0x24, 0xfe, 0x55, 0xa9, 0x79, 0x20, 0xde, 0x3c, 0xbe, 0x05, 0x3a, 0xd9, 0xb1, + 0x66, 0x44, 0x36, 0x1a, 0x2a, 0x11, 0xd9, 0xa8, 0x28, 0x8c, 0xec, 0xaf, 0xd1, 0x9a, 0x79, 0xe0, + 0xc1, 0x4e, 0x0f, 0x5d, 0xc5, 0x44, 0x5e, 0x0b, 0x07, 0x9d, 0x1f, 0xcd, 0xb9, 0xc6, 0x35, 0xe1, + 0x7c, 0x38, 0xef, 0x82, 0x81, 0x96, 0x4b, 0x1e, 0x68, 0xaf, 0xc5, 0xba, 0xf1, 0x74, 0xc9, 0x04, + 0x9e, 0x4e, 0x94, 0x4c, 0x20, 0x1a, 0x11, 0xab, 0x3d, 0xbe, 0x0e, 0x72, 0x4d, 0x6a, 0xc9, 0x16, + 0x58, 0x88, 0x3f, 0x12, 0x93, 0x66, 0xd9, 0xf4, 0x2b, 0x4d, 0xad, 0x5e, 0x0a, 0x16, 0x36, 0x7a, + 0x08, 0x6e, 0x4d, 0x3e, 0xe4, 0x5e, 0x49, 0xde, 0x3f, 0x01, 0x52, 0xdf, 0xb8, 0x04, 0x28, 0x3c, + 0x62, 0x00, 0x96, 0x13, 0x9f, 0x50, 0x95, 0x64, 0x23, 0x49, 0x58, 0xb5, 0x76, 0x79, 0x6c, 0x78, + 0xee, 0x57, 0x60, 0x25, 0x6d, 0x92, 0xa7, 0x04, 0x29, 0x05, 0xae, 0xbe, 0xfd, 0x42, 0xf0, 0xd0, + 0x81, 0x4f, 0xc1, 0xcd, 0x89, 0x21, 0xa9, 0x25, 0x9b, 0x89, 0x62, 0xd4, 0xca, 0x6c, 0x4c, 0x68, + 0xdf, 0x02, 0x0b, 0xf1, 0x61, 0x91, 0x52, 0x24, 0x31, 0x58, 0x5a, 0x91, 0xa4, 0xb4, 0x68, 0x9f, + 0xc8, 0x44, 0x7b, 0x4e, 0x21, 0x12, 0xc5, 0xa4, 0x11, 0x49, 0x6a, 0x94, 0xbe, 0xfd, 0x89, 0x26, + 0x99, 0x62, 0x3f, 0x8a, 0x49, 0xb3, 0x9f, 0xd4, 0x2e, 0xc6, 0xfe, 0x8b, 0x56, 0x71, 0xa1, 0xff, + 0x01, 0xe6, 0x62, 0xff, 0x27, 0x6f, 0xad, 0x7a, 0xed, 0x6b, 0xbf, 0x0d, 0x34, 0xee, 0x1f, 0x3f, + 0x2b, 0x66, 0x8e, 0x4f, 0x8b, 0xd2, 0xd3, 0xd3, 0xa2, 0xf4, 0xf7, 0x69, 0x51, 0xfa, 0xe1, 0xac, + 0x98, 0x79, 0x7a, 0x56, 0xcc, 0xfc, 0x79, 0x56, 0xcc, 0x7c, 0x52, 0x8d, 0x74, 0x4c, 0xcc, 0x2b, + 0xa7, 0xda, 0x83, 0x6d, 0x6a, 0x3c, 0xd8, 0xe1, 0x5f, 0x8c, 0x87, 0xe1, 0x37, 0x23, 0x6f, 0x9e, + 0xed, 0x3c, 0x7f, 0x8c, 0xbc, 0xf5, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8b, 0x2b, 0x3f, 0x3c, + 0x19, 0x0f, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/ophost/types/error.go b/x/ophost/types/error.go index b9eb1fb2..ba0aca78 100644 --- a/x/ophost/types/error.go +++ b/x/ophost/types/error.go @@ -20,6 +20,5 @@ var ( ErrInvalidBridgeMetadata = errorsmod.Register(ModuleName, 13, "invalid bridge metadata") ErrInvalidBatchInfo = errorsmod.Register(ModuleName, 14, "invalid batch info") ErrInvalidChallengerUpdate = errorsmod.Register(ModuleName, 15, "invalid challenger update") - ErrEmptyCommitmentProof = errorsmod.Register(ModuleName, 16, "empty commitment proof") - ErrEmptyBatchBytes = errorsmod.Register(ModuleName, 17, "empty batch bytes") + ErrEmptyBatchBytes = errorsmod.Register(ModuleName, 16, "empty batch bytes") ) From b2d9cd242cfd32359855fddd736dd6a929b13eb1 Mon Sep 17 00:00:00 2001 From: beer-1 Date: Tue, 3 Sep 2024 17:58:53 +0900 Subject: [PATCH 11/16] fix lint --- x/opchild/ante/fee_utils.go | 3 ++- x/opchild/keeper/msg_server.go | 7 ++++++- x/opchild/keeper/oracle.go | 6 ++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/x/opchild/ante/fee_utils.go b/x/opchild/ante/fee_utils.go index 31105575..fe4ad901 100644 --- a/x/opchild/ante/fee_utils.go +++ b/x/opchild/ante/fee_utils.go @@ -1,6 +1,7 @@ package ante import ( + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -26,7 +27,7 @@ func computeRequiredFees(gas uint64, minGasPrices sdk.DecCoins) sdk.Coins { // Determine the required fees by multiplying each required minimum gas // price by the gas limit, where fee = ceil(minGasPrice * gasLimit). for i, gp := range minGasPrices { - fee := gp.Amount.MulInt64(int64(gas)) + fee := gp.Amount.MulInt(math.NewIntFromUint64(gas)) requiredFees[i] = sdk.NewCoin(gp.Denom, fee.Ceil().RoundInt()) } } diff --git a/x/opchild/keeper/msg_server.go b/x/opchild/keeper/msg_server.go index 1add4b41..137fbceb 100644 --- a/x/opchild/keeper/msg_server.go +++ b/x/opchild/keeper/msg_server.go @@ -109,7 +109,12 @@ func (ms MsgServer) ExecuteMessages(ctx context.Context, req *types.MsgExecuteMe // assert that the opchild module account is the only signer for ExecuteMessages message if !bytes.Equal(signers[0], authority) { - return nil, errorsmod.Wrapf(types.ErrInvalidSigner, sdk.AccAddress(signers[0]).String()) + signer, err := ms.addressCodec.BytesToString(signers[0]) + if err != nil { + return nil, err + } + + return nil, errorsmod.Wrap(types.ErrInvalidSigner, signer) } handler := ms.Router().Handler(msg) diff --git a/x/opchild/keeper/oracle.go b/x/opchild/keeper/oracle.go index ac8b9f00..83350fef 100644 --- a/x/opchild/keeper/oracle.go +++ b/x/opchild/keeper/oracle.go @@ -65,7 +65,9 @@ func (k L2OracleHandler) UpdateOracle(ctx context.Context, height uint64, extCom return err } - if hostStoreLastHeight > int64(height) { + //nolint:gosec + h := int64(height) + if hostStoreLastHeight > h { return types.ErrInvalidOracleHeight } @@ -83,7 +85,7 @@ func (k L2OracleHandler) UpdateOracle(ctx context.Context, height uint64, extCom return err } - err = l2slinky.ValidateVoteExtensions(sdkCtx, k.HostValidatorStore, int64(height-1), hostChainID, extendedCommitInfo) + err = l2slinky.ValidateVoteExtensions(sdkCtx, k.HostValidatorStore, h-1, hostChainID, extendedCommitInfo) if err != nil { return err } From 819e03dfdec4eb3505df4a01a4e9382e7f55119e Mon Sep 17 00:00:00 2001 From: beer-1 Date: Tue, 3 Sep 2024 18:18:34 +0900 Subject: [PATCH 12/16] fix event types --- x/ophost/keeper/msg_server.go | 2 +- x/ophost/types/event.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/x/ophost/keeper/msg_server.go b/x/ophost/keeper/msg_server.go index 6903b1bf..acf33a68 100644 --- a/x/ophost/keeper/msg_server.go +++ b/x/ophost/keeper/msg_server.go @@ -564,7 +564,7 @@ func (ms MsgServer) UpdateMetadata(ctx context.Context, req *types.MsgUpdateMeta } sdk.UnwrapSDKContext(ctx).EventManager().EmitEvent(sdk.NewEvent( - types.EventTypeUpdateBatchInfo, + types.EventTypeUpdateMetadata, sdk.NewAttribute(types.AttributeKeyBridgeId, strconv.FormatUint(bridgeId, 10)), sdk.NewAttribute(types.AttributeKeyFinalizedOutputIndex, strconv.FormatUint(finalizedOutputIndex, 10)), sdk.NewAttribute(types.AttributeKeyFinalizedL2BlockNumber, strconv.FormatUint(finalizedOutput.L2BlockNumber, 10)), diff --git a/x/ophost/types/event.go b/x/ophost/types/event.go index 18c418fd..6e361359 100644 --- a/x/ophost/types/event.go +++ b/x/ophost/types/event.go @@ -10,6 +10,7 @@ const ( EventTypeUpdateProposer = "update_proposer" EventTypeUpdateChallenger = "update_challenger" EventTypeUpdateBatchInfo = "update_batch_info" + EventTypeUpdateMetadata = "update_metadata" AttributeKeySubmitter = "submitter" AttributeKeyCreator = "creator" From 02f7334574c8da36be794cb57ed9a7ec358285e3 Mon Sep 17 00:00:00 2001 From: beer-1 Date: Tue, 3 Sep 2024 18:23:49 +0900 Subject: [PATCH 13/16] hash variable length items --- x/ophost/types/keys.go | 2 -- x/ophost/types/output.go | 17 +++++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/x/ophost/types/keys.go b/x/ophost/types/keys.go index 048ac3ef..91f0ca17 100644 --- a/x/ophost/types/keys.go +++ b/x/ophost/types/keys.go @@ -24,6 +24,4 @@ var ( NextOutputIndexPrefix = []byte{0x61} ProvenWithdrawalPrefix = []byte{0x71} BatchInfoPrefix = []byte{0x81} - - Splitter = byte('|') ) diff --git a/x/ophost/types/output.go b/x/ophost/types/output.go index 04a40eda..2950d6da 100644 --- a/x/ophost/types/output.go +++ b/x/ophost/types/output.go @@ -28,19 +28,24 @@ func GenerateOutputRoot(version byte, storageRoot []byte, latestBlockHash []byte } func GenerateWithdrawalHash(bridgeId uint64, l2Sequence uint64, sender string, receiver string, denom string, amount uint64) [32]byte { + const spliter = "|" var withdrawalHash [32]byte seed := []byte{} seed = binary.BigEndian.AppendUint64(seed, bridgeId) seed = binary.BigEndian.AppendUint64(seed, l2Sequence) + // variable length - seed = append(seed, sender...) // put utf8 encoded address - seed = append(seed, Splitter) + senderDigest := sha3.Sum256([]byte(sender)) + seed = append(seed, senderDigest[:]...) // put utf8 encoded address + seed = append(seed, []byte(spliter)...) // variable length - seed = append(seed, receiver...) // put utf8 encoded address - seed = append(seed, Splitter) + receiverDigest := sha3.Sum256([]byte(receiver)) + seed = append(seed, receiverDigest[:]...) // put utf8 encoded address + seed = append(seed, []byte(spliter)...) // variable length - seed = append(seed, denom...) - seed = append(seed, Splitter) + denomDigest := sha3.Sum256([]byte(denom)) + seed = append(seed, denomDigest[:]...) + seed = append(seed, []byte(spliter)...) seed = binary.BigEndian.AppendUint64(seed, amount) // double hash the leaf node From 245cd3d91b35c28e14e840da77dae2772a25921a Mon Sep 17 00:00:00 2001 From: beer-1 Date: Tue, 3 Sep 2024 18:26:53 +0900 Subject: [PATCH 14/16] add missing codec --- x/opchild/keeper/oracle.go | 1 - x/opchild/types/codec.go | 4 ++++ x/ophost/types/codec.go | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/x/opchild/keeper/oracle.go b/x/opchild/keeper/oracle.go index 83350fef..dae9cdd6 100644 --- a/x/opchild/keeper/oracle.go +++ b/x/opchild/keeper/oracle.go @@ -65,7 +65,6 @@ func (k L2OracleHandler) UpdateOracle(ctx context.Context, height uint64, extCom return err } - //nolint:gosec h := int64(height) if hostStoreLastHeight > h { return types.ErrInvalidOracleHeight diff --git a/x/opchild/types/codec.go b/x/opchild/types/codec.go index ed93d949..3205430d 100644 --- a/x/opchild/types/codec.go +++ b/x/opchild/types/codec.go @@ -18,6 +18,8 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { legacy.RegisterAminoMsg(cdc, &MsgFinalizeTokenDeposit{}, "opchild/MsgFinalizeTokenDeposit") legacy.RegisterAminoMsg(cdc, &MsgInitiateTokenWithdrawal{}, "opchild/MsgInitiateTokenWithdrawal") legacy.RegisterAminoMsg(cdc, &MsgUpdateOracle{}, "opchild/MsgUpdateOracle") + legacy.RegisterAminoMsg(cdc, &MsgSetBridgeInfo{}, "opchild/MsgSetBridgeInfo") + legacy.RegisterAminoMsg(cdc, &MsgSpendFeePool{}, "opchild/MsgSpendFeePool") cdc.RegisterConcrete(Params{}, "opchild/Params", nil) } @@ -32,6 +34,8 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { &MsgFinalizeTokenDeposit{}, &MsgInitiateTokenWithdrawal{}, &MsgUpdateOracle{}, + &MsgSetBridgeInfo{}, + &MsgSpendFeePool{}, ) msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) diff --git a/x/ophost/types/codec.go b/x/ophost/types/codec.go index ce6b612c..682d33bb 100644 --- a/x/ophost/types/codec.go +++ b/x/ophost/types/codec.go @@ -21,6 +21,7 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { legacy.RegisterAminoMsg(cdc, &MsgUpdateChallengers{}, "ophost/MsgUpdateChallengers") legacy.RegisterAminoMsg(cdc, &MsgUpdateBatchInfo{}, "ophost/MsgUpdateBatchInfo") legacy.RegisterAminoMsg(cdc, &MsgUpdateParams{}, "ophost/MsgUpdateParams") + legacy.RegisterAminoMsg(cdc, &MsgUpdateMetadata{}, "ophost/MsgUpdateMetadata") cdc.RegisterConcrete(Params{}, "ophost/Params", nil) cdc.RegisterConcrete(&BridgeAccount{}, "ophost/BridgeAccount", nil) @@ -39,6 +40,7 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { &MsgUpdateChallengers{}, &MsgUpdateBatchInfo{}, &MsgUpdateParams{}, + &MsgUpdateMetadata{}, ) // auth account registration From 5ae2b9c4b361212c349b859fbdd9da52fbd0f07f Mon Sep 17 00:00:00 2001 From: beer-1 Date: Tue, 3 Sep 2024 18:36:01 +0900 Subject: [PATCH 15/16] add missing validate denom --- proto/opinit/opchild/v1/genesis.proto | 2 + proto/opinit/opchild/v1/types.proto | 5 + x/opchild/keeper/genesis.go | 16 ++ x/opchild/keeper/genesis_test.go | 3 + x/opchild/types/genesis.go | 9 + x/opchild/types/genesis.pb.go | 125 ++++++--- x/opchild/types/types.pb.go | 369 +++++++++++++++++++++----- 7 files changed, 432 insertions(+), 97 deletions(-) diff --git a/proto/opinit/opchild/v1/genesis.proto b/proto/opinit/opchild/v1/genesis.proto index 1b816ef5..c035073c 100644 --- a/proto/opinit/opchild/v1/genesis.proto +++ b/proto/opinit/opchild/v1/genesis.proto @@ -24,6 +24,8 @@ message GenesisState { uint64 next_l1_sequence = 5; BridgeInfo bridge_info = 6; bool exported = 7; + + repeated DenomPair denom_pairs = 8 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; } // LastValidatorPower required for validator set update logic. diff --git a/proto/opinit/opchild/v1/types.proto b/proto/opinit/opchild/v1/types.proto index 45a4a57e..554d1aa1 100644 --- a/proto/opinit/opchild/v1/types.proto +++ b/proto/opinit/opchild/v1/types.proto @@ -121,3 +121,8 @@ enum ResponseResultType { // The message was executed successfully RESPONSE_RESULT_TYPE_SUCCESS = 2 [(gogoproto.enumvalue_customname) = "SUCCESS"]; } + +message DenomPair { + string denom = 1; + string base_denom = 2; +} diff --git a/x/opchild/keeper/genesis.go b/x/opchild/keeper/genesis.go index 06a0041b..051e28f3 100644 --- a/x/opchild/keeper/genesis.go +++ b/x/opchild/keeper/genesis.go @@ -89,6 +89,12 @@ func (k Keeper) InitGenesis(ctx context.Context, data *types.GenesisState) (res } } + for _, denomPair := range data.DenomPairs { + if err := k.DenomPairs.Set(ctx, denomPair.Denom, denomPair.BaseDenom); err != nil { + panic(err) + } + } + return res } @@ -137,6 +143,15 @@ func (k Keeper) ExportGenesis(ctx context.Context) *types.GenesisState { bridgeInfo = &bridgeInfo_ } + var denomPairs []types.DenomPair + err = k.DenomPairs.Walk(ctx, nil, func(denom, baseDenom string) (stop bool, err error) { + denomPairs = append(denomPairs, types.DenomPair{Denom: denom, BaseDenom: baseDenom}) + return false, nil + }) + if err != nil { + panic(err) + } + return &types.GenesisState{ Params: params, LastValidatorPowers: lastValidatorPowers, @@ -145,5 +160,6 @@ func (k Keeper) ExportGenesis(ctx context.Context) *types.GenesisState { NextL1Sequence: finalizedL1Sequence, NextL2Sequence: nextL2Sequence, BridgeInfo: bridgeInfo, + DenomPairs: denomPairs, } } diff --git a/x/opchild/keeper/genesis_test.go b/x/opchild/keeper/genesis_test.go index 348af68f..878d6135 100644 --- a/x/opchild/keeper/genesis_test.go +++ b/x/opchild/keeper/genesis_test.go @@ -26,6 +26,9 @@ func Test_GenesisImportExport(t *testing.T) { _, err = input.OPChildKeeper.IncreaseNextL1Sequence(ctx) // 3 require.NoError(t, err) + err = input.OPChildKeeper.DenomPairs.Set(ctx, "foo", "bar") + require.NoError(t, err) + genState := input.OPChildKeeper.ExportGenesis(ctx) require.Nil(t, genState.BridgeInfo) diff --git a/x/opchild/types/genesis.go b/x/opchild/types/genesis.go index 1827aac7..c442cef5 100644 --- a/x/opchild/types/genesis.go +++ b/x/opchild/types/genesis.go @@ -7,6 +7,7 @@ import ( "cosmossdk.io/core/address" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" + sdk "github.com/cosmos/cosmos-sdk/types" ) const ( @@ -22,6 +23,7 @@ func NewGenesisState(params Params, validators []Validator, bridgeInfo *BridgeIn Validators: validators, Exported: false, BridgeInfo: bridgeInfo, + DenomPairs: []DenomPair{}, } } @@ -35,6 +37,7 @@ func DefaultGenesisState() *GenesisState { NextL2Sequence: DefaultL2SequenceStart, BridgeInfo: nil, Exported: false, + DenomPairs: []DenomPair{}, } } @@ -55,6 +58,12 @@ func ValidateGenesis(data *GenesisState, ac address.Codec) error { } } + for _, denomPair := range data.DenomPairs { + if err := sdk.ValidateDenom(denomPair.Denom); err != nil { + return err + } + } + return data.Params.Validate(ac) } diff --git a/x/opchild/types/genesis.pb.go b/x/opchild/types/genesis.pb.go index 65774714..9f85afc4 100644 --- a/x/opchild/types/genesis.pb.go +++ b/x/opchild/types/genesis.pb.go @@ -38,6 +38,7 @@ type GenesisState struct { NextL1Sequence uint64 `protobuf:"varint,5,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` BridgeInfo *BridgeInfo `protobuf:"bytes,6,opt,name=bridge_info,json=bridgeInfo,proto3" json:"bridge_info,omitempty"` Exported bool `protobuf:"varint,7,opt,name=exported,proto3" json:"exported,omitempty"` + DenomPairs []DenomPair `protobuf:"bytes,8,rep,name=denom_pairs,json=denomPairs,proto3" json:"denom_pairs"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -122,6 +123,13 @@ func (m *GenesisState) GetExported() bool { return false } +func (m *GenesisState) GetDenomPairs() []DenomPair { + if m != nil { + return m.DenomPairs + } + return nil +} + // LastValidatorPower required for validator set update logic. type LastValidatorPower struct { // address is the address of the validator. @@ -171,37 +179,38 @@ func init() { func init() { proto.RegisterFile("opinit/opchild/v1/genesis.proto", fileDescriptor_08c29689c0e7bd55) } var fileDescriptor_08c29689c0e7bd55 = []byte{ - // 465 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0x41, 0x6b, 0xdb, 0x30, - 0x14, 0xc7, 0xad, 0xa6, 0x4d, 0x53, 0x65, 0x8c, 0x55, 0xcb, 0xc0, 0x0d, 0xab, 0x63, 0x0a, 0x03, - 0x33, 0x88, 0x4d, 0xbc, 0xdb, 0x18, 0x83, 0xe5, 0x12, 0x06, 0x85, 0x05, 0x07, 0x76, 0xd8, 0xc5, - 0xc8, 0xb1, 0xea, 0x08, 0x1c, 0xc9, 0x93, 0xd4, 0x2c, 0xfb, 0x06, 0x3b, 0xee, 0x23, 0xf4, 0x38, - 0xd8, 0x65, 0x87, 0x7d, 0x88, 0x1e, 0xcb, 0x4e, 0x3b, 0x8d, 0x91, 0x1c, 0xb6, 0x8f, 0x51, 0x22, - 0xb9, 0x6e, 0xc0, 0xb9, 0x18, 0xbd, 0xf7, 0x7e, 0xef, 0xaf, 0x67, 0xbd, 0x3f, 0xec, 0xf1, 0x82, - 0x32, 0xaa, 0x02, 0x5e, 0x4c, 0x67, 0x34, 0x4f, 0x83, 0xc5, 0x20, 0xc8, 0x08, 0x23, 0x92, 0x4a, - 0xbf, 0x10, 0x5c, 0x71, 0x74, 0x6c, 0x00, 0xbf, 0x04, 0xfc, 0xc5, 0xa0, 0x7b, 0x8c, 0xe7, 0x94, - 0xf1, 0x40, 0x7f, 0x0d, 0xd5, 0x3d, 0x99, 0x72, 0x39, 0xe7, 0x32, 0xd6, 0x51, 0x60, 0x82, 0xb2, - 0xd4, 0xc9, 0x78, 0xc6, 0x4d, 0x7e, 0x73, 0x2a, 0xb3, 0xa7, 0xf5, 0x7b, 0xd5, 0xe7, 0x82, 0x94, - 0x4d, 0x67, 0xdf, 0x1b, 0xf0, 0xc1, 0xc8, 0xcc, 0x31, 0x51, 0x58, 0x11, 0xf4, 0x0a, 0x36, 0x0b, - 0x2c, 0xf0, 0x5c, 0xda, 0xc0, 0x05, 0x5e, 0x3b, 0x3c, 0xf1, 0x6b, 0x73, 0xf9, 0x63, 0x0d, 0x0c, - 0x8f, 0xae, 0xff, 0xf4, 0xac, 0x6f, 0xff, 0x7e, 0x3c, 0x07, 0x51, 0xd9, 0x83, 0x52, 0xf8, 0x24, - 0xc7, 0x52, 0xc5, 0x0b, 0x9c, 0xd3, 0x14, 0x2b, 0x2e, 0xe2, 0x82, 0x7f, 0x22, 0x42, 0xda, 0x7b, - 0x6e, 0xc3, 0x6b, 0x87, 0xcf, 0x76, 0x88, 0x9d, 0x63, 0xa9, 0xde, 0xdf, 0xe1, 0xe3, 0x0d, 0xbd, - 0x2d, 0xfc, 0x38, 0xaf, 0x95, 0x25, 0x1a, 0x41, 0x58, 0x5d, 0x20, 0xed, 0x86, 0x96, 0x7e, 0xba, - 0x43, 0xba, 0xea, 0xdb, 0x56, 0xdc, 0x6a, 0x45, 0x1e, 0x7c, 0xc4, 0xc8, 0x52, 0xc5, 0x79, 0x18, - 0x4b, 0xf2, 0xf1, 0x92, 0xb0, 0x29, 0xb1, 0xf7, 0x5d, 0xe0, 0xed, 0x47, 0x0f, 0x37, 0xf9, 0xf3, - 0x70, 0x52, 0x66, 0xef, 0xc9, 0xc1, 0x3d, 0x79, 0xb0, 0x45, 0x0e, 0x2a, 0xf2, 0x35, 0x6c, 0x27, - 0x82, 0xa6, 0x19, 0x89, 0x29, 0xbb, 0xe0, 0x76, 0x53, 0xbf, 0xe2, 0xe9, 0x8e, 0xe9, 0x86, 0x9a, - 0x7a, 0xcb, 0x2e, 0x78, 0x04, 0x93, 0xea, 0x8c, 0xba, 0xb0, 0x45, 0x96, 0x05, 0x17, 0x8a, 0xa4, - 0xf6, 0xa1, 0x0b, 0xbc, 0x56, 0x54, 0xc5, 0x67, 0x33, 0x88, 0xea, 0xcf, 0x85, 0x42, 0x78, 0x88, - 0xd3, 0x54, 0x10, 0x69, 0x76, 0x76, 0x34, 0xb4, 0x7f, 0xfd, 0xec, 0x77, 0x4a, 0x6f, 0xbc, 0x31, - 0x95, 0x89, 0x12, 0x94, 0x65, 0xd1, 0x1d, 0x88, 0x3a, 0xf0, 0x40, 0x6f, 0xc6, 0xde, 0x73, 0x81, - 0xd7, 0x88, 0x4c, 0xf0, 0xb2, 0xf5, 0xe5, 0xaa, 0x67, 0xfd, 0xbf, 0xea, 0x59, 0xc3, 0xd1, 0xf5, - 0xca, 0x01, 0x37, 0x2b, 0x07, 0xfc, 0x5d, 0x39, 0xe0, 0xeb, 0xda, 0xb1, 0x6e, 0xd6, 0x8e, 0xf5, - 0x7b, 0xed, 0x58, 0x1f, 0xfa, 0x19, 0x55, 0xb3, 0xcb, 0xc4, 0x9f, 0xf2, 0x79, 0xb0, 0xf9, 0x25, - 0x8a, 0xfb, 0x39, 0x4e, 0x64, 0xf0, 0x6e, 0xac, 0x7d, 0xb6, 0xac, 0x9c, 0xa6, 0x6d, 0x96, 0x34, - 0xb5, 0xcf, 0x5e, 0xdc, 0x06, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x97, 0x80, 0x16, 0x00, 0x03, 0x00, - 0x00, + // 493 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xc1, 0x8b, 0xd3, 0x4e, + 0x14, 0xc7, 0x93, 0xed, 0x6e, 0xb7, 0x3b, 0xfd, 0xf1, 0xc3, 0x1d, 0x2b, 0x64, 0x8b, 0x9b, 0x86, + 0x05, 0x21, 0x08, 0x4d, 0x68, 0xbc, 0x89, 0x08, 0x16, 0xa1, 0x0a, 0x0b, 0x96, 0x14, 0x3c, 0x78, + 0x09, 0x93, 0xce, 0x6c, 0x3a, 0x90, 0xcc, 0xc4, 0x99, 0xd9, 0x5a, 0xff, 0x03, 0x8f, 0xfe, 0x09, + 0x7b, 0xf4, 0xe8, 0xc1, 0x3f, 0x62, 0x8f, 0x8b, 0x27, 0x4f, 0x22, 0xed, 0x41, 0xff, 0x01, 0xef, + 0x92, 0x49, 0x9a, 0xad, 0xb4, 0x5e, 0x42, 0xde, 0x7b, 0x9f, 0xf7, 0x9d, 0xf7, 0x66, 0xbe, 0xa0, + 0xc7, 0x73, 0xca, 0xa8, 0xf2, 0x79, 0x3e, 0x9d, 0xd1, 0x14, 0xfb, 0xf3, 0x81, 0x9f, 0x10, 0x46, + 0x24, 0x95, 0x5e, 0x2e, 0xb8, 0xe2, 0xf0, 0xb8, 0x04, 0xbc, 0x0a, 0xf0, 0xe6, 0x83, 0xee, 0x31, + 0xca, 0x28, 0xe3, 0xbe, 0xfe, 0x96, 0x54, 0xf7, 0x64, 0xca, 0x65, 0xc6, 0x65, 0xa4, 0x23, 0xbf, + 0x0c, 0xaa, 0x52, 0x27, 0xe1, 0x09, 0x2f, 0xf3, 0xc5, 0x5f, 0x95, 0x3d, 0xdd, 0x3e, 0x57, 0xbd, + 0xcf, 0x49, 0xd5, 0x74, 0xf6, 0xbb, 0x01, 0xfe, 0x1b, 0x95, 0x73, 0x4c, 0x14, 0x52, 0x04, 0x3e, + 0x01, 0xcd, 0x1c, 0x09, 0x94, 0x49, 0xcb, 0x74, 0x4c, 0xb7, 0x1d, 0x9c, 0x78, 0x5b, 0x73, 0x79, + 0x63, 0x0d, 0x0c, 0x8f, 0xae, 0xbf, 0xf7, 0x8c, 0x4f, 0x3f, 0x3f, 0x3f, 0x34, 0xc3, 0xaa, 0x07, + 0x62, 0x70, 0x2f, 0x45, 0x52, 0x45, 0x73, 0x94, 0x52, 0x8c, 0x14, 0x17, 0x51, 0xce, 0xdf, 0x11, + 0x21, 0xad, 0x3d, 0xa7, 0xe1, 0xb6, 0x83, 0x07, 0x3b, 0xc4, 0xce, 0x91, 0x54, 0xaf, 0xd7, 0xf8, + 0xb8, 0xa0, 0x37, 0x85, 0xef, 0xa6, 0x5b, 0x65, 0x09, 0x47, 0x00, 0xd4, 0x07, 0x48, 0xab, 0xa1, + 0xa5, 0xef, 0xef, 0x90, 0xae, 0xfb, 0x36, 0x15, 0x37, 0x5a, 0xa1, 0x0b, 0xee, 0x30, 0xb2, 0x50, + 0x51, 0x1a, 0x44, 0x92, 0xbc, 0xbd, 0x24, 0x6c, 0x4a, 0xac, 0x7d, 0xc7, 0x74, 0xf7, 0xc3, 0xff, + 0x8b, 0xfc, 0x79, 0x30, 0xa9, 0xb2, 0xb7, 0xe4, 0xe0, 0x96, 0x3c, 0xd8, 0x20, 0x07, 0x35, 0xf9, + 0x14, 0xb4, 0x63, 0x41, 0x71, 0x42, 0x22, 0xca, 0x2e, 0xb8, 0xd5, 0xd4, 0xb7, 0x78, 0xba, 0x63, + 0xba, 0xa1, 0xa6, 0x5e, 0xb2, 0x0b, 0x1e, 0x82, 0xb8, 0xfe, 0x87, 0x5d, 0xd0, 0x22, 0x8b, 0x9c, + 0x0b, 0x45, 0xb0, 0x75, 0xe8, 0x98, 0x6e, 0x2b, 0xac, 0x63, 0xf8, 0x02, 0xb4, 0x31, 0x61, 0x3c, + 0x8b, 0x72, 0x44, 0x85, 0xb4, 0x5a, 0xff, 0xdc, 0xfc, 0x79, 0x41, 0x8d, 0x11, 0xfd, 0x7b, 0x73, + 0xbc, 0xce, 0xca, 0xb3, 0x19, 0x80, 0xdb, 0x17, 0x0f, 0x03, 0x70, 0x88, 0x30, 0x16, 0x44, 0x96, + 0xaf, 0x7f, 0x34, 0xb4, 0xbe, 0x7e, 0xe9, 0x77, 0x2a, 0x97, 0x3d, 0x2b, 0x2b, 0x13, 0x25, 0x28, + 0x4b, 0xc2, 0x35, 0x08, 0x3b, 0xe0, 0x40, 0xbf, 0xb1, 0xb5, 0xe7, 0x98, 0x6e, 0x23, 0x2c, 0x83, + 0xc7, 0xad, 0x0f, 0x57, 0x3d, 0xe3, 0xd7, 0x55, 0xcf, 0x18, 0x8e, 0xae, 0x97, 0xb6, 0x79, 0xb3, + 0xb4, 0xcd, 0x1f, 0x4b, 0xdb, 0xfc, 0xb8, 0xb2, 0x8d, 0x9b, 0x95, 0x6d, 0x7c, 0x5b, 0xd9, 0xc6, + 0x9b, 0x7e, 0x42, 0xd5, 0xec, 0x32, 0xf6, 0xa6, 0x3c, 0xf3, 0x8b, 0x05, 0x28, 0xea, 0xa7, 0x28, + 0x96, 0xfe, 0xab, 0xb1, 0x76, 0xec, 0xa2, 0xf6, 0xac, 0x36, 0x6c, 0xdc, 0xd4, 0x8e, 0x7d, 0xf4, + 0x27, 0x00, 0x00, 0xff, 0xff, 0x6b, 0x32, 0xd1, 0x3b, 0x4a, 0x03, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -224,6 +233,20 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.DenomPairs) > 0 { + for iNdEx := len(m.DenomPairs) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DenomPairs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + } if m.Exported { i-- if m.Exported { @@ -376,6 +399,12 @@ func (m *GenesisState) Size() (n int) { if m.Exported { n += 2 } + if len(m.DenomPairs) > 0 { + for _, e := range m.DenomPairs { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } return n } @@ -625,6 +654,40 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { } } m.Exported = bool(v != 0) + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DenomPairs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DenomPairs = append(m.DenomPairs, DenomPair{}) + if err := m.DenomPairs[len(m.DenomPairs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/x/opchild/types/types.pb.go b/x/opchild/types/types.pb.go index 2dbe9061..f5d8d0c7 100644 --- a/x/opchild/types/types.pb.go +++ b/x/opchild/types/types.pb.go @@ -287,6 +287,44 @@ func (m *CoinsWrapper) XXX_DiscardUnknown() { var xxx_messageInfo_CoinsWrapper proto.InternalMessageInfo +type DenomPair struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + BaseDenom string `protobuf:"bytes,2,opt,name=base_denom,json=baseDenom,proto3" json:"base_denom,omitempty"` +} + +func (m *DenomPair) Reset() { *m = DenomPair{} } +func (m *DenomPair) String() string { return proto.CompactTextString(m) } +func (*DenomPair) ProtoMessage() {} +func (*DenomPair) Descriptor() ([]byte, []int) { + return fileDescriptor_2cc6df244b706d68, []int{5} +} +func (m *DenomPair) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DenomPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DenomPair.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DenomPair) XXX_Merge(src proto.Message) { + xxx_messageInfo_DenomPair.Merge(m, src) +} +func (m *DenomPair) XXX_Size() int { + return m.Size() +} +func (m *DenomPair) XXX_DiscardUnknown() { + xxx_messageInfo_DenomPair.DiscardUnknown(m) +} + +var xxx_messageInfo_DenomPair proto.InternalMessageInfo + func init() { proto.RegisterEnum("opinit.opchild.v1.ResponseResultType", ResponseResultType_name, ResponseResultType_value) proto.RegisterType((*Params)(nil), "opinit.opchild.v1.Params") @@ -294,77 +332,81 @@ func init() { proto.RegisterType((*ValidatorUpdates)(nil), "opinit.opchild.v1.ValidatorUpdates") proto.RegisterType((*BridgeInfo)(nil), "opinit.opchild.v1.BridgeInfo") proto.RegisterType((*CoinsWrapper)(nil), "opinit.opchild.v1.CoinsWrapper") + proto.RegisterType((*DenomPair)(nil), "opinit.opchild.v1.DenomPair") } func init() { proto.RegisterFile("opinit/opchild/v1/types.proto", fileDescriptor_2cc6df244b706d68) } var fileDescriptor_2cc6df244b706d68 = []byte{ - // 1040 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xbf, 0x6f, 0xdb, 0x46, - 0x14, 0x16, 0x63, 0xc5, 0x8e, 0x4e, 0xb2, 0x2d, 0x1f, 0x1c, 0x54, 0x96, 0x1d, 0x92, 0xe0, 0x52, - 0xc1, 0xad, 0x48, 0xc8, 0xa9, 0x81, 0xd6, 0x53, 0x23, 0x45, 0x29, 0x84, 0x04, 0xb6, 0x40, 0xd9, - 0x0d, 0x9a, 0x85, 0x38, 0x91, 0x27, 0xe9, 0x60, 0x92, 0x47, 0xf0, 0x28, 0xc5, 0xfa, 0x0f, 0x02, - 0x2f, 0xed, 0xd8, 0xc5, 0x80, 0x81, 0x2e, 0x69, 0xa6, 0x0c, 0xdd, 0xfa, 0x0f, 0x18, 0x05, 0x0a, - 0x04, 0x9d, 0x3a, 0x29, 0xad, 0x3d, 0xa4, 0xb3, 0x86, 0xce, 0xc5, 0x1d, 0xa9, 0x1f, 0x71, 0x5d, - 0xa4, 0x8b, 0x7d, 0xf7, 0xbe, 0xef, 0x7d, 0xf7, 0xf4, 0xdd, 0x7b, 0x47, 0x70, 0x8f, 0x06, 0xc4, - 0x27, 0x91, 0x41, 0x03, 0xbb, 0x47, 0x5c, 0xc7, 0x18, 0x54, 0x8c, 0x68, 0x18, 0x60, 0xa6, 0x07, - 0x21, 0x8d, 0x28, 0x5c, 0x8b, 0x61, 0x3d, 0x81, 0xf5, 0x41, 0xa5, 0xb8, 0x86, 0x3c, 0xe2, 0x53, - 0x43, 0xfc, 0x8d, 0x59, 0x45, 0xd9, 0xa6, 0xcc, 0xa3, 0xcc, 0x68, 0x23, 0x86, 0x8d, 0x41, 0xa5, - 0x8d, 0x23, 0x54, 0x31, 0x6c, 0x4a, 0xfc, 0x04, 0xdf, 0x88, 0x71, 0x4b, 0xec, 0x8c, 0x78, 0x93, - 0x40, 0xeb, 0x5d, 0xda, 0xa5, 0x71, 0x9c, 0xaf, 0x26, 0x09, 0x5d, 0x4a, 0xbb, 0x2e, 0x36, 0xc4, - 0xae, 0xdd, 0xef, 0x18, 0xc8, 0x1f, 0x26, 0xd0, 0xd6, 0xb4, 0xe0, 0x1e, 0x65, 0xd1, 0xb5, 0x7a, - 0x8b, 0x9b, 0x11, 0xf6, 0x1d, 0x1c, 0x7a, 0xc4, 0x8f, 0x0c, 0xd4, 0xb6, 0xc9, 0x3c, 0xa8, 0xfd, - 0x9a, 0x06, 0x8b, 0x4d, 0x14, 0x22, 0x8f, 0xc1, 0x2f, 0xc1, 0x8a, 0x87, 0x4e, 0xac, 0x01, 0x72, - 0x89, 0x83, 0x22, 0x1a, 0xb2, 0x82, 0xa4, 0x4a, 0xa5, 0xe5, 0xea, 0xc6, 0x78, 0xa4, 0xdc, 0x1d, - 0x22, 0xcf, 0xdd, 0xd3, 0xde, 0xc7, 0x35, 0x73, 0xd9, 0x43, 0x27, 0x5f, 0x4f, 0xf7, 0xf0, 0x09, - 0x80, 0x3d, 0xc2, 0x22, 0x1a, 0x12, 0x1b, 0xb9, 0x16, 0xf6, 0xa3, 0x90, 0x60, 0x56, 0xb8, 0x25, - 0x54, 0xee, 0x8d, 0x47, 0xca, 0x46, 0xac, 0xf2, 0x6f, 0x8e, 0x66, 0xae, 0xcd, 0x82, 0xf5, 0x38, - 0x06, 0xbf, 0x95, 0xc0, 0x8a, 0x47, 0x7c, 0xab, 0x8b, 0xb8, 0x4b, 0xc4, 0xc6, 0xac, 0xb0, 0xa0, - 0x2e, 0x94, 0xb2, 0x3b, 0x5b, 0x7a, 0x62, 0x17, 0xf7, 0x56, 0x4f, 0xbc, 0xd5, 0x1f, 0x62, 0xbb, - 0x46, 0x89, 0x5f, 0x7d, 0x7c, 0x31, 0x52, 0x52, 0xe3, 0x91, 0xb2, 0x9e, 0x94, 0x3c, 0xaf, 0xa0, - 0xbd, 0x7a, 0xab, 0x7c, 0xd2, 0x25, 0x51, 0xaf, 0xdf, 0xd6, 0x6d, 0xea, 0x25, 0xb6, 0x27, 0xff, - 0xca, 0xcc, 0x39, 0x4e, 0xbc, 0x49, 0xb4, 0x98, 0x99, 0xf3, 0x88, 0xff, 0x15, 0x62, 0x4d, 0x71, - 0x3c, 0xb4, 0x41, 0xbe, 0x1d, 0x12, 0xa7, 0x8b, 0x2d, 0x7c, 0x82, 0xed, 0xbe, 0xf0, 0x28, 0xad, - 0x2e, 0x94, 0x32, 0xd5, 0xcf, 0xc7, 0x23, 0xe5, 0xa3, 0xf8, 0xc0, 0xeb, 0x0c, 0xed, 0xb7, 0x9f, - 0xca, 0xeb, 0x49, 0xc1, 0x0f, 0x1c, 0x27, 0xc4, 0x8c, 0xb5, 0xa2, 0x90, 0xf8, 0xdd, 0x97, 0xef, - 0x5e, 0x6f, 0x4b, 0xe6, 0x6a, 0xcc, 0xaf, 0x4f, 0xe8, 0xb0, 0x06, 0x6e, 0x23, 0xc7, 0x23, 0x7e, - 0xe1, 0xb6, 0x2a, 0x95, 0x32, 0xd5, 0xf2, 0x78, 0xa4, 0xe4, 0x62, 0x65, 0x11, 0xfe, 0x80, 0x5c, - 0x9c, 0x0b, 0x9f, 0x81, 0xe5, 0x0e, 0xc6, 0xd6, 0xf3, 0x1e, 0x89, 0xb0, 0x4b, 0x58, 0x54, 0x58, - 0x14, 0x65, 0xee, 0xce, 0x7c, 0x79, 0x0f, 0xfe, 0x80, 0x68, 0xae, 0x83, 0xf1, 0xd3, 0x09, 0x77, - 0x6f, 0xf3, 0xfb, 0x73, 0x25, 0xf5, 0xd7, 0xb9, 0x22, 0x9d, 0xbe, 0x7b, 0xbd, 0xbd, 0x32, 0x19, - 0x92, 0xb8, 0x89, 0xb4, 0x9f, 0x6f, 0x81, 0xcc, 0xb4, 0x23, 0xe0, 0xa7, 0x60, 0xc9, 0xa3, 0x3e, - 0x39, 0xc6, 0xa1, 0xe8, 0xa5, 0x4c, 0x15, 0x8e, 0x47, 0xca, 0x4a, 0x72, 0x31, 0x31, 0xa0, 0x99, - 0x13, 0x0a, 0x7c, 0x04, 0xf2, 0x34, 0xc0, 0x21, 0xcf, 0xb4, 0x50, 0x5c, 0x85, 0x68, 0x9e, 0x4c, - 0x75, 0x73, 0x66, 0xef, 0x75, 0x86, 0x66, 0xae, 0x4e, 0x42, 0x49, 0xe5, 0x30, 0x02, 0x79, 0x9b, - 0xfa, 0x0c, 0xfb, 0xac, 0xcf, 0xac, 0xa0, 0xdf, 0x3e, 0xc6, 0xc3, 0xc2, 0x82, 0x2a, 0x95, 0xb2, - 0x3b, 0xeb, 0x7a, 0x3c, 0x44, 0xfa, 0x64, 0x88, 0xf4, 0x07, 0xfe, 0xb0, 0x7a, 0x7f, 0xa6, 0x7e, - 0x3d, 0x4f, 0xfb, 0x65, 0x66, 0x8c, 0x1d, 0x0e, 0x83, 0x88, 0xea, 0xcd, 0x7e, 0xfb, 0x31, 0x1e, - 0x9a, 0xab, 0x53, 0x6a, 0x53, 0x30, 0xe1, 0x67, 0x00, 0xf0, 0x90, 0x15, 0xd0, 0xe7, 0x38, 0x2c, - 0xa4, 0x55, 0xa9, 0xb4, 0x50, 0xbd, 0x3b, 0x1e, 0x29, 0x6b, 0x33, 0xe5, 0x18, 0xd3, 0xcc, 0x0c, - 0xdf, 0x34, 0xf9, 0x7a, 0x2f, 0xf7, 0xe2, 0x5c, 0x49, 0x25, 0x86, 0xa6, 0x34, 0x0b, 0xe4, 0xa7, - 0xe6, 0x1d, 0x05, 0x0e, 0x8a, 0x30, 0x83, 0x75, 0xb0, 0xd4, 0x8f, 0x97, 0x05, 0x49, 0xb4, 0xbf, - 0xaa, 0xcf, 0x06, 0x5a, 0xe7, 0x03, 0xad, 0x5f, 0xcb, 0xa9, 0x66, 0xf8, 0x08, 0xc4, 0x57, 0x37, - 0xc9, 0xdd, 0x4b, 0x8b, 0x03, 0xfe, 0x96, 0x00, 0xa8, 0x8a, 0x86, 0x6b, 0xf8, 0x1d, 0x0a, 0x37, - 0x41, 0x26, 0x69, 0x57, 0xe2, 0x88, 0x1b, 0x4a, 0x9b, 0x77, 0xe2, 0x40, 0xc3, 0x81, 0x5f, 0x80, - 0x6c, 0x02, 0x72, 0xab, 0x93, 0x9b, 0x28, 0xfc, 0x57, 0xa7, 0x98, 0x20, 0x26, 0xf3, 0x20, 0x94, - 0x41, 0xd6, 0xad, 0x58, 0x76, 0x0f, 0x11, 0x9f, 0x2b, 0x73, 0xf3, 0x33, 0x66, 0xc6, 0xad, 0xd4, - 0x78, 0xa4, 0xe1, 0x40, 0x15, 0xe4, 0x38, 0xee, 0x12, 0xec, 0x47, 0x9c, 0x90, 0x16, 0x04, 0xe0, - 0x56, 0x6a, 0x22, 0xd4, 0x70, 0xe0, 0x3e, 0x58, 0x4e, 0x0e, 0xb7, 0xa9, 0xdf, 0x21, 0x5d, 0x31, - 0x0d, 0xd9, 0x1d, 0x59, 0x9f, 0x3e, 0xbe, 0xfc, 0xa9, 0xd3, 0x07, 0x15, 0x3d, 0xfe, 0x39, 0x35, - 0xc1, 0x9a, 0xff, 0xe5, 0xb9, 0xf6, 0x1c, 0xa0, 0x0d, 0x40, 0x4e, 0x4c, 0xf4, 0xd3, 0x10, 0x05, - 0x01, 0x0e, 0x61, 0x07, 0xdc, 0xe6, 0x8f, 0xf1, 0xc4, 0xd3, 0x8d, 0x1b, 0x9f, 0x14, 0xf1, 0x9e, - 0xec, 0x72, 0xc9, 0x57, 0x6f, 0x95, 0xd2, 0xff, 0x78, 0x37, 0xc4, 0x11, 0xc9, 0x20, 0x0a, 0xf9, - 0xed, 0x1f, 0x25, 0x00, 0x4d, 0xcc, 0x02, 0xde, 0x2c, 0x26, 0x66, 0x7d, 0x37, 0x3a, 0x1c, 0x06, - 0x18, 0xee, 0x02, 0xd5, 0xac, 0xb7, 0x9a, 0x07, 0xfb, 0xad, 0xba, 0x65, 0xd6, 0x5b, 0x47, 0x4f, - 0x0e, 0xad, 0xc3, 0x6f, 0x9a, 0x75, 0xeb, 0x68, 0xbf, 0xd5, 0xac, 0xd7, 0x1a, 0x8f, 0x1a, 0xf5, - 0x87, 0xf9, 0x54, 0x71, 0xf5, 0xf4, 0x4c, 0xcd, 0xce, 0x85, 0xe0, 0xc7, 0x60, 0xe3, 0xc6, 0xb4, - 0xfd, 0x83, 0x83, 0x66, 0x5e, 0x2a, 0xde, 0x39, 0x3d, 0x53, 0xd3, 0x7c, 0x0d, 0xcb, 0x60, 0xeb, - 0x46, 0x62, 0xeb, 0xa8, 0x56, 0xab, 0xb7, 0x5a, 0xf9, 0x5b, 0xc5, 0xec, 0xe9, 0x99, 0xba, 0x94, - 0x6c, 0x8b, 0xe9, 0x17, 0x3f, 0xc8, 0xa9, 0xea, 0xc1, 0xc5, 0x9f, 0x72, 0xea, 0xe5, 0xa5, 0x2c, - 0x5d, 0x5c, 0xca, 0xd2, 0x9b, 0x4b, 0x59, 0xfa, 0xe3, 0x52, 0x96, 0xbe, 0xbb, 0x92, 0x53, 0x6f, - 0xae, 0xe4, 0xd4, 0xef, 0x57, 0x72, 0xea, 0x59, 0x79, 0xce, 0x03, 0x7e, 0x0d, 0x04, 0x95, 0x5d, - 0xd4, 0x66, 0xc6, 0x41, 0x53, 0x7c, 0x7f, 0x4e, 0xa6, 0x9f, 0x4c, 0x61, 0x47, 0x7b, 0x51, 0x8c, - 0xd9, 0xfd, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x2d, 0x89, 0xf2, 0x29, 0x51, 0x07, 0x00, 0x00, + // 1075 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xbf, 0x6f, 0xdb, 0xc6, + 0x17, 0x17, 0x6d, 0x39, 0x89, 0x4e, 0xb2, 0x2d, 0x1f, 0x1c, 0x7c, 0x65, 0x39, 0x21, 0x09, 0x2e, + 0x5f, 0xc1, 0xad, 0x48, 0xc8, 0xa9, 0x81, 0xd6, 0x53, 0x22, 0x59, 0x29, 0x84, 0x04, 0xb6, 0x40, + 0xd9, 0x0d, 0x9a, 0x85, 0xa0, 0xc8, 0x93, 0x74, 0x30, 0xc9, 0x23, 0x78, 0x94, 0x62, 0xfd, 0x07, + 0x81, 0x97, 0x76, 0xec, 0x62, 0xc0, 0x40, 0x97, 0x34, 0x53, 0x86, 0x6e, 0xfd, 0x07, 0x8c, 0x02, + 0x05, 0x82, 0x4e, 0x9d, 0x94, 0xd6, 0x1e, 0xd2, 0x59, 0x43, 0xe7, 0xe2, 0xee, 0xa8, 0x1f, 0x71, + 0x5d, 0xa4, 0x8b, 0x7d, 0xef, 0x7d, 0x3e, 0xef, 0xdd, 0xd3, 0xe7, 0xde, 0x7b, 0x04, 0xf7, 0x49, + 0x88, 0x03, 0x1c, 0x1b, 0x24, 0x74, 0x7a, 0xd8, 0x73, 0x8d, 0x41, 0xc5, 0x88, 0x87, 0x21, 0xa2, + 0x7a, 0x18, 0x91, 0x98, 0xc0, 0x35, 0x01, 0xeb, 0x09, 0xac, 0x0f, 0x2a, 0xc5, 0x35, 0xdb, 0xc7, + 0x01, 0x31, 0xf8, 0x5f, 0xc1, 0x2a, 0xca, 0x0e, 0xa1, 0x3e, 0xa1, 0x46, 0xdb, 0xa6, 0xc8, 0x18, + 0x54, 0xda, 0x28, 0xb6, 0x2b, 0x86, 0x43, 0x70, 0x90, 0xe0, 0x1b, 0x02, 0xb7, 0xb8, 0x65, 0x08, + 0x23, 0x81, 0xd6, 0xbb, 0xa4, 0x4b, 0x84, 0x9f, 0x9d, 0x26, 0x01, 0x5d, 0x42, 0xba, 0x1e, 0x32, + 0xb8, 0xd5, 0xee, 0x77, 0x0c, 0x3b, 0x18, 0x26, 0xd0, 0xbd, 0x69, 0xc1, 0x3d, 0x42, 0xe3, 0x6b, + 0xf5, 0x16, 0x37, 0x63, 0x14, 0xb8, 0x28, 0xf2, 0x71, 0x10, 0x1b, 0x76, 0xdb, 0xc1, 0xf3, 0xa0, + 0xf6, 0x4b, 0x1a, 0xdc, 0x6a, 0xda, 0x91, 0xed, 0x53, 0xf8, 0x10, 0xac, 0xf8, 0xf6, 0x89, 0x35, + 0xb0, 0x3d, 0xec, 0xda, 0x31, 0x89, 0x68, 0x41, 0x52, 0xa5, 0xd2, 0x72, 0x75, 0x63, 0x3c, 0x52, + 0xee, 0x0e, 0x6d, 0xdf, 0xdb, 0xd5, 0x3e, 0xc4, 0x35, 0x73, 0xd9, 0xb7, 0x4f, 0xbe, 0x9a, 0xda, + 0xf0, 0x29, 0x80, 0x3d, 0x4c, 0x63, 0x12, 0x61, 0xc7, 0xf6, 0x2c, 0x14, 0xc4, 0x11, 0x46, 0xb4, + 0xb0, 0xc0, 0xb3, 0xdc, 0x1f, 0x8f, 0x94, 0x0d, 0x91, 0xe5, 0x9f, 0x1c, 0xcd, 0x5c, 0x9b, 0x39, + 0xeb, 0xc2, 0x07, 0xbf, 0x91, 0xc0, 0x8a, 0x8f, 0x03, 0xab, 0x6b, 0x33, 0x95, 0xb0, 0x83, 0x68, + 0x61, 0x51, 0x5d, 0x2c, 0x65, 0xb7, 0xef, 0xe9, 0x89, 0x5c, 0x4c, 0x5b, 0x3d, 0xd1, 0x56, 0xdf, + 0x43, 0x4e, 0x8d, 0xe0, 0xa0, 0xfa, 0xe4, 0x62, 0xa4, 0xa4, 0xc6, 0x23, 0x65, 0x3d, 0x29, 0x79, + 0x3e, 0x83, 0xf6, 0xfa, 0x9d, 0xf2, 0x49, 0x17, 0xc7, 0xbd, 0x7e, 0x5b, 0x77, 0x88, 0x9f, 0xc8, + 0x9e, 0xfc, 0x2b, 0x53, 0xf7, 0x38, 0xd1, 0x26, 0xc9, 0x45, 0xcd, 0x9c, 0x8f, 0x83, 0x2f, 0x6d, + 0xda, 0xe4, 0xd7, 0x43, 0x07, 0xe4, 0xdb, 0x11, 0x76, 0xbb, 0xc8, 0x42, 0x27, 0xc8, 0xe9, 0x73, + 0x8d, 0xd2, 0xea, 0x62, 0x29, 0x53, 0xfd, 0x7c, 0x3c, 0x52, 0xfe, 0x27, 0x2e, 0xbc, 0xce, 0xd0, + 0x7e, 0xfd, 0xb1, 0xbc, 0x9e, 0x14, 0xfc, 0xc8, 0x75, 0x23, 0x44, 0x69, 0x2b, 0x8e, 0x70, 0xd0, + 0x7d, 0xf5, 0xfe, 0xcd, 0x96, 0x64, 0xae, 0x0a, 0x7e, 0x7d, 0x42, 0x87, 0x35, 0xb0, 0x64, 0xbb, + 0x3e, 0x0e, 0x0a, 0x4b, 0xaa, 0x54, 0xca, 0x54, 0xcb, 0xe3, 0x91, 0x92, 0x13, 0x99, 0xb9, 0xfb, + 0x23, 0xe9, 0x44, 0x2c, 0x7c, 0x0e, 0x96, 0x3b, 0x08, 0x59, 0x2f, 0x7a, 0x38, 0x46, 0x1e, 0xa6, + 0x71, 0xe1, 0x16, 0x2f, 0x73, 0x67, 0xa6, 0xcb, 0x07, 0xf0, 0x47, 0x92, 0xe6, 0x3a, 0x08, 0x3d, + 0x9b, 0x70, 0x77, 0x37, 0xbf, 0x3b, 0x57, 0x52, 0x7f, 0x9e, 0x2b, 0xd2, 0xe9, 0xfb, 0x37, 0x5b, + 0x2b, 0x93, 0x21, 0x11, 0x4d, 0xa4, 0xfd, 0xb4, 0x00, 0x32, 0xd3, 0x8e, 0x80, 0x9f, 0x82, 0xdb, + 0x3e, 0x09, 0xf0, 0x31, 0x8a, 0x78, 0x2f, 0x65, 0xaa, 0x70, 0x3c, 0x52, 0x56, 0x92, 0x87, 0x11, + 0x80, 0x66, 0x4e, 0x28, 0xf0, 0x31, 0xc8, 0x93, 0x10, 0x45, 0x2c, 0xd2, 0xb2, 0x45, 0x15, 0xbc, + 0x79, 0x32, 0xd5, 0xcd, 0x99, 0xbc, 0xd7, 0x19, 0x9a, 0xb9, 0x3a, 0x71, 0x25, 0x95, 0xc3, 0x18, + 0xe4, 0x1d, 0x12, 0x50, 0x14, 0xd0, 0x3e, 0xb5, 0xc2, 0x7e, 0xfb, 0x18, 0x0d, 0x0b, 0x8b, 0xaa, + 0x54, 0xca, 0x6e, 0xaf, 0xeb, 0x62, 0x88, 0xf4, 0xc9, 0x10, 0xe9, 0x8f, 0x82, 0x61, 0xf5, 0xc1, + 0x2c, 0xfb, 0xf5, 0x38, 0xed, 0xe7, 0x99, 0x30, 0x4e, 0x34, 0x0c, 0x63, 0xa2, 0x37, 0xfb, 0xed, + 0x27, 0x68, 0x68, 0xae, 0x4e, 0xa9, 0x4d, 0xce, 0x84, 0x9f, 0x01, 0xc0, 0x5c, 0x56, 0x48, 0x5e, + 0xa0, 0xa8, 0x90, 0x56, 0xa5, 0xd2, 0x62, 0xf5, 0xee, 0x78, 0xa4, 0xac, 0xcd, 0x32, 0x0b, 0x4c, + 0x33, 0x33, 0xcc, 0x68, 0xb2, 0xf3, 0x6e, 0xee, 0xe5, 0xb9, 0x92, 0x4a, 0x04, 0x4d, 0x69, 0x16, + 0xc8, 0x4f, 0xc5, 0x3b, 0x0a, 0x5d, 0x3b, 0x46, 0x14, 0xd6, 0xc1, 0xed, 0xbe, 0x38, 0x16, 0x24, + 0xde, 0xfe, 0xaa, 0x3e, 0x1b, 0x68, 0x9d, 0x0d, 0xb4, 0x7e, 0x2d, 0xa6, 0x9a, 0x61, 0x23, 0x20, + 0x9e, 0x6e, 0x12, 0xbb, 0x9b, 0xe6, 0x17, 0xfc, 0x25, 0x01, 0x50, 0xe5, 0x0d, 0xd7, 0x08, 0x3a, + 0x04, 0x6e, 0x82, 0x4c, 0xd2, 0xae, 0xd8, 0xe5, 0x2f, 0x94, 0x36, 0xef, 0x08, 0x47, 0xc3, 0x85, + 0x5f, 0x80, 0x6c, 0x02, 0x32, 0xa9, 0x93, 0x97, 0x28, 0xfc, 0x5b, 0xa7, 0x98, 0x40, 0x90, 0x99, + 0x13, 0xca, 0x20, 0xeb, 0x55, 0x2c, 0xa7, 0x67, 0xe3, 0x80, 0x65, 0x66, 0xe2, 0x67, 0xcc, 0x8c, + 0x57, 0xa9, 0x31, 0x4f, 0xc3, 0x85, 0x2a, 0xc8, 0x31, 0xdc, 0xc3, 0x28, 0x88, 0x19, 0x21, 0xcd, + 0x09, 0xc0, 0xab, 0xd4, 0xb8, 0xab, 0xe1, 0xc2, 0x7d, 0xb0, 0x9c, 0x5c, 0xee, 0x90, 0xa0, 0x83, + 0xbb, 0x7c, 0x1a, 0xb2, 0xdb, 0xb2, 0x3e, 0x5d, 0xbe, 0x6c, 0xd5, 0xe9, 0x83, 0x8a, 0x2e, 0x7e, + 0x4e, 0x8d, 0xb3, 0xe6, 0x7f, 0x79, 0xae, 0x3d, 0x07, 0x68, 0x03, 0x90, 0xe3, 0x13, 0xfd, 0x2c, + 0xb2, 0xc3, 0x10, 0x45, 0xb0, 0x03, 0x96, 0xd8, 0x32, 0x9e, 0x68, 0xba, 0x71, 0xe3, 0x4a, 0xe1, + 0xfb, 0x64, 0x87, 0xa5, 0x7c, 0xfd, 0x4e, 0x29, 0xfd, 0x87, 0xbd, 0xc1, 0xaf, 0x48, 0x06, 0x91, + 0xa7, 0xd7, 0x1e, 0x82, 0xcc, 0x1e, 0x0a, 0x88, 0xdf, 0xb4, 0x71, 0x04, 0xd7, 0xc1, 0x92, 0xcb, + 0x0c, 0x31, 0x0c, 0xa6, 0x30, 0xe0, 0x7d, 0x00, 0xd8, 0xad, 0x96, 0x80, 0x16, 0x84, 0x56, 0xcc, + 0xc3, 0x03, 0xb7, 0x7e, 0x90, 0x00, 0x34, 0x11, 0x0d, 0x59, 0xbb, 0x99, 0x88, 0xf6, 0xbd, 0xf8, + 0x70, 0x18, 0x22, 0xb8, 0x03, 0x54, 0xb3, 0xde, 0x6a, 0x1e, 0xec, 0xb7, 0xea, 0x96, 0x59, 0x6f, + 0x1d, 0x3d, 0x3d, 0xb4, 0x0e, 0xbf, 0x6e, 0xd6, 0xad, 0xa3, 0xfd, 0x56, 0xb3, 0x5e, 0x6b, 0x3c, + 0x6e, 0xd4, 0xf7, 0xf2, 0xa9, 0xe2, 0xea, 0xe9, 0x99, 0x9a, 0x9d, 0x73, 0xc1, 0xff, 0x83, 0x8d, + 0x1b, 0xc3, 0xf6, 0x0f, 0x0e, 0x9a, 0x79, 0xa9, 0x78, 0xe7, 0xf4, 0x4c, 0x4d, 0xb3, 0x33, 0x2c, + 0x83, 0x7b, 0x37, 0x12, 0x5b, 0x47, 0xb5, 0x5a, 0xbd, 0xd5, 0xca, 0x2f, 0x14, 0xb3, 0xa7, 0x67, + 0xea, 0xed, 0xc4, 0x2c, 0xa6, 0x5f, 0x7e, 0x2f, 0xa7, 0xaa, 0x07, 0x17, 0x7f, 0xc8, 0xa9, 0x57, + 0x97, 0xb2, 0x74, 0x71, 0x29, 0x4b, 0x6f, 0x2f, 0x65, 0xe9, 0xf7, 0x4b, 0x59, 0xfa, 0xf6, 0x4a, + 0x4e, 0xbd, 0xbd, 0x92, 0x53, 0xbf, 0x5d, 0xc9, 0xa9, 0xe7, 0xe5, 0x39, 0x15, 0xd9, 0x43, 0x62, + 0xbb, 0xec, 0xd9, 0x6d, 0x6a, 0x1c, 0x34, 0xf9, 0x17, 0xec, 0x64, 0xfa, 0xd1, 0xe5, 0x82, 0xb6, + 0x6f, 0xf1, 0x41, 0x7d, 0xf0, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x78, 0x6c, 0x3d, 0xf1, 0x93, + 0x07, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -486,6 +528,33 @@ func (this *CoinsWrapper) Equal(that interface{}) bool { } return true } +func (this *DenomPair) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*DenomPair) + if !ok { + that2, ok := that.(DenomPair) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Denom != that1.Denom { + return false + } + if this.BaseDenom != that1.BaseDenom { + return false + } + return true +} func (m *Params) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -745,6 +814,43 @@ func (m *CoinsWrapper) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *DenomPair) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DenomPair) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DenomPair) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.BaseDenom) > 0 { + i -= len(m.BaseDenom) + copy(dAtA[i:], m.BaseDenom) + i = encodeVarintTypes(dAtA, i, uint64(len(m.BaseDenom))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintTypes(dAtA []byte, offset int, v uint64) int { offset -= sovTypes(v) base := offset @@ -873,6 +979,23 @@ func (m *CoinsWrapper) Size() (n int) { return n } +func (m *DenomPair) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.BaseDenom) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + func sovTypes(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -1632,6 +1755,120 @@ func (m *CoinsWrapper) Unmarshal(dAtA []byte) error { } return nil } +func (m *DenomPair) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DenomPair: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DenomPair: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseDenom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BaseDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTypes(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 From 944722e6c2e00b9f8b129b540e853a1c6bf16e7e Mon Sep 17 00:00:00 2001 From: beer-1 Date: Wed, 4 Sep 2024 14:07:56 +0900 Subject: [PATCH 16/16] allow MsgFinalizeTokenWithdrawal to be executed by anyone --- proto/opinit/ophost/v1/tx.proto | 17 +- x/ophost/client/cli/tx.go | 31 +-- x/ophost/client/cli/tx_test.go | 3 +- x/ophost/keeper/msg_server.go | 8 +- x/ophost/keeper/msg_server_test.go | 6 + x/ophost/types/output.go | 4 - x/ophost/types/tx.go | 22 +- x/ophost/types/tx.pb.go | 313 +++++++++++++++++------------ 8 files changed, 222 insertions(+), 182 deletions(-) diff --git a/proto/opinit/ophost/v1/tx.proto b/proto/opinit/ophost/v1/tx.proto index c2f10eae..c7528836 100644 --- a/proto/opinit/ophost/v1/tx.proto +++ b/proto/opinit/ophost/v1/tx.proto @@ -165,29 +165,30 @@ message MsgInitiateTokenDepositResponse { // MsgFinalizeTokenWithdrawal is a message finalizing funds withdrawal from L2. message MsgFinalizeTokenWithdrawal { - option (cosmos.msg.v1.signer) = "receiver"; + option (cosmos.msg.v1.signer) = "sender"; option (amino.name) = "ophost/MsgFinalizeTokenWithdrawal"; // address of the sender of the transaction + string sender = 1 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; uint64 output_index = 3 [(gogoproto.moretags) = "yaml:\"output_index\""]; repeated bytes withdrawal_proofs = 4 [(gogoproto.nullable) = true, (amino.dont_omitempty) = false]; // withdraw tx data - string sender = 5 [(gogoproto.moretags) = "yaml:\"sender\""]; - string receiver = 1 [(gogoproto.moretags) = "yaml:\"receiver\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; - uint64 sequence = 6 [(gogoproto.moretags) = "yaml:\"sequence\""]; - cosmos.base.v1beta1.Coin amount = 7 + string from = 5 [(gogoproto.moretags) = "yaml:\"from\""]; + string to = 6 [(gogoproto.moretags) = "yaml:\"to\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + uint64 sequence = 7 [(gogoproto.moretags) = "yaml:\"sequence\""]; + cosmos.base.v1beta1.Coin amount = 8 [(gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; // output root proofs // version of the output root - bytes version = 8 [(gogoproto.moretags) = "yaml:\"version\""]; - bytes storage_root = 9 [(gogoproto.moretags) = "yaml:\"storage_root\""]; - bytes last_block_hash = 10 [(gogoproto.moretags) = "yaml:\"last_block_hash\""]; + bytes version = 9 [(gogoproto.moretags) = "yaml:\"version\""]; + bytes storage_root = 10 [(gogoproto.moretags) = "yaml:\"storage_root\""]; + bytes last_block_hash = 11 [(gogoproto.moretags) = "yaml:\"last_block_hash\""]; } // MsgFinalizeTokenWithdrawalResponse returns a message handle result. diff --git a/x/ophost/client/cli/tx.go b/x/ophost/client/cli/tx.go index e58d6e83..8f3ff673 100644 --- a/x/ophost/client/cli/tx.go +++ b/x/ophost/client/cli/tx.go @@ -338,7 +338,8 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { "bridge_id": "1", "output_index": "1", "sequence": "1", - "sender" : "bech32-address", + "from" : "l2-bech32-address", + "to" : "l1-bech32-address", "amount": {"amount": "10000000", "denom": "uinit"}, "withdrawal_proofs": [ "base64-encoded proof1", "proof2", ... ], "version": "base64-encoded version", @@ -358,40 +359,24 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { if err != nil { return err } - var withdrawalInfo types.MsgFinalizeTokenWithdrawal - err = clientCtx.Codec.UnmarshalJSON(withdrawalBytes, &withdrawalInfo) + + var msg types.MsgFinalizeTokenWithdrawal + err = clientCtx.Codec.UnmarshalJSON(withdrawalBytes, &msg) if err != nil { return err } - // cannot validate sender address here because it is l2 address. - sender := withdrawalInfo.Sender - if len(sender) == 0 { - return fmt.Errorf("sender address is required") - } - - receiver, err := ac.BytesToString(clientCtx.GetFromAddress()) + sender, err := ac.BytesToString(clientCtx.GetFromAddress()) if err != nil { return err } - msg := types.NewMsgFinalizeTokenWithdrawal( - withdrawalInfo.BridgeId, - withdrawalInfo.OutputIndex, - withdrawalInfo.Sequence, - withdrawalInfo.WithdrawalProofs, - sender, - receiver, - withdrawalInfo.Amount, - withdrawalInfo.Version, - withdrawalInfo.StorageRoot, - withdrawalInfo.LastBlockHash, - ) + msg.Sender = sender if err = msg.Validate(ac); err != nil { return err } - return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), &msg) }, } diff --git a/x/ophost/client/cli/tx_test.go b/x/ophost/client/cli/tx_test.go index 92aad7a7..5b411727 100644 --- a/x/ophost/client/cli/tx_test.go +++ b/x/ophost/client/cli/tx_test.go @@ -521,7 +521,8 @@ func (s *CLITestSuite) TestNewFinalizeTokenWithdrawal() { "withdrawal_proofs": [ "q6T8JJm7AdbD4rgZ3BjanRHdE1x7aLZwp36pPrOOey4=" ], - "sender": "init1q6jhwnarkw2j5qqgx3qlu20k8nrdglft5ksr0g", + "from": "init1q6jhwnarkw2j5qqgx3qlu20k8nrdglft5ksr0g", + "to": "init1q6jhwnarkw2j5qqgx3qlu20k8nrdglft5ksr0g", "sequence": "5", "amount": {"amount": "100", "denom": "uinit"}, "version": "AQ==", diff --git a/x/ophost/keeper/msg_server.go b/x/ophost/keeper/msg_server.go index acf33a68..7d2c1303 100644 --- a/x/ophost/keeper/msg_server.go +++ b/x/ophost/keeper/msg_server.go @@ -280,7 +280,7 @@ func (ms MsgServer) FinalizeTokenWithdrawal(ctx context.Context, req *types.MsgF return nil, err } - receiver, err := ms.authKeeper.AddressCodec().StringToBytes(req.Receiver) + receiver, err := ms.authKeeper.AddressCodec().StringToBytes(req.To) if err != nil { return nil, err } @@ -310,7 +310,7 @@ func (ms MsgServer) FinalizeTokenWithdrawal(ctx context.Context, req *types.MsgF // verify storage root can be generated from // withdrawal proofs and withdrawal tx data. - withdrawalHash := types.GenerateWithdrawalHash(bridgeId, l2Sequence, req.Sender, req.Receiver, denom, amount.Uint64()) + withdrawalHash := types.GenerateWithdrawalHash(bridgeId, l2Sequence, req.From, req.To, denom, amount.Uint64()) if ok, err := ms.HasProvenWithdrawal(ctx, bridgeId, withdrawalHash); err != nil { return nil, err } else if ok { @@ -339,8 +339,8 @@ func (ms MsgServer) FinalizeTokenWithdrawal(ctx context.Context, req *types.MsgF sdk.NewAttribute(types.AttributeKeyBridgeId, strconv.FormatUint(bridgeId, 10)), sdk.NewAttribute(types.AttributeKeyOutputIndex, strconv.FormatUint(outputIndex, 10)), sdk.NewAttribute(types.AttributeKeyL2Sequence, strconv.FormatUint(l2Sequence, 10)), - sdk.NewAttribute(types.AttributeKeyFrom, req.Sender), - sdk.NewAttribute(types.AttributeKeyTo, req.Receiver), + sdk.NewAttribute(types.AttributeKeyFrom, req.From), + sdk.NewAttribute(types.AttributeKeyTo, req.To), sdk.NewAttribute(types.AttributeKeyL1Denom, denom), sdk.NewAttribute(types.AttributeKeyL2Denom, types.L2Denom(bridgeId, denom)), sdk.NewAttribute(types.AttributeKeyAmount, amount.String()), diff --git a/x/ophost/keeper/msg_server_test.go b/x/ophost/keeper/msg_server_test.go index 3e043268..af684bbd 100644 --- a/x/ophost/keeper/msg_server_test.go +++ b/x/ophost/keeper/msg_server_test.go @@ -221,6 +221,7 @@ func Test_FinalizeTokenWithdrawal(t *testing.T) { require.NoError(t, err) _, err = ms.FinalizeTokenWithdrawal(ctx, types.NewMsgFinalizeTokenWithdrawal( + addrsStr[3], // any address can execute this 1, 1, 1, proofs, sender, receiver, @@ -359,6 +360,11 @@ func Test_UpdateChallengers(t *testing.T) { _, err = ms.UpdateChallengers(ctx, msg) require.Error(t, err) + // case 6. remove all challengers + msg = types.NewMsgUpdateChallengers(addrsStr[4], 1, []string{}) + _, err = ms.UpdateChallengers(ctx, msg) + require.Error(t, err) + // invalid signer invalidAddr, err := input.AccountKeeper.AddressCodec().BytesToString(authtypes.NewModuleAddress(types.ModuleName)) require.NoError(t, err) diff --git a/x/ophost/types/output.go b/x/ophost/types/output.go index 2950d6da..d91b168d 100644 --- a/x/ophost/types/output.go +++ b/x/ophost/types/output.go @@ -28,7 +28,6 @@ func GenerateOutputRoot(version byte, storageRoot []byte, latestBlockHash []byte } func GenerateWithdrawalHash(bridgeId uint64, l2Sequence uint64, sender string, receiver string, denom string, amount uint64) [32]byte { - const spliter = "|" var withdrawalHash [32]byte seed := []byte{} seed = binary.BigEndian.AppendUint64(seed, bridgeId) @@ -37,15 +36,12 @@ func GenerateWithdrawalHash(bridgeId uint64, l2Sequence uint64, sender string, r // variable length senderDigest := sha3.Sum256([]byte(sender)) seed = append(seed, senderDigest[:]...) // put utf8 encoded address - seed = append(seed, []byte(spliter)...) // variable length receiverDigest := sha3.Sum256([]byte(receiver)) seed = append(seed, receiverDigest[:]...) // put utf8 encoded address - seed = append(seed, []byte(spliter)...) // variable length denomDigest := sha3.Sum256([]byte(denom)) seed = append(seed, denomDigest[:]...) - seed = append(seed, []byte(spliter)...) seed = binary.BigEndian.AppendUint64(seed, amount) // double hash the leaf node diff --git a/x/ophost/types/tx.go b/x/ophost/types/tx.go index 67194589..996c60fe 100644 --- a/x/ophost/types/tx.go +++ b/x/ophost/types/tx.go @@ -202,23 +202,25 @@ func (msg MsgInitiateTokenDeposit) Validate(ac address.Codec) error { // NewMsgFinalizeTokenWithdrawal creates a new MsgFinalizeTokenWithdrawal func NewMsgFinalizeTokenWithdrawal( + sender string, bridgeId uint64, outputIndex uint64, sequence uint64, withdrawalProofs [][]byte, - sender string, - receiver string, + from string, + to string, amount sdk.Coin, version []byte, storageRoot []byte, lastBlockHash []byte, ) *MsgFinalizeTokenWithdrawal { return &MsgFinalizeTokenWithdrawal{ + Sender: sender, BridgeId: bridgeId, OutputIndex: outputIndex, WithdrawalProofs: withdrawalProofs, - Sender: sender, - Receiver: receiver, + From: from, + To: to, Sequence: sequence, Amount: amount, Version: version, @@ -229,12 +231,16 @@ func NewMsgFinalizeTokenWithdrawal( // Validate performs basic MsgFinalizeTokenWithdrawal message validation. func (msg MsgFinalizeTokenWithdrawal) Validate(ac address.Codec) error { - // cannot validate sender address as it can be any format of address based on the chain. - if len(msg.Sender) == 0 { - return sdkerrors.ErrInvalidAddress.Wrap("sender address cannot be empty") + if _, err := ac.StringToBytes(msg.Sender); err != nil { + return err + } + + // cannot validate from address as it can be any format of address based on the chain. + if len(msg.From) == 0 { + return sdkerrors.ErrInvalidAddress.Wrap("from address cannot be empty") } - if _, err := ac.StringToBytes(msg.Receiver); err != nil { + if _, err := ac.StringToBytes(msg.To); err != nil { return err } diff --git a/x/ophost/types/tx.pb.go b/x/ophost/types/tx.pb.go index 91a85878..644f786f 100644 --- a/x/ophost/types/tx.pb.go +++ b/x/ophost/types/tx.pb.go @@ -427,17 +427,18 @@ var xxx_messageInfo_MsgInitiateTokenDepositResponse proto.InternalMessageInfo // MsgFinalizeTokenWithdrawal is a message finalizing funds withdrawal from L2. type MsgFinalizeTokenWithdrawal struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty" yaml:"bridge_id"` OutputIndex uint64 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty" yaml:"output_index"` WithdrawalProofs [][]byte `protobuf:"bytes,4,rep,name=withdrawal_proofs,json=withdrawalProofs,proto3" json:"withdrawal_proofs,omitempty"` - Sender string `protobuf:"bytes,5,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Receiver string `protobuf:"bytes,1,opt,name=receiver,proto3" json:"receiver,omitempty" yaml:"receiver"` - Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty" yaml:"sequence"` - Amount types.Coin `protobuf:"bytes,7,opt,name=amount,proto3" json:"amount" yaml:"amount"` + From string `protobuf:"bytes,5,opt,name=from,proto3" json:"from,omitempty" yaml:"from"` + To string `protobuf:"bytes,6,opt,name=to,proto3" json:"to,omitempty" yaml:"to"` + Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty" yaml:"sequence"` + Amount types.Coin `protobuf:"bytes,8,opt,name=amount,proto3" json:"amount" yaml:"amount"` // version of the output root - Version []byte `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty" yaml:"version"` - StorageRoot []byte `protobuf:"bytes,9,opt,name=storage_root,json=storageRoot,proto3" json:"storage_root,omitempty" yaml:"storage_root"` - LastBlockHash []byte `protobuf:"bytes,10,opt,name=last_block_hash,json=lastBlockHash,proto3" json:"last_block_hash,omitempty" yaml:"last_block_hash"` + Version []byte `protobuf:"bytes,9,opt,name=version,proto3" json:"version,omitempty" yaml:"version"` + StorageRoot []byte `protobuf:"bytes,10,opt,name=storage_root,json=storageRoot,proto3" json:"storage_root,omitempty" yaml:"storage_root"` + LastBlockHash []byte `protobuf:"bytes,11,opt,name=last_block_hash,json=lastBlockHash,proto3" json:"last_block_hash,omitempty" yaml:"last_block_hash"` } func (m *MsgFinalizeTokenWithdrawal) Reset() { *m = MsgFinalizeTokenWithdrawal{} } @@ -1035,110 +1036,111 @@ func init() { func init() { proto.RegisterFile("opinit/ophost/v1/tx.proto", fileDescriptor_d16af6eaf4088d05) } var fileDescriptor_d16af6eaf4088d05 = []byte{ - // 1639 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0x1b, 0x45, - 0x14, 0xb7, 0x9d, 0x8f, 0xda, 0xe3, 0x7c, 0x6e, 0xd3, 0xc4, 0xd9, 0xb6, 0xde, 0x64, 0xa8, 0x4a, - 0x92, 0xa6, 0xb6, 0x92, 0xa2, 0x22, 0x59, 0x42, 0xa2, 0x9b, 0x42, 0x49, 0x25, 0xd3, 0x68, 0x01, - 0x21, 0xa0, 0x92, 0xb5, 0xb6, 0x27, 0xeb, 0x55, 0xed, 0x1d, 0xb3, 0x33, 0x4e, 0x1a, 0x24, 0x24, - 0xc4, 0x09, 0x38, 0x21, 0x71, 0xe3, 0x54, 0x71, 0xea, 0xb1, 0x07, 0xfe, 0x88, 0x5c, 0x90, 0x2a, - 0xc4, 0x81, 0x93, 0x05, 0xcd, 0xa1, 0x1c, 0x91, 0x39, 0x72, 0x41, 0x33, 0xb3, 0x3b, 0xfb, 0x61, - 0x3b, 0x0d, 0x55, 0xdb, 0x5c, 0xa2, 0xcc, 0x7b, 0xbf, 0x37, 0xef, 0xbd, 0xdf, 0x7b, 0x7e, 0x33, - 0xb3, 0x60, 0x11, 0xb7, 0x6d, 0xc7, 0xa6, 0x45, 0xdc, 0x6e, 0x60, 0x42, 0x8b, 0x7b, 0x1b, 0x45, - 0x7a, 0xbf, 0xd0, 0x76, 0x31, 0xc5, 0xca, 0x8c, 0x50, 0x15, 0x84, 0xaa, 0xb0, 0xb7, 0xa1, 0xce, - 0x9a, 0x2d, 0xdb, 0xc1, 0x45, 0xfe, 0x57, 0x80, 0xd4, 0x7c, 0x0d, 0x93, 0x16, 0x26, 0xc5, 0xaa, - 0x49, 0x50, 0x71, 0x6f, 0xa3, 0x8a, 0xa8, 0xb9, 0x51, 0xac, 0x61, 0xdb, 0xf1, 0xf4, 0x0b, 0x9e, - 0xbe, 0x45, 0x2c, 0xb6, 0x79, 0x8b, 0x58, 0x9e, 0x62, 0x51, 0x28, 0x2a, 0x7c, 0x55, 0x14, 0x0b, - 0x4f, 0x35, 0x67, 0x61, 0x0b, 0x0b, 0x39, 0xfb, 0xcf, 0x93, 0x5e, 0xe8, 0x8f, 0xf4, 0xa0, 0x8d, - 0x3c, 0x1b, 0xd8, 0x4b, 0x82, 0xa9, 0x32, 0xb1, 0x0c, 0x54, 0xc3, 0x6e, 0x5d, 0x37, 0x69, 0xad, - 0xa1, 0xdc, 0x06, 0x19, 0xd2, 0xa9, 0xb6, 0x6c, 0x4a, 0x91, 0x9b, 0x4b, 0x2e, 0x25, 0x57, 0x32, - 0xfa, 0x7a, 0xaf, 0xab, 0xcd, 0x1c, 0x98, 0xad, 0x66, 0x09, 0x4a, 0x15, 0xfc, 0xf5, 0xe7, 0xab, - 0x73, 0x9e, 0xff, 0x1b, 0xf5, 0xba, 0x8b, 0x08, 0xf9, 0x80, 0xba, 0xb6, 0x63, 0x19, 0x81, 0xb9, - 0xb2, 0x01, 0x32, 0x55, 0xd7, 0xae, 0x5b, 0xa8, 0x62, 0xd7, 0x73, 0xa9, 0xa5, 0xe4, 0xca, 0xa8, - 0x3e, 0x17, 0xec, 0x25, 0x55, 0xd0, 0x48, 0x8b, 0xff, 0xb7, 0xeb, 0xca, 0x9b, 0x20, 0x5b, 0x65, - 0x71, 0x54, 0xaa, 0x07, 0x14, 0x91, 0xdc, 0xc8, 0x52, 0x72, 0x65, 0x42, 0x9f, 0xef, 0x75, 0x35, - 0xc5, 0x33, 0x0a, 0x94, 0xd0, 0x00, 0x7c, 0xa5, 0xb3, 0x45, 0x69, 0xe5, 0xeb, 0xa7, 0x8f, 0xd6, - 0x02, 0xdf, 0xdf, 0x3d, 0x7d, 0xb4, 0x76, 0xce, 0x4b, 0x3a, 0x9a, 0x21, 0xcc, 0x81, 0xf9, 0xa8, - 0xc4, 0x40, 0xa4, 0x8d, 0x1d, 0x82, 0xe0, 0x6f, 0x49, 0x30, 0x5d, 0x26, 0xd6, 0x96, 0x8b, 0x4c, - 0x8a, 0x74, 0x1e, 0x92, 0x72, 0x13, 0x9c, 0xa9, 0xb1, 0x35, 0xf6, 0xd9, 0x58, 0xeb, 0x75, 0xb5, - 0x29, 0x11, 0x8c, 0xa7, 0x18, 0xce, 0x85, 0x6f, 0xaa, 0x18, 0x60, 0xbc, 0x86, 0x9d, 0x5d, 0xdb, - 0xe2, 0x34, 0x64, 0x37, 0xf3, 0x85, 0x78, 0x9b, 0x14, 0x84, 0xbf, 0x2d, 0x8e, 0xd2, 0xd5, 0xc3, - 0xae, 0x96, 0xe8, 0x75, 0xb5, 0x49, 0xcf, 0x11, 0x97, 0xc2, 0x87, 0x4f, 0x1f, 0xad, 0x25, 0x0d, - 0x6f, 0xa7, 0xd2, 0xeb, 0x2c, 0x63, 0xdf, 0x03, 0xcb, 0x77, 0x3e, 0xc8, 0x37, 0x9c, 0x02, 0xbc, - 0x0e, 0x16, 0x62, 0x22, 0x3f, 0x63, 0xe5, 0x7c, 0xb8, 0x42, 0x2c, 0xbf, 0xd1, 0xa0, 0x16, 0xb0, - 0x97, 0x02, 0x33, 0x65, 0x62, 0xed, 0xb8, 0xb8, 0x8d, 0x09, 0xba, 0xd3, 0xa1, 0xed, 0x0e, 0x55, - 0x6e, 0x81, 0x74, 0x5b, 0x08, 0x7c, 0x42, 0xae, 0xf4, 0xba, 0xda, 0xb4, 0x88, 0xd3, 0xd7, 0x0c, - 0x67, 0x44, 0x1a, 0x3f, 0x4f, 0x73, 0x94, 0xc0, 0x04, 0xe6, 0x51, 0x54, 0x6c, 0xa7, 0x8e, 0xee, - 0xf3, 0xee, 0x18, 0xd5, 0x17, 0x7a, 0x5d, 0xed, 0xac, 0xb0, 0x0a, 0x6b, 0xa1, 0x91, 0x15, 0xcb, - 0x6d, 0xb6, 0x52, 0x74, 0x30, 0xdd, 0xdc, 0xac, 0x54, 0x9b, 0xb8, 0x76, 0xaf, 0xe2, 0x74, 0x5a, - 0x55, 0xe4, 0xe6, 0x46, 0xb9, 0xb9, 0xda, 0xeb, 0x6a, 0xf3, 0xc2, 0x3c, 0x06, 0x80, 0xc6, 0x64, - 0x73, 0x53, 0x67, 0x82, 0xf7, 0xf9, 0x9a, 0x35, 0xa7, 0xe7, 0xc1, 0xc5, 0x98, 0xe6, 0xc6, 0xe2, - 0xcd, 0x19, 0x52, 0x42, 0x03, 0x88, 0x95, 0x81, 0x31, 0x2d, 0xad, 0xb2, 0x52, 0xc9, 0xd4, 0x59, - 0xad, 0x16, 0x82, 0x5a, 0x45, 0xf8, 0x85, 0x2a, 0xc8, 0xc5, 0x65, 0xb2, 0x3f, 0xff, 0x15, 0xfd, - 0x79, 0x13, 0x35, 0x11, 0xf5, 0xeb, 0x51, 0x06, 0xa0, 0xd6, 0x30, 0x9b, 0x4d, 0xe4, 0x58, 0xb2, - 0x22, 0x57, 0x7b, 0x5d, 0x6d, 0xd6, 0xeb, 0x1c, 0xa9, 0x1b, 0x5e, 0x93, 0xd0, 0x06, 0xaf, 0xb8, - 0x2a, 0xa5, 0x35, 0x46, 0x4c, 0xc8, 0x7f, 0xac, 0x8d, 0xc3, 0x99, 0xc2, 0x45, 0xde, 0xc6, 0x61, - 0x91, 0x24, 0xe6, 0x28, 0xc5, 0x75, 0xdb, 0x8e, 0x4d, 0x6d, 0x93, 0xa2, 0x0f, 0xf1, 0x3d, 0xe4, - 0xdc, 0x44, 0x6d, 0x4c, 0x6c, 0xaa, 0xdc, 0x00, 0xe3, 0x04, 0x39, 0x75, 0x49, 0xce, 0x6a, 0xf0, - 0xb3, 0x12, 0xf2, 0xe1, 0xc4, 0x78, 0x86, 0xcf, 0x43, 0xca, 0x45, 0x90, 0xa2, 0x98, 0x53, 0x91, - 0xd1, 0x27, 0x7b, 0x5d, 0x2d, 0x23, 0xb0, 0x14, 0x43, 0x23, 0x45, 0xb1, 0x52, 0x06, 0xe3, 0x66, - 0x0b, 0x77, 0x1c, 0xca, 0x9b, 0x30, 0xbb, 0xb9, 0x58, 0xf0, 0x02, 0x60, 0x27, 0x42, 0xc1, 0x3b, - 0x11, 0x0a, 0x5b, 0xd8, 0x76, 0xe2, 0xa3, 0x40, 0x98, 0xf9, 0xa3, 0x40, 0xac, 0x94, 0x75, 0x30, - 0x5a, 0x37, 0xa9, 0xe9, 0x75, 0x64, 0xee, 0xb0, 0xab, 0x25, 0x7b, 0x5d, 0x2d, 0x2b, 0x2c, 0x98, - 0x86, 0xe3, 0x13, 0x06, 0x47, 0x95, 0xae, 0x7f, 0xf3, 0x40, 0x4b, 0xfc, 0xf5, 0x40, 0x4b, 0x30, - 0xf2, 0xbd, 0x1c, 0x19, 0xf1, 0xf9, 0x80, 0xf8, 0x41, 0x4c, 0xc2, 0xb7, 0x80, 0x36, 0x44, 0x25, - 0xe7, 0x89, 0x0a, 0xd2, 0x04, 0x7d, 0xde, 0x41, 0x4e, 0x0d, 0xf9, 0xe3, 0xc4, 0x5f, 0xc3, 0x1f, - 0xc7, 0x80, 0x5a, 0x26, 0xd6, 0xbb, 0xb6, 0x63, 0x36, 0xed, 0x2f, 0x84, 0xfd, 0xc7, 0x36, 0x6d, - 0xd4, 0x5d, 0x73, 0xdf, 0x6c, 0xbe, 0xea, 0x79, 0x70, 0x1d, 0xcc, 0xee, 0x4b, 0xe7, 0xec, 0x3c, - 0xc5, 0xbb, 0x24, 0x37, 0xba, 0x34, 0xb2, 0x32, 0xa1, 0x67, 0x18, 0x7f, 0x82, 0xb0, 0x99, 0x00, - 0xb3, 0xc3, 0x21, 0xca, 0xaa, 0x6c, 0xa7, 0x31, 0x5e, 0xdc, 0xd9, 0xbe, 0x76, 0x92, 0x6d, 0x73, - 0x0b, 0xa4, 0x5d, 0x54, 0x43, 0xf6, 0xde, 0xa0, 0x51, 0xe9, 0x6b, 0x8e, 0x19, 0x95, 0x3e, 0x44, - 0x29, 0x86, 0x58, 0x1d, 0xe7, 0x39, 0x9e, 0x0d, 0x36, 0x92, 0xfc, 0x06, 0x54, 0x87, 0xda, 0xeb, - 0xcc, 0x8b, 0x69, 0xaf, 0x33, 0x7b, 0xc8, 0x25, 0x36, 0x76, 0x72, 0x69, 0xde, 0x61, 0x4a, 0x70, - 0x06, 0x7a, 0x0a, 0x68, 0xf8, 0x10, 0x56, 0x15, 0x42, 0xb1, 0x6b, 0x5a, 0x48, 0x8c, 0xc9, 0x0c, - 0x37, 0x09, 0x55, 0x25, 0xac, 0x85, 0x46, 0xd6, 0x5b, 0xb2, 0x41, 0xc9, 0xa7, 0xb4, 0x49, 0xa8, - 0x37, 0x86, 0x1b, 0x26, 0x69, 0xe4, 0x00, 0x37, 0x0f, 0x4f, 0xe9, 0x28, 0x80, 0x4d, 0x69, 0x93, - 0x50, 0x3e, 0xa7, 0xdf, 0x33, 0x49, 0xa3, 0x74, 0x8d, 0x0f, 0x5b, 0x9f, 0x3c, 0xd6, 0xd8, 0xcb, - 0x41, 0x63, 0x0f, 0xe9, 0x3e, 0x78, 0x09, 0xc0, 0xe1, 0x5a, 0x39, 0x67, 0x7e, 0x48, 0x81, 0xd9, - 0x32, 0xb1, 0x3e, 0x6a, 0xd7, 0x4d, 0x8a, 0x76, 0xfc, 0x93, 0xec, 0x36, 0xc8, 0x98, 0x1d, 0xda, - 0xc0, 0xae, 0x4d, 0x0f, 0xfa, 0xaf, 0x4c, 0x52, 0x75, 0xcc, 0x95, 0x49, 0x62, 0x9e, 0xe7, 0x57, - 0x60, 0x80, 0x09, 0x07, 0xed, 0x57, 0xe4, 0xa9, 0x2c, 0x86, 0x4e, 0x31, 0xe0, 0x3b, 0xac, 0x1d, - 0x1e, 0x44, 0xd6, 0x41, 0xfb, 0x7e, 0x4a, 0xa5, 0x2b, 0xfc, 0x36, 0x25, 0xc3, 0x62, 0x24, 0xe6, - 0x02, 0x12, 0xa3, 0xf9, 0xc3, 0x5d, 0xb0, 0xd8, 0x27, 0x94, 0x13, 0x61, 0x39, 0xf6, 0x1b, 0x15, - 0x53, 0x21, 0xf2, 0x53, 0xbc, 0xdc, 0x7f, 0x34, 0xf3, 0xcc, 0x63, 0xc7, 0x2f, 0xfc, 0x29, 0x05, - 0xe6, 0xa4, 0xa3, 0x2d, 0x79, 0x66, 0x90, 0xd3, 0x2e, 0xc0, 0x67, 0x60, 0x9a, 0x51, 0x1c, 0x9c, - 0x62, 0xec, 0xde, 0x3a, 0xb2, 0x92, 0xd1, 0x37, 0x83, 0xa6, 0x8d, 0x01, 0x86, 0x87, 0x32, 0xe5, - 0xa0, 0xfd, 0x50, 0x6e, 0xa5, 0x42, 0x7f, 0x25, 0xce, 0xc7, 0x2b, 0x11, 0xc2, 0x43, 0x1b, 0x5c, - 0x18, 0x24, 0x7f, 0x19, 0xf5, 0x78, 0x98, 0x02, 0x8a, 0xf4, 0xc5, 0x6f, 0xd2, 0xdb, 0xce, 0x2e, - 0x3e, 0xed, 0x6a, 0x20, 0xc0, 0x28, 0xac, 0x88, 0x87, 0x82, 0xed, 0xec, 0x8a, 0x53, 0x38, 0xbb, - 0x79, 0x7e, 0xc0, 0x95, 0xdb, 0x8f, 0x59, 0x87, 0xde, 0x14, 0x3c, 0x17, 0x54, 0x2b, 0xd8, 0xc0, - 0x9b, 0x86, 0xec, 0x57, 0x26, 0x2d, 0x4a, 0xeb, 0xfd, 0x75, 0x59, 0x8c, 0xd7, 0x45, 0xa2, 0xa1, - 0xc5, 0x8f, 0xbe, 0x98, 0xf4, 0x65, 0xd4, 0xe4, 0xdb, 0x14, 0x38, 0x27, 0x3d, 0xdd, 0x71, 0xcd, - 0x5a, 0xd3, 0x7b, 0x52, 0x9c, 0x76, 0x59, 0xde, 0x06, 0x53, 0x98, 0x87, 0x53, 0x41, 0x8e, 0x59, - 0x6d, 0xa2, 0x3a, 0x2f, 0x4b, 0x5a, 0x5f, 0x0c, 0x58, 0x8f, 0xea, 0xa1, 0x31, 0x29, 0x04, 0xef, - 0x88, 0x75, 0xa9, 0xd8, 0xcf, 0xf8, 0x85, 0x38, 0xe3, 0xe1, 0x8c, 0xa1, 0x06, 0x2e, 0x0e, 0x54, - 0xc8, 0x71, 0xfe, 0x77, 0x32, 0x34, 0xce, 0xcb, 0x88, 0x9a, 0xec, 0x7a, 0x74, 0xda, 0x44, 0x15, - 0x41, 0xba, 0xe5, 0x85, 0xe2, 0x3d, 0x7f, 0x43, 0x87, 0xbd, 0xaf, 0x81, 0x86, 0x04, 0x9d, 0x68, - 0x56, 0xfb, 0xc9, 0x45, 0x66, 0xb5, 0x2f, 0x7c, 0x19, 0x7d, 0xf8, 0x8b, 0x78, 0xaa, 0x78, 0x87, - 0x82, 0xe9, 0x9a, 0xad, 0x17, 0x3b, 0xa6, 0xb7, 0xc0, 0x78, 0x9b, 0xef, 0xea, 0x3d, 0xa8, 0x73, - 0xfd, 0xbf, 0x6e, 0xe1, 0x35, 0x7c, 0x41, 0x13, 0x16, 0xd0, 0xf0, 0x4c, 0xc5, 0xb3, 0x2c, 0xca, - 0xdc, 0x7c, 0xdf, 0x29, 0x27, 0x6c, 0xc4, 0xe3, 0x23, 0x2c, 0xf2, 0x59, 0xdb, 0xfc, 0x27, 0x0d, - 0x46, 0xca, 0xc4, 0x52, 0x3e, 0x01, 0xd9, 0xf0, 0x87, 0x94, 0xa5, 0xfe, 0x88, 0xa2, 0x9f, 0x1d, - 0xd4, 0x95, 0x67, 0x21, 0x64, 0x61, 0xee, 0x82, 0x89, 0xc8, 0x47, 0x89, 0xe5, 0x81, 0x96, 0x61, - 0x88, 0xba, 0xfa, 0x4c, 0x88, 0xdc, 0xbd, 0x02, 0x26, 0xa3, 0x6f, 0x7c, 0x38, 0xd0, 0x36, 0x82, - 0x51, 0xd7, 0x9e, 0x8d, 0x09, 0x87, 0x1f, 0x79, 0xb3, 0x0e, 0x0e, 0x3f, 0x0c, 0x19, 0x12, 0xfe, - 0xa0, 0xc7, 0x9f, 0x42, 0xc1, 0xdc, 0xc0, 0x87, 0xdf, 0xe0, 0x2d, 0x06, 0x41, 0xd5, 0x8d, 0x13, - 0x43, 0xa5, 0xd7, 0x2f, 0xc1, 0xc2, 0xb0, 0x97, 0xcc, 0xfa, 0xc0, 0xdd, 0x86, 0xa0, 0xd5, 0x37, - 0xfe, 0x0f, 0x5a, 0xba, 0xaf, 0x82, 0xa9, 0xd8, 0x2d, 0xf4, 0xb5, 0x81, 0xfb, 0x44, 0x41, 0xea, - 0x95, 0x13, 0x80, 0xa4, 0x8f, 0x7b, 0x60, 0xb6, 0xff, 0xae, 0x75, 0xf9, 0x98, 0x1d, 0x42, 0x38, - 0xb5, 0x70, 0x32, 0x9c, 0x74, 0x86, 0xc0, 0x74, 0xfc, 0x22, 0x71, 0xe9, 0x98, 0x2d, 0x24, 0x4a, - 0x5d, 0x3f, 0x09, 0xaa, 0x9f, 0x37, 0x39, 0xee, 0x8f, 0xe3, 0xcd, 0x07, 0x1d, 0xcb, 0x5b, 0xdf, - 0x18, 0xbd, 0x0b, 0x26, 0x22, 0x73, 0x6f, 0xf9, 0x38, 0xd2, 0x39, 0x64, 0x48, 0xbb, 0x0f, 0x1a, - 0x37, 0xea, 0xd8, 0x57, 0xec, 0x36, 0xa2, 0xdf, 0x3e, 0xfc, 0x33, 0x9f, 0x38, 0x7c, 0x92, 0x4f, - 0x3e, 0x7e, 0x92, 0x4f, 0xfe, 0xf1, 0x24, 0x9f, 0xfc, 0xfe, 0x28, 0x9f, 0x78, 0x7c, 0x94, 0x4f, - 0xfc, 0x7e, 0x94, 0x4f, 0x7c, 0xba, 0x6e, 0xd9, 0xb4, 0xd1, 0xa9, 0x16, 0x6a, 0xb8, 0x55, 0xb4, - 0x79, 0x1b, 0x5f, 0x6d, 0x9a, 0x55, 0x52, 0xbc, 0xb3, 0xc3, 0xbf, 0x06, 0xdf, 0xf7, 0xbf, 0x07, - 0xf3, 0x8f, 0xc1, 0xd5, 0x71, 0xfe, 0x35, 0xf8, 0xda, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xac, - 0x23, 0x4f, 0x3f, 0xd7, 0x16, 0x00, 0x00, + // 1649 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x4b, 0x6f, 0x1b, 0x47, + 0x12, 0x26, 0x29, 0x59, 0x16, 0x9b, 0x7a, 0x8e, 0x65, 0x89, 0x1a, 0xdb, 0x1c, 0xa9, 0xed, 0xf5, + 0xca, 0xb2, 0x4c, 0x42, 0xda, 0x5d, 0x2f, 0x40, 0x60, 0x81, 0xf5, 0xc8, 0xfb, 0x90, 0x01, 0xae, + 0x85, 0xd9, 0x5d, 0x2c, 0x36, 0x31, 0x40, 0x0c, 0xc9, 0xd6, 0x70, 0x60, 0x72, 0x9a, 0x99, 0x6e, + 0x4a, 0x56, 0x80, 0x00, 0x41, 0x4e, 0x49, 0x4e, 0x01, 0xf2, 0x07, 0x8c, 0x9c, 0x7c, 0xf4, 0x21, + 0xff, 0x20, 0x17, 0x5d, 0x02, 0x18, 0x41, 0x0e, 0x39, 0x11, 0x89, 0x75, 0x70, 0x8e, 0x01, 0x73, + 0xcc, 0x25, 0xe8, 0xc7, 0xf4, 0x3c, 0x48, 0xca, 0x8a, 0x63, 0x47, 0x17, 0x82, 0x5d, 0xf5, 0x55, + 0x77, 0xd5, 0x57, 0x35, 0xd5, 0x0f, 0xb0, 0x8c, 0x3b, 0xae, 0xe7, 0xd2, 0x12, 0xee, 0x34, 0x31, + 0xa1, 0xa5, 0xfd, 0xcd, 0x12, 0x7d, 0x54, 0xec, 0xf8, 0x98, 0x62, 0x6d, 0x4e, 0xa8, 0x8a, 0x42, + 0x55, 0xdc, 0xdf, 0xd4, 0xe7, 0xed, 0xb6, 0xeb, 0xe1, 0x12, 0xff, 0x15, 0x20, 0xbd, 0x50, 0xc7, + 0xa4, 0x8d, 0x49, 0xa9, 0x66, 0x13, 0x54, 0xda, 0xdf, 0xac, 0x21, 0x6a, 0x6f, 0x96, 0xea, 0xd8, + 0xf5, 0xa4, 0x7e, 0x49, 0xea, 0xdb, 0xc4, 0x61, 0x93, 0xb7, 0x89, 0x23, 0x15, 0xcb, 0x42, 0x51, + 0xe5, 0xa3, 0x92, 0x18, 0x48, 0xd5, 0x82, 0x83, 0x1d, 0x2c, 0xe4, 0xec, 0x9f, 0x94, 0x5e, 0x1e, + 0xf4, 0xf4, 0xb0, 0x83, 0xa4, 0x0d, 0xec, 0xa7, 0xc1, 0x4c, 0x85, 0x38, 0x16, 0xaa, 0x63, 0xbf, + 0x61, 0xda, 0xb4, 0xde, 0xd4, 0xee, 0x81, 0x2c, 0xe9, 0xd6, 0xda, 0x2e, 0xa5, 0xc8, 0xcf, 0xa7, + 0x57, 0xd2, 0x6b, 0x59, 0x73, 0xa3, 0xdf, 0x33, 0xe6, 0x0e, 0xed, 0x76, 0xab, 0x0c, 0x95, 0x0a, + 0x7e, 0xf5, 0xf9, 0xad, 0x05, 0xb9, 0xfe, 0x9d, 0x46, 0xc3, 0x47, 0x84, 0xfc, 0x9b, 0xfa, 0xae, + 0xe7, 0x58, 0xa1, 0xb9, 0xb6, 0x09, 0xb2, 0x35, 0xdf, 0x6d, 0x38, 0xa8, 0xea, 0x36, 0xf2, 0x99, + 0x95, 0xf4, 0xda, 0xb8, 0xb9, 0x10, 0xce, 0xa5, 0x54, 0xd0, 0x9a, 0x14, 0xff, 0x77, 0x1a, 0xda, + 0x9f, 0x41, 0xae, 0xc6, 0xfc, 0xa8, 0xd6, 0x0e, 0x29, 0x22, 0xf9, 0xb1, 0x95, 0xf4, 0xda, 0x94, + 0xb9, 0xd8, 0xef, 0x19, 0x9a, 0x34, 0x0a, 0x95, 0xd0, 0x02, 0x7c, 0x64, 0xb2, 0x41, 0x79, 0xed, + 0x83, 0x17, 0x4f, 0xd7, 0xc3, 0xb5, 0x3f, 0x7e, 0xf1, 0x74, 0xfd, 0xa2, 0x0c, 0x3a, 0x1e, 0x21, + 0xcc, 0x83, 0xc5, 0xb8, 0xc4, 0x42, 0xa4, 0x83, 0x3d, 0x82, 0xe0, 0xd7, 0x69, 0x30, 0x5b, 0x21, + 0xce, 0xb6, 0x8f, 0x6c, 0x8a, 0x4c, 0xee, 0x92, 0x76, 0x17, 0x9c, 0xaf, 0xb3, 0x31, 0x0e, 0xd8, + 0x58, 0xef, 0xf7, 0x8c, 0x19, 0xe1, 0x8c, 0x54, 0x8c, 0xe6, 0x22, 0x30, 0xd5, 0x2c, 0x30, 0x51, + 0xc7, 0xde, 0x9e, 0xeb, 0x70, 0x1a, 0x72, 0x5b, 0x85, 0x62, 0xb2, 0x4c, 0x8a, 0x62, 0xbd, 0x6d, + 0x8e, 0x32, 0xf5, 0xa3, 0x9e, 0x91, 0xea, 0xf7, 0x8c, 0x69, 0xb9, 0x10, 0x97, 0xc2, 0x27, 0x2f, + 0x9e, 0xae, 0xa7, 0x2d, 0x39, 0x53, 0xf9, 0xf7, 0x2c, 0xe2, 0x60, 0x05, 0x16, 0xef, 0x62, 0x18, + 0x6f, 0x34, 0x04, 0x78, 0x1b, 0x2c, 0x25, 0x44, 0x41, 0xc4, 0xda, 0xa5, 0x68, 0x86, 0x58, 0x7c, + 0xe3, 0x61, 0x2e, 0x60, 0x3f, 0x03, 0xe6, 0x2a, 0xc4, 0xd9, 0xf5, 0x71, 0x07, 0x13, 0x74, 0xbf, + 0x4b, 0x3b, 0x5d, 0xaa, 0xfd, 0x03, 0x4c, 0x76, 0x84, 0x20, 0x20, 0xe4, 0x66, 0xbf, 0x67, 0xcc, + 0x0a, 0x3f, 0x03, 0xcd, 0x68, 0x46, 0x94, 0xf1, 0xab, 0x14, 0x47, 0x19, 0x4c, 0x61, 0xee, 0x45, + 0xd5, 0xf5, 0x1a, 0xe8, 0x11, 0xaf, 0x8e, 0x71, 0x73, 0xa9, 0xdf, 0x33, 0x2e, 0x08, 0xab, 0xa8, + 0x16, 0x5a, 0x39, 0x31, 0xdc, 0x61, 0x23, 0xcd, 0x04, 0xb3, 0xad, 0xad, 0x6a, 0xad, 0x85, 0xeb, + 0x0f, 0xab, 0x5e, 0xb7, 0x5d, 0x43, 0x7e, 0x7e, 0x9c, 0x9b, 0xeb, 0xfd, 0x9e, 0xb1, 0x28, 0xcc, + 0x13, 0x00, 0x68, 0x4d, 0xb7, 0xb6, 0x4c, 0x26, 0xf8, 0x17, 0x1f, 0xb3, 0xe2, 0x94, 0x2b, 0xf8, + 0x18, 0xd3, 0xfc, 0xb9, 0x64, 0x71, 0x46, 0x94, 0xd0, 0x02, 0x62, 0x64, 0x61, 0x4c, 0xcb, 0x37, + 0x58, 0xaa, 0x54, 0xe8, 0x2c, 0x57, 0x4b, 0x61, 0xae, 0x62, 0xfc, 0x42, 0x1d, 0xe4, 0x93, 0x32, + 0x55, 0x9f, 0x3f, 0x89, 0xfa, 0xbc, 0x8b, 0x5a, 0x88, 0x06, 0xf9, 0xa8, 0x00, 0x50, 0x6f, 0xda, + 0xad, 0x16, 0xf2, 0x1c, 0x95, 0x91, 0x5b, 0xfd, 0x9e, 0x31, 0x2f, 0x2b, 0x47, 0xe9, 0x46, 0xe7, + 0x24, 0x32, 0xc1, 0x6f, 0x9c, 0x95, 0xf2, 0x3a, 0x23, 0x26, 0xb2, 0x7e, 0xa2, 0x8c, 0xa3, 0x91, + 0xc2, 0x65, 0x5e, 0xc6, 0x51, 0x91, 0x22, 0xe6, 0x38, 0xc3, 0x75, 0x3b, 0x9e, 0x4b, 0x5d, 0x9b, + 0xa2, 0xff, 0xe0, 0x87, 0xc8, 0xbb, 0x8b, 0x3a, 0x98, 0xb8, 0x54, 0xbb, 0x03, 0x26, 0x08, 0xf2, + 0x1a, 0x8a, 0x9c, 0x1b, 0xe1, 0x67, 0x25, 0xe4, 0xa3, 0x89, 0x91, 0x86, 0xaf, 0x42, 0xca, 0x15, + 0x90, 0xa1, 0x98, 0x53, 0x91, 0x35, 0xa7, 0xfb, 0x3d, 0x23, 0x2b, 0xb0, 0x14, 0x43, 0x2b, 0x43, + 0xb1, 0x56, 0x01, 0x13, 0x76, 0x1b, 0x77, 0x3d, 0xca, 0x8b, 0x30, 0xb7, 0xb5, 0x5c, 0x94, 0x0e, + 0xb0, 0x1d, 0xa1, 0x28, 0x77, 0x84, 0xe2, 0x36, 0x76, 0xbd, 0x64, 0x2b, 0x10, 0x66, 0x41, 0x2b, + 0x10, 0x23, 0x6d, 0x03, 0x8c, 0x37, 0x6c, 0x6a, 0xcb, 0x8a, 0xcc, 0x1f, 0xf5, 0x8c, 0x74, 0xbf, + 0x67, 0xe4, 0x84, 0x05, 0xd3, 0x70, 0x7c, 0xca, 0xe2, 0xa8, 0xf2, 0xed, 0x0f, 0x1f, 0x1b, 0xa9, + 0xef, 0x1f, 0x1b, 0x29, 0x46, 0xbe, 0x8c, 0x91, 0x11, 0x5f, 0x08, 0x89, 0x1f, 0xc6, 0x24, 0xfc, + 0x0b, 0x30, 0x46, 0xa8, 0x54, 0x3f, 0xd1, 0xc1, 0x24, 0x41, 0xef, 0x74, 0x91, 0x57, 0x47, 0x41, + 0x3b, 0x09, 0xc6, 0xf0, 0x8b, 0x73, 0x40, 0xaf, 0x10, 0xe7, 0xef, 0xae, 0x67, 0xb7, 0xdc, 0x77, + 0x85, 0xfd, 0xff, 0x5c, 0xda, 0x6c, 0xf8, 0xf6, 0x81, 0xdd, 0x3a, 0xa3, 0x3c, 0xfd, 0x9a, 0x96, + 0x72, 0x1b, 0xcc, 0x1f, 0x28, 0xff, 0xd9, 0x96, 0x8c, 0xf7, 0x48, 0x7e, 0x7c, 0x65, 0x6c, 0x6d, + 0xca, 0xcc, 0xb2, 0x14, 0x08, 0xce, 0xe7, 0x42, 0xcc, 0x2e, 0x87, 0x68, 0x57, 0xc1, 0xf8, 0x9e, + 0x8f, 0xdb, 0x3c, 0x5b, 0x59, 0x73, 0x36, 0xcc, 0x14, 0x93, 0x42, 0x8b, 0x2b, 0xb5, 0x3f, 0xf1, + 0x02, 0x9a, 0xe0, 0x90, 0xdf, 0xc5, 0x0a, 0x68, 0x24, 0x0d, 0xac, 0xb0, 0x4a, 0x91, 0x04, 0x9c, + 0xe7, 0xb1, 0x5c, 0x08, 0xdb, 0xb3, 0x4a, 0x45, 0x98, 0x95, 0x48, 0x25, 0x4e, 0xbe, 0x9e, 0x4a, + 0x3c, 0xbf, 0x8f, 0x7c, 0xe2, 0x62, 0x2f, 0x9f, 0xe5, 0xc5, 0xa8, 0x85, 0xdb, 0xa5, 0x54, 0x40, + 0x2b, 0x80, 0x30, 0xf6, 0x09, 0xc5, 0xbe, 0xed, 0x20, 0xd1, 0x51, 0x01, 0x37, 0x89, 0xb0, 0x1f, + 0xd5, 0x42, 0x2b, 0x27, 0x87, 0xac, 0xa7, 0xf2, 0x86, 0x6e, 0x13, 0x2a, 0x3b, 0x76, 0xd3, 0x26, + 0xcd, 0x7c, 0x8e, 0x9b, 0x47, 0x1b, 0x7a, 0x1c, 0xc0, 0x1a, 0xba, 0x4d, 0x28, 0x6f, 0xe9, 0xff, + 0xb4, 0x49, 0xb3, 0xbc, 0x99, 0xf8, 0x02, 0x56, 0xc3, 0x2f, 0x60, 0x44, 0x99, 0xc2, 0x6b, 0x00, + 0x8e, 0xd6, 0xaa, 0x86, 0xf4, 0x69, 0x06, 0xcc, 0x57, 0x88, 0xf3, 0xdf, 0x4e, 0xc3, 0xa6, 0x68, + 0x37, 0xd8, 0xf2, 0xee, 0x81, 0xac, 0xdd, 0xa5, 0x4d, 0xec, 0xbb, 0xf4, 0x70, 0xf0, 0x6c, 0xa5, + 0x54, 0x27, 0x9c, 0xad, 0x14, 0xe6, 0x55, 0x6a, 0xdd, 0x02, 0x53, 0x1e, 0x3a, 0xa8, 0xaa, 0xed, + 0x5b, 0x74, 0xa7, 0x52, 0xc8, 0x76, 0x54, 0x3b, 0xda, 0x89, 0x9c, 0x87, 0x0e, 0x82, 0x90, 0xca, + 0x37, 0xf9, 0xb1, 0x4b, 0xb9, 0xc5, 0x48, 0xcc, 0x87, 0x24, 0xc6, 0xe3, 0x87, 0x7b, 0x60, 0x79, + 0x40, 0xa8, 0x5a, 0xc7, 0x6a, 0xe2, 0x4b, 0x14, 0xed, 0x23, 0xf6, 0xc1, 0x5d, 0x1f, 0xdc, 0xc3, + 0x79, 0xe4, 0x89, 0x7d, 0x1a, 0x7e, 0x96, 0x01, 0x0b, 0x6a, 0xa1, 0x6d, 0xb5, 0xb9, 0x90, 0xb3, + 0x4e, 0xc0, 0xdb, 0x60, 0x96, 0x51, 0x1c, 0x6e, 0x77, 0xec, 0x80, 0x3b, 0xb6, 0x96, 0x35, 0xb7, + 0xc2, 0x92, 0x4d, 0x00, 0x46, 0xbb, 0x32, 0xe3, 0xa1, 0x83, 0x48, 0x6c, 0xe5, 0xe2, 0x60, 0x26, + 0x2e, 0x25, 0x33, 0x11, 0xc1, 0x43, 0x17, 0x5c, 0x1e, 0x26, 0x7f, 0x13, 0xf9, 0x78, 0x92, 0x01, + 0x9a, 0x5a, 0x8b, 0x1f, 0xb9, 0x77, 0xbc, 0x3d, 0x7c, 0xd6, 0xd9, 0x40, 0x80, 0x51, 0x58, 0x15, + 0x37, 0x0a, 0xd7, 0xdb, 0x13, 0xdb, 0x75, 0x6e, 0xeb, 0xd2, 0x90, 0xb3, 0x79, 0xe0, 0xb3, 0x09, + 0x65, 0x0f, 0xbc, 0x18, 0x66, 0x2b, 0x9c, 0x40, 0xf6, 0x42, 0xf6, 0x95, 0x29, 0x8b, 0xf2, 0xc6, + 0x60, 0x5e, 0x96, 0x93, 0x79, 0x51, 0x68, 0xe8, 0xf0, 0x3d, 0x32, 0x21, 0x7d, 0x13, 0x39, 0xf9, + 0x28, 0x03, 0x2e, 0xaa, 0x95, 0xee, 0xfb, 0x76, 0xbd, 0x25, 0xef, 0x1e, 0x67, 0x9d, 0x96, 0xbf, + 0x82, 0x19, 0xcc, 0xdd, 0xa9, 0x22, 0xcf, 0xae, 0xb5, 0x50, 0x83, 0xa7, 0x65, 0xd2, 0x5c, 0x0e, + 0x59, 0x8f, 0xeb, 0xa1, 0x35, 0x2d, 0x04, 0x7f, 0x13, 0xe3, 0x72, 0x69, 0x90, 0xf1, 0xcb, 0x49, + 0xc6, 0xa3, 0x11, 0x43, 0x03, 0x5c, 0x19, 0xaa, 0x50, 0xed, 0xfc, 0x87, 0x74, 0xa4, 0x9d, 0x57, + 0x10, 0xb5, 0xd9, 0x39, 0xea, 0xac, 0x89, 0x2a, 0x81, 0xc9, 0xb6, 0x74, 0x45, 0xde, 0x93, 0x23, + 0x5b, 0x7d, 0xa0, 0x81, 0x96, 0x02, 0x9d, 0xaa, 0x57, 0x07, 0xc1, 0xc5, 0x7a, 0x75, 0x20, 0x7c, + 0x13, 0x75, 0xf8, 0xa5, 0xb8, 0xd3, 0xc8, 0x4d, 0xc1, 0xf6, 0xed, 0xf6, 0xeb, 0x6d, 0xd3, 0xdb, + 0x60, 0xa2, 0xc3, 0x67, 0x95, 0x37, 0xef, 0xfc, 0xe0, 0xd7, 0x2d, 0x56, 0x35, 0xe7, 0xc3, 0xa3, + 0x8d, 0xb0, 0x80, 0x96, 0x34, 0x15, 0xf7, 0xb7, 0x38, 0x73, 0x8b, 0x03, 0xbb, 0x9c, 0xb0, 0x11, + 0xb7, 0x94, 0xa8, 0x28, 0x60, 0x6d, 0xeb, 0xc7, 0x49, 0x30, 0x56, 0x21, 0x8e, 0xf6, 0x7f, 0x90, + 0x8b, 0xbe, 0xb8, 0xac, 0x0c, 0x7a, 0x14, 0x7f, 0x9f, 0xd0, 0xd7, 0x5e, 0x86, 0x50, 0x89, 0x79, + 0x00, 0xa6, 0x62, 0xaf, 0x17, 0xab, 0x43, 0x2d, 0xa3, 0x10, 0xfd, 0xc6, 0x4b, 0x21, 0x6a, 0xf6, + 0x2a, 0x98, 0x8e, 0x3f, 0x06, 0xc0, 0xa1, 0xb6, 0x31, 0x8c, 0xbe, 0xfe, 0x72, 0x4c, 0xd4, 0xfd, + 0xd8, 0xe5, 0x76, 0xb8, 0xfb, 0x51, 0xc8, 0x08, 0xf7, 0x87, 0xdd, 0x12, 0x35, 0x0a, 0x16, 0x86, + 0xde, 0x10, 0x87, 0x4f, 0x31, 0x0c, 0xaa, 0x6f, 0x9e, 0x1a, 0xaa, 0x56, 0x7d, 0x0f, 0x2c, 0x8d, + 0xba, 0xf2, 0x6c, 0x0c, 0x9d, 0x6d, 0x04, 0x5a, 0xff, 0xe3, 0x2f, 0x41, 0xab, 0xe5, 0x6b, 0x60, + 0x26, 0x71, 0x0a, 0xbd, 0x3a, 0x74, 0x9e, 0x38, 0x48, 0xbf, 0x79, 0x0a, 0x90, 0x5a, 0xe3, 0x21, + 0x98, 0x1f, 0x3c, 0x6b, 0x5d, 0x3f, 0x61, 0x86, 0x08, 0x4e, 0x2f, 0x9e, 0x0e, 0xa7, 0x16, 0x43, + 0x60, 0x36, 0x79, 0x90, 0xb8, 0x76, 0xc2, 0x14, 0x0a, 0xa5, 0x6f, 0x9c, 0x06, 0x35, 0xc8, 0x9b, + 0x6a, 0xf7, 0x27, 0xf1, 0x16, 0x80, 0x4e, 0xe4, 0x6d, 0xa0, 0x8d, 0x3e, 0x00, 0x53, 0xb1, 0xbe, + 0xb7, 0x7a, 0x12, 0xe9, 0x1c, 0x32, 0xa2, 0xdc, 0x87, 0xb5, 0x1b, 0xfd, 0xdc, 0xfb, 0xec, 0x34, + 0x62, 0xde, 0x3b, 0xfa, 0xae, 0x90, 0x3a, 0x7a, 0x5e, 0x48, 0x3f, 0x7b, 0x5e, 0x48, 0x7f, 0xfb, + 0xbc, 0x90, 0xfe, 0xe4, 0xb8, 0x90, 0x7a, 0x76, 0x5c, 0x48, 0x7d, 0x73, 0x5c, 0x48, 0xbd, 0xb5, + 0xe1, 0xb8, 0xb4, 0xd9, 0xad, 0x15, 0xeb, 0xb8, 0x5d, 0x72, 0x79, 0x19, 0xdf, 0x6a, 0xd9, 0x35, + 0x52, 0xba, 0xbf, 0xcb, 0x9f, 0x8d, 0x1f, 0x05, 0x0f, 0xc7, 0xfc, 0xd5, 0xb8, 0x36, 0xc1, 0x9f, + 0x8d, 0xff, 0xf0, 0x73, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf9, 0x12, 0xab, 0x52, 0x00, 0x17, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1988,21 +1990,21 @@ func (m *MsgFinalizeTokenWithdrawal) MarshalToSizedBuffer(dAtA []byte) (int, err copy(dAtA[i:], m.LastBlockHash) i = encodeVarintTx(dAtA, i, uint64(len(m.LastBlockHash))) i-- - dAtA[i] = 0x52 + dAtA[i] = 0x5a } if len(m.StorageRoot) > 0 { i -= len(m.StorageRoot) copy(dAtA[i:], m.StorageRoot) i = encodeVarintTx(dAtA, i, uint64(len(m.StorageRoot))) i-- - dAtA[i] = 0x4a + dAtA[i] = 0x52 } if len(m.Version) > 0 { i -= len(m.Version) copy(dAtA[i:], m.Version) i = encodeVarintTx(dAtA, i, uint64(len(m.Version))) i-- - dAtA[i] = 0x42 + dAtA[i] = 0x4a } { size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) @@ -2013,16 +2015,23 @@ func (m *MsgFinalizeTokenWithdrawal) MarshalToSizedBuffer(dAtA []byte) (int, err i = encodeVarintTx(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x3a + dAtA[i] = 0x42 if m.Sequence != 0 { i = encodeVarintTx(dAtA, i, uint64(m.Sequence)) i-- - dAtA[i] = 0x30 + dAtA[i] = 0x38 } - if len(m.Sender) > 0 { - i -= len(m.Sender) - copy(dAtA[i:], m.Sender) - i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) + if len(m.To) > 0 { + i -= len(m.To) + copy(dAtA[i:], m.To) + i = encodeVarintTx(dAtA, i, uint64(len(m.To))) + i-- + dAtA[i] = 0x32 + } + if len(m.From) > 0 { + i -= len(m.From) + copy(dAtA[i:], m.From) + i = encodeVarintTx(dAtA, i, uint64(len(m.From))) i-- dAtA[i] = 0x2a } @@ -2045,10 +2054,10 @@ func (m *MsgFinalizeTokenWithdrawal) MarshalToSizedBuffer(dAtA []byte) (int, err i-- dAtA[i] = 0x10 } - if len(m.Receiver) > 0 { - i -= len(m.Receiver) - copy(dAtA[i:], m.Receiver) - i = encodeVarintTx(dAtA, i, uint64(len(m.Receiver))) + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) i-- dAtA[i] = 0xa } @@ -2690,7 +2699,7 @@ func (m *MsgFinalizeTokenWithdrawal) Size() (n int) { } var l int _ = l - l = len(m.Receiver) + l = len(m.Sender) if l > 0 { n += 1 + l + sovTx(uint64(l)) } @@ -2706,7 +2715,11 @@ func (m *MsgFinalizeTokenWithdrawal) Size() (n int) { n += 1 + l + sovTx(uint64(l)) } } - l = len(m.Sender) + l = len(m.From) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.To) if l > 0 { n += 1 + l + sovTx(uint64(l)) } @@ -4001,7 +4014,7 @@ func (m *MsgFinalizeTokenWithdrawal) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Receiver", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4029,7 +4042,7 @@ func (m *MsgFinalizeTokenWithdrawal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Receiver = string(dAtA[iNdEx:postIndex]) + m.Sender = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 0 { @@ -4103,7 +4116,7 @@ func (m *MsgFinalizeTokenWithdrawal) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4131,9 +4144,41 @@ func (m *MsgFinalizeTokenWithdrawal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + m.From = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field To", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.To = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType) } @@ -4152,7 +4197,7 @@ func (m *MsgFinalizeTokenWithdrawal) Unmarshal(dAtA []byte) error { break } } - case 7: + case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } @@ -4185,7 +4230,7 @@ func (m *MsgFinalizeTokenWithdrawal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 8: + case 9: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) } @@ -4219,7 +4264,7 @@ func (m *MsgFinalizeTokenWithdrawal) Unmarshal(dAtA []byte) error { m.Version = []byte{} } iNdEx = postIndex - case 9: + case 10: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field StorageRoot", wireType) } @@ -4253,7 +4298,7 @@ func (m *MsgFinalizeTokenWithdrawal) Unmarshal(dAtA []byte) error { m.StorageRoot = []byte{} } iNdEx = postIndex - case 10: + case 11: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field LastBlockHash", wireType) }