Compound 是 DeFi 的明星项目之一,定位于去中心化的借贷协议。可以称之为“去中心化的算法银行”。Compound 协议是为了开放金融系统而为开发者构建的开源协议,基于 Compound 协议可以开发一系列新的金融应用程序。

在上一章,我们进行了Compound的简单部署,现在我们来进行简单测试(测试用户提供和取回资产/ERC20代币)。

我们这次的测试工具仍然先使用MyEtherWallet,在主界面选择 MEW CX ,选择接受Terms,然后点击访问我的钱包,就地连接到METAMASk。此时点击左边Contract栏目下的interact with Contract,在右边的界面里输入合约地址和ABI,点击continue,就可以调用该合约啦。

注:请把网络切换至Kovan网络,切换如果显示不正确刷新一次。

一、添加市场

用户向某个市场(CToken)提供资产的前提条件是平台必须有这个市场,在第二章我们部署了cUSDT,我们就以这个市场为例进行测试。注意:我们的钱包账号必须为Unitroller合约的管理员,也就是上次部署合约的账号。

  1. 我们打开Comptroller.sol,找到_supportMarket函数,从注释中可以看到,该函数用来添加一个CToken(市场)。这里要专门提及的是Compound没有采用常用的不符合预期就重置交易的方式让交易失败,而是返回一个错误代码。因此必须检查这个返回值,由于我们是外部账号调用,无法获取返回值,所以我们等会可采用事件MarketListed是否触发的方式来判断市场是否添加进去。

  2. 注意:在前面两章我们提过,Comptroller采用的是代理委托方式,代理合约为Unitroller,实现合约(相当于一个逻辑库)为Comptroller。因此在MyEtherWallet的合约交互设置界面时,合约地址输入Unitroller的地址,也就是0xeF960E96a4D15f4a7c09cE4dB70019F9E27D7Ad8 ,而ABI却要输入Comptroller合约的ABI。

  3. 输入地址和ABI后,我们点击continue,进行函数选择界面,我们在右边Select an item按钮那选择_supportMarket,在下面的CToken参数栏输入我们上次部署的cUSDT地址:0x83f7A6B8D106f0440ab58744A98E65b43aD843F3。点击Write按钮,会自动弹出钱包进行交易,点击钱包上的确定即可。

  4. 等待几秒后,点击右上角红点提示的铃铛按钮,会弹出本次交易的概览,我们点击Transaction (Success),再点击下面的交易哈希,会自动链接到Kovan浏览器查看交易详情。https://kovan.etherscan.io/tx/0xccda1041c4fbf975b83808f392cc50af893eb4981d70e6fb6441d4e5ceea43b8

  5. 我们点击详情中的日志界面,可以看到的确触发了一个日志,数据就是我们刚才输入的cUSDT地址,对照一下就是要触发的事件了。

  6. 我们接着在函数栏目里选择getAllMarkets函数,它会返回一个地址数组,可以看到,只有一个元素,就是我们刚才添加的cUSDT地址,证明我们添加成功了。

  7. 我们再添加一个cDAI,地址为:“0x991b142B309F201435c40E2b183A8d1f3fa41f70”,相同的操作,添加成功后我们再次查看getAllMarkets函数,这下尴尬

    Compound学习(三) 测试存入和取回资产相关推荐

    1. Compound学习(一) README.md

      Compound学习(一) README.md Compound 是 DeFi 的明星项目之一,定位于去中心化的借贷协议.可以称之为"去中心化的算法银行".Compound 协议是 ...

    2. Compound学习(二) 简单部署

      Compound学习(二) 简单部署 Compound 是 DeFi 的明星项目之一,定位于去中心化的借贷协议.可以称之为"去中心化的算法银行".Compound 协议是为了开放金 ...

    3. Docker学习三:Docker 数据管理

      前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

    4. 深度学习三(PyTorch物体检测实战)

      深度学习三(PyTorch物体检测实战) 文章目录 深度学习三(PyTorch物体检测实战) 1.网络骨架:Backbone 1.1.神经网络基本组成 1.1.1.卷积层 1.1.2.激活函数层 1. ...

    5. 深度学习三巨头共获 2018 年图灵奖(经典重温)!

      整理 | 琥珀 出品 | AI科技大本营(ID:rgznai100) 2019 年 3 月 27 日,ACM 宣布,深度学习三位大牛 Yoshua Bengio.Yann LeCun.Geoffrey ...

    6. 深度学习三十年创新路

      深度学习三十年创新路 编者注:深度学习火了,从任何意义上,大家谈论它的热衷程度,都超乎想象.但是,似乎很少有人提出不同的声音,说深度学习的火热,有可能是过度的繁荣,乃至不理性的盲从.而这次,有不同的想 ...

    7. AVI音视频封装格式学习(三)——AVI 数据结构解析

      这里介绍AVI会使用到的数据结构,为了避免翻译引入歧义,决定该部分还是使用英文原文,如后续有时间再进行翻译. AVIMAINHEADER structure The AVIMAINHEADER str ...

    8. 深度学习还没入门?看看深度学习三巨头的Deep Learning综述(4)

      深度学习还没入门?看看深度学习三巨头的Deep Learning综述(1) 深度学习还没入门?看看深度学习三巨头的Deep Learning综述(2) 深度学习还没入门?看看深度学习三巨头的Deep ...

    9. PHP初级学习(三)

      PHP初级学习(三) PHP函数 php函数名以字母或下划线开头. 语法风格类似于javascript. 看一下语法 <?phpfunction functionName(){//函数体} ?& ...

    最新文章

    1. [Notice]博客地址转移 vitostack.com
    2. python绘制条形图-python 中条形图绘制
    3. Python3 数字转换为字符串str()函数
    4. Cython——[AttributeError: ‘MSVCCompiler‘ object has no attribute ‘compiler_so‘]解决方案
    5. 【渝粤教育】电大中专品牌管理与推广 (2)作业 题库
    6. python爬取知乎标题_python爬虫 爬取知乎文章标题及评论
    7. 韩山师范计算机科学与技术,韩山师范学院计算机科学与技术专业
    8. 1195.最长最短文本
    9. AS3之BitmapData学习整理
    10. python opencv 界面按钮_如何使用Python构建简单的UI?
    11. 5.4 tensorflow2实现消除多重共线性、人均网络消费回归分析——python实战
    12. 毕业生写论文必备!!从一级目录到三级目录,自动生成美观的目录
    13. Ubuntu Desktop LTS - 开机数字小键盘
    14. HTML制作诗词,利用 html2canvas 做个简单的诗词卡片生成器
    15. 现实中的项目范围变更
    16. 数据增强-亮度-对比度-色彩饱和度-色调-锐度 不改变图像大小
    17. 阿里云windows服务器重置密码并连接远程桌面
    18. HTML5期末大作业:旅游家乡景点网站设计——河北(8页) HTML+CSS+JavaScript 学生DW网页设计作业成品 html旅游网页 web课程设计网页规划与设计 html景点介绍...
    19. CFS调度器负载计算
    20. 域名注册,选择注册商的安全重要性

    热门文章

    1. android wi-fi框架,Android Wi-Fi 网络选择
    2. C++ std::multiset返回值 has no member named ‘first’
    3. opendns_如何使用OpenDNS或Google DNS设置Verizon FIOS路由器
    4. 20分钟搭建个人网站重置版3.0
    5. 导出excel时报错
    6. 怎样把软件从计算机移到桌面上,怎么把电脑软件移动到D盘
    7. 视频教程-Python数据分析(统计分析)视频教程-机器学习
    8. matlab读txt文件
    9. 30个高质量的数据集网站,你必须要试试!
    10. iPad越狱失败 越狱恢复