Skip to content

Commit

Permalink
fix(addressChecker): add addressChecker method
Browse files Browse the repository at this point in the history
  • Loading branch information
AntonKozAllB committed Jun 4, 2024
1 parent def8e31 commit 1498a00
Show file tree
Hide file tree
Showing 8 changed files with 71 additions and 33 deletions.
8 changes: 4 additions & 4 deletions src/client/core-api/api-client-caching.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { ChainSymbol } from "../../chains";
import { PoolInfoMap, PoolKeyObject } from "../../tokens-info";
import { ApiClient, TokenInfo } from "./api-client";
import {
CheckAddressRequest,
CheckAddressResponse,
CheckAddressesRequest,
CheckAddressesResult,
GasBalanceResponse,
PendingInfoResponse,
ReceiveTransactionCostRequest,
Expand Down Expand Up @@ -50,8 +50,8 @@ export class ApiClientCaching implements ApiClient {
return gasBalancePromise;
}

async addressChecker(param: CheckAddressRequest): Promise<CheckAddressResponse> {
return this.apiClient.addressChecker(param);
async checkAddresses(param: CheckAddressesRequest): Promise<CheckAddressesResult> {
return this.apiClient.checkAddresses(param);
}

async getPendingInfo(): Promise<PendingInfoResponse> {
Expand Down
20 changes: 14 additions & 6 deletions src/client/core-api/api-client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ import {
} from "./core-api-mapper";
import {
ChainDetailsResponse,
CheckAddressRequest,
CheckAddressResponse,
CheckAddressesRequest,
CheckAddressesResult,
CheckResponse,
GasBalanceResponse,
PendingInfoResponse,
PoolInfoResponse,
Expand All @@ -32,7 +33,7 @@ export interface ApiClient {

getGasBalance(chainSymbol: ChainSymbol, address: string): Promise<GasBalanceResponse>;

addressChecker(param: CheckAddressRequest): Promise<CheckAddressResponse>;
checkAddresses(param: CheckAddressesRequest): Promise<CheckAddressesResult>;

getTransferStatus(chainSymbol: ChainSymbol, txId: string): Promise<TransferStatusResponse>;

Expand Down Expand Up @@ -74,7 +75,7 @@ export class ApiClientImpl implements ApiClient {
return data;
}

async addressChecker(param: CheckAddressRequest): Promise<CheckAddressResponse> {
async checkAddresses(param: CheckAddressesRequest): Promise<CheckAddressesResult> {
const queryParam: {
token?: string;
senderAddress?: string;
Expand All @@ -91,13 +92,20 @@ export class ApiClientImpl implements ApiClient {
if (param.amount) {
queryParam.amount = param.amount;
}
const { data } = await this.api.get<CheckAddressResponse>(
const { data } = await this.api.get<CheckResponse>(
`/check/${param.recipient.chainSymbol}/${param.recipient.address}`,
{
params: { ...queryParam, ...this.api.defaults.params },
}
);
return data;
const result: CheckAddressesResult = {
recipientStatus: data.recipientStatus ?? data.status ?? null,
recipientGasBalance: data.gasBalance,
};
if (param.sender) {
result.senderStatus = data.senderStatus ?? null;
}
return result;
}

async getTransferStatus(chainSymbol: ChainSymbol, txId: string): Promise<TransferStatusResponse> {
Expand Down
19 changes: 15 additions & 4 deletions src/client/core-api/core-api.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,17 +88,28 @@ export interface GasBalanceResponse {
status: AddressStatus;
}

export interface CheckAddressRequest {
export interface CheckAddressResponse {
gasBalance: string | null;
status: AddressStatus;
}

export interface CheckAddressesRequest {
recipient: { chainSymbol: ChainSymbol; address: string; tokenAddress?: string };
sender?: { chainSymbol: ChainSymbol; address: string };
amount?: string;
}

export interface CheckAddressResponse {
export interface CheckResponse {
status?: AddressStatus | null;
recipientStatus?: AddressStatus | null;
senderStatus?: AddressStatus | null;
gasBalance: string | null;
status: AddressStatus | null;
senderStatus: AddressStatus | null;
}

export interface CheckAddressesResult {
senderStatus?: AddressStatus | null;
recipientStatus: AddressStatus | null;
recipientGasBalance: string | null;
}

export interface TransferStatusResponse {
Expand Down
8 changes: 4 additions & 4 deletions src/client/core-api/core-client-pool-info-caching.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { ChainSymbol } from "../../chains";
import { ChainDetailsMap, PoolInfo, PoolInfoMap, PoolKeyObject, TokenWithChainDetails } from "../../tokens-info";
import { mapChainDetailsMapToPoolKeyObjects, mapPoolKeyObjectToPoolKey } from "./core-api-mapper";
import {
CheckAddressRequest,
CheckAddressResponse,
CheckAddressesRequest,
CheckAddressesResult,
GasBalanceResponse,
PendingInfoResponse,
ReceiveTransactionCostRequest,
Expand Down Expand Up @@ -46,8 +46,8 @@ export class AllbridgeCoreClientPoolInfoCaching implements AllbridgeCoreClient {
return this.client.getGasBalance(chainSymbol, address);
}

addressChecker(param: CheckAddressRequest): Promise<CheckAddressResponse> {
return this.client.addressChecker(param);
checkAddresses(param: CheckAddressesRequest): Promise<CheckAddressesResult> {
return this.client.checkAddresses(param);
}

async getPoolInfoByKey(poolKeyObject: PoolKeyObject): Promise<PoolInfo> {
Expand Down
8 changes: 4 additions & 4 deletions src/client/core-api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { ChainSymbol } from "../../chains";
import { ChainDetailsMap, PoolInfoMap, PoolKeyObject, TokenWithChainDetails } from "../../tokens-info";
import { ApiClient } from "./api-client";
import {
CheckAddressRequest,
CheckAddressResponse,
CheckAddressesRequest,
CheckAddressesResult,
GasBalanceResponse,
PendingInfoResponse,
ReceiveTransactionCostRequest,
Expand Down Expand Up @@ -50,8 +50,8 @@ export class AllbridgeCoreClientImpl implements AllbridgeCoreClient {
return this.apiClient.getGasBalance(chainSymbol, address);
}

async addressChecker(param: CheckAddressRequest): Promise<CheckAddressResponse> {
return this.apiClient.addressChecker(param);
async checkAddresses(param: CheckAddressesRequest): Promise<CheckAddressesResult> {
return this.apiClient.checkAddresses(param);
}

async getChainDetailsMapAndPoolInfoMap(): Promise<{
Expand Down
12 changes: 7 additions & 5 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ import {
BridgeService,
ChainDetailsMap,
ChainSymbol,
CheckAddressRequest,
CheckAddressesRequest,
CheckAddressesResult,
CheckAddressResponse,
ExtraGasMaxLimitResponse,
GasBalanceResponse,
Expand Down Expand Up @@ -148,6 +149,7 @@ export class AllbridgeCoreSdk {

/**
* Check address and show gas balance
* @Deprecated Use {@link checkAddresses}
* @param chainSymbol
* @param recipientAddress
* @param tokenAddress
Expand All @@ -157,15 +159,15 @@ export class AllbridgeCoreSdk {
recipientAddress: string,
tokenAddress?: string
): Promise<CheckAddressResponse> {
return this.service.checkAddress(chainSymbol, recipientAddress, tokenAddress);
return await this.service.checkAddress(chainSymbol, recipientAddress, tokenAddress);
}

/**
* Check address and show gas balance
* Check transfer's addresses and show gas balance
* @param param
*/
async addressChecker(param: CheckAddressRequest): Promise<CheckAddressResponse> {
return await this.service.addressChecker(param);
async checkAddresses(param: CheckAddressesRequest): Promise<CheckAddressesResult> {
return await this.service.checkAddresses(param);
}

/**
Expand Down
3 changes: 2 additions & 1 deletion src/models/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ export {
TransferStatusResponse,
BridgeTransaction,
GasBalanceResponse,
CheckAddressRequest,
CheckAddressResponse,
CheckAddressesRequest,
CheckAddressesResult,
AddressStatus,
} from "../client/core-api/core-api.model";
export { ChainSymbol, ChainType } from "../chains/index";
Expand Down
26 changes: 21 additions & 5 deletions src/services/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import { AllbridgeCoreClientImpl } from "../client/core-api";
import { ApiClientImpl } from "../client/core-api/api-client";
import { ApiClientCaching } from "../client/core-api/api-client-caching";
import {
AddressStatus,
CheckAddressesResult,
CheckAddressResponse,
GasBalanceResponse,
Messenger,
Expand All @@ -12,7 +14,7 @@ import {
} from "../client/core-api/core-api.model";
import { AllbridgeCoreClientPoolInfoCaching } from "../client/core-api/core-client-pool-info-caching";
import { mainnet } from "../configs";
import { AllbridgeCoreSdkOptions, CheckAddressRequest, NodeRpcUrls } from "../index";
import { AllbridgeCoreSdkOptions, CheckAddressesRequest, NodeRpcUrls } from "../index";
import {
AmountFormat,
AmountFormatted,
Expand Down Expand Up @@ -110,12 +112,26 @@ export class AllbridgeCoreSdkService {
return this.api.getGasBalance(chainSymbol, address);
}

async checkAddress(chainSymbol: ChainSymbol, address: string, tokenAddress?: string): Promise<CheckAddressResponse> {
return this.api.addressChecker({ recipient: { chainSymbol, address, tokenAddress } });
async checkAddress(
chainSymbol: ChainSymbol,
recipientAddress: string,
tokenAddress?: string
): Promise<CheckAddressResponse> {
const checkAddressesResponse = await this.checkAddresses({
recipient: {
chainSymbol,
address: recipientAddress,
tokenAddress,
},
});
return {
status: checkAddressesResponse.recipientStatus ?? AddressStatus.FORBIDDEN,
gasBalance: checkAddressesResponse.recipientGasBalance,
};
}

async addressChecker(param: CheckAddressRequest): Promise<CheckAddressResponse> {
return await this.api.addressChecker(param);
async checkAddresses(param: CheckAddressesRequest): Promise<CheckAddressesResult> {
return await this.api.checkAddresses(param);
}

async getPendingStatusInfo(
Expand Down

0 comments on commit 1498a00

Please sign in to comment.