rubic-sdk
Version:
Simplify dApp creation
47 lines • 2.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isAddressCorrect = isAddressCorrect;
const chain_type_1 = require("../../../core/blockchain/models/chain-type");
const blockchains_info_1 = require("../../../core/blockchain/utils/blockchains-info/blockchains-info");
const web3_pure_1 = require("../../../core/blockchain/web3-pure/web3-pure");
const injector_1 = require("../../../core/injector/injector");
const cross_chain_trade_type_1 = require("../../cross-chain/calculation-manager/models/cross-chain-trade-type");
const changenow_api_blockchain_1 = require("../../cross-chain/calculation-manager/providers/changenow-provider/constants/changenow-api-blockchain");
async function checkAllChainsAddressCorrect(address) {
const promises = [];
const props = Object.getOwnPropertyNames(web3_pure_1.Web3Pure);
for (const propertyName of props) {
const isChainWeb3Pure = Object.values(chain_type_1.CHAIN_TYPE).some(chainType => chainType === propertyName);
if (isChainWeb3Pure) {
const methodBody = web3_pure_1.Web3Pure[propertyName];
promises.push(methodBody.isAddressCorrect(address));
}
}
const resp = await Promise.all(promises);
const isAddressCorrect = resp.some(isAddress => isAddress);
return isAddressCorrect;
}
/**
*
* @param address
* @param toBlockchain is null when search goes through all chains
* @param crossChainType
*/
async function isAddressCorrect(address, toBlockchain, crossChainType) {
try {
if (!toBlockchain) {
return checkAllChainsAddressCorrect(address);
}
if (crossChainType === cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.CHANGENOW) {
const chain = changenow_api_blockchain_1.changenowApiBlockchain[toBlockchain];
const response = await injector_1.Injector.httpClient.get(`https://api.changenow.io/v2/validate/address?currency=${chain.toLowerCase()}&address=${address}`);
return response.result;
}
const blockchainProvider = web3_pure_1.Web3Pure[blockchains_info_1.BlockchainsInfo.getChainType(toBlockchain)];
return blockchainProvider.isAddressCorrect(address);
}
catch {
return true;
}
}
//# sourceMappingURL=check-address.js.map