UNPKG

saepenatus

Version:

Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, mul

171 lines 7.22 kB
"use strict"; 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; return g = { next: verb(0), "throw": verb(1), "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 (_) 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 }); exports.Description = exports.deepCopy = exports.shallowCopy = exports.checkProperties = exports.resolveProperties = exports.getStatic = exports.defineReadOnly = void 0; var logger_1 = require("@ethersproject/logger"); var _version_1 = require("./_version"); var logger = new logger_1.Logger(_version_1.version); function defineReadOnly(object, name, value) { Object.defineProperty(object, name, { enumerable: true, value: value, writable: false, }); } exports.defineReadOnly = defineReadOnly; // Crawl up the constructor chain to find a static method function getStatic(ctor, key) { for (var i = 0; i < 32; i++) { if (ctor[key]) { return ctor[key]; } if (!ctor.prototype || typeof (ctor.prototype) !== "object") { break; } ctor = Object.getPrototypeOf(ctor.prototype).constructor; } return null; } exports.getStatic = getStatic; function resolveProperties(object) { return __awaiter(this, void 0, void 0, function () { var promises, results; return __generator(this, function (_a) { switch (_a.label) { case 0: promises = Object.keys(object).map(function (key) { var value = object[key]; return Promise.resolve(value).then(function (v) { return ({ key: key, value: v }); }); }); return [4 /*yield*/, Promise.all(promises)]; case 1: results = _a.sent(); return [2 /*return*/, results.reduce(function (accum, result) { accum[(result.key)] = result.value; return accum; }, {})]; } }); }); } exports.resolveProperties = resolveProperties; function checkProperties(object, properties) { if (!object || typeof (object) !== "object") { logger.throwArgumentError("invalid object", "object", object); } Object.keys(object).forEach(function (key) { if (!properties[key]) { logger.throwArgumentError("invalid object key - " + key, "transaction:" + key, object); } }); } exports.checkProperties = checkProperties; function shallowCopy(object) { var result = {}; for (var key in object) { result[key] = object[key]; } return result; } exports.shallowCopy = shallowCopy; var opaque = { bigint: true, boolean: true, "function": true, number: true, string: true }; function _isFrozen(object) { // Opaque objects are not mutable, so safe to copy by assignment if (object === undefined || object === null || opaque[typeof (object)]) { return true; } if (Array.isArray(object) || typeof (object) === "object") { if (!Object.isFrozen(object)) { return false; } var keys = Object.keys(object); for (var i = 0; i < keys.length; i++) { var value = null; try { value = object[keys[i]]; } catch (error) { // If accessing a value triggers an error, it is a getter // designed to do so (e.g. Result) and is therefore "frozen" continue; } if (!_isFrozen(value)) { return false; } } return true; } return logger.throwArgumentError("Cannot deepCopy " + typeof (object), "object", object); } // Returns a new copy of object, such that no properties may be replaced. // New properties may be added only to objects. function _deepCopy(object) { if (_isFrozen(object)) { return object; } // Arrays are mutable, so we need to create a copy if (Array.isArray(object)) { return Object.freeze(object.map(function (item) { return deepCopy(item); })); } if (typeof (object) === "object") { var result = {}; for (var key in object) { var value = object[key]; if (value === undefined) { continue; } defineReadOnly(result, key, deepCopy(value)); } return result; } return logger.throwArgumentError("Cannot deepCopy " + typeof (object), "object", object); } function deepCopy(object) { return _deepCopy(object); } exports.deepCopy = deepCopy; var Description = /** @class */ (function () { function Description(info) { for (var key in info) { this[key] = deepCopy(info[key]); } } return Description; }()); exports.Description = Description; //# sourceMappingURL=index.js.map