首页 > 编程语言 >合约交易系统开发(开发案例)丨合约交易所系统开发(逻辑方案)/设计程序/成熟源码

合约交易系统开发(开发案例)丨合约交易所系统开发(逻辑方案)/设计程序/成熟源码

时间:2024-01-04 16:37:03浏览次数:28  
标签:uint64 gt public uint16 token 开发 amp 合约 源码

智能合约的生命周期根据其运行机制可概括为协商、开发、部署、运维、学习和自毁六个阶段,其中开发阶段包括合约上链前的合约测试,学习阶段包括智能合约的运行反馈与合约更新为智能合约的基础架构模型,模型自底向上由基础设施层、合约层、运维层、智能层、表现层和应用层组成,  基础设施层:封装了支持智能合约及其衍生应用实现的所有基础设施,包括分布式账本及其关键技术、开发环境和可信数据源等,这些基础设施的选择将在一定程度上影响智能合约的设计模式和合约属性.  struct TokenInfo{  string symbol;//e.g.,ETH,ADX  address tokenAddr;//ERC20 token address  uint64 scaleFactor;//<original token amount>=<scaleFactor>x<DEx amountE8>/1e8  uint minDeposit;//mininum deposit(original token amount)allowed for this token  }  struct TraderInfo{  address withdrawAddr;  uint8 feeRebatePercent;//range:[0,100]  }  struct TokenAccount{  uint64 balanceE8;//available amount for trading  uint64 pendingWithdrawE8;//the amount to be transferred out from this contract to the trader  }  struct Order{  uint32 pairId;//<cashId>(16)<stockId>(16)  uint8 action;//0 means BUY;1 means SELL  uint8 ioc;//0 means a regular order;1 means an immediate-or-cancel(IOC)order  uint64 priceE8;  uint64 amountE8;  uint64 expireTimeSec;  }  struct Deposit{  address traderAddr;  uint16 tokenCode;  uint64 pendingAmountE8;//amount to be confirmed for trading purpose  }  struct DealInfo{  uint16 stockCode;//stock token code  uint16 cashCode;//cash token code  uint64 stockDealAmountE8;  uint64 cashDealAmountE8;  }  struct ExeStatus{  uint64 logicTimeSec;//logic timestamp for checking order expiration  uint64 lastOperationIndex;//index of the last executed operation  }  uint constant MAX_UINT256=2256-1;  uint16 constant MAX_FEE_RATE_E4=60;//upper limit of fee rate is 0.6%(60/1e4)  //<original ETH amount in Wei>=<DEx amountE8>*<ETH_SCALE_FACTOR>/1e8  uint64 constant ETH_SCALE_FACTOR=1018;  uint8 constant ACTIVE=0;  uint8 constant CLOSED=2;  bytes32 constant HASHTYPES=  keccak256(string title,address market_address,uint64 nonce,uint64 expire_time_sec,  uint64 amount_e8,uint64 price_e8,uint8 immediate_or_cancel,uint8 action,  uint16 cash_token_code,uint16 stock_token_code);  address public admin;//admin address,and it cannot be changed  mapping(uint16=>TokenInfo)public tokens;//mapping of token code to token information  uint8 public marketStatus;//market status:0-Active;1-Suspended;2-Closed  uint16 public makerFeeRateE4;//maker fee rate(*104)  uint16 public takerFeeRateE4;//taker fee rate(*104)  uint16 public withdrawFeeRateE4;//withdraw fee rate(*10**4)  uint64 public lastDepositIndex;//index of the last deposit operation  ExeStatus public exeStatus;//status of operation execution  mapping(address=>TraderInfo)public traders;//mapping of trade address to trader information  mapping(uint176=>TokenAccount)public accounts;//mapping of trader token key to its account information  mapping(uint224=>Order)public orders;//mapping of order key to order information  mapping(uint64=>Deposit)public deposits;//mapping of deposit index to deposit information

标签:uint64,gt,public,uint16,token,开发,amp,合约,源码
From: https://blog.51cto.com/u_16489205/9102259

相关文章

  • 北京软件开发公司推荐
    北京有很多优秀的软件开发公司,推荐以下几家:华盛恒辉科技有限公司:是一家专注于高端软件定制开发服务和高端建设的服务机构,致力于为企业提供全面、系统的开发制作方案。在开发、建设到运营推广领域拥有丰富经验,在教育,医疗,APP,管理,商城,人工智能,ERP,系统二次开发,CRM等领域有很多......
  • Python 开发中有哪些常见的编程错误需要注意
    在Python开发中,常常会遇到各种编程错误。这些错误可能导致程序崩溃、产生错误的输出或者不符合预期的行为。为了提高代码质量和减少错误,以下是一些常见的编程错误和注意事项:1.语法错误语法错误是最常见的编程错误之一,它通常是由于拼写错误、缺少冒号、括号不匹配等导致的。为了避免......
  • 企业培训系统开发:构建灵活高效的学习平台
    企业培训系统的开发在当今数字化时代是至关重要的。本文将介绍一些关键技术和代码示例,以帮助您构建一个灵活、高效的企业培训系统。1.技术选型在开始企业培训系统的开发之前,首先需要选择合适的技术栈。以下是一个基本的技术选型示例:前端开发:使用React.js构建用户界面,采用Redux进......
  • 企业内训系统源码剖析:开发企业培训平台的关键步骤
    深入剖析其源码可以帮助我们更好地理解系统的内在机制。本文将探讨开发企业内训系统的关键步骤,并通过源码剖析的方式深入了解其技术实现。 一、需求分析与规划开发团队需要与企业管理层和培训负责人密切合作,明确系统所需功能、性能、安全性等方面的要求。二、技术选型与架构设计选......
  • BNB代币燃烧分红系统开发实现技术详细
     定义如下:function_nextExtraData(  addressfrom,  addressto,  uint256prevOwnershipPacked)privateviewreturns(uint256){  uint24extraData=uint24(prevOwnershipPacked>>_BITPOS_EXTRA_DATA);  returnuint256(_extraData(from,to,extra......
  • 北京软件开发公司哪家比较专业
    软件开发公司有很多,专业水平也参差不齐,以下是一些比较知名的专业软件开发公司:华盛恒辉科技有限公司:是一家专注于高端软件定制开发服务和高端建设的服务机构,致力于为企业提供全面、系统的开发制作方案。在开发、建设到运营推广领域拥有丰富经验,在教育,医疗,APP,管理,商城,人......
  • 关键字 开发-15 mark标记用例
    pytest可以支持对用例自定义标记,可以把用例按自己的需要归类标记,比如按用例优先级,标记一些smoke冒烟测试用例。1.mark标记基本实现[email protected]_login1():print('test1')@pytest.mark.smokedeftest_login2():print('test2')de......
  • 最强烧脑答题直播互动猜图流量主小程序开发
    在当今的数字化时代,直播互动答题已成为一种全新的知识变现方式。它不仅有趣,而且互动性高,为观众提供了一个全新的互动体验。这种模式的核心在于通过直播、视频、微信小程序等渠道,引导用户参与答题,在娱乐中增长知识。对于互动答题小程序运营者而言,直播答题变现能力的强大不容忽视。以......
  • SpringCloud微服务实战——搭建企业级开发框架(三十一):自定义MybatisPlus代码生成器实现
      理想的情况下,代码生成可以节省很多重复且没有技术含量的工作量,并且代码生成可以按照统一的代码规范和格式来生成代码,给日常的代码开发提供很大的帮助。但是,代码生成也有其局限性,当牵涉到复杂的业务逻辑时,简单的代码生成功能无法解决。  目前市面上的代码生成器层出不穷,大多......
  • Linux驱动开发笔记(六):用户层与内核层进行数据传递的原理和Demo
    前言  驱动作为桥梁,用户层调用预定义名称的系统函数与系统内核交互,而用户层与系统层不能直接进行数据传递,进行本篇主要就是理解清楚驱动如何让用户编程来实现与内核的数据交互传递。<br>温故知新设备节点是应用层(用户层)与内核层交互;使用预先的结构体进行操作,如系统open函数......