mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-10-31 23:08:32 +00:00 
			
		
		
		
	feat: wrapped-a0gi-base module
This commit is contained in:
		
							parent
							
								
									aff086bf7b
								
							
						
					
					
						commit
						58871957a8
					
				| @ -210,6 +210,7 @@ var ( | ||||
| 		bep3types.ModuleName:            {authtypes.Burner, authtypes.Minter}, | ||||
| 		minttypes.ModuleName:            {authtypes.Minter}, | ||||
| 		precisebanktypes.ModuleName:     {authtypes.Minter, authtypes.Burner}, // used for reserve account to back fractional amounts
 | ||||
| 		wrappeda0gibasetypes.ModuleName: {authtypes.Minter, authtypes.Burner}, | ||||
| 	} | ||||
| ) | ||||
| 
 | ||||
| @ -519,7 +520,7 @@ func NewApp( | ||||
| 	} | ||||
| 	precompiles[stakingPrecompile.Address()] = stakingPrecompile | ||||
| 	// wrapped wrapped a0gi base
 | ||||
| 	app.wrappeda0gibaseKeeper = wrappeda0gibasekeeper.NewKeeper(keys[wrappeda0gibasetypes.StoreKey], appCodec, govAuthAddrStr) | ||||
| 	app.wrappeda0gibaseKeeper = wrappeda0gibasekeeper.NewKeeper(keys[wrappeda0gibasetypes.StoreKey], appCodec, app.precisebankKeeper, govAuthAddrStr) | ||||
| 	wrappeda0gibasePrecompile, err := wrappeda0gibaseprecompile.NewWrappedA0giBasePrecompile(app.wrappeda0gibaseKeeper) | ||||
| 	if err != nil { | ||||
| 		panic(fmt.Sprintf("initialize wrapped a0gi base precompile failed: %v", err)) | ||||
|  | ||||
| @ -13,10 +13,15 @@ interface IWrappedA0GIBase { | ||||
|     /** | ||||
|      * @dev set the wA0GI address. | ||||
|      * It is designed to be called by governance module only so it's not implemented at EVM precompile side. | ||||
|      * @param | ||||
|      * @param addr address of wA0GI | ||||
|      */ | ||||
|     // function setWA0GI(address addr) external; | ||||
| 
 | ||||
|     /** | ||||
|      * @dev get the wA0GI address. | ||||
|      */ | ||||
|     function getWA0GI() external returns (address); | ||||
| 
 | ||||
|     /** | ||||
|      * @dev set the cap for a minter. | ||||
|      * It is designed to be called by governance module only so it's not implemented at EVM precompile side. | ||||
|  | ||||
| @ -17,6 +17,19 @@ | ||||
|     "stateMutability": "nonpayable", | ||||
|     "type": "function" | ||||
|   }, | ||||
|   { | ||||
|     "inputs": [], | ||||
|     "name": "getWA0GI", | ||||
|     "outputs": [ | ||||
|       { | ||||
|         "internalType": "address", | ||||
|         "name": "", | ||||
|         "type": "address" | ||||
|       } | ||||
|     ], | ||||
|     "stateMutability": "nonpayable", | ||||
|     "type": "function" | ||||
|   }, | ||||
|   { | ||||
|     "inputs": [ | ||||
|       { | ||||
|  | ||||
| @ -30,7 +30,7 @@ var ( | ||||
| 
 | ||||
| // Wrappeda0gibaseMetaData contains all meta data concerning the Wrappeda0gibase contract.
 | ||||
| var Wrappeda0gibaseMetaData = &bind.MetaData{ | ||||
| 	ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"minterSupply\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"}],\"internalType\":\"structSupply\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", | ||||
| 	ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWA0GI\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"minterSupply\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"}],\"internalType\":\"structSupply\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", | ||||
| } | ||||
| 
 | ||||
| // Wrappeda0gibaseABI is the input ABI used to generate the binding from.
 | ||||
| @ -231,6 +231,27 @@ func (_Wrappeda0gibase *Wrappeda0gibaseTransactorSession) Burn(minter common.Add | ||||
| 	return _Wrappeda0gibase.Contract.Burn(&_Wrappeda0gibase.TransactOpts, minter, amount) | ||||
| } | ||||
| 
 | ||||
| // GetWA0GI is a paid mutator transaction binding the contract method 0xa9283a7a.
 | ||||
| //
 | ||||
| // Solidity: function getWA0GI() returns(address)
 | ||||
| func (_Wrappeda0gibase *Wrappeda0gibaseTransactor) GetWA0GI(opts *bind.TransactOpts) (*types.Transaction, error) { | ||||
| 	return _Wrappeda0gibase.contract.Transact(opts, "getWA0GI") | ||||
| } | ||||
| 
 | ||||
| // GetWA0GI is a paid mutator transaction binding the contract method 0xa9283a7a.
 | ||||
| //
 | ||||
| // Solidity: function getWA0GI() returns(address)
 | ||||
| func (_Wrappeda0gibase *Wrappeda0gibaseSession) GetWA0GI() (*types.Transaction, error) { | ||||
| 	return _Wrappeda0gibase.Contract.GetWA0GI(&_Wrappeda0gibase.TransactOpts) | ||||
| } | ||||
| 
 | ||||
| // GetWA0GI is a paid mutator transaction binding the contract method 0xa9283a7a.
 | ||||
| //
 | ||||
| // Solidity: function getWA0GI() returns(address)
 | ||||
| func (_Wrappeda0gibase *Wrappeda0gibaseTransactorSession) GetWA0GI() (*types.Transaction, error) { | ||||
| 	return _Wrappeda0gibase.Contract.GetWA0GI(&_Wrappeda0gibase.TransactOpts) | ||||
| } | ||||
| 
 | ||||
| // Mint is a paid mutator transaction binding the contract method 0xc6c3bbe6.
 | ||||
| //
 | ||||
| // Solidity: function mint(address minter, address to, uint256 amount) returns()
 | ||||
|  | ||||
| @ -11,5 +11,5 @@ option go_package = "github.com/0glabs/0g-chain/x/wrapped-a0gi-base/types"; | ||||
| // GenesisState defines the wrapped a0gi base module's genesis state. | ||||
| message GenesisState { | ||||
|   // address of wrapped a0gi contract | ||||
|   string wrapped_a0gi_address = 1; | ||||
|   bytes wrapped_a0gi_address = 1; | ||||
| } | ||||
|  | ||||
| @ -12,16 +12,25 @@ option (gogoproto.goproto_getters_all) = false; | ||||
| 
 | ||||
| // Query defines the gRPC querier service for the wrapped a0gi base module | ||||
| service Query { | ||||
|   rpc GetWA0GI(GetWA0GIRequest) returns (GetWA0GIResponse) { | ||||
|     option (google.api.http).get = "/0g/wrapped-a0gi-base/get-wa0gi"; | ||||
|   } | ||||
|   rpc MinterSupply(MinterSupplyRequest) returns (MinterSupplyResponse) { | ||||
|     option (google.api.http).get = "/0g/wrapped-a0gi-base/minter-supply"; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| message GetWA0GIRequest {} | ||||
| 
 | ||||
| message GetWA0GIResponse { | ||||
|   bytes address = 1; | ||||
| } | ||||
| 
 | ||||
| message MinterSupplyRequest { | ||||
|   string address = 1; | ||||
|   bytes address = 1; | ||||
| } | ||||
| 
 | ||||
| message MinterSupplyResponse { | ||||
|   string cap = 1; | ||||
|   string supply = 2; | ||||
|   bytes cap = 1; // big endian | ||||
|   bytes supply = 2; // big endian | ||||
| } | ||||
|  | ||||
| @ -18,30 +18,30 @@ service Msg { | ||||
| 
 | ||||
| message MsgSetWA0GI { | ||||
|   string authority = 1; | ||||
|   string address = 2; | ||||
|   bytes address = 2; | ||||
| } | ||||
| 
 | ||||
| message MsgSetWA0GIResponse {} | ||||
| 
 | ||||
| message MsgSetMintCap { | ||||
|   string authority = 1; | ||||
|   string minter = 2; | ||||
|   string cap = 3; | ||||
|   bytes minter = 2; | ||||
|   bytes cap = 3; // big endian | ||||
| } | ||||
| 
 | ||||
| message MsgSetMintCapResponse {} | ||||
| 
 | ||||
| message MsgMint { | ||||
|   string minter = 1; | ||||
|   string to = 2; | ||||
|   string amount = 3; | ||||
|   bytes minter = 1; | ||||
|   bytes to = 2; | ||||
|   bytes amount = 3; // big endian | ||||
| } | ||||
| 
 | ||||
| message MsgMintResponse {} | ||||
| 
 | ||||
| message MsgBurn { | ||||
|   string minter = 1; | ||||
|   string amount = 2; | ||||
|   bytes minter = 1; | ||||
|   bytes amount = 2; // big endian | ||||
| } | ||||
| 
 | ||||
| message MsgBurnResponse {} | ||||
|  | ||||
| @ -6,6 +6,7 @@ import ( | ||||
| 	"github.com/0glabs/0g-chain/x/wrapped-a0gi-base/keeper" | ||||
| 	"github.com/0glabs/0g-chain/x/wrapped-a0gi-base/types" | ||||
| 	sdk "github.com/cosmos/cosmos-sdk/types" | ||||
| 	"github.com/ethereum/go-ethereum/common" | ||||
| ) | ||||
| 
 | ||||
| // InitGenesis initializes the store state from a genesis state.
 | ||||
| @ -13,10 +14,12 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, gs types.GenesisState) { | ||||
| 	if err := gs.Validate(); err != nil { | ||||
| 		panic(fmt.Sprintf("failed to validate %s genesis state: %s", types.ModuleName, err)) | ||||
| 	} | ||||
| 	panic("unimplemented") | ||||
| 	keeper.SetWA0GIAddress(ctx, common.BytesToAddress(gs.WrappedA0GiAddress)) | ||||
| } | ||||
| 
 | ||||
| // ExportGenesis returns a GenesisState for a given context and keeper.
 | ||||
| func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) *types.GenesisState { | ||||
| 	panic("unimplemented") | ||||
| 	return &types.GenesisState{ | ||||
| 		WrappedA0GiAddress: keeper.GetWA0GIAddress(ctx), | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -4,11 +4,34 @@ import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"github.com/0glabs/0g-chain/x/wrapped-a0gi-base/types" | ||||
| 	sdk "github.com/cosmos/cosmos-sdk/types" | ||||
| 	"github.com/ethereum/go-ethereum/common" | ||||
| ) | ||||
| 
 | ||||
| var _ types.QueryServer = Keeper{} | ||||
| 
 | ||||
| // MinterSupply implements types.QueryServer.
 | ||||
| func (k Keeper) MinterSupply(c context.Context, request *types.MinterSupplyRequest) (*types.MinterSupplyResponse, error) { | ||||
| 	panic("unimplemented") | ||||
| 	ctx := sdk.UnwrapSDKContext(c) | ||||
| 	account := common.BytesToAddress(request.Address) | ||||
| 	cap, err := k.getMinterCap(ctx, account) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	supply, err := k.getMinterSupply(ctx, account) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return &types.MinterSupplyResponse{ | ||||
| 		Cap:    cap.Bytes(), | ||||
| 		Supply: supply.Bytes(), | ||||
| 	}, nil | ||||
| } | ||||
| 
 | ||||
| // GetWA0GI implements types.QueryServer.
 | ||||
| func (k Keeper) GetWA0GI(c context.Context, request *types.GetWA0GIRequest) (*types.GetWA0GIResponse, error) { | ||||
| 	ctx := sdk.UnwrapSDKContext(c) | ||||
| 	return &types.GetWA0GIResponse{ | ||||
| 		Address: k.GetWA0GIAddress(ctx), | ||||
| 	}, nil | ||||
| } | ||||
|  | ||||
| @ -1,14 +1,22 @@ | ||||
| package keeper | ||||
| 
 | ||||
| import ( | ||||
| 	"github.com/cosmos/cosmos-sdk/codec" | ||||
| 	"math/big" | ||||
| 
 | ||||
| 	"github.com/0glabs/0g-chain/x/wrapped-a0gi-base/types" | ||||
| 	"github.com/cosmos/cosmos-sdk/codec" | ||||
| 	"github.com/ethereum/go-ethereum/common" | ||||
| 
 | ||||
| 	precisebankkeeper "github.com/0glabs/0g-chain/x/precisebank/keeper" | ||||
| 	"github.com/cosmos/cosmos-sdk/store/prefix" | ||||
| 	storetypes "github.com/cosmos/cosmos-sdk/store/types" | ||||
| 	sdk "github.com/cosmos/cosmos-sdk/types" | ||||
| ) | ||||
| 
 | ||||
| type Keeper struct { | ||||
| 	storeKey  storetypes.StoreKey | ||||
| 	cdc       codec.BinaryCodec | ||||
| 	pbkeeper  precisebankkeeper.Keeper | ||||
| 	authority string // the address capable of changing signers params. Should be the gov module account
 | ||||
| } | ||||
| 
 | ||||
| @ -16,11 +24,48 @@ type Keeper struct { | ||||
| func NewKeeper( | ||||
| 	storeKey storetypes.StoreKey, | ||||
| 	cdc codec.BinaryCodec, | ||||
| 	pbkeeper precisebankkeeper.Keeper, | ||||
| 	authority string, | ||||
| ) Keeper { | ||||
| 	return Keeper{ | ||||
| 		storeKey:  storeKey, | ||||
| 		cdc:       cdc, | ||||
| 		pbkeeper:  pbkeeper, | ||||
| 		authority: authority, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func (k Keeper) SetWA0GIAddress(ctx sdk.Context, addr common.Address) { | ||||
| 	store := ctx.KVStore(k.storeKey) | ||||
| 	store.Set(types.WA0GIKey, addr.Bytes()) | ||||
| } | ||||
| 
 | ||||
| func (k Keeper) GetWA0GIAddress(ctx sdk.Context) []byte { | ||||
| 	store := ctx.KVStore(k.storeKey) | ||||
| 	bz := store.Get(types.WA0GIKey) | ||||
| 	return bz | ||||
| } | ||||
| 
 | ||||
| func (k Keeper) setMinterCap(ctx sdk.Context, account common.Address, cap *big.Int) error { | ||||
| 	store := prefix.NewStore(ctx.KVStore(k.storeKey), types.MinterCapKeyPrefix) | ||||
| 	store.Set(account.Bytes(), cap.Bytes()) | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func (k Keeper) getMinterCap(ctx sdk.Context, account common.Address) (*big.Int, error) { | ||||
| 	store := prefix.NewStore(ctx.KVStore(k.storeKey), types.MinterCapKeyPrefix) | ||||
| 	bz := store.Get(account.Bytes()) | ||||
| 	return new(big.Int).SetBytes(bz), nil | ||||
| } | ||||
| 
 | ||||
| func (k Keeper) setMinterSupply(ctx sdk.Context, account common.Address, supply *big.Int) error { | ||||
| 	store := prefix.NewStore(ctx.KVStore(k.storeKey), types.MinterSupplyKeyPrefix) | ||||
| 	store.Set(account.Bytes(), supply.Bytes()) | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func (k Keeper) getMinterSupply(ctx sdk.Context, account common.Address) (*big.Int, error) { | ||||
| 	store := prefix.NewStore(ctx.KVStore(k.storeKey), types.MinterSupplyKeyPrefix) | ||||
| 	bz := store.Get(account.Bytes()) | ||||
| 	return new(big.Int).SetBytes(bz), nil | ||||
| } | ||||
|  | ||||
| @ -2,37 +2,107 @@ package keeper | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 	"math/big" | ||||
| 
 | ||||
| 	"github.com/0glabs/0g-chain/x/wrapped-a0gi-base/types" | ||||
| ) | ||||
| 
 | ||||
| /* | ||||
| 	errorsmod "cosmossdk.io/errors" | ||||
| 	"github.com/0glabs/0g-chain/crypto/bn254util" | ||||
| 	precisebanktypes "github.com/0glabs/0g-chain/x/precisebank/types" | ||||
| 	"github.com/0glabs/0g-chain/x/wrapped-a0gi-base/types" | ||||
| 	sdk "github.com/cosmos/cosmos-sdk/types" | ||||
| 	gov "github.com/cosmos/cosmos-sdk/x/gov/types" | ||||
| 	"github.com/ethereum/go-ethereum/common" | ||||
| 	etherminttypes "github.com/evmos/ethermint/types" | ||||
| */ | ||||
| ) | ||||
| 
 | ||||
| var _ types.MsgServer = &Keeper{} | ||||
| 
 | ||||
| // Burn implements types.MsgServer.
 | ||||
| func (k Keeper) Burn(goCtx context.Context, msg *types.MsgBurn) (*types.MsgBurnResponse, error) { | ||||
| 	panic("unimplemented") | ||||
| 	ctx := sdk.UnwrapSDKContext(goCtx) | ||||
| 	minter := common.BytesToAddress(msg.Minter) | ||||
| 	cap, err := k.getMinterCap(ctx, minter) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	supply, err := k.getMinterSupply(ctx, minter) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	amount := new(big.Int).SetBytes(msg.Amount) | ||||
| 	// check & update mint supply
 | ||||
| 	supply.Sub(supply, amount) | ||||
| 	if supply.Cmp(cap) > 0 { | ||||
| 		return nil, types.ErrInsufficientMintCap | ||||
| 	} | ||||
| 	if err = k.setMinterSupply(ctx, minter, supply); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	// transfer & burn
 | ||||
| 	c := sdk.NewCoin(precisebanktypes.ExtendedCoinDenom, sdk.NewIntFromBigInt(amount)) | ||||
| 	burner := sdk.AccAddress(minter.Bytes()) | ||||
| 	if err = k.pbkeeper.SendCoinsFromAccountToModule(ctx, burner, types.ModuleName, sdk.NewCoins(c)); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	if err = k.pbkeeper.BurnCoins(ctx, types.ModuleName, sdk.NewCoins(c)); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return &types.MsgBurnResponse{}, nil | ||||
| } | ||||
| 
 | ||||
| // Mint implements types.MsgServer.
 | ||||
| func (k Keeper) Mint(goCtx context.Context, msg *types.MsgMint) (*types.MsgMintResponse, error) { | ||||
| 	panic("unimplemented") | ||||
| 	ctx := sdk.UnwrapSDKContext(goCtx) | ||||
| 	minter := common.BytesToAddress(msg.Minter) | ||||
| 	cap, err := k.getMinterCap(ctx, minter) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	supply, err := k.getMinterSupply(ctx, minter) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	amount := new(big.Int).SetBytes(msg.Amount) | ||||
| 	// check & update mint supply
 | ||||
| 	supply.Add(supply, amount) | ||||
| 	if supply.Cmp(cap) > 0 { | ||||
| 		return nil, types.ErrInsufficientMintCap | ||||
| 	} | ||||
| 	if err = k.setMinterSupply(ctx, minter, supply); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	// mint & transfer
 | ||||
| 	c := sdk.NewCoin(precisebanktypes.ExtendedCoinDenom, sdk.NewIntFromBigInt(amount)) | ||||
| 	if err = k.pbkeeper.MintCoins(ctx, types.ModuleName, sdk.NewCoins(c)); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	recipient := sdk.AccAddress(common.BytesToAddress(msg.To).Bytes()) | ||||
| 	if err = k.pbkeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, recipient, sdk.NewCoins(c)); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return &types.MsgMintResponse{}, nil | ||||
| } | ||||
| 
 | ||||
| // SetMinterCap implements types.MsgServer.
 | ||||
| func (k Keeper) SetMinterCap(goCtx context.Context, msg *types.MsgSetMintCap) (*types.MsgSetMintCapResponse, error) { | ||||
| 	panic("unimplemented") | ||||
| 	ctx := sdk.UnwrapSDKContext(goCtx) | ||||
| 	minter := common.BytesToAddress(msg.Minter) | ||||
| 	// validate authority
 | ||||
| 	if k.authority != msg.Authority { | ||||
| 		return nil, errorsmod.Wrapf(gov.ErrInvalidSigner, "expected %s got %s", k.authority, msg.Authority) | ||||
| 	} | ||||
| 	// update minter cap
 | ||||
| 	if err := k.setMinterCap(ctx, minter, new(big.Int).SetBytes(msg.Cap)); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return &types.MsgSetMintCapResponse{}, nil | ||||
| } | ||||
| 
 | ||||
| // SetWA0GI implements types.MsgServer.
 | ||||
| func (k Keeper) SetWA0GI(goCtx context.Context, msg *types.MsgSetWA0GI) (*types.MsgSetWA0GIResponse, error) { | ||||
| 	panic("unimplemented") | ||||
| 	ctx := sdk.UnwrapSDKContext(goCtx) | ||||
| 	// validate authority
 | ||||
| 	if k.authority != msg.Authority { | ||||
| 		return nil, errorsmod.Wrapf(gov.ErrInvalidSigner, "expected %s got %s", k.authority, msg.Authority) | ||||
| 	} | ||||
| 	// save new address
 | ||||
| 	k.SetWA0GIAddress(ctx, common.BytesToAddress(msg.Address)) | ||||
| 	return &types.MsgSetWA0GIResponse{}, nil | ||||
| } | ||||
|  | ||||
| @ -3,5 +3,6 @@ package types | ||||
| import errorsmod "cosmossdk.io/errors" | ||||
| 
 | ||||
| var ( | ||||
| 	ErrTxForbidden = errorsmod.Register(ModuleName, 1, "cosmos tx forbidden") | ||||
| 	ErrTxForbidden         = errorsmod.Register(ModuleName, 1, "cosmos tx forbidden") | ||||
| 	ErrInsufficientMintCap = errorsmod.Register(ModuleName, 2, "insufficient mint cap") | ||||
| ) | ||||
|  | ||||
| @ -1,18 +1,24 @@ | ||||
| package types | ||||
| 
 | ||||
| import "github.com/ethereum/go-ethereum/common" | ||||
| 
 | ||||
| const ( | ||||
| 	DEFAULT_WRAPPED_A0GI = "0000000000000000000000000000000000000000" | ||||
| ) | ||||
| 
 | ||||
| // NewGenesisState returns a new genesis state object for the module.
 | ||||
| func NewGenesisState(addr string) *GenesisState { | ||||
| func NewGenesisState(addr common.Address) *GenesisState { | ||||
| 	return &GenesisState{ | ||||
| 		WrappedA0GiAddress: addr, | ||||
| 		WrappedA0GiAddress: addr.Bytes(), | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // DefaultGenesisState returns the default genesis state for the module.
 | ||||
| func DefaultGenesisState() *GenesisState { | ||||
| 	return NewGenesisState("0000000000000000000000000000000000000000") | ||||
| 	return NewGenesisState(common.HexToAddress(DEFAULT_WRAPPED_A0GI)) | ||||
| } | ||||
| 
 | ||||
| // Validate performs basic validation of genesis data.
 | ||||
| func (gs GenesisState) Validate() error { | ||||
| 	return ValidateHexAddress(gs.WrappedA0GiAddress) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| @ -29,7 +29,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package | ||||
| // GenesisState defines the wrapped a0gi base module's genesis state.
 | ||||
| type GenesisState struct { | ||||
| 	// address of wrapped a0gi contract
 | ||||
| 	WrappedA0GiAddress string `protobuf:"bytes,1,opt,name=wrapped_a0gi_address,json=wrappedA0giAddress,proto3" json:"wrapped_a0gi_address,omitempty"` | ||||
| 	WrappedA0GiAddress []byte `protobuf:"bytes,1,opt,name=wrapped_a0gi_address,json=wrappedA0giAddress,proto3" json:"wrapped_a0gi_address,omitempty"` | ||||
| } | ||||
| 
 | ||||
| func (m *GenesisState) Reset()         { *m = GenesisState{} } | ||||
| @ -65,11 +65,11 @@ func (m *GenesisState) XXX_DiscardUnknown() { | ||||
| 
 | ||||
| var xxx_messageInfo_GenesisState proto.InternalMessageInfo | ||||
| 
 | ||||
| func (m *GenesisState) GetWrappedA0GiAddress() string { | ||||
| func (m *GenesisState) GetWrappedA0GiAddress() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.WrappedA0GiAddress | ||||
| 	} | ||||
| 	return "" | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func init() { | ||||
| @ -81,21 +81,21 @@ func init() { proto.RegisterFile("zgc/wrappeda0gibase/genesis.proto", fileDescri | ||||
| var fileDescriptor_7e056019f61fd820 = []byte{ | ||||
| 	// 246 bytes of a gzipped FileDescriptorProto
 | ||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x90, 0xbd, 0x4e, 0xc3, 0x30, | ||||
| 	0x10, 0x80, 0xe3, 0x05, 0x89, 0x88, 0x29, 0x74, 0xa0, 0x1d, 0xcc, 0xcf, 0xc4, 0x92, 0xd8, 0x12, | ||||
| 	0x3c, 0x00, 0x65, 0x61, 0x63, 0x80, 0x8d, 0x25, 0xb2, 0x1d, 0x73, 0xb5, 0xd4, 0xe4, 0xac, 0x9c, | ||||
| 	0x2b, 0x68, 0x9f, 0x82, 0xc7, 0x62, 0xec, 0xc8, 0x88, 0x92, 0x17, 0x41, 0x89, 0xc3, 0x92, 0xcd, | ||||
| 	0x77, 0xdf, 0x27, 0xf9, 0xd3, 0xa5, 0xd7, 0x07, 0x30, 0xe2, 0xa3, 0x55, 0xde, 0xdb, 0x4a, 0x49, | ||||
| 	0x70, 0x5a, 0x91, 0x15, 0x60, 0x1b, 0x4b, 0x8e, 0x0a, 0xdf, 0x62, 0xc0, 0xec, 0xfc, 0x00, 0xa6, | ||||
| 	0x98, 0x29, 0xab, 0xa5, 0x41, 0xaa, 0x91, 0xca, 0x51, 0x11, 0x71, 0x88, 0xfe, 0x6a, 0x01, 0x08, | ||||
| 	0x18, 0xf7, 0xc3, 0x6b, 0xda, 0x2e, 0x01, 0x11, 0xb6, 0x56, 0x8c, 0x93, 0xde, 0xbd, 0x0b, 0xd5, | ||||
| 	0xec, 0x27, 0x74, 0x39, 0x47, 0xc1, 0xd5, 0x96, 0x82, 0xaa, 0x7d, 0x14, 0x6e, 0x1e, 0xd2, 0xb3, | ||||
| 	0xa7, 0x98, 0xf4, 0x1a, 0x54, 0xb0, 0x99, 0x4c, 0x17, 0x53, 0x4f, 0x39, 0x04, 0x95, 0xaa, 0xaa, | ||||
| 	0x5a, 0x4b, 0x74, 0xc1, 0xae, 0xd8, 0xed, 0xe9, 0x4b, 0x36, 0xb1, 0xb5, 0x04, 0xb7, 0x8e, 0xe4, | ||||
| 	0xf1, 0xf9, 0xbb, 0xe3, 0xec, 0xd8, 0x71, 0xf6, 0xdb, 0x71, 0xf6, 0xd5, 0xf3, 0xe4, 0xd8, 0xf3, | ||||
| 	0xe4, 0xa7, 0xe7, 0xc9, 0xdb, 0x3d, 0xb8, 0xb0, 0xd9, 0xe9, 0xc2, 0x60, 0x2d, 0x24, 0x6c, 0x95, | ||||
| 	0x26, 0x21, 0x21, 0x37, 0x1b, 0xe5, 0x1a, 0xf1, 0xf9, 0x7f, 0x99, 0x7c, 0xf8, 0x26, 0x1f, 0x6f, | ||||
| 	0x13, 0xf6, 0xde, 0x92, 0x3e, 0x19, 0xc3, 0xee, 0xfe, 0x02, 0x00, 0x00, 0xff, 0xff, 0xe8, 0xe8, | ||||
| 	0x6b, 0x2a, 0x3f, 0x01, 0x00, 0x00, | ||||
| 	0x10, 0x80, 0xe3, 0x85, 0x21, 0xea, 0x14, 0x3a, 0xd0, 0x0e, 0xe6, 0x67, 0x62, 0x49, 0x6c, 0x09, | ||||
| 	0x1e, 0x80, 0xb2, 0xb0, 0x31, 0xc0, 0xc6, 0x12, 0xd9, 0x8e, 0xb9, 0x5a, 0x6a, 0x72, 0x56, 0xce, | ||||
| 	0x15, 0xb4, 0x4f, 0xc1, 0x63, 0x31, 0x76, 0x64, 0x44, 0xc9, 0x8b, 0xa0, 0xc4, 0x61, 0xc9, 0xe6, | ||||
| 	0xbb, 0xef, 0x93, 0xfc, 0xe9, 0xd2, 0xeb, 0x23, 0x18, 0xf1, 0xd1, 0x2a, 0xef, 0x6d, 0xa5, 0x24, | ||||
| 	0x38, 0xad, 0xc8, 0x0a, 0xb0, 0x8d, 0x25, 0x47, 0x85, 0x6f, 0x31, 0x60, 0x76, 0x7e, 0x04, 0x53, | ||||
| 	0xcc, 0x94, 0xf5, 0xca, 0x20, 0xd5, 0x48, 0xe5, 0xa8, 0x88, 0x38, 0x44, 0x7f, 0xbd, 0x04, 0x04, | ||||
| 	0x8c, 0xfb, 0xe1, 0x35, 0x6d, 0x57, 0x80, 0x08, 0x3b, 0x2b, 0xc6, 0x49, 0xef, 0xdf, 0x85, 0x6a, | ||||
| 	0x0e, 0x13, 0xba, 0x9c, 0xa3, 0xe0, 0x6a, 0x4b, 0x41, 0xd5, 0x3e, 0x0a, 0x37, 0x0f, 0xe9, 0xe2, | ||||
| 	0x29, 0x26, 0xbd, 0x06, 0x15, 0x6c, 0x26, 0xd3, 0xe5, 0xd4, 0x53, 0x0e, 0x41, 0xa5, 0xaa, 0xaa, | ||||
| 	0xd6, 0x12, 0x5d, 0xb0, 0x2b, 0x76, 0xbb, 0x78, 0xc9, 0x26, 0xb6, 0x91, 0xe0, 0x36, 0x91, 0x3c, | ||||
| 	0x3e, 0x7f, 0x77, 0x9c, 0x9d, 0x3a, 0xce, 0x7e, 0x3b, 0xce, 0xbe, 0x7a, 0x9e, 0x9c, 0x7a, 0x9e, | ||||
| 	0xfc, 0xf4, 0x3c, 0x79, 0xbb, 0x07, 0x17, 0xb6, 0x7b, 0x5d, 0x18, 0xac, 0x85, 0x84, 0x9d, 0xd2, | ||||
| 	0x24, 0x24, 0xe4, 0x66, 0xab, 0x5c, 0x23, 0x3e, 0xff, 0x2f, 0x93, 0x0f, 0xdf, 0xe4, 0xe3, 0x6d, | ||||
| 	0xc2, 0xc1, 0x5b, 0xd2, 0x67, 0x63, 0xd8, 0xdd, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xec, 0x50, | ||||
| 	0x04, 0x4c, 0x3f, 0x01, 0x00, 0x00, | ||||
| } | ||||
| 
 | ||||
| func (m *GenesisState) Marshal() (dAtA []byte, err error) { | ||||
| @ -191,7 +191,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field WrappedA0GiAddress", wireType) | ||||
| 			} | ||||
| 			var stringLen uint64 | ||||
| 			var byteLen int | ||||
| 			for shift := uint(0); ; shift += 7 { | ||||
| 				if shift >= 64 { | ||||
| 					return ErrIntOverflowGenesis | ||||
| @ -201,23 +201,25 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { | ||||
| 				} | ||||
| 				b := dAtA[iNdEx] | ||||
| 				iNdEx++ | ||||
| 				stringLen |= uint64(b&0x7F) << shift | ||||
| 				byteLen |= int(b&0x7F) << shift | ||||
| 				if b < 0x80 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			intStringLen := int(stringLen) | ||||
| 			if intStringLen < 0 { | ||||
| 			if byteLen < 0 { | ||||
| 				return ErrInvalidLengthGenesis | ||||
| 			} | ||||
| 			postIndex := iNdEx + intStringLen | ||||
| 			postIndex := iNdEx + byteLen | ||||
| 			if postIndex < 0 { | ||||
| 				return ErrInvalidLengthGenesis | ||||
| 			} | ||||
| 			if postIndex > l { | ||||
| 				return io.ErrUnexpectedEOF | ||||
| 			} | ||||
| 			m.WrappedA0GiAddress = string(dAtA[iNdEx:postIndex]) | ||||
| 			m.WrappedA0GiAddress = append(m.WrappedA0GiAddress[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.WrappedA0GiAddress == nil { | ||||
| 				m.WrappedA0GiAddress = []byte{} | ||||
| 			} | ||||
| 			iNdEx = postIndex | ||||
| 		default: | ||||
| 			iNdEx = preIndex | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| package types | ||||
| 
 | ||||
| import "encoding/hex" | ||||
| 
 | ||||
| const ( | ||||
| 	// ModuleName The name that will be used throughout the module
 | ||||
| 	ModuleName = "wrapped-a0gi-base" | ||||
| @ -10,3 +12,16 @@ const ( | ||||
| 	// QuerierRoute Top level query string
 | ||||
| 	QuerierRoute = ModuleName | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
| 	// prefix
 | ||||
| 	MinterCapKeyPrefix    = []byte{0x00} | ||||
| 	MinterSupplyKeyPrefix = []byte{0x01} | ||||
| 
 | ||||
| 	// keys
 | ||||
| 	WA0GIKey = []byte{0x00} | ||||
| ) | ||||
| 
 | ||||
| func GetMinterKeyFromAccount(account string) ([]byte, error) { | ||||
| 	return hex.DecodeString(account) | ||||
| } | ||||
|  | ||||
| @ -1,26 +1,12 @@ | ||||
| package types | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/hex" | ||||
| 	fmt "fmt" | ||||
| 
 | ||||
| 	errorsmod "cosmossdk.io/errors" | ||||
| 	sdk "github.com/cosmos/cosmos-sdk/types" | ||||
| ) | ||||
| 
 | ||||
| var _, _, _, _ sdk.Msg = &MsgSetWA0GI{}, &MsgSetMintCap{}, &MsgMint{}, &MsgBurn{} | ||||
| 
 | ||||
| func ValidateHexAddress(account string) error { | ||||
| 	addr, err := hex.DecodeString(account) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if len(addr) != 20 { | ||||
| 		return fmt.Errorf("invalid address length") | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func (msg *MsgSetWA0GI) GetSigners() []sdk.AccAddress { | ||||
| 	addr, _ := sdk.AccAddressFromBech32(msg.Authority) | ||||
| 	return []sdk.AccAddress{addr} | ||||
| @ -31,10 +17,6 @@ func (msg *MsgSetWA0GI) ValidateBasic() error { | ||||
| 		return errorsmod.Wrap(err, "authority") | ||||
| 	} | ||||
| 
 | ||||
| 	if err := ValidateHexAddress(msg.Address); err != nil { | ||||
| 		return errorsmod.Wrap(err, "address") | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| @ -52,10 +34,6 @@ func (msg *MsgSetMintCap) ValidateBasic() error { | ||||
| 		return errorsmod.Wrap(err, "authority") | ||||
| 	} | ||||
| 
 | ||||
| 	if err := ValidateHexAddress(msg.Minter); err != nil { | ||||
| 		return errorsmod.Wrap(err, "minter") | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -32,15 +32,88 @@ var _ = math.Inf | ||||
| // proto package needs to be updated.
 | ||||
| const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
 | ||||
| 
 | ||||
| type GetWA0GIRequest struct { | ||||
| } | ||||
| 
 | ||||
| func (m *GetWA0GIRequest) Reset()         { *m = GetWA0GIRequest{} } | ||||
| func (m *GetWA0GIRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetWA0GIRequest) ProtoMessage()    {} | ||||
| func (*GetWA0GIRequest) Descriptor() ([]byte, []int) { | ||||
| 	return fileDescriptor_19911faa2ec12c75, []int{0} | ||||
| } | ||||
| func (m *GetWA0GIRequest) XXX_Unmarshal(b []byte) error { | ||||
| 	return m.Unmarshal(b) | ||||
| } | ||||
| func (m *GetWA0GIRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { | ||||
| 	if deterministic { | ||||
| 		return xxx_messageInfo_GetWA0GIRequest.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 *GetWA0GIRequest) XXX_Merge(src proto.Message) { | ||||
| 	xxx_messageInfo_GetWA0GIRequest.Merge(m, src) | ||||
| } | ||||
| func (m *GetWA0GIRequest) XXX_Size() int { | ||||
| 	return m.Size() | ||||
| } | ||||
| func (m *GetWA0GIRequest) XXX_DiscardUnknown() { | ||||
| 	xxx_messageInfo_GetWA0GIRequest.DiscardUnknown(m) | ||||
| } | ||||
| 
 | ||||
| var xxx_messageInfo_GetWA0GIRequest proto.InternalMessageInfo | ||||
| 
 | ||||
| type GetWA0GIResponse struct { | ||||
| 	Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` | ||||
| } | ||||
| 
 | ||||
| func (m *GetWA0GIResponse) Reset()         { *m = GetWA0GIResponse{} } | ||||
| func (m *GetWA0GIResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetWA0GIResponse) ProtoMessage()    {} | ||||
| func (*GetWA0GIResponse) Descriptor() ([]byte, []int) { | ||||
| 	return fileDescriptor_19911faa2ec12c75, []int{1} | ||||
| } | ||||
| func (m *GetWA0GIResponse) XXX_Unmarshal(b []byte) error { | ||||
| 	return m.Unmarshal(b) | ||||
| } | ||||
| func (m *GetWA0GIResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { | ||||
| 	if deterministic { | ||||
| 		return xxx_messageInfo_GetWA0GIResponse.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 *GetWA0GIResponse) XXX_Merge(src proto.Message) { | ||||
| 	xxx_messageInfo_GetWA0GIResponse.Merge(m, src) | ||||
| } | ||||
| func (m *GetWA0GIResponse) XXX_Size() int { | ||||
| 	return m.Size() | ||||
| } | ||||
| func (m *GetWA0GIResponse) XXX_DiscardUnknown() { | ||||
| 	xxx_messageInfo_GetWA0GIResponse.DiscardUnknown(m) | ||||
| } | ||||
| 
 | ||||
| var xxx_messageInfo_GetWA0GIResponse proto.InternalMessageInfo | ||||
| 
 | ||||
| type MinterSupplyRequest struct { | ||||
| 	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` | ||||
| 	Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` | ||||
| } | ||||
| 
 | ||||
| func (m *MinterSupplyRequest) Reset()         { *m = MinterSupplyRequest{} } | ||||
| func (m *MinterSupplyRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*MinterSupplyRequest) ProtoMessage()    {} | ||||
| func (*MinterSupplyRequest) Descriptor() ([]byte, []int) { | ||||
| 	return fileDescriptor_19911faa2ec12c75, []int{0} | ||||
| 	return fileDescriptor_19911faa2ec12c75, []int{2} | ||||
| } | ||||
| func (m *MinterSupplyRequest) XXX_Unmarshal(b []byte) error { | ||||
| 	return m.Unmarshal(b) | ||||
| @ -70,15 +143,15 @@ func (m *MinterSupplyRequest) XXX_DiscardUnknown() { | ||||
| var xxx_messageInfo_MinterSupplyRequest proto.InternalMessageInfo | ||||
| 
 | ||||
| type MinterSupplyResponse struct { | ||||
| 	Cap    string `protobuf:"bytes,1,opt,name=cap,proto3" json:"cap,omitempty"` | ||||
| 	Supply string `protobuf:"bytes,2,opt,name=supply,proto3" json:"supply,omitempty"` | ||||
| 	Cap    []byte `protobuf:"bytes,1,opt,name=cap,proto3" json:"cap,omitempty"` | ||||
| 	Supply []byte `protobuf:"bytes,2,opt,name=supply,proto3" json:"supply,omitempty"` | ||||
| } | ||||
| 
 | ||||
| func (m *MinterSupplyResponse) Reset()         { *m = MinterSupplyResponse{} } | ||||
| func (m *MinterSupplyResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*MinterSupplyResponse) ProtoMessage()    {} | ||||
| func (*MinterSupplyResponse) Descriptor() ([]byte, []int) { | ||||
| 	return fileDescriptor_19911faa2ec12c75, []int{1} | ||||
| 	return fileDescriptor_19911faa2ec12c75, []int{3} | ||||
| } | ||||
| func (m *MinterSupplyResponse) XXX_Unmarshal(b []byte) error { | ||||
| 	return m.Unmarshal(b) | ||||
| @ -108,6 +181,8 @@ func (m *MinterSupplyResponse) XXX_DiscardUnknown() { | ||||
| var xxx_messageInfo_MinterSupplyResponse proto.InternalMessageInfo | ||||
| 
 | ||||
| func init() { | ||||
| 	proto.RegisterType((*GetWA0GIRequest)(nil), "zgc.wrappeda0gibase.GetWA0GIRequest") | ||||
| 	proto.RegisterType((*GetWA0GIResponse)(nil), "zgc.wrappeda0gibase.GetWA0GIResponse") | ||||
| 	proto.RegisterType((*MinterSupplyRequest)(nil), "zgc.wrappeda0gibase.MinterSupplyRequest") | ||||
| 	proto.RegisterType((*MinterSupplyResponse)(nil), "zgc.wrappeda0gibase.MinterSupplyResponse") | ||||
| } | ||||
| @ -115,29 +190,33 @@ func init() { | ||||
| func init() { proto.RegisterFile("zgc/wrappeda0gibase/query.proto", fileDescriptor_19911faa2ec12c75) } | ||||
| 
 | ||||
| var fileDescriptor_19911faa2ec12c75 = []byte{ | ||||
| 	// 348 bytes of a gzipped FileDescriptorProto
 | ||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0xc1, 0x4a, 0x2b, 0x31, | ||||
| 	0x14, 0x86, 0x27, 0xbd, 0xdc, 0x5e, 0x6e, 0x70, 0x21, 0x69, 0x91, 0x76, 0x90, 0x54, 0x2a, 0x42, | ||||
| 	0x45, 0x66, 0x32, 0xa8, 0x0f, 0x20, 0xee, 0x5d, 0x58, 0x77, 0x6e, 0x24, 0x33, 0x8d, 0x69, 0xa0, | ||||
| 	0x93, 0xa4, 0x93, 0x0c, 0xda, 0x2e, 0x7d, 0x82, 0x82, 0x3b, 0x9f, 0xa8, 0xcb, 0x82, 0x1b, 0x97, | ||||
| 	0xda, 0xfa, 0x20, 0x32, 0x99, 0x29, 0x68, 0xe9, 0xc2, 0x5d, 0xfe, 0x73, 0xbe, 0xff, 0xe4, 0xf0, | ||||
| 	0x1f, 0xd8, 0x99, 0xf2, 0x84, 0x3c, 0x64, 0x54, 0x6b, 0x36, 0xa0, 0x11, 0x17, 0x31, 0x35, 0x8c, | ||||
| 	0x8c, 0x73, 0x96, 0x4d, 0x42, 0x9d, 0x29, 0xab, 0x50, 0x63, 0xca, 0x93, 0x70, 0x03, 0xf0, 0xdb, | ||||
| 	0x89, 0x32, 0xa9, 0x32, 0x77, 0x0e, 0x21, 0xa5, 0x28, 0x79, 0xbf, 0xc9, 0x15, 0x57, 0x65, 0xbd, | ||||
| 	0x78, 0x55, 0xd5, 0x7d, 0xae, 0x14, 0x1f, 0x31, 0x42, 0xb5, 0x20, 0x54, 0x4a, 0x65, 0xa9, 0x15, | ||||
| 	0x4a, 0xae, 0x3d, 0xed, 0xaa, 0xeb, 0x54, 0x9c, 0xdf, 0x13, 0x2a, 0xab, 0xef, 0xfd, 0xce, 0x66, | ||||
| 	0xcb, 0x8a, 0x94, 0x19, 0x4b, 0x53, 0x5d, 0x02, 0x5d, 0x02, 0x1b, 0x57, 0x42, 0x5a, 0x96, 0xdd, | ||||
| 	0xe4, 0x5a, 0x8f, 0x26, 0x7d, 0x36, 0xce, 0x99, 0xb1, 0xa8, 0x05, 0xff, 0xd1, 0xc1, 0x20, 0x63, | ||||
| 	0xc6, 0xb4, 0xc0, 0x01, 0xe8, 0xfd, 0xef, 0xaf, 0x65, 0xf7, 0x02, 0x36, 0x7f, 0x1a, 0x8c, 0x56, | ||||
| 	0xd2, 0x30, 0xb4, 0x0b, 0xff, 0x24, 0x54, 0x57, 0x74, 0xf1, 0x44, 0x7b, 0xb0, 0x6e, 0x1c, 0xd3, | ||||
| 	0xaa, 0xb9, 0x62, 0xa5, 0x4e, 0x5f, 0x00, 0xfc, 0x7b, 0x5d, 0x44, 0x84, 0x66, 0x00, 0xee, 0x7c, | ||||
| 	0x1f, 0x86, 0x7a, 0xe1, 0x96, 0xb8, 0xc2, 0x2d, 0x0b, 0xfa, 0xc7, 0xbf, 0x20, 0xcb, 0xcd, 0xba, | ||||
| 	0x27, 0x4f, 0xaf, 0x9f, 0xcf, 0xb5, 0x23, 0x74, 0x48, 0x22, 0xbe, 0xbe, 0x55, 0x50, 0x58, 0x02, | ||||
| 	0x77, 0xad, 0xd4, 0x79, 0x82, 0x72, 0xb9, 0xcb, 0xfe, 0xfc, 0x03, 0x7b, 0xf3, 0x25, 0x06, 0x8b, | ||||
| 	0x25, 0x06, 0xef, 0x4b, 0x0c, 0x66, 0x2b, 0xec, 0x2d, 0x56, 0xd8, 0x7b, 0x5b, 0x61, 0xef, 0xf6, | ||||
| 	0x9c, 0x0b, 0x3b, 0xcc, 0xe3, 0x30, 0x51, 0x29, 0x89, 0xf8, 0x88, 0xc6, 0x86, 0x44, 0x3c, 0x48, | ||||
| 	0x86, 0x54, 0x48, 0xf2, 0xb8, 0x65, 0xb6, 0x9d, 0x68, 0x66, 0xe2, 0xba, 0x8b, 0xfa, 0xec, 0x2b, | ||||
| 	0x00, 0x00, 0xff, 0xff, 0x26, 0x34, 0x94, 0xac, 0x2d, 0x02, 0x00, 0x00, | ||||
| 	// 410 bytes of a gzipped FileDescriptorProto
 | ||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xc1, 0x6e, 0xd3, 0x30, | ||||
| 	0x18, 0xc7, 0x93, 0x22, 0x0a, 0xb2, 0x2a, 0x51, 0xdc, 0x0a, 0xb5, 0x11, 0x4a, 0x21, 0x50, 0x51, | ||||
| 	0x04, 0x89, 0x23, 0xe0, 0x01, 0x80, 0x4b, 0xc5, 0x81, 0x03, 0xe5, 0x80, 0xc4, 0x05, 0x39, 0xa9, | ||||
| 	0x71, 0x23, 0x35, 0xb1, 0x1b, 0x3b, 0xea, 0xda, 0xd3, 0xb4, 0x27, 0xa8, 0xb4, 0xf3, 0xde, 0xa7, | ||||
| 	0xc7, 0x4a, 0xbb, 0xec, 0xb8, 0xb5, 0x7b, 0x90, 0x29, 0x8e, 0xa3, 0x6d, 0x55, 0xb4, 0xed, 0xe6, | ||||
| 	0xff, 0xe7, 0xdf, 0xe7, 0xef, 0xef, 0xbf, 0x0d, 0x7a, 0x4b, 0x1a, 0xa2, 0x79, 0x8a, 0x39, 0x27, | ||||
| 	0x63, 0xec, 0xd3, 0x28, 0xc0, 0x82, 0xa0, 0x59, 0x46, 0xd2, 0x85, 0xc7, 0x53, 0x26, 0x19, 0x6c, | ||||
| 	0x2d, 0x69, 0xe8, 0xed, 0x01, 0x56, 0x37, 0x64, 0x22, 0x66, 0xe2, 0x9f, 0x42, 0x50, 0x21, 0x0a, | ||||
| 	0xde, 0x6a, 0x53, 0x46, 0x59, 0x51, 0xcf, 0x57, 0xba, 0xfa, 0x92, 0x32, 0x46, 0xa7, 0x04, 0x61, | ||||
| 	0x1e, 0x21, 0x9c, 0x24, 0x4c, 0x62, 0x19, 0xb1, 0xa4, 0xec, 0xe9, 0xea, 0x5d, 0xa5, 0x82, 0xec, | ||||
| 	0x3f, 0xc2, 0x89, 0x1e, 0x6f, 0xf5, 0xf6, 0xb7, 0x64, 0x14, 0x13, 0x21, 0x71, 0xcc, 0x0b, 0xc0, | ||||
| 	0x79, 0x0e, 0x9e, 0x0d, 0x89, 0xfc, 0xf3, 0xcd, 0x1f, 0xfe, 0x18, 0x91, 0x59, 0x46, 0x84, 0x74, | ||||
| 	0x3e, 0x82, 0xe6, 0x75, 0x49, 0x70, 0x96, 0x08, 0x02, 0x3b, 0xe0, 0x09, 0x1e, 0x8f, 0x53, 0x22, | ||||
| 	0x44, 0xc7, 0x7c, 0x65, 0x0e, 0x1a, 0xa3, 0x52, 0x3a, 0x08, 0xb4, 0x7e, 0x46, 0x89, 0x24, 0xe9, | ||||
| 	0xef, 0x8c, 0xf3, 0xe9, 0x42, 0x1f, 0x72, 0x47, 0xc3, 0x57, 0xd0, 0xbe, 0xdd, 0xa0, 0x47, 0x34, | ||||
| 	0xc1, 0xa3, 0x10, 0x73, 0x4d, 0xe7, 0x4b, 0xf8, 0x02, 0xd4, 0x85, 0x62, 0x3a, 0x35, 0x55, 0xd4, | ||||
| 	0xea, 0xd3, 0x49, 0x0d, 0x3c, 0xfe, 0x95, 0x67, 0x0c, 0x0f, 0x4d, 0xf0, 0xb4, 0xf4, 0x0a, 0xdf, | ||||
| 	0x7a, 0x15, 0x59, 0x7b, 0x7b, 0xb7, 0xb3, 0xfa, 0xf7, 0x50, 0x85, 0x1b, 0xe7, 0xdd, 0xd1, 0xe9, | ||||
| 	0xe5, 0x71, 0xed, 0x35, 0xec, 0x21, 0x9f, 0x96, 0x0f, 0xec, 0xe6, 0xb8, 0xab, 0x9e, 0x98, 0x12, | ||||
| 	0xe9, 0xce, 0x73, 0x09, 0x57, 0x26, 0x68, 0xdc, 0xbc, 0x0f, 0x1c, 0x54, 0x0e, 0xa8, 0xc8, 0xc8, | ||||
| 	0x7a, 0xff, 0x00, 0x52, 0xdb, 0xf9, 0xa0, 0xec, 0xf4, 0xe1, 0x9b, 0x6a, 0x3b, 0xb1, 0xea, 0x71, | ||||
| 	0x8b, 0x7c, 0xbe, 0x8f, 0xd6, 0x17, 0xb6, 0xb1, 0xde, 0xda, 0xe6, 0x66, 0x6b, 0x9b, 0xe7, 0x5b, | ||||
| 	0xdb, 0x5c, 0xed, 0x6c, 0x63, 0xb3, 0xb3, 0x8d, 0xb3, 0x9d, 0x6d, 0xfc, 0xfd, 0x42, 0x23, 0x39, | ||||
| 	0xc9, 0x02, 0x2f, 0x64, 0x31, 0xf2, 0xe9, 0x14, 0x07, 0x02, 0xf9, 0xd4, 0x0d, 0x27, 0x38, 0x4a, | ||||
| 	0xd0, 0x41, 0xc5, 0xd9, 0x72, 0xc1, 0x89, 0x08, 0xea, 0xea, 0xbb, 0x7c, 0xbe, 0x0a, 0x00, 0x00, | ||||
| 	0xff, 0xff, 0x14, 0xfb, 0x91, 0x88, 0xf1, 0x02, 0x00, 0x00, | ||||
| } | ||||
| 
 | ||||
| // Reference imports to suppress errors if they are not otherwise used.
 | ||||
| @ -152,6 +231,7 @@ const _ = grpc.SupportPackageIsVersion4 | ||||
| //
 | ||||
| // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
 | ||||
| type QueryClient interface { | ||||
| 	GetWA0GI(ctx context.Context, in *GetWA0GIRequest, opts ...grpc.CallOption) (*GetWA0GIResponse, error) | ||||
| 	MinterSupply(ctx context.Context, in *MinterSupplyRequest, opts ...grpc.CallOption) (*MinterSupplyResponse, error) | ||||
| } | ||||
| 
 | ||||
| @ -163,6 +243,15 @@ func NewQueryClient(cc grpc1.ClientConn) QueryClient { | ||||
| 	return &queryClient{cc} | ||||
| } | ||||
| 
 | ||||
| func (c *queryClient) GetWA0GI(ctx context.Context, in *GetWA0GIRequest, opts ...grpc.CallOption) (*GetWA0GIResponse, error) { | ||||
| 	out := new(GetWA0GIResponse) | ||||
| 	err := c.cc.Invoke(ctx, "/zgc.wrappeda0gibase.Query/GetWA0GI", in, out, opts...) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return out, nil | ||||
| } | ||||
| 
 | ||||
| func (c *queryClient) MinterSupply(ctx context.Context, in *MinterSupplyRequest, opts ...grpc.CallOption) (*MinterSupplyResponse, error) { | ||||
| 	out := new(MinterSupplyResponse) | ||||
| 	err := c.cc.Invoke(ctx, "/zgc.wrappeda0gibase.Query/MinterSupply", in, out, opts...) | ||||
| @ -174,6 +263,7 @@ func (c *queryClient) MinterSupply(ctx context.Context, in *MinterSupplyRequest, | ||||
| 
 | ||||
| // QueryServer is the server API for Query service.
 | ||||
| type QueryServer interface { | ||||
| 	GetWA0GI(context.Context, *GetWA0GIRequest) (*GetWA0GIResponse, error) | ||||
| 	MinterSupply(context.Context, *MinterSupplyRequest) (*MinterSupplyResponse, error) | ||||
| } | ||||
| 
 | ||||
| @ -181,6 +271,9 @@ type QueryServer interface { | ||||
| type UnimplementedQueryServer struct { | ||||
| } | ||||
| 
 | ||||
| func (*UnimplementedQueryServer) GetWA0GI(ctx context.Context, req *GetWA0GIRequest) (*GetWA0GIResponse, error) { | ||||
| 	return nil, status.Errorf(codes.Unimplemented, "method GetWA0GI not implemented") | ||||
| } | ||||
| func (*UnimplementedQueryServer) MinterSupply(ctx context.Context, req *MinterSupplyRequest) (*MinterSupplyResponse, error) { | ||||
| 	return nil, status.Errorf(codes.Unimplemented, "method MinterSupply not implemented") | ||||
| } | ||||
| @ -189,6 +282,24 @@ func RegisterQueryServer(s grpc1.Server, srv QueryServer) { | ||||
| 	s.RegisterService(&_Query_serviceDesc, srv) | ||||
| } | ||||
| 
 | ||||
| func _Query_GetWA0GI_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { | ||||
| 	in := new(GetWA0GIRequest) | ||||
| 	if err := dec(in); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	if interceptor == nil { | ||||
| 		return srv.(QueryServer).GetWA0GI(ctx, in) | ||||
| 	} | ||||
| 	info := &grpc.UnaryServerInfo{ | ||||
| 		Server:     srv, | ||||
| 		FullMethod: "/zgc.wrappeda0gibase.Query/GetWA0GI", | ||||
| 	} | ||||
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { | ||||
| 		return srv.(QueryServer).GetWA0GI(ctx, req.(*GetWA0GIRequest)) | ||||
| 	} | ||||
| 	return interceptor(ctx, in, info, handler) | ||||
| } | ||||
| 
 | ||||
| func _Query_MinterSupply_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { | ||||
| 	in := new(MinterSupplyRequest) | ||||
| 	if err := dec(in); err != nil { | ||||
| @ -211,6 +322,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ | ||||
| 	ServiceName: "zgc.wrappeda0gibase.Query", | ||||
| 	HandlerType: (*QueryServer)(nil), | ||||
| 	Methods: []grpc.MethodDesc{ | ||||
| 		{ | ||||
| 			MethodName: "GetWA0GI", | ||||
| 			Handler:    _Query_GetWA0GI_Handler, | ||||
| 		}, | ||||
| 		{ | ||||
| 			MethodName: "MinterSupply", | ||||
| 			Handler:    _Query_MinterSupply_Handler, | ||||
| @ -220,6 +335,59 @@ var _Query_serviceDesc = grpc.ServiceDesc{ | ||||
| 	Metadata: "zgc/wrappeda0gibase/query.proto", | ||||
| } | ||||
| 
 | ||||
| func (m *GetWA0GIRequest) 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 *GetWA0GIRequest) MarshalTo(dAtA []byte) (int, error) { | ||||
| 	size := m.Size() | ||||
| 	return m.MarshalToSizedBuffer(dAtA[:size]) | ||||
| } | ||||
| 
 | ||||
| func (m *GetWA0GIRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { | ||||
| 	i := len(dAtA) | ||||
| 	_ = i | ||||
| 	var l int | ||||
| 	_ = l | ||||
| 	return len(dAtA) - i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *GetWA0GIResponse) 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 *GetWA0GIResponse) MarshalTo(dAtA []byte) (int, error) { | ||||
| 	size := m.Size() | ||||
| 	return m.MarshalToSizedBuffer(dAtA[:size]) | ||||
| } | ||||
| 
 | ||||
| func (m *GetWA0GIResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { | ||||
| 	i := len(dAtA) | ||||
| 	_ = i | ||||
| 	var l int | ||||
| 	_ = l | ||||
| 	if len(m.Address) > 0 { | ||||
| 		i -= len(m.Address) | ||||
| 		copy(dAtA[i:], m.Address) | ||||
| 		i = encodeVarintQuery(dAtA, i, uint64(len(m.Address))) | ||||
| 		i-- | ||||
| 		dAtA[i] = 0xa | ||||
| 	} | ||||
| 	return len(dAtA) - i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *MinterSupplyRequest) Marshal() (dAtA []byte, err error) { | ||||
| 	size := m.Size() | ||||
| 	dAtA = make([]byte, size) | ||||
| @ -298,6 +466,28 @@ func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { | ||||
| 	dAtA[offset] = uint8(v) | ||||
| 	return base | ||||
| } | ||||
| func (m *GetWA0GIRequest) Size() (n int) { | ||||
| 	if m == nil { | ||||
| 		return 0 | ||||
| 	} | ||||
| 	var l int | ||||
| 	_ = l | ||||
| 	return n | ||||
| } | ||||
| 
 | ||||
| func (m *GetWA0GIResponse) Size() (n int) { | ||||
| 	if m == nil { | ||||
| 		return 0 | ||||
| 	} | ||||
| 	var l int | ||||
| 	_ = l | ||||
| 	l = len(m.Address) | ||||
| 	if l > 0 { | ||||
| 		n += 1 + l + sovQuery(uint64(l)) | ||||
| 	} | ||||
| 	return n | ||||
| } | ||||
| 
 | ||||
| func (m *MinterSupplyRequest) Size() (n int) { | ||||
| 	if m == nil { | ||||
| 		return 0 | ||||
| @ -334,6 +524,140 @@ func sovQuery(x uint64) (n int) { | ||||
| func sozQuery(x uint64) (n int) { | ||||
| 	return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) | ||||
| } | ||||
| func (m *GetWA0GIRequest) 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: GetWA0GIRequest: wiretype end group for non-group") | ||||
| 		} | ||||
| 		if fieldNum <= 0 { | ||||
| 			return fmt.Errorf("proto: GetWA0GIRequest: 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 *GetWA0GIResponse) 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: GetWA0GIResponse: wiretype end group for non-group") | ||||
| 		} | ||||
| 		if fieldNum <= 0 { | ||||
| 			return fmt.Errorf("proto: GetWA0GIResponse: illegal tag %d (wire type %d)", fieldNum, wire) | ||||
| 		} | ||||
| 		switch fieldNum { | ||||
| 		case 1: | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field Address", 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.Address = append(m.Address[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.Address == nil { | ||||
| 				m.Address = []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 *MinterSupplyRequest) Unmarshal(dAtA []byte) error { | ||||
| 	l := len(dAtA) | ||||
| 	iNdEx := 0 | ||||
| @ -367,7 +691,7 @@ func (m *MinterSupplyRequest) Unmarshal(dAtA []byte) error { | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) | ||||
| 			} | ||||
| 			var stringLen uint64 | ||||
| 			var byteLen int | ||||
| 			for shift := uint(0); ; shift += 7 { | ||||
| 				if shift >= 64 { | ||||
| 					return ErrIntOverflowQuery | ||||
| @ -377,23 +701,25 @@ func (m *MinterSupplyRequest) Unmarshal(dAtA []byte) error { | ||||
| 				} | ||||
| 				b := dAtA[iNdEx] | ||||
| 				iNdEx++ | ||||
| 				stringLen |= uint64(b&0x7F) << shift | ||||
| 				byteLen |= int(b&0x7F) << shift | ||||
| 				if b < 0x80 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			intStringLen := int(stringLen) | ||||
| 			if intStringLen < 0 { | ||||
| 			if byteLen < 0 { | ||||
| 				return ErrInvalidLengthQuery | ||||
| 			} | ||||
| 			postIndex := iNdEx + intStringLen | ||||
| 			postIndex := iNdEx + byteLen | ||||
| 			if postIndex < 0 { | ||||
| 				return ErrInvalidLengthQuery | ||||
| 			} | ||||
| 			if postIndex > l { | ||||
| 				return io.ErrUnexpectedEOF | ||||
| 			} | ||||
| 			m.Address = string(dAtA[iNdEx:postIndex]) | ||||
| 			m.Address = append(m.Address[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.Address == nil { | ||||
| 				m.Address = []byte{} | ||||
| 			} | ||||
| 			iNdEx = postIndex | ||||
| 		default: | ||||
| 			iNdEx = preIndex | ||||
| @ -449,7 +775,7 @@ func (m *MinterSupplyResponse) Unmarshal(dAtA []byte) error { | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field Cap", wireType) | ||||
| 			} | ||||
| 			var stringLen uint64 | ||||
| 			var byteLen int | ||||
| 			for shift := uint(0); ; shift += 7 { | ||||
| 				if shift >= 64 { | ||||
| 					return ErrIntOverflowQuery | ||||
| @ -459,29 +785,31 @@ func (m *MinterSupplyResponse) Unmarshal(dAtA []byte) error { | ||||
| 				} | ||||
| 				b := dAtA[iNdEx] | ||||
| 				iNdEx++ | ||||
| 				stringLen |= uint64(b&0x7F) << shift | ||||
| 				byteLen |= int(b&0x7F) << shift | ||||
| 				if b < 0x80 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			intStringLen := int(stringLen) | ||||
| 			if intStringLen < 0 { | ||||
| 			if byteLen < 0 { | ||||
| 				return ErrInvalidLengthQuery | ||||
| 			} | ||||
| 			postIndex := iNdEx + intStringLen | ||||
| 			postIndex := iNdEx + byteLen | ||||
| 			if postIndex < 0 { | ||||
| 				return ErrInvalidLengthQuery | ||||
| 			} | ||||
| 			if postIndex > l { | ||||
| 				return io.ErrUnexpectedEOF | ||||
| 			} | ||||
| 			m.Cap = string(dAtA[iNdEx:postIndex]) | ||||
| 			m.Cap = append(m.Cap[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.Cap == nil { | ||||
| 				m.Cap = []byte{} | ||||
| 			} | ||||
| 			iNdEx = postIndex | ||||
| 		case 2: | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field Supply", wireType) | ||||
| 			} | ||||
| 			var stringLen uint64 | ||||
| 			var byteLen int | ||||
| 			for shift := uint(0); ; shift += 7 { | ||||
| 				if shift >= 64 { | ||||
| 					return ErrIntOverflowQuery | ||||
| @ -491,23 +819,25 @@ func (m *MinterSupplyResponse) Unmarshal(dAtA []byte) error { | ||||
| 				} | ||||
| 				b := dAtA[iNdEx] | ||||
| 				iNdEx++ | ||||
| 				stringLen |= uint64(b&0x7F) << shift | ||||
| 				byteLen |= int(b&0x7F) << shift | ||||
| 				if b < 0x80 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			intStringLen := int(stringLen) | ||||
| 			if intStringLen < 0 { | ||||
| 			if byteLen < 0 { | ||||
| 				return ErrInvalidLengthQuery | ||||
| 			} | ||||
| 			postIndex := iNdEx + intStringLen | ||||
| 			postIndex := iNdEx + byteLen | ||||
| 			if postIndex < 0 { | ||||
| 				return ErrInvalidLengthQuery | ||||
| 			} | ||||
| 			if postIndex > l { | ||||
| 				return io.ErrUnexpectedEOF | ||||
| 			} | ||||
| 			m.Supply = string(dAtA[iNdEx:postIndex]) | ||||
| 			m.Supply = append(m.Supply[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.Supply == nil { | ||||
| 				m.Supply = []byte{} | ||||
| 			} | ||||
| 			iNdEx = postIndex | ||||
| 		default: | ||||
| 			iNdEx = preIndex | ||||
|  | ||||
| @ -33,6 +33,24 @@ var _ = utilities.NewDoubleArray | ||||
| var _ = descriptor.ForMessage | ||||
| var _ = metadata.Join | ||||
| 
 | ||||
| func request_Query_GetWA0GI_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { | ||||
| 	var protoReq GetWA0GIRequest | ||||
| 	var metadata runtime.ServerMetadata | ||||
| 
 | ||||
| 	msg, err := client.GetWA0GI(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) | ||||
| 	return msg, metadata, err | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| func local_request_Query_GetWA0GI_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { | ||||
| 	var protoReq GetWA0GIRequest | ||||
| 	var metadata runtime.ServerMetadata | ||||
| 
 | ||||
| 	msg, err := server.GetWA0GI(ctx, &protoReq) | ||||
| 	return msg, metadata, err | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| var ( | ||||
| 	filter_Query_MinterSupply_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} | ||||
| ) | ||||
| @ -75,6 +93,29 @@ func local_request_Query_MinterSupply_0(ctx context.Context, marshaler runtime.M | ||||
| // Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead.
 | ||||
| func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error { | ||||
| 
 | ||||
| 	mux.Handle("GET", pattern_Query_GetWA0GI_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_GetWA0GI_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_GetWA0GI_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) | ||||
| 
 | ||||
| 	}) | ||||
| 
 | ||||
| 	mux.Handle("GET", pattern_Query_MinterSupply_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { | ||||
| 		ctx, cancel := context.WithCancel(req.Context()) | ||||
| 		defer cancel() | ||||
| @ -139,6 +180,26 @@ func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc | ||||
| // "QueryClient" to call the correct interceptors.
 | ||||
| func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, client QueryClient) error { | ||||
| 
 | ||||
| 	mux.Handle("GET", pattern_Query_GetWA0GI_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_GetWA0GI_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_GetWA0GI_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) | ||||
| 
 | ||||
| 	}) | ||||
| 
 | ||||
| 	mux.Handle("GET", pattern_Query_MinterSupply_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { | ||||
| 		ctx, cancel := context.WithCancel(req.Context()) | ||||
| 		defer cancel() | ||||
| @ -163,9 +224,13 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie | ||||
| } | ||||
| 
 | ||||
| var ( | ||||
| 	pattern_Query_GetWA0GI_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"0g", "wrapped-a0gi-base", "get-wa0gi"}, "", runtime.AssumeColonVerbOpt(true))) | ||||
| 
 | ||||
| 	pattern_Query_MinterSupply_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"0g", "wrapped-a0gi-base", "minter-supply"}, "", runtime.AssumeColonVerbOpt(true))) | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
| 	forward_Query_GetWA0GI_0 = runtime.ForwardResponseMessage | ||||
| 
 | ||||
| 	forward_Query_MinterSupply_0 = runtime.ForwardResponseMessage | ||||
| ) | ||||
|  | ||||
| @ -32,7 +32,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package | ||||
| 
 | ||||
| type MsgSetWA0GI struct { | ||||
| 	Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` | ||||
| 	Address   string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` | ||||
| 	Address   []byte `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` | ||||
| } | ||||
| 
 | ||||
| func (m *MsgSetWA0GI) Reset()         { *m = MsgSetWA0GI{} } | ||||
| @ -106,8 +106,8 @@ var xxx_messageInfo_MsgSetWA0GIResponse proto.InternalMessageInfo | ||||
| 
 | ||||
| type MsgSetMintCap struct { | ||||
| 	Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` | ||||
| 	Minter    string `protobuf:"bytes,2,opt,name=minter,proto3" json:"minter,omitempty"` | ||||
| 	Cap       string `protobuf:"bytes,3,opt,name=cap,proto3" json:"cap,omitempty"` | ||||
| 	Minter    []byte `protobuf:"bytes,2,opt,name=minter,proto3" json:"minter,omitempty"` | ||||
| 	Cap       []byte `protobuf:"bytes,3,opt,name=cap,proto3" json:"cap,omitempty"` | ||||
| } | ||||
| 
 | ||||
| func (m *MsgSetMintCap) Reset()         { *m = MsgSetMintCap{} } | ||||
| @ -180,9 +180,9 @@ func (m *MsgSetMintCapResponse) XXX_DiscardUnknown() { | ||||
| var xxx_messageInfo_MsgSetMintCapResponse proto.InternalMessageInfo | ||||
| 
 | ||||
| type MsgMint struct { | ||||
| 	Minter string `protobuf:"bytes,1,opt,name=minter,proto3" json:"minter,omitempty"` | ||||
| 	To     string `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` | ||||
| 	Amount string `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` | ||||
| 	Minter []byte `protobuf:"bytes,1,opt,name=minter,proto3" json:"minter,omitempty"` | ||||
| 	To     []byte `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` | ||||
| 	Amount []byte `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` | ||||
| } | ||||
| 
 | ||||
| func (m *MsgMint) Reset()         { *m = MsgMint{} } | ||||
| @ -255,8 +255,8 @@ func (m *MsgMintResponse) XXX_DiscardUnknown() { | ||||
| var xxx_messageInfo_MsgMintResponse proto.InternalMessageInfo | ||||
| 
 | ||||
| type MsgBurn struct { | ||||
| 	Minter string `protobuf:"bytes,1,opt,name=minter,proto3" json:"minter,omitempty"` | ||||
| 	Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` | ||||
| 	Minter []byte `protobuf:"bytes,1,opt,name=minter,proto3" json:"minter,omitempty"` | ||||
| 	Amount []byte `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` | ||||
| } | ||||
| 
 | ||||
| func (m *MsgBurn) Reset()         { *m = MsgBurn{} } | ||||
| @ -342,35 +342,35 @@ func init() { | ||||
| func init() { proto.RegisterFile("zgc/wrappeda0gibase/tx.proto", fileDescriptor_f80bf93a1fc022d3) } | ||||
| 
 | ||||
| var fileDescriptor_f80bf93a1fc022d3 = []byte{ | ||||
| 	// 433 bytes of a gzipped FileDescriptorProto
 | ||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xcf, 0x6b, 0xd4, 0x40, | ||||
| 	0x14, 0xc7, 0x93, 0xac, 0xb4, 0xf6, 0xf9, 0x3b, 0xb5, 0x9a, 0x86, 0x25, 0x94, 0xe0, 0xa1, 0x08, | ||||
| 	0x9b, 0x09, 0xea, 0xc5, 0xa3, 0x15, 0x91, 0x0a, 0xb9, 0xac, 0x60, 0xc1, 0x83, 0x32, 0xc9, 0x8e, | ||||
| 	0xb3, 0x81, 0x26, 0x13, 0x32, 0x13, 0xec, 0xf6, 0xaf, 0xf0, 0xcf, 0xea, 0x71, 0x2f, 0x82, 0x47, | ||||
| 	0xdd, 0xfd, 0x47, 0x64, 0x26, 0x93, 0x6c, 0xb6, 0x6c, 0x76, 0x6f, 0xf3, 0xbe, 0xdf, 0xf7, 0x3e, | ||||
| 	0x0f, 0xbe, 0xc3, 0x83, 0xe1, 0x35, 0x4d, 0xd0, 0xcf, 0x12, 0x17, 0x05, 0x99, 0xe0, 0x90, 0xa6, | ||||
| 	0x31, 0xe6, 0x04, 0x89, 0xab, 0xa0, 0x28, 0x99, 0x60, 0xf6, 0xe1, 0x35, 0x4d, 0x82, 0x5b, 0xae, | ||||
| 	0x7b, 0x9c, 0x30, 0x9e, 0x31, 0xfe, 0x5d, 0xb5, 0xa0, 0xba, 0xa8, 0xfb, 0xdd, 0xa7, 0x94, 0x51, | ||||
| 	0x56, 0xeb, 0xf2, 0xa5, 0xd5, 0x63, 0xca, 0x18, 0xbd, 0x24, 0x48, 0x55, 0x71, 0xf5, 0x03, 0xe1, | ||||
| 	0x7c, 0x56, 0x5b, 0xfe, 0x07, 0xb8, 0x17, 0x71, 0xfa, 0x99, 0x88, 0x8b, 0x77, 0xe1, 0xc7, 0x73, | ||||
| 	0x7b, 0x08, 0x07, 0xb8, 0x12, 0x53, 0x56, 0xa6, 0x62, 0xe6, 0x98, 0x27, 0xe6, 0xe9, 0xc1, 0x78, | ||||
| 	0x25, 0xd8, 0x0e, 0xec, 0xe3, 0xc9, 0xa4, 0x24, 0x9c, 0x3b, 0x96, 0xf2, 0x9a, 0xd2, 0x3f, 0x82, | ||||
| 	0xc3, 0x0e, 0x66, 0x4c, 0x78, 0xc1, 0x72, 0x4e, 0xfc, 0x0b, 0x78, 0x50, 0xcb, 0x51, 0x9a, 0x8b, | ||||
| 	0xf7, 0xb8, 0xd8, 0xc1, 0x7f, 0x06, 0x7b, 0x59, 0x9a, 0x0b, 0x52, 0x6a, 0xbc, 0xae, 0xec, 0xc7, | ||||
| 	0x30, 0x48, 0x70, 0xe1, 0x0c, 0x94, 0x28, 0x9f, 0xfe, 0x73, 0x38, 0x5a, 0x03, 0xb7, 0x1b, 0xcf, | ||||
| 	0x61, 0x3f, 0xe2, 0x54, 0xaa, 0x1d, 0x9a, 0xb9, 0x46, 0x7b, 0x08, 0x96, 0x60, 0x7a, 0x83, 0x25, | ||||
| 	0x98, 0xec, 0xc3, 0x19, 0xab, 0x72, 0xa1, 0x17, 0xe8, 0xca, 0x7f, 0x02, 0x8f, 0x34, 0xaa, 0xa5, | ||||
| 	0xbf, 0x55, 0xf4, 0xb3, 0xaa, 0xcc, 0x7b, 0xe9, 0x2b, 0x9a, 0xb5, 0x81, 0x26, 0x47, 0x1b, 0xda, | ||||
| 	0xab, 0xdf, 0x16, 0x0c, 0x22, 0x4e, 0xed, 0x2f, 0x70, 0xb7, 0xfd, 0x80, 0x93, 0x60, 0xc3, 0x8f, | ||||
| 	0x07, 0x9d, 0x6c, 0xdd, 0xd3, 0x5d, 0x1d, 0x0d, 0xdf, 0xfe, 0x06, 0xf7, 0x75, 0x42, 0xa4, 0x94, | ||||
| 	0xe1, 0xfb, 0x5b, 0x26, 0x75, 0x8e, 0xee, 0xcb, 0xdd, 0x3d, 0x2d, 0xff, 0x13, 0xdc, 0x51, 0x41, | ||||
| 	0x0f, 0xfb, 0x66, 0xa4, 0xeb, 0xbe, 0xd8, 0xe6, 0x76, 0x59, 0x2a, 0xd6, 0x5e, 0x96, 0x74, 0xfb, | ||||
| 	0x59, 0xdd, 0x5c, 0xcf, 0xc6, 0x37, 0xff, 0x3c, 0xe3, 0x66, 0xe1, 0x99, 0xf3, 0x85, 0x67, 0xfe, | ||||
| 	0x5d, 0x78, 0xe6, 0xaf, 0xa5, 0x67, 0xcc, 0x97, 0x9e, 0xf1, 0x67, 0xe9, 0x19, 0x5f, 0xdf, 0xd0, | ||||
| 	0x54, 0x4c, 0xab, 0x38, 0x48, 0x58, 0x86, 0x42, 0x7a, 0x89, 0x63, 0x8e, 0x42, 0x3a, 0x4a, 0xa6, | ||||
| 	0x38, 0xcd, 0xd1, 0x55, 0x73, 0x89, 0x23, 0x09, 0x1f, 0xd5, 0xb7, 0x38, 0x2b, 0x08, 0x8f, 0xf7, | ||||
| 	0xd4, 0xb9, 0xbc, 0xfe, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xeb, 0xd8, 0x1c, 0xf0, 0xaf, 0x03, 0x00, | ||||
| 	0x00, | ||||
| 	// 436 bytes of a gzipped FileDescriptorProto
 | ||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xcf, 0x8b, 0xd3, 0x40, | ||||
| 	0x14, 0xc7, 0x93, 0x54, 0x76, 0xdd, 0xe7, 0xfa, 0x2b, 0xeb, 0x6a, 0x36, 0x94, 0x50, 0x82, 0x87, | ||||
| 	0x22, 0x34, 0x13, 0xd4, 0x8b, 0x47, 0x57, 0x44, 0x56, 0xc8, 0x25, 0x82, 0x0b, 0x1e, 0x94, 0x49, | ||||
| 	0x3a, 0x4e, 0x03, 0x9b, 0x4c, 0xc8, 0x4c, 0x70, 0xbb, 0x7f, 0x85, 0x7f, 0xd6, 0x1e, 0x7b, 0x11, | ||||
| 	0x3c, 0x6a, 0xfb, 0x8f, 0xc8, 0x24, 0x93, 0x34, 0x95, 0xa6, 0xbd, 0xcd, 0xfb, 0xbe, 0xef, 0xfb, | ||||
| 	0x3c, 0xf8, 0x0e, 0x0f, 0x86, 0x37, 0x34, 0x46, 0x3f, 0x0a, 0x9c, 0xe7, 0x64, 0x8a, 0x7d, 0x9a, | ||||
| 	0x44, 0x98, 0x13, 0x24, 0xae, 0xbd, 0xbc, 0x60, 0x82, 0x99, 0x27, 0x37, 0x34, 0xf6, 0xfe, 0xeb, | ||||
| 	0xda, 0x67, 0x31, 0xe3, 0x29, 0xe3, 0xdf, 0x2a, 0x0b, 0xaa, 0x8b, 0xda, 0x6f, 0x3f, 0xa1, 0x8c, | ||||
| 	0xb2, 0x5a, 0x97, 0x2f, 0xa5, 0x9e, 0x51, 0xc6, 0xe8, 0x15, 0x41, 0x55, 0x15, 0x95, 0xdf, 0x11, | ||||
| 	0xce, 0xe6, 0x75, 0xcb, 0x7d, 0x0f, 0xf7, 0x02, 0x4e, 0x3f, 0x11, 0x71, 0xf9, 0xd6, 0xff, 0x70, | ||||
| 	0x61, 0x0e, 0xe1, 0x08, 0x97, 0x62, 0xc6, 0x8a, 0x44, 0xcc, 0x2d, 0x7d, 0xa4, 0x8f, 0x8f, 0xc2, | ||||
| 	0xb5, 0x60, 0x5a, 0x70, 0x88, 0xa7, 0xd3, 0x82, 0x70, 0x6e, 0x19, 0x23, 0x7d, 0x7c, 0x1c, 0x36, | ||||
| 	0xa5, 0x7b, 0x0a, 0x27, 0x1d, 0x4c, 0x48, 0x78, 0xce, 0x32, 0x4e, 0xdc, 0x4b, 0xb8, 0x5f, 0xcb, | ||||
| 	0x41, 0x92, 0x89, 0x77, 0x38, 0xdf, 0xc3, 0x7f, 0x0a, 0x07, 0x69, 0x92, 0x09, 0x52, 0x28, 0xbc, | ||||
| 	0xaa, 0xcc, 0x47, 0x30, 0x88, 0x71, 0x6e, 0x0d, 0x2a, 0x51, 0x3e, 0xdd, 0x67, 0x70, 0xba, 0x01, | ||||
| 	0x6e, 0x37, 0x5e, 0xc0, 0x61, 0xc0, 0xa9, 0x54, 0x3b, 0x34, 0x7d, 0x83, 0xf6, 0x00, 0x0c, 0xc1, | ||||
| 	0xd4, 0x06, 0x43, 0x30, 0xe9, 0xc3, 0x29, 0x2b, 0x33, 0xa1, 0x16, 0xa8, 0xca, 0x7d, 0x0c, 0x0f, | ||||
| 	0x15, 0xaa, 0xa5, 0xbf, 0xa9, 0xe8, 0xe7, 0x65, 0x91, 0xf5, 0xd2, 0xd7, 0x34, 0x63, 0x0b, 0x4d, | ||||
| 	0x8e, 0x36, 0xb4, 0x97, 0xbf, 0x0c, 0x18, 0x04, 0x9c, 0x9a, 0x9f, 0xe1, 0x6e, 0xfb, 0x01, 0x23, | ||||
| 	0x6f, 0xcb, 0x8f, 0x7b, 0x9d, 0x6c, 0xed, 0xf1, 0x3e, 0x47, 0xc3, 0x37, 0xbf, 0xc2, 0xb1, 0x4a, | ||||
| 	0x88, 0x14, 0x32, 0x7c, 0x77, 0xc7, 0xa4, 0xca, 0xd1, 0x7e, 0xb1, 0xdf, 0xd3, 0xf2, 0x3f, 0xc2, | ||||
| 	0x9d, 0x2a, 0xe8, 0x61, 0xdf, 0x8c, 0xec, 0xda, 0xcf, 0x77, 0x75, 0xbb, 0xac, 0x2a, 0xd6, 0x5e, | ||||
| 	0x96, 0xec, 0xf6, 0xb3, 0xba, 0xb9, 0x9e, 0x87, 0xb7, 0x7f, 0x1d, 0xed, 0x76, 0xe9, 0xe8, 0x8b, | ||||
| 	0xa5, 0xa3, 0xff, 0x59, 0x3a, 0xfa, 0xcf, 0x95, 0xa3, 0x2d, 0x56, 0x8e, 0xf6, 0x7b, 0xe5, 0x68, | ||||
| 	0x5f, 0x5e, 0xd3, 0x44, 0xcc, 0xca, 0xc8, 0x8b, 0x59, 0x8a, 0x7c, 0x7a, 0x85, 0x23, 0x8e, 0x7c, | ||||
| 	0x3a, 0x89, 0x67, 0x38, 0xc9, 0xd0, 0x75, 0x73, 0x89, 0x13, 0x09, 0x9f, 0xd4, 0xb7, 0x38, 0xcf, | ||||
| 	0x09, 0x8f, 0x0e, 0xaa, 0x73, 0x79, 0xf5, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xeb, 0x19, 0x0a, 0x77, | ||||
| 	0xaf, 0x03, 0x00, 0x00, | ||||
| } | ||||
| 
 | ||||
| // Reference imports to suppress errors if they are not otherwise used.
 | ||||
| @ -1009,7 +1009,7 @@ func (m *MsgSetWA0GI) Unmarshal(dAtA []byte) error { | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) | ||||
| 			} | ||||
| 			var stringLen uint64 | ||||
| 			var byteLen int | ||||
| 			for shift := uint(0); ; shift += 7 { | ||||
| 				if shift >= 64 { | ||||
| 					return ErrIntOverflowTx | ||||
| @ -1019,23 +1019,25 @@ func (m *MsgSetWA0GI) Unmarshal(dAtA []byte) error { | ||||
| 				} | ||||
| 				b := dAtA[iNdEx] | ||||
| 				iNdEx++ | ||||
| 				stringLen |= uint64(b&0x7F) << shift | ||||
| 				byteLen |= int(b&0x7F) << shift | ||||
| 				if b < 0x80 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			intStringLen := int(stringLen) | ||||
| 			if intStringLen < 0 { | ||||
| 			if byteLen < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			postIndex := iNdEx + intStringLen | ||||
| 			postIndex := iNdEx + byteLen | ||||
| 			if postIndex < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			if postIndex > l { | ||||
| 				return io.ErrUnexpectedEOF | ||||
| 			} | ||||
| 			m.Address = string(dAtA[iNdEx:postIndex]) | ||||
| 			m.Address = append(m.Address[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.Address == nil { | ||||
| 				m.Address = []byte{} | ||||
| 			} | ||||
| 			iNdEx = postIndex | ||||
| 		default: | ||||
| 			iNdEx = preIndex | ||||
| @ -1173,7 +1175,7 @@ func (m *MsgSetMintCap) Unmarshal(dAtA []byte) error { | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field Minter", wireType) | ||||
| 			} | ||||
| 			var stringLen uint64 | ||||
| 			var byteLen int | ||||
| 			for shift := uint(0); ; shift += 7 { | ||||
| 				if shift >= 64 { | ||||
| 					return ErrIntOverflowTx | ||||
| @ -1183,29 +1185,31 @@ func (m *MsgSetMintCap) Unmarshal(dAtA []byte) error { | ||||
| 				} | ||||
| 				b := dAtA[iNdEx] | ||||
| 				iNdEx++ | ||||
| 				stringLen |= uint64(b&0x7F) << shift | ||||
| 				byteLen |= int(b&0x7F) << shift | ||||
| 				if b < 0x80 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			intStringLen := int(stringLen) | ||||
| 			if intStringLen < 0 { | ||||
| 			if byteLen < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			postIndex := iNdEx + intStringLen | ||||
| 			postIndex := iNdEx + byteLen | ||||
| 			if postIndex < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			if postIndex > l { | ||||
| 				return io.ErrUnexpectedEOF | ||||
| 			} | ||||
| 			m.Minter = string(dAtA[iNdEx:postIndex]) | ||||
| 			m.Minter = append(m.Minter[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.Minter == nil { | ||||
| 				m.Minter = []byte{} | ||||
| 			} | ||||
| 			iNdEx = postIndex | ||||
| 		case 3: | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field Cap", wireType) | ||||
| 			} | ||||
| 			var stringLen uint64 | ||||
| 			var byteLen int | ||||
| 			for shift := uint(0); ; shift += 7 { | ||||
| 				if shift >= 64 { | ||||
| 					return ErrIntOverflowTx | ||||
| @ -1215,23 +1219,25 @@ func (m *MsgSetMintCap) Unmarshal(dAtA []byte) error { | ||||
| 				} | ||||
| 				b := dAtA[iNdEx] | ||||
| 				iNdEx++ | ||||
| 				stringLen |= uint64(b&0x7F) << shift | ||||
| 				byteLen |= int(b&0x7F) << shift | ||||
| 				if b < 0x80 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			intStringLen := int(stringLen) | ||||
| 			if intStringLen < 0 { | ||||
| 			if byteLen < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			postIndex := iNdEx + intStringLen | ||||
| 			postIndex := iNdEx + byteLen | ||||
| 			if postIndex < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			if postIndex > l { | ||||
| 				return io.ErrUnexpectedEOF | ||||
| 			} | ||||
| 			m.Cap = string(dAtA[iNdEx:postIndex]) | ||||
| 			m.Cap = append(m.Cap[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.Cap == nil { | ||||
| 				m.Cap = []byte{} | ||||
| 			} | ||||
| 			iNdEx = postIndex | ||||
| 		default: | ||||
| 			iNdEx = preIndex | ||||
| @ -1337,7 +1343,7 @@ func (m *MsgMint) Unmarshal(dAtA []byte) error { | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field Minter", wireType) | ||||
| 			} | ||||
| 			var stringLen uint64 | ||||
| 			var byteLen int | ||||
| 			for shift := uint(0); ; shift += 7 { | ||||
| 				if shift >= 64 { | ||||
| 					return ErrIntOverflowTx | ||||
| @ -1347,29 +1353,31 @@ func (m *MsgMint) Unmarshal(dAtA []byte) error { | ||||
| 				} | ||||
| 				b := dAtA[iNdEx] | ||||
| 				iNdEx++ | ||||
| 				stringLen |= uint64(b&0x7F) << shift | ||||
| 				byteLen |= int(b&0x7F) << shift | ||||
| 				if b < 0x80 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			intStringLen := int(stringLen) | ||||
| 			if intStringLen < 0 { | ||||
| 			if byteLen < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			postIndex := iNdEx + intStringLen | ||||
| 			postIndex := iNdEx + byteLen | ||||
| 			if postIndex < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			if postIndex > l { | ||||
| 				return io.ErrUnexpectedEOF | ||||
| 			} | ||||
| 			m.Minter = string(dAtA[iNdEx:postIndex]) | ||||
| 			m.Minter = append(m.Minter[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.Minter == nil { | ||||
| 				m.Minter = []byte{} | ||||
| 			} | ||||
| 			iNdEx = postIndex | ||||
| 		case 2: | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field To", wireType) | ||||
| 			} | ||||
| 			var stringLen uint64 | ||||
| 			var byteLen int | ||||
| 			for shift := uint(0); ; shift += 7 { | ||||
| 				if shift >= 64 { | ||||
| 					return ErrIntOverflowTx | ||||
| @ -1379,29 +1387,31 @@ func (m *MsgMint) Unmarshal(dAtA []byte) error { | ||||
| 				} | ||||
| 				b := dAtA[iNdEx] | ||||
| 				iNdEx++ | ||||
| 				stringLen |= uint64(b&0x7F) << shift | ||||
| 				byteLen |= int(b&0x7F) << shift | ||||
| 				if b < 0x80 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			intStringLen := int(stringLen) | ||||
| 			if intStringLen < 0 { | ||||
| 			if byteLen < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			postIndex := iNdEx + intStringLen | ||||
| 			postIndex := iNdEx + byteLen | ||||
| 			if postIndex < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			if postIndex > l { | ||||
| 				return io.ErrUnexpectedEOF | ||||
| 			} | ||||
| 			m.To = string(dAtA[iNdEx:postIndex]) | ||||
| 			m.To = append(m.To[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.To == nil { | ||||
| 				m.To = []byte{} | ||||
| 			} | ||||
| 			iNdEx = postIndex | ||||
| 		case 3: | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) | ||||
| 			} | ||||
| 			var stringLen uint64 | ||||
| 			var byteLen int | ||||
| 			for shift := uint(0); ; shift += 7 { | ||||
| 				if shift >= 64 { | ||||
| 					return ErrIntOverflowTx | ||||
| @ -1411,23 +1421,25 @@ func (m *MsgMint) Unmarshal(dAtA []byte) error { | ||||
| 				} | ||||
| 				b := dAtA[iNdEx] | ||||
| 				iNdEx++ | ||||
| 				stringLen |= uint64(b&0x7F) << shift | ||||
| 				byteLen |= int(b&0x7F) << shift | ||||
| 				if b < 0x80 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			intStringLen := int(stringLen) | ||||
| 			if intStringLen < 0 { | ||||
| 			if byteLen < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			postIndex := iNdEx + intStringLen | ||||
| 			postIndex := iNdEx + byteLen | ||||
| 			if postIndex < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			if postIndex > l { | ||||
| 				return io.ErrUnexpectedEOF | ||||
| 			} | ||||
| 			m.Amount = string(dAtA[iNdEx:postIndex]) | ||||
| 			m.Amount = append(m.Amount[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.Amount == nil { | ||||
| 				m.Amount = []byte{} | ||||
| 			} | ||||
| 			iNdEx = postIndex | ||||
| 		default: | ||||
| 			iNdEx = preIndex | ||||
| @ -1533,7 +1545,7 @@ func (m *MsgBurn) Unmarshal(dAtA []byte) error { | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field Minter", wireType) | ||||
| 			} | ||||
| 			var stringLen uint64 | ||||
| 			var byteLen int | ||||
| 			for shift := uint(0); ; shift += 7 { | ||||
| 				if shift >= 64 { | ||||
| 					return ErrIntOverflowTx | ||||
| @ -1543,29 +1555,31 @@ func (m *MsgBurn) Unmarshal(dAtA []byte) error { | ||||
| 				} | ||||
| 				b := dAtA[iNdEx] | ||||
| 				iNdEx++ | ||||
| 				stringLen |= uint64(b&0x7F) << shift | ||||
| 				byteLen |= int(b&0x7F) << shift | ||||
| 				if b < 0x80 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			intStringLen := int(stringLen) | ||||
| 			if intStringLen < 0 { | ||||
| 			if byteLen < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			postIndex := iNdEx + intStringLen | ||||
| 			postIndex := iNdEx + byteLen | ||||
| 			if postIndex < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			if postIndex > l { | ||||
| 				return io.ErrUnexpectedEOF | ||||
| 			} | ||||
| 			m.Minter = string(dAtA[iNdEx:postIndex]) | ||||
| 			m.Minter = append(m.Minter[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.Minter == nil { | ||||
| 				m.Minter = []byte{} | ||||
| 			} | ||||
| 			iNdEx = postIndex | ||||
| 		case 2: | ||||
| 			if wireType != 2 { | ||||
| 				return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) | ||||
| 			} | ||||
| 			var stringLen uint64 | ||||
| 			var byteLen int | ||||
| 			for shift := uint(0); ; shift += 7 { | ||||
| 				if shift >= 64 { | ||||
| 					return ErrIntOverflowTx | ||||
| @ -1575,23 +1589,25 @@ func (m *MsgBurn) Unmarshal(dAtA []byte) error { | ||||
| 				} | ||||
| 				b := dAtA[iNdEx] | ||||
| 				iNdEx++ | ||||
| 				stringLen |= uint64(b&0x7F) << shift | ||||
| 				byteLen |= int(b&0x7F) << shift | ||||
| 				if b < 0x80 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			intStringLen := int(stringLen) | ||||
| 			if intStringLen < 0 { | ||||
| 			if byteLen < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			postIndex := iNdEx + intStringLen | ||||
| 			postIndex := iNdEx + byteLen | ||||
| 			if postIndex < 0 { | ||||
| 				return ErrInvalidLengthTx | ||||
| 			} | ||||
| 			if postIndex > l { | ||||
| 				return io.ErrUnexpectedEOF | ||||
| 			} | ||||
| 			m.Amount = string(dAtA[iNdEx:postIndex]) | ||||
| 			m.Amount = append(m.Amount[:0], dAtA[iNdEx:postIndex]...) | ||||
| 			if m.Amount == nil { | ||||
| 				m.Amount = []byte{} | ||||
| 			} | ||||
| 			iNdEx = postIndex | ||||
| 		default: | ||||
| 			iNdEx = preIndex | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 MiniFrenchBread
						MiniFrenchBread