import { IValidation } from '..'; const utils = require('web3-utils'); export class DucXValidation implements IValidation { validateAddress(_network: string, address: string): boolean { return utils.isAddress(address); } validateUri(addressUri: string): boolean { const address = this.sanitizeEthereumUri(addressUri); return utils.isAddress(address); } private sanitizeEthereumUri(data): string { let address = data; const ethereum = /ducatusx:/; if (!ethereum.exec(data)) { return data; } const value = /[\?\&]value=(\d+([\,\.]\d+)?)/i; const gas = /[\?\&]gas=(\d+([\,\.]\d+)?)/i; const gasPrice = /[\?\&]gasPrice=(\d+([\,\.]\d+)?)/i; const gasLimit = /[\?\&]gasLimit=(\d+([\,\.]\d+)?)/i; const params = [ethereum, value, gas, gasPrice, gasLimit]; for (const key of params) { address = address.replace(key, ''); } return address; } }