UNPKG

@reservoir0x/ethers-wallet-adapter

Version:

An adapter used to convert an ethersjs signer to a Reservoir Wallet for use in the @reservoir0x/reservoir-sdk

87 lines (73 loc) 3.28 kB
var $9eZPt$reservoir0xreservoirsdk = require("@reservoir0x/reservoir-sdk"); var $9eZPt$etherslibutils = require("ethers/lib/utils"); var $9eZPt$viem = require("viem"); function $parcel$exportWildcard(dest, source) { Object.keys(source).forEach(function(key) { if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) { return; } Object.defineProperty(dest, key, { enumerable: true, get: function get() { return source[key]; } }); }); return dest; } function $parcel$export(e, n, v, s) { Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true}); } var $557aa315c334ab67$exports = {}; $parcel$export($557aa315c334ab67$exports, "adaptEthersSigner", () => $557aa315c334ab67$export$e88664dcee9d76ee); const $557aa315c334ab67$export$e88664dcee9d76ee = (signer, transport)=>{ return { transport: transport, address: async ()=>{ return signer.getAddress(); }, handleSignMessageStep: async (stepItem)=>{ const client = (0, $9eZPt$reservoir0xreservoirsdk.getClient)(); const signData = stepItem.data?.sign; let signature; if (signData) { // Request user signature if (signData.signatureKind === "eip191") { client.log([ "Execute Steps: Signing with eip191" ], (0, $9eZPt$reservoir0xreservoirsdk.LogLevel).Verbose); if (signData.message.match(/0x[0-9a-fA-F]{64}/)) // If the message represents a hash, we need to convert it to raw bytes first signature = await signer.signMessage((0, $9eZPt$etherslibutils.arrayify)(signData.message)); else signature = await signer.signMessage(signData.message); } else if (signData.signatureKind === "eip712") { client.log([ "Execute Steps: Signing with eip712" ], (0, $9eZPt$reservoir0xreservoirsdk.LogLevel).Verbose); signature = await signer._signTypedData(signData.domain, signData.types, signData.value); } } return signature; }, handleSendTransactionStep: async (chainId, stepItem)=>{ const stepData = stepItem.data; const transaction = await signer.sendTransaction({ data: stepData.data, to: stepData.to, from: stepData.from, value: (0, $9eZPt$viem.hexToBigInt)(stepData.value || 0), ...stepData.maxFeePerGas && { maxFeePerGas: (0, $9eZPt$viem.hexToBigInt)(stepData.maxFeePerGas) }, ...stepData.maxPriorityFeePerGas && { maxPriorityFeePerGas: (0, $9eZPt$viem.hexToBigInt)(stepData.maxPriorityFeePerGas) }, ...stepData.gas && { gasLimit: (0, $9eZPt$viem.hexToBigInt)(stepData.gas) } }); return transaction.hash; } }; }; $parcel$exportWildcard(module.exports, $557aa315c334ab67$exports); //# sourceMappingURL=index.js.map