diff --git a/apps/web/src/composables/ethers.ts b/apps/web/src/composables/ethers.ts index 06079105a..22e69347a 100644 --- a/apps/web/src/composables/ethers.ts +++ b/apps/web/src/composables/ethers.ts @@ -1,5 +1,5 @@ import { ethers } from 'ethers' -import { BrowserProviders, EthersProvider, MessageInit, TransactionInit } from '@/interfaces/index' +import { BrowserProviders, EthersProvider, MessageRequest, TransactionRequest } from '@/interfaces/index' import { GasEstimate, LoginCredentials, ProviderString } from '@casimir/types' import useAuth from '@/composables/auth' import useEnvironment from '@/composables/environment' @@ -180,7 +180,7 @@ export default function useEthers() { } async function sendEthersTransaction( - { from, to, value, providerString }: TransactionInit + { from, to, value, providerString }: TransactionRequest ) { const signer = getEthersBrowserSigner(providerString) as ethers.Signer const weiAmount = ethers.utils.parseEther(value) @@ -200,8 +200,8 @@ export default function useEthers() { return await signer.sendTransaction(tx) } - async function signEthersMessage(messageInit: MessageInit): Promise { - const { providerString, message } = messageInit + async function signEthersMessage(messageRequest: MessageRequest): Promise { + const { providerString, message } = messageRequest const browserProvider = getBrowserProvider(providerString) const web3Provider: ethers.providers.Web3Provider = new ethers.providers.Web3Provider(browserProvider as EthersProvider) diff --git a/apps/web/src/composables/ledger.ts b/apps/web/src/composables/ledger.ts index 73113d8c3..b1f32f61a 100644 --- a/apps/web/src/composables/ledger.ts +++ b/apps/web/src/composables/ledger.ts @@ -1,6 +1,6 @@ import { BitcoinLedgerSigner, EthersLedgerSigner } from '@casimir/wallets' import { ethers } from 'ethers' -import { MessageInit, TransactionInit } from '@/interfaces/index' +import { MessageRequest, TransactionRequest } from '@/interfaces/index' import { CryptoAddress, LoginCredentials } from '@casimir/types' import useEnvironment from '@/composables/environment' import useEthers from '@/composables/ethers' @@ -92,7 +92,7 @@ export default function useLedger() { } } - async function sendLedgerTransaction({ from, to, value, currency }: TransactionInit) { + async function sendLedgerTransaction({ from, to, value, currency }: TransactionRequest) { if (currency === 'ETH') { const signer = getEthersLedgerSigner() const provider = signer.provider as ethers.providers.Provider @@ -115,13 +115,13 @@ export default function useLedger() { } } - async function signLedgerMessage(messageInit: MessageInit): Promise { - if (messageInit.currency === 'ETH') { - const { message } = messageInit + async function signLedgerMessage(messageRequest: MessageRequest): Promise { + if (messageRequest.currency === 'ETH') { + const { message } = messageRequest const signer = getEthersLedgerSigner() return await signer.signMessage(message) - } else if ( messageInit.currency === 'BTC') { - const { message } = messageInit + } else if ( messageRequest.currency === 'BTC') { + const { message } = messageRequest const signer = getBitcoinLedgerSigner() return await signer.signMessage(message) } else { diff --git a/apps/web/src/composables/solana.ts b/apps/web/src/composables/solana.ts index 696b401ad..bf2b2fb6e 100644 --- a/apps/web/src/composables/solana.ts +++ b/apps/web/src/composables/solana.ts @@ -5,7 +5,7 @@ import { SystemProgram, PublicKey } from '@solana/web3.js' -import { BrowserProviders, MessageInit, TransactionInit } from '@/interfaces/index' +import { BrowserProviders, MessageRequest, TransactionRequest } from '@/interfaces/index' import { ProviderString } from '@casimir/types' export default function useSolana() { @@ -27,7 +27,7 @@ export default function useSolana() { return address } - async function sendSolanaTransaction({ from, to, value, providerString }: TransactionInit) { + async function sendSolanaTransaction({ from, to, value, providerString }: TransactionRequest) { const network = 'https://api.devnet.solana.com' const connection = new Connection(network) const { blockhash } = await connection.getLatestBlockhash('finalized') @@ -49,9 +49,9 @@ export default function useSolana() { return signatureStatus } - async function signSolanaMessage(messageInit: MessageInit): Promise { - const provider = await availableProviders.value[messageInit.providerString as keyof BrowserProviders] - const encodedMessage = new TextEncoder().encode(messageInit.message) + async function signSolanaMessage(messageRequest: MessageRequest): Promise { + const provider = await availableProviders.value[messageRequest.providerString as keyof BrowserProviders] + const encodedMessage = new TextEncoder().encode(messageRequest.message) const signedMessage = await provider.signMessage(encodedMessage, 'utf8') return signedMessage } diff --git a/apps/web/src/composables/trezor.ts b/apps/web/src/composables/trezor.ts index e42151251..c6379c647 100644 --- a/apps/web/src/composables/trezor.ts +++ b/apps/web/src/composables/trezor.ts @@ -3,7 +3,7 @@ import useAuth from '@/composables/auth' import useEthers from '@/composables/ethers' import useEnvironment from '@/composables/environment' import { ethers } from 'ethers' -import { MessageInit, TransactionInit } from '@/interfaces/index' +import { MessageRequest, TransactionRequest } from '@/interfaces/index' import { LoginCredentials } from '@casimir/types' const { createSiweMessage, signInWithEthereum } = useAuth() @@ -90,7 +90,7 @@ export default function useTrezor() { } } - async function sendTrezorTransaction({ from, to, value }: TransactionInit) { + async function sendTrezorTransaction({ from, to, value }: TransactionRequest) { const signer = getEthersTrezorSigner() const provider = signer.provider as ethers.providers.Provider const { chainId } = await provider.getNetwork() @@ -115,8 +115,8 @@ export default function useTrezor() { return await signer.sendTransaction(unsignedTransaction as ethers.utils.Deferrable) } - async function signTrezorMessage(messageInit: MessageInit): Promise { - const { message } = messageInit + async function signTrezorMessage(messageRequest: MessageRequest): Promise { + const { message } = messageRequest const signer = getEthersTrezorSigner() return await signer.signMessage(message) } diff --git a/apps/web/src/composables/wallet.ts b/apps/web/src/composables/wallet.ts index 44ab187a9..7f615a9a0 100644 --- a/apps/web/src/composables/wallet.ts +++ b/apps/web/src/composables/wallet.ts @@ -6,7 +6,7 @@ import useTrezor from '@/composables/trezor' import useUsers from '@/composables/users' import useWalletConnect from '@/composables/walletConnect' import { Account, CryptoAddress, Currency, ProviderString, LoginCredentials, ExistingUserCheck} from '@casimir/types' -import { MessageInit, TransactionInit } from '@/interfaces/index' +import { MessageRequest, TransactionRequest } from '@/interfaces/index' import * as Session from 'supertokens-web-js/recipe/session' import router from './router' @@ -246,7 +246,7 @@ export default function useWallet() { } async function sendTransaction() { - const txInit: TransactionInit = { + const txRequest: TransactionRequest = { from: selectedAddress.value, to: toAddress.value, value: amount.value, @@ -255,18 +255,18 @@ export default function useWallet() { } try { - if (txInit.providerString === 'WalletConnect') { - await sendWalletConnectTransaction(txInit) - } else if (ethersProviderList.includes(txInit.providerString)) { - await sendEthersTransaction(txInit) - } else if (solanaProviderList.includes(txInit.providerString)) { - await sendSolanaTransaction(txInit) + if (txRequest.providerString === 'WalletConnect') { + await sendWalletConnectTransaction(txRequest) + } else if (ethersProviderList.includes(txRequest.providerString)) { + await sendEthersTransaction(txRequest) + } else if (solanaProviderList.includes(txRequest.providerString)) { + await sendSolanaTransaction(txRequest) } else if (selectedProvider.value === 'IoPay') { - // await sendIoPayTransaction(txInit) + // await sendIoPayTransaction(txRequest) } else if (selectedProvider.value === 'Ledger') { - await sendLedgerTransaction(txInit) + await sendLedgerTransaction(txRequest) } else if (selectedProvider.value === 'Trezor') { - await sendTrezorTransaction(txInit) + await sendTrezorTransaction(txRequest) } else { throw new Error('Provider selected not yet supported') } @@ -394,24 +394,24 @@ export default function useWallet() { } async function signMessage(message: string) { - const messageInit: MessageInit = { + const messageRequest: MessageRequest = { message, providerString: selectedProvider.value, currency: selectedCurrency.value || '' } try { - if (messageInit.providerString === 'WalletConnect') { - await signWalletConnectMessage(messageInit) - } else if (ethersProviderList.includes(messageInit.providerString)) { - await signEthersMessage(messageInit) - } else if (solanaProviderList.includes(messageInit.providerString)) { - await signSolanaMessage(messageInit) - } else if (messageInit.providerString === 'IoPay') { - // await signIoPayMessage(messageInit) - } else if (messageInit.providerString === 'Ledger') { - await signLedgerMessage(messageInit) - } else if (messageInit.providerString === 'Trezor') { - await signTrezorMessage(messageInit) + if (messageRequest.providerString === 'WalletConnect') { + await signWalletConnectMessage(messageRequest) + } else if (ethersProviderList.includes(messageRequest.providerString)) { + await signEthersMessage(messageRequest) + } else if (solanaProviderList.includes(messageRequest.providerString)) { + await signSolanaMessage(messageRequest) + } else if (messageRequest.providerString === 'IoPay') { + // await signIoPayMessage(messageRequest) + } else if (messageRequest.providerString === 'Ledger') { + await signLedgerMessage(messageRequest) + } else if (messageRequest.providerString === 'Trezor') { + await signTrezorMessage(messageRequest) } else { console.log('signMessage not yet supported for this wallet provider') } diff --git a/apps/web/src/composables/walletConnect.ts b/apps/web/src/composables/walletConnect.ts index 13ae1ea88..cb2c758ec 100644 --- a/apps/web/src/composables/walletConnect.ts +++ b/apps/web/src/composables/walletConnect.ts @@ -1,6 +1,6 @@ import { ethers } from 'ethers' import WalletConnectProvider from '@walletconnect/web3-provider' -import { MessageInit, TransactionInit } from '@/interfaces/index' +import { MessageRequest, TransactionRequest } from '@/interfaces/index' import useAuth from '@/composables/auth' import useEnvironment from '@/composables/environment' import useEthers from '@/composables/ethers' @@ -59,13 +59,13 @@ export default function useWalletConnect() { } } - async function signWalletConnectMessage(messageInit: MessageInit) { + async function signWalletConnectMessage(messageRequest: MessageRequest) { const signer = await getEthersWalletConnectSigner() - return await signer.signMessage(messageInit.message) + return await signer.signMessage(messageRequest.message) } async function sendWalletConnectTransaction( - { from, to, value }: TransactionInit + { from, to, value }: TransactionRequest ): Promise { const signer = await getEthersWalletConnectSigner() const provider = signer.provider as ethers.providers.Provider diff --git a/apps/web/src/interfaces/MessageInit.ts b/apps/web/src/interfaces/MessageRequest.ts similarity index 80% rename from apps/web/src/interfaces/MessageInit.ts rename to apps/web/src/interfaces/MessageRequest.ts index ace0fda3b..32140c216 100644 --- a/apps/web/src/interfaces/MessageInit.ts +++ b/apps/web/src/interfaces/MessageRequest.ts @@ -1,6 +1,6 @@ import { Currency, ProviderString } from '@casimir/types' -export interface MessageInit { +export interface MessageRequest { message: string; providerString: ProviderString; currency?: Currency diff --git a/apps/web/src/interfaces/TransactionInit.ts b/apps/web/src/interfaces/TransactionRequest.ts similarity index 84% rename from apps/web/src/interfaces/TransactionInit.ts rename to apps/web/src/interfaces/TransactionRequest.ts index 84cd916f0..0b1c22583 100644 --- a/apps/web/src/interfaces/TransactionInit.ts +++ b/apps/web/src/interfaces/TransactionRequest.ts @@ -2,7 +2,7 @@ import ethers from 'ethers' import { ProviderString } from '@casimir/types' import { Currency } from '@casimir/types' -export interface TransactionInit extends ethers.providers.TransactionRequest { +export interface TransactionRequest extends ethers.providers.TransactionRequest { /** The transaction sender's address */ from: string; /** The transaction receiver's address */ diff --git a/apps/web/src/interfaces/index.ts b/apps/web/src/interfaces/index.ts index 5c4e0b664..3e10d19bd 100644 --- a/apps/web/src/interfaces/index.ts +++ b/apps/web/src/interfaces/index.ts @@ -1,15 +1,15 @@ import { BrowserProviders } from './BrowserProviders' import { EthersProvider } from './EthersProvider' -import { MessageInit } from './MessageInit' +import { MessageRequest } from './MessageRequest' import { ReadyOrStakeString } from './ReadyOrStakeString' -import { TransactionInit } from './TransactionInit' +import { TransactionRequest } from './TransactionRequest' import { User } from './User' export type { BrowserProviders, EthersProvider, - MessageInit, + MessageRequest, ReadyOrStakeString, - TransactionInit, + TransactionRequest, User, } \ No newline at end of file diff --git a/common/wallets/src/interfaces/TransactionInit.ts b/common/wallets/src/interfaces/TransactionInit.ts index 5e811ef18..fa0df2506 100644 --- a/common/wallets/src/interfaces/TransactionInit.ts +++ b/common/wallets/src/interfaces/TransactionInit.ts @@ -1,6 +1,6 @@ import ethers from 'ethers' -export interface TransactionInit extends ethers.providers.TransactionRequest { +export interface TransactionRequest extends ethers.providers.TransactionRequest { /** The transaction sender's address */ from: string; /** The transaction receiver's address */ diff --git a/common/wallets/src/providers/ledger.ts b/common/wallets/src/providers/ledger.ts index 8e7a97eb8..374518722 100644 --- a/common/wallets/src/providers/ledger.ts +++ b/common/wallets/src/providers/ledger.ts @@ -4,7 +4,7 @@ import Eth, { ledgerService } from '@ledgerhq/hw-app-eth' import Transport from '@ledgerhq/hw-transport' import { TransportSpeculosHTTP } from '@casimir/speculos' import TransportWebUSB from '@ledgerhq/hw-transport-webusb' -import { TransactionInit } from '../interfaces/TransactionInit' +import { TransactionRequest } from '../interfaces/TransactionRequest' import { CryptoAddress } from '@casimir/types' const transports = { @@ -102,7 +102,7 @@ export class BitcoinLedgerSigner { // async signTransaction(path: string, transaction: any) { // } - async sendTransaction({ from, to, value }: TransactionInit): Promise { + async sendTransaction({ from, to, value }: TransactionRequest): Promise { // Build the transaction object using splitTransaction to then pass into getTrustedInput // Create a transaction hex string const transactionHex = 'f85f49b51366f7150d2adea6544bc256743707a38e2bdfbf839349ba1ff2875c'