def from_data(cls, data: dict) -> MsgUndelegate: data = data["value"] return cls( delegator_address=data["delegator_address"], validator_address=data["validator_address"], amount=Coin.from_data(data["amount"]), )
def from_data(cls, data: dict) -> MsgSwap: data = data["value"] return cls( trader=data["trader"], offer_coin=Coin.from_data(data["offer_coin"]), ask_denom=data["ask_denom"], )
def from_data(cls, data: dict) -> Delegation: return cls( delegator_address=data["delegator_address"], validator_address=data["validator_address"], shares=data["shares"], balance=Coin.from_data(data["balance"]), )
def from_data(cls, data: dict) -> PolicyConstraints: return cls( rate_min=Dec(data["rate_min"]), rate_max=Dec(data["rate_max"]), cap=Coin.from_data(data["cap"]), change_max=Dec(data["change_max"]), )
def from_data(cls, data: dict) -> MsgSwapSend: data = data["value"] return cls( from_address=data["from_address"], to_address=data["to_address"], offer_coin=Coin.from_data(data["offer_coin"]), ask_denom=data["ask_denom"], )
def from_data(cls, data: dict) -> MsgCreateValidator: data = data["value"] return cls( description=Description.from_data(data["description"]), commission=CommissionRates.from_data(data["commission"]), min_self_delegation=int(data["min_self_delegation"]), delegator_address=data["delegator_address"], validator_address=data["validator_address"], pubkey=data["pubkey"], value=Coin.from_data(data["value"]), )
def swap_rate(self, offer_coin: Coin, ask_denom: str) -> Coin: """Simulates a swap given an amount offered and a target denom. Args: offer_coin (Coin): amount offered (swap from) ask_denom (str): target denom (swap to) Returns: Coin: simulated amount received """ params = {"offer_coin": str(offer_coin), "ask_denom": ask_denom} res = self._c._get("/market/swap", params) return Coin.from_data(res)
def test_deserializes_coin(): coin = Coin.from_data({"denom": "uluna", "amount": "1000"}) assert coin.denom == "uluna" assert coin.amount == 1000
async def swap_rate(self, offer_coin: Coin, ask_denom: str) -> Coin: params = {"offer_coin": str(offer_coin), "ask_denom": ask_denom} res = await self._c._get(f"/market/swap", params) return Coin.from_data(res.get("result"))