Skip to content

Commit 87ace0f

Browse files
committed
feat: add extra options to asset-options per extension
1 parent d3ed3bf commit 87ace0f

File tree

2 files changed

+41
-7
lines changed

2 files changed

+41
-7
lines changed

bitsharesbase/objects.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,10 @@ def __init__(self, *args, **kwargs):
242242
),
243243
),
244244
("description", String(kwargs["description"])),
245-
("extensions", Set([])),
245+
(
246+
"extensions",
247+
AdditionalAssetOptionsType(kwargs.get("extensions")),
248+
),
246249
]
247250
)
248251
)
@@ -497,3 +500,29 @@ def NestedLimitOrderAutoAction(value):
497500
sorted_options = [
498501
("on_fill", NestedLimitOrderAutoAction),
499502
]
503+
504+
505+
class AdditionalAssetOptionsType(Extension):
506+
def RewardPercent(value):
507+
if value:
508+
return Uint16(value)
509+
else:
510+
return None
511+
512+
def WhitelistMarketFeeSharing(value):
513+
if value:
514+
return Array([ObjectId(o, "account") for o in value])
515+
else:
516+
return None
517+
518+
def TakerFeePercent(value):
519+
if value:
520+
return Uint16(value)
521+
else:
522+
return None
523+
524+
sorted_options = [
525+
("reward_percent", RewardPercent),
526+
("whitelist_market_fee_sharing", WhitelistMarketFeeSharing),
527+
("taker_fee_percent", TakerFeePercent),
528+
]

tests/test_transactions.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,11 @@ def test_asset_create(self):
649649
"whitelist_markets": ["1.3.0"],
650650
"blacklist_markets": ["1.3.1"],
651651
"description": "Foobar think",
652-
"extensions": [],
652+
"extensions": {
653+
"reward_percent": 145,
654+
"whitelist_market_fee_sharing": ["1.2.215"],
655+
"taker_fee_percent": 675,
656+
},
653657
},
654658
"bitasset_opts": {
655659
"feed_lifetime_sec": 86400,
@@ -668,12 +672,13 @@ def test_asset_create(self):
668672
"f68585abf4dce7c80457010a000000000000000000000554484"
669673
"94e47000080c6a47e8d030000000080c6a47e8d03004f000000"
670674
"000000000000000000000000000000000000010001010100010"
671-
"10c466f6f626172207468696e6b000180510100078051010064"
672-
"0032000000000000011f1b8ac491bb327921d9346d543e530d8"
673-
"8acb68bade58296a7a27b0a74a28eaca762260dbb905a6415f6"
674-
"225a8028a810de6290badc29d16fea0ffd88bc8c0cbec4"
675+
"10c466f6f626172207468696e6b030091000101d70102a30201"
676+
"805101000780510100640032000000000000012049dd5c7f6fa"
677+
"e9b7e071c59911cf61b12f7983f71eaa576b4b46313e0af27c5"
678+
"6e20b781e8736362447645547c050c1fd5ae39881f6da68dc71"
679+
"e230a64cb60c8db"
675680
)
676-
self.doit()
681+
self.doit(1)
677682

678683
def test_asset_update(self):
679684
self.op = operations.Asset_update(

0 commit comments

Comments
 (0)