{"version":3,"file":"snaps.mjs","sourceRoot":"","sources":["../../src/utils/snaps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,8BAA8B;AAEjD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,aAAa;AAElC,OAAO,EAAE,+BAA+B,EAAE,gCAA4B;AAGtE,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC,MAAc,EAAE,EAAE;IACzE,OAAO;QACL,MAAM,EAAE,MAAe;QACvB,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,mBAA4B;QACrC,OAAO,EAAE;YACP,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,KAAK;YACd,MAAM,EAAE;gBACN,KAAK,EAAE,QAAQ,CAAC,OAAO;gBACvB,OAAO,EAAE;oBACP,EAAE,EAAE,IAAI,EAAE;oBACV,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,mCAAmC;oBAC3C,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;iBACzC;aACF;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2CAA2C,GAAG,KAAK,EAC9D,MAAc,EACd,SAAoC,EACpC,EAAE;IACF,OAAO,MAAM,CACX,MAAM,SAAS;SACZ,IAAI,CACH,8BAA8B,EAC9B,wCAAwC,CAAC,MAAM,CAAC,CACjD;QACD,8DAA8D;SAC7D,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;QACpB,OAAO,CAAC,KAAK,CACX,kDAAkD,EAClD,KAAK,CACN,CAAC;QACF,OAAO,+BAA+B,CAAC,wCAAwC,CAAC;IAClF,CAAC,CAAC,CACL,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAAc,EACd,WAAmB,EACnB,SAAiB,EACjB,KAAkB,EAClB,OAAiC,EACjC,EAAE;IACF,OAAO;QACL,kCAAkC;QAClC,MAAM,EAAE,MAAe;QACvB,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,iBAA0B;QACnC,OAAO,EAAE;YACP,EAAE,EAAE,IAAI,EAAE;YACV,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE;gBACN,WAAW;gBACX,SAAS;gBACT,KAAK;gBACL,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;aAC5B;SACF;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { SolScope } from '@metamask/keyring-api';\nimport type { CaipChainId } from '@metamask/utils';\nimport { v4 as uuid } from 'uuid';\n\nimport { DEFAULT_BRIDGE_CONTROLLER_STATE } from '../constants/bridge';\nimport type { BridgeControllerMessenger } from '../types';\n\nexport const getMinimumBalanceForRentExemptionRequest = (snapId: string) => {\n  return {\n    snapId: snapId as never,\n    origin: 'metamask',\n    handler: 'onProtocolRequest' as never,\n    request: {\n      method: ' ',\n      jsonrpc: '2.0',\n      params: {\n        scope: SolScope.Mainnet,\n        request: {\n          id: uuid(),\n          jsonrpc: '2.0',\n          method: 'getMinimumBalanceForRentExemption',\n          params: [0, { commitment: 'confirmed' }],\n        },\n      },\n    },\n  };\n};\n\n/**\n * Gets the minimum balance for rent exemption in lamports for a given chain ID and selected account\n *\n * @param snapId - The snap ID to send the request to\n * @param messenger - The messaging system to use to call the snap controller\n * @returns The minimum balance for rent exemption in lamports\n */\nexport const getMinimumBalanceForRentExemptionInLamports = async (\n  snapId: string,\n  messenger: BridgeControllerMessenger,\n) => {\n  return String(\n    await messenger\n      .call(\n        'SnapController:handleRequest',\n        getMinimumBalanceForRentExemptionRequest(snapId),\n      )\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      .catch((error: any) => {\n        console.error(\n          'Error setting minimum balance for rent exemption',\n          error,\n        );\n        return DEFAULT_BRIDGE_CONTROLLER_STATE.minimumBalanceForRentExemptionInLamports;\n      }),\n  );\n};\n\n/**\n * Creates a request to compute fees for a transaction using the new unified interface\n * Returns fees in native token amount (e.g., Solana instead of Lamports)\n *\n * @param snapId - The snap ID to send the request to\n * @param transaction - The base64 encoded transaction string\n * @param accountId - The account ID\n * @param scope - The CAIP-2 chain scope\n * @param options - Additional options to include in the request\n * @returns The snap request object\n */\nexport const computeFeeRequest = (\n  snapId: string,\n  transaction: string,\n  accountId: string,\n  scope: CaipChainId,\n  options?: Record<string, unknown>,\n) => {\n  return {\n    // TODO: remove 'as never' typing.\n    snapId: snapId as never,\n    origin: 'metamask',\n    handler: 'onClientRequest' as never,\n    request: {\n      id: uuid(),\n      jsonrpc: '2.0',\n      method: 'computeFee',\n      params: {\n        transaction,\n        accountId,\n        scope,\n        ...(options && { options }),\n      },\n    },\n  };\n};\n"]}