Skip to content

Commit

Permalink
refactor: remove anything related to ilpStreamConnection
Browse files Browse the repository at this point in the history
  • Loading branch information
omertoast committed Sep 22, 2023
1 parent d022f2e commit 98b697f
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 77 deletions.
44 changes: 12 additions & 32 deletions packages/open-payments/src/client/incoming-payment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,16 @@ import {
getRSPath,
CreateIncomingPaymentArgs,
PaginationArgs,
IncomingPaymentPaginationResult,
IncomingPaymentWithConnectionUrl,
IncomingPaymentWithConnection
IncomingPaymentPaginationResult
} from '../types'
import { get, post } from './requests'

type AnyIncomingPayment =
| IncomingPayment
| IncomingPaymentWithConnection
| IncomingPaymentWithConnectionUrl

export interface IncomingPaymentRoutes {
get(args: ResourceRequestArgs): Promise<IncomingPaymentWithConnection>
get(args: ResourceRequestArgs): Promise<IncomingPayment>
create(
args: CollectionRequestArgs,
createArgs: CreateIncomingPaymentArgs
): Promise<IncomingPaymentWithConnection>
): Promise<IncomingPayment>
complete(args: ResourceRequestArgs): Promise<IncomingPayment>
list(
args: CollectionRequestArgs,
Expand All @@ -40,7 +33,7 @@ export const createIncomingPaymentRoutes = (
const { axiosInstance, openApi, logger } = deps

const getIncomingPaymentOpenApiValidator =
openApi.createResponseValidator<IncomingPaymentWithConnection>({
openApi.createResponseValidator<IncomingPayment>({
path: getRSPath('/incoming-payments/{id}'),
method: HttpMethod.GET
})
Expand Down Expand Up @@ -99,7 +92,7 @@ export const createIncomingPaymentRoutes = (
export const getIncomingPayment = async (
deps: BaseDeps,
args: ResourceRequestArgs,
validateOpenApiResponse: ResponseValidator<IncomingPaymentWithConnection>
validateOpenApiResponse: ResponseValidator<IncomingPayment>
) => {
const { axiosInstance, logger } = deps
const { url } = args
Expand Down Expand Up @@ -222,9 +215,9 @@ export const listIncomingPayment = async (
return incomingPayments
}

export const validateIncomingPayment = <T extends AnyIncomingPayment>(
payment: T
): T => {
export const validateIncomingPayment = (
payment: IncomingPayment
): IncomingPayment => {
if (payment.incomingAmount) {
const { incomingAmount, receivedAmount } = payment
if (
Expand All @@ -245,32 +238,19 @@ export const validateIncomingPayment = <T extends AnyIncomingPayment>(
}
}

if (
'ilpStreamConnection' in payment &&
typeof payment.ilpStreamConnection === 'object' &&
(payment.ilpStreamConnection.assetCode !==
payment.receivedAmount.assetCode ||
payment.ilpStreamConnection.assetScale !==
payment.receivedAmount.assetScale)
) {
throw new Error(
'Stream connection asset information does not match incoming payment asset information'
)
}

return payment
}

export const validateCreatedIncomingPayment = (
payment: IncomingPaymentWithConnection
): IncomingPaymentWithConnection => {
payment: IncomingPayment
): IncomingPayment => {
const { receivedAmount, completed } = payment

if (BigInt(receivedAmount.value) !== BigInt(0)) {
throw new Error('Received amount is a non-zero value.')
}

if (completed === true) {
if (completed) {
throw new Error('Can not create a completed incoming payment.')
}

Expand All @@ -282,7 +262,7 @@ export const validateCompletedIncomingPayment = (
): IncomingPayment => {
const { completed } = payment

if (completed === false) {
if (completed) {
throw new Error('Incoming payment could not be completed.')
}

Expand Down
6 changes: 0 additions & 6 deletions packages/open-payments/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@ export {
GrantRequest,
GrantContinuationRequest,
IncomingPayment,
IncomingPaymentWithConnection,
IncomingPaymentWithConnectionUrl,
ILPStreamConnection,
Quote,
OutgoingPayment,
PendingGrant,
Expand All @@ -28,11 +25,8 @@ export {
} from './client'

export {
mockILPStreamConnection,
mockWalletAddress,
mockIncomingPayment,
mockIncomingPaymentWithConnection,
mockIncomingPaymentWithConnectionUrl,
mockOutgoingPayment,
mockIncomingPaymentPaginationResult,
mockOutgoingPaymentPaginationResult,
Expand Down
31 changes: 0 additions & 31 deletions packages/open-payments/src/test/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { generateKeyPairSync } from 'crypto'
import createLogger from 'pino'
import { createAxiosInstance } from '../client/requests'
import {
ILPStreamConnection,
IncomingPayment,
GrantRequest,
GrantContinuationRequest,
Expand All @@ -13,12 +12,9 @@ import {
AccessToken,
Quote,
IncomingPaymentPaginationResult,
IncomingPaymentWithConnection,
IncomingPaymentWithConnectionUrl,
PendingGrant,
Grant
} from '../types'
import base64url from 'base64url'
import { v4 as uuid } from 'uuid'
import { ResponseValidator } from '@interledger/openapi'

Expand Down Expand Up @@ -80,17 +76,6 @@ export const mockWalletAddress = (
...overrides
})

export const mockILPStreamConnection = (
overrides?: Partial<ILPStreamConnection>
): ILPStreamConnection => ({
id: `https://example.com/.well-known/pay/connections/${uuid()}`,
sharedSecret: base64url('sharedSecret'),
ilpAddress: 'test.ilpAddress',
assetCode: 'USD',
assetScale: 2,
...overrides
})

export const mockIncomingPayment = (
overrides?: Partial<IncomingPayment>
): IncomingPayment => ({
Expand All @@ -112,22 +97,6 @@ export const mockIncomingPayment = (
...overrides
})

export const mockIncomingPaymentWithConnection = (
overrides?: Partial<IncomingPaymentWithConnection>
): IncomingPaymentWithConnection => ({
...mockIncomingPayment(),
ilpStreamConnection: mockILPStreamConnection(overrides?.ilpStreamConnection),
...overrides
})

export const mockIncomingPaymentWithConnectionUrl = (
overrides?: Partial<IncomingPaymentWithConnectionUrl>
): IncomingPaymentWithConnectionUrl => ({
...mockIncomingPayment(),
ilpStreamConnection: mockILPStreamConnection().id,
...overrides
})

export const mockIncomingPaymentPaginationResult = (
overrides?: Partial<IncomingPaymentPaginationResult>
): IncomingPaymentPaginationResult => {
Expand Down
9 changes: 1 addition & 8 deletions packages/open-payments/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,9 @@ export const getRSPath = <P extends keyof RSPaths>(path: P): string =>
path as string

export type IncomingPayment = RSComponents['schemas']['incoming-payment']
export type IncomingPaymentWithConnection =
RSComponents['schemas']['incoming-payment-with-connection']
export type IncomingPaymentWithConnectionUrl =
RSComponents['schemas']['incoming-payment-with-connection-url']
export type CreateIncomingPaymentArgs =
RSOperations['create-incoming-payment']['requestBody']['content']['application/json']
export type IncomingPaymentPaginationResult =
PaginationResult<IncomingPaymentWithConnectionUrl>
export type ILPStreamConnection =
RSComponents['schemas']['ilp-stream-connection']
export type IncomingPaymentPaginationResult = PaginationResult<IncomingPayment>
export type OutgoingPayment = RSComponents['schemas']['outgoing-payment']
export type CreateOutgoingPaymentArgs =
RSOperations['create-outgoing-payment']['requestBody']['content']['application/json']
Expand Down

0 comments on commit 98b697f

Please sign in to comment.