@reservoir0x/ethers-wallet-adapter
Version:
An adapter used to convert an ethersjs signer to a Reservoir Wallet for use in the @reservoir0x/reservoir-sdk
1 lines • 3.74 kB
Source Map (JSON)
{"mappings":";;;;;;;;;;;;;;ACUO,MAAM,4CAAoB,CAC/B,QACA;IAEA,OAAO;mBACL;QACA,SAAS;YACP,OAAO,OAAO,UAAU;QAC1B;QACA,uBAAuB,OAAO;YAC5B,MAAM,SAAS,CAAA,GAAA,gBAAA;YACf,MAAM,WAAW,SAAS,IAAI,EAAE;YAChC,IAAI;YACJ,IAAI,UAAU;gBACZ,yBAAyB;gBACzB,IAAI,SAAS,aAAa,KAAK,UAAU;oBACvC,OAAO,GAAG,CAAC;wBAAC;qBAAqC,EAAE,CAAA,GAAA,eAAA,EAAS,OAAO;oBACnE,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,sBACzB,6EAA6E;oBAC7E,YAAY,MAAM,OAAO,WAAW,CAAC,CAAA,GAAA,eAAA,EAAS,SAAS,OAAO;yBAE9D,YAAY,MAAM,OAAO,WAAW,CAAC,SAAS,OAAO;gBAEzD,OAAO,IAAI,SAAS,aAAa,KAAK,UAAU;oBAC9C,OAAO,GAAG,CAAC;wBAAC;qBAAqC,EAAE,CAAA,GAAA,eAAA,EAAS,OAAO;oBACnE,YAAY,MACV,OACA,cAAc,CAAC,SAAS,MAAM,EAAE,SAAS,KAAK,EAAE,SAAS,KAAK;gBAClE;YACF;YACA,OAAO;QACT;QACA,2BAA2B,OAAO,SAAS;YACzC,MAAM,WAAW,SAAS,IAAI;YAC9B,MAAM,cAAc,MAAM,OAAO,eAAe,CAAC;gBAC/C,MAAM,SAAS,IAAI;gBACnB,IAAI,SAAS,EAAE;gBACf,MAAM,SAAS,IAAI;gBACnB,OAAO,CAAA,GAAA,kBAAA,EAAa,SAAS,KAAa,IAAI;gBAC9C,GAAI,SAAS,YAAY,IAAI;oBAC3B,cAAc,CAAA,GAAA,kBAAA,EAAY,SAAS,YAAmB;gBACvD,CAAA;gBACD,GAAI,SAAS,oBAAoB,IAAI;oBACnC,sBAAsB,CAAA,GAAA,kBAAA,EACpB,SAAS,oBAA2B;gBAEvC,CAAA;gBACD,GAAI,SAAS,GAAG,IAAI;oBAClB,UAAU,CAAA,GAAA,kBAAA,EAAY,SAAS,GAAU;gBAC1C,CAAA;YACF;YAED,OAAO,YAAY,IAAqB;QAC1C;IACD;AACH","sources":["packages/ethers-wallet-adapter/src/index.ts","packages/ethers-wallet-adapter/src/adapter.ts"],"sourcesContent":["export * from './adapter'\n","import {\n LogLevel,\n ReservoirWallet,\n getClient,\n} from '@reservoir0x/reservoir-sdk'\nimport { Signer } from 'ethers/lib/ethers'\nimport { arrayify } from 'ethers/lib/utils'\nimport { TypedDataSigner } from '@ethersproject/abstract-signer/lib/index'\nimport { CustomTransport, HttpTransport, hexToBigInt } from 'viem'\n\nexport const adaptEthersSigner = (\n signer: Signer,\n transport?: CustomTransport | HttpTransport\n): ReservoirWallet => {\n return {\n transport,\n address: async () => {\n return signer.getAddress()\n },\n handleSignMessageStep: async (stepItem) => {\n const client = getClient()\n const signData = stepItem.data?.sign\n let signature: string | undefined\n if (signData) {\n // Request user signature\n if (signData.signatureKind === 'eip191') {\n client.log(['Execute Steps: Signing with eip191'], LogLevel.Verbose)\n if (signData.message.match(/0x[0-9a-fA-F]{64}/)) {\n // If the message represents a hash, we need to convert it to raw bytes first\n signature = await signer.signMessage(arrayify(signData.message))\n } else {\n signature = await signer.signMessage(signData.message)\n }\n } else if (signData.signatureKind === 'eip712') {\n client.log(['Execute Steps: Signing with eip712'], LogLevel.Verbose)\n signature = await (\n signer as unknown as TypedDataSigner\n )._signTypedData(signData.domain, signData.types, signData.value)\n }\n }\n return signature\n },\n handleSendTransactionStep: async (chainId, stepItem) => {\n const stepData = stepItem.data\n const transaction = await signer.sendTransaction({\n data: stepData.data,\n to: stepData.to,\n from: stepData.from,\n value: hexToBigInt((stepData.value as any) || 0),\n ...(stepData.maxFeePerGas && {\n maxFeePerGas: hexToBigInt(stepData.maxFeePerGas as any),\n }),\n ...(stepData.maxPriorityFeePerGas && {\n maxPriorityFeePerGas: hexToBigInt(\n stepData.maxPriorityFeePerGas as any\n ),\n }),\n ...(stepData.gas && {\n gasLimit: hexToBigInt(stepData.gas as any),\n }),\n })\n\n return transaction.hash as `0x${string}`\n },\n }\n}\n"],"names":[],"version":3,"file":"index.mjs.map"}