From 47cd0ba6b7729f3df8a50ed70cc5519a51bac22c Mon Sep 17 00:00:00 2001 From: Michael Pretorius Date: Tue, 13 Aug 2024 09:56:05 +0200 Subject: [PATCH 01/20] feat: add smart accounts with tests --- __tests__/flows/cosmos.ts | 1 + __tests__/flows/cosmwasm.ts | 1 + __tests__/flows/iids.ts | 2 +- __tests__/flows/quickQueries.ts | 1 + __tests__/flows/smartaccount.ts | 15 + __tests__/index.spec.ts | 2 + __tests__/modules/Cosmos.ts | 1 + __tests__/modules/Smartaccount.ts | 198 ++++++++ .../random/mainnet_feegrant_addresses.json | 27 ++ proto/ixo/bonds/v1beta1/tx.proto | 21 + proto/ixo/claims/v1beta1/tx.proto | 17 + proto/ixo/entity/v1beta1/tx.proto | 15 + proto/ixo/iid/v1beta1/tx.proto | 21 + proto/ixo/smartaccount/v1beta1/genesis.proto | 35 ++ proto/ixo/smartaccount/v1beta1/models.proto | 23 + proto/ixo/smartaccount/v1beta1/params.proto | 26 ++ proto/ixo/smartaccount/v1beta1/query.proto | 57 +++ proto/ixo/smartaccount/v1beta1/tx.proto | 64 +++ proto/ixo/token/v1beta1/tx.proto | 15 + src/codegen/cosmos/bundle.ts | 172 +++---- src/codegen/cosmwasm/bundle.ts | 16 +- src/codegen/ibc/bundle.ts | 72 +-- src/codegen/ixo/bundle.ts | 82 ++-- src/codegen/ixo/rpc.query.ts | 3 + src/codegen/ixo/rpc.tx.ts | 3 + .../ixo/smartaccount/v1beta1/genesis.ts | 174 +++++++ .../ixo/smartaccount/v1beta1/models.ts | 100 ++++ .../ixo/smartaccount/v1beta1/params.ts | 98 ++++ .../smartaccount/v1beta1/query.rpc.Query.ts | 51 ++ src/codegen/ixo/smartaccount/v1beta1/query.ts | 325 +++++++++++++ .../ixo/smartaccount/v1beta1/tx.rpc.msg.ts | 38 ++ src/codegen/ixo/smartaccount/v1beta1/tx.ts | 442 ++++++++++++++++++ src/codegen/tendermint/bundle.ts | 44 +- src/queries/index.ts | 3 + src/stargate_client/customRegistries.ts | 15 + 35 files changed, 1995 insertions(+), 185 deletions(-) create mode 100644 __tests__/flows/smartaccount.ts create mode 100644 __tests__/modules/Smartaccount.ts create mode 100644 proto/ixo/smartaccount/v1beta1/genesis.proto create mode 100644 proto/ixo/smartaccount/v1beta1/models.proto create mode 100644 proto/ixo/smartaccount/v1beta1/params.proto create mode 100644 proto/ixo/smartaccount/v1beta1/query.proto create mode 100644 proto/ixo/smartaccount/v1beta1/tx.proto create mode 100644 src/codegen/ixo/smartaccount/v1beta1/genesis.ts create mode 100644 src/codegen/ixo/smartaccount/v1beta1/models.ts create mode 100644 src/codegen/ixo/smartaccount/v1beta1/params.ts create mode 100644 src/codegen/ixo/smartaccount/v1beta1/query.rpc.Query.ts create mode 100644 src/codegen/ixo/smartaccount/v1beta1/query.ts create mode 100644 src/codegen/ixo/smartaccount/v1beta1/tx.rpc.msg.ts create mode 100644 src/codegen/ixo/smartaccount/v1beta1/tx.ts diff --git a/__tests__/flows/cosmos.ts b/__tests__/flows/cosmos.ts index 6a51f117..a994826c 100644 --- a/__tests__/flows/cosmos.ts +++ b/__tests__/flows/cosmos.ts @@ -11,6 +11,7 @@ import { import * as Cosmos from "../modules/Cosmos"; import * as Authz from "../modules/Authz"; import { WalletUsers } from "../helpers/constants"; +// @ts-ignore import Long from "long"; import { Grant } from "../../src/codegen/cosmos/feegrant/v1beta1/feegrant"; import { createRegistry } from "../../src"; diff --git a/__tests__/flows/cosmwasm.ts b/__tests__/flows/cosmwasm.ts index 018fe1d2..795d9a61 100644 --- a/__tests__/flows/cosmwasm.ts +++ b/__tests__/flows/cosmwasm.ts @@ -32,6 +32,7 @@ import { contracts } from "../../src/custom_queries/contract.constants"; import { getSignerData } from "../../src/stargate_client/store"; import { Uint8ArrayTob64, b64toJson } from "../../src/utils/conversions"; import { dids } from "../setup/constants"; +// @ts-ignore import Long from "long"; export const wasmBasic = () => diff --git a/__tests__/flows/iids.ts b/__tests__/flows/iids.ts index 8959bf13..935b923e 100644 --- a/__tests__/flows/iids.ts +++ b/__tests__/flows/iids.ts @@ -297,7 +297,7 @@ export const generateBlockchainTestUsers = () => { generateNewWallet( WalletUsers.tester, // Miguel "jungle brave person inmate dirt upset try rotate twin fossil grid border" - // process.env.ROOT_ECS! + // process.env.ROOT_FEEGRANT! ) ); beforeAll(() => diff --git a/__tests__/flows/quickQueries.ts b/__tests__/flows/quickQueries.ts index e22baeb7..23da8a76 100644 --- a/__tests__/flows/quickQueries.ts +++ b/__tests__/flows/quickQueries.ts @@ -20,6 +20,7 @@ import { fromTimestamp } from "../../src/codegen/helpers"; import axios from "axios"; import { claims_mainnet, claims_testnet } from "../constants/claims"; import { EcsCredentialsWorkerUrl } from "../setup/constants"; +// @ts-ignore import Long from "long"; export const quickQueries = () => diff --git a/__tests__/flows/smartaccount.ts b/__tests__/flows/smartaccount.ts new file mode 100644 index 00000000..66f831e6 --- /dev/null +++ b/__tests__/flows/smartaccount.ts @@ -0,0 +1,15 @@ +import { testMsg } from "../helpers/common"; +import * as Smartaccount from "../modules/Smartaccount"; + +export const smartaccountBasic = () => + describe("Testing the cosmos bank module", () => { + testMsg("/ixo.smartaccount.v1beta1.MsgAddAuthenticator", async () => + Smartaccount.MsgAddAuthenticator() + ); + testMsg("/ixo.smartaccount.v1beta1.MsgSendWithAuthenticator", async () => + Smartaccount.MsgSendWithAuthenticator() + ); + testMsg("/ixo.smartaccount.v1beta1.MsgRemoveAuthenticator", async () => + Smartaccount.MsgRemoveAuthenticator() + ); + }); diff --git a/__tests__/index.spec.ts b/__tests__/index.spec.ts index 09bd2c01..96dfa622 100644 --- a/__tests__/index.spec.ts +++ b/__tests__/index.spec.ts @@ -13,6 +13,7 @@ import * as CosmWasm from "./flows/cosmwasm"; import * as Queries from "./flows/quickQueries"; import * as Claims from "./flows/claims"; import * as Authz from "./flows/authz"; +import * as Smartaccount from "./flows/smartaccount"; import { dids } from "./setup/constants"; import { idcc_constants } from "./setup/idcc/creds"; import { web3Storage } from "./setup/web3"; @@ -34,6 +35,7 @@ IID.generateBlockchainTestUsers(); // Token.tokenBasic(); // Claims.claimsBasic(); // CosmWasm.daoCore(); +// Smartaccount.smartaccountBasic(); // Cosmos.sendTokens(); // IID.iidAddEdKeys(); // Bonds.bondsSellsDisabled(); diff --git a/__tests__/modules/Cosmos.ts b/__tests__/modules/Cosmos.ts index dbc48059..4f599d5d 100644 --- a/__tests__/modules/Cosmos.ts +++ b/__tests__/modules/Cosmos.ts @@ -10,6 +10,7 @@ import { getFileFromPath, timeout, } from "../helpers/common"; +// @ts-ignore import Long from "long"; export const BankSendTrx = async ( diff --git a/__tests__/modules/Smartaccount.ts b/__tests__/modules/Smartaccount.ts new file mode 100644 index 00000000..14c72ba3 --- /dev/null +++ b/__tests__/modules/Smartaccount.ts @@ -0,0 +1,198 @@ +import { getFee, WalletUsers } from "../helpers/constants"; +import { + createClient, + getUser, + cosmos, + ixo, + queryClient, +} from "../helpers/common"; +import { fromBase64, toBase64 } from "@cosmjs/encoding"; +import { Int53 } from "@cosmjs/math"; +import { encodePubkey, makeAuthInfoBytes } from "@cosmjs/proto-signing"; +// @ts-ignore +import Long from "long"; +import base58 from "bs58"; +import { pubkeyType } from "@cosmjs/amino"; +import { makeSignDoc } from "@cosmjs/proto-signing"; +import { TxRaw } from "../../src/codegen/cosmos/tx/v1beta1/tx"; +import { TxExtension } from "../../src/codegen/ixo/smartaccount/v1beta1/tx"; + +export const MsgAddAuthenticator = async () => { + const client = await createClient(); + + const tester = getUser(); + const account = (await tester.getAccounts())[0]; + const myAddress = account.address; + + const bob = getUser(WalletUsers.bob); + const bobAccount = (await bob.getAccounts())[0]; + const bobPubKey = bobAccount.pubkey; + + const signatureVerification = { + type: "SignatureVerification", + data: bobPubKey, + }; + + const message = { + typeUrl: "/ixo.smartaccount.v1beta1.MsgAddAuthenticator", + value: ixo.smartaccount.v1beta1.MsgAddAuthenticator.fromPartial({ + sender: myAddress, + authenticatorType: signatureVerification.type, + data: signatureVerification.data, + }), + }; + + const response = await client.signAndBroadcast( + myAddress, + [message], + getFee(1, await client.simulate(myAddress, [message], undefined)) + ); + // console.dir(response, { depth: null }); + return response; +}; + +export const MsgRemoveAuthenticator = async (authenticatorId?: number) => { + const client = await createClient(); + + const tester = getUser(); + const account = (await tester.getAccounts())[0]; + const myAddress = account.address; + + const bob = getUser(WalletUsers.bob); + const bobAccount = (await bob.getAccounts())[0]; + + const authenticators = + await queryClient.ixo.smartaccount.v1beta1.getAuthenticators({ + account: myAddress, + }); + const signatureAuthenticator = authenticators.accountAuthenticators?.find( + (a) => + a.type === "SignatureVerification" && + base58.encode(a.config) === base58.encode(bobAccount.pubkey) + ); + if (!signatureAuthenticator) + throw new Error("Authenticator not found for bob's pubkey"); + const sigAuthId = signatureAuthenticator.id; + + const message = { + typeUrl: "/ixo.smartaccount.v1beta1.MsgRemoveAuthenticator", + value: ixo.smartaccount.v1beta1.MsgRemoveAuthenticator.fromPartial({ + sender: myAddress, + id: authenticatorId ? Long.fromNumber(authenticatorId) : sigAuthId, + }), + }; + + const response = await client.signAndBroadcast( + myAddress, + [message], + getFee(1, await client.simulate(myAddress, [message], undefined)) + ); + return response; +}; + +export const MsgSendWithAuthenticator = async () => { + const client = await createClient(); + const tester = getUser(); + const account = (await tester.getAccounts())[0]; + const myAddress = account.address; + + const bob = getUser(WalletUsers.bob); + const bobAccount = (await bob.getAccounts())[0]; + + const authenticators = + await queryClient.ixo.smartaccount.v1beta1.getAuthenticators({ + account: myAddress, + }); + const signatureAuthenticator = authenticators.accountAuthenticators?.find( + (a) => + a.type === "SignatureVerification" && + base58.encode(a.config) === base58.encode(bobAccount.pubkey) + ); + if (!signatureAuthenticator) + throw new Error("Authenticator not found for bob's pubkey"); + const sigAuthId = signatureAuthenticator.id; + + const memo = "SignatureVerification Trx"; + const messages = [ + { + typeUrl: "/cosmos.bank.v1beta1.MsgSend", + value: cosmos.bank.v1beta1.MsgSend.fromPartial({ + fromAddress: myAddress, + toAddress: bobAccount.address, + amount: [ + cosmos.base.v1beta1.Coin.fromPartial({ + amount: "1000", + denom: "uixo", + }), + ], + }), + }, + ]; + + // get fee + const fee = await client.getUsedFee( + myAddress, + messages, + getFee(messages.length, await client.simulate(myAddress, messages, memo)), + memo + ); + // get tx data ready + const { accountNumber, sequence } = await client.getSequence(myAddress); + const chainId = await client.getChainId(); + const txBodyBytes = client.registry.encodeTxBody({ + messages, + memo, + nonCriticalExtensionOptions: [ + { + typeUrl: "/ixo.smartaccount.v1beta1.TxExtension", + value: TxExtension.encode({ + selectedAuthenticators: [sigAuthId], + }).finish(), + }, + ], + }); + const gasLimit = Int53.fromString(fee.gas).toNumber(); + const pubkey = encodePubkey({ + type: + bobAccount.algo === "secp256k1" + ? pubkeyType.secp256k1 + : pubkeyType.ed25519, + value: toBase64(bobAccount.pubkey), + }); + const authInfoBytes = makeAuthInfoBytes( + [{ pubkey, sequence }], + fee.amount, + gasLimit, + fee.granter, + fee.payer + ); + // make sign doc that will be signed + const signDoc = makeSignDoc( + txBodyBytes, + authInfoBytes, + chainId, + accountNumber + ); + // sign with bobs wallet and bobs address as signerAddress, as signDirect looks for key pair for the signerAddress, + // but the real signerAddress has already been embedded in the signDoc + const { signature, signed } = await bob.signDirect( + bobAccount.address, + signDoc + ); + + // create tx to be broadcasted to chain + const txRaw = TxRaw.fromPartial({ + bodyBytes: signed.bodyBytes, + authInfoBytes: signed.authInfoBytes, + signatures: [fromBase64(signature.signature)], + }); + const txBytes = TxRaw.encode(txRaw).finish(); + + const response = await client.broadcastTx( + txBytes, + client.broadcastTimeoutMs, + client.broadcastPollIntervalMs + ); + // console.dir(response, { depth: null }); + return response; +}; diff --git a/assets/documents/random/mainnet_feegrant_addresses.json b/assets/documents/random/mainnet_feegrant_addresses.json index f7b0e783..f91a9096 100644 --- a/assets/documents/random/mainnet_feegrant_addresses.json +++ b/assets/documents/random/mainnet_feegrant_addresses.json @@ -58,6 +58,8 @@ "ixo1p3wg5zy50df67r5hh5fuyhdgwclwldpdfkhqnh", "ixo1pjzsel43e0zfg8yqn6ug0vm4cwrwnwazk06ghd", "ixo1pn2qksra2pv48mwxrwv6vugyf6mqytscj5z940", + "ixo1pnwq8cjaf9k542c4ekqx6wgxa8vwhk4ttkkmq0", + "ixo1pnwu9d8fjjcu74fcx0945ts39asvwua8pvrf2s", "ixo1pn6ufda9vpxtwdeh3g968jpk2a8vnchngpqfat", "ixo1p5ww5fet2rkt3sed4nhvlg03ez0l942gycyacw", "ixo1p5lygqzx6xgvdmcqc258rgwpvzpqddht3uk4zc", @@ -120,6 +122,7 @@ "ixo1z6t0us9xth46ywgwxt0ea60utf4cplr5xg3qfr", "ixo1z6kadxsm9xyay4p5ncq526myky8sy43j83f3dy", "ixo1z674q0gp4y5fpeyw5yuz7sd6d7pz9sjf0cqdva", + "ixo1zmfx59x55e9gzqm4s6a56yc6gl6fz4luz4mc0s", "ixo1zm5jvgqwf4ps4ejuw90hhlp38j8r45w235cc0u", "ixo1zutlfzazlseh29nxscz5c8l4pray0kar5j4jzx", "ixo1zu56l2747xv0pkhjwrdplkjhsynujnnx5t6nhu", @@ -183,6 +186,7 @@ "ixo1ra8hzv90xnhwmfcfj0eylc569vyfyv29kg7neu", "ixo1rawaszanydzyttmycqmr70xyv3wy95yk2ykwph", "ixo1yqc9ud2wtfdw2jq3fllgh3xgtfshdp39ezevsu", + "ixo1yz9lcaud96d4q2t4r698vfe3ckc4qtnfl0a4zk", "ixo1yr9qhy3z45xwh2wrmczrkst38fvwdgj9ru04je", "ixo1yyar88kelfve0t0pumtwgt0vu39jmenjqq6d3n", "ixo1yya0mctlnn7m2mgmj273wyrhl0qrz8aka5u3k3", @@ -219,6 +223,7 @@ "ixo1ykhlf22jlkcwcnm62lse09rn2tt0v0p4xwp4x4", "ixo1ycj6a59yqp6l463274akwlsw2fkvztaesw60xw", "ixo1y69q4vzvd00k6qgywcaln8y5r6pcsywt8w5q3f", + "ixo1y62dcrddehgvwlh78350kylykl3yxhp9fekd67", "ixo1y6ay03y6l44szv80q00338smsqmd5hp9fucqke", "ixo1ym88yx7gh3g4z8gwmzs4d0a7h3ftal8x7kjv8r", "ixo1ym46t5sj2calzl7gn92jef4eh3xdjul2m944nc", @@ -372,6 +377,7 @@ "ixo1gfhvqgwtf5qv6k4fdm5ac0764mreyfe4mt7rks", "ixo1g2pwmdu5vzaecxpdae9qkrn5lp7mrynfm5fgj7", "ixo1g2zkcz8d63a0luhwh8clyscnrdg8zrshfyefla", + "ixo1g25fncu264a7cet4m4awnsfzthlpcqgns0uh2u", "ixo1gt38zr528z8mal5ydqstm0n5k6favd945cztsg", "ixo1gvw7z6q5jtt7mczhwm7gweqv66hex5cp33anux", "ixo1gv3gqyct2vmlcmqfqja6h432q3m64hjrug8uyx", @@ -424,6 +430,7 @@ "ixo1f3vu8g5fnwhq35e5yy2t6p0ktfn0npq579h28u", "ixo1f33afvtpaftz80pvzp8lvzytpg7535ylhuryu5", "ixo1f37mu9z42r8lpcm3u7yyxkmvkdenzdr5lgy4pl", + "ixo1fjyq7dzhyaf9wqpatnsq5qslcwgcs45lwkath2", "ixo1f5q8sde8uyd7v9t8ad6g9kssea76dyp7uua8sc", "ixo1f4ff4ntx6y95w9ndls0v3ep3rx3hpxlva5rtwz", "ixo1f4jtly478fjzdct9u8a2l9p0p68jth2repkp2a", @@ -462,6 +469,7 @@ "ixo12wgrrvmx5jx2mxhu6dvnfu3greamemnqfvx84a", "ixo12wv2eec2p6yvxtq9yhvv7kfxk6fx8xd8t335h6", "ixo12w3rca0p5cpcz9ysdzdt7fjgw7n5nj6kveyg4w", + "ixo12wanuzdm0hzetjh5u92ae7l8uwrwghp37ld640", "ixo120mvyls73jjkdew7fm5npsxzhtadnxv98y95gh", "ixo12spq03s5ffzfkruhnstlwz94ur5gfvnh94lncf", "ixo12j8lnu4zwc928y90prngzytmsplrvl42pqhtff", @@ -475,6 +483,7 @@ "ixo12hp9yvczdanl0kvxjk8s6km5eyjqu4ez4sdyhg", "ixo12e4t2ng6ngfrz8gepwh2ddw8k4s8qn6qmmscmu", "ixo12emasm8ymvpzjwfsp8eavaxx4k72ped7smdh0f", + "ixo126q0cqg82x4fgxvs000l2ytwmf97ry4l522asc", "ixo12me5qefq8veumzkduymcysdepwxjj239mrl7al", "ixo12uv2vusznsfrsjzn8swmw5dyldrujk8x65hddl", "ixo12a26ng4vwjym4xkuvjxrdlc4s2sl07vcjzqjsl", @@ -530,6 +539,7 @@ "ixo1vxs9czl6gaw088gxku03fh7rervt8djal36j5t", "ixo1vxsh8rexqjl4xw4rdxsuvw4kk2w3nh8hlce8m4", "ixo1v87rur3rf58j9zlnq932ge0dk4rqfx7s6jl58j", + "ixo1vg5ew98t8vkhp2jsf8k5hylcun7w6msytqxt25", "ixo1vf3g6r4a8jng8hx69y355gzqt7gjjrq36ffazn", "ixo1vt8w6g0k2xjkdnmtm4tz527cjn9fkp6exycw93", "ixo1v0xtxves0suhw374xhg72acntxp4pkqu4sahy7", @@ -547,6 +557,7 @@ "ixo1vh5p87fng7yfzn45hsa9r0wwax23hm8der9upl", "ixo1vcphrp4q4g3jt6xmfk69ytqwkaz0at8nq8x960", "ixo1vcxave5jjllzzrgexqvjd3la32zwv2s66a9zag", + "ixo1vcth8v5uzqzf2jmnxqwcnlagw343yqymdl0ss7", "ixo1vc68qzyeu6nqc7zhfgw5l4wgk6av4xw5tea9ux", "ixo1vep064hnp54s0q9lsfxmuj63mjhn9zdwgfk9vl", "ixo1ve3lrcdqwhnx73emcw0rfmq7c896trm92335am", @@ -588,6 +599,7 @@ "ixo1dk04mwz74t2gaanuuqfu79xey8n3838g24a7f8", "ixo1dhyxdlw8nsfyetw6gs64r33t3d7gj36v35de2m", "ixo1dhx5kt6rudhpvp7j4slwdpwm4y6exc9tr55trp", + "ixo1dhsy3cq9crprjgnlt9gxmptyjxfmke8q3ykzcd", "ixo1dhlg07u0870dr5jvjsjs072v9j6g275eqfcuz9", "ixo1deekgy6ekc46k0gzz5dltfsk9ezvwjrpfjyv48", "ixo1dmqltqguxjadxtvm3wp4j5hzk5qpyj2t56v3nj", @@ -630,6 +642,7 @@ "ixo1whtyz7m4qf6qkjnyr2rp6jxlmqkz67gprte7dr", "ixo1whmd37zeu99aa20jfj9pz09nc5p9setudf9se7", "ixo1wcmpvum35mzkp8w2vzrt3tptvfkwjlj25t4gek", + "ixo1w6whmarkw8upkzx00l32g6wn9s2a9ynl8705f0", "ixo1wu80cyhh3uzv8avxqhpp230dwgjjsnzwfzxw0m", "ixo1w7ahvg57e5gj7gq0l7tkspjxjvyc8ce8dg4z3k", "ixo1wlesrvfa9klnl3k5qmju0f6020zyp8n60telep", @@ -652,6 +665,7 @@ "ixo10d7pnasluhu6y69hagn5mdkzu8zcqrtfu9fpxe", "ixo10dlpv9mwnvkk47g6ajq3uz32gc8hh9h6zsp5gc", "ixo1003dl5gtqmt4rxtepvzpgnucr4exzelhrn3367", + "ixo10sylrdln2rsn7a0l90jpldje3c7zwvghs5zqav", "ixo10jptd7ky5jxvfcnjestupug3dnk94h9lhyvxdd", "ixo10n97wrwqr8nv9xrmzpspyw9fkn0mtve9cs9uhc", "ixo10nh86cch5672h7k3ydy204qheuke05eyvnjt6f", @@ -679,6 +693,7 @@ "ixo1sqhjzzptruk35nqv6vwq3mllh3fu843mze2d0n", "ixo1spxvvc9nv6ev98wu2rk7l5phsy3pa3e8uw0h9a", "ixo1spe6fum7fn2qw60erx0zjew2rwnu9sa45z07ag", + "ixo1sznatk07edw8zfnnjqsprwk7jrdqmzh6rvvkyq", "ixo1szhtu95e9pw80zuad7r3ssy7285a5gdux65m03", "ixo1s8eutyzva8gtl34stl0tz6jmauzlc436q9am26", "ixo1sfsxxfmfs8yj3lfpgq67e8t3tywdv9fn5tmh2u", @@ -715,6 +730,7 @@ "ixo13fwjk74q3q06fl02zgdgv8m7ftpftg2uwd5cuv", "ixo13f54gdcrytpvr2u3w55jjlrmp3fpf4m2uuenz8", "ixo132gxpkw0wwpqdkeykpsssmf7leaa8lx52s3juv", + "ixo132sts8cjc6f7ddmvtx60322pqy2s5u38nl62rr", "ixo1325dhvll3klfnuc8sj0m8a7mdcnatuz47z2rem", "ixo1324u3079cpm2f0k04wxxyc4rzp3tx4f6xhykwr", "ixo13vm6p48ljsnj94xsjgsv9xvcctgujq9lxuuchl", @@ -734,6 +750,7 @@ "ixo13m99jdmgg32c53j0yggfxwf8y5mv5x83kz70wx", "ixo13m00sgpqxtu477m5ps3t520xv99j8ez3y73dhz", "ixo13m75684yq8c2skxtjkdan4vruztpvhdacgsxc2", + "ixo13uzhvxqgm6x3k4hhgd6eu5nnmdpmgzshk6x9ht", "ixo13uxnx84pelw8l8mh6ueys7tug2nwkwk7d27kpr", "ixo13ajv5d2845qp3086g7525d74nqsx6f456we83t", "ixo13708z7kf8fs3vg7jal2a4e562t5tkq4c6lfldv", @@ -751,6 +768,7 @@ "ixo1j936gtrvrwdy0gcz4zaj9lu0rjwkezgrdf5es0", "ixo1jxr9z9c30ceh6vrds8ugfvntfccqqd5yq26zjh", "ixo1j8phyq8tcuh5vhe6kxh7azh43x7jk8p9ejgq5d", + "ixo1j8xhsf38q8xj4lqsggnt4c5sa8z2rs43w29gke", "ixo1jgnguejscntgns66usw8vgfmxt9vjarcehf7yx", "ixo1jgmxqsagj6h7q9pmdz90f9d79e8t0qdxhy33mv", "ixo1jfv8pnwpuzc6qezfjpymwsqxrrv028u9ge0hht", @@ -838,6 +856,7 @@ "ixo1508kaus92n6vwxe6zla42qk7g4k95tamq3r8ut", "ixo150hqk8htkrcacpsvsmjlwqu0hltd5cudtu3x26", "ixo15smxeqxkqtm6fg8uxc56q8l47njcdr90yuj0j6", + "ixo153s22geve84ravzy706r2m6kng83e03p2d2x8m", "ixo1534nn7kjn8z8k0wf5348ln2ze7dwnalkz6l3rf", "ixo155cl05a7s5yhtyzxy8xhunccaewhqquq33jg0v", "ixo155enjujcyljk0gugs67ad020j7r6qwkegc76ra", @@ -870,6 +889,7 @@ "ixo14f6rw2eyzhnw8r4hydygvnkjlzg9k09m7k4p8l", "ixo14du35t8c5u2u7c6xn7zhywchwhlmg79f2y2rhh", "ixo14n9d0eq54atmmkndyu0fyadl80tthdak4tay8e", + "ixo145kjfvwjjp382gqu3lw30pfgdpv3r6zfdtz57m", "ixo145m5gt54m7gt48m7w9sjy0z9tnqzqrdvg7paud", "ixo14k6q6lnv4squmwe43tlg0cepsnv3k9uau0rzp8", "ixo14e5c0jta5dy3qhyl6s0awgqtlsgcqqv2rn69u9", @@ -919,6 +939,7 @@ "ixo1kmm7976xhjxrdpc88499rtw5lyg9pp9t7mne9s", "ixo1hz9m2vtc8wnw4vnd4ckjr6cdacd4uqzpkr8m4d", "ixo1hzhxm0395cqltmg9p48tfkx964d05yrjl3p9p7", + "ixo1h9plshfxxuf95tgpt2qv0anq28ujmxhee79vuz", "ixo1h9mapznwytrzxvg0tlrc7ph7szucgpztyjmfae", "ixo1hxs5v0w40zvxl66865n22npyxs3us9ukca4p2u", "ixo1hx3698m0kc979w2r0mmmtulh8w5m0cp0965tqk", @@ -942,6 +963,7 @@ "ixo1h4p2qq9e29hpd00j7ya8h88sr229c8uzgt8ccv", "ixo1h4rpfgkq09qmu6heuh685c72vqhzy8ga84xe0v", "ixo1h40cr0dkehs9g0qk4c0lkhy3agztjznaarclzc", + "ixo1hh78ny637vt0lzz0yfn2f33ufnezquvws9rhhz", "ixo1hch9wy60zq7hvxjtqgxkuytcdqhgm2gtm9xenx", "ixo1hc6fwagmq8gt88l8z52tgnsfe65rxz94fmn2vj", "ixo1he9yjtavktqv5ewp0ej9z7sd5f72aw60la477a", @@ -949,6 +971,7 @@ "ixo1h62hj8k9qdlmw28j3y4549hvp59ajsprut3uex", "ixo1h6dv9uzg7j9pr8pv4gdx3ntvnk7jn4ydqm8ayq", "ixo1hmk9de3umfznllk8483gvpzm28kvyj7hdvprjh", + "ixo1huqg684lh3c2x8gjp6t3dyz0fnmxafgcdcxr2r", "ixo1huxxszr8dlyft9an8m7msx3eqj87a6800rk8y7", "ixo1hugrc4zgkxn7f3e7e47dk8j7qt7pc4rlm872g7", "ixo1hu5r55ust3r63k0g6kvwsu7ezf2cp3sy34w7j2", @@ -992,6 +1015,7 @@ "ixo1chnx8xrl0vnml3czs39msu066tenftupacszhq", "ixo1chajannaynh0vxx8lcv7atlqntufx6lpk454gp", "ixo1ceqjp7uyqnxn6ravdr8nhq98hpww032u5x35x8", + "ixo1cesy4pchju9n5af7vktmyu670scq9k00ct7mzv", "ixo1cehfv7xgwmf5ltvzxmkehe7ds7v9s04wsnh6af", "ixo1c693flyr4cp8457j0xqq4wce3zsg58hup025ch", "ixo1c6weszrcsu2pune8lmhfuh6tffcrdawtn5xq8e", @@ -1017,6 +1041,7 @@ "ixo1etcv8wyw3xmy9aqham726mnn3fc0fty6w2zc6a", "ixo1e0p38uuez3lpe7jr9s5hkay2d6qy862hhrul6u", "ixo1es7cgr7nh0dx4556k8txtkyauay0d6ezs35vn4", + "ixo1ejpp3m3cuduekm849w3mxz947sc4qcqvn9njae", "ixo1enfpxzxe5fkjckmwpv750eehcm49js8nm7rnxu", "ixo1e5pcxy6620lac70rn70gstudvgmurvmvdhx5ts", "ixo1e5gxy8em9kfdrfyjaydzv599ur53p6huxh9r0x", @@ -1143,6 +1168,7 @@ "ixo1ayvtg7qpyvc28694y8cgkyuh78x7wqu8tg8dys", "ixo1a9gjq0zrwtczmtqpxlxgazf4mv95djs0y77505", "ixo1a8pvgy0vdwd0h0pp6ctj6x8sfz49fcavwfv55e", + "ixo1agsv05tf45ukj2jhatdtujnqgprd52jwlln0ww", "ixo1afk78e7gjkwszlm9dadcezm7ekk0xu4pf0n9e0", "ixo1afma7jt5wfev5aqrtd429vjs6xq0afsetrqrjc", "ixo1ad9sel5enn2rsj5fu75p7nyxmj52t8pua77w8j", @@ -1226,6 +1252,7 @@ "ixo1lv32r06hmh5veeqw3u56qguyvfdjwc9kxu3pdl", "ixo1ldmwnfpfh23kxm47a680tvpmu9lfmqhfdkqzpq", "ixo1ld74st96nfsfwxz3xv4j75rawn454wqzrf3p4f", + "ixo1lwc7r4xymxhray3s6x6g285mj3m5p9q8z7snqr", "ixo1l006cx3ef98ahqvg2lugqj8qknphg7g7ax6s39", "ixo1l0k2e5vuv6l0unrkhmfy4lhmpayrwx9dnm0rkv", "ixo1l3u0dl639s7s4kyxcmdxj3a3wyfqedyjf2f2nh", diff --git a/proto/ixo/bonds/v1beta1/tx.proto b/proto/ixo/bonds/v1beta1/tx.proto index 404ddb81..19f1eda3 100644 --- a/proto/ixo/bonds/v1beta1/tx.proto +++ b/proto/ixo/bonds/v1beta1/tx.proto @@ -5,6 +5,7 @@ import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; import "cosmos_proto/cosmos.proto"; import "ixo/bonds/v1beta1/bonds.proto"; +import "cosmos/msg/v1/msg.proto"; option go_package = "github.com/ixofoundation/ixo-blockchain/v3/x/bonds/types"; @@ -46,6 +47,8 @@ service Msg { // MsgCreateBond defines a message for creating a new bond. message MsgCreateBond { + option (cosmos.msg.v1.signer) = "creator_address"; + string bond_did = 1; string token = 2; string name = 3; @@ -116,6 +119,8 @@ message MsgCreateBondResponse {} // MsgEditBond defines a message for editing an existing bond. message MsgEditBond { + option (cosmos.msg.v1.signer) = "editor_address"; + string bond_did = 1; string name = 2; string description = 3; @@ -134,6 +139,8 @@ message MsgEditBondResponse {} // MsgSetNextAlpha defines a message for editing a bond's alpha parameter. message MsgSetNextAlpha { + option (cosmos.msg.v1.signer) = "oracle_address"; + string bond_did = 1; string alpha = 2 [ (cosmos_proto.scalar) = "cosmos.Dec", @@ -156,6 +163,8 @@ message MsgSetNextAlphaResponse {} // MsgUpdateBondState defines a message for updating a bond's current state. message MsgUpdateBondState { + option (cosmos.msg.v1.signer) = "editor_address"; + string bond_did = 1; string state = 2; string editor_did = 3 [ @@ -170,6 +179,8 @@ message MsgUpdateBondStateResponse {} // MsgBuy defines a message for buying from a bond. message MsgBuy { + option (cosmos.msg.v1.signer) = "buyer_address"; + string buyer_did = 1 [ (gogoproto.casttype) = "github.com/ixofoundation/ixo-blockchain/v3/x/iid/types.DIDFragment" @@ -188,6 +199,8 @@ message MsgBuyResponse {} // MsgSell defines a message for selling from a bond. message MsgSell { + option (cosmos.msg.v1.signer) = "seller_address"; + string seller_did = 1 [ (gogoproto.casttype) = "github.com/ixofoundation/ixo-blockchain/v3/x/iid/types.DIDFragment" @@ -203,6 +216,8 @@ message MsgSellResponse {} // MsgSwap defines a message for swapping from one reserve bond token to // another. message MsgSwap { + option (cosmos.msg.v1.signer) = "swapper_address"; + string swapper_did = 1 [ (gogoproto.casttype) = "github.com/ixofoundation/ixo-blockchain/v3/x/iid/types.DIDFragment" @@ -219,6 +234,8 @@ message MsgSwapResponse {} // MsgMakeOutcomePayment defines a message for making an outcome payment to a // bond. message MsgMakeOutcomePayment { + option (cosmos.msg.v1.signer) = "sender_address"; + string sender_did = 1 [ (gogoproto.casttype) = "github.com/ixofoundation/ixo-blockchain/v3/x/iid/types.DIDFragment" @@ -239,6 +256,8 @@ message MsgMakeOutcomePaymentResponse {} // MsgWithdrawShare defines a message for withdrawing a share from a bond that // is in the SETTLE stage. message MsgWithdrawShare { + option (cosmos.msg.v1.signer) = "recipient_address"; + string recipient_did = 1 [ (gogoproto.casttype) = "github.com/ixofoundation/ixo-blockchain/v3/x/iid/types.DIDFragment" @@ -252,6 +271,8 @@ message MsgWithdrawShareResponse {} // MsgWithdrawReserve defines a message for withdrawing reserve from a bond. message MsgWithdrawReserve { + option (cosmos.msg.v1.signer) = "withdrawer_address"; + string withdrawer_did = 1 [ (gogoproto.casttype) = "github.com/ixofoundation/ixo-blockchain/v3/x/iid/types.DIDFragment" diff --git a/proto/ixo/claims/v1beta1/tx.proto b/proto/ixo/claims/v1beta1/tx.proto index 42bb15ed..0f952706 100644 --- a/proto/ixo/claims/v1beta1/tx.proto +++ b/proto/ixo/claims/v1beta1/tx.proto @@ -8,6 +8,7 @@ import "google/protobuf/timestamp.proto"; import "ixo/claims/v1beta1/claims.proto"; import "cosmos/base/v1beta1/coin.proto"; import "cosmos/bank/v1beta1/bank.proto"; +import "cosmos/msg/v1/msg.proto"; // Msg defines the Msg service. service Msg { @@ -26,6 +27,8 @@ service Msg { } message MsgCreateCollection { + option (cosmos.msg.v1.signer) = "signer"; + // entity is the DID of the entity for which the claims are being created string entity = 1; // signer address @@ -49,6 +52,8 @@ message MsgCreateCollection { message MsgCreateCollectionResponse {} message MsgSubmitClaim { + option (cosmos.msg.v1.signer) = "admin_address"; + // collection_id indicates to which Collection this claim belongs string collection_id = 1; // claimID is the unique identifier of the claim in the cid hash format @@ -66,6 +71,8 @@ message MsgSubmitClaim { message MsgSubmitClaimResponse {} message MsgEvaluateClaim { + option (cosmos.msg.v1.signer) = "admin_address"; + // claimID is the unique identifier of the claim to make evaluation against string claim_id = 1; // collection_id indicates to which Collection this claim belongs @@ -101,6 +108,8 @@ message MsgEvaluateClaimResponse {} // Agent laying dispute must be admin for Collection, or controller on // Collection entity, or have authz cap, aka is agent message MsgDisputeClaim { + option (cosmos.msg.v1.signer) = "agent_address"; + // subject_id for which this dispute is against, for now can only lay disputes // against claims string subject_id = 1; @@ -119,6 +128,8 @@ message MsgDisputeClaim { message MsgDisputeClaimResponse {} message MsgWithdrawPayment { + option (cosmos.msg.v1.signer) = "admin_address"; + // claim_id the withdrawal is for string claim_id = 1; // Inputs to the multisend tx to run to withdraw payment @@ -146,6 +157,8 @@ message MsgWithdrawPayment { message MsgWithdrawPaymentResponse {} message MsgUpdateCollectionState { + option (cosmos.msg.v1.signer) = "admin_address"; + // collection_id indicates which Collection to update string collection_id = 1; // state is the state of this Collection (open, paused, closed) you want to @@ -158,6 +171,8 @@ message MsgUpdateCollectionState { message MsgUpdateCollectionStateResponse {} message MsgUpdateCollectionDates { + option (cosmos.msg.v1.signer) = "admin_address"; + // collection_id indicates which Collection to update string collection_id = 1; // startDate is the date after which claims may be submitted @@ -172,6 +187,8 @@ message MsgUpdateCollectionDates { message MsgUpdateCollectionDatesResponse {} message MsgUpdateCollectionPayments { + option (cosmos.msg.v1.signer) = "admin_address"; + // collection_id indicates which Collection to update string collection_id = 1; // payments is the amount paid for claim submission, evaluation, approval, or diff --git a/proto/ixo/entity/v1beta1/tx.proto b/proto/ixo/entity/v1beta1/tx.proto index d27a7e4b..d029b31a 100644 --- a/proto/ixo/entity/v1beta1/tx.proto +++ b/proto/ixo/entity/v1beta1/tx.proto @@ -8,6 +8,7 @@ import "ixo/iid/v1beta1/types.proto"; import "ixo/entity/v1beta1/entity.proto"; import "google/protobuf/timestamp.proto"; import "cosmos/authz/v1beta1/authz.proto"; +import "cosmos/msg/v1/msg.proto"; option go_package = "github.com/ixofoundation/ixo-blockchain/v3/x/entity/types"; @@ -40,6 +41,8 @@ service Msg { } message MsgCreateEntity { + option (cosmos.msg.v1.signer) = "owner_address"; + // An Entity Type as defined by the implementer string entity_type = 1; // Status of the Entity as defined by the implementer and interpreted by @@ -90,6 +93,8 @@ message MsgCreateEntityResponse { // Updates the entity with all the fields, so if field empty will be updated // with default go type, aka never null message MsgUpdateEntity { + option (cosmos.msg.v1.signer) = "controller_address"; + // Id of entity to be updated string id = 1; // Status of the Entity as defined by the implementer and interpreted by @@ -116,6 +121,8 @@ message MsgUpdateEntityResponse {} // Only relayer nodes can update entity field 'entityVerified' message MsgUpdateEntityVerified { + option (cosmos.msg.v1.signer) = "relayer_node_address"; + // Id of entity to be updated string id = 1; // Whether entity is verified or not based on credentials @@ -131,6 +138,8 @@ message MsgUpdateEntityVerified { message MsgUpdateEntityVerifiedResponse {} message MsgTransferEntity { + option (cosmos.msg.v1.signer) = "owner_address"; + string id = 1; // The owner_did used to sign this transaction. string owner_did = 2 [ @@ -149,6 +158,8 @@ message MsgTransferEntityResponse {} // create a module account for an entity message MsgCreateEntityAccount { + option (cosmos.msg.v1.signer) = "owner_address"; + // entity id (did) to create account for string id = 1; // name of account @@ -165,6 +176,8 @@ message MsgCreateEntityAccountResponse { // Create a authz grant from entity account (as grantor) to recipient in msg as // grantee for the specific authorization message MsgGrantEntityAccountAuthz { + option (cosmos.msg.v1.signer) = "owner_address"; + // entity id (did) which has the account string id = 1; // name of account @@ -181,6 +194,8 @@ message MsgGrantEntityAccountAuthzResponse {} // Revoke an existing authz grant from entity account (as grantor) to recipient message MsgRevokeEntityAccountAuthz { + option (cosmos.msg.v1.signer) = "owner_address"; + // entity id (did) which has the account string id = 1; // name of account diff --git a/proto/ixo/iid/v1beta1/tx.proto b/proto/ixo/iid/v1beta1/tx.proto index b6aac3c6..4c0b418d 100755 --- a/proto/ixo/iid/v1beta1/tx.proto +++ b/proto/ixo/iid/v1beta1/tx.proto @@ -5,6 +5,7 @@ import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; import "ixo/iid/v1beta1/iid.proto"; import "ixo/iid/v1beta1/types.proto"; +import "cosmos/msg/v1/msg.proto"; option go_package = "github.com/ixofoundation/ixo-blockchain/v3/x/iid/types"; @@ -81,6 +82,7 @@ message Verification { message MsgCreateIidDocument { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did repeated string controllers = 2; // the list of controller DIDs @@ -103,6 +105,7 @@ message MsgCreateIidDocumentResponse {} message MsgUpdateIidDocument { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did repeated string controllers = 2; // the list of controller DIDs @@ -127,6 +130,7 @@ message MsgUpdateIidDocumentResponse {} message MsgAddVerification { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did Verification verification = 2; // the verification to add @@ -138,6 +142,7 @@ message MsgAddVerificationResponse {} message MsgSetVerificationRelationships { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did string method_id = 2; // the verification method id @@ -150,6 +155,7 @@ message MsgSetVerificationRelationshipsResponse {} message MsgRevokeVerification { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did string method_id = 2; // the verification method id @@ -165,6 +171,7 @@ message MsgRevokeVerificationResponse {} message MsgAddService { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did Service service_data = 2; // the service data to add @@ -176,6 +183,7 @@ message MsgAddServiceResponse {} message MsgDeleteService { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did string service_id = 2; // the service id @@ -191,6 +199,7 @@ message MsgDeleteServiceResponse {} message MsgAddController { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did of the document string controller_did = @@ -203,6 +212,7 @@ message MsgAddControllerResponse {} message MsgDeleteController { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did of the document string controller_did = @@ -219,6 +229,7 @@ message MsgDeleteControllerResponse {} message MsgAddLinkedResource { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did LinkedResource linkedResource = 2; // the verification to add @@ -228,6 +239,7 @@ message MsgAddLinkedResource { message MsgDeleteLinkedResource { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did string resource_id = 2; // the service id @@ -237,6 +249,7 @@ message MsgDeleteLinkedResource { message MsgAddLinkedClaim { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did LinkedClaim linkedClaim = 2; // the claim to add @@ -246,6 +259,7 @@ message MsgAddLinkedClaim { message MsgDeleteLinkedClaim { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did string claim_id = 2; // the claim id @@ -255,6 +269,7 @@ message MsgDeleteLinkedClaim { message MsgAddLinkedEntity { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the iid LinkedEntity linkedEntity = 2; // the entity to add @@ -264,6 +279,7 @@ message MsgAddLinkedEntity { message MsgDeleteLinkedEntity { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the iid string entity_id = 2; // the entity id @@ -273,6 +289,7 @@ message MsgDeleteLinkedEntity { message MsgAddAccordedRight { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did AccordedRight accordedRight = 2; // the Accorded right to add @@ -282,6 +299,7 @@ message MsgAddAccordedRight { message MsgDeleteAccordedRight { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did string right_id = 2; // the Accorded right id @@ -291,6 +309,7 @@ message MsgDeleteAccordedRight { message MsgAddIidContext { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did Context context = 2; // the context to add @@ -300,6 +319,7 @@ message MsgAddIidContext { message MsgDeactivateIID { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did bool state = 2; @@ -309,6 +329,7 @@ message MsgDeactivateIID { message MsgDeleteIidContext { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; string id = 1; // the did string contextKey = 2; // the context key diff --git a/proto/ixo/smartaccount/v1beta1/genesis.proto b/proto/ixo/smartaccount/v1beta1/genesis.proto new file mode 100644 index 00000000..bc9dc8b8 --- /dev/null +++ b/proto/ixo/smartaccount/v1beta1/genesis.proto @@ -0,0 +1,35 @@ +syntax = "proto3"; +package ixo.smartaccount.v1beta1; + +import "gogoproto/gogo.proto"; +import "ixo/smartaccount/v1beta1/params.proto"; +import "ixo/smartaccount/v1beta1/models.proto"; + +option go_package = "github.com/ixofoundation/ixo-blockchain/v3/x/smart-account/types"; + +// AuthenticatorData represents a genesis exported account with Authenticators. +// The address is used as the key, and the account authenticators are stored in +// the authenticators field. +message AuthenticatorData { + // address is an account address, one address can have many authenticators + string address = 1; + + // authenticators are the account's authenticators, these can be multiple + // types including SignatureVerification, AllOfs, CosmWasmAuthenticators, etc + repeated AccountAuthenticator authenticators = 2 + [ (gogoproto.nullable) = false ]; +} + +// GenesisState defines the authenticator module's genesis state. +message GenesisState { + // params define the parameters for the authenticator module. + Params params = 1 [ (gogoproto.nullable) = false ]; + + // next_authenticator_id is the next available authenticator ID. + uint64 next_authenticator_id = 2; + + // authenticator_data contains the data for multiple accounts, each with their + // authenticators. + repeated AuthenticatorData authenticator_data = 3 + [ (gogoproto.nullable) = false ]; +} diff --git a/proto/ixo/smartaccount/v1beta1/models.proto b/proto/ixo/smartaccount/v1beta1/models.proto new file mode 100644 index 00000000..3a0146a3 --- /dev/null +++ b/proto/ixo/smartaccount/v1beta1/models.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; +package ixo.smartaccount.v1beta1; + +option go_package = "github.com/ixofoundation/ixo-blockchain/v3/x/smart-account/types"; + +// AccountAuthenticator represents a foundational model for all authenticators. +// It provides extensibility by allowing concrete types to interpret and +// validate transactions based on the encapsulated data. +message AccountAuthenticator { + // ID uniquely identifies the authenticator instance. + uint64 id = 1; + + // Type specifies the category of the AccountAuthenticator. + // This type information is essential for differentiating authenticators + // and ensuring precise data retrieval from the storage layer. + string type = 2; + + // Config is a versatile field used in conjunction with the specific type of + // account authenticator to facilitate complex authentication processes. + // The interpretation of this field is overloaded, enabling multiple + // authenticators to utilize it for their respective purposes. + bytes config = 3; +} diff --git a/proto/ixo/smartaccount/v1beta1/params.proto b/proto/ixo/smartaccount/v1beta1/params.proto new file mode 100644 index 00000000..06284909 --- /dev/null +++ b/proto/ixo/smartaccount/v1beta1/params.proto @@ -0,0 +1,26 @@ +syntax = "proto3"; +package ixo.smartaccount.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/ixofoundation/ixo-blockchain/v3/x/smart-account/types"; + +// Params defines the parameters for the module. +message Params { + // MaximumUnauthenticatedGas defines the maximum amount of gas that can be + // used to authenticate a transaction in ante handler without having fee payer + // authenticated. + uint64 maximum_unauthenticated_gas = 1 + [ (gogoproto.moretags) = "yaml:\"maximum_unauthenticated_gas\"" ]; + + // IsSmartAccountActive defines the state of the authenticator. + // If set to false, the authenticator module will not be used + // and the classic cosmos sdk authentication will be used instead. + bool is_smart_account_active = 2 + [ (gogoproto.moretags) = "yaml:\"is_smart_account_active\"" ]; + + // CircuitBreakerControllers defines list of addresses that are allowed to + // set is_smart_account_active without going through governance. + repeated string circuit_breaker_controllers = 3 + [ (gogoproto.moretags) = "yaml:\"circuit_breaker_controllers\"" ]; +} diff --git a/proto/ixo/smartaccount/v1beta1/query.proto b/proto/ixo/smartaccount/v1beta1/query.proto new file mode 100644 index 00000000..53e0a237 --- /dev/null +++ b/proto/ixo/smartaccount/v1beta1/query.proto @@ -0,0 +1,57 @@ +syntax = "proto3"; +package ixo.smartaccount.v1beta1; + +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ixo/smartaccount/v1beta1/params.proto"; +import "ixo/smartaccount/v1beta1/models.proto"; + +option go_package = "github.com/ixofoundation/ixo-blockchain/v3/x/smart-account/types"; + +// Query defines the gRPC querier service. +service Query { + // Parameters queries the parameters of the module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/ixo/smartaccount/params"; + } + + rpc GetAuthenticator(GetAuthenticatorRequest) + returns (GetAuthenticatorResponse) { + option (google.api.http).get = + "/ixo/smartaccount/authenticator/{account}/{authenticator_id}"; + } + + rpc GetAuthenticators(GetAuthenticatorsRequest) + returns (GetAuthenticatorsResponse) { + option (google.api.http).get = "/ixo/smartaccount/authenticators/{account}"; + } +} + +// QueryParamsRequest is request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is response type for the Query/Params RPC method. +message QueryParamsResponse { + // params holds all the parameters of this module. + Params params = 1 [ (gogoproto.nullable) = false ]; +} + +// MsgGetAuthenticatorsRequest defines the Msg/GetAuthenticators request type. +message GetAuthenticatorsRequest { string account = 1; } + +// MsgGetAuthenticatorsResponse defines the Msg/GetAuthenticators response type. +message GetAuthenticatorsResponse { + repeated AccountAuthenticator account_authenticators = 1; +} + +// MsgGetAuthenticatorRequest defines the Msg/GetAuthenticator request type. +message GetAuthenticatorRequest { + string account = 1; + uint64 authenticator_id = 2; +} + +// MsgGetAuthenticatorResponse defines the Msg/GetAuthenticator response type. +message GetAuthenticatorResponse { + AccountAuthenticator account_authenticator = 1; +} \ No newline at end of file diff --git a/proto/ixo/smartaccount/v1beta1/tx.proto b/proto/ixo/smartaccount/v1beta1/tx.proto new file mode 100644 index 00000000..9cd3f205 --- /dev/null +++ b/proto/ixo/smartaccount/v1beta1/tx.proto @@ -0,0 +1,64 @@ +syntax = "proto3"; +package ixo.smartaccount.v1beta1; + +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/ixofoundation/ixo-blockchain/v3/x/smart-account/types"; + +// Msg defines the Msg service. +service Msg { + rpc AddAuthenticator(MsgAddAuthenticator) + returns (MsgAddAuthenticatorResponse); + rpc RemoveAuthenticator(MsgRemoveAuthenticator) + returns (MsgRemoveAuthenticatorResponse); + + // SetActiveState sets the active state of the authenticator. + // Primarily used for circuit breaking. + rpc SetActiveState(MsgSetActiveState) returns (MsgSetActiveStateResponse); +} + +// MsgAddAuthenticatorRequest defines the Msg/AddAuthenticator request type. +message MsgAddAuthenticator { + option (amino.name) = "ixo/smartaccount/add-authenticator"; + option (cosmos.msg.v1.signer) = "sender"; + + string sender = 1; + string authenticator_type = 2; + bytes data = 3; +} + +// MsgAddAuthenticatorResponse defines the Msg/AddAuthenticator response type. +message MsgAddAuthenticatorResponse { bool success = 1; } + +// MsgRemoveAuthenticatorRequest defines the Msg/RemoveAuthenticator request +// type. +message MsgRemoveAuthenticator { + option (amino.name) = "ixo/smartaccount/remove-authenticator"; + option (cosmos.msg.v1.signer) = "sender"; + + string sender = 1; + uint64 id = 2; +} + +// MsgRemoveAuthenticatorResponse defines the Msg/RemoveAuthenticator response +// type. +message MsgRemoveAuthenticatorResponse { bool success = 1; } + +message MsgSetActiveState { + option (amino.name) = "ixo/smartaccount/set-active-state"; + option (cosmos.msg.v1.signer) = "sender"; + + string sender = 1; + bool active = 2; +} + +message MsgSetActiveStateResponse {} + +// TxExtension allows for additional authenticator-specific data in +// transactions. +message TxExtension { + // selected_authenticators holds the authenticator_id for the chosen + // authenticator per message. + repeated uint64 selected_authenticators = 1; +} diff --git a/proto/ixo/token/v1beta1/tx.proto b/proto/ixo/token/v1beta1/tx.proto index 801c297f..2453d20f 100644 --- a/proto/ixo/token/v1beta1/tx.proto +++ b/proto/ixo/token/v1beta1/tx.proto @@ -6,6 +6,7 @@ import "ixo/iid/v1beta1/iid.proto"; import "cosmos_proto/cosmos.proto"; import "ixo/token/v1beta1/token.proto"; import "google/protobuf/timestamp.proto"; +import "cosmos/msg/v1/msg.proto"; option go_package = "github.com/ixofoundation/ixo-blockchain/v3/x/token/types"; @@ -21,6 +22,8 @@ service Msg { } message MsgCreateToken { + option (cosmos.msg.v1.signer) = "minter"; + // address of minter string minter = 1; // class is the token protocol entity DID (validated) @@ -48,6 +51,8 @@ message MsgCreateToken { message MsgCreateTokenResponse {} message MsgMintToken { + option (cosmos.msg.v1.signer) = "minter"; + // address of minter string minter = 1; string contract_address = 2; @@ -80,6 +85,8 @@ message MintBatch { message MsgMintTokenResponse {} message MsgTransferToken { + option (cosmos.msg.v1.signer) = "owner"; + // address of owner string owner = 1; // address of receiver @@ -104,6 +111,8 @@ message TokenBatch { } message MsgRetireToken { + option (cosmos.msg.v1.signer) = "owner"; + // address of owner string owner = 1; // tokens to retire, all tokens must be in same smart contract @@ -124,6 +133,8 @@ message MsgRetireToken { message MsgRetireTokenResponse {} message MsgCancelToken { + option (cosmos.msg.v1.signer) = "owner"; + // address of owner string owner = 1; // tokens to retire, all tokens must be in same smart contract @@ -136,6 +147,8 @@ message MsgCancelToken { message MsgCancelTokenResponse {} message MsgPauseToken { + option (cosmos.msg.v1.signer) = "minter"; + // address of minter string minter = 1; string contract_address = 2; @@ -146,6 +159,8 @@ message MsgPauseToken { message MsgPauseTokenResponse {} message MsgStopToken { + option (cosmos.msg.v1.signer) = "minter"; + // address of minter string minter = 1; string contract_address = 2; diff --git a/src/codegen/cosmos/bundle.ts b/src/codegen/cosmos/bundle.ts index e6f8e0c9..60bac0be 100644 --- a/src/codegen/cosmos/bundle.ts +++ b/src/codegen/cosmos/bundle.ts @@ -128,49 +128,49 @@ import * as _128 from "./upgrade/v1beta1/upgrade"; import * as _129 from "./vesting/module/v1/module"; import * as _130 from "./vesting/v1beta1/tx"; import * as _131 from "./vesting/v1beta1/vesting"; -import * as _233 from "./app/v1alpha1/query.rpc.Query"; -import * as _234 from "./auth/v1beta1/query.rpc.Query"; -import * as _235 from "./authz/v1beta1/query.rpc.Query"; -import * as _236 from "./autocli/v1/query.rpc.Query"; -import * as _237 from "./bank/v1beta1/query.rpc.Query"; -import * as _238 from "./base/node/v1beta1/query.rpc.Service"; -import * as _239 from "./base/tendermint/v1beta1/query.rpc.Service"; -import * as _240 from "./circuit/v1/query.rpc.Query"; -import * as _241 from "./consensus/v1/query.rpc.Query"; -import * as _242 from "./distribution/v1beta1/query.rpc.Query"; -import * as _243 from "./evidence/v1beta1/query.rpc.Query"; -import * as _244 from "./feegrant/v1beta1/query.rpc.Query"; -import * as _245 from "./gov/v1/query.rpc.Query"; -import * as _246 from "./gov/v1beta1/query.rpc.Query"; -import * as _247 from "./group/v1/query.rpc.Query"; -import * as _248 from "./mint/v1beta1/query.rpc.Query"; -import * as _249 from "./nft/v1beta1/query.rpc.Query"; -import * as _250 from "./orm/query/v1alpha1/query.rpc.Query"; -import * as _251 from "./params/v1beta1/query.rpc.Query"; -import * as _252 from "./slashing/v1beta1/query.rpc.Query"; -import * as _253 from "./staking/v1beta1/query.rpc.Query"; -import * as _254 from "./tx/v1beta1/service.rpc.Service"; -import * as _255 from "./upgrade/v1beta1/query.rpc.Query"; -import * as _256 from "./auth/v1beta1/tx.rpc.msg"; -import * as _257 from "./authz/v1beta1/tx.rpc.msg"; -import * as _258 from "./bank/v1beta1/tx.rpc.msg"; -import * as _259 from "./circuit/v1/tx.rpc.msg"; -import * as _260 from "./consensus/v1/tx.rpc.msg"; -import * as _261 from "./crisis/v1beta1/tx.rpc.msg"; -import * as _262 from "./distribution/v1beta1/tx.rpc.msg"; -import * as _263 from "./evidence/v1beta1/tx.rpc.msg"; -import * as _264 from "./feegrant/v1beta1/tx.rpc.msg"; -import * as _265 from "./gov/v1/tx.rpc.msg"; -import * as _266 from "./gov/v1beta1/tx.rpc.msg"; -import * as _267 from "./group/v1/tx.rpc.msg"; -import * as _268 from "./mint/v1beta1/tx.rpc.msg"; -import * as _269 from "./nft/v1beta1/tx.rpc.msg"; -import * as _270 from "./slashing/v1beta1/tx.rpc.msg"; -import * as _271 from "./staking/v1beta1/tx.rpc.msg"; -import * as _272 from "./upgrade/v1beta1/tx.rpc.msg"; -import * as _273 from "./vesting/v1beta1/tx.rpc.msg"; -import * as _302 from "./rpc.query"; -import * as _303 from "./rpc.tx"; +import * as _238 from "./app/v1alpha1/query.rpc.Query"; +import * as _239 from "./auth/v1beta1/query.rpc.Query"; +import * as _240 from "./authz/v1beta1/query.rpc.Query"; +import * as _241 from "./autocli/v1/query.rpc.Query"; +import * as _242 from "./bank/v1beta1/query.rpc.Query"; +import * as _243 from "./base/node/v1beta1/query.rpc.Service"; +import * as _244 from "./base/tendermint/v1beta1/query.rpc.Service"; +import * as _245 from "./circuit/v1/query.rpc.Query"; +import * as _246 from "./consensus/v1/query.rpc.Query"; +import * as _247 from "./distribution/v1beta1/query.rpc.Query"; +import * as _248 from "./evidence/v1beta1/query.rpc.Query"; +import * as _249 from "./feegrant/v1beta1/query.rpc.Query"; +import * as _250 from "./gov/v1/query.rpc.Query"; +import * as _251 from "./gov/v1beta1/query.rpc.Query"; +import * as _252 from "./group/v1/query.rpc.Query"; +import * as _253 from "./mint/v1beta1/query.rpc.Query"; +import * as _254 from "./nft/v1beta1/query.rpc.Query"; +import * as _255 from "./orm/query/v1alpha1/query.rpc.Query"; +import * as _256 from "./params/v1beta1/query.rpc.Query"; +import * as _257 from "./slashing/v1beta1/query.rpc.Query"; +import * as _258 from "./staking/v1beta1/query.rpc.Query"; +import * as _259 from "./tx/v1beta1/service.rpc.Service"; +import * as _260 from "./upgrade/v1beta1/query.rpc.Query"; +import * as _261 from "./auth/v1beta1/tx.rpc.msg"; +import * as _262 from "./authz/v1beta1/tx.rpc.msg"; +import * as _263 from "./bank/v1beta1/tx.rpc.msg"; +import * as _264 from "./circuit/v1/tx.rpc.msg"; +import * as _265 from "./consensus/v1/tx.rpc.msg"; +import * as _266 from "./crisis/v1beta1/tx.rpc.msg"; +import * as _267 from "./distribution/v1beta1/tx.rpc.msg"; +import * as _268 from "./evidence/v1beta1/tx.rpc.msg"; +import * as _269 from "./feegrant/v1beta1/tx.rpc.msg"; +import * as _270 from "./gov/v1/tx.rpc.msg"; +import * as _271 from "./gov/v1beta1/tx.rpc.msg"; +import * as _272 from "./group/v1/tx.rpc.msg"; +import * as _273 from "./mint/v1beta1/tx.rpc.msg"; +import * as _274 from "./nft/v1beta1/tx.rpc.msg"; +import * as _275 from "./slashing/v1beta1/tx.rpc.msg"; +import * as _276 from "./staking/v1beta1/tx.rpc.msg"; +import * as _277 from "./upgrade/v1beta1/tx.rpc.msg"; +import * as _278 from "./vesting/v1beta1/tx.rpc.msg"; +import * as _309 from "./rpc.query"; +import * as _310 from "./rpc.tx"; export namespace cosmos { export namespace app { export namespace runtime { @@ -182,7 +182,7 @@ export namespace cosmos { ..._4, ..._5, ..._6, - ..._233 + ..._238 }; } export namespace auth { @@ -196,8 +196,8 @@ export namespace cosmos { ..._9, ..._10, ..._11, - ..._234, - ..._256 + ..._239, + ..._261 }; } export namespace authz { @@ -212,15 +212,15 @@ export namespace cosmos { ..._15, ..._16, ..._17, - ..._235, - ..._257 + ..._240, + ..._262 }; } export namespace autocli { export const v1 = { ..._18, ..._19, - ..._236 + ..._241 }; } export namespace bank { @@ -235,8 +235,8 @@ export namespace cosmos { ..._23, ..._24, ..._25, - ..._237, - ..._258 + ..._242, + ..._263 }; } export namespace base { @@ -248,7 +248,7 @@ export namespace cosmos { export namespace node { export const v1beta1 = { ..._27, - ..._238 + ..._243 }; } export namespace query { @@ -268,7 +268,7 @@ export namespace cosmos { export const v1beta1 = { ..._31, ..._32, - ..._239 + ..._244 }; } export const v1beta1 = { @@ -285,8 +285,8 @@ export namespace cosmos { ..._35, ..._36, ..._37, - ..._240, - ..._259 + ..._245, + ..._264 }; } export namespace consensus { @@ -298,8 +298,8 @@ export namespace cosmos { export const v1 = { ..._39, ..._40, - ..._241, - ..._260 + ..._246, + ..._265 }; } export namespace crisis { @@ -311,7 +311,7 @@ export namespace cosmos { export const v1beta1 = { ..._42, ..._43, - ..._261 + ..._266 }; } export namespace crypto { @@ -349,8 +349,8 @@ export namespace cosmos { ..._52, ..._53, ..._54, - ..._242, - ..._262 + ..._247, + ..._267 }; } export namespace evidence { @@ -364,8 +364,8 @@ export namespace cosmos { ..._57, ..._58, ..._59, - ..._243, - ..._263 + ..._248, + ..._268 }; } export namespace feegrant { @@ -379,8 +379,8 @@ export namespace cosmos { ..._62, ..._63, ..._64, - ..._244, - ..._264 + ..._249, + ..._269 }; } export namespace genutil { @@ -404,16 +404,16 @@ export namespace cosmos { ..._69, ..._70, ..._71, - ..._245, - ..._265 + ..._250, + ..._270 }; export const v1beta1 = { ..._72, ..._73, ..._74, ..._75, - ..._246, - ..._266 + ..._251, + ..._271 }; } export namespace group { @@ -428,8 +428,8 @@ export namespace cosmos { ..._79, ..._80, ..._81, - ..._247, - ..._267 + ..._252, + ..._272 }; } export namespace ics23 { @@ -448,8 +448,8 @@ export namespace cosmos { ..._85, ..._86, ..._87, - ..._248, - ..._268 + ..._253, + ..._273 }; } export namespace msg { @@ -474,8 +474,8 @@ export namespace cosmos { ..._93, ..._94, ..._95, - ..._249, - ..._269 + ..._254, + ..._274 }; } export namespace orm { @@ -487,7 +487,7 @@ export namespace cosmos { export namespace query { export const v1alpha1 = { ..._97, - ..._250 + ..._255 }; } export const v1 = { @@ -506,7 +506,7 @@ export namespace cosmos { export const v1beta1 = { ..._101, ..._102, - ..._251 + ..._256 }; } export namespace query { @@ -530,8 +530,8 @@ export namespace cosmos { ..._107, ..._108, ..._109, - ..._252, - ..._270 + ..._257, + ..._275 }; } export namespace staking { @@ -546,8 +546,8 @@ export namespace cosmos { ..._113, ..._114, ..._115, - ..._253, - ..._271 + ..._258, + ..._276 }; } export namespace store { @@ -587,7 +587,7 @@ export namespace cosmos { export const v1beta1 = { ..._123, ..._124, - ..._254 + ..._259 }; } export namespace upgrade { @@ -600,8 +600,8 @@ export namespace cosmos { ..._126, ..._127, ..._128, - ..._255, - ..._272 + ..._260, + ..._277 }; } export namespace vesting { @@ -613,11 +613,11 @@ export namespace cosmos { export const v1beta1 = { ..._130, ..._131, - ..._273 + ..._278 }; } export const ClientFactory = { - ..._302, - ..._303 + ..._309, + ..._310 }; } \ No newline at end of file diff --git a/src/codegen/cosmwasm/bundle.ts b/src/codegen/cosmwasm/bundle.ts index 0caa77c3..0ccf9d6b 100644 --- a/src/codegen/cosmwasm/bundle.ts +++ b/src/codegen/cosmwasm/bundle.ts @@ -6,10 +6,10 @@ import * as _135 from "./wasm/v1/proposal_legacy"; import * as _136 from "./wasm/v1/query"; import * as _137 from "./wasm/v1/tx"; import * as _138 from "./wasm/v1/types"; -import * as _274 from "./wasm/v1/query.rpc.Query"; -import * as _275 from "./wasm/v1/tx.rpc.msg"; -import * as _304 from "./rpc.query"; -import * as _305 from "./rpc.tx"; +import * as _279 from "./wasm/v1/query.rpc.Query"; +import * as _280 from "./wasm/v1/tx.rpc.msg"; +import * as _311 from "./rpc.query"; +import * as _312 from "./rpc.tx"; export namespace cosmwasm { export namespace wasm { export const v1 = { @@ -20,12 +20,12 @@ export namespace cosmwasm { ..._136, ..._137, ..._138, - ..._274, - ..._275 + ..._279, + ..._280 }; } export const ClientFactory = { - ..._304, - ..._305 + ..._311, + ..._312 }; } \ No newline at end of file diff --git a/src/codegen/ibc/bundle.ts b/src/codegen/ibc/bundle.ts index 9db64d16..b7922c58 100644 --- a/src/codegen/ibc/bundle.ts +++ b/src/codegen/ibc/bundle.ts @@ -44,24 +44,24 @@ import * as _188 from "./lightclients/wasm/v1/genesis"; import * as _189 from "./lightclients/wasm/v1/query"; import * as _190 from "./lightclients/wasm/v1/tx"; import * as _191 from "./lightclients/wasm/v1/wasm"; -import * as _276 from "./applications/fee/v1/query.rpc.Query"; -import * as _277 from "./applications/interchain_accounts/controller/v1/query.rpc.Query"; -import * as _278 from "./applications/interchain_accounts/host/v1/query.rpc.Query"; -import * as _279 from "./applications/transfer/v1/query.rpc.Query"; -import * as _280 from "./core/channel/v1/query.rpc.Query"; -import * as _281 from "./core/client/v1/query.rpc.Query"; -import * as _282 from "./core/connection/v1/query.rpc.Query"; -import * as _283 from "./lightclients/wasm/v1/query.rpc.Query"; -import * as _284 from "./applications/fee/v1/tx.rpc.msg"; -import * as _285 from "./applications/interchain_accounts/controller/v1/tx.rpc.msg"; -import * as _286 from "./applications/interchain_accounts/host/v1/tx.rpc.msg"; -import * as _287 from "./applications/transfer/v1/tx.rpc.msg"; -import * as _288 from "./core/channel/v1/tx.rpc.msg"; -import * as _289 from "./core/client/v1/tx.rpc.msg"; -import * as _290 from "./core/connection/v1/tx.rpc.msg"; -import * as _291 from "./lightclients/wasm/v1/tx.rpc.msg"; -import * as _306 from "./rpc.query"; -import * as _307 from "./rpc.tx"; +import * as _281 from "./applications/fee/v1/query.rpc.Query"; +import * as _282 from "./applications/interchain_accounts/controller/v1/query.rpc.Query"; +import * as _283 from "./applications/interchain_accounts/host/v1/query.rpc.Query"; +import * as _284 from "./applications/transfer/v1/query.rpc.Query"; +import * as _285 from "./core/channel/v1/query.rpc.Query"; +import * as _286 from "./core/client/v1/query.rpc.Query"; +import * as _287 from "./core/connection/v1/query.rpc.Query"; +import * as _288 from "./lightclients/wasm/v1/query.rpc.Query"; +import * as _289 from "./applications/fee/v1/tx.rpc.msg"; +import * as _290 from "./applications/interchain_accounts/controller/v1/tx.rpc.msg"; +import * as _291 from "./applications/interchain_accounts/host/v1/tx.rpc.msg"; +import * as _292 from "./applications/transfer/v1/tx.rpc.msg"; +import * as _293 from "./core/channel/v1/tx.rpc.msg"; +import * as _294 from "./core/client/v1/tx.rpc.msg"; +import * as _295 from "./core/connection/v1/tx.rpc.msg"; +import * as _296 from "./lightclients/wasm/v1/tx.rpc.msg"; +import * as _313 from "./rpc.query"; +import * as _314 from "./rpc.tx"; export namespace ibc { export namespace applications { export namespace fee { @@ -72,8 +72,8 @@ export namespace ibc { ..._150, ..._151, ..._152, - ..._276, - ..._284 + ..._281, + ..._289 }; } export namespace interchain_accounts { @@ -82,8 +82,8 @@ export namespace ibc { ..._153, ..._154, ..._155, - ..._277, - ..._285 + ..._282, + ..._290 }; } export namespace genesis { @@ -96,8 +96,8 @@ export namespace ibc { ..._157, ..._158, ..._159, - ..._278, - ..._286 + ..._283, + ..._291 }; } export const v1 = { @@ -113,8 +113,8 @@ export namespace ibc { ..._165, ..._166, ..._167, - ..._279, - ..._287 + ..._284, + ..._292 }; export const v2 = { ..._168 @@ -129,8 +129,8 @@ export namespace ibc { ..._171, ..._172, ..._173, - ..._280, - ..._288 + ..._285, + ..._293 }; } export namespace client { @@ -139,8 +139,8 @@ export namespace ibc { ..._175, ..._176, ..._177, - ..._281, - ..._289 + ..._286, + ..._294 }; } export namespace commitment { @@ -154,8 +154,8 @@ export namespace ibc { ..._180, ..._181, ..._182, - ..._282, - ..._290 + ..._287, + ..._295 }; } export namespace types { @@ -189,13 +189,13 @@ export namespace ibc { ..._189, ..._190, ..._191, - ..._283, - ..._291 + ..._288, + ..._296 }; } } export const ClientFactory = { - ..._306, - ..._307 + ..._313, + ..._314 }; } \ No newline at end of file diff --git a/src/codegen/ixo/bundle.ts b/src/codegen/ixo/bundle.ts index 2b9a1b5c..4cd5ea2a 100644 --- a/src/codegen/ixo/bundle.ts +++ b/src/codegen/ixo/bundle.ts @@ -22,25 +22,32 @@ import * as _211 from "./iid/v1beta1/iid"; import * as _212 from "./iid/v1beta1/query"; import * as _213 from "./iid/v1beta1/tx"; import * as _214 from "./iid/v1beta1/types"; -import * as _215 from "./token/v1beta1/authz"; -import * as _216 from "./token/v1beta1/event"; -import * as _217 from "./token/v1beta1/genesis"; -import * as _218 from "./token/v1beta1/proposal"; -import * as _219 from "./token/v1beta1/query"; -import * as _220 from "./token/v1beta1/token"; -import * as _221 from "./token/v1beta1/tx"; -import * as _292 from "./bonds/v1beta1/query.rpc.Query"; -import * as _293 from "./claims/v1beta1/query.rpc.Query"; -import * as _294 from "./entity/v1beta1/query.rpc.Query"; -import * as _295 from "./iid/v1beta1/query.rpc.Query"; -import * as _296 from "./token/v1beta1/query.rpc.Query"; -import * as _297 from "./bonds/v1beta1/tx.rpc.msg"; -import * as _298 from "./claims/v1beta1/tx.rpc.msg"; -import * as _299 from "./entity/v1beta1/tx.rpc.msg"; -import * as _300 from "./iid/v1beta1/tx.rpc.msg"; -import * as _301 from "./token/v1beta1/tx.rpc.msg"; -import * as _308 from "./rpc.query"; -import * as _309 from "./rpc.tx"; +import * as _215 from "./smartaccount/v1beta1/genesis"; +import * as _216 from "./smartaccount/v1beta1/models"; +import * as _217 from "./smartaccount/v1beta1/params"; +import * as _218 from "./smartaccount/v1beta1/query"; +import * as _219 from "./smartaccount/v1beta1/tx"; +import * as _220 from "./token/v1beta1/authz"; +import * as _221 from "./token/v1beta1/event"; +import * as _222 from "./token/v1beta1/genesis"; +import * as _223 from "./token/v1beta1/proposal"; +import * as _224 from "./token/v1beta1/query"; +import * as _225 from "./token/v1beta1/token"; +import * as _226 from "./token/v1beta1/tx"; +import * as _297 from "./bonds/v1beta1/query.rpc.Query"; +import * as _298 from "./claims/v1beta1/query.rpc.Query"; +import * as _299 from "./entity/v1beta1/query.rpc.Query"; +import * as _300 from "./iid/v1beta1/query.rpc.Query"; +import * as _301 from "./smartaccount/v1beta1/query.rpc.Query"; +import * as _302 from "./token/v1beta1/query.rpc.Query"; +import * as _303 from "./bonds/v1beta1/tx.rpc.msg"; +import * as _304 from "./claims/v1beta1/tx.rpc.msg"; +import * as _305 from "./entity/v1beta1/tx.rpc.msg"; +import * as _306 from "./iid/v1beta1/tx.rpc.msg"; +import * as _307 from "./smartaccount/v1beta1/tx.rpc.msg"; +import * as _308 from "./token/v1beta1/tx.rpc.msg"; +import * as _315 from "./rpc.query"; +import * as _316 from "./rpc.tx"; export namespace ixo { export namespace bonds { export const v1beta1 = { @@ -49,8 +56,8 @@ export namespace ixo { ..._194, ..._195, ..._196, - ..._292, - ..._297 + ..._297, + ..._303 }; } export namespace claims { @@ -61,8 +68,8 @@ export namespace ixo { ..._200, ..._201, ..._202, - ..._293, - ..._298 + ..._298, + ..._304 }; } export namespace entity { @@ -73,8 +80,8 @@ export namespace ixo { ..._206, ..._207, ..._208, - ..._294, - ..._299 + ..._299, + ..._305 }; } export namespace iid { @@ -85,25 +92,36 @@ export namespace ixo { ..._212, ..._213, ..._214, - ..._295, - ..._300 + ..._300, + ..._306 }; } - export namespace token { + export namespace smartaccount { export const v1beta1 = { ..._215, ..._216, ..._217, ..._218, ..._219, + ..._301, + ..._307 + }; + } + export namespace token { + export const v1beta1 = { ..._220, ..._221, - ..._296, - ..._301 + ..._222, + ..._223, + ..._224, + ..._225, + ..._226, + ..._302, + ..._308 }; } export const ClientFactory = { - ..._308, - ..._309 + ..._315, + ..._316 }; } \ No newline at end of file diff --git a/src/codegen/ixo/rpc.query.ts b/src/codegen/ixo/rpc.query.ts index 09ebc0d2..3fcef45d 100644 --- a/src/codegen/ixo/rpc.query.ts +++ b/src/codegen/ixo/rpc.query.ts @@ -95,6 +95,9 @@ export const createRPCQueryClient = async ({ iid: { v1beta1: (await import("./iid/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) }, + smartaccount: { + v1beta1: (await import("./smartaccount/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) + }, token: { v1beta1: (await import("./token/v1beta1/query.rpc.Query")).createRpcQueryExtension(client) } diff --git a/src/codegen/ixo/rpc.tx.ts b/src/codegen/ixo/rpc.tx.ts index b1f5e533..57bc5441 100644 --- a/src/codegen/ixo/rpc.tx.ts +++ b/src/codegen/ixo/rpc.tx.ts @@ -72,6 +72,9 @@ export const createRPCMsgClient = async ({ iid: { v1beta1: new (await import("./iid/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) }, + smartaccount: { + v1beta1: new (await import("./smartaccount/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) + }, token: { v1beta1: new (await import("./token/v1beta1/tx.rpc.msg")).MsgClientImpl(rpc) } diff --git a/src/codegen/ixo/smartaccount/v1beta1/genesis.ts b/src/codegen/ixo/smartaccount/v1beta1/genesis.ts new file mode 100644 index 00000000..6b464b8f --- /dev/null +++ b/src/codegen/ixo/smartaccount/v1beta1/genesis.ts @@ -0,0 +1,174 @@ +//@ts-nocheck +import { AccountAuthenticator, AccountAuthenticatorSDKType } from "./models"; +import { Params, ParamsSDKType } from "./params"; +import { Long, isSet } from "../../../helpers"; +import * as _m0 from "protobufjs/minimal"; +/** + * AuthenticatorData represents a genesis exported account with Authenticators. + * The address is used as the key, and the account authenticators are stored in + * the authenticators field. + */ +export interface AuthenticatorData { + /** address is an account address, one address can have many authenticators */ + address: string; + /** + * authenticators are the account's authenticators, these can be multiple + * types including SignatureVerification, AllOfs, CosmWasmAuthenticators, etc + */ + authenticators: AccountAuthenticator[]; +} +/** + * AuthenticatorData represents a genesis exported account with Authenticators. + * The address is used as the key, and the account authenticators are stored in + * the authenticators field. + */ +export interface AuthenticatorDataSDKType { + address: string; + authenticators: AccountAuthenticatorSDKType[]; +} +/** GenesisState defines the authenticator module's genesis state. */ +export interface GenesisState { + /** params define the parameters for the authenticator module. */ + params?: Params; + /** next_authenticator_id is the next available authenticator ID. */ + nextAuthenticatorId: Long; + /** + * authenticator_data contains the data for multiple accounts, each with their + * authenticators. + */ + authenticatorData: AuthenticatorData[]; +} +/** GenesisState defines the authenticator module's genesis state. */ +export interface GenesisStateSDKType { + params?: ParamsSDKType; + next_authenticator_id: Long; + authenticator_data: AuthenticatorDataSDKType[]; +} +function createBaseAuthenticatorData(): AuthenticatorData { + return { + address: "", + authenticators: [] + }; +} +export const AuthenticatorData = { + encode(message: AuthenticatorData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + for (const v of message.authenticators) { + AccountAuthenticator.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): AuthenticatorData { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAuthenticatorData(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + case 2: + message.authenticators.push(AccountAuthenticator.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): AuthenticatorData { + return { + address: isSet(object.address) ? String(object.address) : "", + authenticators: Array.isArray(object?.authenticators) ? object.authenticators.map((e: any) => AccountAuthenticator.fromJSON(e)) : [] + }; + }, + toJSON(message: AuthenticatorData): unknown { + const obj: any = {}; + message.address !== undefined && (obj.address = message.address); + if (message.authenticators) { + obj.authenticators = message.authenticators.map(e => e ? AccountAuthenticator.toJSON(e) : undefined); + } else { + obj.authenticators = []; + } + return obj; + }, + fromPartial(object: Partial): AuthenticatorData { + const message = createBaseAuthenticatorData(); + message.address = object.address ?? ""; + message.authenticators = object.authenticators?.map(e => AccountAuthenticator.fromPartial(e)) || []; + return message; + } +}; +function createBaseGenesisState(): GenesisState { + return { + params: undefined, + nextAuthenticatorId: Long.UZERO, + authenticatorData: [] + }; +} +export const GenesisState = { + encode(message: GenesisState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.params !== undefined) { + Params.encode(message.params, writer.uint32(10).fork()).ldelim(); + } + if (!message.nextAuthenticatorId.isZero()) { + writer.uint32(16).uint64(message.nextAuthenticatorId); + } + for (const v of message.authenticatorData) { + AuthenticatorData.encode(v!, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGenesisState(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.params = Params.decode(reader, reader.uint32()); + break; + case 2: + message.nextAuthenticatorId = (reader.uint64() as Long); + break; + case 3: + message.authenticatorData.push(AuthenticatorData.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): GenesisState { + return { + params: isSet(object.params) ? Params.fromJSON(object.params) : undefined, + nextAuthenticatorId: isSet(object.nextAuthenticatorId) ? Long.fromValue(object.nextAuthenticatorId) : Long.UZERO, + authenticatorData: Array.isArray(object?.authenticatorData) ? object.authenticatorData.map((e: any) => AuthenticatorData.fromJSON(e)) : [] + }; + }, + toJSON(message: GenesisState): unknown { + const obj: any = {}; + message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined); + message.nextAuthenticatorId !== undefined && (obj.nextAuthenticatorId = (message.nextAuthenticatorId || Long.UZERO).toString()); + if (message.authenticatorData) { + obj.authenticatorData = message.authenticatorData.map(e => e ? AuthenticatorData.toJSON(e) : undefined); + } else { + obj.authenticatorData = []; + } + return obj; + }, + fromPartial(object: Partial): GenesisState { + const message = createBaseGenesisState(); + message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; + message.nextAuthenticatorId = object.nextAuthenticatorId !== undefined && object.nextAuthenticatorId !== null ? Long.fromValue(object.nextAuthenticatorId) : Long.UZERO; + message.authenticatorData = object.authenticatorData?.map(e => AuthenticatorData.fromPartial(e)) || []; + return message; + } +}; \ No newline at end of file diff --git a/src/codegen/ixo/smartaccount/v1beta1/models.ts b/src/codegen/ixo/smartaccount/v1beta1/models.ts new file mode 100644 index 00000000..6287ff10 --- /dev/null +++ b/src/codegen/ixo/smartaccount/v1beta1/models.ts @@ -0,0 +1,100 @@ +//@ts-nocheck +import { Long, isSet, bytesFromBase64, base64FromBytes } from "../../../helpers"; +import * as _m0 from "protobufjs/minimal"; +/** + * AccountAuthenticator represents a foundational model for all authenticators. + * It provides extensibility by allowing concrete types to interpret and + * validate transactions based on the encapsulated data. + */ +export interface AccountAuthenticator { + /** ID uniquely identifies the authenticator instance. */ + id: Long; + /** + * Type specifies the category of the AccountAuthenticator. + * This type information is essential for differentiating authenticators + * and ensuring precise data retrieval from the storage layer. + */ + type: string; + /** + * Config is a versatile field used in conjunction with the specific type of + * account authenticator to facilitate complex authentication processes. + * The interpretation of this field is overloaded, enabling multiple + * authenticators to utilize it for their respective purposes. + */ + config: Uint8Array; +} +/** + * AccountAuthenticator represents a foundational model for all authenticators. + * It provides extensibility by allowing concrete types to interpret and + * validate transactions based on the encapsulated data. + */ +export interface AccountAuthenticatorSDKType { + id: Long; + type: string; + config: Uint8Array; +} +function createBaseAccountAuthenticator(): AccountAuthenticator { + return { + id: Long.UZERO, + type: "", + config: new Uint8Array() + }; +} +export const AccountAuthenticator = { + encode(message: AccountAuthenticator, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (!message.id.isZero()) { + writer.uint32(8).uint64(message.id); + } + if (message.type !== "") { + writer.uint32(18).string(message.type); + } + if (message.config.length !== 0) { + writer.uint32(26).bytes(message.config); + } + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): AccountAuthenticator { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAccountAuthenticator(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = (reader.uint64() as Long); + break; + case 2: + message.type = reader.string(); + break; + case 3: + message.config = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): AccountAuthenticator { + return { + id: isSet(object.id) ? Long.fromValue(object.id) : Long.UZERO, + type: isSet(object.type) ? String(object.type) : "", + config: isSet(object.config) ? bytesFromBase64(object.config) : new Uint8Array() + }; + }, + toJSON(message: AccountAuthenticator): unknown { + const obj: any = {}; + message.id !== undefined && (obj.id = (message.id || Long.UZERO).toString()); + message.type !== undefined && (obj.type = message.type); + message.config !== undefined && (obj.config = base64FromBytes(message.config !== undefined ? message.config : new Uint8Array())); + return obj; + }, + fromPartial(object: Partial): AccountAuthenticator { + const message = createBaseAccountAuthenticator(); + message.id = object.id !== undefined && object.id !== null ? Long.fromValue(object.id) : Long.UZERO; + message.type = object.type ?? ""; + message.config = object.config ?? new Uint8Array(); + return message; + } +}; \ No newline at end of file diff --git a/src/codegen/ixo/smartaccount/v1beta1/params.ts b/src/codegen/ixo/smartaccount/v1beta1/params.ts new file mode 100644 index 00000000..1b11497b --- /dev/null +++ b/src/codegen/ixo/smartaccount/v1beta1/params.ts @@ -0,0 +1,98 @@ +//@ts-nocheck +import { Long, isSet } from "../../../helpers"; +import * as _m0 from "protobufjs/minimal"; +/** Params defines the parameters for the module. */ +export interface Params { + /** + * MaximumUnauthenticatedGas defines the maximum amount of gas that can be + * used to authenticate a transaction in ante handler without having fee payer + * authenticated. + */ + maximumUnauthenticatedGas: Long; + /** + * IsSmartAccountActive defines the state of the authenticator. + * If set to false, the authenticator module will not be used + * and the classic cosmos sdk authentication will be used instead. + */ + isSmartAccountActive: boolean; + /** + * CircuitBreakerControllers defines list of addresses that are allowed to + * set is_smart_account_active without going through governance. + */ + circuitBreakerControllers: string[]; +} +/** Params defines the parameters for the module. */ +export interface ParamsSDKType { + maximum_unauthenticated_gas: Long; + is_smart_account_active: boolean; + circuit_breaker_controllers: string[]; +} +function createBaseParams(): Params { + return { + maximumUnauthenticatedGas: Long.UZERO, + isSmartAccountActive: false, + circuitBreakerControllers: [] + }; +} +export const Params = { + encode(message: Params, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (!message.maximumUnauthenticatedGas.isZero()) { + writer.uint32(8).uint64(message.maximumUnauthenticatedGas); + } + if (message.isSmartAccountActive === true) { + writer.uint32(16).bool(message.isSmartAccountActive); + } + for (const v of message.circuitBreakerControllers) { + writer.uint32(26).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 = createBaseParams(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.maximumUnauthenticatedGas = (reader.uint64() as Long); + break; + case 2: + message.isSmartAccountActive = reader.bool(); + break; + case 3: + message.circuitBreakerControllers.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): Params { + return { + maximumUnauthenticatedGas: isSet(object.maximumUnauthenticatedGas) ? Long.fromValue(object.maximumUnauthenticatedGas) : Long.UZERO, + isSmartAccountActive: isSet(object.isSmartAccountActive) ? Boolean(object.isSmartAccountActive) : false, + circuitBreakerControllers: Array.isArray(object?.circuitBreakerControllers) ? object.circuitBreakerControllers.map((e: any) => String(e)) : [] + }; + }, + toJSON(message: Params): unknown { + const obj: any = {}; + message.maximumUnauthenticatedGas !== undefined && (obj.maximumUnauthenticatedGas = (message.maximumUnauthenticatedGas || Long.UZERO).toString()); + message.isSmartAccountActive !== undefined && (obj.isSmartAccountActive = message.isSmartAccountActive); + if (message.circuitBreakerControllers) { + obj.circuitBreakerControllers = message.circuitBreakerControllers.map(e => e); + } else { + obj.circuitBreakerControllers = []; + } + return obj; + }, + fromPartial(object: Partial): Params { + const message = createBaseParams(); + message.maximumUnauthenticatedGas = object.maximumUnauthenticatedGas !== undefined && object.maximumUnauthenticatedGas !== null ? Long.fromValue(object.maximumUnauthenticatedGas) : Long.UZERO; + message.isSmartAccountActive = object.isSmartAccountActive ?? false; + message.circuitBreakerControllers = object.circuitBreakerControllers?.map(e => e) || []; + return message; + } +}; \ No newline at end of file diff --git a/src/codegen/ixo/smartaccount/v1beta1/query.rpc.Query.ts b/src/codegen/ixo/smartaccount/v1beta1/query.rpc.Query.ts new file mode 100644 index 00000000..eba3b01c --- /dev/null +++ b/src/codegen/ixo/smartaccount/v1beta1/query.rpc.Query.ts @@ -0,0 +1,51 @@ +//@ts-nocheck +import { Rpc } from "../../../helpers"; +import * as _m0 from "protobufjs/minimal"; +import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; +import { QueryParamsRequest, QueryParamsResponse, GetAuthenticatorRequest, GetAuthenticatorResponse, GetAuthenticatorsRequest, GetAuthenticatorsResponse } from "./query"; +/** Query defines the gRPC querier service. */ +export interface Query { + /** Parameters queries the parameters of the module. */ + params(request?: QueryParamsRequest): Promise; + getAuthenticator(request: GetAuthenticatorRequest): Promise; + getAuthenticators(request: GetAuthenticatorsRequest): Promise; +} +export class QueryClientImpl implements Query { + private readonly rpc: Rpc; + constructor(rpc: Rpc) { + this.rpc = rpc; + this.params = this.params.bind(this); + this.getAuthenticator = this.getAuthenticator.bind(this); + this.getAuthenticators = this.getAuthenticators.bind(this); + } + params(request: QueryParamsRequest = {}): Promise { + const data = QueryParamsRequest.encode(request).finish(); + const promise = this.rpc.request("ixo.smartaccount.v1beta1.Query", "Params", data); + return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); + } + getAuthenticator(request: GetAuthenticatorRequest): Promise { + const data = GetAuthenticatorRequest.encode(request).finish(); + const promise = this.rpc.request("ixo.smartaccount.v1beta1.Query", "GetAuthenticator", data); + return promise.then(data => GetAuthenticatorResponse.decode(new _m0.Reader(data))); + } + getAuthenticators(request: GetAuthenticatorsRequest): Promise { + const data = GetAuthenticatorsRequest.encode(request).finish(); + const promise = this.rpc.request("ixo.smartaccount.v1beta1.Query", "GetAuthenticators", data); + return promise.then(data => GetAuthenticatorsResponse.decode(new _m0.Reader(data))); + } +} +export const createRpcQueryExtension = (base: QueryClient) => { + const rpc = createProtobufRpcClient(base); + const queryService = new QueryClientImpl(rpc); + return { + params(request?: QueryParamsRequest): Promise { + return queryService.params(request); + }, + getAuthenticator(request: GetAuthenticatorRequest): Promise { + return queryService.getAuthenticator(request); + }, + getAuthenticators(request: GetAuthenticatorsRequest): Promise { + return queryService.getAuthenticators(request); + } + }; +}; \ No newline at end of file diff --git a/src/codegen/ixo/smartaccount/v1beta1/query.ts b/src/codegen/ixo/smartaccount/v1beta1/query.ts new file mode 100644 index 00000000..d371aa86 --- /dev/null +++ b/src/codegen/ixo/smartaccount/v1beta1/query.ts @@ -0,0 +1,325 @@ +//@ts-nocheck +import { Params, ParamsSDKType } from "./params"; +import { AccountAuthenticator, AccountAuthenticatorSDKType } from "./models"; +import { Long, isSet } from "../../../helpers"; +import * as _m0 from "protobufjs/minimal"; +/** QueryParamsRequest is request type for the Query/Params RPC method. */ +export interface QueryParamsRequest {} +/** QueryParamsRequest is request type for the Query/Params RPC method. */ +export interface QueryParamsRequestSDKType {} +/** QueryParamsResponse is response type for the Query/Params RPC method. */ +export interface QueryParamsResponse { + /** params holds all the parameters of this module. */ + params?: Params; +} +/** QueryParamsResponse is response type for the Query/Params RPC method. */ +export interface QueryParamsResponseSDKType { + params?: ParamsSDKType; +} +/** MsgGetAuthenticatorsRequest defines the Msg/GetAuthenticators request type. */ +export interface GetAuthenticatorsRequest { + /** MsgGetAuthenticatorsRequest defines the Msg/GetAuthenticators request type. */ + account: string; +} +/** MsgGetAuthenticatorsRequest defines the Msg/GetAuthenticators request type. */ +export interface GetAuthenticatorsRequestSDKType { + account: string; +} +/** MsgGetAuthenticatorsResponse defines the Msg/GetAuthenticators response type. */ +export interface GetAuthenticatorsResponse { + accountAuthenticators: AccountAuthenticator[]; +} +/** MsgGetAuthenticatorsResponse defines the Msg/GetAuthenticators response type. */ +export interface GetAuthenticatorsResponseSDKType { + account_authenticators: AccountAuthenticatorSDKType[]; +} +/** MsgGetAuthenticatorRequest defines the Msg/GetAuthenticator request type. */ +export interface GetAuthenticatorRequest { + account: string; + authenticatorId: Long; +} +/** MsgGetAuthenticatorRequest defines the Msg/GetAuthenticator request type. */ +export interface GetAuthenticatorRequestSDKType { + account: string; + authenticator_id: Long; +} +/** MsgGetAuthenticatorResponse defines the Msg/GetAuthenticator response type. */ +export interface GetAuthenticatorResponse { + accountAuthenticator?: AccountAuthenticator; +} +/** MsgGetAuthenticatorResponse defines the Msg/GetAuthenticator response type. */ +export interface GetAuthenticatorResponseSDKType { + account_authenticator?: AccountAuthenticatorSDKType; +} +function createBaseQueryParamsRequest(): QueryParamsRequest { + return {}; +} +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 = createBaseQueryParamsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_: any): QueryParamsRequest { + return {}; + }, + toJSON(_: QueryParamsRequest): unknown { + const obj: any = {}; + return obj; + }, + fromPartial(_: Partial): QueryParamsRequest { + const message = createBaseQueryParamsRequest(); + return message; + } +}; +function createBaseQueryParamsResponse(): QueryParamsResponse { + return { + params: undefined + }; +} +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 = createBaseQueryParamsResponse(); + 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 { + return { + params: isSet(object.params) ? Params.fromJSON(object.params) : undefined + }; + }, + toJSON(message: QueryParamsResponse): unknown { + const obj: any = {}; + message.params !== undefined && (obj.params = message.params ? Params.toJSON(message.params) : undefined); + return obj; + }, + fromPartial(object: Partial): QueryParamsResponse { + const message = createBaseQueryParamsResponse(); + message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined; + return message; + } +}; +function createBaseGetAuthenticatorsRequest(): GetAuthenticatorsRequest { + return { + account: "" + }; +} +export const GetAuthenticatorsRequest = { + encode(message: GetAuthenticatorsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.account !== "") { + writer.uint32(10).string(message.account); + } + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): GetAuthenticatorsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetAuthenticatorsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.account = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): GetAuthenticatorsRequest { + return { + account: isSet(object.account) ? String(object.account) : "" + }; + }, + toJSON(message: GetAuthenticatorsRequest): unknown { + const obj: any = {}; + message.account !== undefined && (obj.account = message.account); + return obj; + }, + fromPartial(object: Partial): GetAuthenticatorsRequest { + const message = createBaseGetAuthenticatorsRequest(); + message.account = object.account ?? ""; + return message; + } +}; +function createBaseGetAuthenticatorsResponse(): GetAuthenticatorsResponse { + return { + accountAuthenticators: [] + }; +} +export const GetAuthenticatorsResponse = { + encode(message: GetAuthenticatorsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.accountAuthenticators) { + AccountAuthenticator.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): GetAuthenticatorsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetAuthenticatorsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.accountAuthenticators.push(AccountAuthenticator.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): GetAuthenticatorsResponse { + return { + accountAuthenticators: Array.isArray(object?.accountAuthenticators) ? object.accountAuthenticators.map((e: any) => AccountAuthenticator.fromJSON(e)) : [] + }; + }, + toJSON(message: GetAuthenticatorsResponse): unknown { + const obj: any = {}; + if (message.accountAuthenticators) { + obj.accountAuthenticators = message.accountAuthenticators.map(e => e ? AccountAuthenticator.toJSON(e) : undefined); + } else { + obj.accountAuthenticators = []; + } + return obj; + }, + fromPartial(object: Partial): GetAuthenticatorsResponse { + const message = createBaseGetAuthenticatorsResponse(); + message.accountAuthenticators = object.accountAuthenticators?.map(e => AccountAuthenticator.fromPartial(e)) || []; + return message; + } +}; +function createBaseGetAuthenticatorRequest(): GetAuthenticatorRequest { + return { + account: "", + authenticatorId: Long.UZERO + }; +} +export const GetAuthenticatorRequest = { + encode(message: GetAuthenticatorRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.account !== "") { + writer.uint32(10).string(message.account); + } + if (!message.authenticatorId.isZero()) { + writer.uint32(16).uint64(message.authenticatorId); + } + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): GetAuthenticatorRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetAuthenticatorRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.account = reader.string(); + break; + case 2: + message.authenticatorId = (reader.uint64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): GetAuthenticatorRequest { + return { + account: isSet(object.account) ? String(object.account) : "", + authenticatorId: isSet(object.authenticatorId) ? Long.fromValue(object.authenticatorId) : Long.UZERO + }; + }, + toJSON(message: GetAuthenticatorRequest): unknown { + const obj: any = {}; + message.account !== undefined && (obj.account = message.account); + message.authenticatorId !== undefined && (obj.authenticatorId = (message.authenticatorId || Long.UZERO).toString()); + return obj; + }, + fromPartial(object: Partial): GetAuthenticatorRequest { + const message = createBaseGetAuthenticatorRequest(); + message.account = object.account ?? ""; + message.authenticatorId = object.authenticatorId !== undefined && object.authenticatorId !== null ? Long.fromValue(object.authenticatorId) : Long.UZERO; + return message; + } +}; +function createBaseGetAuthenticatorResponse(): GetAuthenticatorResponse { + return { + accountAuthenticator: undefined + }; +} +export const GetAuthenticatorResponse = { + encode(message: GetAuthenticatorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.accountAuthenticator !== undefined) { + AccountAuthenticator.encode(message.accountAuthenticator, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): GetAuthenticatorResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetAuthenticatorResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.accountAuthenticator = AccountAuthenticator.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): GetAuthenticatorResponse { + return { + accountAuthenticator: isSet(object.accountAuthenticator) ? AccountAuthenticator.fromJSON(object.accountAuthenticator) : undefined + }; + }, + toJSON(message: GetAuthenticatorResponse): unknown { + const obj: any = {}; + message.accountAuthenticator !== undefined && (obj.accountAuthenticator = message.accountAuthenticator ? AccountAuthenticator.toJSON(message.accountAuthenticator) : undefined); + return obj; + }, + fromPartial(object: Partial): GetAuthenticatorResponse { + const message = createBaseGetAuthenticatorResponse(); + message.accountAuthenticator = object.accountAuthenticator !== undefined && object.accountAuthenticator !== null ? AccountAuthenticator.fromPartial(object.accountAuthenticator) : undefined; + return message; + } +}; \ No newline at end of file diff --git a/src/codegen/ixo/smartaccount/v1beta1/tx.rpc.msg.ts b/src/codegen/ixo/smartaccount/v1beta1/tx.rpc.msg.ts new file mode 100644 index 00000000..fca3f118 --- /dev/null +++ b/src/codegen/ixo/smartaccount/v1beta1/tx.rpc.msg.ts @@ -0,0 +1,38 @@ +//@ts-nocheck +import { Rpc } from "../../../helpers"; +import * as _m0 from "protobufjs/minimal"; +import { MsgAddAuthenticator, MsgAddAuthenticatorResponse, MsgRemoveAuthenticator, MsgRemoveAuthenticatorResponse, MsgSetActiveState, MsgSetActiveStateResponse } from "./tx"; +/** Msg defines the Msg service. */ +export interface Msg { + addAuthenticator(request: MsgAddAuthenticator): Promise; + removeAuthenticator(request: MsgRemoveAuthenticator): Promise; + /** + * SetActiveState sets the active state of the authenticator. + * Primarily used for circuit breaking. + */ + setActiveState(request: MsgSetActiveState): Promise; +} +export class MsgClientImpl implements Msg { + private readonly rpc: Rpc; + constructor(rpc: Rpc) { + this.rpc = rpc; + this.addAuthenticator = this.addAuthenticator.bind(this); + this.removeAuthenticator = this.removeAuthenticator.bind(this); + this.setActiveState = this.setActiveState.bind(this); + } + addAuthenticator(request: MsgAddAuthenticator): Promise { + const data = MsgAddAuthenticator.encode(request).finish(); + const promise = this.rpc.request("ixo.smartaccount.v1beta1.Msg", "AddAuthenticator", data); + return promise.then(data => MsgAddAuthenticatorResponse.decode(new _m0.Reader(data))); + } + removeAuthenticator(request: MsgRemoveAuthenticator): Promise { + const data = MsgRemoveAuthenticator.encode(request).finish(); + const promise = this.rpc.request("ixo.smartaccount.v1beta1.Msg", "RemoveAuthenticator", data); + return promise.then(data => MsgRemoveAuthenticatorResponse.decode(new _m0.Reader(data))); + } + setActiveState(request: MsgSetActiveState): Promise { + const data = MsgSetActiveState.encode(request).finish(); + const promise = this.rpc.request("ixo.smartaccount.v1beta1.Msg", "SetActiveState", data); + return promise.then(data => MsgSetActiveStateResponse.decode(new _m0.Reader(data))); + } +} \ No newline at end of file diff --git a/src/codegen/ixo/smartaccount/v1beta1/tx.ts b/src/codegen/ixo/smartaccount/v1beta1/tx.ts new file mode 100644 index 00000000..a19a68c2 --- /dev/null +++ b/src/codegen/ixo/smartaccount/v1beta1/tx.ts @@ -0,0 +1,442 @@ +//@ts-nocheck +import { Long, isSet, bytesFromBase64, base64FromBytes } from "../../../helpers"; +import * as _m0 from "protobufjs/minimal"; +/** MsgAddAuthenticatorRequest defines the Msg/AddAuthenticator request type. */ +export interface MsgAddAuthenticator { + sender: string; + authenticatorType: string; + data: Uint8Array; +} +/** MsgAddAuthenticatorRequest defines the Msg/AddAuthenticator request type. */ +export interface MsgAddAuthenticatorSDKType { + sender: string; + authenticator_type: string; + data: Uint8Array; +} +/** MsgAddAuthenticatorResponse defines the Msg/AddAuthenticator response type. */ +export interface MsgAddAuthenticatorResponse { + /** MsgAddAuthenticatorResponse defines the Msg/AddAuthenticator response type. */ + success: boolean; +} +/** MsgAddAuthenticatorResponse defines the Msg/AddAuthenticator response type. */ +export interface MsgAddAuthenticatorResponseSDKType { + success: boolean; +} +/** + * MsgRemoveAuthenticatorRequest defines the Msg/RemoveAuthenticator request + * type. + */ +export interface MsgRemoveAuthenticator { + sender: string; + id: Long; +} +/** + * MsgRemoveAuthenticatorRequest defines the Msg/RemoveAuthenticator request + * type. + */ +export interface MsgRemoveAuthenticatorSDKType { + sender: string; + id: Long; +} +/** + * MsgRemoveAuthenticatorResponse defines the Msg/RemoveAuthenticator response + * type. + */ +export interface MsgRemoveAuthenticatorResponse { + /** + * MsgRemoveAuthenticatorResponse defines the Msg/RemoveAuthenticator response + * type. + */ + success: boolean; +} +/** + * MsgRemoveAuthenticatorResponse defines the Msg/RemoveAuthenticator response + * type. + */ +export interface MsgRemoveAuthenticatorResponseSDKType { + success: boolean; +} +export interface MsgSetActiveState { + sender: string; + active: boolean; +} +export interface MsgSetActiveStateSDKType { + sender: string; + active: boolean; +} +export interface MsgSetActiveStateResponse {} +export interface MsgSetActiveStateResponseSDKType {} +/** + * TxExtension allows for additional authenticator-specific data in + * transactions. + */ +export interface TxExtension { + /** + * selected_authenticators holds the authenticator_id for the chosen + * authenticator per message. + */ + selectedAuthenticators: Long[]; +} +/** + * TxExtension allows for additional authenticator-specific data in + * transactions. + */ +export interface TxExtensionSDKType { + selected_authenticators: Long[]; +} +function createBaseMsgAddAuthenticator(): MsgAddAuthenticator { + return { + sender: "", + authenticatorType: "", + data: new Uint8Array() + }; +} +export const MsgAddAuthenticator = { + encode(message: MsgAddAuthenticator, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.sender !== "") { + writer.uint32(10).string(message.sender); + } + if (message.authenticatorType !== "") { + writer.uint32(18).string(message.authenticatorType); + } + if (message.data.length !== 0) { + writer.uint32(26).bytes(message.data); + } + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): MsgAddAuthenticator { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgAddAuthenticator(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.sender = reader.string(); + break; + case 2: + message.authenticatorType = reader.string(); + break; + case 3: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): MsgAddAuthenticator { + return { + sender: isSet(object.sender) ? String(object.sender) : "", + authenticatorType: isSet(object.authenticatorType) ? String(object.authenticatorType) : "", + data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array() + }; + }, + toJSON(message: MsgAddAuthenticator): unknown { + const obj: any = {}; + message.sender !== undefined && (obj.sender = message.sender); + message.authenticatorType !== undefined && (obj.authenticatorType = message.authenticatorType); + message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array())); + return obj; + }, + fromPartial(object: Partial): MsgAddAuthenticator { + const message = createBaseMsgAddAuthenticator(); + message.sender = object.sender ?? ""; + message.authenticatorType = object.authenticatorType ?? ""; + message.data = object.data ?? new Uint8Array(); + return message; + } +}; +function createBaseMsgAddAuthenticatorResponse(): MsgAddAuthenticatorResponse { + return { + success: false + }; +} +export const MsgAddAuthenticatorResponse = { + encode(message: MsgAddAuthenticatorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.success === true) { + writer.uint32(8).bool(message.success); + } + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): MsgAddAuthenticatorResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgAddAuthenticatorResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.success = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): MsgAddAuthenticatorResponse { + return { + success: isSet(object.success) ? Boolean(object.success) : false + }; + }, + toJSON(message: MsgAddAuthenticatorResponse): unknown { + const obj: any = {}; + message.success !== undefined && (obj.success = message.success); + return obj; + }, + fromPartial(object: Partial): MsgAddAuthenticatorResponse { + const message = createBaseMsgAddAuthenticatorResponse(); + message.success = object.success ?? false; + return message; + } +}; +function createBaseMsgRemoveAuthenticator(): MsgRemoveAuthenticator { + return { + sender: "", + id: Long.UZERO + }; +} +export const MsgRemoveAuthenticator = { + encode(message: MsgRemoveAuthenticator, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.sender !== "") { + writer.uint32(10).string(message.sender); + } + if (!message.id.isZero()) { + writer.uint32(16).uint64(message.id); + } + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): MsgRemoveAuthenticator { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgRemoveAuthenticator(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.sender = reader.string(); + break; + case 2: + message.id = (reader.uint64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): MsgRemoveAuthenticator { + return { + sender: isSet(object.sender) ? String(object.sender) : "", + id: isSet(object.id) ? Long.fromValue(object.id) : Long.UZERO + }; + }, + toJSON(message: MsgRemoveAuthenticator): unknown { + const obj: any = {}; + message.sender !== undefined && (obj.sender = message.sender); + message.id !== undefined && (obj.id = (message.id || Long.UZERO).toString()); + return obj; + }, + fromPartial(object: Partial): MsgRemoveAuthenticator { + const message = createBaseMsgRemoveAuthenticator(); + message.sender = object.sender ?? ""; + message.id = object.id !== undefined && object.id !== null ? Long.fromValue(object.id) : Long.UZERO; + return message; + } +}; +function createBaseMsgRemoveAuthenticatorResponse(): MsgRemoveAuthenticatorResponse { + return { + success: false + }; +} +export const MsgRemoveAuthenticatorResponse = { + encode(message: MsgRemoveAuthenticatorResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.success === true) { + writer.uint32(8).bool(message.success); + } + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): MsgRemoveAuthenticatorResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgRemoveAuthenticatorResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.success = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): MsgRemoveAuthenticatorResponse { + return { + success: isSet(object.success) ? Boolean(object.success) : false + }; + }, + toJSON(message: MsgRemoveAuthenticatorResponse): unknown { + const obj: any = {}; + message.success !== undefined && (obj.success = message.success); + return obj; + }, + fromPartial(object: Partial): MsgRemoveAuthenticatorResponse { + const message = createBaseMsgRemoveAuthenticatorResponse(); + message.success = object.success ?? false; + return message; + } +}; +function createBaseMsgSetActiveState(): MsgSetActiveState { + return { + sender: "", + active: false + }; +} +export const MsgSetActiveState = { + encode(message: MsgSetActiveState, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.sender !== "") { + writer.uint32(10).string(message.sender); + } + if (message.active === true) { + writer.uint32(16).bool(message.active); + } + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): MsgSetActiveState { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgSetActiveState(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.sender = reader.string(); + break; + case 2: + message.active = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): MsgSetActiveState { + return { + sender: isSet(object.sender) ? String(object.sender) : "", + active: isSet(object.active) ? Boolean(object.active) : false + }; + }, + toJSON(message: MsgSetActiveState): unknown { + const obj: any = {}; + message.sender !== undefined && (obj.sender = message.sender); + message.active !== undefined && (obj.active = message.active); + return obj; + }, + fromPartial(object: Partial): MsgSetActiveState { + const message = createBaseMsgSetActiveState(); + message.sender = object.sender ?? ""; + message.active = object.active ?? false; + return message; + } +}; +function createBaseMsgSetActiveStateResponse(): MsgSetActiveStateResponse { + return {}; +} +export const MsgSetActiveStateResponse = { + encode(_: MsgSetActiveStateResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): MsgSetActiveStateResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgSetActiveStateResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_: any): MsgSetActiveStateResponse { + return {}; + }, + toJSON(_: MsgSetActiveStateResponse): unknown { + const obj: any = {}; + return obj; + }, + fromPartial(_: Partial): MsgSetActiveStateResponse { + const message = createBaseMsgSetActiveStateResponse(); + return message; + } +}; +function createBaseTxExtension(): TxExtension { + return { + selectedAuthenticators: [] + }; +} +export const TxExtension = { + encode(message: TxExtension, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + writer.uint32(10).fork(); + for (const v of message.selectedAuthenticators) { + writer.uint64(v); + } + writer.ldelim(); + return writer; + }, + decode(input: _m0.Reader | Uint8Array, length?: number): TxExtension { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxExtension(); + 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.selectedAuthenticators.push((reader.uint64() as Long)); + } + } else { + message.selectedAuthenticators.push((reader.uint64() as Long)); + } + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object: any): TxExtension { + return { + selectedAuthenticators: Array.isArray(object?.selectedAuthenticators) ? object.selectedAuthenticators.map((e: any) => Long.fromValue(e)) : [] + }; + }, + toJSON(message: TxExtension): unknown { + const obj: any = {}; + if (message.selectedAuthenticators) { + obj.selectedAuthenticators = message.selectedAuthenticators.map(e => (e || Long.UZERO).toString()); + } else { + obj.selectedAuthenticators = []; + } + return obj; + }, + fromPartial(object: Partial): TxExtension { + const message = createBaseTxExtension(); + message.selectedAuthenticators = object.selectedAuthenticators?.map(e => Long.fromValue(e)) || []; + return message; + } +}; \ No newline at end of file diff --git a/src/codegen/tendermint/bundle.ts b/src/codegen/tendermint/bundle.ts index 081c2899..7f2873d5 100644 --- a/src/codegen/tendermint/bundle.ts +++ b/src/codegen/tendermint/bundle.ts @@ -1,39 +1,39 @@ //@ts-nocheck -import * as _222 from "./abci/types"; -import * as _223 from "./crypto/keys"; -import * as _224 from "./crypto/proof"; -import * as _225 from "./libs/bits/types"; -import * as _226 from "./p2p/types"; -import * as _227 from "./types/block"; -import * as _228 from "./types/evidence"; -import * as _229 from "./types/params"; -import * as _230 from "./types/types"; -import * as _231 from "./types/validator"; -import * as _232 from "./version/types"; +import * as _227 from "./abci/types"; +import * as _228 from "./crypto/keys"; +import * as _229 from "./crypto/proof"; +import * as _230 from "./libs/bits/types"; +import * as _231 from "./p2p/types"; +import * as _232 from "./types/block"; +import * as _233 from "./types/evidence"; +import * as _234 from "./types/params"; +import * as _235 from "./types/types"; +import * as _236 from "./types/validator"; +import * as _237 from "./version/types"; export namespace tendermint { export const abci = { - ..._222 + ..._227 }; export const crypto = { - ..._223, - ..._224 + ..._228, + ..._229 }; export namespace libs { export const bits = { - ..._225 + ..._230 }; } export const p2p = { - ..._226 + ..._231 }; export const types = { - ..._227, - ..._228, - ..._229, - ..._230, - ..._231 + ..._232, + ..._233, + ..._234, + ..._235, + ..._236 }; export const version = { - ..._232 + ..._237 }; } \ No newline at end of file diff --git a/src/queries/index.ts b/src/queries/index.ts index a853a0a8..ce5094c9 100644 --- a/src/queries/index.ts +++ b/src/queries/index.ts @@ -33,6 +33,9 @@ export const createQueryClient = async (rpcEndpoint: string) => { token: { v1beta1: new ixo.token.v1beta1.QueryClientImpl(rpc), }, + smartaccount: { + v1beta1: new ixo.smartaccount.v1beta1.QueryClientImpl(rpc), + }, }, // IBC modules // ================================================ diff --git a/src/stargate_client/customRegistries.ts b/src/stargate_client/customRegistries.ts index 3b2883e6..41f29c29 100644 --- a/src/stargate_client/customRegistries.ts +++ b/src/stargate_client/customRegistries.ts @@ -538,5 +538,20 @@ export const createRegistry = (): Registry => { ixo.claims.v1beta1.MsgUpdateCollectionPayments ); + // Ixo Smart Account module + // ----------------------------------------------------------------------------- + myRegistry.register( + "/ixo.smartaccount.v1beta1.MsgAddAuthenticator", + ixo.smartaccount.v1beta1.MsgAddAuthenticator + ); + myRegistry.register( + "/ixo.smartaccount.v1beta1.MsgRemoveAuthenticator", + ixo.smartaccount.v1beta1.MsgRemoveAuthenticator + ); + myRegistry.register( + "/ixo.smartaccount.v1beta1.MsgSetActiveState", + ixo.smartaccount.v1beta1.MsgSetActiveState + ); + return myRegistry; }; From 215215abbb3173a7cad503184362b2d1f5f22b37 Mon Sep 17 00:00:00 2001 From: Michael Pretorius Date: Tue, 13 Aug 2024 11:49:20 +0200 Subject: [PATCH 02/20] chore: add contract constant ixoSwap mainnet --- src/custom_queries/contract.constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/custom_queries/contract.constants.ts b/src/custom_queries/contract.constants.ts index bcde3414..2232a706 100644 --- a/src/custom_queries/contract.constants.ts +++ b/src/custom_queries/contract.constants.ts @@ -176,6 +176,6 @@ export const contracts = [ name: "ixoswap", path: ["contracts", "ixo", "ixoswap.wasm"], category: "ixo", - code: { devnet: 31, testnet: 30, mainnet: 0 }, + code: { devnet: 31, testnet: 30, mainnet: 29 }, }, ]; From 840aad3b41bfebfb867271cdbd2295cdc426a280 Mon Sep 17 00:00:00 2001 From: Michael Pretorius Date: Fri, 16 Aug 2024 07:37:21 +0200 Subject: [PATCH 03/20] test: update ecs fp claims tests --- __tests__/flows/claims.ts | 43 +- __tests__/modules/Claims.ts | 3 +- __tests__/setup/constants.ts | 7 +- __tests__/specs/ai4g/index.spec.ts | 2 +- .../emerging/fuelPurchases_data.json | 16 +- .../emerging/stoves_ai4g_collection.json | 1026 +++++++++++++++++ src/utils/common.ts | 18 + 7 files changed, 1091 insertions(+), 24 deletions(-) create mode 100644 assets/documents/emerging/stoves_ai4g_collection.json diff --git a/__tests__/flows/claims.ts b/__tests__/flows/claims.ts index bc492ae7..7f71bb39 100644 --- a/__tests__/flows/claims.ts +++ b/__tests__/flows/claims.ts @@ -760,13 +760,30 @@ export const supamotoClaims3 = () => // }); test("Generate Fuel Purchase claims and evaluate them", async () => { - type CollectionType = "Legacy" | "Genesis"; - let collectionToUse: CollectionType; - collectionToUse = "Genesis"; + type CollectionType = "Legacy" | "Genesis" | "ai4g"; + type NetworkType = "mainnet" | "testnet"; - const collectionId = "1"; // testnet and mainnet genesis fuelpurchases - // const collectionId = "5"; // mainnet legacy fuelpurchases - // const collectionId = "8"; // testnet legacy fuelpurchases + let networkToUse: NetworkType = "mainnet"; + let collectionToUse: CollectionType = "ai4g"; + + const collectionToNetworkMapping = { + Genesis: { + mainnet: "1", + testnet: "1", + }, + Legacy: { + mainnet: "5", + testnet: "8", + }, + ai4g: { + mainnet: "32", + testnet: "42", + }, + }; + console.log( + "collection to use: ", + collectionToNetworkMapping[collectionToUse][networkToUse] + ); // first load previous purchases and get only id, then load latest and remove all previous purchases let previousPurchases: string[] = []; @@ -844,6 +861,11 @@ export const supamotoClaims3 = () => ? require("../../assets/documents/emerging/stoves_legacy_collection.json").map( (s: any) => s.externalId ) + : // @ts-ignore + collectionToUse === "ai4g" + ? require("../../assets/documents/emerging/stoves_ai4g_collection.json").map( + (s: any) => s.externalId + ) : require("../../assets/documents/emerging/stoves_genesis_collection.json").map( (s: any) => s.externalId ); @@ -914,7 +936,7 @@ export const supamotoClaims3 = () => console.time("claims"); for (const stovePurchases of purchaseData) { index++; - // if (index < 6) continue; // if want to only mint a certain amount of batches add number here (devnet restart) + // if (index <= 10) continue; // if want to only mint a certain amount of batches add number here (devnet restart) console.log( "starting batch " + @@ -933,7 +955,8 @@ export const supamotoClaims3 = () => EcsCredentialsWorkerUrl + "claims/create", { type: "fuelPurchase", - collectionId: collectionId, + collectionId: + collectionToNetworkMapping[collectionToUse][networkToUse], storage: "cellnode", generate: { type: "FuelPurchaseSupamotoZambia", @@ -946,13 +969,15 @@ export const supamotoClaims3 = () => amount: Number(p.Mass), // amount pellets that bought in kg deviceId: p.Device_ID, // device id protocolDid: + // only legacy has special protocol, rest use Clean Cooking Protocol // @ts-ignore collectionToUse === "Legacy" ? dids.legacyCookingProtocol : null, // custom protocol projectDid: // @ts-ignore - collectionToUse === "Legacy" ? dids.ecsProject : null, // custom project + // collectionToUse === "Legacy" ? dids.ecsProject : null, // custom project + dids.ecsProject, })), }, }, diff --git a/__tests__/modules/Claims.ts b/__tests__/modules/Claims.ts index ea8f56e2..0804a3a6 100644 --- a/__tests__/modules/Claims.ts +++ b/__tests__/modules/Claims.ts @@ -1,4 +1,3 @@ -import Long from "long"; import { WithdrawPaymentConstraints } from "../../src/codegen/ixo/claims/v1beta1/authz"; import { addDays, @@ -10,6 +9,8 @@ import { queryClient, } from "../helpers/common"; import { fee, WalletUsers } from "../helpers/constants"; +// @ts-ignore +import Long from "long"; export const CreateCollection = async ( entityDid: string, diff --git a/__tests__/setup/constants.ts b/__tests__/setup/constants.ts index 437e7e90..780e5146 100644 --- a/__tests__/setup/constants.ts +++ b/__tests__/setup/constants.ts @@ -33,7 +33,6 @@ export const dids = { umuziProjectDid: "did:ixo:entity:b3104e1a5ffcbee06007d29525f3e07b", umuziAssetCollection: "did:ixo:entity:3e7253499daf46aab546ab7d2b884bde", educationAssetDid: "did:ixo:entity:4af7faf72e47f4b91a38750cb6e359a7", - ai4gProtocol: "", ai4gCollection: "", didOracle: "", }; @@ -76,7 +75,6 @@ export const UmuziCredentialsWorkerUrl = // ecsProject: "did:ixo:entity:d9de4952c41124e453f260cfd2c7774a", // legacyCookingProtocol: "did:ixo:entity:9dc2f06bf379c922d2aa8703ba276bc3", // legacyCollection: "did:ixo:entity:314d8d02428debb5584d975910797121", -// ai4gProtocol: "", // ai4gCollection: "did:ixo:entity:4ce80421effb121662866edf66d1cc21", // didOracle: "did:ixo:entity:504a8255ca35e103bc8e3e78f62a5231", // }; @@ -117,7 +115,6 @@ export const UmuziCredentialsWorkerUrl = // legacyCookingProtocol: "did:ixo:entity:f4427ae632de60a6f7ed47f46da32fa2", // legacyCollection: "did:ixo:entity:9f8749d749af260d185f3df6f2206b63", // claimFormObjectsProtocol: "did:ixo:entity:c781ca0a76beae419441dbe27881e44e", -// ai4gProtocol: "", // ai4gCollection: "did:ixo:entity:3448d91ccb919450342958bb187f7eee", // didOracle: "did:ixo:entity:a6e2f215dcfa4131dd299c958fdf1a03", // }; @@ -128,8 +125,8 @@ export const UmuziCredentialsWorkerUrl = // ai4gCollection: "ixo1atkdpd2cmh7tfehvsafpk6f6a0rq74ykekr4j9", // }; -// export const EcsCredentialsWorkerUrl = "http://localhost:3006/"; -// // export const EcsCredentialsWorkerUrl = "https://ecs.credentials.ixo.world/"; +// // export const EcsCredentialsWorkerUrl = "http://localhost:3006/"; +// export const EcsCredentialsWorkerUrl = "https://ecs.credentials.ixo.world/"; // export const ProspectCredentialsWorkerUrl = ""; // export const CarbonCredentialsWorkerUrl = // "https://carbon.credentials.ixo.world/"; diff --git a/__tests__/specs/ai4g/index.spec.ts b/__tests__/specs/ai4g/index.spec.ts index 945f4fe0..f5fa01d1 100644 --- a/__tests__/specs/ai4g/index.spec.ts +++ b/__tests__/specs/ai4g/index.spec.ts @@ -13,7 +13,7 @@ beforeAll(() => Promise.all([createQueryClient(), generateWallets(false)])); // AI4G COLLECTION // ------------------------------------------ // New Protocol creation, set ai4gProtocol in constants.ts -// AI4G.emergingAi4gProtocolsFlow(); // (skip for event) +// AI4G.emergingAi4gProtocolsFlow(); // (no need as we can use the Clean Cooking protocol) // New Collection creation, set ai4gCollection and adminEntityAccounts.legacyCollection in constants.ts // AI4G.ai4gCollectionFlow(); // New Cookstove minting diff --git a/assets/documents/emerging/fuelPurchases_data.json b/assets/documents/emerging/fuelPurchases_data.json index b8911c1c..b301a99d 100644 --- a/assets/documents/emerging/fuelPurchases_data.json +++ b/assets/documents/emerging/fuelPurchases_data.json @@ -1,14 +1,14 @@ { "kgsPellets": { - "average": 33.77906976744186, - "totalClaims": 172, - "totalKgPellets": 5810 + "average": 31.58371040723982, + "totalClaims": 663, + "totalKgPellets": 20940 }, "carbonCredits": { - "average": 369.54302325581307, - "totalClaims": 172, - "totalCarbonCredits": 63561.39999999985 + "average": 345.5257918552071, + "totalClaims": 663, + "totalCarbonCredits": 229083.6000000023 }, - "amountOfStoves": 168, - "amountOfPurchases": 172 + "amountOfStoves": 244, + "amountOfPurchases": 663 } \ No newline at end of file diff --git a/assets/documents/emerging/stoves_ai4g_collection.json b/assets/documents/emerging/stoves_ai4g_collection.json new file mode 100644 index 00000000..d2bb852d --- /dev/null +++ b/assets/documents/emerging/stoves_ai4g_collection.json @@ -0,0 +1,1026 @@ +[ + { + "id": "did:ixo:entity:0009f49b7459a022f9c5fc89460683fe", + "externalId": "S014000675" + }, + { + "id": "did:ixo:entity:01a66413f6f340069eca5d68453c92a5", + "externalId": "S014000317" + }, + { + "id": "did:ixo:entity:02b34c57a1b5097bdf59b13ac864a94e", + "externalId": "S014000066" + }, + { + "id": "did:ixo:entity:02fe2c003acaf73a43743a2f1f149dbd", + "externalId": "S014000791" + }, + { + "id": "did:ixo:entity:046014b634cc83f5387e5605dfe15629", + "externalId": "S014000884" + }, + { + "id": "did:ixo:entity:0484fb0d68fb0a9701091674cddbda82", + "externalId": "S014000539" + }, + { + "id": "did:ixo:entity:057a2e2c8013f2e12fc31d4132d6d4fa", + "externalId": "S014000268" + }, + { + "id": "did:ixo:entity:05b134ffbcce5bdcd6a0f20b9dc4f87e", + "externalId": "S014001471" + }, + { + "id": "did:ixo:entity:05cd92ba7e06bf2398dd3636b4ef6e34", + "externalId": "S014000174" + }, + { + "id": "did:ixo:entity:05fe581376b07405c72d0b7ff0005d8a", + "externalId": "S014000316" + }, + { + "id": "did:ixo:entity:06ea28a54401bbe1e549b0d4239b1482", + "externalId": "S014001369" + }, + { + "id": "did:ixo:entity:0863afb8f3f5b8d85f4e7227267d7cbf", + "externalId": "S014000250" + }, + { + "id": "did:ixo:entity:08c9e009c7c27cfb1c3ac3ba0b4da1a7", + "externalId": "S014001467" + }, + { + "id": "did:ixo:entity:097527e651d13e972e82dc593cb1a554", + "externalId": "S014000251" + }, + { + "id": "did:ixo:entity:0b24ae568d7b443bd82be6dedc9830b7", + "externalId": "S014000451" + }, + { + "id": "did:ixo:entity:0cd904a26d8b6335dd15aa20a50abcc6", + "externalId": "S014001130" + }, + { + "id": "did:ixo:entity:0d1d7cbffd8c93e89c4488838609d25d", + "externalId": "S014000176" + }, + { + "id": "did:ixo:entity:0d1e5420840726deeb63e9bc4ab87ef9", + "externalId": "S014001338" + }, + { + "id": "did:ixo:entity:0d4cae924b8da8234d57632c7a336964", + "externalId": "S014001396" + }, + { + "id": "did:ixo:entity:109cbdc0d2bc825c5276e83bd9dfa776", + "externalId": "S014001397" + }, + { + "id": "did:ixo:entity:10e700cbcfce3215bb85bc9da2d6ebf7", + "externalId": "S014000641" + }, + { + "id": "did:ixo:entity:12b0addcf9250ce9470a5f069e37610f", + "externalId": "S014000654" + }, + { + "id": "did:ixo:entity:1402cc717f85640cb242644860475583", + "externalId": "S014000188" + }, + { + "id": "did:ixo:entity:149a9de61fac89cd524a399c68d35490", + "externalId": "S014000153" + }, + { + "id": "did:ixo:entity:1539fb3b34bcd0d6ac452ad1c01cca3f", + "externalId": "S014000154" + }, + { + "id": "did:ixo:entity:1566f1e82c78674fc1f4be0cadd47bcf", + "externalId": "S014000082" + }, + { + "id": "did:ixo:entity:15b3994269eca11016a5b7ad25ac22f8", + "externalId": "S014000737" + }, + { + "id": "did:ixo:entity:15c41638f33eb16583a578ee100a63e8", + "externalId": "S014000750" + }, + { + "id": "did:ixo:entity:16082ef9ecc2a6feba343a8e76c8d607", + "externalId": "S014000833" + }, + { + "id": "did:ixo:entity:17e55d20ad052b658a904decb86f7bd2", + "externalId": "S014000632" + }, + { + "id": "did:ixo:entity:1827d092d5bda3c1e28327a8eecd393b", + "externalId": "S014000854" + }, + { + "id": "did:ixo:entity:18e2ed854b9f2300016327fb4b4f0637", + "externalId": "S014000633" + }, + { + "id": "did:ixo:entity:1a83f8523105c6681d4b8de6ec017492", + "externalId": "S014000653" + }, + { + "id": "did:ixo:entity:1ac502c9cbe6feb13dde00cc8919b78e", + "externalId": "S014000232" + }, + { + "id": "did:ixo:entity:1d5c0678584ff4daaa1798714a63ee95", + "externalId": "S014000792" + }, + { + "id": "did:ixo:entity:201f194759d0f9daa7c615f46701fb7d", + "externalId": "S014000593" + }, + { + "id": "did:ixo:entity:2196224ed6c92e7d121409b4ef9e1964", + "externalId": "S014000961" + }, + { + "id": "did:ixo:entity:21f137c62503d0a9600177151a41cce1", + "externalId": "S014000848" + }, + { + "id": "did:ixo:entity:2238a3235f41a36cda02d8ba2e07e6c3", + "externalId": "S014000620" + }, + { + "id": "did:ixo:entity:22c7a416ff20a25bce85dc21fcc8ef0a", + "externalId": "S014000259" + }, + { + "id": "did:ixo:entity:25dab950e45aadb08fd138eacc496a22", + "externalId": "S014001128" + }, + { + "id": "did:ixo:entity:270d5f6ec4d95f0190f217bef85d6446", + "externalId": "S014000060" + }, + { + "id": "did:ixo:entity:2712270ddf44d88ff647048cda508ccb", + "externalId": "S014001160" + }, + { + "id": "did:ixo:entity:2714cba32b3648ab88bfcddb4cf7b3c9", + "externalId": "S014001399" + }, + { + "id": "did:ixo:entity:284a85aead46f3fd92f6714b519658b3", + "externalId": "S014000265" + }, + { + "id": "did:ixo:entity:287c737b922414bac3409535160e084a", + "externalId": "S014001014" + }, + { + "id": "did:ixo:entity:2af93915499c0130c99f518bcd6bcad8", + "externalId": "S014000748" + }, + { + "id": "did:ixo:entity:2d45a4370de7f52ba576f2b0b77a0928", + "externalId": "S014000454" + }, + { + "id": "did:ixo:entity:2d761e5808231c499944d8c51573fd3e", + "externalId": "S014000847" + }, + { + "id": "did:ixo:entity:2d777bc032b78d241423fa692c089173", + "externalId": "S014001392" + }, + { + "id": "did:ixo:entity:2e69494dbb3696eb5b8777f7f6fd6923", + "externalId": "S014000439" + }, + { + "id": "did:ixo:entity:2eb667ec0f647ccdb182100565ccab13", + "externalId": "S014001437" + }, + { + "id": "did:ixo:entity:2f7ec9d984a0f38bdc4d42cb059c6cbf", + "externalId": "S014001161" + }, + { + "id": "did:ixo:entity:30e69b7b8d73a5c5aec82a409af960f3", + "externalId": "S014001125" + }, + { + "id": "did:ixo:entity:3221766c739681e8d6bb4c84358cbddb", + "externalId": "S014000106" + }, + { + "id": "did:ixo:entity:326c94a558526715ea1d27bf6b0c3c21", + "externalId": "S014001440" + }, + { + "id": "did:ixo:entity:346ea02077223078e3e14be1d5c80861", + "externalId": "S014000070" + }, + { + "id": "did:ixo:entity:35f09ecb848032333e5b67b38b2e3d53", + "externalId": "S014000089" + }, + { + "id": "did:ixo:entity:370548c87b4221003cdc077adec95448", + "externalId": "S014000782" + }, + { + "id": "did:ixo:entity:3844c8842a8d03c2fc57aaf622870fa6", + "externalId": "S014000323" + }, + { + "id": "did:ixo:entity:3a139d17d1911cb3e5dedd6aa7a88ad9", + "externalId": "S014000350" + }, + { + "id": "did:ixo:entity:3a7b2a8889c4729bcfd97303769b2194", + "externalId": "S014000450" + }, + { + "id": "did:ixo:entity:3ae3e842cef3be6c2cfab1ac4d6ade34", + "externalId": "S014001354" + }, + { + "id": "did:ixo:entity:3b4b938fc3549f5215fd236fa5b63021", + "externalId": "S014000309" + }, + { + "id": "did:ixo:entity:3c2b21ff234a662a80304932d1d1a07f", + "externalId": "S014000722" + }, + { + "id": "did:ixo:entity:3d4892fcf5b2ea9a0a7da1eb496bf84a", + "externalId": "S014000538" + }, + { + "id": "did:ixo:entity:3d6096117461f52fed1afab0e6ccc1d6", + "externalId": "S014000447" + }, + { + "id": "did:ixo:entity:3f05b6ed89e88e0dcf6759cd7ee7c17d", + "externalId": "S014000650" + }, + { + "id": "did:ixo:entity:3fc639cc55f2a856a9d9f8d018719b42", + "externalId": "S014001355" + }, + { + "id": "did:ixo:entity:3ffe85d84bda9fae7a239cfe323e5de2", + "externalId": "S014001188" + }, + { + "id": "did:ixo:entity:410704c1363e61574dfae8446c2e6b77", + "externalId": "S014000869" + }, + { + "id": "did:ixo:entity:41ba71f760ac2219175a97c03b2a2b6c", + "externalId": "S014000210" + }, + { + "id": "did:ixo:entity:41f1def616e6a7332d438bb4f109e6c3", + "externalId": "S014000802" + }, + { + "id": "did:ixo:entity:43135ff27bc47ed48ae843daae243d71", + "externalId": "S014001371" + }, + { + "id": "did:ixo:entity:434a672f66420f5779cc35d823330b7f", + "externalId": "S014000915" + }, + { + "id": "did:ixo:entity:44a8637e32121685e8e0fa8f1384d90c", + "externalId": "S014000784" + }, + { + "id": "did:ixo:entity:4500ee23945ef842041cabc8be695f33", + "externalId": "S014001134" + }, + { + "id": "did:ixo:entity:45058ed717cdbaf01a5883c27a1b1696", + "externalId": "S014001189" + }, + { + "id": "did:ixo:entity:451997fe09bba5e9dc2ffba18a3fe603", + "externalId": "S014001137" + }, + { + "id": "did:ixo:entity:451de0e927257a0735fe6f8fe586b9e8", + "externalId": "S014001043" + }, + { + "id": "did:ixo:entity:460bc7c766378bb75f537c727b9e0867", + "externalId": "S014000050" + }, + { + "id": "did:ixo:entity:462b38a9bf196a43d70a47aa6cc1a1fa", + "externalId": "S014001465" + }, + { + "id": "did:ixo:entity:486478622acaa5273b4be509a68d0963", + "externalId": "S014000296" + }, + { + "id": "did:ixo:entity:4912f742a9f811bec12765b961f1c724", + "externalId": "S014000448" + }, + { + "id": "did:ixo:entity:49d5cd85bee409ed3712ba877126d644", + "externalId": "S014001196" + }, + { + "id": "did:ixo:entity:4a3ab0eab1738ab0bb488d945cb6b466", + "externalId": "S014000825" + }, + { + "id": "did:ixo:entity:4b4f2e9a0576cdf14c8a63bd72c647ce", + "externalId": "S014000617" + }, + { + "id": "did:ixo:entity:4cb86c9fbbe7e7998d93bc9f1ad8d6b0", + "externalId": "S014000901" + }, + { + "id": "did:ixo:entity:4ce80421effb121662866edf66d1cc21", + "externalId": "S014000809" + }, + { + "id": "did:ixo:entity:4d0772b9e9f3f80215e835f6bda54850", + "externalId": "S014000526" + }, + { + "id": "did:ixo:entity:4eab1b27ad9b65151d7c83a0f1802cc1", + "externalId": "S014001380" + }, + { + "id": "did:ixo:entity:4f8786399bf0a2c66d406bf7e6142558", + "externalId": "S014000264" + }, + { + "id": "did:ixo:entity:5026498946ba6bbc1dd6fc0ed869f9fb", + "externalId": "S014000906" + }, + { + "id": "did:ixo:entity:512d36e9ca4b52760eca61e2dc44d4a8", + "externalId": "S014001057" + }, + { + "id": "did:ixo:entity:51810fcdb94c0ed4549035218de68d45", + "externalId": "S014000752" + }, + { + "id": "did:ixo:entity:522118842c60018e1a0ea09decfadbec", + "externalId": "S014001454" + }, + { + "id": "did:ixo:entity:52857f4a0ac83f3d2f7f02bfe8a32cce", + "externalId": "S014000512" + }, + { + "id": "did:ixo:entity:5326e2cf0d1ebe46d69ee2cea8e318a2", + "externalId": "S014000008" + }, + { + "id": "did:ixo:entity:537ddc658150b657c7227ae42aad6944", + "externalId": "S014000126" + }, + { + "id": "did:ixo:entity:53b082dd58940675cf033ebf71a117e4", + "externalId": "S014000535" + }, + { + "id": "did:ixo:entity:57f3e4a61da04e25bd548c5725d1b6a4", + "externalId": "S014000337" + }, + { + "id": "did:ixo:entity:5916648a484010d64745910c6d60e798", + "externalId": "S014001401" + }, + { + "id": "did:ixo:entity:5b7b898a85116d951602156fc0217fc8", + "externalId": "S014000456" + }, + { + "id": "did:ixo:entity:5c1d592c4b051c00c9b67b8e819204b3", + "externalId": "S014000956" + }, + { + "id": "did:ixo:entity:5d677586fbbdb2366e4eaf84a1693f8d", + "externalId": "S014000886" + }, + { + "id": "did:ixo:entity:5f2c9aef49b37b946a4ea4930ef5bab4", + "externalId": "S014000045" + }, + { + "id": "did:ixo:entity:5fb23805acb28e96048390030999c64f", + "externalId": "S014001197" + }, + { + "id": "did:ixo:entity:6018f669c231e8b582e810a73903913b", + "externalId": "S014001162" + }, + { + "id": "did:ixo:entity:60f90a1d31181840fe59b951bcbe00a6", + "externalId": "S014001051" + }, + { + "id": "did:ixo:entity:61146fb73faf28e0ad03455439cbcca3", + "externalId": "S014000046" + }, + { + "id": "did:ixo:entity:6224ea7544d08ffe9f50920577c39e42", + "externalId": "S014000865" + }, + { + "id": "did:ixo:entity:6578e65e6de53d873a4b8f7bd0186a9a", + "externalId": "S014000366" + }, + { + "id": "did:ixo:entity:662d4c06dd4f10ba8ec9f03a5711513d", + "externalId": "S014000772" + }, + { + "id": "did:ixo:entity:6649c262c029d1b5cfb409ce7e62303e", + "externalId": "S014001385" + }, + { + "id": "did:ixo:entity:6acc2eed1d05062232a6559f5058db84", + "externalId": "S014000493" + }, + { + "id": "did:ixo:entity:6bc4fc739e391a42bebc195ff213ec03", + "externalId": "S014000398" + }, + { + "id": "did:ixo:entity:6dfd1d85e9037708821253a04d3414ed", + "externalId": "S014000552" + }, + { + "id": "did:ixo:entity:6f739cdd4f77584cf56f95b09ccf2c62", + "externalId": "S014001323" + }, + { + "id": "did:ixo:entity:6f840e228701240fc8f2a0162d416a02", + "externalId": "S014000902" + }, + { + "id": "did:ixo:entity:702a37e1801c553aa58ee0b14404ece2", + "externalId": "S014000501" + }, + { + "id": "did:ixo:entity:707960ab8eab6b5916f2125d0a09abf0", + "externalId": "S014000201" + }, + { + "id": "did:ixo:entity:7184443a34538ecfc379bb405f8703e5", + "externalId": "S014000628" + }, + { + "id": "did:ixo:entity:71aa5b39ad4e90179456cf5696788dbc", + "externalId": "S014000145" + }, + { + "id": "did:ixo:entity:73102f47a3275cfa5db2afa1f74745dd", + "externalId": "S014001020" + }, + { + "id": "did:ixo:entity:74c5f162bccef2ef91ff7792e2053306", + "externalId": "S014000826" + }, + { + "id": "did:ixo:entity:74d9c4ec70cb3e4d17b531faa53e9de9", + "externalId": "S014001202" + }, + { + "id": "did:ixo:entity:7807c29ad7ad78522ececd3026b8c891", + "externalId": "S014000867" + }, + { + "id": "did:ixo:entity:7875820d7a518838950942d66c5bf35d", + "externalId": "S014000553" + }, + { + "id": "did:ixo:entity:7b0aa34506b73d32f42e970b32527489", + "externalId": "S014000091" + }, + { + "id": "did:ixo:entity:7c092900b31d2d34998cb6806ed29363", + "externalId": "S014000348" + }, + { + "id": "did:ixo:entity:7dcb312f21c5d6887644ea24db374d8c", + "externalId": "S014001393" + }, + { + "id": "did:ixo:entity:7df8533fefe215c83e67107639e360b1", + "externalId": "S014000129" + }, + { + "id": "did:ixo:entity:7f448df4884a85dca8782a54e89af0fd", + "externalId": "S014000827" + }, + { + "id": "did:ixo:entity:7f76712266c14bd2e62a42bea6dfd9e0", + "externalId": "S014000445" + }, + { + "id": "did:ixo:entity:843ae2cfa9ebb80dab369673b21c40e1", + "externalId": "S014000753" + }, + { + "id": "did:ixo:entity:84e92060e197a948cb63954eade82b46", + "externalId": "S014000234" + }, + { + "id": "did:ixo:entity:871e4f866582c453f21a5151354eabc4", + "externalId": "S014000132" + }, + { + "id": "did:ixo:entity:87c918a680903e984f972d455a76e31b", + "externalId": "S014001470" + }, + { + "id": "did:ixo:entity:890587a24f3658c8cd69cc01e9ddbe14", + "externalId": "S014000921" + }, + { + "id": "did:ixo:entity:8a56a6959a3e479f6d3bad1d1d3c25b0", + "externalId": "S014000267" + }, + { + "id": "did:ixo:entity:8b32c2b74cc46b34f9e55d7a71bbcb27", + "externalId": "S014001416" + }, + { + "id": "did:ixo:entity:8cb7456f5f3b0a2b05a01b1bf1e486c6", + "externalId": "S014000434" + }, + { + "id": "did:ixo:entity:8d66305910afc5d24af8c66382e34f2e", + "externalId": "S014000032" + }, + { + "id": "did:ixo:entity:8dcd318b3a915a0f9a79e85d868a1fa6", + "externalId": "S014000204" + }, + { + "id": "did:ixo:entity:923c94fede9f1e8a21deaeaee5bd3bb5", + "externalId": "S014000011" + }, + { + "id": "did:ixo:entity:932d81547953b60a5f22d0fd0e74d67b", + "externalId": "S014001384" + }, + { + "id": "did:ixo:entity:9394db3eeb833c862d1c50280e466ab0", + "externalId": "S014000932" + }, + { + "id": "did:ixo:entity:93cfd30301983b76650b33071e53e2d0", + "externalId": "S014000395" + }, + { + "id": "did:ixo:entity:981534bc8658cf9fef7af6ef4ae3059a", + "externalId": "S014000364" + }, + { + "id": "did:ixo:entity:9882db1a183e236dda82d4d861a36eeb", + "externalId": "S014000813" + }, + { + "id": "did:ixo:entity:9a98191dd6551eda5f0dd2e857b3a3a3", + "externalId": "S014001176" + }, + { + "id": "did:ixo:entity:9b0d56ac4cddc0ba52868ade311d2ac3", + "externalId": "S014001124" + }, + { + "id": "did:ixo:entity:9b13676b6a752ad492af98ed33d52361", + "externalId": "S014000674" + }, + { + "id": "did:ixo:entity:9b4168193e3d297759f77654e0630772", + "externalId": "S014000582" + }, + { + "id": "did:ixo:entity:9cf4a7a8ce148a97e87286b3a047dcad", + "externalId": "S014001198" + }, + { + "id": "did:ixo:entity:9f282155556c1026d5028cf687c578d7", + "externalId": "S014000775" + }, + { + "id": "did:ixo:entity:a01badca38ec25a73ad37f1f224a5158", + "externalId": "S014000673" + }, + { + "id": "did:ixo:entity:a0ca7658a52a1df99eba0651936da7e0", + "externalId": "S014001438" + }, + { + "id": "did:ixo:entity:a0ee499f3faecb7e7bb97f15266d0764", + "externalId": "S014000012" + }, + { + "id": "did:ixo:entity:a105cd5387778ff51a63d510bba11abe", + "externalId": "S014000618" + }, + { + "id": "did:ixo:entity:a23baca8102235ba6b8b9bdb91aadab3", + "externalId": "S014000960" + }, + { + "id": "did:ixo:entity:a337a944829316cee1ead6c360222655", + "externalId": "S014000135" + }, + { + "id": "did:ixo:entity:a7f56f17d90d04392b56ff8b6b70a4a2", + "externalId": "S014000993" + }, + { + "id": "did:ixo:entity:a82dd699a427a9f7ba4f288fb59aef4d", + "externalId": "S014000253" + }, + { + "id": "did:ixo:entity:a887c4a75f8f2f48a2aeed305d04037a", + "externalId": "S014000776" + }, + { + "id": "did:ixo:entity:a9cf96ba3eafd8c01221e3d1fc7ae240", + "externalId": "S014001387" + }, + { + "id": "did:ixo:entity:abd07fc5f4d01c9f8030e5d5ff1c806d", + "externalId": "S014000208" + }, + { + "id": "did:ixo:entity:ad175e53412a587b59e4480e6156bbb9", + "externalId": "S014000734" + }, + { + "id": "did:ixo:entity:ad68b7d291b3b46a0fa2af5fb2e93948", + "externalId": "S014001311" + }, + { + "id": "did:ixo:entity:adf1ee92a735ed5178a75e7f0058ad1c", + "externalId": "S014001133" + }, + { + "id": "did:ixo:entity:ae3df23927aeefd0dbeb5bf165bed390", + "externalId": "S014000187" + }, + { + "id": "did:ixo:entity:af9d5fdd7ebd780d76b75c96747f2031", + "externalId": "S014001170" + }, + { + "id": "did:ixo:entity:b0f13598f126ef75378a40314bbeaff1", + "externalId": "S014000769" + }, + { + "id": "did:ixo:entity:b11fe6c080108604f9fdd3d214650c22", + "externalId": "S014000219" + }, + { + "id": "did:ixo:entity:b3cf0fd6f5ba99009dc288488fcf8f34", + "externalId": "S014000457" + }, + { + "id": "did:ixo:entity:b5474337af11848b3d228dcb6a210d8d", + "externalId": "S014000155" + }, + { + "id": "did:ixo:entity:b7646e24904efc72797f378c040bef47", + "externalId": "S014001382" + }, + { + "id": "did:ixo:entity:b89ffb51ae59d8bf234ddecc4d25233f", + "externalId": "S014000307" + }, + { + "id": "did:ixo:entity:b97902a0b2e9ff18dd045d19ea7eafb2", + "externalId": "S014000165" + }, + { + "id": "did:ixo:entity:b9a38065a68bad61bb2eeebc5cdb5197", + "externalId": "S014001301" + }, + { + "id": "did:ixo:entity:bab1677bb4ef9ca98bd6cd706ab9b90f", + "externalId": "S014000739" + }, + { + "id": "did:ixo:entity:bbd8257a45ecc6ee1cef56788cfdc2b5", + "externalId": "S014000247" + }, + { + "id": "did:ixo:entity:bbed9ed92405880c5843f69de9869fc7", + "externalId": "S014000343" + }, + { + "id": "did:ixo:entity:bc26fabe17acc5912a23dfd95adcf0a3", + "externalId": "S014001403" + }, + { + "id": "did:ixo:entity:bd69be8432bf26c3175e121937fdae1b", + "externalId": "S014001350" + }, + { + "id": "did:ixo:entity:c067e30c814f7cba8d0fad0e198a8f19", + "externalId": "S014001136" + }, + { + "id": "did:ixo:entity:c1401cfb0e10198469956c8f13b3ffee", + "externalId": "S014000638" + }, + { + "id": "did:ixo:entity:c36781c31686605a258b07b8ee134016", + "externalId": "S014000368" + }, + { + "id": "did:ixo:entity:c376085d757aeef71d45578749a1e57b", + "externalId": "S014000822" + }, + { + "id": "did:ixo:entity:c4576124292f599dbed1184e64b81266", + "externalId": "S014000788" + }, + { + "id": "did:ixo:entity:c49416cff5f4c40c146ff729bfac4ba7", + "externalId": "S014001042" + }, + { + "id": "did:ixo:entity:c6650464a3f2790788e8cab64dac7a9b", + "externalId": "S014000637" + }, + { + "id": "did:ixo:entity:c6b80d0e6e25950aaa488b0367bb0481", + "externalId": "S014000524" + }, + { + "id": "did:ixo:entity:c865a3804dce0f14eeee8425744a8174", + "externalId": "S014001019" + }, + { + "id": "did:ixo:entity:c8a71c48f0e88570b1b0b6495a0c51c1", + "externalId": "S014000407" + }, + { + "id": "did:ixo:entity:c92166250fd76210662c71afbc3e4d48", + "externalId": "S014000108" + }, + { + "id": "did:ixo:entity:c9846061a178d0bb6584efc67c747f08", + "externalId": "S014000346" + }, + { + "id": "did:ixo:entity:cc2786ccc54f3ebbc9863b15d04a8caa", + "externalId": "S014001016" + }, + { + "id": "did:ixo:entity:cda10070f68a6f3c74c6a03d4881d2b8", + "externalId": "S014001212" + }, + { + "id": "did:ixo:entity:ce5e8dc7393bd28cd41157659ae28afd", + "externalId": "S014000636" + }, + { + "id": "did:ixo:entity:ce737cdd5feaf58163683a6d21dcd6d2", + "externalId": "S014000248" + }, + { + "id": "did:ixo:entity:ceba58b222b0435905dc31261872f61b", + "externalId": "S014000179" + }, + { + "id": "did:ixo:entity:cf4e79a29fc763ab8e4fc68261315421", + "externalId": "S014000799" + }, + { + "id": "did:ixo:entity:cfd214228ea5562d4a5096b4ff5daa92", + "externalId": "S014001040" + }, + { + "id": "did:ixo:entity:d13d8fc36766eeb48e8c569027d9ecee", + "externalId": "S014000663" + }, + { + "id": "did:ixo:entity:d1d11a6676df3f4363b1d535698c9984", + "externalId": "S014000819" + }, + { + "id": "did:ixo:entity:d28a13e3fb3bd5d0ae630a535ffbfbc0", + "externalId": "S014000196" + }, + { + "id": "did:ixo:entity:d3678f369babb25a6021992623b04e0e", + "externalId": "S014000211" + }, + { + "id": "did:ixo:entity:d3c73d9f104929fb15fad3c111dfce06", + "externalId": "S014000950" + }, + { + "id": "did:ixo:entity:d57bb73e6ef2ecf96efe0e57da4468e0", + "externalId": "S014000079" + }, + { + "id": "did:ixo:entity:d6a0f216f3d9c083847ad27abe0ea53b", + "externalId": "S014001368" + }, + { + "id": "did:ixo:entity:d873bc8c01d7753ea5b66ad958e8d58f", + "externalId": "S014000798" + }, + { + "id": "did:ixo:entity:da7cc7b28040ee19d23d58158326ba3e", + "externalId": "S014001315" + }, + { + "id": "did:ixo:entity:dac2decb8ae575a9ce52d19c89f8a877", + "externalId": "S014000938" + }, + { + "id": "did:ixo:entity:dadb0b156c7cc9e17ff44b8c1782711b", + "externalId": "S014000205" + }, + { + "id": "did:ixo:entity:dead91bbd6973c80e7012b61715ab168", + "externalId": "S014000755" + }, + { + "id": "did:ixo:entity:df1882706c0a6ee69d9ed841dfc7fb59", + "externalId": "S014000362" + }, + { + "id": "did:ixo:entity:df2460bc38d3867e960c320e94c075d5", + "externalId": "S014000911" + }, + { + "id": "did:ixo:entity:e1bf2fb608e3d7a542c7c4f404b3a521", + "externalId": "S014000613" + }, + { + "id": "did:ixo:entity:e2515f9505070a6ba218742cf27943c9", + "externalId": "S014000518" + }, + { + "id": "did:ixo:entity:e3e29c494f81a4a6682b4af5955a5e88", + "externalId": "S014000197" + }, + { + "id": "did:ixo:entity:e469d36f375292d0f789d97c1bde965d", + "externalId": "S014000749" + }, + { + "id": "did:ixo:entity:e47cff662c4a871a060863f9663dc487", + "externalId": "S014000437" + }, + { + "id": "did:ixo:entity:e5c43ea8c115912fe18b5e20dcc124d7", + "externalId": "S014000899" + }, + { + "id": "did:ixo:entity:e61385f5188575e20a4b79dbaaae4ec3", + "externalId": "S014000231" + }, + { + "id": "did:ixo:entity:e63ca52a7f288408080688ddf296b1f2", + "externalId": "S014001455" + }, + { + "id": "did:ixo:entity:e6aadb3b32d26a44c1636a1dfcedcafa", + "externalId": "S014001169" + }, + { + "id": "did:ixo:entity:e73f0b915ec8d5488519f0bc3145ce0f", + "externalId": "S014000031" + }, + { + "id": "did:ixo:entity:e7baf017a2fd5c8030997bfd08389499", + "externalId": "S014000611" + }, + { + "id": "did:ixo:entity:e9008776ceb16cd0c01f1b4df3475b41", + "externalId": "S014001464" + }, + { + "id": "did:ixo:entity:e91a1045ff864bc3a6711a3b4676bb46", + "externalId": "S014000110" + }, + { + "id": "did:ixo:entity:e99ff1fae0b23fc18592dd7a6337c33f", + "externalId": "S014001157" + }, + { + "id": "did:ixo:entity:e9df413f2bd32d7d282f6a6d60e49c38", + "externalId": "S014000098" + }, + { + "id": "did:ixo:entity:ea1188cf1a4ce36bfb92997951c7ec78", + "externalId": "S014001447" + }, + { + "id": "did:ixo:entity:eaa4379af424d5c0a432518613893d8b", + "externalId": "S014001214" + }, + { + "id": "did:ixo:entity:eb4b0dee18b3e5473bf846a067cb827c", + "externalId": "S014001390" + }, + { + "id": "did:ixo:entity:ecc5527313e7ab4041ac13be1295cae7", + "externalId": "S014000947" + }, + { + "id": "did:ixo:entity:eece6af401e46f7f55ff72bd2ce4a000", + "externalId": "S014000881" + }, + { + "id": "did:ixo:entity:f098d2c758db1430179fd4a87bf3c47c", + "externalId": "S014000394" + }, + { + "id": "did:ixo:entity:f136420e62129bff5a4944eb3d17d03c", + "externalId": "S014001150" + }, + { + "id": "did:ixo:entity:f14852c033e6625c9cf8c3ffd3cc04e3", + "externalId": "S014000853" + }, + { + "id": "did:ixo:entity:f61891d74cfb67b0c67e1bf442a23ddd", + "externalId": "S014000449" + }, + { + "id": "did:ixo:entity:f7d2e388c4b6aa08235cbdb1e1b7e425", + "externalId": "S014001193" + }, + { + "id": "did:ixo:entity:f7d4e873ae4227373017e3c2471f7614", + "externalId": "S014001310" + }, + { + "id": "did:ixo:entity:f8be78ce141be3e639057db86fbc3d71", + "externalId": "S014001017" + }, + { + "id": "did:ixo:entity:f92794fe1c313e07fc47772fb326e7e0", + "externalId": "S014000371" + }, + { + "id": "did:ixo:entity:f936abc4be167d042acb79a51ea582b8", + "externalId": "S014000805" + }, + { + "id": "did:ixo:entity:f9d31aab351e52f840f994f0c6d0a734", + "externalId": "S014000455" + }, + { + "id": "did:ixo:entity:fa2cfa5c85a8f76dba6b4ae88164b564", + "externalId": "S014000332" + }, + { + "id": "did:ixo:entity:fa4c60f1648eaac69f0040cb064df648", + "externalId": "S014000015" + }, + { + "id": "did:ixo:entity:fc8bf22474230d438a149a9903fc20d4", + "externalId": "S014000583" + }, + { + "id": "did:ixo:entity:fcf503b9fa767d384e060009aa535734", + "externalId": "S014000917" + }, + { + "id": "did:ixo:entity:fd3bbcea8b5a7d074fa5c51656265beb", + "externalId": "S014000554" + }, + { + "id": "did:ixo:entity:fef31928b853426c0da326e7bb9f343c", + "externalId": "S014000425" + }, + { + "id": "did:ixo:entity:ff581af6e2e071758b1f94835933d038", + "externalId": "S014000520" + }, + { + "id": "did:ixo:entity:ffb6b788b6d6a2e7266d5a3eb7074816", + "externalId": "S014001420" + } +] \ No newline at end of file diff --git a/src/utils/common.ts b/src/utils/common.ts index 40b8948a..c0a2d454 100644 --- a/src/utils/common.ts +++ b/src/utils/common.ts @@ -48,6 +48,24 @@ export const getValueFromEvents = ( return true; }) ?.attributes?.find((a: EventAttribute) => a.key === attribute).value; + + // if no value it could be for chain pre v0.50 where events doesnt include msgIndex + if (!value) { + value = res.events + .find((e: EventSDKType) => { + // first check if type is correct + const isType = e.type === event; + if (!isType) return false; + + // finally check if attribute is present + const isAttribute = e.attributes.find( + (a: EventAttribute) => a.key === attribute + )?.value; + if (isAttribute === undefined) return false; + return true; + }) + ?.attributes?.find((a: EventAttribute) => a.key === attribute).value; + } } else { value = JSON.parse(res.rawLog) [messageIndex]?.events?.find((e: EventSDKType) => e.type === event) From 0223c9b0294781dedbb248f42ac28b5a4e43622e Mon Sep 17 00:00:00 2001 From: Michael Pretorius Date: Mon, 19 Aug 2024 07:25:04 +0200 Subject: [PATCH 04/20] tests: add claim coll payment update test --- __tests__/flows/claims.ts | 26 ++++++++++++++++++++++++++ __tests__/index.spec.ts | 1 + 2 files changed, 27 insertions(+) diff --git a/__tests__/flows/claims.ts b/__tests__/flows/claims.ts index 7f71bb39..7cc11372 100644 --- a/__tests__/flows/claims.ts +++ b/__tests__/flows/claims.ts @@ -193,6 +193,32 @@ export const claimsBasic = () => ); }); +export const claimsUpdateCollectionPayments = () => + describe("Testing the Claims module", () => { + beforeAll(() => + Promise.all([generateNewWallet(WalletUsers.tester, process.env.ROOT_ECS)]) + ); + + let collection = "did:ixo:entity:9f8749d749af260d185f3df6f2206b63"; + let adminAccount = "ixo14x5r6stdxua49tc90jngj7k7xuwhgp9vlm5tc8"; + let collectionId = "6"; + + testMsg( + "/ixo.entity.v1beta1.MsgGrantEntityAccountAuthz MsgUpdateCollectionPayments", + () => + Entity.GrantEntityAccountAuthz( + collection, + "admin", + WalletUsers.tester, + undefined, + "/ixo.claims.v1beta1.MsgUpdateCollectionPayments" + ) + ); + testMsg("/ixo.claims.v1beta1.MsgUpdateCollectionState", () => + Claims.UpdateCollectionPayments(collectionId, adminAccount, adminAccount) + ); + }); + // ------------------------------------------------------------ // flow to run after devnet was reset, please dont change // ------------------------------------------------------------ diff --git a/__tests__/index.spec.ts b/__tests__/index.spec.ts index 96dfa622..6ea2b85e 100644 --- a/__tests__/index.spec.ts +++ b/__tests__/index.spec.ts @@ -58,6 +58,7 @@ IID.generateBlockchainTestUsers(); // ); // Entity.enititiesSetStatus(); // Claims.supamotoClaims2(); +// Claims.claimsUpdateCollectionPayments(); // CosmWasm.swapBasic(); // CosmWasm.swapContract(); // Cosmos.feegrantAllCurrentUsers(); From c58984bd0263cdbb51f67b0245a850984353db0e Mon Sep 17 00:00:00 2001 From: Michael Pretorius Date: Wed, 21 Aug 2024 22:08:03 +0200 Subject: [PATCH 05/20] tests: more token farming tests --- __tests__/flows/entities.ts | 40 +- __tests__/flows/tokens.ts | 36 +- __tests__/modules/Entity.ts | 5 +- __tests__/setup/constants.ts | 18 +- assets/documents/emerging/tokenData.json | 828 +++++++++++++++++++++++ 5 files changed, 888 insertions(+), 39 deletions(-) create mode 100644 assets/documents/emerging/tokenData.json diff --git a/__tests__/flows/entities.ts b/__tests__/flows/entities.ts index a5601bf5..845b006b 100644 --- a/__tests__/flows/entities.ts +++ b/__tests__/flows/entities.ts @@ -74,19 +74,27 @@ export const transferEntities = (mnemonic?: string) => ]) ); - let recipient = "did:x:zQ3shgFA5dLwVfoZKzjk8DkBeF8YDjh7ny9q3MW225828zJno"; - let entities = [ - "did:ixo:entity:091ffc2c61e589f3a6c67f68e9b6919d", - "did:ixo:entity:0be051e4cc6b5bfcf3ff9def61ed456a", - "did:ixo:entity:114d77d59451dc34656f369af5b6413d", - "did:ixo:entity:135834ccc5f22aa54dcb4febffb90cea", - "did:ixo:entity:15d00c57dc5893ec9824666ac87112bd", - "did:ixo:entity:1603997de440933e0303b52417e1789f", - "did:ixo:entity:1643556ec26f1a14e1091028f1261482", - "did:ixo:entity:182c9d25687433d93ea435af565a526e", - "did:ixo:entity:1a88c9837ede30f623cb50e622063603", - "did:ixo:entity:2069414197644729f4dc8849e416787d", - ]; + const recipient = "did:x:zQ3shfMjpKv9etiUbEy8aoet5ZRj7MveK5emNfDrv8tcixNwT"; + const stovesCollection = require("../../assets/documents/emerging/stoves_genesis_collection.json"); + + // can provide static dids of entities to transfer + let entities = ["did:ixo:entity:091ffc2c61e589f3a6c67f68e9b6919d"]; + + // or provide static ids of stoves to transfer, if this list is empty then will use the dids above + // the stoves here must be from the stovesCollection imported above + const stoveIds = ["310025325"]; + + if (stoveIds?.length) { + entities = stoveIds + .map((id) => stovesCollection.find((e) => e.externalId === id)?.id) + ?.filter((e) => !!e); + } + + // paste all dids of entites belonging to user here, so can filter out entities not belonging to user + const entitiesBelongingToUser: string[] = []; + if (entitiesBelongingToUser?.length) { + entities = entities.filter((e) => entitiesBelongingToUser.includes(e)); + } // const entitiesToTransfer = usersEntities // .map((e) => { @@ -97,10 +105,14 @@ export const transferEntities = (mnemonic?: string) => // console.log("entitiesToTransfer", entitiesToTransfer.length); testMsg("/ixo.entity.v1beta1.MsgTransferEntity", async () => { + // console.log(stoveIds.length); + // console.log(entities.length); + // return true as any; const res = await Entity.TransferEntity( WalletUsers.tester, entities as any, - recipient + recipient, + "ECS to Dormant Account" ); return res; }); diff --git a/__tests__/flows/tokens.ts b/__tests__/flows/tokens.ts index dad04de6..ef93012a 100644 --- a/__tests__/flows/tokens.ts +++ b/__tests__/flows/tokens.ts @@ -309,6 +309,8 @@ export const supamotoTokensFarm = () => ); const blocksyncUrlGraphql = "https://blocksync-graphql.ixo.earth"; + const collectionToFarm = dids.ai4gCollection; + const collTokensToUseForTopup = dids.legacyCollection; testMsg("Farm tokens", async () => { const tester = (await getUser(WalletUsers.tester).getAccounts())[0] @@ -320,7 +322,7 @@ export const supamotoTokensFarm = () => owner: { equalTo: "${tester}" } type: { equalTo: "asset/device" } iidById: { - context: { contains: [{ key: "class", val: "${dids.ai4gCollection}" }] } + context: { contains: [{ key: "class", val: "${collectionToFarm}" }] } } } ) { @@ -338,11 +340,15 @@ export const supamotoTokensFarm = () => // const colEntities = (res.data?.data?.entities?.nodes ?? []).slice(0, 2); // if want to test with limited entities console.log("colEntities", colEntities.length); + // console.log(colEntities.map((e) => e.id).slice(0, 70)); + // console.log(colEntities.map((e) => e.id).slice(70)); + // if (!!1) throw new Error("stop"); + const farm = false; - const topup = true; - const amountBalance = 1000; - const chunkSize = 20; - let totalAmounts: number[] = []; + const topup = false; + const amountBalance = 0; + const chunkSize = 10; + let totalAmounts: { did: string; amount: number }[] = []; let index = 0; const getAccountTokensQuery = (address: string) => `query Query { @@ -372,10 +378,9 @@ export const supamotoTokensFarm = () => // ], // ]; - const collTokensToUse = dids.legacyCollection; // filter out userTokens to only use ones with specific collection userTokens = userTokens.filter( - (t) => (t[1] as any).collection === collTokensToUse + (t) => (t[1] as any).collection === collTokensToUseForTopup ); // if (!!1) throw new Error("haha"); @@ -399,12 +404,12 @@ export const supamotoTokensFarm = () => const adminAddress = entity.accounts.find( (a) => a.name === "admin" )?.address; - // console.log( - // "farming/topup for entity ", - // entity.id, - // adminAddress, - // index - // ); + console.log( + "farming/topup for entity ", + entity.id, + adminAddress, + index + ); const tokensRes = await getAccountTokens(adminAddress); const tokens = Object.entries( @@ -416,7 +421,7 @@ export const supamotoTokensFarm = () => (r: any, t: any) => r + (t[1].amount ?? 0), 0 ) as number; - totalAmounts.push(totalAmount); + totalAmounts.push({ did: entity.id, amount: totalAmount }); if (farm && totalAmount > amountBalance) { let amountToFarm = totalAmount - amountBalance; @@ -501,6 +506,9 @@ export const supamotoTokensFarm = () => } } + // sort totalAmounts by amount, highest first + totalAmounts.sort((a, b) => b.amount - a.amount); + console.log("Create file to save tokens"); saveFileToPath( ["documents", "emerging", "tokenData.json"], diff --git a/__tests__/modules/Entity.ts b/__tests__/modules/Entity.ts index 628e1d80..3c03bb50 100644 --- a/__tests__/modules/Entity.ts +++ b/__tests__/modules/Entity.ts @@ -62,7 +62,8 @@ export const CreateEntity = async ( export const TransferEntity = async ( signer: WalletUsers = WalletUsers.tester, entities: string[], - recipientDid?: string + recipientDid?: string, + memo?: string ) => { const client = await createClient(getUser(signer)); @@ -91,7 +92,7 @@ export const TransferEntity = async ( messages.length, await client.simulate(myAddress, messages, undefined) ), - "ECS to Sigma" + memo || "ECS to Sigma" ); return response; }; diff --git a/__tests__/setup/constants.ts b/__tests__/setup/constants.ts index 780e5146..072a276c 100644 --- a/__tests__/setup/constants.ts +++ b/__tests__/setup/constants.ts @@ -43,15 +43,15 @@ export const adminEntityAccounts = { ai4gCollection: "", }; -// export const EcsCredentialsWorkerUrl = "http://localhost:3000/"; -export const EcsCredentialsWorkerUrl = - "https://ecs.credentials.devnet.ixo.earth/"; -export const ProspectCredentialsWorkerUrl = - "https://prospect.credentials.devnet.ixo.earth/"; -export const CarbonCredentialsWorkerUrl = - "https://carbon.credentials.devnet.ixo.earth/"; -export const UmuziCredentialsWorkerUrl = - "https://umuzi.credentials.devnet.ixo.earth/"; +// // export const EcsCredentialsWorkerUrl = "http://localhost:3000/"; +// export const EcsCredentialsWorkerUrl = +// "https://ecs.credentials.devnet.ixo.earth/"; +// export const ProspectCredentialsWorkerUrl = +// "https://prospect.credentials.devnet.ixo.earth/"; +// export const CarbonCredentialsWorkerUrl = +// "https://carbon.credentials.devnet.ixo.earth/"; +// export const UmuziCredentialsWorkerUrl = +// "https://umuzi.credentials.devnet.ixo.earth/"; // TESTNET // ======================================== diff --git a/assets/documents/emerging/tokenData.json b/assets/documents/emerging/tokenData.json new file mode 100644 index 00000000..aa85e40d --- /dev/null +++ b/assets/documents/emerging/tokenData.json @@ -0,0 +1,828 @@ +{ + "totalAmounts": [ + { + "did": "did:ixo:entity:3a139d17d1911cb3e5dedd6aa7a88ad9", + "amount": 2526 + }, + { + "did": "did:ixo:entity:046014b634cc83f5387e5605dfe15629", + "amount": 2000 + }, + { + "did": "did:ixo:entity:0484fb0d68fb0a9701091674cddbda82", + "amount": 2000 + }, + { + "did": "did:ixo:entity:05b134ffbcce5bdcd6a0f20b9dc4f87e", + "amount": 2000 + }, + { + "did": "did:ixo:entity:05fe581376b07405c72d0b7ff0005d8a", + "amount": 2000 + }, + { + "did": "did:ixo:entity:06ea28a54401bbe1e549b0d4239b1482", + "amount": 2000 + }, + { + "did": "did:ixo:entity:08c9e009c7c27cfb1c3ac3ba0b4da1a7", + "amount": 2000 + }, + { + "did": "did:ixo:entity:097527e651d13e972e82dc593cb1a554", + "amount": 2000 + }, + { + "did": "did:ixo:entity:0cd904a26d8b6335dd15aa20a50abcc6", + "amount": 2000 + }, + { + "did": "did:ixo:entity:0d1d7cbffd8c93e89c4488838609d25d", + "amount": 2000 + }, + { + "did": "did:ixo:entity:0d1e5420840726deeb63e9bc4ab87ef9", + "amount": 2000 + }, + { + "did": "did:ixo:entity:0d4cae924b8da8234d57632c7a336964", + "amount": 2000 + }, + { + "did": "did:ixo:entity:109cbdc0d2bc825c5276e83bd9dfa776", + "amount": 2000 + }, + { + "did": "did:ixo:entity:10e700cbcfce3215bb85bc9da2d6ebf7", + "amount": 2000 + }, + { + "did": "did:ixo:entity:1402cc717f85640cb242644860475583", + "amount": 2000 + }, + { + "did": "did:ixo:entity:149a9de61fac89cd524a399c68d35490", + "amount": 2000 + }, + { + "did": "did:ixo:entity:1539fb3b34bcd0d6ac452ad1c01cca3f", + "amount": 2000 + }, + { + "did": "did:ixo:entity:15b3994269eca11016a5b7ad25ac22f8", + "amount": 2000 + }, + { + "did": "did:ixo:entity:15c41638f33eb16583a578ee100a63e8", + "amount": 2000 + }, + { + "did": "did:ixo:entity:16082ef9ecc2a6feba343a8e76c8d607", + "amount": 2000 + }, + { + "did": "did:ixo:entity:17e55d20ad052b658a904decb86f7bd2", + "amount": 2000 + }, + { + "did": "did:ixo:entity:1827d092d5bda3c1e28327a8eecd393b", + "amount": 2000 + }, + { + "did": "did:ixo:entity:1ac502c9cbe6feb13dde00cc8919b78e", + "amount": 2000 + }, + { + "did": "did:ixo:entity:1d5c0678584ff4daaa1798714a63ee95", + "amount": 2000 + }, + { + "did": "did:ixo:entity:201f194759d0f9daa7c615f46701fb7d", + "amount": 2000 + }, + { + "did": "did:ixo:entity:2196224ed6c92e7d121409b4ef9e1964", + "amount": 2000 + }, + { + "did": "did:ixo:entity:2238a3235f41a36cda02d8ba2e07e6c3", + "amount": 2000 + }, + { + "did": "did:ixo:entity:22c7a416ff20a25bce85dc21fcc8ef0a", + "amount": 2000 + }, + { + "did": "did:ixo:entity:25dab950e45aadb08fd138eacc496a22", + "amount": 2000 + }, + { + "did": "did:ixo:entity:270d5f6ec4d95f0190f217bef85d6446", + "amount": 2000 + }, + { + "did": "did:ixo:entity:2712270ddf44d88ff647048cda508ccb", + "amount": 2000 + }, + { + "did": "did:ixo:entity:2714cba32b3648ab88bfcddb4cf7b3c9", + "amount": 2000 + }, + { + "did": "did:ixo:entity:284a85aead46f3fd92f6714b519658b3", + "amount": 2000 + }, + { + "did": "did:ixo:entity:287c737b922414bac3409535160e084a", + "amount": 2000 + }, + { + "did": "did:ixo:entity:2d45a4370de7f52ba576f2b0b77a0928", + "amount": 2000 + }, + { + "did": "did:ixo:entity:2d761e5808231c499944d8c51573fd3e", + "amount": 2000 + }, + { + "did": "did:ixo:entity:2d777bc032b78d241423fa692c089173", + "amount": 2000 + }, + { + "did": "did:ixo:entity:2e69494dbb3696eb5b8777f7f6fd6923", + "amount": 2000 + }, + { + "did": "did:ixo:entity:2eb667ec0f647ccdb182100565ccab13", + "amount": 2000 + }, + { + "did": "did:ixo:entity:2f7ec9d984a0f38bdc4d42cb059c6cbf", + "amount": 2000 + }, + { + "did": "did:ixo:entity:30e69b7b8d73a5c5aec82a409af960f3", + "amount": 2000 + }, + { + "did": "did:ixo:entity:3221766c739681e8d6bb4c84358cbddb", + "amount": 2000 + }, + { + "did": "did:ixo:entity:326c94a558526715ea1d27bf6b0c3c21", + "amount": 2000 + }, + { + "did": "did:ixo:entity:346ea02077223078e3e14be1d5c80861", + "amount": 2000 + }, + { + "did": "did:ixo:entity:35f09ecb848032333e5b67b38b2e3d53", + "amount": 2000 + }, + { + "did": "did:ixo:entity:370548c87b4221003cdc077adec95448", + "amount": 2000 + }, + { + "did": "did:ixo:entity:3844c8842a8d03c2fc57aaf622870fa6", + "amount": 2000 + }, + { + "did": "did:ixo:entity:3a7b2a8889c4729bcfd97303769b2194", + "amount": 2000 + }, + { + "did": "did:ixo:entity:3ae3e842cef3be6c2cfab1ac4d6ade34", + "amount": 2000 + }, + { + "did": "did:ixo:entity:3b4b938fc3549f5215fd236fa5b63021", + "amount": 2000 + }, + { + "did": "did:ixo:entity:3c2b21ff234a662a80304932d1d1a07f", + "amount": 2000 + }, + { + "did": "did:ixo:entity:3d6096117461f52fed1afab0e6ccc1d6", + "amount": 2000 + }, + { + "did": "did:ixo:entity:3f05b6ed89e88e0dcf6759cd7ee7c17d", + "amount": 2000 + }, + { + "did": "did:ixo:entity:3fc639cc55f2a856a9d9f8d018719b42", + "amount": 2000 + }, + { + "did": "did:ixo:entity:410704c1363e61574dfae8446c2e6b77", + "amount": 2000 + }, + { + "did": "did:ixo:entity:41ba71f760ac2219175a97c03b2a2b6c", + "amount": 2000 + }, + { + "did": "did:ixo:entity:41f1def616e6a7332d438bb4f109e6c3", + "amount": 2000 + }, + { + "did": "did:ixo:entity:43135ff27bc47ed48ae843daae243d71", + "amount": 2000 + }, + { + "did": "did:ixo:entity:434a672f66420f5779cc35d823330b7f", + "amount": 2000 + }, + { + "did": "did:ixo:entity:44a8637e32121685e8e0fa8f1384d90c", + "amount": 2000 + }, + { + "did": "did:ixo:entity:4500ee23945ef842041cabc8be695f33", + "amount": 2000 + }, + { + "did": "did:ixo:entity:45058ed717cdbaf01a5883c27a1b1696", + "amount": 2000 + }, + { + "did": "did:ixo:entity:451997fe09bba5e9dc2ffba18a3fe603", + "amount": 2000 + }, + { + "did": "did:ixo:entity:451de0e927257a0735fe6f8fe586b9e8", + "amount": 2000 + }, + { + "did": "did:ixo:entity:460bc7c766378bb75f537c727b9e0867", + "amount": 2000 + }, + { + "did": "did:ixo:entity:462b38a9bf196a43d70a47aa6cc1a1fa", + "amount": 2000 + }, + { + "did": "did:ixo:entity:486478622acaa5273b4be509a68d0963", + "amount": 2000 + }, + { + "did": "did:ixo:entity:49d5cd85bee409ed3712ba877126d644", + "amount": 2000 + }, + { + "did": "did:ixo:entity:4a3ab0eab1738ab0bb488d945cb6b466", + "amount": 2000 + }, + { + "did": "did:ixo:entity:4b4f2e9a0576cdf14c8a63bd72c647ce", + "amount": 2000 + }, + { + "did": "did:ixo:entity:4ce80421effb121662866edf66d1cc21", + "amount": 2000 + }, + { + "did": "did:ixo:entity:4d0772b9e9f3f80215e835f6bda54850", + "amount": 2000 + }, + { + "did": "did:ixo:entity:4eab1b27ad9b65151d7c83a0f1802cc1", + "amount": 2000 + }, + { + "did": "did:ixo:entity:4f8786399bf0a2c66d406bf7e6142558", + "amount": 2000 + }, + { + "did": "did:ixo:entity:5026498946ba6bbc1dd6fc0ed869f9fb", + "amount": 2000 + }, + { + "did": "did:ixo:entity:512d36e9ca4b52760eca61e2dc44d4a8", + "amount": 2000 + }, + { + "did": "did:ixo:entity:51810fcdb94c0ed4549035218de68d45", + "amount": 2000 + }, + { + "did": "did:ixo:entity:522118842c60018e1a0ea09decfadbec", + "amount": 2000 + }, + { + "did": "did:ixo:entity:52857f4a0ac83f3d2f7f02bfe8a32cce", + "amount": 2000 + }, + { + "did": "did:ixo:entity:5326e2cf0d1ebe46d69ee2cea8e318a2", + "amount": 2000 + }, + { + "did": "did:ixo:entity:537ddc658150b657c7227ae42aad6944", + "amount": 2000 + }, + { + "did": "did:ixo:entity:53b082dd58940675cf033ebf71a117e4", + "amount": 2000 + }, + { + "did": "did:ixo:entity:57f3e4a61da04e25bd548c5725d1b6a4", + "amount": 2000 + }, + { + "did": "did:ixo:entity:5c1d592c4b051c00c9b67b8e819204b3", + "amount": 2000 + }, + { + "did": "did:ixo:entity:5d677586fbbdb2366e4eaf84a1693f8d", + "amount": 2000 + }, + { + "did": "did:ixo:entity:5f2c9aef49b37b946a4ea4930ef5bab4", + "amount": 2000 + }, + { + "did": "did:ixo:entity:5fb23805acb28e96048390030999c64f", + "amount": 2000 + }, + { + "did": "did:ixo:entity:6018f669c231e8b582e810a73903913b", + "amount": 2000 + }, + { + "did": "did:ixo:entity:60f90a1d31181840fe59b951bcbe00a6", + "amount": 2000 + }, + { + "did": "did:ixo:entity:61146fb73faf28e0ad03455439cbcca3", + "amount": 2000 + }, + { + "did": "did:ixo:entity:6578e65e6de53d873a4b8f7bd0186a9a", + "amount": 2000 + }, + { + "did": "did:ixo:entity:662d4c06dd4f10ba8ec9f03a5711513d", + "amount": 2000 + }, + { + "did": "did:ixo:entity:6649c262c029d1b5cfb409ce7e62303e", + "amount": 2000 + }, + { + "did": "did:ixo:entity:6bc4fc739e391a42bebc195ff213ec03", + "amount": 2000 + }, + { + "did": "did:ixo:entity:6dfd1d85e9037708821253a04d3414ed", + "amount": 2000 + }, + { + "did": "did:ixo:entity:6f739cdd4f77584cf56f95b09ccf2c62", + "amount": 2000 + }, + { + "did": "did:ixo:entity:6f840e228701240fc8f2a0162d416a02", + "amount": 2000 + }, + { + "did": "did:ixo:entity:7184443a34538ecfc379bb405f8703e5", + "amount": 2000 + }, + { + "did": "did:ixo:entity:71aa5b39ad4e90179456cf5696788dbc", + "amount": 2000 + }, + { + "did": "did:ixo:entity:73102f47a3275cfa5db2afa1f74745dd", + "amount": 2000 + }, + { + "did": "did:ixo:entity:74c5f162bccef2ef91ff7792e2053306", + "amount": 2000 + }, + { + "did": "did:ixo:entity:74d9c4ec70cb3e4d17b531faa53e9de9", + "amount": 2000 + }, + { + "did": "did:ixo:entity:7807c29ad7ad78522ececd3026b8c891", + "amount": 2000 + }, + { + "did": "did:ixo:entity:7875820d7a518838950942d66c5bf35d", + "amount": 2000 + }, + { + "did": "did:ixo:entity:7b0aa34506b73d32f42e970b32527489", + "amount": 2000 + }, + { + "did": "did:ixo:entity:7dcb312f21c5d6887644ea24db374d8c", + "amount": 2000 + }, + { + "did": "did:ixo:entity:7df8533fefe215c83e67107639e360b1", + "amount": 2000 + }, + { + "did": "did:ixo:entity:7f448df4884a85dca8782a54e89af0fd", + "amount": 2000 + }, + { + "did": "did:ixo:entity:7f76712266c14bd2e62a42bea6dfd9e0", + "amount": 2000 + }, + { + "did": "did:ixo:entity:843ae2cfa9ebb80dab369673b21c40e1", + "amount": 2000 + }, + { + "did": "did:ixo:entity:84e92060e197a948cb63954eade82b46", + "amount": 2000 + }, + { + "did": "did:ixo:entity:871e4f866582c453f21a5151354eabc4", + "amount": 2000 + }, + { + "did": "did:ixo:entity:87c918a680903e984f972d455a76e31b", + "amount": 2000 + }, + { + "did": "did:ixo:entity:8a56a6959a3e479f6d3bad1d1d3c25b0", + "amount": 2000 + }, + { + "did": "did:ixo:entity:8b32c2b74cc46b34f9e55d7a71bbcb27", + "amount": 2000 + }, + { + "did": "did:ixo:entity:8cb7456f5f3b0a2b05a01b1bf1e486c6", + "amount": 2000 + }, + { + "did": "did:ixo:entity:8d66305910afc5d24af8c66382e34f2e", + "amount": 2000 + }, + { + "did": "did:ixo:entity:8dcd318b3a915a0f9a79e85d868a1fa6", + "amount": 2000 + }, + { + "did": "did:ixo:entity:923c94fede9f1e8a21deaeaee5bd3bb5", + "amount": 2000 + }, + { + "did": "did:ixo:entity:932d81547953b60a5f22d0fd0e74d67b", + "amount": 2000 + }, + { + "did": "did:ixo:entity:93cfd30301983b76650b33071e53e2d0", + "amount": 2000 + }, + { + "did": "did:ixo:entity:9882db1a183e236dda82d4d861a36eeb", + "amount": 2000 + }, + { + "did": "did:ixo:entity:9a98191dd6551eda5f0dd2e857b3a3a3", + "amount": 2000 + }, + { + "did": "did:ixo:entity:9b0d56ac4cddc0ba52868ade311d2ac3", + "amount": 2000 + }, + { + "did": "did:ixo:entity:9b13676b6a752ad492af98ed33d52361", + "amount": 2000 + }, + { + "did": "did:ixo:entity:9b4168193e3d297759f77654e0630772", + "amount": 2000 + }, + { + "did": "did:ixo:entity:9cf4a7a8ce148a97e87286b3a047dcad", + "amount": 2000 + }, + { + "did": "did:ixo:entity:9f282155556c1026d5028cf687c578d7", + "amount": 2000 + }, + { + "did": "did:ixo:entity:a01badca38ec25a73ad37f1f224a5158", + "amount": 2000 + }, + { + "did": "did:ixo:entity:a0ca7658a52a1df99eba0651936da7e0", + "amount": 2000 + }, + { + "did": "did:ixo:entity:a0ee499f3faecb7e7bb97f15266d0764", + "amount": 2000 + }, + { + "did": "did:ixo:entity:a105cd5387778ff51a63d510bba11abe", + "amount": 2000 + }, + { + "did": "did:ixo:entity:a23baca8102235ba6b8b9bdb91aadab3", + "amount": 2000 + }, + { + "did": "did:ixo:entity:a337a944829316cee1ead6c360222655", + "amount": 2000 + }, + { + "did": "did:ixo:entity:a82dd699a427a9f7ba4f288fb59aef4d", + "amount": 2000 + }, + { + "did": "did:ixo:entity:a887c4a75f8f2f48a2aeed305d04037a", + "amount": 2000 + }, + { + "did": "did:ixo:entity:a9cf96ba3eafd8c01221e3d1fc7ae240", + "amount": 2000 + }, + { + "did": "did:ixo:entity:abd07fc5f4d01c9f8030e5d5ff1c806d", + "amount": 2000 + }, + { + "did": "did:ixo:entity:ad68b7d291b3b46a0fa2af5fb2e93948", + "amount": 2000 + }, + { + "did": "did:ixo:entity:ae3df23927aeefd0dbeb5bf165bed390", + "amount": 2000 + }, + { + "did": "did:ixo:entity:af9d5fdd7ebd780d76b75c96747f2031", + "amount": 2000 + }, + { + "did": "did:ixo:entity:b0f13598f126ef75378a40314bbeaff1", + "amount": 2000 + }, + { + "did": "did:ixo:entity:b11fe6c080108604f9fdd3d214650c22", + "amount": 2000 + }, + { + "did": "did:ixo:entity:b3cf0fd6f5ba99009dc288488fcf8f34", + "amount": 2000 + }, + { + "did": "did:ixo:entity:b7646e24904efc72797f378c040bef47", + "amount": 2000 + }, + { + "did": "did:ixo:entity:b89ffb51ae59d8bf234ddecc4d25233f", + "amount": 2000 + }, + { + "did": "did:ixo:entity:b97902a0b2e9ff18dd045d19ea7eafb2", + "amount": 2000 + }, + { + "did": "did:ixo:entity:b9a38065a68bad61bb2eeebc5cdb5197", + "amount": 2000 + }, + { + "did": "did:ixo:entity:bab1677bb4ef9ca98bd6cd706ab9b90f", + "amount": 2000 + }, + { + "did": "did:ixo:entity:bbd8257a45ecc6ee1cef56788cfdc2b5", + "amount": 2000 + }, + { + "did": "did:ixo:entity:bbed9ed92405880c5843f69de9869fc7", + "amount": 2000 + }, + { + "did": "did:ixo:entity:c067e30c814f7cba8d0fad0e198a8f19", + "amount": 2000 + }, + { + "did": "did:ixo:entity:c1401cfb0e10198469956c8f13b3ffee", + "amount": 2000 + }, + { + "did": "did:ixo:entity:c36781c31686605a258b07b8ee134016", + "amount": 2000 + }, + { + "did": "did:ixo:entity:c376085d757aeef71d45578749a1e57b", + "amount": 2000 + }, + { + "did": "did:ixo:entity:c4576124292f599dbed1184e64b81266", + "amount": 2000 + }, + { + "did": "did:ixo:entity:c49416cff5f4c40c146ff729bfac4ba7", + "amount": 2000 + }, + { + "did": "did:ixo:entity:c6650464a3f2790788e8cab64dac7a9b", + "amount": 2000 + }, + { + "did": "did:ixo:entity:c6b80d0e6e25950aaa488b0367bb0481", + "amount": 2000 + }, + { + "did": "did:ixo:entity:c8a71c48f0e88570b1b0b6495a0c51c1", + "amount": 2000 + }, + { + "did": "did:ixo:entity:c9846061a178d0bb6584efc67c747f08", + "amount": 2000 + }, + { + "did": "did:ixo:entity:cc2786ccc54f3ebbc9863b15d04a8caa", + "amount": 2000 + }, + { + "did": "did:ixo:entity:cda10070f68a6f3c74c6a03d4881d2b8", + "amount": 2000 + }, + { + "did": "did:ixo:entity:ce737cdd5feaf58163683a6d21dcd6d2", + "amount": 2000 + }, + { + "did": "did:ixo:entity:ceba58b222b0435905dc31261872f61b", + "amount": 2000 + }, + { + "did": "did:ixo:entity:d1d11a6676df3f4363b1d535698c9984", + "amount": 2000 + }, + { + "did": "did:ixo:entity:d3678f369babb25a6021992623b04e0e", + "amount": 2000 + }, + { + "did": "did:ixo:entity:d57bb73e6ef2ecf96efe0e57da4468e0", + "amount": 2000 + }, + { + "did": "did:ixo:entity:d6a0f216f3d9c083847ad27abe0ea53b", + "amount": 2000 + }, + { + "did": "did:ixo:entity:d873bc8c01d7753ea5b66ad958e8d58f", + "amount": 2000 + }, + { + "did": "did:ixo:entity:da7cc7b28040ee19d23d58158326ba3e", + "amount": 2000 + }, + { + "did": "did:ixo:entity:dac2decb8ae575a9ce52d19c89f8a877", + "amount": 2000 + }, + { + "did": "did:ixo:entity:dadb0b156c7cc9e17ff44b8c1782711b", + "amount": 2000 + }, + { + "did": "did:ixo:entity:dead91bbd6973c80e7012b61715ab168", + "amount": 2000 + }, + { + "did": "did:ixo:entity:df2460bc38d3867e960c320e94c075d5", + "amount": 2000 + }, + { + "did": "did:ixo:entity:e1bf2fb608e3d7a542c7c4f404b3a521", + "amount": 2000 + }, + { + "did": "did:ixo:entity:e2515f9505070a6ba218742cf27943c9", + "amount": 2000 + }, + { + "did": "did:ixo:entity:e3e29c494f81a4a6682b4af5955a5e88", + "amount": 2000 + }, + { + "did": "did:ixo:entity:e469d36f375292d0f789d97c1bde965d", + "amount": 2000 + }, + { + "did": "did:ixo:entity:e47cff662c4a871a060863f9663dc487", + "amount": 2000 + }, + { + "did": "did:ixo:entity:e5c43ea8c115912fe18b5e20dcc124d7", + "amount": 2000 + }, + { + "did": "did:ixo:entity:e61385f5188575e20a4b79dbaaae4ec3", + "amount": 2000 + }, + { + "did": "did:ixo:entity:e73f0b915ec8d5488519f0bc3145ce0f", + "amount": 2000 + }, + { + "did": "did:ixo:entity:e9008776ceb16cd0c01f1b4df3475b41", + "amount": 2000 + }, + { + "did": "did:ixo:entity:e91a1045ff864bc3a6711a3b4676bb46", + "amount": 2000 + }, + { + "did": "did:ixo:entity:e9df413f2bd32d7d282f6a6d60e49c38", + "amount": 2000 + }, + { + "did": "did:ixo:entity:ea1188cf1a4ce36bfb92997951c7ec78", + "amount": 2000 + }, + { + "did": "did:ixo:entity:eaa4379af424d5c0a432518613893d8b", + "amount": 2000 + }, + { + "did": "did:ixo:entity:eb4b0dee18b3e5473bf846a067cb827c", + "amount": 2000 + }, + { + "did": "did:ixo:entity:eece6af401e46f7f55ff72bd2ce4a000", + "amount": 2000 + }, + { + "did": "did:ixo:entity:f098d2c758db1430179fd4a87bf3c47c", + "amount": 2000 + }, + { + "did": "did:ixo:entity:f136420e62129bff5a4944eb3d17d03c", + "amount": 2000 + }, + { + "did": "did:ixo:entity:f61891d74cfb67b0c67e1bf442a23ddd", + "amount": 2000 + }, + { + "did": "did:ixo:entity:f7d2e388c4b6aa08235cbdb1e1b7e425", + "amount": 2000 + }, + { + "did": "did:ixo:entity:f7d4e873ae4227373017e3c2471f7614", + "amount": 2000 + }, + { + "did": "did:ixo:entity:f8be78ce141be3e639057db86fbc3d71", + "amount": 2000 + }, + { + "did": "did:ixo:entity:f936abc4be167d042acb79a51ea582b8", + "amount": 2000 + }, + { + "did": "did:ixo:entity:f9d31aab351e52f840f994f0c6d0a734", + "amount": 2000 + }, + { + "did": "did:ixo:entity:fa2cfa5c85a8f76dba6b4ae88164b564", + "amount": 2000 + }, + { + "did": "did:ixo:entity:fa4c60f1648eaac69f0040cb064df648", + "amount": 2000 + }, + { + "did": "did:ixo:entity:fc8bf22474230d438a149a9903fc20d4", + "amount": 2000 + }, + { + "did": "did:ixo:entity:fcf503b9fa767d384e060009aa535734", + "amount": 2000 + }, + { + "did": "did:ixo:entity:fd3bbcea8b5a7d074fa5c51656265beb", + "amount": 2000 + }, + { + "did": "did:ixo:entity:fef31928b853426c0da326e7bb9f343c", + "amount": 2000 + }, + { + "did": "did:ixo:entity:ff581af6e2e071758b1f94835933d038", + "amount": 2000 + }, + { + "did": "did:ixo:entity:ffb6b788b6d6a2e7266d5a3eb7074816", + "amount": 2000 + } + ] +} \ No newline at end of file From 575bd9d58e72cd69330b9613247826e1c8539dee Mon Sep 17 00:00:00 2001 From: Michael Pretorius Date: Sun, 25 Aug 2024 11:33:03 +0200 Subject: [PATCH 06/20] tests: update test cases --- __tests__/flows/cosmos.ts | 27 +- __tests__/flows/entities.ts | 4 +- __tests__/flows/tokens.ts | 11 +- __tests__/index.spec.ts | 2 + __tests__/modules/Cosmos.ts | 110 +++ __tests__/setup/constants.ts | 18 +- assets/documents/emerging/tokenData.json | 824 +++++------------------ 7 files changed, 311 insertions(+), 685 deletions(-) diff --git a/__tests__/flows/cosmos.ts b/__tests__/flows/cosmos.ts index a994826c..8db0524a 100644 --- a/__tests__/flows/cosmos.ts +++ b/__tests__/flows/cosmos.ts @@ -14,7 +14,7 @@ import { WalletUsers } from "../helpers/constants"; // @ts-ignore import Long from "long"; import { Grant } from "../../src/codegen/cosmos/feegrant/v1beta1/feegrant"; -import { createRegistry } from "../../src"; +import { createRegistry, utils } from "../../src"; import { fromTimestamp } from "../../src/codegen/helpers"; export const bankBasic = () => @@ -187,3 +187,28 @@ export const feegrantAllCurrentUsers = () => return true as any; }); }); + +export const stakeBasic = () => + describe("Testing stake funds and rewards", () => { + testMsg("/cosmos.staking.v1beta1.MsgDelegate", () => Cosmos.MsgStake()); + }); + +// ------------------------------------------------------------ +// flow to update a modules params, then need to vote on it +// ------------------------------------------------------------ +export const updateParamsProposal = () => + describe("Testing the gov module", () => { + let proposalId: number; + + testMsg("/cosmos.gov.v1beta1.MsgSubmitProposal update params", async () => { + const res = await Cosmos.MsgSubmitProposalUpdateParams(); + proposalId = utils.common.getValueFromEvents( + res, + "submit_proposal", + "proposal_id" + ); + console.log({ proposalId }); + return res; + }); + testMsg("/cosmos.gov.v1beta1.MsgVote", () => Cosmos.MsgVote(proposalId)); + }); diff --git a/__tests__/flows/entities.ts b/__tests__/flows/entities.ts index 845b006b..21b6c2fc 100644 --- a/__tests__/flows/entities.ts +++ b/__tests__/flows/entities.ts @@ -74,11 +74,11 @@ export const transferEntities = (mnemonic?: string) => ]) ); - const recipient = "did:x:zQ3shfMjpKv9etiUbEy8aoet5ZRj7MveK5emNfDrv8tcixNwT"; + const recipient = "did:x:zQ3sheymdo5FLT64zGESnj6i7uhdXdgoELA5z3JW9ayVNcF6L"; const stovesCollection = require("../../assets/documents/emerging/stoves_genesis_collection.json"); // can provide static dids of entities to transfer - let entities = ["did:ixo:entity:091ffc2c61e589f3a6c67f68e9b6919d"]; + let entities = ["did:ixo:entity:fd353f85b5114b518235deda41bc8622"]; // or provide static ids of stoves to transfer, if this list is empty then will use the dids above // the stoves here must be from the stovesCollection imported above diff --git a/__tests__/flows/tokens.ts b/__tests__/flows/tokens.ts index ef93012a..e10cbc2a 100644 --- a/__tests__/flows/tokens.ts +++ b/__tests__/flows/tokens.ts @@ -309,7 +309,7 @@ export const supamotoTokensFarm = () => ); const blocksyncUrlGraphql = "https://blocksync-graphql.ixo.earth"; - const collectionToFarm = dids.ai4gCollection; + const collectionToFarm = dids.assetCollection; const collTokensToUseForTopup = dids.legacyCollection; testMsg("Farm tokens", async () => { @@ -508,6 +508,15 @@ export const supamotoTokensFarm = () => // sort totalAmounts by amount, highest first totalAmounts.sort((a, b) => b.amount - a.amount); + // // get total amounts of first 50 stoves + // const first50StovesAmounts = totalAmounts + // .slice(0, 55) + // .reduce((acc, curr) => { + // acc += curr.amount; + // return acc; + // }, 0); + // console.log({ first50StovesAmounts }); + // console.log(totalAmounts.slice(0, 55).map((t) => t.did)); console.log("Create file to save tokens"); saveFileToPath( diff --git a/__tests__/index.spec.ts b/__tests__/index.spec.ts index 6ea2b85e..cc7b401b 100644 --- a/__tests__/index.spec.ts +++ b/__tests__/index.spec.ts @@ -43,6 +43,8 @@ IID.generateBlockchainTestUsers(); // IID.iidReplaceLinkedResource(); // IBC.ibcBasic(); // Cosmos.govDeposit(); +// Cosmos.stakeBasic(); +// Cosmos.updateParamsProposal(); // CosmWasm.wasmBasic(); // Cosmos.feegrantBasic(); // Proposals.cwUploadProposal(); diff --git a/__tests__/modules/Cosmos.ts b/__tests__/modules/Cosmos.ts index 4f599d5d..a7684592 100644 --- a/__tests__/modules/Cosmos.ts +++ b/__tests__/modules/Cosmos.ts @@ -420,3 +420,113 @@ export const MsgProposalText = async () => { ); return response; }; + +export const MsgStake = async ( + user = WalletUsers.tester, + amount = "10000000000" +) => { + const client = await createClient(getUser(user)); + + const tester = getUser(user); + const account = (await tester.getAccounts())[0]; + const myAddress = account.address; + + const validators = await queryClient.cosmos.staking.v1beta1.validators({ + status: "BOND_STATUS_BONDED", + }); + const firstValidator = validators.validators[0]; + // console.log(firstValidator); + if (!firstValidator) throw new Error("no validators"); + + try { + const currentDelegations = + await queryClient.cosmos.staking.v1beta1.delegation({ + delegatorAddr: myAddress, + validatorAddr: firstValidator.operatorAddress, + }); + // console.dir(currentDelegations, { depth: null }); + if (!currentDelegations?.delegationResponse) + throw new Error("no delegations"); + + const currentRewards = + await queryClient.cosmos.distribution.v1beta1.delegationRewards({ + delegatorAddress: myAddress, + validatorAddress: firstValidator.operatorAddress, + }); + console.dir(currentRewards, { depth: null }); + if (!currentRewards?.rewards) throw new Error("no rewards"); + } catch (error) { + console.error(error); + } + if (!!1) throw new Error("stop"); + + const message = { + typeUrl: "/cosmos.staking.v1beta1.MsgDelegate", + value: cosmos.staking.v1beta1.MsgDelegate.fromPartial({ + delegatorAddress: firstValidator.operatorAddress, + validatorAddress: myAddress, + amount: cosmos.base.v1beta1.Coin.fromPartial({ + amount, + denom: "uixo", + }), + }), + }; + + const response = await client.signAndBroadcast( + myAddress, + [message], + getFee(1, await client.simulate(myAddress, [message], undefined)) + ); + return response; +}; + +export const MsgSubmitProposalUpdateParams = async () => { + const client = await createClient(); + + const tester = getUser(); + const account = (await tester.getAccounts())[0]; + const myAddress = account.address; + + const subspace = "mint"; + const key = "ImpactRewardsReceivers"; + const value = JSON.stringify([ + { address: "ixo1jtlkhddkfvzu4p2vl4dvlszzkqvlthghee44jz", weight: "0.5" }, + { address: "ixo1ruwxxfsp6jgdk88fmyzyp7s3hs20vqmg5f3htp", weight: "0.5" }, + ]); + + const message = { + typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposal", + value: cosmos.gov.v1beta1.MsgSubmitProposal.fromPartial({ + initialDeposit: [ + cosmos.base.v1beta1.Coin.fromPartial({ + amount: "10000000", + denom: "uixo", + }), + ], + proposer: myAddress, + content: { + typeUrl: "/cosmos.params.v1beta1.ParameterChangeProposal", + value: cosmos.params.v1beta1.ParameterChangeProposal.encode( + cosmos.params.v1beta1.ParameterChangeProposal.fromPartial({ + title: "Update params", + description: "Update params", + changes: [ + cosmos.params.v1beta1.ParamChange.fromPartial({ + subspace: subspace, + key: key, + value: value, + }), + ], + }) + ).finish(), + }, + }), + }; + + const response = await client.signAndBroadcast( + myAddress, + [message], + getFee(1, await client.simulate(myAddress, [message], undefined)) + ); + return response; +}; diff --git a/__tests__/setup/constants.ts b/__tests__/setup/constants.ts index 072a276c..780e5146 100644 --- a/__tests__/setup/constants.ts +++ b/__tests__/setup/constants.ts @@ -43,15 +43,15 @@ export const adminEntityAccounts = { ai4gCollection: "", }; -// // export const EcsCredentialsWorkerUrl = "http://localhost:3000/"; -// export const EcsCredentialsWorkerUrl = -// "https://ecs.credentials.devnet.ixo.earth/"; -// export const ProspectCredentialsWorkerUrl = -// "https://prospect.credentials.devnet.ixo.earth/"; -// export const CarbonCredentialsWorkerUrl = -// "https://carbon.credentials.devnet.ixo.earth/"; -// export const UmuziCredentialsWorkerUrl = -// "https://umuzi.credentials.devnet.ixo.earth/"; +// export const EcsCredentialsWorkerUrl = "http://localhost:3000/"; +export const EcsCredentialsWorkerUrl = + "https://ecs.credentials.devnet.ixo.earth/"; +export const ProspectCredentialsWorkerUrl = + "https://prospect.credentials.devnet.ixo.earth/"; +export const CarbonCredentialsWorkerUrl = + "https://carbon.credentials.devnet.ixo.earth/"; +export const UmuziCredentialsWorkerUrl = + "https://umuzi.credentials.devnet.ixo.earth/"; // TESTNET // ======================================== diff --git a/assets/documents/emerging/tokenData.json b/assets/documents/emerging/tokenData.json index aa85e40d..301b6871 100644 --- a/assets/documents/emerging/tokenData.json +++ b/assets/documents/emerging/tokenData.json @@ -1,828 +1,308 @@ { "totalAmounts": [ { - "did": "did:ixo:entity:3a139d17d1911cb3e5dedd6aa7a88ad9", - "amount": 2526 + "did": "did:ixo:entity:ef4f55f591845f76ab7710a8bc428530", + "amount": 2875 }, { - "did": "did:ixo:entity:046014b634cc83f5387e5605dfe15629", - "amount": 2000 + "did": "did:ixo:entity:9acc7b202a611e1be0e529813909525c", + "amount": 2656 }, { - "did": "did:ixo:entity:0484fb0d68fb0a9701091674cddbda82", - "amount": 2000 + "did": "did:ixo:entity:f4215ad5ac1675490867cbf0b845d89e", + "amount": 2656 }, { - "did": "did:ixo:entity:05b134ffbcce5bdcd6a0f20b9dc4f87e", - "amount": 2000 + "did": "did:ixo:entity:a14897878c462cf5a1c9ae3aeb927573", + "amount": 2328 }, { - "did": "did:ixo:entity:05fe581376b07405c72d0b7ff0005d8a", - "amount": 2000 + "did": "did:ixo:entity:5dbdab123f1713a9e4a9d1507179c1c8", + "amount": 1365 }, { - "did": "did:ixo:entity:06ea28a54401bbe1e549b0d4239b1482", - "amount": 2000 + "did": "did:ixo:entity:d9b69e17a5ea405b6d97df9b86944ca9", + "amount": 1365 }, { - "did": "did:ixo:entity:08c9e009c7c27cfb1c3ac3ba0b4da1a7", - "amount": 2000 + "did": "did:ixo:entity:6c46a8cd645725b470626001e63e8a76", + "amount": 1092 }, { - "did": "did:ixo:entity:097527e651d13e972e82dc593cb1a554", - "amount": 2000 + "did": "did:ixo:entity:bcba07b98f0087babc720386dd1bac4f", + "amount": 1092 }, { - "did": "did:ixo:entity:0cd904a26d8b6335dd15aa20a50abcc6", - "amount": 2000 + "did": "did:ixo:entity:4ad77125a28d4ba90b3536d4e609aa56", + "amount": 819 }, { - "did": "did:ixo:entity:0d1d7cbffd8c93e89c4488838609d25d", - "amount": 2000 + "did": "did:ixo:entity:8cfbec886cd52fefaf32cd52ae7a7649", + "amount": 819 }, { - "did": "did:ixo:entity:0d1e5420840726deeb63e9bc4ab87ef9", - "amount": 2000 + "did": "did:ixo:entity:a55e4e3f9162627bd04fdfababeca7e2", + "amount": 819 }, { - "did": "did:ixo:entity:0d4cae924b8da8234d57632c7a336964", - "amount": 2000 + "did": "did:ixo:entity:c1a6f6c7f59e187bdd84b568163072ac", + "amount": 819 }, { - "did": "did:ixo:entity:109cbdc0d2bc825c5276e83bd9dfa776", - "amount": 2000 + "did": "did:ixo:entity:ccc21b9c8b81279582f523c3e431e19b", + "amount": 728 }, { - "did": "did:ixo:entity:10e700cbcfce3215bb85bc9da2d6ebf7", - "amount": 2000 + "did": "did:ixo:entity:4be1dee4dad69071d97251eb9a89d5ef", + "amount": 546 }, { - "did": "did:ixo:entity:1402cc717f85640cb242644860475583", - "amount": 2000 + "did": "did:ixo:entity:566d036a2b9a182c9062f647db77f89f", + "amount": 546 }, { - "did": "did:ixo:entity:149a9de61fac89cd524a399c68d35490", - "amount": 2000 + "did": "did:ixo:entity:56bc938d028bf42990202c375e5b0705", + "amount": 546 }, { - "did": "did:ixo:entity:1539fb3b34bcd0d6ac452ad1c01cca3f", - "amount": 2000 + "did": "did:ixo:entity:574cb4ace2a9b44c32b35ccf76c06657", + "amount": 546 }, { - "did": "did:ixo:entity:15b3994269eca11016a5b7ad25ac22f8", - "amount": 2000 + "did": "did:ixo:entity:5dc82f079ba009cc2022834c3d3d37e6", + "amount": 546 }, { - "did": "did:ixo:entity:15c41638f33eb16583a578ee100a63e8", - "amount": 2000 + "did": "did:ixo:entity:5fcea6cd87ed6473f8805d7ef29fb35d", + "amount": 546 }, { - "did": "did:ixo:entity:16082ef9ecc2a6feba343a8e76c8d607", - "amount": 2000 + "did": "did:ixo:entity:6adf59d369779207c33d21650d05eef1", + "amount": 546 }, { - "did": "did:ixo:entity:17e55d20ad052b658a904decb86f7bd2", - "amount": 2000 + "did": "did:ixo:entity:6b539511d230a9575b85d04b94b6637c", + "amount": 546 }, { - "did": "did:ixo:entity:1827d092d5bda3c1e28327a8eecd393b", - "amount": 2000 + "did": "did:ixo:entity:6b5bb9b8f479e5b4e22e5b6861724dbb", + "amount": 546 }, { - "did": "did:ixo:entity:1ac502c9cbe6feb13dde00cc8919b78e", - "amount": 2000 + "did": "did:ixo:entity:708af8c1b8da0561141362ea7a5a16fa", + "amount": 546 }, { - "did": "did:ixo:entity:1d5c0678584ff4daaa1798714a63ee95", - "amount": 2000 + "did": "did:ixo:entity:70f7ab183f62125df1a21d3f87332ee3", + "amount": 546 }, { - "did": "did:ixo:entity:201f194759d0f9daa7c615f46701fb7d", - "amount": 2000 + "did": "did:ixo:entity:794fc3e5ccf2d926a781b3cd4e26acd9", + "amount": 546 }, { - "did": "did:ixo:entity:2196224ed6c92e7d121409b4ef9e1964", - "amount": 2000 + "did": "did:ixo:entity:7e7108a2d5ca4abf60fb60c53e4cfafe", + "amount": 546 }, { - "did": "did:ixo:entity:2238a3235f41a36cda02d8ba2e07e6c3", - "amount": 2000 + "did": "did:ixo:entity:8eb95d698daace16e5086ec6445255bf", + "amount": 546 }, { - "did": "did:ixo:entity:22c7a416ff20a25bce85dc21fcc8ef0a", - "amount": 2000 + "did": "did:ixo:entity:95134ae97e892812be4ebc92e131301f", + "amount": 546 }, { - "did": "did:ixo:entity:25dab950e45aadb08fd138eacc496a22", - "amount": 2000 + "did": "did:ixo:entity:9a7de9bcc76fea8fd935779929a2b175", + "amount": 546 }, { - "did": "did:ixo:entity:270d5f6ec4d95f0190f217bef85d6446", - "amount": 2000 + "did": "did:ixo:entity:9f89fa496b75c4342f2390b95e42018b", + "amount": 546 }, { - "did": "did:ixo:entity:2712270ddf44d88ff647048cda508ccb", - "amount": 2000 + "did": "did:ixo:entity:b2c986f23b02d9b3e917e933ed4536e7", + "amount": 546 }, { - "did": "did:ixo:entity:2714cba32b3648ab88bfcddb4cf7b3c9", - "amount": 2000 + "did": "did:ixo:entity:b4943e055eb0373e8e0eee8ec440d552", + "amount": 546 }, { - "did": "did:ixo:entity:284a85aead46f3fd92f6714b519658b3", - "amount": 2000 + "did": "did:ixo:entity:b695fe12a777c2fa97ea43625505f6c2", + "amount": 546 }, { - "did": "did:ixo:entity:287c737b922414bac3409535160e084a", - "amount": 2000 + "did": "did:ixo:entity:c9fb17d37e541702aa88a7f3d1385c3b", + "amount": 546 }, { - "did": "did:ixo:entity:2d45a4370de7f52ba576f2b0b77a0928", - "amount": 2000 + "did": "did:ixo:entity:d1ff8460ba8bae15d268c94b4e4040d2", + "amount": 546 }, { - "did": "did:ixo:entity:2d761e5808231c499944d8c51573fd3e", - "amount": 2000 + "did": "did:ixo:entity:e7e158efd0e4d59d5baa07af205c62b1", + "amount": 546 }, { - "did": "did:ixo:entity:2d777bc032b78d241423fa692c089173", - "amount": 2000 + "did": "did:ixo:entity:ee341121211cf094a1a8b697cbd5d639", + "amount": 546 }, { - "did": "did:ixo:entity:2e69494dbb3696eb5b8777f7f6fd6923", - "amount": 2000 + "did": "did:ixo:entity:6bcd54584f9efdf030221b60eae34053", + "amount": 455 }, { - "did": "did:ixo:entity:2eb667ec0f647ccdb182100565ccab13", - "amount": 2000 + "did": "did:ixo:entity:52da36753311a9bcb474e9a143913016", + "amount": 273 }, { - "did": "did:ixo:entity:2f7ec9d984a0f38bdc4d42cb059c6cbf", - "amount": 2000 + "did": "did:ixo:entity:571a7cdd601061e502a359834e83339e", + "amount": 273 }, { - "did": "did:ixo:entity:30e69b7b8d73a5c5aec82a409af960f3", - "amount": 2000 + "did": "did:ixo:entity:5b74342b0055a209a544e122b8b618be", + "amount": 273 }, { - "did": "did:ixo:entity:3221766c739681e8d6bb4c84358cbddb", - "amount": 2000 + "did": "did:ixo:entity:6ce49bb4e60cab468853246115ea737c", + "amount": 273 }, { - "did": "did:ixo:entity:326c94a558526715ea1d27bf6b0c3c21", - "amount": 2000 + "did": "did:ixo:entity:759686b3edf8e76ff46c4cfa36add0b8", + "amount": 273 }, { - "did": "did:ixo:entity:346ea02077223078e3e14be1d5c80861", - "amount": 2000 + "did": "did:ixo:entity:7954a32e885a015ae891047cf2401e01", + "amount": 273 }, { - "did": "did:ixo:entity:35f09ecb848032333e5b67b38b2e3d53", - "amount": 2000 + "did": "did:ixo:entity:7c6e9644d6e962d19f1fdc39d0fadddb", + "amount": 273 }, { - "did": "did:ixo:entity:370548c87b4221003cdc077adec95448", - "amount": 2000 + "did": "did:ixo:entity:98217aee99908de4cd6f8c09fe4b0dd2", + "amount": 273 }, { - "did": "did:ixo:entity:3844c8842a8d03c2fc57aaf622870fa6", - "amount": 2000 + "did": "did:ixo:entity:a5c62c54d0c0bc6074e60d3d9d2088f8", + "amount": 273 }, { - "did": "did:ixo:entity:3a7b2a8889c4729bcfd97303769b2194", - "amount": 2000 + "did": "did:ixo:entity:ab0716b4ee011372bdbb9f078f59ad4e", + "amount": 273 }, { - "did": "did:ixo:entity:3ae3e842cef3be6c2cfab1ac4d6ade34", - "amount": 2000 + "did": "did:ixo:entity:bac433f6ca60537fde4763b66af3a458", + "amount": 273 }, { - "did": "did:ixo:entity:3b4b938fc3549f5215fd236fa5b63021", - "amount": 2000 + "did": "did:ixo:entity:bcfdb802fd4d56b53392bf01f6474c0a", + "amount": 273 }, { - "did": "did:ixo:entity:3c2b21ff234a662a80304932d1d1a07f", - "amount": 2000 + "did": "did:ixo:entity:c7f79a2012434bf00afedd7fc164fbf1", + "amount": 273 }, { - "did": "did:ixo:entity:3d6096117461f52fed1afab0e6ccc1d6", - "amount": 2000 + "did": "did:ixo:entity:e2298f5565f48eeda7027a715f9c303c", + "amount": 273 }, { - "did": "did:ixo:entity:3f05b6ed89e88e0dcf6759cd7ee7c17d", - "amount": 2000 + "did": "did:ixo:entity:ebc572db8321318b839972574ba25349", + "amount": 273 }, { - "did": "did:ixo:entity:3fc639cc55f2a856a9d9f8d018719b42", - "amount": 2000 + "did": "did:ixo:entity:4e4c7655e7dd6066ef6822d116ed1bb0", + "amount": 0 }, { - "did": "did:ixo:entity:410704c1363e61574dfae8446c2e6b77", - "amount": 2000 + "did": "did:ixo:entity:53ac5478dd40788f441d36f758cf968a", + "amount": 0 }, { - "did": "did:ixo:entity:41ba71f760ac2219175a97c03b2a2b6c", - "amount": 2000 + "did": "did:ixo:entity:67ab066d726d017cc5dfbee918b48904", + "amount": 0 }, { - "did": "did:ixo:entity:41f1def616e6a7332d438bb4f109e6c3", - "amount": 2000 + "did": "did:ixo:entity:6c3dd0bb5c295d8edd416df515f07ab1", + "amount": 0 }, { - "did": "did:ixo:entity:43135ff27bc47ed48ae843daae243d71", - "amount": 2000 + "did": "did:ixo:entity:75e4bf8c2b67a30515edbe17dda12dd3", + "amount": 0 }, { - "did": "did:ixo:entity:434a672f66420f5779cc35d823330b7f", - "amount": 2000 + "did": "did:ixo:entity:7b7453f26aa5b899038a5280ec60f233", + "amount": 0 }, { - "did": "did:ixo:entity:44a8637e32121685e8e0fa8f1384d90c", - "amount": 2000 + "did": "did:ixo:entity:81f28ccda6d5c17c02d2327cea9a6526", + "amount": 0 }, { - "did": "did:ixo:entity:4500ee23945ef842041cabc8be695f33", - "amount": 2000 + "did": "did:ixo:entity:8627a2d4bd5e61edecd7d0c8e4fc8c92", + "amount": 0 }, { - "did": "did:ixo:entity:45058ed717cdbaf01a5883c27a1b1696", - "amount": 2000 + "did": "did:ixo:entity:8676c97679c05a1c5087c7a50715ffcb", + "amount": 0 }, { - "did": "did:ixo:entity:451997fe09bba5e9dc2ffba18a3fe603", - "amount": 2000 + "did": "did:ixo:entity:91dfe99c25347edfeb8b46a6a065ca8b", + "amount": 0 }, { - "did": "did:ixo:entity:451de0e927257a0735fe6f8fe586b9e8", - "amount": 2000 + "did": "did:ixo:entity:93684b609db4f5c5c72b7805a347fcfa", + "amount": 0 }, { - "did": "did:ixo:entity:460bc7c766378bb75f537c727b9e0867", - "amount": 2000 + "did": "did:ixo:entity:94b34cd9decba90a3a319ddad36caa52", + "amount": 0 }, { - "did": "did:ixo:entity:462b38a9bf196a43d70a47aa6cc1a1fa", - "amount": 2000 + "did": "did:ixo:entity:aa4d6c35d49e14a2d6c4e4dae3de2acf", + "amount": 0 }, { - "did": "did:ixo:entity:486478622acaa5273b4be509a68d0963", - "amount": 2000 + "did": "did:ixo:entity:b5e35205047ee5782b12a079fc82c230", + "amount": 0 }, { - "did": "did:ixo:entity:49d5cd85bee409ed3712ba877126d644", - "amount": 2000 + "did": "did:ixo:entity:c46ad641c0f34cee8f63c3e8a53e78bb", + "amount": 0 }, { - "did": "did:ixo:entity:4a3ab0eab1738ab0bb488d945cb6b466", - "amount": 2000 + "did": "did:ixo:entity:c7e44542e3fada425762493badea616e", + "amount": 0 }, { - "did": "did:ixo:entity:4b4f2e9a0576cdf14c8a63bd72c647ce", - "amount": 2000 + "did": "did:ixo:entity:c8ea87d3316343354846fa3f4df0e5c8", + "amount": 0 }, { - "did": "did:ixo:entity:4ce80421effb121662866edf66d1cc21", - "amount": 2000 + "did": "did:ixo:entity:ca9d623871659302f2fb679d46e96566", + "amount": 0 }, { - "did": "did:ixo:entity:4d0772b9e9f3f80215e835f6bda54850", - "amount": 2000 + "did": "did:ixo:entity:d94d03b9f1e84d9b1d337cc36d938dce", + "amount": 0 }, { - "did": "did:ixo:entity:4eab1b27ad9b65151d7c83a0f1802cc1", - "amount": 2000 + "did": "did:ixo:entity:d9e918dcc0f79d14f087bdcca2423869", + "amount": 0 }, { - "did": "did:ixo:entity:4f8786399bf0a2c66d406bf7e6142558", - "amount": 2000 + "did": "did:ixo:entity:e36b6aa792fb9603867cab03136d2729", + "amount": 0 }, { - "did": "did:ixo:entity:5026498946ba6bbc1dd6fc0ed869f9fb", - "amount": 2000 + "did": "did:ixo:entity:e6e191aed59c72a1ed58d49c00f11de6", + "amount": 0 }, { - "did": "did:ixo:entity:512d36e9ca4b52760eca61e2dc44d4a8", - "amount": 2000 - }, - { - "did": "did:ixo:entity:51810fcdb94c0ed4549035218de68d45", - "amount": 2000 - }, - { - "did": "did:ixo:entity:522118842c60018e1a0ea09decfadbec", - "amount": 2000 - }, - { - "did": "did:ixo:entity:52857f4a0ac83f3d2f7f02bfe8a32cce", - "amount": 2000 - }, - { - "did": "did:ixo:entity:5326e2cf0d1ebe46d69ee2cea8e318a2", - "amount": 2000 - }, - { - "did": "did:ixo:entity:537ddc658150b657c7227ae42aad6944", - "amount": 2000 - }, - { - "did": "did:ixo:entity:53b082dd58940675cf033ebf71a117e4", - "amount": 2000 - }, - { - "did": "did:ixo:entity:57f3e4a61da04e25bd548c5725d1b6a4", - "amount": 2000 - }, - { - "did": "did:ixo:entity:5c1d592c4b051c00c9b67b8e819204b3", - "amount": 2000 - }, - { - "did": "did:ixo:entity:5d677586fbbdb2366e4eaf84a1693f8d", - "amount": 2000 - }, - { - "did": "did:ixo:entity:5f2c9aef49b37b946a4ea4930ef5bab4", - "amount": 2000 - }, - { - "did": "did:ixo:entity:5fb23805acb28e96048390030999c64f", - "amount": 2000 - }, - { - "did": "did:ixo:entity:6018f669c231e8b582e810a73903913b", - "amount": 2000 - }, - { - "did": "did:ixo:entity:60f90a1d31181840fe59b951bcbe00a6", - "amount": 2000 - }, - { - "did": "did:ixo:entity:61146fb73faf28e0ad03455439cbcca3", - "amount": 2000 - }, - { - "did": "did:ixo:entity:6578e65e6de53d873a4b8f7bd0186a9a", - "amount": 2000 - }, - { - "did": "did:ixo:entity:662d4c06dd4f10ba8ec9f03a5711513d", - "amount": 2000 - }, - { - "did": "did:ixo:entity:6649c262c029d1b5cfb409ce7e62303e", - "amount": 2000 - }, - { - "did": "did:ixo:entity:6bc4fc739e391a42bebc195ff213ec03", - "amount": 2000 - }, - { - "did": "did:ixo:entity:6dfd1d85e9037708821253a04d3414ed", - "amount": 2000 - }, - { - "did": "did:ixo:entity:6f739cdd4f77584cf56f95b09ccf2c62", - "amount": 2000 - }, - { - "did": "did:ixo:entity:6f840e228701240fc8f2a0162d416a02", - "amount": 2000 - }, - { - "did": "did:ixo:entity:7184443a34538ecfc379bb405f8703e5", - "amount": 2000 - }, - { - "did": "did:ixo:entity:71aa5b39ad4e90179456cf5696788dbc", - "amount": 2000 - }, - { - "did": "did:ixo:entity:73102f47a3275cfa5db2afa1f74745dd", - "amount": 2000 - }, - { - "did": "did:ixo:entity:74c5f162bccef2ef91ff7792e2053306", - "amount": 2000 - }, - { - "did": "did:ixo:entity:74d9c4ec70cb3e4d17b531faa53e9de9", - "amount": 2000 - }, - { - "did": "did:ixo:entity:7807c29ad7ad78522ececd3026b8c891", - "amount": 2000 - }, - { - "did": "did:ixo:entity:7875820d7a518838950942d66c5bf35d", - "amount": 2000 - }, - { - "did": "did:ixo:entity:7b0aa34506b73d32f42e970b32527489", - "amount": 2000 - }, - { - "did": "did:ixo:entity:7dcb312f21c5d6887644ea24db374d8c", - "amount": 2000 - }, - { - "did": "did:ixo:entity:7df8533fefe215c83e67107639e360b1", - "amount": 2000 - }, - { - "did": "did:ixo:entity:7f448df4884a85dca8782a54e89af0fd", - "amount": 2000 - }, - { - "did": "did:ixo:entity:7f76712266c14bd2e62a42bea6dfd9e0", - "amount": 2000 - }, - { - "did": "did:ixo:entity:843ae2cfa9ebb80dab369673b21c40e1", - "amount": 2000 - }, - { - "did": "did:ixo:entity:84e92060e197a948cb63954eade82b46", - "amount": 2000 - }, - { - "did": "did:ixo:entity:871e4f866582c453f21a5151354eabc4", - "amount": 2000 - }, - { - "did": "did:ixo:entity:87c918a680903e984f972d455a76e31b", - "amount": 2000 - }, - { - "did": "did:ixo:entity:8a56a6959a3e479f6d3bad1d1d3c25b0", - "amount": 2000 - }, - { - "did": "did:ixo:entity:8b32c2b74cc46b34f9e55d7a71bbcb27", - "amount": 2000 - }, - { - "did": "did:ixo:entity:8cb7456f5f3b0a2b05a01b1bf1e486c6", - "amount": 2000 - }, - { - "did": "did:ixo:entity:8d66305910afc5d24af8c66382e34f2e", - "amount": 2000 - }, - { - "did": "did:ixo:entity:8dcd318b3a915a0f9a79e85d868a1fa6", - "amount": 2000 - }, - { - "did": "did:ixo:entity:923c94fede9f1e8a21deaeaee5bd3bb5", - "amount": 2000 - }, - { - "did": "did:ixo:entity:932d81547953b60a5f22d0fd0e74d67b", - "amount": 2000 - }, - { - "did": "did:ixo:entity:93cfd30301983b76650b33071e53e2d0", - "amount": 2000 - }, - { - "did": "did:ixo:entity:9882db1a183e236dda82d4d861a36eeb", - "amount": 2000 - }, - { - "did": "did:ixo:entity:9a98191dd6551eda5f0dd2e857b3a3a3", - "amount": 2000 - }, - { - "did": "did:ixo:entity:9b0d56ac4cddc0ba52868ade311d2ac3", - "amount": 2000 - }, - { - "did": "did:ixo:entity:9b13676b6a752ad492af98ed33d52361", - "amount": 2000 - }, - { - "did": "did:ixo:entity:9b4168193e3d297759f77654e0630772", - "amount": 2000 - }, - { - "did": "did:ixo:entity:9cf4a7a8ce148a97e87286b3a047dcad", - "amount": 2000 - }, - { - "did": "did:ixo:entity:9f282155556c1026d5028cf687c578d7", - "amount": 2000 - }, - { - "did": "did:ixo:entity:a01badca38ec25a73ad37f1f224a5158", - "amount": 2000 - }, - { - "did": "did:ixo:entity:a0ca7658a52a1df99eba0651936da7e0", - "amount": 2000 - }, - { - "did": "did:ixo:entity:a0ee499f3faecb7e7bb97f15266d0764", - "amount": 2000 - }, - { - "did": "did:ixo:entity:a105cd5387778ff51a63d510bba11abe", - "amount": 2000 - }, - { - "did": "did:ixo:entity:a23baca8102235ba6b8b9bdb91aadab3", - "amount": 2000 - }, - { - "did": "did:ixo:entity:a337a944829316cee1ead6c360222655", - "amount": 2000 - }, - { - "did": "did:ixo:entity:a82dd699a427a9f7ba4f288fb59aef4d", - "amount": 2000 - }, - { - "did": "did:ixo:entity:a887c4a75f8f2f48a2aeed305d04037a", - "amount": 2000 - }, - { - "did": "did:ixo:entity:a9cf96ba3eafd8c01221e3d1fc7ae240", - "amount": 2000 - }, - { - "did": "did:ixo:entity:abd07fc5f4d01c9f8030e5d5ff1c806d", - "amount": 2000 - }, - { - "did": "did:ixo:entity:ad68b7d291b3b46a0fa2af5fb2e93948", - "amount": 2000 - }, - { - "did": "did:ixo:entity:ae3df23927aeefd0dbeb5bf165bed390", - "amount": 2000 - }, - { - "did": "did:ixo:entity:af9d5fdd7ebd780d76b75c96747f2031", - "amount": 2000 - }, - { - "did": "did:ixo:entity:b0f13598f126ef75378a40314bbeaff1", - "amount": 2000 - }, - { - "did": "did:ixo:entity:b11fe6c080108604f9fdd3d214650c22", - "amount": 2000 - }, - { - "did": "did:ixo:entity:b3cf0fd6f5ba99009dc288488fcf8f34", - "amount": 2000 - }, - { - "did": "did:ixo:entity:b7646e24904efc72797f378c040bef47", - "amount": 2000 - }, - { - "did": "did:ixo:entity:b89ffb51ae59d8bf234ddecc4d25233f", - "amount": 2000 - }, - { - "did": "did:ixo:entity:b97902a0b2e9ff18dd045d19ea7eafb2", - "amount": 2000 - }, - { - "did": "did:ixo:entity:b9a38065a68bad61bb2eeebc5cdb5197", - "amount": 2000 - }, - { - "did": "did:ixo:entity:bab1677bb4ef9ca98bd6cd706ab9b90f", - "amount": 2000 - }, - { - "did": "did:ixo:entity:bbd8257a45ecc6ee1cef56788cfdc2b5", - "amount": 2000 - }, - { - "did": "did:ixo:entity:bbed9ed92405880c5843f69de9869fc7", - "amount": 2000 - }, - { - "did": "did:ixo:entity:c067e30c814f7cba8d0fad0e198a8f19", - "amount": 2000 - }, - { - "did": "did:ixo:entity:c1401cfb0e10198469956c8f13b3ffee", - "amount": 2000 - }, - { - "did": "did:ixo:entity:c36781c31686605a258b07b8ee134016", - "amount": 2000 - }, - { - "did": "did:ixo:entity:c376085d757aeef71d45578749a1e57b", - "amount": 2000 - }, - { - "did": "did:ixo:entity:c4576124292f599dbed1184e64b81266", - "amount": 2000 - }, - { - "did": "did:ixo:entity:c49416cff5f4c40c146ff729bfac4ba7", - "amount": 2000 - }, - { - "did": "did:ixo:entity:c6650464a3f2790788e8cab64dac7a9b", - "amount": 2000 - }, - { - "did": "did:ixo:entity:c6b80d0e6e25950aaa488b0367bb0481", - "amount": 2000 - }, - { - "did": "did:ixo:entity:c8a71c48f0e88570b1b0b6495a0c51c1", - "amount": 2000 - }, - { - "did": "did:ixo:entity:c9846061a178d0bb6584efc67c747f08", - "amount": 2000 - }, - { - "did": "did:ixo:entity:cc2786ccc54f3ebbc9863b15d04a8caa", - "amount": 2000 - }, - { - "did": "did:ixo:entity:cda10070f68a6f3c74c6a03d4881d2b8", - "amount": 2000 - }, - { - "did": "did:ixo:entity:ce737cdd5feaf58163683a6d21dcd6d2", - "amount": 2000 - }, - { - "did": "did:ixo:entity:ceba58b222b0435905dc31261872f61b", - "amount": 2000 - }, - { - "did": "did:ixo:entity:d1d11a6676df3f4363b1d535698c9984", - "amount": 2000 - }, - { - "did": "did:ixo:entity:d3678f369babb25a6021992623b04e0e", - "amount": 2000 - }, - { - "did": "did:ixo:entity:d57bb73e6ef2ecf96efe0e57da4468e0", - "amount": 2000 - }, - { - "did": "did:ixo:entity:d6a0f216f3d9c083847ad27abe0ea53b", - "amount": 2000 - }, - { - "did": "did:ixo:entity:d873bc8c01d7753ea5b66ad958e8d58f", - "amount": 2000 - }, - { - "did": "did:ixo:entity:da7cc7b28040ee19d23d58158326ba3e", - "amount": 2000 - }, - { - "did": "did:ixo:entity:dac2decb8ae575a9ce52d19c89f8a877", - "amount": 2000 - }, - { - "did": "did:ixo:entity:dadb0b156c7cc9e17ff44b8c1782711b", - "amount": 2000 - }, - { - "did": "did:ixo:entity:dead91bbd6973c80e7012b61715ab168", - "amount": 2000 - }, - { - "did": "did:ixo:entity:df2460bc38d3867e960c320e94c075d5", - "amount": 2000 - }, - { - "did": "did:ixo:entity:e1bf2fb608e3d7a542c7c4f404b3a521", - "amount": 2000 - }, - { - "did": "did:ixo:entity:e2515f9505070a6ba218742cf27943c9", - "amount": 2000 - }, - { - "did": "did:ixo:entity:e3e29c494f81a4a6682b4af5955a5e88", - "amount": 2000 - }, - { - "did": "did:ixo:entity:e469d36f375292d0f789d97c1bde965d", - "amount": 2000 - }, - { - "did": "did:ixo:entity:e47cff662c4a871a060863f9663dc487", - "amount": 2000 - }, - { - "did": "did:ixo:entity:e5c43ea8c115912fe18b5e20dcc124d7", - "amount": 2000 - }, - { - "did": "did:ixo:entity:e61385f5188575e20a4b79dbaaae4ec3", - "amount": 2000 - }, - { - "did": "did:ixo:entity:e73f0b915ec8d5488519f0bc3145ce0f", - "amount": 2000 - }, - { - "did": "did:ixo:entity:e9008776ceb16cd0c01f1b4df3475b41", - "amount": 2000 - }, - { - "did": "did:ixo:entity:e91a1045ff864bc3a6711a3b4676bb46", - "amount": 2000 - }, - { - "did": "did:ixo:entity:e9df413f2bd32d7d282f6a6d60e49c38", - "amount": 2000 - }, - { - "did": "did:ixo:entity:ea1188cf1a4ce36bfb92997951c7ec78", - "amount": 2000 - }, - { - "did": "did:ixo:entity:eaa4379af424d5c0a432518613893d8b", - "amount": 2000 - }, - { - "did": "did:ixo:entity:eb4b0dee18b3e5473bf846a067cb827c", - "amount": 2000 - }, - { - "did": "did:ixo:entity:eece6af401e46f7f55ff72bd2ce4a000", - "amount": 2000 - }, - { - "did": "did:ixo:entity:f098d2c758db1430179fd4a87bf3c47c", - "amount": 2000 - }, - { - "did": "did:ixo:entity:f136420e62129bff5a4944eb3d17d03c", - "amount": 2000 - }, - { - "did": "did:ixo:entity:f61891d74cfb67b0c67e1bf442a23ddd", - "amount": 2000 - }, - { - "did": "did:ixo:entity:f7d2e388c4b6aa08235cbdb1e1b7e425", - "amount": 2000 - }, - { - "did": "did:ixo:entity:f7d4e873ae4227373017e3c2471f7614", - "amount": 2000 - }, - { - "did": "did:ixo:entity:f8be78ce141be3e639057db86fbc3d71", - "amount": 2000 - }, - { - "did": "did:ixo:entity:f936abc4be167d042acb79a51ea582b8", - "amount": 2000 - }, - { - "did": "did:ixo:entity:f9d31aab351e52f840f994f0c6d0a734", - "amount": 2000 - }, - { - "did": "did:ixo:entity:fa2cfa5c85a8f76dba6b4ae88164b564", - "amount": 2000 - }, - { - "did": "did:ixo:entity:fa4c60f1648eaac69f0040cb064df648", - "amount": 2000 - }, - { - "did": "did:ixo:entity:fc8bf22474230d438a149a9903fc20d4", - "amount": 2000 - }, - { - "did": "did:ixo:entity:fcf503b9fa767d384e060009aa535734", - "amount": 2000 - }, - { - "did": "did:ixo:entity:fd3bbcea8b5a7d074fa5c51656265beb", - "amount": 2000 - }, - { - "did": "did:ixo:entity:fef31928b853426c0da326e7bb9f343c", - "amount": 2000 - }, - { - "did": "did:ixo:entity:ff581af6e2e071758b1f94835933d038", - "amount": 2000 - }, - { - "did": "did:ixo:entity:ffb6b788b6d6a2e7266d5a3eb7074816", - "amount": 2000 + "did": "did:ixo:entity:e9c77018dd9bc45a6d18221bbbae228a", + "amount": 0 } ] } \ No newline at end of file From 91935c63391e94607cf70eaa716250fe9d4e695b Mon Sep 17 00:00:00 2001 From: Michael Pretorius Date: Mon, 26 Aug 2024 10:42:54 +0200 Subject: [PATCH 07/20] tests: add basic protocol creation flows --- __tests__/setup/protocols/constants.ts | 220 ++++++++++++++++++++++++ __tests__/setup/protocols/setupFlow.ts | 62 +++++++ __tests__/specs/protocols/index.spec.ts | 27 +++ package.json | 3 +- 4 files changed, 311 insertions(+), 1 deletion(-) create mode 100644 __tests__/setup/protocols/constants.ts create mode 100644 __tests__/setup/protocols/setupFlow.ts create mode 100644 __tests__/specs/protocols/index.spec.ts diff --git a/__tests__/setup/protocols/constants.ts b/__tests__/setup/protocols/constants.ts new file mode 100644 index 00000000..2766f1bc --- /dev/null +++ b/__tests__/setup/protocols/constants.ts @@ -0,0 +1,220 @@ +import { dids } from "../constants"; + +export const setup_impact_credit_asset_protocol = () => ({ + entity: { + // type of entity eg dao/protocol/asset/oracle + entityType: "protocol/asset", + // please use Impact DAO's did as relayerNode eg dids.impactsDao + relayerNode: dids.impactsRootUserDid, + // for context class below please use the parent dao/protocol/asset class did provided by ixo eg dids.daoClass + contextClass: dids.assetClass, + // can add a also know ass if want + alsoKnownAs: "", + // you can remove/add more services + service: [ + { + id: "{id}#ipfs", + type: "Ipfs", + serviceEndpoint: "https://ipfs.io/ipfs/", + }, + ], + linkedEntity: [], + // if you have any other linked resources other than the ones below that will automatically + // be uploaded to cellnode/w3s, you can pass them here + linkedResources: [], + }, + // you can create linked resources that will be uploaded to the specified storage and resource will be saved + // on entity linked resources with the cid as proof and service endpoint of provided storage. + linkedResources: [ + { + name: "profile", + type: "Settings", + storage: "ipfs", + json: { + "@context": { + ixo: "https://w3id.org/ixo/ns/protocol/", + "@id": "@type", + type: "@type", + "@protected": true, + }, + id: "ixo:entity#profile", + type: "profile", + name: "Impact Credit", + brand: "Impacts DAO", + location: "AA", + description: "Impact Credit Protocol", + attributes: [ + { + key: "", + value: "", + }, + ], + category: "Impact_Credit", + }, + }, + { + name: "page", + type: "Settings", + storage: "ipfs", + json: { + "@context": { + ixo: "https://w3id.org/ixo/ns/protocol/", + "@id": "@type", + type: "@type", + "@protected": true, + }, + type: "ixo:entity#page", + page: [ + { + id: "page-title", + type: "pageTitle", + data: { + text: "Impact Credit Protocol", + level: 1, + }, + }, + ], + }, + }, + { + name: "tags", + type: "Settings", + storage: "ipfs", + json: { + "@context": { + ixo: "https://w3id.org/ixo/ns/protocol/", + "@id": "@type", + type: "@type", + "@protected": true, + }, + type: "ixo:entity#tags", + entityTags: [ + { + category: "Entity", + tags: ["Asset"], + readonly: true, + }, + { + category: "Claim Type", + tags: [""], + readonly: true, + }, + { + category: "Type", + tags: ["Impact_Credit"], + readonly: true, + }, + { + category: "Token Class", + tags: ["Unspecified"], + readonly: true, + }, + ], + }, + }, + ], +}); + +// Types for typescript strict type checking, please ignore +export type SetupDaoConstantFields = ReturnType< + typeof setup_impact_credit_asset_protocol +>; + +export const setup_coin_asset_protocol = () => ({ + entity: { + // type of entity eg dao/protocol/asset/oracle + entityType: "protocol/asset", + // please use Impact DAO's did as relayerNode eg dids.impactsDao + relayerNode: dids.impactsRootUserDid, + // for context class below please use the parent dao/protocol/asset class did provided by ixo eg dids.daoClass + contextClass: dids.assetClass, + // can add a also know ass if want + alsoKnownAs: "", + // you can remove/add more services + service: [ + { + id: "{id}#ipfs", + type: "Ipfs", + serviceEndpoint: "https://ipfs.io/ipfs/", + }, + ], + linkedEntity: [], + // if you have any other linked resources other than the ones below that will automatically + // be uploaded to cellnode/w3s, you can pass them here + linkedResources: [], + }, + // you can create linked resources that will be uploaded to the specified storage and resource will be saved + // on entity linked resources with the cid as proof and service endpoint of provided storage. + linkedResources: [ + { + name: "profile", + type: "Settings", + storage: "cellnode", + json: { + "@context": { + ixo: "https://w3id.org/ixo/ns/protocol/", + "@id": "@type", + type: "@type", + "@protected": true, + }, + id: "ixo:entity#profile", + type: "profile", + name: "Coin", + brand: "Impacts DAO", + location: "AA", + description: "Coin Protocol", + attributes: [ + { + key: "", + value: "", + }, + ], + category: "Coin", + }, + }, + { + name: "page", + type: "Settings", + storage: "cellnode", + json: { + "@context": { + ixo: "https://w3id.org/ixo/ns/protocol/", + "@id": "@type", + type: "@type", + "@protected": true, + }, + type: "ixo:entity#page", + page: [ + { + id: "page-title", + type: "pageTitle", + data: { + text: "Coin Protocol", + level: 1, + }, + }, + ], + }, + }, + { + name: "tags", + type: "Settings", + storage: "cellnode", + json: { + "@context": { + ixo: "https://w3id.org/ixo/ns/protocol/", + "@id": "@type", + type: "@type", + "@protected": true, + }, + type: "ixo:entity#tags", + entityTags: [ + { category: "Entity", tags: ["Asset"], readonly: true }, + { category: "Claim Type", tags: [""], readonly: true }, + { category: "Type", tags: ["Coin"], readonly: true }, + { category: "Token Class", tags: ["Unspecified"], readonly: true }, + ], + }, + }, + ], +}); diff --git a/__tests__/setup/protocols/setupFlow.ts b/__tests__/setup/protocols/setupFlow.ts new file mode 100644 index 00000000..4b745447 --- /dev/null +++ b/__tests__/setup/protocols/setupFlow.ts @@ -0,0 +1,62 @@ +import { testMsg, utils } from "../../helpers/common"; +import { + setup_coin_asset_protocol, + setup_impact_credit_asset_protocol, +} from "./constants"; +import * as Entity from "../Entity"; +import { setAndLedgerUser, uploadAllToCellnodeWeb3 } from "../helpers"; + +export const impactCreditProtocol = () => + describe("Flow for creating Impact credit asset protocol", () => { + setAndLedgerUser(process.env.ROOT_IMPACTS!); + + // =============================== START + let protDid: string; + testMsg("Creating impact credit protocol", async () => { + const protConst = setup_impact_credit_asset_protocol(); + + let linkedResourcesUploaded = await uploadAllToCellnodeWeb3( + protConst.linkedResources + ); + console.log({ linkedResourcesUploaded }); + + // Create the Entity + const res = await Entity.CreateEntity( + protConst.entity, + linkedResourcesUploaded + ); + protDid = utils.common.getValueFromEvents(res, "wasm", "token_id"); + console.log({ protDid }); + + return res; + }); + // =============================== END + }); + +export const coinProtocol = () => + describe("Flow for creating coin asset protocol", () => { + setAndLedgerUser(process.env.ROOT_IMPACTS!); + + // =============================== START + let protDid: string; + testMsg("Creating coin protocol", async () => { + const protConst = setup_coin_asset_protocol(); + + let protLinkedResourcesUploaded = await uploadAllToCellnodeWeb3( + protConst.linkedResources + ); + console.log({ protLinkedResourcesUploaded }); + + // Create the Entity + const res = await Entity.CreateEntity( + protConst.entity, + protLinkedResourcesUploaded, + true + ); + protDid = utils.common.getValueFromEvents(res, "wasm", "token_id"); + console.log({ protDid }); + + return res; + }); + // =============================== END + }); diff --git a/__tests__/specs/protocols/index.spec.ts b/__tests__/specs/protocols/index.spec.ts new file mode 100644 index 00000000..99c6273e --- /dev/null +++ b/__tests__/specs/protocols/index.spec.ts @@ -0,0 +1,27 @@ +require("dotenv").config(); + +import { relayerVerifyAllEntities } from "../../flows/entities"; +import { createQueryClient, generateWallets } from "../../helpers/common"; +import { dids } from "../../setup/constants"; +import { + coinProtocol, + impactCreditProtocol, +} from "../../setup/protocols/setupFlow"; +import { chainNetwork } from "../../setup/constants"; + +beforeAll(() => Promise.all([createQueryClient(), generateWallets(false)])); + +// Setup flow for Protocol creation +// ------------------------------------------ + +// first create yoma dao to save yomaDao to ./constants.ts +impactCreditProtocol(); //impacts root user + +// next create daos and oracles and save coderByteOracle did to ./constants.ts +coinProtocol(); //impacts root user + +// next verify all entities created +// relayerVerifyAllEntities(undefined, undefined, chainNetwork, [ +// "did:ixo:entity:a033a255d0001d4ba7a2d6fdf47309a9", +// "did:ixo:entity:7e317b06a650da5ec35ce8fbbbc0b0c7", +// ]); //impacts root user diff --git a/package.json b/package.json index 5f60580f..17db05e2 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ "test:supamoto": "jest __tests__/specs/supamoto --forceExit", "test:ai4g": "jest __tests__/specs/ai4g --forceExit", "test:umuzi": "jest __tests__/specs/umuzi --forceExit", - "test:idcc": "jest __tests__/specs/idcc --forceExit" + "test:idcc": "jest __tests__/specs/idcc --forceExit", + "test:protocols": "jest __tests__/specs/protocols --forceExit" }, "publishConfig": { "access": "public" From 9e5d0f773615902d25d8ee302d140834ab246c05 Mon Sep 17 00:00:00 2001 From: Michael Pretorius Date: Thu, 5 Sep 2024 05:50:58 +0200 Subject: [PATCH 08/20] WIP: tests --- __tests__/flows/cosmwasm.ts | 477 +- __tests__/flows/iids.ts | 101 +- __tests__/flows/instantiateProposals.ts | 3 +- __tests__/flows/tokens.ts | 33 +- __tests__/helpers/common.ts | 6 + __tests__/index.spec.ts | 2 +- __tests__/modules/CosmWasm.ts | 3 +- __tests__/setup/web3.ts | 66 +- assets/contracts/custom/cw1155_base_lp.wasm | Bin 257550 -> 0 bytes assets/contracts/custom/wasmswap.wasm | Bin 403891 -> 0 bytes assets/contracts/ixo/ixoswap.wasm | Bin 434306 -> 0 bytes assets/contracts/ixo/ixoswap/checksums.txt | 1 + assets/contracts/ixo/ixoswap/ixoswap.wasm | Bin 0 -> 433875 bytes assets/documents/emerging/kado_cooks.jpg | Bin 0 -> 75796 bytes .../random/ixoSwap_transactions.json | 18696 ++++++++++++++++ src/custom_queries/contract.constants.ts | 2 +- 16 files changed, 19186 insertions(+), 204 deletions(-) delete mode 100644 assets/contracts/custom/cw1155_base_lp.wasm delete mode 100644 assets/contracts/custom/wasmswap.wasm delete mode 100644 assets/contracts/ixo/ixoswap.wasm create mode 100644 assets/contracts/ixo/ixoswap/checksums.txt create mode 100644 assets/contracts/ixo/ixoswap/ixoswap.wasm create mode 100644 assets/documents/emerging/kado_cooks.jpg create mode 100644 assets/documents/random/ixoSwap_transactions.json diff --git a/__tests__/flows/cosmwasm.ts b/__tests__/flows/cosmwasm.ts index 795d9a61..c8b4e3ce 100644 --- a/__tests__/flows/cosmwasm.ts +++ b/__tests__/flows/cosmwasm.ts @@ -12,6 +12,7 @@ import { getUser, ixo, queryClient, + saveFileToPath, testMsg, timeout, utils, @@ -552,129 +553,228 @@ export const swapContract = () => { // Cosmos.BankSendTrx(100000000000) // ); - let tokenContractAddress: string = ""; - testMsg("/cosmwasm.wasm.v1.MsgInstantiateContract", async () => { - const tester = (await getUser().getAccounts())[0].address; - const msg = { minter: tester }; + // must be existing token module contract, ixoswap smart contract does validation + let tokenContractAddress: string = + "ixo1nc5tatafv6eyq7llkr2gv50ff9e22mnf70qgjlv737ktmt4eswrqvg5w3c"; + // testMsg("/cosmwasm.wasm.v1.MsgInstantiateContract", async () => { + // const tester = (await getUser().getAccounts())[0].address; + // const msg = { minter: tester }; - const res = await Wasm.WasmInstantiateTrx(2, JSON.stringify(msg)); - tokenContractAddress = utils.common.getValueFromEvents( - res, - "instantiate", - "_contract_address" - ); - console.log({ tokenContractAddress }); - return res; - }); + // const res = await Wasm.WasmInstantiateTrx(2, JSON.stringify(msg)); + // tokenContractAddress = utils.common.getValueFromEvents( + // res, + // "instantiate", + // "_contract_address" + // ); + // console.log({ tokenContractAddress }); + // return res; + // }); - let tokenIds: string[] = []; - test("Query token ids", async () => { - const contractAddress1155 = - "ixo1nc5tatafv6eyq7llkr2gv50ff9e22mnf70qgjlv737ktmt4eswrqvg5w3c"; - const tester = (await getUser().getAccounts())[0].address; + // if useStaticTokens is true, then the tokenIds will be used and fetching token data will be skipped + const useStaticTokens = false; + let tokenIds: string[] = new Array(30).fill(0).map((_, i) => i.toString()); + if (!useStaticTokens) { + test("Query token ids", async () => { + const contractAddress1155 = + "ixo1nc5tatafv6eyq7llkr2gv50ff9e22mnf70qgjlv737ktmt4eswrqvg5w3c"; + const tester = (await getUser().getAccounts())[0].address; - const res = await queryClient.cosmwasm.wasm.v1.smartContractState({ - address: contractAddress1155, - queryData: utils.conversions.JsonToArray( - JSON.stringify({ - tokens: { - owner: tester, - limit: 30, - }, - }) - ), + const res = await queryClient.cosmwasm.wasm.v1.smartContractState({ + address: contractAddress1155, + queryData: utils.conversions.JsonToArray( + JSON.stringify({ + tokens: { + owner: tester, + limit: 30, + }, + }) + ), + }); + tokenIds = JSON.parse( + utils.conversions.Uint8ArrayToJS(res.data) + ).tokens; + console.log(tokenIds); + expect(res).toBeTruthy(); }); - tokenIds = JSON.parse(utils.conversions.Uint8ArrayToJS(res.data)).tokens; - console.log(tokenIds); - expect(res).toBeTruthy(); - }); + } + // testMsg( + // "/cosmwasm.wasm.v1.MsgExecuteContract mint 1155 tokens", + // async () => { + // const tester = (await getUser().getAccounts())[0].address; + // const msg = { + // batch_mint: { + // to: tester, + // batch: tokenIds.map((id) => [id, "20000000000", "uri"]), + // }, + // }; + + // const res = await Wasm.WasmExecuteTrx( + // tokenContractAddress, + // JSON.stringify(msg), + // WalletUsers.tester + // ); + // return res; + // } + // ); - testMsg( - "/cosmwasm.wasm.v1.MsgExecuteContract mint 1155 tokens", - async () => { - const tester = (await getUser().getAccounts())[0].address; - const msg = { - batch_mint: { - to: tester, - batch: tokenIds.map((id) => [id, "20000000000", "uri"]), - }, - }; + let cw20ContractAddress: string = + "ixo1r4azksxfmfn3wx6tlazcu5acreymnvyacnu3q33532zdt6ypwmxqnystvl"; + // testMsg("/cosmwasm.wasm.v1.MsgInstantiateContract", async () => { + // const tester = (await getUser(WalletUsers.bob).getAccounts())[0].address; + // const msg = { + // decimals: 6, + // initial_balances: [ + // { + // address: tester, + // amount: "30000000000000", + // }, + // ], + // name: "CW20", + // symbol: "HAHA", + // }; - const res = await Wasm.WasmExecuteTrx( - tokenContractAddress, - JSON.stringify(msg), - WalletUsers.tester - ); - return res; - } - ); + // const res = await Wasm.WasmInstantiateTrx(25, JSON.stringify(msg)); + // cw20ContractAddress = utils.common.getValueFromEvents( + // res, + // "instantiate", + // "_contract_address" + // ); + // console.log({ cw20ContractAddress }); + // return res; + // }); - let swapContractAddress: string = ""; - testMsg("/cosmwasm.wasm.v1.MsgInstantiateContract", async () => { - const tester = (await getUser().getAccounts())[0].address; - const msg = { - token1155_denom: { cw1155: [tokenContractAddress, "TEST"] }, - token2_denom: { native: "uixo" }, - lp_token_code_id: 25, - max_slippage_percent: "0.3", - protocol_fee_recipient: tester, - protocol_fee_percent: "0.1", - lp_fee_percent: "0.2", - }; + // change token2 value here if want to use cw20 rather than native + type token2 = "cw20" | "native"; + const tokenType: token2 = "native"; - const res = await Wasm.WasmInstantiateTrx(29, JSON.stringify(msg)); - swapContractAddress = utils.common.getValueFromEvents( - res, - "instantiate", - "_contract_address" - ); - console.log({ swapContractAddress }); - return res; - }); + let swapContractAddress: string = + "ixo1k3dmfjc8xnm7q0ay58d8lu029t6m7ezt73yestsc4j8jx0dxmd7sllqg77"; + let swapContractAddress2: string = + "ixo1e9yw6r5rrcuxygse9egz6xcmcvkt7dhdkupmmaazrwztvv7efywq9q3a00"; + // testMsg("/cosmwasm.wasm.v1.MsgInstantiateContract", async () => { + // const tester = (await getUser(WalletUsers.bob).getAccounts())[0].address; + // const msg = { + // token1155_denom: { cw1155: [tokenContractAddress, "TEST"] }, + // token2_denom: { native: "uixo" }, + // lp_token_code_id: 25, + // max_slippage_percent: "0.3", + // protocol_fee_recipient: tester, + // protocol_fee_percent: "0.1", + // lp_fee_percent: "0.2", + // }; - testMsg( - "/cosmwasm.wasm.v1.MsgExecuteContract approve swap contract for token", - async () => { - const msg = { - approve_all: { - operator: swapContractAddress, - }, - }; + // const res = await Wasm.WasmInstantiateTrx(30, JSON.stringify(msg)); + // swapContractAddress = utils.common.getValueFromEvents( + // res, + // "instantiate", + // "_contract_address" + // ); + // console.log({ swapContractAddress }); + // return res; + // }); + // testMsg("/cosmwasm.wasm.v1.MsgInstantiateContract 2", async () => { + // const tester = (await getUser(WalletUsers.bob).getAccounts())[0].address; + // const msg = { + // token1155_denom: { cw1155: [tokenContractAddress, "TEST"] }, + // token2_denom: { native: "uixo" }, + // lp_token_code_id: 25, + // max_slippage_percent: "0.3", + // protocol_fee_recipient: tester, + // protocol_fee_percent: "2", + // lp_fee_percent: "1", + // }; - const res = await Wasm.WasmExecuteTrx( - tokenContractAddress, - JSON.stringify(msg), - WalletUsers.tester - ); - return res; - } - ); + // const res = await Wasm.WasmInstantiateTrx(30, JSON.stringify(msg)); + // swapContractAddress2 = utils.common.getValueFromEvents( + // res, + // "instantiate", + // "_contract_address" + // ); + // console.log({ swapContractAddress2 }); + // return res; + // }); - testMsg("/cosmwasm.wasm.v1.MsgExecuteContract add liquidity", async () => { - const msg = { - add_liquidity: { - token1155_amounts: { - ...tokenIds.reduce((acc, id) => { - acc[id] = "10000000000"; - return acc; - }, {}), - }, - min_liquidity: "10000000000", - max_token2: "10000000000", - }, - }; + // testMsg( + // "/cosmwasm.wasm.v1.MsgExecuteContract approve swap contract for token", + // async () => + // await Wasm.WasmExecuteTrx( + // tokenContractAddress, + // JSON.stringify({ + // approve_all: { + // operator: swapContractAddress, + // }, + // }), + // WalletUsers.tester + // ) + // ); + // testMsg( + // "/cosmwasm.wasm.v1.MsgExecuteContract approve swap contract 2 for token", + // async () => + // await Wasm.WasmExecuteTrx( + // tokenContractAddress, + // JSON.stringify({ + // approve_all: { + // operator: swapContractAddress2, + // }, + // }), + // WalletUsers.tester + // ) + // ); - const res = await Wasm.WasmExecuteTrx( - swapContractAddress, - JSON.stringify(msg), - WalletUsers.tester, - { amount: "10000000000", denom: "uixo" } - ); - return res; - }); + // testMsg("/cosmwasm.wasm.v1.MsgExecuteContract add liquidity", async () => { + // console.log({ tokenIds }); + // const msg = { + // add_liquidity: { + // token1155_amounts: { + // ...tokenIds.reduce((acc, id) => { + // acc[id] = "10000000000"; + // return acc; + // }, {}), + // }, + // min_liquidity: "300000000000", + // max_token2: "300000000000", + // }, + // }; + + // const res = await Wasm.WasmExecuteTrx( + // swapContractAddress, + // JSON.stringify(msg), + // WalletUsers.tester, + // { amount: "300000000000", denom: "uixo" } + // ); + // return res; + // }); + + // testMsg( + // "/cosmwasm.wasm.v1.MsgExecuteContract add liquidity 2", + // async () => { + // console.log({ tokenIds }); + // const msg = { + // add_liquidity: { + // token1155_amounts: { + // ...tokenIds.reduce((acc, id) => { + // acc[id] = "10000000"; + // return acc; + // }, {}), + // }, + // min_liquidity: "300000000", + // max_token2: "300000000", + // }, + // }; + + // const res = await Wasm.WasmExecuteTrx( + // swapContractAddress2, + // JSON.stringify(msg), + // WalletUsers.tester, + // { amount: "300000000", denom: "uixo" } + // ); + // return res; + // } + // ); testMsg("/cosmwasm.wasm.v1.MsgExecuteContract swap", async () => { - const numberOfTests = 30; + if (1) throw new Error("stop"); // helper to not run this without having to comment out + const numberOfTests = 15; const slippage = 20; const txList: TxRaw[] = []; const user = getUser(WalletUsers.tester); @@ -761,16 +861,22 @@ export const swapContract = () => { } swapResponses.push(lastTx); + // save all stove purchases to file + saveFileToPath( + ["documents", "random", "ixoSwap_transactions.json"], + JSON.stringify(swapResponses, null, 2) + ); + for (const [index, response] of swapResponses.entries()) { const tokenBought = utils.common.getValueFromEvents( response, "wasm", - "token_bought" + "output_token_amount" ); const tokenSold = utils.common.getValueFromEvents( response, "wasm", - "token_sold" + "input_token_amount" ); const swapResult = `Swap ${index + 1} result: `; @@ -785,6 +891,155 @@ export const swapContract = () => { return swapResponses![0]; }); + + // testMsg("/cosmwasm.wasm.v1.MsgExecuteContract freeze deposits", async () => + // Wasm.WasmExecuteTrx( + // swapContractAddress, + // JSON.stringify({ + // freeze_deposits: { + // freeze: true, + // }, + // }) + // ) + // ); + + // testMsg( + // "/cosmwasm.wasm.v1.MsgExecuteContract swap should fail for frozen", + // async () => + // Wasm.WasmExecuteTrx( + // swapContractAddress, + // JSON.stringify({ + // swap: { + // input_token: TokenType.Token1155, + // input_amount: { + // multiple: { + // [tokenIds[0]]: "100", + // }, + // }, + // min_output: { + // single: "70", + // }, + // }, + // }) + // ), + // undefined, + // false + // ); + + // testMsg( + // "/cosmwasm.wasm.v1.MsgExecuteContract unfreeze freeze deposits", + // async () => + // Wasm.WasmExecuteTrx( + // swapContractAddress, + // JSON.stringify({ + // freeze_deposits: { + // freeze: false, + // }, + // }) + // ) + // ); + + // testMsg("/cosmwasm.wasm.v1.MsgExecuteContract update slippage", async () => + // Wasm.WasmExecuteTrx( + // swapContractAddress, + // JSON.stringify({ + // update_slippage: { + // max_slippage_percent: "2", + // }, + // }) + // ) + // ); + + // testMsg( + // "/cosmwasm.wasm.v1.MsgExecuteContract transfer ownership", + // async () => { + // const alice = getUser(WalletUsers.alice); + // const aliceAddress = (await alice.getAccounts())[0].address; + + // const res = Wasm.WasmExecuteTrx( + // swapContractAddress, + // JSON.stringify({ + // transfer_ownership: { + // owner: aliceAddress, + // }, + // }) + // ); + // return res; + // } + // ); + + // testMsg("/cosmwasm.wasm.v1.MsgExecuteContract claim ownership", async () => + // Wasm.WasmExecuteTrx( + // swapContractAddress, + // JSON.stringify({ + // claim_ownership: {}, + // }), + // WalletUsers.alice + // ) + // ); + + testMsg("/cosmwasm.wasm.v1.MsgExecuteContract remove liquidity", async () => + Wasm.WasmExecuteTrx( + swapContractAddress, + JSON.stringify({ + remove_liquidity: { + amount: "200", + min_token1155: { + single: "150", + }, + min_token2: "150", + }, + }) + ) + ); + + // testMsg( + // "/cosmwasm.wasm.v1.MsgExecuteContract new owner update fee", + // async () => { + // const alice = (await getUser(WalletUsers.alice).getAccounts())[0] + // .address; + // const res = await Wasm.WasmExecuteTrx( + // swapContractAddress, + // JSON.stringify({ + // update_fee: { + // lp_fee_percent: "0.01", + // protocol_fee_percent: "0.01", + // protocol_fee_recipient: alice, + // }, + // }), + // WalletUsers.alice + // ); + // return res; + // } + // ); + + // testMsg( + // "/cosmwasm.wasm.v1.MsgExecuteContract test swap send to", + // async () => { + // const charlie = (await getUser(WalletUsers.charlie).getAccounts())[0] + // .address; + // const msg = { + // swap_and_send_to: { + // input_token: TokenType.Token2, + // input_amount: { + // single: "100000", + // }, + // min_token: { + // single: "90000", + // }, + // recipient: charlie, + // }, + // }; + // console.dir(msg, { depth: null }); + // const res = await Wasm.WasmExecuteTrx( + // swapContractAddress, + // JSON.stringify(msg), + // WalletUsers.tester, + // { amount: "100000", denom: "uixo" } + // ); + // return res; + // } + // ); }); }; diff --git a/__tests__/flows/iids.ts b/__tests__/flows/iids.ts index 935b923e..1fcf36b0 100644 --- a/__tests__/flows/iids.ts +++ b/__tests__/flows/iids.ts @@ -123,19 +123,19 @@ export const iidReplaceLinkedResource = () => // return remove as any; // }); - testMsg("/ixo.iid.v1beta1.MsgAddService", async () => { - const entityDid = dids.legacyCollection; - const resource = ixo.iid.v1beta1.Service.fromPartial({ - id: "{id}#cellnode", - type: "Cellnode", - serviceEndpoint: "https://cellnode-pandora.ixo.earth", - }); + // testMsg("/ixo.iid.v1beta1.MsgAddService", async () => { + // const entityDid = dids.legacyCollection; + // const resource = ixo.iid.v1beta1.Service.fromPartial({ + // id: "{id}#cellnode", + // type: "Cellnode", + // serviceEndpoint: "https://cellnode-pandora.ixo.earth", + // }); - const remove = await Iid.DeleteService(entityDid, resource.id); - const add = await Iid.AddService(entityDid, resource); + // const remove = await Iid.DeleteService(entityDid, resource.id); + // const add = await Iid.AddService(entityDid, resource); - return remove as any; - }); + // return remove as any; + // }); // testMsg("/ixo.iid.v1beta1.AddLinkedClaim", async () => { // const entityDid = dids.legacyCollection; @@ -156,48 +156,47 @@ export const iidReplaceLinkedResource = () => // return remove as any; // }); - // testMsg("/ixo.iid.v1beta1.MsgAddLinkedResource", async () => { - // const getResource = (externalId: string) => - // ixo.iid.v1beta1.LinkedResource.fromPartial({ - // id: `{id}#profile`, - // type: "Settings", - // description: "Profile", - // mediaType: "application/ld+json", - // serviceEndpoint: - // "ipfs:bafkreigx7val5mfeghm636jcso6kt7wqpieh7h7hgdkcn64xxyy7ihp2q4", - // proof: "bafkreigx7val5mfeghm636jcso6kt7wqpieh7h7hgdkcn64xxyy7ihp2q4", - // encrypted: "false", - // right: "", - // }); + testMsg("/ixo.iid.v1beta1.MsgAddLinkedResource", async () => { + const getResource = (externalId?: string) => + ixo.iid.v1beta1.LinkedResource.fromPartial({ + id: `{id}#profile`, + type: "Settings", + description: "Profile", + mediaType: "application/ld+json", + serviceEndpoint: + "ipfs:bafkreigbt6tid3xv5lm23e2wgbbfpdcqmhdjf33iffmih4wcr6x5zzxipy", + proof: "bafkreigbt6tid3xv5lm23e2wgbbfpdcqmhdjf33iffmih4wcr6x5zzxipy", + encrypted: "false", + right: "", + }); - // const collections = await axios.get( - // "https://blocksync.ixo.earth/api/entity/collectionsByOwnerAddress/ixo1lgelskjkjjasl860n6kmevlflanqj5vh8l8p5w" - // ); - // const allEntities = collections.data[0].entities; - // // console.log(allEntities); + const allEntities = [ + "did:ixo:entity:3a139d17d1911cb3e5dedd6aa7a88ad9", + "did:ixo:entity:ffb6b788b6d6a2e7266d5a3eb7074816", + ]; - // const chunkSize = 100; - // let index = 0; - // for (const entities of chunkArray(allEntities, chunkSize)) { - // index++; - // console.log("replacing linked resource for batch", index); - // try { - // await Iid.DeleteLinkedResources( - // entities.map((e: any) => ({ - // did: e.id, - // resourceId: `{id}#profile`, - // })) - // ); - // } catch (error) {} - // await Iid.AddLinkedResources( - // entities.map((e: any) => ({ - // did: e.id, - // linkedResource: getResource(e.externalId), - // })) - // ); - // } - // return true as any; - // }); + const chunkSize = 30; + let index = 0; + for (const entities of chunkArray(allEntities, chunkSize)) { + index++; + console.log("replacing linked resource for batch", index); + try { + await Iid.DeleteLinkedResources( + entities.map((e: string) => ({ + did: e, + resourceId: `{id}#profile`, + })) + ); + } catch (error) {} + await Iid.AddLinkedResources( + entities.map((e: string) => ({ + did: e, + linkedResource: getResource(), + })) + ); + } + return true as any; + }); // testMsg("/ixo.entity.v1beta1.MsgUpdateEntity", () => // Entity.UpdateEntity( diff --git a/__tests__/flows/instantiateProposals.ts b/__tests__/flows/instantiateProposals.ts index b27ed863..8ba966f5 100644 --- a/__tests__/flows/instantiateProposals.ts +++ b/__tests__/flows/instantiateProposals.ts @@ -15,7 +15,8 @@ export const instantiateModulesProposals = () => i + 1 } of ${contracts.length}`, async () => { - const res = await Cosmos.MsgSubmitProposalStoreCW(c.name, c.path); + const res = await Cosmos.MsgSubmitProposalStoreCWOld(c.name, c.path); + // const res = await Cosmos.MsgSubmitProposalStoreCW(c.name, c.path); proposalId = utils.common.getValueFromEvents( res, "submit_proposal", diff --git a/__tests__/flows/tokens.ts b/__tests__/flows/tokens.ts index e10cbc2a..1b9ec133 100644 --- a/__tests__/flows/tokens.ts +++ b/__tests__/flows/tokens.ts @@ -17,7 +17,7 @@ export const tokenBasic = () => describe("Testing the Token module", () => { let name = "TEST"; let description = "Test credits"; - let cap = 2000000; + let cap = 20000000000000; // Create token class let tokenClass = "did:ixo:entity:eaff254f2fc62aefca0d831bc7361c14"; @@ -42,7 +42,7 @@ export const tokenBasic = () => }); let index = "1"; - let amount = 50; + let amount = 20000000000; let collectionDid = "did:ixo:entity:eaff254f2fc62aefca0d831bc7361c14"; // Did of collection let nftDid = "did:ixo:entity:eaff254f2fc62aefca0d831bc7361c14"; // Did of entity to map token to let tokenData = [ @@ -71,13 +71,19 @@ export const tokenBasic = () => return res; }); - testMsg("/ixo.token.v1beta1.MsgTransferToken", () => - Token.TransferToken([ - { - id: tokenId, - amount: 1, - }, - ]) + // few more mint tokens + new Array(30).fill(0).map((_, i) => + testMsg("/ixo.token.v1beta1.MsgMintToken", () => + Token.MintToken(contractAddress1155, [ + { + name, + index: (i + 3).toString(), + amount, + collection: collectionDid, + tokenData, + }, + ]) + ) ); testMsg("/ixo.token.v1beta1.MsgCancelToken", () => @@ -106,7 +112,7 @@ export const tokenBasic = () => // Token.StopToken(contractAddress1155) // ); - let authzIndex = "2"; + let authzIndex = "999999"; testMsg("/cosmos.authz.v1beta1.MsgGrant mint token", () => Token.MsgGrantContract( contractAddress1155, @@ -309,7 +315,7 @@ export const supamotoTokensFarm = () => ); const blocksyncUrlGraphql = "https://blocksync-graphql.ixo.earth"; - const collectionToFarm = dids.assetCollection; + const collectionToFarm = dids.ai4gCollection; const collTokensToUseForTopup = dids.legacyCollection; testMsg("Farm tokens", async () => { @@ -521,6 +527,11 @@ export const supamotoTokensFarm = () => console.log("Create file to save tokens"); saveFileToPath( ["documents", "emerging", "tokenData.json"], + // JSON.stringify( + // totalAmounts.map((t) => t.did), + // null, + // 2 + // ) JSON.stringify({ totalAmounts }, null, 2) ); diff --git a/__tests__/helpers/common.ts b/__tests__/helpers/common.ts index 1d45db90..d432f470 100644 --- a/__tests__/helpers/common.ts +++ b/__tests__/helpers/common.ts @@ -29,6 +29,12 @@ const path = require("path"); export { ixo, cosmos, utils, ibc, customMessages, cosmwasm, customQueries }; +// patch for bigint to json +// @ts-ignore +BigInt.prototype.toJSON = function () { + return this.toString(); +}; + export const sendFaucet = async (address: string) => { const faucetUrl = RPC_URL.includes("devnet") ? `https://faucet.devnet.ixo.earth/send/${address}` diff --git a/__tests__/index.spec.ts b/__tests__/index.spec.ts index cc7b401b..1e4a2e01 100644 --- a/__tests__/index.spec.ts +++ b/__tests__/index.spec.ts @@ -62,7 +62,7 @@ IID.generateBlockchainTestUsers(); // Claims.supamotoClaims2(); // Claims.claimsUpdateCollectionPayments(); // CosmWasm.swapBasic(); -// CosmWasm.swapContract(); +CosmWasm.swapContract(); // Cosmos.feegrantAllCurrentUsers(); // Claims.supamotoEvaluateFuelPurchases(); // Claims.supamotoCreateCollection(); diff --git a/__tests__/modules/CosmWasm.ts b/__tests__/modules/CosmWasm.ts index 82a8d748..3ea17a15 100644 --- a/__tests__/modules/CosmWasm.ts +++ b/__tests__/modules/CosmWasm.ts @@ -1,5 +1,4 @@ import { SignerData } from "@cosmjs/stargate"; -import Long from "long"; import { getFee, WalletUsers } from "../helpers/constants"; import { createClient, @@ -10,6 +9,8 @@ import { getFileFromPath, } from "../helpers/common"; import { SigningStargateClient } from "../../src"; +// @ts-ignore +import Long from "long"; export const WasmStoreTrx = async ( contract: string = "cw721", diff --git a/__tests__/setup/web3.ts b/__tests__/setup/web3.ts index e4828e77..276fb867 100644 --- a/__tests__/setup/web3.ts +++ b/__tests__/setup/web3.ts @@ -22,10 +22,10 @@ export const web3Storage = () => // }); // test("upload file image", async () => { - // const file = getFileFromPath(["documents", "supamoto_logo.png"]); + // const file = getFileFromPath(["documents", "emerging", "kado_cooks.jpg"]); // const cid = await storeWeb3( - // "Supamoto Project Logo", - // ContentTypes.png, + // "Supamoto Kado cooks Logo", + // ContentTypes.jpg, // file // ); // console.log({ cid }); @@ -49,43 +49,54 @@ export const web3Storage = () => test("upload json", async () => { const json = { - "@context": { - ixo: "https://w3id.org/ixo/vocab/v1", - web3: "https://ipfs.io/ipfs/", - id: "@id", - type: "@type", - "@protected": true, - }, + "@context": [ + "https://w3id.org/ixo/context/v1", + { + ixo: "https://w3id.org/ixo/vocab/v1", + web3: "https://ipfs.io/ipfs/", + id: "@id", + type: "@type", + "@protected": true, + }, + ], id: "{id}#profile", - type: "ixo:profile", - orgName: "Emerging Cooking Solutions", - name: "SupaMoto Zambia", + type: "ixo:Profile", + name: "MimiMoto", image: - "https://ipfs.io/ipfs/bafybeicav572xehbpzjfx4zhaqbsdez2h6gr3v4ils6jqqacgl5ohs4mbm", - logo: "https://ipfs.io/ipfs/bafkreifkl6w55nasgqid22d2cqyxccjktbciefzmiqvcudlq3eoer2mzhi", - brand: "ECS (Sweden)", - location: "SE", - description: "Clean Cooking with Biomass Gasification in Zambia", + "web3:bafkreieyxve4fjijiteea3p3vtizdlnmcje7xb4krhizxva5vbsvbrldwe", + logo: "web3:bafkreigaewz4n3wqpajmwvt3deeolux3vyklbwd3s6dpzy74jcf6amk54m", + brand: "SupaMoto", + location: "ZM", + description: + "SupaMoto is a modern energy cooking device that helps households cut carbon emissions while cooking with affordable and renewable biomass fuel. This convenient solution offers a more cost-effective, healthy, and time-saving alternative to traditional cooking methods that typically use hardwood charcoal for fuel.", attributes: [ { - key: "Country", + key: "Model", + value: "MimiMoto", + id: "https://mimimoto.nl/", + }, + { + key: "Location", value: "Zambia", + id: "https://maps.app.goo.gl/hYa5qyPWfo5DHgAS8", }, { - key: "Implementer", - value: "Emerging Cooking Solutions (Zambia) Limited", + key: "Fuel", + value: "Renewable Biomass Pellets", + id: "https://www.nature.com/articles/s41560-022-01126-2", }, { - key: "Managing Entity", - value: "Emerging Cooking Solutions Sweden AB", + key: "Usage", + value: "Domestic", + id: "https://en.wikipedia.org/wiki/Kitchen_stove", }, { - key: "Scale", - value: "Microscale", + key: "Conversion", + value: "1kg = 10.56 credits", }, { - key: "Type", - value: "Cooking Fuel Switch", + key: "Product", + value: "CARBON credit tokens", }, ], metrics: [], @@ -103,6 +114,7 @@ export const web3Storage = () => const ContentTypes = { svg: "image/svg+xml", png: "image/png", + jpg: "image/jpeg", jsonld: "application/ld+json", json: "application/json", pdf: "application/pdf", diff --git a/assets/contracts/custom/cw1155_base_lp.wasm b/assets/contracts/custom/cw1155_base_lp.wasm deleted file mode 100644 index 8300f8d2a9efbfea645f2a747df0cd323c1bb210..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257550 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 M$(7++cUJBH1wbV|qW}N^ diff --git a/assets/contracts/custom/wasmswap.wasm b/assets/contracts/custom/wasmswap.wasm deleted file mode 100644 index 1ed58b6589db74d0b2902847bb4851f4611dc127..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403891 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

  • tendermint
      diff --git a/docs/functions/createQueryClient.html b/docs/functions/createQueryClient.html index e9ec19c7..0e470712 100644 --- a/docs/functions/createQueryClient.html +++ b/docs/functions/createQueryClient.html @@ -17,7 +17,7 @@

      Function createQueryClient

        - +
      • Creates a new QueryClient with all the modules and custom queries

        @@ -26,7 +26,7 @@

        Parameters

        • rpcEndpoint: string
        -

        Returns Promise<{
            cosmos: {
                app: {
                    v1alpha1: QueryClientImpl;
                };
                auth: {
                    v1beta1: QueryClientImpl;
                };
                authz: {
                    v1beta1: QueryClientImpl;
                };
                bank: {
                    v1beta1: QueryClientImpl;
                };
                base: {
                    node: {
                        v1beta1: ServiceClientImpl;
                    };
                    tendermint: {
                        v1beta1: ServiceClientImpl;
                    };
                };
                circuit: {
                    v1: QueryClientImpl;
                };
                consensus: {
                    v1: QueryClientImpl;
                };
                distribution: {
                    v1beta1: QueryClientImpl;
                };
                evidence: {
                    v1beta1: QueryClientImpl;
                };
                feegrant: {
                    v1beta1: QueryClientImpl;
                };
                gov: {
                    v1: QueryClientImpl;
                    v1beta1: QueryClientImpl;
                };
                mint: {
                    v1beta1: QueryClientImpl;
                };
                params: {
                    v1beta1: QueryClientImpl;
                };
                slashing: {
                    v1beta1: QueryClientImpl;
                };
                staking: {
                    v1beta1: QueryClientImpl;
                };
                tx: {
                    v1beta1: ServiceClientImpl;
                };
                upgrade: {
                    v1beta1: QueryClientImpl;
                };
            };
            cosmwasm: {
                wasm: {
                    v1: QueryClientImpl;
                };
            };
            ibc: {
                applications: {
                    fee: {
                        v1: QueryClientImpl;
                    };
                    interchain_accounts: {
                        controller: {
                            v1: QueryClientImpl;
                        };
                        host: {
                            v1: QueryClientImpl;
                        };
                    };
                    transfer: {
                        v1: QueryClientImpl;
                    };
                };
                core: {
                    channel: {
                        v1: QueryClientImpl;
                    };
                    client: {
                        v1: QueryClientImpl;
                    };
                    connection: {
                        v1: QueryClientImpl;
                    };
                };
            };
            ixo: {
                bonds: {
                    v1beta1: QueryClientImpl;
                };
                claims: {
                    v1beta1: QueryClientImpl;
                };
                entity: {
                    v1beta1: QueryClientImpl;
                };
                iid: {
                    v1beta1: QueryClientImpl;
                };
                token: {
                    v1beta1: QueryClientImpl;
                };
            };
        }>

  • tendermint
      diff --git a/docs/functions/createRegistry.html b/docs/functions/createRegistry.html index 0d26944f..e46ef63e 100644 --- a/docs/functions/createRegistry.html +++ b/docs/functions/createRegistry.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/functions/createSigningClient.html b/docs/functions/createSigningClient.html index 844e2461..fd261684 100644 --- a/docs/functions/createSigningClient.html +++ b/docs/functions/createSigningClient.html @@ -199,7 +199,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
  • tendermint
      diff --git a/docs/interfaces/SigningStargateClientOptions.html b/docs/interfaces/SigningStargateClientOptions.html index d5ed3f40..7cbb721a 100644 --- a/docs/interfaces/SigningStargateClientOptions.html +++ b/docs/interfaces/SigningStargateClientOptions.html @@ -228,7 +228,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
  • tendermint
      diff --git a/docs/modules/contracts.html b/docs/modules/contracts.html index a7e43cf3..64ad263c 100644 --- a/docs/modules/contracts.html +++ b/docs/modules/contracts.html @@ -200,7 +200,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.app.html b/docs/modules/cosmos.app.html index 382e7913..f38f99f9 100644 --- a/docs/modules/cosmos.app.html +++ b/docs/modules/cosmos.app.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.app.runtime.html b/docs/modules/cosmos.app.runtime.html index 069546c7..166ab83c 100644 --- a/docs/modules/cosmos.app.runtime.html +++ b/docs/modules/cosmos.app.runtime.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.auth.html b/docs/modules/cosmos.auth.html index 442a8f3b..67041caf 100644 --- a/docs/modules/cosmos.auth.html +++ b/docs/modules/cosmos.auth.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.auth.module.html b/docs/modules/cosmos.auth.module.html index c14e77ae..3aa8bafa 100644 --- a/docs/modules/cosmos.auth.module.html +++ b/docs/modules/cosmos.auth.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.authz.html b/docs/modules/cosmos.authz.html index 6eff839c..cfb1f114 100644 --- a/docs/modules/cosmos.authz.html +++ b/docs/modules/cosmos.authz.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.authz.module.html b/docs/modules/cosmos.authz.module.html index 03d7852c..8745f6f6 100644 --- a/docs/modules/cosmos.authz.module.html +++ b/docs/modules/cosmos.authz.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.autocli.html b/docs/modules/cosmos.autocli.html index 3b5f6ddb..b3571f26 100644 --- a/docs/modules/cosmos.autocli.html +++ b/docs/modules/cosmos.autocli.html @@ -177,7 +177,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.bank.html b/docs/modules/cosmos.bank.html index 0b871fa6..313c98b6 100644 --- a/docs/modules/cosmos.bank.html +++ b/docs/modules/cosmos.bank.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.bank.module.html b/docs/modules/cosmos.bank.module.html index 0585be80..441dfa16 100644 --- a/docs/modules/cosmos.bank.module.html +++ b/docs/modules/cosmos.bank.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.base.abci.html b/docs/modules/cosmos.base.abci.html index 59bf7612..de9a1ffa 100644 --- a/docs/modules/cosmos.base.abci.html +++ b/docs/modules/cosmos.base.abci.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.base.html b/docs/modules/cosmos.base.html index ce17031a..2d603255 100644 --- a/docs/modules/cosmos.base.html +++ b/docs/modules/cosmos.base.html @@ -185,7 +185,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.base.node.html b/docs/modules/cosmos.base.node.html index 3f833282..90be0b8f 100644 --- a/docs/modules/cosmos.base.node.html +++ b/docs/modules/cosmos.base.node.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.base.query.html b/docs/modules/cosmos.base.query.html index 379a0508..15134741 100644 --- a/docs/modules/cosmos.base.query.html +++ b/docs/modules/cosmos.base.query.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.base.reflection.html b/docs/modules/cosmos.base.reflection.html index ca2b726c..72293152 100644 --- a/docs/modules/cosmos.base.reflection.html +++ b/docs/modules/cosmos.base.reflection.html @@ -179,7 +179,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.base.tendermint.html b/docs/modules/cosmos.base.tendermint.html index a860bdb5..dc6da9b7 100644 --- a/docs/modules/cosmos.base.tendermint.html +++ b/docs/modules/cosmos.base.tendermint.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.circuit.html b/docs/modules/cosmos.circuit.html index 01a1d9af..0ca9ff98 100644 --- a/docs/modules/cosmos.circuit.html +++ b/docs/modules/cosmos.circuit.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.circuit.module.html b/docs/modules/cosmos.circuit.module.html index 6758808f..03372f0b 100644 --- a/docs/modules/cosmos.circuit.module.html +++ b/docs/modules/cosmos.circuit.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.consensus.html b/docs/modules/cosmos.consensus.html index 1ed42a90..26bd407c 100644 --- a/docs/modules/cosmos.consensus.html +++ b/docs/modules/cosmos.consensus.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.consensus.module.html b/docs/modules/cosmos.consensus.module.html index 257ce593..36a594ce 100644 --- a/docs/modules/cosmos.consensus.module.html +++ b/docs/modules/cosmos.consensus.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.crisis.html b/docs/modules/cosmos.crisis.html index c326590d..03c1e54f 100644 --- a/docs/modules/cosmos.crisis.html +++ b/docs/modules/cosmos.crisis.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.crisis.module.html b/docs/modules/cosmos.crisis.module.html index e56e818b..06895b26 100644 --- a/docs/modules/cosmos.crisis.module.html +++ b/docs/modules/cosmos.crisis.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.crypto.hd.html b/docs/modules/cosmos.crypto.hd.html index 82e58758..36a9f80a 100644 --- a/docs/modules/cosmos.crypto.hd.html +++ b/docs/modules/cosmos.crypto.hd.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.crypto.html b/docs/modules/cosmos.crypto.html index 604a7a00..db5d9d18 100644 --- a/docs/modules/cosmos.crypto.html +++ b/docs/modules/cosmos.crypto.html @@ -185,7 +185,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.crypto.keyring.html b/docs/modules/cosmos.crypto.keyring.html index ea69d1d4..108fc6f2 100644 --- a/docs/modules/cosmos.crypto.keyring.html +++ b/docs/modules/cosmos.crypto.keyring.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.distribution.html b/docs/modules/cosmos.distribution.html index 3d2b2156..b3a0b390 100644 --- a/docs/modules/cosmos.distribution.html +++ b/docs/modules/cosmos.distribution.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.distribution.module.html b/docs/modules/cosmos.distribution.module.html index de6519d8..1aa88446 100644 --- a/docs/modules/cosmos.distribution.module.html +++ b/docs/modules/cosmos.distribution.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.evidence.html b/docs/modules/cosmos.evidence.html index eb2d452b..338a11f9 100644 --- a/docs/modules/cosmos.evidence.html +++ b/docs/modules/cosmos.evidence.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.evidence.module.html b/docs/modules/cosmos.evidence.module.html index edb2b445..8ef59ee7 100644 --- a/docs/modules/cosmos.evidence.module.html +++ b/docs/modules/cosmos.evidence.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.feegrant.html b/docs/modules/cosmos.feegrant.html index 920a1764..1eecd078 100644 --- a/docs/modules/cosmos.feegrant.html +++ b/docs/modules/cosmos.feegrant.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.feegrant.module.html b/docs/modules/cosmos.feegrant.module.html index cd7ae751..d884e091 100644 --- a/docs/modules/cosmos.feegrant.module.html +++ b/docs/modules/cosmos.feegrant.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.genutil.html b/docs/modules/cosmos.genutil.html index a7dd87ab..ac3f320a 100644 --- a/docs/modules/cosmos.genutil.html +++ b/docs/modules/cosmos.genutil.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.genutil.module.html b/docs/modules/cosmos.genutil.module.html index ed04e594..37c6e8c5 100644 --- a/docs/modules/cosmos.genutil.module.html +++ b/docs/modules/cosmos.genutil.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.gov.html b/docs/modules/cosmos.gov.html index 200654ad..9716b60f 100644 --- a/docs/modules/cosmos.gov.html +++ b/docs/modules/cosmos.gov.html @@ -182,7 +182,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.gov.module.html b/docs/modules/cosmos.gov.module.html index a35e5b5c..ccb33356 100644 --- a/docs/modules/cosmos.gov.module.html +++ b/docs/modules/cosmos.gov.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.group.html b/docs/modules/cosmos.group.html index 7fc6cd8b..46160dbd 100644 --- a/docs/modules/cosmos.group.html +++ b/docs/modules/cosmos.group.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.group.module.html b/docs/modules/cosmos.group.module.html index ba90335a..9a56ab77 100644 --- a/docs/modules/cosmos.group.module.html +++ b/docs/modules/cosmos.group.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.html b/docs/modules/cosmos.html index 26fe713a..eab7a8be 100644 --- a/docs/modules/cosmos.html +++ b/docs/modules/cosmos.html @@ -209,7 +209,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.ics23.html b/docs/modules/cosmos.ics23.html index 84479af7..0b5db0c2 100644 --- a/docs/modules/cosmos.ics23.html +++ b/docs/modules/cosmos.ics23.html @@ -177,7 +177,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.mint.html b/docs/modules/cosmos.mint.html index f1201830..06dfdfa7 100644 --- a/docs/modules/cosmos.mint.html +++ b/docs/modules/cosmos.mint.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.mint.module.html b/docs/modules/cosmos.mint.module.html index 99f34e21..f3f6859d 100644 --- a/docs/modules/cosmos.mint.module.html +++ b/docs/modules/cosmos.mint.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.msg.html b/docs/modules/cosmos.msg.html index 17244746..428b5769 100644 --- a/docs/modules/cosmos.msg.html +++ b/docs/modules/cosmos.msg.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.msg.textual.html b/docs/modules/cosmos.msg.textual.html index 02a1ac10..4f2dae5a 100644 --- a/docs/modules/cosmos.msg.textual.html +++ b/docs/modules/cosmos.msg.textual.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.nft.html b/docs/modules/cosmos.nft.html index 5f3e425e..e7af4c16 100644 --- a/docs/modules/cosmos.nft.html +++ b/docs/modules/cosmos.nft.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.nft.module.html b/docs/modules/cosmos.nft.module.html index f0e13328..974a579c 100644 --- a/docs/modules/cosmos.nft.module.html +++ b/docs/modules/cosmos.nft.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.orm.html b/docs/modules/cosmos.orm.html index 05c08023..bee03e3f 100644 --- a/docs/modules/cosmos.orm.html +++ b/docs/modules/cosmos.orm.html @@ -183,7 +183,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.orm.module.html b/docs/modules/cosmos.orm.module.html index 552ef67e..92c549c6 100644 --- a/docs/modules/cosmos.orm.module.html +++ b/docs/modules/cosmos.orm.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.orm.query.html b/docs/modules/cosmos.orm.query.html index ad1bf92f..1af5d081 100644 --- a/docs/modules/cosmos.orm.query.html +++ b/docs/modules/cosmos.orm.query.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.params.html b/docs/modules/cosmos.params.html index 2da872ad..867f35c3 100644 --- a/docs/modules/cosmos.params.html +++ b/docs/modules/cosmos.params.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.params.module.html b/docs/modules/cosmos.params.module.html index 321c187c..297ee4df 100644 --- a/docs/modules/cosmos.params.module.html +++ b/docs/modules/cosmos.params.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.query.html b/docs/modules/cosmos.query.html index f4a7d6bb..4d0d8847 100644 --- a/docs/modules/cosmos.query.html +++ b/docs/modules/cosmos.query.html @@ -177,7 +177,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.reflection.html b/docs/modules/cosmos.reflection.html index aecee6bb..d46ef288 100644 --- a/docs/modules/cosmos.reflection.html +++ b/docs/modules/cosmos.reflection.html @@ -177,7 +177,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.slashing.html b/docs/modules/cosmos.slashing.html index 35a1293f..7609881f 100644 --- a/docs/modules/cosmos.slashing.html +++ b/docs/modules/cosmos.slashing.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.slashing.module.html b/docs/modules/cosmos.slashing.module.html index 4c44bffc..5b965ceb 100644 --- a/docs/modules/cosmos.slashing.module.html +++ b/docs/modules/cosmos.slashing.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.staking.html b/docs/modules/cosmos.staking.html index 257bcea5..2f37f99c 100644 --- a/docs/modules/cosmos.staking.html +++ b/docs/modules/cosmos.staking.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.staking.module.html b/docs/modules/cosmos.staking.module.html index 363e231c..0f6d7d10 100644 --- a/docs/modules/cosmos.staking.module.html +++ b/docs/modules/cosmos.staking.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.store.html b/docs/modules/cosmos.store.html index 21c2b03d..94e6598d 100644 --- a/docs/modules/cosmos.store.html +++ b/docs/modules/cosmos.store.html @@ -183,7 +183,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.store.internal.html b/docs/modules/cosmos.store.internal.html index 9c91213e..aea94c24 100644 --- a/docs/modules/cosmos.store.internal.html +++ b/docs/modules/cosmos.store.internal.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.store.internal.kv.html b/docs/modules/cosmos.store.internal.kv.html index ee45b238..83346698 100644 --- a/docs/modules/cosmos.store.internal.kv.html +++ b/docs/modules/cosmos.store.internal.kv.html @@ -179,7 +179,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.store.snapshots.html b/docs/modules/cosmos.store.snapshots.html index 571df79c..8fa4a3f8 100644 --- a/docs/modules/cosmos.store.snapshots.html +++ b/docs/modules/cosmos.store.snapshots.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.store.streaming.html b/docs/modules/cosmos.store.streaming.html index 80e80b3d..41ad49a2 100644 --- a/docs/modules/cosmos.store.streaming.html +++ b/docs/modules/cosmos.store.streaming.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.tx.config.html b/docs/modules/cosmos.tx.config.html index e563c5bc..29894a33 100644 --- a/docs/modules/cosmos.tx.config.html +++ b/docs/modules/cosmos.tx.config.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.tx.html b/docs/modules/cosmos.tx.html index 8e4538df..4c179144 100644 --- a/docs/modules/cosmos.tx.html +++ b/docs/modules/cosmos.tx.html @@ -182,7 +182,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.tx.signing.html b/docs/modules/cosmos.tx.signing.html index 266e474e..973d8581 100644 --- a/docs/modules/cosmos.tx.signing.html +++ b/docs/modules/cosmos.tx.signing.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.upgrade.html b/docs/modules/cosmos.upgrade.html index 2e1ad118..67c12732 100644 --- a/docs/modules/cosmos.upgrade.html +++ b/docs/modules/cosmos.upgrade.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.upgrade.module.html b/docs/modules/cosmos.upgrade.module.html index 18302a3d..21f2a730 100644 --- a/docs/modules/cosmos.upgrade.module.html +++ b/docs/modules/cosmos.upgrade.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.vesting.html b/docs/modules/cosmos.vesting.html index 1b8fdf68..16b6be03 100644 --- a/docs/modules/cosmos.vesting.html +++ b/docs/modules/cosmos.vesting.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmos.vesting.module.html b/docs/modules/cosmos.vesting.module.html index 30bd5afb..214e43f0 100644 --- a/docs/modules/cosmos.vesting.module.html +++ b/docs/modules/cosmos.vesting.module.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmwasm.html b/docs/modules/cosmwasm.html index db8c956e..1eaea0ec 100644 --- a/docs/modules/cosmwasm.html +++ b/docs/modules/cosmwasm.html @@ -180,7 +180,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/cosmwasm.wasm.html b/docs/modules/cosmwasm.wasm.html index 2d4524d0..9d7f8afd 100644 --- a/docs/modules/cosmwasm.wasm.html +++ b/docs/modules/cosmwasm.wasm.html @@ -177,7 +177,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/customMessages.html b/docs/modules/customMessages.html index 73c518be..b1390045 100644 --- a/docs/modules/customMessages.html +++ b/docs/modules/customMessages.html @@ -176,7 +176,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/customQueries.html b/docs/modules/customQueries.html index 5adb5973..b12a1a7b 100644 --- a/docs/modules/customQueries.html +++ b/docs/modules/customQueries.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/google.html b/docs/modules/google.html index 3cb47a8f..000f1f58 100644 --- a/docs/modules/google.html +++ b/docs/modules/google.html @@ -177,7 +177,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.applications.fee.html b/docs/modules/ibc.applications.fee.html index e4f50291..bb0d6fbb 100644 --- a/docs/modules/ibc.applications.fee.html +++ b/docs/modules/ibc.applications.fee.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.applications.html b/docs/modules/ibc.applications.html index 56e67915..ad5a5e07 100644 --- a/docs/modules/ibc.applications.html +++ b/docs/modules/ibc.applications.html @@ -179,7 +179,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.applications.interchain_accounts.controller.html b/docs/modules/ibc.applications.interchain_accounts.controller.html index 8f75c1bd..cf32328c 100644 --- a/docs/modules/ibc.applications.interchain_accounts.controller.html +++ b/docs/modules/ibc.applications.interchain_accounts.controller.html @@ -179,7 +179,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.applications.interchain_accounts.genesis.html b/docs/modules/ibc.applications.interchain_accounts.genesis.html index 1a759068..39bd009c 100644 --- a/docs/modules/ibc.applications.interchain_accounts.genesis.html +++ b/docs/modules/ibc.applications.interchain_accounts.genesis.html @@ -179,7 +179,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.applications.interchain_accounts.host.html b/docs/modules/ibc.applications.interchain_accounts.host.html index b0d7f8bd..5a65eb17 100644 --- a/docs/modules/ibc.applications.interchain_accounts.host.html +++ b/docs/modules/ibc.applications.interchain_accounts.host.html @@ -179,7 +179,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.applications.interchain_accounts.html b/docs/modules/ibc.applications.interchain_accounts.html index 52474807..289af5b8 100644 --- a/docs/modules/ibc.applications.interchain_accounts.html +++ b/docs/modules/ibc.applications.interchain_accounts.html @@ -184,7 +184,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.applications.transfer.html b/docs/modules/ibc.applications.transfer.html index 24a5cbff..bdc78f9a 100644 --- a/docs/modules/ibc.applications.transfer.html +++ b/docs/modules/ibc.applications.transfer.html @@ -179,7 +179,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.core.channel.html b/docs/modules/ibc.core.channel.html index e8225f2f..ffddfda8 100644 --- a/docs/modules/ibc.core.channel.html +++ b/docs/modules/ibc.core.channel.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.core.client.html b/docs/modules/ibc.core.client.html index 2927fe48..d2f92ebf 100644 --- a/docs/modules/ibc.core.client.html +++ b/docs/modules/ibc.core.client.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.core.commitment.html b/docs/modules/ibc.core.commitment.html index 59a11bcd..e3bb2d9d 100644 --- a/docs/modules/ibc.core.commitment.html +++ b/docs/modules/ibc.core.commitment.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.core.connection.html b/docs/modules/ibc.core.connection.html index 5e0235cc..e9f0358f 100644 --- a/docs/modules/ibc.core.connection.html +++ b/docs/modules/ibc.core.connection.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.core.html b/docs/modules/ibc.core.html index ab6a87e0..afcf5459 100644 --- a/docs/modules/ibc.core.html +++ b/docs/modules/ibc.core.html @@ -181,7 +181,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.core.types.html b/docs/modules/ibc.core.types.html index add347c2..80a26800 100644 --- a/docs/modules/ibc.core.types.html +++ b/docs/modules/ibc.core.types.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
  • tendermint
      diff --git a/docs/modules/ibc.lightclients.html b/docs/modules/ibc.lightclients.html index be9661f7..10c1d95f 100644 --- a/docs/modules/ibc.lightclients.html +++ b/docs/modules/ibc.lightclients.html @@ -180,7 +180,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.lightclients.localhost.html b/docs/modules/ibc.lightclients.localhost.html index 306c4233..c681214d 100644 --- a/docs/modules/ibc.lightclients.localhost.html +++ b/docs/modules/ibc.lightclients.localhost.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.lightclients.solomachine.html b/docs/modules/ibc.lightclients.solomachine.html index 97019f6a..5f6d1bc1 100644 --- a/docs/modules/ibc.lightclients.solomachine.html +++ b/docs/modules/ibc.lightclients.solomachine.html @@ -179,7 +179,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.lightclients.tendermint.html b/docs/modules/ibc.lightclients.tendermint.html index 14422096..3e36c5f6 100644 --- a/docs/modules/ibc.lightclients.tendermint.html +++ b/docs/modules/ibc.lightclients.tendermint.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ibc.lightclients.wasm.html b/docs/modules/ibc.lightclients.wasm.html index 5d2481fb..72825bfc 100644 --- a/docs/modules/ibc.lightclients.wasm.html +++ b/docs/modules/ibc.lightclients.wasm.html @@ -178,7 +178,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/ixo.bonds.html b/docs/modules/ixo.bonds.html index 606e6b3c..82ce2468 100644 --- a/docs/modules/ixo.bonds.html +++ b/docs/modules/ixo.bonds.html @@ -17,7 +17,7 @@
    • bonds

    Namespace bonds

    +
  • Defined in src/codegen/ixo/bundle.ts:62
  • Index

    @@ -177,7 +177,10 @@

    bonds
  • claims
  • entity
  • +
  • epochs
  • iid
  • +
  • mint
  • +
  • smartaccount
  • token
  • tendermint
      diff --git a/docs/modules/ixo.claims.html b/docs/modules/ixo.claims.html index a4275d80..b8e8db0f 100644 --- a/docs/modules/ixo.claims.html +++ b/docs/modules/ixo.claims.html @@ -17,7 +17,7 @@
    • claims

    Namespace claims

    +
  • Defined in src/codegen/ixo/bundle.ts:73
  • Index

    @@ -177,7 +177,10 @@

    bonds
  • claims
  • entity
  • +
  • epochs
  • iid
  • +
  • mint
  • +
  • smartaccount
  • token
  • tendermint
      diff --git a/docs/modules/ixo.entity.html b/docs/modules/ixo.entity.html index dfda095c..e2cb2579 100644 --- a/docs/modules/ixo.entity.html +++ b/docs/modules/ixo.entity.html @@ -17,7 +17,7 @@
    • entity

    Namespace entity

    +
  • Defined in src/codegen/ixo/bundle.ts:85
  • Index

    @@ -177,7 +177,10 @@

    bonds
  • claims
  • entity
  • +
  • epochs
  • iid
  • +
  • mint
  • +
  • smartaccount
  • token
  • tendermint

    Namespace ixo

    +
  • Defined in src/codegen/ixo/bundle.ts:61
  • Index

    @@ -25,7 +25,10 @@

    Namespaces

    @@ -184,7 +187,10 @@

    bonds
  • claims
  • entity
  • +
  • epochs
  • iid
  • +
  • mint
  • +
  • smartaccount
  • token
  • tendermint
      diff --git a/docs/modules/ixo.iid.html b/docs/modules/ixo.iid.html index 0b9afbf7..ead76a63 100644 --- a/docs/modules/ixo.iid.html +++ b/docs/modules/ixo.iid.html @@ -17,7 +17,7 @@
    • iid

    Namespace iid

    +
  • Defined in src/codegen/ixo/bundle.ts:106
  • Index

    @@ -177,7 +177,10 @@

    bonds
  • claims
  • entity
  • +
  • epochs
  • iid
  • +
  • mint
  • +
  • smartaccount
  • token
  • tendermint

    Namespace token

    +
  • Defined in src/codegen/ixo/bundle.ts:138
  • Index

    @@ -177,7 +177,10 @@

    bonds
  • claims
  • entity
  • +
  • epochs
  • iid
  • +
  • mint
  • +
  • smartaccount
  • token
  • tendermint
      diff --git a/docs/modules/tendermint.html b/docs/modules/tendermint.html index a004691a..38c2ad85 100644 --- a/docs/modules/tendermint.html +++ b/docs/modules/tendermint.html @@ -184,7 +184,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/modules/tendermint.libs.html b/docs/modules/tendermint.libs.html index 4ed124d0..5831c798 100644 --- a/docs/modules/tendermint.libs.html +++ b/docs/modules/tendermint.libs.html @@ -177,7 +177,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
  • tendermint
      diff --git a/docs/types/QueryClient.html b/docs/types/QueryClient.html index 335e5a4f..244d5c87 100644 --- a/docs/types/QueryClient.html +++ b/docs/types/QueryClient.html @@ -17,7 +17,7 @@

      Type alias QueryClient

      QueryClient: Awaited<ReturnType<typeof createQueryClient>>
      +
    • Defined in src/queries/index.ts:152
  • claims
  • entity
  • +
  • epochs
  • iid
  • +
  • mint
  • +
  • smartaccount
  • token
  • tendermint
      diff --git a/docs/variables/amino.html b/docs/variables/amino.html index 6bcea13e..63998ddb 100644 --- a/docs/variables/amino.html +++ b/docs/variables/amino.html @@ -173,7 +173,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.Cw20Base.html b/docs/variables/contracts.Cw20Base.html index 820d557c..9fbc8550 100644 --- a/docs/variables/contracts.Cw20Base.html +++ b/docs/variables/contracts.Cw20Base.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.Cw20Stake.html b/docs/variables/contracts.Cw20Stake.html index 1adcd1ab..66099d81 100644 --- a/docs/variables/contracts.Cw20Stake.html +++ b/docs/variables/contracts.Cw20Stake.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.Cw20StakeExternalRewards.html b/docs/variables/contracts.Cw20StakeExternalRewards.html index 8c141b44..7f4c6b66 100644 --- a/docs/variables/contracts.Cw20StakeExternalRewards.html +++ b/docs/variables/contracts.Cw20StakeExternalRewards.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.Cw20StakeRewardDistributor.html b/docs/variables/contracts.Cw20StakeRewardDistributor.html index f563c780..a7dd566f 100644 --- a/docs/variables/contracts.Cw20StakeRewardDistributor.html +++ b/docs/variables/contracts.Cw20StakeRewardDistributor.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.Cw4Group.html b/docs/variables/contracts.Cw4Group.html index a37f678f..78942e14 100644 --- a/docs/variables/contracts.Cw4Group.html +++ b/docs/variables/contracts.Cw4Group.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.Cw721Base.html b/docs/variables/contracts.Cw721Base.html index dc5718db..d2449dcb 100644 --- a/docs/variables/contracts.Cw721Base.html +++ b/docs/variables/contracts.Cw721Base.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.CwAdminFactory.html b/docs/variables/contracts.CwAdminFactory.html index 161a6621..9fe77548 100644 --- a/docs/variables/contracts.CwAdminFactory.html +++ b/docs/variables/contracts.CwAdminFactory.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.CwFundDistributor.html b/docs/variables/contracts.CwFundDistributor.html index df52ed44..ff1c046e 100644 --- a/docs/variables/contracts.CwFundDistributor.html +++ b/docs/variables/contracts.CwFundDistributor.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.CwPayrollFactory.html b/docs/variables/contracts.CwPayrollFactory.html index aec6e0ce..4996ea91 100644 --- a/docs/variables/contracts.CwPayrollFactory.html +++ b/docs/variables/contracts.CwPayrollFactory.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.CwTokenSwap.html b/docs/variables/contracts.CwTokenSwap.html index 1f43d133..4e6ee8e1 100644 --- a/docs/variables/contracts.CwTokenSwap.html +++ b/docs/variables/contracts.CwTokenSwap.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.CwVesting.html b/docs/variables/contracts.CwVesting.html index 269a40d4..387a4cd9 100644 --- a/docs/variables/contracts.CwVesting.html +++ b/docs/variables/contracts.CwVesting.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoCore.html b/docs/variables/contracts.DaoCore.html index ed442bc0..d994b54f 100644 --- a/docs/variables/contracts.DaoCore.html +++ b/docs/variables/contracts.DaoCore.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoMigrator.html b/docs/variables/contracts.DaoMigrator.html index 2bf8daee..2c24b962 100644 --- a/docs/variables/contracts.DaoMigrator.html +++ b/docs/variables/contracts.DaoMigrator.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoPreProposeApprovalSingle.html b/docs/variables/contracts.DaoPreProposeApprovalSingle.html index 1f1020b6..80ee7011 100644 --- a/docs/variables/contracts.DaoPreProposeApprovalSingle.html +++ b/docs/variables/contracts.DaoPreProposeApprovalSingle.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoPreProposeApprover.html b/docs/variables/contracts.DaoPreProposeApprover.html index f0f8f671..45ac7191 100644 --- a/docs/variables/contracts.DaoPreProposeApprover.html +++ b/docs/variables/contracts.DaoPreProposeApprover.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoPreProposeMultiple.html b/docs/variables/contracts.DaoPreProposeMultiple.html index da7b506f..d2979edc 100644 --- a/docs/variables/contracts.DaoPreProposeMultiple.html +++ b/docs/variables/contracts.DaoPreProposeMultiple.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoPreProposeSingle.html b/docs/variables/contracts.DaoPreProposeSingle.html index 08aec64e..f7549934 100644 --- a/docs/variables/contracts.DaoPreProposeSingle.html +++ b/docs/variables/contracts.DaoPreProposeSingle.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoProposalCondorcet.html b/docs/variables/contracts.DaoProposalCondorcet.html index 7dba7537..4bdfb6ca 100644 --- a/docs/variables/contracts.DaoProposalCondorcet.html +++ b/docs/variables/contracts.DaoProposalCondorcet.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoProposalMultiple.html b/docs/variables/contracts.DaoProposalMultiple.html index f758acf7..e0a03632 100644 --- a/docs/variables/contracts.DaoProposalMultiple.html +++ b/docs/variables/contracts.DaoProposalMultiple.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoProposalSingle.html b/docs/variables/contracts.DaoProposalSingle.html index 13c07cf8..1dcfe7e7 100644 --- a/docs/variables/contracts.DaoProposalSingle.html +++ b/docs/variables/contracts.DaoProposalSingle.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoVotingCw20Staked.html b/docs/variables/contracts.DaoVotingCw20Staked.html index 353be4cd..00acc90f 100644 --- a/docs/variables/contracts.DaoVotingCw20Staked.html +++ b/docs/variables/contracts.DaoVotingCw20Staked.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoVotingCw4.html b/docs/variables/contracts.DaoVotingCw4.html index c38ed411..a49151cc 100644 --- a/docs/variables/contracts.DaoVotingCw4.html +++ b/docs/variables/contracts.DaoVotingCw4.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoVotingCw721Staked.html b/docs/variables/contracts.DaoVotingCw721Staked.html index bec9732d..19a0dff3 100644 --- a/docs/variables/contracts.DaoVotingCw721Staked.html +++ b/docs/variables/contracts.DaoVotingCw721Staked.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.DaoVotingNativeStaked.html b/docs/variables/contracts.DaoVotingNativeStaked.html index ca817262..a670c64a 100644 --- a/docs/variables/contracts.DaoVotingNativeStaked.html +++ b/docs/variables/contracts.DaoVotingNativeStaked.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/contracts.Wasmswap.html b/docs/variables/contracts.Wasmswap.html index 3db601d6..d4e16dc5 100644 --- a/docs/variables/contracts.Wasmswap.html +++ b/docs/variables/contracts.Wasmswap.html @@ -174,7 +174,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.ClientFactory.html b/docs/variables/cosmos.ClientFactory.html index 9b36bcdb..e4872096 100644 --- a/docs/variables/cosmos.ClientFactory.html +++ b/docs/variables/cosmos.ClientFactory.html @@ -206,7 +206,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.app.runtime.v1alpha1.html b/docs/variables/cosmos.app.runtime.v1alpha1.html index b082b2da..26a2377a 100644 --- a/docs/variables/cosmos.app.runtime.v1alpha1.html +++ b/docs/variables/cosmos.app.runtime.v1alpha1.html @@ -320,7 +320,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.app.v1alpha1.html b/docs/variables/cosmos.app.v1alpha1.html index 43d31a0f..5d7ed973 100644 --- a/docs/variables/cosmos.app.v1alpha1.html +++ b/docs/variables/cosmos.app.v1alpha1.html @@ -778,7 +778,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.auth.module.v1.html b/docs/variables/cosmos.auth.module.v1.html index 572b81a7..76bc6c5a 100644 --- a/docs/variables/cosmos.auth.module.v1.html +++ b/docs/variables/cosmos.auth.module.v1.html @@ -320,7 +320,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.auth.v1beta1.html b/docs/variables/cosmos.auth.v1beta1.html index c0c8eea1..545bfc81 100644 --- a/docs/variables/cosmos.auth.v1beta1.html +++ b/docs/variables/cosmos.auth.v1beta1.html @@ -2263,7 +2263,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.authz.module.v1.html b/docs/variables/cosmos.authz.module.v1.html index 62223aeb..a75a602a 100644 --- a/docs/variables/cosmos.authz.module.v1.html +++ b/docs/variables/cosmos.authz.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.authz.v1beta1.html b/docs/variables/cosmos.authz.v1beta1.html index 7287e581..d46e531e 100644 --- a/docs/variables/cosmos.authz.v1beta1.html +++ b/docs/variables/cosmos.authz.v1beta1.html @@ -1596,7 +1596,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.autocli.v1.html b/docs/variables/cosmos.autocli.v1.html index 55edb488..2f97831e 100644 --- a/docs/variables/cosmos.autocli.v1.html +++ b/docs/variables/cosmos.autocli.v1.html @@ -922,7 +922,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.bank.module.v1.html b/docs/variables/cosmos.bank.module.v1.html index 1153aeda..acdd6f6e 100644 --- a/docs/variables/cosmos.bank.module.v1.html +++ b/docs/variables/cosmos.bank.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.bank.v1beta1.html b/docs/variables/cosmos.bank.v1beta1.html index 478997f1..00dac9b1 100644 --- a/docs/variables/cosmos.bank.v1beta1.html +++ b/docs/variables/cosmos.bank.v1beta1.html @@ -3598,7 +3598,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.base.abci.v1beta1.html b/docs/variables/cosmos.base.abci.v1beta1.html index e835fb09..bafaed0b 100644 --- a/docs/variables/cosmos.base.abci.v1beta1.html +++ b/docs/variables/cosmos.base.abci.v1beta1.html @@ -968,7 +968,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.base.node.v1beta1.html b/docs/variables/cosmos.base.node.v1beta1.html index ba4efd03..0a9024b5 100644 --- a/docs/variables/cosmos.base.node.v1beta1.html +++ b/docs/variables/cosmos.base.node.v1beta1.html @@ -504,7 +504,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.base.query.v1beta1.html b/docs/variables/cosmos.base.query.v1beta1.html index 44437102..9b027ee8 100644 --- a/docs/variables/cosmos.base.query.v1beta1.html +++ b/docs/variables/cosmos.base.query.v1beta1.html @@ -320,7 +320,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.base.reflection.v1beta1.html b/docs/variables/cosmos.base.reflection.v1beta1.html index 42346058..da92d85a 100644 --- a/docs/variables/cosmos.base.reflection.v1beta1.html +++ b/docs/variables/cosmos.base.reflection.v1beta1.html @@ -464,7 +464,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.base.reflection.v2alpha1.html b/docs/variables/cosmos.base.reflection.v2alpha1.html index b27cfb9c..5a5d9f43 100644 --- a/docs/variables/cosmos.base.reflection.v2alpha1.html +++ b/docs/variables/cosmos.base.reflection.v2alpha1.html @@ -2048,7 +2048,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.base.tendermint.v1beta1.html b/docs/variables/cosmos.base.tendermint.v1beta1.html index 80f912fd..f30f4f72 100644 --- a/docs/variables/cosmos.base.tendermint.v1beta1.html +++ b/docs/variables/cosmos.base.tendermint.v1beta1.html @@ -1793,7 +1793,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.base.v1beta1.html b/docs/variables/cosmos.base.v1beta1.html index 8cdcaa98..f8364369 100644 --- a/docs/variables/cosmos.base.v1beta1.html +++ b/docs/variables/cosmos.base.v1beta1.html @@ -463,7 +463,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.circuit.module.v1.html b/docs/variables/cosmos.circuit.module.v1.html index 5c9fe6d9..89698ec2 100644 --- a/docs/variables/cosmos.circuit.module.v1.html +++ b/docs/variables/cosmos.circuit.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.circuit.v1.html b/docs/variables/cosmos.circuit.v1.html index bba7a977..bbb0d0cb 100644 --- a/docs/variables/cosmos.circuit.v1.html +++ b/docs/variables/cosmos.circuit.v1.html @@ -1336,7 +1336,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.consensus.module.v1.html b/docs/variables/cosmos.consensus.module.v1.html index 6a17c4fb..87104f7a 100644 --- a/docs/variables/cosmos.consensus.module.v1.html +++ b/docs/variables/cosmos.consensus.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.consensus.v1.html b/docs/variables/cosmos.consensus.v1.html index ab0f1f98..c37cf6df 100644 --- a/docs/variables/cosmos.consensus.v1.html +++ b/docs/variables/cosmos.consensus.v1.html @@ -490,7 +490,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.crisis.module.v1.html b/docs/variables/cosmos.crisis.module.v1.html index 3accdd62..6638c561 100644 --- a/docs/variables/cosmos.crisis.module.v1.html +++ b/docs/variables/cosmos.crisis.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.crisis.v1beta1.html b/docs/variables/cosmos.crisis.v1beta1.html index a17b0c9c..eb14b3ba 100644 --- a/docs/variables/cosmos.crisis.v1beta1.html +++ b/docs/variables/cosmos.crisis.v1beta1.html @@ -535,7 +535,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.crypto.ed25519.html b/docs/variables/cosmos.crypto.ed25519.html index ab039bfb..0ba07aa7 100644 --- a/docs/variables/cosmos.crypto.ed25519.html +++ b/docs/variables/cosmos.crypto.ed25519.html @@ -319,7 +319,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.crypto.hd.v1.html b/docs/variables/cosmos.crypto.hd.v1.html index 9bb739ec..f225b647 100644 --- a/docs/variables/cosmos.crypto.hd.v1.html +++ b/docs/variables/cosmos.crypto.hd.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.crypto.keyring.v1.html b/docs/variables/cosmos.crypto.keyring.v1.html index 212b218e..75c7dab0 100644 --- a/docs/variables/cosmos.crypto.keyring.v1.html +++ b/docs/variables/cosmos.crypto.keyring.v1.html @@ -536,7 +536,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.crypto.multisig.html b/docs/variables/cosmos.crypto.multisig.html index b98d67bd..621d00f3 100644 --- a/docs/variables/cosmos.crypto.multisig.html +++ b/docs/variables/cosmos.crypto.multisig.html @@ -247,7 +247,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.crypto.secp256k1.html b/docs/variables/cosmos.crypto.secp256k1.html index 73bfb128..777f3192 100644 --- a/docs/variables/cosmos.crypto.secp256k1.html +++ b/docs/variables/cosmos.crypto.secp256k1.html @@ -319,7 +319,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.crypto.secp256r1.html b/docs/variables/cosmos.crypto.secp256r1.html index 2602fc28..1d32eda1 100644 --- a/docs/variables/cosmos.crypto.secp256r1.html +++ b/docs/variables/cosmos.crypto.secp256r1.html @@ -319,7 +319,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.distribution.module.v1.html b/docs/variables/cosmos.distribution.module.v1.html index 7618a67b..c063fc5d 100644 --- a/docs/variables/cosmos.distribution.module.v1.html +++ b/docs/variables/cosmos.distribution.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.distribution.v1beta1.html b/docs/variables/cosmos.distribution.v1beta1.html index f0547bc1..23b855b7 100644 --- a/docs/variables/cosmos.distribution.v1beta1.html +++ b/docs/variables/cosmos.distribution.v1beta1.html @@ -4207,7 +4207,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.evidence.module.v1.html b/docs/variables/cosmos.evidence.module.v1.html index a50cdea1..2a0aacf3 100644 --- a/docs/variables/cosmos.evidence.module.v1.html +++ b/docs/variables/cosmos.evidence.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.evidence.v1beta1.html b/docs/variables/cosmos.evidence.v1beta1.html index f07506a6..c639e4ef 100644 --- a/docs/variables/cosmos.evidence.v1beta1.html +++ b/docs/variables/cosmos.evidence.v1beta1.html @@ -791,7 +791,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.feegrant.module.v1.html b/docs/variables/cosmos.feegrant.module.v1.html index d42356a1..d8981527 100644 --- a/docs/variables/cosmos.feegrant.module.v1.html +++ b/docs/variables/cosmos.feegrant.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.feegrant.v1beta1.html b/docs/variables/cosmos.feegrant.v1beta1.html index 48a41c43..fb89a30d 100644 --- a/docs/variables/cosmos.feegrant.v1beta1.html +++ b/docs/variables/cosmos.feegrant.v1beta1.html @@ -1452,7 +1452,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.genutil.module.v1.html b/docs/variables/cosmos.genutil.module.v1.html index 0a2d178e..e427ca9a 100644 --- a/docs/variables/cosmos.genutil.module.v1.html +++ b/docs/variables/cosmos.genutil.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.genutil.v1beta1.html b/docs/variables/cosmos.genutil.v1beta1.html index 24e52832..fdb4a0eb 100644 --- a/docs/variables/cosmos.genutil.v1beta1.html +++ b/docs/variables/cosmos.genutil.v1beta1.html @@ -247,7 +247,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.gov.module.v1.html b/docs/variables/cosmos.gov.module.v1.html index d9f680a2..9d0ae54b 100644 --- a/docs/variables/cosmos.gov.module.v1.html +++ b/docs/variables/cosmos.gov.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.gov.v1.html b/docs/variables/cosmos.gov.v1.html index a125612c..52eb8541 100644 --- a/docs/variables/cosmos.gov.v1.html +++ b/docs/variables/cosmos.gov.v1.html @@ -3386,7 +3386,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.gov.v1beta1.html b/docs/variables/cosmos.gov.v1beta1.html index 9fc1beba..70cf2d04 100644 --- a/docs/variables/cosmos.gov.v1beta1.html +++ b/docs/variables/cosmos.gov.v1beta1.html @@ -2797,7 +2797,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.group.module.v1.html b/docs/variables/cosmos.group.module.v1.html index 7f7f1ac6..12503496 100644 --- a/docs/variables/cosmos.group.module.v1.html +++ b/docs/variables/cosmos.group.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.group.v1.html b/docs/variables/cosmos.group.v1.html index 53b84f9f..68012eeb 100644 --- a/docs/variables/cosmos.group.v1.html +++ b/docs/variables/cosmos.group.v1.html @@ -6099,7 +6099,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.ics23.v1.html b/docs/variables/cosmos.ics23.v1.html index 9020fd8d..fe3cdf6a 100644 --- a/docs/variables/cosmos.ics23.v1.html +++ b/docs/variables/cosmos.ics23.v1.html @@ -1167,7 +1167,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.mint.module.v1.html b/docs/variables/cosmos.mint.module.v1.html index a955f542..4d1619d4 100644 --- a/docs/variables/cosmos.mint.module.v1.html +++ b/docs/variables/cosmos.mint.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.mint.v1beta1.html b/docs/variables/cosmos.mint.v1beta1.html index c4cdced5..0987e025 100644 --- a/docs/variables/cosmos.mint.v1beta1.html +++ b/docs/variables/cosmos.mint.v1beta1.html @@ -1020,7 +1020,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.msg.textual.v1.html b/docs/variables/cosmos.msg.textual.v1.html index 15a57d7a..2b95aaba 100644 --- a/docs/variables/cosmos.msg.textual.v1.html +++ b/docs/variables/cosmos.msg.textual.v1.html @@ -176,7 +176,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.msg.v1.html b/docs/variables/cosmos.msg.v1.html index 7e04d169..97e4de30 100644 --- a/docs/variables/cosmos.msg.v1.html +++ b/docs/variables/cosmos.msg.v1.html @@ -175,7 +175,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.nft.module.v1.html b/docs/variables/cosmos.nft.module.v1.html index 090f9c08..4ce7cf82 100644 --- a/docs/variables/cosmos.nft.module.v1.html +++ b/docs/variables/cosmos.nft.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.nft.v1beta1.html b/docs/variables/cosmos.nft.v1beta1.html index 1205e556..8c17d469 100644 --- a/docs/variables/cosmos.nft.v1beta1.html +++ b/docs/variables/cosmos.nft.v1beta1.html @@ -1936,7 +1936,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.orm.module.v1alpha1.html b/docs/variables/cosmos.orm.module.v1alpha1.html index c5538df3..5d11e8e6 100644 --- a/docs/variables/cosmos.orm.module.v1alpha1.html +++ b/docs/variables/cosmos.orm.module.v1alpha1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.orm.query.v1alpha1.html b/docs/variables/cosmos.orm.query.v1alpha1.html index 8fa1885b..02583d93 100644 --- a/docs/variables/cosmos.orm.query.v1alpha1.html +++ b/docs/variables/cosmos.orm.query.v1alpha1.html @@ -720,7 +720,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.orm.v1.html b/docs/variables/cosmos.orm.v1.html index 6c9aa142..8b788f50 100644 --- a/docs/variables/cosmos.orm.v1.html +++ b/docs/variables/cosmos.orm.v1.html @@ -463,7 +463,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.orm.v1alpha1.html b/docs/variables/cosmos.orm.v1alpha1.html index 71a26497..9ef1c502 100644 --- a/docs/variables/cosmos.orm.v1alpha1.html +++ b/docs/variables/cosmos.orm.v1alpha1.html @@ -347,7 +347,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.params.module.v1.html b/docs/variables/cosmos.params.module.v1.html index 408fb3be..15b328d2 100644 --- a/docs/variables/cosmos.params.module.v1.html +++ b/docs/variables/cosmos.params.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.params.v1beta1.html b/docs/variables/cosmos.params.v1beta1.html index 3570caf0..849c8943 100644 --- a/docs/variables/cosmos.params.v1beta1.html +++ b/docs/variables/cosmos.params.v1beta1.html @@ -719,7 +719,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.query.v1.html b/docs/variables/cosmos.query.v1.html index 52520285..c022b30e 100644 --- a/docs/variables/cosmos.query.v1.html +++ b/docs/variables/cosmos.query.v1.html @@ -175,7 +175,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.reflection.v1.html b/docs/variables/cosmos.reflection.v1.html index ac44e276..d815ac3a 100644 --- a/docs/variables/cosmos.reflection.v1.html +++ b/docs/variables/cosmos.reflection.v1.html @@ -319,7 +319,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.slashing.module.v1.html b/docs/variables/cosmos.slashing.module.v1.html index 901edb4d..d840d388 100644 --- a/docs/variables/cosmos.slashing.module.v1.html +++ b/docs/variables/cosmos.slashing.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.slashing.v1beta1.html b/docs/variables/cosmos.slashing.v1beta1.html index 465370cb..77b7fffe 100644 --- a/docs/variables/cosmos.slashing.v1beta1.html +++ b/docs/variables/cosmos.slashing.v1beta1.html @@ -1380,7 +1380,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.staking.module.v1.html b/docs/variables/cosmos.staking.module.v1.html index 7c0898b3..d619af39 100644 --- a/docs/variables/cosmos.staking.module.v1.html +++ b/docs/variables/cosmos.staking.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.staking.v1beta1.html b/docs/variables/cosmos.staking.v1beta1.html index 8c615f48..be144f36 100644 --- a/docs/variables/cosmos.staking.v1beta1.html +++ b/docs/variables/cosmos.staking.v1beta1.html @@ -5279,7 +5279,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.store.internal.kv.v1beta1.html b/docs/variables/cosmos.store.internal.kv.v1beta1.html index 6c342ac4..2f16cdce 100644 --- a/docs/variables/cosmos.store.internal.kv.v1beta1.html +++ b/docs/variables/cosmos.store.internal.kv.v1beta1.html @@ -321,7 +321,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.store.snapshots.v1.html b/docs/variables/cosmos.store.snapshots.v1.html index 4f716072..69933957 100644 --- a/docs/variables/cosmos.store.snapshots.v1.html +++ b/docs/variables/cosmos.store.snapshots.v1.html @@ -680,7 +680,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.store.streaming.abci.html b/docs/variables/cosmos.store.streaming.abci.html index 43b01ca3..0404f19a 100644 --- a/docs/variables/cosmos.store.streaming.abci.html +++ b/docs/variables/cosmos.store.streaming.abci.html @@ -464,7 +464,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.store.v1beta1.html b/docs/variables/cosmos.store.v1beta1.html index 9518e719..8bff98f6 100644 --- a/docs/variables/cosmos.store.v1beta1.html +++ b/docs/variables/cosmos.store.v1beta1.html @@ -535,7 +535,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.tx.config.v1.html b/docs/variables/cosmos.tx.config.v1.html index 7fcda17c..fb829cc9 100644 --- a/docs/variables/cosmos.tx.config.v1.html +++ b/docs/variables/cosmos.tx.config.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.tx.signing.v1beta1.html b/docs/variables/cosmos.tx.signing.v1beta1.html index cb69a902..5ae3f6c8 100644 --- a/docs/variables/cosmos.tx.signing.v1beta1.html +++ b/docs/variables/cosmos.tx.signing.v1beta1.html @@ -564,7 +564,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.tx.v1beta1.html b/docs/variables/cosmos.tx.v1beta1.html index 04e0e2cb..ad18a969 100644 --- a/docs/variables/cosmos.tx.v1beta1.html +++ b/docs/variables/cosmos.tx.v1beta1.html @@ -2594,7 +2594,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.upgrade.module.v1.html b/docs/variables/cosmos.upgrade.module.v1.html index 42b3f373..8b007788 100644 --- a/docs/variables/cosmos.upgrade.module.v1.html +++ b/docs/variables/cosmos.upgrade.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.upgrade.v1beta1.html b/docs/variables/cosmos.upgrade.v1beta1.html index c4e315d1..3f32671d 100644 --- a/docs/variables/cosmos.upgrade.v1beta1.html +++ b/docs/variables/cosmos.upgrade.v1beta1.html @@ -1550,7 +1550,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.vesting.module.v1.html b/docs/variables/cosmos.vesting.module.v1.html index 5c666c9c..faf5e3e8 100644 --- a/docs/variables/cosmos.vesting.module.v1.html +++ b/docs/variables/cosmos.vesting.module.v1.html @@ -248,7 +248,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos.vesting.v1beta1.html b/docs/variables/cosmos.vesting.v1beta1.html index 1d21176a..32622a8f 100644 --- a/docs/variables/cosmos.vesting.v1beta1.html +++ b/docs/variables/cosmos.vesting.v1beta1.html @@ -1039,7 +1039,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmos_proto.html b/docs/variables/cosmos_proto.html index 071b6386..1432a1e2 100644 --- a/docs/variables/cosmos_proto.html +++ b/docs/variables/cosmos_proto.html @@ -345,7 +345,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmwasm.ClientFactory.html b/docs/variables/cosmwasm.ClientFactory.html index 5f1e594d..a4c8cd18 100644 --- a/docs/variables/cosmwasm.ClientFactory.html +++ b/docs/variables/cosmwasm.ClientFactory.html @@ -206,7 +206,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/cosmwasm.wasm.v1.html b/docs/variables/cosmwasm.wasm.v1.html index d542fb5e..e3876bbe 100644 --- a/docs/variables/cosmwasm.wasm.v1.html +++ b/docs/variables/cosmwasm.wasm.v1.html @@ -7300,7 +7300,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/customMessages.iid.html b/docs/variables/customMessages.iid.html index c16b96cb..ce2d394b 100644 --- a/docs/variables/customMessages.iid.html +++ b/docs/variables/customMessages.iid.html @@ -223,7 +223,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/customQueries.cellnode.html b/docs/variables/customQueries.cellnode.html index 57d4b77c..414cc0c8 100644 --- a/docs/variables/customQueries.cellnode.html +++ b/docs/variables/customQueries.cellnode.html @@ -257,7 +257,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/customQueries.contract.html b/docs/variables/customQueries.contract.html index 16e06c65..139d994b 100644 --- a/docs/variables/customQueries.contract.html +++ b/docs/variables/customQueries.contract.html @@ -245,7 +245,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/customQueries.currency.html b/docs/variables/customQueries.currency.html index 229cafdb..314b0c47 100644 --- a/docs/variables/customQueries.currency.html +++ b/docs/variables/customQueries.currency.html @@ -16,22 +16,22 @@
    • customQueries
    • currency

    Variable currencyConst

    -
    currency: {
        findIbcTokenFromHash: ((queryClient: {
            cosmos: {
                app: {
                    v1alpha1: QueryClientImpl;
                };
                auth: {
                    v1beta1: QueryClientImpl;
                };
                authz: {
                    v1beta1: QueryClientImpl;
                };
                bank: {
                    v1beta1: QueryClientImpl;
                };
                base: {
                    node: {
                        v1beta1: ServiceClientImpl;
                    };
                    tendermint: {
                        v1beta1: ServiceClientImpl;
                    };
                };
                circuit: {
                    v1: QueryClientImpl;
                };
                consensus: {
                    v1: QueryClientImpl;
                };
                distribution: {
                    v1beta1: QueryClientImpl;
                };
                evidence: {
                    v1beta1: QueryClientImpl;
                };
                feegrant: {
                    v1beta1: QueryClientImpl;
                };
                gov: {
                    v1: QueryClientImpl;
                    v1beta1: QueryClientImpl;
                };
                mint: {
                    v1beta1: QueryClientImpl;
                };
                params: {
                    v1beta1: QueryClientImpl;
                };
                slashing: {
                    v1beta1: QueryClientImpl;
                };
                staking: {
                    v1beta1: QueryClientImpl;
                };
                tx: {
                    v1beta1: ServiceClientImpl;
                };
                upgrade: {
                    v1beta1: QueryClientImpl;
                };
            };
            cosmwasm: {
                wasm: {
                    v1: QueryClientImpl;
                };
            };
            ibc: {
                applications: {
                    fee: {
                        v1: QueryClientImpl;
                    };
                    interchain_accounts: {
                        controller: {
                            v1: QueryClientImpl;
                        };
                        host: {
                            v1: QueryClientImpl;
                        };
                    };
                    transfer: {
                        v1: QueryClientImpl;
                    };
                };
                core: {
                    channel: {
                        v1: QueryClientImpl;
                    };
                    client: {
                        v1: QueryClientImpl;
                    };
                    connection: {
                        v1: QueryClientImpl;
                    };
                };
            };
            ixo: {
                bonds: {
                    v1beta1: QueryClientImpl;
                };
                claims: {
                    v1beta1: QueryClientImpl;
                };
                entity: {
                    v1beta1: QueryClientImpl;
                };
                iid: {
                    v1beta1: QueryClientImpl;
                };
                token: {
                    v1beta1: QueryClientImpl;
                };
            };
        }, ibcHash: string) => Promise<IbcTokenAsset>);
        findIbcTokensFromHashes: ((queryClient: {
            cosmos: {
                app: {
                    v1alpha1: QueryClientImpl;
                };
                auth: {
                    v1beta1: QueryClientImpl;
                };
                authz: {
                    v1beta1: QueryClientImpl;
                };
                bank: {
                    v1beta1: QueryClientImpl;
                };
                base: {
                    node: {
                        v1beta1: ServiceClientImpl;
                    };
                    tendermint: {
                        v1beta1: ServiceClientImpl;
                    };
                };
                circuit: {
                    v1: QueryClientImpl;
                };
                consensus: {
                    v1: QueryClientImpl;
                };
                distribution: {
                    v1beta1: QueryClientImpl;
                };
                evidence: {
                    v1beta1: QueryClientImpl;
                };
                feegrant: {
                    v1beta1: QueryClientImpl;
                };
                gov: {
                    v1: QueryClientImpl;
                    v1beta1: QueryClientImpl;
                };
                mint: {
                    v1beta1: QueryClientImpl;
                };
                params: {
                    v1beta1: QueryClientImpl;
                };
                slashing: {
                    v1beta1: QueryClientImpl;
                };
                staking: {
                    v1beta1: QueryClientImpl;
                };
                tx: {
                    v1beta1: ServiceClientImpl;
                };
                upgrade: {
                    v1beta1: QueryClientImpl;
                };
            };
            cosmwasm: {
                wasm: {
                    v1: QueryClientImpl;
                };
            };
            ibc: {
                applications: {
                    fee: {
                        v1: QueryClientImpl;
                    };
                    interchain_accounts: {
                        controller: {
                            v1: QueryClientImpl;
                        };
                        host: {
                            v1: QueryClientImpl;
                        };
                    };
                    transfer: {
                        v1: QueryClientImpl;
                    };
                };
                core: {
                    channel: {
                        v1: QueryClientImpl;
                    };
                    client: {
                        v1: QueryClientImpl;
                    };
                    connection: {
                        v1: QueryClientImpl;
                    };
                };
            };
            ixo: {
                bonds: {
                    v1beta1: QueryClientImpl;
                };
                claims: {
                    v1beta1: QueryClientImpl;
                };
                entity: {
                    v1beta1: QueryClientImpl;
                };
                iid: {
                    v1beta1: QueryClientImpl;
                };
                token: {
                    v1beta1: QueryClientImpl;
                };
            };
        }, ibcHashes: string[]) => Promise<IbcTokenAsset[]>);
        findTokenFromDenom: ((denom: string) => TokenAsset);
        findTokenHistoryFromDenom: ((denom: string, startDate: string, endDate: string, samples?: number, cacheResult?: boolean, baseUrl?: string) => Promise<TokenAssetHistory>);
        findTokenInfoFromDenom: ((denom: string, cacheResult?: boolean, baseUrl?: string) => Promise<TokenAssetInfo>);
        findTokensHistoryFromDenoms: ((denoms: string[], startDate: string, endDate: string, samples?: number, cacheResult?: boolean) => Promise<TokenAssetHistory[]>);
        findTokensInfoFromDenoms: ((denoms: string[]) => Promise<TokenAssetInfo[]>);
    } = ...
    +
    currency: {
        findIbcTokenFromHash: ((queryClient: {
            cosmos: {
                app: {
                    v1alpha1: QueryClientImpl;
                };
                auth: {
                    v1beta1: QueryClientImpl;
                };
                authz: {
                    v1beta1: QueryClientImpl;
                };
                bank: {
                    v1beta1: QueryClientImpl;
                };
                base: {
                    node: {
                        v1beta1: ServiceClientImpl;
                    };
                    tendermint: {
                        v1beta1: ServiceClientImpl;
                    };
                };
                circuit: {
                    v1: QueryClientImpl;
                };
                consensus: {
                    v1: QueryClientImpl;
                };
                distribution: {
                    v1beta1: QueryClientImpl;
                };
                evidence: {
                    v1beta1: QueryClientImpl;
                };
                feegrant: {
                    v1beta1: QueryClientImpl;
                };
                gov: {
                    v1: QueryClientImpl;
                    v1beta1: QueryClientImpl;
                };
                mint: {
                    v1beta1: QueryClientImpl;
                };
                params: {
                    v1beta1: QueryClientImpl;
                };
                slashing: {
                    v1beta1: QueryClientImpl;
                };
                staking: {
                    v1beta1: QueryClientImpl;
                };
                tx: {
                    v1beta1: ServiceClientImpl;
                };
                upgrade: {
                    v1beta1: QueryClientImpl;
                };
            };
            cosmwasm: {
                wasm: {
                    v1: QueryClientImpl;
                };
            };
            ibc: {
                applications: {
                    fee: {
                        v1: QueryClientImpl;
                    };
                    interchain_accounts: {
                        controller: {
                            v1: QueryClientImpl;
                        };
                        host: {
                            v1: QueryClientImpl;
                        };
                    };
                    transfer: {
                        v1: QueryClientImpl;
                    };
                };
                core: {
                    channel: {
                        v1: QueryClientImpl;
                    };
                    client: {
                        v1: QueryClientImpl;
                    };
                    connection: {
                        v1: QueryClientImpl;
                    };
                };
            };
            ixo: {
                bonds: {
                    v1beta1: QueryClientImpl;
                };
                claims: {
                    v1beta1: QueryClientImpl;
                };
                entity: {
                    v1beta1: QueryClientImpl;
                };
                epochs: {
                    v1beta1: QueryClientImpl;
                };
                iid: {
                    v1beta1: QueryClientImpl;
                };
                mint: {
                    v1beta1: QueryClientImpl;
                };
                smartaccount: {
                    v1beta1: QueryClientImpl;
                };
                token: {
                    v1beta1: QueryClientImpl;
                };
            };
        }, ibcHash: string) => Promise<IbcTokenAsset>);
        findIbcTokensFromHashes: ((queryClient: {
            cosmos: {
                app: {
                    v1alpha1: QueryClientImpl;
                };
                auth: {
                    v1beta1: QueryClientImpl;
                };
                authz: {
                    v1beta1: QueryClientImpl;
                };
                bank: {
                    v1beta1: QueryClientImpl;
                };
                base: {
                    node: {
                        v1beta1: ServiceClientImpl;
                    };
                    tendermint: {
                        v1beta1: ServiceClientImpl;
                    };
                };
                circuit: {
                    v1: QueryClientImpl;
                };
                consensus: {
                    v1: QueryClientImpl;
                };
                distribution: {
                    v1beta1: QueryClientImpl;
                };
                evidence: {
                    v1beta1: QueryClientImpl;
                };
                feegrant: {
                    v1beta1: QueryClientImpl;
                };
                gov: {
                    v1: QueryClientImpl;
                    v1beta1: QueryClientImpl;
                };
                mint: {
                    v1beta1: QueryClientImpl;
                };
                params: {
                    v1beta1: QueryClientImpl;
                };
                slashing: {
                    v1beta1: QueryClientImpl;
                };
                staking: {
                    v1beta1: QueryClientImpl;
                };
                tx: {
                    v1beta1: ServiceClientImpl;
                };
                upgrade: {
                    v1beta1: QueryClientImpl;
                };
            };
            cosmwasm: {
                wasm: {
                    v1: QueryClientImpl;
                };
            };
            ibc: {
                applications: {
                    fee: {
                        v1: QueryClientImpl;
                    };
                    interchain_accounts: {
                        controller: {
                            v1: QueryClientImpl;
                        };
                        host: {
                            v1: QueryClientImpl;
                        };
                    };
                    transfer: {
                        v1: QueryClientImpl;
                    };
                };
                core: {
                    channel: {
                        v1: QueryClientImpl;
                    };
                    client: {
                        v1: QueryClientImpl;
                    };
                    connection: {
                        v1: QueryClientImpl;
                    };
                };
            };
            ixo: {
                bonds: {
                    v1beta1: QueryClientImpl;
                };
                claims: {
                    v1beta1: QueryClientImpl;
                };
                entity: {
                    v1beta1: QueryClientImpl;
                };
                epochs: {
                    v1beta1: QueryClientImpl;
                };
                iid: {
                    v1beta1: QueryClientImpl;
                };
                mint: {
                    v1beta1: QueryClientImpl;
                };
                smartaccount: {
                    v1beta1: QueryClientImpl;
                };
                token: {
                    v1beta1: QueryClientImpl;
                };
            };
        }, ibcHashes: string[]) => Promise<IbcTokenAsset[]>);
        findTokenFromDenom: ((denom: string) => TokenAsset);
        findTokenHistoryFromDenom: ((denom: string, startDate: string, endDate: string, samples?: number, cacheResult?: boolean, baseUrl?: string) => Promise<TokenAssetHistory>);
        findTokenInfoFromDenom: ((denom: string, cacheResult?: boolean, baseUrl?: string) => Promise<TokenAssetInfo>);
        findTokensHistoryFromDenoms: ((denoms: string[], startDate: string, endDate: string, samples?: number, cacheResult?: boolean) => Promise<TokenAssetHistory[]>);
        findTokensInfoFromDenoms: ((denoms: string[]) => Promise<TokenAssetInfo[]>);
    } = ...

    Type declaration

    • -
      findIbcTokenFromHash: ((queryClient: {
          cosmos: {
              app: {
                  v1alpha1: QueryClientImpl;
              };
              auth: {
                  v1beta1: QueryClientImpl;
              };
              authz: {
                  v1beta1: QueryClientImpl;
              };
              bank: {
                  v1beta1: QueryClientImpl;
              };
              base: {
                  node: {
                      v1beta1: ServiceClientImpl;
                  };
                  tendermint: {
                      v1beta1: ServiceClientImpl;
                  };
              };
              circuit: {
                  v1: QueryClientImpl;
              };
              consensus: {
                  v1: QueryClientImpl;
              };
              distribution: {
                  v1beta1: QueryClientImpl;
              };
              evidence: {
                  v1beta1: QueryClientImpl;
              };
              feegrant: {
                  v1beta1: QueryClientImpl;
              };
              gov: {
                  v1: QueryClientImpl;
                  v1beta1: QueryClientImpl;
              };
              mint: {
                  v1beta1: QueryClientImpl;
              };
              params: {
                  v1beta1: QueryClientImpl;
              };
              slashing: {
                  v1beta1: QueryClientImpl;
              };
              staking: {
                  v1beta1: QueryClientImpl;
              };
              tx: {
                  v1beta1: ServiceClientImpl;
              };
              upgrade: {
                  v1beta1: QueryClientImpl;
              };
          };
          cosmwasm: {
              wasm: {
                  v1: QueryClientImpl;
              };
          };
          ibc: {
              applications: {
                  fee: {
                      v1: QueryClientImpl;
                  };
                  interchain_accounts: {
                      controller: {
                          v1: QueryClientImpl;
                      };
                      host: {
                          v1: QueryClientImpl;
                      };
                  };
                  transfer: {
                      v1: QueryClientImpl;
                  };
              };
              core: {
                  channel: {
                      v1: QueryClientImpl;
                  };
                  client: {
                      v1: QueryClientImpl;
                  };
                  connection: {
                      v1: QueryClientImpl;
                  };
              };
          };
          ixo: {
              bonds: {
                  v1beta1: QueryClientImpl;
              };
              claims: {
                  v1beta1: QueryClientImpl;
              };
              entity: {
                  v1beta1: QueryClientImpl;
              };
              iid: {
                  v1beta1: QueryClientImpl;
              };
              token: {
                  v1beta1: QueryClientImpl;
              };
          };
      }, ibcHash: string) => Promise<IbcTokenAsset>)
      +
      findIbcTokenFromHash: ((queryClient: {
          cosmos: {
              app: {
                  v1alpha1: QueryClientImpl;
              };
              auth: {
                  v1beta1: QueryClientImpl;
              };
              authz: {
                  v1beta1: QueryClientImpl;
              };
              bank: {
                  v1beta1: QueryClientImpl;
              };
              base: {
                  node: {
                      v1beta1: ServiceClientImpl;
                  };
                  tendermint: {
                      v1beta1: ServiceClientImpl;
                  };
              };
              circuit: {
                  v1: QueryClientImpl;
              };
              consensus: {
                  v1: QueryClientImpl;
              };
              distribution: {
                  v1beta1: QueryClientImpl;
              };
              evidence: {
                  v1beta1: QueryClientImpl;
              };
              feegrant: {
                  v1beta1: QueryClientImpl;
              };
              gov: {
                  v1: QueryClientImpl;
                  v1beta1: QueryClientImpl;
              };
              mint: {
                  v1beta1: QueryClientImpl;
              };
              params: {
                  v1beta1: QueryClientImpl;
              };
              slashing: {
                  v1beta1: QueryClientImpl;
              };
              staking: {
                  v1beta1: QueryClientImpl;
              };
              tx: {
                  v1beta1: ServiceClientImpl;
              };
              upgrade: {
                  v1beta1: QueryClientImpl;
              };
          };
          cosmwasm: {
              wasm: {
                  v1: QueryClientImpl;
              };
          };
          ibc: {
              applications: {
                  fee: {
                      v1: QueryClientImpl;
                  };
                  interchain_accounts: {
                      controller: {
                          v1: QueryClientImpl;
                      };
                      host: {
                          v1: QueryClientImpl;
                      };
                  };
                  transfer: {
                      v1: QueryClientImpl;
                  };
              };
              core: {
                  channel: {
                      v1: QueryClientImpl;
                  };
                  client: {
                      v1: QueryClientImpl;
                  };
                  connection: {
                      v1: QueryClientImpl;
                  };
              };
          };
          ixo: {
              bonds: {
                  v1beta1: QueryClientImpl;
              };
              claims: {
                  v1beta1: QueryClientImpl;
              };
              entity: {
                  v1beta1: QueryClientImpl;
              };
              epochs: {
                  v1beta1: QueryClientImpl;
              };
              iid: {
                  v1beta1: QueryClientImpl;
              };
              mint: {
                  v1beta1: QueryClientImpl;
              };
              smartaccount: {
                  v1beta1: QueryClientImpl;
              };
              token: {
                  v1beta1: QueryClientImpl;
              };
          };
      }, ibcHash: string) => Promise<IbcTokenAsset>)
        • -
        • (queryClient: {
              cosmos: {
                  app: {
                      v1alpha1: QueryClientImpl;
                  };
                  auth: {
                      v1beta1: QueryClientImpl;
                  };
                  authz: {
                      v1beta1: QueryClientImpl;
                  };
                  bank: {
                      v1beta1: QueryClientImpl;
                  };
                  base: {
                      node: {
                          v1beta1: ServiceClientImpl;
                      };
                      tendermint: {
                          v1beta1: ServiceClientImpl;
                      };
                  };
                  circuit: {
                      v1: QueryClientImpl;
                  };
                  consensus: {
                      v1: QueryClientImpl;
                  };
                  distribution: {
                      v1beta1: QueryClientImpl;
                  };
                  evidence: {
                      v1beta1: QueryClientImpl;
                  };
                  feegrant: {
                      v1beta1: QueryClientImpl;
                  };
                  gov: {
                      v1: QueryClientImpl;
                      v1beta1: QueryClientImpl;
                  };
                  mint: {
                      v1beta1: QueryClientImpl;
                  };
                  params: {
                      v1beta1: QueryClientImpl;
                  };
                  slashing: {
                      v1beta1: QueryClientImpl;
                  };
                  staking: {
                      v1beta1: QueryClientImpl;
                  };
                  tx: {
                      v1beta1: ServiceClientImpl;
                  };
                  upgrade: {
                      v1beta1: QueryClientImpl;
                  };
              };
              cosmwasm: {
                  wasm: {
                      v1: QueryClientImpl;
                  };
              };
              ibc: {
                  applications: {
                      fee: {
                          v1: QueryClientImpl;
                      };
                      interchain_accounts: {
                          controller: {
                              v1: QueryClientImpl;
                          };
                          host: {
                              v1: QueryClientImpl;
                          };
                      };
                      transfer: {
                          v1: QueryClientImpl;
                      };
                  };
                  core: {
                      channel: {
                          v1: QueryClientImpl;
                      };
                      client: {
                          v1: QueryClientImpl;
                      };
                      connection: {
                          v1: QueryClientImpl;
                      };
                  };
              };
              ixo: {
                  bonds: {
                      v1beta1: QueryClientImpl;
                  };
                  claims: {
                      v1beta1: QueryClientImpl;
                  };
                  entity: {
                      v1beta1: QueryClientImpl;
                  };
                  iid: {
                      v1beta1: QueryClientImpl;
                  };
                  token: {
                      v1beta1: QueryClientImpl;
                  };
              };
          }, ibcHash: string): Promise<IbcTokenAsset>
        • +
        • (queryClient: {
              cosmos: {
                  app: {
                      v1alpha1: QueryClientImpl;
                  };
                  auth: {
                      v1beta1: QueryClientImpl;
                  };
                  authz: {
                      v1beta1: QueryClientImpl;
                  };
                  bank: {
                      v1beta1: QueryClientImpl;
                  };
                  base: {
                      node: {
                          v1beta1: ServiceClientImpl;
                      };
                      tendermint: {
                          v1beta1: ServiceClientImpl;
                      };
                  };
                  circuit: {
                      v1: QueryClientImpl;
                  };
                  consensus: {
                      v1: QueryClientImpl;
                  };
                  distribution: {
                      v1beta1: QueryClientImpl;
                  };
                  evidence: {
                      v1beta1: QueryClientImpl;
                  };
                  feegrant: {
                      v1beta1: QueryClientImpl;
                  };
                  gov: {
                      v1: QueryClientImpl;
                      v1beta1: QueryClientImpl;
                  };
                  mint: {
                      v1beta1: QueryClientImpl;
                  };
                  params: {
                      v1beta1: QueryClientImpl;
                  };
                  slashing: {
                      v1beta1: QueryClientImpl;
                  };
                  staking: {
                      v1beta1: QueryClientImpl;
                  };
                  tx: {
                      v1beta1: ServiceClientImpl;
                  };
                  upgrade: {
                      v1beta1: QueryClientImpl;
                  };
              };
              cosmwasm: {
                  wasm: {
                      v1: QueryClientImpl;
                  };
              };
              ibc: {
                  applications: {
                      fee: {
                          v1: QueryClientImpl;
                      };
                      interchain_accounts: {
                          controller: {
                              v1: QueryClientImpl;
                          };
                          host: {
                              v1: QueryClientImpl;
                          };
                      };
                      transfer: {
                          v1: QueryClientImpl;
                      };
                  };
                  core: {
                      channel: {
                          v1: QueryClientImpl;
                      };
                      client: {
                          v1: QueryClientImpl;
                      };
                      connection: {
                          v1: QueryClientImpl;
                      };
                  };
              };
              ixo: {
                  bonds: {
                      v1beta1: QueryClientImpl;
                  };
                  claims: {
                      v1beta1: QueryClientImpl;
                  };
                  entity: {
                      v1beta1: QueryClientImpl;
                  };
                  epochs: {
                      v1beta1: QueryClientImpl;
                  };
                  iid: {
                      v1beta1: QueryClientImpl;
                  };
                  mint: {
                      v1beta1: QueryClientImpl;
                  };
                  smartaccount: {
                      v1beta1: QueryClientImpl;
                  };
                  token: {
                      v1beta1: QueryClientImpl;
                  };
              };
          }, ibcHash: string): Promise<IbcTokenAsset>
        • Parameters

          • -
            queryClient: {
                cosmos: {
                    app: {
                        v1alpha1: QueryClientImpl;
                    };
                    auth: {
                        v1beta1: QueryClientImpl;
                    };
                    authz: {
                        v1beta1: QueryClientImpl;
                    };
                    bank: {
                        v1beta1: QueryClientImpl;
                    };
                    base: {
                        node: {
                            v1beta1: ServiceClientImpl;
                        };
                        tendermint: {
                            v1beta1: ServiceClientImpl;
                        };
                    };
                    circuit: {
                        v1: QueryClientImpl;
                    };
                    consensus: {
                        v1: QueryClientImpl;
                    };
                    distribution: {
                        v1beta1: QueryClientImpl;
                    };
                    evidence: {
                        v1beta1: QueryClientImpl;
                    };
                    feegrant: {
                        v1beta1: QueryClientImpl;
                    };
                    gov: {
                        v1: QueryClientImpl;
                        v1beta1: QueryClientImpl;
                    };
                    mint: {
                        v1beta1: QueryClientImpl;
                    };
                    params: {
                        v1beta1: QueryClientImpl;
                    };
                    slashing: {
                        v1beta1: QueryClientImpl;
                    };
                    staking: {
                        v1beta1: QueryClientImpl;
                    };
                    tx: {
                        v1beta1: ServiceClientImpl;
                    };
                    upgrade: {
                        v1beta1: QueryClientImpl;
                    };
                };
                cosmwasm: {
                    wasm: {
                        v1: QueryClientImpl;
                    };
                };
                ibc: {
                    applications: {
                        fee: {
                            v1: QueryClientImpl;
                        };
                        interchain_accounts: {
                            controller: {
                                v1: QueryClientImpl;
                            };
                            host: {
                                v1: QueryClientImpl;
                            };
                        };
                        transfer: {
                            v1: QueryClientImpl;
                        };
                    };
                    core: {
                        channel: {
                            v1: QueryClientImpl;
                        };
                        client: {
                            v1: QueryClientImpl;
                        };
                        connection: {
                            v1: QueryClientImpl;
                        };
                    };
                };
                ixo: {
                    bonds: {
                        v1beta1: QueryClientImpl;
                    };
                    claims: {
                        v1beta1: QueryClientImpl;
                    };
                    entity: {
                        v1beta1: QueryClientImpl;
                    };
                    iid: {
                        v1beta1: QueryClientImpl;
                    };
                    token: {
                        v1beta1: QueryClientImpl;
                    };
                };
            }
            +
            queryClient: {
                cosmos: {
                    app: {
                        v1alpha1: QueryClientImpl;
                    };
                    auth: {
                        v1beta1: QueryClientImpl;
                    };
                    authz: {
                        v1beta1: QueryClientImpl;
                    };
                    bank: {
                        v1beta1: QueryClientImpl;
                    };
                    base: {
                        node: {
                            v1beta1: ServiceClientImpl;
                        };
                        tendermint: {
                            v1beta1: ServiceClientImpl;
                        };
                    };
                    circuit: {
                        v1: QueryClientImpl;
                    };
                    consensus: {
                        v1: QueryClientImpl;
                    };
                    distribution: {
                        v1beta1: QueryClientImpl;
                    };
                    evidence: {
                        v1beta1: QueryClientImpl;
                    };
                    feegrant: {
                        v1beta1: QueryClientImpl;
                    };
                    gov: {
                        v1: QueryClientImpl;
                        v1beta1: QueryClientImpl;
                    };
                    mint: {
                        v1beta1: QueryClientImpl;
                    };
                    params: {
                        v1beta1: QueryClientImpl;
                    };
                    slashing: {
                        v1beta1: QueryClientImpl;
                    };
                    staking: {
                        v1beta1: QueryClientImpl;
                    };
                    tx: {
                        v1beta1: ServiceClientImpl;
                    };
                    upgrade: {
                        v1beta1: QueryClientImpl;
                    };
                };
                cosmwasm: {
                    wasm: {
                        v1: QueryClientImpl;
                    };
                };
                ibc: {
                    applications: {
                        fee: {
                            v1: QueryClientImpl;
                        };
                        interchain_accounts: {
                            controller: {
                                v1: QueryClientImpl;
                            };
                            host: {
                                v1: QueryClientImpl;
                            };
                        };
                        transfer: {
                            v1: QueryClientImpl;
                        };
                    };
                    core: {
                        channel: {
                            v1: QueryClientImpl;
                        };
                        client: {
                            v1: QueryClientImpl;
                        };
                        connection: {
                            v1: QueryClientImpl;
                        };
                    };
                };
                ixo: {
                    bonds: {
                        v1beta1: QueryClientImpl;
                    };
                    claims: {
                        v1beta1: QueryClientImpl;
                    };
                    entity: {
                        v1beta1: QueryClientImpl;
                    };
                    epochs: {
                        v1beta1: QueryClientImpl;
                    };
                    iid: {
                        v1beta1: QueryClientImpl;
                    };
                    mint: {
                        v1beta1: QueryClientImpl;
                    };
                    smartaccount: {
                        v1beta1: QueryClientImpl;
                    };
                    token: {
                        v1beta1: QueryClientImpl;
                    };
                };
            }
            • cosmos: {
                  app: {
                      v1alpha1: QueryClientImpl;
                  };
                  auth: {
                      v1beta1: QueryClientImpl;
                  };
                  authz: {
                      v1beta1: QueryClientImpl;
                  };
                  bank: {
                      v1beta1: QueryClientImpl;
                  };
                  base: {
                      node: {
                          v1beta1: ServiceClientImpl;
                      };
                      tendermint: {
                          v1beta1: ServiceClientImpl;
                      };
                  };
                  circuit: {
                      v1: QueryClientImpl;
                  };
                  consensus: {
                      v1: QueryClientImpl;
                  };
                  distribution: {
                      v1beta1: QueryClientImpl;
                  };
                  evidence: {
                      v1beta1: QueryClientImpl;
                  };
                  feegrant: {
                      v1beta1: QueryClientImpl;
                  };
                  gov: {
                      v1: QueryClientImpl;
                      v1beta1: QueryClientImpl;
                  };
                  mint: {
                      v1beta1: QueryClientImpl;
                  };
                  params: {
                      v1beta1: QueryClientImpl;
                  };
                  slashing: {
                      v1beta1: QueryClientImpl;
                  };
                  staking: {
                      v1beta1: QueryClientImpl;
                  };
                  tx: {
                      v1beta1: ServiceClientImpl;
                  };
                  upgrade: {
                      v1beta1: QueryClientImpl;
                  };
              }
              @@ -187,7 +187,7 @@
              connection:
              v1: QueryClientImpl
      • -
        ixo: {
            bonds: {
                v1beta1: QueryClientImpl;
            };
            claims: {
                v1beta1: QueryClientImpl;
            };
            entity: {
                v1beta1: QueryClientImpl;
            };
            iid: {
                v1beta1: QueryClientImpl;
            };
            token: {
                v1beta1: QueryClientImpl;
            };
        }
        +
        ixo: {
            bonds: {
                v1beta1: QueryClientImpl;
            };
            claims: {
                v1beta1: QueryClientImpl;
            };
            entity: {
                v1beta1: QueryClientImpl;
            };
            epochs: {
                v1beta1: QueryClientImpl;
            };
            iid: {
                v1beta1: QueryClientImpl;
            };
            mint: {
                v1beta1: QueryClientImpl;
            };
            smartaccount: {
                v1beta1: QueryClientImpl;
            };
            token: {
                v1beta1: QueryClientImpl;
            };
        }
      • +
        epochs: {
            v1beta1: QueryClientImpl;
        }
        +
      • +
      • iid: {
            v1beta1: QueryClientImpl;
        }
      • +
        mint: {
            v1beta1: QueryClientImpl;
        }
        +
      • +
      • +
        smartaccount: {
            v1beta1: QueryClientImpl;
        }
        +
      • +
      • token: {
            v1beta1: QueryClientImpl;
        }
        • @@ -218,17 +233,17 @@
          v1beta1: string

    Returns Promise<IbcTokenAsset>

  • -
    findIbcTokensFromHashes: ((queryClient: {
        cosmos: {
            app: {
                v1alpha1:
    QueryClientImpl;
            };
            auth: {
                v1beta1: QueryClientImpl;
            };
            authz: {
                v1beta1: QueryClientImpl;
            };
            bank: {
                v1beta1: QueryClientImpl;
            };
            base: {
                node: {
                    v1beta1: ServiceClientImpl;
                };
                tendermint: {
                    v1beta1: ServiceClientImpl;
                };
            };
            circuit: {
                v1: QueryClientImpl;
            };
            consensus: {
                v1: QueryClientImpl;
            };
            distribution: {
                v1beta1: QueryClientImpl;
            };
            evidence: {
                v1beta1: QueryClientImpl;
            };
            feegrant: {
                v1beta1: QueryClientImpl;
            };
            gov: {
                v1: QueryClientImpl;
                v1beta1: QueryClientImpl;
            };
            mint: {
                v1beta1: QueryClientImpl;
            };
            params: {
                v1beta1: QueryClientImpl;
            };
            slashing: {
                v1beta1: QueryClientImpl;
            };
            staking: {
                v1beta1: QueryClientImpl;
            };
            tx: {
                v1beta1: ServiceClientImpl;
            };
            upgrade: {
                v1beta1: QueryClientImpl;
            };
        };
        cosmwasm: {
            wasm: {
                v1: QueryClientImpl;
            };
        };
        ibc: {
            applications: {
                fee: {
                    v1: QueryClientImpl;
                };
                interchain_accounts: {
                    controller: {
                        v1: QueryClientImpl;
                    };
                    host: {
                        v1: QueryClientImpl;
                    };
                };
                transfer: {
                    v1: QueryClientImpl;
                };
            };
            core: {
                channel: {
                    v1: QueryClientImpl;
                };
                client: {
                    v1: QueryClientImpl;
                };
                connection: {
                    v1: QueryClientImpl;
                };
            };
        };
        ixo: {
            bonds: {
                v1beta1: QueryClientImpl;
            };
            claims: {
                v1beta1: QueryClientImpl;
            };
            entity: {
                v1beta1: QueryClientImpl;
            };
            iid: {
                v1beta1: QueryClientImpl;
            };
            token: {
                v1beta1: QueryClientImpl;
            };
        };
    }, ibcHashes: string[]) => Promise<IbcTokenAsset[]>)
    +
    findIbcTokensFromHashes: ((queryClient: {
        cosmos: {
            app: {
                v1alpha1: QueryClientImpl;
            };
            auth: {
                v1beta1: QueryClientImpl;
            };
            authz: {
                v1beta1: QueryClientImpl;
            };
            bank: {
                v1beta1: QueryClientImpl;
            };
            base: {
                node: {
                    v1beta1: ServiceClientImpl;
                };
                tendermint: {
                    v1beta1: ServiceClientImpl;
                };
            };
            circuit: {
                v1: QueryClientImpl;
            };
            consensus: {
                v1: QueryClientImpl;
            };
            distribution: {
                v1beta1: QueryClientImpl;
            };
            evidence: {
                v1beta1: QueryClientImpl;
            };
            feegrant: {
                v1beta1: QueryClientImpl;
            };
            gov: {
                v1: QueryClientImpl;
                v1beta1: QueryClientImpl;
            };
            mint: {
                v1beta1: QueryClientImpl;
            };
            params: {
                v1beta1: QueryClientImpl;
            };
            slashing: {
                v1beta1: QueryClientImpl;
            };
            staking: {
                v1beta1: QueryClientImpl;
            };
            tx: {
                v1beta1: ServiceClientImpl;
            };
            upgrade: {
                v1beta1: QueryClientImpl;
            };
        };
        cosmwasm: {
            wasm: {
                v1: QueryClientImpl;
            };
        };
        ibc: {
            applications: {
                fee: {
                    v1: QueryClientImpl;
                };
                interchain_accounts: {
                    controller: {
                        v1: QueryClientImpl;
                    };
                    host: {
                        v1: QueryClientImpl;
                    };
                };
                transfer: {
                    v1: QueryClientImpl;
                };
            };
            core: {
                channel: {
                    v1: QueryClientImpl;
                };
                client: {
                    v1: QueryClientImpl;
                };
                connection: {
                    v1: QueryClientImpl;
                };
            };
        };
        ixo: {
            bonds: {
                v1beta1: QueryClientImpl;
            };
            claims: {
                v1beta1: QueryClientImpl;
            };
            entity: {
                v1beta1: QueryClientImpl;
            };
            epochs: {
                v1beta1: QueryClientImpl;
            };
            iid: {
                v1beta1: QueryClientImpl;
            };
            mint: {
                v1beta1: QueryClientImpl;
            };
            smartaccount: {
                v1beta1: QueryClientImpl;
            };
            token: {
                v1beta1: QueryClientImpl;
            };
        };
    }, ibcHashes: string[]) => Promise<IbcTokenAsset[]>)
      • -
      • (queryClient: {
            cosmos: {
                app: {
                    v1alpha1: QueryClientImpl;
                };
                auth: {
                    v1beta1: QueryClientImpl;
                };
                authz: {
                    v1beta1: QueryClientImpl;
                };
                bank: {
                    v1beta1: QueryClientImpl;
                };
                base: {
                    node: {
                        v1beta1: ServiceClientImpl;
                    };
                    tendermint: {
                        v1beta1: ServiceClientImpl;
                    };
                };
                circuit: {
                    v1: QueryClientImpl;
                };
                consensus: {
                    v1: QueryClientImpl;
                };
                distribution: {
                    v1beta1: QueryClientImpl;
                };
                evidence: {
                    v1beta1: QueryClientImpl;
                };
                feegrant: {
                    v1beta1: QueryClientImpl;
                };
                gov: {
                    v1: QueryClientImpl;
                    v1beta1: QueryClientImpl;
                };
                mint: {
                    v1beta1: QueryClientImpl;
                };
                params: {
                    v1beta1: QueryClientImpl;
                };
                slashing: {
                    v1beta1: QueryClientImpl;
                };
                staking: {
                    v1beta1: QueryClientImpl;
                };
                tx: {
                    v1beta1: ServiceClientImpl;
                };
                upgrade: {
                    v1beta1: QueryClientImpl;
                };
            };
            cosmwasm: {
                wasm: {
                    v1: QueryClientImpl;
                };
            };
            ibc: {
                applications: {
                    fee: {
                        v1: QueryClientImpl;
                    };
                    interchain_accounts: {
                        controller: {
                            v1: QueryClientImpl;
                        };
                        host: {
                            v1: QueryClientImpl;
                        };
                    };
                    transfer: {
                        v1: QueryClientImpl;
                    };
                };
                core: {
                    channel: {
                        v1: QueryClientImpl;
                    };
                    client: {
                        v1: QueryClientImpl;
                    };
                    connection: {
                        v1: QueryClientImpl;
                    };
                };
            };
            ixo: {
                bonds: {
                    v1beta1: QueryClientImpl;
                };
                claims: {
                    v1beta1: QueryClientImpl;
                };
                entity: {
                    v1beta1: QueryClientImpl;
                };
                iid: {
                    v1beta1: QueryClientImpl;
                };
                token: {
                    v1beta1: QueryClientImpl;
                };
            };
        }, ibcHashes: string[]): Promise<IbcTokenAsset[]>
      • +
      • (queryClient: {
            cosmos: {
                app: {
                    v1alpha1: QueryClientImpl;
                };
                auth: {
                    v1beta1: QueryClientImpl;
                };
                authz: {
                    v1beta1: QueryClientImpl;
                };
                bank: {
                    v1beta1: QueryClientImpl;
                };
                base: {
                    node: {
                        v1beta1: ServiceClientImpl;
                    };
                    tendermint: {
                        v1beta1: ServiceClientImpl;
                    };
                };
                circuit: {
                    v1: QueryClientImpl;
                };
                consensus: {
                    v1: QueryClientImpl;
                };
                distribution: {
                    v1beta1: QueryClientImpl;
                };
                evidence: {
                    v1beta1: QueryClientImpl;
                };
                feegrant: {
                    v1beta1: QueryClientImpl;
                };
                gov: {
                    v1: QueryClientImpl;
                    v1beta1: QueryClientImpl;
                };
                mint: {
                    v1beta1: QueryClientImpl;
                };
                params: {
                    v1beta1: QueryClientImpl;
                };
                slashing: {
                    v1beta1: QueryClientImpl;
                };
                staking: {
                    v1beta1: QueryClientImpl;
                };
                tx: {
                    v1beta1: ServiceClientImpl;
                };
                upgrade: {
                    v1beta1: QueryClientImpl;
                };
            };
            cosmwasm: {
                wasm: {
                    v1: QueryClientImpl;
                };
            };
            ibc: {
                applications: {
                    fee: {
                        v1: QueryClientImpl;
                    };
                    interchain_accounts: {
                        controller: {
                            v1: QueryClientImpl;
                        };
                        host: {
                            v1: QueryClientImpl;
                        };
                    };
                    transfer: {
                        v1: QueryClientImpl;
                    };
                };
                core: {
                    channel: {
                        v1: QueryClientImpl;
                    };
                    client: {
                        v1: QueryClientImpl;
                    };
                    connection: {
                        v1: QueryClientImpl;
                    };
                };
            };
            ixo: {
                bonds: {
                    v1beta1: QueryClientImpl;
                };
                claims: {
                    v1beta1: QueryClientImpl;
                };
                entity: {
                    v1beta1: QueryClientImpl;
                };
                epochs: {
                    v1beta1: QueryClientImpl;
                };
                iid: {
                    v1beta1: QueryClientImpl;
                };
                mint: {
                    v1beta1: QueryClientImpl;
                };
                smartaccount: {
                    v1beta1: QueryClientImpl;
                };
                token: {
                    v1beta1: QueryClientImpl;
                };
            };
        }, ibcHashes: string[]): Promise<IbcTokenAsset[]>
      • Parameters

        • -
          queryClient: {
              cosmos: {
                  app: {
                      v1alpha1: QueryClientImpl;
                  };
                  auth: {
                      v1beta1: QueryClientImpl;
                  };
                  authz: {
                      v1beta1: QueryClientImpl;
                  };
                  bank: {
                      v1beta1: QueryClientImpl;
                  };
                  base: {
                      node: {
                          v1beta1: ServiceClientImpl;
                      };
                      tendermint: {
                          v1beta1: ServiceClientImpl;
                      };
                  };
                  circuit: {
                      v1: QueryClientImpl;
                  };
                  consensus: {
                      v1: QueryClientImpl;
                  };
                  distribution: {
                      v1beta1: QueryClientImpl;
                  };
                  evidence: {
                      v1beta1: QueryClientImpl;
                  };
                  feegrant: {
                      v1beta1: QueryClientImpl;
                  };
                  gov: {
                      v1: QueryClientImpl;
                      v1beta1: QueryClientImpl;
                  };
                  mint: {
                      v1beta1: QueryClientImpl;
                  };
                  params: {
                      v1beta1: QueryClientImpl;
                  };
                  slashing: {
                      v1beta1: QueryClientImpl;
                  };
                  staking: {
                      v1beta1: QueryClientImpl;
                  };
                  tx: {
                      v1beta1: ServiceClientImpl;
                  };
                  upgrade: {
                      v1beta1: QueryClientImpl;
                  };
              };
              cosmwasm: {
                  wasm: {
                      v1: QueryClientImpl;
                  };
              };
              ibc: {
                  applications: {
                      fee: {
                          v1: QueryClientImpl;
                      };
                      interchain_accounts: {
                          controller: {
                              v1: QueryClientImpl;
                          };
                          host: {
                              v1: QueryClientImpl;
                          };
                      };
                      transfer: {
                          v1: QueryClientImpl;
                      };
                  };
                  core: {
                      channel: {
                          v1: QueryClientImpl;
                      };
                      client: {
                          v1: QueryClientImpl;
                      };
                      connection: {
                          v1: QueryClientImpl;
                      };
                  };
              };
              ixo: {
                  bonds: {
                      v1beta1: QueryClientImpl;
                  };
                  claims: {
                      v1beta1: QueryClientImpl;
                  };
                  entity: {
                      v1beta1: QueryClientImpl;
                  };
                  iid: {
                      v1beta1: QueryClientImpl;
                  };
                  token: {
                      v1beta1: QueryClientImpl;
                  };
              };
          }
          +
          queryClient: {
              cosmos: {
                  app: {
                      v1alpha1: QueryClientImpl;
                  };
                  auth: {
                      v1beta1: QueryClientImpl;
                  };
                  authz: {
                      v1beta1: QueryClientImpl;
                  };
                  bank: {
                      v1beta1: QueryClientImpl;
                  };
                  base: {
                      node: {
                          v1beta1: ServiceClientImpl;
                      };
                      tendermint: {
                          v1beta1: ServiceClientImpl;
                      };
                  };
                  circuit: {
                      v1: QueryClientImpl;
                  };
                  consensus: {
                      v1: QueryClientImpl;
                  };
                  distribution: {
                      v1beta1: QueryClientImpl;
                  };
                  evidence: {
                      v1beta1: QueryClientImpl;
                  };
                  feegrant: {
                      v1beta1: QueryClientImpl;
                  };
                  gov: {
                      v1: QueryClientImpl;
                      v1beta1: QueryClientImpl;
                  };
                  mint: {
                      v1beta1: QueryClientImpl;
                  };
                  params: {
                      v1beta1: QueryClientImpl;
                  };
                  slashing: {
                      v1beta1: QueryClientImpl;
                  };
                  staking: {
                      v1beta1: QueryClientImpl;
                  };
                  tx: {
                      v1beta1: ServiceClientImpl;
                  };
                  upgrade: {
                      v1beta1: QueryClientImpl;
                  };
              };
              cosmwasm: {
                  wasm: {
                      v1: QueryClientImpl;
                  };
              };
              ibc: {
                  applications: {
                      fee: {
                          v1: QueryClientImpl;
                      };
                      interchain_accounts: {
                          controller: {
                              v1: QueryClientImpl;
                          };
                          host: {
                              v1: QueryClientImpl;
                          };
                      };
                      transfer: {
                          v1: QueryClientImpl;
                      };
                  };
                  core: {
                      channel: {
                          v1: QueryClientImpl;
                      };
                      client: {
                          v1: QueryClientImpl;
                      };
                      connection: {
                          v1: QueryClientImpl;
                      };
                  };
              };
              ixo: {
                  bonds: {
                      v1beta1: QueryClientImpl;
                  };
                  claims: {
                      v1beta1: QueryClientImpl;
                  };
                  entity: {
                      v1beta1: QueryClientImpl;
                  };
                  epochs: {
                      v1beta1: QueryClientImpl;
                  };
                  iid: {
                      v1beta1: QueryClientImpl;
                  };
                  mint: {
                      v1beta1: QueryClientImpl;
                  };
                  smartaccount: {
                      v1beta1: QueryClientImpl;
                  };
                  token: {
                      v1beta1: QueryClientImpl;
                  };
              };
          }
          • cosmos: {
                app: {
                    v1alpha1: QueryClientImpl;
                };
                auth: {
                    v1beta1: QueryClientImpl;
                };
                authz: {
                    v1beta1: QueryClientImpl;
                };
                bank: {
                    v1beta1: QueryClientImpl;
                };
                base: {
                    node: {
                        v1beta1: ServiceClientImpl;
                    };
                    tendermint: {
                        v1beta1: ServiceClientImpl;
                    };
                };
                circuit: {
                    v1: QueryClientImpl;
                };
                consensus: {
                    v1: QueryClientImpl;
                };
                distribution: {
                    v1beta1: QueryClientImpl;
                };
                evidence: {
                    v1beta1: QueryClientImpl;
                };
                feegrant: {
                    v1beta1: QueryClientImpl;
                };
                gov: {
                    v1: QueryClientImpl;
                    v1beta1: QueryClientImpl;
                };
                mint: {
                    v1beta1: QueryClientImpl;
                };
                params: {
                    v1beta1: QueryClientImpl;
                };
                slashing: {
                    v1beta1: QueryClientImpl;
                };
                staking: {
                    v1beta1: QueryClientImpl;
                };
                tx: {
                    v1beta1: ServiceClientImpl;
                };
                upgrade: {
                    v1beta1: QueryClientImpl;
                };
            }
            @@ -384,7 +399,7 @@
            connection:
            v1: QueryClientImpl
    • -
      ixo: {
          bonds: {
              v1beta1: QueryClientImpl;
          };
          claims: {
              v1beta1: QueryClientImpl;
          };
          entity: {
              v1beta1: QueryClientImpl;
          };
          iid: {
              v1beta1: QueryClientImpl;
          };
          token: {
              v1beta1: QueryClientImpl;
          };
      }
      +
      ixo: {
          bonds: {
              v1beta1: QueryClientImpl;
          };
          claims: {
              v1beta1: QueryClientImpl;
          };
          entity: {
              v1beta1: QueryClientImpl;
          };
          epochs: {
              v1beta1: QueryClientImpl;
          };
          iid: {
              v1beta1: QueryClientImpl;
          };
          mint: {
              v1beta1: QueryClientImpl;
          };
          smartaccount: {
              v1beta1: QueryClientImpl;
          };
          token: {
              v1beta1: QueryClientImpl;
          };
      }
    • +
      epochs: {
          v1beta1: QueryClientImpl;
      }
      +
    • +
    • iid: {
          v1beta1: QueryClientImpl;
      }
    • +
      mint: {
          v1beta1: QueryClientImpl;
      }
      +
    • +
    • +
      smartaccount: {
          v1beta1: QueryClientImpl;
      }
      +
    • +
    • token: {
          v1beta1: QueryClientImpl;
      }
    • tendermint
        diff --git a/docs/variables/defaultRegistryTypes.html b/docs/variables/defaultRegistryTypes.html index 98c1fb8c..6b3c8ab7 100644 --- a/docs/variables/defaultRegistryTypes.html +++ b/docs/variables/defaultRegistryTypes.html @@ -170,7 +170,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/gogoproto.html b/docs/variables/gogoproto.html index 19fedc8b..ff810953 100644 --- a/docs/variables/gogoproto.html +++ b/docs/variables/gogoproto.html @@ -173,7 +173,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/google.api.html b/docs/variables/google.api.html index 23c88754..0db54517 100644 --- a/docs/variables/google.api.html +++ b/docs/variables/google.api.html @@ -390,7 +390,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/google.protobuf.html b/docs/variables/google.protobuf.html index e2d16f43..c74af6e0 100644 --- a/docs/variables/google.protobuf.html +++ b/docs/variables/google.protobuf.html @@ -2574,7 +2574,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.ClientFactory.html b/docs/variables/ibc.ClientFactory.html index bb19a1ac..5224d517 100644 --- a/docs/variables/ibc.ClientFactory.html +++ b/docs/variables/ibc.ClientFactory.html @@ -206,7 +206,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.applications.fee.v1.html b/docs/variables/ibc.applications.fee.v1.html index 5762c8a4..ae982c1a 100644 --- a/docs/variables/ibc.applications.fee.v1.html +++ b/docs/variables/ibc.applications.fee.v1.html @@ -3128,7 +3128,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.applications.interchain_accounts.controller.v1.html b/docs/variables/ibc.applications.interchain_accounts.controller.v1.html index b234faab..aac58a61 100644 --- a/docs/variables/ibc.applications.interchain_accounts.controller.v1.html +++ b/docs/variables/ibc.applications.interchain_accounts.controller.v1.html @@ -1009,7 +1009,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.applications.interchain_accounts.genesis.v1.html b/docs/variables/ibc.applications.interchain_accounts.genesis.v1.html index 554779c1..1aada22d 100644 --- a/docs/variables/ibc.applications.interchain_accounts.genesis.v1.html +++ b/docs/variables/ibc.applications.interchain_accounts.genesis.v1.html @@ -537,7 +537,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.applications.interchain_accounts.host.v1.html b/docs/variables/ibc.applications.interchain_accounts.host.v1.html index a7cf2dc5..d0c4a294 100644 --- a/docs/variables/ibc.applications.interchain_accounts.host.v1.html +++ b/docs/variables/ibc.applications.interchain_accounts.host.v1.html @@ -780,7 +780,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.applications.interchain_accounts.v1.html b/docs/variables/ibc.applications.interchain_accounts.v1.html index 389f7cf2..315d59eb 100644 --- a/docs/variables/ibc.applications.interchain_accounts.v1.html +++ b/docs/variables/ibc.applications.interchain_accounts.v1.html @@ -492,7 +492,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.applications.transfer.v1.html b/docs/variables/ibc.applications.transfer.v1.html index 384c4523..2f17594f 100644 --- a/docs/variables/ibc.applications.transfer.v1.html +++ b/docs/variables/ibc.applications.transfer.v1.html @@ -1780,7 +1780,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.applications.transfer.v2.html b/docs/variables/ibc.applications.transfer.v2.html index f79fda29..e6712d96 100644 --- a/docs/variables/ibc.applications.transfer.v2.html +++ b/docs/variables/ibc.applications.transfer.v2.html @@ -248,7 +248,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.core.channel.v1.html b/docs/variables/ibc.core.channel.v1.html index a89f135e..da7fe3fc 100644 --- a/docs/variables/ibc.core.channel.v1.html +++ b/docs/variables/ibc.core.channel.v1.html @@ -6687,7 +6687,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.core.client.v1.html b/docs/variables/ibc.core.client.v1.html index f39e66e1..9d6ba1c2 100644 --- a/docs/variables/ibc.core.client.v1.html +++ b/docs/variables/ibc.core.client.v1.html @@ -3488,7 +3488,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.core.commitment.v1.html b/docs/variables/ibc.core.commitment.v1.html index 2584c199..5599d652 100644 --- a/docs/variables/ibc.core.commitment.v1.html +++ b/docs/variables/ibc.core.commitment.v1.html @@ -464,7 +464,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.core.connection.v1.html b/docs/variables/ibc.core.connection.v1.html index 76d5fa97..79a6e62a 100644 --- a/docs/variables/ibc.core.connection.v1.html +++ b/docs/variables/ibc.core.connection.v1.html @@ -2456,7 +2456,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.core.types.v1.html b/docs/variables/ibc.core.types.v1.html index c47356bf..f21cc67e 100644 --- a/docs/variables/ibc.core.types.v1.html +++ b/docs/variables/ibc.core.types.v1.html @@ -248,7 +248,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.lightclients.localhost.v2.html b/docs/variables/ibc.lightclients.localhost.v2.html index 5ac7cb64..71890dbb 100644 --- a/docs/variables/ibc.lightclients.localhost.v2.html +++ b/docs/variables/ibc.lightclients.localhost.v2.html @@ -248,7 +248,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.lightclients.solomachine.v2.html b/docs/variables/ibc.lightclients.solomachine.v2.html index 53bcdd1e..4a2c4594 100644 --- a/docs/variables/ibc.lightclients.solomachine.v2.html +++ b/docs/variables/ibc.lightclients.solomachine.v2.html @@ -1356,7 +1356,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.lightclients.solomachine.v3.html b/docs/variables/ibc.lightclients.solomachine.v3.html index 0e757755..913183b4 100644 --- a/docs/variables/ibc.lightclients.solomachine.v3.html +++ b/docs/variables/ibc.lightclients.solomachine.v3.html @@ -752,7 +752,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.lightclients.tendermint.v1.html b/docs/variables/ibc.lightclients.tendermint.v1.html index 32e135b3..80ea4bfd 100644 --- a/docs/variables/ibc.lightclients.tendermint.v1.html +++ b/docs/variables/ibc.lightclients.tendermint.v1.html @@ -536,7 +536,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ibc.lightclients.wasm.v1.html b/docs/variables/ibc.lightclients.wasm.v1.html index 91ccaee1..fd219504 100644 --- a/docs/variables/ibc.lightclients.wasm.v1.html +++ b/docs/variables/ibc.lightclients.wasm.v1.html @@ -1368,7 +1368,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ics23.html b/docs/variables/ics23.html index 7065699c..65a9a906 100644 --- a/docs/variables/ics23.html +++ b/docs/variables/ics23.html @@ -1165,7 +1165,10 @@

        bonds
      • claims
      • entity
      • +
      • epochs
      • iid
      • +
      • mint
      • +
      • smartaccount
      • token
    • tendermint
        diff --git a/docs/variables/ixo.ClientFactory.html b/docs/variables/ixo.ClientFactory.html index e8324e9b..05373fd9 100644 --- a/docs/variables/ixo.ClientFactory.html +++ b/docs/variables/ixo.ClientFactory.html @@ -16,16 +16,16 @@
      • ixo
      • ClientFactory

      Variable ClientFactoryConst

      -
      ClientFactory: {
          createRPCMsgClient: ((__namedParameters: {
              rpc: Rpc;
          }) => Promise<{
              cosmos: {
                  auth: {
                      v1beta1: MsgClientImpl;
                  };
                  authz: {
                      v1beta1: MsgClientImpl;
                  };
                  bank: {
                      v1beta1: MsgClientImpl;
                  };
                  circuit: {
                      v1: MsgClientImpl;
                  };
                  consensus: {
                      v1: MsgClientImpl;
                  };
                  crisis: {
                      v1beta1: MsgClientImpl;
                  };
                  distribution: {
                      v1beta1: MsgClientImpl;
                  };
                  evidence: {
                      v1beta1: MsgClientImpl;
                  };
                  feegrant: {
                      v1beta1: MsgClientImpl;
                  };
                  gov: {
                      v1: MsgClientImpl;
                      v1beta1: MsgClientImpl;
                  };
                  group: {
                      v1: MsgClientImpl;
                  };
                  mint: {
                      v1beta1: MsgClientImpl;
                  };
                  nft: {
                      v1beta1: MsgClientImpl;
                  };
                  slashing: {
                      v1beta1: MsgClientImpl;
                  };
                  staking: {
                      v1beta1: MsgClientImpl;
                  };
                  upgrade: {
                      v1beta1: MsgClientImpl;
                  };
                  vesting: {
                      v1beta1: MsgClientImpl;
                  };
              };
              ixo: {
                  bonds: {
                      v1beta1: MsgClientImpl;
                  };
                  claims: {
                      v1beta1: MsgClientImpl;
                  };
                  entity: {
                      v1beta1: MsgClientImpl;
                  };
                  iid: {
                      v1beta1: MsgClientImpl;
                  };
                  token: {
                      v1beta1: MsgClientImpl;
                  };
              };
          }>);
          createRPCQueryClient: ((__namedParameters: {
              rpcEndpoint: string | HttpEndpoint;
          }) => Promise<{
              cosmos: {
                  app: {
                      v1alpha1: {
                          config(request?: QueryConfigRequest): Promise<QueryConfigResponse>;
                      };
                  };
                  auth: {
                      v1beta1: {
                          account(request: QueryAccountRequest): Promise<QueryAccountResponse>;
                          accountAddressByID(request: QueryAccountAddressByIDRequest): Promise<QueryAccountAddressByIDResponse>;
                          accountInfo(request: QueryAccountInfoRequest): Promise<QueryAccountInfoResponse>;
                          accounts(request?: QueryAccountsRequest): Promise<QueryAccountsResponse>;
                          addressBytesToString(request: AddressBytesToStringRequest): Promise<AddressBytesToStringResponse>;
                          addressStringToBytes(request: AddressStringToBytesRequest): Promise<AddressStringToBytesResponse>;
                          bech32Prefix(request?: Bech32PrefixRequest): Promise<Bech32PrefixResponse>;
                          moduleAccountByName(request: QueryModuleAccountByNameRequest): Promise<QueryModuleAccountByNameResponse>;
                          moduleAccounts(request?: QueryModuleAccountsRequest): Promise<QueryModuleAccountsResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      };
                  };
                  authz: {
                      v1beta1: {
                          granteeGrants(request: QueryGranteeGrantsRequest): Promise<QueryGranteeGrantsResponse>;
                          granterGrants(request: QueryGranterGrantsRequest): Promise<QueryGranterGrantsResponse>;
                          grants(request: QueryGrantsRequest): Promise<QueryGrantsResponse>;
                      };
                  };
                  autocli: {
                      v1: {
                          appOptions(request?: AppOptionsRequest): Promise<AppOptionsResponse>;
                      };
                  };
                  bank: {
                      v1beta1: {
                          allBalances(request: QueryAllBalancesRequest): Promise<QueryAllBalancesResponse>;
                          balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                          denomMetadata(request: QueryDenomMetadataRequest): Promise<QueryDenomMetadataResponse>;
                          denomMetadataByQueryString(request: QueryDenomMetadataByQueryStringRequest): Promise<QueryDenomMetadataByQueryStringResponse>;
                          denomOwners(request: QueryDenomOwnersRequest): Promise<QueryDenomOwnersResponse>;
                          denomOwnersByQuery(request: QueryDenomOwnersByQueryRequest): Promise<QueryDenomOwnersByQueryResponse>;
                          denomsMetadata(request?: QueryDenomsMetadataRequest): Promise<QueryDenomsMetadataResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                          sendEnabled(request: QuerySendEnabledRequest): Promise<QuerySendEnabledResponse>;
                          spendableBalanceByDenom(request: QuerySpendableBalanceByDenomRequest): Promise<QuerySpendableBalanceByDenomResponse>;
                          spendableBalances(request: QuerySpendableBalancesRequest): Promise<QuerySpendableBalancesResponse>;
                          supplyOf(request: QuerySupplyOfRequest): Promise<QuerySupplyOfResponse>;
                          totalSupply(request?: QueryTotalSupplyRequest): Promise<QueryTotalSupplyResponse>;
                      };
                  };
                  base: {
                      node: {
                          v1beta1: {
                              config(request?: ConfigRequest): Promise<ConfigResponse>;
                              status(request?: StatusRequest): Promise<StatusResponse>;
                          };
                      };
                      tendermint: {
                          v1beta1: {
                              aBCIQuery(request: ABCIQueryRequest): Promise<ABCIQueryResponse>;
                              getBlockByHeight(request: GetBlockByHeightRequest): Promise<GetBlockByHeightResponse>;
                              getLatestBlock(request?: GetLatestBlockRequest): Promise<GetLatestBlockResponse>;
                              getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise<GetLatestValidatorSetResponse>;
                              getNodeInfo(request?: GetNodeInfoRequest): Promise<GetNodeInfoResponse>;
                              getSyncing(request?: GetSyncingRequest): Promise<GetSyncingResponse>;
                              getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise<GetValidatorSetByHeightResponse>;
                          };
                      };
                  };
                  circuit: {
                      v1: {
                          account(request: QueryAccountRequest): Promise<AccountResponse>;
                          accounts(request?: QueryAccountsRequest): Promise<AccountsResponse>;
                          disabledList(request?: QueryDisabledListRequest): Promise<DisabledListResponse>;
                      };
                  };
                  consensus: {
                      v1: {
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      };
                  };
                  distribution: {
                      v1beta1: {
                          communityPool(request?: QueryCommunityPoolRequest): Promise<QueryCommunityPoolResponse>;
                          delegationRewards(request: QueryDelegationRewardsRequest): Promise<QueryDelegationRewardsResponse>;
                          delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise<QueryDelegationTotalRewardsResponse>;
                          delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                          delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise<QueryDelegatorWithdrawAddressResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                          validatorCommission(request: QueryValidatorCommissionRequest): Promise<QueryValidatorCommissionResponse>;
                          validatorDistributionInfo(request: QueryValidatorDistributionInfoRequest): Promise<QueryValidatorDistributionInfoResponse>;
                          validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise<QueryValidatorOutstandingRewardsResponse>;
                          validatorSlashes(request: QueryValidatorSlashesRequest): Promise<QueryValidatorSlashesResponse>;
                      };
                  };
                  evidence: {
                      v1beta1: {
                          allEvidence(request?: QueryAllEvidenceRequest): Promise<QueryAllEvidenceResponse>;
                          evidence(request: QueryEvidenceRequest): Promise<QueryEvidenceResponse>;
                      };
                  };
                  feegrant: {
                      v1beta1: {
                          allowance(request: QueryAllowanceRequest): Promise<QueryAllowanceResponse>;
                          allowances(request: QueryAllowancesRequest): Promise<QueryAllowancesResponse>;
                          allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise<QueryAllowancesByGranterResponse>;
                      };
                  };
                  gov: {
                      v1: {
                          constitution(request?: QueryConstitutionRequest): Promise<QueryConstitutionResponse>;
                          deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                          deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                          params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                          proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                          proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                          tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                          vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                          votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                      };
                      v1beta1: {
                          deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                          deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                          params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                          proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                          proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                          tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                          vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                          votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                      };
                  };
                  group: {
                      v1: {
                          groupInfo(request: QueryGroupInfoRequest): Promise<QueryGroupInfoResponse>;
                          groupMembers(request: QueryGroupMembersRequest): Promise<QueryGroupMembersResponse>;
                          groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise<QueryGroupPoliciesByAdminResponse>;
                          groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise<QueryGroupPoliciesByGroupResponse>;
                          groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise<QueryGroupPolicyInfoResponse>;
                          groups(request?: QueryGroupsRequest): Promise<QueryGroupsResponse>;
                          groupsByAdmin(request: QueryGroupsByAdminRequest): Promise<QueryGroupsByAdminResponse>;
                          groupsByMember(request: QueryGroupsByMemberRequest): Promise<QueryGroupsByMemberResponse>;
                          proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                          proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise<QueryProposalsByGroupPolicyResponse>;
                          tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                          voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise<QueryVoteByProposalVoterResponse>;
                          votesByProposal(request: QueryVotesByProposalRequest): Promise<QueryVotesByProposalResponse>;
                          votesByVoter(request: QueryVotesByVoterRequest): Promise<QueryVotesByVoterResponse>;
                      };
                  };
                  mint: {
                      v1beta1: {
                          annualProvisions(request?: QueryAnnualProvisionsRequest): Promise<QueryAnnualProvisionsResponse>;
                          inflation(request?: QueryInflationRequest): Promise<QueryInflationResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      };
                  };
                  nft: {
                      v1beta1: {
                          balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                          class(request: QueryClassRequest): Promise<QueryClassResponse>;
                          classes(request?: QueryClassesRequest): Promise<QueryClassesResponse>;
                          nFT(request: QueryNFTRequest): Promise<QueryNFTResponse>;
                          nFTs(request: QueryNFTsRequest): Promise<QueryNFTsResponse>;
                          owner(request: QueryOwnerRequest): Promise<QueryOwnerResponse>;
                          supply(request: QuerySupplyRequest): Promise<QuerySupplyResponse>;
                      };
                  };
                  orm: {
                      query: {
                          v1alpha1: {
                              get(request: GetRequest): Promise<GetResponse>;
                              list(request: ListRequest): Promise<ListResponse>;
                          };
                      };
                  };
                  params: {
                      v1beta1: {
                          params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                          subspaces(request?: QuerySubspacesRequest): Promise<QuerySubspacesResponse>;
                      };
                  };
                  slashing: {
                      v1beta1: {
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                          signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse>;
                          signingInfos(request?: QuerySigningInfosRequest): Promise<QuerySigningInfosResponse>;
                      };
                  };
                  staking: {
                      v1beta1: {
                          delegation(request: QueryDelegationRequest): Promise<QueryDelegationResponse>;
                          delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise<QueryDelegatorDelegationsResponse>;
                          delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise<QueryDelegatorUnbondingDelegationsResponse>;
                          delegatorValidator(request: QueryDelegatorValidatorRequest): Promise<QueryDelegatorValidatorResponse>;
                          delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                          historicalInfo(request: QueryHistoricalInfoRequest): Promise<QueryHistoricalInfoResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                          pool(request?: QueryPoolRequest): Promise<QueryPoolResponse>;
                          redelegations(request: QueryRedelegationsRequest): Promise<QueryRedelegationsResponse>;
                          unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise<QueryUnbondingDelegationResponse>;
                          validator(request: QueryValidatorRequest): Promise<QueryValidatorResponse>;
                          validatorDelegations(request: QueryValidatorDelegationsRequest): Promise<QueryValidatorDelegationsResponse>;
                          validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise<QueryValidatorUnbondingDelegationsResponse>;
                          validators(request: QueryValidatorsRequest): Promise<QueryValidatorsResponse>;
                      };
                  };
                  tx: {
                      v1beta1: {
                          broadcastTx(request: BroadcastTxRequest): Promise<BroadcastTxResponse>;
                          getBlockWithTxs(request: GetBlockWithTxsRequest): Promise<GetBlockWithTxsResponse>;
                          getTx(request: GetTxRequest): Promise<GetTxResponse>;
                          getTxsEvent(request: GetTxsEventRequest): Promise<GetTxsEventResponse>;
                          simulate(request: SimulateRequest): Promise<SimulateResponse>;
                          txDecode(request: TxDecodeRequest): Promise<TxDecodeResponse>;
                          txDecodeAmino(request: TxDecodeAminoRequest): Promise<TxDecodeAminoResponse>;
                          txEncode(request: TxEncodeRequest): Promise<TxEncodeResponse>;
                          txEncodeAmino(request: TxEncodeAminoRequest): Promise<TxEncodeAminoResponse>;
                      };
                  };
                  upgrade: {
                      v1beta1: {
                          appliedPlan(request: QueryAppliedPlanRequest): Promise<QueryAppliedPlanResponse>;
                          authority(request?: QueryAuthorityRequest): Promise<QueryAuthorityResponse>;
                          currentPlan(request?: QueryCurrentPlanRequest): Promise<QueryCurrentPlanResponse>;
                          moduleVersions(request: QueryModuleVersionsRequest): Promise<QueryModuleVersionsResponse>;
                          upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise<QueryUpgradedConsensusStateResponse>;
                      };
                  };
              };
              ixo: {
                  bonds: {
                      v1beta1: {
                          alphaMaximums(request: QueryAlphaMaximumsRequest): Promise<QueryAlphaMaximumsResponse>;
                          availableReserve(request: QueryAvailableReserveRequest): Promise<QueryAvailableReserveResponse>;
                          batch(request: QueryBatchRequest): Promise<QueryBatchResponse>;
                          bond(request: QueryBondRequest): Promise<QueryBondResponse>;
                          bonds(request?: QueryBondsRequest): Promise<QueryBondsResponse>;
                          bondsDetailed(request?: QueryBondsDetailedRequest): Promise<QueryBondsDetailedResponse>;
                          buyPrice(request: QueryBuyPriceRequest): Promise<QueryBuyPriceResponse>;
                          currentPrice(request: QueryCurrentPriceRequest): Promise<QueryCurrentPriceResponse>;
                          currentReserve(request: QueryCurrentReserveRequest): Promise<QueryCurrentReserveResponse>;
                          customPrice(request: QueryCustomPriceRequest): Promise<QueryCustomPriceResponse>;
                          lastBatch(request: QueryLastBatchRequest): Promise<QueryLastBatchResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                          sellReturn(request: QuerySellReturnRequest): Promise<QuerySellReturnResponse>;
                          swapReturn(request: QuerySwapReturnRequest): Promise<QuerySwapReturnResponse>;
                      };
                  };
                  claims: {
                      v1beta1: {
                          claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
                          claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
                          collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
                          collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
                          dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
                          disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      };
                  };
                  entity: {
                      v1beta1: {
                          entity(request: QueryEntityRequest): Promise<QueryEntityResponse>;
                          entityIidDocument(request: QueryEntityIidDocumentRequest): Promise<QueryEntityIidDocumentResponse>;
                          entityList(request?: QueryEntityListRequest): Promise<QueryEntityListResponse>;
                          entityMetaData(request: QueryEntityMetadataRequest): Promise<QueryEntityMetadataResponse>;
                          entityVerified(request: QueryEntityVerifiedRequest): Promise<QueryEntityVerifiedResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      };
                  };
                  iid: {
                      v1beta1: {
                          iidDocument(request: QueryIidDocumentRequest): Promise<QueryIidDocumentResponse>;
                          iidDocuments(request?: QueryIidDocumentsRequest): Promise<QueryIidDocumentsResponse>;
                      };
                  };
                  token: {
                      v1beta1: {
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                          tokenDoc(request: QueryTokenDocRequest): Promise<QueryTokenDocResponse>;
                          tokenList(request: QueryTokenListRequest): Promise<QueryTokenListResponse>;
                          tokenMetadata(request: QueryTokenMetadataRequest): Promise<QueryTokenMetadataResponse>;
                      };
                  };
              };
          }>);
      } = ...
      +
      ClientFactory: {
          createRPCMsgClient: ((__namedParameters: {
              rpc: Rpc;
          }) => Promise<{
              cosmos: {
                  auth: {
                      v1beta1: MsgClientImpl;
                  };
                  authz: {
                      v1beta1: MsgClientImpl;
                  };
                  bank: {
                      v1beta1: MsgClientImpl;
                  };
                  circuit: {
                      v1: MsgClientImpl;
                  };
                  consensus: {
                      v1: MsgClientImpl;
                  };
                  crisis: {
                      v1beta1: MsgClientImpl;
                  };
                  distribution: {
                      v1beta1: MsgClientImpl;
                  };
                  evidence: {
                      v1beta1: MsgClientImpl;
                  };
                  feegrant: {
                      v1beta1: MsgClientImpl;
                  };
                  gov: {
                      v1: MsgClientImpl;
                      v1beta1: MsgClientImpl;
                  };
                  group: {
                      v1: MsgClientImpl;
                  };
                  mint: {
                      v1beta1: MsgClientImpl;
                  };
                  nft: {
                      v1beta1: MsgClientImpl;
                  };
                  slashing: {
                      v1beta1: MsgClientImpl;
                  };
                  staking: {
                      v1beta1: MsgClientImpl;
                  };
                  upgrade: {
                      v1beta1: MsgClientImpl;
                  };
                  vesting: {
                      v1beta1: MsgClientImpl;
                  };
              };
              ixo: {
                  bonds: {
                      v1beta1: MsgClientImpl;
                  };
                  claims: {
                      v1beta1: MsgClientImpl;
                  };
                  entity: {
                      v1beta1: MsgClientImpl;
                  };
                  iid: {
                      v1beta1: MsgClientImpl;
                  };
                  smartaccount: {
                      v1beta1: MsgClientImpl;
                  };
                  token: {
                      v1beta1: MsgClientImpl;
                  };
              };
          }>);
          createRPCQueryClient: ((__namedParameters: {
              rpcEndpoint: string | HttpEndpoint;
          }) => Promise<{
              cosmos: {
                  app: {
                      v1alpha1: {
                          config(request?: QueryConfigRequest): Promise<QueryConfigResponse>;
                      };
                  };
                  auth: {
                      v1beta1: {
                          account(request: QueryAccountRequest): Promise<QueryAccountResponse>;
                          accountAddressByID(request: QueryAccountAddressByIDRequest): Promise<QueryAccountAddressByIDResponse>;
                          accountInfo(request: QueryAccountInfoRequest): Promise<QueryAccountInfoResponse>;
                          accounts(request?: QueryAccountsRequest): Promise<QueryAccountsResponse>;
                          addressBytesToString(request: AddressBytesToStringRequest): Promise<AddressBytesToStringResponse>;
                          addressStringToBytes(request: AddressStringToBytesRequest): Promise<AddressStringToBytesResponse>;
                          bech32Prefix(request?: Bech32PrefixRequest): Promise<Bech32PrefixResponse>;
                          moduleAccountByName(request: QueryModuleAccountByNameRequest): Promise<QueryModuleAccountByNameResponse>;
                          moduleAccounts(request?: QueryModuleAccountsRequest): Promise<QueryModuleAccountsResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      };
                  };
                  authz: {
                      v1beta1: {
                          granteeGrants(request: QueryGranteeGrantsRequest): Promise<QueryGranteeGrantsResponse>;
                          granterGrants(request: QueryGranterGrantsRequest): Promise<QueryGranterGrantsResponse>;
                          grants(request: QueryGrantsRequest): Promise<QueryGrantsResponse>;
                      };
                  };
                  autocli: {
                      v1: {
                          appOptions(request?: AppOptionsRequest): Promise<AppOptionsResponse>;
                      };
                  };
                  bank: {
                      v1beta1: {
                          allBalances(request: QueryAllBalancesRequest): Promise<QueryAllBalancesResponse>;
                          balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                          denomMetadata(request: QueryDenomMetadataRequest): Promise<QueryDenomMetadataResponse>;
                          denomMetadataByQueryString(request: QueryDenomMetadataByQueryStringRequest): Promise<QueryDenomMetadataByQueryStringResponse>;
                          denomOwners(request: QueryDenomOwnersRequest): Promise<QueryDenomOwnersResponse>;
                          denomOwnersByQuery(request: QueryDenomOwnersByQueryRequest): Promise<QueryDenomOwnersByQueryResponse>;
                          denomsMetadata(request?: QueryDenomsMetadataRequest): Promise<QueryDenomsMetadataResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                          sendEnabled(request: QuerySendEnabledRequest): Promise<QuerySendEnabledResponse>;
                          spendableBalanceByDenom(request: QuerySpendableBalanceByDenomRequest): Promise<QuerySpendableBalanceByDenomResponse>;
                          spendableBalances(request: QuerySpendableBalancesRequest): Promise<QuerySpendableBalancesResponse>;
                          supplyOf(request: QuerySupplyOfRequest): Promise<QuerySupplyOfResponse>;
                          totalSupply(request?: QueryTotalSupplyRequest): Promise<QueryTotalSupplyResponse>;
                      };
                  };
                  base: {
                      node: {
                          v1beta1: {
                              config(request?: ConfigRequest): Promise<ConfigResponse>;
                              status(request?: StatusRequest): Promise<StatusResponse>;
                          };
                      };
                      tendermint: {
                          v1beta1: {
                              aBCIQuery(request: ABCIQueryRequest): Promise<ABCIQueryResponse>;
                              getBlockByHeight(request: GetBlockByHeightRequest): Promise<GetBlockByHeightResponse>;
                              getLatestBlock(request?: GetLatestBlockRequest): Promise<GetLatestBlockResponse>;
                              getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise<GetLatestValidatorSetResponse>;
                              getNodeInfo(request?: GetNodeInfoRequest): Promise<GetNodeInfoResponse>;
                              getSyncing(request?: GetSyncingRequest): Promise<GetSyncingResponse>;
                              getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise<GetValidatorSetByHeightResponse>;
                          };
                      };
                  };
                  circuit: {
                      v1: {
                          account(request: QueryAccountRequest): Promise<AccountResponse>;
                          accounts(request?: QueryAccountsRequest): Promise<AccountsResponse>;
                          disabledList(request?: QueryDisabledListRequest): Promise<DisabledListResponse>;
                      };
                  };
                  consensus: {
                      v1: {
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      };
                  };
                  distribution: {
                      v1beta1: {
                          communityPool(request?: QueryCommunityPoolRequest): Promise<QueryCommunityPoolResponse>;
                          delegationRewards(request: QueryDelegationRewardsRequest): Promise<QueryDelegationRewardsResponse>;
                          delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise<QueryDelegationTotalRewardsResponse>;
                          delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                          delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise<QueryDelegatorWithdrawAddressResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                          validatorCommission(request: QueryValidatorCommissionRequest): Promise<QueryValidatorCommissionResponse>;
                          validatorDistributionInfo(request: QueryValidatorDistributionInfoRequest): Promise<QueryValidatorDistributionInfoResponse>;
                          validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise<QueryValidatorOutstandingRewardsResponse>;
                          validatorSlashes(request: QueryValidatorSlashesRequest): Promise<QueryValidatorSlashesResponse>;
                      };
                  };
                  evidence: {
                      v1beta1: {
                          allEvidence(request?: QueryAllEvidenceRequest): Promise<QueryAllEvidenceResponse>;
                          evidence(request: QueryEvidenceRequest): Promise<QueryEvidenceResponse>;
                      };
                  };
                  feegrant: {
                      v1beta1: {
                          allowance(request: QueryAllowanceRequest): Promise<QueryAllowanceResponse>;
                          allowances(request: QueryAllowancesRequest): Promise<QueryAllowancesResponse>;
                          allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise<QueryAllowancesByGranterResponse>;
                      };
                  };
                  gov: {
                      v1: {
                          constitution(request?: QueryConstitutionRequest): Promise<QueryConstitutionResponse>;
                          deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                          deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                          params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                          proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                          proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                          tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                          vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                          votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                      };
                      v1beta1: {
                          deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                          deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                          params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                          proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                          proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                          tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                          vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                          votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                      };
                  };
                  group: {
                      v1: {
                          groupInfo(request: QueryGroupInfoRequest): Promise<QueryGroupInfoResponse>;
                          groupMembers(request: QueryGroupMembersRequest): Promise<QueryGroupMembersResponse>;
                          groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise<QueryGroupPoliciesByAdminResponse>;
                          groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise<QueryGroupPoliciesByGroupResponse>;
                          groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise<QueryGroupPolicyInfoResponse>;
                          groups(request?: QueryGroupsRequest): Promise<QueryGroupsResponse>;
                          groupsByAdmin(request: QueryGroupsByAdminRequest): Promise<QueryGroupsByAdminResponse>;
                          groupsByMember(request: QueryGroupsByMemberRequest): Promise<QueryGroupsByMemberResponse>;
                          proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                          proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise<QueryProposalsByGroupPolicyResponse>;
                          tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                          voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise<QueryVoteByProposalVoterResponse>;
                          votesByProposal(request: QueryVotesByProposalRequest): Promise<QueryVotesByProposalResponse>;
                          votesByVoter(request: QueryVotesByVoterRequest): Promise<QueryVotesByVoterResponse>;
                      };
                  };
                  mint: {
                      v1beta1: {
                          annualProvisions(request?: QueryAnnualProvisionsRequest): Promise<QueryAnnualProvisionsResponse>;
                          inflation(request?: QueryInflationRequest): Promise<QueryInflationResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      };
                  };
                  nft: {
                      v1beta1: {
                          balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                          class(request: QueryClassRequest): Promise<QueryClassResponse>;
                          classes(request?: QueryClassesRequest): Promise<QueryClassesResponse>;
                          nFT(request: QueryNFTRequest): Promise<QueryNFTResponse>;
                          nFTs(request: QueryNFTsRequest): Promise<QueryNFTsResponse>;
                          owner(request: QueryOwnerRequest): Promise<QueryOwnerResponse>;
                          supply(request: QuerySupplyRequest): Promise<QuerySupplyResponse>;
                      };
                  };
                  orm: {
                      query: {
                          v1alpha1: {
                              get(request: GetRequest): Promise<GetResponse>;
                              list(request: ListRequest): Promise<ListResponse>;
                          };
                      };
                  };
                  params: {
                      v1beta1: {
                          params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                          subspaces(request?: QuerySubspacesRequest): Promise<QuerySubspacesResponse>;
                      };
                  };
                  slashing: {
                      v1beta1: {
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                          signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse>;
                          signingInfos(request?: QuerySigningInfosRequest): Promise<QuerySigningInfosResponse>;
                      };
                  };
                  staking: {
                      v1beta1: {
                          delegation(request: QueryDelegationRequest): Promise<QueryDelegationResponse>;
                          delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise<QueryDelegatorDelegationsResponse>;
                          delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise<QueryDelegatorUnbondingDelegationsResponse>;
                          delegatorValidator(request: QueryDelegatorValidatorRequest): Promise<QueryDelegatorValidatorResponse>;
                          delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                          historicalInfo(request: QueryHistoricalInfoRequest): Promise<QueryHistoricalInfoResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                          pool(request?: QueryPoolRequest): Promise<QueryPoolResponse>;
                          redelegations(request: QueryRedelegationsRequest): Promise<QueryRedelegationsResponse>;
                          unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise<QueryUnbondingDelegationResponse>;
                          validator(request: QueryValidatorRequest): Promise<QueryValidatorResponse>;
                          validatorDelegations(request: QueryValidatorDelegationsRequest): Promise<QueryValidatorDelegationsResponse>;
                          validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise<QueryValidatorUnbondingDelegationsResponse>;
                          validators(request: QueryValidatorsRequest): Promise<QueryValidatorsResponse>;
                      };
                  };
                  tx: {
                      v1beta1: {
                          broadcastTx(request: BroadcastTxRequest): Promise<BroadcastTxResponse>;
                          getBlockWithTxs(request: GetBlockWithTxsRequest): Promise<GetBlockWithTxsResponse>;
                          getTx(request: GetTxRequest): Promise<GetTxResponse>;
                          getTxsEvent(request: GetTxsEventRequest): Promise<GetTxsEventResponse>;
                          simulate(request: SimulateRequest): Promise<SimulateResponse>;
                          txDecode(request: TxDecodeRequest): Promise<TxDecodeResponse>;
                          txDecodeAmino(request: TxDecodeAminoRequest): Promise<TxDecodeAminoResponse>;
                          txEncode(request: TxEncodeRequest): Promise<TxEncodeResponse>;
                          txEncodeAmino(request: TxEncodeAminoRequest): Promise<TxEncodeAminoResponse>;
                      };
                  };
                  upgrade: {
                      v1beta1: {
                          appliedPlan(request: QueryAppliedPlanRequest): Promise<QueryAppliedPlanResponse>;
                          authority(request?: QueryAuthorityRequest): Promise<QueryAuthorityResponse>;
                          currentPlan(request?: QueryCurrentPlanRequest): Promise<QueryCurrentPlanResponse>;
                          moduleVersions(request: QueryModuleVersionsRequest): Promise<QueryModuleVersionsResponse>;
                          upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise<QueryUpgradedConsensusStateResponse>;
                      };
                  };
              };
              ixo: {
                  bonds: {
                      v1beta1: {
                          alphaMaximums(request: QueryAlphaMaximumsRequest): Promise<QueryAlphaMaximumsResponse>;
                          availableReserve(request: QueryAvailableReserveRequest): Promise<QueryAvailableReserveResponse>;
                          batch(request: QueryBatchRequest): Promise<QueryBatchResponse>;
                          bond(request: QueryBondRequest): Promise<QueryBondResponse>;
                          bonds(request?: QueryBondsRequest): Promise<QueryBondsResponse>;
                          bondsDetailed(request?: QueryBondsDetailedRequest): Promise<QueryBondsDetailedResponse>;
                          buyPrice(request: QueryBuyPriceRequest): Promise<QueryBuyPriceResponse>;
                          currentPrice(request: QueryCurrentPriceRequest): Promise<QueryCurrentPriceResponse>;
                          currentReserve(request: QueryCurrentReserveRequest): Promise<QueryCurrentReserveResponse>;
                          customPrice(request: QueryCustomPriceRequest): Promise<QueryCustomPriceResponse>;
                          lastBatch(request: QueryLastBatchRequest): Promise<QueryLastBatchResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                          sellReturn(request: QuerySellReturnRequest): Promise<QuerySellReturnResponse>;
                          swapReturn(request: QuerySwapReturnRequest): Promise<QuerySwapReturnResponse>;
                      };
                  };
                  claims: {
                      v1beta1: {
                          claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
                          claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
                          collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
                          collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
                          dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
                          disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
                          intent(request: QueryIntentRequest): Promise<QueryIntentResponse>;
                          intentList(request?: QueryIntentListRequest): Promise<QueryIntentListResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      };
                  };
                  entity: {
                      v1beta1: {
                          entity(request: QueryEntityRequest): Promise<QueryEntityResponse>;
                          entityIidDocument(request: QueryEntityIidDocumentRequest): Promise<QueryEntityIidDocumentResponse>;
                          entityList(request?: QueryEntityListRequest): Promise<QueryEntityListResponse>;
                          entityMetaData(request: QueryEntityMetadataRequest): Promise<QueryEntityMetadataResponse>;
                          entityVerified(request: QueryEntityVerifiedRequest): Promise<QueryEntityVerifiedResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      };
                  };
                  epochs: {
                      v1beta1: {
                          currentEpoch(request: QueryCurrentEpochRequest): Promise<QueryCurrentEpochResponse>;
                          epochInfos(request?: QueryEpochsInfoRequest): Promise<QueryEpochsInfoResponse>;
                      };
                  };
                  iid: {
                      v1beta1: {
                          iidDocument(request: QueryIidDocumentRequest): Promise<QueryIidDocumentResponse>;
                          iidDocuments(request?: QueryIidDocumentsRequest): Promise<QueryIidDocumentsResponse>;
                      };
                  };
                  mint: {
                      v1beta1: {
                          epochProvisions(request?: QueryEpochProvisionsRequest): Promise<QueryEpochProvisionsResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      };
                  };
                  smartaccount: {
                      v1beta1: {
                          getAuthenticator(request: GetAuthenticatorRequest): Promise<GetAuthenticatorResponse>;
                          getAuthenticators(request: GetAuthenticatorsRequest): Promise<GetAuthenticatorsResponse>;
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      };
                  };
                  token: {
                      v1beta1: {
                          params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                          tokenDoc(request: QueryTokenDocRequest): Promise<QueryTokenDocResponse>;
                          tokenList(request: QueryTokenListRequest): Promise<QueryTokenListResponse>;
                          tokenMetadata(request: QueryTokenMetadataRequest): Promise<QueryTokenMetadataResponse>;
                      };
                  };
              };
          }>);
      } = ...

      Type declaration

      • -
        createRPCMsgClient: ((__namedParameters: {
            rpc: Rpc;
        }) => Promise<{
            cosmos: {
                auth: {
                    v1beta1: MsgClientImpl;
                };
                authz: {
                    v1beta1: MsgClientImpl;
                };
                bank: {
                    v1beta1: MsgClientImpl;
                };
                circuit: {
                    v1: MsgClientImpl;
                };
                consensus: {
                    v1: MsgClientImpl;
                };
                crisis: {
                    v1beta1: MsgClientImpl;
                };
                distribution: {
                    v1beta1: MsgClientImpl;
                };
                evidence: {
                    v1beta1: MsgClientImpl;
                };
                feegrant: {
                    v1beta1: MsgClientImpl;
                };
                gov: {
                    v1: MsgClientImpl;
                    v1beta1: MsgClientImpl;
                };
                group: {
                    v1: MsgClientImpl;
                };
                mint: {
                    v1beta1: MsgClientImpl;
                };
                nft: {
                    v1beta1: MsgClientImpl;
                };
                slashing: {
                    v1beta1: MsgClientImpl;
                };
                staking: {
                    v1beta1: MsgClientImpl;
                };
                upgrade: {
                    v1beta1: MsgClientImpl;
                };
                vesting: {
                    v1beta1: MsgClientImpl;
                };
            };
            ixo: {
                bonds: {
                    v1beta1: MsgClientImpl;
                };
                claims: {
                    v1beta1: MsgClientImpl;
                };
                entity: {
                    v1beta1: MsgClientImpl;
                };
                iid: {
                    v1beta1: MsgClientImpl;
                };
                token: {
                    v1beta1: MsgClientImpl;
                };
            };
        }>)
        +
        createRPCMsgClient: ((__namedParameters: {
            rpc: Rpc;
        }) => Promise<{
            cosmos: {
                auth: {
                    v1beta1: MsgClientImpl;
                };
                authz: {
                    v1beta1: MsgClientImpl;
                };
                bank: {
                    v1beta1: MsgClientImpl;
                };
                circuit: {
                    v1: MsgClientImpl;
                };
                consensus: {
                    v1: MsgClientImpl;
                };
                crisis: {
                    v1beta1: MsgClientImpl;
                };
                distribution: {
                    v1beta1: MsgClientImpl;
                };
                evidence: {
                    v1beta1: MsgClientImpl;
                };
                feegrant: {
                    v1beta1: MsgClientImpl;
                };
                gov: {
                    v1: MsgClientImpl;
                    v1beta1: MsgClientImpl;
                };
                group: {
                    v1: MsgClientImpl;
                };
                mint: {
                    v1beta1: MsgClientImpl;
                };
                nft: {
                    v1beta1: MsgClientImpl;
                };
                slashing: {
                    v1beta1: MsgClientImpl;
                };
                staking: {
                    v1beta1: MsgClientImpl;
                };
                upgrade: {
                    v1beta1: MsgClientImpl;
                };
                vesting: {
                    v1beta1: MsgClientImpl;
                };
            };
            ixo: {
                bonds: {
                    v1beta1: MsgClientImpl;
                };
                claims: {
                    v1beta1: MsgClientImpl;
                };
                entity: {
                    v1beta1: MsgClientImpl;
                };
                iid: {
                    v1beta1: MsgClientImpl;
                };
                smartaccount: {
                    v1beta1: MsgClientImpl;
                };
                token: {
                    v1beta1: MsgClientImpl;
                };
            };
        }>)
          • -
          • (__namedParameters: {
                rpc: Rpc;
            }): Promise<{
                cosmos: {
                    auth: {
                        v1beta1: MsgClientImpl;
                    };
                    authz: {
                        v1beta1: MsgClientImpl;
                    };
                    bank: {
                        v1beta1: MsgClientImpl;
                    };
                    circuit: {
                        v1: MsgClientImpl;
                    };
                    consensus: {
                        v1: MsgClientImpl;
                    };
                    crisis: {
                        v1beta1: MsgClientImpl;
                    };
                    distribution: {
                        v1beta1: MsgClientImpl;
                    };
                    evidence: {
                        v1beta1: MsgClientImpl;
                    };
                    feegrant: {
                        v1beta1: MsgClientImpl;
                    };
                    gov: {
                        v1: MsgClientImpl;
                        v1beta1: MsgClientImpl;
                    };
                    group: {
                        v1: MsgClientImpl;
                    };
                    mint: {
                        v1beta1: MsgClientImpl;
                    };
                    nft: {
                        v1beta1: MsgClientImpl;
                    };
                    slashing: {
                        v1beta1: MsgClientImpl;
                    };
                    staking: {
                        v1beta1: MsgClientImpl;
                    };
                    upgrade: {
                        v1beta1: MsgClientImpl;
                    };
                    vesting: {
                        v1beta1: MsgClientImpl;
                    };
                };
                ixo: {
                    bonds: {
                        v1beta1: MsgClientImpl;
                    };
                    claims: {
                        v1beta1: MsgClientImpl;
                    };
                    entity: {
                        v1beta1: MsgClientImpl;
                    };
                    iid: {
                        v1beta1: MsgClientImpl;
                    };
                    token: {
                        v1beta1: MsgClientImpl;
                    };
                };
            }>
          • +
          • (__namedParameters: {
                rpc: Rpc;
            }): Promise<{
                cosmos: {
                    auth: {
                        v1beta1: MsgClientImpl;
                    };
                    authz: {
                        v1beta1: MsgClientImpl;
                    };
                    bank: {
                        v1beta1: MsgClientImpl;
                    };
                    circuit: {
                        v1: MsgClientImpl;
                    };
                    consensus: {
                        v1: MsgClientImpl;
                    };
                    crisis: {
                        v1beta1: MsgClientImpl;
                    };
                    distribution: {
                        v1beta1: MsgClientImpl;
                    };
                    evidence: {
                        v1beta1: MsgClientImpl;
                    };
                    feegrant: {
                        v1beta1: MsgClientImpl;
                    };
                    gov: {
                        v1: MsgClientImpl;
                        v1beta1: MsgClientImpl;
                    };
                    group: {
                        v1: MsgClientImpl;
                    };
                    mint: {
                        v1beta1: MsgClientImpl;
                    };
                    nft: {
                        v1beta1: MsgClientImpl;
                    };
                    slashing: {
                        v1beta1: MsgClientImpl;
                    };
                    staking: {
                        v1beta1: MsgClientImpl;
                    };
                    upgrade: {
                        v1beta1: MsgClientImpl;
                    };
                    vesting: {
                        v1beta1: MsgClientImpl;
                    };
                };
                ixo: {
                    bonds: {
                        v1beta1: MsgClientImpl;
                    };
                    claims: {
                        v1beta1: MsgClientImpl;
                    };
                    entity: {
                        v1beta1: MsgClientImpl;
                    };
                    iid: {
                        v1beta1: MsgClientImpl;
                    };
                    smartaccount: {
                        v1beta1: MsgClientImpl;
                    };
                    token: {
                        v1beta1: MsgClientImpl;
                    };
                };
            }>
          • Parameters

            @@ -35,13 +35,13 @@
            __namedParameters: {
             
            • rpc: Rpc
      -

      Returns Promise<{
          cosmos: {
              auth: {
                  v1beta1: MsgClientImpl;
              };
              authz: {
                  v1beta1: MsgClientImpl;
              };
              bank: {
                  v1beta1: MsgClientImpl;
              };
              circuit: {
                  v1: MsgClientImpl;
              };
              consensus: {
                  v1: MsgClientImpl;
              };
              crisis: {
                  v1beta1: MsgClientImpl;
              };
              distribution: {
                  v1beta1: MsgClientImpl;
              };
              evidence: {
                  v1beta1: MsgClientImpl;
              };
              feegrant: {
                  v1beta1: MsgClientImpl;
              };
              gov: {
                  v1: MsgClientImpl;
                  v1beta1: MsgClientImpl;
              };
              group: {
                  v1: MsgClientImpl;
              };
              mint: {
                  v1beta1: MsgClientImpl;
              };
              nft: {
                  v1beta1: MsgClientImpl;
              };
              slashing: {
                  v1beta1: MsgClientImpl;
              };
              staking: {
                  v1beta1: MsgClientImpl;
              };
              upgrade: {
                  v1beta1: MsgClientImpl;
              };
              vesting: {
                  v1beta1: MsgClientImpl;
              };
          };
          ixo: {
              bonds: {
                  v1beta1: MsgClientImpl;
              };
              claims: {
                  v1beta1: MsgClientImpl;
              };
              entity: {
                  v1beta1: MsgClientImpl;
              };
              iid: {
                  v1beta1: MsgClientImpl;
              };
              token: {
                  v1beta1: MsgClientImpl;
              };
          };
      }>

  • +

    Returns Promise<{
        cosmos: {
            auth: {
                v1beta1: MsgClientImpl;
            };
            authz: {
                v1beta1: MsgClientImpl;
            };
            bank: {
                v1beta1: MsgClientImpl;
            };
            circuit: {
                v1: MsgClientImpl;
            };
            consensus: {
                v1: MsgClientImpl;
            };
            crisis: {
                v1beta1: MsgClientImpl;
            };
            distribution: {
                v1beta1: MsgClientImpl;
            };
            evidence: {
                v1beta1: MsgClientImpl;
            };
            feegrant: {
                v1beta1: MsgClientImpl;
            };
            gov: {
                v1: MsgClientImpl;
                v1beta1: MsgClientImpl;
            };
            group: {
                v1: MsgClientImpl;
            };
            mint: {
                v1beta1: MsgClientImpl;
            };
            nft: {
                v1beta1: MsgClientImpl;
            };
            slashing: {
                v1beta1: MsgClientImpl;
            };
            staking: {
                v1beta1: MsgClientImpl;
            };
            upgrade: {
                v1beta1: MsgClientImpl;
            };
            vesting: {
                v1beta1: MsgClientImpl;
            };
        };
        ixo: {
            bonds: {
                v1beta1: MsgClientImpl;
            };
            claims: {
                v1beta1: MsgClientImpl;
            };
            entity: {
                v1beta1: MsgClientImpl;
            };
            iid: {
                v1beta1: MsgClientImpl;
            };
            smartaccount: {
                v1beta1: MsgClientImpl;
            };
            token: {
                v1beta1: MsgClientImpl;
            };
        };
    }>

  • -
    createRPCQueryClient: ((__namedParameters: {
        rpcEndpoint: string | HttpEndpoint;
    }) => Promise<{
        cosmos: {
            app: {
                v1alpha1: {
                    config(request?: QueryConfigRequest): Promise<QueryConfigResponse>;
                };
            };
            auth: {
                v1beta1: {
                    account(request: QueryAccountRequest): Promise<QueryAccountResponse>;
                    accountAddressByID(request: QueryAccountAddressByIDRequest): Promise<QueryAccountAddressByIDResponse>;
                    accountInfo(request: QueryAccountInfoRequest): Promise<QueryAccountInfoResponse>;
                    accounts(request?: QueryAccountsRequest): Promise<QueryAccountsResponse>;
                    addressBytesToString(request: AddressBytesToStringRequest): Promise<AddressBytesToStringResponse>;
                    addressStringToBytes(request: AddressStringToBytesRequest): Promise<AddressStringToBytesResponse>;
                    bech32Prefix(request?: Bech32PrefixRequest): Promise<Bech32PrefixResponse>;
                    moduleAccountByName(request: QueryModuleAccountByNameRequest): Promise<QueryModuleAccountByNameResponse>;
                    moduleAccounts(request?: QueryModuleAccountsRequest): Promise<QueryModuleAccountsResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                };
            };
            authz: {
                v1beta1: {
                    granteeGrants(request: QueryGranteeGrantsRequest): Promise<QueryGranteeGrantsResponse>;
                    granterGrants(request: QueryGranterGrantsRequest): Promise<QueryGranterGrantsResponse>;
                    grants(request: QueryGrantsRequest): Promise<QueryGrantsResponse>;
                };
            };
            autocli: {
                v1: {
                    appOptions(request?: AppOptionsRequest): Promise<AppOptionsResponse>;
                };
            };
            bank: {
                v1beta1: {
                    allBalances(request: QueryAllBalancesRequest): Promise<QueryAllBalancesResponse>;
                    balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                    denomMetadata(request: QueryDenomMetadataRequest): Promise<QueryDenomMetadataResponse>;
                    denomMetadataByQueryString(request: QueryDenomMetadataByQueryStringRequest): Promise<QueryDenomMetadataByQueryStringResponse>;
                    denomOwners(request: QueryDenomOwnersRequest): Promise<QueryDenomOwnersResponse>;
                    denomOwnersByQuery(request: QueryDenomOwnersByQueryRequest): Promise<QueryDenomOwnersByQueryResponse>;
                    denomsMetadata(request?: QueryDenomsMetadataRequest): Promise<QueryDenomsMetadataResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    sendEnabled(request: QuerySendEnabledRequest): Promise<QuerySendEnabledResponse>;
                    spendableBalanceByDenom(request: QuerySpendableBalanceByDenomRequest): Promise<QuerySpendableBalanceByDenomResponse>;
                    spendableBalances(request: QuerySpendableBalancesRequest): Promise<QuerySpendableBalancesResponse>;
                    supplyOf(request: QuerySupplyOfRequest): Promise<QuerySupplyOfResponse>;
                    totalSupply(request?: QueryTotalSupplyRequest): Promise<QueryTotalSupplyResponse>;
                };
            };
            base: {
                node: {
                    v1beta1: {
                        config(request?: ConfigRequest): Promise<ConfigResponse>;
                        status(request?: StatusRequest): Promise<StatusResponse>;
                    };
                };
                tendermint: {
                    v1beta1: {
                        aBCIQuery(request: ABCIQueryRequest): Promise<ABCIQueryResponse>;
                        getBlockByHeight(request: GetBlockByHeightRequest): Promise<GetBlockByHeightResponse>;
                        getLatestBlock(request?: GetLatestBlockRequest): Promise<GetLatestBlockResponse>;
                        getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise<GetLatestValidatorSetResponse>;
                        getNodeInfo(request?: GetNodeInfoRequest): Promise<GetNodeInfoResponse>;
                        getSyncing(request?: GetSyncingRequest): Promise<GetSyncingResponse>;
                        getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise<GetValidatorSetByHeightResponse>;
                    };
                };
            };
            circuit: {
                v1: {
                    account(request: QueryAccountRequest): Promise<AccountResponse>;
                    accounts(request?: QueryAccountsRequest): Promise<AccountsResponse>;
                    disabledList(request?: QueryDisabledListRequest): Promise<DisabledListResponse>;
                };
            };
            consensus: {
                v1: {
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                };
            };
            distribution: {
                v1beta1: {
                    communityPool(request?: QueryCommunityPoolRequest): Promise<QueryCommunityPoolResponse>;
                    delegationRewards(request: QueryDelegationRewardsRequest): Promise<QueryDelegationRewardsResponse>;
                    delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise<QueryDelegationTotalRewardsResponse>;
                    delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                    delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise<QueryDelegatorWithdrawAddressResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    validatorCommission(request: QueryValidatorCommissionRequest): Promise<QueryValidatorCommissionResponse>;
                    validatorDistributionInfo(request: QueryValidatorDistributionInfoRequest): Promise<QueryValidatorDistributionInfoResponse>;
                    validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise<QueryValidatorOutstandingRewardsResponse>;
                    validatorSlashes(request: QueryValidatorSlashesRequest): Promise<QueryValidatorSlashesResponse>;
                };
            };
            evidence: {
                v1beta1: {
                    allEvidence(request?: QueryAllEvidenceRequest): Promise<QueryAllEvidenceResponse>;
                    evidence(request: QueryEvidenceRequest): Promise<QueryEvidenceResponse>;
                };
            };
            feegrant: {
                v1beta1: {
                    allowance(request: QueryAllowanceRequest): Promise<QueryAllowanceResponse>;
                    allowances(request: QueryAllowancesRequest): Promise<QueryAllowancesResponse>;
                    allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise<QueryAllowancesByGranterResponse>;
                };
            };
            gov: {
                v1: {
                    constitution(request?: QueryConstitutionRequest): Promise<QueryConstitutionResponse>;
                    deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                    deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                    params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                    proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                    proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                    tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                    vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                    votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                };
                v1beta1: {
                    deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                    deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                    params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                    proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                    proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                    tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                    vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                    votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                };
            };
            group: {
                v1: {
                    groupInfo(request: QueryGroupInfoRequest): Promise<QueryGroupInfoResponse>;
                    groupMembers(request: QueryGroupMembersRequest): Promise<QueryGroupMembersResponse>;
                    groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise<QueryGroupPoliciesByAdminResponse>;
                    groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise<QueryGroupPoliciesByGroupResponse>;
                    groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise<QueryGroupPolicyInfoResponse>;
                    groups(request?: QueryGroupsRequest): Promise<QueryGroupsResponse>;
                    groupsByAdmin(request: QueryGroupsByAdminRequest): Promise<QueryGroupsByAdminResponse>;
                    groupsByMember(request: QueryGroupsByMemberRequest): Promise<QueryGroupsByMemberResponse>;
                    proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                    proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise<QueryProposalsByGroupPolicyResponse>;
                    tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                    voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise<QueryVoteByProposalVoterResponse>;
                    votesByProposal(request: QueryVotesByProposalRequest): Promise<QueryVotesByProposalResponse>;
                    votesByVoter(request: QueryVotesByVoterRequest): Promise<QueryVotesByVoterResponse>;
                };
            };
            mint: {
                v1beta1: {
                    annualProvisions(request?: QueryAnnualProvisionsRequest): Promise<QueryAnnualProvisionsResponse>;
                    inflation(request?: QueryInflationRequest): Promise<QueryInflationResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                };
            };
            nft: {
                v1beta1: {
                    balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                    class(request: QueryClassRequest): Promise<QueryClassResponse>;
                    classes(request?: QueryClassesRequest): Promise<QueryClassesResponse>;
                    nFT(request: QueryNFTRequest): Promise<QueryNFTResponse>;
                    nFTs(request: QueryNFTsRequest): Promise<QueryNFTsResponse>;
                    owner(request: QueryOwnerRequest): Promise<QueryOwnerResponse>;
                    supply(request: QuerySupplyRequest): Promise<QuerySupplyResponse>;
                };
            };
            orm: {
                query: {
                    v1alpha1: {
                        get(request: GetRequest): Promise<GetResponse>;
                        list(request: ListRequest): Promise<ListResponse>;
                    };
                };
            };
            params: {
                v1beta1: {
                    params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                    subspaces(request?: QuerySubspacesRequest): Promise<QuerySubspacesResponse>;
                };
            };
            slashing: {
                v1beta1: {
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse>;
                    signingInfos(request?: QuerySigningInfosRequest): Promise<QuerySigningInfosResponse>;
                };
            };
            staking: {
                v1beta1: {
                    delegation(request: QueryDelegationRequest): Promise<QueryDelegationResponse>;
                    delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise<QueryDelegatorDelegationsResponse>;
                    delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise<QueryDelegatorUnbondingDelegationsResponse>;
                    delegatorValidator(request: QueryDelegatorValidatorRequest): Promise<QueryDelegatorValidatorResponse>;
                    delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                    historicalInfo(request: QueryHistoricalInfoRequest): Promise<QueryHistoricalInfoResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    pool(request?: QueryPoolRequest): Promise<QueryPoolResponse>;
                    redelegations(request: QueryRedelegationsRequest): Promise<QueryRedelegationsResponse>;
                    unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise<QueryUnbondingDelegationResponse>;
                    validator(request: QueryValidatorRequest): Promise<QueryValidatorResponse>;
                    validatorDelegations(request: QueryValidatorDelegationsRequest): Promise<QueryValidatorDelegationsResponse>;
                    validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise<QueryValidatorUnbondingDelegationsResponse>;
                    validators(request: QueryValidatorsRequest): Promise<QueryValidatorsResponse>;
                };
            };
            tx: {
                v1beta1: {
                    broadcastTx(request: BroadcastTxRequest): Promise<BroadcastTxResponse>;
                    getBlockWithTxs(request: GetBlockWithTxsRequest): Promise<GetBlockWithTxsResponse>;
                    getTx(request: GetTxRequest): Promise<GetTxResponse>;
                    getTxsEvent(request: GetTxsEventRequest): Promise<GetTxsEventResponse>;
                    simulate(request: SimulateRequest): Promise<SimulateResponse>;
                    txDecode(request: TxDecodeRequest): Promise<TxDecodeResponse>;
                    txDecodeAmino(request: TxDecodeAminoRequest): Promise<TxDecodeAminoResponse>;
                    txEncode(request: TxEncodeRequest): Promise<TxEncodeResponse>;
                    txEncodeAmino(request: TxEncodeAminoRequest): Promise<TxEncodeAminoResponse>;
                };
            };
            upgrade: {
                v1beta1: {
                    appliedPlan(request: QueryAppliedPlanRequest): Promise<QueryAppliedPlanResponse>;
                    authority(request?: QueryAuthorityRequest): Promise<QueryAuthorityResponse>;
                    currentPlan(request?: QueryCurrentPlanRequest): Promise<QueryCurrentPlanResponse>;
                    moduleVersions(request: QueryModuleVersionsRequest): Promise<QueryModuleVersionsResponse>;
                    upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise<QueryUpgradedConsensusStateResponse>;
                };
            };
        };
        ixo: {
            bonds: {
                v1beta1: {
                    alphaMaximums(request: QueryAlphaMaximumsRequest): Promise<QueryAlphaMaximumsResponse>;
                    availableReserve(request: QueryAvailableReserveRequest): Promise<QueryAvailableReserveResponse>;
                    batch(request: QueryBatchRequest): Promise<QueryBatchResponse>;
                    bond(request: QueryBondRequest): Promise<QueryBondResponse>;
                    bonds(request?: QueryBondsRequest): Promise<QueryBondsResponse>;
                    bondsDetailed(request?: QueryBondsDetailedRequest): Promise<QueryBondsDetailedResponse>;
                    buyPrice(request: QueryBuyPriceRequest): Promise<QueryBuyPriceResponse>;
                    currentPrice(request: QueryCurrentPriceRequest): Promise<QueryCurrentPriceResponse>;
                    currentReserve(request: QueryCurrentReserveRequest): Promise<QueryCurrentReserveResponse>;
                    customPrice(request: QueryCustomPriceRequest): Promise<QueryCustomPriceResponse>;
                    lastBatch(request: QueryLastBatchRequest): Promise<QueryLastBatchResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    sellReturn(request: QuerySellReturnRequest): Promise<QuerySellReturnResponse>;
                    swapReturn(request: QuerySwapReturnRequest): Promise<QuerySwapReturnResponse>;
                };
            };
            claims: {
                v1beta1: {
                    claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
                    claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
                    collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
                    collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
                    dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
                    disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                };
            };
            entity: {
                v1beta1: {
                    entity(request: QueryEntityRequest): Promise<QueryEntityResponse>;
                    entityIidDocument(request: QueryEntityIidDocumentRequest): Promise<QueryEntityIidDocumentResponse>;
                    entityList(request?: QueryEntityListRequest): Promise<QueryEntityListResponse>;
                    entityMetaData(request: QueryEntityMetadataRequest): Promise<QueryEntityMetadataResponse>;
                    entityVerified(request: QueryEntityVerifiedRequest): Promise<QueryEntityVerifiedResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                };
            };
            iid: {
                v1beta1: {
                    iidDocument(request: QueryIidDocumentRequest): Promise<QueryIidDocumentResponse>;
                    iidDocuments(request?: QueryIidDocumentsRequest): Promise<QueryIidDocumentsResponse>;
                };
            };
            token: {
                v1beta1: {
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    tokenDoc(request: QueryTokenDocRequest): Promise<QueryTokenDocResponse>;
                    tokenList(request: QueryTokenListRequest): Promise<QueryTokenListResponse>;
                    tokenMetadata(request: QueryTokenMetadataRequest): Promise<QueryTokenMetadataResponse>;
                };
            };
        };
    }>)
    +
    createRPCQueryClient: ((__namedParameters: {
        rpcEndpoint: string | HttpEndpoint;
    }) => Promise<{
        cosmos: {
            app: {
                v1alpha1: {
                    config(request?: QueryConfigRequest): Promise<QueryConfigResponse>;
                };
            };
            auth: {
                v1beta1: {
                    account(request: QueryAccountRequest): Promise<QueryAccountResponse>;
                    accountAddressByID(request: QueryAccountAddressByIDRequest): Promise<QueryAccountAddressByIDResponse>;
                    accountInfo(request: QueryAccountInfoRequest): Promise<QueryAccountInfoResponse>;
                    accounts(request?: QueryAccountsRequest): Promise<QueryAccountsResponse>;
                    addressBytesToString(request: AddressBytesToStringRequest): Promise<AddressBytesToStringResponse>;
                    addressStringToBytes(request: AddressStringToBytesRequest): Promise<AddressStringToBytesResponse>;
                    bech32Prefix(request?: Bech32PrefixRequest): Promise<Bech32PrefixResponse>;
                    moduleAccountByName(request: QueryModuleAccountByNameRequest): Promise<QueryModuleAccountByNameResponse>;
                    moduleAccounts(request?: QueryModuleAccountsRequest): Promise<QueryModuleAccountsResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                };
            };
            authz: {
                v1beta1: {
                    granteeGrants(request: QueryGranteeGrantsRequest): Promise<QueryGranteeGrantsResponse>;
                    granterGrants(request: QueryGranterGrantsRequest): Promise<QueryGranterGrantsResponse>;
                    grants(request: QueryGrantsRequest): Promise<QueryGrantsResponse>;
                };
            };
            autocli: {
                v1: {
                    appOptions(request?: AppOptionsRequest): Promise<AppOptionsResponse>;
                };
            };
            bank: {
                v1beta1: {
                    allBalances(request: QueryAllBalancesRequest): Promise<QueryAllBalancesResponse>;
                    balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                    denomMetadata(request: QueryDenomMetadataRequest): Promise<QueryDenomMetadataResponse>;
                    denomMetadataByQueryString(request: QueryDenomMetadataByQueryStringRequest): Promise<QueryDenomMetadataByQueryStringResponse>;
                    denomOwners(request: QueryDenomOwnersRequest): Promise<QueryDenomOwnersResponse>;
                    denomOwnersByQuery(request: QueryDenomOwnersByQueryRequest): Promise<QueryDenomOwnersByQueryResponse>;
                    denomsMetadata(request?: QueryDenomsMetadataRequest): Promise<QueryDenomsMetadataResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    sendEnabled(request: QuerySendEnabledRequest): Promise<QuerySendEnabledResponse>;
                    spendableBalanceByDenom(request: QuerySpendableBalanceByDenomRequest): Promise<QuerySpendableBalanceByDenomResponse>;
                    spendableBalances(request: QuerySpendableBalancesRequest): Promise<QuerySpendableBalancesResponse>;
                    supplyOf(request: QuerySupplyOfRequest): Promise<QuerySupplyOfResponse>;
                    totalSupply(request?: QueryTotalSupplyRequest): Promise<QueryTotalSupplyResponse>;
                };
            };
            base: {
                node: {
                    v1beta1: {
                        config(request?: ConfigRequest): Promise<ConfigResponse>;
                        status(request?: StatusRequest): Promise<StatusResponse>;
                    };
                };
                tendermint: {
                    v1beta1: {
                        aBCIQuery(request: ABCIQueryRequest): Promise<ABCIQueryResponse>;
                        getBlockByHeight(request: GetBlockByHeightRequest): Promise<GetBlockByHeightResponse>;
                        getLatestBlock(request?: GetLatestBlockRequest): Promise<GetLatestBlockResponse>;
                        getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise<GetLatestValidatorSetResponse>;
                        getNodeInfo(request?: GetNodeInfoRequest): Promise<GetNodeInfoResponse>;
                        getSyncing(request?: GetSyncingRequest): Promise<GetSyncingResponse>;
                        getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise<GetValidatorSetByHeightResponse>;
                    };
                };
            };
            circuit: {
                v1: {
                    account(request: QueryAccountRequest): Promise<AccountResponse>;
                    accounts(request?: QueryAccountsRequest): Promise<AccountsResponse>;
                    disabledList(request?: QueryDisabledListRequest): Promise<DisabledListResponse>;
                };
            };
            consensus: {
                v1: {
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                };
            };
            distribution: {
                v1beta1: {
                    communityPool(request?: QueryCommunityPoolRequest): Promise<QueryCommunityPoolResponse>;
                    delegationRewards(request: QueryDelegationRewardsRequest): Promise<QueryDelegationRewardsResponse>;
                    delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise<QueryDelegationTotalRewardsResponse>;
                    delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                    delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise<QueryDelegatorWithdrawAddressResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    validatorCommission(request: QueryValidatorCommissionRequest): Promise<QueryValidatorCommissionResponse>;
                    validatorDistributionInfo(request: QueryValidatorDistributionInfoRequest): Promise<QueryValidatorDistributionInfoResponse>;
                    validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise<QueryValidatorOutstandingRewardsResponse>;
                    validatorSlashes(request: QueryValidatorSlashesRequest): Promise<QueryValidatorSlashesResponse>;
                };
            };
            evidence: {
                v1beta1: {
                    allEvidence(request?: QueryAllEvidenceRequest): Promise<QueryAllEvidenceResponse>;
                    evidence(request: QueryEvidenceRequest): Promise<QueryEvidenceResponse>;
                };
            };
            feegrant: {
                v1beta1: {
                    allowance(request: QueryAllowanceRequest): Promise<QueryAllowanceResponse>;
                    allowances(request: QueryAllowancesRequest): Promise<QueryAllowancesResponse>;
                    allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise<QueryAllowancesByGranterResponse>;
                };
            };
            gov: {
                v1: {
                    constitution(request?: QueryConstitutionRequest): Promise<QueryConstitutionResponse>;
                    deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                    deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                    params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                    proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                    proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                    tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                    vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                    votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                };
                v1beta1: {
                    deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                    deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                    params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                    proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                    proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                    tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                    vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                    votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                };
            };
            group: {
                v1: {
                    groupInfo(request: QueryGroupInfoRequest): Promise<QueryGroupInfoResponse>;
                    groupMembers(request: QueryGroupMembersRequest): Promise<QueryGroupMembersResponse>;
                    groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise<QueryGroupPoliciesByAdminResponse>;
                    groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise<QueryGroupPoliciesByGroupResponse>;
                    groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise<QueryGroupPolicyInfoResponse>;
                    groups(request?: QueryGroupsRequest): Promise<QueryGroupsResponse>;
                    groupsByAdmin(request: QueryGroupsByAdminRequest): Promise<QueryGroupsByAdminResponse>;
                    groupsByMember(request: QueryGroupsByMemberRequest): Promise<QueryGroupsByMemberResponse>;
                    proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                    proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise<QueryProposalsByGroupPolicyResponse>;
                    tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                    voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise<QueryVoteByProposalVoterResponse>;
                    votesByProposal(request: QueryVotesByProposalRequest): Promise<QueryVotesByProposalResponse>;
                    votesByVoter(request: QueryVotesByVoterRequest): Promise<QueryVotesByVoterResponse>;
                };
            };
            mint: {
                v1beta1: {
                    annualProvisions(request?: QueryAnnualProvisionsRequest): Promise<QueryAnnualProvisionsResponse>;
                    inflation(request?: QueryInflationRequest): Promise<QueryInflationResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                };
            };
            nft: {
                v1beta1: {
                    balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                    class(request: QueryClassRequest): Promise<QueryClassResponse>;
                    classes(request?: QueryClassesRequest): Promise<QueryClassesResponse>;
                    nFT(request: QueryNFTRequest): Promise<QueryNFTResponse>;
                    nFTs(request: QueryNFTsRequest): Promise<QueryNFTsResponse>;
                    owner(request: QueryOwnerRequest): Promise<QueryOwnerResponse>;
                    supply(request: QuerySupplyRequest): Promise<QuerySupplyResponse>;
                };
            };
            orm: {
                query: {
                    v1alpha1: {
                        get(request: GetRequest): Promise<GetResponse>;
                        list(request: ListRequest): Promise<ListResponse>;
                    };
                };
            };
            params: {
                v1beta1: {
                    params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                    subspaces(request?: QuerySubspacesRequest): Promise<QuerySubspacesResponse>;
                };
            };
            slashing: {
                v1beta1: {
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse>;
                    signingInfos(request?: QuerySigningInfosRequest): Promise<QuerySigningInfosResponse>;
                };
            };
            staking: {
                v1beta1: {
                    delegation(request: QueryDelegationRequest): Promise<QueryDelegationResponse>;
                    delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise<QueryDelegatorDelegationsResponse>;
                    delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise<QueryDelegatorUnbondingDelegationsResponse>;
                    delegatorValidator(request: QueryDelegatorValidatorRequest): Promise<QueryDelegatorValidatorResponse>;
                    delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                    historicalInfo(request: QueryHistoricalInfoRequest): Promise<QueryHistoricalInfoResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    pool(request?: QueryPoolRequest): Promise<QueryPoolResponse>;
                    redelegations(request: QueryRedelegationsRequest): Promise<QueryRedelegationsResponse>;
                    unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise<QueryUnbondingDelegationResponse>;
                    validator(request: QueryValidatorRequest): Promise<QueryValidatorResponse>;
                    validatorDelegations(request: QueryValidatorDelegationsRequest): Promise<QueryValidatorDelegationsResponse>;
                    validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise<QueryValidatorUnbondingDelegationsResponse>;
                    validators(request: QueryValidatorsRequest): Promise<QueryValidatorsResponse>;
                };
            };
            tx: {
                v1beta1: {
                    broadcastTx(request: BroadcastTxRequest): Promise<BroadcastTxResponse>;
                    getBlockWithTxs(request: GetBlockWithTxsRequest): Promise<GetBlockWithTxsResponse>;
                    getTx(request: GetTxRequest): Promise<GetTxResponse>;
                    getTxsEvent(request: GetTxsEventRequest): Promise<GetTxsEventResponse>;
                    simulate(request: SimulateRequest): Promise<SimulateResponse>;
                    txDecode(request: TxDecodeRequest): Promise<TxDecodeResponse>;
                    txDecodeAmino(request: TxDecodeAminoRequest): Promise<TxDecodeAminoResponse>;
                    txEncode(request: TxEncodeRequest): Promise<TxEncodeResponse>;
                    txEncodeAmino(request: TxEncodeAminoRequest): Promise<TxEncodeAminoResponse>;
                };
            };
            upgrade: {
                v1beta1: {
                    appliedPlan(request: QueryAppliedPlanRequest): Promise<QueryAppliedPlanResponse>;
                    authority(request?: QueryAuthorityRequest): Promise<QueryAuthorityResponse>;
                    currentPlan(request?: QueryCurrentPlanRequest): Promise<QueryCurrentPlanResponse>;
                    moduleVersions(request: QueryModuleVersionsRequest): Promise<QueryModuleVersionsResponse>;
                    upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise<QueryUpgradedConsensusStateResponse>;
                };
            };
        };
        ixo: {
            bonds: {
                v1beta1: {
                    alphaMaximums(request: QueryAlphaMaximumsRequest): Promise<QueryAlphaMaximumsResponse>;
                    availableReserve(request: QueryAvailableReserveRequest): Promise<QueryAvailableReserveResponse>;
                    batch(request: QueryBatchRequest): Promise<QueryBatchResponse>;
                    bond(request: QueryBondRequest): Promise<QueryBondResponse>;
                    bonds(request?: QueryBondsRequest): Promise<QueryBondsResponse>;
                    bondsDetailed(request?: QueryBondsDetailedRequest): Promise<QueryBondsDetailedResponse>;
                    buyPrice(request: QueryBuyPriceRequest): Promise<QueryBuyPriceResponse>;
                    currentPrice(request: QueryCurrentPriceRequest): Promise<QueryCurrentPriceResponse>;
                    currentReserve(request: QueryCurrentReserveRequest): Promise<QueryCurrentReserveResponse>;
                    customPrice(request: QueryCustomPriceRequest): Promise<QueryCustomPriceResponse>;
                    lastBatch(request: QueryLastBatchRequest): Promise<QueryLastBatchResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    sellReturn(request: QuerySellReturnRequest): Promise<QuerySellReturnResponse>;
                    swapReturn(request: QuerySwapReturnRequest): Promise<QuerySwapReturnResponse>;
                };
            };
            claims: {
                v1beta1: {
                    claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
                    claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
                    collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
                    collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
                    dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
                    disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
                    intent(request: QueryIntentRequest): Promise<QueryIntentResponse>;
                    intentList(request?: QueryIntentListRequest): Promise<QueryIntentListResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                };
            };
            entity: {
                v1beta1: {
                    entity(request: QueryEntityRequest): Promise<QueryEntityResponse>;
                    entityIidDocument(request: QueryEntityIidDocumentRequest): Promise<QueryEntityIidDocumentResponse>;
                    entityList(request?: QueryEntityListRequest): Promise<QueryEntityListResponse>;
                    entityMetaData(request: QueryEntityMetadataRequest): Promise<QueryEntityMetadataResponse>;
                    entityVerified(request: QueryEntityVerifiedRequest): Promise<QueryEntityVerifiedResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                };
            };
            epochs: {
                v1beta1: {
                    currentEpoch(request: QueryCurrentEpochRequest): Promise<QueryCurrentEpochResponse>;
                    epochInfos(request?: QueryEpochsInfoRequest): Promise<QueryEpochsInfoResponse>;
                };
            };
            iid: {
                v1beta1: {
                    iidDocument(request: QueryIidDocumentRequest): Promise<QueryIidDocumentResponse>;
                    iidDocuments(request?: QueryIidDocumentsRequest): Promise<QueryIidDocumentsResponse>;
                };
            };
            mint: {
                v1beta1: {
                    epochProvisions(request?: QueryEpochProvisionsRequest): Promise<QueryEpochProvisionsResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                };
            };
            smartaccount: {
                v1beta1: {
                    getAuthenticator(request: GetAuthenticatorRequest): Promise<GetAuthenticatorResponse>;
                    getAuthenticators(request: GetAuthenticatorsRequest): Promise<GetAuthenticatorsResponse>;
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                };
            };
            token: {
                v1beta1: {
                    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    tokenDoc(request: QueryTokenDocRequest): Promise<QueryTokenDocResponse>;
                    tokenList(request: QueryTokenListRequest): Promise<QueryTokenListResponse>;
                    tokenMetadata(request: QueryTokenMetadataRequest): Promise<QueryTokenMetadataResponse>;
                };
            };
        };
    }>)
      • -
      • (__namedParameters: {
            rpcEndpoint: string | HttpEndpoint;
        }): Promise<{
            cosmos: {
                app: {
                    v1alpha1: {
                        config(request?: QueryConfigRequest): Promise<QueryConfigResponse>;
                    };
                };
                auth: {
                    v1beta1: {
                        account(request: QueryAccountRequest): Promise<QueryAccountResponse>;
                        accountAddressByID(request: QueryAccountAddressByIDRequest): Promise<QueryAccountAddressByIDResponse>;
                        accountInfo(request: QueryAccountInfoRequest): Promise<QueryAccountInfoResponse>;
                        accounts(request?: QueryAccountsRequest): Promise<QueryAccountsResponse>;
                        addressBytesToString(request: AddressBytesToStringRequest): Promise<AddressBytesToStringResponse>;
                        addressStringToBytes(request: AddressStringToBytesRequest): Promise<AddressStringToBytesResponse>;
                        bech32Prefix(request?: Bech32PrefixRequest): Promise<Bech32PrefixResponse>;
                        moduleAccountByName(request: QueryModuleAccountByNameRequest): Promise<QueryModuleAccountByNameResponse>;
                        moduleAccounts(request?: QueryModuleAccountsRequest): Promise<QueryModuleAccountsResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    };
                };
                authz: {
                    v1beta1: {
                        granteeGrants(request: QueryGranteeGrantsRequest): Promise<QueryGranteeGrantsResponse>;
                        granterGrants(request: QueryGranterGrantsRequest): Promise<QueryGranterGrantsResponse>;
                        grants(request: QueryGrantsRequest): Promise<QueryGrantsResponse>;
                    };
                };
                autocli: {
                    v1: {
                        appOptions(request?: AppOptionsRequest): Promise<AppOptionsResponse>;
                    };
                };
                bank: {
                    v1beta1: {
                        allBalances(request: QueryAllBalancesRequest): Promise<QueryAllBalancesResponse>;
                        balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                        denomMetadata(request: QueryDenomMetadataRequest): Promise<QueryDenomMetadataResponse>;
                        denomMetadataByQueryString(request: QueryDenomMetadataByQueryStringRequest): Promise<QueryDenomMetadataByQueryStringResponse>;
                        denomOwners(request: QueryDenomOwnersRequest): Promise<QueryDenomOwnersResponse>;
                        denomOwnersByQuery(request: QueryDenomOwnersByQueryRequest): Promise<QueryDenomOwnersByQueryResponse>;
                        denomsMetadata(request?: QueryDenomsMetadataRequest): Promise<QueryDenomsMetadataResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                        sendEnabled(request: QuerySendEnabledRequest): Promise<QuerySendEnabledResponse>;
                        spendableBalanceByDenom(request: QuerySpendableBalanceByDenomRequest): Promise<QuerySpendableBalanceByDenomResponse>;
                        spendableBalances(request: QuerySpendableBalancesRequest): Promise<QuerySpendableBalancesResponse>;
                        supplyOf(request: QuerySupplyOfRequest): Promise<QuerySupplyOfResponse>;
                        totalSupply(request?: QueryTotalSupplyRequest): Promise<QueryTotalSupplyResponse>;
                    };
                };
                base: {
                    node: {
                        v1beta1: {
                            config(request?: ConfigRequest): Promise<ConfigResponse>;
                            status(request?: StatusRequest): Promise<StatusResponse>;
                        };
                    };
                    tendermint: {
                        v1beta1: {
                            aBCIQuery(request: ABCIQueryRequest): Promise<ABCIQueryResponse>;
                            getBlockByHeight(request: GetBlockByHeightRequest): Promise<GetBlockByHeightResponse>;
                            getLatestBlock(request?: GetLatestBlockRequest): Promise<GetLatestBlockResponse>;
                            getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise<GetLatestValidatorSetResponse>;
                            getNodeInfo(request?: GetNodeInfoRequest): Promise<GetNodeInfoResponse>;
                            getSyncing(request?: GetSyncingRequest): Promise<GetSyncingResponse>;
                            getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise<GetValidatorSetByHeightResponse>;
                        };
                    };
                };
                circuit: {
                    v1: {
                        account(request: QueryAccountRequest): Promise<AccountResponse>;
                        accounts(request?: QueryAccountsRequest): Promise<AccountsResponse>;
                        disabledList(request?: QueryDisabledListRequest): Promise<DisabledListResponse>;
                    };
                };
                consensus: {
                    v1: {
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    };
                };
                distribution: {
                    v1beta1: {
                        communityPool(request?: QueryCommunityPoolRequest): Promise<QueryCommunityPoolResponse>;
                        delegationRewards(request: QueryDelegationRewardsRequest): Promise<QueryDelegationRewardsResponse>;
                        delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise<QueryDelegationTotalRewardsResponse>;
                        delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                        delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise<QueryDelegatorWithdrawAddressResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                        validatorCommission(request: QueryValidatorCommissionRequest): Promise<QueryValidatorCommissionResponse>;
                        validatorDistributionInfo(request: QueryValidatorDistributionInfoRequest): Promise<QueryValidatorDistributionInfoResponse>;
                        validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise<QueryValidatorOutstandingRewardsResponse>;
                        validatorSlashes(request: QueryValidatorSlashesRequest): Promise<QueryValidatorSlashesResponse>;
                    };
                };
                evidence: {
                    v1beta1: {
                        allEvidence(request?: QueryAllEvidenceRequest): Promise<QueryAllEvidenceResponse>;
                        evidence(request: QueryEvidenceRequest): Promise<QueryEvidenceResponse>;
                    };
                };
                feegrant: {
                    v1beta1: {
                        allowance(request: QueryAllowanceRequest): Promise<QueryAllowanceResponse>;
                        allowances(request: QueryAllowancesRequest): Promise<QueryAllowancesResponse>;
                        allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise<QueryAllowancesByGranterResponse>;
                    };
                };
                gov: {
                    v1: {
                        constitution(request?: QueryConstitutionRequest): Promise<QueryConstitutionResponse>;
                        deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                        deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                        params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                        proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                        proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                        tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                        vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                        votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                    };
                    v1beta1: {
                        deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                        deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                        params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                        proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                        proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                        tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                        vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                        votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                    };
                };
                group: {
                    v1: {
                        groupInfo(request: QueryGroupInfoRequest): Promise<QueryGroupInfoResponse>;
                        groupMembers(request: QueryGroupMembersRequest): Promise<QueryGroupMembersResponse>;
                        groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise<QueryGroupPoliciesByAdminResponse>;
                        groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise<QueryGroupPoliciesByGroupResponse>;
                        groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise<QueryGroupPolicyInfoResponse>;
                        groups(request?: QueryGroupsRequest): Promise<QueryGroupsResponse>;
                        groupsByAdmin(request: QueryGroupsByAdminRequest): Promise<QueryGroupsByAdminResponse>;
                        groupsByMember(request: QueryGroupsByMemberRequest): Promise<QueryGroupsByMemberResponse>;
                        proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                        proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise<QueryProposalsByGroupPolicyResponse>;
                        tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                        voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise<QueryVoteByProposalVoterResponse>;
                        votesByProposal(request: QueryVotesByProposalRequest): Promise<QueryVotesByProposalResponse>;
                        votesByVoter(request: QueryVotesByVoterRequest): Promise<QueryVotesByVoterResponse>;
                    };
                };
                mint: {
                    v1beta1: {
                        annualProvisions(request?: QueryAnnualProvisionsRequest): Promise<QueryAnnualProvisionsResponse>;
                        inflation(request?: QueryInflationRequest): Promise<QueryInflationResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    };
                };
                nft: {
                    v1beta1: {
                        balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                        class(request: QueryClassRequest): Promise<QueryClassResponse>;
                        classes(request?: QueryClassesRequest): Promise<QueryClassesResponse>;
                        nFT(request: QueryNFTRequest): Promise<QueryNFTResponse>;
                        nFTs(request: QueryNFTsRequest): Promise<QueryNFTsResponse>;
                        owner(request: QueryOwnerRequest): Promise<QueryOwnerResponse>;
                        supply(request: QuerySupplyRequest): Promise<QuerySupplyResponse>;
                    };
                };
                orm: {
                    query: {
                        v1alpha1: {
                            get(request: GetRequest): Promise<GetResponse>;
                            list(request: ListRequest): Promise<ListResponse>;
                        };
                    };
                };
                params: {
                    v1beta1: {
                        params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                        subspaces(request?: QuerySubspacesRequest): Promise<QuerySubspacesResponse>;
                    };
                };
                slashing: {
                    v1beta1: {
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                        signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse>;
                        signingInfos(request?: QuerySigningInfosRequest): Promise<QuerySigningInfosResponse>;
                    };
                };
                staking: {
                    v1beta1: {
                        delegation(request: QueryDelegationRequest): Promise<QueryDelegationResponse>;
                        delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise<QueryDelegatorDelegationsResponse>;
                        delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise<QueryDelegatorUnbondingDelegationsResponse>;
                        delegatorValidator(request: QueryDelegatorValidatorRequest): Promise<QueryDelegatorValidatorResponse>;
                        delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                        historicalInfo(request: QueryHistoricalInfoRequest): Promise<QueryHistoricalInfoResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                        pool(request?: QueryPoolRequest): Promise<QueryPoolResponse>;
                        redelegations(request: QueryRedelegationsRequest): Promise<QueryRedelegationsResponse>;
                        unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise<QueryUnbondingDelegationResponse>;
                        validator(request: QueryValidatorRequest): Promise<QueryValidatorResponse>;
                        validatorDelegations(request: QueryValidatorDelegationsRequest): Promise<QueryValidatorDelegationsResponse>;
                        validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise<QueryValidatorUnbondingDelegationsResponse>;
                        validators(request: QueryValidatorsRequest): Promise<QueryValidatorsResponse>;
                    };
                };
                tx: {
                    v1beta1: {
                        broadcastTx(request: BroadcastTxRequest): Promise<BroadcastTxResponse>;
                        getBlockWithTxs(request: GetBlockWithTxsRequest): Promise<GetBlockWithTxsResponse>;
                        getTx(request: GetTxRequest): Promise<GetTxResponse>;
                        getTxsEvent(request: GetTxsEventRequest): Promise<GetTxsEventResponse>;
                        simulate(request: SimulateRequest): Promise<SimulateResponse>;
                        txDecode(request: TxDecodeRequest): Promise<TxDecodeResponse>;
                        txDecodeAmino(request: TxDecodeAminoRequest): Promise<TxDecodeAminoResponse>;
                        txEncode(request: TxEncodeRequest): Promise<TxEncodeResponse>;
                        txEncodeAmino(request: TxEncodeAminoRequest): Promise<TxEncodeAminoResponse>;
                    };
                };
                upgrade: {
                    v1beta1: {
                        appliedPlan(request: QueryAppliedPlanRequest): Promise<QueryAppliedPlanResponse>;
                        authority(request?: QueryAuthorityRequest): Promise<QueryAuthorityResponse>;
                        currentPlan(request?: QueryCurrentPlanRequest): Promise<QueryCurrentPlanResponse>;
                        moduleVersions(request: QueryModuleVersionsRequest): Promise<QueryModuleVersionsResponse>;
                        upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise<QueryUpgradedConsensusStateResponse>;
                    };
                };
            };
            ixo: {
                bonds: {
                    v1beta1: {
                        alphaMaximums(request: QueryAlphaMaximumsRequest): Promise<QueryAlphaMaximumsResponse>;
                        availableReserve(request: QueryAvailableReserveRequest): Promise<QueryAvailableReserveResponse>;
                        batch(request: QueryBatchRequest): Promise<QueryBatchResponse>;
                        bond(request: QueryBondRequest): Promise<QueryBondResponse>;
                        bonds(request?: QueryBondsRequest): Promise<QueryBondsResponse>;
                        bondsDetailed(request?: QueryBondsDetailedRequest): Promise<QueryBondsDetailedResponse>;
                        buyPrice(request: QueryBuyPriceRequest): Promise<QueryBuyPriceResponse>;
                        currentPrice(request: QueryCurrentPriceRequest): Promise<QueryCurrentPriceResponse>;
                        currentReserve(request: QueryCurrentReserveRequest): Promise<QueryCurrentReserveResponse>;
                        customPrice(request: QueryCustomPriceRequest): Promise<QueryCustomPriceResponse>;
                        lastBatch(request: QueryLastBatchRequest): Promise<QueryLastBatchResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                        sellReturn(request: QuerySellReturnRequest): Promise<QuerySellReturnResponse>;
                        swapReturn(request: QuerySwapReturnRequest): Promise<QuerySwapReturnResponse>;
                    };
                };
                claims: {
                    v1beta1: {
                        claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
                        claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
                        collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
                        collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
                        dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
                        disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    };
                };
                entity: {
                    v1beta1: {
                        entity(request: QueryEntityRequest): Promise<QueryEntityResponse>;
                        entityIidDocument(request: QueryEntityIidDocumentRequest): Promise<QueryEntityIidDocumentResponse>;
                        entityList(request?: QueryEntityListRequest): Promise<QueryEntityListResponse>;
                        entityMetaData(request: QueryEntityMetadataRequest): Promise<QueryEntityMetadataResponse>;
                        entityVerified(request: QueryEntityVerifiedRequest): Promise<QueryEntityVerifiedResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    };
                };
                iid: {
                    v1beta1: {
                        iidDocument(request: QueryIidDocumentRequest): Promise<QueryIidDocumentResponse>;
                        iidDocuments(request?: QueryIidDocumentsRequest): Promise<QueryIidDocumentsResponse>;
                    };
                };
                token: {
                    v1beta1: {
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                        tokenDoc(request: QueryTokenDocRequest): Promise<QueryTokenDocResponse>;
                        tokenList(request: QueryTokenListRequest): Promise<QueryTokenListResponse>;
                        tokenMetadata(request: QueryTokenMetadataRequest): Promise<QueryTokenMetadataResponse>;
                    };
                };
            };
        }>
      • +
      • (__namedParameters: {
            rpcEndpoint: string | HttpEndpoint;
        }): Promise<{
            cosmos: {
                app: {
                    v1alpha1: {
                        config(request?: QueryConfigRequest): Promise<QueryConfigResponse>;
                    };
                };
                auth: {
                    v1beta1: {
                        account(request: QueryAccountRequest): Promise<QueryAccountResponse>;
                        accountAddressByID(request: QueryAccountAddressByIDRequest): Promise<QueryAccountAddressByIDResponse>;
                        accountInfo(request: QueryAccountInfoRequest): Promise<QueryAccountInfoResponse>;
                        accounts(request?: QueryAccountsRequest): Promise<QueryAccountsResponse>;
                        addressBytesToString(request: AddressBytesToStringRequest): Promise<AddressBytesToStringResponse>;
                        addressStringToBytes(request: AddressStringToBytesRequest): Promise<AddressStringToBytesResponse>;
                        bech32Prefix(request?: Bech32PrefixRequest): Promise<Bech32PrefixResponse>;
                        moduleAccountByName(request: QueryModuleAccountByNameRequest): Promise<QueryModuleAccountByNameResponse>;
                        moduleAccounts(request?: QueryModuleAccountsRequest): Promise<QueryModuleAccountsResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    };
                };
                authz: {
                    v1beta1: {
                        granteeGrants(request: QueryGranteeGrantsRequest): Promise<QueryGranteeGrantsResponse>;
                        granterGrants(request: QueryGranterGrantsRequest): Promise<QueryGranterGrantsResponse>;
                        grants(request: QueryGrantsRequest): Promise<QueryGrantsResponse>;
                    };
                };
                autocli: {
                    v1: {
                        appOptions(request?: AppOptionsRequest): Promise<AppOptionsResponse>;
                    };
                };
                bank: {
                    v1beta1: {
                        allBalances(request: QueryAllBalancesRequest): Promise<QueryAllBalancesResponse>;
                        balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                        denomMetadata(request: QueryDenomMetadataRequest): Promise<QueryDenomMetadataResponse>;
                        denomMetadataByQueryString(request: QueryDenomMetadataByQueryStringRequest): Promise<QueryDenomMetadataByQueryStringResponse>;
                        denomOwners(request: QueryDenomOwnersRequest): Promise<QueryDenomOwnersResponse>;
                        denomOwnersByQuery(request: QueryDenomOwnersByQueryRequest): Promise<QueryDenomOwnersByQueryResponse>;
                        denomsMetadata(request?: QueryDenomsMetadataRequest): Promise<QueryDenomsMetadataResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                        sendEnabled(request: QuerySendEnabledRequest): Promise<QuerySendEnabledResponse>;
                        spendableBalanceByDenom(request: QuerySpendableBalanceByDenomRequest): Promise<QuerySpendableBalanceByDenomResponse>;
                        spendableBalances(request: QuerySpendableBalancesRequest): Promise<QuerySpendableBalancesResponse>;
                        supplyOf(request: QuerySupplyOfRequest): Promise<QuerySupplyOfResponse>;
                        totalSupply(request?: QueryTotalSupplyRequest): Promise<QueryTotalSupplyResponse>;
                    };
                };
                base: {
                    node: {
                        v1beta1: {
                            config(request?: ConfigRequest): Promise<ConfigResponse>;
                            status(request?: StatusRequest): Promise<StatusResponse>;
                        };
                    };
                    tendermint: {
                        v1beta1: {
                            aBCIQuery(request: ABCIQueryRequest): Promise<ABCIQueryResponse>;
                            getBlockByHeight(request: GetBlockByHeightRequest): Promise<GetBlockByHeightResponse>;
                            getLatestBlock(request?: GetLatestBlockRequest): Promise<GetLatestBlockResponse>;
                            getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise<GetLatestValidatorSetResponse>;
                            getNodeInfo(request?: GetNodeInfoRequest): Promise<GetNodeInfoResponse>;
                            getSyncing(request?: GetSyncingRequest): Promise<GetSyncingResponse>;
                            getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise<GetValidatorSetByHeightResponse>;
                        };
                    };
                };
                circuit: {
                    v1: {
                        account(request: QueryAccountRequest): Promise<AccountResponse>;
                        accounts(request?: QueryAccountsRequest): Promise<AccountsResponse>;
                        disabledList(request?: QueryDisabledListRequest): Promise<DisabledListResponse>;
                    };
                };
                consensus: {
                    v1: {
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    };
                };
                distribution: {
                    v1beta1: {
                        communityPool(request?: QueryCommunityPoolRequest): Promise<QueryCommunityPoolResponse>;
                        delegationRewards(request: QueryDelegationRewardsRequest): Promise<QueryDelegationRewardsResponse>;
                        delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise<QueryDelegationTotalRewardsResponse>;
                        delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                        delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise<QueryDelegatorWithdrawAddressResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                        validatorCommission(request: QueryValidatorCommissionRequest): Promise<QueryValidatorCommissionResponse>;
                        validatorDistributionInfo(request: QueryValidatorDistributionInfoRequest): Promise<QueryValidatorDistributionInfoResponse>;
                        validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise<QueryValidatorOutstandingRewardsResponse>;
                        validatorSlashes(request: QueryValidatorSlashesRequest): Promise<QueryValidatorSlashesResponse>;
                    };
                };
                evidence: {
                    v1beta1: {
                        allEvidence(request?: QueryAllEvidenceRequest): Promise<QueryAllEvidenceResponse>;
                        evidence(request: QueryEvidenceRequest): Promise<QueryEvidenceResponse>;
                    };
                };
                feegrant: {
                    v1beta1: {
                        allowance(request: QueryAllowanceRequest): Promise<QueryAllowanceResponse>;
                        allowances(request: QueryAllowancesRequest): Promise<QueryAllowancesResponse>;
                        allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise<QueryAllowancesByGranterResponse>;
                    };
                };
                gov: {
                    v1: {
                        constitution(request?: QueryConstitutionRequest): Promise<QueryConstitutionResponse>;
                        deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                        deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                        params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                        proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                        proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                        tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                        vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                        votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                    };
                    v1beta1: {
                        deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                        deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                        params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                        proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                        proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                        tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                        vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                        votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                    };
                };
                group: {
                    v1: {
                        groupInfo(request: QueryGroupInfoRequest): Promise<QueryGroupInfoResponse>;
                        groupMembers(request: QueryGroupMembersRequest): Promise<QueryGroupMembersResponse>;
                        groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise<QueryGroupPoliciesByAdminResponse>;
                        groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise<QueryGroupPoliciesByGroupResponse>;
                        groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise<QueryGroupPolicyInfoResponse>;
                        groups(request?: QueryGroupsRequest): Promise<QueryGroupsResponse>;
                        groupsByAdmin(request: QueryGroupsByAdminRequest): Promise<QueryGroupsByAdminResponse>;
                        groupsByMember(request: QueryGroupsByMemberRequest): Promise<QueryGroupsByMemberResponse>;
                        proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                        proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise<QueryProposalsByGroupPolicyResponse>;
                        tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                        voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise<QueryVoteByProposalVoterResponse>;
                        votesByProposal(request: QueryVotesByProposalRequest): Promise<QueryVotesByProposalResponse>;
                        votesByVoter(request: QueryVotesByVoterRequest): Promise<QueryVotesByVoterResponse>;
                    };
                };
                mint: {
                    v1beta1: {
                        annualProvisions(request?: QueryAnnualProvisionsRequest): Promise<QueryAnnualProvisionsResponse>;
                        inflation(request?: QueryInflationRequest): Promise<QueryInflationResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    };
                };
                nft: {
                    v1beta1: {
                        balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                        class(request: QueryClassRequest): Promise<QueryClassResponse>;
                        classes(request?: QueryClassesRequest): Promise<QueryClassesResponse>;
                        nFT(request: QueryNFTRequest): Promise<QueryNFTResponse>;
                        nFTs(request: QueryNFTsRequest): Promise<QueryNFTsResponse>;
                        owner(request: QueryOwnerRequest): Promise<QueryOwnerResponse>;
                        supply(request: QuerySupplyRequest): Promise<QuerySupplyResponse>;
                    };
                };
                orm: {
                    query: {
                        v1alpha1: {
                            get(request: GetRequest): Promise<GetResponse>;
                            list(request: ListRequest): Promise<ListResponse>;
                        };
                    };
                };
                params: {
                    v1beta1: {
                        params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                        subspaces(request?: QuerySubspacesRequest): Promise<QuerySubspacesResponse>;
                    };
                };
                slashing: {
                    v1beta1: {
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                        signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse>;
                        signingInfos(request?: QuerySigningInfosRequest): Promise<QuerySigningInfosResponse>;
                    };
                };
                staking: {
                    v1beta1: {
                        delegation(request: QueryDelegationRequest): Promise<QueryDelegationResponse>;
                        delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise<QueryDelegatorDelegationsResponse>;
                        delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise<QueryDelegatorUnbondingDelegationsResponse>;
                        delegatorValidator(request: QueryDelegatorValidatorRequest): Promise<QueryDelegatorValidatorResponse>;
                        delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                        historicalInfo(request: QueryHistoricalInfoRequest): Promise<QueryHistoricalInfoResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                        pool(request?: QueryPoolRequest): Promise<QueryPoolResponse>;
                        redelegations(request: QueryRedelegationsRequest): Promise<QueryRedelegationsResponse>;
                        unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise<QueryUnbondingDelegationResponse>;
                        validator(request: QueryValidatorRequest): Promise<QueryValidatorResponse>;
                        validatorDelegations(request: QueryValidatorDelegationsRequest): Promise<QueryValidatorDelegationsResponse>;
                        validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise<QueryValidatorUnbondingDelegationsResponse>;
                        validators(request: QueryValidatorsRequest): Promise<QueryValidatorsResponse>;
                    };
                };
                tx: {
                    v1beta1: {
                        broadcastTx(request: BroadcastTxRequest): Promise<BroadcastTxResponse>;
                        getBlockWithTxs(request: GetBlockWithTxsRequest): Promise<GetBlockWithTxsResponse>;
                        getTx(request: GetTxRequest): Promise<GetTxResponse>;
                        getTxsEvent(request: GetTxsEventRequest): Promise<GetTxsEventResponse>;
                        simulate(request: SimulateRequest): Promise<SimulateResponse>;
                        txDecode(request: TxDecodeRequest): Promise<TxDecodeResponse>;
                        txDecodeAmino(request: TxDecodeAminoRequest): Promise<TxDecodeAminoResponse>;
                        txEncode(request: TxEncodeRequest): Promise<TxEncodeResponse>;
                        txEncodeAmino(request: TxEncodeAminoRequest): Promise<TxEncodeAminoResponse>;
                    };
                };
                upgrade: {
                    v1beta1: {
                        appliedPlan(request: QueryAppliedPlanRequest): Promise<QueryAppliedPlanResponse>;
                        authority(request?: QueryAuthorityRequest): Promise<QueryAuthorityResponse>;
                        currentPlan(request?: QueryCurrentPlanRequest): Promise<QueryCurrentPlanResponse>;
                        moduleVersions(request: QueryModuleVersionsRequest): Promise<QueryModuleVersionsResponse>;
                        upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise<QueryUpgradedConsensusStateResponse>;
                    };
                };
            };
            ixo: {
                bonds: {
                    v1beta1: {
                        alphaMaximums(request: QueryAlphaMaximumsRequest): Promise<QueryAlphaMaximumsResponse>;
                        availableReserve(request: QueryAvailableReserveRequest): Promise<QueryAvailableReserveResponse>;
                        batch(request: QueryBatchRequest): Promise<QueryBatchResponse>;
                        bond(request: QueryBondRequest): Promise<QueryBondResponse>;
                        bonds(request?: QueryBondsRequest): Promise<QueryBondsResponse>;
                        bondsDetailed(request?: QueryBondsDetailedRequest): Promise<QueryBondsDetailedResponse>;
                        buyPrice(request: QueryBuyPriceRequest): Promise<QueryBuyPriceResponse>;
                        currentPrice(request: QueryCurrentPriceRequest): Promise<QueryCurrentPriceResponse>;
                        currentReserve(request: QueryCurrentReserveRequest): Promise<QueryCurrentReserveResponse>;
                        customPrice(request: QueryCustomPriceRequest): Promise<QueryCustomPriceResponse>;
                        lastBatch(request: QueryLastBatchRequest): Promise<QueryLastBatchResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                        sellReturn(request: QuerySellReturnRequest): Promise<QuerySellReturnResponse>;
                        swapReturn(request: QuerySwapReturnRequest): Promise<QuerySwapReturnResponse>;
                    };
                };
                claims: {
                    v1beta1: {
                        claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
                        claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
                        collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
                        collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
                        dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
                        disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
                        intent(request: QueryIntentRequest): Promise<QueryIntentResponse>;
                        intentList(request?: QueryIntentListRequest): Promise<QueryIntentListResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    };
                };
                entity: {
                    v1beta1: {
                        entity(request: QueryEntityRequest): Promise<QueryEntityResponse>;
                        entityIidDocument(request: QueryEntityIidDocumentRequest): Promise<QueryEntityIidDocumentResponse>;
                        entityList(request?: QueryEntityListRequest): Promise<QueryEntityListResponse>;
                        entityMetaData(request: QueryEntityMetadataRequest): Promise<QueryEntityMetadataResponse>;
                        entityVerified(request: QueryEntityVerifiedRequest): Promise<QueryEntityVerifiedResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    };
                };
                epochs: {
                    v1beta1: {
                        currentEpoch(request: QueryCurrentEpochRequest): Promise<QueryCurrentEpochResponse>;
                        epochInfos(request?: QueryEpochsInfoRequest): Promise<QueryEpochsInfoResponse>;
                    };
                };
                iid: {
                    v1beta1: {
                        iidDocument(request: QueryIidDocumentRequest): Promise<QueryIidDocumentResponse>;
                        iidDocuments(request?: QueryIidDocumentsRequest): Promise<QueryIidDocumentsResponse>;
                    };
                };
                mint: {
                    v1beta1: {
                        epochProvisions(request?: QueryEpochProvisionsRequest): Promise<QueryEpochProvisionsResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    };
                };
                smartaccount: {
                    v1beta1: {
                        getAuthenticator(request: GetAuthenticatorRequest): Promise<GetAuthenticatorResponse>;
                        getAuthenticators(request: GetAuthenticatorsRequest): Promise<GetAuthenticatorsResponse>;
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                    };
                };
                token: {
                    v1beta1: {
                        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                        tokenDoc(request: QueryTokenDocRequest): Promise<QueryTokenDocResponse>;
                        tokenList(request: QueryTokenListRequest): Promise<QueryTokenListResponse>;
                        tokenMetadata(request: QueryTokenMetadataRequest): Promise<QueryTokenMetadataResponse>;
                    };
                };
            };
        }>
      • Parameters

        @@ -51,9 +51,9 @@
        __namedParameters: {
         
        • rpcEndpoint: string | HttpEndpoint
      -

      Returns Promise<{
          cosmos: {
              app: {
                  v1alpha1: {
                      config(request?: QueryConfigRequest): Promise<QueryConfigResponse>;
                  };
              };
              auth: {
                  v1beta1: {
                      account(request: QueryAccountRequest): Promise<QueryAccountResponse>;
                      accountAddressByID(request: QueryAccountAddressByIDRequest): Promise<QueryAccountAddressByIDResponse>;
                      accountInfo(request: QueryAccountInfoRequest): Promise<QueryAccountInfoResponse>;
                      accounts(request?: QueryAccountsRequest): Promise<QueryAccountsResponse>;
                      addressBytesToString(request: AddressBytesToStringRequest): Promise<AddressBytesToStringResponse>;
                      addressStringToBytes(request: AddressStringToBytesRequest): Promise<AddressStringToBytesResponse>;
                      bech32Prefix(request?: Bech32PrefixRequest): Promise<Bech32PrefixResponse>;
                      moduleAccountByName(request: QueryModuleAccountByNameRequest): Promise<QueryModuleAccountByNameResponse>;
                      moduleAccounts(request?: QueryModuleAccountsRequest): Promise<QueryModuleAccountsResponse>;
                      params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                  };
              };
              authz: {
                  v1beta1: {
                      granteeGrants(request: QueryGranteeGrantsRequest): Promise<QueryGranteeGrantsResponse>;
                      granterGrants(request: QueryGranterGrantsRequest): Promise<QueryGranterGrantsResponse>;
                      grants(request: QueryGrantsRequest): Promise<QueryGrantsResponse>;
                  };
              };
              autocli: {
                  v1: {
                      appOptions(request?: AppOptionsRequest): Promise<AppOptionsResponse>;
                  };
              };
              bank: {
                  v1beta1: {
                      allBalances(request: QueryAllBalancesRequest): Promise<QueryAllBalancesResponse>;
                      balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                      denomMetadata(request: QueryDenomMetadataRequest): Promise<QueryDenomMetadataResponse>;
                      denomMetadataByQueryString(request: QueryDenomMetadataByQueryStringRequest): Promise<QueryDenomMetadataByQueryStringResponse>;
                      denomOwners(request: QueryDenomOwnersRequest): Promise<QueryDenomOwnersResponse>;
                      denomOwnersByQuery(request: QueryDenomOwnersByQueryRequest): Promise<QueryDenomOwnersByQueryResponse>;
                      denomsMetadata(request?: QueryDenomsMetadataRequest): Promise<QueryDenomsMetadataResponse>;
                      params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      sendEnabled(request: QuerySendEnabledRequest): Promise<QuerySendEnabledResponse>;
                      spendableBalanceByDenom(request: QuerySpendableBalanceByDenomRequest): Promise<QuerySpendableBalanceByDenomResponse>;
                      spendableBalances(request: QuerySpendableBalancesRequest): Promise<QuerySpendableBalancesResponse>;
                      supplyOf(request: QuerySupplyOfRequest): Promise<QuerySupplyOfResponse>;
                      totalSupply(request?: QueryTotalSupplyRequest): Promise<QueryTotalSupplyResponse>;
                  };
              };
              base: {
                  node: {
                      v1beta1: {
                          config(request?: ConfigRequest): Promise<ConfigResponse>;
                          status(request?: StatusRequest): Promise<StatusResponse>;
                      };
                  };
                  tendermint: {
                      v1beta1: {
                          aBCIQuery(request: ABCIQueryRequest): Promise<ABCIQueryResponse>;
                          getBlockByHeight(request: GetBlockByHeightRequest): Promise<GetBlockByHeightResponse>;
                          getLatestBlock(request?: GetLatestBlockRequest): Promise<GetLatestBlockResponse>;
                          getLatestValidatorSet(request?: GetLatestValidatorSetRequest): Promise<GetLatestValidatorSetResponse>;
                          getNodeInfo(request?: GetNodeInfoRequest): Promise<GetNodeInfoResponse>;
                          getSyncing(request?: GetSyncingRequest): Promise<GetSyncingResponse>;
                          getValidatorSetByHeight(request: GetValidatorSetByHeightRequest): Promise<GetValidatorSetByHeightResponse>;
                      };
                  };
              };
              circuit: {
                  v1: {
                      account(request: QueryAccountRequest): Promise<AccountResponse>;
                      accounts(request?: QueryAccountsRequest): Promise<AccountsResponse>;
                      disabledList(request?: QueryDisabledListRequest): Promise<DisabledListResponse>;
                  };
              };
              consensus: {
                  v1: {
                      params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                  };
              };
              distribution: {
                  v1beta1: {
                      communityPool(request?: QueryCommunityPoolRequest): Promise<QueryCommunityPoolResponse>;
                      delegationRewards(request: QueryDelegationRewardsRequest): Promise<QueryDelegationRewardsResponse>;
                      delegationTotalRewards(request: QueryDelegationTotalRewardsRequest): Promise<QueryDelegationTotalRewardsResponse>;
                      delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                      delegatorWithdrawAddress(request: QueryDelegatorWithdrawAddressRequest): Promise<QueryDelegatorWithdrawAddressResponse>;
                      params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      validatorCommission(request: QueryValidatorCommissionRequest): Promise<QueryValidatorCommissionResponse>;
                      validatorDistributionInfo(request: QueryValidatorDistributionInfoRequest): Promise<QueryValidatorDistributionInfoResponse>;
                      validatorOutstandingRewards(request: QueryValidatorOutstandingRewardsRequest): Promise<QueryValidatorOutstandingRewardsResponse>;
                      validatorSlashes(request: QueryValidatorSlashesRequest): Promise<QueryValidatorSlashesResponse>;
                  };
              };
              evidence: {
                  v1beta1: {
                      allEvidence(request?: QueryAllEvidenceRequest): Promise<QueryAllEvidenceResponse>;
                      evidence(request: QueryEvidenceRequest): Promise<QueryEvidenceResponse>;
                  };
              };
              feegrant: {
                  v1beta1: {
                      allowance(request: QueryAllowanceRequest): Promise<QueryAllowanceResponse>;
                      allowances(request: QueryAllowancesRequest): Promise<QueryAllowancesResponse>;
                      allowancesByGranter(request: QueryAllowancesByGranterRequest): Promise<QueryAllowancesByGranterResponse>;
                  };
              };
              gov: {
                  v1: {
                      constitution(request?: QueryConstitutionRequest): Promise<QueryConstitutionResponse>;
                      deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                      deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                      params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                      proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                      proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                      tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                      vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                      votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                  };
                  v1beta1: {
                      deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
                      deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
                      params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                      proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                      proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
                      tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                      vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
                      votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
                  };
              };
              group: {
                  v1: {
                      groupInfo(request: QueryGroupInfoRequest): Promise<QueryGroupInfoResponse>;
                      groupMembers(request: QueryGroupMembersRequest): Promise<QueryGroupMembersResponse>;
                      groupPoliciesByAdmin(request: QueryGroupPoliciesByAdminRequest): Promise<QueryGroupPoliciesByAdminResponse>;
                      groupPoliciesByGroup(request: QueryGroupPoliciesByGroupRequest): Promise<QueryGroupPoliciesByGroupResponse>;
                      groupPolicyInfo(request: QueryGroupPolicyInfoRequest): Promise<QueryGroupPolicyInfoResponse>;
                      groups(request?: QueryGroupsRequest): Promise<QueryGroupsResponse>;
                      groupsByAdmin(request: QueryGroupsByAdminRequest): Promise<QueryGroupsByAdminResponse>;
                      groupsByMember(request: QueryGroupsByMemberRequest): Promise<QueryGroupsByMemberResponse>;
                      proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
                      proposalsByGroupPolicy(request: QueryProposalsByGroupPolicyRequest): Promise<QueryProposalsByGroupPolicyResponse>;
                      tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
                      voteByProposalVoter(request: QueryVoteByProposalVoterRequest): Promise<QueryVoteByProposalVoterResponse>;
                      votesByProposal(request: QueryVotesByProposalRequest): Promise<QueryVotesByProposalResponse>;
                      votesByVoter(request: QueryVotesByVoterRequest): Promise<QueryVotesByVoterResponse>;
                  };
              };
              mint: {
                  v1beta1: {
                      annualProvisions(request?: QueryAnnualProvisionsRequest): Promise<QueryAnnualProvisionsResponse>;
                      inflation(request?: QueryInflationRequest): Promise<QueryInflationResponse>;
                      params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                  };
              };
              nft: {
                  v1beta1: {
                      balance(request: QueryBalanceRequest): Promise<QueryBalanceResponse>;
                      class(request: QueryClassRequest): Promise<QueryClassResponse>;
                      classes(request?: QueryClassesRequest): Promise<QueryClassesResponse>;
                      nFT(request: QueryNFTRequest): Promise<QueryNFTResponse>;
                      nFTs(request: QueryNFTsRequest): Promise<QueryNFTsResponse>;
                      owner(request: QueryOwnerRequest): Promise<QueryOwnerResponse>;
                      supply(request: QuerySupplyRequest): Promise<QuerySupplyResponse>;
                  };
              };
              orm: {
                  query: {
                      v1alpha1: {
                          get(request: GetRequest): Promise<GetResponse>;
                          list(request: ListRequest): Promise<ListResponse>;
                      };
                  };
              };
              params: {
                  v1beta1: {
                      params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
                      subspaces(request?: QuerySubspacesRequest): Promise<QuerySubspacesResponse>;
                  };
              };
              slashing: {
                  v1beta1: {
                      params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse>;
                      signingInfos(request?: QuerySigningInfosRequest): Promise<QuerySigningInfosResponse>;
                  };
              };
              staking: {
                  v1beta1: {
                      delegation(request: QueryDelegationRequest): Promise<QueryDelegationResponse>;
                      delegatorDelegations(request: QueryDelegatorDelegationsRequest): Promise<QueryDelegatorDelegationsResponse>;
                      delegatorUnbondingDelegations(request: QueryDelegatorUnbondingDelegationsRequest): Promise<QueryDelegatorUnbondingDelegationsResponse>;
                      delegatorValidator(request: QueryDelegatorValidatorRequest): Promise<QueryDelegatorValidatorResponse>;
                      delegatorValidators(request: QueryDelegatorValidatorsRequest): Promise<QueryDelegatorValidatorsResponse>;
                      historicalInfo(request: QueryHistoricalInfoRequest): Promise<QueryHistoricalInfoResponse>;
                      params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      pool(request?: QueryPoolRequest): Promise<QueryPoolResponse>;
                      redelegations(request: QueryRedelegationsRequest): Promise<QueryRedelegationsResponse>;
                      unbondingDelegation(request: QueryUnbondingDelegationRequest): Promise<QueryUnbondingDelegationResponse>;
                      validator(request: QueryValidatorRequest): Promise<QueryValidatorResponse>;
                      validatorDelegations(request: QueryValidatorDelegationsRequest): Promise<QueryValidatorDelegationsResponse>;
                      validatorUnbondingDelegations(request: QueryValidatorUnbondingDelegationsRequest): Promise<QueryValidatorUnbondingDelegationsResponse>;
                      validators(request: QueryValidatorsRequest): Promise<QueryValidatorsResponse>;
                  };
              };
              tx: {
                  v1beta1: {
                      broadcastTx(request: BroadcastTxRequest): Promise<BroadcastTxResponse>;
                      getBlockWithTxs(request: GetBlockWithTxsRequest): Promise<GetBlockWithTxsResponse>;
                      getTx(request: GetTxRequest): Promise<GetTxResponse>;
                      getTxsEvent(request: GetTxsEventRequest): Promise<GetTxsEventResponse>;
                      simulate(request: SimulateRequest): Promise<SimulateResponse>;
                      txDecode(request: TxDecodeRequest): Promise<TxDecodeResponse>;
                      txDecodeAmino(request: TxDecodeAminoRequest): Promise<TxDecodeAminoResponse>;
                      txEncode(request: TxEncodeRequest): Promise<TxEncodeResponse>;
                      txEncodeAmino(request: TxEncodeAminoRequest): Promise<TxEncodeAminoResponse>;
                  };
              };
              upgrade: {
                  v1beta1: {
                      appliedPlan(request: QueryAppliedPlanRequest): Promise<QueryAppliedPlanResponse>;
                      authority(request?: QueryAuthorityRequest): Promise<QueryAuthorityResponse>;
                      currentPlan(request?: QueryCurrentPlanRequest): Promise<QueryCurrentPlanResponse>;
                      moduleVersions(request: QueryModuleVersionsRequest): Promise<QueryModuleVersionsResponse>;
                      upgradedConsensusState(request: QueryUpgradedConsensusStateRequest): Promise<QueryUpgradedConsensusStateResponse>;
                  };
              };
          };
          ixo: {
              bonds: {
                  v1beta1: {
                      alphaMaximums(request: QueryAlphaMaximumsRequest): Promise<QueryAlphaMaximumsResponse>;
                      availableReserve(request: QueryAvailableReserveRequest): Promise<QueryAvailableReserveResponse>;
                      batch(request: QueryBatchRequest): Promise<QueryBatchResponse>;
                      bond(request: QueryBondRequest): Promise<QueryBondResponse>;
                      bonds(request?: QueryBondsRequest): Promise<QueryBondsResponse>;
                      bondsDetailed(request?: QueryBondsDetailedRequest): Promise<QueryBondsDetailedResponse>;
                      buyPrice(request: QueryBuyPriceRequest): Promise<QueryBuyPriceResponse>;
                      currentPrice(request: QueryCurrentPriceRequest): Promise<QueryCurrentPriceResponse>;
                      currentReserve(request: QueryCurrentReserveRequest): Promise<QueryCurrentReserveResponse>;
                      customPrice(request: QueryCustomPriceRequest): Promise<QueryCustomPriceResponse>;
                      lastBatch(request: QueryLastBatchRequest): Promise<QueryLastBatchResponse>;
                      params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      sellReturn(request: QuerySellReturnRequest): Promise<QuerySellReturnResponse>;
                      swapReturn(request: QuerySwapReturnRequest): Promise<QuerySwapReturnResponse>;
                  };
              };
              claims: {
                  v1beta1: {
                      claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
                      claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
                      collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
                      collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
                      dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
                      disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
                      params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                  };
              };
              entity: {
                  v1beta1: {
                      entity(request: QueryEntityRequest): Promise<QueryEntityResponse>;
                      entityIidDocument(request: QueryEntityIidDocumentRequest): Promise<QueryEntityIidDocumentResponse>;
                      entityList(request?: QueryEntityListRequest): Promise<QueryEntityListResponse>;
                      entityMetaData(request: QueryEntityMetadataRequest): Promise<QueryEntityMetadataResponse>;
                      entityVerified(request: QueryEntityVerifiedRequest): Promise<QueryEntityVerifiedResponse>;
                      params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                  };
              };
              iid: {
                  v1beta1: {
                      iidDocument(request: QueryIidDocumentRequest): Promise<QueryIidDocumentResponse>;
                      iidDocuments(request?: QueryIidDocumentsRequest): Promise<QueryIidDocumentsResponse>;
                  };
              };
              token: {
                  v1beta1: {
                      params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
                      tokenDoc(request: QueryTokenDocRequest): Promise<QueryTokenDocResponse>;
                      tokenList(request: QueryTokenListRequest): Promise<QueryTokenListResponse>;
                      tokenMetadata(request: QueryTokenMetadataRequest): Promise<QueryTokenMetadataResponse>;
                  };
              };
          };
      }>

  • +
  • Defined in src/codegen/ixo/bundle.ts:63
  • Returns Writer

    +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1249
  • fromJSON:function
      - +
    • Parameters

      @@ -66,11 +138,11 @@

      Parameters

      object: any

    Returns Claim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1326
  • fromPartial:function
      - +
    • Parameters

      @@ -79,11 +151,11 @@

      Parameters

      object: Partial<Claim>

    Returns Claim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1362
  • toJSON:function
      - +
    • Parameters

      @@ -92,14 +164,14 @@

      Parameters

      message: Claim

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1340
  • ClaimDisputedEvent: {
        decode(input: Uint8Array | Reader, length?: number): ClaimDisputedEvent;
        encode(message: ClaimDisputedEvent, writer?: Writer): Writer;
        fromJSON(object: any): ClaimDisputedEvent;
        fromPartial(object: Partial<ClaimDisputedEvent>): ClaimDisputedEvent;
        toJSON(message: ClaimDisputedEvent): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -110,11 +182,11 @@
        input: Uint8ArrayOptional length: number

      Returns ClaimDisputedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:333
  • encode:function
      - +
    • Parameters

      @@ -125,11 +197,11 @@
      message: ClaimDisputedEvent
    • writer: Writer = ...
  • Returns Writer

    +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:327
  • fromJSON:function
      - +
    • Parameters

      @@ -138,11 +210,11 @@

      Parameters

      object: any

    Returns ClaimDisputedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:350
  • fromPartial:function
      - +
    • Parameters

      @@ -151,11 +223,11 @@

      Parameters

      object: Partial<ClaimDisputedEvent>

    Returns ClaimDisputedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:360
  • toJSON:function
      - +
    • Parameters

      @@ -164,14 +236,14 @@

      Parameters

      message: ClaimDisputedEvent

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:355
  • ClaimEvaluatedEvent: {
        decode(input: Uint8Array | Reader, length?: number): ClaimEvaluatedEvent;
        encode(message: ClaimEvaluatedEvent, writer?: Writer): Writer;
        fromJSON(object: any): ClaimEvaluatedEvent;
        fromPartial(object: Partial<ClaimEvaluatedEvent>): ClaimEvaluatedEvent;
        toJSON(message: ClaimEvaluatedEvent): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -182,11 +254,11 @@
        input: Uint8ArrayOptional length: number

      Returns ClaimEvaluatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:288
  • encode:function
      - +
    • Parameters

      @@ -197,11 +269,11 @@
      message: ClaimEvaluatedEvent
      writer: Writer = ...
  • Returns Writer

    +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:282
  • fromJSON:function
      - +
    • Parameters

      @@ -210,11 +282,11 @@

      Parameters

      object: any

    Returns ClaimEvaluatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:305
  • fromPartial:function
      - +
    • Parameters

      @@ -223,11 +295,11 @@

      Parameters

      object: Partial<ClaimEvaluatedEvent>

    Returns ClaimEvaluatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:315
  • toJSON:function
      - +
    • Parameters

      @@ -236,14 +308,14 @@

      Parameters

      message: ClaimEvaluatedEvent

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:310
  • ClaimPayments: {
        decode(input: Uint8Array | Reader, length?: number): ClaimPayments;
        encode(message: ClaimPayments, writer?: Writer): Writer;
        fromJSON(object: any): ClaimPayments;
        fromPartial(object: Partial<ClaimPayments>): ClaimPayments;
        toJSON(message: ClaimPayments): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -254,11 +326,11 @@
        input: Uint8ArrayOptional length: number

      Returns ClaimPayments

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1401
  • encode:function
      - +
    • Parameters

      @@ -269,11 +341,11 @@
      message: ClaimPayments
    • writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1386
  • fromJSON:function
      - +
    • Parameters

      @@ -282,11 +354,11 @@

      Parameters

      object: any

    Returns ClaimPayments

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1427
  • fromPartial:function
      - +
    • Parameters

      @@ -295,11 +367,11 @@

      Parameters

      object: Partial<ClaimPayments>

    Returns ClaimPayments

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1443
  • toJSON:function
      - +
    • Parameters

      @@ -308,14 +380,14 @@

      Parameters

      message: ClaimPayments

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1435
  • ClaimSubmittedEvent: {
        decode(input: Uint8Array | Reader, length?: number): ClaimSubmittedEvent;
        encode(message: ClaimSubmittedEvent, writer?: Writer): Writer;
        fromJSON(object: any): ClaimSubmittedEvent;
        fromPartial(object: Partial<ClaimSubmittedEvent>): ClaimSubmittedEvent;
        toJSON(message: ClaimSubmittedEvent): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -326,11 +398,11 @@
        input: Uint8ArrayOptional length: number

      Returns ClaimSubmittedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:198
  • encode:function
      - +
    • Parameters

      @@ -341,11 +413,11 @@
      message: ClaimSubmittedEvent
      writer: Writer = ...
  • Returns Writer

    +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:192
  • fromJSON:function
      - +
    • Parameters

      @@ -354,11 +426,11 @@

      Parameters

      object: any

    Returns ClaimSubmittedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:215
  • fromPartial:function
      - +
    • Parameters

      @@ -367,11 +439,11 @@

      Parameters

      object: Partial<ClaimSubmittedEvent>

    Returns ClaimSubmittedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:225
  • toJSON:function
      - +
    • Parameters

      @@ -380,14 +452,14 @@

      Parameters

      message: ClaimSubmittedEvent

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:220
  • ClaimUpdatedEvent: {
        decode(input: Uint8Array | Reader, length?: number): ClaimUpdatedEvent;
        encode(message: ClaimUpdatedEvent, writer?: Writer): Writer;
        fromJSON(object: any): ClaimUpdatedEvent;
        fromPartial(object: Partial<ClaimUpdatedEvent>): ClaimUpdatedEvent;
        toJSON(message: ClaimUpdatedEvent): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -398,11 +470,11 @@
        input: Uint8ArrayOptional length: number

      Returns ClaimUpdatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:243
  • encode:function
      - +
    • Parameters

      @@ -413,11 +485,11 @@
      message: ClaimUpdatedEvent
    • writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:237
  • fromJSON:function
      - +
    • Parameters

      @@ -426,11 +498,11 @@

      Parameters

      object: any

    Returns ClaimUpdatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:260
  • fromPartial:function
      - +
    • Parameters

      @@ -439,11 +511,11 @@

      Parameters

      object: Partial<ClaimUpdatedEvent>

    Returns ClaimUpdatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:270
  • toJSON:function
      - +
    • Parameters

      @@ -452,14 +524,14 @@

      Parameters

      message: ClaimUpdatedEvent

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:265
  • Collection: {
        decode(input: Uint8Array | Reader, length?: number): Collection;
        encode(message: Collection, writer?: Writer): Writer;
        fromJSON(object: any): Collection;
        fromPartial(object: Partial<Collection>): Collection;
        toJSON(message: Collection): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -470,11 +542,11 @@
        input: Uint8ArrayOptional length: number

      Returns Collection

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:801
  • encode:function
      - +
    • Parameters

      @@ -485,11 +557,11 @@
      message: Collection
    • writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:744
  • fromJSON:function
      - +
    • Parameters

      @@ -498,11 +570,11 @@

      Parameters

      object: any

    Returns Collection

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:869
  • fromPartial:function
      - +
    • Parameters

      @@ -511,11 +583,11 @@

      Parameters

      object: Partial<Collection>

    Returns Collection

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:913
  • toJSON:function
      - +
    • Parameters

      @@ -524,14 +596,14 @@

      Parameters

      message: Collection

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:891
  • CollectionCreatedEvent: {
        decode(input: Uint8Array | Reader, length?: number): CollectionCreatedEvent;
        encode(message: CollectionCreatedEvent, writer?: Writer): Writer;
        fromJSON(object: any): CollectionCreatedEvent;
        fromPartial(object: Partial<CollectionCreatedEvent>): CollectionCreatedEvent;
        toJSON(message: CollectionCreatedEvent): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -542,11 +614,11 @@
        input: Uint8ArrayOptional length: number

      Returns CollectionCreatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:108
  • encode:function
      - +
    • Parameters

      @@ -557,11 +629,11 @@
      message: CollectionCreatedEvent
      writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:102
  • fromJSON:function
      - +
    • Parameters

      @@ -570,11 +642,11 @@

      Parameters

      object: any

    Returns CollectionCreatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:125
  • fromPartial:function
      - +
    • Parameters

      @@ -583,11 +655,11 @@

      Parameters

      object: Partial<CollectionCreatedEvent>

    Returns CollectionCreatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:135
  • toJSON:function
      - +
    • Parameters

      @@ -596,7 +668,9 @@

      Parameters

      message: CollectionCreatedEvent

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:130
  • +
  • +
    CollectionIntentOptionsSDKType: typeof CollectionIntentOptions
  • CollectionStateSDKType: typeof CollectionState
  • @@ -605,7 +679,7 @@
    CollectionUpdatedEvent:
    decode:function
      - +
    • Parameters

      @@ -616,11 +690,11 @@
      input: Uint8ArrayOptional length: number

    Returns CollectionUpdatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:153
  • encode:function
      - +
    • Parameters

      @@ -631,11 +705,11 @@
      message: CollectionUpdatedEvent
      writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:147
  • fromJSON:function
      - +
    • Parameters

      @@ -644,11 +718,11 @@

      Parameters

      object: any

    Returns CollectionUpdatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:170
  • fromPartial:function
      - +
    • Parameters

      @@ -657,11 +731,11 @@

      Parameters

      object: Partial<CollectionUpdatedEvent>

    Returns CollectionUpdatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:180
  • toJSON:function
      - +
    • Parameters

      @@ -670,14 +744,14 @@

      Parameters

      message: CollectionUpdatedEvent

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:175
  • Contract1155Payment: {
        decode(input: Uint8Array | Reader, length?: number): Contract1155Payment;
        encode(message: Contract1155Payment, writer?: Writer): Writer;
        fromJSON(object: any): Contract1155Payment;
        fromPartial(object: Partial<Contract1155Payment>): Contract1155Payment;
        toJSON(message: Contract1155Payment): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -688,11 +762,11 @@
        input: Uint8ArrayOptional length: number

      Returns Contract1155Payment

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1134
  • encode:function
      - +
    • Parameters

      @@ -703,11 +777,11 @@
      message: Contract1155Payment
      writer: Writer = ...
  • Returns Writer

    +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1122
  • fromJSON:function
      - +
    • Parameters

      @@ -716,11 +790,11 @@

      Parameters

      object: any

    Returns Contract1155Payment

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1157
  • fromPartial:function
      - +
    • Parameters

      @@ -729,11 +803,11 @@

      Parameters

      object: Partial<Contract1155Payment>

    Returns Contract1155Payment

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1171
  • toJSON:function
      - +
    • Parameters

      @@ -742,14 +816,14 @@

      Parameters

      message: Contract1155Payment

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1164
  • Dispute: {
        decode(input: Uint8Array | Reader, length?: number): Dispute;
        encode(message: Dispute, writer?: Writer): Writer;
        fromJSON(object: any): Dispute;
        fromPartial(object: Partial<Dispute>): Dispute;
        toJSON(message: Dispute): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -760,11 +834,11 @@
        input: Uint8ArrayOptional length: number

      Returns Dispute

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1625
  • encode:function
      - +
    • Parameters

      @@ -775,11 +849,11 @@
      message: Dispute
    • writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1613
  • fromJSON:function
      - +
    • Parameters

      @@ -788,11 +862,11 @@

      Parameters

      object: any

    Returns Dispute

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1648
  • fromPartial:function
      - +
    • Parameters

      @@ -801,11 +875,11 @@

      Parameters

      object: Partial<Dispute>

    Returns Dispute

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1662
  • toJSON:function
      - +
    • Parameters

      @@ -814,14 +888,14 @@

      Parameters

      message: Dispute

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1655
  • DisputeData: {
        decode(input: Uint8Array | Reader, length?: number): DisputeData;
        encode(message: DisputeData, writer?: Writer): Writer;
        fromJSON(object: any): DisputeData;
        fromPartial(object: Partial<DisputeData>): DisputeData;
        toJSON(message: DisputeData): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -832,11 +906,11 @@
        input: Uint8ArrayOptional length: number

      Returns DisputeData

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1694
  • encode:function
      - +
    • Parameters

      @@ -847,11 +921,11 @@
      message: DisputeData
    • writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1679
  • fromJSON:function
      - +
    • Parameters

      @@ -860,11 +934,11 @@

      Parameters

      object: any

    Returns DisputeData

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1720
  • fromPartial:function
      - +
    • Parameters

      @@ -873,11 +947,11 @@

      Parameters

      object: Partial<DisputeData>

    Returns DisputeData

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1736
  • toJSON:function
      - +
    • Parameters

      @@ -886,14 +960,14 @@

      Parameters

      message: DisputeData

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1728
  • EvaluateClaimAuthorization: {
        decode(input: Uint8Array | Reader, length?: number): EvaluateClaimAuthorization;
        encode(message: EvaluateClaimAuthorization, writer?: Writer): Writer;
        fromJSON(object: any): EvaluateClaimAuthorization;
        fromPartial(object: Partial<EvaluateClaimAuthorization>): EvaluateClaimAuthorization;
        toJSON(message: EvaluateClaimAuthorization): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -904,11 +978,11 @@
        input: Uint8ArrayOptional length: number

      Returns EvaluateClaimAuthorization

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:295
  • encode:function
      - +
    • Parameters

      @@ -919,11 +993,11 @@
      message: EvaluateClaimAuthorization<
      writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:286
  • fromJSON:function
      - +
    • Parameters

      @@ -932,11 +1006,11 @@

      Parameters

      object: any

    Returns EvaluateClaimAuthorization

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:315
  • fromPartial:function
      - +
    • Parameters

      @@ -945,11 +1019,11 @@

      Parameters

      object: Partial<EvaluateClaimAuthorization>

    Returns EvaluateClaimAuthorization

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:331
  • toJSON:function
      - +
    • Parameters

      @@ -958,14 +1032,14 @@

      Parameters

      message: EvaluateClaimAuthorization

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:321
  • EvaluateClaimConstraints: {
        decode(input: Uint8Array | Reader, length?: number): EvaluateClaimConstraints;
        encode(message: EvaluateClaimConstraints, writer?: Writer): Writer;
        fromJSON(object: any): EvaluateClaimConstraints;
        fromPartial(object: Partial<EvaluateClaimConstraints>): EvaluateClaimConstraints;
        toJSON(message: EvaluateClaimConstraints): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -976,11 +1050,11 @@
        input: Uint8ArrayOptional length: number

      Returns EvaluateClaimConstraints

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:370
  • encode:function
      - +
    • Parameters

      @@ -991,11 +1065,11 @@
      message: EvaluateClaimConstraintswriter: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:349
  • fromJSON:function
      - +
    • Parameters

      @@ -1004,11 +1078,11 @@

      Parameters

      object: any

    Returns EvaluateClaimConstraints

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:402
  • fromPartial:function
      - +
    • Parameters

      @@ -1017,11 +1091,11 @@

      Parameters

      object: Partial<EvaluateClaimConstraints>

    Returns EvaluateClaimConstraints

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:434
  • toJSON:function
      - +
    • Parameters

      @@ -1030,14 +1104,14 @@

      Parameters

      message: EvaluateClaimConstraints

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:412
  • Evaluation: {
        decode(input: Uint8Array | Reader, length?: number): Evaluation;
        encode(message: Evaluation, writer?: Writer): Writer;
        fromJSON(object: any): Evaluation;
        fromPartial(object: Partial<Evaluation>): Evaluation;
        toJSON(message: Evaluation): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1048,11 +1122,11 @@
        input: Uint8ArrayOptional length: number

      Returns Evaluation

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1504
  • encode:function
      - +
    • Parameters

      @@ -1063,11 +1137,11 @@
      message: Evaluation
    • writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1468
  • fromJSON:function
      - +
    • Parameters

      @@ -1076,11 +1150,11 @@

      Parameters

      object: any

    Returns Evaluation

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1551
  • fromPartial:function
      - +
    • Parameters

      @@ -1089,11 +1163,11 @@

      Parameters

      object: Partial<Evaluation>

    Returns Evaluation

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1589
  • toJSON:function
      - +
    • Parameters

      @@ -1102,7 +1176,7 @@

      Parameters

      message: Evaluation

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1566
  • EvaluationStatusSDKType: typeof EvaluationStatus
  • @@ -1111,7 +1185,7 @@
    GenesisState:
    decode:function
      - +
    • Parameters

      @@ -1122,11 +1196,11 @@
      input: Uint8ArrayOptional length: number

    Returns GenesisState

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/genesis.ts:49
  • encode:function
      - +
    • Parameters

      @@ -1137,11 +1211,11 @@
      message: GenesisState
    • writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/genesis.ts:31
  • fromJSON:function
      - +
    • Parameters

      @@ -1150,11 +1224,11 @@

      Parameters

      object: any

    Returns GenesisState

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/genesis.ts:78
  • fromPartial:function
      - +
    • Parameters

      @@ -1163,11 +1237,11 @@

      Parameters

      object: Partial<GenesisState>

    Returns GenesisState

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/genesis.ts:112
  • toJSON:function
      - +
    • Parameters

      @@ -1176,14 +1250,14 @@

      Parameters

      message: GenesisState

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/genesis.ts:87
  • -
    MsgCreateCollection: {
        decode(input: Uint8Array | Reader, length?: number): MsgCreateCollection;
        encode(message: MsgCreateCollection, writer?: Writer): Writer;
        fromJSON(object: any): MsgCreateCollection;
        fromPartial(object: Partial<MsgCreateCollection>): MsgCreateCollection;
        toJSON(message: MsgCreateCollection): unknown;
    }
    +
    Intent: {
        decode(input: Uint8Array | Reader, length?: number): Intent;
        encode(message: Intent, writer?: Writer): Writer;
        fromJSON(object: any): Intent;
        fromPartial(object: Partial<Intent>): Intent;
        toJSON(message: Intent): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1192,70 +1266,72 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgCreateCollection

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1801
  • encode:function
      - +
    • Parameters

      • -
        message: MsgCreateCollection
      • +
        message: Intent
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1762
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns MsgCreateCollection

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1851
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<MsgCreateCollection>
      -

      Returns MsgCreateCollection

    +

    Returns Intent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1891
  • toJSON:function
      - +
    • Parameters

      • -
        message: MsgCreateCollection
      +
      message: Intent

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:1867
  • -
    MsgCreateCollectionResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgCreateCollectionResponse;
        encode(_: MsgCreateCollectionResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgCreateCollectionResponse;
        fromPartial(_: Partial<MsgCreateCollectionResponse>): MsgCreateCollectionResponse;
        toJSON(_: MsgCreateCollectionResponse): unknown;
    }
    +
    IntentStatusSDKType: typeof IntentStatus
  • +
  • +
    IntentSubmittedEvent: {
        decode(input: Uint8Array | Reader, length?: number): IntentSubmittedEvent;
        encode(message: IntentSubmittedEvent, writer?: Writer): Writer;
        fromJSON(object: any): IntentSubmittedEvent;
        fromPartial(object: Partial<IntentSubmittedEvent>): IntentSubmittedEvent;
        toJSON(message: IntentSubmittedEvent): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1264,70 +1340,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgCreateCollectionResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:468
  • encode:function
      - +
    • Parameters

      • -
        _: MsgCreateCollectionResponse
      • +
        message: IntentSubmittedEvent
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:462
  • fromJSON:function
      - +
    • Parameters

      • -
        _: any
      -

      Returns MsgCreateCollectionResponse

    +

    Returns IntentSubmittedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:485
  • fromPartial:function
      - +
    • Parameters

      • -
        _: Partial<MsgCreateCollectionResponse>
      -

      Returns MsgCreateCollectionResponse

    +

    Returns IntentSubmittedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:495
  • toJSON:function
      - +
    • Parameters

      • -
        _: MsgCreateCollectionResponse
      +
      message: IntentSubmittedEvent

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:490
  • -
    MsgDisputeClaim: {
        decode(input: Uint8Array | Reader, length?: number): MsgDisputeClaim;
        encode(message: MsgDisputeClaim, writer?: Writer): Writer;
        fromJSON(object: any): MsgDisputeClaim;
        fromPartial(object: Partial<MsgDisputeClaim>): MsgDisputeClaim;
        toJSON(message: MsgDisputeClaim): unknown;
    }
    +
    IntentUpdatedEvent: {
        decode(input: Uint8Array | Reader, length?: number): IntentUpdatedEvent;
        encode(message: IntentUpdatedEvent, writer?: Writer): Writer;
        fromJSON(object: any): IntentUpdatedEvent;
        fromPartial(object: Partial<IntentUpdatedEvent>): IntentUpdatedEvent;
        toJSON(message: IntentUpdatedEvent): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1336,70 +1412,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgDisputeClaim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:513
  • encode:function
      - +
    • Parameters

      • -
        message: MsgDisputeClaim
      • +
        message: IntentUpdatedEvent
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:507
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns MsgDisputeClaim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:530
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<MsgDisputeClaim>
      -

      Returns MsgDisputeClaim

    +

    Returns IntentUpdatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:540
  • toJSON:function
      - +
    • Parameters

      • -
        message: MsgDisputeClaim
      +
      message: IntentUpdatedEvent

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/event.ts:535
  • -
    MsgDisputeClaimResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgDisputeClaimResponse;
        encode(_: MsgDisputeClaimResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgDisputeClaimResponse;
        fromPartial(_: Partial<MsgDisputeClaimResponse>): MsgDisputeClaimResponse;
        toJSON(_: MsgDisputeClaimResponse): unknown;
    }
    +
    MsgClaimIntent: {
        decode(input: Uint8Array | Reader, length?: number): MsgClaimIntent;
        encode(message: MsgClaimIntent, writer?: Writer): Writer;
        fromJSON(object: any): MsgClaimIntent;
        fromPartial(object: Partial<MsgClaimIntent>): MsgClaimIntent;
        toJSON(message: MsgClaimIntent): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1408,70 +1484,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgDisputeClaimResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1559
  • encode:function
      - +
    • Parameters

      • -
        _: MsgDisputeClaimResponse
      • +
        message: MsgClaimIntent
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1541
  • fromJSON:function
      - +
    • Parameters

      • -
        _: any
      -

      Returns MsgDisputeClaimResponse

    +

    Returns MsgClaimIntent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1588
  • fromPartial:function
      - +
    • Parameters

      • -
        _: Partial<MsgDisputeClaimResponse>
      -

      Returns MsgDisputeClaimResponse

    +

    Returns MsgClaimIntent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1614
  • toJSON:function
      - +
    • Parameters

      • -
        _: MsgDisputeClaimResponse
      +
      message: MsgClaimIntent

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1597
  • -
    MsgEvaluateClaim: {
        decode(input: Uint8Array | Reader, length?: number): MsgEvaluateClaim;
        encode(message: MsgEvaluateClaim, writer?: Writer): Writer;
        fromJSON(object: any): MsgEvaluateClaim;
        fromPartial(object: Partial<MsgEvaluateClaim>): MsgEvaluateClaim;
        toJSON(message: MsgEvaluateClaim): unknown;
    }
    +
    MsgClaimIntentResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgClaimIntentResponse;
        encode(message: MsgClaimIntentResponse, writer?: Writer): Writer;
        fromJSON(object: any): MsgClaimIntentResponse;
        fromPartial(object: Partial<MsgClaimIntentResponse>): MsgClaimIntentResponse;
        toJSON(message: MsgClaimIntentResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1480,70 +1556,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgEvaluateClaim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1640
  • encode:function
      - +
    • Parameters

      • -
        message: MsgEvaluateClaim
      • +
        message: MsgClaimIntentResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1631
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns MsgEvaluateClaim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1660
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<MsgEvaluateClaim>
      -

      Returns MsgEvaluateClaim

    +

    Returns MsgClaimIntentResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1672
  • toJSON:function
      - +
    • Parameters

      • -
        message: MsgEvaluateClaim
      +
      message: MsgClaimIntentResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1666
  • -
    MsgEvaluateClaimResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgEvaluateClaimResponse;
        encode(_: MsgEvaluateClaimResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgEvaluateClaimResponse;
        fromPartial(_: Partial<MsgEvaluateClaimResponse>): MsgEvaluateClaimResponse;
        toJSON(_: MsgEvaluateClaimResponse): unknown;
    }
    +
    MsgCreateCollection: {
        decode(input: Uint8Array | Reader, length?: number): MsgCreateCollection;
        encode(message: MsgCreateCollection, writer?: Writer): Writer;
        fromJSON(object: any): MsgCreateCollection;
        fromPartial(object: Partial<MsgCreateCollection>): MsgCreateCollection;
        toJSON(message: MsgCreateCollection): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1552,70 +1628,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgEvaluateClaimResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:375
  • encode:function
      - +
    • Parameters

      • -
        _: MsgEvaluateClaimResponse
      • +
        message: MsgCreateCollection
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:345
  • fromJSON:function
      - +
    • Parameters

      • -
        _: any
      -

      Returns MsgEvaluateClaimResponse

    +

    Returns MsgCreateCollection

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:416
  • fromPartial:function
      - +
    • Parameters

      • -
        _: Partial<MsgEvaluateClaimResponse>
      -

      Returns MsgEvaluateClaimResponse

    +

    Returns MsgCreateCollection

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:442
  • toJSON:function
      - +
    • Parameters

      • -
        _: MsgEvaluateClaimResponse
      +
      message: MsgCreateCollection

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:429
  • -
    MsgSubmitClaim: {
        decode(input: Uint8Array | Reader, length?: number): MsgSubmitClaim;
        encode(message: MsgSubmitClaim, writer?: Writer): Writer;
        fromJSON(object: any): MsgSubmitClaim;
        fromPartial(object: Partial<MsgSubmitClaim>): MsgSubmitClaim;
        toJSON(message: MsgSubmitClaim): unknown;
    }
    +
    MsgCreateCollectionResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgCreateCollectionResponse;
        encode(_: MsgCreateCollectionResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgCreateCollectionResponse;
        fromPartial(_: Partial<MsgCreateCollectionResponse>): MsgCreateCollectionResponse;
        toJSON(_: MsgCreateCollectionResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1624,70 +1700,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgSubmitClaim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:463
  • encode:function
      - +
    • Parameters

      • -
        message: MsgSubmitClaim
      • +
        _: MsgCreateCollectionResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:460
  • fromJSON:function
      - +
    • Parameters

      • -
        object: any
      -

      Returns MsgSubmitClaim

    +

    Returns MsgCreateCollectionResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:477
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<MsgSubmitClaim>
      -

      Returns MsgSubmitClaim

    +

    Returns MsgCreateCollectionResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:484
  • toJSON:function
      - +
    • Parameters

      • -
        message: MsgSubmitClaim
      +
      _: MsgCreateCollectionResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:480
  • -
    MsgSubmitClaimResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgSubmitClaimResponse;
        encode(_: MsgSubmitClaimResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgSubmitClaimResponse;
        fromPartial(_: Partial<MsgSubmitClaimResponse>): MsgSubmitClaimResponse;
        toJSON(_: MsgSubmitClaimResponse): unknown;
    }
    +
    MsgDisputeClaim: {
        decode(input: Uint8Array | Reader, length?: number): MsgDisputeClaim;
        encode(message: MsgDisputeClaim, writer?: Writer): Writer;
        fromJSON(object: any): MsgDisputeClaim;
        fromPartial(object: Partial<MsgDisputeClaim>): MsgDisputeClaim;
        toJSON(message: MsgDisputeClaim): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1696,70 +1772,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgSubmitClaimResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:859
  • encode:function
      - +
    • Parameters

      • -
        _: MsgSubmitClaimResponse
      • +
        message: MsgDisputeClaim
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:841
  • fromJSON:function
      - +
    • Parameters

      • -
        _: any
      -

      Returns MsgSubmitClaimResponse

    +

    Returns MsgDisputeClaim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:888
  • fromPartial:function
      - +
    • Parameters

      • -
        _: Partial<MsgSubmitClaimResponse>
      -

      Returns MsgSubmitClaimResponse

    +

    Returns MsgDisputeClaim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:906
  • toJSON:function
      - +
    • Parameters

      • -
        _: MsgSubmitClaimResponse
      +
      message: MsgDisputeClaim

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:897
  • -
    MsgUpdateCollectionDates: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionDates;
        encode(message: MsgUpdateCollectionDates, writer?: Writer): Writer;
        fromJSON(object: any): MsgUpdateCollectionDates;
        fromPartial(object: Partial<MsgUpdateCollectionDates>): MsgUpdateCollectionDates;
        toJSON(message: MsgUpdateCollectionDates): unknown;
    }
    +
    MsgDisputeClaimResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgDisputeClaimResponse;
        encode(_: MsgDisputeClaimResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgDisputeClaimResponse;
        fromPartial(_: Partial<MsgDisputeClaimResponse>): MsgDisputeClaimResponse;
        toJSON(_: MsgDisputeClaimResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1768,70 +1844,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgUpdateCollectionDates

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:923
  • encode:function
      - +
    • Parameters

      • -
        message: MsgUpdateCollectionDates
      • +
        _: MsgDisputeClaimResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:920
  • fromJSON:function
      - +
    • Parameters

      • -
        object: any
      -

      Returns MsgUpdateCollectionDates

    +

    Returns MsgDisputeClaimResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:937
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<MsgUpdateCollectionDates>
      -

      Returns MsgUpdateCollectionDates

    +

    Returns MsgDisputeClaimResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:944
  • toJSON:function
      - +
    • Parameters

      • -
        message: MsgUpdateCollectionDates
      +
      _: MsgDisputeClaimResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:940
  • -
    MsgUpdateCollectionDatesResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionDatesResponse;
        encode(_: MsgUpdateCollectionDatesResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgUpdateCollectionDatesResponse;
        fromPartial(_: Partial<MsgUpdateCollectionDatesResponse>): MsgUpdateCollectionDatesResponse;
        toJSON(_: MsgUpdateCollectionDatesResponse): unknown;
    }
    +
    MsgEvaluateClaim: {
        decode(input: Uint8Array | Reader, length?: number): MsgEvaluateClaim;
        encode(message: MsgEvaluateClaim, writer?: Writer): Writer;
        fromJSON(object: any): MsgEvaluateClaim;
        fromPartial(object: Partial<MsgEvaluateClaim>): MsgEvaluateClaim;
        toJSON(message: MsgEvaluateClaim): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1840,70 +1916,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgUpdateCollectionDatesResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:697
  • encode:function
      - +
    • Parameters

      • -
        _: MsgUpdateCollectionDatesResponse
      • +
        message: MsgEvaluateClaim
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:661
  • fromJSON:function
      - +
    • Parameters

      • -
        _: any
      -

      Returns MsgUpdateCollectionDatesResponse

    +

    Returns MsgEvaluateClaim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:744
  • fromPartial:function
      - +
    • Parameters

      • -
        _: Partial<MsgUpdateCollectionDatesResponse>
      -

      Returns MsgUpdateCollectionDatesResponse

    +

    Returns MsgEvaluateClaim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:782
  • toJSON:function
      - +
    • Parameters

      • -
        _: MsgUpdateCollectionDatesResponse
      +
      message: MsgEvaluateClaim

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:759
  • -
    MsgUpdateCollectionPayments: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionPayments;
        encode(message: MsgUpdateCollectionPayments, writer?: Writer): Writer;
        fromJSON(object: any): MsgUpdateCollectionPayments;
        fromPartial(object: Partial<MsgUpdateCollectionPayments>): MsgUpdateCollectionPayments;
        toJSON(message: MsgUpdateCollectionPayments): unknown;
    }
    +
    MsgEvaluateClaimResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgEvaluateClaimResponse;
        encode(_: MsgEvaluateClaimResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgEvaluateClaimResponse;
        fromPartial(_: Partial<MsgEvaluateClaimResponse>): MsgEvaluateClaimResponse;
        toJSON(_: MsgEvaluateClaimResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1912,70 +1988,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgUpdateCollectionPayments

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:805
  • encode:function
      - +
    • Parameters

      • -
        message: MsgUpdateCollectionPayments
      • +
        _: MsgEvaluateClaimResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:802
  • fromJSON:function
      - +
    • Parameters

      • -
        object: any
      -

      Returns MsgUpdateCollectionPayments

    +

    Returns MsgEvaluateClaimResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:819
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<MsgUpdateCollectionPayments>
      -

      Returns MsgUpdateCollectionPayments

    +

    Returns MsgEvaluateClaimResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:826
  • toJSON:function
      - +
    • Parameters

      • -
        message: MsgUpdateCollectionPayments
      +
      _: MsgEvaluateClaimResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:822
  • -
    MsgUpdateCollectionPaymentsResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionPaymentsResponse;
        encode(_: MsgUpdateCollectionPaymentsResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgUpdateCollectionPaymentsResponse;
        fromPartial(_: Partial<MsgUpdateCollectionPaymentsResponse>): MsgUpdateCollectionPaymentsResponse;
        toJSON(_: MsgUpdateCollectionPaymentsResponse): unknown;
    }
    +
    MsgSubmitClaim: {
        decode(input: Uint8Array | Reader, length?: number): MsgSubmitClaim;
        encode(message: MsgSubmitClaim, writer?: Writer): Writer;
        fromJSON(object: any): MsgSubmitClaim;
        fromPartial(object: Partial<MsgSubmitClaim>): MsgSubmitClaim;
        toJSON(message: MsgSubmitClaim): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -1984,70 +2060,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgUpdateCollectionPaymentsResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:529
  • encode:function
      - +
    • Parameters

      • -
        _: MsgUpdateCollectionPaymentsResponse
      • +
        message: MsgSubmitClaim
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:502
  • fromJSON:function
      - +
    • Parameters

      • -
        _: any
      -

      Returns MsgUpdateCollectionPaymentsResponse

    +

    Returns MsgSubmitClaim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:567
  • fromPartial:function
      - +
    • Parameters

      • -
        _: Partial<MsgUpdateCollectionPaymentsResponse>
      -

      Returns MsgUpdateCollectionPaymentsResponse

    +

    Returns MsgSubmitClaim

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:599
  • toJSON:function
      - +
    • Parameters

      • -
        _: MsgUpdateCollectionPaymentsResponse
      +
      message: MsgSubmitClaim

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:579
  • -
    MsgUpdateCollectionState: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionState;
        encode(message: MsgUpdateCollectionState, writer?: Writer): Writer;
        fromJSON(object: any): MsgUpdateCollectionState;
        fromPartial(object: Partial<MsgUpdateCollectionState>): MsgUpdateCollectionState;
        toJSON(message: MsgUpdateCollectionState): unknown;
    }
    +
    MsgSubmitClaimResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgSubmitClaimResponse;
        encode(_: MsgSubmitClaimResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgSubmitClaimResponse;
        fromPartial(_: Partial<MsgSubmitClaimResponse>): MsgSubmitClaimResponse;
        toJSON(_: MsgSubmitClaimResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2056,70 +2132,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgUpdateCollectionState

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:619
  • encode:function
      - +
    • Parameters

      • -
        message: MsgUpdateCollectionState
      • +
        _: MsgSubmitClaimResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:616
  • fromJSON:function
      - +
    • Parameters

      • -
        object: any
      -

      Returns MsgUpdateCollectionState

    +

    Returns MsgSubmitClaimResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:633
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<MsgUpdateCollectionState>
      -

      Returns MsgUpdateCollectionState

    +

    Returns MsgSubmitClaimResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:640
  • toJSON:function
      - +
    • Parameters

      • -
        message: MsgUpdateCollectionState
      +
      _: MsgSubmitClaimResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:636
  • -
    MsgUpdateCollectionStateResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionStateResponse;
        encode(_: MsgUpdateCollectionStateResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgUpdateCollectionStateResponse;
        fromPartial(_: Partial<MsgUpdateCollectionStateResponse>): MsgUpdateCollectionStateResponse;
        toJSON(_: MsgUpdateCollectionStateResponse): unknown;
    }
    +
    MsgUpdateCollectionDates: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionDates;
        encode(message: MsgUpdateCollectionDates, writer?: Writer): Writer;
        fromJSON(object: any): MsgUpdateCollectionDates;
        fromPartial(object: Partial<MsgUpdateCollectionDates>): MsgUpdateCollectionDates;
        toJSON(message: MsgUpdateCollectionDates): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2128,41 +2204,545 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns MsgUpdateCollectionStateResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1251
  • encode:function
      - +
    • Parameters

      • -
        _: MsgUpdateCollectionStateResponse
      • +
        message: MsgUpdateCollectionDates
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1236
  • fromJSON:function
      - +
    • Parameters

      • -
        _: any
      -

      Returns MsgUpdateCollectionStateResponse

    +

    Returns MsgUpdateCollectionDates

  • +
  • +
    fromPartial:function
    +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        object: Partial<MsgUpdateCollectionDates>
      +

      Returns MsgUpdateCollectionDates

  • +
  • +
    toJSON:function
    +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        message: MsgUpdateCollectionDates
      +

      Returns unknown

  • +
  • +
    MsgUpdateCollectionDatesResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionDatesResponse;
        encode(_: MsgUpdateCollectionDatesResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgUpdateCollectionDatesResponse;
        fromPartial(_: Partial<MsgUpdateCollectionDatesResponse>): MsgUpdateCollectionDatesResponse;
        toJSON(_: MsgUpdateCollectionDatesResponse): unknown;
    }
    +
      +
    • +
      decode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          input: Uint8Array | Reader
        • +
        • +
          Optional length: number
        +

        Returns MsgUpdateCollectionDatesResponse

    • +
    • +
      encode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: MsgUpdateCollectionDatesResponse
        • +
        • +
          writer: Writer = ...
        +

        Returns Writer

    • +
    • +
      fromJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: any
        +

        Returns MsgUpdateCollectionDatesResponse

    • +
    • +
      fromPartial:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: Partial<MsgUpdateCollectionDatesResponse>
        +

        Returns MsgUpdateCollectionDatesResponse

    • +
    • +
      toJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: MsgUpdateCollectionDatesResponse
        +

        Returns unknown

  • +
  • +
    MsgUpdateCollectionIntents: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionIntents;
        encode(message: MsgUpdateCollectionIntents, writer?: Writer): Writer;
        fromJSON(object: any): MsgUpdateCollectionIntents;
        fromPartial(object: Partial<MsgUpdateCollectionIntents>): MsgUpdateCollectionIntents;
        toJSON(message: MsgUpdateCollectionIntents): unknown;
    }
    +
      +
    • +
      decode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          input: Uint8Array | Reader
        • +
        • +
          Optional length: number
        +

        Returns MsgUpdateCollectionIntents

    • +
    • +
      encode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: MsgUpdateCollectionIntents
        • +
        • +
          writer: Writer = ...
        +

        Returns Writer

    • +
    • +
      fromJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: any
        +

        Returns MsgUpdateCollectionIntents

    • +
    • +
      fromPartial:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: Partial<MsgUpdateCollectionIntents>
        +

        Returns MsgUpdateCollectionIntents

    • +
    • +
      toJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: MsgUpdateCollectionIntents
        +

        Returns unknown

  • +
  • +
    MsgUpdateCollectionIntentsResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionIntentsResponse;
        encode(_: MsgUpdateCollectionIntentsResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgUpdateCollectionIntentsResponse;
        fromPartial(_: Partial<MsgUpdateCollectionIntentsResponse>): MsgUpdateCollectionIntentsResponse;
        toJSON(_: MsgUpdateCollectionIntentsResponse): unknown;
    }
    +
      +
    • +
      decode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          input: Uint8Array | Reader
        • +
        • +
          Optional length: number
        +

        Returns MsgUpdateCollectionIntentsResponse

    • +
    • +
      encode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: MsgUpdateCollectionIntentsResponse
        • +
        • +
          writer: Writer = ...
        +

        Returns Writer

    • +
    • +
      fromJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: any
        +

        Returns MsgUpdateCollectionIntentsResponse

    • +
    • +
      fromPartial:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: Partial<MsgUpdateCollectionIntentsResponse>
        +

        Returns MsgUpdateCollectionIntentsResponse

    • +
    • +
      toJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: MsgUpdateCollectionIntentsResponse
        +

        Returns unknown

  • +
  • +
    MsgUpdateCollectionPayments: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionPayments;
        encode(message: MsgUpdateCollectionPayments, writer?: Writer): Writer;
        fromJSON(object: any): MsgUpdateCollectionPayments;
        fromPartial(object: Partial<MsgUpdateCollectionPayments>): MsgUpdateCollectionPayments;
        toJSON(message: MsgUpdateCollectionPayments): unknown;
    }
    +
      +
    • +
      decode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          input: Uint8Array | Reader
        • +
        • +
          Optional length: number
        +

        Returns MsgUpdateCollectionPayments

    • +
    • +
      encode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: MsgUpdateCollectionPayments
        • +
        • +
          writer: Writer = ...
        +

        Returns Writer

    • +
    • +
      fromJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: any
        +

        Returns MsgUpdateCollectionPayments

    • +
    • +
      fromPartial:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: Partial<MsgUpdateCollectionPayments>
        +

        Returns MsgUpdateCollectionPayments

    • +
    • +
      toJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: MsgUpdateCollectionPayments
        +

        Returns unknown

  • +
  • +
    MsgUpdateCollectionPaymentsResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionPaymentsResponse;
        encode(_: MsgUpdateCollectionPaymentsResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgUpdateCollectionPaymentsResponse;
        fromPartial(_: Partial<MsgUpdateCollectionPaymentsResponse>): MsgUpdateCollectionPaymentsResponse;
        toJSON(_: MsgUpdateCollectionPaymentsResponse): unknown;
    }
    +
      +
    • +
      decode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          input: Uint8Array | Reader
        • +
        • +
          Optional length: number
        +

        Returns MsgUpdateCollectionPaymentsResponse

    • +
    • +
      encode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: MsgUpdateCollectionPaymentsResponse
        • +
        • +
          writer: Writer = ...
        +

        Returns Writer

    • +
    • +
      fromJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: any
        +

        Returns MsgUpdateCollectionPaymentsResponse

    • +
    • +
      fromPartial:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: Partial<MsgUpdateCollectionPaymentsResponse>
        +

        Returns MsgUpdateCollectionPaymentsResponse

    • +
    • +
      toJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: MsgUpdateCollectionPaymentsResponse
        +

        Returns unknown

  • +
  • +
    MsgUpdateCollectionState: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionState;
        encode(message: MsgUpdateCollectionState, writer?: Writer): Writer;
        fromJSON(object: any): MsgUpdateCollectionState;
        fromPartial(object: Partial<MsgUpdateCollectionState>): MsgUpdateCollectionState;
        toJSON(message: MsgUpdateCollectionState): unknown;
    }
    +
      +
    • +
      decode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          input: Uint8Array | Reader
        • +
        • +
          Optional length: number
        +

        Returns MsgUpdateCollectionState

    • +
    • +
      encode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: MsgUpdateCollectionState
        • +
        • +
          writer: Writer = ...
        +

        Returns Writer

    • +
    • +
      fromJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: any
        +

        Returns MsgUpdateCollectionState

    • +
    • +
      fromPartial:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: Partial<MsgUpdateCollectionState>
        +

        Returns MsgUpdateCollectionState

    • +
    • +
      toJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: MsgUpdateCollectionState
        +

        Returns unknown

  • +
  • +
    MsgUpdateCollectionStateResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgUpdateCollectionStateResponse;
        encode(_: MsgUpdateCollectionStateResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgUpdateCollectionStateResponse;
        fromPartial(_: Partial<MsgUpdateCollectionStateResponse>): MsgUpdateCollectionStateResponse;
        toJSON(_: MsgUpdateCollectionStateResponse): unknown;
    }
    +
      +
    • +
      decode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          input: Uint8Array | Reader
        • +
        • +
          Optional length: number
        +

        Returns MsgUpdateCollectionStateResponse

    • +
    • +
      encode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: MsgUpdateCollectionStateResponse
        • +
        • +
          writer: Writer = ...
        +

        Returns Writer

    • +
    • +
      fromJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          _: any
        +

        Returns MsgUpdateCollectionStateResponse

    • +
    • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1215
  • fromPartial:function
      - +
    • Parameters

      @@ -2171,11 +2751,11 @@

      Parameters

      _: Partial<MsgUpdateCollectionStateResponse>

    Returns MsgUpdateCollectionStateResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1222
  • toJSON:function
      - +
    • Parameters

      @@ -2184,14 +2764,14 @@

      Parameters

      _: MsgUpdateCollectionStateResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1218
  • MsgWithdrawPayment: {
        decode(input: Uint8Array | Reader, length?: number): MsgWithdrawPayment;
        encode(message: MsgWithdrawPayment, writer?: Writer): Writer;
        fromJSON(object: any): MsgWithdrawPayment;
        fromPartial(object: Partial<MsgWithdrawPayment>): MsgWithdrawPayment;
        toJSON(message: MsgWithdrawPayment): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2202,11 +2782,11 @@
        input: Uint8ArrayOptional length: number

      Returns MsgWithdrawPayment

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:997
  • encode:function
      - +
    • Parameters

      @@ -2217,11 +2797,11 @@
      message: MsgWithdrawPayment
    • writer: Writer = ...
  • Returns Writer

    +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:964
  • fromJSON:function
      - +
    • Parameters

      @@ -2230,11 +2810,11 @@

      Parameters

      object: any

    Returns MsgWithdrawPayment

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1041
  • fromPartial:function
      - +
    • Parameters

      @@ -2243,11 +2823,11 @@

      Parameters

      object: Partial<MsgWithdrawPayment>

    Returns MsgWithdrawPayment

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1081
  • toJSON:function
      - +
    • Parameters

      @@ -2256,14 +2836,14 @@

      Parameters

      message: MsgWithdrawPayment

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1055
  • MsgWithdrawPaymentResponse: {
        decode(input: Uint8Array | Reader, length?: number): MsgWithdrawPaymentResponse;
        encode(_: MsgWithdrawPaymentResponse, writer?: Writer): Writer;
        fromJSON(_: any): MsgWithdrawPaymentResponse;
        fromPartial(_: Partial<MsgWithdrawPaymentResponse>): MsgWithdrawPaymentResponse;
        toJSON(_: MsgWithdrawPaymentResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2274,11 +2854,11 @@
        input: Uint8ArrayOptional length: number

      Returns MsgWithdrawPaymentResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1103
  • encode:function
      - +
    • Parameters

      @@ -2289,11 +2869,11 @@
      _: MsgWithdrawPaymentResponse
      writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1100
  • fromJSON:function
      - +
    • Parameters

      @@ -2302,11 +2882,11 @@

      Parameters

      _: any

    Returns MsgWithdrawPaymentResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1117
  • fromPartial:function
      - +
    • Parameters

      @@ -2315,11 +2895,11 @@

      Parameters

      _: Partial<MsgWithdrawPaymentResponse>

    Returns MsgWithdrawPaymentResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1124
  • toJSON:function
      - +
    • Parameters

      @@ -2328,14 +2908,14 @@

      Parameters

      _: MsgWithdrawPaymentResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/tx.ts:1120
  • Params: {
        decode(input: Uint8Array | Reader, length?: number): Params;
        encode(message: Params, writer?: Writer): Writer;
        fromJSON(object: any): Params;
        fromPartial(object: Partial<Params>): Params;
        toJSON(message: Params): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2346,11 +2926,11 @@
        input: Uint8ArrayOptional length: number

      Returns Params

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:664
  • encode:function
      - +
    • Parameters

      @@ -2361,11 +2941,11 @@
      message: Params
    • writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:646
  • fromJSON:function
      - +
    • Parameters

      @@ -2374,11 +2954,11 @@

      Parameters

      object: any

    Returns Params

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:693
  • fromPartial:function
      - +
    • Parameters

      @@ -2387,11 +2967,11 @@

      Parameters

      object: Partial<Params>

    Returns Params

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:711
  • toJSON:function
      - +
    • Parameters

      @@ -2400,14 +2980,306 @@

      Parameters

      message: Params

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:702
  • Payment: {
        decode(input: Uint8Array | Reader, length?: number): Payment;
        encode(message: Payment, writer?: Writer): Writer;
        fromJSON(object: any): Payment;
        fromPartial(object: Partial<Payment>): Payment;
        toJSON(message: Payment): unknown;
    }
    • decode:function
        - + +
      • +
        +

        Parameters

        +
          +
        • +
          input: Uint8Array | Reader
        • +
        • +
          Optional length: number
        +

        Returns Payment

    • +
    • +
      encode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: Payment
        • +
        • +
          writer: Writer = ...
        +

        Returns Writer

    • +
    • +
      fromJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: any
        +

        Returns Payment

    • +
    • +
      fromPartial:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: Partial<Payment>
        +

        Returns Payment

    • +
    • +
      toJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: Payment
        +

        Returns unknown

  • +
  • +
    PaymentStatusSDKType: typeof PaymentStatus
  • +
  • +
    PaymentTypeSDKType: typeof PaymentType
  • +
  • +
    PaymentWithdrawCreatedEvent: {
        decode(input: Uint8Array | Reader, length?: number): PaymentWithdrawCreatedEvent;
        encode(message: PaymentWithdrawCreatedEvent, writer?: Writer): Writer;
        fromJSON(object: any): PaymentWithdrawCreatedEvent;
        fromPartial(object: Partial<PaymentWithdrawCreatedEvent>): PaymentWithdrawCreatedEvent;
        toJSON(message: PaymentWithdrawCreatedEvent): unknown;
    }
    +
      +
    • +
      decode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          input: Uint8Array | Reader
        • +
        • +
          Optional length: number
        +

        Returns PaymentWithdrawCreatedEvent

    • +
    • +
      encode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: PaymentWithdrawCreatedEvent
        • +
        • +
          writer: Writer = ...
        +

        Returns Writer

    • +
    • +
      fromJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: any
        +

        Returns PaymentWithdrawCreatedEvent

    • +
    • +
      fromPartial:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: Partial<PaymentWithdrawCreatedEvent>
        +

        Returns PaymentWithdrawCreatedEvent

    • +
    • +
      toJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: PaymentWithdrawCreatedEvent
        +

        Returns unknown

  • +
  • +
    PaymentWithdrawnEvent: {
        decode(input: Uint8Array | Reader, length?: number): PaymentWithdrawnEvent;
        encode(message: PaymentWithdrawnEvent, writer?: Writer): Writer;
        fromJSON(object: any): PaymentWithdrawnEvent;
        fromPartial(object: Partial<PaymentWithdrawnEvent>): PaymentWithdrawnEvent;
        toJSON(message: PaymentWithdrawnEvent): unknown;
    }
    +
      +
    • +
      decode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          input: Uint8Array | Reader
        • +
        • +
          Optional length: number
        +

        Returns PaymentWithdrawnEvent

    • +
    • +
      encode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: PaymentWithdrawnEvent
        • +
        • +
          writer: Writer = ...
        +

        Returns Writer

    • +
    • +
      fromJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: any
        +

        Returns PaymentWithdrawnEvent

    • +
    • +
      fromPartial:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: Partial<PaymentWithdrawnEvent>
        +

        Returns PaymentWithdrawnEvent

    • +
    • +
      toJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: PaymentWithdrawnEvent
        +

        Returns unknown

  • +
  • +
    Payments: {
        decode(input: Uint8Array | Reader, length?: number): Payments;
        encode(message: Payments, writer?: Writer): Writer;
        fromJSON(object: any): Payments;
        fromPartial(object: Partial<Payments>): Payments;
        toJSON(message: Payments): unknown;
    }
    +
      +
    • +
      decode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          input: Uint8Array | Reader
        • +
        • +
          Optional length: number
        +

        Returns Payments

    • +
    • +
      encode:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: Payments
        • +
        • +
          writer: Writer = ...
        +

        Returns Writer

    • +
    • +
      fromJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: any
        +

        Returns Payments

    • +
    • +
      fromPartial:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          object: Partial<Payments>
        +

        Returns Payments

    • +
    • +
      toJSON:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          message: Payments
        +

        Returns unknown

  • +
  • +
    QueryClaimListRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryClaimListRequest;
        encode(message: QueryClaimListRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryClaimListRequest;
        fromPartial(object: Partial<QueryClaimListRequest>): QueryClaimListRequest;
        toJSON(message: QueryClaimListRequest): unknown;
    }
    +
      +
    • +
      decode:function
      +
        +
      • Parameters

        @@ -2416,74 +3288,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns Payment

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:497
  • encode:function
      - +
    • Parameters

      • -
        message: Payment
      • +
        message: QueryClaimListRequest
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:491
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns Payment

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:514
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<Payment>
      -

      Returns Payment

    +

    Returns QueryClaimListRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:524
  • toJSON:function
      - +
    • Parameters

      • -
        message: Payment
      +
      message: QueryClaimListRequest

    Returns unknown

  • -
  • -
    PaymentStatusSDKType: typeof PaymentStatus
  • -
  • -
    PaymentTypeSDKType: typeof PaymentType
  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:519
  • -
    PaymentWithdrawCreatedEvent: {
        decode(input: Uint8Array | Reader, length?: number): PaymentWithdrawCreatedEvent;
        encode(message: PaymentWithdrawCreatedEvent, writer?: Writer): Writer;
        fromJSON(object: any): PaymentWithdrawCreatedEvent;
        fromPartial(object: Partial<PaymentWithdrawCreatedEvent>): PaymentWithdrawCreatedEvent;
        toJSON(message: PaymentWithdrawCreatedEvent): unknown;
    }
    +
    QueryClaimListResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryClaimListResponse;
        encode(message: QueryClaimListResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryClaimListResponse;
        fromPartial(object: Partial<QueryClaimListResponse>): QueryClaimListResponse;
        toJSON(message: QueryClaimListResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2492,70 +3360,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns PaymentWithdrawCreatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:546
  • encode:function
      - +
    • Parameters

      • -
        message: PaymentWithdrawCreatedEvent
      • +
        message: QueryClaimListResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:537
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns PaymentWithdrawCreatedEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:566
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<PaymentWithdrawCreatedEvent>
      -

      Returns PaymentWithdrawCreatedEvent

    +

    Returns QueryClaimListResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:582
  • toJSON:function
      - +
    • Parameters

      • -
        message: PaymentWithdrawCreatedEvent
      +
      message: QueryClaimListResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:572
  • -
    PaymentWithdrawnEvent: {
        decode(input: Uint8Array | Reader, length?: number): PaymentWithdrawnEvent;
        encode(message: PaymentWithdrawnEvent, writer?: Writer): Writer;
        fromJSON(object: any): PaymentWithdrawnEvent;
        fromPartial(object: Partial<PaymentWithdrawnEvent>): PaymentWithdrawnEvent;
        toJSON(message: PaymentWithdrawnEvent): unknown;
    }
    +
    QueryClaimRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryClaimRequest;
        encode(message: QueryClaimRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryClaimRequest;
        fromPartial(object: Partial<QueryClaimRequest>): QueryClaimRequest;
        toJSON(message: QueryClaimRequest): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2564,70 +3432,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns PaymentWithdrawnEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:407
  • encode:function
      - +
    • Parameters

      • -
        message: PaymentWithdrawnEvent
      • +
        message: QueryClaimRequest
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:401
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns PaymentWithdrawnEvent

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:424
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<PaymentWithdrawnEvent>
      -

      Returns PaymentWithdrawnEvent

    +

    Returns QueryClaimRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:434
  • toJSON:function
      - +
    • Parameters

      • -
        message: PaymentWithdrawnEvent
      +
      message: QueryClaimRequest

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:429
  • -
    Payments: {
        decode(input: Uint8Array | Reader, length?: number): Payments;
        encode(message: Payments, writer?: Writer): Writer;
        fromJSON(object: any): Payments;
        fromPartial(object: Partial<Payments>): Payments;
        toJSON(message: Payments): unknown;
    }
    +
    QueryClaimResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryClaimResponse;
        encode(message: QueryClaimResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryClaimResponse;
        fromPartial(object: Partial<QueryClaimResponse>): QueryClaimResponse;
        toJSON(message: QueryClaimResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2636,70 +3504,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns Payments

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:452
  • encode:function
      - +
    • Parameters

      • -
        message: Payments
      • +
        message: QueryClaimResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:446
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns Payments

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:469
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<Payments>
      -

      Returns Payments

    +

    Returns QueryClaimResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:479
  • toJSON:function
      - +
    • Parameters

      • -
        message: Payments
      +
      message: QueryClaimResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:474
  • -
    QueryClaimListRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryClaimListRequest;
        encode(message: QueryClaimListRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryClaimListRequest;
        fromPartial(object: Partial<QueryClaimListRequest>): QueryClaimListRequest;
        toJSON(message: QueryClaimListRequest): unknown;
    }
    +
    QueryCollectionListRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryCollectionListRequest;
        encode(message: QueryCollectionListRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryCollectionListRequest;
        fromPartial(object: Partial<QueryCollectionListRequest>): QueryCollectionListRequest;
        toJSON(message: QueryCollectionListRequest): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2708,70 +3576,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns QueryClaimListRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:303
  • encode:function
      - +
    • Parameters

      • -
        message: QueryClaimListRequest
      • +
        message: QueryCollectionListRequest
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:297
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns QueryClaimListRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:320
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<QueryClaimListRequest>
      -

      Returns QueryClaimListRequest

    +

    Returns QueryCollectionListRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:330
  • toJSON:function
      - +
    • Parameters

      • -
        message: QueryClaimListRequest
      +
      message: QueryCollectionListRequest

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:325
  • -
    QueryClaimListResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryClaimListResponse;
        encode(message: QueryClaimListResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryClaimListResponse;
        fromPartial(object: Partial<QueryClaimListResponse>): QueryClaimListResponse;
        toJSON(message: QueryClaimListResponse): unknown;
    }
    +
    QueryCollectionListResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryCollectionListResponse;
        encode(message: QueryCollectionListResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryCollectionListResponse;
        fromPartial(object: Partial<QueryCollectionListResponse>): QueryCollectionListResponse;
        toJSON(message: QueryCollectionListResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2780,70 +3648,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns QueryClaimListResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:352
  • encode:function
      - +
    • Parameters

      • -
        message: QueryClaimListResponse
      • +
        message: QueryCollectionListResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:343
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns QueryClaimListResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:372
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<QueryClaimListResponse>
      -

      Returns QueryClaimListResponse

    +

    Returns QueryCollectionListResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:388
  • toJSON:function
      - +
    • Parameters

      • -
        message: QueryClaimListResponse
      +
      message: QueryCollectionListResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:378
  • -
    QueryClaimRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryClaimRequest;
        encode(message: QueryClaimRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryClaimRequest;
        fromPartial(object: Partial<QueryClaimRequest>): QueryClaimRequest;
        toJSON(message: QueryClaimRequest): unknown;
    }
    +
    QueryCollectionRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryCollectionRequest;
        encode(message: QueryCollectionRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryCollectionRequest;
        fromPartial(object: Partial<QueryCollectionRequest>): QueryCollectionRequest;
        toJSON(message: QueryCollectionRequest): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2852,70 +3720,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns QueryClaimRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:213
  • encode:function
      - +
    • Parameters

      • -
        message: QueryClaimRequest
      • +
        message: QueryCollectionRequest
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:207
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns QueryClaimRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:230
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<QueryClaimRequest>
      -

      Returns QueryClaimRequest

    +

    Returns QueryCollectionRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:240
  • toJSON:function
      - +
    • Parameters

      • -
        message: QueryClaimRequest
      +
      message: QueryCollectionRequest

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:235
  • -
    QueryClaimResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryClaimResponse;
        encode(message: QueryClaimResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryClaimResponse;
        fromPartial(object: Partial<QueryClaimResponse>): QueryClaimResponse;
        toJSON(message: QueryClaimResponse): unknown;
    }
    +
    QueryCollectionResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryCollectionResponse;
        encode(message: QueryCollectionResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryCollectionResponse;
        fromPartial(object: Partial<QueryCollectionResponse>): QueryCollectionResponse;
        toJSON(message: QueryCollectionResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2924,70 +3792,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns QueryClaimResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:258
  • encode:function
      - +
    • Parameters

      • -
        message: QueryClaimResponse
      • +
        message: QueryCollectionResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:252
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns QueryClaimResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:275
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<QueryClaimResponse>
      -

      Returns QueryClaimResponse

    +

    Returns QueryCollectionResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:285
  • toJSON:function
      - +
    • Parameters

      • -
        message: QueryClaimResponse
      +
      message: QueryCollectionResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:280
  • -
    QueryCollectionListRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryCollectionListRequest;
        encode(message: QueryCollectionListRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryCollectionListRequest;
        fromPartial(object: Partial<QueryCollectionListRequest>): QueryCollectionListRequest;
        toJSON(message: QueryCollectionListRequest): unknown;
    }
    +
    QueryDisputeListRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryDisputeListRequest;
        encode(message: QueryDisputeListRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryDisputeListRequest;
        fromPartial(object: Partial<QueryDisputeListRequest>): QueryDisputeListRequest;
        toJSON(message: QueryDisputeListRequest): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -2996,70 +3864,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns QueryCollectionListRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:691
  • encode:function
      - +
    • Parameters

      • -
        message: QueryCollectionListRequest
      • +
        message: QueryDisputeListRequest
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:685
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns QueryCollectionListRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:708
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<QueryCollectionListRequest>
      -

      Returns QueryCollectionListRequest

    +

    Returns QueryDisputeListRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:718
  • toJSON:function
      - +
    • Parameters

      • -
        message: QueryCollectionListRequest
      +
      message: QueryDisputeListRequest

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:713
  • -
    QueryCollectionListResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryCollectionListResponse;
        encode(message: QueryCollectionListResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryCollectionListResponse;
        fromPartial(object: Partial<QueryCollectionListResponse>): QueryCollectionListResponse;
        toJSON(message: QueryCollectionListResponse): unknown;
    }
    +
    QueryDisputeListResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryDisputeListResponse;
        encode(message: QueryDisputeListResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryDisputeListResponse;
        fromPartial(object: Partial<QueryDisputeListResponse>): QueryDisputeListResponse;
        toJSON(message: QueryDisputeListResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3068,70 +3936,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns QueryCollectionListResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:740
  • encode:function
      - +
    • Parameters

      • -
        message: QueryCollectionListResponse
      • +
        message: QueryDisputeListResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:731
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns QueryCollectionListResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:760
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<QueryCollectionListResponse>
      -

      Returns QueryCollectionListResponse

    +

    Returns QueryDisputeListResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:776
  • toJSON:function
      - +
    • Parameters

      • -
        message: QueryCollectionListResponse
      +
      message: QueryDisputeListResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:766
  • -
    QueryCollectionRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryCollectionRequest;
        encode(message: QueryCollectionRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryCollectionRequest;
        fromPartial(object: Partial<QueryCollectionRequest>): QueryCollectionRequest;
        toJSON(message: QueryCollectionRequest): unknown;
    }
    +
    QueryDisputeRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryDisputeRequest;
        encode(message: QueryDisputeRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryDisputeRequest;
        fromPartial(object: Partial<QueryDisputeRequest>): QueryDisputeRequest;
        toJSON(message: QueryDisputeRequest): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3140,70 +4008,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns QueryCollectionRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:601
  • encode:function
      - +
    • Parameters

      • -
        message: QueryCollectionRequest
      • +
        message: QueryDisputeRequest
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:595
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns QueryCollectionRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:618
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<QueryCollectionRequest>
      -

      Returns QueryCollectionRequest

    +

    Returns QueryDisputeRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:628
  • toJSON:function
      - +
    • Parameters

      • -
        message: QueryCollectionRequest
      +
      message: QueryDisputeRequest

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:623
  • -
    QueryCollectionResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryCollectionResponse;
        encode(message: QueryCollectionResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryCollectionResponse;
        fromPartial(object: Partial<QueryCollectionResponse>): QueryCollectionResponse;
        toJSON(message: QueryCollectionResponse): unknown;
    }
    +
    QueryDisputeResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryDisputeResponse;
        encode(message: QueryDisputeResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryDisputeResponse;
        fromPartial(object: Partial<QueryDisputeResponse>): QueryDisputeResponse;
        toJSON(message: QueryDisputeResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3212,70 +4080,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns QueryCollectionResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:646
  • encode:function
      - +
    • Parameters

      • -
        message: QueryCollectionResponse
      • +
        message: QueryDisputeResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:640
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns QueryCollectionResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:663
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<QueryCollectionResponse>
      -

      Returns QueryCollectionResponse

    +

    Returns QueryDisputeResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:673
  • toJSON:function
      - +
    • Parameters

      • -
        message: QueryCollectionResponse
      +
      message: QueryDisputeResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:668
  • -
    QueryDisputeListRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryDisputeListRequest;
        encode(message: QueryDisputeListRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryDisputeListRequest;
        fromPartial(object: Partial<QueryDisputeListRequest>): QueryDisputeListRequest;
        toJSON(message: QueryDisputeListRequest): unknown;
    }
    +
    QueryIntentListRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryIntentListRequest;
        encode(message: QueryIntentListRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryIntentListRequest;
        fromPartial(object: Partial<QueryIntentListRequest>): QueryIntentListRequest;
        toJSON(message: QueryIntentListRequest): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3284,70 +4152,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns QueryDisputeListRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:905
  • encode:function
      - +
    • Parameters

      • -
        message: QueryDisputeListRequest
      • +
        message: QueryIntentListRequest
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:899
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns QueryDisputeListRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:922
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<QueryDisputeListRequest>
      -

      Returns QueryDisputeListRequest

    +

    Returns QueryIntentListRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:932
  • toJSON:function
      - +
    • Parameters

      • -
        message: QueryDisputeListRequest
      +
      message: QueryIntentListRequest

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:927
  • -
    QueryDisputeListResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryDisputeListResponse;
        encode(message: QueryDisputeListResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryDisputeListResponse;
        fromPartial(object: Partial<QueryDisputeListResponse>): QueryDisputeListResponse;
        toJSON(message: QueryDisputeListResponse): unknown;
    }
    +
    QueryIntentListResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryIntentListResponse;
        encode(message: QueryIntentListResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryIntentListResponse;
        fromPartial(object: Partial<QueryIntentListResponse>): QueryIntentListResponse;
        toJSON(message: QueryIntentListResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3356,70 +4224,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns QueryDisputeListResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:954
  • encode:function
      - +
    • Parameters

      • -
        message: QueryDisputeListResponse
      • +
        message: QueryIntentListResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:945
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns QueryDisputeListResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:974
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<QueryDisputeListResponse>
      -

      Returns QueryDisputeListResponse

    +

    Returns QueryIntentListResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:990
  • toJSON:function
      - +
    • Parameters

      • -
        message: QueryDisputeListResponse
      +
      message: QueryIntentListResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:980
  • -
    QueryDisputeRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryDisputeRequest;
        encode(message: QueryDisputeRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryDisputeRequest;
        fromPartial(object: Partial<QueryDisputeRequest>): QueryDisputeRequest;
        toJSON(message: QueryDisputeRequest): unknown;
    }
    +
    QueryIntentRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryIntentRequest;
        encode(message: QueryIntentRequest, writer?: Writer): Writer;
        fromJSON(object: any): QueryIntentRequest;
        fromPartial(object: Partial<QueryIntentRequest>): QueryIntentRequest;
        toJSON(message: QueryIntentRequest): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3428,70 +4296,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns QueryDisputeRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:803
  • encode:function
      - +
    • Parameters

      • -
        message: QueryDisputeRequest
      • +
        message: QueryIntentRequest
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:791
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns QueryDisputeRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:826
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<QueryDisputeRequest>
      -

      Returns QueryDisputeRequest

    +

    Returns QueryIntentRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:840
  • toJSON:function
      - +
    • Parameters

      • -
        message: QueryDisputeRequest
      +
      message: QueryIntentRequest

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:833
  • -
    QueryDisputeResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryDisputeResponse;
        encode(message: QueryDisputeResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryDisputeResponse;
        fromPartial(object: Partial<QueryDisputeResponse>): QueryDisputeResponse;
        toJSON(message: QueryDisputeResponse): unknown;
    }
    +
    QueryIntentResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryIntentResponse;
        encode(message: QueryIntentResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryIntentResponse;
        fromPartial(object: Partial<QueryIntentResponse>): QueryIntentResponse;
        toJSON(message: QueryIntentResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3500,70 +4368,70 @@

        Parameters

        input: Uint8Array | Reader
      • Optional length: number
      -

      Returns QueryDisputeResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:860
  • encode:function
      - +
    • Parameters

      • -
        message: QueryDisputeResponse
      • +
        message: QueryIntentResponse
      • writer: Writer = ...

      Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:854
  • fromJSON:function
      - +
    • Parameters

      • object: any
      -

      Returns QueryDisputeResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:877
  • fromPartial:function
      - +
    • Parameters

      • -
        object: Partial<QueryDisputeResponse>
      -

      Returns QueryDisputeResponse

    +

    Returns QueryIntentResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:887
  • toJSON:function
      - +
    • Parameters

      • -
        message: QueryDisputeResponse
      +
      message: QueryIntentResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:882
  • QueryParamsRequest: {
        decode(input: Uint8Array | Reader, length?: number): QueryParamsRequest;
        encode(_: QueryParamsRequest, writer?: Writer): Writer;
        fromJSON(_: any): QueryParamsRequest;
        fromPartial(_: Partial<QueryParamsRequest>): QueryParamsRequest;
        toJSON(_: QueryParamsRequest): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3574,11 +4442,11 @@
        input: Uint8ArrayOptional length: number

      Returns QueryParamsRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:130
  • encode:function
      - +
    • Parameters

      @@ -3589,11 +4457,11 @@
      _: QueryParamsRequest
    • writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:127
  • fromJSON:function
      - +
    • Parameters

      @@ -3602,11 +4470,11 @@

      Parameters

      _: any

    Returns QueryParamsRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:144
  • fromPartial:function
      - +
    • Parameters

      @@ -3615,11 +4483,11 @@

      Parameters

      _: Partial<QueryParamsRequest>

    Returns QueryParamsRequest

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:151
  • toJSON:function
      - +
    • Parameters

      @@ -3628,14 +4496,14 @@

      Parameters

      _: QueryParamsRequest

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:147
  • QueryParamsResponse: {
        decode(input: Uint8Array | Reader, length?: number): QueryParamsResponse;
        encode(message: QueryParamsResponse, writer?: Writer): Writer;
        fromJSON(object: any): QueryParamsResponse;
        fromPartial(object: Partial<QueryParamsResponse>): QueryParamsResponse;
        toJSON(message: QueryParamsResponse): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3646,11 +4514,11 @@
        input: Uint8ArrayOptional length: number

      Returns QueryParamsResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:168
  • encode:function
      - +
    • Parameters

      @@ -3661,11 +4529,11 @@
      message: QueryParamsResponse
      writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:162
  • fromJSON:function
      - +
    • Parameters

      @@ -3674,11 +4542,11 @@

      Parameters

      object: any

    Returns QueryParamsResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:185
  • fromPartial:function
      - +
    • Parameters

      @@ -3687,11 +4555,11 @@

      Parameters

      object: Partial<QueryParamsResponse>

    Returns QueryParamsResponse

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:195
  • toJSON:function
      - +
    • Parameters

      @@ -3700,14 +4568,14 @@

      Parameters

      message: QueryParamsResponse

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.ts:190
  • SubmitClaimAuthorization: {
        decode(input: Uint8Array | Reader, length?: number): SubmitClaimAuthorization;
        encode(message: SubmitClaimAuthorization, writer?: Writer): Writer;
        fromJSON(object: any): SubmitClaimAuthorization;
        fromPartial(object: Partial<SubmitClaimAuthorization>): SubmitClaimAuthorization;
        toJSON(message: SubmitClaimAuthorization): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3718,11 +4586,11 @@
        input: Uint8ArrayOptional length: number

      Returns SubmitClaimAuthorization

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:143
  • encode:function
      - +
    • Parameters

      @@ -3733,11 +4601,11 @@
      message: SubmitClaimAuthorizationwriter: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:134
  • fromJSON:function
      - +
    • Parameters

      @@ -3746,11 +4614,11 @@

      Parameters

      object: any

    Returns SubmitClaimAuthorization

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:163
  • fromPartial:function
      - +
    • Parameters

      @@ -3759,11 +4627,11 @@

      Parameters

      object: Partial<SubmitClaimAuthorization>

    Returns SubmitClaimAuthorization

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:179
  • toJSON:function
      - +
    • Parameters

      @@ -3772,14 +4640,14 @@

      Parameters

      message: SubmitClaimAuthorization

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:169
  • SubmitClaimConstraints: {
        decode(input: Uint8Array | Reader, length?: number): SubmitClaimConstraints;
        encode(message: SubmitClaimConstraints, writer?: Writer): Writer;
        fromJSON(object: any): SubmitClaimConstraints;
        fromPartial(object: Partial<SubmitClaimConstraints>): SubmitClaimConstraints;
        toJSON(message: SubmitClaimConstraints): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3790,11 +4658,11 @@
        input: Uint8ArrayOptional length: number

      Returns SubmitClaimConstraints

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:214
  • encode:function
      - +
    • Parameters

      @@ -3805,11 +4673,11 @@
      message: SubmitClaimConstraints
      writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:196
  • fromJSON:function
      - +
    • Parameters

      @@ -3818,11 +4686,11 @@

      Parameters

      object: any

    Returns SubmitClaimConstraints

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:243
  • fromPartial:function
      - +
    • Parameters

      @@ -3831,11 +4699,11 @@

      Parameters

      object: Partial<SubmitClaimConstraints>

    Returns SubmitClaimConstraints

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:269
  • toJSON:function
      - +
    • Parameters

      @@ -3844,14 +4712,14 @@

      Parameters

      message: SubmitClaimConstraints

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:252
  • WithdrawPaymentAuthorization: {
        decode(input: Uint8Array | Reader, length?: number): WithdrawPaymentAuthorization;
        encode(message: WithdrawPaymentAuthorization, writer?: Writer): Writer;
        fromJSON(object: any): WithdrawPaymentAuthorization;
        fromPartial(object: Partial<WithdrawPaymentAuthorization>): WithdrawPaymentAuthorization;
        toJSON(message: WithdrawPaymentAuthorization): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3862,11 +4730,11 @@
        input: Uint8ArrayOptional length: number

      Returns WithdrawPaymentAuthorization

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:461
  • encode:function
      - +
    • Parameters

      @@ -3877,11 +4745,11 @@
      message: WithdrawPaymentAuthorizationwriter: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:452
  • fromJSON:function
      - +
    • Parameters

      @@ -3890,11 +4758,11 @@

      Parameters

      object: any

    Returns WithdrawPaymentAuthorization

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:481
  • fromPartial:function
      - +
    • Parameters

      @@ -3903,11 +4771,11 @@

      Parameters

      object: Partial<WithdrawPaymentAuthorization>

    Returns WithdrawPaymentAuthorization

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:497
  • toJSON:function
      - +
    • Parameters

      @@ -3916,14 +4784,14 @@

      Parameters

      message: WithdrawPaymentAuthorization

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:487
  • WithdrawPaymentConstraints: {
        decode(input: Uint8Array | Reader, length?: number): WithdrawPaymentConstraints;
        encode(message: WithdrawPaymentConstraints, writer?: Writer): Writer;
        fromJSON(object: any): WithdrawPaymentConstraints;
        fromPartial(object: Partial<WithdrawPaymentConstraints>): WithdrawPaymentConstraints;
        toJSON(message: WithdrawPaymentConstraints): unknown;
    }
    • decode:function
        - +
      • Parameters

        @@ -3934,11 +4802,11 @@
        input: Uint8ArrayOptional length: number

      Returns WithdrawPaymentConstraints

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:548
  • encode:function
      - +
    • Parameters

      @@ -3949,11 +4817,11 @@
      message: WithdrawPaymentConstraints<
      writer: Writer = ...

    Returns Writer

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:518
  • fromJSON:function
      - +
    • Parameters

      @@ -3962,11 +4830,11 @@

      Parameters

      object: any

    Returns WithdrawPaymentConstraints

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:589
  • fromPartial:function
      - +
    • Parameters

      @@ -3975,11 +4843,11 @@

      Parameters

      object: Partial<WithdrawPaymentConstraints>

    Returns WithdrawPaymentConstraints

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:627
  • toJSON:function
      - +
    • Parameters

      @@ -3988,25 +4856,25 @@

      Parameters

      message: WithdrawPaymentConstraints

    Returns unknown

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/authz.ts:602
  • -
    createRpcQueryExtension: ((base: QueryClient) => {
        claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
        claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
        collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
        collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
        dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
        disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
    })
    +
    createRpcQueryExtension: ((base: QueryClient) => {
        claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
        claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
        collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
        collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
        dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
        disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
        intent(request: QueryIntentRequest): Promise<QueryIntentResponse>;
        intentList(request?: QueryIntentListRequest): Promise<QueryIntentListResponse>;
        params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
    })
      • -
      • (base: QueryClient): {
            claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
            claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
            collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
            collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
            dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
            disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
            params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
        }
      • +
      • (base: QueryClient): {
            claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
            claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
            collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
            collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
            dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
            disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
            intent(request: QueryIntentRequest): Promise<QueryIntentResponse>;
            intentList(request?: QueryIntentListRequest): Promise<QueryIntentListResponse>;
            params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
        }
      • Parameters

        • base: QueryClient
        -

        Returns {
            claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
            claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
            collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
            collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
            dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
            disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
            params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
        }

        +

        Returns {
            claim(request: QueryClaimRequest): Promise<QueryClaimResponse>;
            claimList(request?: QueryClaimListRequest): Promise<QueryClaimListResponse>;
            collection(request: QueryCollectionRequest): Promise<QueryCollectionResponse>;
            collectionList(request?: QueryCollectionListRequest): Promise<QueryCollectionListResponse>;
            dispute(request: QueryDisputeRequest): Promise<QueryDisputeResponse>;
            disputeList(request?: QueryDisputeListRequest): Promise<QueryDisputeListResponse>;
            intent(request: QueryIntentRequest): Promise<QueryIntentResponse>;
            intentList(request?: QueryIntentListRequest): Promise<QueryIntentListResponse>;
            params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
        }

        • claim:function
            - +
          • Parameters

            @@ -4015,11 +4883,11 @@

            Parameters

            request: QueryClaimRequest

          Returns Promise<QueryClaimResponse>

      • +
      • Defined in src/codegen/ixo/claims/v1beta1/query.rpc.Query.ts:100
  • claimList:function
      - +
    • Parameters

      @@ -4028,11 +4896,11 @@

      Parameters

      Optional request: QueryClaimListRequest

    Returns Promise<QueryClaimListResponse>

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.rpc.Query.ts:103
  • collection:function
      - +
    • Parameters

      @@ -4041,11 +4909,11 @@

      Parameters

      request: QueryCollectionRequest

    Returns Promise<QueryCollectionResponse>

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.rpc.Query.ts:94
  • collectionList:function
      - +
    • Parameters

      @@ -4054,11 +4922,11 @@

      Parameters

      Optional request: QueryCollectionListRequest

    Returns Promise<QueryCollectionListResponse>

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.rpc.Query.ts:97
  • dispute:function
      - +
    • Parameters

      @@ -4067,11 +4935,11 @@

      Parameters

      request: QueryDisputeRequest

    Returns Promise<QueryDisputeResponse>

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.rpc.Query.ts:106
  • disputeList:function
      - +
    • Parameters

      @@ -4080,11 +4948,37 @@

      Parameters

      Optional request: QueryDisputeListRequest

    Returns Promise<QueryDisputeListResponse>

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.rpc.Query.ts:109
  • +
  • +
    intent:function
    +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        request: QueryIntentRequest
      +

      Returns Promise<QueryIntentResponse>

  • +
  • +
    intentList:function
    +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        Optional request: QueryIntentListRequest
      +

      Returns Promise<QueryIntentListResponse>

  • params:function
      - +
    • Parameters

      @@ -4093,7 +4987,33 @@

      Parameters

      Optional request: QueryParamsRequest

    Returns Promise<QueryParamsResponse>

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/query.rpc.Query.ts:91
  • +
  • +
    collectionIntentOptionsFromJSON:function
    +
  • +
  • +
    collectionIntentOptionsToJSON:function
    +
  • collectionStateFromJSON:function
      @@ -4132,7 +5052,7 @@

      Parameters

      object: any

    Returns EvaluationStatus

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:99
  • evaluationStatusToJSON:function

    Returns string

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:122
  • +
  • +
    intentStatusFromJSON:function
    +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        object: any
      +

      Returns IntentStatus

  • +
  • +
    intentStatusToJSON:function
    +
      + +
    • +
      +

      Parameters

      +
      +

      Returns string

  • paymentStatusFromJSON:function
      @@ -4158,7 +5104,7 @@

      Parameters

      object: any

    Returns PaymentStatus

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:249
  • paymentStatusToJSON:function

    Returns string

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:278
  • paymentTypeFromJSON:function
      @@ -4184,7 +5130,7 @@

      Parameters

      object: any

    Returns PaymentType

  • +
  • Defined in src/codegen/ixo/claims/v1beta1/claims.ts:197
  • paymentTypeToJSON:function

    Returns string

  • +
  • Defined in src/codegen/ixo/bundle.ts:74
  • +
  • Defined in src/codegen/ixo/bundle.ts:86
  • +
  • Defined in src/codegen/ixo/bundle.ts:107
  • +
  • Defined in src/codegen/ixo/bundle.ts:139
  • @@ -193,7 +247,10 @@

    bonds
  • claims
  • entity
  • +
  • epochs
  • iid
  • +
  • mint
  • +
  • smartaccount
  • token
  • tendermint
      diff --git a/docs/variables/utils.common.html b/docs/variables/utils.common.html index f0094088..91b0a5c9 100644 --- a/docs/variables/utils.common.html +++ b/docs/variables/utils.common.html @@ -257,7 +257,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/utils.constants.html b/docs/variables/utils.constants.html index 1b82d64f..12458cbc 100644 --- a/docs/variables/utils.constants.html +++ b/docs/variables/utils.constants.html @@ -184,7 +184,10 @@

      bonds
    • claims
    • entity
    • +
    • epochs
    • iid
    • +
    • mint
    • +
    • smartaccount
    • token
  • tendermint
      diff --git a/docs/variables/utils.conversions.html b/docs/variables/utils.conversions.html index 64304169..b6f11246 100644 --- a/docs/variables/utils.conversions.html +++ b/docs/variables/utils.conversions.html @@ -16,7 +16,7 @@
    • utils
    • conversions

    Variable conversionsConst

    -
    conversions: {
        JsonToArray: ((json: string) => Uint8Array);
        Uint8ArrayTob64: ((u8: Uint8Array) => string);
        b64toJson: ((b64: string) => any);
        b64toUint8Array: ((b64: string) => Uint8Array);
        concatArrayBuffers: ((...bufs: Uint8Array[]) => Uint8Array);
        encodeMbKey: ((header: Uint8Array, key: Uint8Array) => string);
        jsonStringToBase64: ((jsonString: string) => string);
        jsonToBase64: ((json: unknown) => string);
        Uint8ArrayToJS(data: Uint8Array): string;
    } = ...
    +
    conversions: {
        JsonToArray: ((json: string) => Uint8Array);
        Uint8ArrayTob64: ((u8: Uint8Array) => string);
        b64toJson: ((b64: string) => any);
        b64toUint8Array: ((b64: string) => Uint8Array);
        concatArrayBuffers: ((...bufs: Uint8Array[]) => Uint8Array);
        decodeMbKey: ((header: Uint8Array, mbKey: string) => Uint8Array);
        encodeMbKey: ((header: Uint8Array, key: Uint8Array) => string);
        jsonStringToBase64: ((jsonString: string) => string);
        jsonToBase64: ((json: unknown) => string);
        Uint8ArrayToJS(data: Uint8Array): string;
    } = ...

    Type declaration

      @@ -86,11 +86,30 @@

      Parameters

      Rest ...bufs: Uint8Array[]

    Returns Uint8Array

  • +
    decodeMbKey: ((header: Uint8Array, mbKey: string) => Uint8Array)
    +
      +
    • +
        +
      • (header: Uint8Array, mbKey: string): Uint8Array
      • +
      • +

        decode a multibase base58-btc multicodec key

        +
        +
        +

        Parameters

        +
          +
        • +
          header: Uint8Array
        • +
        • +
          mbKey: string
          +

          string multibase base58-btc multicodec key

          +
        +

        Returns Uint8Array

  • +
  • encodeMbKey: ((header: Uint8Array, key: Uint8Array) => string)
      • -
      • (header: Uint8Array, key: Uint8Array): string
      • +
      • (header: Uint8Array, key: Uint8Array): string
      • encode a multibase base58-btc multicodec key

        @@ -111,7 +130,7 @@
        jsonStringToBase64:
        • -
        • (jsonString: string): string
        • +
        • (jsonString: string): string
        • Parameters

          @@ -124,7 +143,7 @@
          jsonToBase64:
        • tendermint
            diff --git a/docs/variables/utils.did.html b/docs/variables/utils.did.html index 21be0f02..52d8a874 100644 --- a/docs/variables/utils.did.html +++ b/docs/variables/utils.did.html @@ -16,14 +16,33 @@
          • utils
          • did

          Variable didConst

        • -
          did: {
              generateSecpDid(pubkey: string | Uint8Array, prefix?: string): string;
              generateWasmDid(address: string): string;
          } = ...
          +
          did: {
              extractPubkeyFromDid(did: string): string;
              generateSecpDid(pubkey: string | Uint8Array, prefix?: string): string;
              generateWasmDid(address: string): string;
          } = ...

          Type declaration

          • +
            extractPubkeyFromDid:function
            +
              + +
            • +

              Extracts the public key from a DID.

              + +

              Returns

              The base58 encoded public key

              +
              +
              +

              Parameters

              +
                +
              • +
                did: string
                +

                The DID string (e.g., "did:x:")

                +
              +

              Returns string

          • +
          • generateSecpDid:function
              - +
            • Parameters

              @@ -54,7 +73,7 @@
              address: string

          Returns string