-
Notifications
You must be signed in to change notification settings - Fork 165
Expand file tree
/
Copy pathoperationids.py
More file actions
100 lines (94 loc) · 2.7 KB
/
operationids.py
File metadata and controls
100 lines (94 loc) · 2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# -*- coding: utf-8 -*-
#: Operation ids
ops = [
"transfer",
"limit_order_create",
"limit_order_cancel",
"call_order_update",
"fill_order",
"account_create",
"account_update",
"account_whitelist",
"account_upgrade",
"account_transfer",
"asset_create",
"asset_update",
"asset_update_bitasset",
"asset_update_feed_producers",
"asset_issue",
"asset_reserve",
"asset_fund_fee_pool",
"asset_settle",
"asset_global_settle",
"asset_publish_feed",
"witness_create",
"witness_update",
"proposal_create",
"proposal_update",
"proposal_delete",
"withdraw_permission_create",
"withdraw_permission_update",
"withdraw_permission_claim",
"withdraw_permission_delete",
"committee_member_create",
"committee_member_update",
"committee_member_update_global_parameters",
"vesting_balance_create",
"vesting_balance_withdraw",
"worker_create",
"custom",
"assert",
"balance_claim",
"override_transfer",
"transfer_to_blind",
"blind_transfer",
"transfer_from_blind",
"asset_settle_cancel",
"asset_claim_fees",
"fba_distribute",
"bid_collateral",
"execute_bid",
"asset_claim_pool",
"asset_update_issuer",
"htlc_create",
"htlc_redeem",
"htlc_redeemed",
"htlc_extend",
"htlc_refund",
"custom_authority_create_operation",
"custom_authority_update_operation",
"custom_authority_delete_operation",
"ticket_create_operation",
"ticket_update_operation",
"liquidity_pool_create",
"liquidity_pool_delete",
"liquidity_pool_deposit",
"liquidity_pool_withdraw",
"liquidity_pool_exchange",
]
operations = {o: ops.index(o) for o in ops}
def getOperationNameForId(i):
"""Convert an operation id into the corresponding string."""
for key in operations:
if int(operations[key]) is int(i):
return key
return "Unknown Operation ID %d" % i
def getOperationName(id: str):
"""This method returns the name representation of an operation given its value as
used in the API."""
if isinstance(id, str):
# Some graphene chains (e.g. steem) do not encode the
# operation_type as id but in its string form
assert id in operations.keys(), "Unknown operation {}".format(id)
return id
elif isinstance(id, int):
return getOperationNameForId(id)
else:
raise ValueError
def getClassForOperation(operation_name: str):
classname = operation_name.lower().capitalize()
module = "bitsharesbase.operations"
fromlist = ["operations"]
module = __import__(module, fromlist=fromlist)
if hasattr(module, classname):
return getattr(module, classname)