From 7f0194854efca323d1c0ba675a4255deb26551c8 Mon Sep 17 00:00:00 2001 From: Thibault Jaillard Date: Tue, 20 Sep 2022 12:57:21 +0200 Subject: [PATCH 01/12] Add Dfract message --- src/messages/dfract/MsgDepositDfract.ts | 15 +++++++++++++++ src/messages/dfract/index.ts | 1 + src/registry/index.ts | 2 ++ 3 files changed, 18 insertions(+) create mode 100644 src/messages/dfract/MsgDepositDfract.ts create mode 100644 src/messages/dfract/index.ts diff --git a/src/messages/dfract/MsgDepositDfract.ts b/src/messages/dfract/MsgDepositDfract.ts new file mode 100644 index 0000000..143ea7f --- /dev/null +++ b/src/messages/dfract/MsgDepositDfract.ts @@ -0,0 +1,15 @@ +import { MsgDepositDfract } from '../../codec/dfract/tx'; +import { Message } from '../Message'; +import { Coin } from '../../types'; + +export const MsgDepositDfractUrl = '/lum.network.dfract.MsgDepositDfract'; + +export const BuildMsgDepositDfract = (depositorAddress: string, amount: Coin): Message => { + return { + typeUrl: MsgDepositDfractUrl, + value: { + depositorAddress, + amount, + } as MsgDepositDfract, + }; +}; diff --git a/src/messages/dfract/index.ts b/src/messages/dfract/index.ts new file mode 100644 index 0000000..3dcd7f5 --- /dev/null +++ b/src/messages/dfract/index.ts @@ -0,0 +1 @@ +export * from './MsgDepositDfract'; diff --git a/src/registry/index.ts b/src/registry/index.ts index 43f8c91..e7fe903 100644 --- a/src/registry/index.ts +++ b/src/registry/index.ts @@ -36,6 +36,7 @@ import { MsgConnectionOpenAck, MsgConnectionOpenConfirm, MsgConnectionOpenInit, import { MsgTransfer } from '../codec/ibc/applications/transfer/v1/tx'; import { MsgClaimBeam, MsgOpenBeam, MsgUpdateBeam } from '../codec/beam/tx'; +import { MsgDepositDfract } from '../codec/dfract/tx'; const registryTypes: Iterable<[string, GeneratedType]> = [ ['/cosmos.auth.v1beta1.BaseAccount', BaseAccount], @@ -101,6 +102,7 @@ const registryTypes: Iterable<[string, GeneratedType]> = [ ['/lum.network.beam.MsgOpenBeam', MsgOpenBeam], ['/lum.network.beam.MsgUpdateBeam', MsgUpdateBeam], ['/lum.network.beam.MsgClaimBeam', MsgClaimBeam], + ['/lum.network.dfract.MsgDepositDfract', MsgDepositDfract], ]; class ExtendedRegistry extends Registry { From ee80211129d522787d488d84003da95ac552f3c5 Mon Sep 17 00:00:00 2001 From: Thibault Jaillard Date: Tue, 20 Sep 2022 17:16:10 +0200 Subject: [PATCH 02/12] Fix define-proto.sh and generate protobuf --- docs/lib/classes/lumclient.md | 2 +- docs/lib/modules/lummessages.md | 513 ++++++ package.json | 2 +- scripts/define-proto.sh | 39 +- src/codec/beam/query.ts | 169 +- src/codec/cosmos/authz/v1beta1/authz.ts | 107 ++ src/codec/cosmos/authz/v1beta1/query.ts | 352 +++- src/codec/cosmos/bank/v1beta1/query.ts | 181 ++ src/codec/cosmos/base/abci/v1beta1/abci.ts | 33 + src/codec/cosmos/feegrant/v1beta1/query.ts | 174 ++ .../cosmos/tx/signing/v1beta1/signing.ts | 18 + src/codec/cosmos/tx/v1beta1/service.ts | 231 ++- src/codec/dfract/deposit.ts | 136 ++ src/codec/dfract/params.ts | 90 + src/codec/dfract/proposal.ts | 122 ++ src/codec/dfract/query.ts | 10 + src/codec/dfract/tx.ts | 95 + .../controller/v1/controller.ts | 81 + .../controller/v1/query.ts | 147 ++ .../interchain_accounts/host/v1/host.ts | 107 ++ .../interchain_accounts/host/v1/query.ts | 147 ++ .../interchain_accounts/v1/account.ts | 96 + .../interchain_accounts/v1/metadata.ts | 159 ++ .../interchain_accounts/v1/packet.ts | 241 +++ .../ibc/applications/transfer/v1/query.ts | 269 ++- .../ibc/applications/transfer/v1/transfer.ts | 110 -- src/codec/ibc/applications/transfer/v1/tx.ts | 4 +- .../ibc/applications/transfer/v2/packet.ts | 127 ++ src/codec/ibc/core/channel/v1/channel.ts | 2 +- src/codec/ibc/core/channel/v1/tx.ts | 222 ++- src/codec/ibc/core/client/v1/query.ts | 178 ++ .../ibc/core/commitment/v1/commitment.ts | 2 +- .../lightclients/tendermint/v1/tendermint.ts | 12 +- src/codec/proofs.ts | 1586 +++++++++++++++++ src/extensions/beam.ts | 8 +- src/messages/dfract/MsgDepositDfract.ts | 2 +- src/registry/index.ts | 2 +- 37 files changed, 5594 insertions(+), 182 deletions(-) create mode 100644 src/codec/dfract/deposit.ts create mode 100644 src/codec/dfract/params.ts create mode 100644 src/codec/dfract/proposal.ts create mode 100644 src/codec/dfract/query.ts create mode 100644 src/codec/dfract/tx.ts create mode 100644 src/codec/ibc/applications/interchain_accounts/controller/v1/controller.ts create mode 100644 src/codec/ibc/applications/interchain_accounts/controller/v1/query.ts create mode 100644 src/codec/ibc/applications/interchain_accounts/host/v1/host.ts create mode 100644 src/codec/ibc/applications/interchain_accounts/host/v1/query.ts create mode 100644 src/codec/ibc/applications/interchain_accounts/v1/account.ts create mode 100644 src/codec/ibc/applications/interchain_accounts/v1/metadata.ts create mode 100644 src/codec/ibc/applications/interchain_accounts/v1/packet.ts create mode 100644 src/codec/ibc/applications/transfer/v2/packet.ts create mode 100644 src/codec/proofs.ts diff --git a/docs/lib/classes/lumclient.md b/docs/lib/classes/lumclient.md index a861593..54ce04f 100644 --- a/docs/lib/classes/lumclient.md +++ b/docs/lib/classes/lumclient.md @@ -56,7 +56,7 @@ ___ ### queryClient -• `Readonly` **queryClient**: `QueryClient` & `AuthExtension` & `AuthzExtension` & `BankExtension` & `BeamExtension` & `DistributionExtension` & `GovExtension` & `IbcExtension` & `MintExtension` & `StakingExtension` & `SlashingExtension` & `FeegrantExtension` & `AirdropExtension` +• `Readonly` **queryClient**: `QueryClient` & `AuthExtension` & `AuthzExtension` & `BankExtension` & `BeamExtension` & `DistributionExtension` & `GovExtension` & `IbcExtension` & `MintExtension` & `StakingExtension` & `SlashingExtension` & `FeegrantExtension` & `AirdropExtension` & `TxExtension` ___ diff --git a/docs/lib/modules/lummessages.md b/docs/lib/modules/lummessages.md index a557fe3..9bdfb6e 100644 --- a/docs/lib/modules/lummessages.md +++ b/docs/lib/modules/lummessages.md @@ -8,8 +8,19 @@ ### Variables +- [MsgAcknowledgementUrl](LumMessages.md#msgacknowledgementurl) - [MsgBeginRedelegateUrl](LumMessages.md#msgbeginredelegateurl) +- [MsgChannelCloseConfirmUrl](LumMessages.md#msgchannelcloseconfirmurl) +- [MsgChannelCloseInitUrl](LumMessages.md#msgchannelcloseiniturl) +- [MsgChannelOpenAckUrl](LumMessages.md#msgchannelopenackurl) +- [MsgChannelOpenConfirmUrl](LumMessages.md#msgchannelopenconfirmurl) +- [MsgChannelOpenInitUrl](LumMessages.md#msgchannelopeniniturl) +- [MsgChannelOpenTryUrl](LumMessages.md#msgchannelopentryurl) - [MsgClaimBeamUrl](LumMessages.md#msgclaimbeamurl) +- [MsgConnectionOpenAckUrl](LumMessages.md#msgconnectionopenackurl) +- [MsgConnectionOpenInitUrl](LumMessages.md#msgconnectionopeniniturl) +- [MsgConnectionOpenTryUrl](LumMessages.md#msgconnectionopentryurl) +- [MsgCreateClientUrl](LumMessages.md#msgcreateclienturl) - [MsgCreateValidatorUrl](LumMessages.md#msgcreatevalidatorurl) - [MsgCreateVestingAccountUrl](LumMessages.md#msgcreatevestingaccounturl) - [MsgDelegateUrl](LumMessages.md#msgdelegateurl) @@ -21,22 +32,40 @@ - [MsgGrantUrl](LumMessages.md#msggranturl) - [MsgMultiSendUrl](LumMessages.md#msgmultisendurl) - [MsgOpenBeamUrl](LumMessages.md#msgopenbeamurl) +- [MsgRecvPacketUrl](LumMessages.md#msgrecvpacketurl) - [MsgRevokeAllowanceUrl](LumMessages.md#msgrevokeallowanceurl) - [MsgRevokeUrl](LumMessages.md#msgrevokeurl) - [MsgSendUrl](LumMessages.md#msgsendurl) - [MsgSetWithdrawAddressUrl](LumMessages.md#msgsetwithdrawaddressurl) +- [MsgSubmitMisbehaviourUrl](LumMessages.md#msgsubmitmisbehavioururl) - [MsgSubmitProposalUrl](LumMessages.md#msgsubmitproposalurl) +- [MsgTimeoutOnCloseUrl](LumMessages.md#msgtimeoutoncloseurl) +- [MsgTimeoutUrl](LumMessages.md#msgtimeouturl) +- [MsgTransferUrl](LumMessages.md#msgtransferurl) - [MsgUndelegateUrl](LumMessages.md#msgundelegateurl) - [MsgUnjailUrl](LumMessages.md#msgunjailurl) - [MsgUpdateBeamUrl](LumMessages.md#msgupdatebeamurl) +- [MsgUpdateClientUrl](LumMessages.md#msgupdateclienturl) +- [MsgUpgradeClientUrl](LumMessages.md#msgupgradeclienturl) - [MsgVoteUrl](LumMessages.md#msgvoteurl) - [MsgWithdrawDelegatorRewardUrl](LumMessages.md#msgwithdrawdelegatorrewardurl) - [MsgWithdrawValidatorCommissionUrl](LumMessages.md#msgwithdrawvalidatorcommissionurl) ### Functions +- [BuildMsgAcknowledgement](LumMessages.md#buildmsgacknowledgement) - [BuildMsgBeginRedelegate](LumMessages.md#buildmsgbeginredelegate) +- [BuildMsgChannelCloseConfirm](LumMessages.md#buildmsgchannelcloseconfirm) +- [BuildMsgChannelCloseInit](LumMessages.md#buildmsgchannelcloseinit) +- [BuildMsgChannelOpenAck](LumMessages.md#buildmsgchannelopenack) +- [BuildMsgChannelOpenConfirm](LumMessages.md#buildmsgchannelopenconfirm) +- [BuildMsgChannelOpenInit](LumMessages.md#buildmsgchannelopeninit) +- [BuildMsgChannelOpenTry](LumMessages.md#buildmsgchannelopentry) - [BuildMsgClaimBeam](LumMessages.md#buildmsgclaimbeam) +- [BuildMsgConnectionOpenAck](LumMessages.md#buildmsgconnectionopenack) +- [BuildMsgConnectionOpenInit](LumMessages.md#buildmsgconnectionopeninit) +- [BuildMsgConnectionOpenTry](LumMessages.md#buildmsgconnectionopentry) +- [BuildMsgCreateClient](LumMessages.md#buildmsgcreateclient) - [BuildMsgCreateValidator](LumMessages.md#buildmsgcreatevalidator) - [BuildMsgCreateVestingAccount](LumMessages.md#buildmsgcreatevestingaccount) - [BuildMsgDelegate](LumMessages.md#buildmsgdelegate) @@ -48,32 +77,105 @@ - [BuildMsgGrantAllowance](LumMessages.md#buildmsggrantallowance) - [BuildMsgMultiSend](LumMessages.md#buildmsgmultisend) - [BuildMsgOpenBeam](LumMessages.md#buildmsgopenbeam) +- [BuildMsgRecvPacket](LumMessages.md#buildmsgrecvpacket) - [BuildMsgRevoke](LumMessages.md#buildmsgrevoke) - [BuildMsgRevokeAllowance](LumMessages.md#buildmsgrevokeallowance) - [BuildMsgSend](LumMessages.md#buildmsgsend) - [BuildMsgSetWithdrawAddress](LumMessages.md#buildmsgsetwithdrawaddress) +- [BuildMsgSubmitMisbehaviour](LumMessages.md#buildmsgsubmitmisbehaviour) - [BuildMsgSubmitProposal](LumMessages.md#buildmsgsubmitproposal) +- [BuildMsgTimeout](LumMessages.md#buildmsgtimeout) +- [BuildMsgTimeoutOnClose](LumMessages.md#buildmsgtimeoutonclose) +- [BuildMsgTransfer](LumMessages.md#buildmsgtransfer) - [BuildMsgUndelegate](LumMessages.md#buildmsgundelegate) - [BuildMsgUnjail](LumMessages.md#buildmsgunjail) - [BuildMsgUpdateBeam](LumMessages.md#buildmsgupdatebeam) +- [BuildMsgUpdateClient](LumMessages.md#buildmsgupdateclient) +- [BuildMsgUpgradeClient](LumMessages.md#buildmsgupgradeclient) - [BuildMsgVote](LumMessages.md#buildmsgvote) - [BuildMsgWithdrawDelegatorReward](LumMessages.md#buildmsgwithdrawdelegatorreward) - [BuildMsgWithdrawValidatorCommission](LumMessages.md#buildmsgwithdrawvalidatorcommission) ## Variables +### MsgAcknowledgementUrl + +• **MsgAcknowledgementUrl**: ``"/ibc.core.channel.v1.MsgAcknowledgement"`` + +___ + ### MsgBeginRedelegateUrl • **MsgBeginRedelegateUrl**: ``"/cosmos.staking.v1beta1.MsgBeginRedelegate"`` ___ +### MsgChannelCloseConfirmUrl + +• **MsgChannelCloseConfirmUrl**: ``"/ibc.core.channel.v1.MsgChannelCloseConfirm"`` + +___ + +### MsgChannelCloseInitUrl + +• **MsgChannelCloseInitUrl**: ``"/ibc.core.channel.v1.MsgChannelCloseInit"`` + +___ + +### MsgChannelOpenAckUrl + +• **MsgChannelOpenAckUrl**: ``"/ibc.core.channel.v1.MsgChannelOpenAck"`` + +___ + +### MsgChannelOpenConfirmUrl + +• **MsgChannelOpenConfirmUrl**: ``"/ibc.core.channel.v1.MsgChannelOpenConfirm"`` + +___ + +### MsgChannelOpenInitUrl + +• **MsgChannelOpenInitUrl**: ``"/ibc.core.channel.v1.MsgChannelOpenInit"`` + +___ + +### MsgChannelOpenTryUrl + +• **MsgChannelOpenTryUrl**: ``"/ibc.core.channel.v1.MsgChannelOpenTry"`` + +___ + ### MsgClaimBeamUrl • **MsgClaimBeamUrl**: ``"/lum.network.beam.MsgClaimBeam"`` ___ +### MsgConnectionOpenAckUrl + +• **MsgConnectionOpenAckUrl**: ``"/ibc.core.connection.v1.MsgConnectionOpenAck"`` + +___ + +### MsgConnectionOpenInitUrl + +• **MsgConnectionOpenInitUrl**: ``"/ibc.core.connection.v1.MsgConnectionOpenInit"`` + +___ + +### MsgConnectionOpenTryUrl + +• **MsgConnectionOpenTryUrl**: ``"/ibc.core.connection.v1.MsgConnectionOpenTry"`` + +___ + +### MsgCreateClientUrl + +• **MsgCreateClientUrl**: ``"/ibc.core.client.v1.MsgCreateClient"`` + +___ + ### MsgCreateValidatorUrl • **MsgCreateValidatorUrl**: ``"/cosmos.staking.v1beta1.MsgCreateValidator"`` @@ -140,6 +242,12 @@ ___ ___ +### MsgRecvPacketUrl + +• **MsgRecvPacketUrl**: ``"/ibc.core.channel.v1.MsgRecvPacket"`` + +___ + ### MsgRevokeAllowanceUrl • **MsgRevokeAllowanceUrl**: ``"/cosmos.feegrant.v1beta1.MsgRevokeAllowance"`` @@ -164,12 +272,36 @@ ___ ___ +### MsgSubmitMisbehaviourUrl + +• **MsgSubmitMisbehaviourUrl**: ``"/ibc.core.client.v1.MsgSubmitMisbehaviour"`` + +___ + ### MsgSubmitProposalUrl • **MsgSubmitProposalUrl**: ``"/cosmos.gov.v1beta1.MsgSubmitProposal"`` ___ +### MsgTimeoutOnCloseUrl + +• **MsgTimeoutOnCloseUrl**: ``"/ibc.core.channel.v1.MsgTimeoutOnClose"`` + +___ + +### MsgTimeoutUrl + +• **MsgTimeoutUrl**: ``"/ibc.core.channel.v1.MsgTimeout"`` + +___ + +### MsgTransferUrl + +• **MsgTransferUrl**: ``"/ibc.applications.transfer.v1.MsgTransfer"`` + +___ + ### MsgUndelegateUrl • **MsgUndelegateUrl**: ``"/cosmos.staking.v1beta1.MsgUndelegate"`` @@ -188,6 +320,18 @@ ___ ___ +### MsgUpdateClientUrl + +• **MsgUpdateClientUrl**: ``"/ibc.core.client.v1.MsgUpdateClient"`` + +___ + +### MsgUpgradeClientUrl + +• **MsgUpgradeClientUrl**: ``"/ibc.core.client.v1.MsgUpgradeClient"`` + +___ + ### MsgVoteUrl • **MsgVoteUrl**: ``"/cosmos.gov.v1beta1.MsgVote"`` @@ -206,6 +350,26 @@ ___ ## Functions +### BuildMsgAcknowledgement + +▸ `Const` **BuildMsgAcknowledgement**(`acknowledgement`, `proofAcked`, `signer`, `packet?`, `proofHeight?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `acknowledgement` | `Uint8Array` | +| `proofAcked` | `Uint8Array` | +| `signer` | `string` | +| `packet?` | `Packet` | +| `proofHeight?` | `Height` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + ### BuildMsgBeginRedelegate ▸ `Const` **BuildMsgBeginRedelegate**(`delegatorAddress`, `validatorSrcAddress`, `validatorDstAddress`, `amount?`): [`Message`](../interfaces/LumMessages.Message.md) @@ -225,6 +389,126 @@ ___ ___ +### BuildMsgChannelCloseConfirm + +▸ `Const` **BuildMsgChannelCloseConfirm**(`channelId`, `portId`, `signer`, `proofInit`, `proofHeight?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `channelId` | `string` | +| `portId` | `string` | +| `signer` | `string` | +| `proofInit` | `Uint8Array` | +| `proofHeight?` | `Height` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + +### BuildMsgChannelCloseInit + +▸ `Const` **BuildMsgChannelCloseInit**(`channelId`, `signer`, `portId`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `channelId` | `string` | +| `signer` | `string` | +| `portId` | `string` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + +### BuildMsgChannelOpenAck + +▸ `Const` **BuildMsgChannelOpenAck**(`portId`, `channelId`, `counterpartyChannelId`, `counterpartyVersion`, `signer`, `proofTry`, `proofHeight?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `portId` | `string` | +| `channelId` | `string` | +| `counterpartyChannelId` | `string` | +| `counterpartyVersion` | `string` | +| `signer` | `string` | +| `proofTry` | `Uint8Array` | +| `proofHeight?` | `Height` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + +### BuildMsgChannelOpenConfirm + +▸ `Const` **BuildMsgChannelOpenConfirm**(`channelId`, `portId`, `signer`, `proofAck`, `proofHeight?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `channelId` | `string` | +| `portId` | `string` | +| `signer` | `string` | +| `proofAck` | `Uint8Array` | +| `proofHeight?` | `Height` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + +### BuildMsgChannelOpenInit + +▸ `Const` **BuildMsgChannelOpenInit**(`portId`, `signer`, `channel?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `portId` | `string` | +| `signer` | `string` | +| `channel?` | `Channel` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + +### BuildMsgChannelOpenTry + +▸ `Const` **BuildMsgChannelOpenTry**(`portId`, `previousChannelId`, `counterpartyVersion`, `signer`, `proofInit`, `channel?`, `proofHeight?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `portId` | `string` | +| `previousChannelId` | `string` | +| `counterpartyVersion` | `string` | +| `signer` | `string` | +| `proofInit` | `Uint8Array` | +| `channel?` | `Channel` | +| `proofHeight?` | `Height` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + ### BuildMsgClaimBeam ▸ `Const` **BuildMsgClaimBeam**(`id`, `claimerAddress`, `secret`): [`Message`](../interfaces/LumMessages.Message.md) @@ -243,6 +527,96 @@ ___ ___ +### BuildMsgConnectionOpenAck + +▸ `Const` **BuildMsgConnectionOpenAck**(`connectionId`, `signer`, `counterpartyConnectionId`, `proofClient`, `proofConsensus`, `proofTry`, `clientState?`, `proofHeight?`, `consensusHeight?`, `version?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `connectionId` | `string` | +| `signer` | `string` | +| `counterpartyConnectionId` | `string` | +| `proofClient` | `Uint8Array` | +| `proofConsensus` | `Uint8Array` | +| `proofTry` | `Uint8Array` | +| `clientState?` | `Any` | +| `proofHeight?` | `Height` | +| `consensusHeight?` | `Height` | +| `version?` | `Version` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + +### BuildMsgConnectionOpenInit + +▸ `Const` **BuildMsgConnectionOpenInit**(`clientId`, `signer`, `delayPeriod`, `counterparty?`, `version?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `clientId` | `string` | +| `signer` | `string` | +| `delayPeriod` | `Long` | +| `counterparty?` | `Counterparty` | +| `version?` | `Version` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + +### BuildMsgConnectionOpenTry + +▸ `Const` **BuildMsgConnectionOpenTry**(`signer`, `clientId`, `previousConnectionId`, `delayPeriod`, `counterpartyVersions`, `proofClient`, `proofConsensus`, `proofInit`, `clientState?`, `proofHeight?`, `consensusHeight?`, `counterparty?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `signer` | `string` | +| `clientId` | `string` | +| `previousConnectionId` | `string` | +| `delayPeriod` | `Long` | +| `counterpartyVersions` | `Version`[] | +| `proofClient` | `Uint8Array` | +| `proofConsensus` | `Uint8Array` | +| `proofInit` | `Uint8Array` | +| `clientState?` | `Any` | +| `proofHeight?` | `Height` | +| `consensusHeight?` | `Height` | +| `counterparty?` | `Counterparty` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + +### BuildMsgCreateClient + +▸ `Const` **BuildMsgCreateClient**(`signer`, `clientState?`, `consensusState?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `signer` | `string` | +| `clientState?` | `Any` | +| `consensusState?` | `Any` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + ### BuildMsgCreateValidator ▸ `Const` **BuildMsgCreateValidator**(`validatorAddress`, `delegatorAddress`, `minSelfDelegation`, `commission?`, `description?`, `value?`, `pubkey?`): [`Message`](../interfaces/LumMessages.Message.md) @@ -451,6 +825,25 @@ ___ ___ +### BuildMsgRecvPacket + +▸ `Const` **BuildMsgRecvPacket**(`signer`, `proofCommitment`, `packet?`, `proofHeight?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `signer` | `string` | +| `proofCommitment` | `Uint8Array` | +| `packet?` | `Packet` | +| `proofHeight?` | `Height` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + ### BuildMsgRevoke ▸ `Const` **BuildMsgRevoke**(`granter`, `grantee`, `msgTypeUrl`): [`Message`](../interfaces/LumMessages.Message.md) @@ -521,6 +914,24 @@ ___ ___ +### BuildMsgSubmitMisbehaviour + +▸ `Const` **BuildMsgSubmitMisbehaviour**(`signer`, `clientId`, `misbehaviour?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `signer` | `string` | +| `clientId` | `string` | +| `misbehaviour?` | `Any` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + ### BuildMsgSubmitProposal ▸ `Const` **BuildMsgSubmitProposal**(`proposer`, `initialDeposit`, `content?`): [`Message`](../interfaces/LumMessages.Message.md) @@ -539,6 +950,69 @@ ___ ___ +### BuildMsgTimeout + +▸ `Const` **BuildMsgTimeout**(`nextSequenceRecv`, `proofUnreceived`, `signer`, `packet?`, `proofHeight?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `nextSequenceRecv` | `Long` | +| `proofUnreceived` | `Uint8Array` | +| `signer` | `string` | +| `packet?` | `Packet` | +| `proofHeight?` | `Height` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + +### BuildMsgTimeoutOnClose + +▸ `Const` **BuildMsgTimeoutOnClose**(`nextSequenceRecv`, `signer`, `proofClose`, `proofUnreceived`, `packet?`, `proofHeight?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `nextSequenceRecv` | `Long` | +| `signer` | `string` | +| `proofClose` | `Uint8Array` | +| `proofUnreceived` | `Uint8Array` | +| `packet?` | `Packet` | +| `proofHeight?` | `Height` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + +### BuildMsgTransfer + +▸ `Const` **BuildMsgTransfer**(`receiver`, `sender`, `sourceChannel`, `sourcePort`, `timeoutTimestamp`, `timeoutHeight?`, `token?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `receiver` | `string` | +| `sender` | `string` | +| `sourceChannel` | `string` | +| `sourcePort` | `string` | +| `timeoutTimestamp` | `Long` | +| `timeoutHeight?` | `Height` | +| `token?` | [`Coin`](../interfaces/LumTypes.Coin.md) | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + ### BuildMsgUndelegate ▸ `Const` **BuildMsgUndelegate**(`delegatorAddress`, `validatorAddress`, `amount?`): [`Message`](../interfaces/LumMessages.Message.md) @@ -598,6 +1072,45 @@ ___ ___ +### BuildMsgUpdateClient + +▸ `Const` **BuildMsgUpdateClient**(`clientId`, `signer`, `header?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `clientId` | `string` | +| `signer` | `string` | +| `header?` | `Any` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + +### BuildMsgUpgradeClient + +▸ `Const` **BuildMsgUpgradeClient**(`clientId`, `proofUpgradeClient`, `signer`, `proofUpgradeConsensusState`, `clientState?`, `consensusState?`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `clientId` | `string` | +| `proofUpgradeClient` | `Uint8Array` | +| `signer` | `string` | +| `proofUpgradeConsensusState` | `Uint8Array` | +| `clientState?` | `Any` | +| `consensusState?` | `Any` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + ### BuildMsgVote ▸ `Const` **BuildMsgVote**(`proposalId`, `voter`, `option`): [`Message`](../interfaces/LumMessages.Message.md) diff --git a/package.json b/package.json index fd33f92..cf1270b 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "format": "prettier --write '**/*.{js,jsx,ts,tsx,css,json,md,html,yml}'", "bump": "npm version", "preget-proto": "rm -rf proto", - "get-proto": "COSMOS_REF=v0.44.4 IBC_REF=v1.2.0 LUM_REF=v1.0.4 sh ./scripts/get-proto.sh", + "get-proto": "COSMOS_REF=v0.45.7 IBC_REF=v3.2.0 LUM_REF=v1.2.0 sh ./scripts/get-proto.sh", "define-proto": "sh ./scripts/define-proto.sh", "postdefine-proto": "prettier --write \"src/codec/**/*.ts\"" }, diff --git a/scripts/define-proto.sh b/scripts/define-proto.sh index 3b36326..c5717da 100644 --- a/scripts/define-proto.sh +++ b/scripts/define-proto.sh @@ -4,10 +4,11 @@ command -v shellcheck >/dev/null && shellcheck "$0" ROOT_PROTO_DIR="./proto/cosmos/cosmos-sdk" COSMOS_PROTO_DIR="$ROOT_PROTO_DIR/proto" -THIRD_PARTY_PROTO_DIR="$ROOT_PROTO_DIR/third_party/proto" +COSMOS_THIRD_PARTY_PROTO_DIR="$ROOT_PROTO_DIR/third_party/proto" ROOT_IBC_PROTO_DIR="./proto/ibc/ibc-go" IBC_PROTO_DIR="$ROOT_IBC_PROTO_DIR/proto" +IBC_THIRD_PARTY_PROTO_DIR="$ROOT_IBC_PROTO_DIR/third_party/proto" ROOT_LUM_PROTO_DIR="./proto/lum-network/chain" LUM_PROTO_DIR="$ROOT_LUM_PROTO_DIR/proto" @@ -20,7 +21,8 @@ protoc \ --plugin="$(yarn bin protoc-gen-ts_proto)" \ --ts_proto_out="$OUT_DIR" \ --proto_path="$COSMOS_PROTO_DIR" \ - --proto_path="$THIRD_PARTY_PROTO_DIR" \ + --proto_path="$COSMOS_THIRD_PARTY_PROTO_DIR" \ + --proto_path="$IBC_THIRD_PARTY_PROTO_DIR" \ --proto_path="$LUM_PROTO_DIR" \ --proto_path="$IBC_PROTO_DIR" \ --ts_proto_opt="esModuleInterop=true,forceLong=long,useOptionals=true" \ @@ -68,9 +70,17 @@ protoc \ "$COSMOS_PROTO_DIR/cosmos/upgrade/v1beta1/upgrade.proto" \ "$COSMOS_PROTO_DIR/cosmos/vesting/v1beta1/tx.proto" \ "$COSMOS_PROTO_DIR/cosmos/vesting/v1beta1/vesting.proto" \ + "$IBC_PROTO_DIR/ibc/applications/interchain_accounts/controller/v1/controller.proto" \ + "$IBC_PROTO_DIR/ibc/applications/interchain_accounts/controller/v1/query.proto" \ + "$IBC_PROTO_DIR/ibc/applications/interchain_accounts/host/v1/host.proto" \ + "$IBC_PROTO_DIR/ibc/applications/interchain_accounts/host/v1/query.proto" \ + "$IBC_PROTO_DIR/ibc/applications/interchain_accounts/v1/account.proto" \ + "$IBC_PROTO_DIR/ibc/applications/interchain_accounts/v1/metadata.proto" \ + "$IBC_PROTO_DIR/ibc/applications/interchain_accounts/v1/packet.proto" \ "$IBC_PROTO_DIR/ibc/applications/transfer/v1/query.proto" \ "$IBC_PROTO_DIR/ibc/applications/transfer/v1/transfer.proto" \ "$IBC_PROTO_DIR/ibc/applications/transfer/v1/tx.proto" \ + "$IBC_PROTO_DIR/ibc/applications/transfer/v2/packet.proto" \ "$IBC_PROTO_DIR/ibc/core/channel/v1/channel.proto" \ "$IBC_PROTO_DIR/ibc/core/channel/v1/query.proto" \ "$IBC_PROTO_DIR/ibc/core/channel/v1/tx.proto" \ @@ -82,21 +92,26 @@ protoc \ "$IBC_PROTO_DIR/ibc/core/connection/v1/query.proto" \ "$IBC_PROTO_DIR/ibc/core/connection/v1/tx.proto" \ "$IBC_PROTO_DIR/ibc/lightclients/tendermint/v1/tendermint.proto" \ - "$THIRD_PARTY_PROTO_DIR/confio/proofs.proto" \ - "$THIRD_PARTY_PROTO_DIR/tendermint/abci/types.proto" \ - "$THIRD_PARTY_PROTO_DIR/tendermint/crypto/keys.proto" \ - "$THIRD_PARTY_PROTO_DIR/tendermint/crypto/proof.proto" \ - "$THIRD_PARTY_PROTO_DIR/tendermint/libs/bits/types.proto" \ - "$THIRD_PARTY_PROTO_DIR/tendermint/types/params.proto" \ - "$THIRD_PARTY_PROTO_DIR/tendermint/types/types.proto" \ - "$THIRD_PARTY_PROTO_DIR/tendermint/types/validator.proto" \ - "$THIRD_PARTY_PROTO_DIR/tendermint/version/types.proto" \ + "$COSMOS_THIRD_PARTY_PROTO_DIR/tendermint/abci/types.proto" \ + "$COSMOS_THIRD_PARTY_PROTO_DIR/tendermint/crypto/keys.proto" \ + "$COSMOS_THIRD_PARTY_PROTO_DIR/tendermint/crypto/proof.proto" \ + "$COSMOS_THIRD_PARTY_PROTO_DIR/tendermint/libs/bits/types.proto" \ + "$COSMOS_THIRD_PARTY_PROTO_DIR/tendermint/types/params.proto" \ + "$COSMOS_THIRD_PARTY_PROTO_DIR/tendermint/types/types.proto" \ + "$COSMOS_THIRD_PARTY_PROTO_DIR/tendermint/types/validator.proto" \ + "$COSMOS_THIRD_PARTY_PROTO_DIR/tendermint/version/types.proto" \ + "$IBC_THIRD_PARTY_PROTO_DIR/proofs.proto" \ "$LUM_PROTO_DIR/airdrop/claim.proto" \ "$LUM_PROTO_DIR/airdrop/query.proto" \ "$LUM_PROTO_DIR/airdrop/params.proto" \ "$LUM_PROTO_DIR/beam/beam.proto" \ "$LUM_PROTO_DIR/beam/query.proto" \ - "$LUM_PROTO_DIR/beam/tx.proto" + "$LUM_PROTO_DIR/beam/tx.proto" \ + "$LUM_PROTO_DIR/dfract/deposit.proto" \ + "$LUM_PROTO_DIR/dfract/query.proto" \ + "$LUM_PROTO_DIR/dfract/tx.proto" \ + "$LUM_PROTO_DIR/dfract/params.proto" \ + "$LUM_PROTO_DIR/dfract/proposal.proto" # Remove unnecessary codec files rm -rf \ diff --git a/src/codec/beam/query.ts b/src/codec/beam/query.ts index 9570ac5..9e0c410 100644 --- a/src/codec/beam/query.ts +++ b/src/codec/beam/query.ts @@ -1,7 +1,7 @@ /* eslint-disable */ import Long from 'long'; import _m0 from 'protobufjs/minimal'; -import { Beam } from '../beam/beam'; +import { Beam, BeamState, beamStateFromJSON, beamStateToJSON } from '../beam/beam'; import { PageRequest, PageResponse } from '../cosmos/base/query/v1beta1/pagination'; export const protobufPackage = 'lum.network.beam'; @@ -16,6 +16,7 @@ export interface QueryGetBeamResponse { export interface QueryFetchBeamsRequest { pagination?: PageRequest; + state: BeamState; } export interface QueryFetchBeamsResponse { @@ -23,6 +24,15 @@ export interface QueryFetchBeamsResponse { pagination?: PageResponse; } +export interface QueryFetchBeamsOpenQueueRequest { + pagination?: PageRequest; +} + +export interface QueryFetchBeamsOpenQueueResponse { + beamIds: string[]; + pagination?: PageResponse; +} + const baseQueryGetBeamRequest: object = { id: '' }; export const QueryGetBeamRequest = { @@ -129,13 +139,16 @@ export const QueryGetBeamResponse = { }, }; -const baseQueryFetchBeamsRequest: object = {}; +const baseQueryFetchBeamsRequest: object = { state: 0 }; export const QueryFetchBeamsRequest = { encode(message: QueryFetchBeamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.pagination !== undefined) { PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); } + if (message.state !== 0) { + writer.uint32(16).int32(message.state); + } return writer; }, @@ -149,6 +162,9 @@ export const QueryFetchBeamsRequest = { case 1: message.pagination = PageRequest.decode(reader, reader.uint32()); break; + case 2: + message.state = reader.int32() as any; + break; default: reader.skipType(tag & 7); break; @@ -164,12 +180,18 @@ export const QueryFetchBeamsRequest = { } else { message.pagination = undefined; } + if (object.state !== undefined && object.state !== null) { + message.state = beamStateFromJSON(object.state); + } else { + message.state = 0; + } return message; }, toJSON(message: QueryFetchBeamsRequest): unknown { const obj: any = {}; message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined); + message.state !== undefined && (obj.state = beamStateToJSON(message.state)); return obj; }, @@ -180,6 +202,7 @@ export const QueryFetchBeamsRequest = { } else { message.pagination = undefined; } + message.state = object.state ?? 0; return message; }, }; @@ -263,10 +286,145 @@ export const QueryFetchBeamsResponse = { }, }; +const baseQueryFetchBeamsOpenQueueRequest: object = {}; + +export const QueryFetchBeamsOpenQueueRequest = { + encode(message: QueryFetchBeamsOpenQueueRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryFetchBeamsOpenQueueRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryFetchBeamsOpenQueueRequest } as QueryFetchBeamsOpenQueueRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 3: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryFetchBeamsOpenQueueRequest { + const message = { ...baseQueryFetchBeamsOpenQueueRequest } as QueryFetchBeamsOpenQueueRequest; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryFetchBeamsOpenQueueRequest): unknown { + const obj: any = {}; + message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryFetchBeamsOpenQueueRequest { + const message = { ...baseQueryFetchBeamsOpenQueueRequest } as QueryFetchBeamsOpenQueueRequest; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + +const baseQueryFetchBeamsOpenQueueResponse: object = { beamIds: '' }; + +export const QueryFetchBeamsOpenQueueResponse = { + encode(message: QueryFetchBeamsOpenQueueResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.beamIds) { + writer.uint32(10).string(v!); + } + if (message.pagination !== undefined) { + PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryFetchBeamsOpenQueueResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryFetchBeamsOpenQueueResponse } as QueryFetchBeamsOpenQueueResponse; + message.beamIds = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.beamIds.push(reader.string()); + break; + case 2: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryFetchBeamsOpenQueueResponse { + const message = { ...baseQueryFetchBeamsOpenQueueResponse } as QueryFetchBeamsOpenQueueResponse; + message.beamIds = []; + if (object.beamIds !== undefined && object.beamIds !== null) { + for (const e of object.beamIds) { + message.beamIds.push(String(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryFetchBeamsOpenQueueResponse): unknown { + const obj: any = {}; + if (message.beamIds) { + obj.beamIds = message.beamIds.map((e) => e); + } else { + obj.beamIds = []; + } + message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryFetchBeamsOpenQueueResponse { + const message = { ...baseQueryFetchBeamsOpenQueueResponse } as QueryFetchBeamsOpenQueueResponse; + message.beamIds = []; + if (object.beamIds !== undefined && object.beamIds !== null) { + for (const e of object.beamIds) { + message.beamIds.push(e); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + /** Query defines the gRPC querier service. */ export interface Query { Beam(request: QueryGetBeamRequest): Promise; Beams(request: QueryFetchBeamsRequest): Promise; + BeamsOpenQueue(request: QueryFetchBeamsOpenQueueRequest): Promise; } export class QueryClientImpl implements Query { @@ -275,6 +433,7 @@ export class QueryClientImpl implements Query { this.rpc = rpc; this.Beam = this.Beam.bind(this); this.Beams = this.Beams.bind(this); + this.BeamsOpenQueue = this.BeamsOpenQueue.bind(this); } Beam(request: QueryGetBeamRequest): Promise { const data = QueryGetBeamRequest.encode(request).finish(); @@ -287,6 +446,12 @@ export class QueryClientImpl implements Query { const promise = this.rpc.request('lum.network.beam.Query', 'Beams', data); return promise.then((data) => QueryFetchBeamsResponse.decode(new _m0.Reader(data))); } + + BeamsOpenQueue(request: QueryFetchBeamsOpenQueueRequest): Promise { + const data = QueryFetchBeamsOpenQueueRequest.encode(request).finish(); + const promise = this.rpc.request('lum.network.beam.Query', 'BeamsOpenQueue', data); + return promise.then((data) => QueryFetchBeamsOpenQueueResponse.decode(new _m0.Reader(data))); + } } interface Rpc { diff --git a/src/codec/cosmos/authz/v1beta1/authz.ts b/src/codec/cosmos/authz/v1beta1/authz.ts index 42155a9..e46e3d2 100644 --- a/src/codec/cosmos/authz/v1beta1/authz.ts +++ b/src/codec/cosmos/authz/v1beta1/authz.ts @@ -26,6 +26,19 @@ export interface Grant { expiration?: Date; } +/** + * GrantAuthorization extends a grant with both the addresses of the grantee and granter. + * It is used in genesis.proto and query.proto + * + * Since: cosmos-sdk 0.45.2 + */ +export interface GrantAuthorization { + granter: string; + grantee: string; + authorization?: Any; + expiration?: Date; +} + const baseGenericAuthorization: object = { msg: '' }; export const GenericAuthorization = { @@ -145,6 +158,100 @@ export const Grant = { }, }; +const baseGrantAuthorization: object = { granter: '', grantee: '' }; + +export const GrantAuthorization = { + encode(message: GrantAuthorization, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.granter !== '') { + writer.uint32(10).string(message.granter); + } + if (message.grantee !== '') { + writer.uint32(18).string(message.grantee); + } + if (message.authorization !== undefined) { + Any.encode(message.authorization, writer.uint32(26).fork()).ldelim(); + } + if (message.expiration !== undefined) { + Timestamp.encode(toTimestamp(message.expiration), writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GrantAuthorization { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseGrantAuthorization } as GrantAuthorization; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.granter = reader.string(); + break; + case 2: + message.grantee = reader.string(); + break; + case 3: + message.authorization = Any.decode(reader, reader.uint32()); + break; + case 4: + message.expiration = fromTimestamp(Timestamp.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GrantAuthorization { + const message = { ...baseGrantAuthorization } as GrantAuthorization; + if (object.granter !== undefined && object.granter !== null) { + message.granter = String(object.granter); + } else { + message.granter = ''; + } + if (object.grantee !== undefined && object.grantee !== null) { + message.grantee = String(object.grantee); + } else { + message.grantee = ''; + } + if (object.authorization !== undefined && object.authorization !== null) { + message.authorization = Any.fromJSON(object.authorization); + } else { + message.authorization = undefined; + } + if (object.expiration !== undefined && object.expiration !== null) { + message.expiration = fromJsonTimestamp(object.expiration); + } else { + message.expiration = undefined; + } + return message; + }, + + toJSON(message: GrantAuthorization): unknown { + const obj: any = {}; + message.granter !== undefined && (obj.granter = message.granter); + message.grantee !== undefined && (obj.grantee = message.grantee); + message.authorization !== undefined && (obj.authorization = message.authorization ? Any.toJSON(message.authorization) : undefined); + message.expiration !== undefined && (obj.expiration = message.expiration.toISOString()); + return obj; + }, + + fromPartial(object: DeepPartial): GrantAuthorization { + const message = { ...baseGrantAuthorization } as GrantAuthorization; + message.granter = object.granter ?? ''; + message.grantee = object.grantee ?? ''; + if (object.authorization !== undefined && object.authorization !== null) { + message.authorization = Any.fromPartial(object.authorization); + } else { + message.authorization = undefined; + } + message.expiration = object.expiration ?? undefined; + return message; + }, +}; + type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined | Long; export type DeepPartial = T extends Builtin ? T diff --git a/src/codec/cosmos/authz/v1beta1/query.ts b/src/codec/cosmos/authz/v1beta1/query.ts index a25e4a1..976eccb 100644 --- a/src/codec/cosmos/authz/v1beta1/query.ts +++ b/src/codec/cosmos/authz/v1beta1/query.ts @@ -2,7 +2,7 @@ import Long from 'long'; import _m0 from 'protobufjs/minimal'; import { PageRequest, PageResponse } from '../../../cosmos/base/query/v1beta1/pagination'; -import { Grant } from '../../../cosmos/authz/v1beta1/authz'; +import { Grant, GrantAuthorization } from '../../../cosmos/authz/v1beta1/authz'; export const protobufPackage = 'cosmos.authz.v1beta1'; @@ -26,6 +26,36 @@ export interface QueryGrantsResponse { pagination?: PageResponse; } +/** QueryGranterGrantsRequest is the request type for the Query/GranterGrants RPC method. */ +export interface QueryGranterGrantsRequest { + granter: string; + /** pagination defines an pagination for the request. */ + pagination?: PageRequest; +} + +/** QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method. */ +export interface QueryGranterGrantsResponse { + /** grants is a list of grants granted by the granter. */ + grants: GrantAuthorization[]; + /** pagination defines an pagination for the response. */ + pagination?: PageResponse; +} + +/** QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method. */ +export interface QueryGranteeGrantsRequest { + grantee: string; + /** pagination defines an pagination for the request. */ + pagination?: PageRequest; +} + +/** QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method. */ +export interface QueryGranteeGrantsResponse { + /** grants is a list of grants granted to the grantee. */ + grants: GrantAuthorization[]; + /** pagination defines an pagination for the response. */ + pagination?: PageResponse; +} + const baseQueryGrantsRequest: object = { granter: '', grantee: '', msgTypeUrl: '' }; export const QueryGrantsRequest = { @@ -199,10 +229,316 @@ export const QueryGrantsResponse = { }, }; +const baseQueryGranterGrantsRequest: object = { granter: '' }; + +export const QueryGranterGrantsRequest = { + encode(message: QueryGranterGrantsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.granter !== '') { + writer.uint32(10).string(message.granter); + } + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryGranterGrantsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryGranterGrantsRequest } as QueryGranterGrantsRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.granter = reader.string(); + break; + case 2: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryGranterGrantsRequest { + const message = { ...baseQueryGranterGrantsRequest } as QueryGranterGrantsRequest; + if (object.granter !== undefined && object.granter !== null) { + message.granter = String(object.granter); + } else { + message.granter = ''; + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryGranterGrantsRequest): unknown { + const obj: any = {}; + message.granter !== undefined && (obj.granter = message.granter); + message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryGranterGrantsRequest { + const message = { ...baseQueryGranterGrantsRequest } as QueryGranterGrantsRequest; + message.granter = object.granter ?? ''; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + +const baseQueryGranterGrantsResponse: object = {}; + +export const QueryGranterGrantsResponse = { + encode(message: QueryGranterGrantsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.grants) { + GrantAuthorization.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryGranterGrantsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryGranterGrantsResponse } as QueryGranterGrantsResponse; + message.grants = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.grants.push(GrantAuthorization.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryGranterGrantsResponse { + const message = { ...baseQueryGranterGrantsResponse } as QueryGranterGrantsResponse; + message.grants = []; + if (object.grants !== undefined && object.grants !== null) { + for (const e of object.grants) { + message.grants.push(GrantAuthorization.fromJSON(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryGranterGrantsResponse): unknown { + const obj: any = {}; + if (message.grants) { + obj.grants = message.grants.map((e) => (e ? GrantAuthorization.toJSON(e) : undefined)); + } else { + obj.grants = []; + } + message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryGranterGrantsResponse { + const message = { ...baseQueryGranterGrantsResponse } as QueryGranterGrantsResponse; + message.grants = []; + if (object.grants !== undefined && object.grants !== null) { + for (const e of object.grants) { + message.grants.push(GrantAuthorization.fromPartial(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + +const baseQueryGranteeGrantsRequest: object = { grantee: '' }; + +export const QueryGranteeGrantsRequest = { + encode(message: QueryGranteeGrantsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.grantee !== '') { + writer.uint32(10).string(message.grantee); + } + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryGranteeGrantsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryGranteeGrantsRequest } as QueryGranteeGrantsRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.grantee = reader.string(); + break; + case 2: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryGranteeGrantsRequest { + const message = { ...baseQueryGranteeGrantsRequest } as QueryGranteeGrantsRequest; + if (object.grantee !== undefined && object.grantee !== null) { + message.grantee = String(object.grantee); + } else { + message.grantee = ''; + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryGranteeGrantsRequest): unknown { + const obj: any = {}; + message.grantee !== undefined && (obj.grantee = message.grantee); + message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryGranteeGrantsRequest { + const message = { ...baseQueryGranteeGrantsRequest } as QueryGranteeGrantsRequest; + message.grantee = object.grantee ?? ''; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + +const baseQueryGranteeGrantsResponse: object = {}; + +export const QueryGranteeGrantsResponse = { + encode(message: QueryGranteeGrantsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.grants) { + GrantAuthorization.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryGranteeGrantsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryGranteeGrantsResponse } as QueryGranteeGrantsResponse; + message.grants = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.grants.push(GrantAuthorization.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryGranteeGrantsResponse { + const message = { ...baseQueryGranteeGrantsResponse } as QueryGranteeGrantsResponse; + message.grants = []; + if (object.grants !== undefined && object.grants !== null) { + for (const e of object.grants) { + message.grants.push(GrantAuthorization.fromJSON(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryGranteeGrantsResponse): unknown { + const obj: any = {}; + if (message.grants) { + obj.grants = message.grants.map((e) => (e ? GrantAuthorization.toJSON(e) : undefined)); + } else { + obj.grants = []; + } + message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryGranteeGrantsResponse { + const message = { ...baseQueryGranteeGrantsResponse } as QueryGranteeGrantsResponse; + message.grants = []; + if (object.grants !== undefined && object.grants !== null) { + for (const e of object.grants) { + message.grants.push(GrantAuthorization.fromPartial(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + /** Query defines the gRPC querier service. */ export interface Query { /** Returns list of `Authorization`, granted to the grantee by the granter. */ Grants(request: QueryGrantsRequest): Promise; + /** + * GranterGrants returns list of `GrantAuthorization`, granted by granter. + * + * Since: cosmos-sdk 0.45.2 + */ + GranterGrants(request: QueryGranterGrantsRequest): Promise; + /** + * GranteeGrants returns a list of `GrantAuthorization` by grantee. + * + * Since: cosmos-sdk 0.45.2 + */ + GranteeGrants(request: QueryGranteeGrantsRequest): Promise; } export class QueryClientImpl implements Query { @@ -210,12 +546,26 @@ export class QueryClientImpl implements Query { constructor(rpc: Rpc) { this.rpc = rpc; this.Grants = this.Grants.bind(this); + this.GranterGrants = this.GranterGrants.bind(this); + this.GranteeGrants = this.GranteeGrants.bind(this); } Grants(request: QueryGrantsRequest): Promise { const data = QueryGrantsRequest.encode(request).finish(); const promise = this.rpc.request('cosmos.authz.v1beta1.Query', 'Grants', data); return promise.then((data) => QueryGrantsResponse.decode(new _m0.Reader(data))); } + + GranterGrants(request: QueryGranterGrantsRequest): Promise { + const data = QueryGranterGrantsRequest.encode(request).finish(); + const promise = this.rpc.request('cosmos.authz.v1beta1.Query', 'GranterGrants', data); + return promise.then((data) => QueryGranterGrantsResponse.decode(new _m0.Reader(data))); + } + + GranteeGrants(request: QueryGranteeGrantsRequest): Promise { + const data = QueryGranteeGrantsRequest.encode(request).finish(); + const promise = this.rpc.request('cosmos.authz.v1beta1.Query', 'GranteeGrants', data); + return promise.then((data) => QueryGranteeGrantsResponse.decode(new _m0.Reader(data))); + } } interface Rpc { diff --git a/src/codec/cosmos/bank/v1beta1/query.ts b/src/codec/cosmos/bank/v1beta1/query.ts index a0e49f7..b32ad2c 100644 --- a/src/codec/cosmos/bank/v1beta1/query.ts +++ b/src/codec/cosmos/bank/v1beta1/query.ts @@ -40,6 +40,28 @@ export interface QueryAllBalancesResponse { pagination?: PageResponse; } +/** + * QuerySpendableBalancesRequest defines the gRPC request structure for querying + * an account's spendable balances. + */ +export interface QuerySpendableBalancesRequest { + /** address is the address to query spendable balances for. */ + address: string; + /** pagination defines an optional pagination for the request. */ + pagination?: PageRequest; +} + +/** + * QuerySpendableBalancesResponse defines the gRPC response structure for querying + * an account's spendable balances. + */ +export interface QuerySpendableBalancesResponse { + /** balances is the spendable balances of all the coins. */ + balances: Coin[]; + /** pagination defines the pagination in the response. */ + pagination?: PageResponse; +} + /** * QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC * method. @@ -386,6 +408,153 @@ export const QueryAllBalancesResponse = { }, }; +const baseQuerySpendableBalancesRequest: object = { address: '' }; + +export const QuerySpendableBalancesRequest = { + encode(message: QuerySpendableBalancesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== '') { + writer.uint32(10).string(message.address); + } + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QuerySpendableBalancesRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQuerySpendableBalancesRequest } as QuerySpendableBalancesRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + case 2: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QuerySpendableBalancesRequest { + const message = { ...baseQuerySpendableBalancesRequest } as QuerySpendableBalancesRequest; + if (object.address !== undefined && object.address !== null) { + message.address = String(object.address); + } else { + message.address = ''; + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QuerySpendableBalancesRequest): unknown { + const obj: any = {}; + message.address !== undefined && (obj.address = message.address); + message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QuerySpendableBalancesRequest { + const message = { ...baseQuerySpendableBalancesRequest } as QuerySpendableBalancesRequest; + message.address = object.address ?? ''; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + +const baseQuerySpendableBalancesResponse: object = {}; + +export const QuerySpendableBalancesResponse = { + encode(message: QuerySpendableBalancesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.balances) { + Coin.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QuerySpendableBalancesResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQuerySpendableBalancesResponse } as QuerySpendableBalancesResponse; + message.balances = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.balances.push(Coin.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QuerySpendableBalancesResponse { + const message = { ...baseQuerySpendableBalancesResponse } as QuerySpendableBalancesResponse; + message.balances = []; + if (object.balances !== undefined && object.balances !== null) { + for (const e of object.balances) { + message.balances.push(Coin.fromJSON(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QuerySpendableBalancesResponse): unknown { + const obj: any = {}; + if (message.balances) { + obj.balances = message.balances.map((e) => (e ? Coin.toJSON(e) : undefined)); + } else { + obj.balances = []; + } + message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QuerySpendableBalancesResponse { + const message = { ...baseQuerySpendableBalancesResponse } as QuerySpendableBalancesResponse; + message.balances = []; + if (object.balances !== undefined && object.balances !== null) { + for (const e of object.balances) { + message.balances.push(Coin.fromPartial(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + const baseQueryTotalSupplyRequest: object = {}; export const QueryTotalSupplyRequest = { @@ -965,6 +1134,11 @@ export interface Query { Balance(request: QueryBalanceRequest): Promise; /** AllBalances queries the balance of all coins for a single account. */ AllBalances(request: QueryAllBalancesRequest): Promise; + /** + * SpendableBalances queries the spenable balance of all coins for a single + * account. + */ + SpendableBalances(request: QuerySpendableBalancesRequest): Promise; /** TotalSupply queries the total supply of all coins. */ TotalSupply(request: QueryTotalSupplyRequest): Promise; /** SupplyOf queries the supply of a single coin. */ @@ -983,6 +1157,7 @@ export class QueryClientImpl implements Query { this.rpc = rpc; this.Balance = this.Balance.bind(this); this.AllBalances = this.AllBalances.bind(this); + this.SpendableBalances = this.SpendableBalances.bind(this); this.TotalSupply = this.TotalSupply.bind(this); this.SupplyOf = this.SupplyOf.bind(this); this.Params = this.Params.bind(this); @@ -1001,6 +1176,12 @@ export class QueryClientImpl implements Query { return promise.then((data) => QueryAllBalancesResponse.decode(new _m0.Reader(data))); } + SpendableBalances(request: QuerySpendableBalancesRequest): Promise { + const data = QuerySpendableBalancesRequest.encode(request).finish(); + const promise = this.rpc.request('cosmos.bank.v1beta1.Query', 'SpendableBalances', data); + return promise.then((data) => QuerySpendableBalancesResponse.decode(new _m0.Reader(data))); + } + TotalSupply(request: QueryTotalSupplyRequest): Promise { const data = QueryTotalSupplyRequest.encode(request).finish(); const promise = this.rpc.request('cosmos.bank.v1beta1.Query', 'TotalSupply', data); diff --git a/src/codec/cosmos/base/abci/v1beta1/abci.ts b/src/codec/cosmos/base/abci/v1beta1/abci.ts index 43b2360..b367921 100644 --- a/src/codec/cosmos/base/abci/v1beta1/abci.ts +++ b/src/codec/cosmos/base/abci/v1beta1/abci.ts @@ -42,6 +42,15 @@ export interface TxResponse { * it's genesis time. */ timestamp: string; + /** + * Events defines all the events emitted by processing a transaction. Note, + * these events include those emitted by processing all the messages and those + * emitted from the ante handler. Whereas Logs contains the events, with + * additional metadata, emitted only by processing the messages. + * + * Since: cosmos-sdk 0.42.11, 0.44.5, 0.45 + */ + events: Event[]; } /** ABCIMessageLog defines a structure containing an indexed tx ABCI message log. */ @@ -179,6 +188,9 @@ export const TxResponse = { if (message.timestamp !== '') { writer.uint32(98).string(message.timestamp); } + for (const v of message.events) { + Event.encode(v!, writer.uint32(106).fork()).ldelim(); + } return writer; }, @@ -187,6 +199,7 @@ export const TxResponse = { let end = length === undefined ? reader.len : reader.pos + length; const message = { ...baseTxResponse } as TxResponse; message.logs = []; + message.events = []; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -226,6 +239,9 @@ export const TxResponse = { case 12: message.timestamp = reader.string(); break; + case 13: + message.events.push(Event.decode(reader, reader.uint32())); + break; default: reader.skipType(tag & 7); break; @@ -237,6 +253,7 @@ export const TxResponse = { fromJSON(object: any): TxResponse { const message = { ...baseTxResponse } as TxResponse; message.logs = []; + message.events = []; if (object.height !== undefined && object.height !== null) { message.height = Long.fromString(object.height); } else { @@ -297,6 +314,11 @@ export const TxResponse = { } else { message.timestamp = ''; } + if (object.events !== undefined && object.events !== null) { + for (const e of object.events) { + message.events.push(Event.fromJSON(e)); + } + } return message; }, @@ -318,6 +340,11 @@ export const TxResponse = { message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || Long.ZERO).toString()); message.tx !== undefined && (obj.tx = message.tx ? Any.toJSON(message.tx) : undefined); message.timestamp !== undefined && (obj.timestamp = message.timestamp); + if (message.events) { + obj.events = message.events.map((e) => (e ? Event.toJSON(e) : undefined)); + } else { + obj.events = []; + } return obj; }, @@ -356,6 +383,12 @@ export const TxResponse = { message.tx = undefined; } message.timestamp = object.timestamp ?? ''; + message.events = []; + if (object.events !== undefined && object.events !== null) { + for (const e of object.events) { + message.events.push(Event.fromPartial(e)); + } + } return message; }, }; diff --git a/src/codec/cosmos/feegrant/v1beta1/query.ts b/src/codec/cosmos/feegrant/v1beta1/query.ts index 06c7f55..3b0abdb 100644 --- a/src/codec/cosmos/feegrant/v1beta1/query.ts +++ b/src/codec/cosmos/feegrant/v1beta1/query.ts @@ -37,6 +37,21 @@ export interface QueryAllowancesResponse { pagination?: PageResponse; } +/** QueryAllowancesByGranterRequest is the request type for the Query/AllowancesByGranter RPC method. */ +export interface QueryAllowancesByGranterRequest { + granter: string; + /** pagination defines an pagination for the request. */ + pagination?: PageRequest; +} + +/** QueryAllowancesByGranterResponse is the response type for the Query/AllowancesByGranter RPC method. */ +export interface QueryAllowancesByGranterResponse { + /** allowances that have been issued by the granter. */ + allowances: Grant[]; + /** pagination defines an pagination for the response. */ + pagination?: PageResponse; +} + const baseQueryAllowanceRequest: object = { granter: '', grantee: '' }; export const QueryAllowanceRequest = { @@ -303,12 +318,164 @@ export const QueryAllowancesResponse = { }, }; +const baseQueryAllowancesByGranterRequest: object = { granter: '' }; + +export const QueryAllowancesByGranterRequest = { + encode(message: QueryAllowancesByGranterRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.granter !== '') { + writer.uint32(10).string(message.granter); + } + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowancesByGranterRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryAllowancesByGranterRequest } as QueryAllowancesByGranterRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.granter = reader.string(); + break; + case 2: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryAllowancesByGranterRequest { + const message = { ...baseQueryAllowancesByGranterRequest } as QueryAllowancesByGranterRequest; + if (object.granter !== undefined && object.granter !== null) { + message.granter = String(object.granter); + } else { + message.granter = ''; + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryAllowancesByGranterRequest): unknown { + const obj: any = {}; + message.granter !== undefined && (obj.granter = message.granter); + message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryAllowancesByGranterRequest { + const message = { ...baseQueryAllowancesByGranterRequest } as QueryAllowancesByGranterRequest; + message.granter = object.granter ?? ''; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + +const baseQueryAllowancesByGranterResponse: object = {}; + +export const QueryAllowancesByGranterResponse = { + encode(message: QueryAllowancesByGranterResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.allowances) { + Grant.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllowancesByGranterResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryAllowancesByGranterResponse } as QueryAllowancesByGranterResponse; + message.allowances = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.allowances.push(Grant.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryAllowancesByGranterResponse { + const message = { ...baseQueryAllowancesByGranterResponse } as QueryAllowancesByGranterResponse; + message.allowances = []; + if (object.allowances !== undefined && object.allowances !== null) { + for (const e of object.allowances) { + message.allowances.push(Grant.fromJSON(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryAllowancesByGranterResponse): unknown { + const obj: any = {}; + if (message.allowances) { + obj.allowances = message.allowances.map((e) => (e ? Grant.toJSON(e) : undefined)); + } else { + obj.allowances = []; + } + message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryAllowancesByGranterResponse { + const message = { ...baseQueryAllowancesByGranterResponse } as QueryAllowancesByGranterResponse; + message.allowances = []; + if (object.allowances !== undefined && object.allowances !== null) { + for (const e of object.allowances) { + message.allowances.push(Grant.fromPartial(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + /** Query defines the gRPC querier service. */ export interface Query { /** Allowance returns fee granted to the grantee by the granter. */ Allowance(request: QueryAllowanceRequest): Promise; /** Allowances returns all the grants for address. */ Allowances(request: QueryAllowancesRequest): Promise; + /** + * AllowancesByGranter returns all the grants given by an address + * Since v0.46 + */ + AllowancesByGranter(request: QueryAllowancesByGranterRequest): Promise; } export class QueryClientImpl implements Query { @@ -317,6 +484,7 @@ export class QueryClientImpl implements Query { this.rpc = rpc; this.Allowance = this.Allowance.bind(this); this.Allowances = this.Allowances.bind(this); + this.AllowancesByGranter = this.AllowancesByGranter.bind(this); } Allowance(request: QueryAllowanceRequest): Promise { const data = QueryAllowanceRequest.encode(request).finish(); @@ -329,6 +497,12 @@ export class QueryClientImpl implements Query { const promise = this.rpc.request('cosmos.feegrant.v1beta1.Query', 'Allowances', data); return promise.then((data) => QueryAllowancesResponse.decode(new _m0.Reader(data))); } + + AllowancesByGranter(request: QueryAllowancesByGranterRequest): Promise { + const data = QueryAllowancesByGranterRequest.encode(request).finish(); + const promise = this.rpc.request('cosmos.feegrant.v1beta1.Query', 'AllowancesByGranter', data); + return promise.then((data) => QueryAllowancesByGranterResponse.decode(new _m0.Reader(data))); + } } interface Rpc { diff --git a/src/codec/cosmos/tx/signing/v1beta1/signing.ts b/src/codec/cosmos/tx/signing/v1beta1/signing.ts index 14630b0..8e00dcd 100644 --- a/src/codec/cosmos/tx/signing/v1beta1/signing.ts +++ b/src/codec/cosmos/tx/signing/v1beta1/signing.ts @@ -29,6 +29,19 @@ export enum SignMode { * Amino JSON and will be removed in the future */ SIGN_MODE_LEGACY_AMINO_JSON = 127, + /** + * SIGN_MODE_EIP_191 - SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + * SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + * + * Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum variant, + * but is not implemented on the SDK by default. To enable EIP-191, you need + * to pass a custom `TxConfig` that has an implementation of + * `SignModeHandler` for EIP-191. The SDK may decide to fully support + * EIP-191 in the future. + * + * Since: cosmos-sdk 0.45.2 + */ + SIGN_MODE_EIP_191 = 191, UNRECOGNIZED = -1, } @@ -46,6 +59,9 @@ export function signModeFromJSON(object: any): SignMode { case 127: case 'SIGN_MODE_LEGACY_AMINO_JSON': return SignMode.SIGN_MODE_LEGACY_AMINO_JSON; + case 191: + case 'SIGN_MODE_EIP_191': + return SignMode.SIGN_MODE_EIP_191; case -1: case 'UNRECOGNIZED': default: @@ -63,6 +79,8 @@ export function signModeToJSON(object: SignMode): string { return 'SIGN_MODE_TEXTUAL'; case SignMode.SIGN_MODE_LEGACY_AMINO_JSON: return 'SIGN_MODE_LEGACY_AMINO_JSON'; + case SignMode.SIGN_MODE_EIP_191: + return 'SIGN_MODE_EIP_191'; default: return 'UNKNOWN'; } diff --git a/src/codec/cosmos/tx/v1beta1/service.ts b/src/codec/cosmos/tx/v1beta1/service.ts index 942b7ff..8ad4342 100644 --- a/src/codec/cosmos/tx/v1beta1/service.ts +++ b/src/codec/cosmos/tx/v1beta1/service.ts @@ -4,6 +4,8 @@ import _m0 from 'protobufjs/minimal'; import { PageRequest, PageResponse } from '../../../cosmos/base/query/v1beta1/pagination'; import { TxResponse, GasInfo, Result } from '../../../cosmos/base/abci/v1beta1/abci'; import { Tx } from '../../../cosmos/tx/v1beta1/tx'; +import { BlockID } from '../../../tendermint/types/types'; +import { Block } from '../../../tendermint/types/block'; export const protobufPackage = 'cosmos.tx.v1beta1'; @@ -114,7 +116,7 @@ export function broadcastModeToJSON(object: BroadcastMode): string { export interface GetTxsEventRequest { /** events is the list of transaction event type. */ events: string[]; - /** pagination defines an pagination for the request. */ + /** pagination defines a pagination for the request. */ pagination?: PageRequest; orderBy: OrderBy; } @@ -128,7 +130,7 @@ export interface GetTxsEventResponse { txs: Tx[]; /** tx_responses is the list of queried TxResponses. */ txResponses: TxResponse[]; - /** pagination defines an pagination for the response. */ + /** pagination defines a pagination for the response. */ pagination?: PageResponse; } @@ -199,6 +201,33 @@ export interface GetTxResponse { txResponse?: TxResponse; } +/** + * GetBlockWithTxsRequest is the request type for the Service.GetBlockWithTxs + * RPC method. + * + * Since: cosmos-sdk 0.45.2 + */ +export interface GetBlockWithTxsRequest { + /** height is the height of the block to query. */ + height: Long; + /** pagination defines a pagination for the request. */ + pagination?: PageRequest; +} + +/** + * GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs method. + * + * Since: cosmos-sdk 0.45.2 + */ +export interface GetBlockWithTxsResponse { + /** txs are the transactions in the block. */ + txs: Tx[]; + blockId?: BlockID; + block?: Block; + /** pagination defines a pagination for the response. */ + pagination?: PageResponse; +} + const baseGetTxsEventRequest: object = { events: '', orderBy: 0 }; export const GetTxsEventRequest = { @@ -776,6 +805,191 @@ export const GetTxResponse = { }, }; +const baseGetBlockWithTxsRequest: object = { height: Long.ZERO }; + +export const GetBlockWithTxsRequest = { + encode(message: GetBlockWithTxsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (!message.height.isZero()) { + writer.uint32(8).int64(message.height); + } + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetBlockWithTxsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseGetBlockWithTxsRequest } as GetBlockWithTxsRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.height = reader.int64() as Long; + break; + case 2: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetBlockWithTxsRequest { + const message = { ...baseGetBlockWithTxsRequest } as GetBlockWithTxsRequest; + if (object.height !== undefined && object.height !== null) { + message.height = Long.fromString(object.height); + } else { + message.height = Long.ZERO; + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: GetBlockWithTxsRequest): unknown { + const obj: any = {}; + message.height !== undefined && (obj.height = (message.height || Long.ZERO).toString()); + message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): GetBlockWithTxsRequest { + const message = { ...baseGetBlockWithTxsRequest } as GetBlockWithTxsRequest; + if (object.height !== undefined && object.height !== null) { + message.height = object.height as Long; + } else { + message.height = Long.ZERO; + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + +const baseGetBlockWithTxsResponse: object = {}; + +export const GetBlockWithTxsResponse = { + encode(message: GetBlockWithTxsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.txs) { + Tx.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.blockId !== undefined) { + BlockID.encode(message.blockId, writer.uint32(18).fork()).ldelim(); + } + if (message.block !== undefined) { + Block.encode(message.block, writer.uint32(26).fork()).ldelim(); + } + if (message.pagination !== undefined) { + PageResponse.encode(message.pagination, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetBlockWithTxsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseGetBlockWithTxsResponse } as GetBlockWithTxsResponse; + message.txs = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txs.push(Tx.decode(reader, reader.uint32())); + break; + case 2: + message.blockId = BlockID.decode(reader, reader.uint32()); + break; + case 3: + message.block = Block.decode(reader, reader.uint32()); + break; + case 4: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetBlockWithTxsResponse { + const message = { ...baseGetBlockWithTxsResponse } as GetBlockWithTxsResponse; + message.txs = []; + if (object.txs !== undefined && object.txs !== null) { + for (const e of object.txs) { + message.txs.push(Tx.fromJSON(e)); + } + } + if (object.blockId !== undefined && object.blockId !== null) { + message.blockId = BlockID.fromJSON(object.blockId); + } else { + message.blockId = undefined; + } + if (object.block !== undefined && object.block !== null) { + message.block = Block.fromJSON(object.block); + } else { + message.block = undefined; + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: GetBlockWithTxsResponse): unknown { + const obj: any = {}; + if (message.txs) { + obj.txs = message.txs.map((e) => (e ? Tx.toJSON(e) : undefined)); + } else { + obj.txs = []; + } + message.blockId !== undefined && (obj.blockId = message.blockId ? BlockID.toJSON(message.blockId) : undefined); + message.block !== undefined && (obj.block = message.block ? Block.toJSON(message.block) : undefined); + message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): GetBlockWithTxsResponse { + const message = { ...baseGetBlockWithTxsResponse } as GetBlockWithTxsResponse; + message.txs = []; + if (object.txs !== undefined && object.txs !== null) { + for (const e of object.txs) { + message.txs.push(Tx.fromPartial(e)); + } + } + if (object.blockId !== undefined && object.blockId !== null) { + message.blockId = BlockID.fromPartial(object.blockId); + } else { + message.blockId = undefined; + } + if (object.block !== undefined && object.block !== null) { + message.block = Block.fromPartial(object.block); + } else { + message.block = undefined; + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + /** Service defines a gRPC service for interacting with transactions. */ export interface Service { /** Simulate simulates executing a transaction for estimating gas usage. */ @@ -786,6 +1000,12 @@ export interface Service { BroadcastTx(request: BroadcastTxRequest): Promise; /** GetTxsEvent fetches txs by event. */ GetTxsEvent(request: GetTxsEventRequest): Promise; + /** + * GetBlockWithTxs fetches a block with decoded txs. + * + * Since: cosmos-sdk 0.45.2 + */ + GetBlockWithTxs(request: GetBlockWithTxsRequest): Promise; } export class ServiceClientImpl implements Service { @@ -796,6 +1016,7 @@ export class ServiceClientImpl implements Service { this.GetTx = this.GetTx.bind(this); this.BroadcastTx = this.BroadcastTx.bind(this); this.GetTxsEvent = this.GetTxsEvent.bind(this); + this.GetBlockWithTxs = this.GetBlockWithTxs.bind(this); } Simulate(request: SimulateRequest): Promise { const data = SimulateRequest.encode(request).finish(); @@ -820,6 +1041,12 @@ export class ServiceClientImpl implements Service { const promise = this.rpc.request('cosmos.tx.v1beta1.Service', 'GetTxsEvent', data); return promise.then((data) => GetTxsEventResponse.decode(new _m0.Reader(data))); } + + GetBlockWithTxs(request: GetBlockWithTxsRequest): Promise { + const data = GetBlockWithTxsRequest.encode(request).finish(); + const promise = this.rpc.request('cosmos.tx.v1beta1.Service', 'GetBlockWithTxs', data); + return promise.then((data) => GetBlockWithTxsResponse.decode(new _m0.Reader(data))); + } } interface Rpc { diff --git a/src/codec/dfract/deposit.ts b/src/codec/dfract/deposit.ts new file mode 100644 index 0000000..6291c87 --- /dev/null +++ b/src/codec/dfract/deposit.ts @@ -0,0 +1,136 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { Coin } from '../cosmos/base/v1beta1/coin'; +import { Timestamp } from '../google/protobuf/timestamp'; + +export const protobufPackage = 'lum.network.dfract'; + +export interface Deposit { + depositorAddress: string; + amount?: Coin; + createdAt?: Date; +} + +const baseDeposit: object = { depositorAddress: '' }; + +export const Deposit = { + encode(message: Deposit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.depositorAddress !== '') { + writer.uint32(10).string(message.depositorAddress); + } + if (message.amount !== undefined) { + Coin.encode(message.amount, writer.uint32(18).fork()).ldelim(); + } + if (message.createdAt !== undefined) { + Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Deposit { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseDeposit } as Deposit; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.depositorAddress = reader.string(); + break; + case 2: + message.amount = Coin.decode(reader, reader.uint32()); + break; + case 3: + message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Deposit { + const message = { ...baseDeposit } as Deposit; + if (object.depositorAddress !== undefined && object.depositorAddress !== null) { + message.depositorAddress = String(object.depositorAddress); + } else { + message.depositorAddress = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = Coin.fromJSON(object.amount); + } else { + message.amount = undefined; + } + if (object.createdAt !== undefined && object.createdAt !== null) { + message.createdAt = fromJsonTimestamp(object.createdAt); + } else { + message.createdAt = undefined; + } + return message; + }, + + toJSON(message: Deposit): unknown { + const obj: any = {}; + message.depositorAddress !== undefined && (obj.depositorAddress = message.depositorAddress); + message.amount !== undefined && (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined); + message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); + return obj; + }, + + fromPartial(object: DeepPartial): Deposit { + const message = { ...baseDeposit } as Deposit; + message.depositorAddress = object.depositorAddress ?? ''; + if (object.amount !== undefined && object.amount !== null) { + message.amount = Coin.fromPartial(object.amount); + } else { + message.amount = undefined; + } + message.createdAt = object.createdAt ?? undefined; + return message; + }, +}; + +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; + +function toTimestamp(date: Date): Timestamp { + const seconds = numberToLong(date.getTime() / 1_000); + const nanos = (date.getTime() % 1_000) * 1_000_000; + return { seconds, nanos }; +} + +function fromTimestamp(t: Timestamp): Date { + let millis = t.seconds.toNumber() * 1_000; + millis += t.nanos / 1_000_000; + return new Date(millis); +} + +function fromJsonTimestamp(o: any): Date { + if (o instanceof Date) { + return o; + } else if (typeof o === 'string') { + return new Date(o); + } else { + return fromTimestamp(Timestamp.fromJSON(o)); + } +} + +function numberToLong(number: number) { + return Long.fromNumber(number); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} diff --git a/src/codec/dfract/params.ts b/src/codec/dfract/params.ts new file mode 100644 index 0000000..1690966 --- /dev/null +++ b/src/codec/dfract/params.ts @@ -0,0 +1,90 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; + +export const protobufPackage = 'lum.network.dfract'; + +export interface Params { + depositDenom: string; + mintDenom: string; +} + +const baseParams: object = { depositDenom: '', mintDenom: '' }; + +export const Params = { + encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.depositDenom !== '') { + writer.uint32(10).string(message.depositDenom); + } + if (message.mintDenom !== '') { + writer.uint32(18).string(message.mintDenom); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Params { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseParams } as Params; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.depositDenom = reader.string(); + break; + case 2: + message.mintDenom = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Params { + const message = { ...baseParams } as Params; + if (object.depositDenom !== undefined && object.depositDenom !== null) { + message.depositDenom = String(object.depositDenom); + } else { + message.depositDenom = ''; + } + if (object.mintDenom !== undefined && object.mintDenom !== null) { + message.mintDenom = String(object.mintDenom); + } else { + message.mintDenom = ''; + } + return message; + }, + + toJSON(message: Params): unknown { + const obj: any = {}; + message.depositDenom !== undefined && (obj.depositDenom = message.depositDenom); + message.mintDenom !== undefined && (obj.mintDenom = message.mintDenom); + return obj; + }, + + fromPartial(object: DeepPartial): Params { + const message = { ...baseParams } as Params; + message.depositDenom = object.depositDenom ?? ''; + message.mintDenom = object.mintDenom ?? ''; + return message; + }, +}; + +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(); +} diff --git a/src/codec/dfract/proposal.ts b/src/codec/dfract/proposal.ts new file mode 100644 index 0000000..1f61348 --- /dev/null +++ b/src/codec/dfract/proposal.ts @@ -0,0 +1,122 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; + +export const protobufPackage = 'lum.network.dfract'; + +export interface SpendAndAdjustProposal { + title: string; + description: string; + spendDestination: string; + mintRate: Long; +} + +const baseSpendAndAdjustProposal: object = { title: '', description: '', spendDestination: '', mintRate: Long.ZERO }; + +export const SpendAndAdjustProposal = { + encode(message: SpendAndAdjustProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.title !== '') { + writer.uint32(10).string(message.title); + } + if (message.description !== '') { + writer.uint32(18).string(message.description); + } + if (message.spendDestination !== '') { + writer.uint32(26).string(message.spendDestination); + } + if (!message.mintRate.isZero()) { + writer.uint32(32).int64(message.mintRate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SpendAndAdjustProposal { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseSpendAndAdjustProposal } as SpendAndAdjustProposal; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.title = reader.string(); + break; + case 2: + message.description = reader.string(); + break; + case 3: + message.spendDestination = reader.string(); + break; + case 4: + message.mintRate = reader.int64() as Long; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): SpendAndAdjustProposal { + const message = { ...baseSpendAndAdjustProposal } as SpendAndAdjustProposal; + if (object.title !== undefined && object.title !== null) { + message.title = String(object.title); + } else { + message.title = ''; + } + if (object.description !== undefined && object.description !== null) { + message.description = String(object.description); + } else { + message.description = ''; + } + if (object.spendDestination !== undefined && object.spendDestination !== null) { + message.spendDestination = String(object.spendDestination); + } else { + message.spendDestination = ''; + } + if (object.mintRate !== undefined && object.mintRate !== null) { + message.mintRate = Long.fromString(object.mintRate); + } else { + message.mintRate = Long.ZERO; + } + return message; + }, + + toJSON(message: SpendAndAdjustProposal): unknown { + const obj: any = {}; + message.title !== undefined && (obj.title = message.title); + message.description !== undefined && (obj.description = message.description); + message.spendDestination !== undefined && (obj.spendDestination = message.spendDestination); + message.mintRate !== undefined && (obj.mintRate = (message.mintRate || Long.ZERO).toString()); + return obj; + }, + + fromPartial(object: DeepPartial): SpendAndAdjustProposal { + const message = { ...baseSpendAndAdjustProposal } as SpendAndAdjustProposal; + message.title = object.title ?? ''; + message.description = object.description ?? ''; + message.spendDestination = object.spendDestination ?? ''; + if (object.mintRate !== undefined && object.mintRate !== null) { + message.mintRate = object.mintRate as Long; + } else { + message.mintRate = Long.ZERO; + } + return message; + }, +}; + +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(); +} diff --git a/src/codec/dfract/query.ts b/src/codec/dfract/query.ts new file mode 100644 index 0000000..fb7c896 --- /dev/null +++ b/src/codec/dfract/query.ts @@ -0,0 +1,10 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; + +export const protobufPackage = 'lum.network.dfract'; + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} diff --git a/src/codec/dfract/tx.ts b/src/codec/dfract/tx.ts new file mode 100644 index 0000000..94ac594 --- /dev/null +++ b/src/codec/dfract/tx.ts @@ -0,0 +1,95 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { Coin } from '../cosmos/base/v1beta1/coin'; + +export const protobufPackage = 'lum.network.dfract'; + +export interface MsgDeposit { + depositorAddress: string; + amount?: Coin; +} + +const baseMsgDeposit: object = { depositorAddress: '' }; + +export const MsgDeposit = { + encode(message: MsgDeposit, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.depositorAddress !== '') { + writer.uint32(10).string(message.depositorAddress); + } + if (message.amount !== undefined) { + Coin.encode(message.amount, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgDeposit { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseMsgDeposit } as MsgDeposit; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.depositorAddress = reader.string(); + break; + case 2: + message.amount = Coin.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgDeposit { + const message = { ...baseMsgDeposit } as MsgDeposit; + if (object.depositorAddress !== undefined && object.depositorAddress !== null) { + message.depositorAddress = String(object.depositorAddress); + } else { + message.depositorAddress = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = Coin.fromJSON(object.amount); + } else { + message.amount = undefined; + } + return message; + }, + + toJSON(message: MsgDeposit): unknown { + const obj: any = {}; + message.depositorAddress !== undefined && (obj.depositorAddress = message.depositorAddress); + message.amount !== undefined && (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): MsgDeposit { + const message = { ...baseMsgDeposit } as MsgDeposit; + message.depositorAddress = object.depositorAddress ?? ''; + if (object.amount !== undefined && object.amount !== null) { + message.amount = Coin.fromPartial(object.amount); + } else { + message.amount = undefined; + } + return message; + }, +}; + +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(); +} diff --git a/src/codec/ibc/applications/interchain_accounts/controller/v1/controller.ts b/src/codec/ibc/applications/interchain_accounts/controller/v1/controller.ts new file mode 100644 index 0000000..ec00b93 --- /dev/null +++ b/src/codec/ibc/applications/interchain_accounts/controller/v1/controller.ts @@ -0,0 +1,81 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; + +export const protobufPackage = 'ibc.applications.interchain_accounts.controller.v1'; + +/** + * Params defines the set of on-chain interchain accounts parameters. + * The following parameters may be used to disable the controller submodule. + */ +export interface Params { + /** controller_enabled enables or disables the controller submodule. */ + controllerEnabled: boolean; +} + +const baseParams: object = { controllerEnabled: false }; + +export const Params = { + encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.controllerEnabled === true) { + writer.uint32(8).bool(message.controllerEnabled); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Params { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseParams } as Params; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.controllerEnabled = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Params { + const message = { ...baseParams } as Params; + if (object.controllerEnabled !== undefined && object.controllerEnabled !== null) { + message.controllerEnabled = Boolean(object.controllerEnabled); + } else { + message.controllerEnabled = false; + } + return message; + }, + + toJSON(message: Params): unknown { + const obj: any = {}; + message.controllerEnabled !== undefined && (obj.controllerEnabled = message.controllerEnabled); + return obj; + }, + + fromPartial(object: DeepPartial): Params { + const message = { ...baseParams } as Params; + message.controllerEnabled = object.controllerEnabled ?? false; + return message; + }, +}; + +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(); +} diff --git a/src/codec/ibc/applications/interchain_accounts/controller/v1/query.ts b/src/codec/ibc/applications/interchain_accounts/controller/v1/query.ts new file mode 100644 index 0000000..cc9e2fe --- /dev/null +++ b/src/codec/ibc/applications/interchain_accounts/controller/v1/query.ts @@ -0,0 +1,147 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { Params } from '../../../../../ibc/applications/interchain_accounts/controller/v1/controller'; + +export const protobufPackage = 'ibc.applications.interchain_accounts.controller.v1'; + +/** QueryParamsRequest is the request type for the Query/Params RPC method. */ +export interface QueryParamsRequest {} + +/** QueryParamsResponse is the response type for the Query/Params RPC method. */ +export interface QueryParamsResponse { + /** params defines the parameters of the module. */ + params?: Params; +} + +const baseQueryParamsRequest: object = {}; + +export const QueryParamsRequest = { + encode(_: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryParamsRequest } as QueryParamsRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): QueryParamsRequest { + const message = { ...baseQueryParamsRequest } as QueryParamsRequest; + return message; + }, + + toJSON(_: QueryParamsRequest): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial(_: DeepPartial): QueryParamsRequest { + const message = { ...baseQueryParamsRequest } as QueryParamsRequest; + return message; + }, +}; + +const baseQueryParamsResponse: object = {}; + +export const QueryParamsResponse = { + encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.params !== undefined) { + Params.encode(message.params, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryParamsResponse } as QueryParamsResponse; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.params = Params.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryParamsResponse { + const message = { ...baseQueryParamsResponse } as QueryParamsResponse; + if (object.params !== undefined && object.params !== null) { + message.params = Params.fromJSON(object.params); + } else { + message.params = undefined; + } + return message; + }, + + toJSON(message: QueryParamsResponse): unknown { + const obj: any = {}; + message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryParamsResponse { + const message = { ...baseQueryParamsResponse } as QueryParamsResponse; + if (object.params !== undefined && object.params !== null) { + message.params = Params.fromPartial(object.params); + } else { + message.params = undefined; + } + return message; + }, +}; + +/** Query provides defines the gRPC querier service. */ +export interface Query { + /** Params queries all parameters of the ICA controller submodule. */ + Params(request: QueryParamsRequest): Promise; +} + +export class QueryClientImpl implements Query { + private readonly rpc: Rpc; + constructor(rpc: Rpc) { + this.rpc = rpc; + this.Params = this.Params.bind(this); + } + Params(request: QueryParamsRequest): Promise { + const data = QueryParamsRequest.encode(request).finish(); + const promise = this.rpc.request('ibc.applications.interchain_accounts.controller.v1.Query', 'Params', data); + return promise.then((data) => QueryParamsResponse.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(); +} diff --git a/src/codec/ibc/applications/interchain_accounts/host/v1/host.ts b/src/codec/ibc/applications/interchain_accounts/host/v1/host.ts new file mode 100644 index 0000000..6d382ab --- /dev/null +++ b/src/codec/ibc/applications/interchain_accounts/host/v1/host.ts @@ -0,0 +1,107 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; + +export const protobufPackage = 'ibc.applications.interchain_accounts.host.v1'; + +/** + * Params defines the set of on-chain interchain accounts parameters. + * The following parameters may be used to disable the host submodule. + */ +export interface Params { + /** host_enabled enables or disables the host submodule. */ + hostEnabled: boolean; + /** allow_messages defines a list of sdk message typeURLs allowed to be executed on a host chain. */ + allowMessages: string[]; +} + +const baseParams: object = { hostEnabled: false, allowMessages: '' }; + +export const Params = { + encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.hostEnabled === true) { + writer.uint32(8).bool(message.hostEnabled); + } + for (const v of message.allowMessages) { + writer.uint32(18).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Params { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseParams } as Params; + message.allowMessages = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.hostEnabled = reader.bool(); + break; + case 2: + message.allowMessages.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Params { + const message = { ...baseParams } as Params; + message.allowMessages = []; + if (object.hostEnabled !== undefined && object.hostEnabled !== null) { + message.hostEnabled = Boolean(object.hostEnabled); + } else { + message.hostEnabled = false; + } + if (object.allowMessages !== undefined && object.allowMessages !== null) { + for (const e of object.allowMessages) { + message.allowMessages.push(String(e)); + } + } + return message; + }, + + toJSON(message: Params): unknown { + const obj: any = {}; + message.hostEnabled !== undefined && (obj.hostEnabled = message.hostEnabled); + if (message.allowMessages) { + obj.allowMessages = message.allowMessages.map((e) => e); + } else { + obj.allowMessages = []; + } + return obj; + }, + + fromPartial(object: DeepPartial): Params { + const message = { ...baseParams } as Params; + message.hostEnabled = object.hostEnabled ?? false; + message.allowMessages = []; + if (object.allowMessages !== undefined && object.allowMessages !== null) { + for (const e of object.allowMessages) { + message.allowMessages.push(e); + } + } + return message; + }, +}; + +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(); +} diff --git a/src/codec/ibc/applications/interchain_accounts/host/v1/query.ts b/src/codec/ibc/applications/interchain_accounts/host/v1/query.ts new file mode 100644 index 0000000..34d27a8 --- /dev/null +++ b/src/codec/ibc/applications/interchain_accounts/host/v1/query.ts @@ -0,0 +1,147 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { Params } from '../../../../../ibc/applications/interchain_accounts/host/v1/host'; + +export const protobufPackage = 'ibc.applications.interchain_accounts.host.v1'; + +/** QueryParamsRequest is the request type for the Query/Params RPC method. */ +export interface QueryParamsRequest {} + +/** QueryParamsResponse is the response type for the Query/Params RPC method. */ +export interface QueryParamsResponse { + /** params defines the parameters of the module. */ + params?: Params; +} + +const baseQueryParamsRequest: object = {}; + +export const QueryParamsRequest = { + encode(_: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryParamsRequest } as QueryParamsRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): QueryParamsRequest { + const message = { ...baseQueryParamsRequest } as QueryParamsRequest; + return message; + }, + + toJSON(_: QueryParamsRequest): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial(_: DeepPartial): QueryParamsRequest { + const message = { ...baseQueryParamsRequest } as QueryParamsRequest; + return message; + }, +}; + +const baseQueryParamsResponse: object = {}; + +export const QueryParamsResponse = { + encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.params !== undefined) { + Params.encode(message.params, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryParamsResponse } as QueryParamsResponse; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.params = Params.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryParamsResponse { + const message = { ...baseQueryParamsResponse } as QueryParamsResponse; + if (object.params !== undefined && object.params !== null) { + message.params = Params.fromJSON(object.params); + } else { + message.params = undefined; + } + return message; + }, + + toJSON(message: QueryParamsResponse): unknown { + const obj: any = {}; + message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryParamsResponse { + const message = { ...baseQueryParamsResponse } as QueryParamsResponse; + if (object.params !== undefined && object.params !== null) { + message.params = Params.fromPartial(object.params); + } else { + message.params = undefined; + } + return message; + }, +}; + +/** Query provides defines the gRPC querier service. */ +export interface Query { + /** Params queries all parameters of the ICA host submodule. */ + Params(request: QueryParamsRequest): Promise; +} + +export class QueryClientImpl implements Query { + private readonly rpc: Rpc; + constructor(rpc: Rpc) { + this.rpc = rpc; + this.Params = this.Params.bind(this); + } + Params(request: QueryParamsRequest): Promise { + const data = QueryParamsRequest.encode(request).finish(); + const promise = this.rpc.request('ibc.applications.interchain_accounts.host.v1.Query', 'Params', data); + return promise.then((data) => QueryParamsResponse.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(); +} diff --git a/src/codec/ibc/applications/interchain_accounts/v1/account.ts b/src/codec/ibc/applications/interchain_accounts/v1/account.ts new file mode 100644 index 0000000..ce12d8b --- /dev/null +++ b/src/codec/ibc/applications/interchain_accounts/v1/account.ts @@ -0,0 +1,96 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { BaseAccount } from '../../../../cosmos/auth/v1beta1/auth'; + +export const protobufPackage = 'ibc.applications.interchain_accounts.v1'; + +/** An InterchainAccount is defined as a BaseAccount & the address of the account owner on the controller chain */ +export interface InterchainAccount { + baseAccount?: BaseAccount; + accountOwner: string; +} + +const baseInterchainAccount: object = { accountOwner: '' }; + +export const InterchainAccount = { + encode(message: InterchainAccount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.baseAccount !== undefined) { + BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim(); + } + if (message.accountOwner !== '') { + writer.uint32(18).string(message.accountOwner); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): InterchainAccount { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseInterchainAccount } as InterchainAccount; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseAccount = BaseAccount.decode(reader, reader.uint32()); + break; + case 2: + message.accountOwner = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): InterchainAccount { + const message = { ...baseInterchainAccount } as InterchainAccount; + if (object.baseAccount !== undefined && object.baseAccount !== null) { + message.baseAccount = BaseAccount.fromJSON(object.baseAccount); + } else { + message.baseAccount = undefined; + } + if (object.accountOwner !== undefined && object.accountOwner !== null) { + message.accountOwner = String(object.accountOwner); + } else { + message.accountOwner = ''; + } + return message; + }, + + toJSON(message: InterchainAccount): unknown { + const obj: any = {}; + message.baseAccount !== undefined && (obj.baseAccount = message.baseAccount ? BaseAccount.toJSON(message.baseAccount) : undefined); + message.accountOwner !== undefined && (obj.accountOwner = message.accountOwner); + return obj; + }, + + fromPartial(object: DeepPartial): InterchainAccount { + const message = { ...baseInterchainAccount } as InterchainAccount; + if (object.baseAccount !== undefined && object.baseAccount !== null) { + message.baseAccount = BaseAccount.fromPartial(object.baseAccount); + } else { + message.baseAccount = undefined; + } + message.accountOwner = object.accountOwner ?? ''; + return message; + }, +}; + +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(); +} diff --git a/src/codec/ibc/applications/interchain_accounts/v1/metadata.ts b/src/codec/ibc/applications/interchain_accounts/v1/metadata.ts new file mode 100644 index 0000000..8a41e9b --- /dev/null +++ b/src/codec/ibc/applications/interchain_accounts/v1/metadata.ts @@ -0,0 +1,159 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; + +export const protobufPackage = 'ibc.applications.interchain_accounts.v1'; + +/** + * Metadata defines a set of protocol specific data encoded into the ICS27 channel version bytestring + * See ICS004: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning + */ +export interface Metadata { + /** version defines the ICS27 protocol version */ + version: string; + /** controller_connection_id is the connection identifier associated with the controller chain */ + controllerConnectionId: string; + /** host_connection_id is the connection identifier associated with the host chain */ + hostConnectionId: string; + /** + * address defines the interchain account address to be fulfilled upon the OnChanOpenTry handshake step + * NOTE: the address field is empty on the OnChanOpenInit handshake step + */ + address: string; + /** encoding defines the supported codec format */ + encoding: string; + /** tx_type defines the type of transactions the interchain account can execute */ + txType: string; +} + +const baseMetadata: object = { version: '', controllerConnectionId: '', hostConnectionId: '', address: '', encoding: '', txType: '' }; + +export const Metadata = { + encode(message: Metadata, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.version !== '') { + writer.uint32(10).string(message.version); + } + if (message.controllerConnectionId !== '') { + writer.uint32(18).string(message.controllerConnectionId); + } + if (message.hostConnectionId !== '') { + writer.uint32(26).string(message.hostConnectionId); + } + if (message.address !== '') { + writer.uint32(34).string(message.address); + } + if (message.encoding !== '') { + writer.uint32(42).string(message.encoding); + } + if (message.txType !== '') { + writer.uint32(50).string(message.txType); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Metadata { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseMetadata } as Metadata; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.version = reader.string(); + break; + case 2: + message.controllerConnectionId = reader.string(); + break; + case 3: + message.hostConnectionId = reader.string(); + break; + case 4: + message.address = reader.string(); + break; + case 5: + message.encoding = reader.string(); + break; + case 6: + message.txType = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Metadata { + const message = { ...baseMetadata } as Metadata; + if (object.version !== undefined && object.version !== null) { + message.version = String(object.version); + } else { + message.version = ''; + } + if (object.controllerConnectionId !== undefined && object.controllerConnectionId !== null) { + message.controllerConnectionId = String(object.controllerConnectionId); + } else { + message.controllerConnectionId = ''; + } + if (object.hostConnectionId !== undefined && object.hostConnectionId !== null) { + message.hostConnectionId = String(object.hostConnectionId); + } else { + message.hostConnectionId = ''; + } + if (object.address !== undefined && object.address !== null) { + message.address = String(object.address); + } else { + message.address = ''; + } + if (object.encoding !== undefined && object.encoding !== null) { + message.encoding = String(object.encoding); + } else { + message.encoding = ''; + } + if (object.txType !== undefined && object.txType !== null) { + message.txType = String(object.txType); + } else { + message.txType = ''; + } + return message; + }, + + toJSON(message: Metadata): unknown { + const obj: any = {}; + message.version !== undefined && (obj.version = message.version); + message.controllerConnectionId !== undefined && (obj.controllerConnectionId = message.controllerConnectionId); + message.hostConnectionId !== undefined && (obj.hostConnectionId = message.hostConnectionId); + message.address !== undefined && (obj.address = message.address); + message.encoding !== undefined && (obj.encoding = message.encoding); + message.txType !== undefined && (obj.txType = message.txType); + return obj; + }, + + fromPartial(object: DeepPartial): Metadata { + const message = { ...baseMetadata } as Metadata; + message.version = object.version ?? ''; + message.controllerConnectionId = object.controllerConnectionId ?? ''; + message.hostConnectionId = object.hostConnectionId ?? ''; + message.address = object.address ?? ''; + message.encoding = object.encoding ?? ''; + message.txType = object.txType ?? ''; + return message; + }, +}; + +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(); +} diff --git a/src/codec/ibc/applications/interchain_accounts/v1/packet.ts b/src/codec/ibc/applications/interchain_accounts/v1/packet.ts new file mode 100644 index 0000000..119dcf6 --- /dev/null +++ b/src/codec/ibc/applications/interchain_accounts/v1/packet.ts @@ -0,0 +1,241 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { Any } from '../../../../google/protobuf/any'; + +export const protobufPackage = 'ibc.applications.interchain_accounts.v1'; + +/** + * Type defines a classification of message issued from a controller chain to its associated interchain accounts + * host + */ +export enum Type { + /** TYPE_UNSPECIFIED - Default zero value enumeration */ + TYPE_UNSPECIFIED = 0, + /** TYPE_EXECUTE_TX - Execute a transaction on an interchain accounts host chain */ + TYPE_EXECUTE_TX = 1, + UNRECOGNIZED = -1, +} + +export function typeFromJSON(object: any): Type { + switch (object) { + case 0: + case 'TYPE_UNSPECIFIED': + return Type.TYPE_UNSPECIFIED; + case 1: + case 'TYPE_EXECUTE_TX': + return Type.TYPE_EXECUTE_TX; + case -1: + case 'UNRECOGNIZED': + default: + return Type.UNRECOGNIZED; + } +} + +export function typeToJSON(object: Type): string { + switch (object) { + case Type.TYPE_UNSPECIFIED: + return 'TYPE_UNSPECIFIED'; + case Type.TYPE_EXECUTE_TX: + return 'TYPE_EXECUTE_TX'; + default: + return 'UNKNOWN'; + } +} + +/** InterchainAccountPacketData is comprised of a raw transaction, type of transaction and optional memo field. */ +export interface InterchainAccountPacketData { + type: Type; + data: Uint8Array; + memo: string; +} + +/** CosmosTx contains a list of sdk.Msg's. It should be used when sending transactions to an SDK host chain. */ +export interface CosmosTx { + messages: Any[]; +} + +const baseInterchainAccountPacketData: object = { type: 0, memo: '' }; + +export const InterchainAccountPacketData = { + encode(message: InterchainAccountPacketData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.data.length !== 0) { + writer.uint32(18).bytes(message.data); + } + if (message.memo !== '') { + writer.uint32(26).string(message.memo); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): InterchainAccountPacketData { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseInterchainAccountPacketData } as InterchainAccountPacketData; + message.data = new Uint8Array(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.int32() as any; + break; + case 2: + message.data = reader.bytes(); + break; + case 3: + message.memo = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): InterchainAccountPacketData { + const message = { ...baseInterchainAccountPacketData } as InterchainAccountPacketData; + message.data = new Uint8Array(); + if (object.type !== undefined && object.type !== null) { + message.type = typeFromJSON(object.type); + } else { + message.type = 0; + } + if (object.data !== undefined && object.data !== null) { + message.data = bytesFromBase64(object.data); + } + if (object.memo !== undefined && object.memo !== null) { + message.memo = String(object.memo); + } else { + message.memo = ''; + } + return message; + }, + + toJSON(message: InterchainAccountPacketData): unknown { + const obj: any = {}; + message.type !== undefined && (obj.type = typeToJSON(message.type)); + message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array())); + message.memo !== undefined && (obj.memo = message.memo); + return obj; + }, + + fromPartial(object: DeepPartial): InterchainAccountPacketData { + const message = { ...baseInterchainAccountPacketData } as InterchainAccountPacketData; + message.type = object.type ?? 0; + message.data = object.data ?? new Uint8Array(); + message.memo = object.memo ?? ''; + return message; + }, +}; + +const baseCosmosTx: object = {}; + +export const CosmosTx = { + encode(message: CosmosTx, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.messages) { + Any.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CosmosTx { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseCosmosTx } as CosmosTx; + message.messages = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.messages.push(Any.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CosmosTx { + const message = { ...baseCosmosTx } as CosmosTx; + message.messages = []; + if (object.messages !== undefined && object.messages !== null) { + for (const e of object.messages) { + message.messages.push(Any.fromJSON(e)); + } + } + return message; + }, + + toJSON(message: CosmosTx): unknown { + const obj: any = {}; + if (message.messages) { + obj.messages = message.messages.map((e) => (e ? Any.toJSON(e) : undefined)); + } else { + obj.messages = []; + } + return obj; + }, + + fromPartial(object: DeepPartial): CosmosTx { + const message = { ...baseCosmosTx } as CosmosTx; + message.messages = []; + if (object.messages !== undefined && object.messages !== null) { + for (const e of object.messages) { + message.messages.push(Any.fromPartial(e)); + } + } + return message; + }, +}; + +declare var self: any | undefined; +declare var window: any | undefined; +declare var global: any | undefined; +var globalThis: any = (() => { + if (typeof globalThis !== 'undefined') return globalThis; + if (typeof self !== 'undefined') return self; + if (typeof window !== 'undefined') return window; + if (typeof global !== 'undefined') return global; + throw 'Unable to locate global object'; +})(); + +const atob: (b64: string) => string = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, 'base64').toString('binary')); +function bytesFromBase64(b64: string): Uint8Array { + const bin = atob(b64); + const arr = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; ++i) { + arr[i] = bin.charCodeAt(i); + } + return arr; +} + +const btoa: (bin: string) => string = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, 'binary').toString('base64')); +function base64FromBytes(arr: Uint8Array): string { + const bin: string[] = []; + for (const byte of arr) { + bin.push(String.fromCharCode(byte)); + } + return btoa(bin.join('')); +} + +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(); +} diff --git a/src/codec/ibc/applications/transfer/v1/query.ts b/src/codec/ibc/applications/transfer/v1/query.ts index 4dda99f..b809241 100644 --- a/src/codec/ibc/applications/transfer/v1/query.ts +++ b/src/codec/ibc/applications/transfer/v1/query.ts @@ -11,7 +11,7 @@ export const protobufPackage = 'ibc.applications.transfer.v1'; * method */ export interface QueryDenomTraceRequest { - /** hash (in hex format) of the denomination trace information. */ + /** hash (in hex format) or denom (full denom with ibc prefix) of the denomination trace information. */ hash: string; } @@ -53,6 +53,38 @@ export interface QueryParamsResponse { params?: Params; } +/** + * QueryDenomHashRequest is the request type for the Query/DenomHash RPC + * method + */ +export interface QueryDenomHashRequest { + /** The denomination trace ([port_id]/[channel_id])+/[denom] */ + trace: string; +} + +/** + * QueryDenomHashResponse is the response type for the Query/DenomHash RPC + * method. + */ +export interface QueryDenomHashResponse { + /** hash (in hex format) of the denomination trace information. */ + hash: string; +} + +/** QueryEscrowAddressRequest is the request type for the EscrowAddress RPC method. */ +export interface QueryEscrowAddressRequest { + /** unique port identifier */ + portId: string; + /** unique channel identifier */ + channelId: string; +} + +/** QueryEscrowAddressResponse is the response type of the EscrowAddress RPC method. */ +export interface QueryEscrowAddressResponse { + /** the escrow account address */ + escrowAddress: string; +} + const baseQueryDenomTraceRequest: object = { hash: '' }; export const QueryDenomTraceRequest = { @@ -386,6 +418,223 @@ export const QueryParamsResponse = { }, }; +const baseQueryDenomHashRequest: object = { trace: '' }; + +export const QueryDenomHashRequest = { + encode(message: QueryDenomHashRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.trace !== '') { + writer.uint32(10).string(message.trace); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomHashRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryDenomHashRequest } as QueryDenomHashRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.trace = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryDenomHashRequest { + const message = { ...baseQueryDenomHashRequest } as QueryDenomHashRequest; + if (object.trace !== undefined && object.trace !== null) { + message.trace = String(object.trace); + } else { + message.trace = ''; + } + return message; + }, + + toJSON(message: QueryDenomHashRequest): unknown { + const obj: any = {}; + message.trace !== undefined && (obj.trace = message.trace); + return obj; + }, + + fromPartial(object: DeepPartial): QueryDenomHashRequest { + const message = { ...baseQueryDenomHashRequest } as QueryDenomHashRequest; + message.trace = object.trace ?? ''; + return message; + }, +}; + +const baseQueryDenomHashResponse: object = { hash: '' }; + +export const QueryDenomHashResponse = { + encode(message: QueryDenomHashResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.hash !== '') { + writer.uint32(10).string(message.hash); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryDenomHashResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryDenomHashResponse } as QueryDenomHashResponse; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.hash = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryDenomHashResponse { + const message = { ...baseQueryDenomHashResponse } as QueryDenomHashResponse; + if (object.hash !== undefined && object.hash !== null) { + message.hash = String(object.hash); + } else { + message.hash = ''; + } + return message; + }, + + toJSON(message: QueryDenomHashResponse): unknown { + const obj: any = {}; + message.hash !== undefined && (obj.hash = message.hash); + return obj; + }, + + fromPartial(object: DeepPartial): QueryDenomHashResponse { + const message = { ...baseQueryDenomHashResponse } as QueryDenomHashResponse; + message.hash = object.hash ?? ''; + return message; + }, +}; + +const baseQueryEscrowAddressRequest: object = { portId: '', channelId: '' }; + +export const QueryEscrowAddressRequest = { + encode(message: QueryEscrowAddressRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.portId !== '') { + writer.uint32(10).string(message.portId); + } + if (message.channelId !== '') { + writer.uint32(18).string(message.channelId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryEscrowAddressRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryEscrowAddressRequest } as QueryEscrowAddressRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.portId = reader.string(); + break; + case 2: + message.channelId = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryEscrowAddressRequest { + const message = { ...baseQueryEscrowAddressRequest } as QueryEscrowAddressRequest; + if (object.portId !== undefined && object.portId !== null) { + message.portId = String(object.portId); + } else { + message.portId = ''; + } + if (object.channelId !== undefined && object.channelId !== null) { + message.channelId = String(object.channelId); + } else { + message.channelId = ''; + } + return message; + }, + + toJSON(message: QueryEscrowAddressRequest): unknown { + const obj: any = {}; + message.portId !== undefined && (obj.portId = message.portId); + message.channelId !== undefined && (obj.channelId = message.channelId); + return obj; + }, + + fromPartial(object: DeepPartial): QueryEscrowAddressRequest { + const message = { ...baseQueryEscrowAddressRequest } as QueryEscrowAddressRequest; + message.portId = object.portId ?? ''; + message.channelId = object.channelId ?? ''; + return message; + }, +}; + +const baseQueryEscrowAddressResponse: object = { escrowAddress: '' }; + +export const QueryEscrowAddressResponse = { + encode(message: QueryEscrowAddressResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.escrowAddress !== '') { + writer.uint32(10).string(message.escrowAddress); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryEscrowAddressResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryEscrowAddressResponse } as QueryEscrowAddressResponse; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.escrowAddress = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryEscrowAddressResponse { + const message = { ...baseQueryEscrowAddressResponse } as QueryEscrowAddressResponse; + if (object.escrowAddress !== undefined && object.escrowAddress !== null) { + message.escrowAddress = String(object.escrowAddress); + } else { + message.escrowAddress = ''; + } + return message; + }, + + toJSON(message: QueryEscrowAddressResponse): unknown { + const obj: any = {}; + message.escrowAddress !== undefined && (obj.escrowAddress = message.escrowAddress); + return obj; + }, + + fromPartial(object: DeepPartial): QueryEscrowAddressResponse { + const message = { ...baseQueryEscrowAddressResponse } as QueryEscrowAddressResponse; + message.escrowAddress = object.escrowAddress ?? ''; + return message; + }, +}; + /** Query provides defines the gRPC querier service. */ export interface Query { /** DenomTrace queries a denomination trace information. */ @@ -394,6 +643,10 @@ export interface Query { DenomTraces(request: QueryDenomTracesRequest): Promise; /** Params queries all parameters of the ibc-transfer module. */ Params(request: QueryParamsRequest): Promise; + /** DenomHash queries a denomination hash information. */ + DenomHash(request: QueryDenomHashRequest): Promise; + /** EscrowAddress returns the escrow address for a particular port and channel id. */ + EscrowAddress(request: QueryEscrowAddressRequest): Promise; } export class QueryClientImpl implements Query { @@ -403,6 +656,8 @@ export class QueryClientImpl implements Query { this.DenomTrace = this.DenomTrace.bind(this); this.DenomTraces = this.DenomTraces.bind(this); this.Params = this.Params.bind(this); + this.DenomHash = this.DenomHash.bind(this); + this.EscrowAddress = this.EscrowAddress.bind(this); } DenomTrace(request: QueryDenomTraceRequest): Promise { const data = QueryDenomTraceRequest.encode(request).finish(); @@ -421,6 +676,18 @@ export class QueryClientImpl implements Query { const promise = this.rpc.request('ibc.applications.transfer.v1.Query', 'Params', data); return promise.then((data) => QueryParamsResponse.decode(new _m0.Reader(data))); } + + DenomHash(request: QueryDenomHashRequest): Promise { + const data = QueryDenomHashRequest.encode(request).finish(); + const promise = this.rpc.request('ibc.applications.transfer.v1.Query', 'DenomHash', data); + return promise.then((data) => QueryDenomHashResponse.decode(new _m0.Reader(data))); + } + + EscrowAddress(request: QueryEscrowAddressRequest): Promise { + const data = QueryEscrowAddressRequest.encode(request).finish(); + const promise = this.rpc.request('ibc.applications.transfer.v1.Query', 'EscrowAddress', data); + return promise.then((data) => QueryEscrowAddressResponse.decode(new _m0.Reader(data))); + } } interface Rpc { diff --git a/src/codec/ibc/applications/transfer/v1/transfer.ts b/src/codec/ibc/applications/transfer/v1/transfer.ts index e74335f..85fb01a 100644 --- a/src/codec/ibc/applications/transfer/v1/transfer.ts +++ b/src/codec/ibc/applications/transfer/v1/transfer.ts @@ -4,22 +4,6 @@ import _m0 from 'protobufjs/minimal'; export const protobufPackage = 'ibc.applications.transfer.v1'; -/** - * FungibleTokenPacketData defines a struct for the packet payload - * See FungibleTokenPacketData spec: - * https://github.com/cosmos/ics/tree/master/spec/ics-020-fungible-token-transfer#data-structures - */ -export interface FungibleTokenPacketData { - /** the token denomination to be transferred */ - denom: string; - /** the token amount to be transferred */ - amount: Long; - /** the sender address */ - sender: string; - /** the recipient address on the destination chain */ - receiver: string; -} - /** * DenomTrace contains the base denomination for ICS20 fungible tokens and the * source tracing information path. @@ -53,100 +37,6 @@ export interface Params { receiveEnabled: boolean; } -const baseFungibleTokenPacketData: object = { denom: '', amount: Long.UZERO, sender: '', receiver: '' }; - -export const FungibleTokenPacketData = { - encode(message: FungibleTokenPacketData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.denom !== '') { - writer.uint32(10).string(message.denom); - } - if (!message.amount.isZero()) { - writer.uint32(16).uint64(message.amount); - } - if (message.sender !== '') { - writer.uint32(26).string(message.sender); - } - if (message.receiver !== '') { - writer.uint32(34).string(message.receiver); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): FungibleTokenPacketData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseFungibleTokenPacketData } as FungibleTokenPacketData; - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.denom = reader.string(); - break; - case 2: - message.amount = reader.uint64() as Long; - break; - case 3: - message.sender = reader.string(); - break; - case 4: - message.receiver = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - - fromJSON(object: any): FungibleTokenPacketData { - const message = { ...baseFungibleTokenPacketData } as FungibleTokenPacketData; - if (object.denom !== undefined && object.denom !== null) { - message.denom = String(object.denom); - } else { - message.denom = ''; - } - if (object.amount !== undefined && object.amount !== null) { - message.amount = Long.fromString(object.amount); - } else { - message.amount = Long.UZERO; - } - 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 = ''; - } - return message; - }, - - toJSON(message: FungibleTokenPacketData): unknown { - const obj: any = {}; - message.denom !== undefined && (obj.denom = message.denom); - message.amount !== undefined && (obj.amount = (message.amount || Long.UZERO).toString()); - message.sender !== undefined && (obj.sender = message.sender); - message.receiver !== undefined && (obj.receiver = message.receiver); - return obj; - }, - - fromPartial(object: DeepPartial): FungibleTokenPacketData { - const message = { ...baseFungibleTokenPacketData } as FungibleTokenPacketData; - message.denom = object.denom ?? ''; - if (object.amount !== undefined && object.amount !== null) { - message.amount = object.amount as Long; - } else { - message.amount = Long.UZERO; - } - message.sender = object.sender ?? ''; - message.receiver = object.receiver ?? ''; - return message; - }, -}; - const baseDenomTrace: object = { path: '', baseDenom: '' }; export const DenomTrace = { diff --git a/src/codec/ibc/applications/transfer/v1/tx.ts b/src/codec/ibc/applications/transfer/v1/tx.ts index 1f54da6..36003ff 100644 --- a/src/codec/ibc/applications/transfer/v1/tx.ts +++ b/src/codec/ibc/applications/transfer/v1/tx.ts @@ -9,7 +9,7 @@ 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 + * https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures */ export interface MsgTransfer { /** the port on which the packet will be sent */ @@ -28,7 +28,7 @@ export interface MsgTransfer { */ timeoutHeight?: Height; /** - * Timeout timestamp (in nanoseconds) relative to the current block timestamp. + * Timeout timestamp in absolute nanoseconds since unix epoch. * The timeout is disabled when set to 0. */ timeoutTimestamp: Long; diff --git a/src/codec/ibc/applications/transfer/v2/packet.ts b/src/codec/ibc/applications/transfer/v2/packet.ts new file mode 100644 index 0000000..609f8a6 --- /dev/null +++ b/src/codec/ibc/applications/transfer/v2/packet.ts @@ -0,0 +1,127 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; + +export const protobufPackage = 'ibc.applications.transfer.v2'; + +/** + * FungibleTokenPacketData defines a struct for the packet payload + * See FungibleTokenPacketData spec: + * https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures + */ +export interface FungibleTokenPacketData { + /** the token denomination to be transferred */ + denom: string; + /** the token amount to be transferred */ + amount: string; + /** the sender address */ + sender: string; + /** the recipient address on the destination chain */ + receiver: string; +} + +const baseFungibleTokenPacketData: object = { denom: '', amount: '', sender: '', receiver: '' }; + +export const FungibleTokenPacketData = { + encode(message: FungibleTokenPacketData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.denom !== '') { + writer.uint32(10).string(message.denom); + } + if (message.amount !== '') { + writer.uint32(18).string(message.amount); + } + if (message.sender !== '') { + writer.uint32(26).string(message.sender); + } + if (message.receiver !== '') { + writer.uint32(34).string(message.receiver); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): FungibleTokenPacketData { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseFungibleTokenPacketData } as FungibleTokenPacketData; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denom = reader.string(); + break; + case 2: + message.amount = reader.string(); + break; + case 3: + message.sender = reader.string(); + break; + case 4: + message.receiver = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): FungibleTokenPacketData { + const message = { ...baseFungibleTokenPacketData } as FungibleTokenPacketData; + if (object.denom !== undefined && object.denom !== null) { + message.denom = String(object.denom); + } else { + message.denom = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = String(object.amount); + } else { + message.amount = ''; + } + 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 = ''; + } + return message; + }, + + toJSON(message: FungibleTokenPacketData): unknown { + const obj: any = {}; + message.denom !== undefined && (obj.denom = message.denom); + message.amount !== undefined && (obj.amount = message.amount); + message.sender !== undefined && (obj.sender = message.sender); + message.receiver !== undefined && (obj.receiver = message.receiver); + return obj; + }, + + fromPartial(object: DeepPartial): FungibleTokenPacketData { + const message = { ...baseFungibleTokenPacketData } as FungibleTokenPacketData; + message.denom = object.denom ?? ''; + message.amount = object.amount ?? ''; + message.sender = object.sender ?? ''; + message.receiver = object.receiver ?? ''; + return message; + }, +}; + +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(); +} diff --git a/src/codec/ibc/core/channel/v1/channel.ts b/src/codec/ibc/core/channel/v1/channel.ts index 6296a67..e3c5361 100644 --- a/src/codec/ibc/core/channel/v1/channel.ts +++ b/src/codec/ibc/core/channel/v1/channel.ts @@ -216,7 +216,7 @@ export interface PacketState { * conflicts with other protobuf message formats used for acknowledgements. * The first byte of any message with this format will be the non-ASCII values * `0xaa` (result) or `0xb2` (error). Implemented as defined by ICS: - * https://github.com/cosmos/ics/tree/master/spec/ics-004-channel-and-packet-semantics#acknowledgement-envelope + * https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#acknowledgement-envelope */ export interface Acknowledgement { result: Uint8Array | undefined; diff --git a/src/codec/ibc/core/channel/v1/tx.ts b/src/codec/ibc/core/channel/v1/tx.ts index 1cfe8c8..149c7dc 100644 --- a/src/codec/ibc/core/channel/v1/tx.ts +++ b/src/codec/ibc/core/channel/v1/tx.ts @@ -6,6 +6,48 @@ import { Height } from '../../../../ibc/core/client/v1/client'; export const protobufPackage = 'ibc.core.channel.v1'; +/** ResponseResultType defines the possible outcomes of the execution of a message */ +export enum ResponseResultType { + /** RESPONSE_RESULT_TYPE_UNSPECIFIED - Default zero value enumeration */ + RESPONSE_RESULT_TYPE_UNSPECIFIED = 0, + /** RESPONSE_RESULT_TYPE_NOOP - The message did not call the IBC application callbacks (because, for example, the packet had already been relayed) */ + RESPONSE_RESULT_TYPE_NOOP = 1, + /** RESPONSE_RESULT_TYPE_SUCCESS - The message was executed successfully */ + RESPONSE_RESULT_TYPE_SUCCESS = 2, + UNRECOGNIZED = -1, +} + +export function responseResultTypeFromJSON(object: any): ResponseResultType { + switch (object) { + case 0: + case 'RESPONSE_RESULT_TYPE_UNSPECIFIED': + return ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED; + case 1: + case 'RESPONSE_RESULT_TYPE_NOOP': + return ResponseResultType.RESPONSE_RESULT_TYPE_NOOP; + case 2: + case 'RESPONSE_RESULT_TYPE_SUCCESS': + return ResponseResultType.RESPONSE_RESULT_TYPE_SUCCESS; + case -1: + case 'UNRECOGNIZED': + default: + return ResponseResultType.UNRECOGNIZED; + } +} + +export function responseResultTypeToJSON(object: ResponseResultType): string { + switch (object) { + case ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED: + return 'RESPONSE_RESULT_TYPE_UNSPECIFIED'; + case ResponseResultType.RESPONSE_RESULT_TYPE_NOOP: + return 'RESPONSE_RESULT_TYPE_NOOP'; + case ResponseResultType.RESPONSE_RESULT_TYPE_SUCCESS: + return 'RESPONSE_RESULT_TYPE_SUCCESS'; + default: + return 'UNKNOWN'; + } +} + /** * MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It * is called by a relayer on Chain A. @@ -17,11 +59,15 @@ export interface MsgChannelOpenInit { } /** MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. */ -export interface MsgChannelOpenInitResponse {} +export interface MsgChannelOpenInitResponse { + channelId: string; + version: string; +} /** * MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel - * on Chain B. + * on Chain B. The version field within the Channel field has been deprecated. Its + * value will be ignored by core IBC. */ export interface MsgChannelOpenTry { portId: string; @@ -30,6 +76,7 @@ export interface MsgChannelOpenTry { * the channel identifier of the previous channel in state INIT */ previousChannelId: string; + /** NOTE: the version field within the channel has been deprecated. Its value will be ignored by core IBC. */ channel?: Channel; counterpartyVersion: string; proofInit: Uint8Array; @@ -38,7 +85,9 @@ export interface MsgChannelOpenTry { } /** MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. */ -export interface MsgChannelOpenTryResponse {} +export interface MsgChannelOpenTryResponse { + version: string; +} /** * MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge @@ -115,7 +164,9 @@ export interface MsgRecvPacket { } /** MsgRecvPacketResponse defines the Msg/RecvPacket response type. */ -export interface MsgRecvPacketResponse {} +export interface MsgRecvPacketResponse { + result: ResponseResultType; +} /** MsgTimeout receives timed-out packet */ export interface MsgTimeout { @@ -127,7 +178,9 @@ export interface MsgTimeout { } /** MsgTimeoutResponse defines the Msg/Timeout response type. */ -export interface MsgTimeoutResponse {} +export interface MsgTimeoutResponse { + result: ResponseResultType; +} /** MsgTimeoutOnClose timed-out packet upon counterparty channel closure. */ export interface MsgTimeoutOnClose { @@ -140,7 +193,9 @@ export interface MsgTimeoutOnClose { } /** MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. */ -export interface MsgTimeoutOnCloseResponse {} +export interface MsgTimeoutOnCloseResponse { + result: ResponseResultType; +} /** MsgAcknowledgement receives incoming IBC acknowledgement */ export interface MsgAcknowledgement { @@ -152,7 +207,9 @@ export interface MsgAcknowledgement { } /** MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. */ -export interface MsgAcknowledgementResponse {} +export interface MsgAcknowledgementResponse { + result: ResponseResultType; +} const baseMsgChannelOpenInit: object = { portId: '', signer: '' }; @@ -235,10 +292,16 @@ export const MsgChannelOpenInit = { }, }; -const baseMsgChannelOpenInitResponse: object = {}; +const baseMsgChannelOpenInitResponse: object = { channelId: '', version: '' }; export const MsgChannelOpenInitResponse = { - encode(_: MsgChannelOpenInitResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + encode(message: MsgChannelOpenInitResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.channelId !== '') { + writer.uint32(10).string(message.channelId); + } + if (message.version !== '') { + writer.uint32(18).string(message.version); + } return writer; }, @@ -249,6 +312,12 @@ export const MsgChannelOpenInitResponse = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.channelId = reader.string(); + break; + case 2: + message.version = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -257,18 +326,32 @@ export const MsgChannelOpenInitResponse = { return message; }, - fromJSON(_: any): MsgChannelOpenInitResponse { + fromJSON(object: any): MsgChannelOpenInitResponse { const message = { ...baseMsgChannelOpenInitResponse } as MsgChannelOpenInitResponse; + if (object.channelId !== undefined && object.channelId !== null) { + message.channelId = String(object.channelId); + } else { + message.channelId = ''; + } + if (object.version !== undefined && object.version !== null) { + message.version = String(object.version); + } else { + message.version = ''; + } return message; }, - toJSON(_: MsgChannelOpenInitResponse): unknown { + toJSON(message: MsgChannelOpenInitResponse): unknown { const obj: any = {}; + message.channelId !== undefined && (obj.channelId = message.channelId); + message.version !== undefined && (obj.version = message.version); return obj; }, - fromPartial(_: DeepPartial): MsgChannelOpenInitResponse { + fromPartial(object: DeepPartial): MsgChannelOpenInitResponse { const message = { ...baseMsgChannelOpenInitResponse } as MsgChannelOpenInitResponse; + message.channelId = object.channelId ?? ''; + message.version = object.version ?? ''; return message; }, }; @@ -410,10 +493,13 @@ export const MsgChannelOpenTry = { }, }; -const baseMsgChannelOpenTryResponse: object = {}; +const baseMsgChannelOpenTryResponse: object = { version: '' }; export const MsgChannelOpenTryResponse = { - encode(_: MsgChannelOpenTryResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + encode(message: MsgChannelOpenTryResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.version !== '') { + writer.uint32(10).string(message.version); + } return writer; }, @@ -424,6 +510,9 @@ export const MsgChannelOpenTryResponse = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.version = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -432,18 +521,25 @@ export const MsgChannelOpenTryResponse = { return message; }, - fromJSON(_: any): MsgChannelOpenTryResponse { + fromJSON(object: any): MsgChannelOpenTryResponse { const message = { ...baseMsgChannelOpenTryResponse } as MsgChannelOpenTryResponse; + if (object.version !== undefined && object.version !== null) { + message.version = String(object.version); + } else { + message.version = ''; + } return message; }, - toJSON(_: MsgChannelOpenTryResponse): unknown { + toJSON(message: MsgChannelOpenTryResponse): unknown { const obj: any = {}; + message.version !== undefined && (obj.version = message.version); return obj; }, - fromPartial(_: DeepPartial): MsgChannelOpenTryResponse { + fromPartial(object: DeepPartial): MsgChannelOpenTryResponse { const message = { ...baseMsgChannelOpenTryResponse } as MsgChannelOpenTryResponse; + message.version = object.version ?? ''; return message; }, }; @@ -1122,10 +1218,13 @@ export const MsgRecvPacket = { }, }; -const baseMsgRecvPacketResponse: object = {}; +const baseMsgRecvPacketResponse: object = { result: 0 }; export const MsgRecvPacketResponse = { - encode(_: MsgRecvPacketResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + encode(message: MsgRecvPacketResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.result !== 0) { + writer.uint32(8).int32(message.result); + } return writer; }, @@ -1136,6 +1235,9 @@ export const MsgRecvPacketResponse = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.result = reader.int32() as any; + break; default: reader.skipType(tag & 7); break; @@ -1144,18 +1246,25 @@ export const MsgRecvPacketResponse = { return message; }, - fromJSON(_: any): MsgRecvPacketResponse { + fromJSON(object: any): MsgRecvPacketResponse { const message = { ...baseMsgRecvPacketResponse } as MsgRecvPacketResponse; + if (object.result !== undefined && object.result !== null) { + message.result = responseResultTypeFromJSON(object.result); + } else { + message.result = 0; + } return message; }, - toJSON(_: MsgRecvPacketResponse): unknown { + toJSON(message: MsgRecvPacketResponse): unknown { const obj: any = {}; + message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result)); return obj; }, - fromPartial(_: DeepPartial): MsgRecvPacketResponse { + fromPartial(object: DeepPartial): MsgRecvPacketResponse { const message = { ...baseMsgRecvPacketResponse } as MsgRecvPacketResponse; + message.result = object.result ?? 0; return message; }, }; @@ -1275,10 +1384,13 @@ export const MsgTimeout = { }, }; -const baseMsgTimeoutResponse: object = {}; +const baseMsgTimeoutResponse: object = { result: 0 }; export const MsgTimeoutResponse = { - encode(_: MsgTimeoutResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + encode(message: MsgTimeoutResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.result !== 0) { + writer.uint32(8).int32(message.result); + } return writer; }, @@ -1289,6 +1401,9 @@ export const MsgTimeoutResponse = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.result = reader.int32() as any; + break; default: reader.skipType(tag & 7); break; @@ -1297,18 +1412,25 @@ export const MsgTimeoutResponse = { return message; }, - fromJSON(_: any): MsgTimeoutResponse { + fromJSON(object: any): MsgTimeoutResponse { const message = { ...baseMsgTimeoutResponse } as MsgTimeoutResponse; + if (object.result !== undefined && object.result !== null) { + message.result = responseResultTypeFromJSON(object.result); + } else { + message.result = 0; + } return message; }, - toJSON(_: MsgTimeoutResponse): unknown { + toJSON(message: MsgTimeoutResponse): unknown { const obj: any = {}; + message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result)); return obj; }, - fromPartial(_: DeepPartial): MsgTimeoutResponse { + fromPartial(object: DeepPartial): MsgTimeoutResponse { const message = { ...baseMsgTimeoutResponse } as MsgTimeoutResponse; + message.result = object.result ?? 0; return message; }, }; @@ -1441,10 +1563,13 @@ export const MsgTimeoutOnClose = { }, }; -const baseMsgTimeoutOnCloseResponse: object = {}; +const baseMsgTimeoutOnCloseResponse: object = { result: 0 }; export const MsgTimeoutOnCloseResponse = { - encode(_: MsgTimeoutOnCloseResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + encode(message: MsgTimeoutOnCloseResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.result !== 0) { + writer.uint32(8).int32(message.result); + } return writer; }, @@ -1455,6 +1580,9 @@ export const MsgTimeoutOnCloseResponse = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.result = reader.int32() as any; + break; default: reader.skipType(tag & 7); break; @@ -1463,18 +1591,25 @@ export const MsgTimeoutOnCloseResponse = { return message; }, - fromJSON(_: any): MsgTimeoutOnCloseResponse { + fromJSON(object: any): MsgTimeoutOnCloseResponse { const message = { ...baseMsgTimeoutOnCloseResponse } as MsgTimeoutOnCloseResponse; + if (object.result !== undefined && object.result !== null) { + message.result = responseResultTypeFromJSON(object.result); + } else { + message.result = 0; + } return message; }, - toJSON(_: MsgTimeoutOnCloseResponse): unknown { + toJSON(message: MsgTimeoutOnCloseResponse): unknown { const obj: any = {}; + message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result)); return obj; }, - fromPartial(_: DeepPartial): MsgTimeoutOnCloseResponse { + fromPartial(object: DeepPartial): MsgTimeoutOnCloseResponse { const message = { ...baseMsgTimeoutOnCloseResponse } as MsgTimeoutOnCloseResponse; + message.result = object.result ?? 0; return message; }, }; @@ -1590,10 +1725,13 @@ export const MsgAcknowledgement = { }, }; -const baseMsgAcknowledgementResponse: object = {}; +const baseMsgAcknowledgementResponse: object = { result: 0 }; export const MsgAcknowledgementResponse = { - encode(_: MsgAcknowledgementResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + encode(message: MsgAcknowledgementResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.result !== 0) { + writer.uint32(8).int32(message.result); + } return writer; }, @@ -1604,6 +1742,9 @@ export const MsgAcknowledgementResponse = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.result = reader.int32() as any; + break; default: reader.skipType(tag & 7); break; @@ -1612,18 +1753,25 @@ export const MsgAcknowledgementResponse = { return message; }, - fromJSON(_: any): MsgAcknowledgementResponse { + fromJSON(object: any): MsgAcknowledgementResponse { const message = { ...baseMsgAcknowledgementResponse } as MsgAcknowledgementResponse; + if (object.result !== undefined && object.result !== null) { + message.result = responseResultTypeFromJSON(object.result); + } else { + message.result = 0; + } return message; }, - toJSON(_: MsgAcknowledgementResponse): unknown { + toJSON(message: MsgAcknowledgementResponse): unknown { const obj: any = {}; + message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result)); return obj; }, - fromPartial(_: DeepPartial): MsgAcknowledgementResponse { + fromPartial(object: DeepPartial): MsgAcknowledgementResponse { const message = { ...baseMsgAcknowledgementResponse } as MsgAcknowledgementResponse; + message.result = object.result ?? 0; return message; }, }; diff --git a/src/codec/ibc/core/client/v1/query.ts b/src/codec/ibc/core/client/v1/query.ts index 0ac9f84..6592fc9 100644 --- a/src/codec/ibc/core/client/v1/query.ts +++ b/src/codec/ibc/core/client/v1/query.ts @@ -104,6 +104,28 @@ export interface QueryConsensusStatesResponse { pagination?: PageResponse; } +/** + * QueryConsensusStateHeightsRequest is the request type for Query/ConsensusStateHeights + * RPC method. + */ +export interface QueryConsensusStateHeightsRequest { + /** client identifier */ + clientId: string; + /** pagination request */ + pagination?: PageRequest; +} + +/** + * QueryConsensusStateHeightsResponse is the response type for the + * Query/ConsensusStateHeights RPC method + */ +export interface QueryConsensusStateHeightsResponse { + /** consensus state heights */ + consensusStateHeights: Height[]; + /** pagination response */ + pagination?: PageResponse; +} + /** * QueryClientStatusRequest is the request type for the Query/ClientStatus RPC * method @@ -766,6 +788,153 @@ export const QueryConsensusStatesResponse = { }, }; +const baseQueryConsensusStateHeightsRequest: object = { clientId: '' }; + +export const QueryConsensusStateHeightsRequest = { + encode(message: QueryConsensusStateHeightsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.clientId !== '') { + writer.uint32(10).string(message.clientId); + } + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryConsensusStateHeightsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryConsensusStateHeightsRequest } as QueryConsensusStateHeightsRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; + case 2: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryConsensusStateHeightsRequest { + const message = { ...baseQueryConsensusStateHeightsRequest } as QueryConsensusStateHeightsRequest; + if (object.clientId !== undefined && object.clientId !== null) { + message.clientId = String(object.clientId); + } else { + message.clientId = ''; + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryConsensusStateHeightsRequest): unknown { + const obj: any = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); + message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryConsensusStateHeightsRequest { + const message = { ...baseQueryConsensusStateHeightsRequest } as QueryConsensusStateHeightsRequest; + message.clientId = object.clientId ?? ''; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + +const baseQueryConsensusStateHeightsResponse: object = {}; + +export const QueryConsensusStateHeightsResponse = { + encode(message: QueryConsensusStateHeightsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.consensusStateHeights) { + Height.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryConsensusStateHeightsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryConsensusStateHeightsResponse } as QueryConsensusStateHeightsResponse; + message.consensusStateHeights = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.consensusStateHeights.push(Height.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryConsensusStateHeightsResponse { + const message = { ...baseQueryConsensusStateHeightsResponse } as QueryConsensusStateHeightsResponse; + message.consensusStateHeights = []; + if (object.consensusStateHeights !== undefined && object.consensusStateHeights !== null) { + for (const e of object.consensusStateHeights) { + message.consensusStateHeights.push(Height.fromJSON(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryConsensusStateHeightsResponse): unknown { + const obj: any = {}; + if (message.consensusStateHeights) { + obj.consensusStateHeights = message.consensusStateHeights.map((e) => (e ? Height.toJSON(e) : undefined)); + } else { + obj.consensusStateHeights = []; + } + message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryConsensusStateHeightsResponse { + const message = { ...baseQueryConsensusStateHeightsResponse } as QueryConsensusStateHeightsResponse; + message.consensusStateHeights = []; + if (object.consensusStateHeights !== undefined && object.consensusStateHeights !== null) { + for (const e of object.consensusStateHeights) { + message.consensusStateHeights.push(Height.fromPartial(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + const baseQueryClientStatusRequest: object = { clientId: '' }; export const QueryClientStatusRequest = { @@ -1163,6 +1332,8 @@ export interface Query { * client. */ ConsensusStates(request: QueryConsensusStatesRequest): Promise; + /** ConsensusStateHeights queries the height of every consensus states associated with a given client. */ + ConsensusStateHeights(request: QueryConsensusStateHeightsRequest): Promise; /** Status queries the status of an IBC client. */ ClientStatus(request: QueryClientStatusRequest): Promise; /** ClientParams queries all parameters of the ibc client. */ @@ -1181,6 +1352,7 @@ export class QueryClientImpl implements Query { this.ClientStates = this.ClientStates.bind(this); this.ConsensusState = this.ConsensusState.bind(this); this.ConsensusStates = this.ConsensusStates.bind(this); + this.ConsensusStateHeights = this.ConsensusStateHeights.bind(this); this.ClientStatus = this.ClientStatus.bind(this); this.ClientParams = this.ClientParams.bind(this); this.UpgradedClientState = this.UpgradedClientState.bind(this); @@ -1210,6 +1382,12 @@ export class QueryClientImpl implements Query { return promise.then((data) => QueryConsensusStatesResponse.decode(new _m0.Reader(data))); } + ConsensusStateHeights(request: QueryConsensusStateHeightsRequest): Promise { + const data = QueryConsensusStateHeightsRequest.encode(request).finish(); + const promise = this.rpc.request('ibc.core.client.v1.Query', 'ConsensusStateHeights', data); + return promise.then((data) => QueryConsensusStateHeightsResponse.decode(new _m0.Reader(data))); + } + ClientStatus(request: QueryClientStatusRequest): Promise { const data = QueryClientStatusRequest.encode(request).finish(); const promise = this.rpc.request('ibc.core.client.v1.Query', 'ClientStatus', data); diff --git a/src/codec/ibc/core/commitment/v1/commitment.ts b/src/codec/ibc/core/commitment/v1/commitment.ts index df59007..af4619a 100644 --- a/src/codec/ibc/core/commitment/v1/commitment.ts +++ b/src/codec/ibc/core/commitment/v1/commitment.ts @@ -1,7 +1,7 @@ /* eslint-disable */ import Long from 'long'; import _m0 from 'protobufjs/minimal'; -import { CommitmentProof } from '../../../../confio/proofs'; +import { CommitmentProof } from '../../../../proofs'; export const protobufPackage = 'ibc.core.commitment.v1'; diff --git a/src/codec/ibc/lightclients/tendermint/v1/tendermint.ts b/src/codec/ibc/lightclients/tendermint/v1/tendermint.ts index 4d2f646..11cb47e 100644 --- a/src/codec/ibc/lightclients/tendermint/v1/tendermint.ts +++ b/src/codec/ibc/lightclients/tendermint/v1/tendermint.ts @@ -7,7 +7,7 @@ import { MerkleRoot } from '../../../../ibc/core/commitment/v1/commitment'; import { SignedHeader } from '../../../../tendermint/types/types'; import { ValidatorSet } from '../../../../tendermint/types/validator'; import { Timestamp } from '../../../../google/protobuf/timestamp'; -import { ProofSpec } from '../../../../confio/proofs'; +import { ProofSpec } from '../../../../proofs'; export const protobufPackage = 'ibc.lightclients.tendermint.v1'; @@ -44,13 +44,15 @@ export interface ClientState { */ upgradePath: string[]; /** - * This flag, when set to true, will allow governance to recover a client - * which has expired + * allow_update_after_expiry is deprecated + * + * @deprecated */ allowUpdateAfterExpiry: boolean; /** - * This flag, when set to true, will allow governance to unfreeze a client - * whose chain has experienced a misbehaviour event + * allow_update_after_misbehaviour is deprecated + * + * @deprecated */ allowUpdateAfterMisbehaviour: boolean; } diff --git a/src/codec/proofs.ts b/src/codec/proofs.ts new file mode 100644 index 0000000..a535a3f --- /dev/null +++ b/src/codec/proofs.ts @@ -0,0 +1,1586 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; + +export const protobufPackage = 'ics23'; + +export enum HashOp { + /** NO_HASH - NO_HASH is the default if no data passed. Note this is an illegal argument some places. */ + NO_HASH = 0, + SHA256 = 1, + SHA512 = 2, + KECCAK = 3, + RIPEMD160 = 4, + /** BITCOIN - ripemd160(sha256(x)) */ + BITCOIN = 5, + UNRECOGNIZED = -1, +} + +export function hashOpFromJSON(object: any): HashOp { + switch (object) { + case 0: + case 'NO_HASH': + return HashOp.NO_HASH; + case 1: + case 'SHA256': + return HashOp.SHA256; + case 2: + case 'SHA512': + return HashOp.SHA512; + case 3: + case 'KECCAK': + return HashOp.KECCAK; + case 4: + case 'RIPEMD160': + return HashOp.RIPEMD160; + case 5: + case 'BITCOIN': + return HashOp.BITCOIN; + case -1: + case 'UNRECOGNIZED': + default: + return HashOp.UNRECOGNIZED; + } +} + +export function hashOpToJSON(object: HashOp): string { + switch (object) { + case HashOp.NO_HASH: + return 'NO_HASH'; + case HashOp.SHA256: + return 'SHA256'; + case HashOp.SHA512: + return 'SHA512'; + case HashOp.KECCAK: + return 'KECCAK'; + case HashOp.RIPEMD160: + return 'RIPEMD160'; + case HashOp.BITCOIN: + return 'BITCOIN'; + default: + return 'UNKNOWN'; + } +} + +/** + * LengthOp defines how to process the key and value of the LeafOp + * to include length information. After encoding the length with the given + * algorithm, the length will be prepended to the key and value bytes. + * (Each one with it's own encoded length) + */ +export enum LengthOp { + /** NO_PREFIX - NO_PREFIX don't include any length info */ + NO_PREFIX = 0, + /** VAR_PROTO - VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */ + VAR_PROTO = 1, + /** VAR_RLP - VAR_RLP uses rlp int encoding of the length */ + VAR_RLP = 2, + /** FIXED32_BIG - FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */ + FIXED32_BIG = 3, + /** FIXED32_LITTLE - FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */ + FIXED32_LITTLE = 4, + /** FIXED64_BIG - FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */ + FIXED64_BIG = 5, + /** FIXED64_LITTLE - FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */ + FIXED64_LITTLE = 6, + /** REQUIRE_32_BYTES - REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) */ + REQUIRE_32_BYTES = 7, + /** REQUIRE_64_BYTES - REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */ + REQUIRE_64_BYTES = 8, + UNRECOGNIZED = -1, +} + +export function lengthOpFromJSON(object: any): LengthOp { + switch (object) { + case 0: + case 'NO_PREFIX': + return LengthOp.NO_PREFIX; + case 1: + case 'VAR_PROTO': + return LengthOp.VAR_PROTO; + case 2: + case 'VAR_RLP': + return LengthOp.VAR_RLP; + case 3: + case 'FIXED32_BIG': + return LengthOp.FIXED32_BIG; + case 4: + case 'FIXED32_LITTLE': + return LengthOp.FIXED32_LITTLE; + case 5: + case 'FIXED64_BIG': + return LengthOp.FIXED64_BIG; + case 6: + case 'FIXED64_LITTLE': + return LengthOp.FIXED64_LITTLE; + case 7: + case 'REQUIRE_32_BYTES': + return LengthOp.REQUIRE_32_BYTES; + case 8: + case 'REQUIRE_64_BYTES': + return LengthOp.REQUIRE_64_BYTES; + case -1: + case 'UNRECOGNIZED': + default: + return LengthOp.UNRECOGNIZED; + } +} + +export function lengthOpToJSON(object: LengthOp): string { + switch (object) { + case LengthOp.NO_PREFIX: + return 'NO_PREFIX'; + case LengthOp.VAR_PROTO: + return 'VAR_PROTO'; + case LengthOp.VAR_RLP: + return 'VAR_RLP'; + case LengthOp.FIXED32_BIG: + return 'FIXED32_BIG'; + case LengthOp.FIXED32_LITTLE: + return 'FIXED32_LITTLE'; + case LengthOp.FIXED64_BIG: + return 'FIXED64_BIG'; + case LengthOp.FIXED64_LITTLE: + return 'FIXED64_LITTLE'; + case LengthOp.REQUIRE_32_BYTES: + return 'REQUIRE_32_BYTES'; + case LengthOp.REQUIRE_64_BYTES: + return 'REQUIRE_64_BYTES'; + default: + return 'UNKNOWN'; + } +} + +/** + * ExistenceProof takes a key and a value and a set of steps to perform on it. + * The result of peforming all these steps will provide a "root hash", which can + * be compared to the value in a header. + * + * Since it is computationally infeasible to produce a hash collission for any of the used + * cryptographic hash functions, if someone can provide a series of operations to transform + * a given key and value into a root hash that matches some trusted root, these key and values + * must be in the referenced merkle tree. + * + * The only possible issue is maliablity in LeafOp, such as providing extra prefix data, + * which should be controlled by a spec. Eg. with lengthOp as NONE, + * prefix = FOO, key = BAR, value = CHOICE + * and + * prefix = F, key = OOBAR, value = CHOICE + * would produce the same value. + * + * With LengthOp this is tricker but not impossible. Which is why the "leafPrefixEqual" field + * in the ProofSpec is valuable to prevent this mutability. And why all trees should + * length-prefix the data before hashing it. + */ +export interface ExistenceProof { + key: Uint8Array; + value: Uint8Array; + leaf?: LeafOp; + path: InnerOp[]; +} + +/** + * NonExistenceProof takes a proof of two neighbors, one left of the desired key, + * one right of the desired key. If both proofs are valid AND they are neighbors, + * then there is no valid proof for the given key. + */ +export interface NonExistenceProof { + /** TODO: remove this as unnecessary??? we prove a range */ + key: Uint8Array; + left?: ExistenceProof; + right?: ExistenceProof; +} + +/** CommitmentProof is either an ExistenceProof or a NonExistenceProof, or a Batch of such messages */ +export interface CommitmentProof { + exist?: ExistenceProof | undefined; + nonexist?: NonExistenceProof | undefined; + batch?: BatchProof | undefined; + compressed?: CompressedBatchProof | undefined; +} + +/** + * LeafOp represents the raw key-value data we wish to prove, and + * must be flexible to represent the internal transformation from + * the original key-value pairs into the basis hash, for many existing + * merkle trees. + * + * key and value are passed in. So that the signature of this operation is: + * leafOp(key, value) -> output + * + * To process this, first prehash the keys and values if needed (ANY means no hash in this case): + * hkey = prehashKey(key) + * hvalue = prehashValue(value) + * + * Then combine the bytes, and hash it + * output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue) + */ +export interface LeafOp { + hash: HashOp; + prehashKey: HashOp; + prehashValue: HashOp; + length: LengthOp; + /** + * prefix is a fixed bytes that may optionally be included at the beginning to differentiate + * a leaf node from an inner node. + */ + prefix: Uint8Array; +} + +/** + * InnerOp represents a merkle-proof step that is not a leaf. + * It represents concatenating two children and hashing them to provide the next result. + * + * The result of the previous step is passed in, so the signature of this op is: + * innerOp(child) -> output + * + * The result of applying InnerOp should be: + * output = op.hash(op.prefix || child || op.suffix) + * + * where the || operator is concatenation of binary data, + * and child is the result of hashing all the tree below this step. + * + * Any special data, like prepending child with the length, or prepending the entire operation with + * some value to differentiate from leaf nodes, should be included in prefix and suffix. + * If either of prefix or suffix is empty, we just treat it as an empty string + */ +export interface InnerOp { + hash: HashOp; + prefix: Uint8Array; + suffix: Uint8Array; +} + +/** + * ProofSpec defines what the expected parameters are for a given proof type. + * This can be stored in the client and used to validate any incoming proofs. + * + * verify(ProofSpec, Proof) -> Proof | Error + * + * As demonstrated in tests, if we don't fix the algorithm used to calculate the + * LeafHash for a given tree, there are many possible key-value pairs that can + * generate a given hash (by interpretting the preimage differently). + * We need this for proper security, requires client knows a priori what + * tree format server uses. But not in code, rather a configuration object. + */ +export interface ProofSpec { + /** + * any field in the ExistenceProof must be the same as in this spec. + * except Prefix, which is just the first bytes of prefix (spec can be longer) + */ + leafSpec?: LeafOp; + innerSpec?: InnerSpec; + /** max_depth (if > 0) is the maximum number of InnerOps allowed (mainly for fixed-depth tries) */ + maxDepth: number; + /** min_depth (if > 0) is the minimum number of InnerOps allowed (mainly for fixed-depth tries) */ + minDepth: number; +} + +/** + * InnerSpec contains all store-specific structure info to determine if two proofs from a + * given store are neighbors. + * + * This enables: + * + * isLeftMost(spec: InnerSpec, op: InnerOp) + * isRightMost(spec: InnerSpec, op: InnerOp) + * isLeftNeighbor(spec: InnerSpec, left: InnerOp, right: InnerOp) + */ +export interface InnerSpec { + /** + * Child order is the ordering of the children node, must count from 0 + * iavl tree is [0, 1] (left then right) + * merk is [0, 2, 1] (left, right, here) + */ + childOrder: number[]; + childSize: number; + minPrefixLength: number; + maxPrefixLength: number; + /** empty child is the prehash image that is used when one child is nil (eg. 20 bytes of 0) */ + emptyChild: Uint8Array; + /** hash is the algorithm that must be used for each InnerOp */ + hash: HashOp; +} + +/** BatchProof is a group of multiple proof types than can be compressed */ +export interface BatchProof { + entries: BatchEntry[]; +} + +/** Use BatchEntry not CommitmentProof, to avoid recursion */ +export interface BatchEntry { + exist?: ExistenceProof | undefined; + nonexist?: NonExistenceProof | undefined; +} + +export interface CompressedBatchProof { + entries: CompressedBatchEntry[]; + lookupInners: InnerOp[]; +} + +/** Use BatchEntry not CommitmentProof, to avoid recursion */ +export interface CompressedBatchEntry { + exist?: CompressedExistenceProof | undefined; + nonexist?: CompressedNonExistenceProof | undefined; +} + +export interface CompressedExistenceProof { + key: Uint8Array; + value: Uint8Array; + leaf?: LeafOp; + /** these are indexes into the lookup_inners table in CompressedBatchProof */ + path: number[]; +} + +export interface CompressedNonExistenceProof { + /** TODO: remove this as unnecessary??? we prove a range */ + key: Uint8Array; + left?: CompressedExistenceProof; + right?: CompressedExistenceProof; +} + +const baseExistenceProof: object = {}; + +export const ExistenceProof = { + encode(message: ExistenceProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); + } + if (message.value.length !== 0) { + writer.uint32(18).bytes(message.value); + } + if (message.leaf !== undefined) { + LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim(); + } + for (const v of message.path) { + InnerOp.encode(v!, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ExistenceProof { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseExistenceProof } as ExistenceProof; + message.path = []; + message.key = new Uint8Array(); + message.value = new Uint8Array(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.bytes(); + break; + case 2: + message.value = reader.bytes(); + break; + case 3: + message.leaf = LeafOp.decode(reader, reader.uint32()); + break; + case 4: + message.path.push(InnerOp.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ExistenceProof { + const message = { ...baseExistenceProof } as ExistenceProof; + message.path = []; + message.key = new Uint8Array(); + message.value = new Uint8Array(); + if (object.key !== undefined && object.key !== null) { + message.key = bytesFromBase64(object.key); + } + if (object.value !== undefined && object.value !== null) { + message.value = bytesFromBase64(object.value); + } + if (object.leaf !== undefined && object.leaf !== null) { + message.leaf = LeafOp.fromJSON(object.leaf); + } else { + message.leaf = undefined; + } + if (object.path !== undefined && object.path !== null) { + for (const e of object.path) { + message.path.push(InnerOp.fromJSON(e)); + } + } + return message; + }, + + toJSON(message: ExistenceProof): unknown { + const obj: any = {}; + message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array())); + message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array())); + message.leaf !== undefined && (obj.leaf = message.leaf ? LeafOp.toJSON(message.leaf) : undefined); + if (message.path) { + obj.path = message.path.map((e) => (e ? InnerOp.toJSON(e) : undefined)); + } else { + obj.path = []; + } + return obj; + }, + + fromPartial(object: DeepPartial): ExistenceProof { + const message = { ...baseExistenceProof } as ExistenceProof; + message.key = object.key ?? new Uint8Array(); + message.value = object.value ?? new Uint8Array(); + if (object.leaf !== undefined && object.leaf !== null) { + message.leaf = LeafOp.fromPartial(object.leaf); + } else { + message.leaf = undefined; + } + message.path = []; + if (object.path !== undefined && object.path !== null) { + for (const e of object.path) { + message.path.push(InnerOp.fromPartial(e)); + } + } + return message; + }, +}; + +const baseNonExistenceProof: object = {}; + +export const NonExistenceProof = { + encode(message: NonExistenceProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); + } + if (message.left !== undefined) { + ExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim(); + } + if (message.right !== undefined) { + ExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): NonExistenceProof { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseNonExistenceProof } as NonExistenceProof; + message.key = new Uint8Array(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.bytes(); + break; + case 2: + message.left = ExistenceProof.decode(reader, reader.uint32()); + break; + case 3: + message.right = ExistenceProof.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): NonExistenceProof { + const message = { ...baseNonExistenceProof } as NonExistenceProof; + message.key = new Uint8Array(); + if (object.key !== undefined && object.key !== null) { + message.key = bytesFromBase64(object.key); + } + if (object.left !== undefined && object.left !== null) { + message.left = ExistenceProof.fromJSON(object.left); + } else { + message.left = undefined; + } + if (object.right !== undefined && object.right !== null) { + message.right = ExistenceProof.fromJSON(object.right); + } else { + message.right = undefined; + } + return message; + }, + + toJSON(message: NonExistenceProof): unknown { + const obj: any = {}; + message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array())); + message.left !== undefined && (obj.left = message.left ? ExistenceProof.toJSON(message.left) : undefined); + message.right !== undefined && (obj.right = message.right ? ExistenceProof.toJSON(message.right) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): NonExistenceProof { + const message = { ...baseNonExistenceProof } as NonExistenceProof; + message.key = object.key ?? new Uint8Array(); + if (object.left !== undefined && object.left !== null) { + message.left = ExistenceProof.fromPartial(object.left); + } else { + message.left = undefined; + } + if (object.right !== undefined && object.right !== null) { + message.right = ExistenceProof.fromPartial(object.right); + } else { + message.right = undefined; + } + return message; + }, +}; + +const baseCommitmentProof: object = {}; + +export const CommitmentProof = { + encode(message: CommitmentProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.exist !== undefined) { + ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim(); + } + if (message.nonexist !== undefined) { + NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim(); + } + if (message.batch !== undefined) { + BatchProof.encode(message.batch, writer.uint32(26).fork()).ldelim(); + } + if (message.compressed !== undefined) { + CompressedBatchProof.encode(message.compressed, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CommitmentProof { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseCommitmentProof } as CommitmentProof; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.exist = ExistenceProof.decode(reader, reader.uint32()); + break; + case 2: + message.nonexist = NonExistenceProof.decode(reader, reader.uint32()); + break; + case 3: + message.batch = BatchProof.decode(reader, reader.uint32()); + break; + case 4: + message.compressed = CompressedBatchProof.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CommitmentProof { + const message = { ...baseCommitmentProof } as CommitmentProof; + if (object.exist !== undefined && object.exist !== null) { + message.exist = ExistenceProof.fromJSON(object.exist); + } else { + message.exist = undefined; + } + if (object.nonexist !== undefined && object.nonexist !== null) { + message.nonexist = NonExistenceProof.fromJSON(object.nonexist); + } else { + message.nonexist = undefined; + } + if (object.batch !== undefined && object.batch !== null) { + message.batch = BatchProof.fromJSON(object.batch); + } else { + message.batch = undefined; + } + if (object.compressed !== undefined && object.compressed !== null) { + message.compressed = CompressedBatchProof.fromJSON(object.compressed); + } else { + message.compressed = undefined; + } + return message; + }, + + toJSON(message: CommitmentProof): unknown { + const obj: any = {}; + message.exist !== undefined && (obj.exist = message.exist ? ExistenceProof.toJSON(message.exist) : undefined); + message.nonexist !== undefined && (obj.nonexist = message.nonexist ? NonExistenceProof.toJSON(message.nonexist) : undefined); + message.batch !== undefined && (obj.batch = message.batch ? BatchProof.toJSON(message.batch) : undefined); + message.compressed !== undefined && (obj.compressed = message.compressed ? CompressedBatchProof.toJSON(message.compressed) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): CommitmentProof { + const message = { ...baseCommitmentProof } as CommitmentProof; + if (object.exist !== undefined && object.exist !== null) { + message.exist = ExistenceProof.fromPartial(object.exist); + } else { + message.exist = undefined; + } + if (object.nonexist !== undefined && object.nonexist !== null) { + message.nonexist = NonExistenceProof.fromPartial(object.nonexist); + } else { + message.nonexist = undefined; + } + if (object.batch !== undefined && object.batch !== null) { + message.batch = BatchProof.fromPartial(object.batch); + } else { + message.batch = undefined; + } + if (object.compressed !== undefined && object.compressed !== null) { + message.compressed = CompressedBatchProof.fromPartial(object.compressed); + } else { + message.compressed = undefined; + } + return message; + }, +}; + +const baseLeafOp: object = { hash: 0, prehashKey: 0, prehashValue: 0, length: 0 }; + +export const LeafOp = { + encode(message: LeafOp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.hash !== 0) { + writer.uint32(8).int32(message.hash); + } + if (message.prehashKey !== 0) { + writer.uint32(16).int32(message.prehashKey); + } + if (message.prehashValue !== 0) { + writer.uint32(24).int32(message.prehashValue); + } + if (message.length !== 0) { + writer.uint32(32).int32(message.length); + } + if (message.prefix.length !== 0) { + writer.uint32(42).bytes(message.prefix); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): LeafOp { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseLeafOp } as LeafOp; + message.prefix = new Uint8Array(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.hash = reader.int32() as any; + break; + case 2: + message.prehashKey = reader.int32() as any; + break; + case 3: + message.prehashValue = reader.int32() as any; + break; + case 4: + message.length = reader.int32() as any; + break; + case 5: + message.prefix = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): LeafOp { + const message = { ...baseLeafOp } as LeafOp; + message.prefix = new Uint8Array(); + if (object.hash !== undefined && object.hash !== null) { + message.hash = hashOpFromJSON(object.hash); + } else { + message.hash = 0; + } + if (object.prehashKey !== undefined && object.prehashKey !== null) { + message.prehashKey = hashOpFromJSON(object.prehashKey); + } else { + message.prehashKey = 0; + } + if (object.prehashValue !== undefined && object.prehashValue !== null) { + message.prehashValue = hashOpFromJSON(object.prehashValue); + } else { + message.prehashValue = 0; + } + if (object.length !== undefined && object.length !== null) { + message.length = lengthOpFromJSON(object.length); + } else { + message.length = 0; + } + if (object.prefix !== undefined && object.prefix !== null) { + message.prefix = bytesFromBase64(object.prefix); + } + return message; + }, + + toJSON(message: LeafOp): unknown { + const obj: any = {}; + message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash)); + message.prehashKey !== undefined && (obj.prehashKey = hashOpToJSON(message.prehashKey)); + message.prehashValue !== undefined && (obj.prehashValue = hashOpToJSON(message.prehashValue)); + message.length !== undefined && (obj.length = lengthOpToJSON(message.length)); + message.prefix !== undefined && (obj.prefix = base64FromBytes(message.prefix !== undefined ? message.prefix : new Uint8Array())); + return obj; + }, + + fromPartial(object: DeepPartial): LeafOp { + const message = { ...baseLeafOp } as LeafOp; + message.hash = object.hash ?? 0; + message.prehashKey = object.prehashKey ?? 0; + message.prehashValue = object.prehashValue ?? 0; + message.length = object.length ?? 0; + message.prefix = object.prefix ?? new Uint8Array(); + return message; + }, +}; + +const baseInnerOp: object = { hash: 0 }; + +export const InnerOp = { + encode(message: InnerOp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.hash !== 0) { + writer.uint32(8).int32(message.hash); + } + if (message.prefix.length !== 0) { + writer.uint32(18).bytes(message.prefix); + } + if (message.suffix.length !== 0) { + writer.uint32(26).bytes(message.suffix); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): InnerOp { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseInnerOp } as InnerOp; + message.prefix = new Uint8Array(); + message.suffix = new Uint8Array(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.hash = reader.int32() as any; + break; + case 2: + message.prefix = reader.bytes(); + break; + case 3: + message.suffix = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): InnerOp { + const message = { ...baseInnerOp } as InnerOp; + message.prefix = new Uint8Array(); + message.suffix = new Uint8Array(); + if (object.hash !== undefined && object.hash !== null) { + message.hash = hashOpFromJSON(object.hash); + } else { + message.hash = 0; + } + if (object.prefix !== undefined && object.prefix !== null) { + message.prefix = bytesFromBase64(object.prefix); + } + if (object.suffix !== undefined && object.suffix !== null) { + message.suffix = bytesFromBase64(object.suffix); + } + return message; + }, + + toJSON(message: InnerOp): unknown { + const obj: any = {}; + message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash)); + message.prefix !== undefined && (obj.prefix = base64FromBytes(message.prefix !== undefined ? message.prefix : new Uint8Array())); + message.suffix !== undefined && (obj.suffix = base64FromBytes(message.suffix !== undefined ? message.suffix : new Uint8Array())); + return obj; + }, + + fromPartial(object: DeepPartial): InnerOp { + const message = { ...baseInnerOp } as InnerOp; + message.hash = object.hash ?? 0; + message.prefix = object.prefix ?? new Uint8Array(); + message.suffix = object.suffix ?? new Uint8Array(); + return message; + }, +}; + +const baseProofSpec: object = { maxDepth: 0, minDepth: 0 }; + +export const ProofSpec = { + encode(message: ProofSpec, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.leafSpec !== undefined) { + LeafOp.encode(message.leafSpec, writer.uint32(10).fork()).ldelim(); + } + if (message.innerSpec !== undefined) { + InnerSpec.encode(message.innerSpec, writer.uint32(18).fork()).ldelim(); + } + if (message.maxDepth !== 0) { + writer.uint32(24).int32(message.maxDepth); + } + if (message.minDepth !== 0) { + writer.uint32(32).int32(message.minDepth); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ProofSpec { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseProofSpec } as ProofSpec; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.leafSpec = LeafOp.decode(reader, reader.uint32()); + break; + case 2: + message.innerSpec = InnerSpec.decode(reader, reader.uint32()); + break; + case 3: + message.maxDepth = reader.int32(); + break; + case 4: + message.minDepth = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ProofSpec { + const message = { ...baseProofSpec } as ProofSpec; + if (object.leafSpec !== undefined && object.leafSpec !== null) { + message.leafSpec = LeafOp.fromJSON(object.leafSpec); + } else { + message.leafSpec = undefined; + } + if (object.innerSpec !== undefined && object.innerSpec !== null) { + message.innerSpec = InnerSpec.fromJSON(object.innerSpec); + } else { + message.innerSpec = undefined; + } + if (object.maxDepth !== undefined && object.maxDepth !== null) { + message.maxDepth = Number(object.maxDepth); + } else { + message.maxDepth = 0; + } + if (object.minDepth !== undefined && object.minDepth !== null) { + message.minDepth = Number(object.minDepth); + } else { + message.minDepth = 0; + } + return message; + }, + + toJSON(message: ProofSpec): unknown { + const obj: any = {}; + message.leafSpec !== undefined && (obj.leafSpec = message.leafSpec ? LeafOp.toJSON(message.leafSpec) : undefined); + message.innerSpec !== undefined && (obj.innerSpec = message.innerSpec ? InnerSpec.toJSON(message.innerSpec) : undefined); + message.maxDepth !== undefined && (obj.maxDepth = message.maxDepth); + message.minDepth !== undefined && (obj.minDepth = message.minDepth); + return obj; + }, + + fromPartial(object: DeepPartial): ProofSpec { + const message = { ...baseProofSpec } as ProofSpec; + if (object.leafSpec !== undefined && object.leafSpec !== null) { + message.leafSpec = LeafOp.fromPartial(object.leafSpec); + } else { + message.leafSpec = undefined; + } + if (object.innerSpec !== undefined && object.innerSpec !== null) { + message.innerSpec = InnerSpec.fromPartial(object.innerSpec); + } else { + message.innerSpec = undefined; + } + message.maxDepth = object.maxDepth ?? 0; + message.minDepth = object.minDepth ?? 0; + return message; + }, +}; + +const baseInnerSpec: object = { childOrder: 0, childSize: 0, minPrefixLength: 0, maxPrefixLength: 0, hash: 0 }; + +export const InnerSpec = { + encode(message: InnerSpec, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + writer.uint32(10).fork(); + for (const v of message.childOrder) { + writer.int32(v); + } + writer.ldelim(); + if (message.childSize !== 0) { + writer.uint32(16).int32(message.childSize); + } + if (message.minPrefixLength !== 0) { + writer.uint32(24).int32(message.minPrefixLength); + } + if (message.maxPrefixLength !== 0) { + writer.uint32(32).int32(message.maxPrefixLength); + } + if (message.emptyChild.length !== 0) { + writer.uint32(42).bytes(message.emptyChild); + } + if (message.hash !== 0) { + writer.uint32(48).int32(message.hash); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): InnerSpec { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseInnerSpec } as InnerSpec; + message.childOrder = []; + message.emptyChild = new Uint8Array(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if ((tag & 7) === 2) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.childOrder.push(reader.int32()); + } + } else { + message.childOrder.push(reader.int32()); + } + break; + case 2: + message.childSize = reader.int32(); + break; + case 3: + message.minPrefixLength = reader.int32(); + break; + case 4: + message.maxPrefixLength = reader.int32(); + break; + case 5: + message.emptyChild = reader.bytes(); + break; + case 6: + message.hash = reader.int32() as any; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): InnerSpec { + const message = { ...baseInnerSpec } as InnerSpec; + message.childOrder = []; + message.emptyChild = new Uint8Array(); + if (object.childOrder !== undefined && object.childOrder !== null) { + for (const e of object.childOrder) { + message.childOrder.push(Number(e)); + } + } + if (object.childSize !== undefined && object.childSize !== null) { + message.childSize = Number(object.childSize); + } else { + message.childSize = 0; + } + if (object.minPrefixLength !== undefined && object.minPrefixLength !== null) { + message.minPrefixLength = Number(object.minPrefixLength); + } else { + message.minPrefixLength = 0; + } + if (object.maxPrefixLength !== undefined && object.maxPrefixLength !== null) { + message.maxPrefixLength = Number(object.maxPrefixLength); + } else { + message.maxPrefixLength = 0; + } + if (object.emptyChild !== undefined && object.emptyChild !== null) { + message.emptyChild = bytesFromBase64(object.emptyChild); + } + if (object.hash !== undefined && object.hash !== null) { + message.hash = hashOpFromJSON(object.hash); + } else { + message.hash = 0; + } + return message; + }, + + toJSON(message: InnerSpec): unknown { + const obj: any = {}; + if (message.childOrder) { + obj.childOrder = message.childOrder.map((e) => e); + } else { + obj.childOrder = []; + } + message.childSize !== undefined && (obj.childSize = message.childSize); + message.minPrefixLength !== undefined && (obj.minPrefixLength = message.minPrefixLength); + message.maxPrefixLength !== undefined && (obj.maxPrefixLength = message.maxPrefixLength); + message.emptyChild !== undefined && (obj.emptyChild = base64FromBytes(message.emptyChild !== undefined ? message.emptyChild : new Uint8Array())); + message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash)); + return obj; + }, + + fromPartial(object: DeepPartial): InnerSpec { + const message = { ...baseInnerSpec } as InnerSpec; + message.childOrder = []; + if (object.childOrder !== undefined && object.childOrder !== null) { + for (const e of object.childOrder) { + message.childOrder.push(e); + } + } + message.childSize = object.childSize ?? 0; + message.minPrefixLength = object.minPrefixLength ?? 0; + message.maxPrefixLength = object.maxPrefixLength ?? 0; + message.emptyChild = object.emptyChild ?? new Uint8Array(); + message.hash = object.hash ?? 0; + return message; + }, +}; + +const baseBatchProof: object = {}; + +export const BatchProof = { + encode(message: BatchProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.entries) { + BatchEntry.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BatchProof { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBatchProof } as BatchProof; + message.entries = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.entries.push(BatchEntry.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BatchProof { + const message = { ...baseBatchProof } as BatchProof; + message.entries = []; + if (object.entries !== undefined && object.entries !== null) { + for (const e of object.entries) { + message.entries.push(BatchEntry.fromJSON(e)); + } + } + return message; + }, + + toJSON(message: BatchProof): unknown { + const obj: any = {}; + if (message.entries) { + obj.entries = message.entries.map((e) => (e ? BatchEntry.toJSON(e) : undefined)); + } else { + obj.entries = []; + } + return obj; + }, + + fromPartial(object: DeepPartial): BatchProof { + const message = { ...baseBatchProof } as BatchProof; + message.entries = []; + if (object.entries !== undefined && object.entries !== null) { + for (const e of object.entries) { + message.entries.push(BatchEntry.fromPartial(e)); + } + } + return message; + }, +}; + +const baseBatchEntry: object = {}; + +export const BatchEntry = { + encode(message: BatchEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.exist !== undefined) { + ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim(); + } + if (message.nonexist !== undefined) { + NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BatchEntry { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBatchEntry } as BatchEntry; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.exist = ExistenceProof.decode(reader, reader.uint32()); + break; + case 2: + message.nonexist = NonExistenceProof.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BatchEntry { + const message = { ...baseBatchEntry } as BatchEntry; + if (object.exist !== undefined && object.exist !== null) { + message.exist = ExistenceProof.fromJSON(object.exist); + } else { + message.exist = undefined; + } + if (object.nonexist !== undefined && object.nonexist !== null) { + message.nonexist = NonExistenceProof.fromJSON(object.nonexist); + } else { + message.nonexist = undefined; + } + return message; + }, + + toJSON(message: BatchEntry): unknown { + const obj: any = {}; + message.exist !== undefined && (obj.exist = message.exist ? ExistenceProof.toJSON(message.exist) : undefined); + message.nonexist !== undefined && (obj.nonexist = message.nonexist ? NonExistenceProof.toJSON(message.nonexist) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): BatchEntry { + const message = { ...baseBatchEntry } as BatchEntry; + if (object.exist !== undefined && object.exist !== null) { + message.exist = ExistenceProof.fromPartial(object.exist); + } else { + message.exist = undefined; + } + if (object.nonexist !== undefined && object.nonexist !== null) { + message.nonexist = NonExistenceProof.fromPartial(object.nonexist); + } else { + message.nonexist = undefined; + } + return message; + }, +}; + +const baseCompressedBatchProof: object = {}; + +export const CompressedBatchProof = { + encode(message: CompressedBatchProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.entries) { + CompressedBatchEntry.encode(v!, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.lookupInners) { + InnerOp.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CompressedBatchProof { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseCompressedBatchProof } as CompressedBatchProof; + message.entries = []; + message.lookupInners = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.entries.push(CompressedBatchEntry.decode(reader, reader.uint32())); + break; + case 2: + message.lookupInners.push(InnerOp.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CompressedBatchProof { + const message = { ...baseCompressedBatchProof } as CompressedBatchProof; + message.entries = []; + message.lookupInners = []; + if (object.entries !== undefined && object.entries !== null) { + for (const e of object.entries) { + message.entries.push(CompressedBatchEntry.fromJSON(e)); + } + } + if (object.lookupInners !== undefined && object.lookupInners !== null) { + for (const e of object.lookupInners) { + message.lookupInners.push(InnerOp.fromJSON(e)); + } + } + return message; + }, + + toJSON(message: CompressedBatchProof): unknown { + const obj: any = {}; + if (message.entries) { + obj.entries = message.entries.map((e) => (e ? CompressedBatchEntry.toJSON(e) : undefined)); + } else { + obj.entries = []; + } + if (message.lookupInners) { + obj.lookupInners = message.lookupInners.map((e) => (e ? InnerOp.toJSON(e) : undefined)); + } else { + obj.lookupInners = []; + } + return obj; + }, + + fromPartial(object: DeepPartial): CompressedBatchProof { + const message = { ...baseCompressedBatchProof } as CompressedBatchProof; + message.entries = []; + if (object.entries !== undefined && object.entries !== null) { + for (const e of object.entries) { + message.entries.push(CompressedBatchEntry.fromPartial(e)); + } + } + message.lookupInners = []; + if (object.lookupInners !== undefined && object.lookupInners !== null) { + for (const e of object.lookupInners) { + message.lookupInners.push(InnerOp.fromPartial(e)); + } + } + return message; + }, +}; + +const baseCompressedBatchEntry: object = {}; + +export const CompressedBatchEntry = { + encode(message: CompressedBatchEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.exist !== undefined) { + CompressedExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim(); + } + if (message.nonexist !== undefined) { + CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CompressedBatchEntry { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseCompressedBatchEntry } as CompressedBatchEntry; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.exist = CompressedExistenceProof.decode(reader, reader.uint32()); + break; + case 2: + message.nonexist = CompressedNonExistenceProof.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CompressedBatchEntry { + const message = { ...baseCompressedBatchEntry } as CompressedBatchEntry; + if (object.exist !== undefined && object.exist !== null) { + message.exist = CompressedExistenceProof.fromJSON(object.exist); + } else { + message.exist = undefined; + } + if (object.nonexist !== undefined && object.nonexist !== null) { + message.nonexist = CompressedNonExistenceProof.fromJSON(object.nonexist); + } else { + message.nonexist = undefined; + } + return message; + }, + + toJSON(message: CompressedBatchEntry): unknown { + const obj: any = {}; + message.exist !== undefined && (obj.exist = message.exist ? CompressedExistenceProof.toJSON(message.exist) : undefined); + message.nonexist !== undefined && (obj.nonexist = message.nonexist ? CompressedNonExistenceProof.toJSON(message.nonexist) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): CompressedBatchEntry { + const message = { ...baseCompressedBatchEntry } as CompressedBatchEntry; + if (object.exist !== undefined && object.exist !== null) { + message.exist = CompressedExistenceProof.fromPartial(object.exist); + } else { + message.exist = undefined; + } + if (object.nonexist !== undefined && object.nonexist !== null) { + message.nonexist = CompressedNonExistenceProof.fromPartial(object.nonexist); + } else { + message.nonexist = undefined; + } + return message; + }, +}; + +const baseCompressedExistenceProof: object = { path: 0 }; + +export const CompressedExistenceProof = { + encode(message: CompressedExistenceProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); + } + if (message.value.length !== 0) { + writer.uint32(18).bytes(message.value); + } + if (message.leaf !== undefined) { + LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim(); + } + writer.uint32(34).fork(); + for (const v of message.path) { + writer.int32(v); + } + writer.ldelim(); + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CompressedExistenceProof { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseCompressedExistenceProof } as CompressedExistenceProof; + message.path = []; + message.key = new Uint8Array(); + message.value = new Uint8Array(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.bytes(); + break; + case 2: + message.value = reader.bytes(); + break; + case 3: + message.leaf = LeafOp.decode(reader, reader.uint32()); + break; + case 4: + if ((tag & 7) === 2) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.path.push(reader.int32()); + } + } else { + message.path.push(reader.int32()); + } + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CompressedExistenceProof { + const message = { ...baseCompressedExistenceProof } as CompressedExistenceProof; + message.path = []; + message.key = new Uint8Array(); + message.value = new Uint8Array(); + if (object.key !== undefined && object.key !== null) { + message.key = bytesFromBase64(object.key); + } + if (object.value !== undefined && object.value !== null) { + message.value = bytesFromBase64(object.value); + } + if (object.leaf !== undefined && object.leaf !== null) { + message.leaf = LeafOp.fromJSON(object.leaf); + } else { + message.leaf = undefined; + } + if (object.path !== undefined && object.path !== null) { + for (const e of object.path) { + message.path.push(Number(e)); + } + } + return message; + }, + + toJSON(message: CompressedExistenceProof): unknown { + const obj: any = {}; + message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array())); + message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array())); + message.leaf !== undefined && (obj.leaf = message.leaf ? LeafOp.toJSON(message.leaf) : undefined); + if (message.path) { + obj.path = message.path.map((e) => e); + } else { + obj.path = []; + } + return obj; + }, + + fromPartial(object: DeepPartial): CompressedExistenceProof { + const message = { ...baseCompressedExistenceProof } as CompressedExistenceProof; + message.key = object.key ?? new Uint8Array(); + message.value = object.value ?? new Uint8Array(); + if (object.leaf !== undefined && object.leaf !== null) { + message.leaf = LeafOp.fromPartial(object.leaf); + } else { + message.leaf = undefined; + } + message.path = []; + if (object.path !== undefined && object.path !== null) { + for (const e of object.path) { + message.path.push(e); + } + } + return message; + }, +}; + +const baseCompressedNonExistenceProof: object = {}; + +export const CompressedNonExistenceProof = { + encode(message: CompressedNonExistenceProof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); + } + if (message.left !== undefined) { + CompressedExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim(); + } + if (message.right !== undefined) { + CompressedExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CompressedNonExistenceProof { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseCompressedNonExistenceProof } as CompressedNonExistenceProof; + message.key = new Uint8Array(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.bytes(); + break; + case 2: + message.left = CompressedExistenceProof.decode(reader, reader.uint32()); + break; + case 3: + message.right = CompressedExistenceProof.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CompressedNonExistenceProof { + const message = { ...baseCompressedNonExistenceProof } as CompressedNonExistenceProof; + message.key = new Uint8Array(); + if (object.key !== undefined && object.key !== null) { + message.key = bytesFromBase64(object.key); + } + if (object.left !== undefined && object.left !== null) { + message.left = CompressedExistenceProof.fromJSON(object.left); + } else { + message.left = undefined; + } + if (object.right !== undefined && object.right !== null) { + message.right = CompressedExistenceProof.fromJSON(object.right); + } else { + message.right = undefined; + } + return message; + }, + + toJSON(message: CompressedNonExistenceProof): unknown { + const obj: any = {}; + message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array())); + message.left !== undefined && (obj.left = message.left ? CompressedExistenceProof.toJSON(message.left) : undefined); + message.right !== undefined && (obj.right = message.right ? CompressedExistenceProof.toJSON(message.right) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): CompressedNonExistenceProof { + const message = { ...baseCompressedNonExistenceProof } as CompressedNonExistenceProof; + message.key = object.key ?? new Uint8Array(); + if (object.left !== undefined && object.left !== null) { + message.left = CompressedExistenceProof.fromPartial(object.left); + } else { + message.left = undefined; + } + if (object.right !== undefined && object.right !== null) { + message.right = CompressedExistenceProof.fromPartial(object.right); + } else { + message.right = undefined; + } + return message; + }, +}; + +declare var self: any | undefined; +declare var window: any | undefined; +declare var global: any | undefined; +var globalThis: any = (() => { + if (typeof globalThis !== 'undefined') return globalThis; + if (typeof self !== 'undefined') return self; + if (typeof window !== 'undefined') return window; + if (typeof global !== 'undefined') return global; + throw 'Unable to locate global object'; +})(); + +const atob: (b64: string) => string = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, 'base64').toString('binary')); +function bytesFromBase64(b64: string): Uint8Array { + const bin = atob(b64); + const arr = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; ++i) { + arr[i] = bin.charCodeAt(i); + } + return arr; +} + +const btoa: (bin: string) => string = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, 'binary').toString('base64')); +function base64FromBytes(arr: Uint8Array): string { + const bin: string[] = []; + for (const byte of arr) { + bin.push(String.fromCharCode(byte)); + } + return btoa(bin.join('')); +} + +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(); +} diff --git a/src/extensions/beam.ts b/src/extensions/beam.ts index b6e22e5..9e5bc5c 100644 --- a/src/extensions/beam.ts +++ b/src/extensions/beam.ts @@ -1,14 +1,14 @@ import { QueryClient } from '@cosmjs/stargate'; import { assert } from '@cosmjs/utils'; -import { Beam } from '../codec/beam/beam'; +import { Beam, BeamState } from '../codec/beam/beam'; import { QueryClientImpl } from '../codec/beam/query'; import { createProtobufRpcClient } from './utils'; export interface BeamExtension { readonly beam: { readonly get: (id: string) => Promise; - readonly fetch: () => Promise; + readonly fetch: (state: BeamState) => Promise; }; } @@ -23,8 +23,8 @@ export const setupBeamExtension = (base: QueryClient): BeamExtension => { assert(beam); return beam; }, - fetch: async () => { - const { beams } = await queryService.Beams({}); + fetch: async (state: BeamState) => { + const { beams } = await queryService.Beams({ state }); assert(beams); return beams; }, diff --git a/src/messages/dfract/MsgDepositDfract.ts b/src/messages/dfract/MsgDepositDfract.ts index 143ea7f..8bb83d2 100644 --- a/src/messages/dfract/MsgDepositDfract.ts +++ b/src/messages/dfract/MsgDepositDfract.ts @@ -1,4 +1,4 @@ -import { MsgDepositDfract } from '../../codec/dfract/tx'; +import { MsgDeposit as MsgDepositDfract } from '../../codec/dfract/tx'; import { Message } from '../Message'; import { Coin } from '../../types'; diff --git a/src/registry/index.ts b/src/registry/index.ts index e7fe903..eae32e6 100644 --- a/src/registry/index.ts +++ b/src/registry/index.ts @@ -36,7 +36,7 @@ import { MsgConnectionOpenAck, MsgConnectionOpenConfirm, MsgConnectionOpenInit, import { MsgTransfer } from '../codec/ibc/applications/transfer/v1/tx'; import { MsgClaimBeam, MsgOpenBeam, MsgUpdateBeam } from '../codec/beam/tx'; -import { MsgDepositDfract } from '../codec/dfract/tx'; +import { MsgDeposit as MsgDepositDfract } from '../codec/dfract/tx'; const registryTypes: Iterable<[string, GeneratedType]> = [ ['/cosmos.auth.v1beta1.BaseAccount', BaseAccount], From dcb22af9f188d15b8d0ad0e6be0045ad8cb31f27 Mon Sep 17 00:00:00 2001 From: Thibault Jaillard Date: Tue, 20 Sep 2022 17:18:37 +0200 Subject: [PATCH 03/12] Bump version --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index cf1270b..d1bf0b0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@lum-network/sdk-javascript", - "version": "0.7.6", + "version": "0.8.0", "license": "Apache-2.0", "description": "Javascript SDK library for NodeJS and Web browsers to interact with the Lum Network.", "homepage": "https://github.com/lum-network/sdk-javascript#readme", @@ -35,7 +35,7 @@ "format": "prettier --write '**/*.{js,jsx,ts,tsx,css,json,md,html,yml}'", "bump": "npm version", "preget-proto": "rm -rf proto", - "get-proto": "COSMOS_REF=v0.45.7 IBC_REF=v3.2.0 LUM_REF=v1.2.0 sh ./scripts/get-proto.sh", + "get-proto": "COSMOS_REF=v0.45.7 IBC_REF=v3.2.0 LUM_REF=v1.2.1 sh ./scripts/get-proto.sh", "define-proto": "sh ./scripts/define-proto.sh", "postdefine-proto": "prettier --write \"src/codec/**/*.ts\"" }, From 38dd24d4b8c357fbe1fe49f46645d4c9ba07ccd0 Mon Sep 17 00:00:00 2001 From: Thibault Jaillard Date: Thu, 22 Sep 2022 11:13:52 +0200 Subject: [PATCH 04/12] Update proto --- src/codec/dfract/params.ts | 20 +- src/codec/dfract/proposal.ts | 62 +++--- src/codec/dfract/query.ts | 387 +++++++++++++++++++++++++++++++++++ 3 files changed, 437 insertions(+), 32 deletions(-) diff --git a/src/codec/dfract/params.ts b/src/codec/dfract/params.ts index 1690966..43ce07f 100644 --- a/src/codec/dfract/params.ts +++ b/src/codec/dfract/params.ts @@ -7,9 +7,10 @@ export const protobufPackage = 'lum.network.dfract'; export interface Params { depositDenom: string; mintDenom: string; + minDepositAmount: Long; } -const baseParams: object = { depositDenom: '', mintDenom: '' }; +const baseParams: object = { depositDenom: '', mintDenom: '', minDepositAmount: Long.ZERO }; export const Params = { encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { @@ -19,6 +20,9 @@ export const Params = { if (message.mintDenom !== '') { writer.uint32(18).string(message.mintDenom); } + if (!message.minDepositAmount.isZero()) { + writer.uint32(24).int64(message.minDepositAmount); + } return writer; }, @@ -35,6 +39,9 @@ export const Params = { case 2: message.mintDenom = reader.string(); break; + case 3: + message.minDepositAmount = reader.int64() as Long; + break; default: reader.skipType(tag & 7); break; @@ -55,6 +62,11 @@ export const Params = { } else { message.mintDenom = ''; } + if (object.minDepositAmount !== undefined && object.minDepositAmount !== null) { + message.minDepositAmount = Long.fromString(object.minDepositAmount); + } else { + message.minDepositAmount = Long.ZERO; + } return message; }, @@ -62,6 +74,7 @@ export const Params = { const obj: any = {}; message.depositDenom !== undefined && (obj.depositDenom = message.depositDenom); message.mintDenom !== undefined && (obj.mintDenom = message.mintDenom); + message.minDepositAmount !== undefined && (obj.minDepositAmount = (message.minDepositAmount || Long.ZERO).toString()); return obj; }, @@ -69,6 +82,11 @@ export const Params = { const message = { ...baseParams } as Params; message.depositDenom = object.depositDenom ?? ''; message.mintDenom = object.mintDenom ?? ''; + if (object.minDepositAmount !== undefined && object.minDepositAmount !== null) { + message.minDepositAmount = object.minDepositAmount as Long; + } else { + message.minDepositAmount = Long.ZERO; + } return message; }, }; diff --git a/src/codec/dfract/proposal.ts b/src/codec/dfract/proposal.ts index 1f61348..a8b0af2 100644 --- a/src/codec/dfract/proposal.ts +++ b/src/codec/dfract/proposal.ts @@ -4,36 +4,36 @@ import _m0 from 'protobufjs/minimal'; export const protobufPackage = 'lum.network.dfract'; -export interface SpendAndAdjustProposal { +export interface WithdrawAndMintProposal { title: string; description: string; - spendDestination: string; - mintRate: Long; + withdrawalAddress: string; + microMintRate: Long; } -const baseSpendAndAdjustProposal: object = { title: '', description: '', spendDestination: '', mintRate: Long.ZERO }; +const baseWithdrawAndMintProposal: object = { title: '', description: '', withdrawalAddress: '', microMintRate: Long.ZERO }; -export const SpendAndAdjustProposal = { - encode(message: SpendAndAdjustProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const WithdrawAndMintProposal = { + encode(message: WithdrawAndMintProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.title !== '') { writer.uint32(10).string(message.title); } if (message.description !== '') { writer.uint32(18).string(message.description); } - if (message.spendDestination !== '') { - writer.uint32(26).string(message.spendDestination); + if (message.withdrawalAddress !== '') { + writer.uint32(26).string(message.withdrawalAddress); } - if (!message.mintRate.isZero()) { - writer.uint32(32).int64(message.mintRate); + if (!message.microMintRate.isZero()) { + writer.uint32(32).int64(message.microMintRate); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): SpendAndAdjustProposal { + decode(input: _m0.Reader | Uint8Array, length?: number): WithdrawAndMintProposal { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseSpendAndAdjustProposal } as SpendAndAdjustProposal; + const message = { ...baseWithdrawAndMintProposal } as WithdrawAndMintProposal; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -44,10 +44,10 @@ export const SpendAndAdjustProposal = { message.description = reader.string(); break; case 3: - message.spendDestination = reader.string(); + message.withdrawalAddress = reader.string(); break; case 4: - message.mintRate = reader.int64() as Long; + message.microMintRate = reader.int64() as Long; break; default: reader.skipType(tag & 7); @@ -57,8 +57,8 @@ export const SpendAndAdjustProposal = { return message; }, - fromJSON(object: any): SpendAndAdjustProposal { - const message = { ...baseSpendAndAdjustProposal } as SpendAndAdjustProposal; + fromJSON(object: any): WithdrawAndMintProposal { + const message = { ...baseWithdrawAndMintProposal } as WithdrawAndMintProposal; if (object.title !== undefined && object.title !== null) { message.title = String(object.title); } else { @@ -69,37 +69,37 @@ export const SpendAndAdjustProposal = { } else { message.description = ''; } - if (object.spendDestination !== undefined && object.spendDestination !== null) { - message.spendDestination = String(object.spendDestination); + if (object.withdrawalAddress !== undefined && object.withdrawalAddress !== null) { + message.withdrawalAddress = String(object.withdrawalAddress); } else { - message.spendDestination = ''; + message.withdrawalAddress = ''; } - if (object.mintRate !== undefined && object.mintRate !== null) { - message.mintRate = Long.fromString(object.mintRate); + if (object.microMintRate !== undefined && object.microMintRate !== null) { + message.microMintRate = Long.fromString(object.microMintRate); } else { - message.mintRate = Long.ZERO; + message.microMintRate = Long.ZERO; } return message; }, - toJSON(message: SpendAndAdjustProposal): unknown { + toJSON(message: WithdrawAndMintProposal): unknown { const obj: any = {}; message.title !== undefined && (obj.title = message.title); message.description !== undefined && (obj.description = message.description); - message.spendDestination !== undefined && (obj.spendDestination = message.spendDestination); - message.mintRate !== undefined && (obj.mintRate = (message.mintRate || Long.ZERO).toString()); + message.withdrawalAddress !== undefined && (obj.withdrawalAddress = message.withdrawalAddress); + message.microMintRate !== undefined && (obj.microMintRate = (message.microMintRate || Long.ZERO).toString()); return obj; }, - fromPartial(object: DeepPartial): SpendAndAdjustProposal { - const message = { ...baseSpendAndAdjustProposal } as SpendAndAdjustProposal; + fromPartial(object: DeepPartial): WithdrawAndMintProposal { + const message = { ...baseWithdrawAndMintProposal } as WithdrawAndMintProposal; message.title = object.title ?? ''; message.description = object.description ?? ''; - message.spendDestination = object.spendDestination ?? ''; - if (object.mintRate !== undefined && object.mintRate !== null) { - message.mintRate = object.mintRate as Long; + message.withdrawalAddress = object.withdrawalAddress ?? ''; + if (object.microMintRate !== undefined && object.microMintRate !== null) { + message.microMintRate = object.microMintRate as Long; } else { - message.mintRate = Long.ZERO; + message.microMintRate = Long.ZERO; } return message; }, diff --git a/src/codec/dfract/query.ts b/src/codec/dfract/query.ts index fb7c896..fa3c9a0 100644 --- a/src/codec/dfract/query.ts +++ b/src/codec/dfract/query.ts @@ -1,9 +1,396 @@ /* eslint-disable */ import Long from 'long'; import _m0 from 'protobufjs/minimal'; +import { PageRequest, PageResponse } from '../cosmos/base/query/v1beta1/pagination'; +import { Deposit } from '../dfract/deposit'; export const protobufPackage = 'lum.network.dfract'; +export enum DepositsQueryType { + PENDING_WITHDRAWAL = 0, + PENDING_MINT = 1, + MINTED = 2, + UNRECOGNIZED = -1, +} + +export function depositsQueryTypeFromJSON(object: any): DepositsQueryType { + switch (object) { + case 0: + case 'PENDING_WITHDRAWAL': + return DepositsQueryType.PENDING_WITHDRAWAL; + case 1: + case 'PENDING_MINT': + return DepositsQueryType.PENDING_MINT; + case 2: + case 'MINTED': + return DepositsQueryType.MINTED; + case -1: + case 'UNRECOGNIZED': + default: + return DepositsQueryType.UNRECOGNIZED; + } +} + +export function depositsQueryTypeToJSON(object: DepositsQueryType): string { + switch (object) { + case DepositsQueryType.PENDING_WITHDRAWAL: + return 'PENDING_WITHDRAWAL'; + case DepositsQueryType.PENDING_MINT: + return 'PENDING_MINT'; + case DepositsQueryType.MINTED: + return 'MINTED'; + default: + return 'UNKNOWN'; + } +} + +export interface QueryGetDepositsForAddressRequest { + address: string; +} + +export interface QueryFetchDepositsRequest { + pagination?: PageRequest; + type: DepositsQueryType; +} + +export interface QueryGetDepositsForAddressResponse { + waitingProposalDeposits?: Deposit; + waitingMintDeposits?: Deposit; + mintedDeposits?: Deposit; +} + +export interface QueryFetchDepositsResponse { + deposits: Deposit[]; + pagination?: PageResponse; +} + +const baseQueryGetDepositsForAddressRequest: object = { address: '' }; + +export const QueryGetDepositsForAddressRequest = { + encode(message: QueryGetDepositsForAddressRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== '') { + writer.uint32(10).string(message.address); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryGetDepositsForAddressRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryGetDepositsForAddressRequest } as QueryGetDepositsForAddressRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryGetDepositsForAddressRequest { + const message = { ...baseQueryGetDepositsForAddressRequest } as QueryGetDepositsForAddressRequest; + if (object.address !== undefined && object.address !== null) { + message.address = String(object.address); + } else { + message.address = ''; + } + return message; + }, + + toJSON(message: QueryGetDepositsForAddressRequest): unknown { + const obj: any = {}; + message.address !== undefined && (obj.address = message.address); + return obj; + }, + + fromPartial(object: DeepPartial): QueryGetDepositsForAddressRequest { + const message = { ...baseQueryGetDepositsForAddressRequest } as QueryGetDepositsForAddressRequest; + message.address = object.address ?? ''; + return message; + }, +}; + +const baseQueryFetchDepositsRequest: object = { type: 0 }; + +export const QueryFetchDepositsRequest = { + encode(message: QueryFetchDepositsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); + } + if (message.type !== 0) { + writer.uint32(16).int32(message.type); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryFetchDepositsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryFetchDepositsRequest } as QueryFetchDepositsRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + case 2: + message.type = reader.int32() as any; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryFetchDepositsRequest { + const message = { ...baseQueryFetchDepositsRequest } as QueryFetchDepositsRequest; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + if (object.type !== undefined && object.type !== null) { + message.type = depositsQueryTypeFromJSON(object.type); + } else { + message.type = 0; + } + return message; + }, + + toJSON(message: QueryFetchDepositsRequest): unknown { + const obj: any = {}; + message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined); + message.type !== undefined && (obj.type = depositsQueryTypeToJSON(message.type)); + return obj; + }, + + fromPartial(object: DeepPartial): QueryFetchDepositsRequest { + const message = { ...baseQueryFetchDepositsRequest } as QueryFetchDepositsRequest; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + message.type = object.type ?? 0; + return message; + }, +}; + +const baseQueryGetDepositsForAddressResponse: object = {}; + +export const QueryGetDepositsForAddressResponse = { + encode(message: QueryGetDepositsForAddressResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.waitingProposalDeposits !== undefined) { + Deposit.encode(message.waitingProposalDeposits, writer.uint32(10).fork()).ldelim(); + } + if (message.waitingMintDeposits !== undefined) { + Deposit.encode(message.waitingMintDeposits, writer.uint32(18).fork()).ldelim(); + } + if (message.mintedDeposits !== undefined) { + Deposit.encode(message.mintedDeposits, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryGetDepositsForAddressResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryGetDepositsForAddressResponse } as QueryGetDepositsForAddressResponse; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.waitingProposalDeposits = Deposit.decode(reader, reader.uint32()); + break; + case 2: + message.waitingMintDeposits = Deposit.decode(reader, reader.uint32()); + break; + case 3: + message.mintedDeposits = Deposit.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryGetDepositsForAddressResponse { + const message = { ...baseQueryGetDepositsForAddressResponse } as QueryGetDepositsForAddressResponse; + if (object.waitingProposalDeposits !== undefined && object.waitingProposalDeposits !== null) { + message.waitingProposalDeposits = Deposit.fromJSON(object.waitingProposalDeposits); + } else { + message.waitingProposalDeposits = undefined; + } + if (object.waitingMintDeposits !== undefined && object.waitingMintDeposits !== null) { + message.waitingMintDeposits = Deposit.fromJSON(object.waitingMintDeposits); + } else { + message.waitingMintDeposits = undefined; + } + if (object.mintedDeposits !== undefined && object.mintedDeposits !== null) { + message.mintedDeposits = Deposit.fromJSON(object.mintedDeposits); + } else { + message.mintedDeposits = undefined; + } + return message; + }, + + toJSON(message: QueryGetDepositsForAddressResponse): unknown { + const obj: any = {}; + message.waitingProposalDeposits !== undefined && (obj.waitingProposalDeposits = message.waitingProposalDeposits ? Deposit.toJSON(message.waitingProposalDeposits) : undefined); + message.waitingMintDeposits !== undefined && (obj.waitingMintDeposits = message.waitingMintDeposits ? Deposit.toJSON(message.waitingMintDeposits) : undefined); + message.mintedDeposits !== undefined && (obj.mintedDeposits = message.mintedDeposits ? Deposit.toJSON(message.mintedDeposits) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryGetDepositsForAddressResponse { + const message = { ...baseQueryGetDepositsForAddressResponse } as QueryGetDepositsForAddressResponse; + if (object.waitingProposalDeposits !== undefined && object.waitingProposalDeposits !== null) { + message.waitingProposalDeposits = Deposit.fromPartial(object.waitingProposalDeposits); + } else { + message.waitingProposalDeposits = undefined; + } + if (object.waitingMintDeposits !== undefined && object.waitingMintDeposits !== null) { + message.waitingMintDeposits = Deposit.fromPartial(object.waitingMintDeposits); + } else { + message.waitingMintDeposits = undefined; + } + if (object.mintedDeposits !== undefined && object.mintedDeposits !== null) { + message.mintedDeposits = Deposit.fromPartial(object.mintedDeposits); + } else { + message.mintedDeposits = undefined; + } + return message; + }, +}; + +const baseQueryFetchDepositsResponse: object = {}; + +export const QueryFetchDepositsResponse = { + encode(message: QueryFetchDepositsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.deposits) { + Deposit.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryFetchDepositsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryFetchDepositsResponse } as QueryFetchDepositsResponse; + message.deposits = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.deposits.push(Deposit.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryFetchDepositsResponse { + const message = { ...baseQueryFetchDepositsResponse } as QueryFetchDepositsResponse; + message.deposits = []; + if (object.deposits !== undefined && object.deposits !== null) { + for (const e of object.deposits) { + message.deposits.push(Deposit.fromJSON(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryFetchDepositsResponse): unknown { + const obj: any = {}; + if (message.deposits) { + obj.deposits = message.deposits.map((e) => (e ? Deposit.toJSON(e) : undefined)); + } else { + obj.deposits = []; + } + message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryFetchDepositsResponse { + const message = { ...baseQueryFetchDepositsResponse } as QueryFetchDepositsResponse; + message.deposits = []; + if (object.deposits !== undefined && object.deposits !== null) { + for (const e of object.deposits) { + message.deposits.push(Deposit.fromPartial(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + +export interface Query { + GetDepositsForAddress(request: QueryGetDepositsForAddressRequest): Promise; + FetchDeposits(request: QueryFetchDepositsRequest): Promise; +} + +export class QueryClientImpl implements Query { + private readonly rpc: Rpc; + constructor(rpc: Rpc) { + this.rpc = rpc; + this.GetDepositsForAddress = this.GetDepositsForAddress.bind(this); + this.FetchDeposits = this.FetchDeposits.bind(this); + } + GetDepositsForAddress(request: QueryGetDepositsForAddressRequest): Promise { + const data = QueryGetDepositsForAddressRequest.encode(request).finish(); + const promise = this.rpc.request('lum.network.dfract.Query', 'GetDepositsForAddress', data); + return promise.then((data) => QueryGetDepositsForAddressResponse.decode(new _m0.Reader(data))); + } + + FetchDeposits(request: QueryFetchDepositsRequest): Promise { + const data = QueryFetchDepositsRequest.encode(request).finish(); + const promise = this.rpc.request('lum.network.dfract.Query', 'FetchDeposits', data); + return promise.then((data) => QueryFetchDepositsResponse.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(); From 87a6bca42f7356a3bcd977e7b657a37d21f885c1 Mon Sep 17 00:00:00 2001 From: Thibault Jaillard Date: Thu, 22 Sep 2022 11:17:26 +0200 Subject: [PATCH 05/12] Add createdAt into MsgDepositDfract --- src/messages/dfract/MsgDepositDfract.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/messages/dfract/MsgDepositDfract.ts b/src/messages/dfract/MsgDepositDfract.ts index 8bb83d2..6a8fa35 100644 --- a/src/messages/dfract/MsgDepositDfract.ts +++ b/src/messages/dfract/MsgDepositDfract.ts @@ -4,12 +4,13 @@ import { Coin } from '../../types'; export const MsgDepositDfractUrl = '/lum.network.dfract.MsgDepositDfract'; -export const BuildMsgDepositDfract = (depositorAddress: string, amount: Coin): Message => { +export const BuildMsgDepositDfract = (depositorAddress: string, amount: Coin, createdAt: Date): Message => { return { typeUrl: MsgDepositDfractUrl, value: { depositorAddress, amount, + createdAt, } as MsgDepositDfract, }; }; From 955dfae4cdf8938aba6bf6f35ebd3c2120c7b334 Mon Sep 17 00:00:00 2001 From: Thibault Jaillard Date: Thu, 22 Sep 2022 11:25:58 +0200 Subject: [PATCH 06/12] Update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d1bf0b0..b47336c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@lum-network/sdk-javascript", - "version": "0.8.0", + "version": "0.7.7", "license": "Apache-2.0", "description": "Javascript SDK library for NodeJS and Web browsers to interact with the Lum Network.", "homepage": "https://github.com/lum-network/sdk-javascript#readme", From 61ab413e00361dc49ff5759f6b0733cd661d80fa Mon Sep 17 00:00:00 2001 From: Thibault Jaillard Date: Thu, 22 Sep 2022 12:55:30 +0200 Subject: [PATCH 07/12] Add dfract extension --- docs/lib/modules/lummessages.md | 26 ++++ src/codec/dfract/query.ts | 223 ++++++++++++++++++++++++++++++++ src/extensions/dfract.ts | 47 +++++++ src/extensions/index.ts | 1 + src/messages/index.ts | 1 + 5 files changed, 298 insertions(+) create mode 100644 src/extensions/dfract.ts diff --git a/docs/lib/modules/lummessages.md b/docs/lib/modules/lummessages.md index 9bdfb6e..924d78a 100644 --- a/docs/lib/modules/lummessages.md +++ b/docs/lib/modules/lummessages.md @@ -24,6 +24,7 @@ - [MsgCreateValidatorUrl](LumMessages.md#msgcreatevalidatorurl) - [MsgCreateVestingAccountUrl](LumMessages.md#msgcreatevestingaccounturl) - [MsgDelegateUrl](LumMessages.md#msgdelegateurl) +- [MsgDepositDfractUrl](LumMessages.md#msgdepositdfracturl) - [MsgDepositUrl](LumMessages.md#msgdepositurl) - [MsgEditValidatorUrl](LumMessages.md#msgeditvalidatorurl) - [MsgExecUrl](LumMessages.md#msgexecurl) @@ -70,6 +71,7 @@ - [BuildMsgCreateVestingAccount](LumMessages.md#buildmsgcreatevestingaccount) - [BuildMsgDelegate](LumMessages.md#buildmsgdelegate) - [BuildMsgDeposit](LumMessages.md#buildmsgdeposit) +- [BuildMsgDepositDfract](LumMessages.md#buildmsgdepositdfract) - [BuildMsgEditValidator](LumMessages.md#buildmsgeditvalidator) - [BuildMsgExec](LumMessages.md#buildmsgexec) - [BuildMsgFundCommunityPool](LumMessages.md#buildmsgfundcommunitypool) @@ -194,6 +196,12 @@ ___ ___ +### MsgDepositDfractUrl + +• **MsgDepositDfractUrl**: ``"/lum.network.dfract.MsgDepositDfract"`` + +___ + ### MsgDepositUrl • **MsgDepositUrl**: ``"/cosmos.gov.v1beta1.MsgDeposit"`` @@ -695,6 +703,24 @@ ___ ___ +### BuildMsgDepositDfract + +▸ `Const` **BuildMsgDepositDfract**(`depositorAddress`, `amount`, `createdAt`): [`Message`](../interfaces/LumMessages.Message.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `depositorAddress` | `string` | +| `amount` | [`Coin`](../interfaces/LumTypes.Coin.md) | +| `createdAt` | `Date` | + +#### Returns + +[`Message`](../interfaces/LumMessages.Message.md) + +___ + ### BuildMsgEditValidator ▸ `Const` **BuildMsgEditValidator**(`validatorAddress`, `commissionRate`, `minSelfDelegation`, `description?`): [`Message`](../interfaces/LumMessages.Message.md) diff --git a/src/codec/dfract/query.ts b/src/codec/dfract/query.ts index fa3c9a0..987a27d 100644 --- a/src/codec/dfract/query.ts +++ b/src/codec/dfract/query.ts @@ -1,8 +1,10 @@ /* eslint-disable */ import Long from 'long'; import _m0 from 'protobufjs/minimal'; +import { Params } from '../dfract/params'; import { PageRequest, PageResponse } from '../cosmos/base/query/v1beta1/pagination'; import { Deposit } from '../dfract/deposit'; +import { Coin } from '../cosmos/base/v1beta1/coin'; export const protobufPackage = 'lum.network.dfract'; @@ -44,6 +46,18 @@ export function depositsQueryTypeToJSON(object: DepositsQueryType): string { } } +export interface QueryModuleAccountBalanceRequest {} + +export interface QueryModuleAccountBalanceResponse { + moduleAccountBalance: Coin[]; +} + +export interface QueryParamsRequest {} + +export interface QueryParamsResponse { + params?: Params; +} + export interface QueryGetDepositsForAddressRequest { address: string; } @@ -64,6 +78,199 @@ export interface QueryFetchDepositsResponse { pagination?: PageResponse; } +const baseQueryModuleAccountBalanceRequest: object = {}; + +export const QueryModuleAccountBalanceRequest = { + encode(_: QueryModuleAccountBalanceRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryModuleAccountBalanceRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryModuleAccountBalanceRequest } as QueryModuleAccountBalanceRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): QueryModuleAccountBalanceRequest { + const message = { ...baseQueryModuleAccountBalanceRequest } as QueryModuleAccountBalanceRequest; + return message; + }, + + toJSON(_: QueryModuleAccountBalanceRequest): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial(_: DeepPartial): QueryModuleAccountBalanceRequest { + const message = { ...baseQueryModuleAccountBalanceRequest } as QueryModuleAccountBalanceRequest; + return message; + }, +}; + +const baseQueryModuleAccountBalanceResponse: object = {}; + +export const QueryModuleAccountBalanceResponse = { + encode(message: QueryModuleAccountBalanceResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.moduleAccountBalance) { + Coin.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryModuleAccountBalanceResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryModuleAccountBalanceResponse } as QueryModuleAccountBalanceResponse; + message.moduleAccountBalance = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.moduleAccountBalance.push(Coin.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryModuleAccountBalanceResponse { + const message = { ...baseQueryModuleAccountBalanceResponse } as QueryModuleAccountBalanceResponse; + message.moduleAccountBalance = []; + if (object.moduleAccountBalance !== undefined && object.moduleAccountBalance !== null) { + for (const e of object.moduleAccountBalance) { + message.moduleAccountBalance.push(Coin.fromJSON(e)); + } + } + return message; + }, + + toJSON(message: QueryModuleAccountBalanceResponse): unknown { + const obj: any = {}; + if (message.moduleAccountBalance) { + obj.moduleAccountBalance = message.moduleAccountBalance.map((e) => (e ? Coin.toJSON(e) : undefined)); + } else { + obj.moduleAccountBalance = []; + } + return obj; + }, + + fromPartial(object: DeepPartial): QueryModuleAccountBalanceResponse { + const message = { ...baseQueryModuleAccountBalanceResponse } as QueryModuleAccountBalanceResponse; + message.moduleAccountBalance = []; + if (object.moduleAccountBalance !== undefined && object.moduleAccountBalance !== null) { + for (const e of object.moduleAccountBalance) { + message.moduleAccountBalance.push(Coin.fromPartial(e)); + } + } + return message; + }, +}; + +const baseQueryParamsRequest: object = {}; + +export const QueryParamsRequest = { + encode(_: QueryParamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryParamsRequest } as QueryParamsRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): QueryParamsRequest { + const message = { ...baseQueryParamsRequest } as QueryParamsRequest; + return message; + }, + + toJSON(_: QueryParamsRequest): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial(_: DeepPartial): QueryParamsRequest { + const message = { ...baseQueryParamsRequest } as QueryParamsRequest; + return message; + }, +}; + +const baseQueryParamsResponse: object = {}; + +export const QueryParamsResponse = { + encode(message: QueryParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.params !== undefined) { + Params.encode(message.params, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryParamsResponse } as QueryParamsResponse; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.params = Params.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryParamsResponse { + const message = { ...baseQueryParamsResponse } as QueryParamsResponse; + if (object.params !== undefined && object.params !== null) { + message.params = Params.fromJSON(object.params); + } else { + message.params = undefined; + } + return message; + }, + + toJSON(message: QueryParamsResponse): unknown { + const obj: any = {}; + message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryParamsResponse { + const message = { ...baseQueryParamsResponse } as QueryParamsResponse; + if (object.params !== undefined && object.params !== null) { + message.params = Params.fromPartial(object.params); + } else { + message.params = undefined; + } + return message; + }, +}; + const baseQueryGetDepositsForAddressRequest: object = { address: '' }; export const QueryGetDepositsForAddressRequest = { @@ -352,6 +559,8 @@ export const QueryFetchDepositsResponse = { }; export interface Query { + ModuleAccountBalance(request: QueryModuleAccountBalanceRequest): Promise; + Params(request: QueryParamsRequest): Promise; GetDepositsForAddress(request: QueryGetDepositsForAddressRequest): Promise; FetchDeposits(request: QueryFetchDepositsRequest): Promise; } @@ -360,9 +569,23 @@ export class QueryClientImpl implements Query { private readonly rpc: Rpc; constructor(rpc: Rpc) { this.rpc = rpc; + this.ModuleAccountBalance = this.ModuleAccountBalance.bind(this); + this.Params = this.Params.bind(this); this.GetDepositsForAddress = this.GetDepositsForAddress.bind(this); this.FetchDeposits = this.FetchDeposits.bind(this); } + ModuleAccountBalance(request: QueryModuleAccountBalanceRequest): Promise { + const data = QueryModuleAccountBalanceRequest.encode(request).finish(); + const promise = this.rpc.request('lum.network.dfract.Query', 'ModuleAccountBalance', data); + return promise.then((data) => QueryModuleAccountBalanceResponse.decode(new _m0.Reader(data))); + } + + Params(request: QueryParamsRequest): Promise { + const data = QueryParamsRequest.encode(request).finish(); + const promise = this.rpc.request('lum.network.dfract.Query', 'Params', data); + return promise.then((data) => QueryParamsResponse.decode(new _m0.Reader(data))); + } + GetDepositsForAddress(request: QueryGetDepositsForAddressRequest): Promise { const data = QueryGetDepositsForAddressRequest.encode(request).finish(); const promise = this.rpc.request('lum.network.dfract.Query', 'GetDepositsForAddress', data); diff --git a/src/extensions/dfract.ts b/src/extensions/dfract.ts new file mode 100644 index 0000000..ebafeb8 --- /dev/null +++ b/src/extensions/dfract.ts @@ -0,0 +1,47 @@ +import { QueryClient } from '@cosmjs/stargate'; +import { assert } from '@cosmjs/utils'; +import { createProtobufRpcClient } from './utils'; +import { DepositsQueryType, QueryClientImpl, QueryGetDepositsForAddressResponse } from '../codec/dfract/query'; +import { Deposit } from '../codec/dfract/deposit'; +import { Coin } from '../codec/cosmos/base/v1beta1/coin'; + +export interface DfractExtension { + readonly dfract: { + readonly fetchDeposits: (type: DepositsQueryType) => Promise; + readonly getDepositsForAddress: (address: string) => Promise; + readonly getAccountBalance: () => Promise; + }; +} + +export const setupDfractExtension = (base: QueryClient): DfractExtension => { + const rpc = createProtobufRpcClient(base); + const queryService = new QueryClientImpl(rpc); + + return { + dfract: { + fetchDeposits: async (type: DepositsQueryType) => { + const { deposits } = await queryService.FetchDeposits({ type }); + + assert(deposits); + + return deposits; + }, + + getDepositsForAddress: async (address: string) => { + const deposits = await queryService.GetDepositsForAddress({ address }); + + assert(deposits); + + return deposits; + }, + + getAccountBalance: async () => { + const { moduleAccountBalance } = await queryService.ModuleAccountBalance({}); + + assert(moduleAccountBalance); + + return moduleAccountBalance; + }, + }, + }; +}; diff --git a/src/extensions/index.ts b/src/extensions/index.ts index 021c8f8..514f082 100644 --- a/src/extensions/index.ts +++ b/src/extensions/index.ts @@ -8,3 +8,4 @@ export * from './ibc'; export * from './mint'; export * from './staking'; export * from './tx'; +export * from './dfract'; diff --git a/src/messages/index.ts b/src/messages/index.ts index 6696bab..00e0ef4 100644 --- a/src/messages/index.ts +++ b/src/messages/index.ts @@ -9,3 +9,4 @@ export * from './feegrant'; export * from './slashing'; export * from './vesting'; export * from './ibc'; +export * from './dfract'; From 1f26e504a03ec41faf44c5f9645acd6758d9b674 Mon Sep 17 00:00:00 2001 From: Thibault Jaillard Date: Thu, 22 Sep 2022 15:33:00 +0200 Subject: [PATCH 08/12] Add Dfract extension in client --- src/client/LumClient.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/client/LumClient.ts b/src/client/LumClient.ts index ffe2ed9..99f2615 100644 --- a/src/client/LumClient.ts +++ b/src/client/LumClient.ts @@ -9,6 +9,8 @@ import { setupBankExtension, BeamExtension, setupBeamExtension, + DfractExtension, + setupDfractExtension, DistributionExtension, setupDistributionExtension, GovExtension, @@ -35,6 +37,7 @@ export class LumClient { AuthzExtension & BankExtension & BeamExtension & + DfractExtension & DistributionExtension & GovExtension & IbcExtension & @@ -59,6 +62,7 @@ export class LumClient { setupAuthzExtension, setupBankExtension, setupBeamExtension, + setupDfractExtension, setupDistributionExtension, setupGovExtension, setupIbcExtension, From fedaa82959e79adc875e5627a18fcd402a93c0aa Mon Sep 17 00:00:00 2001 From: Thibault Jaillard Date: Thu, 22 Sep 2022 15:40:23 +0200 Subject: [PATCH 09/12] Update codec according to chain update --- docs/lib/classes/lumclient.md | 2 +- src/codec/dfract/params.ts | 36 +++++++++-------------------------- 2 files changed, 10 insertions(+), 28 deletions(-) diff --git a/docs/lib/classes/lumclient.md b/docs/lib/classes/lumclient.md index 54ce04f..18df2b5 100644 --- a/docs/lib/classes/lumclient.md +++ b/docs/lib/classes/lumclient.md @@ -56,7 +56,7 @@ ___ ### queryClient -• `Readonly` **queryClient**: `QueryClient` & `AuthExtension` & `AuthzExtension` & `BankExtension` & `BeamExtension` & `DistributionExtension` & `GovExtension` & `IbcExtension` & `MintExtension` & `StakingExtension` & `SlashingExtension` & `FeegrantExtension` & `AirdropExtension` & `TxExtension` +• `Readonly` **queryClient**: `QueryClient` & `AuthExtension` & `AuthzExtension` & `BankExtension` & `BeamExtension` & `DfractExtension` & `DistributionExtension` & `GovExtension` & `IbcExtension` & `MintExtension` & `StakingExtension` & `SlashingExtension` & `FeegrantExtension` & `AirdropExtension` & `TxExtension` ___ diff --git a/src/codec/dfract/params.ts b/src/codec/dfract/params.ts index 43ce07f..103de76 100644 --- a/src/codec/dfract/params.ts +++ b/src/codec/dfract/params.ts @@ -6,22 +6,18 @@ export const protobufPackage = 'lum.network.dfract'; export interface Params { depositDenom: string; - mintDenom: string; - minDepositAmount: Long; + minDepositAmount: number; } -const baseParams: object = { depositDenom: '', mintDenom: '', minDepositAmount: Long.ZERO }; +const baseParams: object = { depositDenom: '', minDepositAmount: 0 }; export const Params = { encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.depositDenom !== '') { writer.uint32(10).string(message.depositDenom); } - if (message.mintDenom !== '') { - writer.uint32(18).string(message.mintDenom); - } - if (!message.minDepositAmount.isZero()) { - writer.uint32(24).int64(message.minDepositAmount); + if (message.minDepositAmount !== 0) { + writer.uint32(16).uint32(message.minDepositAmount); } return writer; }, @@ -37,10 +33,7 @@ export const Params = { message.depositDenom = reader.string(); break; case 2: - message.mintDenom = reader.string(); - break; - case 3: - message.minDepositAmount = reader.int64() as Long; + message.minDepositAmount = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -57,15 +50,10 @@ export const Params = { } else { message.depositDenom = ''; } - if (object.mintDenom !== undefined && object.mintDenom !== null) { - message.mintDenom = String(object.mintDenom); - } else { - message.mintDenom = ''; - } if (object.minDepositAmount !== undefined && object.minDepositAmount !== null) { - message.minDepositAmount = Long.fromString(object.minDepositAmount); + message.minDepositAmount = Number(object.minDepositAmount); } else { - message.minDepositAmount = Long.ZERO; + message.minDepositAmount = 0; } return message; }, @@ -73,20 +61,14 @@ export const Params = { toJSON(message: Params): unknown { const obj: any = {}; message.depositDenom !== undefined && (obj.depositDenom = message.depositDenom); - message.mintDenom !== undefined && (obj.mintDenom = message.mintDenom); - message.minDepositAmount !== undefined && (obj.minDepositAmount = (message.minDepositAmount || Long.ZERO).toString()); + message.minDepositAmount !== undefined && (obj.minDepositAmount = message.minDepositAmount); return obj; }, fromPartial(object: DeepPartial): Params { const message = { ...baseParams } as Params; message.depositDenom = object.depositDenom ?? ''; - message.mintDenom = object.mintDenom ?? ''; - if (object.minDepositAmount !== undefined && object.minDepositAmount !== null) { - message.minDepositAmount = object.minDepositAmount as Long; - } else { - message.minDepositAmount = Long.ZERO; - } + message.minDepositAmount = object.minDepositAmount ?? 0; return message; }, }; From c300cd24109ee45ce3024b3457b620de2d47a397 Mon Sep 17 00:00:00 2001 From: Thibault Jaillard Date: Thu, 22 Sep 2022 17:41:11 +0200 Subject: [PATCH 10/12] Register new Dfract message to amino registry --- docs/lib/modules/lummessages.md | 3 +- package.json | 16 +- src/messages/dfract/MsgDepositDfract.ts | 3 +- src/registry/aminoTypes.ts | 33 ++++ src/registry/index.ts | 3 +- yarn.lock | 249 +++++++++++------------- 6 files changed, 158 insertions(+), 149 deletions(-) create mode 100644 src/registry/aminoTypes.ts diff --git a/docs/lib/modules/lummessages.md b/docs/lib/modules/lummessages.md index 924d78a..5430b5a 100644 --- a/docs/lib/modules/lummessages.md +++ b/docs/lib/modules/lummessages.md @@ -705,7 +705,7 @@ ___ ### BuildMsgDepositDfract -▸ `Const` **BuildMsgDepositDfract**(`depositorAddress`, `amount`, `createdAt`): [`Message`](../interfaces/LumMessages.Message.md) +▸ `Const` **BuildMsgDepositDfract**(`depositorAddress`, `amount`): [`Message`](../interfaces/LumMessages.Message.md) #### Parameters @@ -713,7 +713,6 @@ ___ | :------ | :------ | | `depositorAddress` | `string` | | `amount` | [`Coin`](../interfaces/LumTypes.Coin.md) | -| `createdAt` | `Date` | #### Returns diff --git a/package.json b/package.json index b47336c..9f25361 100644 --- a/package.json +++ b/package.json @@ -40,14 +40,14 @@ "postdefine-proto": "prettier --write \"src/codec/**/*.ts\"" }, "dependencies": { - "@cosmjs/amino": "^0.26.5", - "@cosmjs/crypto": "^0.26.5", - "@cosmjs/encoding": "^0.26.5", - "@cosmjs/math": "^0.26.5", - "@cosmjs/proto-signing": "^0.26.5", - "@cosmjs/stargate": "^0.26.5", - "@cosmjs/tendermint-rpc": "^0.26.5", - "@cosmjs/utils": "^0.26.5", + "@cosmjs/amino": "^0.26.8", + "@cosmjs/crypto": "^0.26.8", + "@cosmjs/encoding": "^0.26.8", + "@cosmjs/math": "^0.26.8", + "@cosmjs/proto-signing": "^0.26.8", + "@cosmjs/stargate": "^0.26.8", + "@cosmjs/tendermint-rpc": "^0.26.8", + "@cosmjs/utils": "^0.26.8", "@ledgerhq/hw-app-cosmos": "^6.11.2", "@ledgerhq/hw-transport": "^6.11.2", "@types/crypto-js": "^4.0.2", diff --git a/src/messages/dfract/MsgDepositDfract.ts b/src/messages/dfract/MsgDepositDfract.ts index 6a8fa35..8bb83d2 100644 --- a/src/messages/dfract/MsgDepositDfract.ts +++ b/src/messages/dfract/MsgDepositDfract.ts @@ -4,13 +4,12 @@ import { Coin } from '../../types'; export const MsgDepositDfractUrl = '/lum.network.dfract.MsgDepositDfract'; -export const BuildMsgDepositDfract = (depositorAddress: string, amount: Coin, createdAt: Date): Message => { +export const BuildMsgDepositDfract = (depositorAddress: string, amount: Coin): Message => { return { typeUrl: MsgDepositDfractUrl, value: { depositorAddress, amount, - createdAt, } as MsgDepositDfract, }; }; diff --git a/src/registry/aminoTypes.ts b/src/registry/aminoTypes.ts new file mode 100644 index 0000000..8e40db3 --- /dev/null +++ b/src/registry/aminoTypes.ts @@ -0,0 +1,33 @@ +import { AminoConverter } from '@cosmjs/stargate'; +import { MsgDeposit as MsgDepositDfract } from '../codec/dfract/tx'; +import { AminoMsg, Coin } from '@cosmjs/amino'; + +export interface AminoMsgDepositDfract extends AminoMsg { + readonly type: 'lum-network/MsgDepositDfract'; + readonly value: { + readonly depositor_address: string; + readonly amount?: Coin; + }; +} + +export function isAminoMsgSend(msg: AminoMsg): msg is AminoMsgDepositDfract { + return msg.type === 'lum-network/MsgDepositDfract'; +} + +export const createAdditionalAminoTypes = (): Record => { + return { + // DFract + + '/lum.network.dfract.MsgDepositDfract': { + aminoType: 'lum-network/MsgDepositDfract', + toAmino: ({ depositorAddress, amount }: MsgDepositDfract): AminoMsgDepositDfract['value'] => ({ + depositor_address: depositorAddress, + amount, + }), + fromAmino: ({ depositor_address, amount }: AminoMsgDepositDfract['value']): MsgDepositDfract => ({ + depositorAddress: depositor_address, + amount, + }), + }, + }; +}; diff --git a/src/registry/index.ts b/src/registry/index.ts index eae32e6..41d7b7c 100644 --- a/src/registry/index.ts +++ b/src/registry/index.ts @@ -1,5 +1,6 @@ import { Registry, GeneratedType } from '@cosmjs/proto-signing'; import { AminoTypes } from '@cosmjs/stargate'; +import { createAdditionalAminoTypes } from './aminoTypes'; import { Tx } from '../codec/cosmos/tx/v1beta1/tx'; import { PubKey } from '../codec/cosmos/crypto/secp256k1/keys'; @@ -111,5 +112,5 @@ class ExtendedRegistry extends Registry { }; } -export const LumAminoRegistry = new AminoTypes(); +export const LumAminoRegistry = new AminoTypes(createAdditionalAminoTypes()); export const LumRegistry = new ExtendedRegistry(registryTypes); diff --git a/yarn.lock b/yarn.lock index 3127e36..f35b04e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1182,132 +1182,129 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@confio/ics23@^0.6.3": - version "0.6.5" - resolved "https://registry.yarnpkg.com/@confio/ics23/-/ics23-0.6.5.tgz#9c21a61089d4c3c2429875a69d6d9cd8c87512aa" - integrity sha512-1GdPMsaP/l8JSF4P4HWFLBhdcxHcJT8lS0nknBYNSZ1XrJOsJKUy6EkOwd9Pa1qJkXzY2gyNv7MdHR+AIwSTAg== +"@confio/ics23@^0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@confio/ics23/-/ics23-0.6.8.tgz#2a6b4f1f2b7b20a35d9a0745bb5a446e72930b3d" + integrity sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w== dependencies: - js-sha512 "^0.8.0" + "@noble/hashes" "^1.0.0" protobufjs "^6.8.8" - ripemd160 "^2.0.2" - sha.js "^2.4.11" - -"@cosmjs/amino@0.26.5", "@cosmjs/amino@^0.26.5": - version "0.26.5" - resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.26.5.tgz#69db28610577a2cb647f0bfc1d2226e865d50455" - integrity sha512-RFf9P1eb7O60JEWaZ5jbQA0wVbwU4SiBJINEjZkhkB1vUrAxCkfSHBZdJrVg8+IIRSWxPUUVr8PMuIyWlORV3A== - dependencies: - "@cosmjs/crypto" "0.26.5" - "@cosmjs/encoding" "0.26.5" - "@cosmjs/math" "0.26.5" - "@cosmjs/utils" "0.26.5" - -"@cosmjs/crypto@0.26.5", "@cosmjs/crypto@^0.26.5": - version "0.26.5" - resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.26.5.tgz#84c1193ec4a2296ea6c06655521944f9fe91af5f" - integrity sha512-ab7+qR/gdRi/DIdOLrjyimRdyD/2K/JdpRaFY1bl6Drr3ktVjDQrGsv53THvHONy33yCwD+YS+328ayQRv/pQA== - dependencies: - "@cosmjs/encoding" "0.26.5" - "@cosmjs/math" "0.26.5" - "@cosmjs/utils" "0.26.5" - bip39 "^3.0.2" - bn.js "^4.11.8" + +"@cosmjs/amino@0.26.8", "@cosmjs/amino@^0.26.8": + version "0.26.8" + resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.26.8.tgz#d4cecfd4c3286e868282e60c3cd007a742e20e3f" + integrity sha512-cf25tg0X6FdqqLJ8gbvFJ5SRyz29oDVM21b1kVOspGzOEEs2J4bWjTBEnLK6g/BuQ5ODIfTV3JwDLIVU+eTsgw== + dependencies: + "@cosmjs/crypto" "0.26.8" + "@cosmjs/encoding" "0.26.8" + "@cosmjs/math" "0.26.8" + "@cosmjs/utils" "0.26.8" + +"@cosmjs/crypto@0.26.8", "@cosmjs/crypto@^0.26.8": + version "0.26.8" + resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.26.8.tgz#005d696cbac1e04fc78e9c2f10e1d5c1fa3b8a03" + integrity sha512-ykZWgRHuZjizQnIwG7mj6D0Jip406Z6VZLH9bs1RdNOugeX6kp/I3EYEsEO694bQPvggwNZqRT84ovqjsj2KwQ== + dependencies: + "@cosmjs/encoding" "0.26.8" + "@cosmjs/math" "0.26.8" + "@cosmjs/utils" "0.26.8" + "@noble/hashes" "^1" + bn.js "^5.2.0" elliptic "^6.5.3" - js-sha3 "^0.8.0" libsodium-wrappers "^0.7.6" - ripemd160 "^2.0.2" - sha.js "^2.4.11" -"@cosmjs/encoding@0.26.5", "@cosmjs/encoding@^0.26.5": - version "0.26.5" - resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.26.5.tgz#29ccaa647c28d4bffd5f0f46dde0eedf7e4745b4" - integrity sha512-lkw2mLvDZJqVCOZCBqdMzoGUtC4CN7c4+WMCGKDej3TpC0khsv7KZ1eFcsnN6EuZwHyGH67uyyjrs5x0ah9rYg== +"@cosmjs/encoding@0.26.8", "@cosmjs/encoding@^0.26.8": + version "0.26.8" + resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.26.8.tgz#2a1d4e689bd69d5b9eaa2f93d8c25623faddddee" + integrity sha512-rsqdeCHPmSXSjwE6pzbsx/drxIZKPiIxza4hYsGCaVsxrFZmgOFNmvWgtuIOIEXPS/ZoyST9XU9aMpkaYzLEVQ== dependencies: base64-js "^1.3.0" bech32 "^1.1.4" readonly-date "^1.0.0" -"@cosmjs/json-rpc@0.26.5": - version "0.26.5" - resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.26.5.tgz#c7c35d7ec6ab537f37dd24cd90f838f80d18c8f9" - integrity sha512-SFGm5MlY54v3I26hXThwVteh91U+/DKS+KGqFL5lPLHZ2EHxggASqhKMiTJBMJVUDWvnmv1ikjFndkWNhpTPNw== +"@cosmjs/json-rpc@0.26.8": + version "0.26.8" + resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.26.8.tgz#ca1d502174ae9d1207445291f64b44a8735bddef" + integrity sha512-aTEP4kDhR3F04bYluRNOf9Hk8Eyz3L9p5P1EVJ1qhOCHaRZikSUQS9XNdZG3yryLbFTQS1b8MY9quBqrtU6UWQ== dependencies: - "@cosmjs/stream" "0.26.5" + "@cosmjs/stream" "0.26.8" xstream "^11.14.0" -"@cosmjs/math@0.26.5", "@cosmjs/math@^0.26.5": - version "0.26.5" - resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.26.5.tgz#48900f5a0b5522586315435b43f611812eb0ea26" - integrity sha512-1G7NgLJ35g4jUupvyu7Igtgu/fj2NmgpOofpNk1JqIwMXrm3Tx7lOWbxJq8Wrjj2EoH7FNytSO1dXNGeK15UJw== +"@cosmjs/math@0.26.8", "@cosmjs/math@^0.26.8": + version "0.26.8" + resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.26.8.tgz#29d7fc8df96a0da25f8b110482d510af93505b0d" + integrity sha512-AfooIaqhOks5xPDc4kDEXje/90iPm2STu+0YWvDStEEib2xxPTtXU3OuK+KpJ3CCFfQwbKCrzEIzJWCYmTs7mw== dependencies: - bn.js "^4.11.8" + bn.js "^5.2.0" -"@cosmjs/proto-signing@0.26.5", "@cosmjs/proto-signing@^0.26.5": - version "0.26.5" - resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.26.5.tgz#5a5029976c696c2d57c48b5d6867808b2b474bb2" - integrity sha512-F94Uh+PX9nF5zGzUHMdEGgys+YCOudaWQehiHBfOjbHUIv0khufcRXs3l9/5dKzizz9ouQ5DHQAiWq/nYKZKqA== +"@cosmjs/proto-signing@0.26.8", "@cosmjs/proto-signing@^0.26.8": + version "0.26.8" + resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.26.8.tgz#7d645da76d448fd5c9fdb7b4380732b2c8e11daa" + integrity sha512-wgbOblUyv9qpMCoVCa0FDs28/OjA39is3/LgOZStBdVmtHEjsWGHIhqF8WR0rrjRGhio/e6sOLySU3fWMUVqag== dependencies: - "@cosmjs/amino" "0.26.5" - "@cosmjs/crypto" "0.26.5" - "@cosmjs/math" "0.26.5" - cosmjs-types "^0.2.0" + "@cosmjs/amino" "0.26.8" + "@cosmjs/crypto" "0.26.8" + "@cosmjs/encoding" "0.26.8" + "@cosmjs/math" "0.26.8" + "@cosmjs/utils" "0.26.8" + cosmjs-types "^0.4.0" long "^4.0.0" - protobufjs "~6.10.2" -"@cosmjs/socket@0.26.5": - version "0.26.5" - resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.26.5.tgz#c71e0fa1329ca8e412cc13c1a1e2eb96c0d53a9e" - integrity sha512-kBpXw9wuNHkO1AGuKgDA4/DOA+jZ6Lt0GVJVJIJ6bfjGbsewsNVocktAiH+1dGb47xXg2oH7OwGJL+B/PB3qPQ== +"@cosmjs/socket@0.26.8": + version "0.26.8" + resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.26.8.tgz#d407a57e0df4f8f9c4a5f53346c84a89ab16d3ea" + integrity sha512-Yv+6aFyfnsrFiLzWPK7rABGajGIlNvlcxAeVWtKFMCVKXr0hYRe0DdzsLgW18tm4L7ezoJBQhXIJLYwpYuKZAw== dependencies: - "@cosmjs/stream" "0.26.5" + "@cosmjs/stream" "0.26.8" isomorphic-ws "^4.0.1" ws "^7" xstream "^11.14.0" -"@cosmjs/stargate@^0.26.5": - version "0.26.5" - resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.26.5.tgz#0c0df8cabd9486a8816cc72dc50dad724d9e37df" - integrity sha512-rnRptbn01zXAa29272XZgxvH6zemPAvlE9/qGouRXpUm3ilHU+PscAq2k1pD17qtOKWRBLY2+x4feXYHwJg9VA== - dependencies: - "@confio/ics23" "^0.6.3" - "@cosmjs/amino" "0.26.5" - "@cosmjs/encoding" "0.26.5" - "@cosmjs/math" "0.26.5" - "@cosmjs/proto-signing" "0.26.5" - "@cosmjs/stream" "0.26.5" - "@cosmjs/tendermint-rpc" "0.26.5" - "@cosmjs/utils" "0.26.5" - cosmjs-types "^0.2.0" +"@cosmjs/stargate@^0.26.8": + version "0.26.8" + resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.26.8.tgz#8399da4af856a2c38dc44f8764df214fef4177da" + integrity sha512-/epKiDo1PTSJ6+Q3udxl1ZM14BvHVA445PSSGRnEHkFTeQqon9sjGhCw1eCCIIxvt2kYOM9Wpxei0+vuMVQdfg== + dependencies: + "@confio/ics23" "^0.6.8" + "@cosmjs/amino" "0.26.8" + "@cosmjs/encoding" "0.26.8" + "@cosmjs/math" "0.26.8" + "@cosmjs/proto-signing" "0.26.8" + "@cosmjs/stream" "0.26.8" + "@cosmjs/tendermint-rpc" "0.26.8" + "@cosmjs/utils" "0.26.8" + cosmjs-types "^0.4.0" long "^4.0.0" - protobufjs "~6.10.2" + protobufjs "~6.11.3" xstream "^11.14.0" -"@cosmjs/stream@0.26.5": - version "0.26.5" - resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.26.5.tgz#600383cb494d5e29148eb2a4615c002298c4d9b5" - integrity sha512-CIr/8bkRlLl36LAtbapsKxA7cMVhmPPWTihAcXgBXik1FM/0XCVNETPTQ64HX47eNQuP5AhWwaMoO553Sf9T2w== +"@cosmjs/stream@0.26.8": + version "0.26.8" + resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.26.8.tgz#11989ac5d5f7181d1654881b1df1f1086b6b946c" + integrity sha512-MWfgjoe9l4292JJx7CYBgVkClQXJHvQcOYBLi9qjYCTixBL+OjmtCNs+XcjsL8tPCG+XkPh8tHagOghNIb3vWw== dependencies: xstream "^11.14.0" -"@cosmjs/tendermint-rpc@0.26.5", "@cosmjs/tendermint-rpc@^0.26.5": - version "0.26.5" - resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.26.5.tgz#31502f64b7c61455ad70a38dd146e7c96608072d" - integrity sha512-bBcFgpTHEP15m8n/bG3cx/LO110sScpEvYvurZDewfy7MW8WETF6sYZaPCGfVDGWde1EPjFLwKKxQ1Da/XoK0A== - dependencies: - "@cosmjs/crypto" "0.26.5" - "@cosmjs/encoding" "0.26.5" - "@cosmjs/json-rpc" "0.26.5" - "@cosmjs/math" "0.26.5" - "@cosmjs/socket" "0.26.5" - "@cosmjs/stream" "0.26.5" +"@cosmjs/tendermint-rpc@0.26.8", "@cosmjs/tendermint-rpc@^0.26.8": + version "0.26.8" + resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.26.8.tgz#39ecb621d6745fcc203db031313606a32a6babd4" + integrity sha512-L1Zvc/bg/toB9iCu2VFlC//LNadOTmK+/LEw6HqYJ7pRbSH0vhr1GzV4hEjjp/8VgMm2D+XiZUPFIR+m2V4/dw== + dependencies: + "@cosmjs/crypto" "0.26.8" + "@cosmjs/encoding" "0.26.8" + "@cosmjs/json-rpc" "0.26.8" + "@cosmjs/math" "0.26.8" + "@cosmjs/socket" "0.26.8" + "@cosmjs/stream" "0.26.8" + "@cosmjs/utils" "0.26.8" axios "^0.21.2" readonly-date "^1.0.0" xstream "^11.14.0" -"@cosmjs/utils@0.26.5", "@cosmjs/utils@^0.26.5": - version "0.26.5" - resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.26.5.tgz#54d73c85c6127e3c439d25bee6983fca8fa700c1" - integrity sha512-VB4Z7lEIXA36q0RON15KexzEosToUtdDyMv7UXSBHSl4mLG/fIZgBIpBEYsaPZ1kh43xyINeKQJiGCp2z5rI+g== +"@cosmjs/utils@0.26.8", "@cosmjs/utils@^0.26.8": + version "0.26.8" + resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.26.8.tgz#73c3f65ff212b8cff5e628c782000e9e5f2ae22f" + integrity sha512-fG7y9qUPkpCJFCK9m7qioffhACTgWNQTNpO1D7Q9AVr5V7LZJdaWRcnskSzPwAyjQkK3pkC5GuRNvNdn8kWzMg== "@eslint/eslintrc@^0.4.3": version "0.4.3" @@ -1602,6 +1599,11 @@ resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== +"@noble/hashes@^1", "@noble/hashes@^1.0.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" + integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1822,16 +1824,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.4.tgz#a12f0ee7847cf17a97f6fdf1093cb7a9af23cca4" integrity sha512-KDazLNYAGIuJugdbULwFZULF9qQ13yNWEBFnfVpqlpgAAo6H/qnM9RjBgh0A0kmHf3XxAKLdN5mTIng9iUvVLA== -"@types/node@11.11.6": - version "11.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" - integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== - -"@types/node@^13.7.0": - version "13.13.52" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" - integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== - "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -2250,16 +2242,6 @@ bip32-path@^0.4.2: resolved "https://registry.yarnpkg.com/bip32-path/-/bip32-path-0.4.2.tgz#5db0416ad6822712f077836e2557b8697c0c7c99" integrity sha1-XbBBataCJxLwd4NuJVe4aXwMfJk= -bip39@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" - integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== - dependencies: - "@types/node" "11.11.6" - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - bl@^4.0.3: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -2269,7 +2251,7 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.8, bn.js@^4.11.9: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -2279,6 +2261,11 @@ bn.js@^5.0.0, bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== +bn.js@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + boxen@^5.0.0: version "5.1.2" resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" @@ -2682,10 +2669,10 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmjs-types@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.2.0.tgz#0c3041ed1d54e1b73486c5bf01c8bd1f44449020" - integrity sha512-9/jBr7kxfHg8HCNzUi9hxutU2GldrScXXSjfTZWuZHlFJmn5sJDXlvxSWhpeWIorHRxN8CtxDPmt7zdo/+BYDg== +cosmjs-types@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.4.1.tgz#3b2a53ba60d33159dd075596ce8267cfa7027063" + integrity sha512-I7E/cHkIgoJzMNQdFF0YVqPlaTqrqKHrskuSTIqlEyxfB5Lf3WKCajSXVK2yHOfOFfSux/RxEdpMzw/eO4DIog== dependencies: long "^4.0.0" protobufjs "~6.11.2" @@ -4394,16 +4381,6 @@ jest@^27.3.1: import-local "^3.0.2" jest-cli "^27.3.1" -js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-sha512@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha512/-/js-sha512-0.8.0.tgz#dd22db8d02756faccf19f218e3ed61ec8249f7d4" - integrity sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ== - js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -5098,7 +5075,7 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.3, pbkdf2@^3.0.9: +pbkdf2@^3.0.3: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== @@ -5262,10 +5239,10 @@ protobufjs@^6.8.8, protobufjs@~6.11.2: "@types/node" ">=13.7.0" long "^4.0.0" -protobufjs@~6.10.2: - version "6.10.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.10.2.tgz#b9cb6bd8ec8f87514592ba3fdfd28e93f33a469b" - integrity sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ== +protobufjs@~6.11.3: + version "6.11.3" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" + integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -5278,7 +5255,7 @@ protobufjs@~6.10.2: "@protobufjs/pool" "^1.1.0" "@protobufjs/utf8" "^1.1.0" "@types/long" "^4.0.1" - "@types/node" "^13.7.0" + "@types/node" ">=13.7.0" long "^4.0.0" psl@^1.1.33: @@ -5553,7 +5530,7 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: +ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== @@ -5636,7 +5613,7 @@ set-blocking@~2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: +sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== From 261bf3435fa37a9afda2db5f622b4b37bca317d4 Mon Sep 17 00:00:00 2001 From: Thibault Jaillard Date: Thu, 22 Sep 2022 17:42:19 +0200 Subject: [PATCH 11/12] Bump version to 0.7.8 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9f25361..9570629 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@lum-network/sdk-javascript", - "version": "0.7.7", + "version": "0.7.8", "license": "Apache-2.0", "description": "Javascript SDK library for NodeJS and Web browsers to interact with the Lum Network.", "homepage": "https://github.com/lum-network/sdk-javascript#readme", From 6354a4280a31daf801691236c6bb000df40101e5 Mon Sep 17 00:00:00 2001 From: Thibault Jaillard Date: Thu, 22 Sep 2022 17:48:46 +0200 Subject: [PATCH 12/12] Update doc --- docs/lib/modules/lummessages.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/lib/modules/lummessages.md b/docs/lib/modules/lummessages.md index 924d78a..5430b5a 100644 --- a/docs/lib/modules/lummessages.md +++ b/docs/lib/modules/lummessages.md @@ -705,7 +705,7 @@ ___ ### BuildMsgDepositDfract -▸ `Const` **BuildMsgDepositDfract**(`depositorAddress`, `amount`, `createdAt`): [`Message`](../interfaces/LumMessages.Message.md) +▸ `Const` **BuildMsgDepositDfract**(`depositorAddress`, `amount`): [`Message`](../interfaces/LumMessages.Message.md) #### Parameters @@ -713,7 +713,6 @@ ___ | :------ | :------ | | `depositorAddress` | `string` | | `amount` | [`Coin`](../interfaces/LumTypes.Coin.md) | -| `createdAt` | `Date` | #### Returns