UNPKG

@metamask/snaps-sdk

Version:

A library containing the core functionality for building MetaMask Snaps

43 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NonEip155AssetTypeStruct = exports.NonEip155ChainIdStruct = exports.NonEip155CaipAccountIdsMatchedByAddressAndNamespaceStruct = void 0; const superstruct_1 = require("@metamask/superstruct"); const utils_1 = require("@metamask/utils"); /** * A struct representing a list of non-EIP-155 CAIP-10 account IDs where the account addresses are the same. */ exports.NonEip155CaipAccountIdsMatchedByAddressAndNamespaceStruct = (0, superstruct_1.refine)((0, superstruct_1.array)(utils_1.CaipAccountIdStruct), 'Non-EIP-155 Matching Addresses Account ID List', (value) => { const parsedAccountIds = value.map((accountId) => (0, utils_1.parseCaipAccountId)(accountId)); if (!parsedAccountIds.every(({ address, chain: { namespace } }) => address === parsedAccountIds[0].address && namespace === parsedAccountIds[0].chain.namespace)) { return 'All account IDs must have the same address and namespace.'; } const containsEip155 = parsedAccountIds.some(({ chain: { namespace } }) => { return namespace === utils_1.KnownCaipNamespace.Eip155; }); if (containsEip155) { return 'All account IDs must have non-EIP-155 namespaces.'; } return true; }); /** * A struct representing a non-EIP-155 chain ID. */ exports.NonEip155ChainIdStruct = (0, superstruct_1.refine)(utils_1.CaipChainIdStruct, 'Non-EIP-155 Chain ID', (value) => { const { namespace } = (0, utils_1.parseCaipChainId)(value); if (namespace === utils_1.KnownCaipNamespace.Eip155) { return 'Chain ID must not be an EIP-155 chain ID.'; } return true; }); /** * A struct representing a non-EIP-155 asset type. */ exports.NonEip155AssetTypeStruct = (0, superstruct_1.refine)(utils_1.CaipAssetTypeStruct, 'Non-EIP-155 Asset Type', (value) => { const { chain: { namespace }, } = (0, utils_1.parseCaipAssetType)(value); if (namespace === utils_1.KnownCaipNamespace.Eip155) { return 'Asset type must not be an EIP-155 asset type.'; } return true; }); //# sourceMappingURL=caip.cjs.map