Signature
Supports message signing, EIP712 signature, and provider-level requests.
Sign Message
Function to generate a signature for a plain message.
import { useAppKitAccount, ConnectionController } from '@to-nexus/sdk/react'
function signMessage() {
const account = useAppKitAccount()
if (!account?.isConnected) return
ConnectionController.signMessage({
message: `Hello, world! ${Date.now()}`
})
}
Sign EIP712
Function to generate a signature following the EIP-712 standard.
import { useAppKitAccount, ConnectionController, AccountController } from '@to-nexus/sdk/react'
function signEIP712() {
const account = useAppKitAccount()
if (!account?.isConnected) return
const PERMIT_CONTRACT_ADDRESS = '0xC95DEdAD3950A81B8AEF6fa4D28211bA37B4Ae21'
const FROM_ADDRESS = AccountController.state.address as `0x${string}`
const PERMIT_SPENDER_ADDRESS = '0x920A31f0E48739C3FbB790D992b0690f7F5C42ea'
const PERMIT_VALUE = 1000000000000000000n
ConnectionController.signEIP712({
contractAddress: PERMIT_CONTRACT_ADDRESS,
fromAddress: FROM_ADDRESS,
spenderAddress: PERMIT_SPENDER_ADDRESS,
value: PERMIT_VALUE,
abi: PERMIT_ABI
})
}
Verify Signature
Functionality to verify a signed message.
import { ConnectionController } from '@to-nexus/sdk/react'
function verifyMessage(message: string, signature: string, address: string) {
return ConnectionController.verifyMessage({
message,
signature,
address
})
}
Provider Request
Function to send direct requests to the wallet provider.
import { useAppKitAccount, useAppKitProvider } from '@to-nexus/sdk/react'
function providerRequest() {
const account = useAppKitAccount()
const { walletProvider } = useAppKitProvider<UniversalProvider>('eip155')
async function requestNetworkInfo() {
if (!account?.isConnected) return
const [chainId, blockNumber, gasPrice] = await Promise.all([
walletProvider?.request({ method: 'eth_chainId' }),
walletProvider?.request({ method: 'eth_blockNumber' }),
walletProvider?.request({ method: 'eth_gasPrice' })
])
return {
chainId,
blockNumber,
gasPrice
}
}
return requestNetworkInfo()
}
Cancel Signature
Functionality to cancel a pending signature request.
import { ConnectionController } from '@to-nexus/sdk/react'
function cancelSignature() {
let signatureRequest: any = null
async function sign() {
signatureRequest = await ConnectionController.signMessage({
message: 'Hello, world!'
})
}
async function cancel() {
if (signatureRequest) {
await signatureRequest.cancel()
signatureRequest = null
}
}
return {
sign,
cancel
}
}
Updated 21 days ago