如何创建和部署starknet账户

首先确保 Starkli 和 Scarb 安装正确

下载、安装并设置 Argent X 或 Braavos 钱包

通过 Argent X 或 Braavos 安装 Starknet 钱包。有关特定钱包的信息(包括安装说明),请参阅该钱包的网站。

创建帐户

智能钱包由两部分组成:

  • 签名者:可以签署交易的智能合约。

  • 帐户描述符:一个 json 文件,其中包含有关智能钱包的信息,例如其地址和公钥。

创建智能钱包并使用 ETH 为其提供资金后,您可以将其部署到 Starknet。出于演示目的,本页面使用 Starknet 的测试网。

对于测试网交易,您可以使用Starknet Goerli Faucet 为您的钱包充值。

创建签名者

签名者是可以签署交易的智能合约。它是 Starknet 帐户的重要组成部分。要创建签名者,您将需要智能钱包的私钥(可以从中派生公钥)。

Starkli 能够创建一个密钥库文件,该文件可以安全地存储每个智能钱包的私钥和密码。密钥库文件中的帐户可用于使用 Starkli 签署交易。这种方法的主要优点是它可以防止将私钥以纯文本形式存储在计算机上。相反,密码用于在所选位置创建加密文件。

通常,密钥库文件存储在 Starkli CLI 的默认位置。

创建密钥库文件

以下命令在默认位置为智能钱包创建密钥库文件~/.starkli-wallets/deployer

创建一个新目录:

mkdir ~/.starkli-wallets/deployer

在目录中创建密钥库文件:

starkli signer keystore from-key ~/.starkli-wallets/deployer/keystore.json

Enter private key:
Enter password:
Created new encrypted keystore file: /home/parallels/.starkli-wallets/deployer/keystore.json
Public key: 0x0550

在私钥提示中,粘贴您的智能钱包的私钥。

在密码提示中,输入您选择的密码。

您将需要此密码才能使用 Starkli 签署交易。

从您的钱包中导出私钥

接下来从您的 Argent X 或 Braavos 钱包中导出私钥:

银色X

导航至:Settings部分 → 选择您的帐户 → Export Private Key

布拉沃斯

导航至:Settings部分 → Privacy and Security→ Export Private Key

虽然知道智能钱包的私钥对于签署交易是必要的,但这还不够。我们还需要告知 Starkli 关于 Argent X 或 Braavos 创建的智能钱包所采用的签名机制。

创建帐户描述符

Starkli 提供了一个命令,通过提供其链上地址来从智能钱包收集所有必需的信息。使用此数据,CLI 生成一个可用于签署交易的 json 文件:

starkli account fetch --help
Fetch account config from an already deployed account contract

fetch命令支持 Argent X 和 Braavos 智能钱包。确保您的钱包地址已部署并输入以下命令来创建并保存帐户描述符文件:

starkli account fetch <SMART_WALLET_ADDRESS> --output ~/.starkli-wallets/deployer/account.json

以下命令显示帐户描述符的详细信息:

cat ~/.starkli-wallets/deployer/account.json

帐户描述符应具有以下结构:

{
  "version": 1,
  "variant": {
        "type": "argent",
        "version": 1,
        "implementation": "<ARGENT_CLASS_HASH>",
        "signer": "<SMART_WALLET_PUBLIC_KEY>",
        "guardian": "0x0"
  },
    "deployment": {
        "status": "deployed",
        "class_hash": "<SMART_WALLET_CLASS_HASH>",
        "address": "<SMART_WALLET_ADDRESS>"
  }
}

如果您使用 Braavos 钱包,则类型定义为,braavos并且帐户描述符结构可能略有不同。

部署账户

拥有帐户文件后,您可以使用 starkliaccount deploy命令部署帐户合约。

该命令发送一笔DEPLOY_ACCOUNT交易,该交易要求账户存入一些 ETH 以支付交易费用。

要部署您的帐户,请运行以下命令:

starkli account deploy ~/.starkli-wallets/deployer/account.json

该命令需要签名者。如果运行此命令后收到错误,请确保STARKNET_KEYSTORE按照这些说明设置了环境变量。

运行时,命令显示:

  • 将部署合约的地址。

  • 用户在继续操作之前向帐户注资的说明。

以下是命令输出示例:

The estimated account deployment fee is 0.000011483579723913 ETH. However, to avoid failure, fund at least:
    0.000017225369585869 ETH
to the following address:
    0x01cf4d57ba01109f018dec3ea079a38fc08b789e03de4df937ddb9e8a0ff853a
Press [ENTER] once youve funded the address.

您现在已成功将新帐户部署到 Starknet。