dapp智能合约借贷理财开发规则丨dapp智能合约借贷理财系统开发技术详细及案例

简介:  数字经济是以数据资源为关键要素,以数字科技为支撑的经济形态。数字产业化和产业数字化是数字经济中的重点内容,数字产业化主要是推动数字科技形成规模化产业,产业数字化主要是利用数字科技支撑和推动传统产业转型升级。在这个过程中可以基于区块链等数字科技推动信息技术服务加速数字产业化,依托元宇宙的新场景拉动信息消费促进产业数字化

  数字经济是以数据资源为关键要素,以数字科技为支撑的经济形态。数字产业化和产业数字化是数字经济中的重点内容,数字产业化主要是推动数字科技形成规模化产业,产业数字化主要是利用数字科技支撑和推动传统产业转型升级。在这个过程中可以基于区块链等数字科技推动信息技术服务加速数字产业化,依托元宇宙的新场景拉动信息消费促进产业数字化。

  面向对象的风格,Token类,实例化对象后可以调用其中的成员方法,以下是主要的几个方法:

  1.price()

  def price(self,amount=int(1e18),swap_token_address=ETH_ADDRESS):

  swap_token_address=Web3.toChecksumAddress(swap_token_address)

  return self.router.functions.getAmountsOut(amount,[self.address,swap_token_address]).call()[-1]

  传入的参数分别是想要交易的数量与想要获得的代币地址(默认是eth地址)。

  可以理解为返回指定数量的代币价值。

  2.received_amount_by_swap()

  def received_amount_by_swap(self,input_token_amount=int(1e18),input_token_address=ETH_ADDRESS):

  input_token_address=Web3.toChecksumAddress(input_token_address)

  return self.router.functions.getAmountsOut(input_token_amount,[input_token_address,self.address]).call()[-1]

  可以理解为用指定数量的其他代币换取该代币,返回能换得该代币的数量。

  3.buy()

  def buy(self,consumed_token_amount,consumed_token_address=ETH_ADDRESS,slippage=0.01,timeout=900,speed=1):

  gas_price=int(self.web3.eth.gasPrice*speed)

  consumed_token_address=Web3.toChecksumAddress(consumed_token_address)

  received_amount=self.received_amount_by_swap(consumed_token_amount,consumed_token_address)

  min_out=int(received_amount*(1-slippage))

  if consumed_token_address==self.ETH_ADDRESS:

  func=self.router.functions.swapExactETHForTokens(min_out,[consumed_token_address,self.address],

  self.wallet_address,int(time.time()+timeout))

  params=self.create_transaction_params(value=consumed_token_amount,gas_price=gas_price)

  else:

  if not self.is_approved(consumed_token_address,consumed_token_amount):

  self.approve(consumed_token_address,gas_price=gas_price,timeout=timeout)

  func=self.router.functions.swapExactTokensForTokens(consumed_token_amount,min_out,

  [consumed_token_address,self.address],

  self.wallet_address,int(time.time()+timeout))

  params=self.create_transaction_params(gas_price=gas_price)

  return self.send_transaction(func,params)

  一共有5个参数:

  consumed_token_address:设置所支付的代币的erc20合约地址。

  consumed_token_amount:设置所支付的代币数量。

  slippage:设置所能容忍的滑点,默认为百分之一。

  timeout:设置该笔交易的超时时间。

  speed:设置该笔交易的区块确认速度,通过平均的gas_price乘以speed设置该笔交易的gas_price,所以speed的值越大,gas_price也越大,使得该笔交易的确认速度也越快。

相关文章
|
网络架构 Docker 容器
Docker容器动态添加端口
Docker容器动态添加端口
431 0
|
机器学习/深度学习 搜索推荐 算法
Learning Disentangled Representations for Recommendation | NIPS 2019 论文解读
近年来随着深度学习的发展,推荐系统大量使用用户行为数据来构建用户/商品表征,并以此来构建召回、排序、重排等推荐系统中的标准模块。普通算法得到的用户商品表征本身,并不具备可解释性,而往往只能提供用户-商品之间的attention分作为商品粒度的用户兴趣。我们在这篇文章中,想仅通过用户行为,学习到本身就具备一定可解释性的解离化的用户商品表征,并试图利用这样的商品表征完成单语义可控的推荐任务。
24084 0
Learning Disentangled Representations for Recommendation | NIPS 2019 论文解读
|
11月前
|
SQL 开发框架 .NET
C#一分钟浅谈:数据绑定与数据源控件
在Web开发中,数据绑定和数据源控件是实现动态网页的关键技术。本文从基础概念入手,详细讲解数据绑定的原理及其在ASP.NET中的应用,并介绍常见数据绑定方式:手动绑定和自动绑定。接着,文章重点介绍了ASP.NET中的数据源控件,如`SqlDataSource`、`ObjectDataSource`、`XmlDataSource`和`LinqDataSource`,并通过具体示例演示如何使用`SqlDataSource`和`GridView`进行数据绑定。最后,还列举了一些常见问题及其解决办法,帮助读者更好地理解和应用这些技术。
170 4
|
SQL Oracle 关系型数据库
[20151217]12c标量子查询.txt
[20151217]12c标量子查询.txt --我曾经写过blog,提到许多开发没有根据情况滥用子查询。 --而在12c下呢? So starting with Oracle 12c, the CBO transformation engine c...
1145 0
钉钉回传中文信息乱码怎么处理?
钉钉回传中文信息乱码怎么处理?
885 0
|
存储 消息中间件 JSON
DDD基础教程:一文带你读懂DDD分层架构
DDD基础教程:一文带你读懂DDD分层架构
|
存储 缓存 DataWorks
DataWorks操作报错合集之配置项目连通oss数据源 , 报The request signature we calculated does not match the signature you provided.如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
RestTemplate调用https接口跳过证书验证
RestTemplate调用https接口跳过证书验证
872 0
HTML5+CSS3海绵宝宝网站设计(五)
HTML5+CSS3海绵宝宝网站设计(五),一起来学习吧。
HTML5+CSS3海绵宝宝网站设计(五)