有效运用收索引擎
1. 准确搜索:给关键词加上英文双引号 eg: “人工智能算法” 2. 排除关键词:在搜索内容后面加上空格减号需要排除的关键词 eg: 苹果 -iPhone -iPad 3. 用OR逻辑搜索:用大写的OR和空格隔开关键词 eg: 百度OR 谷歌 4. 模糊搜索:用*代替文字或单词 eg: study * home 5. filetype:在关键词后加上filetype:文件类型 eg: 高等数学 filetype:pdf 6. site:在关键词后加上site:指定的网站 eg: 后浪 site:bilibili.com 7. inurl/allinurl:在关键词后加上inurl:需要筛选的url关键字,allinurl必须同时包含关键词 eg: 肖生克的救赎 inurl:movie film 8. intitle/allintitle:在关键词后加上intitle:需要筛选的title关键字,allintitle必须同时包含关键词 eg: machine learning intitle:stanford mit 9. define:通过define:关键词得到准确定义 eg...
有效运用收索引擎
1. 准确搜索:给关键词加上英文双引号 eg: “人工智能算法” 2. 排除关键词:在搜索内容后面加上空格减号需要排除的关键词 eg: 苹果 -iPhone -iPad 3. 用OR逻辑搜索:用大写的OR和空格隔开关键词 eg: 百度OR 谷歌 4. 模糊搜索:用*代替文字或单词 eg: study * home 5. filetype:在关键词后加上filetype:文件类型 eg: 高等数学 filetype:pdf 6. site:在关键词后加上site:指定的网站 eg: 后浪 site:bilibili.com 7. inurl/allinurl:在关键词后加上inurl:需要筛选的url关键字,allinurl必须同时包含关键词 eg: 肖生克的救赎 inurl:movie film 8. intitle/allintitle:在关键词后加上intitle:需要筛选的title关键字,allintitle必须同时包含关键词 eg: machine learning intitle:stanford mit 9. define:通过define:关键词得到准确定义 eg...
NFT Minting中节省gas费的硬核方法
Part 1如果开发者熟悉类C语言(Java、C、javascript等),Solidity是一种非常容易学习的语言,但管理gas成本是在区块链的背景下才有的概念,很少出现在其他领域。 让我们在下面的gist中看看一个mint函数的典型工作流程。mint功能是web3应用程序的区块链后台的一部分,用户通过点击mint按钮并同意发送一定数量的加密货币来铸造一个NFT。 下面是一个典型的solidity工作流程,反映了生产环境中的NFT智能合约一些功能特性:mapping (address => uint256) public alreadyMinted; bool public enablePublicMint = true; uint256 constant public PRICE = 0.06 ether; address private publicMintingAddress; function publicMint(bytes calldata _signature) external payable { require(totalSupply() < MAX...
NFT Minting中节省gas费的硬核方法
Part 1如果开发者熟悉类C语言(Java、C、javascript等),Solidity是一种非常容易学习的语言,但管理gas成本是在区块链的背景下才有的概念,很少出现在其他领域。 让我们在下面的gist中看看一个mint函数的典型工作流程。mint功能是web3应用程序的区块链后台的一部分,用户通过点击mint按钮并同意发送一定数量的加密货币来铸造一个NFT。 下面是一个典型的solidity工作流程,反映了生产环境中的NFT智能合约一些功能特性:mapping (address => uint256) public alreadyMinted; bool public enablePublicMint = true; uint256 constant public PRICE = 0.06 ether; address private publicMintingAddress; function publicMint(bytes calldata _signature) external payable { require(totalSupply() < MAX...
NFT智能合约白名单机制
介绍白部是推广和奖励的主要内容。现在有实验的3种实现方法,有几种方法介绍了他们自己的项目。我在本文中,并结合了自己的优点。最原始的方式——储存在合同里其他编程语言和现代计算系统的开发者可以说,将数据存储的方式和语言描述是非常简单的数据处理方式。 这种方式可能会导致你产生大量有效的气体,是非常低的方式。这种方式也有优势,通过etherscan或行来测试他是否在白上会更容易。// SPDX-License-Identifier: MIT pragma solidity ^0.8.11; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; contract PrimitiveWhiteList is ERC721Enumerable, Ownable { uint256 public constant MINT_PRICE = 0.1 ether; mapping(addres...
NFT智能合约白名单机制
介绍白部是推广和奖励的主要内容。现在有实验的3种实现方法,有几种方法介绍了他们自己的项目。我在本文中,并结合了自己的优点。最原始的方式——储存在合同里其他编程语言和现代计算系统的开发者可以说,将数据存储的方式和语言描述是非常简单的数据处理方式。 这种方式可能会导致你产生大量有效的气体,是非常低的方式。这种方式也有优势,通过etherscan或行来测试他是否在白上会更容易。// SPDX-License-Identifier: MIT pragma solidity ^0.8.11; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; contract PrimitiveWhiteList is ERC721Enumerable, Ownable { uint256 public constant MINT_PRICE = 0.1 ether; mapping(addres...
如何更優雅的實現 NFT 智能合約的白名單功能
如果玩過 NFT,相信你對「白名單」制度不會陌生。NFT公開發售之前,都會讓一小部分被授權的地址,可以提前購買。因為能夠保證取得購買資格,無需與其他人瘋搶,所以往往大家都非常想擠進這個白名單中去。 本文不討論 marketing 的策略,而是說說 NFT 智能合約如何更優雅的處理白名單。 聰明的你肯定想到,可以用一個 mapping,來儲存所有 whitelist 的地址,當 presale 時檢查這個 mapping 中是否有這個地址即可。//SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.4; import "@openzeppelin/contracts/access/Ownable.sol"; contract Whitelist is Ownable { mapping (address => bool) userAddr; function addToWhitelist (address[] calldata users) external onlyOwner { for (uint i = 0; i &#x...
如何更優雅的實現 NFT 智能合約的白名單功能
如果玩過 NFT,相信你對「白名單」制度不會陌生。NFT公開發售之前,都會讓一小部分被授權的地址,可以提前購買。因為能夠保證取得購買資格,無需與其他人瘋搶,所以往往大家都非常想擠進這個白名單中去。 本文不討論 marketing 的策略,而是說說 NFT 智能合約如何更優雅的處理白名單。 聰明的你肯定想到,可以用一個 mapping,來儲存所有 whitelist 的地址,當 presale 時檢查這個 mapping 中是否有這個地址即可。//SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.4; import "@openzeppelin/contracts/access/Ownable.sol"; contract Whitelist is Ownable { mapping (address => bool) userAddr; function addToWhitelist (address[] calldata users) external onlyOwner { for (uint i = 0; i &#x...
10分钟快速部署Uniswap-v2
快速部署是如何实现的 要实现快速部署Uniswap-v2,其本质上是实现Uniswap-v2合约部署和配置的自动化。这里面合约自动部署使用到了hardhat框架,合约自动配置则使用到了[uniswap/sdk-core v3.0.3](https://github.com/Uniswap/sdk-core/tree/a88048e9c4198a5bdaea00883ca00c8c8e582605)(为了找到这个两年前的版本,可费了我不少时间)。只要用魔改后的SDK换掉原来的uniswap/sdk,就可以实现在前端项目里自动化配置合约。 部署环境 ubuntu 20.04node v16.13.0npm 8.1.4yarn 1.22.17 快速部署Uniswap-v2合约获取测试代币 我们选择Rinkeby测试网络部署Uniswap-v2,首先需要获取测试代币。官方的水龙头,需要在twitter发帖这里推荐通过更加简单的 chainlink水龙头 获取测试用代币。下载项目uniswap-v2-contract配置编译环境在根目录下创建文件/envs/env.rinkeby,内容为:...
10分钟快速部署Uniswap-v2
快速部署是如何实现的 要实现快速部署Uniswap-v2,其本质上是实现Uniswap-v2合约部署和配置的自动化。这里面合约自动部署使用到了hardhat框架,合约自动配置则使用到了[uniswap/sdk-core v3.0.3](https://github.com/Uniswap/sdk-core/tree/a88048e9c4198a5bdaea00883ca00c8c8e582605)(为了找到这个两年前的版本,可费了我不少时间)。只要用魔改后的SDK换掉原来的uniswap/sdk,就可以实现在前端项目里自动化配置合约。 部署环境 ubuntu 20.04node v16.13.0npm 8.1.4yarn 1.22.17 快速部署Uniswap-v2合约获取测试代币 我们选择Rinkeby测试网络部署Uniswap-v2,首先需要获取测试代币。官方的水龙头,需要在twitter发帖这里推荐通过更加简单的 chainlink水龙头 获取测试用代币。下载项目uniswap-v2-contract配置编译环境在根目录下创建文件/envs/env.rinkeby,内容为:...