Skip to content

Commit

Permalink
Replace TransactionInit and MessageInit with TransactionRequest & Mes…
Browse files Browse the repository at this point in the history
…sageRequest
  • Loading branch information
ccali11 committed May 22, 2023
1 parent f5d7231 commit d76a737
Show file tree
Hide file tree
Showing 11 changed files with 57 additions and 57 deletions.
8 changes: 4 additions & 4 deletions apps/web/src/composables/ethers.ts
Original file line number Diff line number Diff line change
@@ -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'
Expand Down Expand Up @@ -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)
Expand All @@ -200,8 +200,8 @@ export default function useEthers() {
return await signer.sendTransaction(tx)
}

async function signEthersMessage(messageInit: MessageInit): Promise<string> {
const { providerString, message } = messageInit
async function signEthersMessage(messageRequest: MessageRequest): Promise<string> {
const { providerString, message } = messageRequest
const browserProvider = getBrowserProvider(providerString)
const web3Provider: ethers.providers.Web3Provider =
new ethers.providers.Web3Provider(browserProvider as EthersProvider)
Expand Down
14 changes: 7 additions & 7 deletions apps/web/src/composables/ledger.ts
Original file line number Diff line number Diff line change
@@ -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'
Expand Down Expand Up @@ -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
Expand All @@ -115,13 +115,13 @@ export default function useLedger() {
}
}

async function signLedgerMessage(messageInit: MessageInit): Promise<string> {
if (messageInit.currency === 'ETH') {
const { message } = messageInit
async function signLedgerMessage(messageRequest: MessageRequest): Promise<string> {
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 {
Expand Down
10 changes: 5 additions & 5 deletions apps/web/src/composables/solana.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand All @@ -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')
Expand All @@ -49,9 +49,9 @@ export default function useSolana() {
return signatureStatus
}

async function signSolanaMessage(messageInit: MessageInit): Promise<string> {
const provider = await availableProviders.value[messageInit.providerString as keyof BrowserProviders]
const encodedMessage = new TextEncoder().encode(messageInit.message)
async function signSolanaMessage(messageRequest: MessageRequest): Promise<string> {
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
}
Expand Down
8 changes: 4 additions & 4 deletions apps/web/src/composables/trezor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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()
Expand All @@ -115,8 +115,8 @@ export default function useTrezor() {
return await signer.sendTransaction(unsignedTransaction as ethers.utils.Deferrable<ethers.providers.TransactionRequest>)
}

async function signTrezorMessage(messageInit: MessageInit): Promise<string> {
const { message } = messageInit
async function signTrezorMessage(messageRequest: MessageRequest): Promise<string> {
const { message } = messageRequest
const signer = getEthersTrezorSigner()
return await signer.signMessage(message)
}
Expand Down
48 changes: 24 additions & 24 deletions apps/web/src/composables/wallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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'

Expand Down Expand Up @@ -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,
Expand All @@ -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')
}
Expand Down Expand Up @@ -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')
}
Expand Down
8 changes: 4 additions & 4 deletions apps/web/src/composables/walletConnect.ts
Original file line number Diff line number Diff line change
@@ -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'
Expand Down Expand Up @@ -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<ethers.providers.TransactionResponse> {
const signer = await getEthersWalletConnectSigner()
const provider = signer.provider as ethers.providers.Provider
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Currency, ProviderString } from '@casimir/types'

export interface MessageInit {
export interface MessageRequest {
message: string;
providerString: ProviderString;
currency?: Currency
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
8 changes: 4 additions & 4 deletions apps/web/src/interfaces/index.ts
Original file line number Diff line number Diff line change
@@ -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,
}
2 changes: 1 addition & 1 deletion common/wallets/src/interfaces/TransactionInit.ts
Original file line number Diff line number Diff line change
@@ -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 */
Expand Down
4 changes: 2 additions & 2 deletions common/wallets/src/providers/ledger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down Expand Up @@ -102,7 +102,7 @@ export class BitcoinLedgerSigner {
// async signTransaction(path: string, transaction: any) {
// }

async sendTransaction({ from, to, value }: TransactionInit): Promise<string> {
async sendTransaction({ from, to, value }: TransactionRequest): Promise<string> {
// Build the transaction object using splitTransaction to then pass into getTrustedInput
// Create a transaction hex string
const transactionHex = 'f85f49b51366f7150d2adea6544bc256743707a38e2bdfbf839349ba1ff2875c'
Expand Down

0 comments on commit d76a737

Please sign in to comment.