예제 #1
0
 def unstakeOCEAN(self, BPT_unstake: float, pool: bpool.BPool):
     pool.exitswapPoolAmountIn(
         tokenOut_address=globaltokens.OCEAN_address(),
         poolAmountIn_base=toBase18(BPT_unstake),
         minAmountOut_base=toBase18(0.0),
         from_wallet=self._web3wallet)
     self.resetCachedInfo()
예제 #2
0
 def stakeOCEAN(self, OCEAN_stake: float, pool: bpool.BPool):
     OCEAN = globaltokens.OCEANtoken()
     OCEAN.approve(pool.address,
                   toBase18(OCEAN_stake),
                   from_wallet=self._web3wallet)
     pool.joinswapExternAmountIn(
         tokenIn_address=globaltokens.OCEAN_address(),
         tokenAmountIn_base=toBase18(OCEAN_stake),
         minPoolAmountOut_base=toBase18(0.0),
         from_wallet=self._web3wallet)
     self.resetCachedInfo()
예제 #3
0
    def create_pool(self, 
                   datatoken: Datatoken, 
                   _DT_STAKE: float, 
                   _OCEAN_STAKE: float, 
                   POOL_WEIGHT_DT: float,
                   POOL_WEIGHT_OCEAN: float):
        OCEAN = OCEANtoken()
        dt_stake: int = web3util.toBase18(_DT_STAKE)
        ocean_stake: int = web3util.toBase18(_OCEAN_STAKE)
        pool_weight_dt: int = web3util.toBase18(POOL_WEIGHT_DT)
        pool_weight_ocean: int = web3util.toBase18(POOL_WEIGHT_OCEAN)
        pool_address = BFactory().newBPool(from_wallet=self.web3wallet)
        pool = BPool(pool_address)
        datatoken.approve(pool.address, web3util.toBase18(dt_stake), from_wallet=self.web3wallet)
        OCEAN.approve(pool.address, web3util.toBase18(_OCEAN_STAKE), from_wallet=self.web3wallet)
        pool.bind(
            token_address=datatoken.address, 
            balance_base=dt_stake, 
            weight_base=pool_weight_dt,
            from_wallet=self.web3wallet)
        pool.bind(
            token_address=OCEAN.address,
            balance_base=ocean_stake,
            weight_base=pool_weight_ocean,
            from_wallet=self.web3wallet)
        pool.finalize(from_wallet=self.web3wallet)

        return pool
예제 #4
0
def test_conftest(alice_pool:bpool.BPool, alice_DT:datatoken.Datatoken):
    #are alice_pool's datatokens the same as alice_DT?
    OCEAN_address = globaltokens.OCEAN_address()
    alice_pool_DT_address = [a for a in alice_pool.getFinalTokens()
                             if a != OCEAN_address][0]
    assert alice_pool_DT_address == alice_DT.address
예제 #5
0
 def _BPT_base(self, pool: bpool.BPool) -> int:
     return pool.balanceOf_base(self._address)
예제 #6
0
 def stakeOCEAN(self, OCEAN_stake: float, pool: bpool.BPool):
     pool.joinswapExternAmountIn(tokenIn_address=globaltokens.OCEAN_address,
                                 tokenAmountIn_base=toBase18(OCEAN_stake),
                                 minPoolAmountOut_base=toBase18(0.0),
                                 from_wallet=self._web3wallet)