我正在构建一个契约函数,它为特定的市场购买和分发完整的AugurShares集。(在Rinkeby上测试)。
使用的8月核心版本(node_modules/augur):https://github.com/AugurProject/augur-core
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);
}
}我把这一功能称为“特松露”:
var res = await contract.buyAugurShares(MARKET_ADDRESS, {value: toWei("1", "ether")});我查了两遍市场是有效的。我可以通过Augur.js为给定的市场购买成套产品,但我也应该能够通过针对CompeleteSets.sol合同的合同函数来购买这些成套产品。有什么线索吗?
失败交易:https://rinkeby.etherscan.io/address/0x824a064503ba92d54c6e498c0bab6413854fbd6f
发布于 2019-03-14 13:53:53
感谢奥古尔不和的@aaaaaaaaaaaaa
代码:
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);
}
}https://ethereum.stackexchange.com/questions/68340
复制相似问题