From 964d2fab5b9b9a3010661344e5e7cb1376218a9c Mon Sep 17 00:00:00 2001 From: Fabian Schuh <Fabian@chainsquad.com> Date: Fri, 15 Sep 2017 14:53:44 +0200 Subject: [PATCH] [operation] Bid_collateral --- bitsharesbase/operationids.py | 4 +- bitsharesbase/operations.py | 18 ++++++ tests/test_transactions.py | 102 ++++++++++++++-------------------- 3 files changed, 62 insertions(+), 62 deletions(-) diff --git a/bitsharesbase/operationids.py b/bitsharesbase/operationids.py index 892b5a92..6494d626 100644 --- a/bitsharesbase/operationids.py +++ b/bitsharesbase/operationids.py @@ -44,7 +44,9 @@ ops = [ "transfer_from_blind", "asset_settle_cancel", "asset_claim_fees", - "fba_distribute" + "fba_distribute", + "bid_collateral", + "execute_bid", ] operations = {o: ops.index(o) for o in ops} diff --git a/bitsharesbase/operations.py b/bitsharesbase/operations.py index a39796a8..157f74ca 100644 --- a/bitsharesbase/operations.py +++ b/bitsharesbase/operations.py @@ -444,3 +444,21 @@ class Worker_create(GrapheneObject): ('url', String(kwargs["url"])), ('initializer', Worker_initializer(kwargs["initializer"])), ])) + + +class Bid_collateral(GrapheneObject): + def __init__(self, *args, **kwargs): + if isArgsThisClass(self, args): + self.data = args[0].data + else: + if len(args) == 1 and len(kwargs) == 0: + kwargs = args[0] + + super().__init__(OrderedDict([ + ('fee', Asset(kwargs["fee"])), + ('bidder', ObjectId(kwargs["bidder"], "account")), + ('additional_collateral', Asset( + kwargs["additional_collateral"])), + ('debt_covered', Asset(kwargs["debt_covered"])), + ('extensions', Set([])), + ])) diff --git a/tests/test_transactions.py b/tests/test_transactions.py index 660dc43d..9d015cb5 100644 --- a/tests/test_transactions.py +++ b/tests/test_transactions.py @@ -471,73 +471,53 @@ class Testcases(unittest.TestCase): "40c241db9cad86e27369d0e5a76b5832d585505ff177d") self.doit() - def test_worker_create(self): - self.op = operations.Worker_create(**{ + def test_asset_reserve(self): + self.op = operations.Asset_reserve(**{ "fee": {"amount": 0, "asset_id": "1.3.0"}, - "owner": "1.2.0", - "work_begin_date": "1970-01-01T00:00:00", - "work_end_date": "1970-01-01T00:00:00", - "daily_pay": 0, - "name": "Myname", - "url": "myURL", - "initializer": [ - 1, {"pay_vesting_period_days": 125} - ] + "payer": "1.2.0", + "amount_to_reserve": {"amount": 1234567890, "asset_id": "1.3.0"}, + "extensions": [] }) - self.cm = ("f68585abf4dce7c804570122000000000000000000000000000" - "0000000000000000000000000064d796e616d65056d7955524c" - "017d0000012049a1430c8045ce7e7a3c0882f537aa9d4547fca" - "65a6c17967c5daf47aad383175e9f95d0187398da8b8f5b4c78" - "561f4427b0fc8758e4a3a92afab9388f849f5a") + self.cm = ("f68585abf4dce7c80457010f00000000000000000000d202964" + "900000000000000011f75065cb1155bfcaabaf55d3357d69679" + "c7c1fe589b6dc0919fe1dde1a305009c360823a40c28907299a" + "40c241db9cad86e27369d0e5a76b5832d585505ff177d") + self.doit() + + def test_bid_collateral(self): + self.op = operations.Bid_collateral(**{ + 'fee': {'amount': 100, + 'asset_id': '1.3.0'}, + 'additional_collateral': { + 'amount': 10000, + 'asset_id': '1.3.22'}, + 'debt_covered': { + 'amount': 100000000, + 'asset_id': '1.3.0'}, + 'bidder': '1.2.29', + 'extensions': [] + }) + self.cm = ("f68585abf4dce7c80457012d6400000000000000001d1027000" + "0000000001600e1f50500000000000000012043b82194bce84d" + "80b6e03eecf1dc24366fc54ca3d4733b3eb3815ca22e4b38b71" + "dff62b3d8f151b15a06eb4ae40fce964044297f8632b4817de6" + "2e94750ce2c5") self.doit() def compareConstructedTX(self): self.maxDiff = None - s = {"fee": {"amount": 1467634, - "asset_id": "1.3.0" - }, - "registrar": "1.2.33", - "referrer": "1.2.27", - "referrer_percent": 3, - "name": "foobar-f124", - "owner": {"weight_threshold": 1, - "account_auths": [], - 'key_auths': [['BTS6pbVDAjRFiw6fkiKYCrkz7PFeL7XNAfefrsREwg8MKpJ9VYV9x', - 1], [ - 'BTS6zLNtyFVToBsBZDsgMhgjpwysYVbsQD6YhP3kRkQhANUB4w7Qp', - 1]], - "address_auths": [] - }, - "active": {"weight_threshold": 1, - "account_auths": [], - 'key_auths': [['BTS6pbVDAjRFiw6fkiKYCrkz7PFeL7XNAfefrsREwg8MKpJ9VYV9x', - 1], [ - 'BTS6zLNtyFVToBsBZDsgMhgjpwysYVbsQD6YhP3kRkQhANUB4w7Qp', - 1], [ - 'BTS8CemMDjdUWSV5wKotEimhK6c4dY7p2PdzC2qM1HpAP8aLtZfE7', - 1 - ]], - "address_auths": [] - }, - "options": {"memo_key": "BTS5TPTziKkLexhVKsQKtSpo4bAv5RnB8oXcG4sMHEwCcTf3r7dqE", - "voting_account": "1.2.5", - "num_witness": 0, - "num_committee": 0, - "votes": [], - "extensions": [] - }, - "extensions": { - "buyback_options": { - "asset_to_buy": "1.3.127", - "asset_to_buy_issuer": "1.2.31", - "markets": ["1.3.20"]}, - "null_ext": {}, - "owner_special_authority": - [1, {"asset": "1.3.127", - "num_top_holders": 10}] - }} - - self.op = operations.Account_create(**s) + self.op = operations.Bid_collateral(**{ + 'fee': {'amount': 100, + 'asset_id': '1.3.0'}, + 'additional_collateral': { + 'amount': 10000, + 'asset_id': '1.3.22'}, + 'debt_covered': { + 'amount': 100000000, + 'asset_id': '1.3.0'}, + 'bidder': '1.2.29', + 'extensions': [] + }) ops = [Operation(self.op)] tx = Signed_Transaction( ref_block_num=ref_block_num, -- GitLab