UNPKG

thor-devkit

Version:

Typescript library to aid DApp development on VeChain Thor

53 lines 3.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.address = void 0; const keccak_1 = require("./keccak"); /** address related utilities */ var address; (function (address) { /** * derive Address from public key, note that the public key is uncompressed * @param pub the public key */ function fromPublicKey(pub) { return '0x' + (0, keccak_1.keccak256)(pub.slice(1)).slice(12).toString('hex'); } address.fromPublicKey = fromPublicKey; /** * to check if a value presents an address * @param v the value to be checked */ function test(v) { return typeof v === 'string' && /^0x[0-9a-f]{40}$/i.test(v); } address.test = test; /** * encode the address to checksumed address that is compatible with eip-55 * @param address input address */ function toChecksumed(addr) { if (!test(addr)) { throw new Error('invalid address'); } addr = addr.slice(2).toLowerCase(); const hash = (0, keccak_1.keccak256)(addr); let checksumed = '0x'; for (let i = 0; i < addr.length; i++) { // tslint:disable-next-line:no-bitwise let byte = hash[i >> 1]; if (i % 2 === 0) { // tslint:disable-next-line:no-bitwise byte >>= 4; } if (byte % 16 >= 8) { checksumed += addr[i].toUpperCase(); } else { checksumed += addr[i]; } } return checksumed; } address.toChecksumed = toChecksumed; })(address || (exports.address = address = {})); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUFvQztBQUVwQyxnQ0FBZ0M7QUFDaEMsSUFBaUIsT0FBTyxDQTZDdkI7QUE3Q0QsV0FBaUIsT0FBTztJQUNwQjs7O09BR0c7SUFDSCxTQUFnQixhQUFhLENBQUMsR0FBVztRQUNyQyxPQUFPLElBQUksR0FBRyxJQUFBLGtCQUFTLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUZlLHFCQUFhLGdCQUU1QixDQUFBO0lBRUQ7OztPQUdHO0lBQ0gsU0FBZ0IsSUFBSSxDQUFDLENBQU07UUFDdkIsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFGZSxZQUFJLE9BRW5CLENBQUE7SUFFRDs7O09BR0c7SUFDSCxTQUFnQixZQUFZLENBQUMsSUFBWTtRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDdEMsQ0FBQztRQUNELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLElBQUEsa0JBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQTtRQUU1QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUE7UUFDckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxzQ0FBc0M7WUFDdEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2Qsc0NBQXNDO2dCQUN0QyxJQUFJLEtBQUssQ0FBQyxDQUFBO1lBQ2QsQ0FBQztZQUVELElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDakIsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUN2QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN6QixDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFBO0lBQ3JCLENBQUM7SUF2QmUsb0JBQVksZUF1QjNCLENBQUE7QUFDTCxDQUFDLEVBN0NnQixPQUFPLHVCQUFQLE9BQU8sUUE2Q3ZCIn0=