Contract con_vaccinate_1


Contract Code


  
1 # SURPRISE! Omicron for the season! no relation to any other liquidity locker
2 # Vaccinate or lock Omicron LP by executing vaccinate_lp
3 # Go No Booster or end lock by executing not_boosted
4 import con_rocketswap_official_v1_1 as rocketswap
5 lockers = Hash(default_value=0)
6 metadata = Hash()
7 @construct
8 def seed():
9 metadata['FEE_PERCENTAGE'] = decimal('1')
10 metadata['FEE_WALLET'] = "8e885a69b3cc08376e896df9fe48186a97dff4080480abe93665856e4473d40e"
11 metadata['OWNER'] = ctx.caller
12 @export
13 def vaccinate_lp(con_omicron_1: str, locker_name: str, lp_amount: float, lock_end_day: int, lock_end_month: int, lock_end_year: int):
14 assert lp_amount > 0, 'Must provide lp points amount!'
15 assert lock_end_day != None, 'Must provide end day of lock!'
16 assert lock_end_month != None, 'Must provide end month of lock!'
17 assert lock_end_year != None, 'Must provide end year of lock!'
18 assert datetime.datetime(year=lock_end_year, month=lock_end_month, day=lock_end_day) >= now, 'Lock end cannot be in the past!'
19 if(lockers[con_omicron_1, ctx.caller, locker_name]) == 0:
20 rocketswap.transfer_liquidity_from(contract=con_omicron_1, to=ctx.this, main_account=ctx.caller, amount=lp_amount)
21 rocketswap.transfer_liquidity(contract=con_omicron_1, to=metadata['FEE_WALLET'], amount=(lp_amount/100*metadata['FEE_PERCENTAGE']))
22 lockers[con_omicron_1, ctx.caller, locker_name] = [lp_amount - (lp_amount/100*metadata['FEE_PERCENTAGE']), datetime.datetime(year=lock_end_year, month=lock_end_month, day=lock_end_day, hour=0, minute=0, microsecond=0)]
23 else:
24 return "There is already a locker running with this name."
25 @export
26 def not_boosted(con_omicron_1: str, locker_name: str):
27 assert lockers[con_omicron_1, ctx.caller, locker_name][1] <= now, 'The end of liquidity lock is not reached yet!'
28 rocketswap.transfer_liquidity(contract=con_omicron_1, to=ctx.caller, amount=lockers[con_omicron_1, ctx.caller, locker_name][0])
29 lockers[con_omicron_1, ctx.caller, locker_name].clear()
30 @export
31 def change_metadata(key: str, value: Any):
32 assert ctx.caller == metadata['OWNER'
33 ], 'Only owner can set metadata!'
34 metadata[key] = value

Byte Code

e30000000000000000000000000800000040000000737e000000640064016c005a01650264006402640364048d035a0365026402640564068d025a046407640884005a0565066402830165076507650865096509650964099c06640a640b840483015a0a65066402830165076507640c9c02640d640e840483015a0b6506640283016507650c640f9c0264106411840483015a0d640153002912e9000000004eda0f636f6e5f76616363696e6174655f31da076c6f636b6572732903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da086d657461646174612902720500000072060000006300000000000000000000000003000000430000007322000000740064018301740164023c006403740164043c0074026a03740164053c006400530029064eda0131da0e4645455f50455243454e54414745da4038653838356136396233636330383337366538393664663966653438313836613937646666343038303438306162653933363635383536653434373364343065da0a4645455f57414c4c4554da054f574e45522904da07646563696d616cda0a5f5f6d65746164617461da03637478da0663616c6c6572a90072110000007211000000da00da045f5f5f5f06000000730600000000010c02080172130000002906da0d636f6e5f6f6d6963726f6e5f31da0b6c6f636b65725f6e616d65da096c705f616d6f756e74da0c6c6f636b5f656e645f646179da0e6c6f636b5f656e645f6d6f6e7468da0d6c6f636b5f656e645f7965617263060000000000000006000000090000004300000073e60000007c0264016b04731074006402830182017c0364006b03732074006403830182017c0464006b03733074006404830182017c0564006b037340740064058301820174016a017c057c047c0364068d0374026b05735c740064078301820174037c0074046a057c016603190064016b0272de74066a077c0074046a0874046a057c0264088d04010074066a097c00740a640919007c02640a1b00740a640b19001400640c8d0301007c027c02640a1b00740a640b19001400180074016a017c057c047c03640164016401640d8d06670274037c0074046a057c0166033c006e04640e530064005300290f4e72010000007a1e4d7573742070726f76696465206c7020706f696e747320616d6f756e74217a1d4d7573742070726f7669646520656e6420646179206f66206c6f636b217a1f4d7573742070726f7669646520656e64206d6f6e7468206f66206c6f636b217a1e4d7573742070726f7669646520656e642079656172206f66206c6f636b212903da0479656172da056d6f6e7468da036461797a1f4c6f636b20656e642063616e6e6f7420626520696e2074686520706173742129047205000000da02746fda0c6d61696e5f6163636f756e74da06616d6f756e74720b000000e964000000720900000029037205000000721d000000721f0000002906721a000000721b000000721c000000da04686f7572da066d696e757465da0b6d6963726f7365636f6e647a31546865726520697320616c72656164792061206c6f636b65722072756e6e696e6720776974682074686973206e616d652e290bda0e417373657274696f6e4572726f72da086461746574696d65da036e6f77da095f5f6c6f636b657273720f0000007210000000da0a726f636b657473776170da177472616e736665725f6c69717569646974795f66726f6dda0474686973da127472616e736665725f6c6971756964697479720e0000002906721400000072150000007216000000721700000072180000007219000000721100000072110000007212000000da0c76616363696e6174655f6c700d0000007322000000000310011001100110010801140114010a010c0108010c010c010201140104011e02722c000000290272140000007215000000630200000000000000020000000700000043000000735a00000074007c0074016a027c01660319006401190074036b017320740464028301820174056a067c0074016a0274007c0074016a027c01660319006403190064048d03010074007c0074016a027c01660319006a07830001006400530029054ee9010000007a2d54686520656e64206f66206c6971756964697479206c6f636b206973206e6f7420726561636865642079657421720100000029037205000000721d000000721f00000029087227000000720f0000007210000000722600000072240000007228000000722b000000da05636c656172290272140000007215000000721100000072110000007212000000da0b6e6f745f626f6f7374656424000000730a000000000212010e010a011801722f0000002902da036b6579da0576616c7565630200000000000000020000000300000043000000732200000074006a017402640119006b02731674036402830182017c0174027c003c006400530029034e720c0000007a1c4f6e6c79206f776e65722063616e20736574206d65746164617461212904720f0000007210000000720e0000007224000000290272300000007231000000721100000072110000007212000000da0f6368616e67655f6d657461646174612d0000007304000000000216017232000000290eda1c636f6e5f726f636b6574737761705f6f6666696369616c5f76315f317228000000da04486173687227000000720e0000007213000000da085f5f6578706f7274da03737472da05666c6f6174da03696e74722c000000722f000000da03416e7972320000007211000000721100000072110000007212000000da083c6d6f64756c653e01000000731400000008010e010c030807060106011415060112080601