{"version":3,"sources":["../../../src/adapters/near.ts"],"sourcesContent":["import { serializeTransaction, toBase58 } from \"@fastnear/utils\";\n\nexport const walletUrl = (networkId: string) =>\n  networkId === \"testnet\"\n    ? \"https://testnet.mynearwallet.com\"\n    : \"https://app.mynearwallet.com\";\n\nexport function createNearAdapter() {\n  return {\n    async signIn({ networkId, contractId, callbackUrl, publicKey }) {\n      const url = new URL(`${walletUrl(networkId)}/login`);\n      url.searchParams.set(\"contract_id\", contractId);\n      url.searchParams.set(\"public_key\", publicKey);\n      url.searchParams.set(\"success_url\", callbackUrl);\n      url.searchParams.set(\"failure_url\", callbackUrl);\n\n      return {\n        url: url.toString(),\n        state: {\n          publicKey,\n          networkId,\n        },\n      };\n    },\n\n    async sendTransactions({ state, transactions, callbackUrl }) {\n      console.log(\n        \"sendTransactions\",\n        JSON.stringify({ state, transactions, callbackUrl })\n      );\n      if (!state?.accountId) {\n        throw new Error(\"Not signed in\");\n      }\n\n      const url = new URL(\"sign\", walletUrl(state?.networkId));\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,\n          publicKey: `ed25519:${toBase58(new Uint8Array(32))}`,\n          nonce: 0,\n          blockHash: toBase58(new Uint8Array(32)),\n        };\n      });\n\n      url.searchParams.set(\n        \"transactions\",\n        transactions\n          .map(transaction => serializeTransaction(transaction))\n          // @todo: vampire slay this Buffer! use js-base64\n          .map(serialized => Buffer.from(serialized).toString(\"base64\"))\n          .join(\",\")\n      );\n      url.searchParams.set(\"callbackUrl\", callbackUrl);\n\n      return { url: url.toString() };\n    },\n  };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+C;AAExC,MAAM,YAAY,wBAAC,cACxB,cAAc,YACV,qCACA,gCAHmB;AAKlB,SAAS,oBAAoB;AAClC,SAAO;AAAA,IACL,MAAM,OAAO,EAAE,WAAW,YAAY,aAAa,UAAU,GAAG;AAC9D,YAAM,MAAM,IAAI,IAAI,GAAG,UAAU,SAAS,CAAC,QAAQ;AACnD,UAAI,aAAa,IAAI,eAAe,UAAU;AAC9C,UAAI,aAAa,IAAI,cAAc,SAAS;AAC5C,UAAI,aAAa,IAAI,eAAe,WAAW;AAC/C,UAAI,aAAa,IAAI,eAAe,WAAW;AAE/C,aAAO;AAAA,QACL,KAAK,IAAI,SAAS;AAAA,QAClB,OAAO;AAAA,UACL;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,MAAM,iBAAiB,EAAE,OAAO,cAAc,YAAY,GAAG;AAC3D,cAAQ;AAAA,QACN;AAAA,QACA,KAAK,UAAU,EAAE,OAAO,cAAc,YAAY,CAAC;AAAA,MACrD;AACA,UAAI,CAAC,OAAO,WAAW;AACrB,cAAM,IAAI,MAAM,eAAe;AAAA,MACjC;AAEA,YAAM,MAAM,IAAI,IAAI,QAAQ,UAAU,OAAO,SAAS,CAAC;AACvD,qBAAe,aAAa,IAAI,CAAC,EAAE,UAAU,YAAY,QAAQ,MAAM;AACrE,YAAI,YAAY,aAAa,MAAM,WAAW;AAC5C,gBAAM,IAAI,MAAM,gBAAgB;AAAA,QAClC;AACA,eAAO;AAAA,UACL,UAAU,MAAM;AAAA,UAChB;AAAA,UACA;AAAA,UACA,WAAW,eAAW,uBAAS,IAAI,WAAW,EAAE,CAAC,CAAC;AAAA,UAClD,OAAO;AAAA,UACP,eAAW,uBAAS,IAAI,WAAW,EAAE,CAAC;AAAA,QACxC;AAAA,MACF,CAAC;AAED,UAAI,aAAa;AAAA,QACf;AAAA,QACA,aACG,IAAI,qBAAe,mCAAqB,WAAW,CAAC,EAEpD,IAAI,gBAAc,OAAO,KAAK,UAAU,EAAE,SAAS,QAAQ,CAAC,EAC5D,KAAK,GAAG;AAAA,MACb;AACA,UAAI,aAAa,IAAI,eAAe,WAAW;AAE/C,aAAO,EAAE,KAAK,IAAI,SAAS,EAAE;AAAA,IAC/B;AAAA,EACF;AACF;AAvDgB;","names":[]}