Contract con_random_gold_address


Contract Code


  
1 random.seed()
2
3 @export
4 def get_random_user(addresses: list, min_amount: int, farm: str):
5 winner = get_farm_user(addresses, min_amount, farm)
6
7 error = "No address found"
8 assert winner != None, error
9
10 return winner
11
12 def get_farm_user(addresses: list, min_amount: int, farm: str):
13 for address in addresses:
14 # Determine winning address
15 winner = random.choice(addresses)
16
17 if farm == "GOLD":
18 # Get all GOLD addresses
19 deposits = ForeignHash(
20 foreign_contract='con_gold_contract',
21 foreign_name='balances')
22
23 # Get GOLD balance
24 amount = deposits[winner]
25
26 elif farm == "GOLD-FARM":
27 # Get all GOLD - GOLD farming addresses
28 deposits = ForeignHash(
29 foreign_contract='con_staking_gold_gold',
30 foreign_name='Deposits')
31
32 # Get deposited GOLD amount
33 amount = deposits[winner]["amount"]
34
35 elif farm == "GOLD-LP-FARM":
36 # Get all GOLD LP - GOLD farming addresses
37 deposits = ForeignHash(
38 foreign_contract='con_liq_mining_gold_gold',
39 foreign_name='Deposits')
40
41 # Get deposited GOLD-LP amount
42 amount = deposits[winner]["amount"]
43
44 # Check if deposited amount is sufficient
45 if amount >= min_amount:
46 return winner

Byte Code

e30000000000000000000000000500000040000000733800000065006a018300010065026400830165036504650564019c0364026403840483015a0665036504650564019c036404640584045a07640653002907da17636f6e5f72616e646f6d5f676f6c645f616464726573732903da09616464726573736573da0a6d696e5f616d6f756e74da046661726d630300000000000000050000000400000043000000732400000074007c007c017c0283037d0364017d047c0364006b03732074017c04830182017c03530029024e7a104e6f206164647265737320666f756e642902da0f5f5f6765745f6661726d5f75736572da0e417373657274696f6e4572726f722905720200000072030000007204000000da0677696e6e6572da056572726f72a9007209000000da00da0f6765745f72616e646f6d5f7573657204000000730800000000020c0104011001720b0000006303000000000000000700000007000000430000007394000000788e7c0044005d867d0374006a017c0083017d047c0264016b0272367402640264036404640564068d047d057c057c0419007d066e4a7c0264076b02725c7402640864096404640564068d047d057c057c041900640a19007d066e247c02640b6b0272807402640c64096404640564068d047d057c057c041900640a19007d067c067c016b0572067c0453007106570064005300290d4eda04474f4c44da11636f6e5f676f6c645f636f6e7472616374da0862616c616e6365737201000000da086465706f736974732904da10666f726569676e5f636f6e7472616374da0c666f726569676e5f6e616d65da08636f6e7472616374da046e616d657a09474f4c442d4641524dda15636f6e5f7374616b696e675f676f6c645f676f6c64da084465706f73697473da06616d6f756e747a0c474f4c442d4c502d4641524dda18636f6e5f6c69715f6d696e696e675f676f6c645f676f6c642903da0672616e646f6dda0663686f696365da0b466f726569676e486173682907720200000072030000007204000000da07616464726573737207000000da0a5f5f6465706f73697473721600000072090000007209000000720a00000072050000000c000000732600000000010a010a0108010401040108010a010801020104010a010e010801020104010a010c01080172050000004e29087218000000da0473656564da085f5f6578706f7274da046c697374da03696e74da03737472720b0000007205000000720900000072090000007209000000720a000000da083c6d6f64756c653e010000007306000000080306011407