Socket
Socket
Sign inDemoInstall

@fiatconnect/fiatconnect-sdk

Package Overview
Dependencies
Maintainers
5
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fiatconnect/fiatconnect-sdk - npm Package Compare versions

Comparing version 0.3.0 to 0.3.1

.log/ti-2578691.log

8

CHANGELOG.md

@@ -5,2 +5,10 @@ # Changelog

### [0.3.1](https://github.com/fiatconnect/fiatconnect-sdk/compare/v0.3.0...v0.3.1) (2022-06-21)
### Features
* **accounts:** update add params to match with spec ([#32](https://github.com/fiatconnect/fiatconnect-sdk/issues/32)) ([1db193d](https://github.com/fiatconnect/fiatconnect-sdk/commit/1db193d217ab371b2507df0f0bee3deab222ea3f))
* **sessions:** Allow custom issued-at, set reasonable defaults ([#30](https://github.com/fiatconnect/fiatconnect-sdk/issues/30)) ([a90a0ee](https://github.com/fiatconnect/fiatconnect-sdk/commit/a90a0eec9dddfa56a306a183960c32817f677599))
### [0.3.0](https://github.com/fiatconnect/fiatconnect-sdk/compare/v0.2.3...v0.3.0) (2022-06-15)

@@ -7,0 +15,0 @@

18

dist/fiat-connect-client.d.ts

@@ -1,4 +0,4 @@

import { AddFiatAccountResponse, DeleteFiatAccountRequestParams, GetFiatAccountsResponse, KycRequestParams, KycStatusResponse, QuoteRequestQuery, QuoteResponse, TransferResponse, TransferStatusRequestParams, TransferStatusResponse, ClockResponse } from '@fiatconnect/fiatconnect-types';
import { DeleteFiatAccountRequestParams, GetFiatAccountsResponse, KycRequestParams, KycStatusResponse, PostFiatAccountRequestBody, PostFiatAccountResponse, QuoteRequestQuery, QuoteResponse, TransferResponse, TransferStatusRequestParams, TransferStatusResponse, ClockResponse, FiatAccountSchema, KycSchema } from '@fiatconnect/fiatconnect-types';
import { Result } from '@badrap/result';
import { AddFiatAccountParams, AddKycParams, ResponseError, FiatConnectApiClient, FiatConnectClientConfig, TransferRequestParams, ClockDiffParams, ClockDiffResult } from './types';
import { AddKycParams, ResponseError, FiatConnectApiClient, FiatConnectClientConfig, TransferRequestParams, ClockDiffParams, ClockDiffResult, LoginParams } from './types';
export declare class FiatConnectClient implements FiatConnectApiClient {

@@ -22,6 +22,7 @@ config: FiatConnectClientConfig;

*
* @param {LoginParams} params optional object containing params used to log in
* @returns a Promise resolving to the literal string 'success' on a
* successful login or an Error response.
*/
login(): Promise<Result<'success', ResponseError>>;
login(params?: LoginParams): Promise<Result<'success', ResponseError>>;
_getQuote(params: QuoteRequestQuery, inOrOut: 'in' | 'out'): Promise<Result<QuoteResponse, ResponseError>>;

@@ -37,2 +38,9 @@ /**

/**
* Returns an approximation of the current server time, taking into account clock differences
* between client and server. Returns the earliest possible server time based on the max error
* of the clock diff between client and server, to ensure that sessions created using this time
* are not issued in the future with respect to the server clock.
*/
getServerTimeApprox(): Promise<Result<Date, ResponseError>>;
/**
* Convenience method to calculate the approximate difference between server and client clocks.

@@ -56,3 +64,3 @@ */

*/
addKyc(params: AddKycParams): Promise<Result<KycStatusResponse, ResponseError>>;
addKyc<T extends KycSchema>(params: AddKycParams<T>): Promise<Result<KycStatusResponse, ResponseError>>;
/**

@@ -69,3 +77,3 @@ * https://github.com/fiatconnect/specification/blob/main/fiatconnect-api.md#3323-delete-kyckycschema

*/
addFiatAccount(params: AddFiatAccountParams): Promise<Result<AddFiatAccountResponse, ResponseError>>;
addFiatAccount<T extends FiatAccountSchema>(params: PostFiatAccountRequestBody<T>): Promise<Result<PostFiatAccountResponse, ResponseError>>;
/**

@@ -72,0 +80,0 @@ * https://github.com/fiatconnect/specification/blob/main/fiatconnect-api.md#3332-get-accounts

@@ -48,8 +48,21 @@ "use strict";

*
* @param {LoginParams} params optional object containing params used to log in
* @returns a Promise resolving to the literal string 'success' on a
* successful login or an Error response.
*/
async login() {
async login(params) {
try {
const expirationDate = new Date(Date.now() + SESSION_DURATION_MS);
// Prefer param issued-at > diff-based issued-at > client-based issued-at
let issuedAt = params === null || params === void 0 ? void 0 : params.issuedAt;
if (!issuedAt) {
const serverTimeResult = await this.getServerTimeApprox();
if (serverTimeResult.isOk) {
issuedAt = serverTimeResult.value;
}
else {
console.error(`Unable to determine issuedAt time from server timestamp: ${serverTimeResult.error.message}`);
issuedAt = new Date();
}
}
const expirationTime = new Date(issuedAt.getTime() + SESSION_DURATION_MS);
const siweMessage = new siwe_1.SiweMessage({

@@ -66,3 +79,4 @@ domain: new URL(this.config.baseUrl).hostname,

nonce: (0, siwe_1.generateNonce)(),
expirationTime: expirationDate.toISOString(),
issuedAt: issuedAt.toISOString(),
expirationTime: expirationTime.toISOString(),
});

@@ -84,3 +98,3 @@ const message = siweMessage.prepareMessage();

}
this._sessionExpiry = expirationDate;
this._sessionExpiry = expirationTime;
return result_1.Result.ok('success');

@@ -123,2 +137,17 @@ }

/**
* Returns an approximation of the current server time, taking into account clock differences
* between client and server. Returns the earliest possible server time based on the max error
* of the clock diff between client and server, to ensure that sessions created using this time
* are not issued in the future with respect to the server clock.
*/
async getServerTimeApprox() {
const clockDiffResponse = await this.getClockDiffApprox();
if (!clockDiffResponse.isOk) {
return result_1.Result.err(clockDiffResponse.error);
}
return result_1.Result.ok(new Date(Date.now() +
clockDiffResponse.value.diff -
clockDiffResponse.value.maxError));
}
/**
* Convenience method to calculate the approximate difference between server and client clocks.

@@ -236,6 +265,6 @@ */

await this._ensureLogin();
const response = await fetch(`${this.config.baseUrl}/accounts/${params.fiatAccountSchemaName}`, {
const response = await fetch(`${this.config.baseUrl}/accounts`, {
method: 'POST',
headers: Object.assign({ 'Content-Type': 'application/json' }, this._getAuthHeader()),
body: JSON.stringify(params.data),
body: JSON.stringify(params),
});

@@ -242,0 +271,0 @@ const data = await response.json();

@@ -1,35 +0,30 @@

import { AccountNumber, DuniaWallet, MobileMoney, AddFiatAccountResponse, DeleteFiatAccountRequestParams, FiatAccountSchema, FiatConnectError, GetFiatAccountsResponse, KycRequestParams, KycSchema, KycStatusResponse, Network, PersonalDataAndDocumentsKyc, QuoteErrorResponse, QuoteRequestQuery, QuoteResponse, TransferRequestBody, TransferResponse, TransferStatusRequestParams, TransferStatusResponse, ClockResponse, IBANNumber, IFSCAccount } from '@fiatconnect/fiatconnect-types';
import { DeleteFiatAccountRequestParams, FiatConnectError, GetFiatAccountsResponse, KycRequestParams, KycSchema, KycSchemas, KycStatusResponse, Network, PostFiatAccountRequestBody, PostFiatAccountResponse, QuoteErrorResponse, QuoteRequestQuery, QuoteResponse, TransferRequestBody, TransferResponse, TransferStatusRequestParams, TransferStatusResponse, ClockResponse, FiatAccountSchema } from '@fiatconnect/fiatconnect-types';
import { Result } from '@badrap/result';
export interface FiatConnectApiClient {
getServerTimeApprox(): Promise<Result<Date, ResponseError>>;
getClockDiffApprox(): Promise<Result<ClockDiffResult, ResponseError>>;
getClock(): Promise<Result<ClockResponse, ResponseError>>;
login(): Promise<Result<'success', ResponseError>>;
login(params?: LoginParams): Promise<Result<'success', ResponseError>>;
isLoggedIn(): boolean;
getQuoteIn(params: QuoteRequestQuery, jwt: string): Promise<Result<QuoteResponse, ResponseError>>;
getQuoteOut(params: QuoteRequestQuery, jwt: string): Promise<Result<QuoteResponse, ResponseError>>;
addKyc(params: AddKycParams, jwt: string): Promise<Result<KycStatusResponse, ResponseError>>;
deleteKyc(params: KycRequestParams, jwt: string): Promise<Result<void, ResponseError>>;
getKycStatus(params: KycRequestParams, jwt: string): Promise<Result<KycStatusResponse, ResponseError>>;
addFiatAccount(params: AddFiatAccountParams, jwt: string): Promise<Result<AddFiatAccountResponse, ResponseError>>;
getFiatAccounts(jwt: string): Promise<Result<GetFiatAccountsResponse, ResponseError>>;
deleteFiatAccount(params: DeleteFiatAccountRequestParams, jwt: string): Promise<Result<void, ResponseError>>;
transferIn(params: TransferRequestParams, jwt: string): Promise<Result<TransferResponse, ResponseError>>;
transferOut(params: TransferRequestParams, jwt: string): Promise<Result<TransferResponse, ResponseError>>;
getTransferStatus(params: TransferStatusRequestParams, jwt: string): Promise<Result<TransferStatusResponse, ResponseError>>;
getQuoteIn(params: QuoteRequestQuery): Promise<Result<QuoteResponse, ResponseError>>;
getQuoteOut(params: QuoteRequestQuery): Promise<Result<QuoteResponse, ResponseError>>;
addKyc<T extends KycSchema>(params: AddKycParams<T>): Promise<Result<KycStatusResponse, ResponseError>>;
deleteKyc(params: KycRequestParams): Promise<Result<void, ResponseError>>;
getKycStatus(params: KycRequestParams): Promise<Result<KycStatusResponse, ResponseError>>;
addFiatAccount<T extends FiatAccountSchema>(params: PostFiatAccountRequestBody<T>): Promise<Result<PostFiatAccountResponse, ResponseError>>;
getFiatAccounts(): Promise<Result<GetFiatAccountsResponse, ResponseError>>;
deleteFiatAccount(params: DeleteFiatAccountRequestParams): Promise<Result<void, ResponseError>>;
transferIn(params: TransferRequestParams): Promise<Result<TransferResponse, ResponseError>>;
transferOut(params: TransferRequestParams): Promise<Result<TransferResponse, ResponseError>>;
getTransferStatus(params: TransferStatusRequestParams): Promise<Result<TransferStatusResponse, ResponseError>>;
}
export declare type KycSchemaData = PersonalDataAndDocumentsKyc;
export declare type FiatAccountSchemaData = // similarly, this will be the union of all fiat account schema types
AccountNumber | MobileMoney | DuniaWallet | IBANNumber | IFSCAccount;
export interface AddKycParams {
kycSchemaName: KycSchema;
data: KycSchemaData;
export interface LoginParams {
issuedAt?: Date;
}
export interface AddFiatAccountParams {
fiatAccountSchemaName: FiatAccountSchema;
data: FiatAccountSchemaData;
export interface AddKycParams<T extends KycSchema> {
kycSchemaName: T;
data: KycSchemas[T];
}
export interface FiatConnectClientConfig {
baseUrl: string;
providerName: string;
iconUrl: string;
network: Network;

@@ -36,0 +31,0 @@ accountAddress: string;

{
"name": "@fiatconnect/fiatconnect-sdk",
"version": "0.3.0",
"version": "0.3.1",
"description": "A helper libary for wallets to integrate with FiatConnect APIs",

@@ -52,3 +52,3 @@ "scripts": {

"@badrap/result": "^0.2.12",
"@fiatconnect/fiatconnect-types": "^4.1.0",
"@fiatconnect/fiatconnect-types": "^5.0.0",
"ethers": "^5.6.4",

@@ -55,0 +55,0 @@ "fetch-cookie": "^2.0.3",

import {
AddFiatAccountResponse,
AuthRequestBody,

@@ -9,2 +8,4 @@ DeleteFiatAccountRequestParams,

Network,
PostFiatAccountRequestBody,
PostFiatAccountResponse,
QuoteErrorResponse,

@@ -17,2 +18,4 @@ QuoteRequestQuery,

ClockResponse,
FiatAccountSchema,
KycSchema,
} from '@fiatconnect/fiatconnect-types'

@@ -24,3 +27,2 @@ import fetchCookie from 'fetch-cookie'

import {
AddFiatAccountParams,
AddKycParams,

@@ -33,2 +35,3 @@ ResponseError,

ClockDiffResult,
LoginParams,
} from './types'

@@ -86,8 +89,22 @@ import { ethers } from 'ethers'

*
* @param {LoginParams} params optional object containing params used to log in
* @returns a Promise resolving to the literal string 'success' on a
* successful login or an Error response.
*/
async login(): Promise<Result<'success', ResponseError>> {
async login(params?: LoginParams): Promise<Result<'success', ResponseError>> {
try {
const expirationDate = new Date(Date.now() + SESSION_DURATION_MS)
// Prefer param issued-at > diff-based issued-at > client-based issued-at
let issuedAt = params?.issuedAt
if (!issuedAt) {
const serverTimeResult = await this.getServerTimeApprox()
if (serverTimeResult.isOk) {
issuedAt = serverTimeResult.value
} else {
console.error(
`Unable to determine issuedAt time from server timestamp: ${serverTimeResult.error.message}`,
)
issuedAt = new Date()
}
}
const expirationTime = new Date(issuedAt.getTime() + SESSION_DURATION_MS)
const siweMessage = new SiweMessage({

@@ -104,3 +121,4 @@ domain: new URL(this.config.baseUrl).hostname,

nonce: generateNonce(),
expirationTime: expirationDate.toISOString(),
issuedAt: issuedAt.toISOString(),
expirationTime: expirationTime.toISOString(),
})

@@ -128,3 +146,3 @@ const message = siweMessage.prepareMessage()

this._sessionExpiry = expirationDate
this._sessionExpiry = expirationTime
return Result.ok('success')

@@ -174,2 +192,22 @@ } catch (error) {

/**
* Returns an approximation of the current server time, taking into account clock differences
* between client and server. Returns the earliest possible server time based on the max error
* of the clock diff between client and server, to ensure that sessions created using this time
* are not issued in the future with respect to the server clock.
*/
async getServerTimeApprox(): Promise<Result<Date, ResponseError>> {
const clockDiffResponse = await this.getClockDiffApprox()
if (!clockDiffResponse.isOk) {
return Result.err(clockDiffResponse.error)
}
return Result.ok(
new Date(
Date.now() +
clockDiffResponse.value.diff -
clockDiffResponse.value.maxError,
),
)
}
/**
* Convenience method to calculate the approximate difference between server and client clocks.

@@ -232,4 +270,4 @@ */

*/
async addKyc(
params: AddKycParams,
async addKyc<T extends KycSchema>(
params: AddKycParams<T>,
): Promise<Result<KycStatusResponse, ResponseError>> {

@@ -312,18 +350,15 @@ try {

*/
async addFiatAccount(
params: AddFiatAccountParams,
): Promise<Result<AddFiatAccountResponse, ResponseError>> {
async addFiatAccount<T extends FiatAccountSchema>(
params: PostFiatAccountRequestBody<T>,
): Promise<Result<PostFiatAccountResponse, ResponseError>> {
try {
await this._ensureLogin()
const response = await fetch(
`${this.config.baseUrl}/accounts/${params.fiatAccountSchemaName}`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
...this._getAuthHeader(),
},
body: JSON.stringify(params.data),
const response = await fetch(`${this.config.baseUrl}/accounts`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
...this._getAuthHeader(),
},
)
body: JSON.stringify(params),
})
const data = await response.json()

@@ -330,0 +365,0 @@ if (!response.ok) {

import {
AccountNumber,
DuniaWallet,
MobileMoney,
AddFiatAccountResponse,
DeleteFiatAccountRequestParams,
FiatAccountSchema,
FiatConnectError,

@@ -12,5 +7,7 @@ GetFiatAccountsResponse,

KycSchema,
KycSchemas,
KycStatusResponse,
Network,
PersonalDataAndDocumentsKyc,
PostFiatAccountRequestBody,
PostFiatAccountResponse,
QuoteErrorResponse,

@@ -24,4 +21,3 @@ QuoteRequestQuery,

ClockResponse,
IBANNumber,
IFSCAccount,
FiatAccountSchema,
} from '@fiatconnect/fiatconnect-types'

@@ -31,64 +27,45 @@ import { Result } from '@badrap/result'

export interface FiatConnectApiClient {
getServerTimeApprox(): Promise<Result<Date, ResponseError>>
getClockDiffApprox(): Promise<Result<ClockDiffResult, ResponseError>>
getClock(): Promise<Result<ClockResponse, ResponseError>>
login(): Promise<Result<'success', ResponseError>>
login(params?: LoginParams): Promise<Result<'success', ResponseError>>
isLoggedIn(): boolean
getQuoteIn(
params: QuoteRequestQuery,
jwt: string,
): Promise<Result<QuoteResponse, ResponseError>>
getQuoteOut(
params: QuoteRequestQuery,
jwt: string,
): Promise<Result<QuoteResponse, ResponseError>>
addKyc(
params: AddKycParams,
jwt: string,
addKyc<T extends KycSchema>(
params: AddKycParams<T>,
): Promise<Result<KycStatusResponse, ResponseError>>
deleteKyc(
params: KycRequestParams,
jwt: string,
): Promise<Result<void, ResponseError>>
deleteKyc(params: KycRequestParams): Promise<Result<void, ResponseError>>
getKycStatus(
params: KycRequestParams,
jwt: string,
): Promise<Result<KycStatusResponse, ResponseError>>
addFiatAccount(
params: AddFiatAccountParams,
jwt: string,
): Promise<Result<AddFiatAccountResponse, ResponseError>>
getFiatAccounts(
jwt: string,
): Promise<Result<GetFiatAccountsResponse, ResponseError>>
addFiatAccount<T extends FiatAccountSchema>(
params: PostFiatAccountRequestBody<T>,
): Promise<Result<PostFiatAccountResponse, ResponseError>>
getFiatAccounts(): Promise<Result<GetFiatAccountsResponse, ResponseError>>
deleteFiatAccount(
params: DeleteFiatAccountRequestParams,
jwt: string,
): Promise<Result<void, ResponseError>>
transferIn(
params: TransferRequestParams,
jwt: string,
): Promise<Result<TransferResponse, ResponseError>>
transferOut(
params: TransferRequestParams,
jwt: string,
): Promise<Result<TransferResponse, ResponseError>>
getTransferStatus(
params: TransferStatusRequestParams,
jwt: string,
): Promise<Result<TransferStatusResponse, ResponseError>>
}
// These must be manually updated as more KYC and FiatAccount types become standardized
export type KycSchemaData = PersonalDataAndDocumentsKyc // in the future this will be the union of all KYC schema types (currently there is just one)
export type FiatAccountSchemaData = // similarly, this will be the union of all fiat account schema types
AccountNumber | MobileMoney | DuniaWallet | IBANNumber | IFSCAccount
export interface AddKycParams {
kycSchemaName: KycSchema
data: KycSchemaData
export interface LoginParams {
issuedAt?: Date
}
export interface AddFiatAccountParams {
fiatAccountSchemaName: FiatAccountSchema
data: FiatAccountSchemaData
export interface AddKycParams<T extends KycSchema> {
kycSchemaName: T
data: KycSchemas[T]
}

@@ -95,0 +72,0 @@

@@ -83,2 +83,28 @@ import { FiatConnectClient, ResponseError } from '../src/index'

})
describe('getServerTimeApprox', () => {
it('returns the earliest approximation of server time', async () => {
jest
.spyOn(client, 'getClockDiffApprox')
.mockResolvedValueOnce(Result.ok({ diff: 1000, maxError: 500 }))
const response = await client.getServerTimeApprox()
expect(response.isOk).toBeTruthy()
expect((response.unwrap() as Date).toISOString()).toEqual(
'2022-05-01T00:00:00.500Z',
)
})
it('returns an error if clock diff throws', async () => {
jest
.spyOn(client, 'getClockDiffApprox')
.mockResolvedValueOnce(
Result.err(new ResponseError('fake error message')),
)
const response = await client.getServerTimeApprox()
expect(response.isOk).toBeFalsy()
expect(response.unwrap.bind(response)).toThrow(
new ResponseError('fake error message'),
)
})
})
describe('_calculateClockDiff', () => {

@@ -152,3 +178,5 @@ it('calculates clock diff when server is ahead', async () => {

const response = await client.login()
const response = await client.login({
issuedAt: new Date('2022-10-02T10:01:56+0000'),
})

@@ -161,3 +189,4 @@ const expectedSiweMessage = new siwe.SiweMessage({

nonce: '12345678',
expirationTime: '2022-05-01T04:00:00.000Z',
expirationTime: '2022-10-02T14:01:56.000Z',
issuedAt: '2022-10-02T10:01:56.000Z',
version: '1',

@@ -188,3 +217,5 @@ chainId: 44787,

const response = await client.login()
const response = await client.login({
issuedAt: new Date('2022-10-02T10:01:56+0000'),
})

@@ -197,3 +228,4 @@ const expectedSiweMessage = new siwe.SiweMessage({

nonce: '12345678',
expirationTime: '2022-05-01T04:00:00.000Z',
expirationTime: '2022-10-02T14:01:56.000Z',
issuedAt: '2022-10-02T10:01:56.000Z',
version: '1',

@@ -226,3 +258,5 @@ chainId: 44787,

signingFunction.mockRejectedValueOnce(new Error('some error'))
const response = await client.login()
const response = await client.login({
issuedAt: new Date('2022-10-02T22:01:56+0000'),
})

@@ -235,2 +269,72 @@ expect(response.isOk).toBeFalsy()

})
it('defaults to current server time for issued-at if none is provided', async () => {
jest.spyOn(siwe, 'generateNonce').mockReturnValueOnce('12345678')
jest
.spyOn(client, 'getServerTimeApprox')
.mockResolvedValueOnce(Result.ok(new Date('2022-07-02T08:01:56+0000')))
const response = await client.login()
const expectedSiweMessage = new siwe.SiweMessage({
domain: 'fiat-connect-api.com',
address: checksummedAccountAddress,
statement: 'Sign in with Ethereum',
uri: 'https://fiat-connect-api.com/auth/login',
nonce: '12345678',
expirationTime: '2022-07-02T12:01:56.000Z',
issuedAt: '2022-07-02T08:01:56.000Z',
version: '1',
chainId: 44787,
})
expect(fetchMock).toHaveBeenCalledWith(
'https://fiat-connect-api.com/auth/login',
expect.objectContaining({
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
message: expectedSiweMessage.prepareMessage(),
signature: 'signed message',
}),
}),
)
expect(response.isOk).toBeTruthy()
expect(response.unwrap()).toEqual('success')
expect(getHeadersMock).toHaveBeenCalled()
expect(client.getServerTimeApprox).toHaveBeenCalled()
})
it('falls back to client time if getting clock diff throws', async () => {
jest.spyOn(siwe, 'generateNonce').mockReturnValueOnce('12345678')
jest
.spyOn(client, 'getServerTimeApprox')
.mockResolvedValueOnce(Result.err(new Error()))
const response = await client.login()
const expectedSiweMessage = new siwe.SiweMessage({
domain: 'fiat-connect-api.com',
address: checksummedAccountAddress,
statement: 'Sign in with Ethereum',
uri: 'https://fiat-connect-api.com/auth/login',
nonce: '12345678',
expirationTime: '2022-05-01T04:00:00.000Z',
issuedAt: '2022-05-01T00:00:00.000Z',
version: '1',
chainId: 44787,
})
expect(fetchMock).toHaveBeenCalledWith(
'https://fiat-connect-api.com/auth/login',
expect.objectContaining({
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
message: expectedSiweMessage.prepareMessage(),
signature: 'signed message',
}),
}),
)
expect(response.isOk).toBeTruthy()
expect(response.unwrap()).toEqual('success')
expect(getHeadersMock).toHaveBeenCalled()
expect(client.getServerTimeApprox).toHaveBeenCalled()
})
})

@@ -523,10 +627,14 @@ describe('isLoggedIn', () => {

const response = await client.addFiatAccount({
fiatAccountSchemaName: FiatAccountSchema.AccountNumber,
fiatAccountSchema: FiatAccountSchema.AccountNumber,
data: mockFiatAccountSchemaData,
})
expect(fetchMock).toHaveBeenCalledWith(
'https://fiat-connect-api.com/accounts/AccountNumber',
'https://fiat-connect-api.com/accounts',
expect.objectContaining({
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
fiatAccountSchema: FiatAccountSchema.AccountNumber,
data: mockFiatAccountSchemaData,
}),
}),

@@ -543,7 +651,7 @@ )

const response = await client.addFiatAccount({
fiatAccountSchemaName: FiatAccountSchema.AccountNumber,
fiatAccountSchema: FiatAccountSchema.AccountNumber,
data: mockFiatAccountSchemaData,
})
expect(fetchMock).toHaveBeenCalledWith(
'https://fiat-connect-api.com/accounts/AccountNumber',
'https://fiat-connect-api.com/accounts',
expect.objectContaining({

@@ -555,2 +663,6 @@ method: 'POST',

},
body: JSON.stringify({
fiatAccountSchema: FiatAccountSchema.AccountNumber,
data: mockFiatAccountSchemaData,
}),
}),

@@ -569,3 +681,3 @@ )

const response = await client.addFiatAccount({
fiatAccountSchemaName: FiatAccountSchema.AccountNumber,
fiatAccountSchema: FiatAccountSchema.AccountNumber,
data: mockFiatAccountSchemaData,

@@ -581,3 +693,3 @@ })

const response = await client.addFiatAccount({
fiatAccountSchemaName: FiatAccountSchema.AccountNumber,
fiatAccountSchema: FiatAccountSchema.AccountNumber,
data: mockFiatAccountSchemaData,

@@ -584,0 +696,0 @@ })

import {
AddFiatAccountResponse,
CryptoType,

@@ -12,4 +11,6 @@ DeleteFiatAccountRequestParams,

KycSchema,
KycSchemas,
KycStatus,
KycStatusResponse,
PostFiatAccountResponse,
QuoteErrorResponse,

@@ -24,8 +25,5 @@ QuoteRequestQuery,

ClockResponse,
FiatAccountSchemas,
} from '@fiatconnect/fiatconnect-types'
import {
FiatAccountSchemaData,
KycSchemaData,
TransferRequestParams,
} from '../src/types'
import { TransferRequestParams } from '../src/types'

@@ -71,22 +69,23 @@ export const mockQuoteRequestQuery: QuoteRequestQuery = {

export const mockKycSchemaData: KycSchemaData = {
firstName: 'Jacob',
lastName: 'Smith',
address: {
address1: '943 Hiney Road',
city: 'Las Vegas',
isoRegionCode: 'NV',
postalCode: '89119',
isoCountryCode: 'US',
},
dateOfBirth: {
day: '01',
month: '05',
year: '1992',
},
phoneNumber: '+13238475509',
selfieDocument: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACA', // truncated for brevity
identificationDocument:
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABmJLR0QA', // also truncated for brevity
}
export const mockKycSchemaData: KycSchemas[KycSchema.PersonalDataAndDocuments] =
{
firstName: 'Jacob',
lastName: 'Smith',
address: {
address1: '943 Hiney Road',
city: 'Las Vegas',
isoRegionCode: 'NV',
postalCode: '89119',
isoCountryCode: 'US',
},
dateOfBirth: {
day: '01',
month: '05',
year: '1992',
},
phoneNumber: '+13238475509',
selfieDocument: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACA', // truncated for brevity
identificationDocument:
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABmJLR0QA', // also truncated for brevity
}

@@ -97,11 +96,12 @@ export const mockKycStatusResponse: KycStatusResponse = {

export const mockFiatAccountSchemaData: FiatAccountSchemaData = {
institutionName: 'Chase',
accountName: 'Checking Account',
accountNumber: '12533986',
country: 'US',
fiatAccountType: FiatAccountType.BankAccount,
}
export const mockFiatAccountSchemaData: FiatAccountSchemas[FiatAccountSchema.AccountNumber] =
{
institutionName: 'Chase',
accountName: 'Checking Account',
accountNumber: '12533986',
country: 'US',
fiatAccountType: FiatAccountType.BankAccount,
}
export const mockAddFiatAccountResponse: AddFiatAccountResponse = {
export const mockAddFiatAccountResponse: PostFiatAccountResponse = {
fiatAccountId: '12345',

@@ -108,0 +108,0 @@ accountName: 'Checking Account',

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc