import { gql } from '@apollo/client' import { ITEM_FULL_FIELDS } from './items' export const INVOICE_FIELDS = gql` fragment InvoiceFields on Invoice { id hash hmac bolt11 satsRequested satsReceived cancelled confirmedAt expiresAt nostr isHeld comment lud18Data actionState actionType actionError confirmedPreimage }` export const INVOICE_FULL = gql` ${ITEM_FULL_FIELDS} ${INVOICE_FIELDS} query Invoice($id: ID!) { invoice(id: $id) { ...InvoiceFields item { ...ItemFullFields } } }` export const INVOICE = gql` ${INVOICE_FIELDS} query Invoice($id: ID!) { invoice(id: $id) { ...InvoiceFields } }` export const WITHDRAWL = gql` query Withdrawl($id: ID!) { withdrawl(id: $id) { id createdAt bolt11 satsPaid satsFeePaying satsFeePaid status autoWithdraw preimage } }` export const WALLET_HISTORY = gql` ${ITEM_FULL_FIELDS} query WalletHistory($cursor: String, $inc: String) { walletHistory(cursor: $cursor, inc: $inc) { facts { id bolt11 autoWithdraw type createdAt sats status type description invoiceComment invoicePayerData subName item { ...ItemFullFields } } cursor } } ` export const CREATE_WITHDRAWL = gql` mutation createWithdrawl($invoice: String!, $maxFee: Int!) { createWithdrawl(invoice: $invoice, maxFee: $maxFee) { id } }` export const SEND_TO_LNADDR = gql` mutation sendToLnAddr($addr: String!, $amount: Int!, $maxFee: Int!, $comment: String, $identifier: Boolean, $name: String, $email: String) { sendToLnAddr(addr: $addr, amount: $amount, maxFee: $maxFee, comment: $comment, identifier: $identifier, name: $name, email: $email) { id } }` export const REMOVE_WALLET = gql` mutation removeWallet($id: ID!) { removeWallet(id: $id) } ` // XXX [WALLET] this needs to be updated if another server wallet is added export const WALLET = gql` query Wallet($id: ID!) { wallet(id: $id) { id createdAt priority type wallet { __typename ... on WalletLightningAddress { address } ... on WalletLnd { socket macaroon cert } ... on WalletCln { socket rune cert } ... on WalletLnbits { url invoiceKey } ... on WalletNwc { nwcUrlRecv } ... on WalletPhoenixd { url secondaryPassword } } } } ` // XXX [WALLET] this needs to be updated if another server wallet is added export const WALLET_BY_TYPE = gql` query WalletByType($type: String!) { walletByType(type: $type) { id createdAt enabled priority type wallet { __typename ... on WalletLightningAddress { address } ... on WalletLnd { socket macaroon cert } ... on WalletCln { socket rune cert } ... on WalletLnbits { url invoiceKey } ... on WalletNwc { nwcUrlRecv } ... on WalletPhoenixd { url secondaryPassword } } } } ` export const WALLETS = gql` query Wallets { wallets{ id priority type, canSend, canReceive } } ` export const BEST_SEND_WALLETS = gql` query SendWallets { wallets (includeSenders: true, includeReceivers: false, onlyEnabled: true) { id priority type } } ` export const WALLET_LOGS = gql` query WalletLogs($type: String, $from: String, $to: String, $cursor: String) { walletLogs(type: $type, from: $from, to: $to, cursor: $cursor) { cursor entries { id createdAt wallet level message } } } `