#密钥对 #多重签名 #交易 #公钥 #操作 #执行 #账户

app squads-multisig-cli

与Squads v4程序交互的命令行界面

3个版本

0.1.3 2024年2月27日
0.1.2 2024年2月26日
0.1.0 2024年1月27日

#1767 in 魔法豆

Download history 11/week @ 2024-03-08 4/week @ 2024-03-15 29/week @ 2024-03-22 33/week @ 2024-03-29 2/week @ 2024-04-05

69 每月下载量

MIT/Apache

74KB
1.5K SLoC

Squads V4 CLI

以下是通过CLI与Squads V4程序交互的可用命令概述。

概述

  1. 安装
  2. 支持的钱包
  3. 命令

1. 安装

您可以使用Cargo安装CLI。为此,需要安装Rust。您可以在这里找到安装步骤。

现在,安装Squads CLI。

cargo install squads-multisig-cli

2. 支持的钱包

Squads CLI与Solana CLI具有完全相同的钱包支持,这意味着它支持文件系统钱包以及Ledger硬件钱包。

文件系统钱包

您可以通过在命令中使用它作为“keypair”参数来轻松使用您的本地文件系统钱包。

squads-multisig-cli example-command --keypair /path/to/keypair.json

这指定了您要用于在CLI交易中签名的密钥对路径。

Ledger支持

要使用Ledger与Squads CLI,只需在“keypair”参数中指定Ledger设备URL。

squads-multisig-cli example-command --keypair usb://ledger

这将使用Ledger的默认推导路径。

squads-multisig-cli example-command --keypair usb://ledger/BsNsvfXqQTtJnagwFWdBS7FBXgnsK8VZ5CmuznN85swK?key=0/0

这指定了一个自定义推导路径。您可以在这里了解更多信息。

3. 命令

配置交易创建

描述

为特定操作创建新的配置提案交易。

语法

config_transaction_create --rpc_url <RPC_URL> --program_id <PROGRAM_ID> --keypair <KEYPAIR_PATH> --multisig_pubkey <MULTISIG_PUBLIC_KEY> --action <ACTION> [--memo <MEMO>]

参数

  • --rpc_url <RPC_URL>: (可选) Solana RPC端点的URL。如果未指定,则默认为主网。
  • --program_id <PROGRAM_ID>: (可选) 多重签名程序的ID。未指定时默认为标准ID。
  • --keypair <KEYPAIR_PATH>: 你的密钥对文件的路径。
  • --multisig_pubkey <MULTISIG_PUBLIC_KEY>: 多重签名账户的公钥。
  • --action <ACTION>: 要执行的操作。格式取决于操作类型。
  • --memo <MEMO>: (可选) 交易备忘。

示例

  1. 添加新成员

    config_transaction_create --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --action "AddMember <NEW_MEMBER_PUBLIC_KEY> <PERMISSIONS>"
    

    将新成员添加到具有指定权限的多重签名配置中。权限:1:仅启动 7:所有权限(启动、批准、执行)

  2. 移除成员

    config_transaction_create --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --action "RemoveMember <MEMBER_PUBLIC_KEY>"
    

    从多重签名配置中移除现有成员。

  3. 更改阈值

    config_transaction_create --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --action "ChangeThreshold <NEW_THRESHOLD>"
    

    更改执行多重签名交易所需的签名阈值数量。

  4. 设置时间锁

    config_transaction_create --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --action "SetTimeLock <TIME_LOCK_VALUE>"
    

    为多重签名账户设置时间锁。

  5. 添加支出限制

    config_transaction_create --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --action "AddSpendingLimit <CREATE_KEY> <VAULT_INDEX> <MINT> <AMOUNT> <PERIOD> <MEMBERS> <DESTINATIONS>"
    

    向多重签名账户添加支出限制。

  6. 移除支出限制

    config_transaction_create --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --action "RemoveSpendingLimit <SPENDING_LIMIT_PUBKEY>"
    

    从多重签名账户中移除现有的支出限制。

  7. 设置租约收集器

    config_transaction_create --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --action "SetRentCollector <NEW_RENT_COLLECTOR_PUBKEY>"
    

    为多重签名账户设置新的租约收集器。

配置交易执行

描述

执行多重签名配置更改的建议交易。此命令用于在达到阈值后执行配置交易。

语法

config_transaction_execute --rpc_url <RPC_URL> --program_id <PROGRAM_ID> --keypair <KEYPAIR_PATH> --multisig_pubkey <MULTISIG_PUBLIC_KEY> --transaction_index <TRANSACTION_INDEX>

参数

  • --rpc_url <RPC_URL>: (可选) Solana RPC端点的URL。如果未指定,则默认为主网。
  • --program_id <PROGRAM_ID>: (可选) 多重签名程序的ID。未指定时默认为标准ID。
  • --keypair <KEYPAIR_PATH>: 你的密钥对文件的路径。
  • --multisig_pubkey <MULTISIG_PUBLIC_KEY>: 多重签名账户的公钥。
  • --transaction_index <TRANSACTION_INDEX>: 要执行的交易的索引。

示例用法

config_transaction_execute --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --transaction_index 1

多重签名创建

描述

创建一个新的多重签名,并具有初始成员和阈值配置。

语法

multisig_create --rpc_url <RPC_URL> --program_id <PROGRAM_ID> --keypair <KEYPAIR_PATH> --config_authority <CONFIG_AUTHORITY> --members <MEMBER_1> <MEMBER_2> ... --threshold <THRESHOLD>

参数

  • --rpc_url <RPC_URL>: (可选) Solana RPC端点的URL。如果未指定,则默认为主网。
  • --program_id <PROGRAM_ID>: (可选) 多重签名程序的ID。未指定时默认为标准ID。
  • --keypair <KEYPAIR_PATH>: 你的密钥对文件的路径。
  • --config_authority <CONFIG_AUTHORITY>: (可选) 程序配置授权地址。
  • --members <MEMBER_...>: 成员公钥列表,用空格分隔。
  • --threshold <THRESHOLD>: 执行多重签名交易所需的签名阈值数量。
  • --rent_collector <RENT_COLLECTOR> : 能够从已取消和执行的交易中收回租金的公钥。

示例用法

  1. 创建具有两个成员的多重签名

    multisig_create --keypair /path/to/keypair.json --members "Member1PubKey,Permission1" "Member2PubKey,Permission2" --threshold 2
    

    创建一个新的多重签名账户,具有两个成员和2的阈值。

  2. 创建具有配置授权的多重签名

    multisig_create --keypair /path/to/keypair.json --config_authority <CONFIG_AUTHORITY_PUBKEY> --members "Member1PubKey,Permission1" "Member2PubKey,Permission2" --threshold 1
    

    使用指定的配置授权和1的阈值初始化多重签名账户。

  3. 创建具有租约收集器的多重签名

    multisig_create --keypair /path/to/keypair.json --config_authority <RENT_COLLECTOR_PUBKEY> --members "Member1PubKey,Permission1" "Member2PubKey,Permission2" --threshold 1
    

    使用指定的租约收集器和1的阈值初始化多重签名账户。

提案投票

描述

对建议的交易提案进行投票。此命令允许多重签名成员批准、拒绝或取消交易提案。

语法

proposal_vote --rpc_url <RPC_URL> --program_id <PROGRAM_ID> --keypair <KEYPAIR_PATH> --multisig_pubkey <MULTISIG_PUBLIC_KEY> --transaction_index <TRANSACTION_INDEX> --action <ACTION> [--memo <MEMO>]

参数

  • --rpc_url <RPC_URL>: (可选) Solana RPC端点的URL。如果未指定,则默认为主网。
  • --program_id <PROGRAM_ID>: (可选) 多重签名程序的ID。未指定时默认为标准ID。
  • --keypair <KEYPAIR_PATH>: 你的密钥对文件的路径。
  • --multisig_pubkey <MULTISIG_PUBLIC_KEY>: 多重签名账户的公钥。
  • --transaction_index <TRANSACTION_INDEX>: 要投票的交易的索引。
  • --action <ACTION>: 投票操作(批准、拒绝、取消)。
  • --memo <MEMO>: (可选) 投票备忘。

示例用法

  1. 批准交易

    proposal_vote --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --transaction_index 1 --action Approve
    

    对指定多重签名账户中索引为1的交易进行批准投票。

  2. 拒绝交易

    proposal_vote --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --transaction_index 1 --action Reject
    

    对索引为1的交易进行拒绝投票。

  3. 取消交易

    proposal_vote --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --transaction_index 1 --action Cancel
    

    取消多重签名账户中索引为1的交易。

保险库交易账户关闭

描述

关闭与特定保险库交易相关的提案和交易账户。租金将返回到多重签名的"rent_collector"。

语法

vault_transaction_accounts_close --rpc_url <RPC_URL> --program_id <PROGRAM_ID> --keypair <KEYPAIR_PATH> --multisig_pubkey <MULTISIG_PUBLIC_KEY> --transaction_index <TRANSACTION_INDEX> --rent_collector <RENT_COLLECTOR_PUBKEY>

参数

  • --rpc_url <RPC_URL>: (可选) Solana RPC端点的URL。如果未指定,则默认为主网。
  • --program_id <PROGRAM_ID>: (可选) 多重签名程序的ID。未指定时默认为标准ID。
  • --keypair <KEYPAIR_PATH>: 你的密钥对文件的路径。
  • --multisig_pubkey <MULTISIG_PUBLIC_KEY>: 多重签名账户的公钥。
  • --transaction_index <TRANSACTION_INDEX>:要关闭账户的交易索引。
  • --rent_collector <RENT_COLLECTOR_PUBKEY>:负责收取租金的账户公钥。

示例用法

vault_transaction_accounts_close --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --transaction_index 1 --rent_collector <RENT_COLLECTOR_PUBKEY>

在这个例子中,命令关闭了指定多签账户中索引为1的交易账户,并使用提供的租金收集者公钥收取租金。

保险库交易创建

描述

创建一个新的保险库交易,带有自定义的交易消息。

语法

vault_transaction_create --rpc_url <RPC_URL> --program_id <PROGRAM_ID> --keypair <KEYPAIR_PATH> --multisig_pubkey <MULTISIG_PUBLIC_KEY> --vault_index <VAULT_INDEX> --transaction_message <TRANSACTION_MESSAGE> [--memo <MEMO>]

参数

  • --rpc_url <RPC_URL>: (可选) Solana RPC端点的URL。如果未指定,则默认为主网。
  • --program_id <PROGRAM_ID>: (可选) 多重签名程序的ID。未指定时默认为标准ID。
  • --keypair <KEYPAIR_PATH>: 你的密钥对文件的路径。
  • --multisig_pubkey <MULTISIG_PUBLIC_KEY>: 多重签名账户的公钥。
  • --vault_index <VAULT_INDEX>:创建交易所在的保险库索引。
  • --transaction_message <TRANSACTION_MESSAGE>:交易的消息或有效载荷。
  • --memo <MEMO>: (可选) 交易备忘。

示例用法

vault_transaction_create --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --vault_index 1 --transaction_message [1, 2, 3, 5, 5, 6, 7, 8]

在这个例子中,在保险库索引为1的多签保险库中提出了带有指定消息的新交易。

保险库交易执行

描述

一旦提议达到阈值,则执行交易。

语法

vault_transaction_execute --rpc_url <RPC_URL> --program_id <PROGRAM_ID> --keypair <KEYPAIR_PATH> --multisig_pubkey <MULTISIG_PUBLIC_KEY> --transaction_index <TRANSACTION_INDEX>

参数

  • --rpc_url <RPC_URL>: (可选) Solana RPC端点的URL。如果未指定,则默认为主网。
  • --program_id <PROGRAM_ID>: (可选) 多重签名程序的ID。未指定时默认为标准ID。
  • --keypair <KEYPAIR_PATH>: 你的密钥对文件的路径。
  • --multisig_pubkey <MULTISIG_PUBLIC_KEY>: 多重签名账户的公钥。
  • --transaction_index <TRANSACTION_INDEX>: 要执行的交易的索引。

示例用法

vault_transaction_execute --keypair /path/to/keypair.json --multisig_pubkey <MULTISIG_PUBLIC_KEY> --transaction_index 1

此示例在指定的多签中执行索引为1的交易。

依赖项

~59–79MB
~1.5M SLoC