Skip to content
This repository has been archived by the owner on May 9, 2023. It is now read-only.

Latest commit

 

History

History
150 lines (90 loc) · 4.43 KB

6.md

File metadata and controls

150 lines (90 loc) · 4.43 KB

第6节 以太坊remix


❤️💕💕欢迎来到web3的教程,在这里,将会学习到智能合约,区块链底层原理,eth和btc学习,web3或将会颠覆世界😍~Myblog:http://nsddd.top


[TOC]

使用remix

我们打开看看

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;  //这个是支持的版本号

/**
 * @title Storage
 * @dev Store & retrieve value in a variable
 */
contract Storage {           //代码结构
//contract是合约类型,Storage s
    uint256 number;

    /**
     * @dev Store value in variable
     * @param num value to store
     */
    function store(uint256 num) public {            //定义一个方法或函数
        //uint256类型,uint是无符号整型 num是参数变量名 public是公有公共可见的
        number = num;
    }

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

编译版本号建议不要选择太新的,不然可能会因为版本报错

function () pubilc payable{}

可能很容易想到这个是一个匿名函数,但其实不是的,这个在script上面是回退函数,表示的是最后一步,如果前面的方法没有调用,就会用它,前面如果调用了,就不会用它

payable{}表示可支付的

目录结构

版本选择

如今的版本是solidity 8.0,不同版本之间的区别很大,目前我使用的是最新版的版本。

image-20221008221052276

编译环境

image-20220324210228983

sol

目录结构

一开始进去的是默认的目录结构

image-20221009144719561

选择部署环境

环境

  • Remix VM (London):用于连接到浏览器中的沙盒区块链。Remix VM(以前称为 JavaScript VM)是它自己的“区块链”,每次重新加载时,旧链将被清除,新的区块链将启动。旧的不会得救。伦敦指的是以太坊的伦敦分叉。
  • Remix VM (Berlin):与上述相同,只是该链使用的是以太坊的柏林分叉。
  • Injected Provider - provider name:用于将 Remix 连接到注入的 web3 提供程序。最常见的注入提供程序是Metamask.
  • Hardhat Provider:用于将 Remix 连接到本地安全帽测试链。
  • Ganache Provider:用于将 Remix 连接到本地 Truffle Ganache 测试链。
  • Foundry Provider:用于将 Remix 连接到本地 Foundry Anvil 测试链。
  • WalletConnect:用于使用 WalletConnect 允许您在移动设备上批准交易。
  • External HTTP Provider:Remix 将连接到远程节点。您需要提供所选提供商的 URL:geth、parity 或任何以太坊客户端。这以前称为Web3 Provider
  • L2 - Optimism Provider:用于使用 Optimism Network 主网的设置将 Remix 连接到注入的提供者(通常是 Metamask)。
  • L2 - Arbitrum One Provider:用于使用 Arbitrum One 网络的设置将 Remix 连接到 Injected Provider(通常是 Metamask)。

链接metamask钱包环境

image-20221009145116939

account

同一个账户根据不同的私钥也是可以生成不同的随机数。

水龙头合约

pragma solidity ^0.4.0;
//定义一个编译器版本
contract Faucet{
    //合约体
    //功能是一个水龙头的功能,点击就可以发一个币
    function withdraw() public {
        //函数体
        //功能是发送一个货币
        require(amout > 1000000000000000000)
        msg.sender.transfer(amout);    //一个以太币
        //指定合约调用者的地址
    }
}

END 链接