Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
replaceWithENSAddress(cmd, cb) {
const self = this;
let regex = /\'[a-zA-Z0-9.]+\.eth\'/g;
return stringReplaceAsync.seq(cmd, regex, (ensDomain) => {
ensDomain = ensDomain.slice(1, ensDomain.length - 1);
return (new Promise((resolve, reject) => {
self.events.request("ens:resolve", ensDomain, (err, address) => {
if(err) {
return reject(new Error(err));
}
address = `'${address}'`;
return resolve(address);
});
}));
}).then((address) => {
cb(null, address);
}).catch(cb);
}
return BPromise.try(() => {
let fullMetadata = getMetadataForOpenTracking(metadata)
return stringReplaceAsync.seq(
htmlEmail,
this.options.openTracking.regexLinks,
BPromise.coroutine(function *(match, p1, link, p3) {
if (this.options.openTracking.applyToFirstCandidateOnly && numCandidate > 0) {
return match
}
let applyInstruction = this.options.openTracking.shouldApply(link)
if (!applyInstruction) {
return match
}
if (!openPxl) {
if (applyInstruction.metadata) {
const replaceWithAddresses = (cmd) => {
let regex = /\$\w+\[?\d?\]?/g;
return stringReplaceAsync.seq(cmd, regex, (match, index) => {
return (new Promise((resolve, reject) => {
if (match.startsWith('$accounts')) {
let accountIndex = cmd.substring(index + 10, index + 12);
accountIndex = parseInt(accountIndex, 10);
return this.events.request('blockchain:getAccounts', (err, accounts) => {
if (err) {
return reject('Error getting accounts: ' + err.message || err);
}
if (!accounts[accountIndex]) {
return reject(__('No corresponding account at index %d', accountIndex));
}
resolve(accounts[accountIndex]);
});
}
let referedContractName = match.slice(1);
const replaceWithAddresses = (cmd) => {
let regex = /\$\w+\[?\d?\]?/g;
return stringReplaceAsync.seq(cmd, regex, (match, index) => {
return (new Promise((resolve, reject) => {
if (match.startsWith('$accounts')) {
let accountIndex = cmd.substring(index + 10, index + 12);
accountIndex = parseInt(accountIndex, 10);
return this.events.request('blockchain:getAccounts', (err, accounts) => {
if (err) {
return reject('Error getting accounts: ' + err.message || err);
}
if (!accounts[accountIndex]) {
return reject(__('No corresponding account at index %d', accountIndex));
}
resolve(accounts[accountIndex]);
});
}
let referedContractName = match.slice(1);
const replaceWithENSAddress = (cmd) => {
let regex = /\'[a-zA-Z0-9.]+\.eth\'/g;
return stringReplaceAsync.seq(cmd, regex, (ensDomain) => {
ensDomain = ensDomain.slice(1, ensDomain.length - 1);
return (new Promise((resolve, reject) => {
this.events.request("ens:resolve", ensDomain, (err, address) => {
if(err) {
return reject(new Error(err));
}
address = `'${address}'`;
return resolve(address);
});
}));
});
};
const replaceWithENSAddress = (cmd) => {
let regex = /\'[a-zA-Z0-9.]+\.eth\'/g;
return stringReplaceAsync.seq(cmd, regex, (ensDomain) => {
ensDomain = ensDomain.slice(1, ensDomain.length - 1);
return (new Promise((resolve, reject) => {
this.events.request("namesystem:resolve", ensDomain, (err, address) => {
if (err) {
return reject(new Error(err));
}
address = `'${address}'`;
return resolve(address);
});
}));
});
};
return BPromise.try(() => {
let fullMetadata = getMetadataForClickTracking(metadata, referToOpenTrackingPxl, openTrackingPxl)
return stringReplaceAsync.seq(
htmlEmail,
this.options.clickTracking.regexLinks,
BPromise.coroutine(function *(match, p1, link, p3) {
let applyInstruction = this.options.clickTracking.shouldApply(link)
if (!applyInstruction) {
return match
}
if (referToOpenTrackingPxl && !openTrackingPxl) {
let createdOpenPxl = yield this.options.pxl.createPxl(getMetadataForOpenTracking(metadata))
openTrackingPxl = createdOpenPxl.pxl
fullMetadata = getMetadataForClickTracking(metadata, referToOpenTrackingPxl, openTrackingPxl)