📜  以太坊-智能合约(1)

📅  最后修改于: 2023-12-03 15:22:04.111000             🧑  作者: Mango

以太坊智能合约简介

以太坊是一种基于区块链技术构建的智能合约平台,使得开发者能够构建分布式应用程序(DApps)和智能合约。

智能合约是指由代码实现的合约,能够在区块链上自动执行合约条款。智能合约的代码运行在区块链上,因此可以保证合约的公正性和可信度。

以太坊智能合约使用Solidity编程语言编写,与JavaScript相似。Solidity允许开发者利用更精简的代码来构建智能合约。以太坊智能合约可以用于构建各种不同类型的应用,如游戏、工具、投票、金融等。

Solidity智能合约代码示例

以下是一个简单的Solidity智能合约示例,用于存储、转移和查询以太币(ETH):

pragma solidity ^0.8.0;

contract MyContract {
    mapping(address => uint256) public balances;

    function deposit() public payable {
        balances[msg.sender] += msg.value;
    }

    function withdraw(uint256 amount) public {
        require(balances[msg.sender] >= amount, "Insufficient funds");
        balances[msg.sender] -= amount;
        payable(msg.sender).transfer(amount);
    }
}
解释
  • pragma solidity ^0.8.0;:Solidity编译器版本声明
  • contract MyContract:智能合约的声明,名称为MyContract
  • mapping(address => uint256) public balances;:用于存储每个地址的ETH余额的映射
  • function deposit() public payable:用于向合约存入ETH的函数
  • balances[msg.sender] += msg.value;:将发送者的ETH余额加上存入的ETH数量
  • function withdraw(uint256 amount) public:用于从合约提现ETH的函数
  • require(balances[msg.sender] >= amount, "Insufficient funds");:检查发送者是否有足够的ETH余额来提现
  • balances[msg.sender] -= amount;:将发送者的ETH余额减去提现的ETH数量
  • payable(msg.sender).transfer(amount);:向发送者地址转移提现的ETH数量。
总结

以太坊智能合约为区块链开发者提供了一个安全、可靠的构建智能合约和DApps的平台。通过Solidity语言编写智能合约,可以轻松地利用以太坊平台的功能来构建各种应用程序。