Transaction:

f262678474706cbc22c6f4e2087668d7093ac7b4edce4cd8b13abc38487453aa
Status
Success
Timestamp
1/11/2022, 10:33:59 PM
Result
None
Block Number
64089
SubBlock Number
0
Nonce
1795
Processor
89f67bb871351a1629d66676e4bd92bbacb23bd0649b890542ef98f1b664a497
Stamps Used
548 ( 42.2 dTAU )
Contract Name
submission
Function Name
submit_contract
Signature
2e2698cc8b41497d58bea5feb26f565e50b50254c15d370bef62fcbb6292d785ff3013adf06823dd4f20e3ad679a41f5e5b8f163e0e75b6ac10a83dc62a6aa09

Kwargs

code
# _ _ _ _ _ _____ __ __ _ _ # | \ | | | | | | | | | __ \ \ \ / / | | | # | \| | ___| |__ _ _| | __ _ | | | |__) | \ \ / /_ _ _ _| | |_ # | . ` |/ _ \ '_ \| | | | |/ _` | | | | ___/ \ \/ / _` | | | | | __| # | |\ | __/ |_) | |_| | | (_| | | |____| | \ / (_| | |_| | | |_ # |_| \_|\___|_.__/ \__,_|_|\__,_| |______|_| \/ \__,_|\__,_|_|\__| # I = importlib staking = Hash(default_value=0) locking = Hash(default_value=0) levels = Hash(default_value=0) con = Hash(default_value='') trusted = Variable() active = Variable() VALIDATOR = '9a12554c2098567d22aaa9b787d73b606d2f2044a602186c3b9af65f6c58cfaf' OPERATORS = [ 'ae7d14d6d9b8443f881ba6244727b69b681010e782d4fe482dbfb0b6aca02d5d', 'e787ed5907742fa8d50b3ca2701ab8e03ec749ced806a15cdab800a127d7f863' ] @construct def seed(): con['neb'] = 'con_nebula_002' con['key'] = 'con_neb_key_001' con['dex'] = 'con_amm_v9' levels[1] = {'level': 1, 'lp': 0, 'key': 0, 'emission': 0.375} levels[2] = {'level': 2, 'lp': 18.75, 'key': 0, 'emission': 0.75} levels[3] = {'level': 3, 'lp': 0, 'key': 1, 'emission': 1} levels[4] = {'level': 4, 'lp': 37.5, 'key': 0, 'emission': 1.5} levels[5] = {'level': 5, 'lp': 75, 'key': 0, 'emission': 3} levels[6] = {'level': 6, 'lp': 150, 'key': 0, 'emission': 4} trusted.set([]) active.set(True) @export def get_level(address: str): lp_stake = staking[address, 'lp'] key_stake = staking[address, 'key'] for i in range(10, 0, -1): if levels[i] == 0: continue level = levels[i] if (lp_stake >= level['lp']) and (key_stake >= level['key']): return level return levels[1] @export def show_level(address: str): l = get_level(address) return f'Level: {l["level"]}, LP: {l["lp"]}, KEY: {l["key"]}, Emission: {l["emission"]}' @export def stake(neb_lp_amount: float = 0, neb_key_amount: int = 0): assert_active() assert neb_lp_amount >= 0, 'Negative amounts are not allowed' assert neb_key_amount >= 0, 'Negative amounts are not allowed' if neb_lp_amount > 0: staking['lp'] += neb_lp_amount staking[ctx.caller, 'lp'] += neb_lp_amount I.import_module(con['dex']).transfer_liquidity_from( contract=con['neb'], to=ctx.this, main_account=ctx.caller, amount=neb_lp_amount) if neb_key_amount > 0: staking['key'] += neb_key_amount staking[ctx.caller, 'key'] += neb_key_amount I.import_module(con['key']).transfer_from( main_account=ctx.caller, amount=neb_key_amount, to=ctx.this) @export def unstake(neb_lp_amount: float = 0, neb_key_amount: int = 0): assert_active() assert neb_lp_amount >= 0, 'Negative amounts are not allowed' assert neb_key_amount >= 0, 'Negative amounts are not allowed' staked_lp = staking[ctx.caller, 'lp'] staked_key = staking[ctx.caller, 'key'] highest_lp = 0 highest_key = 0 if isinstance(locking[ctx.caller], list): for lock_contract in locking[ctx.caller]: locked_lp = locking[ctx.caller, lock_contract, 'lp'] locked_key = locking[ctx.caller, lock_contract, 'key'] if locked_lp > highest_lp: highest_lp = locked_lp if locked_key > highest_key: highest_key = locked_key lp_available = staked_lp - highest_lp key_available = staked_key - highest_key assert lp_available >= neb_lp_amount, f'Only {lp_available} NEB LP available to unstake' assert key_available >= neb_key_amount, f'Only {key_available} NEB KEY available to unstake' if neb_lp_amount > 0: I.import_module(con['dex']).transfer_liquidity( contract=con['neb'], to=ctx.caller, amount=neb_lp_amount) if neb_key_amount > 0: I.import_module(con['key']).transfer( amount=neb_key_amount, to=ctx.caller) staking[ctx.caller, 'lp'] -= neb_lp_amount staking[ctx.caller, 'key'] -= neb_key_amount staking['lp'] -= neb_lp_amount staking['key'] -= neb_key_amount @export def lock(): user_address = ctx.signer vault_contract = ctx.caller assert vault_contract in trusted.get(), f'Unknown contract {vault_contract}' if not isinstance(locking[user_address], list): locking[user_address] = [] lock_list = locking[user_address] if not vault_contract in lock_list: lock_list.append(vault_contract) locking[user_address] = lock_list level = get_level(user_address) locking[user_address, vault_contract, 'lp'] = level['lp'] locking[user_address, vault_contract, 'key'] = level['key'] return level # TODO: TEST @export def unlock(): user_address = ctx.signer vault_contract = ctx.caller assert vault_contract in trusted.get(), f'Unknown contract {vault_contract}' lock_list = locking[user_address] if vault_contract in lock_list: lock_list.remove(vault_contract) locking[user_address] = lock_list locking[user_address, vault_contract, 'lp'] = 0 locking[user_address, vault_contract, 'key'] = 0 @export def set_contract(key: str, value: str): con[key] = value assert_owner() @export def set_levels(level: int, data: dict): levels[level] = data assert_owner() @export def add_valid_vault(contract_name: str): assert ctx.caller == VALIDATOR, 'Only validator can add trusted contracts!' trusted_contracts = trusted.get() if contract_name not in trusted_contracts: trusted_contracts.append(contract_name) trusted.set(trusted_contracts) @export def remove_valid_vault(contract_name: str): assert ctx.caller == VALIDATOR, 'Only validator can remove trusted contracts!' trusted_contracts = trusted.get() if contract_name in trusted_contracts: trusted_contracts.remove(contract_name) trusted.set(trusted_contracts) # TODO: TEST @export def emergency_remove_lock(user_address: str, vault_contract: str): assert_owner() lock_list = locking[user_address] if vault_contract in lock_list: lock_list.remove(vault_contract) locking[user_address] = lock_list locking[user_address, vault_contract, 'lp'] = 0 locking[user_address, vault_contract, 'key'] = 0 @export def emergency_withdraw_token(contract_name: str, amount: float): I.import_module(contract_name).transfer(amount, ctx.caller) assert_owner() @export def emergency_withdraw_lp(contract_name: str, amount: float): I.import_module(con['dex']).transfer_liquidity(contract_name, ctx.caller, amount) assert_owner() @export def active(is_active: bool): active.set(is_active) assert_owner() def assert_active(): assert active.get() == True, 'Vault inactive!' def assert_owner(): assert ctx.caller in OPERATORS, 'Only executable by operators!'
name
con_neb_vault_lp_051

State Changes

Contract
con_neb_vault_lp_051
Variable
con
Key
neb
New Value
con_nebula_002
Contract
con_neb_vault_lp_051
Variable
con
Key
key
New Value
con_neb_key_001
Contract
con_neb_vault_lp_051
Variable
con
Key
dex
New Value
con_amm_v9
Contract
con_neb_vault_lp_051
Variable
levels
Key
1
New Value
{"emission":{"__fixed__":"0.375"},"key":0,"level":1,"lp":0}
Contract
con_neb_vault_lp_051
Variable
levels
Key
2
New Value
{"emission":{"__fixed__":"0.75"},"key":0,"level":2,"lp":{"__fixed__":"18.75"}}
Contract
con_neb_vault_lp_051
Variable
levels
Key
3
New Value
{"emission":1,"key":1,"level":3,"lp":0}
Contract
con_neb_vault_lp_051
Variable
levels
Key
4
New Value
{"emission":{"__fixed__":"1.5"},"key":0,"level":4,"lp":{"__fixed__":"37.5"}}
Contract
con_neb_vault_lp_051
Variable
levels
Key
5
New Value
{"emission":3,"key":0,"level":5,"lp":75}
Contract
con_neb_vault_lp_051
Variable
levels
Key
6
New Value
{"emission":4,"key":0,"level":6,"lp":150}
Contract
con_neb_vault_lp_051
Variable
trusted
New Value
[]
Contract
con_neb_vault_lp_051
Variable
active
New Value
true
Contract
con_neb_vault_lp_051
Variable
__code__
New Value
I = importlib __staking = Hash(default_value=0, contract='con_neb_vault_lp_051', name= 'staking') __locking = Hash(default_value=0, contract='con_neb_vault_lp_051', name= 'locking') __levels = Hash(default_value=0, contract='con_neb_vault_lp_051', name='levels' ) __con = Hash(default_value='', contract='con_neb_vault_lp_051', name='con') __trusted = Variable(contract='con_neb_vault_lp_051', name='trusted') __active = Variable(contract='con_neb_vault_lp_051', name='active') VALIDATOR = '9a12554c2098567d22aaa9b787d73b606d2f2044a602186c3b9af65f6c58cfaf' OPERATORS = ['ae7d14d6d9b8443f881ba6244727b69b681010e782d4fe482dbfb0b6aca02d5d' , 'e787ed5907742fa8d50b3ca2701ab8e03ec749ced806a15cdab800a127d7f863'] def ____(): __con['neb'] = 'con_nebula_002' __con['key'] = 'con_neb_key_001' __con['dex'] = 'con_amm_v9' __levels[1] = {'level': 1, 'lp': 0, 'key': 0, 'emission': decimal('0.375')} __levels[2] = {'level': 2, 'lp': decimal('18.75'), 'key': 0, 'emission': decimal('0.75')} __levels[3] = {'level': 3, 'lp': 0, 'key': 1, 'emission': 1} __levels[4] = {'level': 4, 'lp': decimal('37.5'), 'key': 0, 'emission': decimal('1.5')} __levels[5] = {'level': 5, 'lp': 75, 'key': 0, 'emission': 3} __levels[6] = {'level': 6, 'lp': 150, 'key': 0, 'emission': 4} __trusted.set([]) __active.set(True) @__export('con_neb_vault_lp_051') def get_level(address: str): lp_stake = __staking[address, 'lp'] key_stake = __staking[address, 'key'] for i in range(10, 0, -1): if __levels[i] == 0: continue level = __levels[i] if lp_stake >= level['lp'] and key_stake >= level['key']: return level return __levels[1] @__export('con_neb_vault_lp_051') def show_level(address: str): l = get_level(address) return ( f"Level: {l['level']}, LP: {l['lp']}, KEY: {l['key']}, Emission: {l['emission']}" ) @__export('con_neb_vault_lp_051') def stake(neb_lp_amount: float=0, neb_key_amount: int=0): __assert_active() assert neb_lp_amount >= 0, 'Negative amounts are not allowed' assert neb_key_amount >= 0, 'Negative amounts are not allowed' if neb_lp_amount > 0: __staking['lp'] += neb_lp_amount __staking[ctx.caller, 'lp'] += neb_lp_amount I.import_module(__con['dex']).transfer_liquidity_from(contract= __con['neb'], to=ctx.this, main_account=ctx.caller, amount= neb_lp_amount) if neb_key_amount > 0: __staking['key'] += neb_key_amount __staking[ctx.caller, 'key'] += neb_key_amount I.import_module(__con['key']).transfer_from(main_account=ctx.caller, amount=neb_key_amount, to=ctx.this) @__export('con_neb_vault_lp_051') def unstake(neb_lp_amount: float=0, neb_key_amount: int=0): __assert_active() assert neb_lp_amount >= 0, 'Negative amounts are not allowed' assert neb_key_amount >= 0, 'Negative amounts are not allowed' staked_lp = __staking[ctx.caller, 'lp'] staked_key = __staking[ctx.caller, 'key'] highest_lp = 0 highest_key = 0 if isinstance(__locking[ctx.caller], list): for lock_contract in __locking[ctx.caller]: locked_lp = __locking[ctx.caller, lock_contract, 'lp'] locked_key = __locking[ctx.caller, lock_contract, 'key'] if locked_lp > highest_lp: highest_lp = locked_lp if locked_key > highest_key: highest_key = locked_key lp_available = staked_lp - highest_lp key_available = staked_key - highest_key assert lp_available >= neb_lp_amount, f'Only {lp_available} NEB LP available to unstake' assert key_available >= neb_key_amount, f'Only {key_available} NEB KEY available to unstake' if neb_lp_amount > 0: I.import_module(__con['dex']).transfer_liquidity(contract=__con[ 'neb'], to=ctx.caller, amount=neb_lp_amount) if neb_key_amount > 0: I.import_module(__con['key']).transfer(amount=neb_key_amount, to= ctx.caller) __staking[ctx.caller, 'lp'] -= neb_lp_amount __staking[ctx.caller, 'key'] -= neb_key_amount __staking['lp'] -= neb_lp_amount __staking['key'] -= neb_key_amount @__export('con_neb_vault_lp_051') def lock(): user_address = ctx.signer vault_contract = ctx.caller assert vault_contract in __trusted.get( ), f'Unknown contract {vault_contract}' if not isinstance(__locking[user_address], list): __locking[user_address] = [] lock_list = __locking[user_address] if not vault_contract in lock_list: lock_list.append(vault_contract) __locking[user_address] = lock_list level = get_level(user_address) __locking[user_address, vault_contract, 'lp'] = level['lp'] __locking[user_address, vault_contract, 'key'] = level['key'] return level @__export('con_neb_vault_lp_051') def unlock(): user_address = ctx.signer vault_contract = ctx.caller assert vault_contract in __trusted.get( ), f'Unknown contract {vault_contract}' lock_list = __locking[user_address] if vault_contract in lock_list: lock_list.remove(vault_contract) __locking[user_address] = lock_list __locking[user_address, vault_contract, 'lp'] = 0 __locking[user_address, vault_contract, 'key'] = 0 @__export('con_neb_vault_lp_051') def set_contract(key: str, value: str): __con[key] = value __assert_owner() @__export('con_neb_vault_lp_051') def set_levels(level: int, data: dict): __levels[level] = data __assert_owner() @__export('con_neb_vault_lp_051') def add_valid_vault(contract_name: str): assert ctx.caller == VALIDATOR, 'Only validator can add trusted contracts!' trusted_contracts = __trusted.get() if contract_name not in trusted_contracts: trusted_contracts.append(contract_name) __trusted.set(trusted_contracts) @__export('con_neb_vault_lp_051') def remove_valid_vault(contract_name: str): assert ctx.caller == VALIDATOR, 'Only validator can remove trusted contracts!' trusted_contracts = __trusted.get() if contract_name in trusted_contracts: trusted_contracts.remove(contract_name) __trusted.set(trusted_contracts) @__export('con_neb_vault_lp_051') def emergency_remove_lock(user_address: str, vault_contract: str): __assert_owner() lock_list = __locking[user_address] if vault_contract in lock_list: lock_list.remove(vault_contract) __locking[user_address] = lock_list __locking[user_address, vault_contract, 'lp'] = 0 __locking[user_address, vault_contract, 'key'] = 0 @__export('con_neb_vault_lp_051') def emergency_withdraw_token(contract_name: str, amount: float): I.import_module(contract_name).transfer(amount, ctx.caller) __assert_owner() @__export('con_neb_vault_lp_051') def emergency_withdraw_lp(contract_name: str, amount: float): I.import_module(__con['dex']).transfer_liquidity(contract_name, ctx. caller, amount) __assert_owner() @__export('con_neb_vault_lp_051') def active(is_active: bool): __active.set(is_active) __assert_owner() def __assert_active(): assert __active.get() == True, 'Vault inactive!' def __assert_owner(): assert ctx.caller in OPERATORS, 'Only executable by operators!'
Contract
con_neb_vault_lp_051
Variable
__compiled__
New Value
{"__bytes__":"e3000000000000000000000000050000004000000073b601000065005a01650264006401640264038d035a03650264006401640464038d035a04650264006401640564038d035a05650264066401640764038d035a0665076401640864098d025a0865076401640a64098d025a09640b5a0a640c640d67025a0b640e640f84005a0c650d64018301650e64109c0164116412840483015a0f650d64018301650e64109c0164136414840483015a10650d6401830164386511651264159c0264166417840583015a13650d6401830164396511651264159c0264186419840583015a14650d64018301641a641b840083015a15650d64018301641c641d840083015a16650d64018301650e650e641e9c02641f6420840483015a17650d640183016512651864219c0264226423840483015a19650d64018301650e64249c0164256426840483015a1a650d64018301650e64249c0164276428840483015a1b650d64018301650e650e64299c02642a642b840483015a1c650d64018301650e6511642c9c02642d642e840483015a1d650d64018301650e6511642c9c02642f6430840483015a1e650d64018301651f64319c016432640a840483015a206433643484005a216435643684005a2264375300293ae900000000da14636f6e5f6e65625f7661756c745f6c705f303531da077374616b696e672903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da076c6f636b696e67da066c6576656c73da00da03636f6eda0774727573746564290272050000007206000000da06616374697665da4039613132353534633230393835363764323261616139623738376437336236303664326632303434613630323138366333623961663635663663353863666166da4061653764313464366439623834343366383831626136323434373237623639623638313031306537383264346665343832646266623062366163613032643564da406537383765643539303737343266613864353062336361323730316162386530336563373439636564383036613135636461623830306131323764376638363363000000000000000000000000050000004300000073b00000006401740064023c006403740064043c006405740064063c00640764086408740164098301640a9c04740264073c00640b7401640c830164087401640d8301640a9c047402640b3c00640e640864076407640a9c047402640e3c00640f7401641083016408740164118301640a9c047402640f3c00641264136408640e640a9c04740264123c00641464156408640f640a9c04740264143c0074036a0467008301010074056a046416830101006400530029174eda0e636f6e5f6e6562756c615f303032da036e6562da0f636f6e5f6e65625f6b65795f303031da036b6579da0a636f6e5f616d6d5f7639da03646578e90100000072010000007a05302e3337352904da056c6576656cda026c707213000000da08656d697373696f6ee9020000007a0531382e37357a04302e3735e903000000e9040000007a0433372e357a03312e35e905000000e94b000000e906000000e996000000542906da055f5f636f6eda07646563696d616cda085f5f6c6576656c73da095f5f74727573746564da03736574da085f5f616374697665a900722700000072270000007209000000da045f5f5f5f10000000731a000000000108010801080116010a01100112010a011001120112010a0172280000002901da0761646472657373630100000000000000050000000400000043000000736800000074007c006401660219007d0174007c006402660219007d0278467401640364046406830344005d367d0374027c03190064046b027238712674027c0319007d047c017c04640119006b0572267c027c04640219006b0572267c04530071265700740264051900530029074e72180000007213000000e90a00000072010000007216000000e9ffffffff2903da095f5f7374616b696e67da0572616e6765722300000029057229000000da086c705f7374616b65da096b65795f7374616b65da01697217000000722700000072270000007209000000da096765745f6c6576656c20000000731200000000020c010c0112010c0102010801180108017231000000630100000000000000020000000900000043000000733400000074007c0083017d0164017c01640219009b0064037c01640419009b0064057c01640619009b0064077c01640819009b009d08530029094e7a074c6576656c3a2072170000007a062c204c503a2072180000007a072c204b45593a2072130000007a0c2c20456d697373696f6e3a2072190000002901723100000029027229000000da016c722700000072270000007209000000da0a73686f775f6c6576656c2d00000073040000000002080272330000002902da0d6e65625f6c705f616d6f756e74da0e6e65625f6b65795f616d6f756e7463020000000000000002000000060000004300000073c80000007400830001007c0064016b05731674016402830182017c0164016b05732674016402830182017c0064016b04727874026403050019007c00370003003c00740274036a0464036602050019007c00370003003c0074056a0674076404190083016a0874076405190074036a0974036a047c0064068d0401007c0164016b0472c474026407050019007c01370003003c00740274036a0464076602050019007c01370003003c0074056a0674076407190083016a0a74036a047c0174036a0964088d0301006400530029094e72010000007a204e6567617469766520616d6f756e747320617265206e6f7420616c6c6f77656472180000007215000000721100000029047205000000da02746fda0c6d61696e5f6163636f756e74da06616d6f756e7472130000002903723700000072380000007236000000290bda0f5f5f6173736572745f616374697665da0e417373657274696f6e4572726f72722c000000da03637478da0663616c6c6572da0149da0d696d706f72745f6d6f64756c657221000000da177472616e736665725f6c69717569646974795f66726f6dda0474686973da0d7472616e736665725f66726f6d290272340000007235000000722700000072270000007209000000da057374616b6535000000731c00000000020601100110010801100116010e010e010801080110011601120172420000006302000000000000000b000000050000004300000073840100007400830001007c0064016b05731674016402830182017c0164016b0573267401640283018201740274036a046403660219007d02740274036a046404660219007d0364017d0464017d057405740674036a0419007407830272a6784a740674036a04190044005d3c7d06740674036a047c066403660319007d07740674036a047c066404660319007d087c077c046b0472967c077d047c087c056b0472667c087d05716657007c027c0418007d097c037c0518007d0a7c097c006b0573ce740164057c099b0064069d03830182017c0a7c016b0573e6740164057c0a9b0064079d03830182017c0064016b049001721074086a09740a6408190083016a0b740a6409190074036a047c00640a8d0301007c0164016b049001723474086a09740a6404190083016a0c7c0174036a04640b8d020100740274036a0464036602050019007c00380003003c00740274036a0464046602050019007c01380003003c0074026403050019007c00380003003c0074026404050019007c01380003003c0064005300290c4e72010000007a204e6567617469766520616d6f756e747320617265206e6f7420616c6c6f776564721800000072130000007a054f6e6c79207a1c204e4542204c5020617661696c61626c6520746f20756e7374616b657a1d204e4542204b455920617661696c61626c6520746f20756e7374616b65721500000072110000002903720500000072360000007238000000290272380000007236000000290d7239000000723a000000722c000000723b000000723c000000da0a6973696e7374616e6365da095f5f6c6f636b696e67da046c697374723d000000723e0000007221000000da127472616e736665725f6c6971756964697479da087472616e73666572290b72340000007235000000da097374616b65645f6c70da0a7374616b65645f6b6579da0a686967686573745f6c70da0b686967686573745f6b6579da0d6c6f636b5f636f6e7472616374da096c6f636b65645f6c70da0a6c6f636b65645f6b6579da0c6c705f617661696c61626c65da0d6b65795f617661696c61626c65722700000072270000007209000000da07756e7374616b6547000000733a00000000020601100110010e010e01040104011001100110011001080104010801080108010801180118010a01100110010a0110010a011601160110017251000000630000000000000000040000000500000043000000738e00000074006a017d0074006a027d017c0174036a0483006b067326740564017c019b009d0283018201740674077c00190074088302733c670074077c003c0074077c0019007d027c017c026b0772567c026a097c01830101007c0274077c003c00740a7c0083017d037c036402190074077c007c01640266033c007c036403190074077c007c01640366033c007c03530029044e7a11556e6b6e6f776e20636f6e74726163742072180000007213000000290b723b000000da067369676e6572723c0000007224000000da03676574723a000000724300000072440000007245000000da06617070656e6472310000002904da0c757365725f61646472657373da0e7661756c745f636f6e7472616374da096c6f636b5f6c6973747217000000722700000072270000007209000000da046c6f636b68000000731c0000000002060106010e010c010e010801080108010a0108010801120112017258000000630000000000000000030000000500000043000000736800000074006a017d0074006a027d017c0174036a0483006b067326740564017c019b009d028301820174067c0019007d027c017c026b0672407c026a077c01830101007c0274067c003c00640274067c007c01640366033c00640274067c007c01640466033c006400530029054e7a11556e6b6e6f776e20636f6e7472616374207201000000721800000072130000002908723b0000007252000000723c00000072240000007253000000723a0000007244000000da0672656d6f76652903725500000072560000007257000000722700000072270000007209000000da06756e6c6f636b7a00000073140000000002060106010e010c01080108010a0108010e01725a00000029027213000000da0576616c756563020000000000000002000000030000004300000073120000007c0174007c003c007401830001006400530029014e29027221000000da0e5f5f6173736572745f6f776e657229027213000000725b000000722700000072270000007209000000da0c7365745f636f6e747261637488000000730400000000020801725d00000029027217000000da046461746163020000000000000002000000030000004300000073120000007c0174007c003c007401830001006400530029014e29027223000000725c00000029027217000000725e000000722700000072270000007209000000da0a7365745f6c6576656c738e000000730400000000020801725f0000002901da0d636f6e74726163745f6e616d65630100000000000000020000000200000043000000733a00000074006a0174026b027312740364018301820174046a0583007d017c007c016b0772367c016a067c008301010074046a077c01830101006400530029024e7a294f6e6c792076616c696461746f722063616e20616464207472757374656420636f6e747261637473212908723b000000723c000000da0956414c494441544f52723a000000722400000072530000007254000000722500000029027260000000da11747275737465645f636f6e747261637473722700000072270000007209000000da0f6164645f76616c69645f7661756c7494000000730a00000000021201080108010a017263000000630100000000000000020000000200000043000000733a00000074006a0174026b027312740364018301820174046a0583007d017c007c016b0672367c016a067c008301010074046a077c01830101006400530029024e7a2c4f6e6c792076616c696461746f722063616e2072656d6f7665207472757374656420636f6e747261637473212908723b000000723c0000007261000000723a0000007224000000725300000072590000007225000000290272600000007262000000722700000072270000007209000000da1272656d6f76655f76616c69645f7661756c749d000000730a00000000021201080108010a017264000000290272550000007256000000630200000000000000030000000500000043000000734800000074008300010074017c0019007d027c017c026b0672207c026a027c01830101007c0274017c003c00640174017c007c01640266033c00640174017c007c01640366033c006400530029044e7201000000721800000072130000002903725c000000724400000072590000002903725500000072560000007257000000722700000072270000007209000000da15656d657267656e63795f72656d6f76655f6c6f636ba6000000730e00000000020601080108010a0108010e017265000000290272600000007238000000630200000000000000020000000300000043000000731e00000074006a017c0083016a027c0174036a04830201007405830001006400530029014e2906723d000000723e0000007247000000723b000000723c000000725c000000290272600000007238000000722700000072270000007209000000da18656d657267656e63795f77697468647261775f746f6b656eb10000007304000000000214017266000000630200000000000000020000000400000043000000732400000074006a0174026401190083016a037c0074046a057c01830301007406830001006400530029024e72150000002907723d000000723e00000072210000007246000000723b000000723c000000725c000000290272600000007238000000722700000072270000007209000000da15656d657267656e63795f77697468647261775f6c70b7000000730600000000021401060172670000002901da0969735f616374697665630100000000000000010000000200000043000000731400000074006a017c00830101007402830001006400530029014e290372260000007225000000725c00000029017268000000722700000072270000007209000000720c000000be000000730400000000020a01630000000000000000000000000200000043000000731800000074006a01830064016b02731474026402830182016400530029034e547a0f5661756c7420696e61637469766521290372260000007253000000723a00000072270000007227000000722700000072090000007239000000c4000000730200000000017239000000630000000000000000000000000200000043000000731600000074006a0174026b06731274036401830182016400530029024e7a1d4f6e6c792065786563757461626c65206279206f70657261746f7273212904723b000000723c000000da094f50455241544f5253723a0000007227000000722700000072270000007209000000725c000000c800000073020000000001725c0000004e2902720100000072010000002902720100000072010000002923da09696d706f72746c6962723d000000da0448617368722c000000724400000072230000007221000000da085661726961626c6572240000007226000000726100000072690000007228000000da085f5f6578706f7274da0373747272310000007233000000da05666c6f6174da03696e74724200000072510000007258000000725a000000725d000000da0464696374725f00000072630000007264000000726500000072660000007267000000da04626f6f6c720c0000007239000000725c0000007227000000722700000072270000007209000000da083c6d6f64756c653e010000007350000000040106010801060108010e020e010c010c0104010201060308100601100c0601100706011411060114201012100e060112050601120506011008060110080601120a0601120506011206060110050804"}
Contract
con_neb_vault_lp_051
Variable
__owner__
New Value
NULL
Contract
con_neb_vault_lp_051
Variable
__submitted__
New Value
{"__time__":[2022,1,11,22,34,0,0]}
Contract
con_neb_vault_lp_051
Variable
__developer__
New Value
ae7d14d6d9b8443f881ba6244727b69b681010e782d4fe482dbfb0b6aca02d5d
Contract
currency
Variable
balances
New Value
2,494