区块链代币质押项目系统开发规则玩法丨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);
}

}

相关文章
|
4月前
|
区块链 C# 存储
链动未来:WPF与区块链的创新融合——从智能合约到去中心化应用,全方位解析开发安全可靠DApp的最佳路径
【8月更文挑战第31天】本文以问答形式详细介绍了区块链技术的特点及其在Windows Presentation Foundation(WPF)中的集成方法。通过示例代码展示了如何选择合适的区块链平台、创建智能合约,并在WPF应用中与其交互,实现安全可靠的消息存储和检索功能。希望这能为WPF开发者提供区块链技术应用的参考与灵感。
68 0
|
5月前
|
存储 安全 前端开发
区块链 DAPP 互助逻辑模式系统开发技术方案[源码示例]
Dapp(Decentralized Application)是指不受任何中心化组织或机构控制的、使用特定区块链技术为基础的去中心化应用程序。Dapp 是一种特殊类型的应用,它可以在任何基于区块链技术的系统,例如 Ethereum、EOS 或其他的智能合约系统上运行。
|
5月前
|
存储 安全 区块链
SWAP交易所系统开发|区块链交易所系统开发方案
尽管Web3.0的前景仍然不确定,但像尤派数字传媒这样的先行者正在积极尝试元宇宙,并加速转型的步伐。在面对即将到来的新一代互联网时,尤派数字传媒既不会过于骄傲自大,也不会过于谨小慎微。唯有在当前基础上稳步推进,夯实基础,才能在不确定的环境中获得最大的确定性。
|
5月前
|
安全 编译器 区块链
区块链代币 DAPP 通缩燃烧模式系统开发技术方案
合约代码部署流程可能因区块链技术的不同实现而略有不同,但基本步骤如下:
|
6天前
|
供应链 安全 分布式数据库
探索区块链技术在供应链管理中的应用
【10月更文挑战第21天】 本文深入探讨了区块链技术如何在供应链管理中发挥关键作用,通过具体案例分析,揭示了区块链提高透明度、降低成本和增强安全性的潜力。文章首先概述了区块链技术的基本原理及其对传统供应链模式的挑战,接着详细讨论了区块链如何在不同供应链环节中实施,并分析了其带来的变革。最后,文章提出了企业在采纳区块链技术时可能面临的挑战和应对策略,为供应链管理者提供了宝贵的参考。
|
16天前
|
存储 安全 物联网
未来已来:区块链技术在物联网与虚拟现实中的应用
随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在逐渐改变我们的生活和工作方式。本文将探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,为我们带来更便捷、安全和沉浸式的体验。
|
17天前
|
存储 供应链 算法
深入探索区块链技术:原理、应用与未来展望
本文将带你深入了解区块链技术的基本原理,探讨其在金融、供应链、医疗等多个领域的应用案例,并展望其未来的发展趋势。通过本文,你将对区块链技术有一个全面的认识,理解其背后的技术逻辑和应用场景。
|
23天前
|
供应链 安全 区块链
探索区块链技术在数据安全中的应用
本文深入探讨了区块链技术如何革新数据安全领域,特别是在保护个人隐私、增强数据完整性和透明度方面的作用。通过分析区块链的去中心化特性、加密技术以及智能合约的功能,文章阐述了这一技术如何有效防止数据篡改、确保交易记录的不可逆性,并促进跨组织间的信任建立。此外,还讨论了当前区块链技术面临的挑战及未来发展趋势,为理解其在数据安全领域的潜力提供了全面视角。
|
19天前
|
存储 供应链 监控
深入探索区块链技术在供应链管理中的应用####
本文旨在探讨区块链技术如何革新供应链管理,通过分析其核心特性与实际案例,揭示该技术如何增强透明度、提升效率并降低成本。我们将从区块链的基本原理入手,逐步剖析其在供应链各环节中的具体应用,最终展望其未来发展趋势。 ####
49 3
|
22天前
|
存储 供应链 分布式数据库
深入理解区块链技术:原理、应用与挑战
本文旨在探讨区块链技术的基本原理、主要应用及其面临的挑战。通过分析区块链的分布式账本技术、加密算法和共识机制,我们揭示了其如何在无需中心化权威的情况下确保数据的不可篡改性和透明性。此外,文章还讨论了区块链在金融、供应链管理、智能合约等领域的应用案例,并指出了当前区块链技术面临的可扩展性、隐私保护和法律监管等挑战。通过对这些内容的深入分析,我们希望为读者提供一个全面而深入的区块链技术概览。
49 6
下一篇
DataWorks