Como usar Account Abstraction
O que é Account Abstraction?
Account Abstraction é uma tecnologia blockchain que permite aos usuários usar contratos inteligentes como suas contas, tornando-os totalmente programáveis.
Ela visa tornar as contas de usuários mais flexíveis e funcionais, aprimorando assim a experiência do usuário.
O que isso significa para os desenvolvedores da Chiliz Chain?
Implementando AA, os desenvolvedores podem melhorar a experiência do usuário de seu projeto: interações mais simples com a Chiliz Chain significam um aplicativo mais amigável ao usuário.
Como fazer isso usando o Biconomy?
Biconomy fornece um SDK completo de Account Abstraction, que fornece acesso a Smart Accounts: https://docs.biconomy.io/account
De acordo com o próprio Biconomy, existem 4 maneiras de aproveitar sua pilha de AA na Chiliz Chain:
Transações sem gás
Transações em lote
Carteiras de contratos inteligentes (incluindo login social)
Módulos incluindo chaves de sessão, validador multichain, recuperação de conta e muito mais!
Biconomy tem uma página de início rápido útil: https://docs.biconomy.io/quickstart
O código de exemplo usa a rede Polygon Mumbai, e você pode adaptá-lo para Chiliz, assim:
import {
Hex,
createWalletClient,
encodeFunctionData,
http,
parseAbi,
zeroAddress,
} from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { ChainId } from '@biconomy/core-types'
import { createSmartAccountClient } from "@biconomy/account";
const bundlerUrl =
"https://bundler.biconomy.io/api/v2/80001/nJPK7B3ru.dd7f7861-190d-41bd-af80-6877f74b8f44"; // Found at https://dashboard.biconomy.io
export const createAccountAndMintNft = async () => {
// ----- 1. Generate EOA from private key
const account = privateKeyToAccount("0x" + "PRIVATE_KEY");
const client = createWalletClient({
account,
chainId: ChainId.CHILIZ_TESTNET, // or ChainId.CHILIZ_MAINNET,
transport: http(),
});
const eoa = client.account.address;
console.log(`EOA address: ${eoa}`);
// ------ 2. Create biconomy smart account instance
const smartAccount = await createSmartAccountClient({
signer: client,
bundlerUrl,
});
const saAddress = await smartAccount.getAccountAddress();
console.log("SA Address", saAddress);
};
createAccountAndMintNft();
Lembre-se dos IDs da Chiliz Chain:
CHILIZ_MAINNET = 88888
CHILIZ_TESTNET = 88882
Além disso, ao trabalhar com o Biconomy, note que a Chiliz tem seu próprio endereço de entrypoint, tanto para mainnet quanto para testnet: 0x00000061FEfce24A79343c27127435286BB7A4E1
Isso é importante ao usar o Biconomy Bundler ou Paymaster.
// CC2 has its own entrypoint address
const CHILIZ_BUNDLER_ENTRYPOINT_ADDRESS='0x00000061FEfce24A79343c27127435286BB7A4E1'
const bundler = new Bundler({
bundlerUrl: `https://bundler.biconomy.io/api/v2/${ChainId.CHILIZ_TESTNET}/nJPK7B3ru.dd7f7861-190d-41bd-af80-6877f74b8f44`,
chainId: ChainId.CHILIZ_TESTNET,
entryPointAddress: CHILIZ_BUNDLER_ENTRYPOINT_ADDRESS,
})
Last updated
Was this helpful?