← 返回博客
WEB32023-08-10 13:37:43 2068

Solidity 存储合约示例

这是一个简单的 Solidity 智能合约示例,展示了如何在区块链上存储和检索一个数字值。合约提供了存储和读取值的功能,适用于 Solidity 合约开发初学者。

这是一个 Solidity 智能合约的示例代码,用于存储和检索一个变量的值。以下是代码的详细解释:

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.8.2 <0.9.0;

/**
 * @title Storage
 * @dev Store & retrieve value in a variable
 * @custom:dev-run-script ./scripts/deploy_with_ethers.ts
 */
contract Storage {

    uint256 number;

    /**
     * @dev Store value in variable
     * @param num value to store
     */
    function store(uint256 num) public {
        number = num;
    }

    /**
     * @dev Return value 
     * @return value of 'number'
     */
    function retrieve() public view returns (uint256){
        return number;
    }
}

解释:

// SPDX-License-Identifier: GPL-3.0

这是 SPDX 许可证标识符,用于声明合约的许可证。在这里,合约使用 GPL-3.0 许可证。

pragma solidity >=0.8.2 <0.9.0;

这是 Solidity 编译器指令,指定了合约代码兼容的 Solidity 版本范围。

contract Storage { ... }

这是 Solidity 合约的开始和结束标记。合约名为 "Storage",它包含了存储和检索值的功能。

uint256 number;

这是一个无符号整数类型的状态变量,用于存储一个数字。

function store(uint256 num) public { ... }

这是一个公共函数,用于将传入的值存储到 number 变量中。

function retrieve() public view returns (uint256) { ... }

这是一个公共视图函数,用于返回存储在 number 变量中的值。

@custom:dev-run-script ./scripts/deploy_with_ethers.ts

这是一个特殊的 Solidity 注释,用于指示开发人员在执行脚本时要运行的命令。在这里,它指示运行 ./scripts/deploy_with_ethers.ts 脚本。

这个合约演示了一个简单的存储和检索值的操作,可以通过调用 store 函数存储一个值,然后通过调用 retrieve 函数检索该值。请注意,这只是一个示例合约,实际应用中可能会有更复杂的逻辑和功能。

相关推荐