signTransferWithAuthorization
signTransferWithAuthorization(
account,domain,message):Promise<SignedAuthorization<TransferWithAuthorizationMessage>>
Defined in: src/tokens/eip3009.ts:192
Signs an EIP-3009 TransferWithAuthorization message.
The signing account MUST equal message.from — EIP-3009 rejects signatures
from anyone else (the on-chain check is pure ecrecover against from).
Parameters
account
Account
domain
message
TransferWithAuthorizationMessage
Returns
Promise<SignedAuthorization<TransferWithAuthorizationMessage>>
Example
import { privateKeyToAccount } from "viem/accounts";import { authorizationDeadlineFromNow, generateAuthorizationNonce, JPYC_EIP712_DOMAIN_HINT, polygon, signTransferWithAuthorization,} from "kawasekit";
const account = privateKeyToAccount("0x...");const signed = await signTransferWithAuthorization(account, { ...JPYC_EIP712_DOMAIN_HINT, chainId: polygon.id, verifyingContract: "0xE7C3D8C9a439feDe00D2600032D5dB0Be71C3c29",}, { from: account.address, to: "0xBeef...", value: 100n * 10n ** 18n, validAfter: 0n, validBefore: authorizationDeadlineFromNow(300), nonce: generateAuthorizationNonce(),});// → submit (v, r, s) to token.transferWithAuthorization(...)