@qevm/json-wallets
Advanced tools
| export declare const version = "json-wallets/5.7.0"; | ||
| //# sourceMappingURL=_version.d.ts.map |
| {"version":3,"file":"_version.d.ts","sourceRoot":"","sources":["../src.ts/_version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,uBAAuB,CAAC"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.version = void 0; | ||
| exports.version = "json-wallets/5.7.0"; | ||
| //# sourceMappingURL=_version.js.map |
| {"version":3,"file":"_version.js","sourceRoot":"","sources":["../src.ts/_version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,oBAAoB,CAAC"} |
| import { ExternallyOwnedAccount } from "@qevm/abstract-signer"; | ||
| import { Bytes } from "@qevm/bytes"; | ||
| import { Description } from "@ethersproject/properties"; | ||
| export interface _CrowdsaleAccount { | ||
| address: string; | ||
| privateKey: string; | ||
| publicKey: string; | ||
| _isCrowdsaleAccount: boolean; | ||
| } | ||
| export declare class CrowdsaleAccount extends Description<_CrowdsaleAccount> implements ExternallyOwnedAccount { | ||
| readonly address: string; | ||
| readonly privateKey: string; | ||
| readonly publicKey: string; | ||
| readonly mnemonic?: string; | ||
| readonly _isCrowdsaleAccount: boolean; | ||
| isCrowdsaleAccount(value: any): value is CrowdsaleAccount; | ||
| } | ||
| export declare function decrypt(json: string, password: Bytes | string): ExternallyOwnedAccount; | ||
| //# sourceMappingURL=crowdsale.d.ts.map |
| {"version":3,"file":"crowdsale.d.ts","sourceRoot":"","sources":["../src.ts/crowdsale.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAY,KAAK,EAAE,MAAM,aAAa,CAAC;AAI9C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAQxD,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAElB,mBAAmB,EAAE,OAAO,CAAC;CAChC;AAED,qBAAa,gBAAiB,SAAQ,WAAW,CAAC,iBAAiB,CAAE,YAAW,sBAAsB;IAClG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IAEtC,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,gBAAgB;CAG5D;AAGD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,sBAAsB,CA0CtF"} |
| "use strict"; | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.CrowdsaleAccount = void 0; | ||
| exports.decrypt = decrypt; | ||
| const aes_js_1 = __importDefault(require("aes-js")); | ||
| const address_1 = require("@qevm/address"); | ||
| const bytes_1 = require("@qevm/bytes"); | ||
| const keccak256_1 = require("@qevm/keccak256"); | ||
| const pbkdf2_1 = require("@qevm/pbkdf2"); | ||
| const strings_1 = require("@qevm/strings"); | ||
| const properties_1 = require("@ethersproject/properties"); | ||
| const logger_1 = require("@ethersproject/logger"); | ||
| const _version_1 = require("./_version"); | ||
| const logger = new logger_1.Logger(_version_1.version); | ||
| const utils_1 = require("./utils"); | ||
| class CrowdsaleAccount extends properties_1.Description { | ||
| isCrowdsaleAccount(value) { | ||
| return !!(value && value._isCrowdsaleAccount); | ||
| } | ||
| } | ||
| exports.CrowdsaleAccount = CrowdsaleAccount; | ||
| // See: https://github.com/ethereum/pyethsaletool | ||
| function decrypt(json, password) { | ||
| //FIXME Finnish entire decrypt | ||
| throw new Error("Decryption of crowdsale account not yet implemented"); | ||
| const data = JSON.parse(json); | ||
| password = (0, utils_1.getPassword)(password); | ||
| // Ethereum Address | ||
| const ethaddr = (0, address_1.getAddress)((0, utils_1.searchPath)(data, "ethaddr")); | ||
| // Encrypted Seed | ||
| const encseed = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "encseed")); | ||
| if (!encseed || (encseed.length % 16) !== 0) { | ||
| logger.throwArgumentError("invalid encseed", "json", json); | ||
| } | ||
| const key = (0, bytes_1.arrayify)((0, pbkdf2_1.pbkdf2)(password, password, 2000, 32, "sha256")).slice(0, 16); | ||
| const iv = encseed.slice(0, 16); | ||
| const encryptedSeed = encseed.slice(16); | ||
| // Decrypt the seed | ||
| const aesCbc = new aes_js_1.default.ModeOfOperation.cbc(key, iv); | ||
| const seed = aes_js_1.default.padding.pkcs7.strip((0, bytes_1.arrayify)(aesCbc.decrypt(encryptedSeed))); | ||
| // This wallet format is weird... Convert the binary encoded hex to a string. | ||
| let seedHex = ""; | ||
| for (let i = 0; i < seed.length; i++) { | ||
| seedHex += String.fromCharCode(seed[i]); | ||
| } | ||
| const seedHexBytes = (0, strings_1.toUtf8Bytes)(seedHex); | ||
| const privateKey = (0, keccak256_1.keccak256)(seedHexBytes); | ||
| return new CrowdsaleAccount({ | ||
| _isCrowdsaleAccount: true, | ||
| address: ethaddr, | ||
| privateKey: privateKey, | ||
| publicKey: "" | ||
| }); | ||
| } | ||
| //# sourceMappingURL=crowdsale.js.map |
| {"version":3,"file":"crowdsale.js","sourceRoot":"","sources":["../src.ts/crowdsale.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;AAwCb,0BA0CC;AAhFD,oDAAyB;AAGzB,2CAA2C;AAC3C,uCAA8C;AAC9C,+CAA4C;AAC5C,yCAAsC;AACtC,2CAA4C;AAC5C,0DAAwD;AAExD,kDAA+C;AAC/C,yCAAqC;AACrC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAO,CAAC,CAAC;AAEnC,mCAAiE;AAUjE,MAAa,gBAAiB,SAAQ,wBAA8B;IAQhE,kBAAkB,CAAC,KAAU;QACzB,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAClD,CAAC;CACJ;AAXD,4CAWC;AAED,iDAAiD;AACjD,SAAgB,OAAO,CAAC,IAAY,EAAE,QAAwB;IAC1D,8BAA8B;IAC9B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAEvE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE9B,QAAQ,GAAG,IAAA,mBAAW,EAAC,QAAQ,CAAC,CAAC;IAEjC,mBAAmB;IACnB,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,IAAA,kBAAU,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAExD,iBAAiB;IACjB,MAAM,OAAO,GAAG,IAAA,qBAAa,EAAC,IAAA,kBAAU,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,gBAAQ,EAAC,IAAA,eAAM,EAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAElF,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAExC,mBAAmB;IACnB,MAAM,MAAM,GAAG,IAAI,gBAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,gBAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAA,gBAAQ,EAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAE9E,6EAA6E;IAC7E,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,qBAAW,EAAC,OAAO,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAG,IAAA,qBAAS,EAAC,YAAY,CAAC,CAAC;IAE3C,OAAO,IAAI,gBAAgB,CAAE;QACzB,mBAAmB,EAAE,IAAI;QACzB,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,UAAU;QACtB,SAAS,EAAE,EAAE;KAChB,CAAC,CAAC;AACP,CAAC"} |
| import { Bytes } from "@qevm/bytes"; | ||
| import { ExternallyOwnedAccount } from "@qevm/abstract-signer"; | ||
| import { decrypt as decryptCrowdsale } from "./crowdsale"; | ||
| import { getJsonWalletAddress, isCrowdsaleWallet, isKeystoreWallet } from "./inspect"; | ||
| import { decrypt as decryptKeystore, decryptSync as decryptKeystoreSync, encrypt as encryptKeystore, EncryptOptions, ProgressCallback } from "./keystore"; | ||
| declare function decryptJsonWallet(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise<ExternallyOwnedAccount>; | ||
| declare function decryptJsonWalletSync(json: string, password: Bytes | string): ExternallyOwnedAccount; | ||
| export { decryptCrowdsale, decryptKeystore, decryptKeystoreSync, encryptKeystore, isCrowdsaleWallet, isKeystoreWallet, getJsonWalletAddress, decryptJsonWallet, decryptJsonWalletSync, ProgressCallback, EncryptOptions, }; | ||
| //# sourceMappingURL=index.d.ts.map |
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,WAAW,IAAI,mBAAmB,EAAE,OAAO,IAAI,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE1J,iBAAS,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAavI;AAED,iBAAS,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,sBAAsB,CAU7F;AAED,OAAO,EACH,gBAAgB,EAEhB,eAAe,EACf,mBAAmB,EACnB,eAAe,EAEf,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EAEpB,iBAAiB,EACjB,qBAAqB,EAErB,gBAAgB,EAChB,cAAc,GACjB,CAAC"} |
+41
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.getJsonWalletAddress = exports.isKeystoreWallet = exports.isCrowdsaleWallet = exports.encryptKeystore = exports.decryptKeystoreSync = exports.decryptKeystore = exports.decryptCrowdsale = void 0; | ||
| exports.decryptJsonWallet = decryptJsonWallet; | ||
| exports.decryptJsonWalletSync = decryptJsonWalletSync; | ||
| const crowdsale_1 = require("./crowdsale"); | ||
| Object.defineProperty(exports, "decryptCrowdsale", { enumerable: true, get: function () { return crowdsale_1.decrypt; } }); | ||
| const inspect_1 = require("./inspect"); | ||
| Object.defineProperty(exports, "getJsonWalletAddress", { enumerable: true, get: function () { return inspect_1.getJsonWalletAddress; } }); | ||
| Object.defineProperty(exports, "isCrowdsaleWallet", { enumerable: true, get: function () { return inspect_1.isCrowdsaleWallet; } }); | ||
| Object.defineProperty(exports, "isKeystoreWallet", { enumerable: true, get: function () { return inspect_1.isKeystoreWallet; } }); | ||
| const keystore_1 = require("./keystore"); | ||
| Object.defineProperty(exports, "decryptKeystore", { enumerable: true, get: function () { return keystore_1.decrypt; } }); | ||
| Object.defineProperty(exports, "decryptKeystoreSync", { enumerable: true, get: function () { return keystore_1.decryptSync; } }); | ||
| Object.defineProperty(exports, "encryptKeystore", { enumerable: true, get: function () { return keystore_1.encrypt; } }); | ||
| function decryptJsonWallet(json, password, progressCallback) { | ||
| if ((0, inspect_1.isCrowdsaleWallet)(json)) { | ||
| if (progressCallback) { | ||
| progressCallback(0); | ||
| } | ||
| const account = (0, crowdsale_1.decrypt)(json, password); | ||
| if (progressCallback) { | ||
| progressCallback(1); | ||
| } | ||
| return Promise.resolve(account); | ||
| } | ||
| if ((0, inspect_1.isKeystoreWallet)(json)) { | ||
| return (0, keystore_1.decrypt)(json, password, progressCallback); | ||
| } | ||
| return Promise.reject(new Error("invalid JSON wallet")); | ||
| } | ||
| function decryptJsonWalletSync(json, password) { | ||
| if ((0, inspect_1.isCrowdsaleWallet)(json)) { | ||
| return (0, crowdsale_1.decrypt)(json, password); | ||
| } | ||
| if ((0, inspect_1.isKeystoreWallet)(json)) { | ||
| return (0, keystore_1.decryptSync)(json, password); | ||
| } | ||
| throw new Error("invalid JSON wallet"); | ||
| } | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AA+CT,8CAAiB;AACjB,sDAAqB;AA3CzB,2CAA0D;AAgCtD,iGAhCgB,mBAAgB,OAgChB;AA/BpB,uCAAsF;AAuClF,qGAvCK,8BAAoB,OAuCL;AAFpB,kGArC2B,2BAAiB,OAqC3B;AACjB,iGAtC8C,0BAAgB,OAsC9C;AArCpB,yCAA0J;AAgCtJ,gGAhCgB,kBAAe,OAgChB;AACf,oGAjCgD,sBAAmB,OAiChD;AACnB,gGAlCgF,kBAAe,OAkChF;AAhCnB,SAAS,iBAAiB,CAAC,IAAY,EAAE,QAAwB,EAAE,gBAAmC;IAClG,IAAI,IAAA,2BAAiB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,gBAAgB,EAAE,CAAC;YAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAA,mBAAgB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAChD,IAAI,gBAAgB,EAAE,CAAC;YAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,IAAA,0BAAgB,EAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAA,kBAAe,EAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,QAAwB;IACjE,IAAI,IAAA,2BAAiB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAA,mBAAgB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC3C,CAAC;IAED,IAAI,IAAA,0BAAgB,EAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAA,sBAAmB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAC3C,CAAC"} |
| export declare function isCrowdsaleWallet(json: string): boolean; | ||
| export declare function isKeystoreWallet(json: string): boolean; | ||
| export declare function getJsonWalletAddress(json: string): string; | ||
| //# sourceMappingURL=inspect.d.ts.map |
| {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../src.ts/inspect.ts"],"names":[],"mappings":"AAKA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYtD;AAMD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAczD"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.isCrowdsaleWallet = isCrowdsaleWallet; | ||
| exports.isKeystoreWallet = isKeystoreWallet; | ||
| exports.getJsonWalletAddress = getJsonWalletAddress; | ||
| const address_1 = require("@qevm/address"); | ||
| function isCrowdsaleWallet(json) { | ||
| let data = null; | ||
| try { | ||
| data = JSON.parse(json); | ||
| } | ||
| catch (error) { | ||
| return false; | ||
| } | ||
| return (data.encseed && data.ethaddr); | ||
| } | ||
| function isKeystoreWallet(json) { | ||
| let data = null; | ||
| try { | ||
| data = JSON.parse(json); | ||
| } | ||
| catch (error) { | ||
| return false; | ||
| } | ||
| if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) { | ||
| return false; | ||
| } | ||
| // @TODO: Put more checks to make sure it has kdf, iv and all that good stuff | ||
| return true; | ||
| } | ||
| //export function isJsonWallet(json: string): boolean { | ||
| // return (isSecretStorageWallet(json) || isCrowdsaleWallet(json)); | ||
| //} | ||
| function getJsonWalletAddress(json) { | ||
| if (isCrowdsaleWallet(json)) { | ||
| try { | ||
| return (0, address_1.getAddress)(JSON.parse(json).ethaddr); | ||
| } | ||
| catch (error) { | ||
| return null; | ||
| } | ||
| } | ||
| if (isKeystoreWallet(json)) { | ||
| try { | ||
| return (0, address_1.getAddress)(JSON.parse(json).address); | ||
| } | ||
| catch (error) { | ||
| return null; | ||
| } | ||
| } | ||
| return null; | ||
| } | ||
| //# sourceMappingURL=inspect.js.map |
| {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../src.ts/inspect.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,8CAOC;AAED,4CAYC;AAMD,oDAcC;AA5CD,2CAA2C;AAG3C,SAAgB,iBAAiB,CAAC,IAAY;IAC1C,IAAI,IAAI,GAAQ,IAAI,CAAC;IACrB,IAAI,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAEjC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAY;IACzC,IAAI,IAAI,GAAQ,IAAI,CAAC;IACrB,IAAI,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAEjC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3F,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,6EAA6E;IAC7E,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,uDAAuD;AACvD,sEAAsE;AACtE,GAAG;AAEH,SAAgB,oBAAoB,CAAC,IAAY;IAC7C,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACD,OAAO,IAAA,oBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IACpC,CAAC;IAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACD,OAAO,IAAA,oBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IACpC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"} |
| import { ExternallyOwnedAccount } from "@qevm/abstract-signer"; | ||
| import { Bytes, BytesLike } from "@qevm/bytes"; | ||
| import { Description } from "@ethersproject/properties"; | ||
| export interface _KeystoreAccount { | ||
| address: string; | ||
| privateKey: string; | ||
| publicKey: string; | ||
| mnemonic?: string; | ||
| _isKeystoreAccount: boolean; | ||
| } | ||
| export declare class KeystoreAccount extends Description<_KeystoreAccount> implements ExternallyOwnedAccount { | ||
| readonly address: string; | ||
| readonly privateKey: string; | ||
| readonly publicKey: string; | ||
| readonly mnemonic?: string; | ||
| readonly _isKeystoreAccount: boolean; | ||
| isKeystoreAccount(value: any): value is KeystoreAccount; | ||
| } | ||
| export type ProgressCallback = (percent: number) => void; | ||
| export type EncryptOptions = { | ||
| iv?: BytesLike; | ||
| entropy?: BytesLike; | ||
| client?: string; | ||
| salt?: BytesLike; | ||
| uuid?: string; | ||
| scrypt?: { | ||
| N?: number; | ||
| r?: number; | ||
| p?: number; | ||
| }; | ||
| }; | ||
| export declare function decryptSync(json: string, password: Bytes | string): KeystoreAccount; | ||
| export declare function decrypt(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise<KeystoreAccount>; | ||
| export declare function encrypt(account: ExternallyOwnedAccount, password: Bytes | string, options?: EncryptOptions, progressCallback?: ProgressCallback): Promise<string>; | ||
| //# sourceMappingURL=keystore.d.ts.map |
| {"version":3,"file":"keystore.d.ts","sourceRoot":"","sources":["../src.ts/keystore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAY,KAAK,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAC;AAK1E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAiBxD,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,kBAAkB,EAAE,OAAO,CAAC;CAC/B;AAED,qBAAa,eAAgB,SAAQ,WAAW,CAAC,gBAAgB,CAAE,YAAW,sBAAsB;IAChG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAErC,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,eAAe;CAG1D;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG;IAC1B,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QACL,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;KACd,CAAA;CACH,CAAA;AAmID,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,eAAe,CAKnF;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAKnI;AAID,wBAAsB,OAAO,CAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiJvK"} |
+286
| "use strict"; | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.KeystoreAccount = void 0; | ||
| exports.decryptSync = decryptSync; | ||
| exports.decrypt = decrypt; | ||
| exports.encrypt = encrypt; | ||
| const aes_js_1 = __importDefault(require("aes-js")); | ||
| const scrypt_js_1 = __importDefault(require("scrypt-js")); | ||
| const bytes_1 = require("@qevm/bytes"); | ||
| const keccak256_1 = require("@ethersproject/keccak256"); | ||
| const strings_1 = require("@qevm/strings"); | ||
| const pbkdf2_1 = require("@qevm/pbkdf2"); | ||
| const random_1 = require("@qevm/random"); | ||
| const properties_1 = require("@ethersproject/properties"); | ||
| const transactions_1 = require("@qevm/transactions"); | ||
| const signing_key_1 = require("@qevm/signing-key"); | ||
| const utils_1 = require("./utils"); | ||
| const logger_1 = require("@ethersproject/logger"); | ||
| const _version_1 = require("./_version"); | ||
| const logger = new logger_1.Logger(_version_1.version); | ||
| class KeystoreAccount extends properties_1.Description { | ||
| isKeystoreAccount(value) { | ||
| return !!(value && value._isKeystoreAccount); | ||
| } | ||
| } | ||
| exports.KeystoreAccount = KeystoreAccount; | ||
| function hasMnemonic(value) { | ||
| const mnemonic = value.mnemonic; | ||
| return mnemonic; | ||
| } | ||
| function _decrypt(data, key, ciphertext) { | ||
| const cipher = (0, utils_1.searchPath)(data, "crypto/cipher"); | ||
| if (cipher === "aes-128-ctr") { | ||
| const iv = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "crypto/cipherparams/iv")); | ||
| const counter = new aes_js_1.default.Counter(iv); | ||
| const aesCtr = new aes_js_1.default.ModeOfOperation.ctr(key, counter); | ||
| return (0, bytes_1.arrayify)(aesCtr.decrypt(ciphertext)); | ||
| } | ||
| return null; | ||
| } | ||
| //FIXME Finnish getAccount | ||
| function _getAccount(data, key) { | ||
| const ciphertext = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "crypto/ciphertext")); | ||
| const computedMAC = (0, bytes_1.hexlify)((0, keccak256_1.keccak256)((0, bytes_1.concat)([key.slice(16, 32), ciphertext]))).substring(2); | ||
| if (computedMAC !== (0, utils_1.searchPath)(data, "crypto/mac").toLowerCase()) { | ||
| throw new Error("invalid password"); | ||
| } | ||
| const keysArray = _decrypt(data, key.slice(0, 16), ciphertext); | ||
| if (!keysArray) { | ||
| logger.throwError("unsupported cipher", logger_1.Logger.errors.UNSUPPORTED_OPERATION, { | ||
| operation: "decrypt" | ||
| }); | ||
| } | ||
| const privateKey = (0, bytes_1.hexlify)(keysArray.slice(0, 2800)); | ||
| const publickey = (0, bytes_1.hexlify)(keysArray.slice(2800)); | ||
| const mnemonicKey = key.slice(32, 64); | ||
| const address = (0, transactions_1.computeAddress)(publickey); | ||
| const account = { | ||
| _isKeystoreAccount: true, | ||
| address: address, | ||
| privateKey: privateKey, | ||
| publicKey: publickey | ||
| }; | ||
| // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase | ||
| if ((0, utils_1.searchPath)(data, "x-ethers/version") === "0.1") { | ||
| const mnemonicCiphertext = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "x-ethers/mnemonicCiphertext")); | ||
| const mnemonicIv = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "x-ethers/mnemonicCounter")); | ||
| const mnemonicCounter = new aes_js_1.default.Counter(mnemonicIv); | ||
| const mnemonicAesCtr = new aes_js_1.default.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter); | ||
| const mnemonic = (0, strings_1.toUtf8String)(mnemonicAesCtr.decrypt(mnemonicCiphertext)); | ||
| account.mnemonic = mnemonic; | ||
| } | ||
| return new KeystoreAccount(account); | ||
| } | ||
| function pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc) { | ||
| return (0, bytes_1.arrayify)((0, pbkdf2_1.pbkdf2)(passwordBytes, salt, count, dkLen, prfFunc)); | ||
| } | ||
| function pbkdf2(passwordBytes, salt, count, dkLen, prfFunc) { | ||
| return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc)); | ||
| } | ||
| function _computeKdfKey(data, password, pbkdf2Func, scryptFunc, progressCallback) { | ||
| const passwordBytes = (0, utils_1.getPassword)(password); | ||
| const kdf = (0, utils_1.searchPath)(data, "crypto/kdf"); | ||
| if (kdf && typeof (kdf) === "string") { | ||
| const throwError = function (name, value) { | ||
| return logger.throwArgumentError("invalid key-derivation function parameters", name, value); | ||
| }; | ||
| if (kdf.toLowerCase() === "scrypt") { | ||
| const salt = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "crypto/kdfparams/salt")); | ||
| const N = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/n")); | ||
| const r = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/r")); | ||
| const p = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/p")); | ||
| // Check for all required parameters | ||
| if (!N || !r || !p) { | ||
| throwError("kdf", kdf); | ||
| } | ||
| // Make sure N is a power of 2 | ||
| if ((N & (N - 1)) !== 0) { | ||
| throwError("N", N); | ||
| } | ||
| const dkLen = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/dklen")); | ||
| if (dkLen !== 32) { | ||
| throwError("dklen", dkLen); | ||
| } | ||
| return scryptFunc(passwordBytes, salt, N, r, p, 64, progressCallback); | ||
| } | ||
| else if (kdf.toLowerCase() === "pbkdf2") { | ||
| const salt = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "crypto/kdfparams/salt")); | ||
| let prfFunc = null; | ||
| const prf = (0, utils_1.searchPath)(data, "crypto/kdfparams/prf"); | ||
| if (prf === "hmac-sha256") { | ||
| prfFunc = "sha256"; | ||
| } | ||
| else if (prf === "hmac-sha512") { | ||
| prfFunc = "sha512"; | ||
| } | ||
| else { | ||
| throwError("prf", prf); | ||
| } | ||
| const count = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/c")); | ||
| const dkLen = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/dklen")); | ||
| if (dkLen !== 32) { | ||
| throwError("dklen", dkLen); | ||
| } | ||
| return pbkdf2Func(passwordBytes, salt, count, dkLen, prfFunc); | ||
| } | ||
| } | ||
| return logger.throwArgumentError("unsupported key-derivation function", "kdf", kdf); | ||
| } | ||
| function decryptSync(json, password) { | ||
| const data = JSON.parse(json); | ||
| const key = _computeKdfKey(data, password, pbkdf2Sync, scrypt_js_1.default.syncScrypt); | ||
| return _getAccount(data, key); | ||
| } | ||
| async function decrypt(json, password, progressCallback) { | ||
| const data = JSON.parse(json); | ||
| const key = await _computeKdfKey(data, password, pbkdf2, scrypt_js_1.default.scrypt, progressCallback); | ||
| return _getAccount(data, key); | ||
| } | ||
| // throw new Error("Encrypt of keystore account not yet implemented - everything about passes"); | ||
| async function encrypt(account, password, options, progressCallback) { | ||
| try { | ||
| // Check the address matches the public key | ||
| if (account.address !== (0, transactions_1.computeAddress)(account.publicKey)) { | ||
| throw new Error("address/publicKey mismatch"); | ||
| } | ||
| // Check the mnemonic (if any) matches private and public keys | ||
| if (hasMnemonic(account)) { | ||
| const key = await signing_key_1.SigningKey.generateFromMnemonics(account.mnemonic); | ||
| if (account.privateKey !== key.privateKey) { | ||
| throw new Error("mnemonic/privateKey mismatch"); | ||
| } | ||
| if (account.publicKey !== key.publicKey) { | ||
| throw new Error("mnemonic/publicKey mismatch"); | ||
| } | ||
| } | ||
| } | ||
| catch (e) { | ||
| return Promise.reject(e); | ||
| } | ||
| // The options are optional, so adjust the call as needed | ||
| if (typeof (options) === "function" && !progressCallback) { | ||
| options = {}; | ||
| } | ||
| if (!options) { | ||
| options = {}; | ||
| } | ||
| const privateKey = (0, bytes_1.arrayify)(account.privateKey); | ||
| const publicKey = (0, bytes_1.arrayify)(account.publicKey); | ||
| const keysArray = new Uint8Array(privateKey.length + publicKey.length); | ||
| keysArray.set(privateKey, 0); | ||
| keysArray.set(publicKey, privateKey.length); | ||
| const passwordBytes = (0, utils_1.getPassword)(password); | ||
| let client = options.client; | ||
| if (!client) { | ||
| client = "ethers.js"; | ||
| } | ||
| // Check/generate the salt | ||
| let salt = null; | ||
| if (options.salt) { | ||
| salt = (0, bytes_1.arrayify)(options.salt); | ||
| } | ||
| else { | ||
| salt = (0, random_1.randomBytes)(32); | ||
| ; | ||
| } | ||
| // Override initialization vector | ||
| let iv = null; | ||
| if (options.iv) { | ||
| iv = (0, bytes_1.arrayify)(options.iv); | ||
| if (iv.length !== 16) { | ||
| throw new Error("invalid iv"); | ||
| } | ||
| } | ||
| else { | ||
| iv = (0, random_1.randomBytes)(16); | ||
| } | ||
| // Override the uuid | ||
| let uuidRandom = null; | ||
| if (options.uuid) { | ||
| uuidRandom = (0, bytes_1.arrayify)(options.uuid); | ||
| if (uuidRandom.length !== 16) { | ||
| throw new Error("invalid uuid"); | ||
| } | ||
| } | ||
| else { | ||
| uuidRandom = (0, random_1.randomBytes)(16); | ||
| } | ||
| // Override the scrypt password-based key derivation function parameters | ||
| let N = (1 << 17), r = 8, p = 1; | ||
| if (options.scrypt) { | ||
| if (options.scrypt.N) { | ||
| N = options.scrypt.N; | ||
| } | ||
| if (options.scrypt.r) { | ||
| r = options.scrypt.r; | ||
| } | ||
| if (options.scrypt.p) { | ||
| p = options.scrypt.p; | ||
| } | ||
| } | ||
| // We take 64 bytes: | ||
| // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix) | ||
| // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet) | ||
| return scrypt_js_1.default.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then((key) => { | ||
| key = (0, bytes_1.arrayify)(key); | ||
| // This will be used to encrypt the wallet (as per Web3 secret storage) | ||
| const derivedKey = key.slice(0, 16); | ||
| const macPrefix = key.slice(16, 32); | ||
| // This will be used to encrypt the mnemonic phrase (if any) | ||
| const mnemonicKey = key.slice(32, 64); | ||
| // Encrypt the keys | ||
| const counter = new aes_js_1.default.Counter(iv); | ||
| const aesCtr = new aes_js_1.default.ModeOfOperation.ctr(derivedKey, counter); | ||
| const ciphertext = (0, bytes_1.arrayify)(aesCtr.encrypt(keysArray)); | ||
| // Compute the message authentication code, used to check the password | ||
| const mac = (0, keccak256_1.keccak256)((0, bytes_1.concat)([macPrefix, ciphertext])); | ||
| // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition | ||
| const data = { | ||
| id: (0, utils_1.uuidV4)(uuidRandom), | ||
| version: 3, | ||
| crypto: { | ||
| cipher: "aes-128-ctr", | ||
| cipherparams: { | ||
| iv: (0, bytes_1.hexlify)(iv).substring(2), | ||
| }, | ||
| ciphertext: (0, bytes_1.hexlify)(ciphertext).substring(2), | ||
| kdf: "scrypt", | ||
| kdfparams: { | ||
| salt: (0, bytes_1.hexlify)(salt).substring(2), | ||
| n: N, | ||
| dklen: 32, | ||
| p: p, | ||
| r: r | ||
| }, | ||
| mac: mac.substring(2) | ||
| } | ||
| }; | ||
| // If we have a mnemonic, encrypt it into the JSON wallet | ||
| if (hasMnemonic(account)) { | ||
| const mnemonicIv = (0, random_1.randomBytes)(16); | ||
| const mnemonicCounter = new aes_js_1.default.Counter(mnemonicIv); | ||
| const mnemonicAesCtr = new aes_js_1.default.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter); | ||
| const mnemonicCiphertext = (0, bytes_1.arrayify)(mnemonicAesCtr.encrypt((0, strings_1.toUtf8Bytes)(account.mnemonic))); | ||
| const now = new Date(); | ||
| const timestamp = (now.getUTCFullYear() + "-" + | ||
| (0, utils_1.zpad)(now.getUTCMonth() + 1, 2) + "-" + | ||
| (0, utils_1.zpad)(now.getUTCDate(), 2) + "T" + | ||
| (0, utils_1.zpad)(now.getUTCHours(), 2) + "-" + | ||
| (0, utils_1.zpad)(now.getUTCMinutes(), 2) + "-" + | ||
| (0, utils_1.zpad)(now.getUTCSeconds(), 2) + ".0Z"); | ||
| data["x-ethers"] = { | ||
| client: client, | ||
| gethFilename: ("UTC--" + timestamp + "--" + data.address), | ||
| mnemonicCounter: (0, bytes_1.hexlify)(mnemonicIv).substring(2), | ||
| mnemonicCiphertext: (0, bytes_1.hexlify)(mnemonicCiphertext).substring(2), | ||
| version: "0.1" | ||
| }; | ||
| } | ||
| return JSON.stringify(data); | ||
| }); | ||
| } | ||
| //# sourceMappingURL=keystore.js.map |
| {"version":3,"file":"keystore.js","sourceRoot":"","sources":["../src.ts/keystore.ts"],"names":[],"mappings":"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"} |
| import { Bytes, BytesLike } from "@qevm/bytes"; | ||
| export declare function looseArrayify(hexString: string): Uint8Array; | ||
| export declare function zpad(value: String | number, length: number): String; | ||
| export declare function getPassword(password: Bytes | string): Uint8Array; | ||
| export declare function searchPath(object: any, path: string): string; | ||
| export declare function uuidV4(randomBytes: BytesLike): string; | ||
| //# sourceMappingURL=utils.d.ts.map |
| {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src.ts/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,EAAE,SAAS,EAAW,MAAM,aAAa,CAAC;AAGlE,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAK3D;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAInE;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,CAKhE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAyB5D;AAGD,wBAAgB,MAAM,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,CAqBrD"} |
+69
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.looseArrayify = looseArrayify; | ||
| exports.zpad = zpad; | ||
| exports.getPassword = getPassword; | ||
| exports.searchPath = searchPath; | ||
| exports.uuidV4 = uuidV4; | ||
| const bytes_1 = require("@qevm/bytes"); | ||
| const strings_1 = require("@qevm/strings"); | ||
| function looseArrayify(hexString) { | ||
| if (typeof (hexString) === 'string' && hexString.substring(0, 2) !== '0x') { | ||
| hexString = '0x' + hexString; | ||
| } | ||
| return (0, bytes_1.arrayify)(hexString); | ||
| } | ||
| function zpad(value, length) { | ||
| value = String(value); | ||
| while (value.length < length) { | ||
| value = '0' + value; | ||
| } | ||
| return value; | ||
| } | ||
| function getPassword(password) { | ||
| if (typeof (password) === 'string') { | ||
| return (0, strings_1.toUtf8Bytes)(password, strings_1.UnicodeNormalizationForm.NFKC); | ||
| } | ||
| return (0, bytes_1.arrayify)(password); | ||
| } | ||
| function searchPath(object, path) { | ||
| let currentChild = object; | ||
| const comps = path.toLowerCase().split('/'); | ||
| for (let i = 0; i < comps.length; i++) { | ||
| // Search for a child object with a case-insensitive matching key | ||
| let matchingChild = null; | ||
| for (const key in currentChild) { | ||
| if (key.toLowerCase() === comps[i]) { | ||
| matchingChild = currentChild[key]; | ||
| break; | ||
| } | ||
| } | ||
| // Didn't find one. :'( | ||
| if (matchingChild === null) { | ||
| return null; | ||
| } | ||
| // Now check this child... | ||
| currentChild = matchingChild; | ||
| } | ||
| return currentChild; | ||
| } | ||
| // See: https://www.ietf.org/rfc/rfc4122.txt (Section 4.4) | ||
| function uuidV4(randomBytes) { | ||
| const bytes = (0, bytes_1.arrayify)(randomBytes); | ||
| // Section: 4.1.3: | ||
| // - time_hi_and_version[12:16] = 0b0100 | ||
| bytes[6] = (bytes[6] & 0x0f) | 0x40; | ||
| // Section 4.4 | ||
| // - clock_seq_hi_and_reserved[6] = 0b0 | ||
| // - clock_seq_hi_and_reserved[7] = 0b1 | ||
| bytes[8] = (bytes[8] & 0x3f) | 0x80; | ||
| const value = (0, bytes_1.hexlify)(bytes); | ||
| return [ | ||
| value.substring(2, 10), | ||
| value.substring(10, 14), | ||
| value.substring(14, 18), | ||
| value.substring(18, 22), | ||
| value.substring(22, 34), | ||
| ].join("-"); | ||
| } | ||
| //# sourceMappingURL=utils.js.map |
| {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src.ts/utils.ts"],"names":[],"mappings":"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"} |
+7
-6
@@ -7,9 +7,10 @@ { | ||
| "@qevm/bytes": "5.7.1", | ||
| "@ethersproject/keccak256": "^5.7.0", | ||
| "@qevm/keccak256": "^5.7.0", | ||
| "@ethersproject/logger": "^5.7.0", | ||
| "@ethersproject/pbkdf2": "^5.7.0", | ||
| "@qevm/pbkdf2": "^5.7.0", | ||
| "@ethersproject/properties": "^5.7.0", | ||
| "@ethersproject/random": "^5.7.0", | ||
| "@ethersproject/strings": "^5.7.0", | ||
| "@qevm/transactions": "5.7.1", | ||
| "@qevm/random": "^5.7.0", | ||
| "@qevm/strings": "^5.7.0", | ||
| "@qevm/transactions": "^5.7.2", | ||
| "@qevm/signing-key": "^5.7.0", | ||
| "aes-js": "3.0.0", | ||
@@ -36,3 +37,3 @@ "scrypt-js": "3.0.1" | ||
| "types": "./lib/index.d.ts", | ||
| "version": "5.7.0" | ||
| "version": "5.7.1" | ||
| } |
@@ -8,5 +8,5 @@ "use strict"; | ||
| import { arrayify, Bytes } from "@qevm/bytes"; | ||
| import { keccak256 } from "@ethersproject/keccak256"; | ||
| import { pbkdf2 } from "@ethersproject/pbkdf2"; | ||
| import { toUtf8Bytes } from "@ethersproject/strings"; | ||
| import { keccak256 } from "@qevm/keccak256"; | ||
| import { pbkdf2 } from "@qevm/pbkdf2"; | ||
| import { toUtf8Bytes } from "@qevm/strings"; | ||
| import { Description } from "@ethersproject/properties"; | ||
@@ -13,0 +13,0 @@ |
@@ -9,8 +9,8 @@ "use strict"; | ||
| import { keccak256 } from "@ethersproject/keccak256"; | ||
| import { toUtf8Bytes, toUtf8String } from "@ethersproject/strings" | ||
| import { pbkdf2 as _pbkdf2 } from "@ethersproject/pbkdf2"; | ||
| import { randomBytes } from "@ethersproject/random"; | ||
| import { toUtf8Bytes, toUtf8String } from "@qevm/strings" | ||
| import { pbkdf2 as _pbkdf2 } from "@qevm/pbkdf2"; | ||
| import { randomBytes } from "@qevm/random"; | ||
| import { Description } from "@ethersproject/properties"; | ||
| import { computeAddress } from "@qevm/transactions"; | ||
| import { SigningKey } from "@qevm/signing-key" | ||
| import { SigningKey } from "@qevm/signing-key"; | ||
@@ -17,0 +17,0 @@ import { getPassword, looseArrayify, searchPath, uuidV4, zpad } from "./utils"; |
+1
-1
| "use strict"; | ||
| import { arrayify, Bytes, BytesLike, hexlify } from "@qevm/bytes"; | ||
| import { toUtf8Bytes, UnicodeNormalizationForm } from '@ethersproject/strings'; | ||
| import { toUtf8Bytes, UnicodeNormalizationForm } from '@qevm/strings'; | ||
@@ -6,0 +6,0 @@ export function looseArrayify(hexString: string): Uint8Array { |
71034
194.21%34
240%1075
115.43%13
8.33%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated