Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
dff6401
ENG-297 feat(bridge): add core Bridge integration
forge0x May 13, 2026
454bf99
ENG-278 ENG-280 ENG-281 ENG-282 ENG-283 ENG-284 ENG-285 ENG-349 ENG-3…
forge0x May 13, 2026
c0ccdcc
ENG-276 feat(bridge): add reconciliation and replay tooling
forge0x May 13, 2026
573d6c9
ENG-394 feat(accounts): create ETH-USDT Cash Wallet for new accounts
forge0x May 13, 2026
4c70b8f
ENG-297 docs: document Bridge rebase PR-readiness plan
forge0x May 13, 2026
3006456
ENG-376 fix(bridge): reuse pending withdrawal idempotency rows
forge0x May 13, 2026
7d21cf8
ENG-297 chore(bridge): satisfy scoped lint on branch changes
forge0x May 13, 2026
04c4dd9
ENG-297 fix(graphql): add isExternal to UsdtWallet
forge0x May 13, 2026
9c8b840
fix(graphql): preserve latest account upgrade request query
forge0x May 15, 2026
9aed1f3
feat: bridge reconciliation + USDT provisioning additions (#354)
heyolaniran May 16, 2026
66be031
ENG-297 - IBEX USD -> USDT Parity (#355)
islandbitcoin May 19, 2026
b48388c
fix(graphql): serialize USDT fee probe amounts (#358)
forge0x May 19, 2026
226c1e7
Feat/bridge reconciliation (#360)
heyolaniran May 21, 2026
2dc9197
fix(graphql): make usdt wallet balance nullable (#369)
forge0x May 25, 2026
b99fdf4
feat(cutover): orchestrate cash wallet migration with client-aware pr…
forge0x May 25, 2026
d448b2b
docs(bridge): add operations and cutover runbooks (#371)
islandbitcoin May 26, 2026
bdf63ef
feat(externalAccounts): Webhook endpoint firing for external accounts
heyolaniran May 28, 2026
85c67d5
fix(ENG-350) : reset pending withdraw state on transfer failure.
heyolaniran May 28, 2026
b86c086
feat: bruno configurations
heyolaniran May 28, 2026
608b6ed
fix(bridge): normalize currency display in withdrawal notification
heyolaniran May 31, 2026
e56d44b
feat(ibex): update config schema for M2M authentication
heyolaniran May 31, 2026
4dc02a2
feat(ibex): switch to machine-to-machine OAuth authentication
heyolaniran May 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
163 changes: 163 additions & 0 deletions dev/apollo-federation/supergraph.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,89 @@ input BankAccountInput
currency: String!
}

type BridgeAddExternalAccountPayload
@join__type(graph: PUBLIC)
{
errors: [Error!]!
externalAccount: BridgeExternalAccount
}

type BridgeCreateVirtualAccountPayload
@join__type(graph: PUBLIC)
{
errors: [Error!]!
virtualAccount: BridgeVirtualAccount
}

type BridgeExternalAccount
@join__type(graph: PUBLIC)
{
accountNumberLast4: String!
bankName: String!
id: ID!
status: String!
}

input BridgeInitiateKycInput
@join__type(graph: PUBLIC)
{
email: String
full_name: String
type: String
}

type BridgeInitiateKycPayload
@join__type(graph: PUBLIC)
{
errors: [Error!]!
kycLink: BridgeKycLink
}

input BridgeInitiateWithdrawalInput
@join__type(graph: PUBLIC)
{
amount: String!
externalAccountId: ID!
}

type BridgeInitiateWithdrawalPayload
@join__type(graph: PUBLIC)
{
errors: [Error!]!
withdrawal: BridgeWithdrawal
}

type BridgeKycLink
@join__type(graph: PUBLIC)
{
kycLink: String!
tosLink: String!
}

type BridgeVirtualAccount
@join__type(graph: PUBLIC)
{
accountNumber: String
accountNumberLast4: String
bankName: String
id: ID
kycLink: String
message: String
pending: Boolean
routingNumber: String
tosLink: String
}

type BridgeWithdrawal
@join__type(graph: PUBLIC)
{
amount: String!
createdAt: String!
currency: String!
id: ID!
status: String!
}

"""
A wallet belonging to an account which contains a BTC balance and a list of transactions.
"""
Expand Down Expand Up @@ -418,6 +501,29 @@ type CashoutOffer
walletId: WalletId!
}

type CashWalletCutover
@join__type(graph: PUBLIC)
{
completedAt: Timestamp
cutoverVersion: Int!
pauseReason: String
pausedAt: Timestamp
runId: String
scheduledAt: Timestamp
startedAt: Timestamp
state: CashWalletCutoverState!
updatedAt: Timestamp!
updatedBy: String
}

enum CashWalletCutoverState
@join__type(graph: PUBLIC)
{
COMPLETE @join__enumValue(graph: PUBLIC)
IN_PROGRESS @join__enumValue(graph: PUBLIC)
PRE @join__enumValue(graph: PUBLIC)
}

"""(Positive) Cent amount (1/100 of a dollar)"""
scalar CentAmount
@join__type(graph: PUBLIC)
Expand Down Expand Up @@ -1101,6 +1207,10 @@ type Mutation
accountEnableNotificationChannel(input: AccountEnableNotificationChannelInput!): AccountUpdateNotificationSettingsPayload!
accountUpdateDefaultWalletId(input: AccountUpdateDefaultWalletIdInput!): AccountUpdateDefaultWalletIdPayload!
accountUpdateDisplayCurrency(input: AccountUpdateDisplayCurrencyInput!): AccountUpdateDisplayCurrencyPayload!
bridgeAddExternalAccount: BridgeAddExternalAccountPayload!
bridgeCreateVirtualAccount: BridgeCreateVirtualAccountPayload!
bridgeInitiateKyc(input: BridgeInitiateKycInput!): BridgeInitiateKycPayload!
bridgeInitiateWithdrawal(input: BridgeInitiateWithdrawalInput!): BridgeInitiateWithdrawalPayload!
businessAccountUpgradeRequest(input: BusinessAccountUpgradeRequestInput!): AccountUpgradePayload!
callbackEndpointAdd(input: CallbackEndpointAddInput!): CallbackEndpointAddPayload!
callbackEndpointDelete(input: CallbackEndpointDeleteInput!): SuccessPayload!
Expand Down Expand Up @@ -1557,9 +1667,14 @@ type Query
@join__type(graph: PUBLIC)
{
accountDefaultWallet(username: Username!, walletCurrency: WalletCurrency): PublicWallet!
bridgeExternalAccounts: [BridgeExternalAccount]
bridgeKycStatus: String
bridgeVirtualAccount: BridgeVirtualAccount
bridgeWithdrawals: [BridgeWithdrawal]
btcPrice(currency: DisplayCurrency! = "USD"): Price @deprecated(reason: "Deprecated in favor of realtimePrice")
btcPriceList(range: PriceGraphRange!): [PricePoint]
businessMapMarkers: [MapMarker!]!
cashWalletCutover: CashWalletCutover!
currencyList: [Currency!]!
globals: Globals
isFlashNpub(input: IsFlashNpubInput!): IsFlashNpubPayload
Expand Down Expand Up @@ -1940,6 +2055,53 @@ type UpgradePayload
scalar USDCents
@join__type(graph: PUBLIC)

"""
A wallet belonging to an account which contains a USDT balance and a list of transactions.
"""
type UsdtWallet implements Wallet
@join__implements(graph: PUBLIC, interface: "Wallet")
@join__type(graph: PUBLIC)
{
accountId: ID!
balance: FractionalCentAmount
id: ID!
isExternal: Boolean!
lnurlp: Lnurl

"""An unconfirmed incoming onchain balance."""
pendingIncomingBalance: SignedAmount!
transactions(
"""Returns the items in the list that come after the specified cursor."""
after: String

"""Returns the items in the list that come before the specified cursor."""
before: String

"""Returns the first n items from the list."""
first: Int

"""Returns the last n items from the list."""
last: Int
): TransactionConnection
transactionsByAddress(
"""Returns the items that include this address."""
address: OnChainAddress!

"""Returns the items in the list that come after the specified cursor."""
after: String

"""Returns the items in the list that come before the specified cursor."""
before: String

"""Returns the first n items from the list."""
first: Int

"""Returns the last n items from the list."""
last: Int
): TransactionConnection
walletCurrency: WalletCurrency!
}

"""
A wallet belonging to an account which contains a USD balance and a list of transactions.
"""
Expand Down Expand Up @@ -2333,6 +2495,7 @@ enum WalletCurrency
{
BTC @join__enumValue(graph: PUBLIC)
USD @join__enumValue(graph: PUBLIC)
USDT @join__enumValue(graph: PUBLIC)
}

"""Unique identifier of a wallet"""
Expand Down
Loading