@enjin-io/metamask-enjin-adapter
Version:
62 lines • 4.62 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.enablePolkadotSnap = exports.isMetamaskSnapsSupported = exports.isPolkadotSnapInstalled = exports.hasMetaMask = void 0;
require("@polkadot/types-augment");
const snap_1 = require("./snap");
const utils_1 = require("./utils");
const defaultSnapOrigin = 'npm:@enjin-io/snap';
__exportStar(require("./extension"), exports);
var utils_2 = require("./utils");
Object.defineProperty(exports, "hasMetaMask", { enumerable: true, get: function () { return utils_2.hasMetaMask; } });
Object.defineProperty(exports, "isPolkadotSnapInstalled", { enumerable: true, get: function () { return utils_2.isPolkadotSnapInstalled; } });
Object.defineProperty(exports, "isMetamaskSnapsSupported", { enumerable: true, get: function () { return utils_2.isMetamaskSnapsSupported; } });
async function enablePolkadotSnap(config = { networkName: 'enjin-relaychain' }, snapOrigin, snapInstallationParams = {}) {
const snapId = snapOrigin ?? defaultSnapOrigin;
// check all conditions
if (!(0, utils_1.hasMetaMask)()) {
throw new Error('Metamask is not installed');
}
if (!(await (0, utils_1.isMetamaskSnapsSupported)())) {
throw new Error("Current Metamask version doesn't support snaps");
}
if (!config.networkName) {
config.networkName = 'enjin-relaychain';
}
const isInstalled = await (0, utils_1.isPolkadotSnapInstalled)(snapId);
if (!isInstalled) {
const metamask = await (0, utils_1.getMetaMask)();
await metamask?.request({
method: 'wallet_requestSnaps',
params: {
[snapId]: { ...snapInstallationParams }
}
});
}
// create snap describer
const snap = new snap_1.MetamaskPolkadotSnap(snapOrigin || defaultSnapOrigin, config);
// set initial configuration
try {
const snapApi = snap.getMetamaskSnapApi();
await snapApi.setConfiguration(config);
}
catch (err) {
console.error('Failed to set configuration', err);
}
return snap;
}
exports.enablePolkadotSnap = enablePolkadotSnap;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBaUM7QUFFakMsaUNBQThDO0FBQzlDLG1DQUtpQjtBQUVqQixNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDO0FBSS9DLDhDQUE0QjtBQUM1QixpQ0FBeUY7QUFBaEYsb0dBQUEsV0FBVyxPQUFBO0FBQUUsZ0hBQUEsdUJBQXVCLE9BQUE7QUFBRSxpSEFBQSx3QkFBd0IsT0FBQTtBQUVoRSxLQUFLLFVBQVUsa0JBQWtCLENBQ3RDLFNBQXFCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLEVBQ3hELFVBQW1CLEVBQ25CLHlCQUFzRSxFQUFFO0lBRXhFLE1BQU0sTUFBTSxHQUFHLFVBQVUsSUFBSSxpQkFBaUIsQ0FBQztJQUUvQyx1QkFBdUI7SUFDdkIsSUFBSSxDQUFDLElBQUEsbUJBQVcsR0FBRSxFQUFFO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztLQUM5QztJQUNELElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBQSxnQ0FBd0IsR0FBRSxDQUFDLEVBQUU7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0tBQ25FO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7UUFDdkIsTUFBTSxDQUFDLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQztLQUN6QztJQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBQSwrQkFBdUIsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUUxRCxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxtQkFBVyxHQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEVBQUUsT0FBTyxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxxQkFBcUI7WUFDN0IsTUFBTSxFQUFFO2dCQUNOLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLHNCQUFzQixFQUFFO2FBQ3hDO1NBQ0YsQ0FBQyxDQUFDO0tBQ0o7SUFFRCx3QkFBd0I7SUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSwyQkFBb0IsQ0FBQyxVQUFVLElBQUksaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0UsNEJBQTRCO0lBRTVCLElBQUk7UUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQyxNQUFNLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN4QztJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUNuRDtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQTFDRCxnREEwQ0MifQ==