import { Coin, CoinAmino, CoinSDKType } from "../../base/v1beta1/coin"; import { BinaryWriter } from "../../../binary"; /** * SendAuthorization allows the grantee to spend up to spend_limit coins from * the granter's account. * * Since: cosmos-sdk 0.43 */ export interface SendAuthorization { $typeUrl?: "/cosmos.bank.v1beta1.SendAuthorization"; spendLimit: Coin[]; } export interface SendAuthorizationProtoMsg { typeUrl: "/cosmos.bank.v1beta1.SendAuthorization"; value: Uint8Array; } /** * SendAuthorization allows the grantee to spend up to spend_limit coins from * the granter's account. * * Since: cosmos-sdk 0.43 */ export interface SendAuthorizationAmino { spend_limit?: CoinAmino[]; } export interface SendAuthorizationAminoMsg { type: "cosmos-sdk/SendAuthorization"; value: SendAuthorizationAmino; } /** * SendAuthorization allows the grantee to spend up to spend_limit coins from * the granter's account. * * Since: cosmos-sdk 0.43 */ export interface SendAuthorizationSDKType { $typeUrl?: "/cosmos.bank.v1beta1.SendAuthorization"; spend_limit: CoinSDKType[]; } function createBaseSendAuthorization(): SendAuthorization { return { $typeUrl: "/cosmos.bank.v1beta1.SendAuthorization", spendLimit: [] }; } export const SendAuthorization = { typeUrl: "/cosmos.bank.v1beta1.SendAuthorization", encode(message: SendAuthorization, writer: BinaryWriter = BinaryWriter.create()): BinaryWriter { for (const v of message.spendLimit) { Coin.encode(v!, writer.uint32(10).fork()).ldelim(); } return writer; }, fromJSON(object: any): SendAuthorization { return { spendLimit: Array.isArray(object?.spendLimit) ? object.spendLimit.map((e: any) => Coin.fromJSON(e)) : [] }; }, fromPartial(object: Partial): SendAuthorization { const message = createBaseSendAuthorization(); message.spendLimit = object.spendLimit?.map(e => Coin.fromPartial(e)) || []; return message; }, fromAmino(object: SendAuthorizationAmino): SendAuthorization { const message = createBaseSendAuthorization(); message.spendLimit = object.spend_limit?.map(e => Coin.fromAmino(e)) || []; return message; }, toAmino(message: SendAuthorization): SendAuthorizationAmino { const obj: any = {}; if (message.spendLimit) { obj.spend_limit = message.spendLimit.map(e => e ? Coin.toAmino(e) : undefined); } else { obj.spend_limit = message.spendLimit; } return obj; }, fromAminoMsg(object: SendAuthorizationAminoMsg): SendAuthorization { return SendAuthorization.fromAmino(object.value); }, toAminoMsg(message: SendAuthorization): SendAuthorizationAminoMsg { return { type: "cosmos-sdk/SendAuthorization", value: SendAuthorization.toAmino(message) }; }, fromProtoMsg(message: SendAuthorizationProtoMsg): SendAuthorization { return SendAuthorization.decode(message.value); }, toProto(message: SendAuthorization): Uint8Array { return SendAuthorization.encode(message).finish(); }, toProtoMsg(message: SendAuthorization): SendAuthorizationProtoMsg { return { typeUrl: "/cosmos.bank.v1beta1.SendAuthorization", value: SendAuthorization.encode(message).finish() }; } };