@qevm/wallet
Advanced tools
+6
-6
@@ -11,3 +11,4 @@ import { Provider, TransactionRequest } from "@qevm/abstract-provider"; | ||
| readonly _mnemonic: () => string; | ||
| constructor(credentials: Wallet | SigningKey | ExternallyOwnedAccount | string, provider?: Provider); | ||
| private constructor(); | ||
| static create(credentials: Wallet | SigningKey | ExternallyOwnedAccount | string, provider?: Provider): Promise<Wallet>; | ||
| get mnemonic(): string; | ||
@@ -22,10 +23,9 @@ get privateKey(): string; | ||
| encrypt(password: Bytes | string, options?: any, progressCallback?: ProgressCallback): Promise<string>; | ||
| static createRandom(options?: any): Wallet; | ||
| static initializeWasm(): Promise<void>; | ||
| static createRandom(options?: any): Promise<Wallet>; | ||
| static fromEncryptedJson(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise<Wallet>; | ||
| static fromEncryptedJsonSync(json: string, password: Bytes | string): Wallet; | ||
| static fromMnemonic(mnemonic: string, provider?: Provider): Wallet; | ||
| static fromMnemonic(mnemonic: string, provider?: Provider): Promise<Wallet>; | ||
| } | ||
| export declare function verifyMessage(message: Bytes | string, signature: SignatureLike): number; | ||
| export declare function verifyTypedData(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>, signature: SignatureLike): number; | ||
| export declare function verifyMessage(message: Bytes | string, signature: SignatureLike): Promise<number>; | ||
| export declare function verifyTypedData(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>, signature: SignatureLike): Promise<number>; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACzH,OAAO,EAAW,KAAK,EAAiC,aAAa,EAA0B,MAAM,aAAa,CAAC;AAInH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAA4D,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAwBhH,qBAAa,MAAO,SAAQ,MAAO,YAAW,sBAAsB,EAAE,eAAe;IAEjF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAI5B,QAAQ,CAAC,WAAW,EAAE,MAAM,UAAU,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC;gBAErB,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,sBAAsB,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ;IA6CnG,IAAI,QAAQ,IAAI,MAAM,CAA6B;IACnD,IAAI,UAAU,IAAI,MAAM,CAA0C;IAClE,IAAI,SAAS,IAAI,MAAM,CAAyC;IAEhE,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAInC,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAc3D,WAAW,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAexI,OAAO,CAAC,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAetG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,MAAM;WAK7B,cAAc;IAI3B,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMtH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM;IAI5E,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM;CAGrE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM,CAIvF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM,CAInK"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACzH,OAAO,EAAW,KAAK,EAAiC,aAAa,EAA0B,MAAM,aAAa,CAAC;AAInH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAA4D,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAwBhH,qBAAa,MAAO,SAAQ,MAAO,YAAW,sBAAsB,EAAE,eAAe;IACjF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE5B,QAAQ,CAAC,WAAW,EAAE,MAAM,UAAU,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC;IAEjC,OAAO;WAQM,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,sBAAsB,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B7H,IAAI,QAAQ,IAAI,MAAM,CAA6B;IACnD,IAAI,UAAU,IAAI,MAAM,CAA0C;IAClE,IAAI,SAAS,IAAI,MAAM,CAAyC;IAEhE,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAI7B,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAYjE,WAAW,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBxI,OAAO,CAAC,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;WASzF,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;WAO5C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5H,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM;WAM/D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;CAGpF;AAGD,wBAAsB,aAAa,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAKtG;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlL"} |
+265
-124
| "use strict"; | ||
| var __extends = (this && this.__extends) || (function () { | ||
| var extendStatics = function (d, b) { | ||
| extendStatics = Object.setPrototypeOf || | ||
| ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
| function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; | ||
| return extendStatics(d, b); | ||
| }; | ||
| return function (d, b) { | ||
| if (typeof b !== "function" && b !== null) | ||
| throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); | ||
| extendStatics(d, b); | ||
| function __() { this.constructor = d; } | ||
| d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
| }; | ||
| })(); | ||
| var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
| function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
| return new (P || (P = Promise))(function (resolve, reject) { | ||
| function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
| function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
| function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
| step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
| }); | ||
| }; | ||
| var __generator = (this && this.__generator) || function (thisArg, body) { | ||
| var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); | ||
| return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
| function verb(n) { return function (v) { return step([n, v]); }; } | ||
| function step(op) { | ||
| if (f) throw new TypeError("Generator is already executing."); | ||
| while (g && (g = 0, op[0] && (_ = 0)), _) try { | ||
| if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
| if (y = 0, t) op = [op[0] & 2, t.value]; | ||
| switch (op[0]) { | ||
| case 0: case 1: t = op; break; | ||
| case 4: _.label++; return { value: op[1], done: false }; | ||
| case 5: _.label++; y = op[1]; op = [0]; continue; | ||
| case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
| default: | ||
| if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
| if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
| if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
| if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
| if (t[2]) _.ops.pop(); | ||
| _.trys.pop(); continue; | ||
| } | ||
| op = body.call(thisArg, _); | ||
| } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
| if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
| } | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -6,15 +57,14 @@ exports.Wallet = void 0; | ||
| exports.verifyTypedData = verifyTypedData; | ||
| const address_1 = require("@qevm/address"); | ||
| const abstract_provider_1 = require("@qevm/abstract-provider"); | ||
| const abstract_signer_1 = require("@qevm/abstract-signer"); | ||
| const bytes_1 = require("@qevm/bytes"); | ||
| const hash_1 = require("@qevm/hash"); | ||
| const keccak256_1 = require("@ethersproject/keccak256"); | ||
| const properties_1 = require("@ethersproject/properties"); | ||
| const signing_key_1 = require("@qevm/signing-key"); | ||
| const json_wallets_1 = require("@qevm/json-wallets"); | ||
| const transactions_1 = require("@qevm/transactions"); | ||
| const logger_1 = require("@ethersproject/logger"); | ||
| const _version_1 = require("./_version"); | ||
| const logger = new logger_1.Logger(_version_1.version); | ||
| var address_1 = require("@qevm/address"); | ||
| var abstract_signer_1 = require("@qevm/abstract-signer"); | ||
| var bytes_1 = require("@qevm/bytes"); | ||
| var hash_1 = require("@qevm/hash"); | ||
| var keccak256_1 = require("@qevm/keccak256"); | ||
| var properties_1 = require("@ethersproject/properties"); | ||
| var signing_key_1 = require("@qevm/signing-key"); | ||
| var json_wallets_1 = require("@qevm/json-wallets"); | ||
| var transactions_1 = require("@qevm/transactions"); | ||
| var logger_1 = require("@ethersproject/logger"); | ||
| var _version_1 = require("./_version"); | ||
| var logger = new logger_1.Logger(_version_1.version); | ||
| function isAccount(value) { | ||
@@ -28,129 +78,220 @@ return (value != null && | ||
| function hasMnemonic(value) { | ||
| const mnemonic = value.mnemonic; | ||
| var mnemonic = value.mnemonic; | ||
| return mnemonic; | ||
| } | ||
| class Wallet extends abstract_signer_1.Signer { | ||
| constructor(credentials, provider) { | ||
| super(); | ||
| if (credentials instanceof Wallet) { | ||
| const signingKey = new signing_key_1.SigningKey(credentials.privateKey, credentials.publicKey); | ||
| (0, properties_1.defineReadOnly)(this, "_signingKey", () => signingKey); | ||
| (0, properties_1.defineReadOnly)(this, "address", (0, address_1.getAddress)((0, transactions_1.computeAddress)(this.publicKey))); | ||
| (0, properties_1.defineReadOnly)(this, "_mnemonic", credentials._mnemonic); | ||
| } | ||
| else if (typeof credentials === 'string') { | ||
| (0, properties_1.defineReadOnly)(this, "_signingKey", () => (signing_key_1.SigningKey.generateFromMnemonics(credentials))); | ||
| (0, properties_1.defineReadOnly)(this, "address", (0, address_1.getAddress)((0, transactions_1.computeAddress)(this.publicKey))); | ||
| (0, properties_1.defineReadOnly)(this, "_mnemonic", () => credentials); | ||
| } | ||
| else if (signing_key_1.SigningKey.isSigningKey(credentials)) { | ||
| (0, properties_1.defineReadOnly)(this, "_signingKey", () => credentials); | ||
| (0, properties_1.defineReadOnly)(this, "address", (0, address_1.getAddress)((0, transactions_1.computeAddress)(this.publicKey))); | ||
| (0, properties_1.defineReadOnly)(this, "_mnemonic", () => null); | ||
| } | ||
| else if (isAccount(credentials)) { | ||
| (0, properties_1.defineReadOnly)(this, "_signingKey", () => new signing_key_1.SigningKey(credentials.privateKey, credentials.publicKey)); | ||
| (0, properties_1.defineReadOnly)(this, "address", (0, address_1.getAddress)((0, transactions_1.computeAddress)(this.publicKey))); | ||
| if (hasMnemonic(credentials)) { | ||
| (0, properties_1.defineReadOnly)(this, "_mnemonic", () => credentials.mnemonic); | ||
| const tempMnemSignature = signing_key_1.SigningKey.generateFromMnemonics(credentials.mnemonic); | ||
| if (tempMnemSignature.privateKey !== this._signingKey().privateKey) { | ||
| logger.throwArgumentError("mnemonic/keys mismatch", "privateKey", "[REDACTED]"); | ||
| var Wallet = /** @class */ (function (_super) { | ||
| __extends(Wallet, _super); | ||
| function Wallet(signingKey, mnemonic, provider) { | ||
| var _this = _super.call(this) || this; | ||
| (0, properties_1.defineReadOnly)(_this, "_signingKey", function () { return signingKey; }); | ||
| (0, properties_1.defineReadOnly)(_this, "address", (0, address_1.getAddress)((0, transactions_1.computeAddress)(signingKey.publicKey))); | ||
| (0, properties_1.defineReadOnly)(_this, "_mnemonic", function () { return mnemonic; }); | ||
| (0, properties_1.defineReadOnly)(_this, "provider", provider || null); | ||
| return _this; | ||
| } | ||
| Wallet.create = function (credentials, provider) { | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| var _a, signingKey, signingKey, testKey; | ||
| return __generator(this, function (_b) { | ||
| switch (_b.label) { | ||
| case 0: | ||
| if (!(credentials instanceof Wallet)) return [3 /*break*/, 2]; | ||
| _a = Wallet.bind; | ||
| return [4 /*yield*/, signing_key_1.SigningKey.create(credentials.privateKey, credentials.publicKey)]; | ||
| case 1: return [2 /*return*/, new (_a.apply(Wallet, [void 0, _b.sent(), credentials.mnemonic, provider]))()]; | ||
| case 2: | ||
| if (!(typeof credentials === "string")) return [3 /*break*/, 4]; | ||
| return [4 /*yield*/, signing_key_1.SigningKey.generateFromMnemonics(credentials)]; | ||
| case 3: | ||
| signingKey = _b.sent(); | ||
| return [2 /*return*/, new Wallet(signingKey, credentials, provider)]; | ||
| case 4: | ||
| if (signing_key_1.SigningKey.isSigningKey(credentials)) { | ||
| return [2 /*return*/, new Wallet(credentials, null, provider)]; | ||
| } | ||
| if (!isAccount(credentials)) return [3 /*break*/, 8]; | ||
| return [4 /*yield*/, signing_key_1.SigningKey.create(credentials.privateKey, credentials.publicKey)]; | ||
| case 5: | ||
| signingKey = _b.sent(); | ||
| if (!hasMnemonic(credentials)) return [3 /*break*/, 7]; | ||
| return [4 /*yield*/, signing_key_1.SigningKey.generateFromMnemonics(credentials.mnemonic)]; | ||
| case 6: | ||
| testKey = _b.sent(); | ||
| if (testKey.privateKey !== signingKey.privateKey || testKey.publicKey !== signingKey.publicKey) { | ||
| throw new Error("mnemonic/keys mismatch"); | ||
| } | ||
| return [2 /*return*/, new Wallet(signingKey, credentials.mnemonic, provider)]; | ||
| case 7: return [2 /*return*/, new Wallet(signingKey, null, provider)]; | ||
| case 8: throw new Error("Invalid credentials"); | ||
| } | ||
| if (tempMnemSignature.publicKey !== this._signingKey().publicKey) { | ||
| logger.throwArgumentError("mnemonic/keys mismatch", "publicKey", "[REDACTED]"); | ||
| } | ||
| } | ||
| else { | ||
| (0, properties_1.defineReadOnly)(this, "_mnemonic", () => null); | ||
| } | ||
| } | ||
| else { | ||
| logger.throwArgumentError("invalid credentials", "credentials", credentials); | ||
| } | ||
| if (provider && !abstract_provider_1.Provider.isProvider(provider)) { | ||
| logger.throwArgumentError("invalid provider", "provider", provider); | ||
| } | ||
| (0, properties_1.defineReadOnly)(this, "provider", provider || null); | ||
| } | ||
| get mnemonic() { return this._mnemonic(); } | ||
| get privateKey() { return this._signingKey().privateKey; } | ||
| get publicKey() { return this._signingKey().publicKey; } | ||
| getAddress() { | ||
| }); | ||
| }); | ||
| }; | ||
| Object.defineProperty(Wallet.prototype, "mnemonic", { | ||
| get: function () { return this._mnemonic(); }, | ||
| enumerable: false, | ||
| configurable: true | ||
| }); | ||
| Object.defineProperty(Wallet.prototype, "privateKey", { | ||
| get: function () { return this._signingKey().privateKey; }, | ||
| enumerable: false, | ||
| configurable: true | ||
| }); | ||
| Object.defineProperty(Wallet.prototype, "publicKey", { | ||
| get: function () { return this._signingKey().publicKey; }, | ||
| enumerable: false, | ||
| configurable: true | ||
| }); | ||
| Wallet.prototype.getAddress = function () { | ||
| return Promise.resolve(this.address); | ||
| } | ||
| connect(provider) { | ||
| return new Wallet(this, provider); | ||
| } | ||
| signTransaction(transaction) { | ||
| return (0, properties_1.resolveProperties)(transaction).then((tx) => { | ||
| if (tx.from != null) { | ||
| if ((0, address_1.getAddress)(tx.from) !== this.address) { | ||
| logger.throwArgumentError("transaction from address mismatch", "transaction.from", transaction.from); | ||
| }; | ||
| Wallet.prototype.connect = function (provider) { | ||
| return new Wallet(this._signingKey(), this._mnemonic(), provider); | ||
| }; | ||
| Wallet.prototype.signTransaction = function (transaction) { | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| var tx, digest, signature; | ||
| return __generator(this, function (_a) { | ||
| switch (_a.label) { | ||
| case 0: return [4 /*yield*/, (0, properties_1.resolveProperties)(transaction)]; | ||
| case 1: | ||
| tx = _a.sent(); | ||
| if (tx.from != null && (0, address_1.getAddress)(tx.from) !== this.address) { | ||
| logger.throwArgumentError("transaction from address mismatch", "transaction.from", transaction.from); | ||
| } | ||
| delete tx.from; | ||
| digest = (0, keccak256_1.keccak256)((0, transactions_1.serialize)(tx)); | ||
| return [4 /*yield*/, this._signingKey().signDigest(digest)]; | ||
| case 2: | ||
| signature = _a.sent(); | ||
| return [2 /*return*/, (0, transactions_1.serialize)(tx, signature)]; | ||
| } | ||
| delete tx.from; | ||
| } | ||
| const signature = this._signingKey().signDigest((0, keccak256_1.keccak256)((0, transactions_1.serialize)(tx))); | ||
| return (0, transactions_1.serialize)(tx, signature); | ||
| }); | ||
| }); | ||
| } | ||
| async signMessage(message) { | ||
| return (0, bytes_1.joinSignature)(this._signingKey().signDigest((0, hash_1.hashMessage)(message))); | ||
| } | ||
| async _signTypedData(domain, types, value) { | ||
| // Populate any ENS names | ||
| const populated = await hash_1._TypedDataEncoder.resolveNames(domain, types, value, (name) => { | ||
| if (this.provider == null) { | ||
| logger.throwError("cannot resolve ENS names without a provider", logger_1.Logger.errors.UNSUPPORTED_OPERATION, { | ||
| operation: "resolveName", | ||
| value: name | ||
| }); | ||
| } | ||
| return this.provider.resolveName(name); | ||
| }; | ||
| Wallet.prototype.signMessage = function (message) { | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| var _a; | ||
| return __generator(this, function (_b) { | ||
| switch (_b.label) { | ||
| case 0: | ||
| _a = bytes_1.joinSignature; | ||
| return [4 /*yield*/, this._signingKey().signDigest((0, hash_1.hashMessage)(message))]; | ||
| case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])]; | ||
| } | ||
| }); | ||
| }); | ||
| return (0, bytes_1.joinSignature)(this._signingKey().signDigest(hash_1._TypedDataEncoder.hash(populated.domain, types, populated.value))); | ||
| } | ||
| encrypt(password, options, progressCallback) { | ||
| if (typeof (options) === "function" && !progressCallback) { | ||
| }; | ||
| Wallet.prototype._signTypedData = function (domain, types, value) { | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| var populated, _a; | ||
| var _this = this; | ||
| return __generator(this, function (_b) { | ||
| switch (_b.label) { | ||
| case 0: return [4 /*yield*/, hash_1._TypedDataEncoder.resolveNames(domain, types, value, function (name) { return __awaiter(_this, void 0, void 0, function () { | ||
| return __generator(this, function (_a) { | ||
| if (!this.provider) { | ||
| logger.throwError("cannot resolve ENS names without a provider", logger_1.Logger.errors.UNSUPPORTED_OPERATION, { | ||
| operation: "resolveName", | ||
| value: name | ||
| }); | ||
| } | ||
| return [2 /*return*/, this.provider.resolveName(name)]; | ||
| }); | ||
| }); })]; | ||
| case 1: | ||
| populated = _b.sent(); | ||
| _a = bytes_1.joinSignature; | ||
| return [4 /*yield*/, this._signingKey().signDigest(hash_1._TypedDataEncoder.hash(populated.domain, types, populated.value))]; | ||
| case 2: return [2 /*return*/, _a.apply(void 0, [_b.sent()])]; | ||
| } | ||
| }); | ||
| }); | ||
| }; | ||
| Wallet.prototype.encrypt = function (password, options, progressCallback) { | ||
| if (typeof options === "function") { | ||
| progressCallback = options; | ||
| options = {}; | ||
| } | ||
| if (progressCallback && typeof (progressCallback) !== "function") { | ||
| throw new Error("invalid callback"); | ||
| } | ||
| if (!options) { | ||
| options = {}; | ||
| } | ||
| return (0, json_wallets_1.encryptKeystore)(this, password, options, progressCallback); | ||
| } | ||
| static createRandom(options) { | ||
| const result = signing_key_1.SigningKey.dilithiumInstance.generateKeys(1, null); | ||
| return new Wallet(new signing_key_1.SigningKey(result.privateKey, result.publicKey)); | ||
| } | ||
| static async initializeWasm() { | ||
| await signing_key_1.SigningKey.initialize(); | ||
| } | ||
| static fromEncryptedJson(json, password, progressCallback) { | ||
| return (0, json_wallets_1.decryptJsonWallet)(json, password, progressCallback).then((account) => { | ||
| return new Wallet(account); | ||
| return (0, json_wallets_1.encryptKeystore)(this, password, options || {}, progressCallback); | ||
| }; | ||
| Wallet.createRandom = function (options) { | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| var result, signingKey; | ||
| return __generator(this, function (_a) { | ||
| switch (_a.label) { | ||
| case 0: return [4 /*yield*/, signing_key_1.SigningKey.ensureInitialized()]; | ||
| case 1: | ||
| _a.sent(); | ||
| result = signing_key_1.SigningKey.dilithiumInstance.generateKeys(1, null); | ||
| return [4 /*yield*/, signing_key_1.SigningKey.create(result.privateKey, result.publicKey)]; | ||
| case 2: | ||
| signingKey = _a.sent(); | ||
| return [2 /*return*/, new Wallet(signingKey, null)]; | ||
| } | ||
| }); | ||
| }); | ||
| } | ||
| static fromEncryptedJsonSync(json, password) { | ||
| return new Wallet((0, json_wallets_1.decryptJsonWalletSync)(json, password)); | ||
| } | ||
| static fromMnemonic(mnemonic, provider) { | ||
| return new Wallet(mnemonic, provider); | ||
| } | ||
| } | ||
| }; | ||
| Wallet.fromEncryptedJson = function (json, password, progressCallback) { | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| var account; | ||
| return __generator(this, function (_a) { | ||
| switch (_a.label) { | ||
| case 0: return [4 /*yield*/, (0, json_wallets_1.decryptJsonWallet)(json, password, progressCallback)]; | ||
| case 1: | ||
| account = _a.sent(); | ||
| return [4 /*yield*/, Wallet.create(account)]; | ||
| case 2: return [2 /*return*/, _a.sent()]; | ||
| } | ||
| }); | ||
| }); | ||
| }; | ||
| Wallet.fromEncryptedJsonSync = function (json, password) { | ||
| var account = (0, json_wallets_1.decryptJsonWalletSync)(json, password); | ||
| var signingKey = signing_key_1.SigningKey.createSync(account.privateKey, account.publicKey); | ||
| return new Wallet(signingKey, null); | ||
| }; | ||
| Wallet.fromMnemonic = function (mnemonic, provider) { | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| return __generator(this, function (_a) { | ||
| switch (_a.label) { | ||
| case 0: return [4 /*yield*/, Wallet.create(mnemonic, provider)]; | ||
| case 1: return [2 /*return*/, _a.sent()]; | ||
| } | ||
| }); | ||
| }); | ||
| }; | ||
| return Wallet; | ||
| }(abstract_signer_1.Signer)); | ||
| exports.Wallet = Wallet; | ||
| function verifyMessage(message, signature) { | ||
| const sig = (0, bytes_1.splitSignature)(signature); | ||
| const varResult = signing_key_1.SigningKey.dilithiumInstance.verify((0, bytes_1.arrayify)(sig.signature), (0, bytes_1.arrayify)((0, hash_1.hashMessage)(message)), (0, bytes_1.arrayify)(sig.publicKey), 1); | ||
| return varResult.result; | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| var sig, varResult; | ||
| return __generator(this, function (_a) { | ||
| switch (_a.label) { | ||
| case 0: return [4 /*yield*/, signing_key_1.SigningKey.ensureInitialized()]; | ||
| case 1: | ||
| _a.sent(); | ||
| sig = (0, bytes_1.splitSignature)(signature); | ||
| varResult = signing_key_1.SigningKey.dilithiumInstance.verify((0, bytes_1.arrayify)(sig.signature), (0, bytes_1.arrayify)((0, hash_1.hashMessage)(message)), (0, bytes_1.arrayify)(sig.publicKey), 1); | ||
| return [2 /*return*/, varResult.result]; | ||
| } | ||
| }); | ||
| }); | ||
| } | ||
| function verifyTypedData(domain, types, value, signature) { | ||
| const sig = (0, bytes_1.splitSignature)(signature); | ||
| const varResult = signing_key_1.SigningKey.dilithiumInstance.verify(sig.signature, hash_1._TypedDataEncoder.hash(domain, types, value), sig.publicKey, 1); | ||
| return varResult.result; | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| var sig, varResult; | ||
| return __generator(this, function (_a) { | ||
| switch (_a.label) { | ||
| case 0: return [4 /*yield*/, signing_key_1.SigningKey.ensureInitialized()]; | ||
| case 1: | ||
| _a.sent(); | ||
| sig = (0, bytes_1.splitSignature)(signature); | ||
| varResult = signing_key_1.SigningKey.dilithiumInstance.verify(sig.signature, hash_1._TypedDataEncoder.hash(domain, types, value), sig.publicKey, 1); | ||
| return [2 /*return*/, varResult.result]; | ||
| } | ||
| }); | ||
| }); | ||
| } | ||
| //# sourceMappingURL=index.js.map |
+1
-1
@@ -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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"} |
+1
-1
@@ -37,3 +37,3 @@ { | ||
| "types": "./lib/index.d.ts", | ||
| "version": "5.7.5" | ||
| "version": "5.7.6" | ||
| } |
+63
-77
@@ -8,3 +8,3 @@ "use strict"; | ||
| import { hashMessage, _TypedDataEncoder } from "@qevm/hash"; | ||
| import { keccak256 } from "@ethersproject/keccak256"; | ||
| import { keccak256 } from "@qevm/keccak256"; | ||
| import { defineReadOnly, resolveProperties } from "@ethersproject/properties"; | ||
@@ -37,54 +37,45 @@ import { SigningKey } from "@qevm/signing-key"; | ||
| export class Wallet extends Signer implements ExternallyOwnedAccount, TypedDataSigner { | ||
| readonly address: string; | ||
| readonly provider: Provider; | ||
| // Wrapping the _signingKey and _mnemonic in a getter function prevents | ||
| // leaking the private key in console.log; still, be careful! :) | ||
| readonly _signingKey: () => SigningKey; | ||
| readonly _mnemonic: () => string; | ||
| constructor(credentials: Wallet | SigningKey | ExternallyOwnedAccount | string, provider?: Provider) { | ||
| private constructor(signingKey: SigningKey, mnemonic: string | null, provider?: Provider) { | ||
| super(); | ||
| defineReadOnly(this, "_signingKey", () => signingKey); | ||
| defineReadOnly(this, "address", getAddress(computeAddress(signingKey.publicKey))); | ||
| defineReadOnly(this, "_mnemonic", () => mnemonic); | ||
| defineReadOnly(this, "provider", provider || null); | ||
| } | ||
| static async create(credentials: Wallet | SigningKey | ExternallyOwnedAccount | string, provider?: Provider): Promise<Wallet> { | ||
| if (credentials instanceof Wallet) { | ||
| const signingKey = new SigningKey(credentials.privateKey, credentials.publicKey); | ||
| defineReadOnly(this, "_signingKey", () => signingKey); | ||
| defineReadOnly(this, "address", getAddress(computeAddress(this.publicKey))); | ||
| defineReadOnly(this, "_mnemonic", credentials._mnemonic); | ||
| }else if(typeof credentials === 'string'){ | ||
| defineReadOnly(this, "_signingKey", () => (SigningKey.generateFromMnemonics(credentials))); | ||
| defineReadOnly(this, "address", getAddress(computeAddress(this.publicKey))); | ||
| defineReadOnly(this, "_mnemonic", (): string => credentials); | ||
| } else if(SigningKey.isSigningKey(credentials)) { | ||
| defineReadOnly(this, "_signingKey", () => (<SigningKey>credentials)); | ||
| defineReadOnly(this, "address", getAddress(computeAddress(this.publicKey))); | ||
| defineReadOnly(this, "_mnemonic", (): string => null); | ||
| }else if(isAccount(credentials)){ | ||
| defineReadOnly(this, "_signingKey", () => new SigningKey(credentials.privateKey, credentials.publicKey)); | ||
| defineReadOnly(this, "address", getAddress(computeAddress(this.publicKey))); | ||
| return new Wallet(await SigningKey.create(credentials.privateKey, credentials.publicKey), credentials.mnemonic, provider); | ||
| } | ||
| if (typeof credentials === "string") { | ||
| const signingKey = await SigningKey.generateFromMnemonics(credentials); | ||
| return new Wallet(signingKey, credentials, provider); | ||
| } | ||
| if (SigningKey.isSigningKey(credentials)) { | ||
| return new Wallet(credentials, null, provider); | ||
| } | ||
| if (isAccount(credentials)) { | ||
| const signingKey = await SigningKey.create(credentials.privateKey, credentials.publicKey); | ||
| if (hasMnemonic(credentials)) { | ||
| defineReadOnly(this, "_mnemonic", (): string => credentials.mnemonic); | ||
| const tempMnemSignature = SigningKey.generateFromMnemonics(credentials.mnemonic); | ||
| if(tempMnemSignature.privateKey !== this._signingKey().privateKey ){ | ||
| logger.throwArgumentError("mnemonic/keys mismatch", "privateKey", "[REDACTED]"); | ||
| const testKey = await SigningKey.generateFromMnemonics(credentials.mnemonic); | ||
| if (testKey.privateKey !== signingKey.privateKey || testKey.publicKey !== signingKey.publicKey) { | ||
| throw new Error("mnemonic/keys mismatch"); | ||
| } | ||
| if(tempMnemSignature.publicKey !== this._signingKey().publicKey ){ | ||
| logger.throwArgumentError("mnemonic/keys mismatch", "publicKey", "[REDACTED]"); | ||
| } | ||
| return new Wallet(signingKey, credentials.mnemonic, provider); | ||
| } else { | ||
| defineReadOnly(this, "_mnemonic", (): string => null); | ||
| return new Wallet(signingKey, null, provider); | ||
| } | ||
| }else{ | ||
| logger.throwArgumentError("invalid credentials", "credentials", credentials); | ||
| } | ||
| if (provider && !Provider.isProvider(provider)) { | ||
| logger.throwArgumentError("invalid provider", "provider", provider); | ||
| } | ||
| defineReadOnly(this, "provider", provider || null); | ||
| throw new Error("Invalid credentials"); | ||
| } | ||
@@ -101,27 +92,24 @@ | ||
| connect(provider: Provider): Wallet { | ||
| return new Wallet(this, provider); | ||
| return new Wallet(this._signingKey(), this._mnemonic(), provider); | ||
| } | ||
| signTransaction(transaction: TransactionRequest): Promise<string> { | ||
| return resolveProperties(transaction).then((tx) => { | ||
| if (tx.from != null) { | ||
| if (getAddress(tx.from) !== this.address) { | ||
| logger.throwArgumentError("transaction from address mismatch", "transaction.from", transaction.from); | ||
| } | ||
| delete tx.from; | ||
| } | ||
| async signTransaction(transaction: TransactionRequest): Promise<string> { | ||
| const tx = await resolveProperties(transaction); | ||
| if (tx.from != null && getAddress(tx.from) !== this.address) { | ||
| logger.throwArgumentError("transaction from address mismatch", "transaction.from", transaction.from); | ||
| } | ||
| delete tx.from; | ||
| const signature = this._signingKey().signDigest(keccak256(serialize(<UnsignedTransaction>tx))); | ||
| return serialize(<UnsignedTransaction>tx, signature); | ||
| }); | ||
| const digest = keccak256(serialize(<UnsignedTransaction>tx)); | ||
| const signature = await this._signingKey().signDigest(digest); | ||
| return serialize(<UnsignedTransaction>tx, signature); | ||
| } | ||
| async signMessage(message: Bytes | string): Promise<string> { | ||
| return joinSignature(this._signingKey().signDigest(hashMessage(message))); | ||
| return joinSignature(await this._signingKey().signDigest(hashMessage(message))); | ||
| } | ||
| async _signTypedData(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): Promise<string> { | ||
| // Populate any ENS names | ||
| const populated = await _TypedDataEncoder.resolveNames(domain, types, value, (name: string) => { | ||
| if (this.provider == null) { | ||
| const populated = await _TypedDataEncoder.resolveNames(domain, types, value, async (name: string) => { | ||
| if (!this.provider) { | ||
| logger.throwError("cannot resolve ENS names without a provider", Logger.errors.UNSUPPORTED_OPERATION, { | ||
@@ -135,7 +123,9 @@ operation: "resolveName", | ||
| return joinSignature(this._signingKey().signDigest(_TypedDataEncoder.hash(populated.domain, types, populated.value))); | ||
| return joinSignature(await this._signingKey().signDigest( | ||
| _TypedDataEncoder.hash(populated.domain, types, populated.value) | ||
| )); | ||
| } | ||
| encrypt(password: Bytes | string, options?: any, progressCallback?: ProgressCallback): Promise<string> { | ||
| if (typeof(options) === "function" && !progressCallback) { | ||
| if (typeof options === "function") { | ||
| progressCallback = options; | ||
@@ -145,36 +135,31 @@ options = {}; | ||
| if (progressCallback && typeof(progressCallback) !== "function") { | ||
| throw new Error("invalid callback"); | ||
| } | ||
| if (!options) { options = {}; } | ||
| return encryptKeystore(this, password, options, progressCallback); | ||
| return encryptKeystore(this, password, options || {}, progressCallback); | ||
| } | ||
| static createRandom(options?: any): Wallet { | ||
| static async createRandom(options?: any): Promise<Wallet> { | ||
| await SigningKey.ensureInitialized(); | ||
| const result = SigningKey.dilithiumInstance.generateKeys(1, null); | ||
| return new Wallet(new SigningKey(result.privateKey, result.publicKey)); | ||
| const signingKey = await SigningKey.create(result.privateKey, result.publicKey); | ||
| return new Wallet(signingKey, null); | ||
| } | ||
| static async initializeWasm(){ | ||
| await SigningKey.initialize(); | ||
| static async fromEncryptedJson(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise<Wallet> { | ||
| const account = await decryptJsonWallet(json, password, progressCallback); | ||
| return await Wallet.create(account); | ||
| } | ||
| static fromEncryptedJson(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise<Wallet> { | ||
| return decryptJsonWallet(json, password, progressCallback).then((account) => { | ||
| return new Wallet(account); | ||
| }); | ||
| } | ||
| static fromEncryptedJsonSync(json: string, password: Bytes | string): Wallet { | ||
| return new Wallet(decryptJsonWalletSync(json, password)); | ||
| const account = decryptJsonWalletSync(json, password); | ||
| const signingKey = SigningKey.createSync(account.privateKey, account.publicKey); | ||
| return new Wallet(signingKey, null); | ||
| } | ||
| static fromMnemonic(mnemonic: string, provider?: Provider): Wallet { | ||
| return new Wallet(mnemonic, provider); | ||
| static async fromMnemonic(mnemonic: string, provider?: Provider): Promise<Wallet> { | ||
| return await Wallet.create(mnemonic, provider); | ||
| } | ||
| } | ||
| export function verifyMessage(message: Bytes | string, signature: SignatureLike): number { | ||
| export async function verifyMessage(message: Bytes | string, signature: SignatureLike): Promise<number> { | ||
| await SigningKey.ensureInitialized(); | ||
| const sig: Signature = splitSignature(signature); | ||
@@ -185,3 +170,4 @@ const varResult: VerificationResult = SigningKey.dilithiumInstance.verify(arrayify(sig.signature), arrayify(hashMessage(message)), arrayify(sig.publicKey), 1); | ||
| export function verifyTypedData(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>, signature: SignatureLike): number { | ||
| export async function verifyTypedData(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>, signature: SignatureLike): Promise<number> { | ||
| await SigningKey.ensureInitialized(); | ||
| const sig: Signature = splitSignature(signature); | ||
@@ -188,0 +174,0 @@ const varResult: VerificationResult = SigningKey.dilithiumInstance.verify(sig.signature, _TypedDataEncoder.hash(domain, types, value), sig.publicKey, 1); |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
36373
22.23%466
38.69%1
Infinity%