跳到主要内容

如何从 Hyperlane 邮箱转移所有权

本指南解释了如何使用 Hyperlane CLI 更改 Hyperlane 邮箱的所有者。转移所有权在您希望将控制权交给其他地址时是必要的,例如出于安全原因或在更改邮箱管理者时。

作为新所有者,您将完全控制邮箱设置,包括管理钩子、ISM 配置和消息处理权限。我们将指导您更新所有者地址、应用更改并确认一切设置正确。

使用 Hyperlane CLI

使用 Hyperlane CLI 转移邮箱所有权是最快的方法之一。

前提条件

  • hyperlane core init 生成的核心配置。
    • 此配置用于部署核心合约,包括邮箱。默认情况下,它使用 CURRENT_DIR/configs/core-config.yaml 的文件路径。
  • 邮箱部署的链。
  • 访问当前拥有邮箱的私钥。
信息

如果您遵循了 如何将您的链与 Hyperlane 连接 的指南,您可能已经部署了一个所有者设置为单个私钥的邮箱。在生产环境中,建议使用多签名。

要确认使用 Hyperlane CLI,请执行以下命令,--chain 设置为您部署邮箱的链的名称:

hyperlane core read --chain <yourChain>

运行 core read 后,您应该会看到类似的配置,其中 owner 设置为私钥的地址:

defaultHook:
address: "0xC2E88eC0aB5FDB9756CD3EFEE40D24120fFa6E57"
type: "merkleTreeHook"
defaultIsm:
address: "0xF37395A79f56268FD0040E1f5711e9Af974a545A"
relayer: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
type: "trustedRelayerIsm"
owner: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
requiredHook:
address: "0x390d29a822C21F57B163F1173cD43382bd643401"
beneficiary: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
maxProtocolFee: "100000000000000000"
owner: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
protocolFee: "0"
type: "protocolFee"

输出将保存到 CURRENT_DIR/configs/core-config.yaml

请按照以下步骤使用 CLI 将现有所有权转移到另一个地址。

第一步:更新配置

core-config.yaml 中更新 owner 地址

core-config.yaml
defaultHook:
address: "0xE71AC7A1ccB822423576EfFdb0B74564C49BEcBA"
type: merkleTreeHook
defaultIsm:
address: "0x89842f40928f81FC4415b39bfBFC3205eB6161cB"
relayer: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
type: trustedRelayerIsm
- owner: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
+ owner: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
requiredHook:
address: "0x390d29a822C21F57B163F1173cD43382bd643401"
beneficiary: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
maxProtocolFee: "100000000000000000"
owner: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
protocolFee: "0"
type: protocolFee

第二步:应用

使用 CLI 执行:

hyperlane core apply --chain <yourChain>

您应该会看到一批交易在链上执行,并且最后一条消息指示邮箱已更新。

第三步:确认

要确认使用 Hyperlane CLI,请执行以下命令:

hyperlane core read --chain <yourChain>

运行 core read 后,您应该会看到类似的配置,其中现在更新的 owner 为:

defaultHook:
address: "0x67F8c06Fd2915728E9D21451E33FbDFbCcd63c44"
type: "merkleTreeHook"
defaultIsm:
address: "0xac7D6df90fa937ADEfE7aD2d4905f0AEa170c467"
relayer: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
type: "trustedRelayerIsm"
owner: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
requiredHook:
address: "0x1Cd94b4D9B5f0e3474a6bDB8b9503Ca84F53e548"
beneficiary: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
maxProtocolFee: "100000000000000000"
owner: "0xa5558cA30cd9952Ab0e2349C274a3736698bD60e"
protocolFee: "0"
type: "protocolFee"

通过完成这些步骤,您已成功将邮箱的所有权转移并验证到新地址。