区块链代币质押项目系统开发规则玩法丨dapp/defi智能合约系统开发项目详细/程序设计/案例逻辑/源码方案

简介: import './interfaces/IUniswapV2ERC20.sol';import './libraries/SafeMath.sol';

pragma solidity =0.5.16;

import './interfaces/IUniswapV2ERC20.sol';
import './libraries/SafeMath.sol';

contract UniswapV2ERC20 is IUniswapV2ERC20 {
using SafeMath for uint;

string public constant name = 'Uniswap V2';
string public constant symbol = 'UNI-V2';
uint8 public constant decimals = 18;
uint  public totalSupply;
mapping(address => uint) public balanceOf;
mapping(address => mapping(address => uint)) public allowance;

bytes32 public DOMAIN_SEPARATOR;
// keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
mapping(address => uint) public nonces;

event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);

constructor() public {
    uint chainId;
    assembly {
        chainId := chainid
    }
    DOMAIN_SEPARATOR = keccak256(
        abi.encode(
            keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),
            keccak256(bytes(name)),
            keccak256(bytes('1')),
            chainId,
            address(this)
        )
    );
}

function _mint(address to, uint value) internal {
    totalSupply = totalSupply.add(value);
    balanceOf[to] = balanceOf[to].add(value);
    emit Transfer(address(0), to, value);
}

function _burn(address from, uint value) internal {
    balanceOf[from] = balanceOf[from].sub(value);
    totalSupply = totalSupply.sub(value);
    emit Transfer(from, address(0), value);
}

function _approve(address owner, address spender, uint value) private {
    allowance[owner][spender] = value;
    emit Approval(owner, spender, value);
}

function _transfer(address from, address to, uint value) private {
    balanceOf[from] = balanceOf[from].sub(value);
    balanceOf[to] = balanceOf[to].add(value);
    emit Transfer(from, to, value);
}

function approve(address spender, uint value) external returns (bool) {
    _approve(msg.sender, spender, value);
    return true;
}

function transfer(address to, uint value) external returns (bool) {
    _transfer(msg.sender, to, value);
    return true;
}

function transferFrom(address from, address to, uint value) external returns (bool) {
    if (allowance[from][msg.sender] != uint(-1)) {
        allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);
    }
    _transfer(from, to, value);
    return true;
}

function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
    require(deadline >= block.timestamp, 'UniswapV2: EXPIRED');
    bytes32 digest = keccak256(
        abi.encodePacked(
            '\x19\x01',
            DOMAIN_SEPARATOR,
            keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
        )
    );
    address recoveredAddress = ecrecover(digest, v, r, s);
    require(recoveredAddress != address(0) && recoveredAddress == owner, 'UniswapV2: INVALID_SIGNATURE');
    _approve(owner, spender, value);
}

}

相关文章
|
22小时前
|
算法 区块链
区块链项目的商业模式有哪些成功案例
**评估区块链项目潜力的关键因素包括:技术创新与应用场景(如共识算法、交易速度)、团队背景与发展战略(团队经验、市场定位)、社区活跃度与合作伙伴(用户参与、合作网络)、透明度与合规性(信息透明、法规遵循)、技术可行性(技术成熟度、安全性)及商业模式与市场可行性(市场规模、用户需求)。这些综合考量帮助判断项目的成功潜力和市场前景。**
|
1天前
|
存储 安全 算法
如何保证区块链项目的安全性和稳定性?
**区块链安全与稳定性关键点:** - 密码学保护数据传输与存储,哈希确保不可篡改 - 安全共识算法(如PoW、PoS)保证节点共识 - 智能合约审计与应急响应机制提升安全性 - 加密、身份验证增强网络安全 - 持续技术改进,采用零知识证明、侧链 - 有效运营团队与社区参与,风险评估和维护 这些措施协同作用,确保区块链项目的稳健运行。
|
1月前
|
安全 算法 区块链
区块链系统开发|(成熟技术)/区块链系统开发介绍方案
区块链架构自下而上包括数据层、网络层、共识层、激励层、契约层和应用层。数据层涉及底层区块和基础数据;网络层实现节点间的分布式通信;共识层确保去中心化网络中节点对区块有效性的共识;激励层提供参与区块链安全验证的节点奖励;契约层支持智能合约,实现交易模式的编程;应用层则将区块链技术应用于现实生活场景。激励层、契约层和应用层并非所有区块链应用的必要组成部分。
|
1月前
|
供应链 区块链
区块链DAPP质押合约代币系统开发|模式方案
智能合约是一种数字化的合约,它将合约内容写入区块链中,保证了合约的公开透明
|
1月前
|
安全 AndFix 区块链
区块链3D元宇宙游戏系统开发规则玩法/步骤指南/源码项目
Developing a blockchain metaverse 3D game system is a complex and innovative process that requires comprehensive consideration of blockchain technology, game design and development, and virtual reality (VR). The following is the general process for developing the system:
|
1天前
|
供应链 监控 安全
区块链技术在供应链管理中的应用与挑战
【6月更文挑战第26天】本文深入探讨了区块链技术在供应链管理领域的应用前景,分析了其对提高透明度、安全性和效率的潜力。同时,文章也指出了实施过程中的技术、法规和成本挑战,并提出了相应的解决策略。
|
2天前
|
存储 供应链 区块链
探索区块链技术在供应链管理中的应用
【6月更文挑战第25天】本文深入探讨了区块链技术如何革新传统的供应链管理,通过提供去中心化、不可篡改和高度透明的数据记录方式,区块链不仅增强了供应链的安全性和效率,还促进了参与各方之间的信任。文章将分析具体的应用场景,讨论实施过程中的挑战,并展望未来发展趋势。
|
2天前
|
存储 供应链 监控
探索区块链技术在供应链管理中的应用
【6月更文挑战第25天】区块链技术,以其独特的去中心化、不可篡改和透明性特点,正逐步改变着各行各业的运作模式。本文将深入探讨区块链技术如何革新传统供应链管理,通过案例分析揭示其在提高透明度、增强安全性、降低运营成本等方面的潜力与挑战。我们将从技术原理出发,逐步过渡到实际应用,最终讨论区块链技术在未来供应链管理中的发展前景。
|
2天前
|
供应链 物联网 区块链
未来已来:探索区块链、物联网与虚拟现实技术的融合趋势
本文旨在探讨区块链技术、物联网(IoT)以及虚拟现实(VR)技术在当前和未来社会中的发展趋势及其应用场景。文章将通过分析这些技术各自的优势,并着重讨论它们如何相互结合,为多个行业带来革命性的变化。我们将从技术原理入手,进而深入到实际应用案例,最后预测这些新兴技术融合后可能带来的影响。
|
1天前
|
区块链 数据安全/隐私保护
现有的区块链隐私保护技术有哪些局限性
现有的区块链隐私技术在透明度与隐私平衡、技术复杂性、性能、可扩展性、成本、监管合规及用户教育上面临挑战。虽然ZKP和环签名等能增强隐私,但增加计算复杂性,降低交易效率,且可能加重网络拥堵。此外,高成本和监管难题也是待解问题。用户理解和使用不足进一步凸显了教育和意识培养的重要性。

热门文章

最新文章