From 2b6a88492e1da66e0e2fe8c1c42cab69f80230b4 Mon Sep 17 00:00:00 2001 From: beer-1 <147697694+beer-1@users.noreply.github.com> Date: Mon, 8 Jul 2024 18:30:44 +0900 Subject: [PATCH 1/7] allow custom prefix --- contrib/launchtools/cmd.go | 13 +- contrib/launchtools/config.go | 116 +++++---- contrib/launchtools/steps/bridgeinfo.go | 6 +- contrib/launchtools/steps/genesis.go | 29 +-- contrib/launchtools/steps/ibc.go | 15 +- contrib/launchtools/steps/keyring.go | 27 +- contrib/launchtools/steps/opbridge.go | 12 +- contrib/launchtools/steps/rpc.go | 2 + contrib/launchtools/utils/address.go | 25 ++ contrib/launchtools/utils/rpc.go | 31 ++- contrib/launchtools/utils/tx.go | 10 +- proto/opinit/opchild/v1/genesis.proto | 11 +- proto/opinit/opchild/v1/types.proto | 9 + proto/opinit/ophost/v1/query.proto | 2 +- x/opchild/client/cli/tx.go | 33 +-- x/opchild/client/cli/tx_test.go | 12 +- x/opchild/keeper/keeper.go | 2 + x/opchild/keeper/msg_server.go | 157 ++++++++---- x/opchild/keeper/msg_server_test.go | 27 +- x/opchild/types/genesis.go | 4 +- x/opchild/types/genesis.pb.go | 183 +++++++++----- x/opchild/types/hook.go | 10 + x/opchild/types/keys.go | 1 + x/opchild/types/tx.go | 16 +- x/opchild/types/types.pb.go | 321 +++++++++++++++++++----- x/ophost/client/cli/tx.go | 20 +- x/ophost/client/cli/tx_test.go | 2 +- x/ophost/client/cli/types.go | 6 +- x/ophost/keeper/genesis_test.go | 14 +- x/ophost/keeper/msg_server.go | 12 +- x/ophost/keeper/msg_server_test.go | 26 +- x/ophost/types/tx.go | 11 +- 32 files changed, 819 insertions(+), 346 deletions(-) create mode 100644 contrib/launchtools/utils/address.go diff --git a/contrib/launchtools/cmd.go b/contrib/launchtools/cmd.go index 3822c86a..abdb8e12 100644 --- a/contrib/launchtools/cmd.go +++ b/contrib/launchtools/cmd.go @@ -8,6 +8,7 @@ import ( "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/server" + sdk "github.com/cosmos/cosmos-sdk/types" "github.com/pkg/errors" "github.com/spf13/cobra" @@ -35,6 +36,9 @@ $ launchtools launch mahalo-3 --artifacts-dir ./ --with-config ./config.json `, Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { + sdk.SetAddrCacheEnabled(false) + defer sdk.SetAddrCacheEnabled(true) + clientCtx := client.GetClientContextFromCmd(cmd) serverCtx := server.GetServerContextFromCmd(cmd) @@ -53,12 +57,9 @@ $ launchtools launch mahalo-3 --artifacts-dir ./ --with-config ./config.json return errors.Wrap(err, "failed to get config flag") } - config := &Config{} - if configPath != "" { - config, err = Config{}.FromFile(configPath) - if err != nil { - return err - } + config, err := NewConfig(configPath) + if err != nil { + return err } if err := config.Finalize(targetNetwork, bufio.NewReader(clientCtx.Input)); err != nil { diff --git a/contrib/launchtools/config.go b/contrib/launchtools/config.go index 28eed9ba..f8995ce4 100644 --- a/contrib/launchtools/config.go +++ b/contrib/launchtools/config.go @@ -9,12 +9,15 @@ import ( "reflect" "time" + "github.com/initia-labs/OPinit/contrib/launchtools/utils" "github.com/pkg/errors" "github.com/cosmos/cosmos-sdk/client/input" "github.com/cosmos/cosmos-sdk/crypto/hd" "github.com/cosmos/cosmos-sdk/crypto/keyring" sdk "github.com/cosmos/cosmos-sdk/types" + authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec" + "github.com/cosmos/go-bip39" ) @@ -26,7 +29,11 @@ type Config struct { GenesisAccounts *GenesisAccounts `json:"genesis_accounts,omitempty"` } -func (input Config) FromFile(path string) (*Config, error) { +func NewConfig(path string) (*Config, error) { + if path == "" { + return &Config{}, nil + } + bz, err := os.ReadFile(path) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("failed to read file: %s", path)) @@ -167,29 +174,30 @@ func (l1config *L1Config) Finalize(targetNetwork string) error { return nil } -type Account struct { - Address string `json:"address,omitempty"` - Mnemonic string `json:"mnemonic,omitempty"` +type SystemAccount struct { + L1Address string `json:"l1_address,omitempty"` + L2Address string `json:"l2_address,omitempty"` + Mnemonic string `json:"mnemonic,omitempty"` } -type AccountWithBalance struct { - Account - Coins string `json:"coins,omitempty"` +type GenesisAccount struct { + Address string `json:"address,omitempty"` + Coins string `json:"coins,omitempty"` } -type GenesisAccounts []AccountWithBalance +type GenesisAccounts []GenesisAccount func (gas *GenesisAccounts) Finalize(systemKeys SystemKeys) error { keys := reflect.ValueOf(systemKeys) for idx := 0; idx < keys.NumField(); idx++ { - k, ok := keys.Field(idx).Interface().(*Account) + k, ok := keys.Field(idx).Interface().(*SystemAccount) if !ok { return errors.New("systemKeys must be of type launcher.Account") } found := false for _, ga := range *gas { - if ga.Address == k.Address { + if ga.Address == k.L2Address { found = true break } @@ -198,8 +206,8 @@ func (gas *GenesisAccounts) Finalize(systemKeys SystemKeys) error { continue } - *gas = append(*gas, AccountWithBalance{ - Account: Account{Address: k.Address}, + *gas = append(*gas, GenesisAccount{ + Address: k.L2Address, Coins: "", }) } @@ -219,13 +227,13 @@ func (gas *GenesisAccounts) Finalize(systemKeys SystemKeys) error { } type SystemKeys struct { - Validator *Account `json:"validator,omitempty"` - BridgeExecutor *Account `json:"bridge_executor,omitempty"` - OutputSubmitter *Account `json:"output_submitter,omitempty"` - BatchSubmitter *Account `json:"batch_submitter,omitempty"` + Validator *SystemAccount `json:"validator,omitempty"` + BridgeExecutor *SystemAccount `json:"bridge_executor,omitempty"` + OutputSubmitter *SystemAccount `json:"output_submitter,omitempty"` + BatchSubmitter *SystemAccount `json:"batch_submitter,omitempty"` // Challenger does not require mnemonic - Challenger *Account `json:"challenger,omitempty"` + Challenger *SystemAccount `json:"challenger,omitempty"` } const mnemonicEntropySize = 256 @@ -243,7 +251,11 @@ func generateMnemonic() (string, error) { return mnemonic, nil } -func deriveAddress(mnemonic string) (string, error) { +func l1AddressFromBytes(bz []byte) (string, error) { + return authcodec.NewBech32Codec("init").BytesToString(bz) +} + +func deriveAddress(mnemonic string) (string, string, error) { algo := hd.Secp256k1 derivedPriv, err := algo.Derive()( mnemonic, @@ -251,11 +263,20 @@ func deriveAddress(mnemonic string) (string, error) { sdk.GetConfig().GetFullBIP44Path(), ) if err != nil { - return "", errors.Wrap(err, "failed to derive private key") + return "", "", errors.Wrap(err, "failed to derive private key") } privKey := algo.Generate()(derivedPriv) - return sdk.AccAddress(privKey.PubKey().Address()).String(), nil + addrBz := privKey.PubKey().Address() + + // use init Bech32 prefix for l1 address + l1Addr, err := l1AddressFromBytes(addrBz) + if err != nil { + return "", "", errors.Wrap(err, "failed to convert address to bech32") + } + + l2Addr, err := utils.L2AddressCodec().BytesToString(addrBz) + return l1Addr, l2Addr, err } func (systemKeys *SystemKeys) Finalize(buf *bufio.Reader) error { @@ -266,14 +287,15 @@ func (systemKeys *SystemKeys) Finalize(buf *bufio.Reader) error { } // derive address - addr, err := deriveAddress(mnemonic) + l1Addr, l2Addr, err := deriveAddress(mnemonic) if err != nil { return errors.Wrap(err, "failed to derive address") } - systemKeys.Validator = &Account{ - Address: addr, - Mnemonic: mnemonic, + systemKeys.Validator = &SystemAccount{ + L1Address: l1Addr, + L2Address: l2Addr, + Mnemonic: mnemonic, } } if systemKeys.BatchSubmitter == nil { @@ -283,14 +305,15 @@ func (systemKeys *SystemKeys) Finalize(buf *bufio.Reader) error { } // derive address - addr, err := deriveAddress(mnemonic) + l1Addr, l2Addr, err := deriveAddress(mnemonic) if err != nil { return errors.Wrap(err, "failed to derive address") } - systemKeys.BatchSubmitter = &Account{ - Address: addr, - Mnemonic: mnemonic, + systemKeys.BatchSubmitter = &SystemAccount{ + L1Address: l1Addr, + L2Address: l2Addr, + Mnemonic: mnemonic, } } if systemKeys.BridgeExecutor == nil { @@ -304,14 +327,15 @@ func (systemKeys *SystemKeys) Finalize(buf *bufio.Reader) error { } // derive address - addr, err := deriveAddress(mnemonic) + l1Addr, l2Addr, err := deriveAddress(mnemonic) if err != nil { return errors.Wrap(err, "failed to derive address") } - systemKeys.BridgeExecutor = &Account{ - Address: addr, - Mnemonic: mnemonic, + systemKeys.BridgeExecutor = &SystemAccount{ + L1Address: l1Addr, + L2Address: l2Addr, + Mnemonic: mnemonic, } } if systemKeys.Challenger == nil { @@ -321,14 +345,15 @@ func (systemKeys *SystemKeys) Finalize(buf *bufio.Reader) error { } // derive address - addr, err := deriveAddress(mnemonic) + l1Addr, l2Addr, err := deriveAddress(mnemonic) if err != nil { return errors.Wrap(err, "failed to derive address") } - systemKeys.Challenger = &Account{ - Address: addr, - Mnemonic: mnemonic, + systemKeys.Challenger = &SystemAccount{ + L1Address: l1Addr, + L2Address: l2Addr, + Mnemonic: mnemonic, } } if systemKeys.OutputSubmitter == nil { @@ -338,31 +363,32 @@ func (systemKeys *SystemKeys) Finalize(buf *bufio.Reader) error { } // derive address - addr, err := deriveAddress(mnemonic) + l1Addr, l2Addr, err := deriveAddress(mnemonic) if err != nil { return errors.Wrap(err, "failed to derive address") } - systemKeys.OutputSubmitter = &Account{ - Address: addr, - Mnemonic: mnemonic, + systemKeys.OutputSubmitter = &SystemAccount{ + L1Address: l1Addr, + L2Address: l2Addr, + Mnemonic: mnemonic, } } // validate all accounts - if systemKeys.Validator.Address == "" || systemKeys.Validator.Mnemonic == "" { + if systemKeys.Validator.L2Address == "" || systemKeys.Validator.Mnemonic == "" { return errors.New("validator account not initialized") } - if systemKeys.BridgeExecutor.Address == "" || systemKeys.BridgeExecutor.Mnemonic == "" { + if systemKeys.BridgeExecutor.L1Address == "" || systemKeys.BridgeExecutor.L2Address == "" || systemKeys.BridgeExecutor.Mnemonic == "" { return errors.New("bridge_executor account not initialized") } - if systemKeys.BatchSubmitter.Address == "" { + if systemKeys.BatchSubmitter.L1Address == "" { return errors.New("batch_submitter account not initialized") } - if systemKeys.OutputSubmitter.Address == "" { + if systemKeys.OutputSubmitter.L1Address == "" { return errors.New("output_submitter account not initialized") } - if systemKeys.Challenger.Address == "" { + if systemKeys.Challenger.L1Address == "" { return errors.New("challenger account not initialized") } diff --git a/contrib/launchtools/steps/bridgeinfo.go b/contrib/launchtools/steps/bridgeinfo.go index c001eb0b..c0337cf1 100644 --- a/contrib/launchtools/steps/bridgeinfo.go +++ b/contrib/launchtools/steps/bridgeinfo.go @@ -76,16 +76,16 @@ func SetBridgeInfo( // create SetBridgeInfo message setBridgeInfoMessage := setBridgeInfo( - config.SystemKeys.BridgeExecutor.Address, + config.SystemKeys.BridgeExecutor.L2Address, bridgeId, bridgeInfo.BridgeAddr, config.L1Config.ChainID, l1ClientID, bridgeInfo.BridgeConfig, ) - // send createOpBridgeMessage to host (L1) + // send MsgSetBridgeInfo to host (L1) txRes, err := ctx.GetRPCHelperL2().BroadcastTxAndWait( - config.SystemKeys.BridgeExecutor.Address, + config.SystemKeys.BridgeExecutor.L2Address, config.SystemKeys.BridgeExecutor.Mnemonic, 200000, sdk.NewCoins(), diff --git a/contrib/launchtools/steps/genesis.go b/contrib/launchtools/steps/genesis.go index 52167935..2008538e 100644 --- a/contrib/launchtools/steps/genesis.go +++ b/contrib/launchtools/steps/genesis.go @@ -18,6 +18,7 @@ import ( genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" "github.com/cosmos/go-bip39" "github.com/initia-labs/OPinit/contrib/launchtools" + "github.com/initia-labs/OPinit/contrib/launchtools/utils" opchildtypes "github.com/initia-labs/OPinit/x/opchild/types" "github.com/pkg/errors" ) @@ -107,7 +108,7 @@ func initializeGenesis( "created node identity", "node_id", nodeId, "chain_id", config.L2Config.ChainID, - "validator_address", validatorKeySpec.Address, + "validator_address", validatorKeySpec.L2Address, "moniker", cometConfig.Moniker, ) @@ -144,7 +145,7 @@ func initializeGenesis( // this call modifies appstate.opchild log.Info("adding genesis validator", "moniker", config.L2Config.Moniker, - "validator_address_acc", validatorKeySpec.Address, + "validator_address_acc", validatorKeySpec.L2Address, "validator_address_val", sdk.ValAddress(valPubKey.Address()).String(), ) opChildState, err := addGenesisValidator( @@ -165,15 +166,15 @@ func initializeGenesis( log.Info("adding fee whitelists", "whitelist-len", 3, "whitelists", strings.Join([]string{ - config.SystemKeys.Validator.Address, - config.SystemKeys.BridgeExecutor.Address, - config.SystemKeys.Challenger.Address, + config.SystemKeys.Validator.L2Address, + config.SystemKeys.BridgeExecutor.L2Address, + config.SystemKeys.Challenger.L2Address, }, ","), ) opChildState, err = addFeeWhitelists(cdc, genesisAppState, []string{ - config.SystemKeys.Validator.Address, - config.SystemKeys.BridgeExecutor.Address, - config.SystemKeys.Challenger.Address, + config.SystemKeys.Validator.L2Address, + config.SystemKeys.BridgeExecutor.L2Address, + config.SystemKeys.Challenger.L2Address, }) if err != nil { return nil, errors.Wrap(err, "failed to add fee whitelists") @@ -184,10 +185,10 @@ func initializeGenesis( // Step 4 ------------------------------------------------------------------------------------------- // Set bridge executor address in the genesis parameter log.Info("setting bridge executor address", - "bridge-executor", config.SystemKeys.BridgeExecutor.Address, + "bridge-executor", config.SystemKeys.BridgeExecutor.L2Address, ) - opChildState, err = setOpChildBridgeExecutorAddress(cdc, genesisAppState, config.SystemKeys.BridgeExecutor.Address) + opChildState, err = setOpChildBridgeExecutorAddress(cdc, genesisAppState, config.SystemKeys.BridgeExecutor.L2Address) if err != nil { return nil, errors.Wrap(err, "failed to set bridge executor address") } @@ -197,10 +198,10 @@ func initializeGenesis( // Step 5 ------------------------------------------------------------------------------------------- // Set admin address in the genesis parameter log.Info("setting admin address", - "admin", config.SystemKeys.Validator.Address, + "admin", config.SystemKeys.Validator.L2Address, ) - opChildState, err = setOpChildAdminAddress(cdc, genesisAppState, config.SystemKeys.Validator.Address) + opChildState, err = setOpChildAdminAddress(cdc, genesisAppState, config.SystemKeys.Validator.L2Address) if err != nil { return nil, errors.Wrap(err, "failed to set bridge executor address") } @@ -236,7 +237,7 @@ func initializeGenesis( return appGenesis, nil } -func addGenesisAccounts(cdc codec.Codec, genesisAppState map[string]json.RawMessage, genAccsManifest []launchtools.AccountWithBalance) ( +func addGenesisAccounts(cdc codec.Codec, genesisAppState map[string]json.RawMessage, genAccsManifest []launchtools.GenesisAccount) ( *authtypes.GenesisState, *banktypes.GenesisState, error, @@ -253,7 +254,7 @@ func addGenesisAccounts(cdc codec.Codec, genesisAppState map[string]json.RawMess for _, acc := range genAccsManifest { // acc - addr, addrErr := sdk.AccAddressFromBech32(acc.Address) + addr, addrErr := utils.L2AddressCodec().StringToBytes(acc.Address) if addrErr != nil { return nil, nil, errors.Wrap(addrErr, fmt.Sprintf("failed to parse genesis account address %s", acc.Address)) } diff --git a/contrib/launchtools/steps/ibc.go b/contrib/launchtools/steps/ibc.go index 1662de96..d6d5972a 100644 --- a/contrib/launchtools/steps/ibc.go +++ b/contrib/launchtools/steps/ibc.go @@ -8,12 +8,15 @@ import ( "path" "reflect" + "github.com/pkg/errors" + "cosmossdk.io/log" + sdk "github.com/cosmos/cosmos-sdk/types" relayercmd "github.com/cosmos/relayer/v2/cmd" relayertypes "github.com/cosmos/relayer/v2/relayer" relayerconfig "github.com/cosmos/relayer/v2/relayer/chains/cosmos" + "github.com/initia-labs/OPinit/contrib/launchtools" - "github.com/pkg/errors" ) // EstablishIBCChannelsWithNFTTransfer creates a new IBC channel for fungible transfer, and one with NFT transfer @@ -53,6 +56,12 @@ func establishIBCChannels( ) return func(ctx launchtools.Launcher) error { + // ibc relayer seems changing the bech32 prefix for the account, + // so we need to reset it after the relayer setup is done + originPrefix := sdk.GetConfig().GetBech32AccountAddrPrefix() + originPubPrefix := sdk.GetConfig().GetBech32AccountPubPrefix() + defer sdk.GetConfig().SetBech32PrefixForAccount(originPrefix, originPubPrefix) + if !ctx.IsAppInitialized() { return errors.New("app is not initialized") } @@ -102,7 +111,7 @@ func initializeChains(config *launchtools.Config, basePath string) func(*Relayer Key: RelayerKeyName, ChainID: config.L2Config.ChainID, RPCAddr: "http://localhost:26657", - AccountPrefix: "init", + AccountPrefix: sdk.GetConfig().GetBech32AccountAddrPrefix(), KeyringBackend: KeyringBackend, GasAdjustment: 1.5, GasPrices: "", // gas prices required for l2 txs @@ -201,7 +210,7 @@ func initializeRelayerKeyring(config *launchtools.Config) func(*Relayer) error { panic(errors.New("relayer key not found in config")) } - relayerKey := relayerKeyFromInput.Interface().(*launchtools.Account) + relayerKey := relayerKeyFromInput.Interface().(*launchtools.SystemAccount) return func(r *Relayer) error { r.logger.Info("initializing keyring for relayer...", "key-name", RelayerKeyName, diff --git a/contrib/launchtools/steps/keyring.go b/contrib/launchtools/steps/keyring.go index bfec12a5..cc272266 100644 --- a/contrib/launchtools/steps/keyring.go +++ b/contrib/launchtools/steps/keyring.go @@ -11,6 +11,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/initia-labs/OPinit/contrib/launchtools" + "github.com/initia-labs/OPinit/contrib/launchtools/utils" ) var _ launchtools.LauncherStepFuncFactory[*launchtools.Config] = InitializeKeyring @@ -26,7 +27,7 @@ func InitializeKeyring(config *launchtools.Config) launchtools.LauncherStepFunc systemKeys := reflect.ValueOf(*config.SystemKeys) for i := 0; i < systemKeys.NumField(); i++ { fieldName := systemKeys.Type().Field(i).Name - k, ok := systemKeys.Field(i).Interface().(*launchtools.Account) + k, ok := systemKeys.Field(i).Interface().(*launchtools.SystemAccount) if !ok { panic(errors.New("systemKeys must be of type launcher.Account")) } @@ -38,7 +39,7 @@ func InitializeKeyring(config *launchtools.Config) launchtools.LauncherStepFunc l.Info("adding system key", "key-name", fieldName, - "address", k.Address, + "address", k.L2Address, ) accountRecord, err := kr.NewAccount( @@ -60,8 +61,26 @@ func InitializeKeyring(config *launchtools.Config) launchtools.LauncherStepFunc return errors.Wrapf(addrErr, "failed to get address for key %s", fieldName) } - if addr.String() != k.Address { - return errors.Errorf("address mismatch for key %s, keyring=%s, input=%s", fieldName, addr.String(), k.Address) + if k.L2Address != "" { + l2Addr, err := utils.L2AddressCodec().BytesToString(addr) + if err != nil { + return errors.Wrapf(err, "failed to convert address to string for key %s", fieldName) + } + + if l2Addr != k.L2Address { + return errors.Errorf("address mismatch for key %s, keyring=%s, input=%s", fieldName, l2Addr, k.L2Address) + } + } + + if k.L1Address != "" { + l1Addr, err := utils.L1AddressCodec().BytesToString(addr) + if err != nil { + return errors.Wrapf(err, "failed to convert address to string for key %s", fieldName) + } + + if l1Addr != k.L1Address { + return errors.Errorf("address mismatch for key %s, keyring=%s, input=%s", fieldName, l1Addr, k.L1Address) + } } return nil diff --git a/contrib/launchtools/steps/opbridge.go b/contrib/launchtools/steps/opbridge.go index cf3caccc..c9e5e50a 100644 --- a/contrib/launchtools/steps/opbridge.go +++ b/contrib/launchtools/steps/opbridge.go @@ -41,10 +41,10 @@ func InitializeOpBridge( // create OpBridgeMessage createOpBridgeMessage, err := createOpBridge( channels.Channels, - config.SystemKeys.BridgeExecutor.Address, - config.SystemKeys.Challenger.Address, - config.SystemKeys.OutputSubmitter.Address, - config.SystemKeys.BatchSubmitter.Address, + config.SystemKeys.BridgeExecutor.L1Address, + config.SystemKeys.Challenger.L1Address, + config.SystemKeys.OutputSubmitter.L1Address, + config.SystemKeys.BatchSubmitter.L1Address, config.OpBridge.BatchSubmitTarget, *config.OpBridge.OutputSubmissionInterval, *config.OpBridge.OutputFinalizationPeriod, @@ -58,7 +58,7 @@ func InitializeOpBridge( } ctx.Logger().Info("broadcasting tx to L1...", - "from-address", config.SystemKeys.BridgeExecutor.Address, + "from-address", config.SystemKeys.BridgeExecutor.L1Address, ) // already validated in config.go @@ -67,7 +67,7 @@ func InitializeOpBridge( // send createOpBridgeMessage to host (L1) res, err := ctx.GetRPCHelperL1().BroadcastTxAndWait( - config.SystemKeys.BridgeExecutor.Address, + config.SystemKeys.BridgeExecutor.L1Address, config.SystemKeys.BridgeExecutor.Mnemonic, 200000, gasFees, diff --git a/contrib/launchtools/steps/rpc.go b/contrib/launchtools/steps/rpc.go index fb3216c2..d08cdb35 100644 --- a/contrib/launchtools/steps/rpc.go +++ b/contrib/launchtools/steps/rpc.go @@ -21,6 +21,7 @@ func InitializeRPCHelpers(config *launchtools.Config) launchtools.LauncherStepFu ) l1, err := launchutils.NewRPCHelper( + true, ctx.Logger().With("module", "rpc-helper"), config.L1Config.RPC_URL, config.L1Config.ChainID, @@ -38,6 +39,7 @@ func InitializeRPCHelpers(config *launchtools.Config) launchtools.LauncherStepFu ) l2, err := launchutils.NewRPCHelper( + false, ctx.Logger().With("module", "rpc-helper"), "http://localhost:26657", config.L2Config.ChainID, diff --git a/contrib/launchtools/utils/address.go b/contrib/launchtools/utils/address.go new file mode 100644 index 00000000..9ced3f40 --- /dev/null +++ b/contrib/launchtools/utils/address.go @@ -0,0 +1,25 @@ +package utils + +import ( + "cosmossdk.io/core/address" + sdk "github.com/cosmos/cosmos-sdk/types" + authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec" +) + +func L1AddressCodec() address.Codec { + return authcodec.NewBech32Codec("init") +} + +func L2AddressCodec() address.Codec { + return authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()) +} + +func HackBech32Prefix(prefix string) func() { + originPrefix := sdk.GetConfig().GetBech32AccountAddrPrefix() + originPubPrefix := sdk.GetConfig().GetBech32AccountPubPrefix() + sdk.GetConfig().SetBech32PrefixForAccount(prefix, prefix+"pub") + + return func() { + sdk.GetConfig().SetBech32PrefixForAccount(originPrefix, originPubPrefix) + } +} diff --git a/contrib/launchtools/utils/rpc.go b/contrib/launchtools/utils/rpc.go index c2f64bbb..ebc56a53 100644 --- a/contrib/launchtools/utils/rpc.go +++ b/contrib/launchtools/utils/rpc.go @@ -10,6 +10,7 @@ import ( "github.com/cometbft/cometbft/rpc/client/http" coretypes "github.com/cometbft/cometbft/rpc/core/types" + "cosmossdk.io/core/address" "cosmossdk.io/log" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" @@ -21,6 +22,7 @@ import ( ) type RPCHelper struct { + isL1 bool log log.Logger cliCtx client.Context } @@ -30,6 +32,7 @@ type RPCHelper struct { // - Assumes that cdc and interfaceRegistry already registered all the necessary types. (ophost/opchild inclusively) // - Assumes that txConfig is already set up. func NewRPCHelper( + isL1 bool, log log.Logger, rpcAddr string, chainId string, @@ -42,8 +45,10 @@ func NewRPCHelper( return nil, err } + cdc.InterfaceRegistry().SigningContext().AddressCodec() return &RPCHelper{ - log: log, + isL1: isL1, + log: log, cliCtx: client.Context{}. WithClient(httpCli). WithChainID(chainId). @@ -58,9 +63,20 @@ func (r *RPCHelper) GetStatus() (*coretypes.ResultStatus, error) { return r.cliCtx.Client.Status(context.Background()) } -// GetNonce returns the account information for the given address -func (r *RPCHelper) GetNonce(address string) (client.Account, error) { - addr, _ := sdk.AccAddressFromBech32(address) +// getNonce returns the account information for the given address +func (r *RPCHelper) getNonce(addrStr string) (client.Account, error) { + var ac address.Codec + if r.isL1 { + ac = L1AddressCodec() + } else { + ac = L2AddressCodec() + } + + addr, err := ac.StringToBytes(addrStr) + if err != nil { + return nil, err + } + ar := authtypes.AccountRetriever{} return ar.GetAccount( r.cliCtx, @@ -110,7 +126,12 @@ func (r *RPCHelper) BroadcastTxAndWait( "msgs-len", len(msgs), ) - acc, err := r.GetNonce(senderAddress) + if r.isL1 { + cleanup := HackBech32Prefix("init") + defer cleanup() + } + + acc, err := r.getNonce(senderAddress) if err != nil { return nil, errors.Wrapf(err, "failed to get nonce for %s", senderAddress) } diff --git a/contrib/launchtools/utils/tx.go b/contrib/launchtools/utils/tx.go index ee47e703..02691b7a 100644 --- a/contrib/launchtools/utils/tx.go +++ b/contrib/launchtools/utils/tx.go @@ -2,6 +2,7 @@ package utils import ( "context" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/tx" "github.com/cosmos/cosmos-sdk/crypto/hd" @@ -69,6 +70,9 @@ func SignTxOffline( ctx.TxConfig, sequence, ) + if err != nil { + return nil, errors.Wrapf(err, "failed to sign with private key") + } // set signature if err := txbldr.SetSignatures(sigV2); err != nil { @@ -76,9 +80,9 @@ func SignTxOffline( } // validate if the transaction is valid - if err := txbldr.GetTx().ValidateBasic(); err != nil { - return nil, errors.Wrapf(err, "failed to validate basic") - } + // if err := txbldr.GetTx().ValidateBasic(); err != nil { + // return nil, errors.Wrapf(err, "failed to validate basic") + // } // return if no problem return txbldr.GetTx(), nil diff --git a/proto/opinit/opchild/v1/genesis.proto b/proto/opinit/opchild/v1/genesis.proto index 4311a9e2..c7b3ce42 100644 --- a/proto/opinit/opchild/v1/genesis.proto +++ b/proto/opinit/opchild/v1/genesis.proto @@ -20,10 +20,13 @@ message GenesisState { // delegations defines the validator set at genesis. repeated Validator validators = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - bool exported = 5; - uint64 next_l2_sequence = 6; - uint64 next_l1_sequence = 7; - BridgeInfo bridge_info = 8; + // 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; } // LastValidatorPower required for validator set update logic. diff --git a/proto/opinit/opchild/v1/types.proto b/proto/opinit/opchild/v1/types.proto index 93d40e96..aaea101f 100644 --- a/proto/opinit/opchild/v1/types.proto +++ b/proto/opinit/opchild/v1/types.proto @@ -100,3 +100,12 @@ message BridgeInfo { // bridge_config is the configuration of the bridge. opinit.ophost.v1.BridgeConfig bridge_config = 5 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; } + +// PendingDeposits defines the set of pending deposits. +message PendingDeposits { + repeated cosmos.base.v1beta1.Coin deposits = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} diff --git a/proto/opinit/ophost/v1/query.proto b/proto/opinit/ophost/v1/query.proto index 32c62ddc..930c5e86 100644 --- a/proto/opinit/ophost/v1/query.proto +++ b/proto/opinit/ophost/v1/query.proto @@ -43,6 +43,7 @@ service Query { option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/token_pairs"; } + // LastFinalizedOutput queries last finalized output. rpc LastFinalizedOutput(QueryLastFinalizedOutputRequest) returns (QueryLastFinalizedOutputResponse) { option (cosmos.query.v1.module_query_safe) = true; option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/last_finalized_output"; @@ -162,7 +163,6 @@ message QueryOutputProposalResponse { // QueryOutputProposalsRequest is response type for the Query/OutputProposals RPC method message QueryOutputProposalsRequest { uint64 bridge_id = 1; - uint64 output_index = 2; // pagination defines the pagination in the request. cosmos.base.query.v1beta1.PageRequest pagination = 3; } diff --git a/x/opchild/client/cli/tx.go b/x/opchild/client/cli/tx.go index 48fb96da..8f02b5d2 100644 --- a/x/opchild/client/cli/tx.go +++ b/x/opchild/client/cli/tx.go @@ -71,10 +71,9 @@ func NewDepositCmd(ac address.Codec) *cobra.Command { return err } - from, err := ac.StringToBytes(args[2]) - if err != nil { - return err - } + // we can't validate the address here because the address is not l2 address. + fromAddr := args[2] + to, err := ac.StringToBytes(args[3]) if err != nil { return err @@ -94,7 +93,7 @@ func NewDepositCmd(ac address.Codec) *cobra.Command { txf, msg, err := newBuildDepositMsg( clientCtx, ac, txf, sequence, height, - from, to, amount, baseDenom, + fromAddr, to, amount, baseDenom, []byte(hookMsg), ) if err != nil { @@ -128,16 +127,15 @@ func NewWithdrawCmd(ac address.Codec) *cobra.Command { return err } - to, err := ac.StringToBytes(args[0]) - if err != nil { - return err - } + // we can't validate the address here because the address is not l2 address. + toAddr := args[0] + amount, err := sdk.ParseCoinNormalized(args[1]) if err != nil { return err } - txf, msg, err := newBuildWithdrawMsg(clientCtx, ac, txf, to, amount) + txf, msg, err := newBuildWithdrawMsg(clientCtx, ac, txf, toAddr, amount) if err != nil { return err } @@ -361,18 +359,13 @@ func NewSetBridgeInfoCmd(ac address.Codec) *cobra.Command { return cmd } -func newBuildWithdrawMsg(clientCtx client.Context, ac address.Codec, txf tx.Factory, to sdk.AccAddress, amount sdk.Coin) (tx.Factory, *types.MsgInitiateTokenWithdrawal, error) { +func newBuildWithdrawMsg(clientCtx client.Context, ac address.Codec, txf tx.Factory, toAddr string, amount sdk.Coin) (tx.Factory, *types.MsgInitiateTokenWithdrawal, error) { sender := clientCtx.GetFromAddress() senderAddr, err := ac.BytesToString(sender) if err != nil { return txf, nil, err } - toAddr, err := ac.BytesToString(to) - if err != nil { - return txf, nil, err - } - msg := types.NewMsgInitiateTokenWithdrawal(senderAddr, toAddr, amount) if err := msg.Validate(ac); err != nil { return txf, nil, err @@ -387,7 +380,8 @@ func newBuildDepositMsg( txf tx.Factory, sequence uint64, height uint64, - from, to sdk.AccAddress, + fromAddr string, + to sdk.AccAddress, amount sdk.Coin, baseDenom string, hookMsg []byte, @@ -398,11 +392,6 @@ func newBuildDepositMsg( return txf, nil, err } - fromAddr, err := ac.BytesToString(from) - if err != nil { - return txf, nil, err - } - toAddr, err := ac.BytesToString(to) if err != nil { return txf, nil, err diff --git a/x/opchild/client/cli/tx_test.go b/x/opchild/client/cli/tx_test.go index fc827df2..9b113349 100644 --- a/x/opchild/client/cli/tx_test.go +++ b/x/opchild/client/cli/tx_test.go @@ -101,16 +101,16 @@ func (s *CLITestSuite) TestNewWithdrawCmd() { respType proto.Message }{ { - "invalid transaction (invalid to_l1)", + "valid transaction (not init-prefixed to_l1)", []string{ - "_invalid_acc_", + "anyformataddr", "100umin", fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), 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{}, + false, 0, &sdk.TxResponse{}, }, { "invalid transaction (invalid amount)", @@ -167,11 +167,11 @@ func (s *CLITestSuite) TestNewDepositCmd() { respType proto.Message }{ { - "invalid transaction (invalid from_l1)", + "valid transaction (not init-prefixed from_l1)", []string{ "1", "1", - "_invalid_acc_", + "l1addrinanyformat", s.addrs[0].String(), "100umin", "test_token", @@ -180,7 +180,7 @@ func (s *CLITestSuite) TestNewDepositCmd() { 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{}, + false, 0, &sdk.TxResponse{}, }, { "invalid transaction (invalid to_l2)", diff --git a/x/opchild/keeper/keeper.go b/x/opchild/keeper/keeper.go index 90d74f7b..2771d795 100644 --- a/x/opchild/keeper/keeper.go +++ b/x/opchild/keeper/keeper.go @@ -51,6 +51,7 @@ type Keeper struct { ValidatorsByConsAddr collections.Map[[]byte, []byte] HistoricalInfos collections.Map[int64, cosmostypes.HistoricalInfo] DenomPairs collections.Map[string, string] + PendingDeposits collections.Map[[]byte, types.PendingDeposits] ExecutorChangePlans map[uint64]types.ExecutorChangePlan @@ -109,6 +110,7 @@ func NewKeeper( 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.PendingDeposits](cdc)), ExecutorChangePlans: make(map[uint64]types.ExecutorChangePlan), HostValidatorStore: hostValidatorStore, diff --git a/x/opchild/keeper/msg_server.go b/x/opchild/keeper/msg_server.go index 78d06e59..7db124ce 100644 --- a/x/opchild/keeper/msg_server.go +++ b/x/opchild/keeper/msg_server.go @@ -3,9 +3,12 @@ package keeper import ( "bytes" "context" + "errors" "strconv" - "cosmossdk.io/errors" + "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" @@ -34,7 +37,7 @@ func (ms MsgServer) checkAdminPermission(ctx context.Context, sender string) err } if params.Admin != sender { - return errors.Wrapf(sdkerrors.ErrUnauthorized, "the message is allowed to be executed by admin %s", params.Admin) + return errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "the message is allowed to be executed by admin %s", params.Admin) } return nil @@ -58,7 +61,7 @@ func (ms MsgServer) checkBridgeExecutorPermission(ctx context.Context, sender st } } if !isIncluded { - return errors.Wrapf(sdkerrors.ErrUnauthorized, "expected included in %s, got %s", bridgeExecutors, sender) + return errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "expected included in %s, got %s", bridgeExecutors, sender) } return nil } @@ -94,7 +97,7 @@ func (ms MsgServer) ExecuteMessages(ctx context.Context, req *types.MsgExecuteMe // perform a basic validation of the message if m, ok := msg.(sdk.HasValidateBasic); ok { if err := m.ValidateBasic(); err != nil { - return nil, errors.Wrap(types.ErrInvalidExecuteMsg, err.Error()) + return nil, errorsmod.Wrap(types.ErrInvalidExecuteMsg, err.Error()) } } @@ -108,12 +111,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, errors.Wrapf(types.ErrInvalidSigner, sdk.AccAddress(signers[0]).String()) + return nil, errorsmod.Wrapf(types.ErrInvalidSigner, sdk.AccAddress(signers[0]).String()) } handler := ms.Router().Handler(msg) if handler == nil { - return nil, errors.Wrap(types.ErrUnroutableExecuteMsg, sdk.MsgTypeURL(msg)) + return nil, errorsmod.Wrap(types.ErrUnroutableExecuteMsg, sdk.MsgTypeURL(msg)) } var res *sdk.Result @@ -143,7 +146,7 @@ func (ms MsgServer) AddValidator(ctx context.Context, req *types.MsgAddValidator } if ms.authority != req.Authority { - return nil, errors.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", ms.authority, req.Authority) + return nil, errorsmod.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", ms.authority, req.Authority) } allValidators, err := ms.GetAllValidators(ctx) @@ -173,7 +176,7 @@ func (ms MsgServer) AddValidator(ctx context.Context, req *types.MsgAddValidator pk, ok := req.Pubkey.GetCachedValue().(cryptotypes.PubKey) if !ok { - return nil, errors.Wrapf(sdkerrors.ErrInvalidType, "Expecting cryptotypes.PubKey, got %T", pk) + return nil, errorsmod.Wrapf(sdkerrors.ErrInvalidType, "Expecting cryptotypes.PubKey, got %T", pk) } if _, found := ms.GetValidatorByConsAddr(ctx, sdk.GetConsAddress(pk)); found { @@ -191,7 +194,7 @@ func (ms MsgServer) AddValidator(ctx context.Context, req *types.MsgAddValidator } } if !hasKeyType { - return nil, errors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrValidatorPubKeyTypeNotSupported, "got: %s, expected: %s", pk.Type(), cp.Validator.PubKeyTypes, ) @@ -227,7 +230,7 @@ func (ms MsgServer) RemoveValidator(ctx context.Context, req *types.MsgRemoveVal } if ms.authority != req.Authority { - return nil, errors.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", ms.authority, req.Authority) + return nil, errorsmod.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", ms.authority, req.Authority) } sdkCtx := sdk.UnwrapSDKContext(ctx) @@ -238,7 +241,7 @@ func (ms MsgServer) RemoveValidator(ctx context.Context, req *types.MsgRemoveVal val, found := ms.Keeper.GetValidator(ctx, valAddr) if !found { - return nil, errors.Wrap(types.ErrNoValidatorFound, val.OperatorAddress) + return nil, errorsmod.Wrap(types.ErrNoValidatorFound, val.OperatorAddress) } val.ConsPower = 0 @@ -270,7 +273,7 @@ func (ms MsgServer) UpdateParams(ctx context.Context, req *types.MsgUpdateParams } if ms.authority != req.Authority { - return nil, errors.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", ms.authority, req.Authority) + return nil, errorsmod.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", ms.authority, req.Authority) } if err := ms.SetParams(ctx, *req.Params); err != nil { @@ -287,7 +290,7 @@ func (ms MsgServer) SpendFeePool(ctx context.Context, req *types.MsgSpendFeePool } if ms.authority != req.Authority { - return nil, errors.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", ms.authority, req.Authority) + return nil, errorsmod.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", ms.authority, req.Authority) } recipientAddr, err := ms.authKeeper.AddressCodec().StringToBytes(req.Recipient) @@ -388,31 +391,30 @@ func (ms MsgServer) FinalizeTokenDeposit(ctx context.Context, req *types.MsgFina return nil, types.ErrInvalidSequence } - fromAddr, err := ms.authKeeper.AddressCodec().StringToBytes(req.From) - if err != nil { - return nil, err - } - - toAddr, err := ms.authKeeper.AddressCodec().StringToBytes(req.To) - if err != nil { - return nil, err - } - coins := sdk.NewCoins(coin) if err := ms.bankKeeper.MintCoins(ctx, types.ModuleName, coins); err != nil { return nil, err } - err = ms.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, toAddr, coins) - if err != nil { - ms.Logger(ctx).Error("failed to finalize token deposit", "error", err) + // handle hook - if the recipient is "hook" + executeHook := len(req.Data) > 0 && req.To == "hook" - // refund the deposit to the sender address - if err := ms.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, fromAddr, coins); err != nil { + 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) + if err != nil { + return nil, err + } + if _, err := ms.IncreaseNextL1Sequence(ctx); err != nil { return nil, err } @@ -441,23 +443,57 @@ func (ms MsgServer) FinalizeTokenDeposit(ctx context.Context, req *types.MsgFina sdk.NewAttribute(types.AttributeKeyFinalizeHeight, strconv.FormatUint(req.Height, 10)), ) - // handle hook - if len(req.Data) > 0 { - subCtx, commit := sdkCtx.CacheContext() + if success && executeHook { + cacheCtx, commit := sdkCtx.CacheContext() - err = ms.bridgeHook(subCtx, fromAddr, req.Data) - if err == nil { + // 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, "true")) - } else { - event = event.AppendAttributes(sdk.NewAttribute(types.AttributeKeyHookSuccess, "false")) } + + event = event.AppendAttributes(sdk.NewAttribute(types.AttributeKeyHookSuccess, strconv.FormatBool(err == nil))) } - sdkCtx.EventManager().EmitEvent(event) + sdkCtx.EventManager().EmitEvent(event) return &types.MsgFinalizeTokenDepositResponse{}, 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.PendingDeposits{ + Deposits: sdk.NewCoins(), + } + } else if err != nil { + return false, err + } + + pendingDeposits.Deposits = pendingDeposits.Deposits.Add(coins...) + if err := ms.PendingDeposits.Set(ctx, toAddr, pendingDeposits); err != nil { + return false, err + } + + return false, nil + } + + // write the changes only if the transfer is successful + commit() + + return true, nil +} + ///////////////////////////////////////////////////// // The messages for User @@ -467,8 +503,8 @@ func (ms MsgServer) InitiateTokenWithdrawal(ctx context.Context, req *types.MsgI return nil, err } - sdkCtx := sdk.UnwrapSDKContext(ctx) coin := req.Amount + burnCoins := sdk.NewCoins(coin) // check denom pair existence if ok, err := ms.DenomPairs.Has(ctx, coin.Denom); err != nil { @@ -482,18 +518,55 @@ func (ms MsgServer) InitiateTokenWithdrawal(ctx context.Context, req *types.MsgI return nil, err } - coins := sdk.NewCoins(coin) + // check pending deposits and withdraw from them if necessary + pendingDeposits, err := ms.PendingDeposits.Get(ctx, senderAddr) + if err == nil { + pendingAmount := pendingDeposits.Deposits.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.Deposits = pendingDeposits.Deposits.Sub(withdrawnCoinFromPendingDeposits) + if pendingDeposits.Deposits.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 } - if err := ms.bankKeeper.SendCoinsFromAccountToModule(ctx, senderAddr, types.ModuleName, coins); 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() { + if err := ms.bankKeeper.SendCoinsFromAccountToModule(ctx, senderAddr, types.ModuleName, sdk.NewCoins(coin)); err != nil { + return nil, err + } } - if err := ms.bankKeeper.BurnCoins(ctx, types.ModuleName, coins); err != nil { + + // burn withdrawn coins from the module account + if err := ms.bankKeeper.BurnCoins(ctx, types.ModuleName, burnCoins); err != nil { return nil, err } + sdkCtx := sdk.UnwrapSDKContext(ctx) sdkCtx.EventManager().EmitEvent(sdk.NewEvent( types.EventTypeInitiateTokenWithdrawal, sdk.NewAttribute(types.AttributeKeyFrom, req.Sender), diff --git a/x/opchild/keeper/msg_server_test.go b/x/opchild/keeper/msg_server_test.go index d298fe3f..0d4abefe 100644 --- a/x/opchild/keeper/msg_server_test.go +++ b/x/opchild/keeper/msg_server_test.go @@ -6,6 +6,7 @@ import ( "encoding/json" "errors" "math/big" + "slices" "testing" "time" @@ -299,7 +300,7 @@ func Test_MsgServer_Withdraw(t *testing.T) { baseDenom := "test_token" denom := ophosttypes.L2Denom(1, baseDenom) - _, err = ms.FinalizeTokenDeposit(ctx, types.NewMsgFinalizeTokenDeposit(addrsStr[0], addrsStr[1], 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))) @@ -309,7 +310,7 @@ func Test_MsgServer_Withdraw(t *testing.T) { require.NoError(t, err) // not token from l1 - msg := types.NewMsgInitiateTokenWithdrawal(accountAddr, addrsStr[1], sdk.NewCoin("foo", math.NewInt(100))) + msg := types.NewMsgInitiateTokenWithdrawal(accountAddr, "anyformataddr", sdk.NewCoin("foo", math.NewInt(100))) _, err = ms.InitiateTokenWithdrawal(ctx, msg) require.Error(t, err) @@ -407,10 +408,15 @@ func Test_MsgServer_Deposit_ToModuleAccount(t *testing.T) { require.NoError(t, err) afterToBalance := input.BankKeeper.GetBalance(ctx, addrs[1], denom) - require.Equal(t, math.NewInt(100), afterToBalance.Amount) + require.Equal(t, math.ZeroInt(), afterToBalance.Amount) afterModuleBalance := input.BankKeeper.GetBalance(ctx, opchildModuleAddress, denom) - require.Equal(t, math.ZeroInt(), afterModuleBalance.Amount) + 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.Deposits[0].Amount, math.NewInt(100)) } func Test_MsgServer_Deposit_NoHook(t *testing.T) { @@ -453,20 +459,21 @@ func Test_MsgServer_Deposit_HookSuccess(t *testing.T) { input.BridgeHook.err = nil // valid deposit - msg := types.NewMsgFinalizeTokenDeposit(addrsStr[0], addrsStr[1], addrsStr[1], sdk.NewCoin(denom, math.NewInt(100)), 1, 1, "test_token", hookMsgBytes) + msg := types.NewMsgFinalizeTokenDeposit(addrsStr[0], addrsStr[1], "hook", sdk.NewCoin(denom, math.NewInt(100)), 1, 1, "test_token", hookMsgBytes) _, 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 { - for _, attr := range event.Attributes { - if attr.Key == types.AttributeKeyHookSuccess { - require.Equal(t, "true", attr.Value) - } - } + require.True(t, slices.Contains(event.Attributes, sdk.NewAttribute(types.AttributeKeyHookSuccess, "true").ToKVPair())) } } + + // intermediate sender balance + intermediateSender := types.DeriveIntermediateSender(addrsStr[1]) + afterBalance := input.BankKeeper.GetBalance(ctx, intermediateSender, denom) + require.Equal(t, math.NewInt(100), afterBalance.Amount) } func Test_MsgServer_Deposit_HookFail(t *testing.T) { diff --git a/x/opchild/types/genesis.go b/x/opchild/types/genesis.go index c7fb1aef..59a39b2c 100644 --- a/x/opchild/types/genesis.go +++ b/x/opchild/types/genesis.go @@ -19,6 +19,7 @@ func NewGenesisState(params Params, validators []Validator, bridgeInfo *BridgeIn return &GenesisState{ Params: params, LastValidatorPowers: []LastValidatorPower{}, + PendingDeposits: []PendingDeposits{}, Validators: validators, Exported: false, BridgeInfo: bridgeInfo, @@ -31,10 +32,11 @@ func DefaultGenesisState() *GenesisState { Params: DefaultParams(), LastValidatorPowers: []LastValidatorPower{}, Validators: []Validator{}, - Exported: false, + PendingDeposits: []PendingDeposits{}, NextL1Sequence: DefaultL1SequenceStart, NextL2Sequence: DefaultL2SequenceStart, BridgeInfo: nil, + Exported: false, } } diff --git a/x/opchild/types/genesis.pb.go b/x/opchild/types/genesis.pb.go index 548c1228..2b1e41c0 100644 --- a/x/opchild/types/genesis.pb.go +++ b/x/opchild/types/genesis.pb.go @@ -33,11 +33,13 @@ 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"` - Exported bool `protobuf:"varint,5,opt,name=exported,proto3" json:"exported,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"` + 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"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -94,11 +96,11 @@ func (m *GenesisState) GetValidators() []Validator { return nil } -func (m *GenesisState) GetExported() bool { +func (m *GenesisState) GetPendingDeposits() []PendingDeposits { if m != nil { - return m.Exported + return m.PendingDeposits } - return false + return nil } func (m *GenesisState) GetNextL2Sequence() uint64 { @@ -122,6 +124,13 @@ func (m *GenesisState) GetBridgeInfo() *BridgeInfo { return nil } +func (m *GenesisState) GetExported() bool { + if m != nil { + return m.Exported + } + return false +} + // LastValidatorPower required for validator set update logic. type LastValidatorPower struct { // address is the address of the validator. @@ -171,36 +180,38 @@ func init() { func init() { proto.RegisterFile("opinit/opchild/v1/genesis.proto", fileDescriptor_08c29689c0e7bd55) } var fileDescriptor_08c29689c0e7bd55 = []byte{ - // 464 bytes of a gzipped FileDescriptorProto + // 495 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, 0xb7, 0xdb, 0x9d, 0x8a, 0xb8, 0x63, 0x85, 0x6c, 0x71, 0xd3, 0xb0, 0x20, - 0x04, 0xa1, 0x09, 0x8d, 0x37, 0x11, 0xc1, 0x5e, 0x8a, 0xb0, 0x60, 0x49, 0xc1, 0x83, 0x97, 0x30, - 0x69, 0x66, 0xd3, 0x81, 0x74, 0x26, 0xce, 0xcc, 0xd6, 0xfa, 0x0d, 0x3c, 0xfa, 0x11, 0xf6, 0x28, - 0x78, 0xf1, 0xe0, 0x87, 0xd8, 0xe3, 0xe2, 0xc9, 0x93, 0x48, 0x7b, 0xd0, 0x8f, 0x21, 0x9d, 0xc9, - 0xa6, 0x85, 0xf4, 0x32, 0xcc, 0x7b, 0xef, 0xf7, 0xfe, 0xf3, 0x98, 0xf7, 0x87, 0x3d, 0x5e, 0x50, - 0x46, 0x55, 0xc0, 0x8b, 0xe9, 0x8c, 0xe6, 0x69, 0xb0, 0x18, 0x04, 0x19, 0x61, 0x44, 0x52, 0xe9, - 0x17, 0x82, 0x2b, 0x8e, 0x4e, 0x0c, 0xe0, 0x97, 0x80, 0xbf, 0x18, 0x74, 0x4f, 0xf0, 0x9c, 0x32, - 0x1e, 0xe8, 0xd3, 0x50, 0xdd, 0xd3, 0x29, 0x97, 0x73, 0x2e, 0x63, 0x1d, 0x05, 0x26, 0x28, 0x4b, - 0x9d, 0x8c, 0x67, 0xdc, 0xe4, 0x37, 0xb7, 0x32, 0x7b, 0x56, 0x7f, 0x57, 0x7d, 0x2a, 0x48, 0xd9, - 0x74, 0xfe, 0xad, 0x01, 0xef, 0x8f, 0xcc, 0x1c, 0x13, 0x85, 0x15, 0x41, 0x2f, 0x61, 0xb3, 0xc0, - 0x02, 0xcf, 0xa5, 0x0d, 0x5c, 0xe0, 0xb5, 0xc3, 0x53, 0xbf, 0x36, 0x97, 0x3f, 0xd6, 0xc0, 0xf0, - 0xf8, 0xe6, 0x77, 0xcf, 0xfa, 0xfa, 0xf7, 0xfb, 0x33, 0x10, 0x95, 0x3d, 0x28, 0x85, 0x8f, 0x73, - 0x2c, 0x55, 0xbc, 0xc0, 0x39, 0x4d, 0xb1, 0xe2, 0x22, 0x2e, 0xf8, 0x47, 0x22, 0xa4, 0x7d, 0xe0, - 0x36, 0xbc, 0x76, 0xf8, 0x74, 0x8f, 0xd8, 0x05, 0x96, 0xea, 0xdd, 0x1d, 0x3e, 0xde, 0xd0, 0xbb, - 0xc2, 0x8f, 0xf2, 0x5a, 0x59, 0xa2, 0x11, 0x84, 0xd5, 0x03, 0xd2, 0x6e, 0x68, 0xe9, 0x27, 0x7b, - 0xa4, 0xab, 0xbe, 0x5d, 0xc5, 0x9d, 0x56, 0xd4, 0x85, 0x2d, 0xb2, 0x2c, 0xb8, 0x50, 0x24, 0xb5, - 0x0f, 0x5d, 0xe0, 0xb5, 0xa2, 0x2a, 0x46, 0x1e, 0x7c, 0xc8, 0xc8, 0x52, 0xc5, 0x79, 0x18, 0x4b, - 0xf2, 0xe1, 0x8a, 0xb0, 0x29, 0xb1, 0x9b, 0x2e, 0xf0, 0xee, 0x45, 0x0f, 0x36, 0xf9, 0x8b, 0x70, - 0x52, 0x66, 0xb7, 0xe4, 0x60, 0x4b, 0x1e, 0xed, 0x90, 0x83, 0x8a, 0x7c, 0x05, 0xdb, 0x89, 0xa0, - 0x69, 0x46, 0x62, 0xca, 0x2e, 0xb9, 0xdd, 0xd2, 0x3f, 0x7c, 0xb6, 0x67, 0xf2, 0xa1, 0xa6, 0xde, - 0xb0, 0x4b, 0x1e, 0xc1, 0xa4, 0xba, 0x9f, 0xcf, 0x20, 0xaa, 0x7f, 0x17, 0x0a, 0xe1, 0x11, 0x4e, - 0x53, 0x41, 0xa4, 0xd9, 0xd9, 0xf1, 0xd0, 0xfe, 0xf9, 0xa3, 0xdf, 0x29, 0xbd, 0xf1, 0xda, 0x54, - 0x26, 0x4a, 0x50, 0x96, 0x45, 0x77, 0x20, 0xea, 0xc0, 0x43, 0xbd, 0x19, 0xfb, 0xc0, 0x05, 0x5e, - 0x23, 0x32, 0xc1, 0x8b, 0xd6, 0xe7, 0xeb, 0x9e, 0xf5, 0xef, 0xba, 0x67, 0x0d, 0x47, 0x37, 0x2b, - 0x07, 0xdc, 0xae, 0x1c, 0xf0, 0x67, 0xe5, 0x80, 0x2f, 0x6b, 0xc7, 0xba, 0x5d, 0x3b, 0xd6, 0xaf, - 0xb5, 0x63, 0xbd, 0xef, 0x67, 0x54, 0xcd, 0xae, 0x12, 0x7f, 0xca, 0xe7, 0xc1, 0x66, 0x6c, 0x8a, - 0xfb, 0x39, 0x4e, 0x64, 0xf0, 0x76, 0xac, 0x7d, 0xb6, 0xac, 0x9c, 0xa6, 0x6d, 0x96, 0x34, 0xb5, - 0xcf, 0x9e, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x3f, 0xd2, 0x86, 0xd7, 0x00, 0x03, 0x00, 0x00, + 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, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -223,6 +234,16 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Exported { + i-- + if m.Exported { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } if m.BridgeInfo != nil { { size, err := m.BridgeInfo.MarshalToSizedBuffer(dAtA[:i]) @@ -233,27 +254,31 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x42 + dAtA[i] = 0x3a } if m.NextL1Sequence != 0 { i = encodeVarintGenesis(dAtA, i, uint64(m.NextL1Sequence)) i-- - dAtA[i] = 0x38 + dAtA[i] = 0x30 } if m.NextL2Sequence != 0 { i = encodeVarintGenesis(dAtA, i, uint64(m.NextL2Sequence)) i-- - dAtA[i] = 0x30 + dAtA[i] = 0x28 } - if m.Exported { - i-- - if m.Exported { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + 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 } - i-- - dAtA[i] = 0x28 } if len(m.Validators) > 0 { for iNdEx := len(m.Validators) - 1; iNdEx >= 0; iNdEx-- { @@ -362,8 +387,11 @@ func (m *GenesisState) Size() (n int) { n += 1 + l + sovGenesis(uint64(l)) } } - if m.Exported { - n += 2 + if len(m.PendingDeposits) > 0 { + for _, e := range m.PendingDeposits { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } } if m.NextL2Sequence != 0 { n += 1 + sovGenesis(uint64(m.NextL2Sequence)) @@ -375,6 +403,9 @@ func (m *GenesisState) Size() (n int) { l = m.BridgeInfo.Size() n += 1 + l + sovGenesis(uint64(l)) } + if m.Exported { + n += 2 + } return n } @@ -530,11 +561,11 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Exported", wireType) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingDeposits", wireType) } - var v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenesis @@ -544,13 +575,27 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.Exported = bool(v != 0) - case 6: + 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 != 0 { return fmt.Errorf("proto: wrong wireType = %d for field NextL2Sequence", wireType) } @@ -569,7 +614,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { break } } - case 7: + case 6: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field NextL1Sequence", wireType) } @@ -588,7 +633,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { break } } - case 8: + case 7: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field BridgeInfo", wireType) } @@ -624,6 +669,26 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Exported", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Exported = bool(v != 0) default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/x/opchild/types/hook.go b/x/opchild/types/hook.go index 22afded5..a6a0103b 100644 --- a/x/opchild/types/hook.go +++ b/x/opchild/types/hook.go @@ -4,6 +4,16 @@ 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 c27f3088..7839ee56 100644 --- a/x/opchild/types/keys.go +++ b/x/opchild/types/keys.go @@ -24,6 +24,7 @@ var ( 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 // HostValidatorStore keys HostHeightKey = []byte{0x71} diff --git a/x/opchild/types/tx.go b/x/opchild/types/tx.go index b9b0c7d7..cbfd22dd 100644 --- a/x/opchild/types/tx.go +++ b/x/opchild/types/tx.go @@ -167,8 +167,8 @@ func (msg MsgInitiateTokenWithdrawal) Validate(ac address.Codec) error { return err } - if _, err := ac.StringToBytes(msg.To); err != nil { - return err + if len(msg.To) == 0 { + return sdkerrors.ErrInvalidAddress.Wrap("to address cannot be empty") } if !msg.Amount.IsValid() || msg.Amount.IsZero() { @@ -246,12 +246,16 @@ func (msg MsgFinalizeTokenDeposit) Validate(ac address.Codec) error { return err } - if _, err := ac.StringToBytes(msg.From); err != nil { - return err + // from address can be different form of address (e.g. L1 address) + if len(msg.From) == 0 { + return sdkerrors.ErrInvalidAddress.Wrap("from address cannot be empty") } - if _, err := ac.StringToBytes(msg.To); err != nil { - return err + // allow hook as a special address + if msg.To != "hook" { + if _, err := ac.StringToBytes(msg.To); err != nil { + return err + } } if !msg.Amount.IsValid() || msg.Amount.IsZero() { diff --git a/x/opchild/types/types.pb.go b/x/opchild/types/types.pb.go index 1b62fdd6..519eb8ff 100644 --- a/x/opchild/types/types.pb.go +++ b/x/opchild/types/types.pb.go @@ -217,73 +217,115 @@ func (m *BridgeInfo) XXX_DiscardUnknown() { var xxx_messageInfo_BridgeInfo proto.InternalMessageInfo +// PendingDeposits defines the set of pending deposits. +type PendingDeposits struct { + Deposits github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=deposits,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"deposits"` +} + +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 + func init() { 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") } func init() { proto.RegisterFile("opinit/opchild/v1/types.proto", fileDescriptor_2cc6df244b706d68) } var fileDescriptor_2cc6df244b706d68 = []byte{ - // 887 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x55, 0xcd, 0x8f, 0xdb, 0x44, - 0x14, 0x8f, 0xbb, 0xe9, 0x16, 0x4f, 0xb2, 0x5f, 0xa3, 0xad, 0xc8, 0xee, 0xb6, 0x76, 0xe4, 0x53, - 0x54, 0x88, 0xad, 0x6c, 0x41, 0x82, 0x3d, 0x51, 0x87, 0x05, 0xad, 0x8a, 0x68, 0x64, 0x04, 0x48, - 0xbd, 0x58, 0x63, 0x7b, 0x92, 0x8c, 0xd6, 0x9e, 0xb1, 0x3c, 0x4e, 0xba, 0xf9, 0x0f, 0x10, 0x17, - 0x38, 0x72, 0xdc, 0x63, 0xc5, 0xa9, 0x07, 0x6e, 0xfc, 0x03, 0x2b, 0x24, 0xa4, 0x8a, 0x13, 0xa7, - 0x00, 0xbb, 0x87, 0x72, 0xce, 0x81, 0x33, 0x9a, 0x8f, 0x7c, 0x34, 0x08, 0xf5, 0x92, 0xcc, 0xbc, - 0xdf, 0xef, 0xbd, 0x79, 0xf3, 0x9b, 0xf7, 0x9e, 0xc1, 0x7d, 0x96, 0x13, 0x4a, 0x4a, 0x8f, 0xe5, - 0xf1, 0x90, 0xa4, 0x89, 0x37, 0xee, 0x78, 0xe5, 0x24, 0xc7, 0xdc, 0xcd, 0x0b, 0x56, 0x32, 0xb8, - 0xa7, 0x60, 0x57, 0xc3, 0xee, 0xb8, 0x73, 0xb8, 0x87, 0x32, 0x42, 0x99, 0x27, 0x7f, 0x15, 0xeb, - 0xd0, 0x8a, 0x19, 0xcf, 0x18, 0xf7, 0x22, 0xc4, 0xb1, 0x37, 0xee, 0x44, 0xb8, 0x44, 0x1d, 0x2f, - 0x66, 0x84, 0x6a, 0xfc, 0x40, 0xe1, 0xa1, 0xdc, 0x79, 0x6a, 0xa3, 0xa1, 0xfd, 0x01, 0x1b, 0x30, - 0x65, 0x17, 0xab, 0xb9, 0xc3, 0x80, 0xb1, 0x41, 0x8a, 0x3d, 0xb9, 0x8b, 0x46, 0x7d, 0x0f, 0xd1, - 0x89, 0x86, 0x8e, 0x4a, 0x4c, 0x13, 0x5c, 0x64, 0x84, 0x96, 0x1e, 0x8a, 0x62, 0xb2, 0x9a, 0xee, - 0xe1, 0xbd, 0xc5, 0x6d, 0x86, 0x8c, 0x97, 0x6b, 0x97, 0x71, 0x7e, 0xad, 0x82, 0xcd, 0x1e, 0x2a, - 0x50, 0xc6, 0xe1, 0x47, 0x60, 0x3b, 0x43, 0x17, 0xe1, 0x18, 0xa5, 0x24, 0x41, 0x25, 0x2b, 0x78, - 0xc3, 0x68, 0x1a, 0xad, 0x2d, 0xff, 0x60, 0x36, 0xb5, 0xef, 0x4e, 0x50, 0x96, 0x9e, 0x38, 0xaf, - 0xe3, 0x4e, 0xb0, 0x95, 0xa1, 0x8b, 0xaf, 0x16, 0x7b, 0xf8, 0x19, 0x80, 0x43, 0xc2, 0x4b, 0x56, - 0x90, 0x18, 0xa5, 0x21, 0xa6, 0x65, 0x41, 0x30, 0x6f, 0xdc, 0x92, 0x51, 0xee, 0xcf, 0xa6, 0xf6, - 0x81, 0x8a, 0xf2, 0x5f, 0x8e, 0x13, 0xec, 0x2d, 0x8d, 0xa7, 0xca, 0x06, 0xbf, 0x33, 0xc0, 0x76, - 0x46, 0x68, 0x38, 0x40, 0x42, 0x25, 0x12, 0x63, 0xde, 0xd8, 0x68, 0x6e, 0xb4, 0x6a, 0xc7, 0xf7, - 0x5c, 0x2d, 0x97, 0xd0, 0xd6, 0xd5, 0xda, 0xba, 0x1f, 0xe3, 0xb8, 0xcb, 0x08, 0xf5, 0x1f, 0x5f, - 0x4d, 0xed, 0xca, 0x6c, 0x6a, 0xef, 0xeb, 0x94, 0x57, 0x23, 0x38, 0x3f, 0xfe, 0x61, 0xbf, 0x33, - 0x20, 0xe5, 0x70, 0x14, 0xb9, 0x31, 0xcb, 0xb4, 0xec, 0xfa, 0xaf, 0xcd, 0x93, 0x73, 0xad, 0x8d, - 0x8e, 0xc5, 0x83, 0x7a, 0x46, 0xe8, 0xa7, 0x88, 0xf7, 0xe4, 0xf1, 0x30, 0x06, 0xbb, 0x51, 0x41, - 0x92, 0x01, 0x0e, 0xf1, 0x05, 0x8e, 0x47, 0x52, 0xa3, 0x6a, 0x73, 0xa3, 0x65, 0xfa, 0x1f, 0xcc, - 0xa6, 0xf6, 0xdb, 0xea, 0xc0, 0x75, 0x86, 0xf3, 0xdb, 0x4f, 0xed, 0x7d, 0x9d, 0xf0, 0xa3, 0x24, - 0x29, 0x30, 0xe7, 0x5f, 0x94, 0x05, 0xa1, 0x83, 0xe7, 0xaf, 0x5e, 0x3c, 0x30, 0x82, 0x1d, 0xc5, - 0x3f, 0x9d, 0xd3, 0x61, 0x17, 0xdc, 0x46, 0x49, 0x46, 0x68, 0xe3, 0x76, 0xd3, 0x68, 0x99, 0x7e, - 0x7b, 0x36, 0xb5, 0xeb, 0x2a, 0xb2, 0x34, 0xbf, 0x21, 0x9c, 0xf2, 0x85, 0x4f, 0xc1, 0x56, 0x1f, - 0xe3, 0xf0, 0xd9, 0x90, 0x94, 0x38, 0x25, 0xbc, 0x6c, 0x6c, 0xca, 0x34, 0xdf, 0x5f, 0xea, 0xf2, - 0x1a, 0xfc, 0x86, 0xa0, 0xf5, 0x3e, 0xc6, 0x5f, 0xcf, 0xb9, 0x27, 0x47, 0x3f, 0x5c, 0xda, 0x95, - 0xbf, 0x2f, 0x6d, 0xe3, 0xdb, 0x57, 0x2f, 0x1e, 0x6c, 0xcf, 0x9b, 0x44, 0x15, 0x91, 0xf3, 0xf3, - 0x2d, 0x60, 0x2e, 0x2a, 0x02, 0xbe, 0x0b, 0xee, 0x64, 0x8c, 0x92, 0x73, 0x5c, 0xc8, 0x5a, 0x32, - 0x7d, 0x38, 0x9b, 0xda, 0xdb, 0xfa, 0x61, 0x14, 0xe0, 0x04, 0x73, 0x0a, 0xfc, 0x04, 0xec, 0xb2, - 0x1c, 0x17, 0xc2, 0x33, 0x44, 0x2a, 0x0b, 0x59, 0x3c, 0xa6, 0x7f, 0xb4, 0x94, 0x77, 0x9d, 0xe1, - 0x04, 0x3b, 0x73, 0x93, 0xce, 0x1c, 0x96, 0x60, 0x37, 0x66, 0x94, 0x63, 0xca, 0x47, 0x3c, 0xcc, - 0x47, 0xd1, 0x39, 0x9e, 0x34, 0x36, 0x9a, 0x46, 0xab, 0x76, 0xbc, 0xef, 0xaa, 0x26, 0x72, 0xe7, - 0x4d, 0xe4, 0x3e, 0xa2, 0x13, 0xff, 0xe1, 0x32, 0xfa, 0xba, 0x9f, 0xf3, 0xcb, 0x52, 0x98, 0xb8, - 0x98, 0xe4, 0x25, 0x73, 0x7b, 0xa3, 0xe8, 0x31, 0x9e, 0x04, 0x3b, 0x0b, 0x6a, 0x4f, 0x32, 0xe1, - 0x7b, 0x00, 0x08, 0x53, 0x98, 0xb3, 0x67, 0xb8, 0x68, 0x54, 0x9b, 0x46, 0x6b, 0xc3, 0xbf, 0x3b, - 0x9b, 0xda, 0x7b, 0xcb, 0xc8, 0x0a, 0x73, 0x02, 0x53, 0x6c, 0x7a, 0x62, 0x7d, 0x52, 0xff, 0xe6, - 0xd2, 0xae, 0x68, 0x41, 0x2b, 0x4e, 0x08, 0x76, 0x17, 0xe2, 0x7d, 0x99, 0x27, 0xa8, 0xc4, 0x1c, - 0x9e, 0x82, 0x3b, 0x23, 0xb5, 0x6c, 0x18, 0xb2, 0xfc, 0x9b, 0xee, 0xb2, 0xdd, 0x5d, 0xd1, 0xee, - 0xee, 0x9a, 0x8f, 0x6f, 0x8a, 0x16, 0x50, 0x4f, 0x37, 0xf7, 0x3d, 0xa9, 0xca, 0x03, 0xfe, 0x31, - 0x00, 0xf0, 0x65, 0xc1, 0x9d, 0xd1, 0x3e, 0x83, 0x47, 0xc0, 0xd4, 0xe5, 0x4a, 0x12, 0xf9, 0x42, - 0xd5, 0xe0, 0x2d, 0x65, 0x38, 0x4b, 0xe0, 0x87, 0xa0, 0xa6, 0x41, 0x21, 0xb5, 0x7e, 0x89, 0xc6, - 0xff, 0x55, 0x4a, 0x00, 0x14, 0x59, 0x18, 0xa1, 0x05, 0x6a, 0x69, 0x27, 0x8c, 0x87, 0x88, 0x50, - 0x11, 0x59, 0x88, 0x6f, 0x06, 0x66, 0xda, 0xe9, 0x0a, 0xcb, 0x59, 0x02, 0x9b, 0xa0, 0x2e, 0xf0, - 0x94, 0x60, 0x5a, 0x0a, 0x42, 0x55, 0x12, 0x40, 0xda, 0xe9, 0x4a, 0xd3, 0x59, 0x02, 0x3f, 0x07, - 0x5b, 0xfa, 0xf0, 0x98, 0xd1, 0x3e, 0x19, 0xc8, 0x6e, 0xa8, 0x1d, 0x5b, 0xee, 0x62, 0xf8, 0x8a, - 0x69, 0xe6, 0x8e, 0x3b, 0xae, 0xba, 0x4e, 0x57, 0xb2, 0x56, 0x6f, 0x5e, 0x8f, 0x56, 0x81, 0x27, - 0x57, 0x7f, 0x59, 0x95, 0xe7, 0xd7, 0x96, 0x71, 0x75, 0x6d, 0x19, 0x2f, 0xaf, 0x2d, 0xe3, 0xcf, - 0x6b, 0xcb, 0xf8, 0xfe, 0xc6, 0xaa, 0xbc, 0xbc, 0xb1, 0x2a, 0xbf, 0xdf, 0x58, 0x95, 0xa7, 0xed, - 0x95, 0xb9, 0x20, 0x8e, 0x20, 0xa8, 0x9d, 0xa2, 0x88, 0x7b, 0x4f, 0x7a, 0x72, 0x7c, 0x5e, 0x2c, - 0x3e, 0x07, 0x72, 0x44, 0x44, 0x9b, 0xb2, 0x84, 0x1e, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x1e, - 0xec, 0xe4, 0x8b, 0x2d, 0x06, 0x00, 0x00, + // 933 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xcf, 0x8f, 0xdb, 0x44, + 0x14, 0x8e, 0xbb, 0xe9, 0xb6, 0x9e, 0x64, 0x7f, 0x8d, 0xb6, 0x22, 0xbb, 0xdb, 0xda, 0x91, 0x4f, + 0x51, 0x21, 0xb6, 0xb2, 0xa5, 0x12, 0xec, 0x89, 0x3a, 0x5d, 0xd0, 0xaa, 0x88, 0x46, 0x46, 0x80, + 0xd4, 0x8b, 0x35, 0xb6, 0x27, 0xce, 0x68, 0xed, 0x19, 0xcb, 0xe3, 0xa4, 0x9b, 0x13, 0x57, 0xc4, + 0x05, 0x8e, 0x1c, 0xf7, 0x58, 0xf5, 0xd4, 0x03, 0x37, 0xfe, 0x81, 0x15, 0x12, 0x52, 0xc5, 0x89, + 0x53, 0x0a, 0xbb, 0x87, 0x72, 0xce, 0x81, 0x33, 0xf2, 0xcc, 0xe4, 0x47, 0x03, 0xa8, 0x5c, 0x92, + 0x99, 0xf7, 0x7d, 0xf3, 0xde, 0x9b, 0x6f, 0xde, 0x7b, 0x06, 0x77, 0x58, 0x46, 0x28, 0x29, 0x1c, + 0x96, 0x85, 0x03, 0x92, 0x44, 0xce, 0xa8, 0xe3, 0x14, 0xe3, 0x0c, 0x73, 0x3b, 0xcb, 0x59, 0xc1, + 0xe0, 0x8e, 0x84, 0x6d, 0x05, 0xdb, 0xa3, 0xce, 0xfe, 0x0e, 0x4a, 0x09, 0x65, 0x8e, 0xf8, 0x95, + 0xac, 0x7d, 0x23, 0x64, 0x3c, 0x65, 0xdc, 0x09, 0x10, 0xc7, 0xce, 0xa8, 0x13, 0xe0, 0x02, 0x75, + 0x9c, 0x90, 0x11, 0xaa, 0xf0, 0x3d, 0x89, 0xfb, 0x62, 0xe7, 0xc8, 0x8d, 0x82, 0x76, 0x63, 0x16, + 0x33, 0x69, 0x2f, 0x57, 0xb3, 0x03, 0x31, 0x63, 0x71, 0x82, 0x1d, 0xb1, 0x0b, 0x86, 0x7d, 0x07, + 0xd1, 0xb1, 0x82, 0x0e, 0x0a, 0x4c, 0x23, 0x9c, 0xa7, 0x84, 0x16, 0x0e, 0x0a, 0x42, 0xb2, 0x9c, + 0xee, 0xfe, 0xed, 0xf9, 0x6d, 0x06, 0x8c, 0x17, 0x2b, 0x97, 0xb1, 0x7e, 0xa9, 0x82, 0xf5, 0x1e, + 0xca, 0x51, 0xca, 0xe1, 0x47, 0x60, 0x33, 0x45, 0x67, 0xfe, 0x08, 0x25, 0x24, 0x42, 0x05, 0xcb, + 0x79, 0x43, 0x6b, 0x6a, 0xad, 0x0d, 0x77, 0x6f, 0x3a, 0x31, 0x6f, 0x8d, 0x51, 0x9a, 0x1c, 0x59, + 0x6f, 0xe2, 0x96, 0xb7, 0x91, 0xa2, 0xb3, 0x2f, 0xe7, 0x7b, 0xf8, 0x29, 0x80, 0x03, 0xc2, 0x0b, + 0x96, 0x93, 0x10, 0x25, 0x3e, 0xa6, 0x45, 0x4e, 0x30, 0x6f, 0x5c, 0x13, 0x5e, 0xee, 0x4c, 0x27, + 0xe6, 0x9e, 0xf4, 0xf2, 0x4f, 0x8e, 0xe5, 0xed, 0x2c, 0x8c, 0xc7, 0xd2, 0x06, 0xbf, 0xd3, 0xc0, + 0x66, 0x4a, 0xa8, 0x1f, 0xa3, 0x52, 0x25, 0x12, 0x62, 0xde, 0x58, 0x6b, 0xae, 0xb5, 0x6a, 0x87, + 0xb7, 0x6d, 0x25, 0x57, 0xa9, 0xad, 0xad, 0xb4, 0xb5, 0x1f, 0xe2, 0xb0, 0xcb, 0x08, 0x75, 0x1f, + 0x5d, 0x4c, 0xcc, 0xca, 0x74, 0x62, 0xee, 0xaa, 0x94, 0x97, 0x3d, 0x58, 0xcf, 0x5f, 0x99, 0xef, + 0xc6, 0xa4, 0x18, 0x0c, 0x03, 0x3b, 0x64, 0xa9, 0x92, 0x5d, 0xfd, 0xb5, 0x79, 0x74, 0xaa, 0xb4, + 0x51, 0xbe, 0xb8, 0x57, 0x4f, 0x09, 0xfd, 0x04, 0xf1, 0x9e, 0x08, 0x0f, 0x43, 0xb0, 0x1d, 0xe4, + 0x24, 0x8a, 0xb1, 0x8f, 0xcf, 0x70, 0x38, 0x14, 0x1a, 0x55, 0x9b, 0x6b, 0x2d, 0xdd, 0xfd, 0x60, + 0x3a, 0x31, 0xdf, 0x91, 0x01, 0x57, 0x19, 0xd6, 0xaf, 0x3f, 0xb6, 0x77, 0x55, 0xc2, 0x0f, 0xa2, + 0x28, 0xc7, 0x9c, 0x7f, 0x5e, 0xe4, 0x84, 0xc6, 0xcf, 0x5e, 0xbf, 0xb8, 0xab, 0x79, 0x5b, 0x92, + 0x7f, 0x3c, 0xa3, 0xc3, 0x2e, 0xb8, 0x8e, 0xa2, 0x94, 0xd0, 0xc6, 0xf5, 0xa6, 0xd6, 0xd2, 0xdd, + 0xf6, 0x74, 0x62, 0xd6, 0xa5, 0x67, 0x61, 0x7e, 0x8b, 0x3b, 0x79, 0x16, 0x3e, 0x01, 0x1b, 0x7d, + 0x8c, 0xfd, 0xa7, 0x03, 0x52, 0xe0, 0x84, 0xf0, 0xa2, 0xb1, 0x2e, 0xd2, 0xbc, 0xbf, 0xd0, 0xe5, + 0x0d, 0xf8, 0x2d, 0x4e, 0xeb, 0x7d, 0x8c, 0xbf, 0x9a, 0x71, 0x8f, 0x0e, 0x7e, 0x38, 0x37, 0x2b, + 0x7f, 0x9e, 0x9b, 0xda, 0xb7, 0xaf, 0x5f, 0xdc, 0xdd, 0x9c, 0x35, 0x89, 0x2c, 0x22, 0xeb, 0xa7, + 0x6b, 0x40, 0x9f, 0x57, 0x04, 0x7c, 0x0f, 0xdc, 0x48, 0x19, 0x25, 0xa7, 0x38, 0x17, 0xb5, 0xa4, + 0xbb, 0x70, 0x3a, 0x31, 0x37, 0xd5, 0xc3, 0x48, 0xc0, 0xf2, 0x66, 0x14, 0xf8, 0x31, 0xd8, 0x66, + 0x19, 0xce, 0xcb, 0x93, 0x3e, 0x92, 0x59, 0x88, 0xe2, 0xd1, 0xdd, 0x83, 0x85, 0xbc, 0xab, 0x0c, + 0xcb, 0xdb, 0x9a, 0x99, 0x54, 0xe6, 0xb0, 0x00, 0xdb, 0x21, 0xa3, 0x1c, 0x53, 0x3e, 0xe4, 0x7e, + 0x36, 0x0c, 0x4e, 0xf1, 0xb8, 0xb1, 0xd6, 0xd4, 0x5a, 0xb5, 0xc3, 0x5d, 0x5b, 0x36, 0x91, 0x3d, + 0x6b, 0x22, 0xfb, 0x01, 0x1d, 0xbb, 0xf7, 0x16, 0xde, 0x57, 0xcf, 0x59, 0x3f, 0x2f, 0x84, 0x09, + 0xf3, 0x71, 0x56, 0x30, 0xbb, 0x37, 0x0c, 0x1e, 0xe1, 0xb1, 0xb7, 0x35, 0xa7, 0xf6, 0x04, 0x13, + 0xbe, 0x0f, 0x40, 0x69, 0xf2, 0x33, 0xf6, 0x14, 0xe7, 0x8d, 0x6a, 0x53, 0x6b, 0xad, 0xb9, 0xb7, + 0xa6, 0x13, 0x73, 0x67, 0xe1, 0x59, 0x62, 0x96, 0xa7, 0x97, 0x9b, 0x5e, 0xb9, 0x3e, 0xaa, 0x7f, + 0x73, 0x6e, 0x56, 0x94, 0xa0, 0x15, 0xcb, 0x07, 0xdb, 0x73, 0xf1, 0xbe, 0xc8, 0x22, 0x54, 0x60, + 0x0e, 0x8f, 0xc1, 0x8d, 0xa1, 0x5c, 0x36, 0x34, 0x51, 0xfe, 0x4d, 0x7b, 0xd1, 0xee, 0x76, 0xd9, + 0xee, 0xf6, 0xca, 0x19, 0x57, 0x2f, 0x5b, 0x40, 0x3e, 0xdd, 0xec, 0xec, 0x51, 0x55, 0x04, 0xf8, + 0x4b, 0x03, 0xc0, 0x15, 0x05, 0x77, 0x42, 0xfb, 0x0c, 0x1e, 0x00, 0x5d, 0x95, 0x2b, 0x89, 0xc4, + 0x0b, 0x55, 0xbd, 0x9b, 0xd2, 0x70, 0x12, 0xc1, 0x0f, 0x41, 0x4d, 0x81, 0xa5, 0xd4, 0xea, 0x25, + 0x1a, 0xff, 0x55, 0x29, 0x1e, 0x90, 0xe4, 0xd2, 0x08, 0x0d, 0x50, 0x4b, 0x3a, 0x7e, 0x38, 0x40, + 0x84, 0x96, 0x9e, 0x4b, 0xf1, 0x75, 0x4f, 0x4f, 0x3a, 0xdd, 0xd2, 0x72, 0x12, 0xc1, 0x26, 0xa8, + 0x97, 0x78, 0x42, 0x30, 0x2d, 0x4a, 0x42, 0x55, 0x10, 0x40, 0xd2, 0xe9, 0x0a, 0xd3, 0x49, 0x04, + 0x3f, 0x03, 0x1b, 0x2a, 0x78, 0xc8, 0x68, 0x9f, 0xc4, 0xa2, 0x1b, 0x6a, 0x87, 0x86, 0x3d, 0x1f, + 0xbe, 0xe5, 0x34, 0xb3, 0x47, 0x1d, 0x5b, 0x5e, 0xa7, 0x2b, 0x58, 0xcb, 0x37, 0xaf, 0x07, 0x4b, + 0x80, 0xf5, 0x35, 0xd8, 0xea, 0x61, 0x1a, 0x11, 0x1a, 0x3f, 0xc4, 0x19, 0xe3, 0xa4, 0xe0, 0x30, + 0x01, 0x37, 0x23, 0xb5, 0x56, 0xca, 0xee, 0xfd, 0xeb, 0x60, 0x11, 0x53, 0xe5, 0x7e, 0xe9, 0xf8, + 0xf9, 0x2b, 0xb3, 0xf5, 0x3f, 0xa6, 0x87, 0x18, 0x1d, 0x32, 0x89, 0x79, 0x04, 0xf7, 0xf1, 0xc5, + 0x1f, 0x46, 0xe5, 0xd9, 0xa5, 0xa1, 0x5d, 0x5c, 0x1a, 0xda, 0xcb, 0x4b, 0x43, 0xfb, 0xfd, 0xd2, + 0xd0, 0xbe, 0xbf, 0x32, 0x2a, 0x2f, 0xaf, 0x8c, 0xca, 0x6f, 0x57, 0x46, 0xe5, 0x49, 0x7b, 0xc9, + 0x75, 0x79, 0x47, 0x82, 0xda, 0x09, 0x0a, 0xb8, 0xf3, 0xb8, 0x27, 0xe6, 0xf7, 0xd9, 0xfc, 0x7b, + 0x24, 0xa2, 0x04, 0xeb, 0xa2, 0x86, 0xef, 0xfd, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x86, 0x62, 0xb7, + 0x00, 0xae, 0x06, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -376,6 +418,35 @@ 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 len(this.Deposits) != len(that1.Deposits) { + return false + } + for i := range this.Deposits { + if !this.Deposits[i].Equal(&that1.Deposits[i]) { + return false + } + } + return true +} func (m *Params) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -598,6 +669,43 @@ 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.Deposits) > 0 { + for iNdEx := len(m.Deposits) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Deposits[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func encodeVarintTypes(dAtA []byte, offset int, v uint64) int { offset -= sovTypes(v) base := offset @@ -711,6 +819,21 @@ func (m *BridgeInfo) Size() (n int) { return n } +func (m *PendingDeposits) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Deposits) > 0 { + for _, e := range m.Deposits { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + func sovTypes(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -1386,6 +1509,90 @@ 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 Deposits", 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.Deposits = append(m.Deposits, types.Coin{}) + if err := m.Deposits[len(m.Deposits)-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 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 9020ccad..d9f5a64d 100644 --- a/x/ophost/client/cli/tx.go +++ b/x/ophost/client/cli/tx.go @@ -281,10 +281,10 @@ func NewInitiateTokenDeposit(ac address.Codec) *cobra.Command { return err } + // cannot validate to address here because it is l2 address. toAddr := args[1] - _, err = ac.StringToBytes(toAddr) - if err != nil { - return err + if len(toAddr) == 0 { + return fmt.Errorf("to address is required") } amount, err := sdk.ParseCoinNormalized(args[2]) @@ -332,7 +332,7 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { "bridge_id": 1, "output_index": 0, "withdrawal_proofs": [ "proof1", "proof2", ... ], - "receiver": "bech32-address", + "sender" : "bech32-address", "sequence": 0, "amount": "10000000uatom", "version": "version hex", @@ -367,10 +367,10 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { } } - receiver := withdrawalInfo.Receiver - _, err = ac.StringToBytes(receiver) - 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") } amount, err := sdk.ParseCoinNormalized(withdrawalInfo.Amount) @@ -398,7 +398,7 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { return err } - fromAddr, err := ac.BytesToString(clientCtx.GetFromAddress()) + receiver, err := ac.BytesToString(clientCtx.GetFromAddress()) if err != nil { return err } @@ -408,7 +408,7 @@ func NewFinalizeTokenWithdrawal(ac address.Codec) *cobra.Command { withdrawalInfo.OutputIndex, withdrawalInfo.Sequence, withdrawalProofs, - fromAddr, + sender, receiver, amount, version, diff --git a/x/ophost/client/cli/tx_test.go b/x/ophost/client/cli/tx_test.go index 992b210d..01ed063d 100644 --- a/x/ophost/client/cli/tx_test.go +++ b/x/ophost/client/cli/tx_test.go @@ -509,7 +509,7 @@ func (s *CLITestSuite) TestNewFinalizeTokenWithdrawal() { "bridge_id": 1, "output_index": 2, "withdrawal_proofs": ["8e1fa5cd035b30e5d5818934dbc7491fe44f4ab15d30b3abcbc01d44edf25f18", "80d66720e75121fedc738e9847048466ac8d05626406fe3b438b1699dcbfa37e"], - "receiver": "init1k2svyvm60r8rhnzr9vemk5f6fksvm6tyeujp3c", + "sender": "init1k2svyvm60r8rhnzr9vemk5f6fksvm6tyeujp3c", "sequence": 3, "amount": "10000000uatom", "version": "5ca4f3850ccc331aaf8a257d6086e526a3b42a63e18cb11d020847985b31d188", diff --git a/x/ophost/client/cli/types.go b/x/ophost/client/cli/types.go index b6168f16..55cb8c9d 100644 --- a/x/ophost/client/cli/types.go +++ b/x/ophost/client/cli/types.go @@ -24,9 +24,9 @@ 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 []string `protobuf:"bytes,4,rep,name=withdrawal_proofs,json=withdrawalProofs,proto3" json:"withdrawal_proofs,omitempty"` - // no sender here - //Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Receiver string `protobuf:"bytes,5,opt,name=receiver,proto3" json:"receiver,omitempty" yaml:"receiver"` + 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 diff --git a/x/ophost/keeper/genesis_test.go b/x/ophost/keeper/genesis_test.go index 4048b652..a3c2167b 100644 --- a/x/ophost/keeper/genesis_test.go +++ b/x/ophost/keeper/genesis_test.go @@ -97,9 +97,9 @@ func Test_GenesisExport(t *testing.T) { {3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, }, BatchInfos: []types.BatchInfoWithOutput{ - {types.BatchInfo{Submitter: addrsStr[0], Chain: "l1"}, types.Output{}}, - {types.BatchInfo{Submitter: addrsStr[1], Chain: "ll1"}, output1}, - {types.BatchInfo{Submitter: addrsStr[0], Chain: "l1"}, output3}, + {BatchInfo: types.BatchInfo{Submitter: addrsStr[0], Chain: "l1"}, Output: types.Output{}}, + {BatchInfo: types.BatchInfo{Submitter: addrsStr[1], Chain: "ll1"}, Output: output1}, + {BatchInfo: types.BatchInfo{Submitter: addrsStr[0], Chain: "l1"}, Output: output3}, }, }, genState.Bridges[0]) } @@ -135,7 +135,7 @@ func Test_GenesisImportExport(t *testing.T) { genState := &types.GenesisState{ Params: params, Bridges: []types.Bridge{ - types.Bridge{ + { BridgeId: 1, NextL1Sequence: 100, NextOutputIndex: 10, @@ -161,9 +161,9 @@ func Test_GenesisImportExport(t *testing.T) { {3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, }, BatchInfos: []types.BatchInfoWithOutput{ - {types.BatchInfo{Submitter: addrsStr[0], Chain: "l1"}, types.Output{}}, - {types.BatchInfo{Submitter: addrsStr[1], Chain: "ll1"}, output1}, - {types.BatchInfo{Submitter: addrsStr[0], Chain: "l1"}, output3}, + {BatchInfo: types.BatchInfo{Submitter: addrsStr[0], Chain: "l1"}, Output: types.Output{}}, + {BatchInfo: types.BatchInfo{Submitter: addrsStr[1], Chain: "ll1"}, Output: output1}, + {BatchInfo: types.BatchInfo{Submitter: addrsStr[0], Chain: "l1"}, Output: output3}, }, }}, NextBridgeId: 2, diff --git a/x/ophost/keeper/msg_server.go b/x/ophost/keeper/msg_server.go index e6a98c91..8d7b1c0a 100644 --- a/x/ophost/keeper/msg_server.go +++ b/x/ophost/keeper/msg_server.go @@ -275,10 +275,6 @@ func (ms MsgServer) FinalizeTokenWithdrawal(ctx context.Context, req *types.MsgF return nil, err } - sender, err := ms.authKeeper.AddressCodec().StringToBytes(req.Sender) - if err != nil { - return nil, err - } receiver, err := ms.authKeeper.AddressCodec().StringToBytes(req.Receiver) if err != nil { return nil, err @@ -324,10 +320,10 @@ func (ms MsgServer) FinalizeTokenWithdrawal(ctx context.Context, req *types.MsgF seed = binary.BigEndian.AppendUint64(seed, bridgeId) seed = binary.BigEndian.AppendUint64(seed, req.Sequence) // variable length - seed = append(seed, sender...) + seed = append(seed, req.Sender...) // put utf8 encoded address seed = append(seed, types.Splitter) // variable length - seed = append(seed, receiver...) + seed = append(seed, req.Receiver...) // put utf8 encoded address seed = append(seed, types.Splitter) // variable length seed = append(seed, []byte(denom)...) @@ -378,8 +374,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, sdk.AccAddress(sender).String()), - sdk.NewAttribute(types.AttributeKeyTo, sdk.AccAddress(receiver).String()), + sdk.NewAttribute(types.AttributeKeyFrom, req.Sender), + sdk.NewAttribute(types.AttributeKeyTo, req.Receiver), 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 775ca2ee..6a2bd40f 100644 --- a/x/ophost/keeper/msg_server_test.go +++ b/x/ophost/keeper/msg_server_test.go @@ -2,7 +2,6 @@ package keeper_test import ( "encoding/base64" - "encoding/hex" "testing" "time" @@ -167,7 +166,7 @@ func Test_InitiateTokenDeposit(t *testing.T) { input.Faucet.Fund(ctx, addrs[1], amount) _, err = ms.InitiateTokenDeposit( ctx, - types.NewMsgInitiateTokenDeposit(addrsStr[1], 1, addrsStr[2], amount, []byte("messages")), + types.NewMsgInitiateTokenDeposit(addrsStr[1], 1, "hook", amount, []byte("messages")), ) require.NoError(t, err) require.True(t, input.BankKeeper.GetBalance(ctx, addrs[1], sdk.DefaultBondDenom).IsZero()) @@ -194,15 +193,15 @@ func Test_FinalizeTokenWithdrawal(t *testing.T) { amount := sdk.NewCoin("uinit", math.NewInt(1_000_000)) input.Faucet.Fund(ctx, types.BridgeAddress(1), amount) - outputRoot := decodeBase64(t, "0cg24XcpDwTIFXHY4jNyxg2EQS5RUqcMvlMJeuI5rf4=") + outputRoot := decodeBase64(t, "at+mtcWpUvvV+K/uBm+tRufWD0WH4SZVskw9WKn5N/A=") version := decodeBase64(t, "Ch4nNnd/gKYr6y33K2SYeEgcDKEBlLgytRNr77rlQBc=") stateRoot := decodeBase64(t, "C2ZdjJ7uX41NaadA/FjlMiG6btiDfYnxE2ABqJocHxI=") - storageRoot := decodeBase64(t, "VcN+0UZbTtGyyLfQtAHW+bCv5ixadyyT0ZZ26aUT1JY=") + storageRoot := decodeBase64(t, "8EorDbcn/PYtbfU8+e35gHR5e/Liy/mycsULLPWzJww=") blockHash := decodeBase64(t, "tgmfQJT4uipVToW631xz0RXdrfzu7n5XxGNoPpX6isI=") proofs := [][]byte{ - decodeBase64(t, "gnUeNU3EnW4iBOk8wounvu98aTER0BP5dOD0lkuwBBE="), - decodeBase64(t, "yE4zjliK5P9sfdzR2iNh6nYHmD+mjDK6dONuZ3QlVcA="), - decodeBase64(t, "GQXXUQ5P/egGvbAHkYfWHIAfgyCEmnjz/fUMKrWCEn8="), + decodeBase64(t, "Ux19nu4Nl3N7gBy/ID3rzuXrRpScnxOR9u/PUCxlTC0="), + decodeBase64(t, "vWrbSRyDJ+FnWxY5Plr7Ltgyyusr/uDW7nQDq8PDDQY="), + decodeBase64(t, "opvMy3Dv9tUfa4pNr/IBM1GOw8qOlwfxqoXVH5gKPIo="), } now := time.Now().UTC() @@ -211,9 +210,8 @@ func Test_FinalizeTokenWithdrawal(t *testing.T) { require.NoError(t, err) ctx = ctx.WithBlockTime(now.Add(time.Second * 60)) - sender, err := input.AccountKeeper.AddressCodec().BytesToString(decodeHex(t, "70b337786a5a87d896d5f9480016817529d0d61b")) - require.NoError(t, err) - receiver, err := input.AccountKeeper.AddressCodec().BytesToString(decodeHex(t, "f56d386248d1ced6acd23c364909fe88e2ea6f70")) + sender := "osmo174knscjg688ddtxj8smyjz073r3w5mms8ugvx6" + receiver := "cosmos174knscjg688ddtxj8smyjz073r3w5mms08musg" require.NoError(t, err) _, err = ms.FinalizeTokenWithdrawal(ctx, types.NewMsgFinalizeTokenWithdrawal( 1, 1, 1, proofs, @@ -223,14 +221,10 @@ func Test_FinalizeTokenWithdrawal(t *testing.T) { version, stateRoot, storageRoot, blockHash, )) require.NoError(t, err) - require.Equal(t, amount, input.BankKeeper.GetBalance(ctx, sdk.AccAddress(decodeHex(t, "f56d386248d1ced6acd23c364909fe88e2ea6f70")), amount.Denom)) -} -func decodeHex(t *testing.T, str string) []byte { - bz, err := hex.DecodeString(str) + receiverAddr, err := sdk.AccAddressFromBech32("cosmos174knscjg688ddtxj8smyjz073r3w5mms08musg") require.NoError(t, err) - - return bz + require.Equal(t, amount, input.BankKeeper.GetBalance(ctx, receiverAddr, amount.Denom)) } func decodeBase64(t *testing.T, str string) []byte { diff --git a/x/ophost/types/tx.go b/x/ophost/types/tx.go index b91c401c..f259f92d 100644 --- a/x/ophost/types/tx.go +++ b/x/ophost/types/tx.go @@ -3,6 +3,7 @@ package types import ( "cosmossdk.io/core/address" sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) var ( @@ -174,8 +175,9 @@ func (msg MsgInitiateTokenDeposit) Validate(accAddressCodec address.Codec) error return err } - if _, err := accAddressCodec.StringToBytes(msg.To); err != nil { - return err + // cannot validate to address as it can be any format of address based on the chain. + if len(msg.To) == 0 { + return sdkerrors.ErrInvalidAddress.Wrap("to address cannot be empty") } if !msg.Amount.IsValid() || msg.Amount.IsZero() { @@ -222,8 +224,9 @@ func NewMsgFinalizeTokenWithdrawal( // Validate performs basic MsgFinalizeTokenWithdrawal message validation. func (msg MsgFinalizeTokenWithdrawal) Validate(accAddressCodec address.Codec) error { - if _, err := accAddressCodec.StringToBytes(msg.Sender); err != nil { - return err + // 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 { From a406777571a211436524ed8c8c7cd3cb619a8b15 Mon Sep 17 00:00:00 2001 From: beer-1 <147697694+beer-1@users.noreply.github.com> Date: Mon, 8 Jul 2024 18:32:18 +0900 Subject: [PATCH 2/7] use utils --- contrib/launchtools/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/launchtools/config.go b/contrib/launchtools/config.go index f8995ce4..1be2cbf1 100644 --- a/contrib/launchtools/config.go +++ b/contrib/launchtools/config.go @@ -270,7 +270,7 @@ func deriveAddress(mnemonic string) (string, string, error) { addrBz := privKey.PubKey().Address() // use init Bech32 prefix for l1 address - l1Addr, err := l1AddressFromBytes(addrBz) + l1Addr, err := utils.L1AddressCodec().BytesToString(addrBz) if err != nil { return "", "", errors.Wrap(err, "failed to convert address to bech32") } From a42823151101afc347bf59a1095c2fe87495f7c2 Mon Sep 17 00:00:00 2001 From: beer-1 <147697694+beer-1@users.noreply.github.com> Date: Mon, 8 Jul 2024 18:32:50 +0900 Subject: [PATCH 3/7] remove unused codes --- contrib/launchtools/config.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/contrib/launchtools/config.go b/contrib/launchtools/config.go index 1be2cbf1..a3d9a2dd 100644 --- a/contrib/launchtools/config.go +++ b/contrib/launchtools/config.go @@ -16,7 +16,6 @@ import ( "github.com/cosmos/cosmos-sdk/crypto/hd" "github.com/cosmos/cosmos-sdk/crypto/keyring" sdk "github.com/cosmos/cosmos-sdk/types" - authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec" "github.com/cosmos/go-bip39" ) @@ -251,10 +250,6 @@ func generateMnemonic() (string, error) { return mnemonic, nil } -func l1AddressFromBytes(bz []byte) (string, error) { - return authcodec.NewBech32Codec("init").BytesToString(bz) -} - func deriveAddress(mnemonic string) (string, string, error) { algo := hd.Secp256k1 derivedPriv, err := algo.Derive()( From 1e60ecac66228872f04229366560c9224d2097b3 Mon Sep 17 00:00:00 2001 From: beer-1 <147697694+beer-1@users.noreply.github.com> Date: Tue, 9 Jul 2024 12:19:44 +0900 Subject: [PATCH 4/7] add claimed query (#92) --- api/opinit/ophost/v1/query.pulsar.go | 1279 ++++++++++++++++++++++--- api/opinit/ophost/v1/query_grpc.pb.go | 40 + proto/opinit/ophost/v1/query.proto | 17 + x/ophost/keeper/querier.go | 15 + x/ophost/keeper/querier_test.go | 26 + x/ophost/types/query.pb.go | 550 +++++++++-- x/ophost/types/query.pb.gw.go | 123 +++ 7 files changed, 1846 insertions(+), 204 deletions(-) diff --git a/api/opinit/ophost/v1/query.pulsar.go b/api/opinit/ophost/v1/query.pulsar.go index 36ec131c..89b91a68 100644 --- a/api/opinit/ophost/v1/query.pulsar.go +++ b/api/opinit/ophost/v1/query.pulsar.go @@ -8604,6 +8604,886 @@ func (x *fastReflection_QueryParamsResponse) ProtoMethods() *protoiface.Methods } } +var ( + md_QueryClaimedRequest protoreflect.MessageDescriptor + fd_QueryClaimedRequest_bridge_id protoreflect.FieldDescriptor + fd_QueryClaimedRequest_withdrawal_hash protoreflect.FieldDescriptor +) + +func init() { + file_opinit_ophost_v1_query_proto_init() + md_QueryClaimedRequest = File_opinit_ophost_v1_query_proto.Messages().ByName("QueryClaimedRequest") + fd_QueryClaimedRequest_bridge_id = md_QueryClaimedRequest.Fields().ByName("bridge_id") + fd_QueryClaimedRequest_withdrawal_hash = md_QueryClaimedRequest.Fields().ByName("withdrawal_hash") +} + +var _ protoreflect.Message = (*fastReflection_QueryClaimedRequest)(nil) + +type fastReflection_QueryClaimedRequest QueryClaimedRequest + +func (x *QueryClaimedRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryClaimedRequest)(x) +} + +func (x *QueryClaimedRequest) slowProtoReflect() protoreflect.Message { + mi := &file_opinit_ophost_v1_query_proto_msgTypes[18] + 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_QueryClaimedRequest_messageType fastReflection_QueryClaimedRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryClaimedRequest_messageType{} + +type fastReflection_QueryClaimedRequest_messageType struct{} + +func (x fastReflection_QueryClaimedRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryClaimedRequest)(nil) +} +func (x fastReflection_QueryClaimedRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryClaimedRequest) +} +func (x fastReflection_QueryClaimedRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryClaimedRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryClaimedRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryClaimedRequest +} + +// 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_QueryClaimedRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryClaimedRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryClaimedRequest) New() protoreflect.Message { + return new(fastReflection_QueryClaimedRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryClaimedRequest) Interface() protoreflect.ProtoMessage { + return (*QueryClaimedRequest)(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_QueryClaimedRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.BridgeId != uint64(0) { + value := protoreflect.ValueOfUint64(x.BridgeId) + if !f(fd_QueryClaimedRequest_bridge_id, value) { + return + } + } + if len(x.WithdrawalHash) != 0 { + value := protoreflect.ValueOfBytes(x.WithdrawalHash) + if !f(fd_QueryClaimedRequest_withdrawal_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_QueryClaimedRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "opinit.ophost.v1.QueryClaimedRequest.bridge_id": + return x.BridgeId != uint64(0) + case "opinit.ophost.v1.QueryClaimedRequest.withdrawal_hash": + return len(x.WithdrawalHash) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryClaimedRequest")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryClaimedRequest 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_QueryClaimedRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "opinit.ophost.v1.QueryClaimedRequest.bridge_id": + x.BridgeId = uint64(0) + case "opinit.ophost.v1.QueryClaimedRequest.withdrawal_hash": + x.WithdrawalHash = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryClaimedRequest")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryClaimedRequest 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_QueryClaimedRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "opinit.ophost.v1.QueryClaimedRequest.bridge_id": + value := x.BridgeId + return protoreflect.ValueOfUint64(value) + case "opinit.ophost.v1.QueryClaimedRequest.withdrawal_hash": + value := x.WithdrawalHash + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryClaimedRequest")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryClaimedRequest 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_QueryClaimedRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "opinit.ophost.v1.QueryClaimedRequest.bridge_id": + x.BridgeId = value.Uint() + case "opinit.ophost.v1.QueryClaimedRequest.withdrawal_hash": + x.WithdrawalHash = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryClaimedRequest")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryClaimedRequest 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_QueryClaimedRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "opinit.ophost.v1.QueryClaimedRequest.bridge_id": + panic(fmt.Errorf("field bridge_id of message opinit.ophost.v1.QueryClaimedRequest is not mutable")) + case "opinit.ophost.v1.QueryClaimedRequest.withdrawal_hash": + panic(fmt.Errorf("field withdrawal_hash of message opinit.ophost.v1.QueryClaimedRequest is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryClaimedRequest")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryClaimedRequest 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_QueryClaimedRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "opinit.ophost.v1.QueryClaimedRequest.bridge_id": + return protoreflect.ValueOfUint64(uint64(0)) + case "opinit.ophost.v1.QueryClaimedRequest.withdrawal_hash": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryClaimedRequest")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryClaimedRequest 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_QueryClaimedRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in opinit.ophost.v1.QueryClaimedRequest", 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_QueryClaimedRequest) 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_QueryClaimedRequest) 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_QueryClaimedRequest) 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_QueryClaimedRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryClaimedRequest) + 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)) + } + l = len(x.WithdrawalHash) + 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().(*QueryClaimedRequest) + 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.WithdrawalHash) > 0 { + i -= len(x.WithdrawalHash) + copy(dAtA[i:], x.WithdrawalHash) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.WithdrawalHash))) + i-- + dAtA[i] = 0x12 + } + if x.BridgeId != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.BridgeId)) + 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().(*QueryClaimedRequest) + 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: QueryClaimedRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryClaimedRequest: 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 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 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field WithdrawalHash", 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.WithdrawalHash = append(x.WithdrawalHash[:0], dAtA[iNdEx:postIndex]...) + if x.WithdrawalHash == nil { + x.WithdrawalHash = []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_QueryClaimedResponse protoreflect.MessageDescriptor + fd_QueryClaimedResponse_claimed protoreflect.FieldDescriptor +) + +func init() { + file_opinit_ophost_v1_query_proto_init() + md_QueryClaimedResponse = File_opinit_ophost_v1_query_proto.Messages().ByName("QueryClaimedResponse") + fd_QueryClaimedResponse_claimed = md_QueryClaimedResponse.Fields().ByName("claimed") +} + +var _ protoreflect.Message = (*fastReflection_QueryClaimedResponse)(nil) + +type fastReflection_QueryClaimedResponse QueryClaimedResponse + +func (x *QueryClaimedResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryClaimedResponse)(x) +} + +func (x *QueryClaimedResponse) slowProtoReflect() protoreflect.Message { + mi := &file_opinit_ophost_v1_query_proto_msgTypes[19] + 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_QueryClaimedResponse_messageType fastReflection_QueryClaimedResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryClaimedResponse_messageType{} + +type fastReflection_QueryClaimedResponse_messageType struct{} + +func (x fastReflection_QueryClaimedResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryClaimedResponse)(nil) +} +func (x fastReflection_QueryClaimedResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryClaimedResponse) +} +func (x fastReflection_QueryClaimedResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryClaimedResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryClaimedResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryClaimedResponse +} + +// 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_QueryClaimedResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryClaimedResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryClaimedResponse) New() protoreflect.Message { + return new(fastReflection_QueryClaimedResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryClaimedResponse) Interface() protoreflect.ProtoMessage { + return (*QueryClaimedResponse)(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_QueryClaimedResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Claimed != false { + value := protoreflect.ValueOfBool(x.Claimed) + if !f(fd_QueryClaimedResponse_claimed, 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_QueryClaimedResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "opinit.ophost.v1.QueryClaimedResponse.claimed": + return x.Claimed != false + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryClaimedResponse")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryClaimedResponse 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_QueryClaimedResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "opinit.ophost.v1.QueryClaimedResponse.claimed": + x.Claimed = false + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryClaimedResponse")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryClaimedResponse 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_QueryClaimedResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "opinit.ophost.v1.QueryClaimedResponse.claimed": + value := x.Claimed + return protoreflect.ValueOfBool(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryClaimedResponse")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryClaimedResponse 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_QueryClaimedResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "opinit.ophost.v1.QueryClaimedResponse.claimed": + x.Claimed = value.Bool() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryClaimedResponse")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryClaimedResponse 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_QueryClaimedResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "opinit.ophost.v1.QueryClaimedResponse.claimed": + panic(fmt.Errorf("field claimed of message opinit.ophost.v1.QueryClaimedResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryClaimedResponse")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryClaimedResponse 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_QueryClaimedResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "opinit.ophost.v1.QueryClaimedResponse.claimed": + return protoreflect.ValueOfBool(false) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryClaimedResponse")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryClaimedResponse 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_QueryClaimedResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in opinit.ophost.v1.QueryClaimedResponse", 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_QueryClaimedResponse) 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_QueryClaimedResponse) 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_QueryClaimedResponse) 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_QueryClaimedResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryClaimedResponse) + 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.Claimed { + n += 2 + } + 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().(*QueryClaimedResponse) + 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.Claimed { + i-- + if x.Claimed { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + 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().(*QueryClaimedResponse) + 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: QueryClaimedResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryClaimedResponse: 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 Claimed", wireType) + } + var v 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++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Claimed = bool(v != 0) + 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 @@ -9373,6 +10253,86 @@ func (x *QueryParamsResponse) GetParams() *Params { return nil } +// QueryClaimedRequest is request type for the Query/Claimed RPC method. +type QueryClaimedRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BridgeId uint64 `protobuf:"varint,1,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` + WithdrawalHash []byte `protobuf:"bytes,2,opt,name=withdrawal_hash,json=withdrawalHash,proto3" json:"withdrawal_hash,omitempty"` +} + +func (x *QueryClaimedRequest) Reset() { + *x = QueryClaimedRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_opinit_ophost_v1_query_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryClaimedRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryClaimedRequest) ProtoMessage() {} + +// Deprecated: Use QueryClaimedRequest.ProtoReflect.Descriptor instead. +func (*QueryClaimedRequest) Descriptor() ([]byte, []int) { + return file_opinit_ophost_v1_query_proto_rawDescGZIP(), []int{18} +} + +func (x *QueryClaimedRequest) GetBridgeId() uint64 { + if x != nil { + return x.BridgeId + } + return 0 +} + +func (x *QueryClaimedRequest) GetWithdrawalHash() []byte { + if x != nil { + return x.WithdrawalHash + } + return nil +} + +// QueryClaimedResponse is response type for the Query/Claimed RPC method +type QueryClaimedResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Claimed bool `protobuf:"varint,1,opt,name=claimed,proto3" json:"claimed,omitempty"` +} + +func (x *QueryClaimedResponse) Reset() { + *x = QueryClaimedResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_opinit_ophost_v1_query_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryClaimedResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryClaimedResponse) ProtoMessage() {} + +// Deprecated: Use QueryClaimedResponse.ProtoReflect.Descriptor instead. +func (*QueryClaimedResponse) Descriptor() ([]byte, []int) { + return file_opinit_ophost_v1_query_proto_rawDescGZIP(), []int{19} +} + +func (x *QueryClaimedResponse) GetClaimed() bool { + if x != nil { + return x.Claimed + } + return false +} + var File_opinit_ophost_v1_query_proto protoreflect.FileDescriptor var file_opinit_ophost_v1_query_proto_rawDesc = []byte{ @@ -9528,115 +10488,136 @@ var file_opinit_ophost_v1_query_proto_rawDesc = []byte{ 0x6d, 0x73, 0x18, 0x01, 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, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x32, 0xfb, 0x0b, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, - 0x89, 0x01, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 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, - 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, - 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x80, 0x01, 0x0a, 0x07, - 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, - 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 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, 0x68, - 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0xc5, - 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, - 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x31, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, - 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, - 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, - 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, - 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, - 0x72, 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xa1, - 0x01, 0x0a, 0x0a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x28, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x3e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, - 0x31, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, - 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, - 0x72, 0x73, 0x12, 0xc6, 0x01, 0x0a, 0x13, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x5b, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, + 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x48, 0x61, + 0x73, 0x68, 0x22, 0x30, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, + 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x65, 0x64, 0x32, 0xb0, 0x0d, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x89, + 0x01, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 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, 0x68, + 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, + 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x80, 0x01, 0x0a, 0x07, 0x42, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x48, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 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, 0x68, 0x6f, + 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0xc5, 0x01, + 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, + 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x31, 0x5f, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, + 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, + 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, + 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0xb8, 0x01, 0x0a, 0x0e, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x2c, - 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, + 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, + 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xa1, 0x01, + 0x0a, 0x0a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x28, 0x2e, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x3e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, + 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, + 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, + 0x73, 0x12, 0xc6, 0x01, 0x0a, 0x13, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x88, 0xe7, 0xb0, - 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x2f, 0x7b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x0f, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x48, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, + 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0xb8, 0x01, 0x0a, 0x0e, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x2c, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x88, 0xe7, 0xb0, 0x2a, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x2f, 0x7b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x0f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x73, 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, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x7c, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, - 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, - 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x88, 0xe7, - 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x42, 0xc1, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, - 0x65, 0x72, 0x79, 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, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, + 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, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, + 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x73, 0x12, 0x7c, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x88, 0xe7, 0xb0, + 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0x25, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, + 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, + 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x88, + 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x12, 0x4b, 0x2f, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x77, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x7d, 0x2f, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x42, 0xc1, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 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 ( @@ -9651,7 +10632,7 @@ func file_opinit_ophost_v1_query_proto_rawDescGZIP() []byte { return file_opinit_ophost_v1_query_proto_rawDescData } -var file_opinit_ophost_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_opinit_ophost_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 20) var file_opinit_ophost_v1_query_proto_goTypes = []interface{}{ (*QueryBridgeRequest)(nil), // 0: opinit.ophost.v1.QueryBridgeRequest (*QueryBridgeResponse)(nil), // 1: opinit.ophost.v1.QueryBridgeResponse @@ -9671,29 +10652,31 @@ var file_opinit_ophost_v1_query_proto_goTypes = []interface{}{ (*QueryOutputProposalsResponse)(nil), // 15: opinit.ophost.v1.QueryOutputProposalsResponse (*QueryParamsRequest)(nil), // 16: opinit.ophost.v1.QueryParamsRequest (*QueryParamsResponse)(nil), // 17: opinit.ophost.v1.QueryParamsResponse - (*BridgeConfig)(nil), // 18: opinit.ophost.v1.BridgeConfig - (*v1beta1.PageRequest)(nil), // 19: cosmos.base.query.v1beta1.PageRequest - (*v1beta1.PageResponse)(nil), // 20: cosmos.base.query.v1beta1.PageResponse - (*TokenPair)(nil), // 21: opinit.ophost.v1.TokenPair - (*Output)(nil), // 22: opinit.ophost.v1.Output - (*Params)(nil), // 23: opinit.ophost.v1.Params + (*QueryClaimedRequest)(nil), // 18: opinit.ophost.v1.QueryClaimedRequest + (*QueryClaimedResponse)(nil), // 19: opinit.ophost.v1.QueryClaimedResponse + (*BridgeConfig)(nil), // 20: opinit.ophost.v1.BridgeConfig + (*v1beta1.PageRequest)(nil), // 21: cosmos.base.query.v1beta1.PageRequest + (*v1beta1.PageResponse)(nil), // 22: cosmos.base.query.v1beta1.PageResponse + (*TokenPair)(nil), // 23: opinit.ophost.v1.TokenPair + (*Output)(nil), // 24: opinit.ophost.v1.Output + (*Params)(nil), // 25: opinit.ophost.v1.Params } var file_opinit_ophost_v1_query_proto_depIdxs = []int32{ - 18, // 0: opinit.ophost.v1.QueryBridgeResponse.bridge_config:type_name -> opinit.ophost.v1.BridgeConfig - 19, // 1: opinit.ophost.v1.QueryBridgesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 20, // 0: opinit.ophost.v1.QueryBridgeResponse.bridge_config:type_name -> opinit.ophost.v1.BridgeConfig + 21, // 1: opinit.ophost.v1.QueryBridgesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest 1, // 2: opinit.ophost.v1.QueryBridgesResponse.bridges:type_name -> opinit.ophost.v1.QueryBridgeResponse - 20, // 3: opinit.ophost.v1.QueryBridgesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 21, // 4: opinit.ophost.v1.QueryTokenPairByL1DenomResponse.token_pair:type_name -> opinit.ophost.v1.TokenPair - 21, // 5: opinit.ophost.v1.QueryTokenPairByL2DenomResponse.token_pair:type_name -> opinit.ophost.v1.TokenPair - 19, // 6: opinit.ophost.v1.QueryTokenPairsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 21, // 7: opinit.ophost.v1.QueryTokenPairsResponse.token_pairs:type_name -> opinit.ophost.v1.TokenPair - 20, // 8: opinit.ophost.v1.QueryTokenPairsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 22, // 9: opinit.ophost.v1.QueryLastFinalizedOutputResponse.output_proposal:type_name -> opinit.ophost.v1.Output - 22, // 10: opinit.ophost.v1.QueryOutputProposalResponse.output_proposal:type_name -> opinit.ophost.v1.Output - 19, // 11: opinit.ophost.v1.QueryOutputProposalsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 22, // 3: opinit.ophost.v1.QueryBridgesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 23, // 4: opinit.ophost.v1.QueryTokenPairByL1DenomResponse.token_pair:type_name -> opinit.ophost.v1.TokenPair + 23, // 5: opinit.ophost.v1.QueryTokenPairByL2DenomResponse.token_pair:type_name -> opinit.ophost.v1.TokenPair + 21, // 6: opinit.ophost.v1.QueryTokenPairsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 23, // 7: opinit.ophost.v1.QueryTokenPairsResponse.token_pairs:type_name -> opinit.ophost.v1.TokenPair + 22, // 8: opinit.ophost.v1.QueryTokenPairsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 24, // 9: opinit.ophost.v1.QueryLastFinalizedOutputResponse.output_proposal:type_name -> opinit.ophost.v1.Output + 24, // 10: opinit.ophost.v1.QueryOutputProposalResponse.output_proposal:type_name -> opinit.ophost.v1.Output + 21, // 11: opinit.ophost.v1.QueryOutputProposalsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest 13, // 12: opinit.ophost.v1.QueryOutputProposalsResponse.output_proposals:type_name -> opinit.ophost.v1.QueryOutputProposalResponse - 20, // 13: opinit.ophost.v1.QueryOutputProposalsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 23, // 14: opinit.ophost.v1.QueryParamsResponse.params:type_name -> opinit.ophost.v1.Params + 22, // 13: opinit.ophost.v1.QueryOutputProposalsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 25, // 14: opinit.ophost.v1.QueryParamsResponse.params:type_name -> opinit.ophost.v1.Params 0, // 15: opinit.ophost.v1.Query.Bridge:input_type -> opinit.ophost.v1.QueryBridgeRequest 2, // 16: opinit.ophost.v1.Query.Bridges:input_type -> opinit.ophost.v1.QueryBridgesRequest 4, // 17: opinit.ophost.v1.Query.TokenPairByL1Denom:input_type -> opinit.ophost.v1.QueryTokenPairByL1DenomRequest @@ -9703,17 +10686,19 @@ var file_opinit_ophost_v1_query_proto_depIdxs = []int32{ 12, // 21: opinit.ophost.v1.Query.OutputProposal:input_type -> opinit.ophost.v1.QueryOutputProposalRequest 14, // 22: opinit.ophost.v1.Query.OutputProposals:input_type -> opinit.ophost.v1.QueryOutputProposalsRequest 16, // 23: opinit.ophost.v1.Query.Params:input_type -> opinit.ophost.v1.QueryParamsRequest - 1, // 24: opinit.ophost.v1.Query.Bridge:output_type -> opinit.ophost.v1.QueryBridgeResponse - 3, // 25: opinit.ophost.v1.Query.Bridges:output_type -> opinit.ophost.v1.QueryBridgesResponse - 5, // 26: opinit.ophost.v1.Query.TokenPairByL1Denom:output_type -> opinit.ophost.v1.QueryTokenPairByL1DenomResponse - 7, // 27: opinit.ophost.v1.Query.TokenPairByL2Denom:output_type -> opinit.ophost.v1.QueryTokenPairByL2DenomResponse - 9, // 28: opinit.ophost.v1.Query.TokenPairs:output_type -> opinit.ophost.v1.QueryTokenPairsResponse - 11, // 29: opinit.ophost.v1.Query.LastFinalizedOutput:output_type -> opinit.ophost.v1.QueryLastFinalizedOutputResponse - 13, // 30: opinit.ophost.v1.Query.OutputProposal:output_type -> opinit.ophost.v1.QueryOutputProposalResponse - 15, // 31: opinit.ophost.v1.Query.OutputProposals:output_type -> opinit.ophost.v1.QueryOutputProposalsResponse - 17, // 32: opinit.ophost.v1.Query.Params:output_type -> opinit.ophost.v1.QueryParamsResponse - 24, // [24:33] is the sub-list for method output_type - 15, // [15:24] is the sub-list for method input_type + 18, // 24: opinit.ophost.v1.Query.Claimed:input_type -> opinit.ophost.v1.QueryClaimedRequest + 1, // 25: opinit.ophost.v1.Query.Bridge:output_type -> opinit.ophost.v1.QueryBridgeResponse + 3, // 26: opinit.ophost.v1.Query.Bridges:output_type -> opinit.ophost.v1.QueryBridgesResponse + 5, // 27: opinit.ophost.v1.Query.TokenPairByL1Denom:output_type -> opinit.ophost.v1.QueryTokenPairByL1DenomResponse + 7, // 28: opinit.ophost.v1.Query.TokenPairByL2Denom:output_type -> opinit.ophost.v1.QueryTokenPairByL2DenomResponse + 9, // 29: opinit.ophost.v1.Query.TokenPairs:output_type -> opinit.ophost.v1.QueryTokenPairsResponse + 11, // 30: opinit.ophost.v1.Query.LastFinalizedOutput:output_type -> opinit.ophost.v1.QueryLastFinalizedOutputResponse + 13, // 31: opinit.ophost.v1.Query.OutputProposal:output_type -> opinit.ophost.v1.QueryOutputProposalResponse + 15, // 32: opinit.ophost.v1.Query.OutputProposals:output_type -> opinit.ophost.v1.QueryOutputProposalsResponse + 17, // 33: opinit.ophost.v1.Query.Params:output_type -> opinit.ophost.v1.QueryParamsResponse + 19, // 34: opinit.ophost.v1.Query.Claimed:output_type -> opinit.ophost.v1.QueryClaimedResponse + 25, // [25:35] is the sub-list for method output_type + 15, // [15:25] is the sub-list for method input_type 15, // [15:15] is the sub-list for extension type_name 15, // [15:15] is the sub-list for extension extendee 0, // [0:15] is the sub-list for field type_name @@ -9942,6 +10927,30 @@ func file_opinit_ophost_v1_query_proto_init() { return nil } } + file_opinit_ophost_v1_query_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryClaimedRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_opinit_ophost_v1_query_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryClaimedResponse); 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{ @@ -9949,7 +10958,7 @@ func file_opinit_ophost_v1_query_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_opinit_ophost_v1_query_proto_rawDesc, NumEnums: 0, - NumMessages: 18, + NumMessages: 20, NumExtensions: 0, NumServices: 1, }, diff --git a/api/opinit/ophost/v1/query_grpc.pb.go b/api/opinit/ophost/v1/query_grpc.pb.go index 9096bcee..be50ae51 100644 --- a/api/opinit/ophost/v1/query_grpc.pb.go +++ b/api/opinit/ophost/v1/query_grpc.pb.go @@ -28,6 +28,7 @@ const ( Query_OutputProposal_FullMethodName = "/opinit.ophost.v1.Query/OutputProposal" Query_OutputProposals_FullMethodName = "/opinit.ophost.v1.Query/OutputProposals" Query_Params_FullMethodName = "/opinit.ophost.v1.Query/Params" + Query_Claimed_FullMethodName = "/opinit.ophost.v1.Query/Claimed" ) // QueryClient is the client API for Query service. @@ -53,6 +54,8 @@ type QueryClient interface { OutputProposals(ctx context.Context, in *QueryOutputProposalsRequest, opts ...grpc.CallOption) (*QueryOutputProposalsResponse, error) // Parameters queries the rollup parameters. Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + // Claimed queries whether the output is claimed. + Claimed(ctx context.Context, in *QueryClaimedRequest, opts ...grpc.CallOption) (*QueryClaimedResponse, error) } type queryClient struct { @@ -153,6 +156,16 @@ func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts . return out, nil } +func (c *queryClient) Claimed(ctx context.Context, in *QueryClaimedRequest, opts ...grpc.CallOption) (*QueryClaimedResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(QueryClaimedResponse) + err := c.cc.Invoke(ctx, Query_Claimed_FullMethodName, in, out, cOpts...) + 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 @@ -176,6 +189,8 @@ type QueryServer interface { OutputProposals(context.Context, *QueryOutputProposalsRequest) (*QueryOutputProposalsResponse, error) // Parameters queries the rollup parameters. Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + // Claimed queries whether the output is claimed. + Claimed(context.Context, *QueryClaimedRequest) (*QueryClaimedResponse, error) mustEmbedUnimplementedQueryServer() } @@ -210,6 +225,9 @@ func (UnimplementedQueryServer) OutputProposals(context.Context, *QueryOutputPro func (UnimplementedQueryServer) Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") } +func (UnimplementedQueryServer) Claimed(context.Context, *QueryClaimedRequest) (*QueryClaimedResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Claimed not implemented") +} func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {} // UnsafeQueryServer may be embedded to opt out of forward compatibility for this service. @@ -385,6 +403,24 @@ func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interf return interceptor(ctx, in, info, handler) } +func _Query_Claimed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryClaimedRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Claimed(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_Claimed_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Claimed(ctx, req.(*QueryClaimedRequest)) + } + 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) @@ -428,6 +464,10 @@ var Query_ServiceDesc = grpc.ServiceDesc{ MethodName: "Params", Handler: _Query_Params_Handler, }, + { + MethodName: "Claimed", + Handler: _Query_Claimed_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "opinit/ophost/v1/query.proto", diff --git a/proto/opinit/ophost/v1/query.proto b/proto/opinit/ophost/v1/query.proto index 930c5e86..567f5650 100644 --- a/proto/opinit/ophost/v1/query.proto +++ b/proto/opinit/ophost/v1/query.proto @@ -66,6 +66,12 @@ service Query { option (cosmos.query.v1.module_query_safe) = true; option (google.api.http).get = "/opinit/ophost/v1/params"; } + + // 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/{withdrawal_hash}/claimed"; + } } // QueryBridgeRequest is request type for Query/Bridge RPC method. @@ -183,3 +189,14 @@ message QueryParamsResponse { // params holds all the parameters of this module. Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; } + +// QueryClaimedRequest is request type for the Query/Claimed RPC method. +message QueryClaimedRequest { + uint64 bridge_id = 1; + bytes withdrawal_hash = 2; +} + +// QueryClaimedResponse is response type for the Query/Claimed RPC method +message QueryClaimedResponse { + bool claimed = 1; +} diff --git a/x/ophost/keeper/querier.go b/x/ophost/keeper/querier.go index 39769630..154f987d 100644 --- a/x/ophost/keeper/querier.go +++ b/x/ophost/keeper/querier.go @@ -141,3 +141,18 @@ func (q Querier) OutputProposals(ctx context.Context, req *types.QueryOutputProp func (q Querier) Params(ctx context.Context, req *types.QueryParamsRequest) (*types.QueryParamsResponse, error) { return &types.QueryParamsResponse{Params: q.GetParams(ctx)}, nil } + +func (q Querier) Claimed(ctx context.Context, req *types.QueryClaimedRequest) (*types.QueryClaimedResponse, error) { + if len(req.WithdrawalHash) != 32 { + return nil, status.Error(codes.InvalidArgument, "invalid withdrawal hash") + } + + claimed, err := q.HasProvenWithdrawal(ctx, req.BridgeId, [32]byte(req.WithdrawalHash)) + if err != nil { + return nil, err + } + + return &types.QueryClaimedResponse{ + Claimed: claimed, + }, nil +} diff --git a/x/ophost/keeper/querier_test.go b/x/ophost/keeper/querier_test.go index 7dfaebd7..05576821 100644 --- a/x/ophost/keeper/querier_test.go +++ b/x/ophost/keeper/querier_test.go @@ -217,3 +217,29 @@ func Test_QueryLastFinalizedOutput(t *testing.T) { L2BlockNumber: 100, }, res.OutputProposal) } + +func Test_QueryClaimed(t *testing.T) { + ctx, input := createDefaultTestInput(t) + + wh := [32]byte{1, 2, 3} + + // Check if the withdrawal is not claimed + res, err := keeper.NewQuerier(input.OPHostKeeper).Claimed(ctx, &types.QueryClaimedRequest{ + BridgeId: 1, + WithdrawalHash: wh[:], + }) + require.NoError(t, err) + require.False(t, res.Claimed) + + // Record the withdrawal as claimed + err = input.OPHostKeeper.RecordProvenWithdrawal(ctx, 1, wh) + require.NoError(t, err) + + // Check if the withdrawal is claimed + res, err = keeper.NewQuerier(input.OPHostKeeper).Claimed(ctx, &types.QueryClaimedRequest{ + BridgeId: 1, + WithdrawalHash: wh[:], + }) + require.NoError(t, err) + require.True(t, res.Claimed) +} diff --git a/x/ophost/types/query.pb.go b/x/ophost/types/query.pb.go index 6f363857..1652c3bf 100644 --- a/x/ophost/types/query.pb.go +++ b/x/ophost/types/query.pb.go @@ -937,6 +937,104 @@ func (m *QueryParamsResponse) GetParams() Params { return Params{} } +// QueryClaimedRequest is request type for the Query/Claimed RPC method. +type QueryClaimedRequest struct { + BridgeId uint64 `protobuf:"varint,1,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` + WithdrawalHash []byte `protobuf:"bytes,2,opt,name=withdrawal_hash,json=withdrawalHash,proto3" json:"withdrawal_hash,omitempty"` +} + +func (m *QueryClaimedRequest) Reset() { *m = QueryClaimedRequest{} } +func (m *QueryClaimedRequest) String() string { return proto.CompactTextString(m) } +func (*QueryClaimedRequest) ProtoMessage() {} +func (*QueryClaimedRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_7dd525d30e46de74, []int{18} +} +func (m *QueryClaimedRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryClaimedRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryClaimedRequest.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 *QueryClaimedRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryClaimedRequest.Merge(m, src) +} +func (m *QueryClaimedRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryClaimedRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryClaimedRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryClaimedRequest proto.InternalMessageInfo + +func (m *QueryClaimedRequest) GetBridgeId() uint64 { + if m != nil { + return m.BridgeId + } + return 0 +} + +func (m *QueryClaimedRequest) GetWithdrawalHash() []byte { + if m != nil { + return m.WithdrawalHash + } + return nil +} + +// QueryClaimedResponse is response type for the Query/Claimed RPC method +type QueryClaimedResponse struct { + Claimed bool `protobuf:"varint,1,opt,name=claimed,proto3" json:"claimed,omitempty"` +} + +func (m *QueryClaimedResponse) Reset() { *m = QueryClaimedResponse{} } +func (m *QueryClaimedResponse) String() string { return proto.CompactTextString(m) } +func (*QueryClaimedResponse) ProtoMessage() {} +func (*QueryClaimedResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_7dd525d30e46de74, []int{19} +} +func (m *QueryClaimedResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryClaimedResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryClaimedResponse.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 *QueryClaimedResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryClaimedResponse.Merge(m, src) +} +func (m *QueryClaimedResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryClaimedResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryClaimedResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryClaimedResponse proto.InternalMessageInfo + +func (m *QueryClaimedResponse) GetClaimed() bool { + if m != nil { + return m.Claimed + } + return false +} + func init() { proto.RegisterType((*QueryBridgeRequest)(nil), "opinit.ophost.v1.QueryBridgeRequest") proto.RegisterType((*QueryBridgeResponse)(nil), "opinit.ophost.v1.QueryBridgeResponse") @@ -956,80 +1054,87 @@ func init() { proto.RegisterType((*QueryOutputProposalsResponse)(nil), "opinit.ophost.v1.QueryOutputProposalsResponse") proto.RegisterType((*QueryParamsRequest)(nil), "opinit.ophost.v1.QueryParamsRequest") proto.RegisterType((*QueryParamsResponse)(nil), "opinit.ophost.v1.QueryParamsResponse") + proto.RegisterType((*QueryClaimedRequest)(nil), "opinit.ophost.v1.QueryClaimedRequest") + proto.RegisterType((*QueryClaimedResponse)(nil), "opinit.ophost.v1.QueryClaimedResponse") } func init() { proto.RegisterFile("opinit/ophost/v1/query.proto", fileDescriptor_7dd525d30e46de74) } var fileDescriptor_7dd525d30e46de74 = []byte{ - // 1073 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xcf, 0x6f, 0xdc, 0x44, - 0x14, 0xde, 0x49, 0x20, 0x3f, 0xde, 0x96, 0xa6, 0x4c, 0x23, 0xd8, 0xec, 0x46, 0x9b, 0xc5, 0x22, - 0xe9, 0x52, 0x35, 0x36, 0xeb, 0x9e, 0x68, 0x68, 0x10, 0x0b, 0xa4, 0xa4, 0x8a, 0xc8, 0xb2, 0x70, - 0x40, 0x08, 0x69, 0x35, 0x1b, 0xbb, 0x8e, 0xc5, 0xae, 0xc7, 0xf5, 0x78, 0xa3, 0x86, 0x12, 0x09, - 0x71, 0x2a, 0x37, 0xa4, 0xfe, 0x03, 0xe5, 0x80, 0x84, 0x04, 0x07, 0x0e, 0x1c, 0xb8, 0x70, 0x04, - 0xf5, 0xc0, 0xa1, 0x82, 0x0b, 0x27, 0x84, 0x12, 0x24, 0xf8, 0x1f, 0xb8, 0x20, 0x7b, 0xc6, 0x6b, - 0x7b, 0x6d, 0x77, 0xbd, 0x51, 0x7a, 0x89, 0xb2, 0x6f, 0xde, 0x7b, 0xf3, 0x7d, 0xdf, 0x7b, 0x7e, - 0xcf, 0x86, 0x65, 0x6a, 0x9b, 0x96, 0xe9, 0x2a, 0xd4, 0xde, 0xa7, 0xcc, 0x55, 0x0e, 0x1a, 0xca, - 0xed, 0x81, 0xee, 0x1c, 0xca, 0xb6, 0x43, 0x5d, 0x8a, 0x2f, 0xf0, 0x53, 0x99, 0x9f, 0xca, 0x07, - 0x8d, 0xf2, 0xb3, 0xa4, 0x6f, 0x5a, 0x54, 0xf1, 0xff, 0x72, 0xa7, 0xf2, 0xe5, 0x3d, 0xca, 0xfa, - 0x94, 0x29, 0x5d, 0xc2, 0x74, 0x1e, 0xad, 0x1c, 0x34, 0xba, 0xba, 0x4b, 0x1a, 0x8a, 0x4d, 0x0c, - 0xd3, 0x22, 0xae, 0x49, 0x2d, 0xe1, 0x5b, 0x11, 0xbe, 0x81, 0x5b, 0xf4, 0xb6, 0xf2, 0x12, 0x3f, - 0xec, 0xf8, 0xbf, 0x14, 0xfe, 0x43, 0x1c, 0x2d, 0x1a, 0xd4, 0xa0, 0xdc, 0xee, 0xfd, 0x27, 0xac, - 0xcb, 0x06, 0xa5, 0x46, 0x4f, 0x57, 0x88, 0x6d, 0x2a, 0xc4, 0xb2, 0xa8, 0xeb, 0x5f, 0x15, 0xc4, - 0x24, 0xa9, 0xb9, 0x87, 0xb6, 0x2e, 0x4e, 0xa5, 0x0d, 0xc0, 0xef, 0x7a, 0x77, 0x37, 0x1d, 0x53, - 0x33, 0xf4, 0xb6, 0x7e, 0x7b, 0xa0, 0x33, 0x17, 0x57, 0x60, 0xbe, 0xeb, 0x1b, 0x3a, 0xa6, 0x56, - 0x42, 0x35, 0x54, 0x7f, 0xaa, 0x3d, 0xc7, 0x0d, 0xdb, 0xda, 0xb5, 0xb9, 0x7b, 0x0f, 0x56, 0x0a, - 0xff, 0x3e, 0x58, 0x29, 0x48, 0x3f, 0x21, 0xb8, 0x18, 0x8b, 0x66, 0x36, 0xb5, 0x98, 0xfe, 0xd8, - 0x70, 0xfc, 0x0a, 0x14, 0xc5, 0x21, 0xd1, 0x34, 0xa7, 0x34, 0x55, 0x43, 0xf5, 0xf9, 0x66, 0xe9, - 0xb7, 0x1f, 0xd6, 0x17, 0x05, 0xd5, 0xd7, 0x35, 0xcd, 0xd1, 0x19, 0x7b, 0xcf, 0x75, 0x4c, 0xcb, - 0x68, 0x03, 0x77, 0xf6, 0x8c, 0xf8, 0x1d, 0x78, 0x46, 0x84, 0xee, 0x51, 0xeb, 0x96, 0x69, 0x94, - 0xa6, 0x6b, 0xa8, 0x5e, 0x54, 0xab, 0xf2, 0x68, 0x7d, 0x64, 0x0e, 0xe8, 0x0d, 0xdf, 0xab, 0x39, - 0xff, 0xf0, 0xcf, 0x95, 0xc2, 0x37, 0xff, 0x7c, 0x7f, 0x19, 0xb5, 0xcf, 0x75, 0x23, 0x07, 0x92, - 0x11, 0x83, 0xcf, 0x02, 0xf6, 0x5b, 0x00, 0x61, 0xc5, 0x7c, 0xfc, 0x45, 0x75, 0x4d, 0x16, 0xe8, - 0xbc, 0xf2, 0xca, 0xbc, 0x5c, 0xa2, 0xbc, 0x72, 0x8b, 0x0c, 0x95, 0x6b, 0x47, 0x22, 0x23, 0x42, - 0x7d, 0x8b, 0x60, 0x31, 0x7e, 0x93, 0x50, 0xea, 0x26, 0xcc, 0x72, 0x44, 0xac, 0x84, 0x6a, 0xd3, - 0xf5, 0xa2, 0xba, 0x9a, 0xe4, 0x92, 0xa2, 0x70, 0x94, 0x52, 0x90, 0x00, 0xdf, 0x88, 0xc1, 0x9e, - 0xf2, 0x61, 0x5f, 0x1a, 0x0b, 0x9b, 0x27, 0x8c, 0xe2, 0x96, 0x3e, 0x80, 0xaa, 0x7f, 0xe7, 0xfb, - 0xf4, 0x63, 0xdd, 0x6a, 0x11, 0xd3, 0x69, 0x1e, 0xee, 0x34, 0xde, 0xd4, 0x2d, 0xda, 0xcf, 0xd3, - 0x1f, 0x78, 0x09, 0xe6, 0x7a, 0x8d, 0x8e, 0xe6, 0xf9, 0xf3, 0xea, 0xb6, 0x67, 0x7b, 0x3c, 0x5c, - 0xda, 0x87, 0x95, 0xcc, 0xcc, 0x42, 0x91, 0xb7, 0x00, 0x5c, 0xef, 0xb4, 0x63, 0x13, 0xd3, 0x11, - 0xe2, 0x57, 0x92, 0xa2, 0x84, 0x19, 0x22, 0x52, 0xcc, 0xbb, 0x81, 0x35, 0x95, 0x83, 0x3a, 0x19, - 0x07, 0x75, 0x84, 0x83, 0x9a, 0xcd, 0x41, 0x7d, 0x22, 0x1c, 0x8e, 0xe0, 0xb9, 0xf8, 0x4d, 0x2c, - 0x17, 0xf6, 0xad, 0x94, 0x3e, 0x38, 0x45, 0xfb, 0x7a, 0x4d, 0xfb, 0x7c, 0xe2, 0x7e, 0xc1, 0xf0, - 0x06, 0x14, 0x43, 0x86, 0x41, 0xef, 0xe6, 0xa5, 0x08, 0x43, 0x8a, 0x67, 0xd8, 0xb4, 0x9b, 0xa2, - 0x2c, 0x3b, 0x84, 0xb9, 0x5b, 0xa6, 0x45, 0x7a, 0xe6, 0x27, 0xba, 0xb6, 0x3b, 0x70, 0xed, 0x81, - 0x9b, 0x47, 0x35, 0xe9, 0x3e, 0x82, 0x5a, 0x76, 0x02, 0x41, 0xfb, 0x05, 0x38, 0x47, 0x7d, 0x4b, - 0xc7, 0xb4, 0x34, 0xfd, 0x8e, 0x48, 0x52, 0xe4, 0xb6, 0x6d, 0xcf, 0x84, 0x77, 0x60, 0x41, 0xb8, - 0xd8, 0x0e, 0xb5, 0x29, 0x23, 0x3d, 0xc1, 0xaa, 0x94, 0x54, 0x87, 0x67, 0x8f, 0x4a, 0x73, 0x9e, - 0xc7, 0xb6, 0x44, 0xa8, 0xf4, 0x11, 0x94, 0x7d, 0x50, 0xbb, 0x31, 0x73, 0xae, 0x36, 0x18, 0xc5, - 0x3a, 0x95, 0xc0, 0xea, 0x55, 0xb8, 0x92, 0x9a, 0x3e, 0xcf, 0x1c, 0x1f, 0x9f, 0x3f, 0x4d, 0x8b, - 0xe9, 0xd3, 0x6b, 0xf1, 0x75, 0x3a, 0x5a, 0x76, 0x46, 0x6a, 0x8c, 0x3c, 0x37, 0xd3, 0xa7, 0x7e, - 0x6e, 0x7e, 0x45, 0xb0, 0x9c, 0x8e, 0x53, 0xc8, 0xba, 0x07, 0x17, 0x46, 0x64, 0x09, 0x9e, 0xa0, - 0xf5, 0x8c, 0xe9, 0x9f, 0x5e, 0x9f, 0xa8, 0x58, 0x0b, 0x71, 0xb1, 0xce, 0xf0, 0xc1, 0x5a, 0x14, - 0x6f, 0x08, 0x2d, 0xe2, 0x90, 0x7e, 0x20, 0xb6, 0xd4, 0x16, 0xab, 0x33, 0xb0, 0x0a, 0x6a, 0x1b, - 0x30, 0x63, 0xfb, 0x16, 0x31, 0xf5, 0x52, 0x0a, 0xcd, 0x23, 0xa2, 0xd8, 0x45, 0x88, 0xfa, 0x5f, - 0x11, 0x9e, 0xf6, 0x93, 0xe2, 0x2f, 0x10, 0xcc, 0xf0, 0x8d, 0x87, 0x5f, 0x1c, 0xb3, 0x10, 0x7d, - 0x38, 0xe5, 0x7c, 0x6b, 0x53, 0x52, 0xef, 0x79, 0x17, 0x7e, 0xfe, 0xfb, 0xdf, 0xf7, 0xa7, 0x2e, - 0xe1, 0x55, 0x25, 0xf1, 0x66, 0x24, 0x56, 0xa9, 0x72, 0x77, 0xd8, 0x48, 0x47, 0xf8, 0x33, 0x04, - 0xb3, 0x62, 0x6d, 0xe3, 0xc7, 0x5f, 0x13, 0x88, 0x53, 0x5e, 0x1b, 0xe7, 0x26, 0xe0, 0xac, 0x85, - 0x70, 0x2a, 0x78, 0x29, 0x13, 0x0e, 0xfe, 0x19, 0x01, 0x4e, 0xae, 0x4c, 0xfc, 0x72, 0xc6, 0x35, - 0x99, 0x7b, 0xbb, 0xdc, 0x98, 0x20, 0x42, 0x60, 0xbc, 0x19, 0x62, 0x7c, 0x0d, 0x5f, 0xcf, 0x25, - 0x99, 0x12, 0x59, 0x0d, 0x4a, 0xf7, 0xb0, 0x13, 0xbc, 0x0d, 0x24, 0x78, 0xa8, 0xf9, 0x79, 0xa8, - 0x13, 0xf3, 0x50, 0xcf, 0x9e, 0x87, 0x78, 0x23, 0xc0, 0x5f, 0x21, 0x80, 0x70, 0x29, 0xe2, 0xfa, - 0x38, 0x34, 0xc3, 0xc6, 0x78, 0x29, 0x87, 0xa7, 0xc0, 0xbb, 0x19, 0xe2, 0xbd, 0x8a, 0x1b, 0x13, - 0xe3, 0xc5, 0xbf, 0x20, 0xb8, 0x98, 0xb2, 0xca, 0x70, 0x96, 0x74, 0xd9, 0x7b, 0xb3, 0xac, 0x4e, - 0x12, 0x22, 0xe0, 0xbf, 0x1d, 0xc2, 0xbf, 0x8e, 0x37, 0xf2, 0xc1, 0xef, 0x11, 0xe6, 0x76, 0x6e, - 0x05, 0x09, 0x3b, 0x7c, 0xa2, 0xe1, 0x1f, 0x11, 0x9c, 0x8f, 0xcf, 0x3f, 0x7c, 0x25, 0xe7, 0x98, - 0xe4, 0xf0, 0x27, 0x1b, 0xaa, 0xd2, 0x76, 0x88, 0x7c, 0x13, 0xbf, 0x9a, 0x0f, 0x39, 0x87, 0xca, - 0x94, 0xbb, 0xd1, 0x1d, 0x73, 0x84, 0xbf, 0x43, 0xb0, 0x30, 0xb2, 0x04, 0x70, 0x3e, 0x34, 0xc3, - 0x8e, 0x91, 0xf3, 0xba, 0x0b, 0xf4, 0xd7, 0x42, 0xf4, 0x0a, 0x5e, 0x9f, 0x08, 0x3d, 0xfe, 0x14, - 0x66, 0xf8, 0x70, 0xce, 0x1c, 0xba, 0xb1, 0x1d, 0x90, 0x39, 0x74, 0xe3, 0x3b, 0x41, 0x5a, 0x0d, - 0x21, 0x95, 0x71, 0x29, 0x09, 0x89, 0x4f, 0xff, 0xe6, 0xd6, 0xc3, 0xe3, 0x2a, 0x7a, 0x74, 0x5c, - 0x45, 0x7f, 0x1d, 0x57, 0xd1, 0x97, 0x27, 0xd5, 0xc2, 0xa3, 0x93, 0x6a, 0xe1, 0x8f, 0x93, 0x6a, - 0xe1, 0xc3, 0x2b, 0x86, 0xe9, 0xee, 0x0f, 0xba, 0xf2, 0x1e, 0xed, 0x2b, 0x5e, 0xac, 0x49, 0xd6, - 0x7b, 0xa4, 0xcb, 0x94, 0xdd, 0x96, 0x9f, 0xe9, 0x4e, 0x90, 0xcb, 0xff, 0xae, 0xed, 0xce, 0xf8, - 0x1f, 0xb6, 0x57, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x9c, 0x43, 0x63, 0x75, 0xd3, 0x0f, 0x00, - 0x00, + // 1166 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcf, 0x6f, 0xdc, 0x44, + 0x14, 0xde, 0x49, 0x20, 0x3f, 0x66, 0xdb, 0xa4, 0x4c, 0x23, 0xd8, 0x6c, 0xa2, 0x4d, 0xb0, 0x48, + 0xb2, 0x54, 0x8d, 0xa7, 0xeb, 0x9e, 0x68, 0x68, 0x10, 0x5b, 0x48, 0x9b, 0x12, 0xc8, 0xb2, 0x70, + 0xa8, 0x00, 0x69, 0x35, 0xbb, 0x76, 0xbd, 0x16, 0xbb, 0x1e, 0xd7, 0xe3, 0x4d, 0x1b, 0x42, 0x24, + 0xc4, 0xa9, 0xdc, 0x90, 0xfa, 0x0f, 0x94, 0x03, 0x12, 0x12, 0x1c, 0x2a, 0xc4, 0x81, 0x0b, 0x47, + 0x50, 0x0f, 0x1c, 0x2a, 0xb8, 0x70, 0x42, 0x28, 0x41, 0x82, 0x3f, 0x03, 0xd9, 0x33, 0x5e, 0xdb, + 0x6b, 0xbb, 0xeb, 0x8d, 0xc2, 0x25, 0x8a, 0xdf, 0xcc, 0x7b, 0xef, 0xfb, 0xbe, 0x37, 0x9e, 0xcf, + 0x5a, 0xb8, 0x48, 0x2d, 0xc3, 0x34, 0x1c, 0x4c, 0xad, 0x36, 0x65, 0x0e, 0xde, 0xab, 0xe0, 0x3b, + 0x3d, 0xcd, 0xde, 0x97, 0x2d, 0x9b, 0x3a, 0x14, 0x9d, 0xe3, 0xab, 0x32, 0x5f, 0x95, 0xf7, 0x2a, + 0xc5, 0xe7, 0x48, 0xd7, 0x30, 0x29, 0xf6, 0xfe, 0xf2, 0x4d, 0xc5, 0x0b, 0x2d, 0xca, 0xba, 0x94, + 0xe1, 0x26, 0x61, 0x1a, 0xcf, 0xc6, 0x7b, 0x95, 0xa6, 0xe6, 0x90, 0x0a, 0xb6, 0x88, 0x6e, 0x98, + 0xc4, 0x31, 0xa8, 0x29, 0xf6, 0x2e, 0x88, 0xbd, 0xfe, 0xb6, 0x70, 0xb7, 0xe2, 0x3c, 0x5f, 0x6c, + 0x78, 0x4f, 0x98, 0x3f, 0x88, 0xa5, 0x39, 0x9d, 0xea, 0x94, 0xc7, 0xdd, 0xff, 0x44, 0x74, 0x51, + 0xa7, 0x54, 0xef, 0x68, 0x98, 0x58, 0x06, 0x26, 0xa6, 0x49, 0x1d, 0xaf, 0x95, 0x9f, 0x13, 0xa7, + 0xe6, 0xec, 0x5b, 0x9a, 0x58, 0x95, 0x36, 0x20, 0x7a, 0xd7, 0xed, 0x5d, 0xb5, 0x0d, 0x55, 0xd7, + 0xea, 0xda, 0x9d, 0x9e, 0xc6, 0x1c, 0xb4, 0x00, 0xa7, 0x9b, 0x5e, 0xa0, 0x61, 0xa8, 0x05, 0xb0, + 0x0c, 0xca, 0xcf, 0xd4, 0xa7, 0x78, 0x60, 0x5b, 0xbd, 0x32, 0x75, 0xff, 0xe1, 0x52, 0xee, 0xdf, + 0x87, 0x4b, 0x39, 0xe9, 0x27, 0x00, 0xcf, 0x47, 0xb2, 0x99, 0x45, 0x4d, 0xa6, 0x3d, 0x35, 0x1d, + 0xbd, 0x02, 0xf3, 0x62, 0x91, 0xa8, 0xaa, 0x5d, 0x18, 0x5b, 0x06, 0xe5, 0xe9, 0x6a, 0xe1, 0xb7, + 0x1f, 0xd6, 0xe7, 0x04, 0xd5, 0xd7, 0x55, 0xd5, 0xd6, 0x18, 0x7b, 0xcf, 0xb1, 0x0d, 0x53, 0xaf, + 0x43, 0xbe, 0xd9, 0x0d, 0xa2, 0x77, 0xe0, 0x59, 0x91, 0xda, 0xa2, 0xe6, 0x6d, 0x43, 0x2f, 0x8c, + 0x2f, 0x83, 0x72, 0x5e, 0x29, 0xc9, 0x83, 0xf3, 0x91, 0x39, 0xa0, 0x6b, 0xde, 0xae, 0xea, 0xf4, + 0xe3, 0x3f, 0x97, 0x72, 0xdf, 0xfc, 0xf3, 0xe8, 0x02, 0xa8, 0x9f, 0x69, 0x86, 0x16, 0x24, 0x3d, + 0x02, 0x9f, 0xf9, 0xec, 0xb7, 0x20, 0x0c, 0x26, 0xe6, 0xe1, 0xcf, 0x2b, 0xab, 0xb2, 0x40, 0xe7, + 0x8e, 0x57, 0xe6, 0xe3, 0x12, 0xe3, 0x95, 0x6b, 0xa4, 0xaf, 0x5c, 0x3d, 0x94, 0x19, 0x12, 0xea, + 0x5b, 0x00, 0xe7, 0xa2, 0x9d, 0x84, 0x52, 0x37, 0xe1, 0x24, 0x47, 0xc4, 0x0a, 0x60, 0x79, 0xbc, + 0x9c, 0x57, 0x56, 0xe2, 0x5c, 0x12, 0x14, 0x0e, 0x53, 0xf2, 0x0b, 0xa0, 0xeb, 0x11, 0xd8, 0x63, + 0x1e, 0xec, 0xb5, 0xa1, 0xb0, 0x79, 0xc1, 0x30, 0x6e, 0xe9, 0x16, 0x2c, 0x79, 0x3d, 0xdf, 0xa7, + 0x1f, 0x6b, 0x66, 0x8d, 0x18, 0x76, 0x75, 0x7f, 0xa7, 0xf2, 0x86, 0x66, 0xd2, 0x6e, 0x96, 0xf3, + 0x81, 0xe6, 0xe1, 0x54, 0xa7, 0xd2, 0x50, 0xdd, 0xfd, 0x7c, 0xba, 0xf5, 0xc9, 0x0e, 0x4f, 0x97, + 0xda, 0x70, 0x29, 0xb5, 0xb2, 0x50, 0xe4, 0x4d, 0x08, 0x1d, 0x77, 0xb5, 0x61, 0x11, 0xc3, 0x16, + 0xe2, 0x2f, 0xc4, 0x45, 0x09, 0x2a, 0x84, 0xa4, 0x98, 0x76, 0xfc, 0x68, 0x22, 0x07, 0x65, 0x34, + 0x0e, 0xca, 0x00, 0x07, 0x25, 0x9d, 0x83, 0xf2, 0xbf, 0x70, 0x38, 0x84, 0xcf, 0x47, 0x3b, 0xb1, + 0x4c, 0xd8, 0xb7, 0x12, 0xce, 0xc1, 0x09, 0x8e, 0xaf, 0x7b, 0x68, 0x5f, 0x88, 0xf5, 0x17, 0x0c, + 0xaf, 0xc3, 0x7c, 0xc0, 0xd0, 0x3f, 0xbb, 0x59, 0x29, 0xc2, 0x3e, 0xc5, 0x53, 0x3c, 0xb4, 0x9b, + 0x62, 0x2c, 0x3b, 0x84, 0x39, 0x5b, 0x86, 0x49, 0x3a, 0xc6, 0x27, 0x9a, 0xba, 0xdb, 0x73, 0xac, + 0x9e, 0x93, 0x45, 0x35, 0xe9, 0x01, 0x80, 0xcb, 0xe9, 0x05, 0x04, 0xed, 0x17, 0xe1, 0x19, 0xea, + 0x45, 0x1a, 0x86, 0xa9, 0x6a, 0xf7, 0x44, 0x91, 0x3c, 0x8f, 0x6d, 0xbb, 0x21, 0xb4, 0x03, 0x67, + 0xc5, 0x16, 0xcb, 0xa6, 0x16, 0x65, 0xa4, 0x23, 0x58, 0x15, 0xe2, 0xea, 0xf0, 0xea, 0x61, 0x69, + 0x66, 0x78, 0x6e, 0x4d, 0xa4, 0x4a, 0x1f, 0xc1, 0xa2, 0x07, 0x6a, 0x37, 0x12, 0xce, 0x74, 0x0c, + 0x06, 0xb1, 0x8e, 0xc5, 0xb0, 0xba, 0x13, 0x5e, 0x48, 0x2c, 0x9f, 0xe5, 0x1e, 0x1f, 0x5e, 0x3f, + 0x49, 0x8b, 0xf1, 0x93, 0x6b, 0xf1, 0x75, 0x32, 0x5a, 0x76, 0x4a, 0x6a, 0x0c, 0xbc, 0x37, 0xe3, + 0x27, 0x7e, 0x6f, 0x7e, 0x05, 0x70, 0x31, 0x19, 0xa7, 0x90, 0xb5, 0x05, 0xcf, 0x0d, 0xc8, 0xe2, + 0xbf, 0x41, 0xeb, 0x29, 0xb7, 0x7f, 0xf2, 0x7c, 0xc2, 0x62, 0xcd, 0x46, 0xc5, 0x3a, 0xc5, 0x17, + 0x6b, 0x4e, 0x7c, 0x21, 0xd4, 0x88, 0x4d, 0xba, 0xbe, 0xd8, 0x52, 0x5d, 0x58, 0xa7, 0x1f, 0x15, + 0xd4, 0x36, 0xe0, 0x84, 0xe5, 0x45, 0xc4, 0xad, 0x97, 0x30, 0x68, 0x9e, 0x11, 0xc6, 0x2e, 0x52, + 0xa4, 0x0f, 0x45, 0xcd, 0x6b, 0x1d, 0x62, 0x74, 0x35, 0x35, 0xd3, 0x5c, 0xd7, 0xe0, 0xec, 0x5d, + 0xc3, 0x69, 0xab, 0x36, 0xb9, 0x4b, 0x3a, 0x8d, 0x36, 0x61, 0x6d, 0x8f, 0xeb, 0x99, 0xfa, 0x4c, + 0x10, 0xbe, 0x41, 0x58, 0x5b, 0xba, 0x24, 0x1c, 0xb8, 0x5f, 0x5c, 0x20, 0x2e, 0xc0, 0xc9, 0x16, + 0x0f, 0x79, 0xb5, 0xa7, 0xea, 0xfe, 0xa3, 0xf2, 0xe8, 0x2c, 0x7c, 0xd6, 0x4b, 0x41, 0x5f, 0x00, + 0x38, 0xc1, 0x0d, 0x18, 0xbd, 0x34, 0xc4, 0x9f, 0x3d, 0xc8, 0xc5, 0x6c, 0x2e, 0x2e, 0x29, 0xf7, + 0x5d, 0xfe, 0x9f, 0xff, 0xfe, 0xf7, 0x83, 0xb1, 0x35, 0xb4, 0x82, 0x63, 0x1f, 0x6a, 0xc2, 0xd9, + 0xf1, 0x41, 0x9f, 0xff, 0x21, 0xfa, 0x0c, 0xc0, 0x49, 0xf1, 0x15, 0x81, 0x9e, 0xde, 0xc6, 0x9f, + 0x55, 0x71, 0x75, 0xd8, 0x36, 0x01, 0x67, 0x35, 0x80, 0xb3, 0x80, 0xe6, 0x53, 0xe1, 0xa0, 0x9f, + 0x01, 0x44, 0x71, 0x07, 0x47, 0x97, 0x52, 0xda, 0xa4, 0x7e, 0x46, 0x14, 0x2b, 0x23, 0x64, 0x08, + 0x8c, 0x37, 0x03, 0x8c, 0xaf, 0xa1, 0xab, 0x99, 0x24, 0xc3, 0x21, 0xa7, 0xc2, 0xcd, 0xfd, 0x86, + 0xff, 0x71, 0x12, 0xe3, 0xa1, 0x64, 0xe7, 0xa1, 0x8c, 0xcc, 0x43, 0x39, 0x7d, 0x1e, 0xe2, 0x03, + 0x05, 0x7d, 0x05, 0x20, 0x0c, 0x3c, 0x1a, 0x95, 0x87, 0xa1, 0xe9, 0x1f, 0x8c, 0x97, 0x33, 0xec, + 0x14, 0x78, 0x37, 0x03, 0xbc, 0x97, 0x51, 0x65, 0x64, 0xbc, 0xe8, 0x17, 0x00, 0xcf, 0x27, 0x38, + 0x2b, 0x4a, 0x93, 0x2e, 0xdd, 0xc6, 0x8b, 0xca, 0x28, 0x29, 0x02, 0xfe, 0x8d, 0x00, 0xfe, 0x55, + 0xb4, 0x91, 0x0d, 0x7e, 0x87, 0x30, 0xa7, 0x71, 0xdb, 0x2f, 0xd8, 0xe0, 0x17, 0x2c, 0xfa, 0x11, + 0xc0, 0x99, 0xe8, 0x75, 0x8c, 0x2e, 0x66, 0xbc, 0xb5, 0x39, 0xfc, 0xd1, 0xee, 0x78, 0x69, 0x3b, + 0x40, 0xbe, 0x89, 0x5e, 0xcd, 0x86, 0x9c, 0x43, 0x65, 0xf8, 0x20, 0x6c, 0x79, 0x87, 0xe8, 0x3b, + 0x00, 0x67, 0x07, 0x3c, 0x09, 0x65, 0x43, 0xd3, 0x3f, 0x31, 0x72, 0xd6, 0xed, 0x02, 0xfd, 0x95, + 0x00, 0x3d, 0x46, 0xeb, 0x23, 0xa1, 0x47, 0x9f, 0xc2, 0x09, 0xee, 0x15, 0xa9, 0x97, 0x6e, 0xc4, + 0x92, 0x52, 0x2f, 0xdd, 0xa8, 0x45, 0x49, 0x2b, 0x01, 0xa4, 0x22, 0x2a, 0xc4, 0x21, 0x71, 0x33, + 0x42, 0xdf, 0x03, 0x38, 0x29, 0xbc, 0x22, 0xf5, 0x9e, 0x8d, 0x1a, 0x55, 0xea, 0x3d, 0x3b, 0x60, + 0x39, 0xd2, 0xad, 0x00, 0xc1, 0xdb, 0xe8, 0xad, 0x6c, 0xa2, 0x04, 0x6e, 0xc6, 0xf0, 0xc1, 0x80, + 0xe3, 0x1d, 0x62, 0x61, 0x59, 0xd5, 0xad, 0xc7, 0x47, 0x25, 0xf0, 0xe4, 0xa8, 0x04, 0xfe, 0x3a, + 0x2a, 0x81, 0x2f, 0x8f, 0x4b, 0xb9, 0x27, 0xc7, 0xa5, 0xdc, 0x1f, 0xc7, 0xa5, 0xdc, 0x07, 0x17, + 0x75, 0xc3, 0x69, 0xf7, 0x9a, 0x72, 0x8b, 0x76, 0xb1, 0xdb, 0xce, 0x20, 0xeb, 0x1d, 0xd2, 0x64, + 0x78, 0xb7, 0xe6, 0x35, 0xbf, 0xe7, 0xb7, 0xf7, 0x7e, 0x1b, 0x68, 0x4e, 0x78, 0x3f, 0x0e, 0x5c, + 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x3d, 0xf1, 0xe0, 0x9d, 0x17, 0x11, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1061,6 +1166,8 @@ type QueryClient interface { OutputProposals(ctx context.Context, in *QueryOutputProposalsRequest, opts ...grpc.CallOption) (*QueryOutputProposalsResponse, error) // Parameters queries the rollup parameters. Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + // Claimed queries whether the output is claimed. + Claimed(ctx context.Context, in *QueryClaimedRequest, opts ...grpc.CallOption) (*QueryClaimedResponse, error) } type queryClient struct { @@ -1152,6 +1259,15 @@ func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts . return out, nil } +func (c *queryClient) Claimed(ctx context.Context, in *QueryClaimedRequest, opts ...grpc.CallOption) (*QueryClaimedResponse, error) { + out := new(QueryClaimedResponse) + err := c.cc.Invoke(ctx, "/opinit.ophost.v1.Query/Claimed", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. type QueryServer interface { // Bridge queries bridge info. @@ -1171,6 +1287,8 @@ type QueryServer interface { OutputProposals(context.Context, *QueryOutputProposalsRequest) (*QueryOutputProposalsResponse, error) // Parameters queries the rollup parameters. Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + // Claimed queries whether the output is claimed. + Claimed(context.Context, *QueryClaimedRequest) (*QueryClaimedResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -1204,6 +1322,9 @@ func (*UnimplementedQueryServer) OutputProposals(ctx context.Context, req *Query func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") } +func (*UnimplementedQueryServer) Claimed(ctx context.Context, req *QueryClaimedRequest) (*QueryClaimedResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Claimed not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -1371,6 +1492,24 @@ func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interf return interceptor(ctx, in, info, handler) } +func _Query_Claimed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryClaimedRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Claimed(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/opinit.ophost.v1.Query/Claimed", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Claimed(ctx, req.(*QueryClaimedRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "opinit.ophost.v1.Query", HandlerType: (*QueryServer)(nil), @@ -1411,6 +1550,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "Params", Handler: _Query_Params_Handler, }, + { + MethodName: "Claimed", + Handler: _Query_Claimed_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "opinit/ophost/v1/query.proto", @@ -2090,6 +2233,74 @@ func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *QueryClaimedRequest) 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 *QueryClaimedRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryClaimedRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.WithdrawalHash) > 0 { + i -= len(m.WithdrawalHash) + copy(dAtA[i:], m.WithdrawalHash) + i = encodeVarintQuery(dAtA, i, uint64(len(m.WithdrawalHash))) + i-- + dAtA[i] = 0x12 + } + if m.BridgeId != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.BridgeId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *QueryClaimedResponse) 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 *QueryClaimedResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryClaimedResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Claimed { + i-- + if m.Claimed { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { offset -= sovQuery(v) base := offset @@ -2368,6 +2579,34 @@ func (m *QueryParamsResponse) Size() (n int) { return n } +func (m *QueryClaimedRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.BridgeId != 0 { + n += 1 + sovQuery(uint64(m.BridgeId)) + } + l = len(m.WithdrawalHash) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryClaimedResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Claimed { + n += 2 + } + return n +} + func sovQuery(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -4133,6 +4372,179 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryClaimedRequest) 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: QueryClaimedRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryClaimedRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BridgeId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WithdrawalHash", 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.WithdrawalHash = append(m.WithdrawalHash[:0], dAtA[iNdEx:postIndex]...) + if m.WithdrawalHash == nil { + m.WithdrawalHash = []byte{} + } + 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 (m *QueryClaimedResponse) 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: QueryClaimedResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryClaimedResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Claimed", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Claimed = bool(v != 0) + 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/ophost/types/query.pb.gw.go b/x/ophost/types/query.pb.gw.go index 1b2eeabb..e9d8e0f5 100644 --- a/x/ophost/types/query.pb.gw.go +++ b/x/ophost/types/query.pb.gw.go @@ -559,6 +559,82 @@ func local_request_Query_Params_0(ctx context.Context, marshaler runtime.Marshal } +func request_Query_Claimed_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryClaimedRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["bridge_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "bridge_id") + } + + protoReq.BridgeId, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "bridge_id", err) + } + + val, ok = pathParams["withdrawal_hash"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "withdrawal_hash") + } + + protoReq.WithdrawalHash, err = runtime.Bytes(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "withdrawal_hash", err) + } + + msg, err := client.Claimed(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_Claimed_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryClaimedRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["bridge_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "bridge_id") + } + + protoReq.BridgeId, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "bridge_id", err) + } + + val, ok = pathParams["withdrawal_hash"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "withdrawal_hash") + } + + protoReq.WithdrawalHash, err = runtime.Bytes(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "withdrawal_hash", err) + } + + msg, err := server.Claimed(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. @@ -772,6 +848,29 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) + mux.Handle("GET", pattern_Query_Claimed_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_Claimed_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_Claimed_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -993,6 +1092,26 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) + mux.Handle("GET", pattern_Query_Claimed_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_Claimed_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_Claimed_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -1014,6 +1133,8 @@ var ( pattern_Query_OutputProposals_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", "ophost", "v1", "bridges", "bridge_id", "outputs"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"opinit", "ophost", "v1", "params"}, "", runtime.AssumeColonVerbOpt(false))) + + pattern_Query_Claimed_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7}, []string{"opinit", "ophost", "v1", "bridges", "bridge_id", "withdrawals", "withdrawal_hash", "claimed"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( @@ -1034,4 +1155,6 @@ var ( forward_Query_OutputProposals_0 = runtime.ForwardResponseMessage forward_Query_Params_0 = runtime.ForwardResponseMessage + + forward_Query_Claimed_0 = runtime.ForwardResponseMessage ) From 692cc056393ac2e78f7205348d93cfa4d376b9dc Mon Sep 17 00:00:00 2001 From: beer-1 <147697694+beer-1@users.noreply.github.com> Date: Tue, 9 Jul 2024 12:37:01 +0900 Subject: [PATCH 5/7] add sequence query (#93) --- api/opinit/opchild/v1/query.pulsar.go | 1891 +++++++++++++++++++++++- api/opinit/opchild/v1/query_grpc.pb.go | 88 +- api/opinit/ophost/v1/query.pulsar.go | 1223 +++++++++++++-- api/opinit/ophost/v1/query_grpc.pb.go | 40 + proto/opinit/opchild/v1/query.proto | 30 + proto/opinit/ophost/v1/query.proto | 16 + x/opchild/keeper/querier.go | 18 + x/opchild/keeper/querier_test.go | 24 + x/opchild/types/query.pb.go | 717 ++++++++- x/opchild/types/query.pb.gw.go | 130 ++ x/ophost/keeper/querier.go | 11 + x/ophost/keeper/querier_test.go | 14 + x/ophost/types/query.pb.go | 501 ++++++- x/ophost/types/query.pb.gw.go | 101 ++ 14 files changed, 4460 insertions(+), 344 deletions(-) diff --git a/api/opinit/opchild/v1/query.pulsar.go b/api/opinit/opchild/v1/query.pulsar.go index fe6d7664..311e74ec 100644 --- a/api/opinit/opchild/v1/query.pulsar.go +++ b/api/opinit/opchild/v1/query.pulsar.go @@ -3463,6 +3463,1526 @@ func (x *fastReflection_QueryParamsResponse) ProtoMethods() *protoiface.Methods } } +var ( + md_QueryNextL1SequenceRequest protoreflect.MessageDescriptor +) + +func init() { + file_opinit_opchild_v1_query_proto_init() + md_QueryNextL1SequenceRequest = File_opinit_opchild_v1_query_proto.Messages().ByName("QueryNextL1SequenceRequest") +} + +var _ protoreflect.Message = (*fastReflection_QueryNextL1SequenceRequest)(nil) + +type fastReflection_QueryNextL1SequenceRequest QueryNextL1SequenceRequest + +func (x *QueryNextL1SequenceRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryNextL1SequenceRequest)(x) +} + +func (x *QueryNextL1SequenceRequest) slowProtoReflect() protoreflect.Message { + mi := &file_opinit_opchild_v1_query_proto_msgTypes[8] + 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_QueryNextL1SequenceRequest_messageType fastReflection_QueryNextL1SequenceRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryNextL1SequenceRequest_messageType{} + +type fastReflection_QueryNextL1SequenceRequest_messageType struct{} + +func (x fastReflection_QueryNextL1SequenceRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryNextL1SequenceRequest)(nil) +} +func (x fastReflection_QueryNextL1SequenceRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryNextL1SequenceRequest) +} +func (x fastReflection_QueryNextL1SequenceRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryNextL1SequenceRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryNextL1SequenceRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryNextL1SequenceRequest +} + +// 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_QueryNextL1SequenceRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryNextL1SequenceRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryNextL1SequenceRequest) New() protoreflect.Message { + return new(fastReflection_QueryNextL1SequenceRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryNextL1SequenceRequest) Interface() protoreflect.ProtoMessage { + return (*QueryNextL1SequenceRequest)(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_QueryNextL1SequenceRequest) 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_QueryNextL1SequenceRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL1SequenceRequest")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL1SequenceRequest 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_QueryNextL1SequenceRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL1SequenceRequest")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL1SequenceRequest 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_QueryNextL1SequenceRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL1SequenceRequest")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL1SequenceRequest 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_QueryNextL1SequenceRequest) 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.opchild.v1.QueryNextL1SequenceRequest")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL1SequenceRequest 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_QueryNextL1SequenceRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL1SequenceRequest")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL1SequenceRequest 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_QueryNextL1SequenceRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL1SequenceRequest")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL1SequenceRequest 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_QueryNextL1SequenceRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in opinit.opchild.v1.QueryNextL1SequenceRequest", 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_QueryNextL1SequenceRequest) 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_QueryNextL1SequenceRequest) 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_QueryNextL1SequenceRequest) 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_QueryNextL1SequenceRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryNextL1SequenceRequest) + 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().(*QueryNextL1SequenceRequest) + 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().(*QueryNextL1SequenceRequest) + 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: QueryNextL1SequenceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryNextL1SequenceRequest: 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_QueryNextL1SequenceResponse protoreflect.MessageDescriptor + fd_QueryNextL1SequenceResponse_next_l1_sequence protoreflect.FieldDescriptor +) + +func init() { + file_opinit_opchild_v1_query_proto_init() + md_QueryNextL1SequenceResponse = File_opinit_opchild_v1_query_proto.Messages().ByName("QueryNextL1SequenceResponse") + fd_QueryNextL1SequenceResponse_next_l1_sequence = md_QueryNextL1SequenceResponse.Fields().ByName("next_l1_sequence") +} + +var _ protoreflect.Message = (*fastReflection_QueryNextL1SequenceResponse)(nil) + +type fastReflection_QueryNextL1SequenceResponse QueryNextL1SequenceResponse + +func (x *QueryNextL1SequenceResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryNextL1SequenceResponse)(x) +} + +func (x *QueryNextL1SequenceResponse) slowProtoReflect() protoreflect.Message { + mi := &file_opinit_opchild_v1_query_proto_msgTypes[9] + 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_QueryNextL1SequenceResponse_messageType fastReflection_QueryNextL1SequenceResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryNextL1SequenceResponse_messageType{} + +type fastReflection_QueryNextL1SequenceResponse_messageType struct{} + +func (x fastReflection_QueryNextL1SequenceResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryNextL1SequenceResponse)(nil) +} +func (x fastReflection_QueryNextL1SequenceResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryNextL1SequenceResponse) +} +func (x fastReflection_QueryNextL1SequenceResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryNextL1SequenceResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryNextL1SequenceResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryNextL1SequenceResponse +} + +// 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_QueryNextL1SequenceResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryNextL1SequenceResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryNextL1SequenceResponse) New() protoreflect.Message { + return new(fastReflection_QueryNextL1SequenceResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryNextL1SequenceResponse) Interface() protoreflect.ProtoMessage { + return (*QueryNextL1SequenceResponse)(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_QueryNextL1SequenceResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.NextL1Sequence != uint64(0) { + value := protoreflect.ValueOfUint64(x.NextL1Sequence) + if !f(fd_QueryNextL1SequenceResponse_next_l1_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_QueryNextL1SequenceResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "opinit.opchild.v1.QueryNextL1SequenceResponse.next_l1_sequence": + return x.NextL1Sequence != uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL1SequenceResponse")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL1SequenceResponse 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_QueryNextL1SequenceResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "opinit.opchild.v1.QueryNextL1SequenceResponse.next_l1_sequence": + x.NextL1Sequence = uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL1SequenceResponse")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL1SequenceResponse 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_QueryNextL1SequenceResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "opinit.opchild.v1.QueryNextL1SequenceResponse.next_l1_sequence": + value := x.NextL1Sequence + return protoreflect.ValueOfUint64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL1SequenceResponse")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL1SequenceResponse 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_QueryNextL1SequenceResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "opinit.opchild.v1.QueryNextL1SequenceResponse.next_l1_sequence": + x.NextL1Sequence = value.Uint() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL1SequenceResponse")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL1SequenceResponse 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_QueryNextL1SequenceResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "opinit.opchild.v1.QueryNextL1SequenceResponse.next_l1_sequence": + panic(fmt.Errorf("field next_l1_sequence of message opinit.opchild.v1.QueryNextL1SequenceResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL1SequenceResponse")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL1SequenceResponse 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_QueryNextL1SequenceResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "opinit.opchild.v1.QueryNextL1SequenceResponse.next_l1_sequence": + return protoreflect.ValueOfUint64(uint64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL1SequenceResponse")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL1SequenceResponse 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_QueryNextL1SequenceResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in opinit.opchild.v1.QueryNextL1SequenceResponse", 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_QueryNextL1SequenceResponse) 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_QueryNextL1SequenceResponse) 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_QueryNextL1SequenceResponse) 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_QueryNextL1SequenceResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryNextL1SequenceResponse) + 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.NextL1Sequence != 0 { + n += 1 + runtime.Sov(uint64(x.NextL1Sequence)) + } + 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().(*QueryNextL1SequenceResponse) + 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.NextL1Sequence != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.NextL1Sequence)) + 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().(*QueryNextL1SequenceResponse) + 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: QueryNextL1SequenceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryNextL1SequenceResponse: 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 NextL1Sequence", wireType) + } + x.NextL1Sequence = 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.NextL1Sequence |= 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_QueryNextL2SequenceRequest protoreflect.MessageDescriptor +) + +func init() { + file_opinit_opchild_v1_query_proto_init() + md_QueryNextL2SequenceRequest = File_opinit_opchild_v1_query_proto.Messages().ByName("QueryNextL2SequenceRequest") +} + +var _ protoreflect.Message = (*fastReflection_QueryNextL2SequenceRequest)(nil) + +type fastReflection_QueryNextL2SequenceRequest QueryNextL2SequenceRequest + +func (x *QueryNextL2SequenceRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryNextL2SequenceRequest)(x) +} + +func (x *QueryNextL2SequenceRequest) slowProtoReflect() protoreflect.Message { + mi := &file_opinit_opchild_v1_query_proto_msgTypes[10] + 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_QueryNextL2SequenceRequest_messageType fastReflection_QueryNextL2SequenceRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryNextL2SequenceRequest_messageType{} + +type fastReflection_QueryNextL2SequenceRequest_messageType struct{} + +func (x fastReflection_QueryNextL2SequenceRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryNextL2SequenceRequest)(nil) +} +func (x fastReflection_QueryNextL2SequenceRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryNextL2SequenceRequest) +} +func (x fastReflection_QueryNextL2SequenceRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryNextL2SequenceRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryNextL2SequenceRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryNextL2SequenceRequest +} + +// 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_QueryNextL2SequenceRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryNextL2SequenceRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryNextL2SequenceRequest) New() protoreflect.Message { + return new(fastReflection_QueryNextL2SequenceRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryNextL2SequenceRequest) Interface() protoreflect.ProtoMessage { + return (*QueryNextL2SequenceRequest)(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_QueryNextL2SequenceRequest) 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_QueryNextL2SequenceRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL2SequenceRequest")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL2SequenceRequest 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_QueryNextL2SequenceRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL2SequenceRequest")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL2SequenceRequest 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_QueryNextL2SequenceRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL2SequenceRequest")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL2SequenceRequest 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_QueryNextL2SequenceRequest) 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.opchild.v1.QueryNextL2SequenceRequest")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL2SequenceRequest 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_QueryNextL2SequenceRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL2SequenceRequest")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL2SequenceRequest 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_QueryNextL2SequenceRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL2SequenceRequest")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL2SequenceRequest 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_QueryNextL2SequenceRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in opinit.opchild.v1.QueryNextL2SequenceRequest", 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_QueryNextL2SequenceRequest) 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_QueryNextL2SequenceRequest) 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_QueryNextL2SequenceRequest) 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_QueryNextL2SequenceRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryNextL2SequenceRequest) + 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().(*QueryNextL2SequenceRequest) + 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().(*QueryNextL2SequenceRequest) + 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: QueryNextL2SequenceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryNextL2SequenceRequest: 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_QueryNextL2SequenceResponse protoreflect.MessageDescriptor + fd_QueryNextL2SequenceResponse_next_l2_sequence protoreflect.FieldDescriptor +) + +func init() { + file_opinit_opchild_v1_query_proto_init() + md_QueryNextL2SequenceResponse = File_opinit_opchild_v1_query_proto.Messages().ByName("QueryNextL2SequenceResponse") + fd_QueryNextL2SequenceResponse_next_l2_sequence = md_QueryNextL2SequenceResponse.Fields().ByName("next_l2_sequence") +} + +var _ protoreflect.Message = (*fastReflection_QueryNextL2SequenceResponse)(nil) + +type fastReflection_QueryNextL2SequenceResponse QueryNextL2SequenceResponse + +func (x *QueryNextL2SequenceResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryNextL2SequenceResponse)(x) +} + +func (x *QueryNextL2SequenceResponse) slowProtoReflect() protoreflect.Message { + mi := &file_opinit_opchild_v1_query_proto_msgTypes[11] + 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_QueryNextL2SequenceResponse_messageType fastReflection_QueryNextL2SequenceResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryNextL2SequenceResponse_messageType{} + +type fastReflection_QueryNextL2SequenceResponse_messageType struct{} + +func (x fastReflection_QueryNextL2SequenceResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryNextL2SequenceResponse)(nil) +} +func (x fastReflection_QueryNextL2SequenceResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryNextL2SequenceResponse) +} +func (x fastReflection_QueryNextL2SequenceResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryNextL2SequenceResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryNextL2SequenceResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryNextL2SequenceResponse +} + +// 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_QueryNextL2SequenceResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryNextL2SequenceResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryNextL2SequenceResponse) New() protoreflect.Message { + return new(fastReflection_QueryNextL2SequenceResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryNextL2SequenceResponse) Interface() protoreflect.ProtoMessage { + return (*QueryNextL2SequenceResponse)(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_QueryNextL2SequenceResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.NextL2Sequence != uint64(0) { + value := protoreflect.ValueOfUint64(x.NextL2Sequence) + if !f(fd_QueryNextL2SequenceResponse_next_l2_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_QueryNextL2SequenceResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "opinit.opchild.v1.QueryNextL2SequenceResponse.next_l2_sequence": + return x.NextL2Sequence != uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL2SequenceResponse")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL2SequenceResponse 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_QueryNextL2SequenceResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "opinit.opchild.v1.QueryNextL2SequenceResponse.next_l2_sequence": + x.NextL2Sequence = uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL2SequenceResponse")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL2SequenceResponse 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_QueryNextL2SequenceResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "opinit.opchild.v1.QueryNextL2SequenceResponse.next_l2_sequence": + value := x.NextL2Sequence + return protoreflect.ValueOfUint64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL2SequenceResponse")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL2SequenceResponse 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_QueryNextL2SequenceResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "opinit.opchild.v1.QueryNextL2SequenceResponse.next_l2_sequence": + x.NextL2Sequence = value.Uint() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL2SequenceResponse")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL2SequenceResponse 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_QueryNextL2SequenceResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "opinit.opchild.v1.QueryNextL2SequenceResponse.next_l2_sequence": + panic(fmt.Errorf("field next_l2_sequence of message opinit.opchild.v1.QueryNextL2SequenceResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL2SequenceResponse")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL2SequenceResponse 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_QueryNextL2SequenceResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "opinit.opchild.v1.QueryNextL2SequenceResponse.next_l2_sequence": + return protoreflect.ValueOfUint64(uint64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.QueryNextL2SequenceResponse")) + } + panic(fmt.Errorf("message opinit.opchild.v1.QueryNextL2SequenceResponse 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_QueryNextL2SequenceResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in opinit.opchild.v1.QueryNextL2SequenceResponse", 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_QueryNextL2SequenceResponse) 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_QueryNextL2SequenceResponse) 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_QueryNextL2SequenceResponse) 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_QueryNextL2SequenceResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryNextL2SequenceResponse) + 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.NextL2Sequence != 0 { + n += 1 + runtime.Sov(uint64(x.NextL2Sequence)) + } + 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().(*QueryNextL2SequenceResponse) + 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.NextL2Sequence != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.NextL2Sequence)) + 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().(*QueryNextL2SequenceResponse) + 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: QueryNextL2SequenceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryNextL2SequenceResponse: 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 NextL2Sequence", wireType) + } + x.NextL2Sequence = 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.NextL2Sequence |= 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, + } +} + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.0 @@ -3761,6 +5281,134 @@ func (x *QueryParamsResponse) GetParams() *Params { return nil } +// QueryNextL1SequenceRequest is request type for the Query/NextL1Sequence RPC method. +type QueryNextL1SequenceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *QueryNextL1SequenceRequest) Reset() { + *x = QueryNextL1SequenceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_opinit_opchild_v1_query_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryNextL1SequenceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryNextL1SequenceRequest) ProtoMessage() {} + +// Deprecated: Use QueryNextL1SequenceRequest.ProtoReflect.Descriptor instead. +func (*QueryNextL1SequenceRequest) Descriptor() ([]byte, []int) { + return file_opinit_opchild_v1_query_proto_rawDescGZIP(), []int{8} +} + +// QueryNextL1SequenceResponse is response type for the Query/NextL1Sequence RPC method. +type QueryNextL1SequenceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // next_l1_sequence holds the next l1 sequence number. + NextL1Sequence uint64 `protobuf:"varint,1,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` +} + +func (x *QueryNextL1SequenceResponse) Reset() { + *x = QueryNextL1SequenceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_opinit_opchild_v1_query_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryNextL1SequenceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryNextL1SequenceResponse) ProtoMessage() {} + +// Deprecated: Use QueryNextL1SequenceResponse.ProtoReflect.Descriptor instead. +func (*QueryNextL1SequenceResponse) Descriptor() ([]byte, []int) { + return file_opinit_opchild_v1_query_proto_rawDescGZIP(), []int{9} +} + +func (x *QueryNextL1SequenceResponse) GetNextL1Sequence() uint64 { + if x != nil { + return x.NextL1Sequence + } + return 0 +} + +// QueryNextL2SequenceRequest is request type for the Query/NextL2Sequence RPC method. +type QueryNextL2SequenceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *QueryNextL2SequenceRequest) Reset() { + *x = QueryNextL2SequenceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_opinit_opchild_v1_query_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryNextL2SequenceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryNextL2SequenceRequest) ProtoMessage() {} + +// Deprecated: Use QueryNextL2SequenceRequest.ProtoReflect.Descriptor instead. +func (*QueryNextL2SequenceRequest) Descriptor() ([]byte, []int) { + return file_opinit_opchild_v1_query_proto_rawDescGZIP(), []int{10} +} + +// QueryNextL2SequenceResponse is response type for the Query/NextL2Sequence RPC method. +type QueryNextL2SequenceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // next_l2_sequence holds the next l2 sequence number. + NextL2Sequence uint64 `protobuf:"varint,1,opt,name=next_l2_sequence,json=nextL2Sequence,proto3" json:"next_l2_sequence,omitempty"` +} + +func (x *QueryNextL2SequenceResponse) Reset() { + *x = QueryNextL2SequenceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_opinit_opchild_v1_query_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryNextL2SequenceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryNextL2SequenceResponse) ProtoMessage() {} + +// Deprecated: Use QueryNextL2SequenceResponse.ProtoReflect.Descriptor instead. +func (*QueryNextL2SequenceResponse) Descriptor() ([]byte, []int) { + return file_opinit_opchild_v1_query_proto_rawDescGZIP(), []int{11} +} + +func (x *QueryNextL2SequenceResponse) GetNextL2Sequence() uint64 { + if x != nil { + return x.NextL2Sequence + } + return 0 +} + var File_opinit_opchild_v1_query_proto protoreflect.FileDescriptor var file_opinit_opchild_v1_query_proto_rawDesc = []byte{ @@ -3823,57 +5471,90 @@ var file_opinit_opchild_v1_query_proto_rawDesc = []byte{ 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, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x32, 0xcc, 0x04, 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, 0x70, 0x69, + 0x6d, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 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, + 0x22, 0x47, 0x0a, 0x1b, 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, 0x12, + 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, + 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 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, 0x22, 0x47, 0x0a, 0x1b, 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, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, + 0x32, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x32, 0x94, 0x07, 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, 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, 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, + 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, 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 ( @@ -3888,39 +5569,47 @@ 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, 8) +var file_opinit_opchild_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 12) 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 - (*v1beta1.PageRequest)(nil), // 8: cosmos.base.query.v1beta1.PageRequest - (*Validator)(nil), // 9: opinit.opchild.v1.Validator - (*v1beta1.PageResponse)(nil), // 10: cosmos.base.query.v1beta1.PageResponse - (*BridgeInfo)(nil), // 11: opinit.opchild.v1.BridgeInfo - (*Params)(nil), // 12: opinit.opchild.v1.Params + (*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 + (*v1beta1.PageRequest)(nil), // 12: cosmos.base.query.v1beta1.PageRequest + (*Validator)(nil), // 13: opinit.opchild.v1.Validator + (*v1beta1.PageResponse)(nil), // 14: cosmos.base.query.v1beta1.PageResponse + (*BridgeInfo)(nil), // 15: opinit.opchild.v1.BridgeInfo + (*Params)(nil), // 16: opinit.opchild.v1.Params } var file_opinit_opchild_v1_query_proto_depIdxs = []int32{ - 8, // 0: opinit.opchild.v1.QueryValidatorsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 9, // 1: opinit.opchild.v1.QueryValidatorsResponse.validators:type_name -> opinit.opchild.v1.Validator - 10, // 2: opinit.opchild.v1.QueryValidatorsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 9, // 3: opinit.opchild.v1.QueryValidatorResponse.validator:type_name -> opinit.opchild.v1.Validator - 11, // 4: opinit.opchild.v1.QueryBridgeInfoResponse.bridge_info:type_name -> opinit.opchild.v1.BridgeInfo - 12, // 5: opinit.opchild.v1.QueryParamsResponse.params:type_name -> opinit.opchild.v1.Params + 12, // 0: opinit.opchild.v1.QueryValidatorsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 13, // 1: opinit.opchild.v1.QueryValidatorsResponse.validators:type_name -> opinit.opchild.v1.Validator + 14, // 2: opinit.opchild.v1.QueryValidatorsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 13, // 3: opinit.opchild.v1.QueryValidatorResponse.validator:type_name -> opinit.opchild.v1.Validator + 15, // 4: opinit.opchild.v1.QueryBridgeInfoResponse.bridge_info:type_name -> opinit.opchild.v1.BridgeInfo + 16, // 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 - 1, // 10: opinit.opchild.v1.Query.Validators:output_type -> opinit.opchild.v1.QueryValidatorsResponse - 3, // 11: opinit.opchild.v1.Query.Validator:output_type -> opinit.opchild.v1.QueryValidatorResponse - 5, // 12: opinit.opchild.v1.Query.BridgeInfo:output_type -> opinit.opchild.v1.QueryBridgeInfoResponse - 7, // 13: opinit.opchild.v1.Query.Params:output_type -> opinit.opchild.v1.QueryParamsResponse - 10, // [10:14] is the sub-list for method output_type - 6, // [6:10] is the sub-list for method input_type + 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 + 1, // 12: opinit.opchild.v1.Query.Validators:output_type -> opinit.opchild.v1.QueryValidatorsResponse + 3, // 13: opinit.opchild.v1.Query.Validator:output_type -> opinit.opchild.v1.QueryValidatorResponse + 5, // 14: opinit.opchild.v1.Query.BridgeInfo:output_type -> opinit.opchild.v1.QueryBridgeInfoResponse + 7, // 15: opinit.opchild.v1.Query.Params:output_type -> opinit.opchild.v1.QueryParamsResponse + 9, // 16: opinit.opchild.v1.Query.NextL1Sequence:output_type -> opinit.opchild.v1.QueryNextL1SequenceResponse + 11, // 17: opinit.opchild.v1.Query.NextL2Sequence:output_type -> opinit.opchild.v1.QueryNextL2SequenceResponse + 12, // [12:18] is the sub-list for method output_type + 6, // [6:12] 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 @@ -4029,6 +5718,54 @@ func file_opinit_opchild_v1_query_proto_init() { return nil } } + file_opinit_opchild_v1_query_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryNextL1SequenceRequest); 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[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryNextL1SequenceResponse); 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[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryNextL2SequenceRequest); 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[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryNextL2SequenceResponse); 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{ @@ -4036,7 +5773,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: 8, + NumMessages: 12, 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 023876f6..acedb869 100644 --- a/api/opinit/opchild/v1/query_grpc.pb.go +++ b/api/opinit/opchild/v1/query_grpc.pb.go @@ -19,10 +19,12 @@ import ( const _ = grpc.SupportPackageIsVersion8 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_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" ) // QueryClient is the client API for Query service. @@ -42,6 +44,10 @@ type QueryClient interface { BridgeInfo(ctx context.Context, in *QueryBridgeInfoRequest, opts ...grpc.CallOption) (*QueryBridgeInfoResponse, error) // Parameters queries the rollup parameters. Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + // NextL1Sequence queries the next l1 sequence number. + NextL1Sequence(ctx context.Context, in *QueryNextL1SequenceRequest, opts ...grpc.CallOption) (*QueryNextL1SequenceResponse, error) + // NextL2Sequence queries the next l2 sequence number. + NextL2Sequence(ctx context.Context, in *QueryNextL2SequenceRequest, opts ...grpc.CallOption) (*QueryNextL2SequenceResponse, error) } type queryClient struct { @@ -92,6 +98,26 @@ func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts . return out, nil } +func (c *queryClient) NextL1Sequence(ctx context.Context, in *QueryNextL1SequenceRequest, opts ...grpc.CallOption) (*QueryNextL1SequenceResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(QueryNextL1SequenceResponse) + err := c.cc.Invoke(ctx, Query_NextL1Sequence_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) NextL2Sequence(ctx context.Context, in *QueryNextL2SequenceRequest, opts ...grpc.CallOption) (*QueryNextL2SequenceResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(QueryNextL2SequenceResponse) + err := c.cc.Invoke(ctx, Query_NextL2Sequence_FullMethodName, in, out, cOpts...) + 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 @@ -109,6 +135,10 @@ type QueryServer interface { BridgeInfo(context.Context, *QueryBridgeInfoRequest) (*QueryBridgeInfoResponse, error) // Parameters queries the rollup parameters. Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + // NextL1Sequence queries the next l1 sequence number. + NextL1Sequence(context.Context, *QueryNextL1SequenceRequest) (*QueryNextL1SequenceResponse, error) + // NextL2Sequence queries the next l2 sequence number. + NextL2Sequence(context.Context, *QueryNextL2SequenceRequest) (*QueryNextL2SequenceResponse, error) mustEmbedUnimplementedQueryServer() } @@ -128,6 +158,12 @@ func (UnimplementedQueryServer) BridgeInfo(context.Context, *QueryBridgeInfoRequ func (UnimplementedQueryServer) Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") } +func (UnimplementedQueryServer) NextL1Sequence(context.Context, *QueryNextL1SequenceRequest) (*QueryNextL1SequenceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NextL1Sequence not implemented") +} +func (UnimplementedQueryServer) NextL2Sequence(context.Context, *QueryNextL2SequenceRequest) (*QueryNextL2SequenceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NextL2Sequence not implemented") +} func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {} // UnsafeQueryServer may be embedded to opt out of forward compatibility for this service. @@ -213,6 +249,42 @@ func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interf return interceptor(ctx, in, info, handler) } +func _Query_NextL1Sequence_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNextL1SequenceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).NextL1Sequence(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_NextL1Sequence_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).NextL1Sequence(ctx, req.(*QueryNextL1SequenceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_NextL2Sequence_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNextL2SequenceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).NextL2Sequence(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_NextL2Sequence_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).NextL2Sequence(ctx, req.(*QueryNextL2SequenceRequest)) + } + 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) @@ -236,6 +308,14 @@ var Query_ServiceDesc = grpc.ServiceDesc{ MethodName: "Params", Handler: _Query_Params_Handler, }, + { + MethodName: "NextL1Sequence", + Handler: _Query_NextL1Sequence_Handler, + }, + { + MethodName: "NextL2Sequence", + Handler: _Query_NextL2Sequence_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "opinit/opchild/v1/query.proto", diff --git a/api/opinit/ophost/v1/query.pulsar.go b/api/opinit/ophost/v1/query.pulsar.go index 89b91a68..7ffba4bd 100644 --- a/api/opinit/ophost/v1/query.pulsar.go +++ b/api/opinit/ophost/v1/query.pulsar.go @@ -9484,6 +9484,814 @@ func (x *fastReflection_QueryClaimedResponse) ProtoMethods() *protoiface.Methods } } +var ( + md_QueryNextL1SequenceRequest protoreflect.MessageDescriptor + fd_QueryNextL1SequenceRequest_bridge_id protoreflect.FieldDescriptor +) + +func init() { + file_opinit_ophost_v1_query_proto_init() + md_QueryNextL1SequenceRequest = File_opinit_ophost_v1_query_proto.Messages().ByName("QueryNextL1SequenceRequest") + fd_QueryNextL1SequenceRequest_bridge_id = md_QueryNextL1SequenceRequest.Fields().ByName("bridge_id") +} + +var _ protoreflect.Message = (*fastReflection_QueryNextL1SequenceRequest)(nil) + +type fastReflection_QueryNextL1SequenceRequest QueryNextL1SequenceRequest + +func (x *QueryNextL1SequenceRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryNextL1SequenceRequest)(x) +} + +func (x *QueryNextL1SequenceRequest) slowProtoReflect() protoreflect.Message { + mi := &file_opinit_ophost_v1_query_proto_msgTypes[20] + 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_QueryNextL1SequenceRequest_messageType fastReflection_QueryNextL1SequenceRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryNextL1SequenceRequest_messageType{} + +type fastReflection_QueryNextL1SequenceRequest_messageType struct{} + +func (x fastReflection_QueryNextL1SequenceRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryNextL1SequenceRequest)(nil) +} +func (x fastReflection_QueryNextL1SequenceRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryNextL1SequenceRequest) +} +func (x fastReflection_QueryNextL1SequenceRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryNextL1SequenceRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryNextL1SequenceRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryNextL1SequenceRequest +} + +// 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_QueryNextL1SequenceRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryNextL1SequenceRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryNextL1SequenceRequest) New() protoreflect.Message { + return new(fastReflection_QueryNextL1SequenceRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryNextL1SequenceRequest) Interface() protoreflect.ProtoMessage { + return (*QueryNextL1SequenceRequest)(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_QueryNextL1SequenceRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.BridgeId != uint64(0) { + value := protoreflect.ValueOfUint64(x.BridgeId) + if !f(fd_QueryNextL1SequenceRequest_bridge_id, 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_QueryNextL1SequenceRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "opinit.ophost.v1.QueryNextL1SequenceRequest.bridge_id": + return x.BridgeId != uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryNextL1SequenceRequest")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryNextL1SequenceRequest 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_QueryNextL1SequenceRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "opinit.ophost.v1.QueryNextL1SequenceRequest.bridge_id": + x.BridgeId = uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryNextL1SequenceRequest")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryNextL1SequenceRequest 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_QueryNextL1SequenceRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "opinit.ophost.v1.QueryNextL1SequenceRequest.bridge_id": + value := x.BridgeId + return protoreflect.ValueOfUint64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryNextL1SequenceRequest")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryNextL1SequenceRequest 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_QueryNextL1SequenceRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "opinit.ophost.v1.QueryNextL1SequenceRequest.bridge_id": + x.BridgeId = value.Uint() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryNextL1SequenceRequest")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryNextL1SequenceRequest 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_QueryNextL1SequenceRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "opinit.ophost.v1.QueryNextL1SequenceRequest.bridge_id": + panic(fmt.Errorf("field bridge_id of message opinit.ophost.v1.QueryNextL1SequenceRequest is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryNextL1SequenceRequest")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryNextL1SequenceRequest 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_QueryNextL1SequenceRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "opinit.ophost.v1.QueryNextL1SequenceRequest.bridge_id": + return protoreflect.ValueOfUint64(uint64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryNextL1SequenceRequest")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryNextL1SequenceRequest 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_QueryNextL1SequenceRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in opinit.ophost.v1.QueryNextL1SequenceRequest", 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_QueryNextL1SequenceRequest) 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_QueryNextL1SequenceRequest) 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_QueryNextL1SequenceRequest) 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_QueryNextL1SequenceRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryNextL1SequenceRequest) + 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.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().(*QueryNextL1SequenceRequest) + 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.BridgeId != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.BridgeId)) + 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().(*QueryNextL1SequenceRequest) + 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: QueryNextL1SequenceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryNextL1SequenceRequest: 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 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 + } + } + 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_QueryNextL1SequenceResponse protoreflect.MessageDescriptor + fd_QueryNextL1SequenceResponse_next_l1_sequence protoreflect.FieldDescriptor +) + +func init() { + file_opinit_ophost_v1_query_proto_init() + md_QueryNextL1SequenceResponse = File_opinit_ophost_v1_query_proto.Messages().ByName("QueryNextL1SequenceResponse") + fd_QueryNextL1SequenceResponse_next_l1_sequence = md_QueryNextL1SequenceResponse.Fields().ByName("next_l1_sequence") +} + +var _ protoreflect.Message = (*fastReflection_QueryNextL1SequenceResponse)(nil) + +type fastReflection_QueryNextL1SequenceResponse QueryNextL1SequenceResponse + +func (x *QueryNextL1SequenceResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryNextL1SequenceResponse)(x) +} + +func (x *QueryNextL1SequenceResponse) slowProtoReflect() protoreflect.Message { + mi := &file_opinit_ophost_v1_query_proto_msgTypes[21] + 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_QueryNextL1SequenceResponse_messageType fastReflection_QueryNextL1SequenceResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryNextL1SequenceResponse_messageType{} + +type fastReflection_QueryNextL1SequenceResponse_messageType struct{} + +func (x fastReflection_QueryNextL1SequenceResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryNextL1SequenceResponse)(nil) +} +func (x fastReflection_QueryNextL1SequenceResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryNextL1SequenceResponse) +} +func (x fastReflection_QueryNextL1SequenceResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryNextL1SequenceResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryNextL1SequenceResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryNextL1SequenceResponse +} + +// 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_QueryNextL1SequenceResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryNextL1SequenceResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryNextL1SequenceResponse) New() protoreflect.Message { + return new(fastReflection_QueryNextL1SequenceResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryNextL1SequenceResponse) Interface() protoreflect.ProtoMessage { + return (*QueryNextL1SequenceResponse)(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_QueryNextL1SequenceResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.NextL1Sequence != uint64(0) { + value := protoreflect.ValueOfUint64(x.NextL1Sequence) + if !f(fd_QueryNextL1SequenceResponse_next_l1_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_QueryNextL1SequenceResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "opinit.ophost.v1.QueryNextL1SequenceResponse.next_l1_sequence": + return x.NextL1Sequence != uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryNextL1SequenceResponse")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryNextL1SequenceResponse 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_QueryNextL1SequenceResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "opinit.ophost.v1.QueryNextL1SequenceResponse.next_l1_sequence": + x.NextL1Sequence = uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryNextL1SequenceResponse")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryNextL1SequenceResponse 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_QueryNextL1SequenceResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "opinit.ophost.v1.QueryNextL1SequenceResponse.next_l1_sequence": + value := x.NextL1Sequence + return protoreflect.ValueOfUint64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryNextL1SequenceResponse")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryNextL1SequenceResponse 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_QueryNextL1SequenceResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "opinit.ophost.v1.QueryNextL1SequenceResponse.next_l1_sequence": + x.NextL1Sequence = value.Uint() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryNextL1SequenceResponse")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryNextL1SequenceResponse 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_QueryNextL1SequenceResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "opinit.ophost.v1.QueryNextL1SequenceResponse.next_l1_sequence": + panic(fmt.Errorf("field next_l1_sequence of message opinit.ophost.v1.QueryNextL1SequenceResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryNextL1SequenceResponse")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryNextL1SequenceResponse 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_QueryNextL1SequenceResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "opinit.ophost.v1.QueryNextL1SequenceResponse.next_l1_sequence": + return protoreflect.ValueOfUint64(uint64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryNextL1SequenceResponse")) + } + panic(fmt.Errorf("message opinit.ophost.v1.QueryNextL1SequenceResponse 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_QueryNextL1SequenceResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in opinit.ophost.v1.QueryNextL1SequenceResponse", 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_QueryNextL1SequenceResponse) 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_QueryNextL1SequenceResponse) 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_QueryNextL1SequenceResponse) 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_QueryNextL1SequenceResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryNextL1SequenceResponse) + 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.NextL1Sequence != 0 { + n += 1 + runtime.Sov(uint64(x.NextL1Sequence)) + } + 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().(*QueryNextL1SequenceResponse) + 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.NextL1Sequence != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.NextL1Sequence)) + 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().(*QueryNextL1SequenceResponse) + 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: QueryNextL1SequenceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryNextL1SequenceResponse: 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 NextL1Sequence", wireType) + } + x.NextL1Sequence = 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.NextL1Sequence |= 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, + } +} + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.0 @@ -10333,6 +11141,78 @@ func (x *QueryClaimedResponse) GetClaimed() bool { return false } +// QueryNextL1SequenceRequest is request type for the Query/NextL1Sequence RPC method. +type QueryNextL1SequenceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BridgeId uint64 `protobuf:"varint,1,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` +} + +func (x *QueryNextL1SequenceRequest) Reset() { + *x = QueryNextL1SequenceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_opinit_ophost_v1_query_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryNextL1SequenceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryNextL1SequenceRequest) ProtoMessage() {} + +// Deprecated: Use QueryNextL1SequenceRequest.ProtoReflect.Descriptor instead. +func (*QueryNextL1SequenceRequest) Descriptor() ([]byte, []int) { + return file_opinit_ophost_v1_query_proto_rawDescGZIP(), []int{20} +} + +func (x *QueryNextL1SequenceRequest) GetBridgeId() uint64 { + if x != nil { + return x.BridgeId + } + return 0 +} + +// QueryNextL1SequenceResponse is response type for the Query/NextL1Sequence RPC method. +type QueryNextL1SequenceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NextL1Sequence uint64 `protobuf:"varint,1,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` +} + +func (x *QueryNextL1SequenceResponse) Reset() { + *x = QueryNextL1SequenceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_opinit_ophost_v1_query_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryNextL1SequenceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryNextL1SequenceResponse) ProtoMessage() {} + +// Deprecated: Use QueryNextL1SequenceResponse.ProtoReflect.Descriptor instead. +func (*QueryNextL1SequenceResponse) Descriptor() ([]byte, []int) { + return file_opinit_ophost_v1_query_proto_rawDescGZIP(), []int{21} +} + +func (x *QueryNextL1SequenceResponse) GetNextL1Sequence() uint64 { + if x != nil { + return x.NextL1Sequence + } + return 0 +} + var File_opinit_ophost_v1_query_proto protoreflect.FileDescriptor var file_opinit_ophost_v1_query_proto_rawDesc = []byte{ @@ -10497,127 +11377,146 @@ var file_opinit_ophost_v1_query_proto_rawDesc = []byte{ 0x73, 0x68, 0x22, 0x30, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x65, 0x64, 0x32, 0xb0, 0x0d, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x89, - 0x01, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 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, 0x68, - 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x80, 0x01, 0x0a, 0x07, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 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, 0x68, 0x6f, - 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0xc5, 0x01, - 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, - 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x31, 0x5f, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, - 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, 0x6f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, - 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, - 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, - 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, - 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, - 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, - 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xa1, 0x01, - 0x0a, 0x0a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x28, 0x2e, 0x6f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x3e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, - 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, - 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, - 0x73, 0x12, 0xc6, 0x01, 0x0a, 0x13, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x48, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, - 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0xb8, 0x01, 0x0a, 0x0e, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x2c, 0x2e, + 0x69, 0x6d, 0x65, 0x64, 0x22, 0x39, 0x0a, 0x1a, 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, 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, 0x22, + 0x47, 0x0a, 0x1b, 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, 0x12, 0x28, + 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, 0x31, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x32, 0xe5, 0x0e, 0x0a, 0x05, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x12, 0x89, 0x01, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x88, 0xe7, 0xb0, 0x2a, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, + 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 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, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x2f, 0x7b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x0f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x80, + 0x01, 0x0a, 0x07, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, + 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, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x73, 0x12, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, + 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, - 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, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, - 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x73, 0x12, 0x7c, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, - 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, - 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x88, 0xe7, 0xb0, - 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0x25, - 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, - 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, - 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x88, - 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x12, 0x4b, 0x2f, 0x6f, 0x70, 0x69, + 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, + 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, + 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x88, + 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x7d, 0x2f, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x42, 0xc1, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, + 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x62, 0x79, + 0x5f, 0x6c, 0x31, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, + 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, + 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x12, 0xa1, 0x01, 0x0a, 0x0a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, + 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, + 0x69, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x33, 0x12, 0x31, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, + 0x70, 0x61, 0x69, 0x72, 0x73, 0x12, 0xc6, 0x01, 0x0a, 0x13, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x31, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3d, 0x12, 0x3b, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0xb8, + 0x01, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, + 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x6f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x2f, 0x7b, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x0f, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 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, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x73, 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, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x7c, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x25, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x69, 0x6d, + 0x65, 0x64, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, + 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x58, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x12, 0x4b, + 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, + 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, + 0x73, 0x2f, 0x7b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x7d, 0x2f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0xb2, 0x01, 0x0a, 0x0e, + 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2c, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 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, 0x2d, 0x2e, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 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, 0x43, 0x88, 0xe7, 0xb0, + 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x42, 0xc1, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, + 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 ( @@ -10632,7 +11531,7 @@ func file_opinit_ophost_v1_query_proto_rawDescGZIP() []byte { return file_opinit_ophost_v1_query_proto_rawDescData } -var file_opinit_ophost_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_opinit_ophost_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_opinit_ophost_v1_query_proto_goTypes = []interface{}{ (*QueryBridgeRequest)(nil), // 0: opinit.ophost.v1.QueryBridgeRequest (*QueryBridgeResponse)(nil), // 1: opinit.ophost.v1.QueryBridgeResponse @@ -10654,29 +11553,31 @@ var file_opinit_ophost_v1_query_proto_goTypes = []interface{}{ (*QueryParamsResponse)(nil), // 17: opinit.ophost.v1.QueryParamsResponse (*QueryClaimedRequest)(nil), // 18: opinit.ophost.v1.QueryClaimedRequest (*QueryClaimedResponse)(nil), // 19: opinit.ophost.v1.QueryClaimedResponse - (*BridgeConfig)(nil), // 20: opinit.ophost.v1.BridgeConfig - (*v1beta1.PageRequest)(nil), // 21: cosmos.base.query.v1beta1.PageRequest - (*v1beta1.PageResponse)(nil), // 22: cosmos.base.query.v1beta1.PageResponse - (*TokenPair)(nil), // 23: opinit.ophost.v1.TokenPair - (*Output)(nil), // 24: opinit.ophost.v1.Output - (*Params)(nil), // 25: opinit.ophost.v1.Params + (*QueryNextL1SequenceRequest)(nil), // 20: opinit.ophost.v1.QueryNextL1SequenceRequest + (*QueryNextL1SequenceResponse)(nil), // 21: opinit.ophost.v1.QueryNextL1SequenceResponse + (*BridgeConfig)(nil), // 22: opinit.ophost.v1.BridgeConfig + (*v1beta1.PageRequest)(nil), // 23: cosmos.base.query.v1beta1.PageRequest + (*v1beta1.PageResponse)(nil), // 24: cosmos.base.query.v1beta1.PageResponse + (*TokenPair)(nil), // 25: opinit.ophost.v1.TokenPair + (*Output)(nil), // 26: opinit.ophost.v1.Output + (*Params)(nil), // 27: opinit.ophost.v1.Params } var file_opinit_ophost_v1_query_proto_depIdxs = []int32{ - 20, // 0: opinit.ophost.v1.QueryBridgeResponse.bridge_config:type_name -> opinit.ophost.v1.BridgeConfig - 21, // 1: opinit.ophost.v1.QueryBridgesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 22, // 0: opinit.ophost.v1.QueryBridgeResponse.bridge_config:type_name -> opinit.ophost.v1.BridgeConfig + 23, // 1: opinit.ophost.v1.QueryBridgesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest 1, // 2: opinit.ophost.v1.QueryBridgesResponse.bridges:type_name -> opinit.ophost.v1.QueryBridgeResponse - 22, // 3: opinit.ophost.v1.QueryBridgesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 23, // 4: opinit.ophost.v1.QueryTokenPairByL1DenomResponse.token_pair:type_name -> opinit.ophost.v1.TokenPair - 23, // 5: opinit.ophost.v1.QueryTokenPairByL2DenomResponse.token_pair:type_name -> opinit.ophost.v1.TokenPair - 21, // 6: opinit.ophost.v1.QueryTokenPairsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 23, // 7: opinit.ophost.v1.QueryTokenPairsResponse.token_pairs:type_name -> opinit.ophost.v1.TokenPair - 22, // 8: opinit.ophost.v1.QueryTokenPairsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 24, // 9: opinit.ophost.v1.QueryLastFinalizedOutputResponse.output_proposal:type_name -> opinit.ophost.v1.Output - 24, // 10: opinit.ophost.v1.QueryOutputProposalResponse.output_proposal:type_name -> opinit.ophost.v1.Output - 21, // 11: opinit.ophost.v1.QueryOutputProposalsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 24, // 3: opinit.ophost.v1.QueryBridgesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 25, // 4: opinit.ophost.v1.QueryTokenPairByL1DenomResponse.token_pair:type_name -> opinit.ophost.v1.TokenPair + 25, // 5: opinit.ophost.v1.QueryTokenPairByL2DenomResponse.token_pair:type_name -> opinit.ophost.v1.TokenPair + 23, // 6: opinit.ophost.v1.QueryTokenPairsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 25, // 7: opinit.ophost.v1.QueryTokenPairsResponse.token_pairs:type_name -> opinit.ophost.v1.TokenPair + 24, // 8: opinit.ophost.v1.QueryTokenPairsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 26, // 9: opinit.ophost.v1.QueryLastFinalizedOutputResponse.output_proposal:type_name -> opinit.ophost.v1.Output + 26, // 10: opinit.ophost.v1.QueryOutputProposalResponse.output_proposal:type_name -> opinit.ophost.v1.Output + 23, // 11: opinit.ophost.v1.QueryOutputProposalsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest 13, // 12: opinit.ophost.v1.QueryOutputProposalsResponse.output_proposals:type_name -> opinit.ophost.v1.QueryOutputProposalResponse - 22, // 13: opinit.ophost.v1.QueryOutputProposalsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 25, // 14: opinit.ophost.v1.QueryParamsResponse.params:type_name -> opinit.ophost.v1.Params + 24, // 13: opinit.ophost.v1.QueryOutputProposalsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 27, // 14: opinit.ophost.v1.QueryParamsResponse.params:type_name -> opinit.ophost.v1.Params 0, // 15: opinit.ophost.v1.Query.Bridge:input_type -> opinit.ophost.v1.QueryBridgeRequest 2, // 16: opinit.ophost.v1.Query.Bridges:input_type -> opinit.ophost.v1.QueryBridgesRequest 4, // 17: opinit.ophost.v1.Query.TokenPairByL1Denom:input_type -> opinit.ophost.v1.QueryTokenPairByL1DenomRequest @@ -10687,18 +11588,20 @@ var file_opinit_ophost_v1_query_proto_depIdxs = []int32{ 14, // 22: opinit.ophost.v1.Query.OutputProposals:input_type -> opinit.ophost.v1.QueryOutputProposalsRequest 16, // 23: opinit.ophost.v1.Query.Params:input_type -> opinit.ophost.v1.QueryParamsRequest 18, // 24: opinit.ophost.v1.Query.Claimed:input_type -> opinit.ophost.v1.QueryClaimedRequest - 1, // 25: opinit.ophost.v1.Query.Bridge:output_type -> opinit.ophost.v1.QueryBridgeResponse - 3, // 26: opinit.ophost.v1.Query.Bridges:output_type -> opinit.ophost.v1.QueryBridgesResponse - 5, // 27: opinit.ophost.v1.Query.TokenPairByL1Denom:output_type -> opinit.ophost.v1.QueryTokenPairByL1DenomResponse - 7, // 28: opinit.ophost.v1.Query.TokenPairByL2Denom:output_type -> opinit.ophost.v1.QueryTokenPairByL2DenomResponse - 9, // 29: opinit.ophost.v1.Query.TokenPairs:output_type -> opinit.ophost.v1.QueryTokenPairsResponse - 11, // 30: opinit.ophost.v1.Query.LastFinalizedOutput:output_type -> opinit.ophost.v1.QueryLastFinalizedOutputResponse - 13, // 31: opinit.ophost.v1.Query.OutputProposal:output_type -> opinit.ophost.v1.QueryOutputProposalResponse - 15, // 32: opinit.ophost.v1.Query.OutputProposals:output_type -> opinit.ophost.v1.QueryOutputProposalsResponse - 17, // 33: opinit.ophost.v1.Query.Params:output_type -> opinit.ophost.v1.QueryParamsResponse - 19, // 34: opinit.ophost.v1.Query.Claimed:output_type -> opinit.ophost.v1.QueryClaimedResponse - 25, // [25:35] is the sub-list for method output_type - 15, // [15:25] is the sub-list for method input_type + 20, // 25: opinit.ophost.v1.Query.NextL1Sequence:input_type -> opinit.ophost.v1.QueryNextL1SequenceRequest + 1, // 26: opinit.ophost.v1.Query.Bridge:output_type -> opinit.ophost.v1.QueryBridgeResponse + 3, // 27: opinit.ophost.v1.Query.Bridges:output_type -> opinit.ophost.v1.QueryBridgesResponse + 5, // 28: opinit.ophost.v1.Query.TokenPairByL1Denom:output_type -> opinit.ophost.v1.QueryTokenPairByL1DenomResponse + 7, // 29: opinit.ophost.v1.Query.TokenPairByL2Denom:output_type -> opinit.ophost.v1.QueryTokenPairByL2DenomResponse + 9, // 30: opinit.ophost.v1.Query.TokenPairs:output_type -> opinit.ophost.v1.QueryTokenPairsResponse + 11, // 31: opinit.ophost.v1.Query.LastFinalizedOutput:output_type -> opinit.ophost.v1.QueryLastFinalizedOutputResponse + 13, // 32: opinit.ophost.v1.Query.OutputProposal:output_type -> opinit.ophost.v1.QueryOutputProposalResponse + 15, // 33: opinit.ophost.v1.Query.OutputProposals:output_type -> opinit.ophost.v1.QueryOutputProposalsResponse + 17, // 34: opinit.ophost.v1.Query.Params:output_type -> opinit.ophost.v1.QueryParamsResponse + 19, // 35: opinit.ophost.v1.Query.Claimed:output_type -> opinit.ophost.v1.QueryClaimedResponse + 21, // 36: opinit.ophost.v1.Query.NextL1Sequence:output_type -> opinit.ophost.v1.QueryNextL1SequenceResponse + 26, // [26:37] is the sub-list for method output_type + 15, // [15:26] is the sub-list for method input_type 15, // [15:15] is the sub-list for extension type_name 15, // [15:15] is the sub-list for extension extendee 0, // [0:15] is the sub-list for field type_name @@ -10951,6 +11854,30 @@ func file_opinit_ophost_v1_query_proto_init() { return nil } } + file_opinit_ophost_v1_query_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryNextL1SequenceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_opinit_ophost_v1_query_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryNextL1SequenceResponse); 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{ @@ -10958,7 +11885,7 @@ func file_opinit_ophost_v1_query_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_opinit_ophost_v1_query_proto_rawDesc, NumEnums: 0, - NumMessages: 20, + NumMessages: 22, NumExtensions: 0, NumServices: 1, }, diff --git a/api/opinit/ophost/v1/query_grpc.pb.go b/api/opinit/ophost/v1/query_grpc.pb.go index be50ae51..1ee842e3 100644 --- a/api/opinit/ophost/v1/query_grpc.pb.go +++ b/api/opinit/ophost/v1/query_grpc.pb.go @@ -29,6 +29,7 @@ const ( Query_OutputProposals_FullMethodName = "/opinit.ophost.v1.Query/OutputProposals" Query_Params_FullMethodName = "/opinit.ophost.v1.Query/Params" Query_Claimed_FullMethodName = "/opinit.ophost.v1.Query/Claimed" + Query_NextL1Sequence_FullMethodName = "/opinit.ophost.v1.Query/NextL1Sequence" ) // QueryClient is the client API for Query service. @@ -56,6 +57,8 @@ type QueryClient interface { Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) // Claimed queries whether the output is claimed. Claimed(ctx context.Context, in *QueryClaimedRequest, opts ...grpc.CallOption) (*QueryClaimedResponse, error) + // NextL1Sequence queries the next l1 sequence. + NextL1Sequence(ctx context.Context, in *QueryNextL1SequenceRequest, opts ...grpc.CallOption) (*QueryNextL1SequenceResponse, error) } type queryClient struct { @@ -166,6 +169,16 @@ func (c *queryClient) Claimed(ctx context.Context, in *QueryClaimedRequest, opts return out, nil } +func (c *queryClient) NextL1Sequence(ctx context.Context, in *QueryNextL1SequenceRequest, opts ...grpc.CallOption) (*QueryNextL1SequenceResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(QueryNextL1SequenceResponse) + err := c.cc.Invoke(ctx, Query_NextL1Sequence_FullMethodName, in, out, cOpts...) + 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 @@ -191,6 +204,8 @@ type QueryServer interface { Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) // Claimed queries whether the output is claimed. Claimed(context.Context, *QueryClaimedRequest) (*QueryClaimedResponse, error) + // NextL1Sequence queries the next l1 sequence. + NextL1Sequence(context.Context, *QueryNextL1SequenceRequest) (*QueryNextL1SequenceResponse, error) mustEmbedUnimplementedQueryServer() } @@ -228,6 +243,9 @@ func (UnimplementedQueryServer) Params(context.Context, *QueryParamsRequest) (*Q func (UnimplementedQueryServer) Claimed(context.Context, *QueryClaimedRequest) (*QueryClaimedResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Claimed not implemented") } +func (UnimplementedQueryServer) NextL1Sequence(context.Context, *QueryNextL1SequenceRequest) (*QueryNextL1SequenceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NextL1Sequence not implemented") +} func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {} // UnsafeQueryServer may be embedded to opt out of forward compatibility for this service. @@ -421,6 +439,24 @@ func _Query_Claimed_Handler(srv interface{}, ctx context.Context, dec func(inter return interceptor(ctx, in, info, handler) } +func _Query_NextL1Sequence_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNextL1SequenceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).NextL1Sequence(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_NextL1Sequence_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).NextL1Sequence(ctx, req.(*QueryNextL1SequenceRequest)) + } + 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) @@ -468,6 +504,10 @@ var Query_ServiceDesc = grpc.ServiceDesc{ MethodName: "Claimed", Handler: _Query_Claimed_Handler, }, + { + MethodName: "NextL1Sequence", + Handler: _Query_NextL1Sequence_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "opinit/ophost/v1/query.proto", diff --git a/proto/opinit/opchild/v1/query.proto b/proto/opinit/opchild/v1/query.proto index da342386..1da16e86 100644 --- a/proto/opinit/opchild/v1/query.proto +++ b/proto/opinit/opchild/v1/query.proto @@ -39,6 +39,18 @@ service Query { option (cosmos.query.v1.module_query_safe) = true; option (google.api.http).get = "/opinit/opchild/v1/params"; } + + // NextL1Sequence queries the next l1 sequence number. + rpc NextL1Sequence(QueryNextL1SequenceRequest) returns (QueryNextL1SequenceResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/opinit/opchild/v1/next_l1_sequence"; + } + + // NextL2Sequence queries the next l2 sequence number. + rpc NextL2Sequence(QueryNextL2SequenceRequest) returns (QueryNextL2SequenceResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/opinit/opchild/v1/next_l2_sequence"; + } } // QueryValidatorsRequest is request type for Query/Validators RPC method. @@ -85,3 +97,21 @@ message QueryParamsResponse { // params holds all the parameters of this module. Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; } + +// QueryNextL1SequenceRequest is request type for the Query/NextL1Sequence RPC method. +message QueryNextL1SequenceRequest {} + +// QueryNextL1SequenceResponse is response type for the Query/NextL1Sequence RPC method. +message QueryNextL1SequenceResponse { + // next_l1_sequence holds the next l1 sequence number. + uint64 next_l1_sequence = 1; +} + +// QueryNextL2SequenceRequest is request type for the Query/NextL2Sequence RPC method. +message QueryNextL2SequenceRequest {} + +// QueryNextL2SequenceResponse is response type for the Query/NextL2Sequence RPC method. +message QueryNextL2SequenceResponse { + // next_l2_sequence holds the next l2 sequence number. + uint64 next_l2_sequence = 1; +} diff --git a/proto/opinit/ophost/v1/query.proto b/proto/opinit/ophost/v1/query.proto index 567f5650..dc359508 100644 --- a/proto/opinit/ophost/v1/query.proto +++ b/proto/opinit/ophost/v1/query.proto @@ -72,6 +72,12 @@ service Query { option (cosmos.query.v1.module_query_safe) = true; option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/withdrawals/{withdrawal_hash}/claimed"; } + + // NextL1Sequence queries the next l1 sequence. + rpc NextL1Sequence(QueryNextL1SequenceRequest) returns (QueryNextL1SequenceResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/next_l1_sequence"; + } } // QueryBridgeRequest is request type for Query/Bridge RPC method. @@ -200,3 +206,13 @@ message QueryClaimedRequest { message QueryClaimedResponse { bool claimed = 1; } + +// QueryNextL1SequenceRequest is request type for the Query/NextL1Sequence RPC method. +message QueryNextL1SequenceRequest { + uint64 bridge_id = 1; +} + +// QueryNextL1SequenceResponse is response type for the Query/NextL1Sequence RPC method. +message QueryNextL1SequenceResponse { + uint64 next_l1_sequence = 1; +} diff --git a/x/opchild/keeper/querier.go b/x/opchild/keeper/querier.go index f585719d..3741edc7 100644 --- a/x/opchild/keeper/querier.go +++ b/x/opchild/keeper/querier.go @@ -75,3 +75,21 @@ func (q Querier) Params(ctx context.Context, req *types.QueryParamsRequest) (*ty return &types.QueryParamsResponse{Params: params}, nil } + +func (q Querier) NextL1Sequence(ctx context.Context, req *types.QueryNextL1SequenceRequest) (*types.QueryNextL1SequenceResponse, error) { + nextL1Sequence, err := q.GetNextL1Sequence(ctx) + if err != nil { + return nil, err + } + + return &types.QueryNextL1SequenceResponse{NextL1Sequence: nextL1Sequence}, nil +} + +func (q Querier) NextL2Sequence(ctx context.Context, req *types.QueryNextL2SequenceRequest) (*types.QueryNextL2SequenceResponse, error) { + nextL2Sequence, err := q.GetNextL2Sequence(ctx) + if err != nil { + return nil, err + } + + return &types.QueryNextL2SequenceResponse{NextL2Sequence: nextL2Sequence}, nil +} diff --git a/x/opchild/keeper/querier_test.go b/x/opchild/keeper/querier_test.go index 5c4ac4b1..4abbe232 100644 --- a/x/opchild/keeper/querier_test.go +++ b/x/opchild/keeper/querier_test.go @@ -88,3 +88,27 @@ func Test_QueryParams(t *testing.T) { require.NoError(t, err) require.Equal(t, params, res.Params) } + +func Test_QueryNextL1Sequence(t *testing.T) { + ctx, input := createDefaultTestInput(t) + + // update the next L1 sequence + require.NoError(t, input.OPChildKeeper.NextL1Sequence.Set(ctx, 100)) + + q := keeper.NewQuerier(input.OPChildKeeper) + res, err := q.NextL1Sequence(ctx, &types.QueryNextL1SequenceRequest{}) + require.NoError(t, err) + require.Equal(t, types.QueryNextL1SequenceResponse{NextL1Sequence: 100}, *res) +} + +func Test_QueryNextL2Sequence(t *testing.T) { + ctx, input := createDefaultTestInput(t) + + // update the next L2 sequence + require.NoError(t, input.OPChildKeeper.NextL2Sequence.Set(ctx, 100)) + + q := keeper.NewQuerier(input.OPChildKeeper) + res, err := q.NextL2Sequence(ctx, &types.QueryNextL2SequenceRequest{}) + require.NoError(t, err) + require.Equal(t, types.QueryNextL2SequenceResponse{NextL2Sequence: 100}, *res) +} diff --git a/x/opchild/types/query.pb.go b/x/opchild/types/query.pb.go index a9799c44..db46c702 100644 --- a/x/opchild/types/query.pb.go +++ b/x/opchild/types/query.pb.go @@ -391,6 +391,172 @@ func (m *QueryParamsResponse) GetParams() Params { return Params{} } +// QueryNextL1SequenceRequest is request type for the Query/NextL1Sequence RPC method. +type QueryNextL1SequenceRequest struct { +} + +func (m *QueryNextL1SequenceRequest) Reset() { *m = QueryNextL1SequenceRequest{} } +func (m *QueryNextL1SequenceRequest) String() string { return proto.CompactTextString(m) } +func (*QueryNextL1SequenceRequest) ProtoMessage() {} +func (*QueryNextL1SequenceRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_15cfbb5d02a763ec, []int{8} +} +func (m *QueryNextL1SequenceRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryNextL1SequenceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryNextL1SequenceRequest.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 *QueryNextL1SequenceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNextL1SequenceRequest.Merge(m, src) +} +func (m *QueryNextL1SequenceRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryNextL1SequenceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNextL1SequenceRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryNextL1SequenceRequest proto.InternalMessageInfo + +// QueryNextL1SequenceResponse is response type for the Query/NextL1Sequence RPC method. +type QueryNextL1SequenceResponse struct { + // next_l1_sequence holds the next l1 sequence number. + NextL1Sequence uint64 `protobuf:"varint,1,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` +} + +func (m *QueryNextL1SequenceResponse) Reset() { *m = QueryNextL1SequenceResponse{} } +func (m *QueryNextL1SequenceResponse) String() string { return proto.CompactTextString(m) } +func (*QueryNextL1SequenceResponse) ProtoMessage() {} +func (*QueryNextL1SequenceResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_15cfbb5d02a763ec, []int{9} +} +func (m *QueryNextL1SequenceResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryNextL1SequenceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryNextL1SequenceResponse.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 *QueryNextL1SequenceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNextL1SequenceResponse.Merge(m, src) +} +func (m *QueryNextL1SequenceResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryNextL1SequenceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNextL1SequenceResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryNextL1SequenceResponse proto.InternalMessageInfo + +func (m *QueryNextL1SequenceResponse) GetNextL1Sequence() uint64 { + if m != nil { + return m.NextL1Sequence + } + return 0 +} + +// QueryNextL2SequenceRequest is request type for the Query/NextL2Sequence RPC method. +type QueryNextL2SequenceRequest struct { +} + +func (m *QueryNextL2SequenceRequest) Reset() { *m = QueryNextL2SequenceRequest{} } +func (m *QueryNextL2SequenceRequest) String() string { return proto.CompactTextString(m) } +func (*QueryNextL2SequenceRequest) ProtoMessage() {} +func (*QueryNextL2SequenceRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_15cfbb5d02a763ec, []int{10} +} +func (m *QueryNextL2SequenceRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryNextL2SequenceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryNextL2SequenceRequest.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 *QueryNextL2SequenceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNextL2SequenceRequest.Merge(m, src) +} +func (m *QueryNextL2SequenceRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryNextL2SequenceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNextL2SequenceRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryNextL2SequenceRequest proto.InternalMessageInfo + +// QueryNextL2SequenceResponse is response type for the Query/NextL2Sequence RPC method. +type QueryNextL2SequenceResponse struct { + // next_l2_sequence holds the next l2 sequence number. + NextL2Sequence uint64 `protobuf:"varint,1,opt,name=next_l2_sequence,json=nextL2Sequence,proto3" json:"next_l2_sequence,omitempty"` +} + +func (m *QueryNextL2SequenceResponse) Reset() { *m = QueryNextL2SequenceResponse{} } +func (m *QueryNextL2SequenceResponse) String() string { return proto.CompactTextString(m) } +func (*QueryNextL2SequenceResponse) ProtoMessage() {} +func (*QueryNextL2SequenceResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_15cfbb5d02a763ec, []int{11} +} +func (m *QueryNextL2SequenceResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryNextL2SequenceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryNextL2SequenceResponse.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 *QueryNextL2SequenceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNextL2SequenceResponse.Merge(m, src) +} +func (m *QueryNextL2SequenceResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryNextL2SequenceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNextL2SequenceResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryNextL2SequenceResponse proto.InternalMessageInfo + +func (m *QueryNextL2SequenceResponse) GetNextL2Sequence() uint64 { + if m != nil { + return m.NextL2Sequence + } + return 0 +} + func init() { proto.RegisterType((*QueryValidatorsRequest)(nil), "opinit.opchild.v1.QueryValidatorsRequest") proto.RegisterType((*QueryValidatorsResponse)(nil), "opinit.opchild.v1.QueryValidatorsResponse") @@ -400,52 +566,63 @@ func init() { proto.RegisterType((*QueryBridgeInfoResponse)(nil), "opinit.opchild.v1.QueryBridgeInfoResponse") proto.RegisterType((*QueryParamsRequest)(nil), "opinit.opchild.v1.QueryParamsRequest") proto.RegisterType((*QueryParamsResponse)(nil), "opinit.opchild.v1.QueryParamsResponse") + proto.RegisterType((*QueryNextL1SequenceRequest)(nil), "opinit.opchild.v1.QueryNextL1SequenceRequest") + proto.RegisterType((*QueryNextL1SequenceResponse)(nil), "opinit.opchild.v1.QueryNextL1SequenceResponse") + proto.RegisterType((*QueryNextL2SequenceRequest)(nil), "opinit.opchild.v1.QueryNextL2SequenceRequest") + proto.RegisterType((*QueryNextL2SequenceResponse)(nil), "opinit.opchild.v1.QueryNextL2SequenceResponse") } func init() { proto.RegisterFile("opinit/opchild/v1/query.proto", fileDescriptor_15cfbb5d02a763ec) } var fileDescriptor_15cfbb5d02a763ec = []byte{ - // 638 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0x4f, 0x8b, 0xd3, 0x4e, - 0x18, 0xc7, 0x9b, 0xfd, 0xfd, 0x2c, 0x74, 0x8a, 0xc2, 0x8e, 0x55, 0xdb, 0xee, 0x36, 0x5b, 0x02, - 0xd6, 0x6e, 0xa5, 0x19, 0x5a, 0x6f, 0x22, 0x88, 0x05, 0x5d, 0xf6, 0x64, 0xed, 0x82, 0x88, 0x97, - 0x3a, 0x69, 0x66, 0xb3, 0x03, 0x6d, 0x26, 0x9b, 0xa4, 0xc5, 0x45, 0x44, 0xf0, 0xe4, 0xcd, 0x05, - 0xaf, 0xbe, 0x00, 0xc1, 0x8b, 0x07, 0x5f, 0xc4, 0x1e, 0x3c, 0x2c, 0x7a, 0xf1, 0x24, 0xd2, 0x0a, - 0xbe, 0x0d, 0xc9, 0xcc, 0x34, 0x7f, 0x6c, 0x6a, 0x7b, 0x29, 0xcd, 0xf3, 0x3c, 0xdf, 0xe7, 0xfb, - 0x99, 0x67, 0x9e, 0x04, 0x54, 0x98, 0x43, 0x6d, 0xea, 0x23, 0xe6, 0x0c, 0x8e, 0xe8, 0xd0, 0x44, - 0x93, 0x16, 0x3a, 0x1e, 0x13, 0xf7, 0x44, 0x77, 0x5c, 0xe6, 0x33, 0xb8, 0x29, 0xd2, 0xba, 0x4c, - 0xeb, 0x93, 0x56, 0x79, 0x13, 0x8f, 0xa8, 0xcd, 0x10, 0xff, 0x15, 0x55, 0xe5, 0xc6, 0x80, 0x79, - 0x23, 0xe6, 0x21, 0x03, 0x7b, 0x44, 0xc8, 0xd1, 0xa4, 0x65, 0x10, 0x1f, 0xb7, 0x90, 0x83, 0x2d, - 0x6a, 0x63, 0x9f, 0x32, 0x5b, 0xd6, 0x6e, 0xc9, 0xda, 0x79, 0x59, 0xdc, 0xae, 0x5c, 0x12, 0xc9, - 0x3e, 0x7f, 0x42, 0xe2, 0x41, 0xa6, 0x0a, 0x16, 0xb3, 0x98, 0x88, 0x07, 0xff, 0x64, 0x74, 0xdb, - 0x62, 0xcc, 0x1a, 0x12, 0x84, 0x1d, 0x8a, 0xb0, 0x6d, 0x33, 0x9f, 0x5b, 0xcd, 0x35, 0x29, 0x87, - 0xf3, 0x4f, 0x1c, 0x22, 0xd3, 0xda, 0x33, 0x70, 0xf5, 0x51, 0x60, 0xfe, 0x18, 0x0f, 0xa9, 0x89, - 0x7d, 0xe6, 0x7a, 0x3d, 0x72, 0x3c, 0x26, 0x9e, 0x0f, 0x1f, 0x00, 0x10, 0x81, 0x17, 0x95, 0xaa, - 0x52, 0xcf, 0xb7, 0x6b, 0xba, 0xe4, 0x09, 0x4e, 0xa9, 0x0b, 0x6a, 0x79, 0x4a, 0xbd, 0x8b, 0x2d, - 0x22, 0xb5, 0xbd, 0x98, 0x52, 0xfb, 0xa8, 0x80, 0x6b, 0x0b, 0x16, 0x9e, 0xc3, 0x6c, 0x8f, 0xc0, - 0x3d, 0x00, 0x26, 0x61, 0xb4, 0xa8, 0x54, 0xff, 0xab, 0xe7, 0xdb, 0xdb, 0xfa, 0xc2, 0xbc, 0xf5, - 0x50, 0xda, 0xc9, 0x9d, 0xfd, 0xd8, 0xc9, 0x7c, 0xf8, 0xfd, 0xa9, 0xa1, 0xf4, 0x62, 0xd2, 0xa0, - 0x51, 0x0c, 0x76, 0x83, 0xc3, 0xde, 0x58, 0x09, 0x2b, 0x28, 0x12, 0xb4, 0x4f, 0xc0, 0x95, 0x24, - 0xec, 0x7c, 0x1c, 0x77, 0xc1, 0xa5, 0xd0, 0xaf, 0x8f, 0x4d, 0xd3, 0xe5, 0x23, 0xc9, 0x75, 0x8a, - 0x5f, 0x3f, 0x37, 0x0b, 0xd2, 0xe8, 0x9e, 0x69, 0xba, 0xc4, 0xf3, 0x0e, 0x7c, 0x97, 0xda, 0x56, - 0xef, 0x62, 0x58, 0x1f, 0xc4, 0xb5, 0xfe, 0xdf, 0x93, 0x0e, 0xa7, 0x70, 0x1f, 0xe4, 0xc2, 0x52, - 0x39, 0xe8, 0xb5, 0x87, 0x10, 0x29, 0xb5, 0xa2, 0x34, 0xe8, 0xb8, 0xd4, 0xb4, 0xc8, 0xbe, 0x7d, - 0xc8, 0x24, 0xbb, 0x66, 0xca, 0x1b, 0x88, 0x67, 0xa4, 0xf7, 0x3e, 0xc8, 0x1b, 0x3c, 0xda, 0xa7, - 0xf6, 0x21, 0x93, 0xee, 0x95, 0x14, 0xf7, 0x48, 0x9b, 0xb8, 0x03, 0x23, 0x0c, 0x6b, 0x05, 0x00, - 0xb9, 0x4b, 0x17, 0xbb, 0x78, 0x34, 0x5f, 0x23, 0xed, 0x00, 0x5c, 0x4e, 0x44, 0xa5, 0xef, 0x1d, - 0x90, 0x75, 0x78, 0x44, 0x5a, 0x96, 0x52, 0x2c, 0x85, 0x24, 0x6e, 0x27, 0x35, 0xed, 0x2f, 0xff, - 0x83, 0x0b, 0xbc, 0x2b, 0x7c, 0xab, 0x00, 0x10, 0x2d, 0x16, 0xdc, 0x4d, 0x69, 0x93, 0xbe, 0xdf, - 0xe5, 0xc6, 0x3a, 0xa5, 0x82, 0x56, 0x6b, 0xbc, 0x09, 0xec, 0x5f, 0x7f, 0xfb, 0xf5, 0x6e, 0x63, - 0x07, 0x56, 0xd0, 0xe2, 0x2b, 0x15, 0x5b, 0xc5, 0xf7, 0x0a, 0xc8, 0x85, 0x2d, 0x60, 0x7d, 0xa5, - 0xcb, 0x9c, 0x67, 0x77, 0x8d, 0x4a, 0x89, 0x73, 0x3b, 0xc2, 0x41, 0xb0, 0xf9, 0x2f, 0x1c, 0xf4, - 0x22, 0xb9, 0xb4, 0x2f, 0xe1, 0xa9, 0x02, 0x40, 0x74, 0x97, 0xcb, 0x07, 0xb6, 0xb0, 0x45, 0xcb, - 0x07, 0xb6, 0xb8, 0x56, 0xda, 0xcd, 0x88, 0xb0, 0x0a, 0xd5, 0x14, 0xc2, 0xd8, 0xd2, 0xc1, 0x57, - 0x20, 0x2b, 0xae, 0x1a, 0x5e, 0x5f, 0x66, 0x91, 0xd8, 0xa9, 0x72, 0x6d, 0x55, 0x99, 0xa4, 0xa8, - 0x45, 0x14, 0x5b, 0xb0, 0x94, 0x42, 0x21, 0xd6, 0xa9, 0xb3, 0x77, 0x36, 0x55, 0x95, 0xf3, 0xa9, - 0xaa, 0xfc, 0x9c, 0xaa, 0xca, 0xe9, 0x4c, 0xcd, 0x9c, 0xcf, 0xd4, 0xcc, 0xf7, 0x99, 0x9a, 0x79, - 0xda, 0xb4, 0xa8, 0x7f, 0x34, 0x36, 0xf4, 0x01, 0x1b, 0xa1, 0x40, 0x4c, 0x71, 0x73, 0x88, 0x0d, - 0x0f, 0x3d, 0xec, 0xf2, 0x56, 0xcf, 0xc3, 0x66, 0xfc, 0x9b, 0x6a, 0x64, 0xf9, 0x47, 0xf5, 0xd6, - 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0xcf, 0xbf, 0x6e, 0x52, 0x06, 0x00, 0x00, + // 739 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x95, 0x4d, 0x6b, 0x13, 0x4f, + 0x1c, 0xc7, 0xb3, 0xfd, 0xff, 0xad, 0x64, 0x8a, 0xc5, 0x8e, 0x55, 0xd3, 0x6d, 0xbb, 0x2d, 0x2b, + 0xad, 0x69, 0x24, 0x3b, 0x66, 0xbd, 0x89, 0x20, 0x06, 0xb4, 0x14, 0x44, 0x6b, 0x0a, 0x22, 0x5e, + 0xe2, 0x6c, 0x76, 0xba, 0x1d, 0x48, 0x66, 0xb6, 0xbb, 0xdb, 0xd0, 0x22, 0x22, 0x78, 0xf2, 0x66, + 0x41, 0x8f, 0x5e, 0xbc, 0x09, 0x5e, 0x3c, 0xf8, 0x22, 0x7a, 0x2c, 0x7a, 0xf1, 0x24, 0xd2, 0x0a, + 0xbe, 0x0d, 0xd9, 0xd9, 0xc9, 0x3e, 0x34, 0x9b, 0x26, 0x7a, 0x29, 0xdd, 0xdf, 0xd3, 0xf7, 0x33, + 0xbf, 0x9d, 0x6f, 0x16, 0xcc, 0x73, 0x97, 0x32, 0x1a, 0x20, 0xee, 0xb6, 0xb6, 0x68, 0xdb, 0x46, + 0xdd, 0x1a, 0xda, 0xde, 0x21, 0xde, 0x9e, 0xe1, 0x7a, 0x3c, 0xe0, 0x70, 0x2a, 0x4a, 0x1b, 0x32, + 0x6d, 0x74, 0x6b, 0xea, 0x14, 0xee, 0x50, 0xc6, 0x91, 0xf8, 0x1b, 0x55, 0xa9, 0x95, 0x16, 0xf7, + 0x3b, 0xdc, 0x47, 0x16, 0xf6, 0x49, 0xd4, 0x8e, 0xba, 0x35, 0x8b, 0x04, 0xb8, 0x86, 0x5c, 0xec, + 0x50, 0x86, 0x03, 0xca, 0x99, 0xac, 0x9d, 0x95, 0xb5, 0xbd, 0xb2, 0xb4, 0x9c, 0x3a, 0x13, 0x25, + 0x9b, 0xe2, 0x09, 0x45, 0x0f, 0x32, 0x35, 0xed, 0x70, 0x87, 0x47, 0xf1, 0xf0, 0x3f, 0x19, 0x9d, + 0x73, 0x38, 0x77, 0xda, 0x04, 0x61, 0x97, 0x22, 0xcc, 0x18, 0x0f, 0x84, 0x54, 0xaf, 0x27, 0xe7, + 0x70, 0xc1, 0x9e, 0x4b, 0x64, 0x5a, 0x7f, 0x06, 0x2e, 0x3d, 0x0a, 0xc5, 0x1f, 0xe3, 0x36, 0xb5, + 0x71, 0xc0, 0x3d, 0xbf, 0x41, 0xb6, 0x77, 0x88, 0x1f, 0xc0, 0x7b, 0x00, 0x24, 0xe0, 0x25, 0x65, + 0x51, 0x29, 0x4f, 0x98, 0xcb, 0x86, 0xe4, 0x09, 0x4f, 0x69, 0x44, 0xd4, 0xf2, 0x94, 0xc6, 0x3a, + 0x76, 0x88, 0xec, 0x6d, 0xa4, 0x3a, 0xf5, 0x4f, 0x0a, 0xb8, 0xdc, 0x27, 0xe1, 0xbb, 0x9c, 0xf9, + 0x04, 0xae, 0x02, 0xd0, 0x8d, 0xa3, 0x25, 0x65, 0xf1, 0xbf, 0xf2, 0x84, 0x39, 0x67, 0xf4, 0xed, + 0xdb, 0x88, 0x5b, 0xeb, 0xc5, 0x83, 0x1f, 0x0b, 0x85, 0x8f, 0xbf, 0x3f, 0x57, 0x94, 0x46, 0xaa, + 0x35, 0x1c, 0x94, 0x82, 0x1d, 0x13, 0xb0, 0x57, 0x87, 0xc2, 0x46, 0x14, 0x19, 0xda, 0x27, 0xe0, + 0x62, 0x16, 0xb6, 0xb7, 0x8e, 0xdb, 0x60, 0x32, 0xd6, 0x6b, 0x62, 0xdb, 0xf6, 0xc4, 0x4a, 0x8a, + 0xf5, 0xd2, 0xd7, 0x2f, 0xd5, 0x69, 0x29, 0x74, 0xc7, 0xb6, 0x3d, 0xe2, 0xfb, 0x1b, 0x81, 0x47, + 0x99, 0xd3, 0x38, 0x17, 0xd7, 0x87, 0x71, 0xbd, 0x79, 0x72, 0xd3, 0xf1, 0x16, 0xee, 0x82, 0x62, + 0x5c, 0x2a, 0x17, 0x3d, 0xf2, 0x12, 0x92, 0x4e, 0xbd, 0x24, 0x05, 0xea, 0x1e, 0xb5, 0x1d, 0xb2, + 0xc6, 0x36, 0xb9, 0x64, 0xd7, 0x6d, 0xf9, 0x06, 0xd2, 0x19, 0xa9, 0xbd, 0x06, 0x26, 0x2c, 0x11, + 0x6d, 0x52, 0xb6, 0xc9, 0xa5, 0xfa, 0x7c, 0x8e, 0x7a, 0xd2, 0x9b, 0x79, 0x07, 0x56, 0x1c, 0xd6, + 0xa7, 0x01, 0x14, 0x2a, 0xeb, 0xd8, 0xc3, 0x9d, 0xde, 0x35, 0xd2, 0x37, 0xc0, 0x85, 0x4c, 0x54, + 0xea, 0xde, 0x02, 0xe3, 0xae, 0x88, 0x48, 0xc9, 0x99, 0x1c, 0xc9, 0xa8, 0x25, 0x2d, 0x27, 0x7b, + 0xf4, 0x39, 0xa0, 0x8a, 0xa1, 0x0f, 0xc8, 0x6e, 0x70, 0xbf, 0xb6, 0x11, 0x4a, 0xb1, 0x56, 0xef, + 0xf6, 0xe9, 0xab, 0x60, 0x36, 0x37, 0x2b, 0xa5, 0xcb, 0xe0, 0x3c, 0x23, 0xbb, 0x41, 0xb3, 0x5d, + 0x6b, 0xfa, 0x32, 0x27, 0x20, 0xfe, 0x6f, 0x4c, 0xb2, 0x4c, 0x47, 0x56, 0xc6, 0x3c, 0x55, 0xc6, + 0x1c, 0x2c, 0x63, 0xe6, 0xcb, 0xc4, 0x1d, 0xe6, 0xbb, 0xb3, 0xe0, 0x8c, 0x98, 0x04, 0xdf, 0x28, + 0x00, 0x24, 0x36, 0x81, 0x2b, 0x39, 0x4b, 0xc9, 0x77, 0xab, 0x5a, 0x19, 0xa5, 0x34, 0x22, 0xd3, + 0x2b, 0xaf, 0xc3, 0x65, 0xbe, 0xfa, 0xf6, 0xeb, 0xed, 0xd8, 0x02, 0x9c, 0x47, 0xfd, 0x3f, 0x10, + 0x29, 0x63, 0xbd, 0x57, 0x40, 0x31, 0x1e, 0x01, 0xcb, 0x43, 0x55, 0x7a, 0x3c, 0x2b, 0x23, 0x54, + 0x4a, 0x9c, 0x9b, 0x09, 0x0e, 0x82, 0xd5, 0xd3, 0x70, 0xd0, 0xf3, 0xac, 0x05, 0x5f, 0xc0, 0x7d, + 0x05, 0x80, 0xe4, 0x66, 0x0e, 0x5e, 0x58, 0x9f, 0x27, 0x06, 0x2f, 0xac, 0xdf, 0x24, 0xfa, 0xb5, + 0x84, 0x70, 0x11, 0x6a, 0x39, 0x84, 0x29, 0x0b, 0xc1, 0x97, 0x60, 0x3c, 0xba, 0xb8, 0x70, 0x69, + 0x90, 0x44, 0xc6, 0x21, 0xea, 0xf2, 0xb0, 0x32, 0x49, 0xb1, 0x9c, 0x50, 0xcc, 0xc2, 0x99, 0x1c, + 0x8a, 0xc8, 0x1c, 0xf0, 0x83, 0x02, 0x26, 0xb3, 0x57, 0x1f, 0x56, 0x07, 0x49, 0xe4, 0x1a, 0x48, + 0x35, 0x46, 0x2d, 0x97, 0x64, 0xd7, 0x13, 0xb2, 0x25, 0x78, 0x25, 0x87, 0xec, 0xa4, 0xdf, 0x12, + 0x46, 0x73, 0x44, 0x46, 0xf3, 0xef, 0x18, 0xcd, 0x7f, 0x65, 0x4c, 0xcc, 0x5a, 0x5f, 0x3d, 0x38, + 0xd2, 0x94, 0xc3, 0x23, 0x4d, 0xf9, 0x79, 0xa4, 0x29, 0xfb, 0xc7, 0x5a, 0xe1, 0xf0, 0x58, 0x2b, + 0x7c, 0x3f, 0xd6, 0x0a, 0x4f, 0xab, 0x0e, 0x0d, 0xb6, 0x76, 0x2c, 0xa3, 0xc5, 0x3b, 0x28, 0x1c, + 0x43, 0x71, 0xb5, 0x8d, 0x2d, 0x1f, 0x3d, 0x5c, 0x17, 0x43, 0x77, 0xe3, 0xb1, 0xe2, 0x4b, 0x6b, + 0x8d, 0x8b, 0x4f, 0xed, 0x8d, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x8e, 0x32, 0xcf, 0xc1, 0x68, + 0x08, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -471,6 +648,10 @@ type QueryClient interface { BridgeInfo(ctx context.Context, in *QueryBridgeInfoRequest, opts ...grpc.CallOption) (*QueryBridgeInfoResponse, error) // Parameters queries the rollup parameters. Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + // NextL1Sequence queries the next l1 sequence number. + NextL1Sequence(ctx context.Context, in *QueryNextL1SequenceRequest, opts ...grpc.CallOption) (*QueryNextL1SequenceResponse, error) + // NextL2Sequence queries the next l2 sequence number. + NextL2Sequence(ctx context.Context, in *QueryNextL2SequenceRequest, opts ...grpc.CallOption) (*QueryNextL2SequenceResponse, error) } type queryClient struct { @@ -517,6 +698,24 @@ func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts . return out, nil } +func (c *queryClient) NextL1Sequence(ctx context.Context, in *QueryNextL1SequenceRequest, opts ...grpc.CallOption) (*QueryNextL1SequenceResponse, error) { + out := new(QueryNextL1SequenceResponse) + err := c.cc.Invoke(ctx, "/opinit.opchild.v1.Query/NextL1Sequence", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) NextL2Sequence(ctx context.Context, in *QueryNextL2SequenceRequest, opts ...grpc.CallOption) (*QueryNextL2SequenceResponse, error) { + out := new(QueryNextL2SequenceResponse) + err := c.cc.Invoke(ctx, "/opinit.opchild.v1.Query/NextL2Sequence", 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 @@ -530,6 +729,10 @@ type QueryServer interface { BridgeInfo(context.Context, *QueryBridgeInfoRequest) (*QueryBridgeInfoResponse, error) // Parameters queries the rollup parameters. Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + // NextL1Sequence queries the next l1 sequence number. + NextL1Sequence(context.Context, *QueryNextL1SequenceRequest) (*QueryNextL1SequenceResponse, error) + // NextL2Sequence queries the next l2 sequence number. + NextL2Sequence(context.Context, *QueryNextL2SequenceRequest) (*QueryNextL2SequenceResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -548,6 +751,12 @@ func (*UnimplementedQueryServer) BridgeInfo(ctx context.Context, req *QueryBridg func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") } +func (*UnimplementedQueryServer) NextL1Sequence(ctx context.Context, req *QueryNextL1SequenceRequest) (*QueryNextL1SequenceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NextL1Sequence not implemented") +} +func (*UnimplementedQueryServer) NextL2Sequence(ctx context.Context, req *QueryNextL2SequenceRequest) (*QueryNextL2SequenceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NextL2Sequence not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -625,6 +834,42 @@ func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interf return interceptor(ctx, in, info, handler) } +func _Query_NextL1Sequence_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNextL1SequenceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).NextL1Sequence(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/opinit.opchild.v1.Query/NextL1Sequence", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).NextL1Sequence(ctx, req.(*QueryNextL1SequenceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_NextL2Sequence_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNextL2SequenceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).NextL2Sequence(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/opinit.opchild.v1.Query/NextL2Sequence", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).NextL2Sequence(ctx, req.(*QueryNextL2SequenceRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "opinit.opchild.v1.Query", HandlerType: (*QueryServer)(nil), @@ -645,6 +890,14 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "Params", Handler: _Query_Params_Handler, }, + { + MethodName: "NextL1Sequence", + Handler: _Query_NextL1Sequence_Handler, + }, + { + MethodName: "NextL2Sequence", + Handler: _Query_NextL2Sequence_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "opinit/opchild/v1/query.proto", @@ -909,6 +1162,108 @@ func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *QueryNextL1SequenceRequest) 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 *QueryNextL1SequenceRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNextL1SequenceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryNextL1SequenceResponse) 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 *QueryNextL1SequenceResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNextL1SequenceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NextL1Sequence != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.NextL1Sequence)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *QueryNextL2SequenceRequest) 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 *QueryNextL2SequenceRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNextL2SequenceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryNextL2SequenceResponse) 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 *QueryNextL2SequenceResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNextL2SequenceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NextL2Sequence != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.NextL2Sequence)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { offset -= sovQuery(v) base := offset @@ -1016,6 +1371,48 @@ func (m *QueryParamsResponse) Size() (n int) { return n } +func (m *QueryNextL1SequenceRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryNextL1SequenceResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NextL1Sequence != 0 { + n += 1 + sovQuery(uint64(m.NextL1Sequence)) + } + return n +} + +func (m *QueryNextL2SequenceRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryNextL2SequenceResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NextL2Sequence != 0 { + n += 1 + sovQuery(uint64(m.NextL2Sequence)) + } + return n +} + func sovQuery(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -1659,6 +2056,244 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryNextL1SequenceRequest) 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: QueryNextL1SequenceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNextL1SequenceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + 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 *QueryNextL1SequenceResponse) 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: QueryNextL1SequenceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNextL1SequenceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NextL1Sequence", wireType) + } + m.NextL1Sequence = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NextL1Sequence |= 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 *QueryNextL2SequenceRequest) 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: QueryNextL2SequenceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNextL2SequenceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + 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 *QueryNextL2SequenceResponse) 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: QueryNextL2SequenceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNextL2SequenceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NextL2Sequence", wireType) + } + m.NextL2Sequence = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NextL2Sequence |= 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 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 56e4186e..205708bc 100644 --- a/x/opchild/types/query.pb.gw.go +++ b/x/opchild/types/query.pb.gw.go @@ -159,6 +159,42 @@ func local_request_Query_Params_0(ctx context.Context, marshaler runtime.Marshal } +func request_Query_NextL1Sequence_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryNextL1SequenceRequest + var metadata runtime.ServerMetadata + + msg, err := client.NextL1Sequence(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_NextL1Sequence_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryNextL1SequenceRequest + var metadata runtime.ServerMetadata + + msg, err := server.NextL1Sequence(ctx, &protoReq) + return msg, metadata, err + +} + +func request_Query_NextL2Sequence_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryNextL2SequenceRequest + var metadata runtime.ServerMetadata + + msg, err := client.NextL2Sequence(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_NextL2Sequence_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryNextL2SequenceRequest + var metadata runtime.ServerMetadata + + msg, err := server.NextL2Sequence(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. @@ -257,6 +293,52 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) + mux.Handle("GET", pattern_Query_NextL1Sequence_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_NextL1Sequence_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_NextL1Sequence_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_NextL2Sequence_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_NextL2Sequence_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_NextL2Sequence_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -378,6 +460,46 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) + mux.Handle("GET", pattern_Query_NextL1Sequence_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_NextL1Sequence_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_NextL1Sequence_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_NextL2Sequence_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_NextL2Sequence_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_NextL2Sequence_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -389,6 +511,10 @@ var ( pattern_Query_BridgeInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"opinit", "opchild", "v1", "bridge_info"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"opinit", "opchild", "v1", "params"}, "", runtime.AssumeColonVerbOpt(false))) + + pattern_Query_NextL1Sequence_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"opinit", "opchild", "v1", "next_l1_sequence"}, "", runtime.AssumeColonVerbOpt(false))) + + 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))) ) var ( @@ -399,4 +525,8 @@ var ( forward_Query_BridgeInfo_0 = runtime.ForwardResponseMessage forward_Query_Params_0 = runtime.ForwardResponseMessage + + forward_Query_NextL1Sequence_0 = runtime.ForwardResponseMessage + + forward_Query_NextL2Sequence_0 = runtime.ForwardResponseMessage ) diff --git a/x/ophost/keeper/querier.go b/x/ophost/keeper/querier.go index 154f987d..0c77bb19 100644 --- a/x/ophost/keeper/querier.go +++ b/x/ophost/keeper/querier.go @@ -156,3 +156,14 @@ func (q Querier) Claimed(ctx context.Context, req *types.QueryClaimedRequest) (* Claimed: claimed, }, nil } + +func (q Querier) NextL1Sequence(ctx context.Context, req *types.QueryNextL1SequenceRequest) (*types.QueryNextL1SequenceResponse, error) { + sequence, err := q.GetNextL1Sequence(ctx, req.BridgeId) + if err != nil { + return nil, err + } + + return &types.QueryNextL1SequenceResponse{ + NextL1Sequence: sequence, + }, nil +} diff --git a/x/ophost/keeper/querier_test.go b/x/ophost/keeper/querier_test.go index 05576821..3b92e4ca 100644 --- a/x/ophost/keeper/querier_test.go +++ b/x/ophost/keeper/querier_test.go @@ -243,3 +243,17 @@ func Test_QueryClaimed(t *testing.T) { require.NoError(t, err) require.True(t, res.Claimed) } + +func Test_QueryNextL1Sequence(t *testing.T) { + ctx, input := createDefaultTestInput(t) + + // update the next L1 sequence + require.NoError(t, input.OPHostKeeper.NextL1Sequences.Set(ctx, 100, 100)) + + q := keeper.NewQuerier(input.OPHostKeeper) + res, err := q.NextL1Sequence(ctx, &types.QueryNextL1SequenceRequest{ + BridgeId: 100, + }) + require.NoError(t, err) + require.Equal(t, types.QueryNextL1SequenceResponse{NextL1Sequence: 100}, *res) +} diff --git a/x/ophost/types/query.pb.go b/x/ophost/types/query.pb.go index 1652c3bf..0cab9d23 100644 --- a/x/ophost/types/query.pb.go +++ b/x/ophost/types/query.pb.go @@ -1035,6 +1035,96 @@ func (m *QueryClaimedResponse) GetClaimed() bool { return false } +// QueryNextL1SequenceRequest is request type for the Query/NextL1Sequence RPC method. +type QueryNextL1SequenceRequest struct { + BridgeId uint64 `protobuf:"varint,1,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` +} + +func (m *QueryNextL1SequenceRequest) Reset() { *m = QueryNextL1SequenceRequest{} } +func (m *QueryNextL1SequenceRequest) String() string { return proto.CompactTextString(m) } +func (*QueryNextL1SequenceRequest) ProtoMessage() {} +func (*QueryNextL1SequenceRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_7dd525d30e46de74, []int{20} +} +func (m *QueryNextL1SequenceRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryNextL1SequenceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryNextL1SequenceRequest.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 *QueryNextL1SequenceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNextL1SequenceRequest.Merge(m, src) +} +func (m *QueryNextL1SequenceRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryNextL1SequenceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNextL1SequenceRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryNextL1SequenceRequest proto.InternalMessageInfo + +func (m *QueryNextL1SequenceRequest) GetBridgeId() uint64 { + if m != nil { + return m.BridgeId + } + return 0 +} + +// QueryNextL1SequenceResponse is response type for the Query/NextL1Sequence RPC method. +type QueryNextL1SequenceResponse struct { + NextL1Sequence uint64 `protobuf:"varint,1,opt,name=next_l1_sequence,json=nextL1Sequence,proto3" json:"next_l1_sequence,omitempty"` +} + +func (m *QueryNextL1SequenceResponse) Reset() { *m = QueryNextL1SequenceResponse{} } +func (m *QueryNextL1SequenceResponse) String() string { return proto.CompactTextString(m) } +func (*QueryNextL1SequenceResponse) ProtoMessage() {} +func (*QueryNextL1SequenceResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_7dd525d30e46de74, []int{21} +} +func (m *QueryNextL1SequenceResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryNextL1SequenceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryNextL1SequenceResponse.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 *QueryNextL1SequenceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNextL1SequenceResponse.Merge(m, src) +} +func (m *QueryNextL1SequenceResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryNextL1SequenceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNextL1SequenceResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryNextL1SequenceResponse proto.InternalMessageInfo + +func (m *QueryNextL1SequenceResponse) GetNextL1Sequence() uint64 { + if m != nil { + return m.NextL1Sequence + } + return 0 +} + func init() { proto.RegisterType((*QueryBridgeRequest)(nil), "opinit.ophost.v1.QueryBridgeRequest") proto.RegisterType((*QueryBridgeResponse)(nil), "opinit.ophost.v1.QueryBridgeResponse") @@ -1056,85 +1146,92 @@ func init() { proto.RegisterType((*QueryParamsResponse)(nil), "opinit.ophost.v1.QueryParamsResponse") proto.RegisterType((*QueryClaimedRequest)(nil), "opinit.ophost.v1.QueryClaimedRequest") proto.RegisterType((*QueryClaimedResponse)(nil), "opinit.ophost.v1.QueryClaimedResponse") + proto.RegisterType((*QueryNextL1SequenceRequest)(nil), "opinit.ophost.v1.QueryNextL1SequenceRequest") + proto.RegisterType((*QueryNextL1SequenceResponse)(nil), "opinit.ophost.v1.QueryNextL1SequenceResponse") } func init() { proto.RegisterFile("opinit/ophost/v1/query.proto", fileDescriptor_7dd525d30e46de74) } var fileDescriptor_7dd525d30e46de74 = []byte{ - // 1166 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcf, 0x6f, 0xdc, 0x44, - 0x14, 0xde, 0x49, 0x20, 0x3f, 0x66, 0xdb, 0xa4, 0x4c, 0x23, 0xd8, 0x6c, 0xa2, 0x4d, 0xb0, 0x48, - 0xb2, 0x54, 0x8d, 0xa7, 0xeb, 0x9e, 0x68, 0x68, 0x10, 0x5b, 0x48, 0x9b, 0x12, 0xc8, 0xb2, 0x70, - 0xa8, 0x00, 0x69, 0x35, 0xbb, 0x76, 0xbd, 0x16, 0xbb, 0x1e, 0xd7, 0xe3, 0x4d, 0x1b, 0x42, 0x24, - 0xc4, 0xa9, 0xdc, 0x90, 0xfa, 0x0f, 0x94, 0x03, 0x12, 0x12, 0x1c, 0x2a, 0xc4, 0x81, 0x0b, 0x47, - 0x50, 0x0f, 0x1c, 0x2a, 0xb8, 0x70, 0x42, 0x28, 0x41, 0x82, 0x3f, 0x03, 0xd9, 0x33, 0x5e, 0xdb, - 0x6b, 0xbb, 0xeb, 0x8d, 0xc2, 0x25, 0x8a, 0xdf, 0xcc, 0x7b, 0xef, 0xfb, 0xbe, 0x37, 0x9e, 0xcf, - 0x5a, 0xb8, 0x48, 0x2d, 0xc3, 0x34, 0x1c, 0x4c, 0xad, 0x36, 0x65, 0x0e, 0xde, 0xab, 0xe0, 0x3b, - 0x3d, 0xcd, 0xde, 0x97, 0x2d, 0x9b, 0x3a, 0x14, 0x9d, 0xe3, 0xab, 0x32, 0x5f, 0x95, 0xf7, 0x2a, - 0xc5, 0xe7, 0x48, 0xd7, 0x30, 0x29, 0xf6, 0xfe, 0xf2, 0x4d, 0xc5, 0x0b, 0x2d, 0xca, 0xba, 0x94, - 0xe1, 0x26, 0x61, 0x1a, 0xcf, 0xc6, 0x7b, 0x95, 0xa6, 0xe6, 0x90, 0x0a, 0xb6, 0x88, 0x6e, 0x98, - 0xc4, 0x31, 0xa8, 0x29, 0xf6, 0x2e, 0x88, 0xbd, 0xfe, 0xb6, 0x70, 0xb7, 0xe2, 0x3c, 0x5f, 0x6c, - 0x78, 0x4f, 0x98, 0x3f, 0x88, 0xa5, 0x39, 0x9d, 0xea, 0x94, 0xc7, 0xdd, 0xff, 0x44, 0x74, 0x51, - 0xa7, 0x54, 0xef, 0x68, 0x98, 0x58, 0x06, 0x26, 0xa6, 0x49, 0x1d, 0xaf, 0x95, 0x9f, 0x13, 0xa7, - 0xe6, 0xec, 0x5b, 0x9a, 0x58, 0x95, 0x36, 0x20, 0x7a, 0xd7, 0xed, 0x5d, 0xb5, 0x0d, 0x55, 0xd7, - 0xea, 0xda, 0x9d, 0x9e, 0xc6, 0x1c, 0xb4, 0x00, 0xa7, 0x9b, 0x5e, 0xa0, 0x61, 0xa8, 0x05, 0xb0, - 0x0c, 0xca, 0xcf, 0xd4, 0xa7, 0x78, 0x60, 0x5b, 0xbd, 0x32, 0x75, 0xff, 0xe1, 0x52, 0xee, 0xdf, - 0x87, 0x4b, 0x39, 0xe9, 0x27, 0x00, 0xcf, 0x47, 0xb2, 0x99, 0x45, 0x4d, 0xa6, 0x3d, 0x35, 0x1d, - 0xbd, 0x02, 0xf3, 0x62, 0x91, 0xa8, 0xaa, 0x5d, 0x18, 0x5b, 0x06, 0xe5, 0xe9, 0x6a, 0xe1, 0xb7, - 0x1f, 0xd6, 0xe7, 0x04, 0xd5, 0xd7, 0x55, 0xd5, 0xd6, 0x18, 0x7b, 0xcf, 0xb1, 0x0d, 0x53, 0xaf, - 0x43, 0xbe, 0xd9, 0x0d, 0xa2, 0x77, 0xe0, 0x59, 0x91, 0xda, 0xa2, 0xe6, 0x6d, 0x43, 0x2f, 0x8c, - 0x2f, 0x83, 0x72, 0x5e, 0x29, 0xc9, 0x83, 0xf3, 0x91, 0x39, 0xa0, 0x6b, 0xde, 0xae, 0xea, 0xf4, - 0xe3, 0x3f, 0x97, 0x72, 0xdf, 0xfc, 0xf3, 0xe8, 0x02, 0xa8, 0x9f, 0x69, 0x86, 0x16, 0x24, 0x3d, - 0x02, 0x9f, 0xf9, 0xec, 0xb7, 0x20, 0x0c, 0x26, 0xe6, 0xe1, 0xcf, 0x2b, 0xab, 0xb2, 0x40, 0xe7, - 0x8e, 0x57, 0xe6, 0xe3, 0x12, 0xe3, 0x95, 0x6b, 0xa4, 0xaf, 0x5c, 0x3d, 0x94, 0x19, 0x12, 0xea, - 0x5b, 0x00, 0xe7, 0xa2, 0x9d, 0x84, 0x52, 0x37, 0xe1, 0x24, 0x47, 0xc4, 0x0a, 0x60, 0x79, 0xbc, - 0x9c, 0x57, 0x56, 0xe2, 0x5c, 0x12, 0x14, 0x0e, 0x53, 0xf2, 0x0b, 0xa0, 0xeb, 0x11, 0xd8, 0x63, - 0x1e, 0xec, 0xb5, 0xa1, 0xb0, 0x79, 0xc1, 0x30, 0x6e, 0xe9, 0x16, 0x2c, 0x79, 0x3d, 0xdf, 0xa7, - 0x1f, 0x6b, 0x66, 0x8d, 0x18, 0x76, 0x75, 0x7f, 0xa7, 0xf2, 0x86, 0x66, 0xd2, 0x6e, 0x96, 0xf3, - 0x81, 0xe6, 0xe1, 0x54, 0xa7, 0xd2, 0x50, 0xdd, 0xfd, 0x7c, 0xba, 0xf5, 0xc9, 0x0e, 0x4f, 0x97, - 0xda, 0x70, 0x29, 0xb5, 0xb2, 0x50, 0xe4, 0x4d, 0x08, 0x1d, 0x77, 0xb5, 0x61, 0x11, 0xc3, 0x16, - 0xe2, 0x2f, 0xc4, 0x45, 0x09, 0x2a, 0x84, 0xa4, 0x98, 0x76, 0xfc, 0x68, 0x22, 0x07, 0x65, 0x34, - 0x0e, 0xca, 0x00, 0x07, 0x25, 0x9d, 0x83, 0xf2, 0xbf, 0x70, 0x38, 0x84, 0xcf, 0x47, 0x3b, 0xb1, - 0x4c, 0xd8, 0xb7, 0x12, 0xce, 0xc1, 0x09, 0x8e, 0xaf, 0x7b, 0x68, 0x5f, 0x88, 0xf5, 0x17, 0x0c, - 0xaf, 0xc3, 0x7c, 0xc0, 0xd0, 0x3f, 0xbb, 0x59, 0x29, 0xc2, 0x3e, 0xc5, 0x53, 0x3c, 0xb4, 0x9b, - 0x62, 0x2c, 0x3b, 0x84, 0x39, 0x5b, 0x86, 0x49, 0x3a, 0xc6, 0x27, 0x9a, 0xba, 0xdb, 0x73, 0xac, - 0x9e, 0x93, 0x45, 0x35, 0xe9, 0x01, 0x80, 0xcb, 0xe9, 0x05, 0x04, 0xed, 0x17, 0xe1, 0x19, 0xea, - 0x45, 0x1a, 0x86, 0xa9, 0x6a, 0xf7, 0x44, 0x91, 0x3c, 0x8f, 0x6d, 0xbb, 0x21, 0xb4, 0x03, 0x67, - 0xc5, 0x16, 0xcb, 0xa6, 0x16, 0x65, 0xa4, 0x23, 0x58, 0x15, 0xe2, 0xea, 0xf0, 0xea, 0x61, 0x69, - 0x66, 0x78, 0x6e, 0x4d, 0xa4, 0x4a, 0x1f, 0xc1, 0xa2, 0x07, 0x6a, 0x37, 0x12, 0xce, 0x74, 0x0c, - 0x06, 0xb1, 0x8e, 0xc5, 0xb0, 0xba, 0x13, 0x5e, 0x48, 0x2c, 0x9f, 0xe5, 0x1e, 0x1f, 0x5e, 0x3f, - 0x49, 0x8b, 0xf1, 0x93, 0x6b, 0xf1, 0x75, 0x32, 0x5a, 0x76, 0x4a, 0x6a, 0x0c, 0xbc, 0x37, 0xe3, - 0x27, 0x7e, 0x6f, 0x7e, 0x05, 0x70, 0x31, 0x19, 0xa7, 0x90, 0xb5, 0x05, 0xcf, 0x0d, 0xc8, 0xe2, - 0xbf, 0x41, 0xeb, 0x29, 0xb7, 0x7f, 0xf2, 0x7c, 0xc2, 0x62, 0xcd, 0x46, 0xc5, 0x3a, 0xc5, 0x17, - 0x6b, 0x4e, 0x7c, 0x21, 0xd4, 0x88, 0x4d, 0xba, 0xbe, 0xd8, 0x52, 0x5d, 0x58, 0xa7, 0x1f, 0x15, - 0xd4, 0x36, 0xe0, 0x84, 0xe5, 0x45, 0xc4, 0xad, 0x97, 0x30, 0x68, 0x9e, 0x11, 0xc6, 0x2e, 0x52, - 0xa4, 0x0f, 0x45, 0xcd, 0x6b, 0x1d, 0x62, 0x74, 0x35, 0x35, 0xd3, 0x5c, 0xd7, 0xe0, 0xec, 0x5d, - 0xc3, 0x69, 0xab, 0x36, 0xb9, 0x4b, 0x3a, 0x8d, 0x36, 0x61, 0x6d, 0x8f, 0xeb, 0x99, 0xfa, 0x4c, - 0x10, 0xbe, 0x41, 0x58, 0x5b, 0xba, 0x24, 0x1c, 0xb8, 0x5f, 0x5c, 0x20, 0x2e, 0xc0, 0xc9, 0x16, - 0x0f, 0x79, 0xb5, 0xa7, 0xea, 0xfe, 0xa3, 0xf2, 0xe8, 0x2c, 0x7c, 0xd6, 0x4b, 0x41, 0x5f, 0x00, - 0x38, 0xc1, 0x0d, 0x18, 0xbd, 0x34, 0xc4, 0x9f, 0x3d, 0xc8, 0xc5, 0x6c, 0x2e, 0x2e, 0x29, 0xf7, - 0x5d, 0xfe, 0x9f, 0xff, 0xfe, 0xf7, 0x83, 0xb1, 0x35, 0xb4, 0x82, 0x63, 0x1f, 0x6a, 0xc2, 0xd9, - 0xf1, 0x41, 0x9f, 0xff, 0x21, 0xfa, 0x0c, 0xc0, 0x49, 0xf1, 0x15, 0x81, 0x9e, 0xde, 0xc6, 0x9f, - 0x55, 0x71, 0x75, 0xd8, 0x36, 0x01, 0x67, 0x35, 0x80, 0xb3, 0x80, 0xe6, 0x53, 0xe1, 0xa0, 0x9f, - 0x01, 0x44, 0x71, 0x07, 0x47, 0x97, 0x52, 0xda, 0xa4, 0x7e, 0x46, 0x14, 0x2b, 0x23, 0x64, 0x08, - 0x8c, 0x37, 0x03, 0x8c, 0xaf, 0xa1, 0xab, 0x99, 0x24, 0xc3, 0x21, 0xa7, 0xc2, 0xcd, 0xfd, 0x86, - 0xff, 0x71, 0x12, 0xe3, 0xa1, 0x64, 0xe7, 0xa1, 0x8c, 0xcc, 0x43, 0x39, 0x7d, 0x1e, 0xe2, 0x03, - 0x05, 0x7d, 0x05, 0x20, 0x0c, 0x3c, 0x1a, 0x95, 0x87, 0xa1, 0xe9, 0x1f, 0x8c, 0x97, 0x33, 0xec, - 0x14, 0x78, 0x37, 0x03, 0xbc, 0x97, 0x51, 0x65, 0x64, 0xbc, 0xe8, 0x17, 0x00, 0xcf, 0x27, 0x38, - 0x2b, 0x4a, 0x93, 0x2e, 0xdd, 0xc6, 0x8b, 0xca, 0x28, 0x29, 0x02, 0xfe, 0x8d, 0x00, 0xfe, 0x55, - 0xb4, 0x91, 0x0d, 0x7e, 0x87, 0x30, 0xa7, 0x71, 0xdb, 0x2f, 0xd8, 0xe0, 0x17, 0x2c, 0xfa, 0x11, - 0xc0, 0x99, 0xe8, 0x75, 0x8c, 0x2e, 0x66, 0xbc, 0xb5, 0x39, 0xfc, 0xd1, 0xee, 0x78, 0x69, 0x3b, - 0x40, 0xbe, 0x89, 0x5e, 0xcd, 0x86, 0x9c, 0x43, 0x65, 0xf8, 0x20, 0x6c, 0x79, 0x87, 0xe8, 0x3b, - 0x00, 0x67, 0x07, 0x3c, 0x09, 0x65, 0x43, 0xd3, 0x3f, 0x31, 0x72, 0xd6, 0xed, 0x02, 0xfd, 0x95, - 0x00, 0x3d, 0x46, 0xeb, 0x23, 0xa1, 0x47, 0x9f, 0xc2, 0x09, 0xee, 0x15, 0xa9, 0x97, 0x6e, 0xc4, - 0x92, 0x52, 0x2f, 0xdd, 0xa8, 0x45, 0x49, 0x2b, 0x01, 0xa4, 0x22, 0x2a, 0xc4, 0x21, 0x71, 0x33, - 0x42, 0xdf, 0x03, 0x38, 0x29, 0xbc, 0x22, 0xf5, 0x9e, 0x8d, 0x1a, 0x55, 0xea, 0x3d, 0x3b, 0x60, - 0x39, 0xd2, 0xad, 0x00, 0xc1, 0xdb, 0xe8, 0xad, 0x6c, 0xa2, 0x04, 0x6e, 0xc6, 0xf0, 0xc1, 0x80, - 0xe3, 0x1d, 0x62, 0x61, 0x59, 0xd5, 0xad, 0xc7, 0x47, 0x25, 0xf0, 0xe4, 0xa8, 0x04, 0xfe, 0x3a, - 0x2a, 0x81, 0x2f, 0x8f, 0x4b, 0xb9, 0x27, 0xc7, 0xa5, 0xdc, 0x1f, 0xc7, 0xa5, 0xdc, 0x07, 0x17, - 0x75, 0xc3, 0x69, 0xf7, 0x9a, 0x72, 0x8b, 0x76, 0xb1, 0xdb, 0xce, 0x20, 0xeb, 0x1d, 0xd2, 0x64, - 0x78, 0xb7, 0xe6, 0x35, 0xbf, 0xe7, 0xb7, 0xf7, 0x7e, 0x1b, 0x68, 0x4e, 0x78, 0x3f, 0x0e, 0x5c, - 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x3d, 0xf1, 0xe0, 0x9d, 0x17, 0x11, 0x00, 0x00, + // 1238 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xf6, 0x24, 0x90, 0x1f, 0xe3, 0xe2, 0x84, 0x69, 0x04, 0x8e, 0x13, 0x39, 0x61, 0x45, 0x12, + 0x53, 0x35, 0xde, 0x7a, 0x2b, 0x21, 0xda, 0xd0, 0x20, 0x12, 0x48, 0x9a, 0x12, 0x9a, 0xe0, 0x72, + 0xa8, 0x00, 0x69, 0x35, 0xf6, 0x6e, 0xed, 0x15, 0xf6, 0xce, 0x76, 0x67, 0x93, 0x26, 0x84, 0x48, + 0x88, 0x53, 0xb9, 0x21, 0xf5, 0x1f, 0x28, 0x07, 0x24, 0x24, 0x38, 0x20, 0xc4, 0x81, 0x0b, 0x47, + 0x50, 0x0f, 0x1c, 0x2a, 0xb8, 0x70, 0x42, 0x28, 0x01, 0xc1, 0x9f, 0x81, 0x76, 0xe7, 0xad, 0x77, + 0xd7, 0xde, 0x6d, 0xd6, 0x51, 0xb8, 0x54, 0xf5, 0x9b, 0x79, 0xef, 0x7d, 0xdf, 0x7b, 0x6f, 0xe7, + 0x7b, 0x0a, 0x9e, 0x66, 0x96, 0x61, 0x1a, 0x8e, 0xcc, 0xac, 0x26, 0xe3, 0x8e, 0xbc, 0x5b, 0x91, + 0xef, 0xee, 0xe8, 0xf6, 0x7e, 0xd9, 0xb2, 0x99, 0xc3, 0xc8, 0xb8, 0x38, 0x2d, 0x8b, 0xd3, 0xf2, + 0x6e, 0xa5, 0xf0, 0x2c, 0x6d, 0x1b, 0x26, 0x93, 0xbd, 0x7f, 0xc5, 0xa5, 0xc2, 0x85, 0x3a, 0xe3, + 0x6d, 0xc6, 0xe5, 0x1a, 0xe5, 0xba, 0xf0, 0x96, 0x77, 0x2b, 0x35, 0xdd, 0xa1, 0x15, 0xd9, 0xa2, + 0x0d, 0xc3, 0xa4, 0x8e, 0xc1, 0x4c, 0xb8, 0x3b, 0x05, 0x77, 0xfd, 0x6b, 0xe1, 0x6c, 0x85, 0x49, + 0x71, 0xa8, 0x7a, 0xbf, 0x64, 0xf1, 0x03, 0x8e, 0x26, 0x1a, 0xac, 0xc1, 0x84, 0xdd, 0xfd, 0x1f, + 0x58, 0xa7, 0x1b, 0x8c, 0x35, 0x5a, 0xba, 0x4c, 0x2d, 0x43, 0xa6, 0xa6, 0xc9, 0x1c, 0x2f, 0x95, + 0xef, 0xd3, 0x4b, 0xcd, 0xd9, 0xb7, 0x74, 0x38, 0x95, 0x96, 0x30, 0x79, 0xc7, 0xcd, 0xbd, 0x62, + 0x1b, 0x5a, 0x43, 0xaf, 0xea, 0x77, 0x77, 0x74, 0xee, 0x90, 0x29, 0x3c, 0x5a, 0xf3, 0x0c, 0xaa, + 0xa1, 0xe5, 0xd1, 0x2c, 0x2a, 0x3d, 0x55, 0x1d, 0x11, 0x86, 0x0d, 0xed, 0xea, 0xc8, 0xfd, 0x87, + 0x33, 0x99, 0x7f, 0x1f, 0xce, 0x64, 0xa4, 0x1f, 0x11, 0x3e, 0x1f, 0xf1, 0xe6, 0x16, 0x33, 0xb9, + 0xfe, 0x44, 0x77, 0x72, 0x05, 0x67, 0xe1, 0x90, 0x6a, 0x9a, 0x9d, 0x1f, 0x98, 0x45, 0xa5, 0xd1, + 0x95, 0xfc, 0xaf, 0xdf, 0x2f, 0x4e, 0x00, 0xd5, 0xd7, 0x35, 0xcd, 0xd6, 0x39, 0xbf, 0xe5, 0xd8, + 0x86, 0xd9, 0xa8, 0x62, 0x71, 0xd9, 0x35, 0x92, 0x9b, 0xf8, 0x19, 0x70, 0xad, 0x33, 0xf3, 0x8e, + 0xd1, 0xc8, 0x0f, 0xce, 0xa2, 0x52, 0x56, 0x29, 0x96, 0xbb, 0xfb, 0x53, 0x16, 0x80, 0x56, 0xbd, + 0x5b, 0x2b, 0xa3, 0x8f, 0xfe, 0x98, 0xc9, 0x7c, 0xf5, 0xcf, 0xb7, 0x17, 0x50, 0xf5, 0x5c, 0x2d, + 0x74, 0x20, 0x35, 0x22, 0xf0, 0xb9, 0xcf, 0x7e, 0x0d, 0xe3, 0xa0, 0x63, 0x1e, 0xfe, 0xac, 0x32, + 0x5f, 0x06, 0x74, 0x6e, 0x7b, 0xcb, 0xa2, 0x5d, 0xd0, 0xde, 0xf2, 0x36, 0xed, 0x54, 0xae, 0x1a, + 0xf2, 0x0c, 0x15, 0xea, 0x6b, 0x84, 0x27, 0xa2, 0x99, 0xa0, 0x52, 0x37, 0xf0, 0xb0, 0x40, 0xc4, + 0xf3, 0x68, 0x76, 0xb0, 0x94, 0x55, 0xe6, 0x7a, 0xb9, 0xc4, 0x54, 0x38, 0x4c, 0xc9, 0x0f, 0x40, + 0xd6, 0x23, 0xb0, 0x07, 0x3c, 0xd8, 0x0b, 0x27, 0xc2, 0x16, 0x01, 0xc3, 0xb8, 0xa5, 0xdb, 0xb8, + 0xe8, 0xe5, 0x7c, 0x97, 0x7d, 0xa8, 0x9b, 0xdb, 0xd4, 0xb0, 0x57, 0xf6, 0x37, 0x2b, 0x6f, 0xe8, + 0x26, 0x6b, 0xa7, 0x99, 0x0f, 0x32, 0x89, 0x47, 0x5a, 0x15, 0x55, 0x73, 0xef, 0x8b, 0xee, 0x56, + 0x87, 0x5b, 0xc2, 0x5d, 0x6a, 0xe2, 0x99, 0xc4, 0xc8, 0x50, 0x91, 0x37, 0x31, 0x76, 0xdc, 0x53, + 0xd5, 0xa2, 0x86, 0x0d, 0xc5, 0x9f, 0xea, 0x2d, 0x4a, 0x10, 0x21, 0x54, 0x8a, 0x51, 0xc7, 0xb7, + 0xc6, 0x72, 0x50, 0xfa, 0xe3, 0xa0, 0x74, 0x71, 0x50, 0x92, 0x39, 0x28, 0xff, 0x0b, 0x87, 0x43, + 0xfc, 0x5c, 0x34, 0x13, 0x4f, 0x85, 0x7d, 0x2d, 0x66, 0x0e, 0x4e, 0x31, 0xbe, 0xee, 0xd0, 0x3e, + 0xdf, 0x93, 0x1f, 0x18, 0xae, 0xe3, 0x6c, 0xc0, 0xd0, 0x9f, 0xdd, 0xb4, 0x14, 0x71, 0x87, 0xe2, + 0x19, 0x0e, 0xed, 0x32, 0xb4, 0x65, 0x93, 0x72, 0x67, 0xcd, 0x30, 0x69, 0xcb, 0xf8, 0x48, 0xd7, + 0xb6, 0x76, 0x1c, 0x6b, 0xc7, 0x49, 0x53, 0x35, 0xe9, 0x01, 0xc2, 0xb3, 0xc9, 0x01, 0x80, 0xf6, + 0x0b, 0xf8, 0x1c, 0xf3, 0x2c, 0xaa, 0x61, 0x6a, 0xfa, 0x1e, 0x04, 0xc9, 0x0a, 0xdb, 0x86, 0x6b, + 0x22, 0x9b, 0x78, 0x0c, 0xae, 0x58, 0x36, 0xb3, 0x18, 0xa7, 0x2d, 0x60, 0x95, 0xef, 0xad, 0x8e, + 0x88, 0x1e, 0x2e, 0x4d, 0x4e, 0xf8, 0x6e, 0x83, 0xab, 0xf4, 0x01, 0x2e, 0x78, 0xa0, 0xb6, 0x22, + 0xe6, 0x54, 0x63, 0xd0, 0x8d, 0x75, 0xa0, 0x07, 0xab, 0xdb, 0xe1, 0xa9, 0xd8, 0xf0, 0x69, 0xde, + 0xf1, 0x93, 0xe3, 0xc7, 0xd5, 0x62, 0xf0, 0xf4, 0xb5, 0xf8, 0x32, 0x1e, 0x2d, 0x3f, 0xa3, 0x6a, + 0x74, 0x7d, 0x37, 0x83, 0xa7, 0xfe, 0x6e, 0x7e, 0x41, 0x78, 0x3a, 0x1e, 0x27, 0x94, 0xb5, 0x8e, + 0xc7, 0xbb, 0xca, 0xe2, 0x7f, 0x41, 0x8b, 0x09, 0xaf, 0x7f, 0x7c, 0x7f, 0xc2, 0xc5, 0x1a, 0x8b, + 0x16, 0xeb, 0x0c, 0x3f, 0xac, 0x09, 0xd8, 0x10, 0xb6, 0xa9, 0x4d, 0xdb, 0x7e, 0xb1, 0xa5, 0x2a, + 0x48, 0xa7, 0x6f, 0x05, 0x6a, 0x4b, 0x78, 0xc8, 0xf2, 0x2c, 0xf0, 0xea, 0xc5, 0x34, 0x5a, 0x78, + 0x84, 0xb1, 0x83, 0x8b, 0xf4, 0x3e, 0xc4, 0x5c, 0x6d, 0x51, 0xa3, 0xad, 0x6b, 0xa9, 0xfa, 0xba, + 0x80, 0xc7, 0xee, 0x19, 0x4e, 0x53, 0xb3, 0xe9, 0x3d, 0xda, 0x52, 0x9b, 0x94, 0x37, 0x3d, 0xae, + 0xe7, 0xaa, 0xb9, 0xc0, 0x7c, 0x9d, 0xf2, 0xa6, 0x74, 0x09, 0x14, 0xb8, 0x13, 0x1c, 0x10, 0xe7, + 0xf1, 0x70, 0x5d, 0x98, 0xbc, 0xd8, 0x23, 0x55, 0xff, 0xa7, 0x74, 0x05, 0xbe, 0xbd, 0x9b, 0xfa, + 0x9e, 0xb3, 0x59, 0xb9, 0xe5, 0xa2, 0x31, 0xeb, 0xa9, 0x56, 0x24, 0x69, 0x1d, 0x26, 0xb5, 0xdb, + 0x15, 0x72, 0x96, 0xf0, 0xb8, 0xa9, 0xef, 0x39, 0x6a, 0xab, 0xa2, 0x72, 0x38, 0x83, 0x10, 0x39, + 0x33, 0xe2, 0xa1, 0xfc, 0x9d, 0xc3, 0x4f, 0x7b, 0x91, 0xc8, 0x67, 0x08, 0x0f, 0x89, 0x25, 0x80, + 0xbc, 0x78, 0xc2, 0x8e, 0xe0, 0x01, 0x2c, 0xa4, 0xdb, 0x24, 0x24, 0xe5, 0xbe, 0xdb, 0x83, 0x4f, + 0x7f, 0xfb, 0xeb, 0xc1, 0xc0, 0x02, 0x99, 0x93, 0x7b, 0x96, 0x45, 0xd8, 0x2e, 0xe4, 0x83, 0x0e, + 0xdb, 0x43, 0xf2, 0x09, 0xc2, 0xc3, 0xb0, 0xc9, 0x90, 0x27, 0xa7, 0xf1, 0xe7, 0xa5, 0x30, 0x7f, + 0xd2, 0x35, 0x80, 0x33, 0x1f, 0xc0, 0x99, 0x22, 0x93, 0x89, 0x70, 0xc8, 0x4f, 0x08, 0x93, 0xde, + 0x2d, 0x82, 0x5c, 0x4a, 0x48, 0x93, 0xb8, 0xca, 0x14, 0x2a, 0x7d, 0x78, 0x00, 0xc6, 0x1b, 0x01, + 0xc6, 0xd7, 0xc8, 0xb5, 0x54, 0x25, 0x93, 0x43, 0x6a, 0x29, 0xd7, 0xf6, 0x55, 0x7f, 0x41, 0xea, + 0xe1, 0xa1, 0xa4, 0xe7, 0xa1, 0xf4, 0xcd, 0x43, 0x39, 0x7b, 0x1e, 0xb0, 0x24, 0x91, 0x2f, 0x10, + 0xc6, 0xc1, 0x9e, 0x40, 0x4a, 0x27, 0xa1, 0xe9, 0x0c, 0xc6, 0x4b, 0x29, 0x6e, 0x02, 0xde, 0xe5, + 0x00, 0xef, 0x65, 0x52, 0xe9, 0x1b, 0x2f, 0xf9, 0x19, 0xe1, 0xf3, 0x31, 0xea, 0x4e, 0x92, 0x4a, + 0x97, 0xbc, 0x4a, 0x14, 0x94, 0x7e, 0x5c, 0x00, 0xfe, 0xf5, 0x00, 0xfe, 0x35, 0xb2, 0x94, 0x0e, + 0x7e, 0x8b, 0x72, 0x47, 0xbd, 0xe3, 0x07, 0x54, 0xc5, 0x23, 0x4f, 0x7e, 0x40, 0x38, 0x17, 0x95, + 0x04, 0x72, 0x31, 0xa5, 0x72, 0x08, 0xf8, 0xfd, 0xe9, 0x8c, 0xb4, 0x11, 0x20, 0x5f, 0x26, 0xaf, + 0xa6, 0x43, 0x2e, 0xa0, 0x72, 0xf9, 0x20, 0x2c, 0xbb, 0x87, 0xe4, 0x1b, 0x84, 0xc7, 0xba, 0x74, + 0x91, 0xa4, 0x43, 0xd3, 0x99, 0x98, 0x72, 0xda, 0xeb, 0x80, 0xfe, 0x6a, 0x80, 0x5e, 0x26, 0x8b, + 0x7d, 0xa1, 0x27, 0x1f, 0xe3, 0x21, 0xa1, 0x57, 0x89, 0x8f, 0x6e, 0x44, 0x16, 0x13, 0x1f, 0xdd, + 0xa8, 0x4c, 0x4a, 0x73, 0x01, 0xa4, 0x02, 0xc9, 0xf7, 0x42, 0x12, 0x82, 0x48, 0xbe, 0x43, 0x78, + 0x18, 0xf4, 0x2a, 0xf1, 0x9d, 0x8d, 0x8a, 0x65, 0xe2, 0x3b, 0xdb, 0x25, 0x7b, 0xd2, 0xed, 0x00, + 0xc1, 0xdb, 0xe4, 0xad, 0x74, 0x45, 0x09, 0x14, 0x95, 0xcb, 0x07, 0x5d, 0xaa, 0x7b, 0x28, 0x83, + 0x6c, 0xba, 0xa0, 0x73, 0x51, 0xdd, 0x4b, 0x1c, 0xce, 0x58, 0x65, 0x4d, 0x1c, 0xce, 0x78, 0x31, + 0x95, 0x56, 0x03, 0x26, 0xaf, 0x90, 0x97, 0xd3, 0x31, 0xe9, 0x56, 0xdf, 0x95, 0xb5, 0x47, 0x47, + 0x45, 0xf4, 0xf8, 0xa8, 0x88, 0xfe, 0x3c, 0x2a, 0xa2, 0xcf, 0x8f, 0x8b, 0x99, 0xc7, 0xc7, 0xc5, + 0xcc, 0xef, 0xc7, 0xc5, 0xcc, 0x7b, 0x17, 0x1b, 0x86, 0xd3, 0xdc, 0xa9, 0x95, 0xeb, 0xac, 0x2d, + 0xbb, 0x91, 0x0d, 0xba, 0xd8, 0xa2, 0x35, 0x2e, 0x6f, 0x6d, 0x7b, 0x79, 0xf6, 0xfc, 0x4c, 0xde, + 0x1f, 0x55, 0x6a, 0x43, 0xde, 0x5f, 0x55, 0x2e, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x39, 0x98, + 0x0c, 0x4d, 0x50, 0x12, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1168,6 +1265,8 @@ type QueryClient interface { Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) // Claimed queries whether the output is claimed. Claimed(ctx context.Context, in *QueryClaimedRequest, opts ...grpc.CallOption) (*QueryClaimedResponse, error) + // NextL1Sequence queries the next l1 sequence. + NextL1Sequence(ctx context.Context, in *QueryNextL1SequenceRequest, opts ...grpc.CallOption) (*QueryNextL1SequenceResponse, error) } type queryClient struct { @@ -1268,6 +1367,15 @@ func (c *queryClient) Claimed(ctx context.Context, in *QueryClaimedRequest, opts return out, nil } +func (c *queryClient) NextL1Sequence(ctx context.Context, in *QueryNextL1SequenceRequest, opts ...grpc.CallOption) (*QueryNextL1SequenceResponse, error) { + out := new(QueryNextL1SequenceResponse) + err := c.cc.Invoke(ctx, "/opinit.ophost.v1.Query/NextL1Sequence", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. type QueryServer interface { // Bridge queries bridge info. @@ -1289,6 +1397,8 @@ type QueryServer interface { Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) // Claimed queries whether the output is claimed. Claimed(context.Context, *QueryClaimedRequest) (*QueryClaimedResponse, error) + // NextL1Sequence queries the next l1 sequence. + NextL1Sequence(context.Context, *QueryNextL1SequenceRequest) (*QueryNextL1SequenceResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -1325,6 +1435,9 @@ func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsReq func (*UnimplementedQueryServer) Claimed(ctx context.Context, req *QueryClaimedRequest) (*QueryClaimedResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Claimed not implemented") } +func (*UnimplementedQueryServer) NextL1Sequence(ctx context.Context, req *QueryNextL1SequenceRequest) (*QueryNextL1SequenceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NextL1Sequence not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -1510,6 +1623,24 @@ func _Query_Claimed_Handler(srv interface{}, ctx context.Context, dec func(inter return interceptor(ctx, in, info, handler) } +func _Query_NextL1Sequence_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNextL1SequenceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).NextL1Sequence(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/opinit.ophost.v1.Query/NextL1Sequence", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).NextL1Sequence(ctx, req.(*QueryNextL1SequenceRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "opinit.ophost.v1.Query", HandlerType: (*QueryServer)(nil), @@ -1554,6 +1685,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "Claimed", Handler: _Query_Claimed_Handler, }, + { + MethodName: "NextL1Sequence", + Handler: _Query_NextL1Sequence_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "opinit/ophost/v1/query.proto", @@ -2301,6 +2436,62 @@ func (m *QueryClaimedResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *QueryNextL1SequenceRequest) 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 *QueryNextL1SequenceRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNextL1SequenceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.BridgeId != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.BridgeId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *QueryNextL1SequenceResponse) 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 *QueryNextL1SequenceResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNextL1SequenceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NextL1Sequence != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.NextL1Sequence)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { offset -= sovQuery(v) base := offset @@ -2607,6 +2798,30 @@ func (m *QueryClaimedResponse) Size() (n int) { return n } +func (m *QueryNextL1SequenceRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.BridgeId != 0 { + n += 1 + sovQuery(uint64(m.BridgeId)) + } + return n +} + +func (m *QueryNextL1SequenceResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NextL1Sequence != 0 { + n += 1 + sovQuery(uint64(m.NextL1Sequence)) + } + return n +} + func sovQuery(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -4545,6 +4760,144 @@ func (m *QueryClaimedResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryNextL1SequenceRequest) 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: QueryNextL1SequenceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNextL1SequenceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BridgeId |= 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 *QueryNextL1SequenceResponse) 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: QueryNextL1SequenceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNextL1SequenceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NextL1Sequence", wireType) + } + m.NextL1Sequence = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NextL1Sequence |= 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 skipQuery(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/ophost/types/query.pb.gw.go b/x/ophost/types/query.pb.gw.go index e9d8e0f5..6b8ee199 100644 --- a/x/ophost/types/query.pb.gw.go +++ b/x/ophost/types/query.pb.gw.go @@ -635,6 +635,60 @@ func local_request_Query_Claimed_0(ctx context.Context, marshaler runtime.Marsha } +func request_Query_NextL1Sequence_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryNextL1SequenceRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["bridge_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "bridge_id") + } + + protoReq.BridgeId, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "bridge_id", err) + } + + msg, err := client.NextL1Sequence(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_NextL1Sequence_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryNextL1SequenceRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["bridge_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "bridge_id") + } + + protoReq.BridgeId, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "bridge_id", err) + } + + msg, err := server.NextL1Sequence(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. @@ -871,6 +925,29 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) + mux.Handle("GET", pattern_Query_NextL1Sequence_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_NextL1Sequence_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_NextL1Sequence_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -1112,6 +1189,26 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) + mux.Handle("GET", pattern_Query_NextL1Sequence_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_NextL1Sequence_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_NextL1Sequence_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -1135,6 +1232,8 @@ var ( pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"opinit", "ophost", "v1", "params"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_Claimed_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7}, []string{"opinit", "ophost", "v1", "bridges", "bridge_id", "withdrawals", "withdrawal_hash", "claimed"}, "", runtime.AssumeColonVerbOpt(false))) + + pattern_Query_NextL1Sequence_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", "ophost", "v1", "bridges", "bridge_id", "next_l1_sequence"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( @@ -1157,4 +1256,6 @@ var ( forward_Query_Params_0 = runtime.ForwardResponseMessage forward_Query_Claimed_0 = runtime.ForwardResponseMessage + + forward_Query_NextL1Sequence_0 = runtime.ForwardResponseMessage ) From 4c5c5ea3e2c9e9395f6bd1c4510254b743899880 Mon Sep 17 00:00:00 2001 From: beer-1 <147697694+beer-1@users.noreply.github.com> Date: Tue, 9 Jul 2024 12:49:02 +0900 Subject: [PATCH 6/7] add missing genesis for pending deposits --- api/opinit/opchild/v1/genesis.pulsar.go | 330 ++++-- api/opinit/opchild/v1/types.pulsar.go | 1237 ++++++++++++++++++++++- api/opinit/ophost/v1/query.pulsar.go | 390 +++---- api/opinit/ophost/v1/query_grpc.pb.go | 2 + proto/opinit/opchild/v1/types.proto | 14 +- x/opchild/keeper/genesis.go | 30 + x/opchild/keeper/genesis_test.go | 9 +- x/opchild/keeper/keeper.go | 4 +- x/opchild/keeper/msg_server.go | 12 +- x/opchild/keeper/msg_server_test.go | 2 +- x/opchild/types/types.pb.go | 398 ++++++-- x/ophost/types/query.pb.go | 189 ++-- 12 files changed, 2082 insertions(+), 535 deletions(-) diff --git a/api/opinit/opchild/v1/genesis.pulsar.go b/api/opinit/opchild/v1/genesis.pulsar.go index 393732a1..943b7463 100644 --- a/api/opinit/opchild/v1/genesis.pulsar.go +++ b/api/opinit/opchild/v1/genesis.pulsar.go @@ -117,15 +117,67 @@ 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 ( md_GenesisState protoreflect.MessageDescriptor fd_GenesisState_params protoreflect.FieldDescriptor fd_GenesisState_last_validator_powers protoreflect.FieldDescriptor fd_GenesisState_validators protoreflect.FieldDescriptor - fd_GenesisState_exported protoreflect.FieldDescriptor + fd_GenesisState_pending_deposits 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() { @@ -134,10 +186,11 @@ 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_exported = md_GenesisState.Fields().ByName("exported") + fd_GenesisState_pending_deposits = md_GenesisState.Fields().ByName("pending_deposits") 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") + fd_GenesisState_exported = md_GenesisState.Fields().ByName("exported") } var _ protoreflect.Message = (*fastReflection_GenesisState)(nil) @@ -223,9 +276,9 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, return } } - if x.Exported != false { - value := protoreflect.ValueOfBool(x.Exported) - if !f(fd_GenesisState_exported, value) { + if len(x.PendingDeposits) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_4_list{list: &x.PendingDeposits}) + if !f(fd_GenesisState_pending_deposits, value) { return } } @@ -247,6 +300,12 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, return } } + if x.Exported != false { + value := protoreflect.ValueOfBool(x.Exported) + if !f(fd_GenesisState_exported, value) { + return + } + } } // Has reports whether a field is populated. @@ -268,14 +327,16 @@ 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.exported": - return x.Exported != false + case "opinit.opchild.v1.GenesisState.pending_deposits": + return len(x.PendingDeposits) != 0 case "opinit.opchild.v1.GenesisState.next_l2_sequence": return x.NextL2Sequence != uint64(0) case "opinit.opchild.v1.GenesisState.next_l1_sequence": return x.NextL1Sequence != uint64(0) case "opinit.opchild.v1.GenesisState.bridge_info": return x.BridgeInfo != nil + case "opinit.opchild.v1.GenesisState.exported": + return x.Exported != false default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.GenesisState")) @@ -298,14 +359,16 @@ 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.exported": - x.Exported = false + case "opinit.opchild.v1.GenesisState.pending_deposits": + x.PendingDeposits = nil case "opinit.opchild.v1.GenesisState.next_l2_sequence": x.NextL2Sequence = uint64(0) case "opinit.opchild.v1.GenesisState.next_l1_sequence": x.NextL1Sequence = uint64(0) case "opinit.opchild.v1.GenesisState.bridge_info": x.BridgeInfo = nil + case "opinit.opchild.v1.GenesisState.exported": + x.Exported = false default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.GenesisState")) @@ -337,9 +400,12 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto } listValue := &_GenesisState_3_list{list: &x.Validators} return protoreflect.ValueOfList(listValue) - case "opinit.opchild.v1.GenesisState.exported": - value := x.Exported - return protoreflect.ValueOfBool(value) + 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.next_l2_sequence": value := x.NextL2Sequence return protoreflect.ValueOfUint64(value) @@ -349,6 +415,9 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto case "opinit.opchild.v1.GenesisState.bridge_info": value := x.BridgeInfo return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "opinit.opchild.v1.GenesisState.exported": + value := x.Exported + return protoreflect.ValueOfBool(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.GenesisState")) @@ -379,14 +448,18 @@ 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.exported": - x.Exported = value.Bool() + case "opinit.opchild.v1.GenesisState.pending_deposits": + lv := value.List() + clv := lv.(*_GenesisState_4_list) + x.PendingDeposits = *clv.list case "opinit.opchild.v1.GenesisState.next_l2_sequence": x.NextL2Sequence = value.Uint() case "opinit.opchild.v1.GenesisState.next_l1_sequence": x.NextL1Sequence = value.Uint() case "opinit.opchild.v1.GenesisState.bridge_info": x.BridgeInfo = value.Message().Interface().(*BridgeInfo) + case "opinit.opchild.v1.GenesisState.exported": + x.Exported = value.Bool() default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.GenesisState")) @@ -424,17 +497,23 @@ 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.bridge_info": if x.BridgeInfo == nil { x.BridgeInfo = new(BridgeInfo) } return protoreflect.ValueOfMessage(x.BridgeInfo.ProtoReflect()) - case "opinit.opchild.v1.GenesisState.exported": - panic(fmt.Errorf("field exported of message opinit.opchild.v1.GenesisState is not mutable")) case "opinit.opchild.v1.GenesisState.next_l2_sequence": panic(fmt.Errorf("field next_l2_sequence of message opinit.opchild.v1.GenesisState is not mutable")) case "opinit.opchild.v1.GenesisState.next_l1_sequence": panic(fmt.Errorf("field next_l1_sequence of message opinit.opchild.v1.GenesisState is not mutable")) + case "opinit.opchild.v1.GenesisState.exported": + panic(fmt.Errorf("field exported of message opinit.opchild.v1.GenesisState is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.GenesisState")) @@ -457,8 +536,9 @@ 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.exported": - return protoreflect.ValueOfBool(false) + case "opinit.opchild.v1.GenesisState.pending_deposits": + list := []*PendingDeposits{} + return protoreflect.ValueOfList(&_GenesisState_4_list{list: &list}) case "opinit.opchild.v1.GenesisState.next_l2_sequence": return protoreflect.ValueOfUint64(uint64(0)) case "opinit.opchild.v1.GenesisState.next_l1_sequence": @@ -466,6 +546,8 @@ func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) case "opinit.opchild.v1.GenesisState.bridge_info": m := new(BridgeInfo) return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "opinit.opchild.v1.GenesisState.exported": + return protoreflect.ValueOfBool(false) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.GenesisState")) @@ -551,8 +633,11 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { n += 1 + l + runtime.Sov(uint64(l)) } } - if x.Exported { - n += 2 + if len(x.PendingDeposits) > 0 { + for _, e := range x.PendingDeposits { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } } if x.NextL2Sequence != 0 { n += 1 + runtime.Sov(uint64(x.NextL2Sequence)) @@ -564,6 +649,9 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { l = options.Size(x.BridgeInfo) n += 1 + l + runtime.Sov(uint64(l)) } + if x.Exported { + n += 2 + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -593,6 +681,16 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if x.Exported { + i-- + if x.Exported { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } if x.BridgeInfo != nil { encoded, err := options.Marshal(x.BridgeInfo) if err != nil { @@ -605,27 +703,33 @@ 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] = 0x3a } if x.NextL1Sequence != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.NextL1Sequence)) i-- - dAtA[i] = 0x38 + dAtA[i] = 0x30 } if x.NextL2Sequence != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.NextL2Sequence)) i-- - dAtA[i] = 0x30 + dAtA[i] = 0x28 } - if x.Exported { - i-- - if x.Exported { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + 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 } - i-- - dAtA[i] = 0x28 } if len(x.Validators) > 0 { for iNdEx := len(x.Validators) - 1; iNdEx >= 0; iNdEx-- { @@ -826,11 +930,11 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 5: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Exported", wireType) + 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 v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -840,13 +944,27 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - x.Exported = bool(v != 0) - case 6: + 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 != 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NextL2Sequence", wireType) } @@ -865,7 +983,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { break } } - case 7: + case 6: if wireType != 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NextL1Sequence", wireType) } @@ -884,7 +1002,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { break } } - case 8: + case 7: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BridgeInfo", wireType) } @@ -920,6 +1038,26 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex + case 8: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Exported", wireType) + } + var v 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++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Exported = bool(v != 0) default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -1448,11 +1586,13 @@ 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"` - Exported bool `protobuf:"varint,5,opt,name=exported,proto3" json:"exported,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"` + 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"` + 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"` } func (x *GenesisState) Reset() { @@ -1496,11 +1636,11 @@ func (x *GenesisState) GetValidators() []*Validator { return nil } -func (x *GenesisState) GetExported() bool { +func (x *GenesisState) GetPendingDeposits() []*PendingDeposits { if x != nil { - return x.Exported + return x.PendingDeposits } - return false + return nil } func (x *GenesisState) GetNextL2Sequence() uint64 { @@ -1524,6 +1664,13 @@ func (x *GenesisState) GetBridgeInfo() *BridgeInfo { return nil } +func (x *GenesisState) GetExported() bool { + if x != nil { + return x.Exported + } + return false +} + // LastValidatorPower required for validator set update logic. type LastValidatorPower struct { state protoimpl.MessageState @@ -1582,7 +1729,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, 0xab, 0x03, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x85, 0x04, 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, @@ -1598,38 +1745,43 @@ 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, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 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, 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, 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, + 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x05, 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, 0x06, 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, 0x07, 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, + 0x08, 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 ( @@ -1650,18 +1802,20 @@ var file_opinit_opchild_v1_genesis_proto_goTypes = []interface{}{ (*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 + (*PendingDeposits)(nil), // 4: opinit.opchild.v1.PendingDeposits + (*BridgeInfo)(nil), // 5: 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.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 + 4, // 3: opinit.opchild.v1.GenesisState.pending_deposits:type_name -> opinit.opchild.v1.PendingDeposits + 5, // 4: opinit.opchild.v1.GenesisState.bridge_info:type_name -> opinit.opchild.v1.BridgeInfo + 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_genesis_proto_init() } diff --git a/api/opinit/opchild/v1/types.pulsar.go b/api/opinit/opchild/v1/types.pulsar.go index 1d0c555e..4d7ba7bf 100644 --- a/api/opinit/opchild/v1/types.pulsar.go +++ b/api/opinit/opchild/v1/types.pulsar.go @@ -2701,6 +2701,1058 @@ func (x *fastReflection_BridgeInfo) ProtoMethods() *protoiface.Methods { } } +var _ protoreflect.List = (*_PendingDeposits_2_list)(nil) + +type _PendingDeposits_2_list struct { + list *[]*v1beta1.Coin +} + +func (x *_PendingDeposits_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_PendingDeposits_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_PendingDeposits_2_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) { + 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, + } +} + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.0 @@ -2979,6 +4031,87 @@ 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 +} + +type CoinsWrapper struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Coins []*v1beta1.Coin `protobuf:"bytes,1,rep,name=coins,proto3" json:"coins,omitempty"` +} + +func (x *CoinsWrapper) Reset() { + *x = CoinsWrapper{} + if protoimpl.UnsafeEnabled { + mi := &file_opinit_opchild_v1_types_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CoinsWrapper) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CoinsWrapper) ProtoMessage() {} + +// Deprecated: Use CoinsWrapper.ProtoReflect.Descriptor instead. +func (*CoinsWrapper) Descriptor() ([]byte, []int) { + return file_opinit_opchild_v1_types_proto_rawDescGZIP(), []int{5} +} + +func (x *CoinsWrapper) GetCoins() []*v1beta1.Coin { + if x != nil { + return x.Coins + } + return nil +} + var File_opinit_opchild_v1_types_proto protoreflect.FileDescriptor var file_opinit_opchild_v1_types_proto_rawDesc = []byte{ @@ -3075,20 +4208,39 @@ var file_opinit_opchild_v1_types_proto_rawDesc = []byte{ 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, 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, + 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, 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, + 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, 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, + 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 ( @@ -3103,27 +4255,32 @@ func file_opinit_opchild_v1_types_proto_rawDescGZIP() []byte { return file_opinit_opchild_v1_types_proto_rawDescData } -var file_opinit_opchild_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_opinit_opchild_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_opinit_opchild_v1_types_proto_goTypes = []interface{}{ (*Params)(nil), // 0: opinit.opchild.v1.Params (*Validator)(nil), // 1: opinit.opchild.v1.Validator (*ValidatorUpdates)(nil), // 2: opinit.opchild.v1.ValidatorUpdates (*BridgeInfo)(nil), // 3: opinit.opchild.v1.BridgeInfo - (*v1beta1.DecCoin)(nil), // 4: cosmos.base.v1beta1.DecCoin - (*anypb.Any)(nil), // 5: google.protobuf.Any - (*abci.ValidatorUpdate)(nil), // 6: tendermint.abci.ValidatorUpdate - (*v1.BridgeConfig)(nil), // 7: opinit.ophost.v1.BridgeConfig + (*PendingDeposits)(nil), // 4: opinit.opchild.v1.PendingDeposits + (*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{ - 4, // 0: opinit.opchild.v1.Params.min_gas_prices:type_name -> cosmos.base.v1beta1.DecCoin - 5, // 1: opinit.opchild.v1.Validator.consensus_pubkey:type_name -> google.protobuf.Any - 6, // 2: opinit.opchild.v1.ValidatorUpdates.updates:type_name -> tendermint.abci.ValidatorUpdate - 7, // 3: opinit.opchild.v1.BridgeInfo.bridge_config:type_name -> opinit.ophost.v1.BridgeConfig - 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 + 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.PendingDeposits.coins:type_name -> cosmos.base.v1beta1.Coin + 10, // 5: opinit.opchild.v1.CoinsWrapper.coins:type_name -> cosmos.base.v1beta1.Coin + 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 } func init() { file_opinit_opchild_v1_types_proto_init() } @@ -3180,6 +4337,30 @@ func file_opinit_opchild_v1_types_proto_init() { return nil } } + 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 + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3187,7 +4368,7 @@ func file_opinit_opchild_v1_types_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_opinit_opchild_v1_types_proto_rawDesc, NumEnums: 0, - NumMessages: 4, + NumMessages: 6, NumExtensions: 0, NumServices: 0, }, diff --git a/api/opinit/ophost/v1/query.pulsar.go b/api/opinit/ophost/v1/query.pulsar.go index 7ffba4bd..a724f958 100644 --- a/api/opinit/ophost/v1/query.pulsar.go +++ b/api/opinit/ophost/v1/query.pulsar.go @@ -6710,17 +6710,15 @@ func (x *fastReflection_QueryOutputProposalResponse) ProtoMethods() *protoiface. } var ( - md_QueryOutputProposalsRequest protoreflect.MessageDescriptor - fd_QueryOutputProposalsRequest_bridge_id protoreflect.FieldDescriptor - fd_QueryOutputProposalsRequest_output_index protoreflect.FieldDescriptor - fd_QueryOutputProposalsRequest_pagination protoreflect.FieldDescriptor + md_QueryOutputProposalsRequest protoreflect.MessageDescriptor + fd_QueryOutputProposalsRequest_bridge_id protoreflect.FieldDescriptor + fd_QueryOutputProposalsRequest_pagination protoreflect.FieldDescriptor ) func init() { file_opinit_ophost_v1_query_proto_init() md_QueryOutputProposalsRequest = File_opinit_ophost_v1_query_proto.Messages().ByName("QueryOutputProposalsRequest") fd_QueryOutputProposalsRequest_bridge_id = md_QueryOutputProposalsRequest.Fields().ByName("bridge_id") - fd_QueryOutputProposalsRequest_output_index = md_QueryOutputProposalsRequest.Fields().ByName("output_index") fd_QueryOutputProposalsRequest_pagination = md_QueryOutputProposalsRequest.Fields().ByName("pagination") } @@ -6795,12 +6793,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) Range(f func(protoreflect.F return } } - if x.OutputIndex != uint64(0) { - value := protoreflect.ValueOfUint64(x.OutputIndex) - if !f(fd_QueryOutputProposalsRequest_output_index, value) { - return - } - } if x.Pagination != nil { value := protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) if !f(fd_QueryOutputProposalsRequest_pagination, value) { @@ -6824,8 +6816,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) Has(fd protoreflect.FieldDe switch fd.FullName() { case "opinit.ophost.v1.QueryOutputProposalsRequest.bridge_id": return x.BridgeId != uint64(0) - case "opinit.ophost.v1.QueryOutputProposalsRequest.output_index": - return x.OutputIndex != uint64(0) case "opinit.ophost.v1.QueryOutputProposalsRequest.pagination": return x.Pagination != nil default: @@ -6846,8 +6836,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) Clear(fd protoreflect.Field switch fd.FullName() { case "opinit.ophost.v1.QueryOutputProposalsRequest.bridge_id": x.BridgeId = uint64(0) - case "opinit.ophost.v1.QueryOutputProposalsRequest.output_index": - x.OutputIndex = uint64(0) case "opinit.ophost.v1.QueryOutputProposalsRequest.pagination": x.Pagination = nil default: @@ -6869,9 +6857,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) Get(descriptor protoreflect case "opinit.ophost.v1.QueryOutputProposalsRequest.bridge_id": value := x.BridgeId return protoreflect.ValueOfUint64(value) - case "opinit.ophost.v1.QueryOutputProposalsRequest.output_index": - value := x.OutputIndex - return protoreflect.ValueOfUint64(value) case "opinit.ophost.v1.QueryOutputProposalsRequest.pagination": value := x.Pagination return protoreflect.ValueOfMessage(value.ProtoReflect()) @@ -6897,8 +6882,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) Set(fd protoreflect.FieldDe switch fd.FullName() { case "opinit.ophost.v1.QueryOutputProposalsRequest.bridge_id": x.BridgeId = value.Uint() - case "opinit.ophost.v1.QueryOutputProposalsRequest.output_index": - x.OutputIndex = value.Uint() case "opinit.ophost.v1.QueryOutputProposalsRequest.pagination": x.Pagination = value.Message().Interface().(*v1beta1.PageRequest) default: @@ -6928,8 +6911,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) Mutable(fd protoreflect.Fie return protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) case "opinit.ophost.v1.QueryOutputProposalsRequest.bridge_id": panic(fmt.Errorf("field bridge_id of message opinit.ophost.v1.QueryOutputProposalsRequest is not mutable")) - case "opinit.ophost.v1.QueryOutputProposalsRequest.output_index": - panic(fmt.Errorf("field output_index of message opinit.ophost.v1.QueryOutputProposalsRequest is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryOutputProposalsRequest")) @@ -6945,8 +6926,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) NewField(fd protoreflect.Fi switch fd.FullName() { case "opinit.ophost.v1.QueryOutputProposalsRequest.bridge_id": return protoreflect.ValueOfUint64(uint64(0)) - case "opinit.ophost.v1.QueryOutputProposalsRequest.output_index": - return protoreflect.ValueOfUint64(uint64(0)) case "opinit.ophost.v1.QueryOutputProposalsRequest.pagination": m := new(v1beta1.PageRequest) return protoreflect.ValueOfMessage(m.ProtoReflect()) @@ -7022,9 +7001,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) ProtoMethods() *protoiface. if x.BridgeId != 0 { n += 1 + runtime.Sov(uint64(x.BridgeId)) } - if x.OutputIndex != 0 { - n += 1 + runtime.Sov(uint64(x.OutputIndex)) - } if x.Pagination != nil { l = options.Size(x.Pagination) n += 1 + l + runtime.Sov(uint64(l)) @@ -7072,11 +7048,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) ProtoMethods() *protoiface. i-- dAtA[i] = 0x1a } - if x.OutputIndex != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.OutputIndex)) - i-- - dAtA[i] = 0x10 - } if x.BridgeId != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.BridgeId)) i-- @@ -7150,25 +7121,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) ProtoMethods() *protoiface. break } } - case 2: - 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 3: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) @@ -10905,8 +10857,7 @@ type QueryOutputProposalsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BridgeId uint64 `protobuf:"varint,1,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` - OutputIndex uint64 `protobuf:"varint,2,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"` + BridgeId uint64 `protobuf:"varint,1,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` // pagination defines the pagination in the request. Pagination *v1beta1.PageRequest `protobuf:"bytes,3,opt,name=pagination,proto3" json:"pagination,omitempty"` } @@ -10938,13 +10889,6 @@ func (x *QueryOutputProposalsRequest) GetBridgeId() uint64 { return 0 } -func (x *QueryOutputProposalsRequest) GetOutputIndex() uint64 { - if x != nil { - return x.OutputIndex - } - return 0 -} - func (x *QueryOutputProposalsRequest) GetPagination() *v1beta1.PageRequest { if x != nil { return x.Pagination @@ -11338,185 +11282,183 @@ var file_opinit_ophost_v1_query_proto_rawDesc = []byte{ 0x18, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x22, 0xa5, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, + 0x6f, 0x73, 0x61, 0x6c, 0x22, 0x82, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcc, 0x01, 0x0a, - 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, - 0x10, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcc, 0x01, 0x0a, 0x1c, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x10, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, + 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x52, + 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x01, 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, + 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x22, 0x5b, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, + 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0e, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x22, + 0x30, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x69, 0x6d, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, + 0x64, 0x22, 0x39, 0x0a, 0x1a, 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, 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, 0x22, 0x47, 0x0a, 0x1b, + 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, 0x12, 0x28, 0x0a, 0x10, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x32, 0xe5, 0x0e, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, + 0x89, 0x01, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 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, + 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, + 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x80, 0x01, 0x0a, 0x07, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x14, 0x0a, 0x12, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x52, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x01, 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, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x5b, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, - 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x48, 0x61, - 0x73, 0x68, 0x22, 0x30, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x65, 0x64, 0x22, 0x39, 0x0a, 0x1a, 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, 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, 0x22, - 0x47, 0x0a, 0x1b, 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, 0x12, 0x28, - 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, 0x31, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x32, 0xe5, 0x0e, 0x0a, 0x05, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x89, 0x01, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x24, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, - 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 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, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 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, 0x68, + 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0xc5, + 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, + 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, + 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x80, - 0x01, 0x0a, 0x07, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 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, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x73, 0x12, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, - 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, - 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x88, - 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x62, 0x79, - 0x5f, 0x6c, 0x31, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, - 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x65, 0x6e, 0x6f, - 0x6d, 0x12, 0xa1, 0x01, 0x0a, 0x0a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, - 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, - 0x69, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, + 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x31, + 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, + 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, + 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, + 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, + 0x72, 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xa1, + 0x01, 0x0a, 0x0a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x28, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x3e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, + 0x31, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, + 0x72, 0x73, 0x12, 0xc6, 0x01, 0x0a, 0x13, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x33, 0x12, 0x31, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x70, 0x61, 0x69, 0x72, 0x73, 0x12, 0xc6, 0x01, 0x0a, 0x13, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x31, 0x2e, + 0x65, 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3d, 0x12, 0x3b, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0xb8, - 0x01, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, - 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x2f, 0x7b, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x0f, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x2d, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x73, 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, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x7c, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x25, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x6f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x65, 0x64, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x58, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x12, 0x4b, + 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x48, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, - 0x73, 0x2f, 0x7b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x7d, 0x2f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0xb2, 0x01, 0x0a, 0x0e, - 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2c, + 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0xb8, 0x01, 0x0a, 0x0e, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 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, 0x2d, 0x2e, 0x6f, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 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, 0x43, 0x88, 0xe7, 0xb0, - 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x88, 0xe7, 0xb0, + 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x42, 0xc1, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, - 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, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x2f, 0x7b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x0f, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x73, 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, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x7c, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, + 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x88, 0xe7, + 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, + 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, + 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, + 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x12, 0x4b, 0x2f, 0x6f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x2f, 0x7b, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x7d, + 0x2f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0xb2, 0x01, 0x0a, 0x0e, 0x4e, 0x65, 0x78, + 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 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, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 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, 0x43, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, + 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, + 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x42, 0xc1, 0x01, + 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, + 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 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, - 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, + 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/api/opinit/ophost/v1/query_grpc.pb.go b/api/opinit/ophost/v1/query_grpc.pb.go index 1ee842e3..8c36ad3f 100644 --- a/api/opinit/ophost/v1/query_grpc.pb.go +++ b/api/opinit/ophost/v1/query_grpc.pb.go @@ -48,6 +48,7 @@ type QueryClient interface { TokenPairByL2Denom(ctx context.Context, in *QueryTokenPairByL2DenomRequest, opts ...grpc.CallOption) (*QueryTokenPairByL2DenomResponse, error) // TokenPairs queries all (l1 denom, l2 denom) pair. TokenPairs(ctx context.Context, in *QueryTokenPairsRequest, opts ...grpc.CallOption) (*QueryTokenPairsResponse, error) + // LastFinalizedOutput queries last finalized output. LastFinalizedOutput(ctx context.Context, in *QueryLastFinalizedOutputRequest, opts ...grpc.CallOption) (*QueryLastFinalizedOutputResponse, error) // OutputProposal queries output proposal by output index. OutputProposal(ctx context.Context, in *QueryOutputProposalRequest, opts ...grpc.CallOption) (*QueryOutputProposalResponse, error) @@ -195,6 +196,7 @@ type QueryServer interface { TokenPairByL2Denom(context.Context, *QueryTokenPairByL2DenomRequest) (*QueryTokenPairByL2DenomResponse, error) // TokenPairs queries all (l1 denom, l2 denom) pair. TokenPairs(context.Context, *QueryTokenPairsRequest) (*QueryTokenPairsResponse, error) + // LastFinalizedOutput queries last finalized output. LastFinalizedOutput(context.Context, *QueryLastFinalizedOutputRequest) (*QueryLastFinalizedOutputResponse, error) // OutputProposal queries output proposal by output index. OutputProposal(context.Context, *QueryOutputProposalRequest) (*QueryOutputProposalResponse, error) diff --git a/proto/opinit/opchild/v1/types.proto b/proto/opinit/opchild/v1/types.proto index aaea101f..cedd2b33 100644 --- a/proto/opinit/opchild/v1/types.proto +++ b/proto/opinit/opchild/v1/types.proto @@ -103,9 +103,21 @@ message BridgeInfo { // PendingDeposits defines the set of pending deposits. message PendingDeposits { - repeated cosmos.base.v1beta1.Coin deposits = 1 [ + // 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" ]; } + +message CoinsWrapper { + repeated cosmos.base.v1beta1.Coin coins = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} \ No newline at end of file diff --git a/x/opchild/keeper/genesis.go b/x/opchild/keeper/genesis.go index 06a0041b..b3fbce90 100644 --- a/x/opchild/keeper/genesis.go +++ b/x/opchild/keeper/genesis.go @@ -89,6 +89,21 @@ 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 } @@ -137,6 +152,20 @@ func (k Keeper) ExportGenesis(ctx context.Context) *types.GenesisState { bridgeInfo = &bridgeInfo_ } + pendingDeposits := []types.PendingDeposits{} + 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 + }) + return &types.GenesisState{ Params: params, LastValidatorPowers: lastValidatorPowers, @@ -145,5 +174,6 @@ 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 943d50da..a89b10ed 100644 --- a/x/opchild/keeper/genesis_test.go +++ b/x/opchild/keeper/genesis_test.go @@ -1,13 +1,13 @@ package keeper_test -// TODO - implement test - import ( "testing" "time" "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" ) @@ -47,6 +47,11 @@ 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 2771d795..d64e4746 100644 --- a/x/opchild/keeper/keeper.go +++ b/x/opchild/keeper/keeper.go @@ -51,7 +51,7 @@ type Keeper struct { ValidatorsByConsAddr collections.Map[[]byte, []byte] HistoricalInfos collections.Map[int64, cosmostypes.HistoricalInfo] DenomPairs collections.Map[string, string] - PendingDeposits collections.Map[[]byte, types.PendingDeposits] + PendingDeposits collections.Map[[]byte, types.CoinsWrapper] ExecutorChangePlans map[uint64]types.ExecutorChangePlan @@ -110,7 +110,7 @@ func NewKeeper( 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.PendingDeposits](cdc)), + PendingDeposits: collections.NewMap(sb, types.PendingDepositsKey, "pending_deposits", collections.BytesKey, codec.CollValue[types.CoinsWrapper](cdc)), ExecutorChangePlans: make(map[uint64]types.ExecutorChangePlan), HostValidatorStore: hostValidatorStore, diff --git a/x/opchild/keeper/msg_server.go b/x/opchild/keeper/msg_server.go index 7db124ce..6d1386ed 100644 --- a/x/opchild/keeper/msg_server.go +++ b/x/opchild/keeper/msg_server.go @@ -473,14 +473,14 @@ func (ms MsgServer) safeDepositToken(ctx context.Context, toAddr sdk.AccAddress, // records pending deposits pendingDeposits, err := ms.PendingDeposits.Get(ctx, toAddr) if err != nil && errors.Is(err, collections.ErrNotFound) { - pendingDeposits = types.PendingDeposits{ - Deposits: sdk.NewCoins(), + pendingDeposits = types.CoinsWrapper{ + Coins: sdk.NewCoins(), } } else if err != nil { return false, err } - pendingDeposits.Deposits = pendingDeposits.Deposits.Add(coins...) + pendingDeposits.Coins = pendingDeposits.Coins.Add(coins...) if err := ms.PendingDeposits.Set(ctx, toAddr, pendingDeposits); err != nil { return false, err } @@ -521,7 +521,7 @@ func (ms MsgServer) InitiateTokenWithdrawal(ctx context.Context, req *types.MsgI // check pending deposits and withdraw from them if necessary pendingDeposits, err := ms.PendingDeposits.Get(ctx, senderAddr) if err == nil { - pendingAmount := pendingDeposits.Deposits.AmountOf(coin.Denom) + pendingAmount := pendingDeposits.Coins.AmountOf(coin.Denom) if pendingAmount.IsPositive() { var pendingWithdrawAmount math.Int if coin.Amount.GT(pendingAmount) { @@ -535,8 +535,8 @@ func (ms MsgServer) InitiateTokenWithdrawal(ctx context.Context, req *types.MsgI coin = coin.Sub(withdrawnCoinFromPendingDeposits) // update pending deposits - pendingDeposits.Deposits = pendingDeposits.Deposits.Sub(withdrawnCoinFromPendingDeposits) - if pendingDeposits.Deposits.IsZero() { + pendingDeposits.Coins = pendingDeposits.Coins.Sub(withdrawnCoinFromPendingDeposits) + if pendingDeposits.Coins.IsZero() { if err := ms.PendingDeposits.Remove(ctx, senderAddr); err != nil { return nil, err } diff --git a/x/opchild/keeper/msg_server_test.go b/x/opchild/keeper/msg_server_test.go index 0d4abefe..00472cfc 100644 --- a/x/opchild/keeper/msg_server_test.go +++ b/x/opchild/keeper/msg_server_test.go @@ -416,7 +416,7 @@ func Test_MsgServer_Deposit_ToModuleAccount(t *testing.T) { // pending deposits deposits, err := input.OPChildKeeper.PendingDeposits.Get(ctx, opchildModuleAddress) require.NoError(t, err) - require.Equal(t, deposits.Deposits[0].Amount, math.NewInt(100)) + require.Equal(t, deposits.Coins[0].Amount, math.NewInt(100)) } func Test_MsgServer_Deposit_NoHook(t *testing.T) { diff --git a/x/opchild/types/types.pb.go b/x/opchild/types/types.pb.go index 519eb8ff..5fc697b3 100644 --- a/x/opchild/types/types.pb.go +++ b/x/opchild/types/types.pb.go @@ -219,7 +219,10 @@ var xxx_messageInfo_BridgeInfo proto.InternalMessageInfo // PendingDeposits defines the set of pending deposits. type PendingDeposits struct { - Deposits github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=deposits,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"deposits"` + // 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{} } @@ -255,77 +258,117 @@ func (m *PendingDeposits) XXX_DiscardUnknown() { var xxx_messageInfo_PendingDeposits proto.InternalMessageInfo +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"` +} + +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} +} +func (m *CoinsWrapper) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CoinsWrapper) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_CoinsWrapper.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 *CoinsWrapper) XXX_Merge(src proto.Message) { + xxx_messageInfo_CoinsWrapper.Merge(m, src) +} +func (m *CoinsWrapper) XXX_Size() int { + return m.Size() +} +func (m *CoinsWrapper) XXX_DiscardUnknown() { + xxx_messageInfo_CoinsWrapper.DiscardUnknown(m) +} + +var xxx_messageInfo_CoinsWrapper proto.InternalMessageInfo + func init() { 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") } func init() { proto.RegisterFile("opinit/opchild/v1/types.proto", fileDescriptor_2cc6df244b706d68) } var fileDescriptor_2cc6df244b706d68 = []byte{ - // 933 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xcf, 0x8f, 0xdb, 0x44, - 0x14, 0x8e, 0xbb, 0xe9, 0xb6, 0x9e, 0x64, 0x7f, 0x8d, 0xb6, 0x22, 0xbb, 0xdb, 0xda, 0x91, 0x4f, - 0x51, 0x21, 0xb6, 0xb2, 0xa5, 0x12, 0xec, 0x89, 0x3a, 0x5d, 0xd0, 0xaa, 0x88, 0x46, 0x46, 0x80, - 0xd4, 0x8b, 0x35, 0xb6, 0x27, 0xce, 0x68, 0xed, 0x19, 0xcb, 0xe3, 0xa4, 0x9b, 0x13, 0x57, 0xc4, - 0x05, 0x8e, 0x1c, 0xf7, 0x58, 0xf5, 0xd4, 0x03, 0x37, 0xfe, 0x81, 0x15, 0x12, 0x52, 0xc5, 0x89, - 0x53, 0x0a, 0xbb, 0x87, 0x72, 0xce, 0x81, 0x33, 0xf2, 0xcc, 0xe4, 0x47, 0x03, 0xa8, 0x5c, 0x92, - 0x99, 0xf7, 0x7d, 0xf3, 0xde, 0x9b, 0x6f, 0xde, 0x7b, 0x06, 0x77, 0x58, 0x46, 0x28, 0x29, 0x1c, - 0x96, 0x85, 0x03, 0x92, 0x44, 0xce, 0xa8, 0xe3, 0x14, 0xe3, 0x0c, 0x73, 0x3b, 0xcb, 0x59, 0xc1, - 0xe0, 0x8e, 0x84, 0x6d, 0x05, 0xdb, 0xa3, 0xce, 0xfe, 0x0e, 0x4a, 0x09, 0x65, 0x8e, 0xf8, 0x95, - 0xac, 0x7d, 0x23, 0x64, 0x3c, 0x65, 0xdc, 0x09, 0x10, 0xc7, 0xce, 0xa8, 0x13, 0xe0, 0x02, 0x75, - 0x9c, 0x90, 0x11, 0xaa, 0xf0, 0x3d, 0x89, 0xfb, 0x62, 0xe7, 0xc8, 0x8d, 0x82, 0x76, 0x63, 0x16, - 0x33, 0x69, 0x2f, 0x57, 0xb3, 0x03, 0x31, 0x63, 0x71, 0x82, 0x1d, 0xb1, 0x0b, 0x86, 0x7d, 0x07, - 0xd1, 0xb1, 0x82, 0x0e, 0x0a, 0x4c, 0x23, 0x9c, 0xa7, 0x84, 0x16, 0x0e, 0x0a, 0x42, 0xb2, 0x9c, - 0xee, 0xfe, 0xed, 0xf9, 0x6d, 0x06, 0x8c, 0x17, 0x2b, 0x97, 0xb1, 0x7e, 0xa9, 0x82, 0xf5, 0x1e, - 0xca, 0x51, 0xca, 0xe1, 0x47, 0x60, 0x33, 0x45, 0x67, 0xfe, 0x08, 0x25, 0x24, 0x42, 0x05, 0xcb, - 0x79, 0x43, 0x6b, 0x6a, 0xad, 0x0d, 0x77, 0x6f, 0x3a, 0x31, 0x6f, 0x8d, 0x51, 0x9a, 0x1c, 0x59, - 0x6f, 0xe2, 0x96, 0xb7, 0x91, 0xa2, 0xb3, 0x2f, 0xe7, 0x7b, 0xf8, 0x29, 0x80, 0x03, 0xc2, 0x0b, - 0x96, 0x93, 0x10, 0x25, 0x3e, 0xa6, 0x45, 0x4e, 0x30, 0x6f, 0x5c, 0x13, 0x5e, 0xee, 0x4c, 0x27, - 0xe6, 0x9e, 0xf4, 0xf2, 0x4f, 0x8e, 0xe5, 0xed, 0x2c, 0x8c, 0xc7, 0xd2, 0x06, 0xbf, 0xd3, 0xc0, - 0x66, 0x4a, 0xa8, 0x1f, 0xa3, 0x52, 0x25, 0x12, 0x62, 0xde, 0x58, 0x6b, 0xae, 0xb5, 0x6a, 0x87, - 0xb7, 0x6d, 0x25, 0x57, 0xa9, 0xad, 0xad, 0xb4, 0xb5, 0x1f, 0xe2, 0xb0, 0xcb, 0x08, 0x75, 0x1f, - 0x5d, 0x4c, 0xcc, 0xca, 0x74, 0x62, 0xee, 0xaa, 0x94, 0x97, 0x3d, 0x58, 0xcf, 0x5f, 0x99, 0xef, - 0xc6, 0xa4, 0x18, 0x0c, 0x03, 0x3b, 0x64, 0xa9, 0x92, 0x5d, 0xfd, 0xb5, 0x79, 0x74, 0xaa, 0xb4, - 0x51, 0xbe, 0xb8, 0x57, 0x4f, 0x09, 0xfd, 0x04, 0xf1, 0x9e, 0x08, 0x0f, 0x43, 0xb0, 0x1d, 0xe4, - 0x24, 0x8a, 0xb1, 0x8f, 0xcf, 0x70, 0x38, 0x14, 0x1a, 0x55, 0x9b, 0x6b, 0x2d, 0xdd, 0xfd, 0x60, - 0x3a, 0x31, 0xdf, 0x91, 0x01, 0x57, 0x19, 0xd6, 0xaf, 0x3f, 0xb6, 0x77, 0x55, 0xc2, 0x0f, 0xa2, - 0x28, 0xc7, 0x9c, 0x7f, 0x5e, 0xe4, 0x84, 0xc6, 0xcf, 0x5e, 0xbf, 0xb8, 0xab, 0x79, 0x5b, 0x92, - 0x7f, 0x3c, 0xa3, 0xc3, 0x2e, 0xb8, 0x8e, 0xa2, 0x94, 0xd0, 0xc6, 0xf5, 0xa6, 0xd6, 0xd2, 0xdd, - 0xf6, 0x74, 0x62, 0xd6, 0xa5, 0x67, 0x61, 0x7e, 0x8b, 0x3b, 0x79, 0x16, 0x3e, 0x01, 0x1b, 0x7d, - 0x8c, 0xfd, 0xa7, 0x03, 0x52, 0xe0, 0x84, 0xf0, 0xa2, 0xb1, 0x2e, 0xd2, 0xbc, 0xbf, 0xd0, 0xe5, - 0x0d, 0xf8, 0x2d, 0x4e, 0xeb, 0x7d, 0x8c, 0xbf, 0x9a, 0x71, 0x8f, 0x0e, 0x7e, 0x38, 0x37, 0x2b, - 0x7f, 0x9e, 0x9b, 0xda, 0xb7, 0xaf, 0x5f, 0xdc, 0xdd, 0x9c, 0x35, 0x89, 0x2c, 0x22, 0xeb, 0xa7, - 0x6b, 0x40, 0x9f, 0x57, 0x04, 0x7c, 0x0f, 0xdc, 0x48, 0x19, 0x25, 0xa7, 0x38, 0x17, 0xb5, 0xa4, - 0xbb, 0x70, 0x3a, 0x31, 0x37, 0xd5, 0xc3, 0x48, 0xc0, 0xf2, 0x66, 0x14, 0xf8, 0x31, 0xd8, 0x66, - 0x19, 0xce, 0xcb, 0x93, 0x3e, 0x92, 0x59, 0x88, 0xe2, 0xd1, 0xdd, 0x83, 0x85, 0xbc, 0xab, 0x0c, - 0xcb, 0xdb, 0x9a, 0x99, 0x54, 0xe6, 0xb0, 0x00, 0xdb, 0x21, 0xa3, 0x1c, 0x53, 0x3e, 0xe4, 0x7e, - 0x36, 0x0c, 0x4e, 0xf1, 0xb8, 0xb1, 0xd6, 0xd4, 0x5a, 0xb5, 0xc3, 0x5d, 0x5b, 0x36, 0x91, 0x3d, - 0x6b, 0x22, 0xfb, 0x01, 0x1d, 0xbb, 0xf7, 0x16, 0xde, 0x57, 0xcf, 0x59, 0x3f, 0x2f, 0x84, 0x09, - 0xf3, 0x71, 0x56, 0x30, 0xbb, 0x37, 0x0c, 0x1e, 0xe1, 0xb1, 0xb7, 0x35, 0xa7, 0xf6, 0x04, 0x13, - 0xbe, 0x0f, 0x40, 0x69, 0xf2, 0x33, 0xf6, 0x14, 0xe7, 0x8d, 0x6a, 0x53, 0x6b, 0xad, 0xb9, 0xb7, - 0xa6, 0x13, 0x73, 0x67, 0xe1, 0x59, 0x62, 0x96, 0xa7, 0x97, 0x9b, 0x5e, 0xb9, 0x3e, 0xaa, 0x7f, - 0x73, 0x6e, 0x56, 0x94, 0xa0, 0x15, 0xcb, 0x07, 0xdb, 0x73, 0xf1, 0xbe, 0xc8, 0x22, 0x54, 0x60, - 0x0e, 0x8f, 0xc1, 0x8d, 0xa1, 0x5c, 0x36, 0x34, 0x51, 0xfe, 0x4d, 0x7b, 0xd1, 0xee, 0x76, 0xd9, - 0xee, 0xf6, 0xca, 0x19, 0x57, 0x2f, 0x5b, 0x40, 0x3e, 0xdd, 0xec, 0xec, 0x51, 0x55, 0x04, 0xf8, - 0x4b, 0x03, 0xc0, 0x15, 0x05, 0x77, 0x42, 0xfb, 0x0c, 0x1e, 0x00, 0x5d, 0x95, 0x2b, 0x89, 0xc4, - 0x0b, 0x55, 0xbd, 0x9b, 0xd2, 0x70, 0x12, 0xc1, 0x0f, 0x41, 0x4d, 0x81, 0xa5, 0xd4, 0xea, 0x25, - 0x1a, 0xff, 0x55, 0x29, 0x1e, 0x90, 0xe4, 0xd2, 0x08, 0x0d, 0x50, 0x4b, 0x3a, 0x7e, 0x38, 0x40, - 0x84, 0x96, 0x9e, 0x4b, 0xf1, 0x75, 0x4f, 0x4f, 0x3a, 0xdd, 0xd2, 0x72, 0x12, 0xc1, 0x26, 0xa8, - 0x97, 0x78, 0x42, 0x30, 0x2d, 0x4a, 0x42, 0x55, 0x10, 0x40, 0xd2, 0xe9, 0x0a, 0xd3, 0x49, 0x04, - 0x3f, 0x03, 0x1b, 0x2a, 0x78, 0xc8, 0x68, 0x9f, 0xc4, 0xa2, 0x1b, 0x6a, 0x87, 0x86, 0x3d, 0x1f, - 0xbe, 0xe5, 0x34, 0xb3, 0x47, 0x1d, 0x5b, 0x5e, 0xa7, 0x2b, 0x58, 0xcb, 0x37, 0xaf, 0x07, 0x4b, - 0x80, 0xf5, 0x35, 0xd8, 0xea, 0x61, 0x1a, 0x11, 0x1a, 0x3f, 0xc4, 0x19, 0xe3, 0xa4, 0xe0, 0x30, - 0x01, 0x37, 0x23, 0xb5, 0x56, 0xca, 0xee, 0xfd, 0xeb, 0x60, 0x11, 0x53, 0xe5, 0x7e, 0xe9, 0xf8, - 0xf9, 0x2b, 0xb3, 0xf5, 0x3f, 0xa6, 0x87, 0x18, 0x1d, 0x32, 0x89, 0x79, 0x04, 0xf7, 0xf1, 0xc5, - 0x1f, 0x46, 0xe5, 0xd9, 0xa5, 0xa1, 0x5d, 0x5c, 0x1a, 0xda, 0xcb, 0x4b, 0x43, 0xfb, 0xfd, 0xd2, - 0xd0, 0xbe, 0xbf, 0x32, 0x2a, 0x2f, 0xaf, 0x8c, 0xca, 0x6f, 0x57, 0x46, 0xe5, 0x49, 0x7b, 0xc9, - 0x75, 0x79, 0x47, 0x82, 0xda, 0x09, 0x0a, 0xb8, 0xf3, 0xb8, 0x27, 0xe6, 0xf7, 0xd9, 0xfc, 0x7b, - 0x24, 0xa2, 0x04, 0xeb, 0xa2, 0x86, 0xef, 0xfd, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x86, 0x62, 0xb7, - 0x00, 0xae, 0x06, 0x00, 0x00, + // 971 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xbf, 0x6f, 0xdb, 0xc6, + 0x17, 0x17, 0x63, 0xd9, 0xf9, 0xf2, 0x2c, 0xff, 0x3a, 0x38, 0xf8, 0xca, 0x76, 0x42, 0x0a, 0x9c, + 0x84, 0xb4, 0x26, 0x21, 0xa7, 0x29, 0x5a, 0x4f, 0x0d, 0x1d, 0xb7, 0x30, 0x52, 0x34, 0x02, 0x8b, + 0x36, 0x40, 0x16, 0xe2, 0x48, 0x9e, 0xa8, 0x83, 0xc9, 0x3b, 0x82, 0x47, 0x29, 0xd6, 0x7f, 0x50, + 0x74, 0x69, 0xc7, 0x8e, 0x1e, 0x83, 0x4c, 0x29, 0xd0, 0xad, 0xff, 0x80, 0x51, 0xa0, 0x40, 0xd0, + 0xa9, 0x93, 0xd2, 0xda, 0x43, 0x3a, 0x6b, 0xe8, 0x5c, 0xdc, 0x0f, 0x49, 0x8e, 0xdb, 0x20, 0x5d, + 0xba, 0x48, 0x77, 0xef, 0xf3, 0xb9, 0xf7, 0xde, 0x7d, 0xee, 0xbd, 0x47, 0x70, 0x8b, 0x15, 0x84, + 0x92, 0xca, 0x63, 0x45, 0xdc, 0x27, 0x59, 0xe2, 0x0d, 0x3b, 0x5e, 0x35, 0x2a, 0x30, 0x77, 0x8b, + 0x92, 0x55, 0x0c, 0x6e, 0x28, 0xd8, 0xd5, 0xb0, 0x3b, 0xec, 0x6c, 0x6f, 0xa0, 0x9c, 0x50, 0xe6, + 0xc9, 0x5f, 0xc5, 0xda, 0xb6, 0x62, 0xc6, 0x73, 0xc6, 0xbd, 0x08, 0x71, 0xec, 0x0d, 0x3b, 0x11, + 0xae, 0x50, 0xc7, 0x8b, 0x19, 0xa1, 0x1a, 0xdf, 0x52, 0x78, 0x28, 0x77, 0x9e, 0xda, 0x68, 0x68, + 0x33, 0x65, 0x29, 0x53, 0x76, 0xb1, 0x9a, 0x1e, 0x48, 0x19, 0x4b, 0x33, 0xec, 0xc9, 0x5d, 0x34, + 0xe8, 0x79, 0x88, 0x8e, 0x34, 0xb4, 0x53, 0x61, 0x9a, 0xe0, 0x32, 0x27, 0xb4, 0xf2, 0x50, 0x14, + 0x93, 0xcb, 0xe9, 0x6e, 0xdf, 0x9c, 0xdd, 0xa6, 0xcf, 0x78, 0x75, 0xe5, 0x32, 0xce, 0xcf, 0x75, + 0xb0, 0xd4, 0x45, 0x25, 0xca, 0x39, 0xfc, 0x08, 0xac, 0xe6, 0xe8, 0x24, 0x1c, 0xa2, 0x8c, 0x24, + 0xa8, 0x62, 0x25, 0x6f, 0x1a, 0x2d, 0xa3, 0xbd, 0xe2, 0x6f, 0x4d, 0xc6, 0xf6, 0x8d, 0x11, 0xca, + 0xb3, 0x7d, 0xe7, 0x75, 0xdc, 0x09, 0x56, 0x72, 0x74, 0xf2, 0xe5, 0x6c, 0x0f, 0x3f, 0x05, 0xb0, + 0x4f, 0x78, 0xc5, 0x4a, 0x12, 0xa3, 0x2c, 0xc4, 0xb4, 0x2a, 0x09, 0xe6, 0xcd, 0x6b, 0xd2, 0xcb, + 0xad, 0xc9, 0xd8, 0xde, 0x52, 0x5e, 0xfe, 0xce, 0x71, 0x82, 0x8d, 0xb9, 0xf1, 0x50, 0xd9, 0xe0, + 0x37, 0x06, 0x58, 0xcd, 0x09, 0x0d, 0x53, 0x24, 0x54, 0x22, 0x31, 0xe6, 0xcd, 0x85, 0xd6, 0x42, + 0x7b, 0x79, 0xef, 0xa6, 0xab, 0xe5, 0x12, 0xda, 0xba, 0x5a, 0x5b, 0xf7, 0x3e, 0x8e, 0x0f, 0x18, + 0xa1, 0xfe, 0x83, 0xb3, 0xb1, 0x5d, 0x9b, 0x8c, 0xed, 0x4d, 0x9d, 0xf2, 0x65, 0x0f, 0xce, 0xb3, + 0x97, 0xf6, 0x3b, 0x29, 0xa9, 0xfa, 0x83, 0xc8, 0x8d, 0x59, 0xae, 0x65, 0xd7, 0x7f, 0xbb, 0x3c, + 0x39, 0xd6, 0xda, 0x68, 0x5f, 0x3c, 0x68, 0xe4, 0x84, 0x7e, 0x82, 0x78, 0x57, 0x86, 0x87, 0x31, + 0x58, 0x8f, 0x4a, 0x92, 0xa4, 0x38, 0xc4, 0x27, 0x38, 0x1e, 0x48, 0x8d, 0xea, 0xad, 0x85, 0xb6, + 0xe9, 0x7f, 0x30, 0x19, 0xdb, 0xff, 0x57, 0x01, 0xaf, 0x32, 0x9c, 0x5f, 0x7e, 0xd8, 0xdd, 0xd4, + 0x09, 0xdf, 0x4b, 0x92, 0x12, 0x73, 0xfe, 0x79, 0x55, 0x12, 0x9a, 0x3e, 0x7d, 0xf5, 0xfc, 0xb6, + 0x11, 0xac, 0x29, 0xfe, 0xe1, 0x94, 0x0e, 0x0f, 0xc0, 0x22, 0x4a, 0x72, 0x42, 0x9b, 0x8b, 0x2d, + 0xa3, 0x6d, 0xfa, 0xbb, 0x93, 0xb1, 0xdd, 0x50, 0x9e, 0xa5, 0xf9, 0x2d, 0xee, 0xd4, 0x59, 0xf8, + 0x18, 0xac, 0xf4, 0x30, 0x0e, 0x9f, 0xf4, 0x49, 0x85, 0x33, 0xc2, 0xab, 0xe6, 0x92, 0x4c, 0xf3, + 0xee, 0x5c, 0x97, 0xd7, 0xe0, 0xb7, 0x38, 0x6d, 0xf4, 0x30, 0x7e, 0x34, 0xe5, 0xee, 0xef, 0x7c, + 0x77, 0x6a, 0xd7, 0xfe, 0x38, 0xb5, 0x8d, 0xaf, 0x5f, 0x3d, 0xbf, 0xbd, 0x3a, 0x6d, 0x12, 0x55, + 0x44, 0xce, 0x8f, 0xd7, 0x80, 0x39, 0xab, 0x08, 0xf8, 0x2e, 0xb8, 0x9e, 0x33, 0x4a, 0x8e, 0x71, + 0x29, 0x6b, 0xc9, 0xf4, 0xe1, 0x64, 0x6c, 0xaf, 0xea, 0x87, 0x51, 0x80, 0x13, 0x4c, 0x29, 0xf0, + 0x63, 0xb0, 0xce, 0x0a, 0x5c, 0x8a, 0x93, 0x21, 0x52, 0x59, 0xc8, 0xe2, 0x31, 0xfd, 0x9d, 0xb9, + 0xbc, 0x57, 0x19, 0x4e, 0xb0, 0x36, 0x35, 0xe9, 0xcc, 0x61, 0x05, 0xd6, 0x63, 0x46, 0x39, 0xa6, + 0x7c, 0xc0, 0xc3, 0x62, 0x10, 0x1d, 0xe3, 0x51, 0x73, 0xa1, 0x65, 0xb4, 0x97, 0xf7, 0x36, 0x5d, + 0xd5, 0x44, 0xee, 0xb4, 0x89, 0xdc, 0x7b, 0x74, 0xe4, 0xdf, 0x99, 0x7b, 0xbf, 0x7a, 0xce, 0xf9, + 0x69, 0x2e, 0x4c, 0x5c, 0x8e, 0x8a, 0x8a, 0xb9, 0xdd, 0x41, 0xf4, 0x00, 0x8f, 0x82, 0xb5, 0x19, + 0xb5, 0x2b, 0x99, 0xf0, 0x3d, 0x00, 0x84, 0x29, 0x2c, 0xd8, 0x13, 0x5c, 0x36, 0xeb, 0x2d, 0xa3, + 0xbd, 0xe0, 0xdf, 0x98, 0x8c, 0xed, 0x8d, 0xb9, 0x67, 0x85, 0x39, 0x81, 0x29, 0x36, 0x5d, 0xb1, + 0xde, 0x6f, 0x7c, 0x75, 0x6a, 0xd7, 0xb4, 0xa0, 0x35, 0x27, 0x04, 0xeb, 0x33, 0xf1, 0xbe, 0x28, + 0x12, 0x54, 0x61, 0x0e, 0x0f, 0xc1, 0xf5, 0x81, 0x5a, 0x36, 0x0d, 0x59, 0xfe, 0x2d, 0x77, 0xde, + 0xee, 0xae, 0x68, 0x77, 0xf7, 0xca, 0x19, 0xdf, 0x14, 0x2d, 0xa0, 0x9e, 0x6e, 0x7a, 0x76, 0xbf, + 0x2e, 0x03, 0xfc, 0x69, 0x00, 0xe0, 0xcb, 0x82, 0x3b, 0xa2, 0x3d, 0x06, 0x77, 0x80, 0xa9, 0xcb, + 0x95, 0x24, 0xf2, 0x85, 0xea, 0xc1, 0xff, 0x94, 0xe1, 0x28, 0x81, 0x1f, 0x82, 0x65, 0x0d, 0x0a, + 0xa9, 0xf5, 0x4b, 0x34, 0xdf, 0x54, 0x29, 0x01, 0x50, 0x64, 0x61, 0x84, 0x16, 0x58, 0xce, 0x3a, + 0x61, 0xdc, 0x47, 0x84, 0x0a, 0xcf, 0x42, 0x7c, 0x33, 0x30, 0xb3, 0xce, 0x81, 0xb0, 0x1c, 0x25, + 0xb0, 0x05, 0x1a, 0x02, 0xcf, 0x08, 0xa6, 0x95, 0x20, 0xd4, 0x25, 0x01, 0x64, 0x9d, 0x03, 0x69, + 0x3a, 0x4a, 0xe0, 0x67, 0x60, 0x45, 0x07, 0x8f, 0x19, 0xed, 0x91, 0x54, 0x76, 0xc3, 0xf2, 0x9e, + 0xe5, 0xce, 0x86, 0xaf, 0x98, 0x66, 0xee, 0xb0, 0xe3, 0xaa, 0xeb, 0x1c, 0x48, 0xd6, 0xe5, 0x9b, + 0x37, 0xa2, 0x4b, 0x80, 0xf3, 0xbd, 0x01, 0xd6, 0xba, 0x98, 0x26, 0x84, 0xa6, 0xf7, 0x71, 0xc1, + 0x38, 0xa9, 0x38, 0x7c, 0x1f, 0x98, 0x25, 0x8e, 0x49, 0x21, 0x42, 0xea, 0xfa, 0x7c, 0xf3, 0xf5, + 0xe6, 0x54, 0xd8, 0x03, 0x8b, 0x62, 0x90, 0x8b, 0xe2, 0x14, 0xef, 0xb1, 0xf5, 0x8f, 0xe3, 0x48, + 0xce, 0xa2, 0xbb, 0x22, 0x9d, 0x67, 0x2f, 0xed, 0xf6, 0xbf, 0x98, 0x39, 0x72, 0xe0, 0xe8, 0x26, + 0x96, 0xee, 0x9d, 0x21, 0x68, 0x48, 0xe3, 0xa3, 0x12, 0x15, 0x05, 0x2e, 0xe7, 0x71, 0x8d, 0xff, + 0x34, 0xae, 0xff, 0xf0, 0xec, 0x77, 0xab, 0xf6, 0xf4, 0xdc, 0x32, 0xce, 0xce, 0x2d, 0xe3, 0xc5, + 0xb9, 0x65, 0xfc, 0x76, 0x6e, 0x19, 0xdf, 0x5e, 0x58, 0xb5, 0x17, 0x17, 0x56, 0xed, 0xd7, 0x0b, + 0xab, 0xf6, 0x78, 0xf7, 0x92, 0x5f, 0xf1, 0x1c, 0x04, 0xed, 0x66, 0x28, 0xe2, 0xde, 0xc3, 0xae, + 0xfc, 0xd4, 0x9c, 0xcc, 0x3e, 0x9d, 0x32, 0x44, 0xb4, 0x24, 0xdb, 0xed, 0xce, 0x5f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0xc0, 0xa1, 0x72, 0xab, 0x59, 0x07, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -437,11 +480,43 @@ func (this *PendingDeposits) Equal(that interface{}) bool { } else if this == nil { return false } - if len(this.Deposits) != len(that1.Deposits) { + if this.Recipient != that1.Recipient { + return false + } + if len(this.Coins) != len(that1.Coins) { return false } - for i := range this.Deposits { - if !this.Deposits[i].Equal(&that1.Deposits[i]) { + 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 + } + + that1, ok := that.(*CoinsWrapper) + if !ok { + that2, ok := that.(CoinsWrapper) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + 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 } } @@ -689,10 +764,54 @@ func (m *PendingDeposits) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.Deposits) > 0 { - for iNdEx := len(m.Deposits) - 1; iNdEx >= 0; iNdEx-- { + if len(m.Coins) > 0 { + for iNdEx := len(m.Coins) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.Deposits[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + 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) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CoinsWrapper) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CoinsWrapper) 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 } @@ -825,8 +944,27 @@ func (m *PendingDeposits) Size() (n int) { } var l int _ = l - if len(m.Deposits) > 0 { - for _, e := range m.Deposits { + 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 + } + var l int + _ = l + if len(m.Coins) > 0 { + for _, e := range m.Coins { l = e.Size() n += 1 + l + sovTypes(uint64(l)) } @@ -1540,7 +1678,123 @@ func (m *PendingDeposits) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Deposits", wireType) + 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 + 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: CoinsWrapper: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CoinsWrapper: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Coins", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1567,8 +1821,8 @@ func (m *PendingDeposits) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Deposits = append(m.Deposits, types.Coin{}) - if err := m.Deposits[len(m.Deposits)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + 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 diff --git a/x/ophost/types/query.pb.go b/x/ophost/types/query.pb.go index 0cab9d23..bbcea246 100644 --- a/x/ophost/types/query.pb.go +++ b/x/ophost/types/query.pb.go @@ -740,8 +740,7 @@ func (m *QueryOutputProposalResponse) GetOutputProposal() Output { // QueryOutputProposalsRequest is response type for the Query/OutputProposals RPC method type QueryOutputProposalsRequest struct { - BridgeId uint64 `protobuf:"varint,1,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` - OutputIndex uint64 `protobuf:"varint,2,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"` + BridgeId uint64 `protobuf:"varint,1,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` // pagination defines the pagination in the request. Pagination *query.PageRequest `protobuf:"bytes,3,opt,name=pagination,proto3" json:"pagination,omitempty"` } @@ -786,13 +785,6 @@ func (m *QueryOutputProposalsRequest) GetBridgeId() uint64 { return 0 } -func (m *QueryOutputProposalsRequest) GetOutputIndex() uint64 { - if m != nil { - return m.OutputIndex - } - return 0 -} - func (m *QueryOutputProposalsRequest) GetPagination() *query.PageRequest { if m != nil { return m.Pagination @@ -1153,85 +1145,85 @@ func init() { func init() { proto.RegisterFile("opinit/ophost/v1/query.proto", fileDescriptor_7dd525d30e46de74) } var fileDescriptor_7dd525d30e46de74 = []byte{ - // 1238 bytes of a gzipped FileDescriptorProto + // 1233 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcf, 0x6f, 0x1b, 0x45, 0x14, 0xf6, 0x24, 0x90, 0x1f, 0xe3, 0xe2, 0x84, 0x69, 0x04, 0x8e, 0x13, 0x39, 0x61, 0x45, 0x12, 0x53, 0x35, 0xde, 0x7a, 0x2b, 0x21, 0xda, 0xd0, 0x20, 0x12, 0x48, 0x9a, 0x12, 0x9a, 0xe0, 0x72, 0xa8, 0x00, 0x69, 0x35, 0xf6, 0x6e, 0xed, 0x15, 0xf6, 0xce, 0x76, 0x67, 0x93, 0x26, 0x84, 0x48, - 0x88, 0x53, 0xb9, 0x21, 0xf5, 0x1f, 0x28, 0x07, 0x24, 0x24, 0x38, 0x20, 0xc4, 0x81, 0x0b, 0x47, - 0x50, 0x0f, 0x1c, 0x2a, 0xb8, 0x70, 0x42, 0x28, 0x01, 0xc1, 0x9f, 0x81, 0x76, 0xe7, 0xad, 0x77, - 0xd7, 0xde, 0x6d, 0xd6, 0x51, 0xb8, 0x54, 0xf5, 0x9b, 0x79, 0xef, 0x7d, 0xdf, 0x7b, 0x6f, 0xe7, - 0x7b, 0x0a, 0x9e, 0x66, 0x96, 0x61, 0x1a, 0x8e, 0xcc, 0xac, 0x26, 0xe3, 0x8e, 0xbc, 0x5b, 0x91, - 0xef, 0xee, 0xe8, 0xf6, 0x7e, 0xd9, 0xb2, 0x99, 0xc3, 0xc8, 0xb8, 0x38, 0x2d, 0x8b, 0xd3, 0xf2, - 0x6e, 0xa5, 0xf0, 0x2c, 0x6d, 0x1b, 0x26, 0x93, 0xbd, 0x7f, 0xc5, 0xa5, 0xc2, 0x85, 0x3a, 0xe3, - 0x6d, 0xc6, 0xe5, 0x1a, 0xe5, 0xba, 0xf0, 0x96, 0x77, 0x2b, 0x35, 0xdd, 0xa1, 0x15, 0xd9, 0xa2, - 0x0d, 0xc3, 0xa4, 0x8e, 0xc1, 0x4c, 0xb8, 0x3b, 0x05, 0x77, 0xfd, 0x6b, 0xe1, 0x6c, 0x85, 0x49, - 0x71, 0xa8, 0x7a, 0xbf, 0x64, 0xf1, 0x03, 0x8e, 0x26, 0x1a, 0xac, 0xc1, 0x84, 0xdd, 0xfd, 0x1f, - 0x58, 0xa7, 0x1b, 0x8c, 0x35, 0x5a, 0xba, 0x4c, 0x2d, 0x43, 0xa6, 0xa6, 0xc9, 0x1c, 0x2f, 0x95, - 0xef, 0xd3, 0x4b, 0xcd, 0xd9, 0xb7, 0x74, 0x38, 0x95, 0x96, 0x30, 0x79, 0xc7, 0xcd, 0xbd, 0x62, - 0x1b, 0x5a, 0x43, 0xaf, 0xea, 0x77, 0x77, 0x74, 0xee, 0x90, 0x29, 0x3c, 0x5a, 0xf3, 0x0c, 0xaa, - 0xa1, 0xe5, 0xd1, 0x2c, 0x2a, 0x3d, 0x55, 0x1d, 0x11, 0x86, 0x0d, 0xed, 0xea, 0xc8, 0xfd, 0x87, - 0x33, 0x99, 0x7f, 0x1f, 0xce, 0x64, 0xa4, 0x1f, 0x11, 0x3e, 0x1f, 0xf1, 0xe6, 0x16, 0x33, 0xb9, - 0xfe, 0x44, 0x77, 0x72, 0x05, 0x67, 0xe1, 0x90, 0x6a, 0x9a, 0x9d, 0x1f, 0x98, 0x45, 0xa5, 0xd1, - 0x95, 0xfc, 0xaf, 0xdf, 0x2f, 0x4e, 0x00, 0xd5, 0xd7, 0x35, 0xcd, 0xd6, 0x39, 0xbf, 0xe5, 0xd8, - 0x86, 0xd9, 0xa8, 0x62, 0x71, 0xd9, 0x35, 0x92, 0x9b, 0xf8, 0x19, 0x70, 0xad, 0x33, 0xf3, 0x8e, - 0xd1, 0xc8, 0x0f, 0xce, 0xa2, 0x52, 0x56, 0x29, 0x96, 0xbb, 0xfb, 0x53, 0x16, 0x80, 0x56, 0xbd, - 0x5b, 0x2b, 0xa3, 0x8f, 0xfe, 0x98, 0xc9, 0x7c, 0xf5, 0xcf, 0xb7, 0x17, 0x50, 0xf5, 0x5c, 0x2d, - 0x74, 0x20, 0x35, 0x22, 0xf0, 0xb9, 0xcf, 0x7e, 0x0d, 0xe3, 0xa0, 0x63, 0x1e, 0xfe, 0xac, 0x32, - 0x5f, 0x06, 0x74, 0x6e, 0x7b, 0xcb, 0xa2, 0x5d, 0xd0, 0xde, 0xf2, 0x36, 0xed, 0x54, 0xae, 0x1a, - 0xf2, 0x0c, 0x15, 0xea, 0x6b, 0x84, 0x27, 0xa2, 0x99, 0xa0, 0x52, 0x37, 0xf0, 0xb0, 0x40, 0xc4, - 0xf3, 0x68, 0x76, 0xb0, 0x94, 0x55, 0xe6, 0x7a, 0xb9, 0xc4, 0x54, 0x38, 0x4c, 0xc9, 0x0f, 0x40, - 0xd6, 0x23, 0xb0, 0x07, 0x3c, 0xd8, 0x0b, 0x27, 0xc2, 0x16, 0x01, 0xc3, 0xb8, 0xa5, 0xdb, 0xb8, - 0xe8, 0xe5, 0x7c, 0x97, 0x7d, 0xa8, 0x9b, 0xdb, 0xd4, 0xb0, 0x57, 0xf6, 0x37, 0x2b, 0x6f, 0xe8, - 0x26, 0x6b, 0xa7, 0x99, 0x0f, 0x32, 0x89, 0x47, 0x5a, 0x15, 0x55, 0x73, 0xef, 0x8b, 0xee, 0x56, - 0x87, 0x5b, 0xc2, 0x5d, 0x6a, 0xe2, 0x99, 0xc4, 0xc8, 0x50, 0x91, 0x37, 0x31, 0x76, 0xdc, 0x53, - 0xd5, 0xa2, 0x86, 0x0d, 0xc5, 0x9f, 0xea, 0x2d, 0x4a, 0x10, 0x21, 0x54, 0x8a, 0x51, 0xc7, 0xb7, - 0xc6, 0x72, 0x50, 0xfa, 0xe3, 0xa0, 0x74, 0x71, 0x50, 0x92, 0x39, 0x28, 0xff, 0x0b, 0x87, 0x43, - 0xfc, 0x5c, 0x34, 0x13, 0x4f, 0x85, 0x7d, 0x2d, 0x66, 0x0e, 0x4e, 0x31, 0xbe, 0xee, 0xd0, 0x3e, - 0xdf, 0x93, 0x1f, 0x18, 0xae, 0xe3, 0x6c, 0xc0, 0xd0, 0x9f, 0xdd, 0xb4, 0x14, 0x71, 0x87, 0xe2, - 0x19, 0x0e, 0xed, 0x32, 0xb4, 0x65, 0x93, 0x72, 0x67, 0xcd, 0x30, 0x69, 0xcb, 0xf8, 0x48, 0xd7, - 0xb6, 0x76, 0x1c, 0x6b, 0xc7, 0x49, 0x53, 0x35, 0xe9, 0x01, 0xc2, 0xb3, 0xc9, 0x01, 0x80, 0xf6, - 0x0b, 0xf8, 0x1c, 0xf3, 0x2c, 0xaa, 0x61, 0x6a, 0xfa, 0x1e, 0x04, 0xc9, 0x0a, 0xdb, 0x86, 0x6b, - 0x22, 0x9b, 0x78, 0x0c, 0xae, 0x58, 0x36, 0xb3, 0x18, 0xa7, 0x2d, 0x60, 0x95, 0xef, 0xad, 0x8e, - 0x88, 0x1e, 0x2e, 0x4d, 0x4e, 0xf8, 0x6e, 0x83, 0xab, 0xf4, 0x01, 0x2e, 0x78, 0xa0, 0xb6, 0x22, - 0xe6, 0x54, 0x63, 0xd0, 0x8d, 0x75, 0xa0, 0x07, 0xab, 0xdb, 0xe1, 0xa9, 0xd8, 0xf0, 0x69, 0xde, - 0xf1, 0x93, 0xe3, 0xc7, 0xd5, 0x62, 0xf0, 0xf4, 0xb5, 0xf8, 0x32, 0x1e, 0x2d, 0x3f, 0xa3, 0x6a, - 0x74, 0x7d, 0x37, 0x83, 0xa7, 0xfe, 0x6e, 0x7e, 0x41, 0x78, 0x3a, 0x1e, 0x27, 0x94, 0xb5, 0x8e, - 0xc7, 0xbb, 0xca, 0xe2, 0x7f, 0x41, 0x8b, 0x09, 0xaf, 0x7f, 0x7c, 0x7f, 0xc2, 0xc5, 0x1a, 0x8b, - 0x16, 0xeb, 0x0c, 0x3f, 0xac, 0x09, 0xd8, 0x10, 0xb6, 0xa9, 0x4d, 0xdb, 0x7e, 0xb1, 0xa5, 0x2a, - 0x48, 0xa7, 0x6f, 0x05, 0x6a, 0x4b, 0x78, 0xc8, 0xf2, 0x2c, 0xf0, 0xea, 0xc5, 0x34, 0x5a, 0x78, - 0x84, 0xb1, 0x83, 0x8b, 0xf4, 0x3e, 0xc4, 0x5c, 0x6d, 0x51, 0xa3, 0xad, 0x6b, 0xa9, 0xfa, 0xba, - 0x80, 0xc7, 0xee, 0x19, 0x4e, 0x53, 0xb3, 0xe9, 0x3d, 0xda, 0x52, 0x9b, 0x94, 0x37, 0x3d, 0xae, - 0xe7, 0xaa, 0xb9, 0xc0, 0x7c, 0x9d, 0xf2, 0xa6, 0x74, 0x09, 0x14, 0xb8, 0x13, 0x1c, 0x10, 0xe7, - 0xf1, 0x70, 0x5d, 0x98, 0xbc, 0xd8, 0x23, 0x55, 0xff, 0xa7, 0x74, 0x05, 0xbe, 0xbd, 0x9b, 0xfa, - 0x9e, 0xb3, 0x59, 0xb9, 0xe5, 0xa2, 0x31, 0xeb, 0xa9, 0x56, 0x24, 0x69, 0x1d, 0x26, 0xb5, 0xdb, - 0x15, 0x72, 0x96, 0xf0, 0xb8, 0xa9, 0xef, 0x39, 0x6a, 0xab, 0xa2, 0x72, 0x38, 0x83, 0x10, 0x39, - 0x33, 0xe2, 0xa1, 0xfc, 0x9d, 0xc3, 0x4f, 0x7b, 0x91, 0xc8, 0x67, 0x08, 0x0f, 0x89, 0x25, 0x80, - 0xbc, 0x78, 0xc2, 0x8e, 0xe0, 0x01, 0x2c, 0xa4, 0xdb, 0x24, 0x24, 0xe5, 0xbe, 0xdb, 0x83, 0x4f, - 0x7f, 0xfb, 0xeb, 0xc1, 0xc0, 0x02, 0x99, 0x93, 0x7b, 0x96, 0x45, 0xd8, 0x2e, 0xe4, 0x83, 0x0e, - 0xdb, 0x43, 0xf2, 0x09, 0xc2, 0xc3, 0xb0, 0xc9, 0x90, 0x27, 0xa7, 0xf1, 0xe7, 0xa5, 0x30, 0x7f, - 0xd2, 0x35, 0x80, 0x33, 0x1f, 0xc0, 0x99, 0x22, 0x93, 0x89, 0x70, 0xc8, 0x4f, 0x08, 0x93, 0xde, - 0x2d, 0x82, 0x5c, 0x4a, 0x48, 0x93, 0xb8, 0xca, 0x14, 0x2a, 0x7d, 0x78, 0x00, 0xc6, 0x1b, 0x01, - 0xc6, 0xd7, 0xc8, 0xb5, 0x54, 0x25, 0x93, 0x43, 0x6a, 0x29, 0xd7, 0xf6, 0x55, 0x7f, 0x41, 0xea, - 0xe1, 0xa1, 0xa4, 0xe7, 0xa1, 0xf4, 0xcd, 0x43, 0x39, 0x7b, 0x1e, 0xb0, 0x24, 0x91, 0x2f, 0x10, - 0xc6, 0xc1, 0x9e, 0x40, 0x4a, 0x27, 0xa1, 0xe9, 0x0c, 0xc6, 0x4b, 0x29, 0x6e, 0x02, 0xde, 0xe5, - 0x00, 0xef, 0x65, 0x52, 0xe9, 0x1b, 0x2f, 0xf9, 0x19, 0xe1, 0xf3, 0x31, 0xea, 0x4e, 0x92, 0x4a, - 0x97, 0xbc, 0x4a, 0x14, 0x94, 0x7e, 0x5c, 0x00, 0xfe, 0xf5, 0x00, 0xfe, 0x35, 0xb2, 0x94, 0x0e, - 0x7e, 0x8b, 0x72, 0x47, 0xbd, 0xe3, 0x07, 0x54, 0xc5, 0x23, 0x4f, 0x7e, 0x40, 0x38, 0x17, 0x95, - 0x04, 0x72, 0x31, 0xa5, 0x72, 0x08, 0xf8, 0xfd, 0xe9, 0x8c, 0xb4, 0x11, 0x20, 0x5f, 0x26, 0xaf, - 0xa6, 0x43, 0x2e, 0xa0, 0x72, 0xf9, 0x20, 0x2c, 0xbb, 0x87, 0xe4, 0x1b, 0x84, 0xc7, 0xba, 0x74, - 0x91, 0xa4, 0x43, 0xd3, 0x99, 0x98, 0x72, 0xda, 0xeb, 0x80, 0xfe, 0x6a, 0x80, 0x5e, 0x26, 0x8b, - 0x7d, 0xa1, 0x27, 0x1f, 0xe3, 0x21, 0xa1, 0x57, 0x89, 0x8f, 0x6e, 0x44, 0x16, 0x13, 0x1f, 0xdd, - 0xa8, 0x4c, 0x4a, 0x73, 0x01, 0xa4, 0x02, 0xc9, 0xf7, 0x42, 0x12, 0x82, 0x48, 0xbe, 0x43, 0x78, - 0x18, 0xf4, 0x2a, 0xf1, 0x9d, 0x8d, 0x8a, 0x65, 0xe2, 0x3b, 0xdb, 0x25, 0x7b, 0xd2, 0xed, 0x00, - 0xc1, 0xdb, 0xe4, 0xad, 0x74, 0x45, 0x09, 0x14, 0x95, 0xcb, 0x07, 0x5d, 0xaa, 0x7b, 0x28, 0x83, - 0x6c, 0xba, 0xa0, 0x73, 0x51, 0xdd, 0x4b, 0x1c, 0xce, 0x58, 0x65, 0x4d, 0x1c, 0xce, 0x78, 0x31, - 0x95, 0x56, 0x03, 0x26, 0xaf, 0x90, 0x97, 0xd3, 0x31, 0xe9, 0x56, 0xdf, 0x95, 0xb5, 0x47, 0x47, - 0x45, 0xf4, 0xf8, 0xa8, 0x88, 0xfe, 0x3c, 0x2a, 0xa2, 0xcf, 0x8f, 0x8b, 0x99, 0xc7, 0xc7, 0xc5, - 0xcc, 0xef, 0xc7, 0xc5, 0xcc, 0x7b, 0x17, 0x1b, 0x86, 0xd3, 0xdc, 0xa9, 0x95, 0xeb, 0xac, 0x2d, - 0xbb, 0x91, 0x0d, 0xba, 0xd8, 0xa2, 0x35, 0x2e, 0x6f, 0x6d, 0x7b, 0x79, 0xf6, 0xfc, 0x4c, 0xde, - 0x1f, 0x55, 0x6a, 0x43, 0xde, 0x5f, 0x55, 0x2e, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x39, 0x98, - 0x0c, 0x4d, 0x50, 0x12, 0x00, 0x00, + 0xa8, 0xa7, 0x72, 0x43, 0xea, 0x3f, 0x50, 0x6e, 0x48, 0x70, 0x40, 0x88, 0x03, 0x17, 0x8e, 0xa0, + 0x1e, 0x38, 0x54, 0x70, 0xe1, 0x84, 0x50, 0x02, 0x82, 0x3f, 0x03, 0xed, 0xce, 0x5b, 0xef, 0xae, + 0xbd, 0xdb, 0xac, 0xa3, 0x70, 0x89, 0xb2, 0x6f, 0xe6, 0xbd, 0xf7, 0x7d, 0x6f, 0xde, 0xcc, 0xf7, + 0x64, 0x3c, 0xcd, 0x2c, 0xc3, 0x34, 0x1c, 0x99, 0x59, 0x4d, 0xc6, 0x1d, 0x79, 0xb7, 0x22, 0xdf, + 0xdd, 0xd1, 0xed, 0xfd, 0xb2, 0x65, 0x33, 0x87, 0x91, 0x71, 0xb1, 0x5a, 0x16, 0xab, 0xe5, 0xdd, + 0x4a, 0xe1, 0x79, 0xda, 0x36, 0x4c, 0x26, 0x7b, 0x7f, 0xc5, 0xa6, 0xc2, 0x85, 0x3a, 0xe3, 0x6d, + 0xc6, 0xe5, 0x1a, 0xe5, 0xba, 0xf0, 0x96, 0x77, 0x2b, 0x35, 0xdd, 0xa1, 0x15, 0xd9, 0xa2, 0x0d, + 0xc3, 0xa4, 0x8e, 0xc1, 0x4c, 0xd8, 0x3b, 0x05, 0x7b, 0xfd, 0x6d, 0xe1, 0x6c, 0x85, 0x49, 0xb1, + 0xa8, 0x7a, 0x5f, 0xb2, 0xf8, 0x80, 0xa5, 0x89, 0x06, 0x6b, 0x30, 0x61, 0x77, 0xff, 0x03, 0xeb, + 0x74, 0x83, 0xb1, 0x46, 0x4b, 0x97, 0xa9, 0x65, 0xc8, 0xd4, 0x34, 0x99, 0xe3, 0xa5, 0xf2, 0x7d, + 0x7a, 0xa9, 0x39, 0xfb, 0x96, 0x0e, 0xab, 0xd2, 0x12, 0x26, 0xef, 0xb9, 0xb9, 0x57, 0x6c, 0x43, + 0x6b, 0xe8, 0x55, 0xfd, 0xee, 0x8e, 0xce, 0x1d, 0x32, 0x85, 0x47, 0x6b, 0x9e, 0x41, 0x35, 0xb4, + 0x3c, 0x9a, 0x45, 0xa5, 0x67, 0xaa, 0x23, 0xc2, 0xb0, 0xa1, 0x5d, 0x1d, 0x79, 0xf0, 0x68, 0x26, + 0xf3, 0xef, 0xa3, 0x99, 0x8c, 0xf4, 0x23, 0xc2, 0xe7, 0x23, 0xde, 0xdc, 0x62, 0x26, 0xd7, 0x9f, + 0xea, 0x4e, 0xae, 0xe0, 0x2c, 0x2c, 0x52, 0x4d, 0xb3, 0xf3, 0x03, 0xb3, 0xa8, 0x34, 0xba, 0x92, + 0xff, 0xf5, 0xfb, 0xc5, 0x09, 0xa0, 0xfa, 0xa6, 0xa6, 0xd9, 0x3a, 0xe7, 0xb7, 0x1c, 0xdb, 0x30, + 0x1b, 0x55, 0x2c, 0x36, 0xbb, 0x46, 0x72, 0x13, 0x3f, 0x07, 0xae, 0x75, 0x66, 0xde, 0x31, 0x1a, + 0xf9, 0xc1, 0x59, 0x54, 0xca, 0x2a, 0xc5, 0x72, 0xf7, 0xf9, 0x94, 0x05, 0xa0, 0x55, 0x6f, 0xd7, + 0xca, 0xe8, 0xe3, 0x3f, 0x66, 0x32, 0x5f, 0xfd, 0xf3, 0xed, 0x05, 0x54, 0x3d, 0x57, 0x0b, 0x2d, + 0x48, 0x8d, 0x08, 0x7c, 0xee, 0xb3, 0x5f, 0xc3, 0x38, 0x38, 0x31, 0x0f, 0x7f, 0x56, 0x99, 0x2f, + 0x03, 0x3a, 0xf7, 0x78, 0xcb, 0xe2, 0xb8, 0xe0, 0x78, 0xcb, 0xdb, 0xb4, 0x53, 0xb9, 0x6a, 0xc8, + 0x33, 0x54, 0xa8, 0xaf, 0x11, 0x9e, 0x88, 0x66, 0x82, 0x4a, 0xdd, 0xc0, 0xc3, 0x02, 0x11, 0xcf, + 0xa3, 0xd9, 0xc1, 0x52, 0x56, 0x99, 0xeb, 0xe5, 0x12, 0x53, 0xe1, 0x30, 0x25, 0x3f, 0x00, 0x59, + 0x8f, 0xc0, 0x1e, 0xf0, 0x60, 0x2f, 0x9c, 0x08, 0x5b, 0x04, 0x0c, 0xe3, 0x96, 0x6e, 0xe3, 0xa2, + 0x97, 0xf3, 0x7d, 0xf6, 0xb1, 0x6e, 0x6e, 0x53, 0xc3, 0x5e, 0xd9, 0xdf, 0xac, 0xbc, 0xa5, 0x9b, + 0xac, 0x9d, 0xa6, 0x3f, 0xc8, 0x24, 0x1e, 0x69, 0x55, 0x54, 0xcd, 0xdd, 0x2f, 0x4e, 0xb7, 0x3a, + 0xdc, 0x12, 0xee, 0x52, 0x13, 0xcf, 0x24, 0x46, 0x86, 0x8a, 0xbc, 0x8d, 0xb1, 0xe3, 0xae, 0xaa, + 0x16, 0x35, 0x6c, 0x28, 0xfe, 0x54, 0x6f, 0x51, 0x82, 0x08, 0xa1, 0x52, 0x8c, 0x3a, 0xbe, 0x35, + 0x96, 0x83, 0xd2, 0x1f, 0x07, 0xa5, 0x8b, 0x83, 0x92, 0xcc, 0x41, 0xf9, 0x5f, 0x38, 0x1c, 0xe2, + 0x17, 0xa2, 0x99, 0x78, 0x2a, 0xec, 0x6b, 0x31, 0x7d, 0x70, 0x8a, 0xf6, 0x75, 0x9b, 0xf6, 0xc5, + 0x9e, 0xfc, 0xc0, 0x70, 0x1d, 0x67, 0x03, 0x86, 0x7e, 0xef, 0xa6, 0xa5, 0x88, 0x3b, 0x14, 0xcf, + 0xb0, 0x69, 0x97, 0xe1, 0x58, 0x36, 0x29, 0x77, 0xd6, 0x0c, 0x93, 0xb6, 0x8c, 0x4f, 0x74, 0x6d, + 0x6b, 0xc7, 0xb1, 0x76, 0x9c, 0x34, 0x55, 0x93, 0x1e, 0x22, 0x3c, 0x9b, 0x1c, 0x00, 0x68, 0xbf, + 0x84, 0xcf, 0x31, 0xcf, 0xa2, 0x1a, 0xa6, 0xa6, 0xef, 0x41, 0x90, 0xac, 0xb0, 0x6d, 0xb8, 0x26, + 0xb2, 0x89, 0xc7, 0x60, 0x8b, 0x65, 0x33, 0x8b, 0x71, 0xda, 0x02, 0x56, 0xf9, 0xde, 0xea, 0x88, + 0xe8, 0xe1, 0xd2, 0xe4, 0x84, 0xef, 0x36, 0xb8, 0x4a, 0x1f, 0xe1, 0x82, 0x07, 0x6a, 0x2b, 0x62, + 0x4e, 0xd5, 0x06, 0xdd, 0x58, 0x07, 0x7a, 0xb0, 0xba, 0x27, 0x3c, 0x15, 0x1b, 0x3e, 0xcd, 0x3b, + 0x7e, 0x72, 0xfc, 0xb8, 0x5a, 0x0c, 0x9e, 0xbe, 0x16, 0xf7, 0xe3, 0xd1, 0x9e, 0xe6, 0x52, 0x0c, + 0x9e, 0xfa, 0x52, 0xfc, 0x82, 0xf0, 0x74, 0x3c, 0x08, 0xa8, 0x59, 0x1d, 0x8f, 0x77, 0x71, 0xf6, + 0xaf, 0xc7, 0x62, 0xc2, 0xd3, 0x1e, 0x5f, 0xfc, 0x70, 0x25, 0xc6, 0xa2, 0x95, 0x38, 0xc3, 0x5b, + 0x33, 0x01, 0xf2, 0xbf, 0x4d, 0x6d, 0xda, 0xf6, 0x2b, 0x29, 0x55, 0x41, 0x17, 0x7d, 0x2b, 0x50, + 0x5b, 0xc2, 0x43, 0x96, 0x67, 0x81, 0x27, 0x2d, 0xe6, 0x14, 0x85, 0x47, 0x18, 0x3b, 0xb8, 0x48, + 0x1f, 0x42, 0xcc, 0xd5, 0x16, 0x35, 0xda, 0xba, 0x96, 0xea, 0xd0, 0x16, 0xf0, 0xd8, 0x3d, 0xc3, + 0x69, 0x6a, 0x36, 0xbd, 0x47, 0x5b, 0x6a, 0x93, 0xf2, 0xa6, 0xc7, 0xf5, 0x5c, 0x35, 0x17, 0x98, + 0xaf, 0x53, 0xde, 0x94, 0x2e, 0x81, 0xbc, 0x76, 0x82, 0x03, 0xe2, 0x3c, 0x1e, 0xae, 0x0b, 0x93, + 0x17, 0x7b, 0xa4, 0xea, 0x7f, 0x4a, 0x57, 0xe0, 0x62, 0xdd, 0xd4, 0xf7, 0x9c, 0xcd, 0xca, 0x2d, + 0x17, 0x8d, 0x59, 0x4f, 0x35, 0xff, 0x48, 0xeb, 0xd0, 0x86, 0xdd, 0xae, 0x90, 0xb3, 0x84, 0xc7, + 0x4d, 0x7d, 0xcf, 0x51, 0x5b, 0x15, 0x95, 0xc3, 0x1a, 0x84, 0xc8, 0x99, 0x11, 0x0f, 0xe5, 0xef, + 0x1c, 0x7e, 0xd6, 0x8b, 0x44, 0x3e, 0x47, 0x78, 0x48, 0x28, 0x3c, 0x79, 0xf9, 0x84, 0x01, 0xc0, + 0x03, 0x58, 0x48, 0x37, 0x26, 0x48, 0xca, 0x03, 0xf7, 0x0c, 0xee, 0xff, 0xf6, 0xd7, 0xc3, 0x81, + 0x05, 0x32, 0x27, 0xf7, 0x4c, 0x82, 0x30, 0x3a, 0xc8, 0x07, 0x1d, 0xb6, 0x87, 0xe4, 0x33, 0x84, + 0x87, 0x61, 0x4c, 0x21, 0x4f, 0x4f, 0xe3, 0xf7, 0x4b, 0x61, 0xfe, 0xa4, 0x6d, 0x00, 0x67, 0x3e, + 0x80, 0x33, 0x45, 0x26, 0x13, 0xe1, 0x90, 0x9f, 0x10, 0x26, 0xbd, 0x23, 0x02, 0xb9, 0x94, 0x90, + 0x26, 0x71, 0x4e, 0x29, 0x54, 0xfa, 0xf0, 0x00, 0x8c, 0x37, 0x02, 0x8c, 0x6f, 0x90, 0x6b, 0xa9, + 0x4a, 0x26, 0x87, 0xa4, 0x50, 0xae, 0xed, 0xab, 0xfe, 0xf4, 0xd3, 0xc3, 0x43, 0x49, 0xcf, 0x43, + 0xe9, 0x9b, 0x87, 0x72, 0xf6, 0x3c, 0x60, 0x02, 0x22, 0x5f, 0x22, 0x8c, 0x83, 0x21, 0x80, 0x94, + 0x4e, 0x42, 0xd3, 0x69, 0x8c, 0x57, 0x52, 0xec, 0x04, 0xbc, 0xcb, 0x01, 0xde, 0xcb, 0xa4, 0xd2, + 0x37, 0x5e, 0xf2, 0x33, 0xc2, 0xe7, 0x63, 0xa4, 0x9b, 0x24, 0x95, 0x2e, 0x79, 0x4e, 0x28, 0x28, + 0xfd, 0xb8, 0x00, 0xfc, 0xeb, 0x01, 0xfc, 0x6b, 0x64, 0x29, 0x1d, 0xfc, 0x16, 0xe5, 0x8e, 0x7a, + 0xc7, 0x0f, 0xa8, 0x8a, 0x47, 0x9e, 0xfc, 0x80, 0x70, 0x2e, 0x2a, 0x09, 0xe4, 0x62, 0x4a, 0xe5, + 0x10, 0xf0, 0xfb, 0xd3, 0x19, 0x69, 0x23, 0x40, 0xbe, 0x4c, 0x5e, 0x4f, 0x87, 0x5c, 0x40, 0xe5, + 0xf2, 0x41, 0x78, 0x02, 0x38, 0x24, 0xdf, 0x20, 0x3c, 0xd6, 0xa5, 0x8b, 0x24, 0x1d, 0x9a, 0x4e, + 0xc7, 0x94, 0xd3, 0x6e, 0x07, 0xf4, 0x57, 0x03, 0xf4, 0x32, 0x59, 0xec, 0x0b, 0x3d, 0xf9, 0x14, + 0x0f, 0x09, 0xbd, 0x4a, 0x7c, 0x74, 0x23, 0xb2, 0x98, 0xf8, 0xe8, 0x46, 0x65, 0x52, 0x9a, 0x0b, + 0x20, 0x15, 0x48, 0xbe, 0x17, 0x92, 0x10, 0x44, 0xf2, 0x1d, 0xc2, 0xc3, 0xa0, 0x57, 0x89, 0xef, + 0x6c, 0x54, 0x2c, 0x13, 0xdf, 0xd9, 0x2e, 0xd9, 0x93, 0x6e, 0x07, 0x08, 0xde, 0x25, 0xef, 0xa4, + 0x2b, 0x4a, 0xa0, 0xa8, 0x5c, 0x3e, 0xe8, 0x52, 0xdd, 0x43, 0x19, 0x64, 0xd3, 0x05, 0x9d, 0x8b, + 0xea, 0x5e, 0x62, 0x73, 0xc6, 0x2a, 0x6b, 0x62, 0x73, 0xc6, 0x8b, 0xa9, 0xb4, 0x1a, 0x30, 0x79, + 0x8d, 0xbc, 0x9a, 0x8e, 0x49, 0xb7, 0xfa, 0xae, 0xac, 0x3d, 0x3e, 0x2a, 0xa2, 0x27, 0x47, 0x45, + 0xf4, 0xe7, 0x51, 0x11, 0x7d, 0x71, 0x5c, 0xcc, 0x3c, 0x39, 0x2e, 0x66, 0x7e, 0x3f, 0x2e, 0x66, + 0x3e, 0xb8, 0xd8, 0x30, 0x9c, 0xe6, 0x4e, 0xad, 0x5c, 0x67, 0x6d, 0xd9, 0x8d, 0x6c, 0xd0, 0xc5, + 0x16, 0xad, 0x71, 0x79, 0x6b, 0xdb, 0xcb, 0xb3, 0xe7, 0x67, 0xf2, 0x7e, 0x31, 0xa9, 0x0d, 0x79, + 0x3f, 0x99, 0x5c, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x59, 0x32, 0x8e, 0x4b, 0x2d, 0x12, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1256,6 +1248,7 @@ type QueryClient interface { TokenPairByL2Denom(ctx context.Context, in *QueryTokenPairByL2DenomRequest, opts ...grpc.CallOption) (*QueryTokenPairByL2DenomResponse, error) // TokenPairs queries all (l1 denom, l2 denom) pair. TokenPairs(ctx context.Context, in *QueryTokenPairsRequest, opts ...grpc.CallOption) (*QueryTokenPairsResponse, error) + // LastFinalizedOutput queries last finalized output. LastFinalizedOutput(ctx context.Context, in *QueryLastFinalizedOutputRequest, opts ...grpc.CallOption) (*QueryLastFinalizedOutputResponse, error) // OutputProposal queries output proposal by output index. OutputProposal(ctx context.Context, in *QueryOutputProposalRequest, opts ...grpc.CallOption) (*QueryOutputProposalResponse, error) @@ -1388,6 +1381,7 @@ type QueryServer interface { TokenPairByL2Denom(context.Context, *QueryTokenPairByL2DenomRequest) (*QueryTokenPairByL2DenomResponse, error) // TokenPairs queries all (l1 denom, l2 denom) pair. TokenPairs(context.Context, *QueryTokenPairsRequest) (*QueryTokenPairsResponse, error) + // LastFinalizedOutput queries last finalized output. LastFinalizedOutput(context.Context, *QueryLastFinalizedOutputRequest) (*QueryLastFinalizedOutputResponse, error) // OutputProposal queries output proposal by output index. OutputProposal(context.Context, *QueryOutputProposalRequest) (*QueryOutputProposalResponse, error) @@ -2250,11 +2244,6 @@ func (m *QueryOutputProposalsRequest) MarshalToSizedBuffer(dAtA []byte) (int, er i-- dAtA[i] = 0x1a } - if m.OutputIndex != 0 { - i = encodeVarintQuery(dAtA, i, uint64(m.OutputIndex)) - i-- - dAtA[i] = 0x10 - } if m.BridgeId != 0 { i = encodeVarintQuery(dAtA, i, uint64(m.BridgeId)) i-- @@ -2721,9 +2710,6 @@ func (m *QueryOutputProposalsRequest) Size() (n int) { if m.BridgeId != 0 { n += 1 + sovQuery(uint64(m.BridgeId)) } - if m.OutputIndex != 0 { - n += 1 + sovQuery(uint64(m.OutputIndex)) - } if m.Pagination != nil { l = m.Pagination.Size() n += 1 + l + sovQuery(uint64(l)) @@ -4258,25 +4244,6 @@ func (m *QueryOutputProposalsRequest) Unmarshal(dAtA []byte) error { break } } - case 2: - 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 ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.OutputIndex |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) From c1c6720b282a85be53d7608e437294a93b3158ea Mon Sep 17 00:00:00 2001 From: sh-cha Date: Tue, 9 Jul 2024 12:55:47 +0900 Subject: [PATCH 7/7] proto & pulsar --- api/opinit/opchild/v1/genesis.pulsar.go | 330 +++++++++---- api/opinit/opchild/v1/types.pulsar.go | 611 ++++++++++++++++++++++-- api/opinit/ophost/v1/query.pulsar.go | 390 +++++++-------- api/opinit/ophost/v1/query_grpc.pb.go | 2 + x/ophost/types/query.pb.go | 189 +++----- 5 files changed, 1070 insertions(+), 452 deletions(-) diff --git a/api/opinit/opchild/v1/genesis.pulsar.go b/api/opinit/opchild/v1/genesis.pulsar.go index 393732a1..943b7463 100644 --- a/api/opinit/opchild/v1/genesis.pulsar.go +++ b/api/opinit/opchild/v1/genesis.pulsar.go @@ -117,15 +117,67 @@ 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 ( md_GenesisState protoreflect.MessageDescriptor fd_GenesisState_params protoreflect.FieldDescriptor fd_GenesisState_last_validator_powers protoreflect.FieldDescriptor fd_GenesisState_validators protoreflect.FieldDescriptor - fd_GenesisState_exported protoreflect.FieldDescriptor + fd_GenesisState_pending_deposits 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() { @@ -134,10 +186,11 @@ 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_exported = md_GenesisState.Fields().ByName("exported") + fd_GenesisState_pending_deposits = md_GenesisState.Fields().ByName("pending_deposits") 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") + fd_GenesisState_exported = md_GenesisState.Fields().ByName("exported") } var _ protoreflect.Message = (*fastReflection_GenesisState)(nil) @@ -223,9 +276,9 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, return } } - if x.Exported != false { - value := protoreflect.ValueOfBool(x.Exported) - if !f(fd_GenesisState_exported, value) { + if len(x.PendingDeposits) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_4_list{list: &x.PendingDeposits}) + if !f(fd_GenesisState_pending_deposits, value) { return } } @@ -247,6 +300,12 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, return } } + if x.Exported != false { + value := protoreflect.ValueOfBool(x.Exported) + if !f(fd_GenesisState_exported, value) { + return + } + } } // Has reports whether a field is populated. @@ -268,14 +327,16 @@ 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.exported": - return x.Exported != false + case "opinit.opchild.v1.GenesisState.pending_deposits": + return len(x.PendingDeposits) != 0 case "opinit.opchild.v1.GenesisState.next_l2_sequence": return x.NextL2Sequence != uint64(0) case "opinit.opchild.v1.GenesisState.next_l1_sequence": return x.NextL1Sequence != uint64(0) case "opinit.opchild.v1.GenesisState.bridge_info": return x.BridgeInfo != nil + case "opinit.opchild.v1.GenesisState.exported": + return x.Exported != false default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.GenesisState")) @@ -298,14 +359,16 @@ 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.exported": - x.Exported = false + case "opinit.opchild.v1.GenesisState.pending_deposits": + x.PendingDeposits = nil case "opinit.opchild.v1.GenesisState.next_l2_sequence": x.NextL2Sequence = uint64(0) case "opinit.opchild.v1.GenesisState.next_l1_sequence": x.NextL1Sequence = uint64(0) case "opinit.opchild.v1.GenesisState.bridge_info": x.BridgeInfo = nil + case "opinit.opchild.v1.GenesisState.exported": + x.Exported = false default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.GenesisState")) @@ -337,9 +400,12 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto } listValue := &_GenesisState_3_list{list: &x.Validators} return protoreflect.ValueOfList(listValue) - case "opinit.opchild.v1.GenesisState.exported": - value := x.Exported - return protoreflect.ValueOfBool(value) + 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.next_l2_sequence": value := x.NextL2Sequence return protoreflect.ValueOfUint64(value) @@ -349,6 +415,9 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto case "opinit.opchild.v1.GenesisState.bridge_info": value := x.BridgeInfo return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "opinit.opchild.v1.GenesisState.exported": + value := x.Exported + return protoreflect.ValueOfBool(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.GenesisState")) @@ -379,14 +448,18 @@ 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.exported": - x.Exported = value.Bool() + case "opinit.opchild.v1.GenesisState.pending_deposits": + lv := value.List() + clv := lv.(*_GenesisState_4_list) + x.PendingDeposits = *clv.list case "opinit.opchild.v1.GenesisState.next_l2_sequence": x.NextL2Sequence = value.Uint() case "opinit.opchild.v1.GenesisState.next_l1_sequence": x.NextL1Sequence = value.Uint() case "opinit.opchild.v1.GenesisState.bridge_info": x.BridgeInfo = value.Message().Interface().(*BridgeInfo) + case "opinit.opchild.v1.GenesisState.exported": + x.Exported = value.Bool() default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.GenesisState")) @@ -424,17 +497,23 @@ 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.bridge_info": if x.BridgeInfo == nil { x.BridgeInfo = new(BridgeInfo) } return protoreflect.ValueOfMessage(x.BridgeInfo.ProtoReflect()) - case "opinit.opchild.v1.GenesisState.exported": - panic(fmt.Errorf("field exported of message opinit.opchild.v1.GenesisState is not mutable")) case "opinit.opchild.v1.GenesisState.next_l2_sequence": panic(fmt.Errorf("field next_l2_sequence of message opinit.opchild.v1.GenesisState is not mutable")) case "opinit.opchild.v1.GenesisState.next_l1_sequence": panic(fmt.Errorf("field next_l1_sequence of message opinit.opchild.v1.GenesisState is not mutable")) + case "opinit.opchild.v1.GenesisState.exported": + panic(fmt.Errorf("field exported of message opinit.opchild.v1.GenesisState is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.GenesisState")) @@ -457,8 +536,9 @@ 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.exported": - return protoreflect.ValueOfBool(false) + case "opinit.opchild.v1.GenesisState.pending_deposits": + list := []*PendingDeposits{} + return protoreflect.ValueOfList(&_GenesisState_4_list{list: &list}) case "opinit.opchild.v1.GenesisState.next_l2_sequence": return protoreflect.ValueOfUint64(uint64(0)) case "opinit.opchild.v1.GenesisState.next_l1_sequence": @@ -466,6 +546,8 @@ func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) case "opinit.opchild.v1.GenesisState.bridge_info": m := new(BridgeInfo) return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "opinit.opchild.v1.GenesisState.exported": + return protoreflect.ValueOfBool(false) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.opchild.v1.GenesisState")) @@ -551,8 +633,11 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { n += 1 + l + runtime.Sov(uint64(l)) } } - if x.Exported { - n += 2 + if len(x.PendingDeposits) > 0 { + for _, e := range x.PendingDeposits { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } } if x.NextL2Sequence != 0 { n += 1 + runtime.Sov(uint64(x.NextL2Sequence)) @@ -564,6 +649,9 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { l = options.Size(x.BridgeInfo) n += 1 + l + runtime.Sov(uint64(l)) } + if x.Exported { + n += 2 + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -593,6 +681,16 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if x.Exported { + i-- + if x.Exported { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } if x.BridgeInfo != nil { encoded, err := options.Marshal(x.BridgeInfo) if err != nil { @@ -605,27 +703,33 @@ 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] = 0x3a } if x.NextL1Sequence != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.NextL1Sequence)) i-- - dAtA[i] = 0x38 + dAtA[i] = 0x30 } if x.NextL2Sequence != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.NextL2Sequence)) i-- - dAtA[i] = 0x30 + dAtA[i] = 0x28 } - if x.Exported { - i-- - if x.Exported { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + 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 } - i-- - dAtA[i] = 0x28 } if len(x.Validators) > 0 { for iNdEx := len(x.Validators) - 1; iNdEx >= 0; iNdEx-- { @@ -826,11 +930,11 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 5: - if wireType != 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Exported", wireType) + 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 v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -840,13 +944,27 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - x.Exported = bool(v != 0) - case 6: + 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 != 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NextL2Sequence", wireType) } @@ -865,7 +983,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { break } } - case 7: + case 6: if wireType != 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NextL1Sequence", wireType) } @@ -884,7 +1002,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { break } } - case 8: + case 7: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BridgeInfo", wireType) } @@ -920,6 +1038,26 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex + case 8: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Exported", wireType) + } + var v 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++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Exported = bool(v != 0) default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -1448,11 +1586,13 @@ 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"` - Exported bool `protobuf:"varint,5,opt,name=exported,proto3" json:"exported,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"` + 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"` + 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"` } func (x *GenesisState) Reset() { @@ -1496,11 +1636,11 @@ func (x *GenesisState) GetValidators() []*Validator { return nil } -func (x *GenesisState) GetExported() bool { +func (x *GenesisState) GetPendingDeposits() []*PendingDeposits { if x != nil { - return x.Exported + return x.PendingDeposits } - return false + return nil } func (x *GenesisState) GetNextL2Sequence() uint64 { @@ -1524,6 +1664,13 @@ func (x *GenesisState) GetBridgeInfo() *BridgeInfo { return nil } +func (x *GenesisState) GetExported() bool { + if x != nil { + return x.Exported + } + return false +} + // LastValidatorPower required for validator set update logic. type LastValidatorPower struct { state protoimpl.MessageState @@ -1582,7 +1729,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, 0xab, 0x03, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x85, 0x04, 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, @@ -1598,38 +1745,43 @@ 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, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 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, 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, 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, + 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x05, 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, 0x06, 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, 0x07, 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, + 0x08, 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 ( @@ -1650,18 +1802,20 @@ var file_opinit_opchild_v1_genesis_proto_goTypes = []interface{}{ (*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 + (*PendingDeposits)(nil), // 4: opinit.opchild.v1.PendingDeposits + (*BridgeInfo)(nil), // 5: 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.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 + 4, // 3: opinit.opchild.v1.GenesisState.pending_deposits:type_name -> opinit.opchild.v1.PendingDeposits + 5, // 4: opinit.opchild.v1.GenesisState.bridge_info:type_name -> opinit.opchild.v1.BridgeInfo + 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_genesis_proto_init() } diff --git a/api/opinit/opchild/v1/types.pulsar.go b/api/opinit/opchild/v1/types.pulsar.go index 1d0c555e..5983e611 100644 --- a/api/opinit/opchild/v1/types.pulsar.go +++ b/api/opinit/opchild/v1/types.pulsar.go @@ -2701,6 +2701,500 @@ func (x *fastReflection_BridgeInfo) ProtoMethods() *protoiface.Methods { } } +var _ protoreflect.List = (*_PendingDeposits_1_list)(nil) + +type _PendingDeposits_1_list struct { + list *[]*v1beta1.Coin +} + +func (x *_PendingDeposits_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_PendingDeposits_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_PendingDeposits_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*v1beta1.Coin) + (*x.list)[i] = concreteValue +} + +func (x *_PendingDeposits_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*v1beta1.Coin) + *x.list = append(*x.list, concreteValue) +} + +func (x *_PendingDeposits_1_list) AppendMutable() protoreflect.Value { + v := new(v1beta1.Coin) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_PendingDeposits_1_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_PendingDeposits_1_list) NewElement() protoreflect.Value { + v := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_PendingDeposits_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_PendingDeposits protoreflect.MessageDescriptor + fd_PendingDeposits_deposits protoreflect.FieldDescriptor +) + +func init() { + file_opinit_opchild_v1_types_proto_init() + md_PendingDeposits = File_opinit_opchild_v1_types_proto.Messages().ByName("PendingDeposits") + fd_PendingDeposits_deposits = md_PendingDeposits.Fields().ByName("deposits") +} + +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 len(x.Deposits) != 0 { + value := protoreflect.ValueOfList(&_PendingDeposits_1_list{list: &x.Deposits}) + if !f(fd_PendingDeposits_deposits, 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.deposits": + return len(x.Deposits) != 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.deposits": + x.Deposits = 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.deposits": + if len(x.Deposits) == 0 { + return protoreflect.ValueOfList(&_PendingDeposits_1_list{}) + } + listValue := &_PendingDeposits_1_list{list: &x.Deposits} + 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.deposits": + lv := value.List() + clv := lv.(*_PendingDeposits_1_list) + x.Deposits = *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.deposits": + if x.Deposits == nil { + x.Deposits = []*v1beta1.Coin{} + } + value := &_PendingDeposits_1_list{list: &x.Deposits} + return protoreflect.ValueOfList(value) + 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.deposits": + list := []*v1beta1.Coin{} + return protoreflect.ValueOfList(&_PendingDeposits_1_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 + if len(x.Deposits) > 0 { + for _, e := range x.Deposits { + 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.Deposits) > 0 { + for iNdEx := len(x.Deposits) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Deposits[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().(*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 Deposits", 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.Deposits = append(x.Deposits, &v1beta1.Coin{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Deposits[len(x.Deposits)-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, + } +} + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.0 @@ -2979,6 +3473,42 @@ 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 + + Deposits []*v1beta1.Coin `protobuf:"bytes,1,rep,name=deposits,proto3" json:"deposits,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) GetDeposits() []*v1beta1.Coin { + if x != nil { + return x.Deposits + } + return nil +} + var File_opinit_opchild_v1_types_proto protoreflect.FileDescriptor var file_opinit_opchild_v1_types_proto_rawDesc = []byte{ @@ -3075,20 +3605,28 @@ var file_opinit_opchild_v1_types_proto_rawDesc = []byte{ 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, 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, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0x7f, 0x0a, 0x0f, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x6c, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 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, 0x08, 0x64, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x73, 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 ( @@ -3103,27 +3641,30 @@ func file_opinit_opchild_v1_types_proto_rawDescGZIP() []byte { return file_opinit_opchild_v1_types_proto_rawDescData } -var file_opinit_opchild_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_opinit_opchild_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_opinit_opchild_v1_types_proto_goTypes = []interface{}{ (*Params)(nil), // 0: opinit.opchild.v1.Params (*Validator)(nil), // 1: opinit.opchild.v1.Validator (*ValidatorUpdates)(nil), // 2: opinit.opchild.v1.ValidatorUpdates (*BridgeInfo)(nil), // 3: opinit.opchild.v1.BridgeInfo - (*v1beta1.DecCoin)(nil), // 4: cosmos.base.v1beta1.DecCoin - (*anypb.Any)(nil), // 5: google.protobuf.Any - (*abci.ValidatorUpdate)(nil), // 6: tendermint.abci.ValidatorUpdate - (*v1.BridgeConfig)(nil), // 7: opinit.ophost.v1.BridgeConfig + (*PendingDeposits)(nil), // 4: opinit.opchild.v1.PendingDeposits + (*v1beta1.DecCoin)(nil), // 5: cosmos.base.v1beta1.DecCoin + (*anypb.Any)(nil), // 6: google.protobuf.Any + (*abci.ValidatorUpdate)(nil), // 7: tendermint.abci.ValidatorUpdate + (*v1.BridgeConfig)(nil), // 8: opinit.ophost.v1.BridgeConfig + (*v1beta1.Coin)(nil), // 9: cosmos.base.v1beta1.Coin } var file_opinit_opchild_v1_types_proto_depIdxs = []int32{ - 4, // 0: opinit.opchild.v1.Params.min_gas_prices:type_name -> cosmos.base.v1beta1.DecCoin - 5, // 1: opinit.opchild.v1.Validator.consensus_pubkey:type_name -> google.protobuf.Any - 6, // 2: opinit.opchild.v1.ValidatorUpdates.updates:type_name -> tendermint.abci.ValidatorUpdate - 7, // 3: opinit.opchild.v1.BridgeInfo.bridge_config:type_name -> opinit.ophost.v1.BridgeConfig - 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 + 5, // 0: opinit.opchild.v1.Params.min_gas_prices:type_name -> cosmos.base.v1beta1.DecCoin + 6, // 1: opinit.opchild.v1.Validator.consensus_pubkey:type_name -> google.protobuf.Any + 7, // 2: opinit.opchild.v1.ValidatorUpdates.updates:type_name -> tendermint.abci.ValidatorUpdate + 8, // 3: opinit.opchild.v1.BridgeInfo.bridge_config:type_name -> opinit.ophost.v1.BridgeConfig + 9, // 4: opinit.opchild.v1.PendingDeposits.deposits: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() } @@ -3180,6 +3721,18 @@ func file_opinit_opchild_v1_types_proto_init() { return nil } } + 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 + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3187,7 +3740,7 @@ func file_opinit_opchild_v1_types_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_opinit_opchild_v1_types_proto_rawDesc, NumEnums: 0, - NumMessages: 4, + NumMessages: 5, NumExtensions: 0, NumServices: 0, }, diff --git a/api/opinit/ophost/v1/query.pulsar.go b/api/opinit/ophost/v1/query.pulsar.go index 7ffba4bd..a724f958 100644 --- a/api/opinit/ophost/v1/query.pulsar.go +++ b/api/opinit/ophost/v1/query.pulsar.go @@ -6710,17 +6710,15 @@ func (x *fastReflection_QueryOutputProposalResponse) ProtoMethods() *protoiface. } var ( - md_QueryOutputProposalsRequest protoreflect.MessageDescriptor - fd_QueryOutputProposalsRequest_bridge_id protoreflect.FieldDescriptor - fd_QueryOutputProposalsRequest_output_index protoreflect.FieldDescriptor - fd_QueryOutputProposalsRequest_pagination protoreflect.FieldDescriptor + md_QueryOutputProposalsRequest protoreflect.MessageDescriptor + fd_QueryOutputProposalsRequest_bridge_id protoreflect.FieldDescriptor + fd_QueryOutputProposalsRequest_pagination protoreflect.FieldDescriptor ) func init() { file_opinit_ophost_v1_query_proto_init() md_QueryOutputProposalsRequest = File_opinit_ophost_v1_query_proto.Messages().ByName("QueryOutputProposalsRequest") fd_QueryOutputProposalsRequest_bridge_id = md_QueryOutputProposalsRequest.Fields().ByName("bridge_id") - fd_QueryOutputProposalsRequest_output_index = md_QueryOutputProposalsRequest.Fields().ByName("output_index") fd_QueryOutputProposalsRequest_pagination = md_QueryOutputProposalsRequest.Fields().ByName("pagination") } @@ -6795,12 +6793,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) Range(f func(protoreflect.F return } } - if x.OutputIndex != uint64(0) { - value := protoreflect.ValueOfUint64(x.OutputIndex) - if !f(fd_QueryOutputProposalsRequest_output_index, value) { - return - } - } if x.Pagination != nil { value := protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) if !f(fd_QueryOutputProposalsRequest_pagination, value) { @@ -6824,8 +6816,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) Has(fd protoreflect.FieldDe switch fd.FullName() { case "opinit.ophost.v1.QueryOutputProposalsRequest.bridge_id": return x.BridgeId != uint64(0) - case "opinit.ophost.v1.QueryOutputProposalsRequest.output_index": - return x.OutputIndex != uint64(0) case "opinit.ophost.v1.QueryOutputProposalsRequest.pagination": return x.Pagination != nil default: @@ -6846,8 +6836,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) Clear(fd protoreflect.Field switch fd.FullName() { case "opinit.ophost.v1.QueryOutputProposalsRequest.bridge_id": x.BridgeId = uint64(0) - case "opinit.ophost.v1.QueryOutputProposalsRequest.output_index": - x.OutputIndex = uint64(0) case "opinit.ophost.v1.QueryOutputProposalsRequest.pagination": x.Pagination = nil default: @@ -6869,9 +6857,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) Get(descriptor protoreflect case "opinit.ophost.v1.QueryOutputProposalsRequest.bridge_id": value := x.BridgeId return protoreflect.ValueOfUint64(value) - case "opinit.ophost.v1.QueryOutputProposalsRequest.output_index": - value := x.OutputIndex - return protoreflect.ValueOfUint64(value) case "opinit.ophost.v1.QueryOutputProposalsRequest.pagination": value := x.Pagination return protoreflect.ValueOfMessage(value.ProtoReflect()) @@ -6897,8 +6882,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) Set(fd protoreflect.FieldDe switch fd.FullName() { case "opinit.ophost.v1.QueryOutputProposalsRequest.bridge_id": x.BridgeId = value.Uint() - case "opinit.ophost.v1.QueryOutputProposalsRequest.output_index": - x.OutputIndex = value.Uint() case "opinit.ophost.v1.QueryOutputProposalsRequest.pagination": x.Pagination = value.Message().Interface().(*v1beta1.PageRequest) default: @@ -6928,8 +6911,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) Mutable(fd protoreflect.Fie return protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) case "opinit.ophost.v1.QueryOutputProposalsRequest.bridge_id": panic(fmt.Errorf("field bridge_id of message opinit.ophost.v1.QueryOutputProposalsRequest is not mutable")) - case "opinit.ophost.v1.QueryOutputProposalsRequest.output_index": - panic(fmt.Errorf("field output_index of message opinit.ophost.v1.QueryOutputProposalsRequest is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.QueryOutputProposalsRequest")) @@ -6945,8 +6926,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) NewField(fd protoreflect.Fi switch fd.FullName() { case "opinit.ophost.v1.QueryOutputProposalsRequest.bridge_id": return protoreflect.ValueOfUint64(uint64(0)) - case "opinit.ophost.v1.QueryOutputProposalsRequest.output_index": - return protoreflect.ValueOfUint64(uint64(0)) case "opinit.ophost.v1.QueryOutputProposalsRequest.pagination": m := new(v1beta1.PageRequest) return protoreflect.ValueOfMessage(m.ProtoReflect()) @@ -7022,9 +7001,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) ProtoMethods() *protoiface. if x.BridgeId != 0 { n += 1 + runtime.Sov(uint64(x.BridgeId)) } - if x.OutputIndex != 0 { - n += 1 + runtime.Sov(uint64(x.OutputIndex)) - } if x.Pagination != nil { l = options.Size(x.Pagination) n += 1 + l + runtime.Sov(uint64(l)) @@ -7072,11 +7048,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) ProtoMethods() *protoiface. i-- dAtA[i] = 0x1a } - if x.OutputIndex != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.OutputIndex)) - i-- - dAtA[i] = 0x10 - } if x.BridgeId != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.BridgeId)) i-- @@ -7150,25 +7121,6 @@ func (x *fastReflection_QueryOutputProposalsRequest) ProtoMethods() *protoiface. break } } - case 2: - 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 3: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) @@ -10905,8 +10857,7 @@ type QueryOutputProposalsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BridgeId uint64 `protobuf:"varint,1,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` - OutputIndex uint64 `protobuf:"varint,2,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"` + BridgeId uint64 `protobuf:"varint,1,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` // pagination defines the pagination in the request. Pagination *v1beta1.PageRequest `protobuf:"bytes,3,opt,name=pagination,proto3" json:"pagination,omitempty"` } @@ -10938,13 +10889,6 @@ func (x *QueryOutputProposalsRequest) GetBridgeId() uint64 { return 0 } -func (x *QueryOutputProposalsRequest) GetOutputIndex() uint64 { - if x != nil { - return x.OutputIndex - } - return 0 -} - func (x *QueryOutputProposalsRequest) GetPagination() *v1beta1.PageRequest { if x != nil { return x.Pagination @@ -11338,185 +11282,183 @@ var file_opinit_ophost_v1_query_proto_rawDesc = []byte{ 0x18, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x22, 0xa5, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, + 0x6f, 0x73, 0x61, 0x6c, 0x22, 0x82, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcc, 0x01, 0x0a, - 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, - 0x10, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcc, 0x01, 0x0a, 0x1c, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x10, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, + 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x52, + 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x01, 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, + 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x22, 0x5b, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, + 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0e, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x22, + 0x30, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x69, 0x6d, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, + 0x64, 0x22, 0x39, 0x0a, 0x1a, 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, 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, 0x22, 0x47, 0x0a, 0x1b, + 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, 0x12, 0x28, 0x0a, 0x10, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x32, 0xe5, 0x0e, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, + 0x89, 0x01, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 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, + 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, + 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x80, 0x01, 0x0a, 0x07, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x14, 0x0a, 0x12, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x52, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x01, 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, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x5b, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, - 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x48, 0x61, - 0x73, 0x68, 0x22, 0x30, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x65, 0x64, 0x22, 0x39, 0x0a, 0x1a, 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, 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, 0x22, - 0x47, 0x0a, 0x1b, 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, 0x12, 0x28, - 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x4c, 0x31, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x32, 0xe5, 0x0e, 0x0a, 0x05, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x89, 0x01, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x24, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, - 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 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, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, + 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 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, 0x68, + 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0xc5, + 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, + 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, + 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x80, - 0x01, 0x0a, 0x07, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 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, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x73, 0x12, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, - 0x79, 0x4c, 0x31, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, 0x44, 0x65, - 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x31, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x88, - 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x62, 0x79, - 0x5f, 0x6c, 0x31, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, - 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x65, 0x6e, 0x6f, - 0x6d, 0x12, 0xa1, 0x01, 0x0a, 0x0a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, - 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, - 0x69, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, + 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x31, + 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xc5, 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x50, 0x61, 0x69, 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x30, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, + 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, + 0x72, 0x42, 0x79, 0x4c, 0x32, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, + 0x3d, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, + 0x72, 0x73, 0x2f, 0x62, 0x79, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xa1, + 0x01, 0x0a, 0x0a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x28, 0x2e, + 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x3e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, + 0x31, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x69, + 0x72, 0x73, 0x12, 0xc6, 0x01, 0x0a, 0x13, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x33, 0x12, 0x31, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x70, 0x61, 0x69, 0x72, 0x73, 0x12, 0xc6, 0x01, 0x0a, 0x13, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x31, 0x2e, + 0x65, 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3d, 0x12, 0x3b, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0xb8, - 0x01, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, - 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x2f, 0x7b, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x0f, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x2d, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x73, 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, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x7c, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x25, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x6f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x65, 0x64, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x58, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x12, 0x4b, + 0x7a, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x48, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, - 0x73, 0x2f, 0x7b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x7d, 0x2f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0xb2, 0x01, 0x0a, 0x0e, - 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2c, + 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0xb8, 0x01, 0x0a, 0x0e, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 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, 0x2d, 0x2e, 0x6f, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 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, 0x43, 0x88, 0xe7, 0xb0, - 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x88, 0xe7, 0xb0, + 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x42, 0xc1, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, - 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, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x2f, 0x7b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x0f, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x73, 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, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x7c, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, + 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x88, 0xe7, + 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, + 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, + 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, + 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x12, 0x4b, 0x2f, 0x6f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x2f, 0x7b, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x7d, + 0x2f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0xb2, 0x01, 0x0a, 0x0e, 0x4e, 0x65, 0x78, + 0x74, 0x4c, 0x31, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x6f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 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, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 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, 0x43, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, + 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, + 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x42, 0xc1, 0x01, + 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, + 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 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, - 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, + 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/api/opinit/ophost/v1/query_grpc.pb.go b/api/opinit/ophost/v1/query_grpc.pb.go index 1ee842e3..8c36ad3f 100644 --- a/api/opinit/ophost/v1/query_grpc.pb.go +++ b/api/opinit/ophost/v1/query_grpc.pb.go @@ -48,6 +48,7 @@ type QueryClient interface { TokenPairByL2Denom(ctx context.Context, in *QueryTokenPairByL2DenomRequest, opts ...grpc.CallOption) (*QueryTokenPairByL2DenomResponse, error) // TokenPairs queries all (l1 denom, l2 denom) pair. TokenPairs(ctx context.Context, in *QueryTokenPairsRequest, opts ...grpc.CallOption) (*QueryTokenPairsResponse, error) + // LastFinalizedOutput queries last finalized output. LastFinalizedOutput(ctx context.Context, in *QueryLastFinalizedOutputRequest, opts ...grpc.CallOption) (*QueryLastFinalizedOutputResponse, error) // OutputProposal queries output proposal by output index. OutputProposal(ctx context.Context, in *QueryOutputProposalRequest, opts ...grpc.CallOption) (*QueryOutputProposalResponse, error) @@ -195,6 +196,7 @@ type QueryServer interface { TokenPairByL2Denom(context.Context, *QueryTokenPairByL2DenomRequest) (*QueryTokenPairByL2DenomResponse, error) // TokenPairs queries all (l1 denom, l2 denom) pair. TokenPairs(context.Context, *QueryTokenPairsRequest) (*QueryTokenPairsResponse, error) + // LastFinalizedOutput queries last finalized output. LastFinalizedOutput(context.Context, *QueryLastFinalizedOutputRequest) (*QueryLastFinalizedOutputResponse, error) // OutputProposal queries output proposal by output index. OutputProposal(context.Context, *QueryOutputProposalRequest) (*QueryOutputProposalResponse, error) diff --git a/x/ophost/types/query.pb.go b/x/ophost/types/query.pb.go index 0cab9d23..bbcea246 100644 --- a/x/ophost/types/query.pb.go +++ b/x/ophost/types/query.pb.go @@ -740,8 +740,7 @@ func (m *QueryOutputProposalResponse) GetOutputProposal() Output { // QueryOutputProposalsRequest is response type for the Query/OutputProposals RPC method type QueryOutputProposalsRequest struct { - BridgeId uint64 `protobuf:"varint,1,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` - OutputIndex uint64 `protobuf:"varint,2,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"` + BridgeId uint64 `protobuf:"varint,1,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` // pagination defines the pagination in the request. Pagination *query.PageRequest `protobuf:"bytes,3,opt,name=pagination,proto3" json:"pagination,omitempty"` } @@ -786,13 +785,6 @@ func (m *QueryOutputProposalsRequest) GetBridgeId() uint64 { return 0 } -func (m *QueryOutputProposalsRequest) GetOutputIndex() uint64 { - if m != nil { - return m.OutputIndex - } - return 0 -} - func (m *QueryOutputProposalsRequest) GetPagination() *query.PageRequest { if m != nil { return m.Pagination @@ -1153,85 +1145,85 @@ func init() { func init() { proto.RegisterFile("opinit/ophost/v1/query.proto", fileDescriptor_7dd525d30e46de74) } var fileDescriptor_7dd525d30e46de74 = []byte{ - // 1238 bytes of a gzipped FileDescriptorProto + // 1233 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcf, 0x6f, 0x1b, 0x45, 0x14, 0xf6, 0x24, 0x90, 0x1f, 0xe3, 0xe2, 0x84, 0x69, 0x04, 0x8e, 0x13, 0x39, 0x61, 0x45, 0x12, 0x53, 0x35, 0xde, 0x7a, 0x2b, 0x21, 0xda, 0xd0, 0x20, 0x12, 0x48, 0x9a, 0x12, 0x9a, 0xe0, 0x72, 0xa8, 0x00, 0x69, 0x35, 0xf6, 0x6e, 0xed, 0x15, 0xf6, 0xce, 0x76, 0x67, 0x93, 0x26, 0x84, 0x48, - 0x88, 0x53, 0xb9, 0x21, 0xf5, 0x1f, 0x28, 0x07, 0x24, 0x24, 0x38, 0x20, 0xc4, 0x81, 0x0b, 0x47, - 0x50, 0x0f, 0x1c, 0x2a, 0xb8, 0x70, 0x42, 0x28, 0x01, 0xc1, 0x9f, 0x81, 0x76, 0xe7, 0xad, 0x77, - 0xd7, 0xde, 0x6d, 0xd6, 0x51, 0xb8, 0x54, 0xf5, 0x9b, 0x79, 0xef, 0x7d, 0xdf, 0x7b, 0x6f, 0xe7, - 0x7b, 0x0a, 0x9e, 0x66, 0x96, 0x61, 0x1a, 0x8e, 0xcc, 0xac, 0x26, 0xe3, 0x8e, 0xbc, 0x5b, 0x91, - 0xef, 0xee, 0xe8, 0xf6, 0x7e, 0xd9, 0xb2, 0x99, 0xc3, 0xc8, 0xb8, 0x38, 0x2d, 0x8b, 0xd3, 0xf2, - 0x6e, 0xa5, 0xf0, 0x2c, 0x6d, 0x1b, 0x26, 0x93, 0xbd, 0x7f, 0xc5, 0xa5, 0xc2, 0x85, 0x3a, 0xe3, - 0x6d, 0xc6, 0xe5, 0x1a, 0xe5, 0xba, 0xf0, 0x96, 0x77, 0x2b, 0x35, 0xdd, 0xa1, 0x15, 0xd9, 0xa2, - 0x0d, 0xc3, 0xa4, 0x8e, 0xc1, 0x4c, 0xb8, 0x3b, 0x05, 0x77, 0xfd, 0x6b, 0xe1, 0x6c, 0x85, 0x49, - 0x71, 0xa8, 0x7a, 0xbf, 0x64, 0xf1, 0x03, 0x8e, 0x26, 0x1a, 0xac, 0xc1, 0x84, 0xdd, 0xfd, 0x1f, - 0x58, 0xa7, 0x1b, 0x8c, 0x35, 0x5a, 0xba, 0x4c, 0x2d, 0x43, 0xa6, 0xa6, 0xc9, 0x1c, 0x2f, 0x95, - 0xef, 0xd3, 0x4b, 0xcd, 0xd9, 0xb7, 0x74, 0x38, 0x95, 0x96, 0x30, 0x79, 0xc7, 0xcd, 0xbd, 0x62, - 0x1b, 0x5a, 0x43, 0xaf, 0xea, 0x77, 0x77, 0x74, 0xee, 0x90, 0x29, 0x3c, 0x5a, 0xf3, 0x0c, 0xaa, - 0xa1, 0xe5, 0xd1, 0x2c, 0x2a, 0x3d, 0x55, 0x1d, 0x11, 0x86, 0x0d, 0xed, 0xea, 0xc8, 0xfd, 0x87, - 0x33, 0x99, 0x7f, 0x1f, 0xce, 0x64, 0xa4, 0x1f, 0x11, 0x3e, 0x1f, 0xf1, 0xe6, 0x16, 0x33, 0xb9, - 0xfe, 0x44, 0x77, 0x72, 0x05, 0x67, 0xe1, 0x90, 0x6a, 0x9a, 0x9d, 0x1f, 0x98, 0x45, 0xa5, 0xd1, - 0x95, 0xfc, 0xaf, 0xdf, 0x2f, 0x4e, 0x00, 0xd5, 0xd7, 0x35, 0xcd, 0xd6, 0x39, 0xbf, 0xe5, 0xd8, - 0x86, 0xd9, 0xa8, 0x62, 0x71, 0xd9, 0x35, 0x92, 0x9b, 0xf8, 0x19, 0x70, 0xad, 0x33, 0xf3, 0x8e, - 0xd1, 0xc8, 0x0f, 0xce, 0xa2, 0x52, 0x56, 0x29, 0x96, 0xbb, 0xfb, 0x53, 0x16, 0x80, 0x56, 0xbd, - 0x5b, 0x2b, 0xa3, 0x8f, 0xfe, 0x98, 0xc9, 0x7c, 0xf5, 0xcf, 0xb7, 0x17, 0x50, 0xf5, 0x5c, 0x2d, - 0x74, 0x20, 0x35, 0x22, 0xf0, 0xb9, 0xcf, 0x7e, 0x0d, 0xe3, 0xa0, 0x63, 0x1e, 0xfe, 0xac, 0x32, - 0x5f, 0x06, 0x74, 0x6e, 0x7b, 0xcb, 0xa2, 0x5d, 0xd0, 0xde, 0xf2, 0x36, 0xed, 0x54, 0xae, 0x1a, - 0xf2, 0x0c, 0x15, 0xea, 0x6b, 0x84, 0x27, 0xa2, 0x99, 0xa0, 0x52, 0x37, 0xf0, 0xb0, 0x40, 0xc4, - 0xf3, 0x68, 0x76, 0xb0, 0x94, 0x55, 0xe6, 0x7a, 0xb9, 0xc4, 0x54, 0x38, 0x4c, 0xc9, 0x0f, 0x40, - 0xd6, 0x23, 0xb0, 0x07, 0x3c, 0xd8, 0x0b, 0x27, 0xc2, 0x16, 0x01, 0xc3, 0xb8, 0xa5, 0xdb, 0xb8, - 0xe8, 0xe5, 0x7c, 0x97, 0x7d, 0xa8, 0x9b, 0xdb, 0xd4, 0xb0, 0x57, 0xf6, 0x37, 0x2b, 0x6f, 0xe8, - 0x26, 0x6b, 0xa7, 0x99, 0x0f, 0x32, 0x89, 0x47, 0x5a, 0x15, 0x55, 0x73, 0xef, 0x8b, 0xee, 0x56, - 0x87, 0x5b, 0xc2, 0x5d, 0x6a, 0xe2, 0x99, 0xc4, 0xc8, 0x50, 0x91, 0x37, 0x31, 0x76, 0xdc, 0x53, - 0xd5, 0xa2, 0x86, 0x0d, 0xc5, 0x9f, 0xea, 0x2d, 0x4a, 0x10, 0x21, 0x54, 0x8a, 0x51, 0xc7, 0xb7, - 0xc6, 0x72, 0x50, 0xfa, 0xe3, 0xa0, 0x74, 0x71, 0x50, 0x92, 0x39, 0x28, 0xff, 0x0b, 0x87, 0x43, - 0xfc, 0x5c, 0x34, 0x13, 0x4f, 0x85, 0x7d, 0x2d, 0x66, 0x0e, 0x4e, 0x31, 0xbe, 0xee, 0xd0, 0x3e, - 0xdf, 0x93, 0x1f, 0x18, 0xae, 0xe3, 0x6c, 0xc0, 0xd0, 0x9f, 0xdd, 0xb4, 0x14, 0x71, 0x87, 0xe2, - 0x19, 0x0e, 0xed, 0x32, 0xb4, 0x65, 0x93, 0x72, 0x67, 0xcd, 0x30, 0x69, 0xcb, 0xf8, 0x48, 0xd7, - 0xb6, 0x76, 0x1c, 0x6b, 0xc7, 0x49, 0x53, 0x35, 0xe9, 0x01, 0xc2, 0xb3, 0xc9, 0x01, 0x80, 0xf6, - 0x0b, 0xf8, 0x1c, 0xf3, 0x2c, 0xaa, 0x61, 0x6a, 0xfa, 0x1e, 0x04, 0xc9, 0x0a, 0xdb, 0x86, 0x6b, - 0x22, 0x9b, 0x78, 0x0c, 0xae, 0x58, 0x36, 0xb3, 0x18, 0xa7, 0x2d, 0x60, 0x95, 0xef, 0xad, 0x8e, - 0x88, 0x1e, 0x2e, 0x4d, 0x4e, 0xf8, 0x6e, 0x83, 0xab, 0xf4, 0x01, 0x2e, 0x78, 0xa0, 0xb6, 0x22, - 0xe6, 0x54, 0x63, 0xd0, 0x8d, 0x75, 0xa0, 0x07, 0xab, 0xdb, 0xe1, 0xa9, 0xd8, 0xf0, 0x69, 0xde, - 0xf1, 0x93, 0xe3, 0xc7, 0xd5, 0x62, 0xf0, 0xf4, 0xb5, 0xf8, 0x32, 0x1e, 0x2d, 0x3f, 0xa3, 0x6a, - 0x74, 0x7d, 0x37, 0x83, 0xa7, 0xfe, 0x6e, 0x7e, 0x41, 0x78, 0x3a, 0x1e, 0x27, 0x94, 0xb5, 0x8e, - 0xc7, 0xbb, 0xca, 0xe2, 0x7f, 0x41, 0x8b, 0x09, 0xaf, 0x7f, 0x7c, 0x7f, 0xc2, 0xc5, 0x1a, 0x8b, - 0x16, 0xeb, 0x0c, 0x3f, 0xac, 0x09, 0xd8, 0x10, 0xb6, 0xa9, 0x4d, 0xdb, 0x7e, 0xb1, 0xa5, 0x2a, - 0x48, 0xa7, 0x6f, 0x05, 0x6a, 0x4b, 0x78, 0xc8, 0xf2, 0x2c, 0xf0, 0xea, 0xc5, 0x34, 0x5a, 0x78, - 0x84, 0xb1, 0x83, 0x8b, 0xf4, 0x3e, 0xc4, 0x5c, 0x6d, 0x51, 0xa3, 0xad, 0x6b, 0xa9, 0xfa, 0xba, - 0x80, 0xc7, 0xee, 0x19, 0x4e, 0x53, 0xb3, 0xe9, 0x3d, 0xda, 0x52, 0x9b, 0x94, 0x37, 0x3d, 0xae, - 0xe7, 0xaa, 0xb9, 0xc0, 0x7c, 0x9d, 0xf2, 0xa6, 0x74, 0x09, 0x14, 0xb8, 0x13, 0x1c, 0x10, 0xe7, - 0xf1, 0x70, 0x5d, 0x98, 0xbc, 0xd8, 0x23, 0x55, 0xff, 0xa7, 0x74, 0x05, 0xbe, 0xbd, 0x9b, 0xfa, - 0x9e, 0xb3, 0x59, 0xb9, 0xe5, 0xa2, 0x31, 0xeb, 0xa9, 0x56, 0x24, 0x69, 0x1d, 0x26, 0xb5, 0xdb, - 0x15, 0x72, 0x96, 0xf0, 0xb8, 0xa9, 0xef, 0x39, 0x6a, 0xab, 0xa2, 0x72, 0x38, 0x83, 0x10, 0x39, - 0x33, 0xe2, 0xa1, 0xfc, 0x9d, 0xc3, 0x4f, 0x7b, 0x91, 0xc8, 0x67, 0x08, 0x0f, 0x89, 0x25, 0x80, - 0xbc, 0x78, 0xc2, 0x8e, 0xe0, 0x01, 0x2c, 0xa4, 0xdb, 0x24, 0x24, 0xe5, 0xbe, 0xdb, 0x83, 0x4f, - 0x7f, 0xfb, 0xeb, 0xc1, 0xc0, 0x02, 0x99, 0x93, 0x7b, 0x96, 0x45, 0xd8, 0x2e, 0xe4, 0x83, 0x0e, - 0xdb, 0x43, 0xf2, 0x09, 0xc2, 0xc3, 0xb0, 0xc9, 0x90, 0x27, 0xa7, 0xf1, 0xe7, 0xa5, 0x30, 0x7f, - 0xd2, 0x35, 0x80, 0x33, 0x1f, 0xc0, 0x99, 0x22, 0x93, 0x89, 0x70, 0xc8, 0x4f, 0x08, 0x93, 0xde, - 0x2d, 0x82, 0x5c, 0x4a, 0x48, 0x93, 0xb8, 0xca, 0x14, 0x2a, 0x7d, 0x78, 0x00, 0xc6, 0x1b, 0x01, - 0xc6, 0xd7, 0xc8, 0xb5, 0x54, 0x25, 0x93, 0x43, 0x6a, 0x29, 0xd7, 0xf6, 0x55, 0x7f, 0x41, 0xea, - 0xe1, 0xa1, 0xa4, 0xe7, 0xa1, 0xf4, 0xcd, 0x43, 0x39, 0x7b, 0x1e, 0xb0, 0x24, 0x91, 0x2f, 0x10, - 0xc6, 0xc1, 0x9e, 0x40, 0x4a, 0x27, 0xa1, 0xe9, 0x0c, 0xc6, 0x4b, 0x29, 0x6e, 0x02, 0xde, 0xe5, - 0x00, 0xef, 0x65, 0x52, 0xe9, 0x1b, 0x2f, 0xf9, 0x19, 0xe1, 0xf3, 0x31, 0xea, 0x4e, 0x92, 0x4a, - 0x97, 0xbc, 0x4a, 0x14, 0x94, 0x7e, 0x5c, 0x00, 0xfe, 0xf5, 0x00, 0xfe, 0x35, 0xb2, 0x94, 0x0e, - 0x7e, 0x8b, 0x72, 0x47, 0xbd, 0xe3, 0x07, 0x54, 0xc5, 0x23, 0x4f, 0x7e, 0x40, 0x38, 0x17, 0x95, - 0x04, 0x72, 0x31, 0xa5, 0x72, 0x08, 0xf8, 0xfd, 0xe9, 0x8c, 0xb4, 0x11, 0x20, 0x5f, 0x26, 0xaf, - 0xa6, 0x43, 0x2e, 0xa0, 0x72, 0xf9, 0x20, 0x2c, 0xbb, 0x87, 0xe4, 0x1b, 0x84, 0xc7, 0xba, 0x74, - 0x91, 0xa4, 0x43, 0xd3, 0x99, 0x98, 0x72, 0xda, 0xeb, 0x80, 0xfe, 0x6a, 0x80, 0x5e, 0x26, 0x8b, - 0x7d, 0xa1, 0x27, 0x1f, 0xe3, 0x21, 0xa1, 0x57, 0x89, 0x8f, 0x6e, 0x44, 0x16, 0x13, 0x1f, 0xdd, - 0xa8, 0x4c, 0x4a, 0x73, 0x01, 0xa4, 0x02, 0xc9, 0xf7, 0x42, 0x12, 0x82, 0x48, 0xbe, 0x43, 0x78, - 0x18, 0xf4, 0x2a, 0xf1, 0x9d, 0x8d, 0x8a, 0x65, 0xe2, 0x3b, 0xdb, 0x25, 0x7b, 0xd2, 0xed, 0x00, - 0xc1, 0xdb, 0xe4, 0xad, 0x74, 0x45, 0x09, 0x14, 0x95, 0xcb, 0x07, 0x5d, 0xaa, 0x7b, 0x28, 0x83, - 0x6c, 0xba, 0xa0, 0x73, 0x51, 0xdd, 0x4b, 0x1c, 0xce, 0x58, 0x65, 0x4d, 0x1c, 0xce, 0x78, 0x31, - 0x95, 0x56, 0x03, 0x26, 0xaf, 0x90, 0x97, 0xd3, 0x31, 0xe9, 0x56, 0xdf, 0x95, 0xb5, 0x47, 0x47, - 0x45, 0xf4, 0xf8, 0xa8, 0x88, 0xfe, 0x3c, 0x2a, 0xa2, 0xcf, 0x8f, 0x8b, 0x99, 0xc7, 0xc7, 0xc5, - 0xcc, 0xef, 0xc7, 0xc5, 0xcc, 0x7b, 0x17, 0x1b, 0x86, 0xd3, 0xdc, 0xa9, 0x95, 0xeb, 0xac, 0x2d, - 0xbb, 0x91, 0x0d, 0xba, 0xd8, 0xa2, 0x35, 0x2e, 0x6f, 0x6d, 0x7b, 0x79, 0xf6, 0xfc, 0x4c, 0xde, - 0x1f, 0x55, 0x6a, 0x43, 0xde, 0x5f, 0x55, 0x2e, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x39, 0x98, - 0x0c, 0x4d, 0x50, 0x12, 0x00, 0x00, + 0xa8, 0xa7, 0x72, 0x43, 0xea, 0x3f, 0x50, 0x6e, 0x48, 0x70, 0x40, 0x88, 0x03, 0x17, 0x8e, 0xa0, + 0x1e, 0x38, 0x54, 0x70, 0xe1, 0x84, 0x50, 0x02, 0x82, 0x3f, 0x03, 0xed, 0xce, 0x5b, 0xef, 0xae, + 0xbd, 0xdb, 0xac, 0xa3, 0x70, 0x89, 0xb2, 0x6f, 0xe6, 0xbd, 0xf7, 0x7d, 0x6f, 0xde, 0xcc, 0xf7, + 0x64, 0x3c, 0xcd, 0x2c, 0xc3, 0x34, 0x1c, 0x99, 0x59, 0x4d, 0xc6, 0x1d, 0x79, 0xb7, 0x22, 0xdf, + 0xdd, 0xd1, 0xed, 0xfd, 0xb2, 0x65, 0x33, 0x87, 0x91, 0x71, 0xb1, 0x5a, 0x16, 0xab, 0xe5, 0xdd, + 0x4a, 0xe1, 0x79, 0xda, 0x36, 0x4c, 0x26, 0x7b, 0x7f, 0xc5, 0xa6, 0xc2, 0x85, 0x3a, 0xe3, 0x6d, + 0xc6, 0xe5, 0x1a, 0xe5, 0xba, 0xf0, 0x96, 0x77, 0x2b, 0x35, 0xdd, 0xa1, 0x15, 0xd9, 0xa2, 0x0d, + 0xc3, 0xa4, 0x8e, 0xc1, 0x4c, 0xd8, 0x3b, 0x05, 0x7b, 0xfd, 0x6d, 0xe1, 0x6c, 0x85, 0x49, 0xb1, + 0xa8, 0x7a, 0x5f, 0xb2, 0xf8, 0x80, 0xa5, 0x89, 0x06, 0x6b, 0x30, 0x61, 0x77, 0xff, 0x03, 0xeb, + 0x74, 0x83, 0xb1, 0x46, 0x4b, 0x97, 0xa9, 0x65, 0xc8, 0xd4, 0x34, 0x99, 0xe3, 0xa5, 0xf2, 0x7d, + 0x7a, 0xa9, 0x39, 0xfb, 0x96, 0x0e, 0xab, 0xd2, 0x12, 0x26, 0xef, 0xb9, 0xb9, 0x57, 0x6c, 0x43, + 0x6b, 0xe8, 0x55, 0xfd, 0xee, 0x8e, 0xce, 0x1d, 0x32, 0x85, 0x47, 0x6b, 0x9e, 0x41, 0x35, 0xb4, + 0x3c, 0x9a, 0x45, 0xa5, 0x67, 0xaa, 0x23, 0xc2, 0xb0, 0xa1, 0x5d, 0x1d, 0x79, 0xf0, 0x68, 0x26, + 0xf3, 0xef, 0xa3, 0x99, 0x8c, 0xf4, 0x23, 0xc2, 0xe7, 0x23, 0xde, 0xdc, 0x62, 0x26, 0xd7, 0x9f, + 0xea, 0x4e, 0xae, 0xe0, 0x2c, 0x2c, 0x52, 0x4d, 0xb3, 0xf3, 0x03, 0xb3, 0xa8, 0x34, 0xba, 0x92, + 0xff, 0xf5, 0xfb, 0xc5, 0x09, 0xa0, 0xfa, 0xa6, 0xa6, 0xd9, 0x3a, 0xe7, 0xb7, 0x1c, 0xdb, 0x30, + 0x1b, 0x55, 0x2c, 0x36, 0xbb, 0x46, 0x72, 0x13, 0x3f, 0x07, 0xae, 0x75, 0x66, 0xde, 0x31, 0x1a, + 0xf9, 0xc1, 0x59, 0x54, 0xca, 0x2a, 0xc5, 0x72, 0xf7, 0xf9, 0x94, 0x05, 0xa0, 0x55, 0x6f, 0xd7, + 0xca, 0xe8, 0xe3, 0x3f, 0x66, 0x32, 0x5f, 0xfd, 0xf3, 0xed, 0x05, 0x54, 0x3d, 0x57, 0x0b, 0x2d, + 0x48, 0x8d, 0x08, 0x7c, 0xee, 0xb3, 0x5f, 0xc3, 0x38, 0x38, 0x31, 0x0f, 0x7f, 0x56, 0x99, 0x2f, + 0x03, 0x3a, 0xf7, 0x78, 0xcb, 0xe2, 0xb8, 0xe0, 0x78, 0xcb, 0xdb, 0xb4, 0x53, 0xb9, 0x6a, 0xc8, + 0x33, 0x54, 0xa8, 0xaf, 0x11, 0x9e, 0x88, 0x66, 0x82, 0x4a, 0xdd, 0xc0, 0xc3, 0x02, 0x11, 0xcf, + 0xa3, 0xd9, 0xc1, 0x52, 0x56, 0x99, 0xeb, 0xe5, 0x12, 0x53, 0xe1, 0x30, 0x25, 0x3f, 0x00, 0x59, + 0x8f, 0xc0, 0x1e, 0xf0, 0x60, 0x2f, 0x9c, 0x08, 0x5b, 0x04, 0x0c, 0xe3, 0x96, 0x6e, 0xe3, 0xa2, + 0x97, 0xf3, 0x7d, 0xf6, 0xb1, 0x6e, 0x6e, 0x53, 0xc3, 0x5e, 0xd9, 0xdf, 0xac, 0xbc, 0xa5, 0x9b, + 0xac, 0x9d, 0xa6, 0x3f, 0xc8, 0x24, 0x1e, 0x69, 0x55, 0x54, 0xcd, 0xdd, 0x2f, 0x4e, 0xb7, 0x3a, + 0xdc, 0x12, 0xee, 0x52, 0x13, 0xcf, 0x24, 0x46, 0x86, 0x8a, 0xbc, 0x8d, 0xb1, 0xe3, 0xae, 0xaa, + 0x16, 0x35, 0x6c, 0x28, 0xfe, 0x54, 0x6f, 0x51, 0x82, 0x08, 0xa1, 0x52, 0x8c, 0x3a, 0xbe, 0x35, + 0x96, 0x83, 0xd2, 0x1f, 0x07, 0xa5, 0x8b, 0x83, 0x92, 0xcc, 0x41, 0xf9, 0x5f, 0x38, 0x1c, 0xe2, + 0x17, 0xa2, 0x99, 0x78, 0x2a, 0xec, 0x6b, 0x31, 0x7d, 0x70, 0x8a, 0xf6, 0x75, 0x9b, 0xf6, 0xc5, + 0x9e, 0xfc, 0xc0, 0x70, 0x1d, 0x67, 0x03, 0x86, 0x7e, 0xef, 0xa6, 0xa5, 0x88, 0x3b, 0x14, 0xcf, + 0xb0, 0x69, 0x97, 0xe1, 0x58, 0x36, 0x29, 0x77, 0xd6, 0x0c, 0x93, 0xb6, 0x8c, 0x4f, 0x74, 0x6d, + 0x6b, 0xc7, 0xb1, 0x76, 0x9c, 0x34, 0x55, 0x93, 0x1e, 0x22, 0x3c, 0x9b, 0x1c, 0x00, 0x68, 0xbf, + 0x84, 0xcf, 0x31, 0xcf, 0xa2, 0x1a, 0xa6, 0xa6, 0xef, 0x41, 0x90, 0xac, 0xb0, 0x6d, 0xb8, 0x26, + 0xb2, 0x89, 0xc7, 0x60, 0x8b, 0x65, 0x33, 0x8b, 0x71, 0xda, 0x02, 0x56, 0xf9, 0xde, 0xea, 0x88, + 0xe8, 0xe1, 0xd2, 0xe4, 0x84, 0xef, 0x36, 0xb8, 0x4a, 0x1f, 0xe1, 0x82, 0x07, 0x6a, 0x2b, 0x62, + 0x4e, 0xd5, 0x06, 0xdd, 0x58, 0x07, 0x7a, 0xb0, 0xba, 0x27, 0x3c, 0x15, 0x1b, 0x3e, 0xcd, 0x3b, + 0x7e, 0x72, 0xfc, 0xb8, 0x5a, 0x0c, 0x9e, 0xbe, 0x16, 0xf7, 0xe3, 0xd1, 0x9e, 0xe6, 0x52, 0x0c, + 0x9e, 0xfa, 0x52, 0xfc, 0x82, 0xf0, 0x74, 0x3c, 0x08, 0xa8, 0x59, 0x1d, 0x8f, 0x77, 0x71, 0xf6, + 0xaf, 0xc7, 0x62, 0xc2, 0xd3, 0x1e, 0x5f, 0xfc, 0x70, 0x25, 0xc6, 0xa2, 0x95, 0x38, 0xc3, 0x5b, + 0x33, 0x01, 0xf2, 0xbf, 0x4d, 0x6d, 0xda, 0xf6, 0x2b, 0x29, 0x55, 0x41, 0x17, 0x7d, 0x2b, 0x50, + 0x5b, 0xc2, 0x43, 0x96, 0x67, 0x81, 0x27, 0x2d, 0xe6, 0x14, 0x85, 0x47, 0x18, 0x3b, 0xb8, 0x48, + 0x1f, 0x42, 0xcc, 0xd5, 0x16, 0x35, 0xda, 0xba, 0x96, 0xea, 0xd0, 0x16, 0xf0, 0xd8, 0x3d, 0xc3, + 0x69, 0x6a, 0x36, 0xbd, 0x47, 0x5b, 0x6a, 0x93, 0xf2, 0xa6, 0xc7, 0xf5, 0x5c, 0x35, 0x17, 0x98, + 0xaf, 0x53, 0xde, 0x94, 0x2e, 0x81, 0xbc, 0x76, 0x82, 0x03, 0xe2, 0x3c, 0x1e, 0xae, 0x0b, 0x93, + 0x17, 0x7b, 0xa4, 0xea, 0x7f, 0x4a, 0x57, 0xe0, 0x62, 0xdd, 0xd4, 0xf7, 0x9c, 0xcd, 0xca, 0x2d, + 0x17, 0x8d, 0x59, 0x4f, 0x35, 0xff, 0x48, 0xeb, 0xd0, 0x86, 0xdd, 0xae, 0x90, 0xb3, 0x84, 0xc7, + 0x4d, 0x7d, 0xcf, 0x51, 0x5b, 0x15, 0x95, 0xc3, 0x1a, 0x84, 0xc8, 0x99, 0x11, 0x0f, 0xe5, 0xef, + 0x1c, 0x7e, 0xd6, 0x8b, 0x44, 0x3e, 0x47, 0x78, 0x48, 0x28, 0x3c, 0x79, 0xf9, 0x84, 0x01, 0xc0, + 0x03, 0x58, 0x48, 0x37, 0x26, 0x48, 0xca, 0x03, 0xf7, 0x0c, 0xee, 0xff, 0xf6, 0xd7, 0xc3, 0x81, + 0x05, 0x32, 0x27, 0xf7, 0x4c, 0x82, 0x30, 0x3a, 0xc8, 0x07, 0x1d, 0xb6, 0x87, 0xe4, 0x33, 0x84, + 0x87, 0x61, 0x4c, 0x21, 0x4f, 0x4f, 0xe3, 0xf7, 0x4b, 0x61, 0xfe, 0xa4, 0x6d, 0x00, 0x67, 0x3e, + 0x80, 0x33, 0x45, 0x26, 0x13, 0xe1, 0x90, 0x9f, 0x10, 0x26, 0xbd, 0x23, 0x02, 0xb9, 0x94, 0x90, + 0x26, 0x71, 0x4e, 0x29, 0x54, 0xfa, 0xf0, 0x00, 0x8c, 0x37, 0x02, 0x8c, 0x6f, 0x90, 0x6b, 0xa9, + 0x4a, 0x26, 0x87, 0xa4, 0x50, 0xae, 0xed, 0xab, 0xfe, 0xf4, 0xd3, 0xc3, 0x43, 0x49, 0xcf, 0x43, + 0xe9, 0x9b, 0x87, 0x72, 0xf6, 0x3c, 0x60, 0x02, 0x22, 0x5f, 0x22, 0x8c, 0x83, 0x21, 0x80, 0x94, + 0x4e, 0x42, 0xd3, 0x69, 0x8c, 0x57, 0x52, 0xec, 0x04, 0xbc, 0xcb, 0x01, 0xde, 0xcb, 0xa4, 0xd2, + 0x37, 0x5e, 0xf2, 0x33, 0xc2, 0xe7, 0x63, 0xa4, 0x9b, 0x24, 0x95, 0x2e, 0x79, 0x4e, 0x28, 0x28, + 0xfd, 0xb8, 0x00, 0xfc, 0xeb, 0x01, 0xfc, 0x6b, 0x64, 0x29, 0x1d, 0xfc, 0x16, 0xe5, 0x8e, 0x7a, + 0xc7, 0x0f, 0xa8, 0x8a, 0x47, 0x9e, 0xfc, 0x80, 0x70, 0x2e, 0x2a, 0x09, 0xe4, 0x62, 0x4a, 0xe5, + 0x10, 0xf0, 0xfb, 0xd3, 0x19, 0x69, 0x23, 0x40, 0xbe, 0x4c, 0x5e, 0x4f, 0x87, 0x5c, 0x40, 0xe5, + 0xf2, 0x41, 0x78, 0x02, 0x38, 0x24, 0xdf, 0x20, 0x3c, 0xd6, 0xa5, 0x8b, 0x24, 0x1d, 0x9a, 0x4e, + 0xc7, 0x94, 0xd3, 0x6e, 0x07, 0xf4, 0x57, 0x03, 0xf4, 0x32, 0x59, 0xec, 0x0b, 0x3d, 0xf9, 0x14, + 0x0f, 0x09, 0xbd, 0x4a, 0x7c, 0x74, 0x23, 0xb2, 0x98, 0xf8, 0xe8, 0x46, 0x65, 0x52, 0x9a, 0x0b, + 0x20, 0x15, 0x48, 0xbe, 0x17, 0x92, 0x10, 0x44, 0xf2, 0x1d, 0xc2, 0xc3, 0xa0, 0x57, 0x89, 0xef, + 0x6c, 0x54, 0x2c, 0x13, 0xdf, 0xd9, 0x2e, 0xd9, 0x93, 0x6e, 0x07, 0x08, 0xde, 0x25, 0xef, 0xa4, + 0x2b, 0x4a, 0xa0, 0xa8, 0x5c, 0x3e, 0xe8, 0x52, 0xdd, 0x43, 0x19, 0x64, 0xd3, 0x05, 0x9d, 0x8b, + 0xea, 0x5e, 0x62, 0x73, 0xc6, 0x2a, 0x6b, 0x62, 0x73, 0xc6, 0x8b, 0xa9, 0xb4, 0x1a, 0x30, 0x79, + 0x8d, 0xbc, 0x9a, 0x8e, 0x49, 0xb7, 0xfa, 0xae, 0xac, 0x3d, 0x3e, 0x2a, 0xa2, 0x27, 0x47, 0x45, + 0xf4, 0xe7, 0x51, 0x11, 0x7d, 0x71, 0x5c, 0xcc, 0x3c, 0x39, 0x2e, 0x66, 0x7e, 0x3f, 0x2e, 0x66, + 0x3e, 0xb8, 0xd8, 0x30, 0x9c, 0xe6, 0x4e, 0xad, 0x5c, 0x67, 0x6d, 0xd9, 0x8d, 0x6c, 0xd0, 0xc5, + 0x16, 0xad, 0x71, 0x79, 0x6b, 0xdb, 0xcb, 0xb3, 0xe7, 0x67, 0xf2, 0x7e, 0x31, 0xa9, 0x0d, 0x79, + 0x3f, 0x99, 0x5c, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x59, 0x32, 0x8e, 0x4b, 0x2d, 0x12, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1256,6 +1248,7 @@ type QueryClient interface { TokenPairByL2Denom(ctx context.Context, in *QueryTokenPairByL2DenomRequest, opts ...grpc.CallOption) (*QueryTokenPairByL2DenomResponse, error) // TokenPairs queries all (l1 denom, l2 denom) pair. TokenPairs(ctx context.Context, in *QueryTokenPairsRequest, opts ...grpc.CallOption) (*QueryTokenPairsResponse, error) + // LastFinalizedOutput queries last finalized output. LastFinalizedOutput(ctx context.Context, in *QueryLastFinalizedOutputRequest, opts ...grpc.CallOption) (*QueryLastFinalizedOutputResponse, error) // OutputProposal queries output proposal by output index. OutputProposal(ctx context.Context, in *QueryOutputProposalRequest, opts ...grpc.CallOption) (*QueryOutputProposalResponse, error) @@ -1388,6 +1381,7 @@ type QueryServer interface { TokenPairByL2Denom(context.Context, *QueryTokenPairByL2DenomRequest) (*QueryTokenPairByL2DenomResponse, error) // TokenPairs queries all (l1 denom, l2 denom) pair. TokenPairs(context.Context, *QueryTokenPairsRequest) (*QueryTokenPairsResponse, error) + // LastFinalizedOutput queries last finalized output. LastFinalizedOutput(context.Context, *QueryLastFinalizedOutputRequest) (*QueryLastFinalizedOutputResponse, error) // OutputProposal queries output proposal by output index. OutputProposal(context.Context, *QueryOutputProposalRequest) (*QueryOutputProposalResponse, error) @@ -2250,11 +2244,6 @@ func (m *QueryOutputProposalsRequest) MarshalToSizedBuffer(dAtA []byte) (int, er i-- dAtA[i] = 0x1a } - if m.OutputIndex != 0 { - i = encodeVarintQuery(dAtA, i, uint64(m.OutputIndex)) - i-- - dAtA[i] = 0x10 - } if m.BridgeId != 0 { i = encodeVarintQuery(dAtA, i, uint64(m.BridgeId)) i-- @@ -2721,9 +2710,6 @@ func (m *QueryOutputProposalsRequest) Size() (n int) { if m.BridgeId != 0 { n += 1 + sovQuery(uint64(m.BridgeId)) } - if m.OutputIndex != 0 { - n += 1 + sovQuery(uint64(m.OutputIndex)) - } if m.Pagination != nil { l = m.Pagination.Size() n += 1 + l + sovQuery(uint64(l)) @@ -4258,25 +4244,6 @@ func (m *QueryOutputProposalsRequest) Unmarshal(dAtA []byte) error { break } } - case 2: - 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 ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.OutputIndex |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType)