{"version":3,"sources":["../../../src/adapters/meteor.ts"],"sourcesContent":["// @todo low-priority: i thought we were using meer-api-js and @meer-js/ packages\n//    seems to be working fine. will likely compile down better and might mean the tsup config\n//    can be simplified in terms of which modules it thinks is external and stuff, anyway.\nimport { connect, KeyPair } from \"near-api-js\";\nimport { EMeteorWalletSignInType, MeteorWallet } from \"@fastnear/meteorwallet-sdk\";\nimport { mapActionForWalletSelector } from \"../utils/actionToWalletSelector.js\";\nimport { PublicKey } from \"@near-js/crypto\";\nimport { keyStores } from \"near-api-js\";\n\nasync function createMeteorWalletInstance({ networkId = \"mainnet\" }): Promise<MeteorWallet> {\n  const keyStore = new keyStores.BrowserLocalStorageKeyStore(\n    window.localStorage,\n    \"_meteor_wallet\"\n  );\n\n  const near = await connect({\n    keyStore,\n    networkId,\n    nodeUrl: networkId === \"mainnet\"\n      ? \"https://rpc.mainnet.near.org\"\n      : \"https://rpc.testnet.near.org\",\n  });\n\n  return new MeteorWallet({ near, appKeyPrefix: \"near_app\" });\n}\n\nexport function createMeteorAdapter() {\n  return {\n    async signIn({ networkId, contractId, publicKey }) {\n      const parsedPublicKey = PublicKey.from(publicKey);\n      const keyPair = KeyPair.fromString(parsedPublicKey.toString());\n      const wallet = await createMeteorWalletInstance({ networkId });\n\n      const response = await wallet.requestSignIn({\n        contract_id: contractId,\n        type: EMeteorWalletSignInType.ALL_METHODS,\n        keyPair,\n      });\n\n      if (!response?.success || !response.payload?.accountId) {\n        throw new Error(\"Meteor Wallet sign-in failed\");\n      }\n\n      return {\n        state: {\n          accountId: response.payload.accountId,\n          publicKey: parsedPublicKey.toString(),\n          networkId,\n        },\n      };\n    },\n\n    async sendTransactions({ state, transactions }) {\n      if (!state?.accountId) {\n        throw new Error(\"Not signed in\");\n      }\n\n      const wallet = await createMeteorWalletInstance({\n        networkId: state.networkId,\n      });\n\n      try {\n        const response = await wallet.requestSignTransactions({\n          transactions: transactions.map(({ signerId, receiverId, actions }) => {\n            if (signerId && signerId !== state.accountId) {\n              throw new Error(\"Invalid signer\");\n            }\n            return {\n              signerId: state.accountId,\n              receiverId,\n              actions: actions.map(mapActionForWalletSelector),\n            };\n          }),\n        });\n\n        return { outcomes: response };\n      } catch (error) {\n        const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n        if (\n          errorMessage === \"User cancelled the action\" ||\n          errorMessage === \"User closed the window before completing the action\"\n        ) {\n          return { rejected: true };\n        }\n        console.error(\"Transaction error:\", error);\n        throw new Error(errorMessage);\n      }\n    },\n  };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,yBAAiC;AACjC,8BAAsD;AACtD,oCAA2C;AAC3C,oBAA0B;AAC1B,IAAAA,sBAA0B;AAE1B,eAAe,2BAA2B,EAAE,YAAY,UAAU,GAA0B;AAC1F,QAAM,WAAW,IAAI,8BAAU;AAAA,IAC7B,OAAO;AAAA,IACP;AAAA,EACF;AAEA,QAAM,OAAO,UAAM,4BAAQ;AAAA,IACzB;AAAA,IACA;AAAA,IACA,SAAS,cAAc,YACnB,iCACA;AAAA,EACN,CAAC;AAED,SAAO,IAAI,qCAAa,EAAE,MAAM,cAAc,WAAW,CAAC;AAC5D;AAfe;AAiBR,SAAS,sBAAsB;AACpC,SAAO;AAAA,IACL,MAAM,OAAO,EAAE,WAAW,YAAY,UAAU,GAAG;AACjD,YAAM,kBAAkB,wBAAU,KAAK,SAAS;AAChD,YAAM,UAAU,2BAAQ,WAAW,gBAAgB,SAAS,CAAC;AAC7D,YAAM,SAAS,MAAM,2BAA2B,EAAE,UAAU,CAAC;AAE7D,YAAM,WAAW,MAAM,OAAO,cAAc;AAAA,QAC1C,aAAa;AAAA,QACb,MAAM,gDAAwB;AAAA,QAC9B;AAAA,MACF,CAAC;AAED,UAAI,CAAC,UAAU,WAAW,CAAC,SAAS,SAAS,WAAW;AACtD,cAAM,IAAI,MAAM,8BAA8B;AAAA,MAChD;AAEA,aAAO;AAAA,QACL,OAAO;AAAA,UACL,WAAW,SAAS,QAAQ;AAAA,UAC5B,WAAW,gBAAgB,SAAS;AAAA,UACpC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,MAAM,iBAAiB,EAAE,OAAO,aAAa,GAAG;AAC9C,UAAI,CAAC,OAAO,WAAW;AACrB,cAAM,IAAI,MAAM,eAAe;AAAA,MACjC;AAEA,YAAM,SAAS,MAAM,2BAA2B;AAAA,QAC9C,WAAW,MAAM;AAAA,MACnB,CAAC;AAED,UAAI;AACF,cAAM,WAAW,MAAM,OAAO,wBAAwB;AAAA,UACpD,cAAc,aAAa,IAAI,CAAC,EAAE,UAAU,YAAY,QAAQ,MAAM;AACpE,gBAAI,YAAY,aAAa,MAAM,WAAW;AAC5C,oBAAM,IAAI,MAAM,gBAAgB;AAAA,YAClC;AACA,mBAAO;AAAA,cACL,UAAU,MAAM;AAAA,cAChB;AAAA,cACA,SAAS,QAAQ,IAAI,wDAA0B;AAAA,YACjD;AAAA,UACF,CAAC;AAAA,QACH,CAAC;AAED,eAAO,EAAE,UAAU,SAAS;AAAA,MAC9B,SAAS,OAAO;AACd,cAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAC9D,YACE,iBAAiB,+BACjB,iBAAiB,uDACjB;AACA,iBAAO,EAAE,UAAU,KAAK;AAAA,QAC1B;AACA,gBAAQ,MAAM,sBAAsB,KAAK;AACzC,cAAM,IAAI,MAAM,YAAY;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AACF;AA/DgB;","names":["import_near_api_js"]}