@eth-optimism/core-utils
Advanced tools
Comparing version 0.0.1-alpha.26 to 0.0.1-alpha.27
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ZERO_ADDRESS = void 0; | ||
exports.INVALID_ADDRESS = exports.ZERO_ADDRESS = void 0; | ||
exports.ZERO_ADDRESS = '0x' + '00'.repeat(20); | ||
exports.INVALID_ADDRESS = '0xdeaDDeADDEaDdeaDdEAddEADDEAdDeadDEADDEaD'; | ||
//# sourceMappingURL=constants.js.map |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.hashFunctionFor = exports.keccak256 = exports.Md5Hash = void 0; | ||
exports.getTxSigner = exports.hashFunctionFor = exports.keccak256FromUtf8 = exports.keccak256 = exports.Md5Hash = void 0; | ||
const ts_md5_1 = require("ts-md5"); | ||
const ethers_1 = require("ethers"); | ||
const utils_1 = require("ethers/utils"); | ||
const types_1 = require("../types"); | ||
@@ -15,2 +16,5 @@ const misc_1 = require("./misc"); | ||
}; | ||
exports.keccak256FromUtf8 = (s) => { | ||
return misc_1.add0x(exports.keccak256(Buffer.from(s).toString('hex'))); | ||
}; | ||
exports.hashFunctionFor = (algo) => { | ||
@@ -26,2 +30,15 @@ switch (algo) { | ||
}; | ||
exports.getTxSigner = async (tx, r, s, v) => { | ||
const txHash = ethers_1.ethers.utils.keccak256(utils_1.serializeTransaction(await utils_1.resolveProperties(tx))); | ||
try { | ||
return ethers_1.ethers.utils.recoverAddress(ethers_1.ethers.utils.arrayify(txHash), utils_1.joinSignature({ | ||
s: misc_1.add0x(s), | ||
r: misc_1.add0x(r), | ||
v, | ||
})); | ||
} | ||
catch (e) { | ||
return undefined; | ||
} | ||
}; | ||
//# sourceMappingURL=crypto.js.map |
@@ -21,2 +21,3 @@ "use strict"; | ||
Object.defineProperty(exports, "BloomFilter", { enumerable: true, get: function () { return bloom_filter_1.default; } }); | ||
__exportStar(require("./constants"), exports); | ||
__exportStar(require("./contract-deployment"), exports); | ||
@@ -28,6 +29,6 @@ __exportStar(require("./crypto"), exports); | ||
__exportStar(require("./number"), exports); | ||
__exportStar(require("./scheduled-task"), exports); | ||
__exportStar(require("./signatures"), exports); | ||
__exportStar(require("./constants"), exports); | ||
__exportStar(require("./test-utils"), exports); | ||
__exportStar(require("./time-bucketed-counter"), exports); | ||
//# sourceMappingURL=index.js.map |
@@ -5,3 +5,3 @@ "use strict"; | ||
const debug_1 = require("debug"); | ||
exports.LOG_NEWLINE_STRING = ' <\\n> '; | ||
exports.LOG_NEWLINE_STRING = process.env.LOG_NEW_LINES ? '\n' : ' <\\n> '; | ||
exports.getLogger = (identifier, isTest = false, debugToUseTestOnly) => { | ||
@@ -8,0 +8,0 @@ const testString = isTest ? 'test:' : ''; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getCurrentTime = exports.runInDomain = exports.except = exports.isHexStringEmptyOrUndefined = exports.hexStrToString = exports.strToHexStr = exports.bufToHexString = exports.castToNumber = exports.hexStrToNumber = exports.hexStrToBuf = exports.hexStringify = exports.numberToHexString = exports.bnToHexString = exports.reverse = exports.getNullString = exports.isObject = exports.padToLength = exports.add0x = exports.remove0x = exports.sleep = exports.prettify = exports.isJson = exports.jsonify = exports.stringify = exports.NULL_ADDRESS = void 0; | ||
exports.getCurrentTime = exports.runInDomain = exports.except = exports.isHexStringEmptyOrUndefined = exports.hexStrToString = exports.strToHexStr = exports.bufToHexString = exports.castToNumber = exports.hexStrToNumber = exports.hexStrToBuf = exports.hexStringify = exports.numberToHexString = exports.bnToHexString = exports.isHexString = exports.reverse = exports.getNullString = exports.isObject = exports.padToLength = exports.add0x = exports.remove0x = exports.sleep = exports.prettify = exports.isJson = exports.jsonify = exports.stringify = exports.NULL_ADDRESS = void 0; | ||
const domain = require("domain"); | ||
const number_1 = require("./number"); | ||
exports.NULL_ADDRESS = '0x0000000000000000000000000000000000000000'; | ||
const hexRegex = /^(0x)?[0-9a-fA-F]*$/; | ||
exports.stringify = (value) => { | ||
@@ -41,5 +42,11 @@ if (!(typeof value === 'string')) { | ||
exports.remove0x = (str) => { | ||
if (str === undefined) { | ||
return str; | ||
} | ||
return str.startsWith('0x') ? str.slice(2) : str; | ||
}; | ||
exports.add0x = (str) => { | ||
if (str === undefined) { | ||
return str; | ||
} | ||
return str.startsWith('0x') ? str : '0x' + str; | ||
@@ -64,7 +71,14 @@ }; | ||
}; | ||
exports.isHexString = (str) => { | ||
return hexRegex.test(str); | ||
}; | ||
exports.bnToHexString = (bn) => { | ||
return '0x' + bn.toString('hex'); | ||
}; | ||
exports.numberToHexString = (number) => { | ||
return exports.add0x(number.toString(16)); | ||
exports.numberToHexString = (number, padToBytes = -1) => { | ||
let str = number.toString(16); | ||
if (padToBytes > 0 || str.length < padToBytes * 2) { | ||
str = `${'0'.repeat(padToBytes * 2 - str.length)}${str}`; | ||
} | ||
return exports.add0x(str); | ||
}; | ||
@@ -83,3 +97,3 @@ exports.hexStringify = (value) => { | ||
exports.hexStrToBuf = (hexString) => { | ||
if (!/^(0x)?[0-9a-fA-F]*$/.test(hexString)) { | ||
if (!exports.isHexString(hexString)) { | ||
throw new RangeError(`Invalid hex string [${hexString}]`); | ||
@@ -86,0 +100,0 @@ } |
{ | ||
"name": "@eth-optimism/core-utils", | ||
"version": "0.0.1-alpha.26", | ||
"version": "0.0.1-alpha.27", | ||
"description": "Optimism Core Utils", | ||
@@ -5,0 +5,0 @@ "main": "build/index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
81103
54
2035
0
5