首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >publicBuyCompleteSets恢复

publicBuyCompleteSets恢复
EN

Ethereum用户
提问于 2019-03-14 12:43:26
回答 1查看 51关注 0票数 1

我正在构建一个契约函数,它为特定的市场购买和分发完整的AugurShares集。(在Rinkeby上测试)。

使用的8月核心版本(node_modules/augur):https://github.com/AugurProject/augur-core

代码语言:javascript
复制
pragma solidity >=0.4.20;

import "./../node_modules/augur/source/contracts/trading/CompleteSets.sol";
import "./../node_modules/augur/source/contracts/reporting/IMarket.sol";

contract BuyCompleteAugurSets {
  CompleteSets completeSetsInstance

  function BuyCompleteAugurSets(address _completeSetsAddress) 
  public
  {
    completeSetsInstance = CompleteSets(_completeSetsAddress);
  }

  function buyAugurShares (
    IMarket _market
  )
  public 
  payable
  {
    uint256 amount = 10 ** 14;
    completeSetsInstance.publicBuyCompleteSets.value(1 ether)(_market, amount);
  }
}

我把这一功能称为“特松露”:

代码语言:javascript
复制
    var res = await contract.buyAugurShares(MARKET_ADDRESS, {value: toWei("1", "ether")});

我查了两遍市场是有效的。我可以通过Augur.js为给定的市场购买成套产品,但我也应该能够通过针对CompeleteSets.sol合同的合同函数来购买这些成套产品。有什么线索吗?

失败交易:https://rinkeby.etherscan.io/address/0x824a064503ba92d54c6e498c0bab6413854fbd6f

EN

回答 1

Ethereum用户

发布于 2019-03-14 13:53:53

感谢奥古尔不和的@aaaaaaaaaaaaa

代码:

代码语言:javascript
复制
contract BuyCompleteSets {
  CompleteSets constant private completeSets = CompleteSets(0x48FCc9d538B9C86bA9D35b3eB0e7f64EE2B4664f);
  address constant private cash = 0x2Da4d465978981BD75BbaC4C9f3bdA10bE0B465c;
  address constant private augur = 0x990B2D2aF7e87cd015A607c3A95d7622c9bBeDe1;


  function BuyCompleteSets(
  ) 
  public 
  {
      ICash(cash).approve(augur, uint256(-1));
  }

  function BuyShares (
      IMarket _market
  )
  public 
  payable
  {
      uint256 amount = msg.value / _market.getNumTicks();
      completeSets.publicBuyCompleteSets.value(msg.value)(_market, amount);
  }
}
票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/68340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档