Skip to content

Latest commit

 

History

History

BondswapSubstrate

Depolyed on Plasm

ERC20: 0xe0605d8030e7C4f8770Ef670D574edC945197D40

PoolFactory: 0xbEc5b1faDE897D49A10DC02fD405dCa2aC4C752f

BidPoolFactory: 0x66bB595Bc60C8Af0a306aa86EDf96A88D3A59e9A

Followed: https://docs.plasmnet.io/workshop-and-tutorial/evm-smart-contracts Custon RPC: http://8.210.56.181:9922

Compile the below abi to interact with Contracts through Remix

// SPDX-License-Identifier: MIT pragma solidity ^0.6.3;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.1.0/contracts/token/ERC20/IERC20.sol";

contract ABIFixedPoolFactory {

struct FixedPool {
    string name;
    address payable maker;

    uint32 endTime;
    bool enabled;

    uint256 tokenRate;
    address tokenaddr;
    uint256 tokenAmount; // left amount
    uint256 units;
    bool onlyHolder;
}

mapping(uint32 => FixedPool) public fixedPools;
uint32 public fixedPoolCnt = 1000;


function createFixedPool(string memory _name, address _tracker, uint256 _amount, uint256 _rate, uint256 _units, uint32 _endTime, bool _onlyHolder)
payable public {
    
}

function fixedPoolJoin(uint32 _id, uint256 _value)  payable public {
}

function fixedPoolClose(uint32 _id) public {
}

} contract ABIPrivFixedPoolFactory {

struct PrivFixedPool {
    string name;
    address payable maker;

    uint32 endTime;
    bool enabled;

    uint256 tokenRate;
    address tokenaddr;
    uint256 tokenAmount; // left amount
    uint256 units;
    address[] takers;
}

mapping(uint32 => PrivFixedPool) public privFixedPools;

uint32 public privFixedPoolCnt = 300;

function createPrivFixedPool(string memory  _name, address _tracker, uint256 _amount, uint256 _rate, uint256 _units, uint32 _endTime,
address[] memory _takers)
payable public {

}

function privFixedPoolJoin(uint32 _id, uint32 _index, uint256 _value)  payable public {
    
}

function privFixedPoolClose(uint32 _id) public {
    
}


function privFixedPoolTakers(uint32 _id) public view returns(address[] memory){
    PrivFixedPool storage _pool = privFixedPools[_id];
    return _pool.takers;
}

}

contract ABIPoolFactory is ABIFixedPoolFactory, ABIPrivFixedPoolFactory {}

contract BidPoolFactory {

struct BidPool {
    string name;
    address payable maker;

    uint32 endTime;
    bool enabled;

    address tokenaddr;
    uint256 tokenAmount; // maker erc20 token amount

    uint256 takerAmountTotal; // taker ether coin amount
    uint256 makerReceiveTotal; // maker received = all - fee
    mapping(address=>uint256) takerAmountMap; // taker ether coin amount

    bool onlyHolder; // only token holder could join
}

mapping(uint32 => BidPool) public bidPools;
uint32 public bidPoolCnt = 100;

function createBidPool(string memory  _name, address _tracker, uint256 _amount, uint32 _endTime, bool _onlyHolder) payable public {
   
}

function bidPoolJoin(uint32 _id, uint256 _value) payable public {
}

function bidPoolTakerWithdraw(uint32 _id) public {
}

function bidPoolMakerWithdraw(uint32 _id) public {
}

}