@reservoir0x/ethers-wallet-adapter
Version:
An adapter used to convert an ethersjs signer to a Reservoir Wallet for use in the @reservoir0x/reservoir-sdk
70 lines (59 loc) • 2.85 kB
JavaScript
import {getClient as $eNUu9$getClient, LogLevel as $eNUu9$LogLevel} from "@reservoir0x/reservoir-sdk";
import {arrayify as $eNUu9$arrayify} from "ethers/lib/utils";
import {hexToBigInt as $eNUu9$hexToBigInt} from "viem";
function $parcel$export(e, n, v, s) {
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
}
var $94f7b90399ca5107$exports = {};
$parcel$export($94f7b90399ca5107$exports, "adaptEthersSigner", () => $94f7b90399ca5107$export$e88664dcee9d76ee);
const $94f7b90399ca5107$export$e88664dcee9d76ee = (signer, transport)=>{
return {
transport: transport,
address: async ()=>{
return signer.getAddress();
},
handleSignMessageStep: async (stepItem)=>{
const client = (0, $eNUu9$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, $eNUu9$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, $eNUu9$arrayify)(signData.message));
else signature = await signer.signMessage(signData.message);
} else if (signData.signatureKind === "eip712") {
client.log([
"Execute Steps: Signing with eip712"
], (0, $eNUu9$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, $eNUu9$hexToBigInt)(stepData.value || 0),
...stepData.maxFeePerGas && {
maxFeePerGas: (0, $eNUu9$hexToBigInt)(stepData.maxFeePerGas)
},
...stepData.maxPriorityFeePerGas && {
maxPriorityFeePerGas: (0, $eNUu9$hexToBigInt)(stepData.maxPriorityFeePerGas)
},
...stepData.gas && {
gasLimit: (0, $eNUu9$hexToBigInt)(stepData.gas)
}
});
return transaction.hash;
}
};
};
export {$94f7b90399ca5107$export$e88664dcee9d76ee as adaptEthersSigner};
//# sourceMappingURL=index.mjs.map