@relayprotocol/relay-ethers-wallet-adapter 22.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"type": "module","sideEffects":false}
@@ -0,0 +1,90 @@
1
+ import {} from '@ethersproject/abstract-signer/lib/index.js';
2
+ import { LogLevel, getClient } from '@relayprotocol/relay-sdk';
3
+ import { Signer } from 'ethers/lib/ethers.js';
4
+ import { arrayify, hexValue } from 'ethers/lib/utils.js';
5
+ import { createPublicClient, fallback, hexToBigInt, http } from 'viem';
6
+ export const adaptEthersSigner = (signer, transport) => {
7
+ return {
8
+ vmType: 'evm',
9
+ transport,
10
+ getChainId: () => {
11
+ return signer.getChainId();
12
+ },
13
+ address: async () => {
14
+ return signer.getAddress();
15
+ },
16
+ handleSignMessageStep: async (stepItem) => {
17
+ const client = getClient();
18
+ const signData = stepItem.data?.sign;
19
+ let signature;
20
+ if (signData) {
21
+ // Request user signature
22
+ if (signData.signatureKind === 'eip191') {
23
+ client.log(['Execute Steps: Signing with eip191'], LogLevel.Verbose);
24
+ if (signData.message.match(/0x[0-9a-fA-F]{64}/)) {
25
+ // If the message represents a hash, we need to convert it to raw bytes first
26
+ signature = await signer.signMessage(arrayify(signData.message));
27
+ }
28
+ else {
29
+ signature = await signer.signMessage(signData.message);
30
+ }
31
+ }
32
+ else if (signData.signatureKind === 'eip712') {
33
+ client.log(['Execute Steps: Signing with eip712'], LogLevel.Verbose);
34
+ signature = await signer._signTypedData(signData.domain, signData.types, signData.value);
35
+ }
36
+ }
37
+ return signature;
38
+ },
39
+ handleSendTransactionStep: async (_, stepItem) => {
40
+ const stepData = stepItem.data;
41
+ const transaction = await signer.sendTransaction({
42
+ data: stepData.data,
43
+ to: stepData.to,
44
+ from: stepData.from,
45
+ value: hexToBigInt(stepData.value || 0),
46
+ ...(stepData.maxFeePerGas && {
47
+ maxFeePerGas: hexToBigInt(stepData.maxFeePerGas)
48
+ }),
49
+ ...(stepData.maxPriorityFeePerGas && {
50
+ maxPriorityFeePerGas: hexToBigInt(stepData.maxPriorityFeePerGas)
51
+ }),
52
+ ...(stepData.gas && {
53
+ gasLimit: hexToBigInt(stepData.gas)
54
+ })
55
+ });
56
+ return transaction.hash;
57
+ },
58
+ handleConfirmTransactionStep: async (txHash, chainId, onReplaced, onCancelled) => {
59
+ const client = getClient();
60
+ const chain = client.chains.find((chain) => chain.id === chainId);
61
+ const viemClient = createPublicClient({
62
+ chain: chain?.viemChain,
63
+ transport: transport ? fallback([transport, http()]) : http()
64
+ });
65
+ const receipt = await viemClient.waitForTransactionReceipt({
66
+ hash: txHash,
67
+ onReplaced: (replacement) => {
68
+ if (replacement.reason === 'cancelled') {
69
+ onCancelled();
70
+ throw Error('Transaction cancelled');
71
+ }
72
+ onReplaced(replacement.transaction.hash);
73
+ }
74
+ });
75
+ return receipt;
76
+ },
77
+ switchChain: (chainId) => {
78
+ try {
79
+ return window.ethereum.request({
80
+ method: 'wallet_switchEthereumChain',
81
+ params: [{ chainId: hexValue(chainId) }]
82
+ });
83
+ }
84
+ catch (error) {
85
+ console.error('Failed to switch chain:', error);
86
+ }
87
+ }
88
+ };
89
+ };
90
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './adapter.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}