tradehub.types   A
last analyzed

Complexity

Total Complexity 0

Size/Duplication

Total Lines 303
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 187
dl 0
loc 303
rs 10
c 0
b 0
f 0
wmc 0
1
from collections import defaultdict
2
from dataclasses import dataclass
3
from typing import List
4
5
6
transaction_types = {}
7
8
# // Orders
9
transaction_types["CREATE_ORDER_MSG_TYPE"] = 'order/MsgCreateOrder'
10
transaction_types["CANCEL_ORDER_MSG_TYPE"] = 'order/MsgCancelOrder'
11
transaction_types["CANCEL_ALL_MSG_TYPE"] = 'order/MsgCancelAll'
12
transaction_types["EDIT_ORDER_MSG_TYPE"] = 'order/MsgEditOrder'
13
# export const CREATE_MARKET_MSG_TYPE = 'market/MsgCreateMarket'
14
# export const UPDATE_MARKET_MSG_TYPE = 'market/MsgUpdateMarket'
15
# export const INITIATE_SETTLEMENT_MSG_TYPE = 'broker/MsgInitiateSettlement'
16
# export const SET_TRADING_FLAG_MSG_TYPE = 'order/MsgSetTradingFlag'
17
18
# // Positions
19
transaction_types["SET_LEVERAGE_MSG_TYPE"] = 'leverage/MsgSetLeverage'
20
transaction_types["EDIT_MARGIN_MSG_TYPE"] = 'position/MsgSetMargin'
21
22
# // Tokens
23
# export const MINT_TOKEN_MSG_TYPE = 'coin/MsgMintToken'
24
# export const CREATE_TOKEN_MSG_TYPE = 'coin/MsgCreateToken'
25
transaction_types["CREATE_WITHDRAWAL_TYPE"] = 'coin/MsgWithdraw'
26
transaction_types["SEND_TOKENS_TYPE"] = 'cosmos-sdk/MsgSend'
27
28
# // Oracle
29
# export const CREATE_ORACLE_TYPE = 'oracle/MsgCreateOracle'
30
# export const CREATE_VOTE_TYPE = 'oracle/MsgCreateVote'
31
32
# // Staking
33
transaction_types["CREATE_VALIDATOR_MSG_TYPE"] = 'cosmos-sdk/MsgCreateValidator'
34
transaction_types["DELEGATE_TOKENS_MSG_TYPE"] = 'cosmos-sdk/MsgDelegate'
35
transaction_types["BEGIN_UNBONDING_TOKENS_MSG_TYPE"] = 'cosmos-sdk/MsgUndelegate'
36
transaction_types["BEGIN_REDELEGATING_TOKENS_MSG_TYPE"] = 'cosmos-sdk/MsgBeginRedelegate'
37
transaction_types["WITHDRAW_DELEGATOR_REWARDS_MSG_TYPE"] = 'cosmos-sdk/MsgWithdrawDelegationReward'
38
39
# // Accounts
40
transaction_types["CREATE_SUB_ACCOUNT_MSG_TYPE"] = 'subaccount/MsgCreateSubAccountV1'
41
transaction_types["ACTIVATE_SUB_ACCOUNT_MSG_TYPE"] = 'subaccount/MsgActivateSubAccountV1'
42
43
# // Profile
44
transaction_types["UPDATE_PROFILE_MSG_TYPE"] = 'profile/MsgUpdateProfile'
45
46
47
# // Gov
48
# export const SUBMIT_PROPOSAL_TYPE = 'cosmos-sdk/MsgSubmitProposal'
49
# export const DEPOSIT_PROPOSAL_TYPE = 'cosmos-sdk/MsgDeposit'
50
# export const VOTE_PROPOSAL_TYPE = 'cosmos-sdk/MsgVote'
51
52
# // AMM
53
transaction_types["ADD_LIQUIDITY_MSG_TYPE"] = 'liquiditypool/AddLiquidity'
54
transaction_types["REMOVE_LIQUIDITY_MSG_TYPE"] = 'liquiditypool/RemoveLiquidity'
55
# export const CREATE_POOL_MSG_TYPE = 'liquiditypool/CreatePool'
56
# export const CREATE_POOL_WITH_LIQUIDITY_MSG_TYPE = 'liquiditypool/CreatePoolWithLiquidity'
57
# export const LINK_POOL_MSG_TYPE = 'liquiditypool/LinkPool'
58
# export const UNLINK_POOL_MSG_TYPE = 'liquiditypool/UnlinkPool'
59
# export const SET_REWARDS_WEIGHTS_MSG_TYPE = 'liquiditypool/SetRewardsWeights'
60
# export const SET_REWARD_CURVE_MSG_TYPE = 'liquiditypool/SetRewardCurve'
61
# export const SET_COMMITMENT_CURVE_MSG_TYPE = 'liquiditypool/SetCommitmentCurve'
62
transaction_types["STAKE_POOL_TOKEN_MSG_TYPE"] = 'liquiditypool/StakePoolToken'
63
transaction_types["UNSTAKE_POOL_TOKEN_MSG_TYPE"] = 'liquiditypool/UnstakePoolToken'
64
transaction_types["CLAIM_POOL_REWARDS_MSG_TYPE"] = 'liquiditypool/ClaimPoolRewards'
65
# export const LINK_POOL_PROPOSAL_TYPE = 'liquiditypool/LinkPoolProposal'
66
# export const SET_REWARD_CURVE_PROPOSAL_TYPE = 'liquiditypool/SetRewardCurveProposal'
67
# export const SET_REWARDS_WEIGHT_PROPOSAL_TYPE = 'liquiditypool/SetRewardsWeightsProposal'
68
# export const SET_COMMITMENT_CURVE_PROPOSAL_TYPE = 'liquiditypool/SetCommitmentCurveProposal'
69
# export const CHANGE_SWAP_FEE_PROPOSAL_TYPE = 'liquiditypool/ChangeSwapFeeProposal'
70
# export const CHANGE_NUM_QUOTES_PROPOSAL_TYPE = 'liquiditypool/ChangeNumQuotesProposal'
71
72
# // CDP
73
# export const CREATE_VAULT_TYPE_MSG_TYPE = 'collateralizeddebtposition/CreateVaultType'
74
# export const ADD_COLLATERAL_MSG_TYPE = 'collateralizeddebtposition/AddCollateral'
75
# export const REMOVE_COLLATERAL_MSG_TYPE = 'collateralizeddebtposition/RemoveCollateral'
76
# export const ADD_DEBT_MSG_TYPE = 'collateralizeddebtposition/AddDebt'
77
# export const REMOVE_DEBT_MSG_TYPE = 'collateralizeddebtposition/RemoveDebt'
78
79
# // Fee
80
# export const SET_MESSAGE_FEE_TYPE = 'fee/SetMsgFee'
81
# export const SET_MESSAGE_FEE_PROPOSAL_TYPE = 'fee/SetMsgFeeProposal'
82
83
84
fee_types = {
85
    'order/MsgCreateOrder': 'create_order',
86
    'liquiditypool/ClaimPoolRewards': 'claim_pool_rewards',
87
    'oracle/MsgCreateOracle': 'create_oracle_vote',
88
    'liquiditypool/CreatePool': 'create_pool',
89
    'liquiditypool/StakePoolToken': 'stake_pool_token',
90
    'liquiditypool/UnstakePoolToken': 'unstake_pool_token',
91
}
92
93
fee_types = defaultdict(lambda: 'default_fee', fee_types)
94
95
96
@dataclass
97
class UpdateProfileMessage:
98
    username: str
99
    twitter: str
100
    originator: str = None
101
102
103
@dataclass
104
class SendTokensAmount:
105
    amount: str
106
    denom: str
107
108
109
@dataclass
110
class SendTokensMessage:
111
    to_address: str
112
    amount: List[SendTokensAmount]
113
    from_address: str = None
114
115
116
@dataclass
117
class CreateOrderMessage:
118
    market: str
119
    side: str
120
    quantity: str
121
    price: str = None
122
    type: str = 'limit'               # Order Type
123
    time_in_force: str = None
124
    stop_price: str = None
125
    trigger_type: str = None
126
    is_post_only: bool = False
127
    is_reduce_only: bool = False
128
    originator: str = None
129
130
131
@dataclass
132
class CancelOrderMessage:
133
    id: str
134
    originator: str = None
135
136
137
@dataclass
138
class CancelAllMessage:
139
    market: str
140
    originator: str = None
141
142
143
@dataclass
144
class CreateWithdrawMessage:
145
    to_address: str
146
    denom: str
147
    amount: str
148
    fee_amount: str
149
    originator: str = None
150
151
152
@dataclass
153
class DelegateTokensAmount:
154
    amount: str
155
    denom: str = 'swth'
156
157
158
@dataclass
159
class DelegateTokensMessage:
160
    delegator_address: str
161
    validator_address: str
162
    amount: DelegateTokensAmount
163
164
165
@dataclass
166
class EditOrderMessage:
167
    id: str
168
    quantity: str = None
169
    price: str = None
170
    stop_price: str = None
171
    originator: str = None
172
173
174
@dataclass
175
class SetLeverageMessage:
176
    market: str
177
    leverage: str
178
    originator: str = None
179
180
181
@dataclass
182
class EditMarginMessage:
183
    market: str
184
    margin: str
185
    originator: str = None
186
187
188
@dataclass
189
class WithdrawDelegatorRewardsMessage:
190
    delegator_address: str
191
    validator_address: str
192
193
194
@dataclass
195
class WithdrawAllDelegatorRewardsParams:
196
    delegator_address: str
197
    validator_addresses: [str]
198
199
200
@dataclass
201
class ValidatorDescription:
202
    moniker: str
203
    identity: str
204
    website: str
205
    details: str
206
207
208
@dataclass
209
class ValidatorCommission:
210
    rate: str
211
    max_rate: str
212
    max_rate_change: str
213
214
215
@dataclass
216
class ValidatorValue:
217
    amount: str
218
    denom: str
219
220
221
@dataclass
222
class CreateValidatorMessage:
223
    description: ValidatorDescription
224
    commission: ValidatorCommission
225
    min_self_delegation: str
226
    delegator_address: str
227
    validator_address: str
228
    pubkey: str
229
    value: ValidatorValue
230
231
232
@dataclass
233
class CreateSubAccountMessage:
234
    sub_address: str
235
    originator: str = None
236
237
238
@dataclass
239
class ActivateSubAccountMessage:
240
    expected_main_account: str
241
    originator: str = None
242
243
244
@dataclass
245
class AmountMessage:
246
    amount: str
247
    denom: str
248
249
250
@dataclass
251
class BeginUnbondingTokensMessage:
252
    delegator_address: str
253
    validator_address: str
254
    amount: AmountMessage
255
256
257
@dataclass
258
class BeginRedelegatingTokensMessage:
259
    delegator_address: str
260
    validator_src_address: str
261
    validator_dst_address: str
262
    amount: AmountMessage
263
264
265
@dataclass
266
class AddLiquidityMessage:
267
    pool_id: str
268
    a_denom: str = None
269
    a_amount: str = None
270
    a_max_amount: str = None
271
    b_denom: str = None
272
    b_amount: str = None
273
    b_max_amount: str = None
274
    originator: str = None
275
276
277
@dataclass
278
class RemoveLiquidityMessage:
279
    pool_id: str
280
    shares: str
281
    originator: str = None
282
283
284
@dataclass
285
class StakePoolTokenMessage:
286
    denom: str
287
    amount: str
288
    duration: str     # in seconds
289
    originator: str = None
290
291
292
@dataclass
293
class UnstakePoolTokenMessage:
294
    denom: str
295
    amount: str
296
    originator: str = None
297
298
299
@dataclass
300
class ClaimPoolRewardsMessage:
301
    pool_id: str
302
    originator: str = None
303