跳至主要内容

部署智能合约

在 Kaia 上部署智能合约有多种方法。 本文档提供了使用 Remix IDE 部署示例合同的分步指南。

在本指南中,我们将使用 Kaia Toolkit 生成账户,生成的账户将用于通过 Remix Kaia 插件签署交易。

Remix 在线集成开发环境

打开互联网浏览器,进入 Kaia Plugin for Remix

  1. 添加新文件。

  1. 复制并粘贴以下示例代码(或任何您想部署的代码)到新文件中。 下面的代码是 CoinFlip 合约,旨在让两名玩家参与游戏,胜者获得彩池。

// SPDX-License-Identifier:MIT
pragma solidity ^0.8.0;
contract CoinFlip {
address public player1;
address public player2;
uint256 public pool;
uint256 public winner;
address public winnerAddress;
event GameStarted(address indexed player1, address indexed player2, uint256 pool);
event GameFinished(address indexed winnerAddress, string winner, uint256 pool);
function enter() public payable {
require(msg. value == 0.01 ether, "Must send 0.01 Kaia to enter"; if (0.01 ether == 0.01 ether, "Must send 0.01 Kaia to enter").value == 0.01 ether, "Must send 0.01 Kaia to enter");
if (player1 == address(0)) {
player1 = msg.sender;
} else {
require(player2 == address(0), "Both players have already entered");
player2 = msg.sender;
emit GameStarted(player1, player2, pool);
}
pool += msg.value;
winner = 0;
winnerAddress = address(0);
}
function flipCoin() public {
require(msg.sender == player1 || msg.sender == player2, "发件人不是玩家");
uint256 result = uint256(keccak256(abi.encodePacked(block.timestamp, block.prevrandao, block.coinbase))) % 2;
winner = result == 0 ?1 : 2;
winnerAddress = winner == 1 ? player1 : player2;
string memory winnerName = winner == 1 ? "player1" : "player2";
emit GameFinished(winnerAddress, winnerName, pool);
payable(winnerAddress).transfer(pool);
pool = 0;
player1 = address(0);
player2 = address(0);
}
}

  1. 在图标面板中选择 "编译器"。 单击 Compile Coinflip.sol 按钮,在实际部署前编译示例代码。

  1. 在 Kaia 插件选项卡中选择所需的 EVM 环境。 在本指南中,我们将选择 Kairos (testnet)。

下一步是导入一个账户来签署我们的交易。 您可以从任何与 Kaia 兼容的钱包中导出私钥,也可以使用 Kaia 工具包生成一个开发者账户。 在本指南中,我们将使用 Kaia Toolkit 生成一个开发者账户。

  1. 点击账户旁边的加号按钮,导入一个账户。

备注

确保账户有足够的 KAIA 来支付部署智能合约的交易费用。 如果您还没有测试 KAIA,请从 水龙头 获取一些测试 KAIA。

  1. 设置气体限值和发送值。
  • 如果部署的是更复杂的合同,可能需要设置更高的气体限值。 在本例中,可以保持原样。
  • Value 设为 0,除非您想在部署时向合同发送 KAIA
  1. 点击部署按钮

如果合约部署成功,您将在终端看到相应的交易哈希值,并可在 Kaiascan 上进行验证。

  1. 您可以通过点击功能按钮与合同互动。

这些功能用不同的颜色表示。 在 Solidity 中,"pure "或 "view "函数有蓝色的底部(示例中的 "player1"、"player2"、"pool "等),不会创建新的事务,因此不会耗费任何气体。 红色按钮(示例中的 "输入")代表 "可支付 "功能,可改变区块链上的状态、消耗气体并可接受价值。 橙色按钮(示例中的 "flipCoin")用于 "非支付 "功能,可改变合约状态,但不接受数值。

如果您读完了本指南,恭喜您。 如果您有任何问题,请访问 Kaia 论坛。 不过,以下是您在 Kaia 上使用 Remix IDE 进一步构建时可能需要的有用资源列表。

让这个页面变得更好