diff --git a/typescript-sdk/playground/holesky-to-stargaze.ts b/typescript-sdk/playground/holesky-to-stargaze.ts new file mode 100644 index 0000000000..16474c720f --- /dev/null +++ b/typescript-sdk/playground/holesky-to-stargaze.ts @@ -0,0 +1,104 @@ +import { http } from "viem" +import { parseArgs } from "node:util" +import { consola } from "scripts/logger" +import { bech32AddressToHex, createUnionClient } from "#mod.ts" +import { + getChannelInfo, + getQuoteToken, + getRecommendedChannels +} from "#query/offchain/ucs03-channels" +import { privateKeyToAccount } from "viem/accounts" + +// hack to encode bigints to json +declare global { + interface BigInt { + toJSON: () => string + } +} + +if (!BigInt.prototype.toJSON) { + Object.defineProperty(BigInt.prototype, "toJSON", { + value: function () { + return this.toString() + }, + writable: true, + configurable: true + }) +} +// end hack + +const cliArgs = parseArgs({ + args: process.argv.slice(2), + options: { + "private-key": { type: "string" }, + "estimate-gas": { type: "boolean", default: false } + } +}) + +const PRIVATE_KEY = cliArgs.values["private-key"] +const STARS_DENOM = "0xa3570de1c0603051a08a5b2aa1d9ddd4e4e5339d" // wrapped STARS on holesky +const AMOUNT = 1n +const RECEIVER = bech32AddressToHex({ address: "stars1qcvavxpxw3t8d9j7mwaeq9wgytkf5vwputv5x4" }) +const SOURCE_CHAIN_ID = "17000" +const DESTINATION_CHAIN_ID = "elgafar-1" + +const channels = await getRecommendedChannels() + +const channel = getChannelInfo(SOURCE_CHAIN_ID, DESTINATION_CHAIN_ID, channels) +if (channel === null) { + consola.info("no channel found") + process.exit(1) +} + +consola.info("channel", channel) + +const quoteToken = await getQuoteToken(SOURCE_CHAIN_ID, STARS_DENOM, channel) +if (quoteToken.isErr()) { + consola.info("could not get quote token") + consola.error(quoteToken.error) + process.exit(1) +} + +consola.info("quote token", quoteToken.value) + +const transferArgs = { + baseToken: STARS_DENOM, + baseAmount: AMOUNT, + quoteToken: quoteToken.value.quote_token, + quoteAmount: AMOUNT, + receiver: RECEIVER, + sourceChannelId: channel.source_channel_id, + ucs03address: `0x${channel.source_port_id}` +} + +consola.info("transfer args", transferArgs) + +if (!PRIVATE_KEY) { + consola.error("no private key provided") + process.exit(1) +} + +const evmClient = createUnionClient({ + chainId: SOURCE_CHAIN_ID, + account: privateKeyToAccount(`0x${PRIVATE_KEY}`), + transport: http("https://rpc.17000.holesky.chain.kitchen") +}) + +const approveResponse = await evmClient.approveErc20(transferArgs) + +if (approveResponse.isErr()) { + consola.error(approveResponse.error) + process.exit(1) +} + +consola.info("approval tx hash", approveResponse.value) + +const transfer = await evmClient.transferAsset(transferArgs) + +if (transfer.isErr()) { + consola.info("transfer submission failed") + consola.error(transfer.error) + process.exit(1) +} + +consola.info("transfer tx hash", transfer.value) diff --git a/typescript-sdk/playground/stargaze-to-holesky.ts b/typescript-sdk/playground/stargaze-to-holesky.ts index 1bc245ccbd..7c04c69a3c 100644 --- a/typescript-sdk/playground/stargaze-to-holesky.ts +++ b/typescript-sdk/playground/stargaze-to-holesky.ts @@ -38,7 +38,7 @@ const cliArgs = parseArgs({ const PRIVATE_KEY = cliArgs.values["private-key"] const STARS_DENOM = "ustars" const AMOUNT = 420n -const RECEIVER = "0x153919669Edc8A5D0c8D1E4507c9CE60435A1177" +const RECEIVER = "0xE6831e169d77a861A0E71326AFA6d80bCC8Bc6aA" const SOURCE_CHAIN_ID = "elgafar-1" const DESTINATION_CHAIN_ID = "17000" diff --git a/typescript-sdk/src/abi/ucs-03.ts b/typescript-sdk/src/abi/ucs-03.ts index 0cba3ef5cb..7f921d9511 100644 --- a/typescript-sdk/src/abi/ucs-03.ts +++ b/typescript-sdk/src/abi/ucs-03.ts @@ -64,7 +64,7 @@ export const ucs03ZkgmAbi = [ }, { type: "function", - name: "OP_FUNGIBLE_ASSET_TRANSFER", + name: "OP_FUNGIBLE_ASSET_ORDER", inputs: [], outputs: [{ name: "", type: "uint8", internalType: "uint8" }], stateMutability: "view" @@ -89,13 +89,15 @@ export const ucs03ZkgmAbi = [ { type: "error", name: "ErrInvalidAssetName", inputs: [] }, { type: "error", name: "ErrInvalidAssetOrigin", inputs: [] }, { type: "error", name: "ErrInvalidAssetSymbol", inputs: [] }, + { type: "error", name: "ErrInvalidBatchInstruction", inputs: [] }, { type: "error", name: "ErrInvalidFillType", inputs: [] }, { type: "error", name: "ErrInvalidHops", inputs: [] }, { type: "error", name: "ErrInvalidIBCVersion", inputs: [] }, + { type: "error", name: "ErrInvalidMultiplexSender", inputs: [] }, { type: "error", name: "ErrOnlyMaker", inputs: [] }, { type: "error", name: "ErrUnauthorized", inputs: [] }, { type: "error", name: "ErrUnimplemented", inputs: [] }, - { type: "error", name: "ErrUnknownSyscall", inputs: [] }, + { type: "error", name: "ErrUnknownOpcode", inputs: [] }, { type: "error", name: "ErrUnsupportedVersion", inputs: [] }, { type: "constructor", inputs: [], stateMutability: "nonpayable" }, { @@ -105,6 +107,20 @@ export const ucs03ZkgmAbi = [ outputs: [{ name: "", type: "string", internalType: "string" }], stateMutability: "view" }, + { + type: "function", + name: "call", + inputs: [ + { name: "channelId", type: "uint32", internalType: "uint32" }, + { name: "contractAddress", type: "bytes", internalType: "bytes" }, + { name: "contractCalldata", type: "bytes", internalType: "bytes" }, + { name: "timeoutHeight", type: "uint64", internalType: "uint64" }, + { name: "timeoutTimestamp", type: "uint64", internalType: "uint64" }, + { name: "salt", type: "bytes32", internalType: "bytes32" } + ], + outputs: [], + stateMutability: "nonpayable" + }, { type: "function", name: "channelBalance", @@ -417,6 +433,25 @@ export const ucs03ZkgmAbi = [ outputs: [], stateMutability: "nonpayable" }, + { + type: "function", + name: "transferAndCall", + inputs: [ + { name: "channelId", type: "uint32", internalType: "uint32" }, + { name: "receiver", type: "bytes", internalType: "bytes" }, + { name: "baseToken", type: "address", internalType: "address" }, + { name: "baseAmount", type: "uint256", internalType: "uint256" }, + { name: "quoteToken", type: "bytes", internalType: "bytes" }, + { name: "quoteAmount", type: "uint256", internalType: "uint256" }, + { name: "contractAddress", type: "bytes", internalType: "bytes" }, + { name: "contractCalldata", type: "bytes", internalType: "bytes" }, + { name: "timeoutHeight", type: "uint64", internalType: "uint64" }, + { name: "timeoutTimestamp", type: "uint64", internalType: "uint64" }, + { name: "salt", type: "bytes32", internalType: "bytes32" } + ], + outputs: [], + stateMutability: "nonpayable" + }, { type: "function", name: "transferOwnership", @@ -490,15 +525,17 @@ export const ucs03ZkgmAbi = [ { type: "error", name: "ErrInvalidAssetName", inputs: [] }, { type: "error", name: "ErrInvalidAssetOrigin", inputs: [] }, { type: "error", name: "ErrInvalidAssetSymbol", inputs: [] }, + { type: "error", name: "ErrInvalidBatchInstruction", inputs: [] }, { type: "error", name: "ErrInvalidFillType", inputs: [] }, { type: "error", name: "ErrInvalidHops", inputs: [] }, { type: "error", name: "ErrInvalidIBCVersion", inputs: [] }, + { type: "error", name: "ErrInvalidMultiplexSender", inputs: [] }, { type: "error", name: "ErrNotIBC", inputs: [] }, { type: "error", name: "ErrNotImplemented", inputs: [] }, { type: "error", name: "ErrOnlyMaker", inputs: [] }, { type: "error", name: "ErrUnauthorized", inputs: [] }, { type: "error", name: "ErrUnimplemented", inputs: [] }, - { type: "error", name: "ErrUnknownSyscall", inputs: [] }, + { type: "error", name: "ErrUnknownOpcode", inputs: [] }, { type: "error", name: "ErrUnsupportedVersion", inputs: [] }, { type: "error", name: "ExpectedPause", inputs: [] }, { type: "error", name: "FailedInnerCall", inputs: [] }, diff --git a/typescript-sdk/src/generated/graphql-env.d.ts b/typescript-sdk/src/generated/graphql-env.d.ts index c515a5920a..3710a9d0e9 100644 --- a/typescript-sdk/src/generated/graphql-env.d.ts +++ b/typescript-sdk/src/generated/graphql-env.d.ts @@ -204,12 +204,12 @@ export type introspection_types = { 'v1_ibc_union_chains_select_column': { name: 'v1_ibc_union_chains_select_column'; enumValues: 'addr_prefix' | 'chain_id' | 'display_name' | 'enabled' | 'enabled_staging' | 'logo_uri' | 'rpc_type' | 'testnet'; }; 'v1_ibc_union_chains_stream_cursor_input': { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_stream_cursor_input'; isOneOf: false; inputFields: [{ name: 'initial_value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_stream_cursor_value_input'; ofType: null; }; }; defaultValue: null }, { name: 'ordering'; type: { kind: 'ENUM'; name: 'cursor_ordering'; ofType: null; }; defaultValue: null }]; }; 'v1_ibc_union_chains_stream_cursor_value_input': { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_stream_cursor_value_input'; isOneOf: false; inputFields: [{ name: 'addr_prefix'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'chain_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'display_name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'enabled_staging'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'logo_uri'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'rpc_type'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'testnet'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; }; - 'v1_ibc_union_channel_recommendations': { kind: 'OBJECT'; name: 'v1_ibc_union_channel_recommendations'; fields: { 'destination_chain': { name: 'destination_chain'; type: { kind: 'OBJECT'; name: 'v1_ibc_union_chains'; ofType: null; } }; 'destination_chain_id': { name: 'destination_chain_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'destination_channel_id': { name: 'destination_channel_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'destination_client_id': { name: 'destination_client_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'destination_connection_id': { name: 'destination_connection_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'destination_port_id': { name: 'destination_port_id'; type: { kind: 'SCALAR'; name: 'bytea'; ofType: null; } }; 'source_chain': { name: 'source_chain'; type: { kind: 'OBJECT'; name: 'v1_ibc_union_chains'; ofType: null; } }; 'source_chain_id': { name: 'source_chain_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'source_channel_id': { name: 'source_channel_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'source_client_id': { name: 'source_client_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'source_connection_id': { name: 'source_connection_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'source_port_id': { name: 'source_port_id'; type: { kind: 'SCALAR'; name: 'bytea'; ofType: null; } }; 'status': { name: 'status'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'v1_ibc_union_channel_recommendations_bool_exp': { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_bool_exp'; isOneOf: false; inputFields: [{ name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_bool_exp'; ofType: null; }; }; }; defaultValue: null }, { name: '_not'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_bool_exp'; ofType: null; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_bool_exp'; ofType: null; }; }; }; defaultValue: null }, { name: 'destination_chain'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_bool_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_chain_id'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_channel_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_client_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_connection_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_port_id'; type: { kind: 'INPUT_OBJECT'; name: 'bytea_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_chain'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_bool_exp'; ofType: null; }; defaultValue: null }, { name: 'source_chain_id'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_channel_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_client_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_connection_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_port_id'; type: { kind: 'INPUT_OBJECT'; name: 'bytea_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'status'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'version'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }]; }; + 'v1_ibc_union_channel_recommendations': { kind: 'OBJECT'; name: 'v1_ibc_union_channel_recommendations'; fields: { 'destination_chain': { name: 'destination_chain'; type: { kind: 'OBJECT'; name: 'v1_ibc_union_chains'; ofType: null; } }; 'destination_chain_id': { name: 'destination_chain_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'destination_channel_id': { name: 'destination_channel_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'destination_client_id': { name: 'destination_client_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'destination_connection_id': { name: 'destination_connection_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'destination_port_id': { name: 'destination_port_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'source_chain': { name: 'source_chain'; type: { kind: 'OBJECT'; name: 'v1_ibc_union_chains'; ofType: null; } }; 'source_chain_id': { name: 'source_chain_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'source_channel_id': { name: 'source_channel_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'source_client_id': { name: 'source_client_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'source_connection_id': { name: 'source_connection_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'source_port_id': { name: 'source_port_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'status': { name: 'status'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'v1_ibc_union_channel_recommendations_bool_exp': { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_bool_exp'; isOneOf: false; inputFields: [{ name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_bool_exp'; ofType: null; }; }; }; defaultValue: null }, { name: '_not'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_bool_exp'; ofType: null; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_bool_exp'; ofType: null; }; }; }; defaultValue: null }, { name: 'destination_chain'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_bool_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_chain_id'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_channel_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_client_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_connection_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_port_id'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_chain'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_bool_exp'; ofType: null; }; defaultValue: null }, { name: 'source_chain_id'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_channel_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_client_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_connection_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_port_id'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'status'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'version'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }]; }; 'v1_ibc_union_channel_recommendations_order_by': { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_order_by'; isOneOf: false; inputFields: [{ name: 'destination_chain'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_order_by'; ofType: null; }; defaultValue: null }, { name: 'destination_chain_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'destination_channel_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'destination_client_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'destination_connection_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'destination_port_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'source_chain'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_order_by'; ofType: null; }; defaultValue: null }, { name: 'source_chain_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'source_channel_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'source_client_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'source_connection_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'source_port_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'status'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'version'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }]; }; 'v1_ibc_union_channel_recommendations_select_column': { name: 'v1_ibc_union_channel_recommendations_select_column'; enumValues: 'destination_chain_id' | 'destination_channel_id' | 'destination_client_id' | 'destination_connection_id' | 'destination_port_id' | 'source_chain_id' | 'source_channel_id' | 'source_client_id' | 'source_connection_id' | 'source_port_id' | 'status' | 'version'; }; 'v1_ibc_union_channel_recommendations_stream_cursor_input': { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_stream_cursor_input'; isOneOf: false; inputFields: [{ name: 'initial_value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_stream_cursor_value_input'; ofType: null; }; }; defaultValue: null }, { name: 'ordering'; type: { kind: 'ENUM'; name: 'cursor_ordering'; ofType: null; }; defaultValue: null }]; }; - 'v1_ibc_union_channel_recommendations_stream_cursor_value_input': { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_stream_cursor_value_input'; isOneOf: false; inputFields: [{ name: 'destination_chain_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'destination_channel_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'destination_client_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'destination_connection_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'destination_port_id'; type: { kind: 'SCALAR'; name: 'bytea'; ofType: null; }; defaultValue: null }, { name: 'source_chain_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'source_channel_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'source_client_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'source_connection_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'source_port_id'; type: { kind: 'SCALAR'; name: 'bytea'; ofType: null; }; defaultValue: null }, { name: 'status'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; + 'v1_ibc_union_channel_recommendations_stream_cursor_value_input': { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channel_recommendations_stream_cursor_value_input'; isOneOf: false; inputFields: [{ name: 'destination_chain_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'destination_channel_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'destination_client_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'destination_connection_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'destination_port_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'source_chain_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'source_channel_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'source_client_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'source_connection_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'source_port_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'status'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; 'v1_ibc_union_channels': { kind: 'OBJECT'; name: 'v1_ibc_union_channels'; fields: { 'connection': { name: 'connection'; type: { kind: 'OBJECT'; name: 'v1_ibc_union_connections'; ofType: null; } }; 'destination_chain': { name: 'destination_chain'; type: { kind: 'OBJECT'; name: 'v1_ibc_union_chains'; ofType: null; } }; 'destination_chain_id': { name: 'destination_chain_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'destination_channel_id': { name: 'destination_channel_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'destination_client_id': { name: 'destination_client_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'destination_connection_id': { name: 'destination_connection_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'destination_port_id': { name: 'destination_port_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'internal_source_chain_id': { name: 'internal_source_chain_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'source_chain': { name: 'source_chain'; type: { kind: 'OBJECT'; name: 'v1_ibc_union_chains'; ofType: null; } }; 'source_chain_id': { name: 'source_chain_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'source_channel_id': { name: 'source_channel_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'source_client_id': { name: 'source_client_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'source_connection_id': { name: 'source_connection_id'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'source_port_id': { name: 'source_port_id'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'status': { name: 'status'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'v1_ibc_union_channels_bool_exp': { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channels_bool_exp'; isOneOf: false; inputFields: [{ name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channels_bool_exp'; ofType: null; }; }; }; defaultValue: null }, { name: '_not'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channels_bool_exp'; ofType: null; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channels_bool_exp'; ofType: null; }; }; }; defaultValue: null }, { name: 'connection'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_connections_bool_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_chain'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_bool_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_chain_id'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_channel_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_client_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_connection_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'destination_port_id'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'internal_source_chain_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_chain'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_bool_exp'; ofType: null; }; defaultValue: null }, { name: 'source_chain_id'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_channel_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_client_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_connection_id'; type: { kind: 'INPUT_OBJECT'; name: 'Int_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'source_port_id'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'status'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }, { name: 'version'; type: { kind: 'INPUT_OBJECT'; name: 'String_comparison_exp'; ofType: null; }; defaultValue: null }]; }; 'v1_ibc_union_channels_order_by': { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_channels_order_by'; isOneOf: false; inputFields: [{ name: 'connection'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_connections_order_by'; ofType: null; }; defaultValue: null }, { name: 'destination_chain'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_order_by'; ofType: null; }; defaultValue: null }, { name: 'destination_chain_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'destination_channel_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'destination_client_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'destination_connection_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'destination_port_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'internal_source_chain_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'source_chain'; type: { kind: 'INPUT_OBJECT'; name: 'v1_ibc_union_chains_order_by'; ofType: null; }; defaultValue: null }, { name: 'source_chain_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'source_channel_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'source_client_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'source_connection_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'source_port_id'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'status'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }, { name: 'version'; type: { kind: 'ENUM'; name: 'order_by'; ofType: null; }; defaultValue: null }]; };