/* eslint-disable */ import Long from 'long'; import _m0 from 'protobufjs/minimal'; import { Coin } from '../../../../cosmos/base/v1beta1/coin'; import { Height } from '../../../../ibc/core/client/v1/client'; export const protobufPackage = 'ibc.applications.transfer.v1'; /** * MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between * ICS20 enabled chains. See ICS Spec here: * https://github.com/cosmos/ics/tree/master/spec/ics-020-fungible-token-transfer#data-structures */ export interface MsgTransfer { /** the port on which the packet will be sent */ sourcePort: string; /** the channel by which the packet will be sent */ sourceChannel: string; /** the tokens to be transferred */ token?: Coin; /** the sender address */ sender: string; /** the recipient address on the destination chain */ receiver: string; /** * Timeout height relative to the current block height. * The timeout is disabled when set to 0. */ timeoutHeight?: Height; /** * Timeout timestamp (in nanoseconds) relative to the current block timestamp. * The timeout is disabled when set to 0. */ timeoutTimestamp: Long; } /** MsgTransferResponse defines the Msg/Transfer response type. */ export interface MsgTransferResponse {} const baseMsgTransfer: object = { sourcePort: '', sourceChannel: '', sender: '', receiver: '', timeoutTimestamp: Long.UZERO, }; export const MsgTransfer = { encode(message: MsgTransfer, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.sourcePort !== '') { writer.uint32(10).string(message.sourcePort); } if (message.sourceChannel !== '') { writer.uint32(18).string(message.sourceChannel); } if (message.token !== undefined) { Coin.encode(message.token, writer.uint32(26).fork()).ldelim(); } if (message.sender !== '') { writer.uint32(34).string(message.sender); } if (message.receiver !== '') { writer.uint32(42).string(message.receiver); } if (message.timeoutHeight !== undefined) { Height.encode(message.timeoutHeight, writer.uint32(50).fork()).ldelim(); } if (!message.timeoutTimestamp.isZero()) { writer.uint32(56).uint64(message.timeoutTimestamp); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): MsgTransfer { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = { ...baseMsgTransfer } as MsgTransfer; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.sourcePort = reader.string(); break; case 2: message.sourceChannel = reader.string(); break; case 3: message.token = Coin.decode(reader, reader.uint32()); break; case 4: message.sender = reader.string(); break; case 5: message.receiver = reader.string(); break; case 6: message.timeoutHeight = Height.decode(reader, reader.uint32()); break; case 7: message.timeoutTimestamp = reader.uint64() as Long; break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): MsgTransfer { const message = { ...baseMsgTransfer } as MsgTransfer; if (object.sourcePort !== undefined && object.sourcePort !== null) { message.sourcePort = String(object.sourcePort); } else { message.sourcePort = ''; } if (object.sourceChannel !== undefined && object.sourceChannel !== null) { message.sourceChannel = String(object.sourceChannel); } else { message.sourceChannel = ''; } if (object.token !== undefined && object.token !== null) { message.token = Coin.fromJSON(object.token); } else { message.token = undefined; } if (object.sender !== undefined && object.sender !== null) { message.sender = String(object.sender); } else { message.sender = ''; } if (object.receiver !== undefined && object.receiver !== null) { message.receiver = String(object.receiver); } else { message.receiver = ''; } if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) { message.timeoutHeight = Height.fromJSON(object.timeoutHeight); } else { message.timeoutHeight = undefined; } if (object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null) { message.timeoutTimestamp = Long.fromString(object.timeoutTimestamp); } else { message.timeoutTimestamp = Long.UZERO; } return message; }, toJSON(message: MsgTransfer): unknown { const obj: any = {}; message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort); message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel); message.token !== undefined && (obj.token = message.token ? Coin.toJSON(message.token) : undefined); message.sender !== undefined && (obj.sender = message.sender); message.receiver !== undefined && (obj.receiver = message.receiver); message.timeoutHeight !== undefined && (obj.timeoutHeight = message.timeoutHeight ? Height.toJSON(message.timeoutHeight) : undefined); message.timeoutTimestamp !== undefined && (obj.timeoutTimestamp = (message.timeoutTimestamp || Long.UZERO).toString()); return obj; }, fromPartial(object: DeepPartial): MsgTransfer { const message = { ...baseMsgTransfer } as MsgTransfer; if (object.sourcePort !== undefined && object.sourcePort !== null) { message.sourcePort = object.sourcePort; } else { message.sourcePort = ''; } if (object.sourceChannel !== undefined && object.sourceChannel !== null) { message.sourceChannel = object.sourceChannel; } else { message.sourceChannel = ''; } if (object.token !== undefined && object.token !== null) { message.token = Coin.fromPartial(object.token); } else { message.token = undefined; } if (object.sender !== undefined && object.sender !== null) { message.sender = object.sender; } else { message.sender = ''; } if (object.receiver !== undefined && object.receiver !== null) { message.receiver = object.receiver; } else { message.receiver = ''; } if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) { message.timeoutHeight = Height.fromPartial(object.timeoutHeight); } else { message.timeoutHeight = undefined; } if (object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null) { message.timeoutTimestamp = object.timeoutTimestamp as Long; } else { message.timeoutTimestamp = Long.UZERO; } return message; }, }; const baseMsgTransferResponse: object = {}; export const MsgTransferResponse = { encode(_: MsgTransferResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): MsgTransferResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = { ...baseMsgTransferResponse } as MsgTransferResponse; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(_: any): MsgTransferResponse { const message = { ...baseMsgTransferResponse } as MsgTransferResponse; return message; }, toJSON(_: MsgTransferResponse): unknown { const obj: any = {}; return obj; }, fromPartial(_: DeepPartial): MsgTransferResponse { const message = { ...baseMsgTransferResponse } as MsgTransferResponse; return message; }, }; /** Msg defines the ibc/transfer Msg service. */ export interface Msg { /** Transfer defines a rpc handler method for MsgTransfer. */ Transfer(request: MsgTransfer): Promise; } export class MsgClientImpl implements Msg { private readonly rpc: Rpc; constructor(rpc: Rpc) { this.rpc = rpc; this.Transfer = this.Transfer.bind(this); } Transfer(request: MsgTransfer): Promise { const data = MsgTransfer.encode(request).finish(); const promise = this.rpc.request('ibc.applications.transfer.v1.Msg', 'Transfer', data); return promise.then((data) => MsgTransferResponse.decode(new _m0.Reader(data))); } } interface Rpc { request(service: string, method: string, data: Uint8Array): Promise; } type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined | Long; export type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial } : Partial; if (_m0.util.Long !== Long) { _m0.util.Long = Long as any; _m0.configure(); }