* Rename mutation to UPSERT_WALLET_RECEIVE_LND_GRPC * Move wallet typedefs into individual sections * Split wallet tests into separate mutation --------- Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
445 lines
8.6 KiB
JavaScript
445 lines
8.6 KiB
JavaScript
import { gql } from 'graphql-tag'
|
|
|
|
const shared = 'walletId: ID, templateName: ID, enabled: Boolean!'
|
|
|
|
const typeDefs = gql`
|
|
extend type Query {
|
|
invoice(id: ID!): Invoice!
|
|
withdrawl(id: ID!): Withdrawl!
|
|
direct(id: ID!): Direct!
|
|
numBolt11s: Int!
|
|
connectAddress: String!
|
|
walletHistory(cursor: String, inc: String): History
|
|
wallets: [WalletOrTemplate!]!
|
|
wallet(id: ID, name: String): WalletOrTemplate
|
|
walletSettings: WalletSettings!
|
|
walletLogs(protocolId: Int, cursor: String, debug: Boolean): WalletLogs!
|
|
failedInvoices: [Invoice!]!
|
|
}
|
|
|
|
extend type Mutation {
|
|
createWithdrawl(invoice: String!, maxFee: Int!): Withdrawl!
|
|
sendToLnAddr(addr: String!, amount: Int!, maxFee: Int!, comment: String, identifier: Boolean, name: String, email: String): Withdrawl!
|
|
cancelInvoice(hash: String!, hmac: String, userCancel: Boolean): Invoice!
|
|
dropBolt11(hash: String!): Boolean
|
|
buyCredits(credits: Int!): BuyCreditsPaidAction!
|
|
|
|
# upserts
|
|
upsertWalletSendLNbits(
|
|
${shared},
|
|
url: String!,
|
|
apiKey: VaultEntryInput!
|
|
): WalletSendLNbits!
|
|
|
|
upsertWalletRecvLNbits(
|
|
${shared},
|
|
url: String!,
|
|
apiKey: String!
|
|
): WalletRecvLNbits!
|
|
|
|
upsertWalletSendPhoenixd(
|
|
${shared},
|
|
url: String!,
|
|
apiKey: VaultEntryInput!
|
|
): WalletSendPhoenixd!
|
|
|
|
upsertWalletRecvPhoenixd(
|
|
${shared},
|
|
url: String!,
|
|
apiKey: String!
|
|
): WalletRecvPhoenixd!
|
|
|
|
upsertWalletSendBlink(
|
|
${shared},
|
|
currency: VaultEntryInput!,
|
|
apiKey: VaultEntryInput!
|
|
): WalletSendBlink!
|
|
|
|
upsertWalletRecvBlink(
|
|
${shared},
|
|
currency: String!,
|
|
apiKey: String!
|
|
): WalletRecvBlink!
|
|
|
|
upsertWalletRecvLightningAddress(
|
|
${shared},
|
|
address: String!
|
|
): WalletRecvLightningAddress!
|
|
|
|
upsertWalletSendNWC(
|
|
${shared},
|
|
url: VaultEntryInput!
|
|
): WalletSendNWC!
|
|
|
|
upsertWalletRecvNWC(
|
|
${shared},
|
|
url: String!
|
|
): WalletRecvNWC!
|
|
|
|
upsertWalletRecvCLNRest(
|
|
${shared},
|
|
socket: String!,
|
|
rune: String!,
|
|
cert: String
|
|
): WalletRecvCLNRest!
|
|
|
|
upsertWalletRecvLNDGRPC(
|
|
${shared},
|
|
socket: String!,
|
|
macaroon: String!,
|
|
cert: String
|
|
): WalletRecvLNDGRPC!
|
|
|
|
upsertWalletSendLNC(
|
|
${shared},
|
|
pairingPhrase: VaultEntryInput!,
|
|
localKey: VaultEntryInput!,
|
|
remoteKey: VaultEntryInput!,
|
|
serverHost: VaultEntryInput!
|
|
): WalletSendLNC!
|
|
|
|
upsertWalletSendWebLN(
|
|
${shared}
|
|
): WalletSendWebLN!
|
|
|
|
# tests
|
|
testWalletRecvNWC(
|
|
url: String!
|
|
): Boolean!
|
|
|
|
testWalletRecvLightningAddress(
|
|
address: String!
|
|
): Boolean!
|
|
|
|
testWalletRecvCLNRest(
|
|
socket: String!,
|
|
rune: String!,
|
|
cert: String
|
|
): Boolean!
|
|
|
|
testWalletRecvLNDGRPC(
|
|
socket: String!,
|
|
macaroon: String!,
|
|
cert: String
|
|
): Boolean!
|
|
|
|
testWalletRecvPhoenixd(
|
|
url: String!
|
|
apiKey: String!
|
|
): Boolean!
|
|
|
|
testWalletRecvLNbits(
|
|
url: String!
|
|
apiKey: String!
|
|
): Boolean!
|
|
|
|
testWalletRecvBlink(
|
|
currency: String!
|
|
apiKey: String!
|
|
): Boolean!
|
|
|
|
# delete
|
|
removeWallet(id: ID!): Boolean
|
|
removeWalletProtocol(id: ID!): Boolean
|
|
|
|
# crypto
|
|
updateWalletEncryption(keyHash: String!, wallets: [WalletEncryptionUpdate!]!): Boolean
|
|
updateKeyHash(keyHash: String!): Boolean
|
|
resetWallets(newKeyHash: String!): Boolean
|
|
disablePassphraseExport: Boolean
|
|
|
|
# settings
|
|
setWalletSettings(settings: WalletSettingsInput!): Boolean
|
|
setWalletPriorities(priorities: [WalletPriorityUpdate!]!): Boolean
|
|
|
|
# logs
|
|
addWalletLog(protocolId: Int, level: String!, message: String!, timestamp: Date!, invoiceId: Int): Boolean
|
|
deleteWalletLogs(protocolId: Int, debug: Boolean): Boolean
|
|
}
|
|
|
|
type BuyCreditsResult {
|
|
credits: Int!
|
|
}
|
|
|
|
interface InvoiceOrDirect {
|
|
id: ID!
|
|
}
|
|
|
|
union WalletOrTemplate = Wallet | WalletTemplate
|
|
|
|
enum WalletStatus {
|
|
OK
|
|
WARNING
|
|
ERROR
|
|
DISABLED
|
|
}
|
|
|
|
type Wallet {
|
|
id: ID!
|
|
name: String!
|
|
priority: Int!
|
|
template: WalletTemplate!
|
|
protocols: [WalletProtocol!]!
|
|
send: WalletStatus!
|
|
receive: WalletStatus!
|
|
}
|
|
|
|
type WalletTemplate {
|
|
name: ID!
|
|
protocols: [WalletProtocolTemplate!]!
|
|
send: WalletStatus!
|
|
receive: WalletStatus!
|
|
}
|
|
|
|
type WalletProtocol {
|
|
id: ID!
|
|
name: String!
|
|
send: Boolean!
|
|
enabled: Boolean!
|
|
config: WalletProtocolConfig!
|
|
status: WalletStatus!
|
|
}
|
|
|
|
type WalletProtocolTemplate {
|
|
id: ID!
|
|
name: String!
|
|
send: Boolean!
|
|
}
|
|
|
|
union WalletProtocolConfig =
|
|
| WalletSendNWC
|
|
| WalletSendLNbits
|
|
| WalletSendPhoenixd
|
|
| WalletSendBlink
|
|
| WalletSendWebLN
|
|
| WalletSendLNC
|
|
| WalletRecvNWC
|
|
| WalletRecvLNbits
|
|
| WalletRecvPhoenixd
|
|
| WalletRecvBlink
|
|
| WalletRecvLightningAddress
|
|
| WalletRecvCLNRest
|
|
| WalletRecvLNDGRPC
|
|
|
|
type WalletSettings {
|
|
receiveCreditsBelowSats: Int!
|
|
sendCreditsBelowSats: Int!
|
|
autoWithdrawThreshold: Int
|
|
autoWithdrawMaxFeePercent: Float
|
|
autoWithdrawMaxFeeTotal: Int
|
|
proxyReceive: Boolean!
|
|
}
|
|
|
|
input WalletSettingsInput {
|
|
receiveCreditsBelowSats: Int!
|
|
sendCreditsBelowSats: Int!
|
|
autoWithdrawThreshold: Int!
|
|
autoWithdrawMaxFeePercent: Float!
|
|
autoWithdrawMaxFeeTotal: Int!
|
|
proxyReceive: Boolean!
|
|
}
|
|
|
|
type WalletSendNWC {
|
|
id: ID!
|
|
url: VaultEntry!
|
|
}
|
|
|
|
type WalletSendLNbits {
|
|
id: ID!
|
|
url: String!
|
|
apiKey: VaultEntry!
|
|
}
|
|
|
|
type WalletSendPhoenixd {
|
|
id: ID!
|
|
url: String!
|
|
apiKey: VaultEntry!
|
|
}
|
|
|
|
type WalletSendBlink {
|
|
id: ID!
|
|
currency: VaultEntry!
|
|
apiKey: VaultEntry!
|
|
}
|
|
|
|
type WalletSendWebLN {
|
|
id: ID!
|
|
}
|
|
|
|
type WalletSendLNC {
|
|
id: ID!
|
|
pairingPhrase: VaultEntry!
|
|
localKey: VaultEntry!
|
|
remoteKey: VaultEntry!
|
|
serverHost: VaultEntry!
|
|
}
|
|
|
|
type WalletRecvNWC {
|
|
id: ID!
|
|
url: String!
|
|
}
|
|
|
|
type WalletRecvLNbits {
|
|
id: ID!
|
|
url: String!
|
|
apiKey: String!
|
|
}
|
|
|
|
type WalletRecvPhoenixd {
|
|
id: ID!
|
|
url: String!
|
|
apiKey: String!
|
|
}
|
|
|
|
type WalletRecvBlink {
|
|
id: ID!
|
|
currency: String!
|
|
apiKey: String!
|
|
}
|
|
|
|
type WalletRecvLightningAddress {
|
|
id: ID!
|
|
address: String!
|
|
}
|
|
|
|
type WalletRecvCLNRest {
|
|
id: ID!
|
|
socket: String!
|
|
rune: String!
|
|
cert: String
|
|
}
|
|
|
|
type WalletRecvLNDGRPC {
|
|
id: ID!
|
|
socket: String!
|
|
macaroon: String!
|
|
cert: String
|
|
}
|
|
|
|
input AutowithdrawSettings {
|
|
autoWithdrawThreshold: Int!
|
|
autoWithdrawMaxFeePercent: Float!
|
|
autoWithdrawMaxFeeTotal: Int!
|
|
}
|
|
|
|
input WalletEncryptionUpdate {
|
|
id: ID!
|
|
protocols: [WalletEncryptionUpdateProtocol!]!
|
|
}
|
|
|
|
input WalletEncryptionUpdateProtocol {
|
|
name: String!
|
|
send: Boolean!
|
|
config: JSONObject!
|
|
}
|
|
|
|
input WalletPriorityUpdate {
|
|
id: ID!
|
|
priority: Int!
|
|
}
|
|
|
|
type Invoice implements InvoiceOrDirect {
|
|
id: ID!
|
|
createdAt: Date!
|
|
hash: String!
|
|
bolt11: String!
|
|
expiresAt: Date!
|
|
cancelled: Boolean!
|
|
cancelledAt: Date
|
|
confirmedAt: Date
|
|
satsReceived: Int
|
|
satsRequested: Int!
|
|
nostr: JSONObject
|
|
comment: String
|
|
lud18Data: JSONObject
|
|
hmac: String
|
|
isHeld: Boolean
|
|
confirmedPreimage: String
|
|
actionState: String
|
|
actionType: String
|
|
actionError: String
|
|
invoiceForward: Boolean
|
|
item: Item
|
|
itemAct: ItemAct
|
|
forwardedSats: Int
|
|
forwardStatus: String
|
|
}
|
|
|
|
type Withdrawl {
|
|
id: ID!
|
|
createdAt: Date!
|
|
hash: String
|
|
bolt11: String
|
|
satsPaying: Int!
|
|
satsPaid: Int
|
|
satsFeePaying: Int!
|
|
satsFeePaid: Int
|
|
status: String
|
|
autoWithdraw: Boolean!
|
|
preimage: String
|
|
forwardedActionType: String
|
|
}
|
|
|
|
type Direct implements InvoiceOrDirect {
|
|
id: ID!
|
|
createdAt: Date!
|
|
bolt11: String
|
|
hash: String
|
|
sats: Int
|
|
preimage: String
|
|
nostr: JSONObject
|
|
comment: String
|
|
lud18Data: JSONObject
|
|
}
|
|
|
|
type Fact {
|
|
id: ID!
|
|
createdAt: Date!
|
|
sats: Float!
|
|
type: String!
|
|
bolt11: String
|
|
status: String
|
|
description: String
|
|
autoWithdraw: Boolean
|
|
item: Item
|
|
invoiceComment: String
|
|
invoicePayerData: JSONObject
|
|
subName: String
|
|
}
|
|
|
|
type History {
|
|
facts: [Fact!]!
|
|
cursor: String
|
|
}
|
|
|
|
type WalletLogs {
|
|
entries: [WalletLogEntry!]!
|
|
cursor: String
|
|
}
|
|
|
|
type WalletLogEntry {
|
|
id: ID!
|
|
createdAt: Date!
|
|
wallet: Wallet
|
|
protocol: WalletProtocol
|
|
level: String!
|
|
message: String!
|
|
context: JSONObject
|
|
}
|
|
|
|
type VaultEntry {
|
|
id: ID!
|
|
iv: String!
|
|
value: String!
|
|
createdAt: Date!
|
|
updatedAt: Date!
|
|
}
|
|
|
|
input VaultEntryInput {
|
|
iv: String!
|
|
value: String!
|
|
keyHash: String!
|
|
}
|
|
`
|
|
export default typeDefs
|