Cách sử dụng Account Abstraction

Account Abstraction là gì?

Account Abstraction là một công nghệ blockchain cho phép người dùng sử dụng các hợp đồng thông minh như tài khoản của họ, làm cho chúng hoàn toàn có thể lập trình.

Nó nhằm làm cho các tài khoản người dùng linh hoạt và chức năng hơn, do đó cải thiện trải nghiệm người dùng.

Điều này có ý nghĩa gì đối với các nhà phát triển Chiliz Chain?

Bằng cách triển khai Account Abstraction, các nhà phát triển có thể nâng cao trải nghiệm người dùng của dự án của họ: tương tác với Chiliz Chain đơn giản hơn có nghĩa là ứng dụng thân thiện với người dùng hơn.

Cách thực hiện bằng cách sử dụng Biconomy?

Biconomy cung cấp một SDK Account Abstraction toàn diện, cung cấp quyền truy cập vào Tài khoản Thông minh: https://docs.biconomy.io/account

Theo Biconomy, có 4 cách để tận dụng stack Account Abstraction của họ trên Chiliz Chain:

  • Giao dịch không phí gas

  • Giao dịch gộp

  • Ví hợp đồng thông minh (bao gồm đăng nhập xã hội)

  • Các mô-đun bao gồm khóa phiên, trình xác thực đa chuỗi, khôi phục tài khoản và nhiều hơn nữa!

Biconomy có một trang Quickstart hữu ích: https://docs.biconomy.io/quickstart

Mã mẫu sử dụng mạng Polygon Mumbai, và bạn có thể điều chỉnh nó cho Chiliz, như sau:

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();

Hãy nhớ các ID của Chiliz Chain:

  • CHILIZ_MAINNET = 88888

  • CHILIZ_TESTNET = 88882

Ngoài ra, khi làm việc với Biconomy, lưu ý rằng Chiliz có địa chỉ entrypoint riêng cho cả mainnet và testnet: 0x00000061FEfce24A79343c27127435286BB7A4E1

Điều này quan trọng khi sử dụng Biconomy Bundler hoặc 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