-
Mariusz Trela authoredMariusz Trela authored
operations.py 40.26 KiB
# -*- coding: utf-8 -*-
from beemgraphenebase.py23 import bytes_types, integer_types, string_types, text_type
from collections import OrderedDict
import json
from binascii import hexlify, unhexlify
import re
from beemgraphenebase.types import (
Uint8, Int16, Uint16, Uint32, Uint64,
Varint32, Int64, String, Bytes, Void,
Array, PointInTime, Signature, Bool,
Set, Fixed_array, Optional, Static_variant,
Map, Id, HexString
)
from .objects import GrapheneObject, isArgsThisClass
from beemgraphenebase.account import PublicKey
from beemgraphenebase.py23 import PY2, PY3
from .objects import (
Operation,
Memo,
Amount,
Extension,
Price,
WitnessProps,
Permission,
ExchangeRate,
Beneficiaries,
Beneficiary,
CommentOptionExtensions,
UpdateProposalExtensions
)
default_prefix = "STM"
def check_for_class(self, args):
if isArgsThisClass(self, args):
self.data = args[0].data
return True
else:
return False
class Transfer(GrapheneObject):
def __init__(self, *args, **kwargs):
# Allow for overwrite of prefix
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
if "memo" not in kwargs:
kwargs["memo"] = ""
if isinstance(kwargs["memo"], dict):
kwargs["memo"]["prefix"] = prefix
memo = Optional(Memo(**kwargs["memo"]))
elif isinstance(kwargs["memo"], string_types):
memo = (String(kwargs["memo"]))
else:
memo = Optional(Memo(kwargs["memo"]))
super(Transfer, self).__init__(OrderedDict([
('from', String(kwargs["from"])),
('to', String(kwargs["to"])),
('amount', Amount(kwargs["amount"], prefix=prefix, json_str=json_str)),
('memo', memo),
]))
class Vote(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Vote, self).__init__(OrderedDict([
('voter', String(kwargs["voter"])),
('author', String(kwargs["author"])),
('permlink', String(kwargs["permlink"])),
('weight', Int16(kwargs["weight"])),
]))
class Transfer_to_vesting(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
super(Transfer_to_vesting, self).__init__(OrderedDict([
('from', String(kwargs["from"])),
('to', String(kwargs["to"])),
('amount', Amount(kwargs["amount"], prefix=prefix, json_str=json_str)),
]))
class Withdraw_vesting(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
super(Withdraw_vesting, self).__init__(OrderedDict([
('account', String(kwargs["account"])),
('vesting_shares', Amount(kwargs["vesting_shares"], prefix=prefix)),
]))
class Account_witness_vote(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Account_witness_vote, self).__init__(OrderedDict([
('account', String(kwargs["account"])),
('witness', String(kwargs["witness"])),
('approve', Bool(bool(kwargs["approve"]))),
]))
class Account_witness_proxy(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Account_witness_proxy, self).__init__(OrderedDict([
('account', String(kwargs["account"])),
('proxy', String(kwargs["proxy"])),
]))
class Custom(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Custom, self).__init__(OrderedDict([
('required_auths',
Array([String(o) for o in kwargs["required_auths"]])),
('id', Uint16(int(kwargs["id"]))),
('data', String(kwargs["data"])),
]))
class Custom_binary(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Custom_binary, self).__init__(OrderedDict([
('id', Uint16(int(kwargs["id"]))),
('data', String(kwargs["data"])),
]))
class Op_wrapper(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
super(Op_wrapper, self).__init__(OrderedDict([
('op', Operation(kwargs["op"], prefix=prefix)),
]))
class Account_create(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
if not len(kwargs["new_account_name"]) <= 16:
raise AssertionError("Account name must be at most 16 chars long")
meta = ""
if "json_metadata" in kwargs and kwargs["json_metadata"]:
if isinstance(kwargs["json_metadata"], dict):
meta = json.dumps(kwargs["json_metadata"])
else:
meta = kwargs["json_metadata"]
super(Account_create, self).__init__(OrderedDict([
('fee', Amount(kwargs["fee"], prefix=prefix, json_str=json_str)),
('creator', String(kwargs["creator"])),
('new_account_name', String(kwargs["new_account_name"])),
('owner', Permission(kwargs["owner"], prefix=prefix)),
('active', Permission(kwargs["active"], prefix=prefix)),
('posting', Permission(kwargs["posting"], prefix=prefix)),
('memo_key', PublicKey(kwargs["memo_key"], prefix=prefix)),
('json_metadata', String(meta)),
]))
class Account_create_with_delegation(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
if not len(kwargs["new_account_name"]) <= 16:
raise AssertionError("Account name must be at most 16 chars long")
meta = ""
if "json_metadata" in kwargs and kwargs["json_metadata"]:
if isinstance(kwargs["json_metadata"], dict):
meta = json.dumps(kwargs["json_metadata"])
else:
meta = kwargs["json_metadata"]
super(Account_create_with_delegation, self).__init__(OrderedDict([
('fee', Amount(kwargs["fee"], prefix=prefix, json_str=json_str)),
('delegation', Amount(kwargs["delegation"], prefix=prefix, json_str=json_str)),
('creator', String(kwargs["creator"])),
('new_account_name', String(kwargs["new_account_name"])),
('owner', Permission(kwargs["owner"], prefix=prefix)),
('active', Permission(kwargs["active"], prefix=prefix)),
('posting', Permission(kwargs["posting"], prefix=prefix)),
('memo_key', PublicKey(kwargs["memo_key"], prefix=prefix)),
('json_metadata', String(meta)),
('extensions', Array([])),
]))
class Account_update(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
if "owner" in kwargs:
owner = Optional(Permission(kwargs["owner"], prefix=prefix))
else:
owner = Optional(None)
if "active" in kwargs:
active = Optional(Permission(kwargs["active"], prefix=prefix))
else:
active = Optional(None)
if "posting" in kwargs:
posting = Optional(Permission(kwargs["posting"], prefix=prefix))
else:
posting = Optional(None)
meta = ""
if "json_metadata" in kwargs and kwargs["json_metadata"]:
if isinstance(kwargs["json_metadata"], dict):
meta = json.dumps(kwargs["json_metadata"])
else:
meta = kwargs["json_metadata"]
super(Account_update, self).__init__(OrderedDict([
('account', String(kwargs["account"])),
('owner', owner),
('active', active),
('posting', posting),
('memo_key', PublicKey(kwargs["memo_key"], prefix=prefix)),
('json_metadata', String(meta)),
]))
class Account_update2(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
extensions = Array([])
if "owner" in kwargs:
owner = Optional(Permission(kwargs["owner"], prefix=prefix))
else:
owner = Optional(None)
if "active" in kwargs:
active = Optional(Permission(kwargs["active"], prefix=prefix))
else:
active = Optional(None)
if "posting" in kwargs:
posting = Optional(Permission(kwargs["posting"], prefix=prefix))
else:
posting = Optional(None)
if "memo_key" in kwargs:
memo_key = Optional(PublicKey(kwargs["memo_key"], prefix=prefix))
else:
memo_key = Optional(None)
meta = ""
if "json_metadata" in kwargs and kwargs["json_metadata"]:
if isinstance(kwargs["json_metadata"], dict):
meta = json.dumps(kwargs["json_metadata"])
else:
meta = kwargs["json_metadata"]
posting_meta = ""
if "posting_json_metadata" in kwargs and kwargs["posting_json_metadata"]:
if isinstance(kwargs["posting_json_metadata"], dict):
posting_meta = json.dumps(kwargs["posting_json_metadata"])
else:
posting_meta = kwargs["posting_json_metadata"]
super(Account_update2, self).__init__(OrderedDict([
('account', String(kwargs["account"])),
('owner', owner),
('active', active),
('posting', posting),
('memo_key', memo_key),
('json_metadata', String(meta)),
('posting_json_metadata', String(posting_meta)),
('extensions', extensions)
]))
class Create_proposal(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
extensions = Array([])
super(Create_proposal, self).__init__(
OrderedDict([
('creator', String(kwargs["creator"])),
('receiver', String(kwargs["receiver"])),
('start_date', PointInTime(kwargs["start_date"])),
('end_date', PointInTime(kwargs["end_date"])),
('daily_pay', Amount(kwargs["daily_pay"], prefix=prefix, json_str=json_str)),
('subject', String(kwargs["subject"])),
('permlink', String(kwargs["permlink"])),
('extensions', extensions)
]))
class Update_proposal_votes(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
extensions = Array([])
proposal_ids = []
for e in kwargs["proposal_ids"]:
proposal_ids.append(Uint64(e))
super(Update_proposal_votes, self).__init__(
OrderedDict([
('voter', String(kwargs["voter"])),
('proposal_ids', Array(proposal_ids)),
('approve', Bool(kwargs["approve"])),
('extensions', extensions)
]))
class Remove_proposal(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
extensions = Array([])
proposal_ids = []
for e in kwargs["proposal_ids"]:
proposal_ids.append(Uint64(e))
super(Remove_proposal, self).__init__(
OrderedDict([
('proposal_owner', String(kwargs["proposal_owner"])),
('proposal_ids', Array(proposal_ids)),
('extensions', extensions)
]))
class Update_proposal(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
extensions = Array([])
if "end_date" in kwargs and kwargs["end_date"]:
extension = { 'type': 'update_proposal_end_date', 'value': {'end_date': kwargs["end_date"]} }
extensions = Array([UpdateProposalExtensions(extension)])
super(Update_proposal, self).__init__(
OrderedDict([
('proposal_id', Uint64(kwargs["proposal_id"])),
('creator', String(kwargs["creator"])),
('daily_pay', Amount(kwargs["daily_pay"], prefix = prefix)),
('subject', String(kwargs["subject"])),
('permlink', String(kwargs["permlink"])),
('extensions', extensions)
]))
class Witness_set_properties(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.pop("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
extensions = Array([])
props = {}
for k in kwargs["props"]:
if "key" == k[0]:
block_signing_key = (PublicKey(k[1], prefix=prefix))
props["key"] = repr(block_signing_key)
elif "new_signing_key" == k[0]:
new_signing_key = (PublicKey(k[1], prefix=prefix))
props["new_signing_key"] = repr(new_signing_key)
for k in kwargs["props"]:
if k[0] in ["key", "new_signing_key"]:
continue
if isinstance(k[1], str) and PY3:
is_hex = re.fullmatch(r'[0-9a-fA-F]+', k[1] or '') is not None
elif isinstance(k[1], str) and PY2:
is_hex = re.match(r'[0-9a-fA-F]+', k[1] or '') is not None
else:
is_hex = False
if isinstance(k[1], int) and k[0] in ["account_subsidy_budget", "account_subsidy_decay", "maximum_block_size"]:
props[k[0]] = (hexlify(Uint32(k[1]).__bytes__())).decode()
elif isinstance(k[1], int) and k[0] in ["sbd_interest_rate", "hbd_interest_rate"]:
props[k[0]] = (hexlify(Uint16(k[1]).__bytes__())).decode()
elif not isinstance(k[1], str) and k[0] in ["account_creation_fee"]:
props[k[0]] = (hexlify(Amount(k[1], prefix=prefix, json_str=json_str).__bytes__())).decode()
elif not is_hex and isinstance(k[1], str) and k[0] in ["account_creation_fee"]:
props[k[0]] = (hexlify(Amount(k[1], prefix=prefix, json_str=json_str).__bytes__())).decode()
elif not isinstance(k[1], str) and k[0] in ["sbd_exchange_rate", "hbd_exchange_rate"]:
if 'prefix' not in k[1]:
k[1]['prefix'] = prefix
props[k[0]] = (hexlify(ExchangeRate(k[1]).__bytes__())).decode()
elif not is_hex and k[0] in ["url"]:
props[k[0]] = (hexlify(String(k[1]).__bytes__())).decode()
else:
props[k[0]] = (k[1])
props_list = []
for k in props:
props_list.append(([String(k), HexString(props[k])]))
props_list = sorted(
props_list,
key=lambda x: str(x[0]),
reverse=False,
)
map_props = Map(props_list)
super(Witness_set_properties, self).__init__(OrderedDict([
('owner', String(kwargs["owner"])),
('props', map_props),
('extensions', extensions),
]))
class Witness_update(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.pop("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
if "block_signing_key" in kwargs and kwargs["block_signing_key"]:
block_signing_key = (PublicKey(kwargs["block_signing_key"], prefix=prefix))
else:
block_signing_key = PublicKey(
prefix + "1111111111111111111111111111111114T1Anm", prefix=prefix)
if 'prefix' not in kwargs['props']:
kwargs['props']['prefix'] = prefix
super(Witness_update, self).__init__(OrderedDict([
('owner', String(kwargs["owner"])),
('url', String(kwargs["url"])),
('block_signing_key', block_signing_key),
('props', WitnessProps(kwargs["props"])),
('fee', Amount(kwargs["fee"], prefix=prefix, json_str=json_str)),
]))
class Comment(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
meta = ""
if "json_metadata" in kwargs and kwargs["json_metadata"]:
if (isinstance(kwargs["json_metadata"], dict) or isinstance(kwargs["json_metadata"], list)):
meta = json.dumps(kwargs["json_metadata"])
else:
meta = kwargs["json_metadata"]
super(Comment, self).__init__(
OrderedDict([
('parent_author', String(kwargs["parent_author"])),
('parent_permlink', String(kwargs["parent_permlink"])),
('author', String(kwargs["author"])),
('permlink', String(kwargs["permlink"])),
('title', String(kwargs["title"])),
('body', String(kwargs["body"])),
('json_metadata', String(meta)),
]))
class Custom_json(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
if "json" in kwargs and kwargs["json"]:
if (isinstance(kwargs["json"], dict) or isinstance(kwargs["json"], list)):
js = json.dumps(kwargs["json"], separators=(',',':'))
else:
js = kwargs["json"]
if len(kwargs["id"]) > 32:
raise Exception("'id' too long")
super(Custom_json, self).__init__(
OrderedDict([
('required_auths',
Array([String(o) for o in kwargs["required_auths"]])),
('required_posting_auths',
Array([
String(o) for o in kwargs["required_posting_auths"]
])),
('id', String(kwargs["id"])),
('json', String(js)),
]))
class Comment_options(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
# handle beneficiaries
if "beneficiaries" in kwargs and kwargs['beneficiaries']:
kwargs['extensions'] = [[0, {'beneficiaries': kwargs['beneficiaries']}]]
extensions = Array([])
if "extensions" in kwargs and kwargs["extensions"]:
extensions = Array([CommentOptionExtensions(o) for o in kwargs["extensions"]])
if "percent_hbd" in kwargs:
super(Comment_options, self).__init__(
OrderedDict([
('author', String(kwargs["author"])),
('permlink', String(kwargs["permlink"])),
('max_accepted_payout',
Amount(kwargs["max_accepted_payout"], prefix=prefix, json_str=json_str)),
('percent_hbd',
Uint16(int(kwargs["percent_hbd"]))),
('allow_votes', Bool(bool(kwargs["allow_votes"]))),
('allow_curation_rewards',
Bool(bool(kwargs["allow_curation_rewards"]))),
('extensions', extensions),
]))
else:
super(Comment_options, self).__init__(
OrderedDict([
('author', String(kwargs["author"])),
('permlink', String(kwargs["permlink"])),
('max_accepted_payout',
Amount(kwargs["max_accepted_payout"], prefix=prefix)),
('percent_steem_dollars',
Uint16(int(kwargs["percent_steem_dollars"]))),
('allow_votes', Bool(bool(kwargs["allow_votes"]))),
('allow_curation_rewards',
Bool(bool(kwargs["allow_curation_rewards"]))),
('extensions', extensions),
]))
class Delete_comment(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Delete_comment, self).__init__(
OrderedDict([
('author', String(kwargs["author"])),
('permlink', String(kwargs["permlink"])),
]))
class Feed_publish(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
if 'prefix' not in kwargs['exchange_rate']:
kwargs['exchange_rate']['prefix'] = prefix
super(Feed_publish, self).__init__(
OrderedDict([
('publisher', String(kwargs["publisher"])),
('exchange_rate', ExchangeRate(kwargs["exchange_rate"])),
]))
class Convert(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
super(Convert, self).__init__(
OrderedDict([
('owner', String(kwargs["owner"])),
('requestid', Uint32(kwargs["requestid"])),
('amount', Amount(kwargs["amount"], prefix=prefix, json_str=json_str)),
]))
class Set_withdraw_vesting_route(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Set_withdraw_vesting_route, self).__init__(
OrderedDict([
('from_account', String(kwargs["from_account"])),
('to_account', String(kwargs["to_account"])),
('percent', Uint16((kwargs["percent"]))),
('auto_vest', Bool(kwargs["auto_vest"])),
]))
class Limit_order_cancel(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Limit_order_cancel, self).__init__(
OrderedDict([
('owner', String(kwargs["owner"])),
('orderid', Uint32(kwargs["orderid"])),
]))
class Claim_account(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
super(Claim_account, self).__init__(
OrderedDict([
('creator', String(kwargs["creator"])),
('fee', Amount(kwargs["fee"], prefix=prefix, json_str=json_str)),
('extensions', Array([])),
]))
class Create_claimed_account(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
if not len(kwargs["new_account_name"]) <= 16:
raise AssertionError("Account name must be at most 16 chars long")
meta = ""
if "json_metadata" in kwargs and kwargs["json_metadata"]:
if isinstance(kwargs["json_metadata"], dict):
meta = json.dumps(kwargs["json_metadata"])
else:
meta = kwargs["json_metadata"]
super(Create_claimed_account, self).__init__(
OrderedDict([
('creator', String(kwargs["creator"])),
('new_account_name', String(kwargs["new_account_name"])),
('owner', Permission(kwargs["owner"], prefix=prefix)),
('active', Permission(kwargs["active"], prefix=prefix)),
('posting', Permission(kwargs["posting"], prefix=prefix)),
('memo_key', PublicKey(kwargs["memo_key"], prefix=prefix)),
('json_metadata', String(meta)),
('extensions', Array([])),
]))
class Delegate_vesting_shares(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
super(Delegate_vesting_shares, self).__init__(
OrderedDict([
('delegator', String(kwargs["delegator"])),
('delegatee', String(kwargs["delegatee"])),
('vesting_shares', Amount(kwargs["vesting_shares"], prefix=prefix)),
]))
class Limit_order_create(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
super(Limit_order_create, self).__init__(
OrderedDict([
('owner', String(kwargs["owner"])),
('orderid', Uint32(kwargs["orderid"])),
('amount_to_sell', Amount(kwargs["amount_to_sell"], prefix=prefix, json_str=json_str)),
('min_to_receive', Amount(kwargs["min_to_receive"], prefix=prefix, json_str=json_str)),
('fill_or_kill', Bool(kwargs["fill_or_kill"])),
('expiration', PointInTime(kwargs["expiration"])),
]))
class Limit_order_create2(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
if 'prefix' not in kwargs['exchange_rate']:
kwargs['exchange_rate']['prefix'] = prefix
super(Limit_order_create2, self).__init__(
OrderedDict([
('owner', String(kwargs["owner"])),
('orderid', Uint32(kwargs["orderid"])),
('amount_to_sell', Amount(kwargs["amount_to_sell"], prefix=prefix, json_str=json_str)),
('fill_or_kill', Bool(kwargs["fill_or_kill"])),
('exchange_rate', ExchangeRate(kwargs["exchange_rate"])),
('expiration', PointInTime(kwargs["expiration"])),
]))
class Change_recovery_account(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Change_recovery_account, self).__init__(
OrderedDict([
('account_to_recover', String(kwargs["account_to_recover"])),
('new_recovery_account', String(kwargs["new_recovery_account"])),
('extensions', Array([])),
]))
class Transfer_from_savings(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
if "memo" not in kwargs:
kwargs["memo"] = ""
super(Transfer_from_savings, self).__init__(
OrderedDict([
('from', String(kwargs["from"])),
('request_id', Uint32(kwargs["request_id"])),
('to', String(kwargs["to"])),
('amount', Amount(kwargs["amount"], prefix=prefix, json_str=json_str)),
('memo', String(kwargs["memo"])),
]))
class Cancel_transfer_from_savings(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Cancel_transfer_from_savings, self).__init__(
OrderedDict([
('from', String(kwargs["from"])),
('request_id', Uint32(kwargs["request_id"])),
]))
class Claim_reward_balance(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
if "reward_sbd" in kwargs and "reward_steem" in kwargs:
super(Claim_reward_balance, self).__init__(
OrderedDict([
('account', String(kwargs["account"])),
('reward_steem', Amount(kwargs["reward_steem"], prefix=prefix, json_str=json_str)),
('reward_sbd', Amount(kwargs["reward_sbd"], prefix=prefix, json_str=json_str)),
('reward_vests', Amount(kwargs["reward_vests"], prefix=prefix)),
]))
elif "reward_hbd" in kwargs and "reward_hive" in kwargs:
super(Claim_reward_balance, self).__init__(
OrderedDict([
('account', String(kwargs["account"])),
('reward_hive', Amount(kwargs["reward_hive"], prefix=prefix)),
('reward_hbd', Amount(kwargs["reward_hbd"], prefix=prefix)),
('reward_vests', Amount(kwargs["reward_vests"], prefix=prefix)),
]))
elif "reward_hive" in kwargs:
super(Claim_reward_balance, self).__init__(
OrderedDict([
('account', String(kwargs["account"])),
('reward_hive', Amount(kwargs["reward_hive"], prefix=prefix, json_str=json_str)),
('reward_vests', Amount(kwargs["reward_vests"], prefix=prefix)),
]))
else:
super(Claim_reward_balance, self).__init__(
OrderedDict([
('account', String(kwargs["account"])),
('reward_steem', Amount(kwargs["reward_steem"], prefix=prefix)),
('reward_vests', Amount(kwargs["reward_vests"], prefix=prefix)),
]))
class Transfer_to_savings(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
if "memo" not in kwargs:
kwargs["memo"] = ""
super(Transfer_to_savings, self).__init__(
OrderedDict([
('from', String(kwargs["from"])),
('to', String(kwargs["to"])),
('amount', Amount(kwargs["amount"], prefix=prefix, json_str=json_str)),
('memo', String(kwargs["memo"])),
]))
class Request_account_recovery(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
new_owner = Permission(kwargs["new_owner_authority"], prefix=prefix)
super(Request_account_recovery, self).__init__(
OrderedDict([
('recovery_account', String(kwargs["recovery_account"])),
('account_to_recover', String(kwargs["account_to_recover"])),
('new_owner_authority', new_owner),
('extensions', Array([])),
]))
class Recover_account(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
new_owner = Permission(kwargs["new_owner_authority"], prefix=prefix)
recent_owner = Permission(kwargs["recent_owner_authority"], prefix=prefix)
super(Recover_account, self).__init__(
OrderedDict([
('account_to_recover', String(kwargs["account_to_recover"])),
('new_owner_authority', new_owner),
('recent_owner_authority', recent_owner),
('extensions', Array([])),
]))
class Escrow_transfer(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
meta = ""
if "json_meta" in kwargs and kwargs["json_meta"]:
if (isinstance(kwargs["json_meta"], dict) or isinstance(kwargs["json_meta"], list)):
meta = json.dumps(kwargs["json_meta"])
else:
meta = kwargs["json_meta"]
if "hbd_amount" in kwargs and "hive_amount" in kwargs:
super(Escrow_transfer, self).__init__(
OrderedDict([
('from', String(kwargs["from"])),
('to', String(kwargs["to"])),
('agent', String(kwargs["agent"])),
('escrow_id', Uint32(kwargs["escrow_id"])),
('hbd_amount', Amount(kwargs["hbd_amount"], prefix=prefix, json_str=json_str)),
('hive_amount', Amount(kwargs["hive_amount"], prefix=prefix, json_str=json_str)),
('fee', Amount(kwargs["fee"], prefix=prefix, json_str=json_str)),
('ratification_deadline', PointInTime(kwargs["ratification_deadline"])),
('escrow_expiration', PointInTime(kwargs["escrow_expiration"])),
('json_meta', String(meta)),
]))
else:
super(Escrow_transfer, self).__init__(
OrderedDict([
('from', String(kwargs["from"])),
('to', String(kwargs["to"])),
('agent', String(kwargs["agent"])),
('escrow_id', Uint32(kwargs["escrow_id"])),
('sbd_amount', Amount(kwargs["sbd_amount"], prefix=prefix)),
('steem_amount', Amount(kwargs["steem_amount"], prefix=prefix)),
('fee', Amount(kwargs["fee"], prefix=prefix)),
('ratification_deadline', PointInTime(kwargs["ratification_deadline"])),
('escrow_expiration', PointInTime(kwargs["escrow_expiration"])),
('json_meta', String(meta)),
]))
class Escrow_dispute(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Escrow_dispute, self).__init__(
OrderedDict([
('from', String(kwargs["from"])),
('to', String(kwargs["to"])),
('who', String(kwargs["who"])),
('escrow_id', Uint32(kwargs["escrow_id"])),
]))
class Escrow_release(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
prefix = kwargs.get("prefix", default_prefix)
json_str = kwargs.get("json_str", False)
if "hive_amount" in kwargs and "hbd_amount" in kwargs:
super(Escrow_release, self).__init__(
OrderedDict([
('from', String(kwargs["from"])),
('to', String(kwargs["to"])),
('who', String(kwargs["who"])),
('escrow_id', Uint32(kwargs["escrow_id"])),
('hbd_amount', Amount(kwargs["hbd_amount"], prefix=prefix, json_str=json_str)),
('hive_amount', Amount(kwargs["hive_amount"], prefix=prefix, json_str=json_str)),
]))
else:
super(Escrow_release, self).__init__(
OrderedDict([
('from', String(kwargs["from"])),
('to', String(kwargs["to"])),
('who', String(kwargs["who"])),
('escrow_id', Uint32(kwargs["escrow_id"])),
('sbd_amount', Amount(kwargs["sbd_amount"], prefix=prefix)),
('steem_amount', Amount(kwargs["steem_amount"], prefix=prefix)),
]))
class Escrow_approve(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Escrow_approve, self).__init__(
OrderedDict([
('from', String(kwargs["from"])),
('to', String(kwargs["to"])),
('agent', String(kwargs["agent"])),
('who', String(kwargs["who"])),
('escrow_id', Uint32(kwargs["escrow_id"])),
('approve', Bool(kwargs["approve"])),
]))
class Decline_voting_rights(GrapheneObject):
def __init__(self, *args, **kwargs):
if check_for_class(self, args):
return
if len(args) == 1 and len(kwargs) == 0:
kwargs = args[0]
super(Decline_voting_rights, self).__init__(
OrderedDict([
('account', String(kwargs["account"])),
('decline', Bool(kwargs["decline"])),
]))