更改恢复地址
账户可以配置一个恢复地址,以防止托管地址丢失。恢复地址将更改账户的托管地址。
要求
- 一个在 OP 主网上拥有 FID 的 ETH 钱包,并准备一些 ETH 用于支付 gas 费用。
- OP 主网的 ETH RPC URL(例如通过 Alchemy、Infura 或 QuickNode 获取)。
更改地址
调用 Id Registry 合约中的 changeRecovery
函数。
ts
import { walletClient, account, IdContract } from './clients.ts';
const newRecoveryAddress = '0x...';
const { request: transferRequest } = await walletClient.simulateContract({
...IdContract,
functionName: 'changeRecovery',
args: [newRecoveryAddress], // 新的恢复地址
});
await walletClient.writeContract(transferRequest);
ts
import {
ID_REGISTRY_EIP_712_TYPES,
idRegistryABI,
ID_GATEWAY_ADDRESS,
} from '@farcaster/hub-web';
import { walletClient, account } from './clients.ts';
const IdContract = {
abi: idRegistryABI,
address: ID_GATEWAY_ADDRESS,
chain: optimism,
};
import { createWalletClient, createPublicClient, custom, http } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { optimism } from 'viem/chains';
export const publicClient = createPublicClient({
chain: optimism,
transport: http(),
});
export const walletClient = createWalletClient({
chain: optimism,
transport: custom(window.ethereum),
});
// JSON-RPC 账户
export const [account] = await walletClient.getAddresses();
// 本地账户
export const account = privateKeyToAccount('0x...');
更多详情请参阅 Id Registry 部分。