UNPKG

@metamask/snaps-sdk

Version:

A library containing the core functionality for building MetaMask Snaps

33 lines 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OnAssetsLookupResponseStruct = exports.FungibleAssetMetadataStruct = exports.AssetIconUrlStruct = exports.FungibleAssetUnitStruct = void 0; const superstruct_1 = require("@metamask/superstruct"); const utils_1 = require("@metamask/utils"); exports.FungibleAssetUnitStruct = (0, superstruct_1.object)({ name: (0, superstruct_1.optional)((0, superstruct_1.string)()), symbol: (0, superstruct_1.optional)((0, superstruct_1.string)()), decimals: (0, superstruct_1.number)(), }); exports.AssetIconUrlStruct = (0, superstruct_1.refine)((0, superstruct_1.string)(), 'Asset URL', (value) => { try { const url = new URL(value); // For now, we require asset URLs to either be base64 SVGs or remote HTTPS URLs (0, utils_1.assert)(url.protocol === 'https:' || value.startsWith('data:image/svg+xml;base64,')); return true; } catch { return 'Invalid URL'; } }); exports.FungibleAssetMetadataStruct = (0, superstruct_1.object)({ name: (0, superstruct_1.optional)((0, superstruct_1.string)()), symbol: (0, superstruct_1.optional)((0, superstruct_1.string)()), fungible: (0, superstruct_1.literal)(true), iconUrl: exports.AssetIconUrlStruct, units: (0, superstruct_1.size)((0, superstruct_1.array)(exports.FungibleAssetUnitStruct), 1, Infinity), }); exports.OnAssetsLookupResponseStruct = (0, superstruct_1.object)({ assets: (0, superstruct_1.record)(utils_1.CaipAssetTypeStruct, (0, superstruct_1.nullable)(exports.FungibleAssetMetadataStruct)), }); //# sourceMappingURL=assets-lookup.cjs.map