swap丨dapp智能合约只涨不跌项目系统开发成熟技术/案例设计/逻辑方案/源码指南

简介: 合约:import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol";

合约:import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol";

}

function isVerifyMerkleNormal(bytes32[] calldata proof) view public returns (bool) {
bytes32 leaf = keccak256(abi.encodePacked(msg.sender));
return MerkleProof.verify(proof, whiteRootNormal, leaf);
}
首先你需要import,然后合约的角色是去验证,传入proof,然后生成leaf对象,verify方法会根据root去做校验,这里会在构造方法里先初始化一个root,后面如果有白名单的增删改查的话,只要去修改这个root就行了,如果有修改只需要修改一次gas费即可。

前端
前端这里的流程是这样的,有一个accounts的数组,根据这个数组去生成默克尔树的roots,如果是部署合约的时候,直接把这个roots写进合约里就行了,但如果是增删改查白名单的话,就需要在合约里的write contract方法里去更新这个roots了。
这里注意,如果非数组里的账户生成的proof为空,前端如果要测试的话就可以这么来测试是否为白名单。
//生成白名单
const generateWhiteOGProofs = () => {

//buffer化叶子结点
const leafNodes = whitelistAddressesOG.map(addr => keccak256(addr));
//实例化默克尔树
const merkleTree = new MerkleTree(leafNodes, keccak256, { sortPairs: true });
setMerkleTreeOG(merkleTree);
//获取根哈希值
const rootHash = merkleTree.getRoot();
console.log(rootHash);
console.log('Whitelist Merkle Tree og\n', merkleTree.toString());

}

相关文章
|
4月前
|
安全 区块链 数据库
DAPP持币生息项目系统开发|步骤逻辑|源码案例
智能保证执行安全,并减少交易成本。智能合约允许在没有第三方的情况下进行可信交易,且交易可追踪、不可逆转
|
4月前
|
监控 供应链 安全
dapp智能合约只涨不跌系统开发步骤详细/开发案例/功能需求/方案项目/源码功能
需求分析:明确系统的功能需求和业务逻辑。确定系统需要支持的资产类型、交易规则和逻辑限制等。
|
7月前
|
安全 区块链
阐述永续合约交易所系统开发方案逻辑及案例项目丨源码程序
阐述永续合约交易所系统开发方案逻辑及案例项目丨源码程序
|
8月前
|
vr&ar
DeFi流动性质押项目系统开发详细步骤/方案逻辑/案例开发/源码程序
DeFi (Decentralized Finance) pledge mining is a blockchain based financial activity that combines pledge and mining mechanisms. It provides a new way to provide benefits to participants and promote the development of a centralized financial ecosystem.
|
8月前
|
区块链 安全
区块链交易所系统开发详细指南丨交易所系统开发功能逻辑/方案介绍/案例设计/逻辑项目/源码出售
User experience: The interface and user experience of blockchain exchanges should be intuitive, user-friendly, and easy to use and navigate. The platform should provide a simple and clear trading interface to facilitate users' buying and selling operations.
|
9月前
|
存储 算法 前端开发
区块链 DAPP 互助逻辑模式系统开发技术源码方案
string public name; uint public goal; uint public progress; address public admin; mapping (address => bool) public members;
|
9月前
|
区块链
dapp丨swap去中心化交易所系统开发实现技术详细/方案项目/案例详细/逻辑说明/源码部署
  DApp(Decentralized Application)智能合约系统是建立在区块链技术上的应用程序,通过智能合约实现去中心化的功能和业务逻辑
|
9月前
|
区块链 安全
dapp丨defi丨lp智能合约系统开发规则玩法/逻辑说明/项目案例/方案设计/源码程序
Single and dual currency pledge mining is an economic incentive mechanism based on cryptocurrency projects. Under this mechanism, participants can obtain mining rewards by pledging a single cryptocurrency or a pair of cryptocurrencies (dual currency) they hold.
|
9月前
|
存储 安全 算法
dapp公链游戏链上合约系统开发技术详细/案例开发/方案逻辑/成熟技术
  随着区块链技术的不断发展和普及,越来越多的游戏开发商开始将区块链技术应用于游戏中。区块链游戏系统开发可以带来许多好处,例如提高游戏的安全性、透明度、公正性等,同时还可以让玩家拥有更好的游戏体
|
10月前
|
区块链 数据安全/隐私保护 安全
swap去中心化交易所兑换池系统开发需求项目丨方案逻辑丨源码案例丨成熟技术丨源码版
  未来区块链交易所的发展趋势是金融衍生品交易。随着加密货币市场的不断发展和壮大,加密货币衍生品的市场也越来越大,区块链交易所需要支持加密货币衍生品的交易,满足市场需求。