Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@qevm/address

Package Overview
Dependencies
Maintainers
3
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@qevm/address - npm Package Compare versions

Comparing version
5.7.2
to
5.7.3
+1
-1
lib/_version.d.ts

@@ -1,2 +0,2 @@

export declare const version = "address/5.7.0";
export declare const version = "address/5.7.3";
//# sourceMappingURL=_version.d.ts.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = void 0;
exports.version = "address/5.7.0";
exports.version = "address/5.7.3";
//# sourceMappingURL=_version.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,SAAS,EAAgE,MAAM,aAAa,CAAC;AAChH,OAAO,EAAa,YAAY,EAA4B,MAAM,iBAAiB,CAAC;AAyEpF,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoClD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMlD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItD;AAGD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,UAWpF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,GAAG,MAAM,CAQhG"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,SAAS,EAKZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAEH,YAAY,EAGf,MAAM,iBAAiB,CAAC;AAsFzB,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA0ClD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMlD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMtD;AAGD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;CACvB,UAiBA;AAED,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,SAAS,GACxB,MAAM,CAcR"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCreate2Address = exports.getContractAddress = exports.getIcapAddress = exports.isAddress = exports.getAddress = void 0;
var bytes_1 = require("@qevm/bytes");
var bignumber_1 = require("@qevm/bignumber");
var keccak256_1 = require("@qevm/keccak256");
var rlp_1 = require("@qevm/rlp");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
exports.getAddress = getAddress;
exports.isAddress = isAddress;
exports.getIcapAddress = getIcapAddress;
exports.getContractAddress = getContractAddress;
exports.getCreate2Address = getCreate2Address;
const bytes_1 = require("@qevm/bytes");
const bignumber_1 = require("@qevm/bignumber");
const keccak256_1 = require("@qevm/keccak256");
const rlp_1 = require("@qevm/rlp");
const logger_1 = require("@qevm/logger");
const _version_1 = require("./_version");
const logger = new logger_1.Logger(_version_1.version);
function getChecksumAddress(address) {

@@ -16,10 +20,10 @@ if (!(0, bytes_1.isHexString)(address, 32)) {

address = address.toLowerCase();
var chars = address.substring(2).split("");
var expanded = new Uint8Array(40);
for (var i = 0; i < 40; i++) {
const chars = address.substring(2).split("");
const expanded = new Uint8Array(64);
for (let i = 0; i < 64; i++) {
expanded[i] = chars[i].charCodeAt(0);
}
var hashed = (0, bytes_1.arrayify)((0, keccak256_1.keccak256)(expanded));
for (var i = 0; i < 40; i += 2) {
if ((hashed[i >> 1] >> 4) >= 8) {
const hashed = (0, bytes_1.arrayify)((0, keccak256_1.keccak256)(expanded));
for (let i = 0; i < 64; i += 2) {
if (hashed[i >> 1] >> 4 >= 8) {
chars[i] = chars[i].toUpperCase();

@@ -34,3 +38,3 @@ }

// Shims for environments that are missing some required constants and functions
var MAX_SAFE_INTEGER = 0x1fffffffffffff;
const MAX_SAFE_INTEGER = 0x1fffffffffffff;
function log10(x) {

@@ -44,21 +48,27 @@ if (Math.log10) {

// Create lookup table
var ibanLookup = {};
for (var i = 0; i < 10; i++) {
const ibanLookup = {};
for (let i = 0; i < 10; i++) {
ibanLookup[String(i)] = String(i);
}
for (var i = 0; i < 26; i++) {
for (let i = 0; i < 26; i++) {
ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);
}
// How many decimal digits can we process? (for 64-bit float, this is 15)
var safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));
const safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));
function ibanChecksum(address) {
address = address.toUpperCase();
address = address.substring(4) + address.substring(0, 2) + "00";
var expanded = address.split("").map(function (c) { return ibanLookup[c]; }).join("");
let expanded = address
.split("")
.map((c) => {
return ibanLookup[c];
})
.join("");
// Javascript can handle integers safely up to 15 (decimal) digits
while (expanded.length >= safeDigits) {
var block = expanded.substring(0, safeDigits);
expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);
let block = expanded.substring(0, safeDigits);
expanded =
(parseInt(block, 10) % 97) + expanded.substring(block.length);
}
var checksum = String(98 - (parseInt(expanded, 10) % 97));
let checksum = String(98 - (parseInt(expanded, 10) % 97));
while (checksum.length < 2) {

@@ -69,6 +79,5 @@ checksum = "0" + checksum;

}
;
function getAddress(address) {
var result = null;
if (typeof (address) !== "string") {
let result = null;
if (typeof address !== "string") {
logger.throwArgumentError("invalid address", "address", address);

@@ -83,6 +92,6 @@ }

// It is a checksummed address with a bad checksum
if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {
if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) &&
result !== address) {
logger.throwArgumentError("bad address checksum", "address", address);
}
// Maybe ICAP? (we only support direct mode)
}

@@ -95,3 +104,3 @@ else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {

result = (0, bignumber_1._base36To16)(address.substring(4));
while (result.length < 40) {
while (result.length < 64) {
result = "0" + result;

@@ -106,3 +115,2 @@ }

}
exports.getAddress = getAddress;
function isAddress(address) {

@@ -116,5 +124,4 @@ try {

}
exports.isAddress = isAddress;
function getIcapAddress(address) {
var base36 = (0, bignumber_1._base16To36)(getAddress(address).substring(2)).toUpperCase();
let base36 = (0, bignumber_1._base16To36)(getAddress(address).substring(2)).toUpperCase();
while (base36.length < 30) {

@@ -125,6 +132,5 @@ base36 = "0" + base36;

}
exports.getIcapAddress = getIcapAddress;
// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed
function getContractAddress(transaction) {
var from = null;
let from = null;
try {

@@ -136,6 +142,5 @@ from = getAddress(transaction.from);

}
var nonce = (0, bytes_1.stripZeros)((0, bytes_1.arrayify)(bignumber_1.BigNumber.from(transaction.nonce).toHexString()));
const nonce = (0, bytes_1.stripZeros)((0, bytes_1.arrayify)(bignumber_1.BigNumber.from(transaction.nonce).toHexString()));
return getAddress((0, keccak256_1.keccak256)((0, rlp_1.encode)([from, nonce])));
}
exports.getContractAddress = getContractAddress;
function getCreate2Address(from, salt, initCodeHash) {

@@ -148,5 +153,4 @@ if ((0, bytes_1.hexDataLength)(salt) !== 32) {

}
return getAddress((0, bytes_1.hexDataSlice)((0, keccak256_1.keccak256)((0, bytes_1.concat)(["0xff", getAddress(from), salt, initCodeHash])), 12));
return getAddress((0, keccak256_1.keccak256)((0, bytes_1.concat)(["0xff", getAddress(from), salt, initCodeHash])));
}
exports.getCreate2Address = getCreate2Address;
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"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"}
{
"author": "Eugene Kuleshov",
"dependencies": {
"@ethersproject/logger": "^5.7.0",
"@qevm/bignumber": "^5.7.0",
"@qevm/bytes": "5.7.1",
"@qevm/keccak256": "^5.7.0",
"@qevm/rlp": "^5.7.0"
},
"description": "Utilities for handling quantum Ethereum Addresses for qethers.",
"keywords": [
"QuantumEVM",
"qethers"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@qevm/address",
"publishConfig": {
"access": "public"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"sideEffects": false,
"tarballHash": "0x992f958e9ea5189414cd56968a152fa5aee2a143ff083ce2894bd65dfb990ef4",
"types": "./lib/index.d.ts",
"version": "5.7.2"
"contributors": [
"Eugene Kuleshov <kulevgen32@gmail.com>",
"Richard Moore <me@ricmoo.com>"
],
"dependencies": {
"@qevm/logger": "^5.7.1",
"@qevm/bignumber": "^5.7.1",
"@qevm/bytes": "^5.7.2",
"@qevm/keccak256": "^5.7.1",
"@qevm/rlp": "^5.7.1"
},
"description": "Utilities for handling quantum QuantumEVM Addresses for qethers.",
"keywords": [
"QuantumEVM",
"QEVM",
"qethers"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@qevm/address",
"publishConfig": {
"access": "public"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"sideEffects": false,
"tarballHash": "0x992f958e9ea5189414cd56968a152fa5aee2a143ff083ce2894bd65dfb990ef4",
"types": "./lib/index.d.ts",
"version": "5.7.3"
}

@@ -1,5 +0,5 @@

Ethereum Address Utilities
QuantumEVM Address Utilities
==========================
This sub-module is part of the [ethers project](https://github.com/ethers-io/ethers.js).
This sub-module is part of the qethers, a fork of [ethers project](https://github.com/ethers-io/ethers.js).

@@ -10,3 +10,2 @@ It is responsible for encoding, verifying and computing checksums for

For more information, see the [documentation](https://docs.ethers.io/v5/api/utils/address/).

@@ -16,3 +15,3 @@ Importing

Most users will prefer to use the [umbrella package](https://www.npmjs.com/package/ethers),
Most users will prefer to use the [umbrella package](https://www.npmjs.com/package/@qevm/qethers),
but for those with more specific needs, individual components can be imported.

@@ -31,3 +30,3 @@

} = require("@ethersproject/address");
} = require("@qevm/address");
```

@@ -34,0 +33,0 @@

@@ -1,1 +0,1 @@

export const version = "address/5.7.0";
export const version = "address/5.7.3";
"use strict";
import { arrayify, BytesLike, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from "@qevm/bytes";
import { BigNumber, BigNumberish, _base16To36, _base36To16 } from "@qevm/bignumber";
import {
arrayify,
BytesLike,
concat,
hexDataLength,
isHexString,
stripZeros,
} from "@qevm/bytes";
import {
BigNumber,
BigNumberish,
_base16To36,
_base36To16,
} from "@qevm/bignumber";
import { keccak256 } from "@qevm/keccak256";
import { encode } from "@qevm/rlp";
import { Logger } from "@ethersproject/logger";
import { Logger } from "@qevm/logger";
import { version } from "./_version";

@@ -21,4 +33,4 @@ const logger = new Logger(version);

const expanded = new Uint8Array(40);
for (let i = 0; i < 40; i++) {
const expanded = new Uint8Array(64);
for (let i = 0; i < 64; i++) {
expanded[i] = chars[i].charCodeAt(0);

@@ -29,4 +41,4 @@ }

for (let i = 0; i < 40; i += 2) {
if ((hashed[i >> 1] >> 4) >= 8) {
for (let i = 0; i < 64; i += 2) {
if (hashed[i >> 1] >> 4 >= 8) {
chars[i] = chars[i].toUpperCase();

@@ -46,13 +58,18 @@ }

function log10(x: number): number {
if (Math.log10) { return Math.log10(x); }
if (Math.log10) {
return Math.log10(x);
}
return Math.log(x) / Math.LN10;
}
// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number
// Create lookup table
const ibanLookup: { [character: string]: string } = { };
for (let i = 0; i < 10; i++) { ibanLookup[String(i)] = String(i); }
for (let i = 0; i < 26; i++) { ibanLookup[String.fromCharCode(65 + i)] = String(10 + i); }
const ibanLookup: { [character: string]: string } = {};
for (let i = 0; i < 10; i++) {
ibanLookup[String(i)] = String(i);
}
for (let i = 0; i < 26; i++) {
ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);
}

@@ -66,15 +83,23 @@ // How many decimal digits can we process? (for 64-bit float, this is 15)

let expanded = address.split("").map((c) => { return ibanLookup[c]; }).join("");
let expanded = address
.split("")
.map((c) => {
return ibanLookup[c];
})
.join("");
// Javascript can handle integers safely up to 15 (decimal) digits
while (expanded.length >= safeDigits){
while (expanded.length >= safeDigits) {
let block = expanded.substring(0, safeDigits);
expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);
expanded =
(parseInt(block, 10) % 97) + expanded.substring(block.length);
}
let checksum = String(98 - (parseInt(expanded, 10) % 97));
while (checksum.length < 2) { checksum = "0" + checksum; }
while (checksum.length < 2) {
checksum = "0" + checksum;
}
return checksum;
};
}

@@ -84,3 +109,3 @@ export function getAddress(address: string): string {

if (typeof(address) !== "string") {
if (typeof address !== "string") {
logger.throwArgumentError("invalid address", "address", address);

@@ -90,5 +115,6 @@ }

if (address.match(/^(0x)?[0-9a-fA-F]{64}$/)) {
// Missing the 0x prefix
if (address.substring(0, 2) !== "0x") { address = "0x" + address; }
if (address.substring(0, 2) !== "0x") {
address = "0x" + address;
}

@@ -98,9 +124,13 @@ result = getChecksumAddress(address);

// It is a checksummed address with a bad checksum
if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {
logger.throwArgumentError("bad address checksum", "address", address);
if (
address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) &&
result !== address
) {
logger.throwArgumentError(
"bad address checksum",
"address",
address,
);
}
// Maybe ICAP? (we only support direct mode)
} else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {
// It is an ICAP address with a bad checksum

@@ -112,5 +142,6 @@ if (address.substring(2, 4) !== ibanChecksum(address)) {

result = _base36To16(address.substring(4));
while (result.length < 40) { result = "0" + result; }
while (result.length < 64) {
result = "0" + result;
}
result = getChecksumAddress("0x" + result);
} else {

@@ -127,3 +158,3 @@ logger.throwArgumentError("invalid address", "address", address);

return true;
} catch (error) { }
} catch (error) {}
return false;

@@ -134,3 +165,5 @@ }

let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();
while (base36.length < 30) { base36 = "0" + base36; }
while (base36.length < 30) {
base36 = "0" + base36;
}
return "XE" + ibanChecksum("XE00" + base36) + base36;

@@ -140,3 +173,6 @@ }

// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed
export function getContractAddress(transaction: { from: string, nonce: BigNumberish }) {
export function getContractAddress(transaction: {
from: string;
nonce: BigNumberish;
}) {
let from: string = null;

@@ -146,11 +182,21 @@ try {

} catch (error) {
logger.throwArgumentError("missing from address", "transaction", transaction);
logger.throwArgumentError(
"missing from address",
"transaction",
transaction,
);
}
const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));
const nonce = stripZeros(
arrayify(BigNumber.from(transaction.nonce).toHexString()),
);
return getAddress(keccak256(encode([ from, nonce ])));
return getAddress(keccak256(encode([from, nonce])));
}
export function getCreate2Address(from: string, salt: BytesLike, initCodeHash: BytesLike): string {
export function getCreate2Address(
from: string,
salt: BytesLike,
initCodeHash: BytesLike,
): string {
if (hexDataLength(salt) !== 32) {

@@ -160,5 +206,11 @@ logger.throwArgumentError("salt must be 32 bytes", "salt", salt);

if (hexDataLength(initCodeHash) !== 32) {
logger.throwArgumentError("initCodeHash must be 32 bytes", "initCodeHash", initCodeHash);
logger.throwArgumentError(
"initCodeHash must be 32 bytes",
"initCodeHash",
initCodeHash,
);
}
return getAddress(hexDataSlice(keccak256(concat([ "0xff", getAddress(from), salt, initCodeHash ])), 12))
return getAddress(
keccak256(concat(["0xff", getAddress(from), salt, initCodeHash])),
);
}