wallet-connect-web-examples/dapps/web3modal/svelte/src/partials/Transaction.svelte
Glitch d9c17b0dd9
Feat/add svelte (#447)
* add sveltekit example

* fix deps

* remove warning

* Update README.md
2024-02-02 16:19:01 -03:00

56 lines
1.3 KiB
Svelte

<script lang="ts">
import { account, wagmiConfig } from '$lib/web3modal'
import toast from 'svelte-french-toast'
import Button from '../components/Button.svelte'
import Card from '../components/Card.svelte'
import { sendTransaction } from '@wagmi/core'
let label: string = 'Send Transaction'
let hash: string
async function handleWrite() {
if (!$account.address) throw Error('Wallet disconnected')
label = 'Processing...'
try {
const _hash = await sendTransaction(wagmiConfig, {
to: $account.address,
value: 0n,
data: '0x48656c6c6f2066726f6d2057616c6c6574436f6e6e656374',
})
//@ts-expect-error Wagmi Type bug
if (_hash !== 'null') {
hash = 'Hash: ' + _hash
toast.success('Message signed successfully')
} else {
toast.error('The signature was rejected')
hash = '_ eth_sendTransaction'
}
} catch (error) {
toast.error((error as Error).message)
hash = '_ eth_sendTransaction'
} finally {
label = 'Send Transaction'
}
}
</script>
<Card>
<div>
{hash ?? '_ eth_sendTransaction'}
<Button on:click={handleWrite}>{label}</Button>
</div>
</Card>
<style>
div {
width: 230px;
word-wrap: break-word;
display: flex;
flex-direction: column;
justify-content: space-between;
height: 100%;
}
</style>