Transaction #614318

Hash c74d4b9fc2db6adce8ab7706b11747a7e9fb4841960283ebe7e3ca71d2202529
Status Success
Timestamp 869 days ago - 12/30/2021, 12:33:22 AM UTC+0
Block 577091
Stamps Used 596
Burned Fee 0.03526627 TAU
From 6a9004cbc570592c21879e5ee319c754b9b7bf0278878b1cc21ac87eed0ee38d 
Contract Name submission
Function Name submit_contract

Additional Info
SubBlock Number 0
Nonce 153
Processor 5b09493df6c18d17cc883ebce54fcb1f5afbd507533417fe32c006009a9c3c4a
Signature 82b5cc72aada1b4856fa09ab2b1a1e6fb7ecdc795f86dd2089a480d34fdf8de7998b35d4d7e3d3f408f4085af34fa95e8bb53b2b50e116292184d9d92bee8605
Stamps Supplied 845
Stamps per TAU 169

Kwargs

code # Python USD - Lamden Fully Decentralized Stable Coin # Difference to LUSD is that PUSD is collateralized by TAU on this chain instead of USDT # No Slippage Stablecoin Swap available at https://pusd.to import currency as tau I = importlib balances = Hash(default_value=0) allowances = Hash(default_value=0) metadata = Hash(default_value='') total_supply = Variable() dapp_state = Variable() last_price = Variable() @construct def seed(): metadata['token_name'] = "Python USD" metadata['token_symbol'] = "PUSD" metadata['dex'] = 'con_rocketswap_official_v1_1' metadata['lusd'] = 'con_lusd_lst001' metadata['dev_addr'] = 'b561090f790569de8cce8f614ebcd2e8c75e2301a027e36159b734b390d39752' metadata['dev_tax'] = 1 # Developer tax metadata['mnt_tax'] = 1 # Minting tax metadata['liq_tax'] = 2 # Liquidity tax metadata['anti_manipulation_threshold'] = 7 metadata['operators'] = [ 'ae7d14d6d9b8443f881ba6244727b69b681010e782d4fe482dbfb0b6aca02d5d', '6a9004cbc570592c21879e5ee319c754b9b7bf0278878b1cc21ac87eed0ee38d' ] prices = ForeignHash(foreign_contract=metadata['dex'], foreign_name='prices') total_supply.set(0) dapp_state.set('active') last_price.set(prices[metadata['lusd']]) @export def change_metadata(key: str, value: Any): assert key.lower() != 'operators', 'Can not change owners' assert value, 'Parameter "value" can not be empty' metadata[key, ctx.caller] = value owner1 = metadata['operators'][0] owner2 = metadata['operators'][1] owner1_metadata_change = metadata[key, owner1] owner2_metadata_change = metadata[key, owner2] if owner1_metadata_change == owner2_metadata_change: metadata[key] = value metadata[key, owner1] = '' metadata[key, owner2] = '' assert_owner() @export def transfer(amount: float, to: str): assert amount > 0, 'Cannot send negative balances!' assert balances[ctx.caller] >= amount, 'Not enough coins to send!' balances[ctx.caller] -= amount balances[to] += amount @export def approve(amount: float, to: str): assert amount > 0, 'Cannot send negative balances!' allowances[ctx.caller, to] += amount @export def transfer_from(amount: float, to: str, main_account: str): assert amount > 0, 'Cannot send negative balances!' assert allowances[main_account, ctx.caller] >= amount, f'You approved {allowances[main_account, ctx.caller]} but need {amount}' assert balances[main_account] >= amount, 'Not enough coins to send!' allowances[main_account, ctx.caller] -= amount balances[main_account] -= amount balances[to] += amount @export def tau_to_pusd(tau_amount: float): assert tau_amount > 0, 'Cannot send negative balances!' assert dapp_state.get() == 'active', 'The dapp is currently paused' prices = ForeignHash(foreign_contract=metadata['dex'], foreign_name='prices') price_change = abs(((prices[metadata['lusd']])-last_price.get())/last_price.get())*100 if (price_change >= metadata['anti_manipulation_threshold']): dapp_state.set('inactive') else: dev_amount = tau_amount / 100 * metadata['dev_tax'] mnt_amount = tau_amount / 100 * metadata['mnt_tax'] tau.transfer_from(amount=tau_amount, to=ctx.this, main_account=ctx.caller) tau.transfer(amount=dev_amount, to=metadata['dev_addr']) pusd_amount = ((tau_amount - dev_amount - mnt_amount) / prices[metadata['lusd']]) balances[ctx.caller] += pusd_amount total_supply.set(total_supply.get() + pusd_amount) last_price.set(prices[metadata['lusd']]) @export def pusd_to_tau(pusd_amount: float): assert pusd_amount > 0, 'Cannot send negative balances!' assert dapp_state.get() == 'active', 'The dapp is currently paused' prices = ForeignHash(foreign_contract=metadata['dex'], foreign_name='prices') price_change = abs(((prices[metadata['lusd']])-last_price.get())/last_price.get())*100 if (price_change >= metadata['anti_manipulation_threshold']): dapp_state.set('inactive') else: liq_amount = pusd_amount / 100 * metadata['liq_tax'] tau_amount = (pusd_amount - liq_amount) * prices[metadata['lusd']] tau.transfer(amount=tau_amount, to=ctx.caller) balances[ctx.this] += liq_amount balances[ctx.caller] -= pusd_amount total_supply.set(total_supply.get() - pusd_amount) last_price.set(prices[metadata['lusd']]) if liq_amount >= 10: add_liquidity(liq_amount) def add_liquidity(pusd_amount: float): approve(amount=pusd_amount, to=metadata['dex']) tau_amount = I.import_module(metadata['dex']).sell(contract=ctx.this, token_amount=pusd_amount / 2) tau.approve(amount=tau_amount, to=metadata['dex']) I.import_module(metadata['dex']).add_liquidity(contract=ctx.this, currency_amount=tau_amount) @export def unpause_dapp(): prices = ForeignHash(foreign_contract=metadata['dex'], foreign_name='prices') last_price.set(prices[metadata['lusd']]) dapp_state.set('active') assert_owner() @export def get_current_backing_ratio(): # > 1 = Good prices = ForeignHash(foreign_contract=metadata['dex'], foreign_name='prices') return ((tau.balance_of(ctx.this) * (1 / prices[metadata['lusd']])) / circulating_supply()) @export def migrate_tau(contract: str, amount: float): approved_action('migrate_tau', contract, amount) tau.transfer(amount=amount, to=contract, main_account=ctx.this) assert_owner() @export def migrate_pusd(contract: str, amount: float): assert amount > 0, 'Cannot send negative balances!' assert balances[ctx.this] >= amount, 'Not enough coins to send!' approved_action('migrate_pusd', contract, amount) balances[ctx.this] -= amount balances[contract] += amount assert_owner() @export def migrate_lp(contract: str, amount: float): approved_action('migrate_lp', contract, amount) dex = I.import_module(metadata['dex']) dex.approve_liquidity(ctx.this, contract, amount) dex.transfer_liquidity(ctx.this, contract, amount) assert_owner() def approved_action(action: str, contract: str, amount: float): owner1 = metadata['operators'][0] owner2 = metadata['operators'][1] owner1_action = metadata[action, owner1] owner2_action = metadata[action, owner2] assert owner1_action == f'{contract},{amount}', f'Wrong metadata for {owner1}' assert owner2_action == f'{contract},{amount}', f'Wrong metadata for {owner2}' @export def circulating_supply(): return f'{total_supply.get() - balances[ctx.this]}' @export def total_supply(): return f'{total_supply.get()}' def assert_owner(): assert ctx.caller in metadata['operators'], 'Only executable by operators!'
name con_pusd_v1_2

State Changes

Contract con_pusd_v1_2
Variable metadata
Key token_name
New Value Python USD
 
Contract con_pusd_v1_2
Variable metadata
Key token_symbol
New Value PUSD
 
Contract con_pusd_v1_2
Variable metadata
Key dex
New Value con_rocketswap_official_v1_1
 
Contract con_pusd_v1_2
Variable metadata
Key lusd
New Value con_lusd_lst001
 
Contract con_pusd_v1_2
Variable metadata
Key dev_addr
New Value b561090f790569de8cce8f614ebcd2e8c75e2301a027e36159b734b390d39752
 
Contract con_pusd_v1_2
Variable metadata
Key dev_tax
New Value 1
 
Contract con_pusd_v1_2
Variable metadata
Key mnt_tax
New Value 1
 
Contract con_pusd_v1_2
Variable metadata
Key liq_tax
New Value 2
 
Contract con_pusd_v1_2
Variable metadata
Key anti_manipulation_threshold
New Value 7
 
Contract con_pusd_v1_2
Variable metadata
Key operators
New Value ["ae7d14d6d9b8443f881ba6244727b69b681010e782d4fe482dbfb0b6aca02d5d","6a9004cbc570592c21879e5ee319c754b9b7bf0278878b1cc21ac87eed0ee38d"]
 
Contract con_pusd_v1_2
Variable total_supply
New Value 0
 
Contract con_pusd_v1_2
Variable dapp_state
New Value active
 
Contract con_pusd_v1_2
Variable last_price
New Value 9.756313708993431776407531419776
 
Contract con_pusd_v1_2
Variable __code__
New Value import currency as tau I = importlib __balances = Hash(default_value=0, contract='con_pusd_v1_2', name='balances') __allowances = Hash(default_value=0, contract='con_pusd_v1_2', name= 'allowances') __metadata = Hash(default_value='', contract='con_pusd_v1_2', name='metadata') __total_supply = Variable(contract='con_pusd_v1_2', name='total_supply') __dapp_state = Variable(contract='con_pusd_v1_2', name='dapp_state') __last_price = Variable(contract='con_pusd_v1_2', name='last_price') def ____(): __metadata['token_name'] = 'Python USD' __metadata['token_symbol'] = 'PUSD' __metadata['dex'] = 'con_rocketswap_official_v1_1' __metadata['lusd'] = 'con_lusd_lst001' __metadata['dev_addr' ] = 'b561090f790569de8cce8f614ebcd2e8c75e2301a027e36159b734b390d39752' __metadata['dev_tax'] = 1 __metadata['mnt_tax'] = 1 __metadata['liq_tax'] = 2 __metadata['anti_manipulation_threshold'] = 7 __metadata['operators'] = [ 'ae7d14d6d9b8443f881ba6244727b69b681010e782d4fe482dbfb0b6aca02d5d', '6a9004cbc570592c21879e5ee319c754b9b7bf0278878b1cc21ac87eed0ee38d'] __prices = ForeignHash(foreign_contract=__metadata['dex'], foreign_name ='prices', contract='con_pusd_v1_2', name='prices') __total_supply.set(0) __dapp_state.set('active') __last_price.set(__prices[__metadata['lusd']]) @__export('con_pusd_v1_2') def change_metadata(key: str, value: Any): assert key.lower() != 'operators', 'Can not change owners' assert value, 'Parameter "value" can not be empty' __metadata[key, ctx.caller] = value owner1 = __metadata['operators'][0] owner2 = __metadata['operators'][1] owner1_metadata_change = __metadata[key, owner1] owner2_metadata_change = __metadata[key, owner2] if owner1_metadata_change == owner2_metadata_change: __metadata[key] = value __metadata[key, owner1] = '' __metadata[key, owner2] = '' __assert_owner() @__export('con_pusd_v1_2') def transfer(amount: float, to: str): assert amount > 0, 'Cannot send negative balances!' assert __balances[ctx.caller] >= amount, 'Not enough coins to send!' __balances[ctx.caller] -= amount __balances[to] += amount @__export('con_pusd_v1_2') def approve(amount: float, to: str): assert amount > 0, 'Cannot send negative balances!' __allowances[ctx.caller, to] += amount @__export('con_pusd_v1_2') def transfer_from(amount: float, to: str, main_account: str): assert amount > 0, 'Cannot send negative balances!' assert __allowances[main_account, ctx.caller ] >= amount, f'You approved {__allowances[main_account, ctx.caller]} but need {amount}' assert __balances[main_account] >= amount, 'Not enough coins to send!' __allowances[main_account, ctx.caller] -= amount __balances[main_account] -= amount __balances[to] += amount @__export('con_pusd_v1_2') def tau_to_pusd(tau_amount: float): assert tau_amount > 0, 'Cannot send negative balances!' assert __dapp_state.get() == 'active', 'The dapp is currently paused' __prices = ForeignHash(foreign_contract=__metadata['dex'], foreign_name ='prices', contract='con_pusd_v1_2', name='prices') price_change = abs((__prices[__metadata['lusd']] - __last_price.get()) / __last_price.get()) * 100 if price_change >= __metadata['anti_manipulation_threshold']: __dapp_state.set('inactive') else: dev_amount = tau_amount / 100 * __metadata['dev_tax'] mnt_amount = tau_amount / 100 * __metadata['mnt_tax'] tau.transfer_from(amount=tau_amount, to=ctx.this, main_account=ctx. caller) tau.transfer(amount=dev_amount, to=__metadata['dev_addr']) pusd_amount = (tau_amount - dev_amount - mnt_amount) / __prices[ __metadata['lusd']] __balances[ctx.caller] += pusd_amount __total_supply.set(__total_supply.get() + pusd_amount) __last_price.set(__prices[__metadata['lusd']]) @__export('con_pusd_v1_2') def pusd_to_tau(pusd_amount: float): assert pusd_amount > 0, 'Cannot send negative balances!' assert __dapp_state.get() == 'active', 'The dapp is currently paused' __prices = ForeignHash(foreign_contract=__metadata['dex'], foreign_name ='prices', contract='con_pusd_v1_2', name='prices') price_change = abs((__prices[__metadata['lusd']] - __last_price.get()) / __last_price.get()) * 100 if price_change >= __metadata['anti_manipulation_threshold']: __dapp_state.set('inactive') else: liq_amount = pusd_amount / 100 * __metadata['liq_tax'] tau_amount = (pusd_amount - liq_amount) * __prices[__metadata['lusd']] tau.transfer(amount=tau_amount, to=ctx.caller) __balances[ctx.this] += liq_amount __balances[ctx.caller] -= pusd_amount __total_supply.set(__total_supply.get() - pusd_amount) __last_price.set(__prices[__metadata['lusd']]) if liq_amount >= 10: __add_liquidity(liq_amount) def __add_liquidity(pusd_amount: float): approve(amount=pusd_amount, to=__metadata['dex']) tau_amount = I.import_module(__metadata['dex']).sell(contract=ctx.this, token_amount=pusd_amount / 2) tau.approve(amount=tau_amount, to=__metadata['dex']) I.import_module(__metadata['dex']).add_liquidity(contract=ctx.this, currency_amount=tau_amount) @__export('con_pusd_v1_2') def unpause_dapp(): __prices = ForeignHash(foreign_contract=__metadata['dex'], foreign_name ='prices', contract='con_pusd_v1_2', name='prices') __last_price.set(__prices[__metadata['lusd']]) __dapp_state.set('active') __assert_owner() @__export('con_pusd_v1_2') def get_current_backing_ratio(): __prices = ForeignHash(foreign_contract=__metadata['dex'], foreign_name ='prices', contract='con_pusd_v1_2', name='prices') return tau.balance_of(ctx.this) * (1 / __prices[__metadata['lusd']] ) / circulating_supply() @__export('con_pusd_v1_2') def migrate_tau(contract: str, amount: float): __approved_action('migrate_tau', contract, amount) tau.transfer(amount=amount, to=contract, main_account=ctx.this) __assert_owner() @__export('con_pusd_v1_2') def migrate_pusd(contract: str, amount: float): assert amount > 0, 'Cannot send negative balances!' assert __balances[ctx.this] >= amount, 'Not enough coins to send!' __approved_action('migrate_pusd', contract, amount) __balances[ctx.this] -= amount __balances[contract] += amount __assert_owner() @__export('con_pusd_v1_2') def migrate_lp(contract: str, amount: float): __approved_action('migrate_lp', contract, amount) dex = I.import_module(__metadata['dex']) dex.approve_liquidity(ctx.this, contract, amount) dex.transfer_liquidity(ctx.this, contract, amount) __assert_owner() def __approved_action(action: str, contract: str, amount: float): owner1 = __metadata['operators'][0] owner2 = __metadata['operators'][1] owner1_action = __metadata[action, owner1] owner2_action = __metadata[action, owner2] assert owner1_action == f'{contract},{amount}', f'Wrong metadata for {owner1}' assert owner2_action == f'{contract},{amount}', f'Wrong metadata for {owner2}' @__export('con_pusd_v1_2') def circulating_supply(): return f'{__total_supply.get() - __balances[ctx.this]}' @__export('con_pusd_v1_2') def total_supply(): return f'{__total_supply.get()}' def __assert_owner(): assert ctx.caller in __metadata['operators' ], 'Only executable by operators!'
 
Contract con_pusd_v1_2
Variable __compiled__
New Value e3000000000000000000000000050000004000000073a4010000640064016c005a0165025a03650464006402640364048d035a05650464006402640564048d035a06650464066402640764048d035a0765086402640864098d025a0965086402640a64098d025a0a65086402640b64098d025a0b640c640d84005a0c650d64028301650e650f640e9c02640f6410840483015a10650d640283016511650e64119c0264126413840483015a12650d640283016511650e64119c0264146415840483015a13650d640283016511650e650e64169c0364176418840483015a14650d64028301651164199c01641a641b840483015a15650d640283016511641c9c01641d641e840483015a166511641c9c01641f642084045a17650d6402830164216422840083015a18650d6402830164236424840083015a19650d64028301650e651164259c0264266427840483015a1a650d64028301650e651164259c0264286429840483015a1b650d64028301650e651164259c02642a642b840483015a1c650e650e6511642c9c03642d642e84045a1d650d64028301642f6430840083015a1e650d6402830164316408840083015a1f6432643384005a20640153002934e9000000004eda0d636f6e5f707573645f76315f32da0862616c616e6365732903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da0a616c6c6f77616e636573da00da086d65746164617461da0c746f74616c5f737570706c79290272050000007206000000da0a646170705f7374617465da0a6c6173745f707269636563000000000000000001000000060000004300000073920000006401740064023c006403740064043c006405740064063c006407740064083c0064097400640a3c00640b7400640c3c00640b7400640d3c00640e7400640f3c006410740064113c00641264136702740064143c00740174006406190064156416641564178d047d0074026a0364188301010074046a0364198301010074056a037c0074006408190019008301010064005300291a4e7a0a507974686f6e20555344da0a746f6b656e5f6e616d65da0450555344da0c746f6b656e5f73796d626f6cda1c636f6e5f726f636b6574737761705f6f6666696369616c5f76315f31da03646578da0f636f6e5f6c7573645f6c7374303031da046c757364da4062353631303930663739303536396465386363653866363134656263643265386337356532333031613032376533363135396237333462333930643339373532da086465765f61646472e901000000da076465765f746178da076d6e745f746178e902000000da076c69715f746178e907000000da1b616e74695f6d616e6970756c6174696f6e5f7468726573686f6c64da4061653764313464366439623834343366383831626136323434373237623639623638313031306537383264346665343832646266623062366163613032643564da4036613930303463626335373035393263323138373965356565333139633735346239623762663032373838373862316363323161633837656564306565333864da096f70657261746f7273da0670726963657372020000002904da10666f726569676e5f636f6e7472616374da0c666f726569676e5f6e616d65720500000072060000007201000000da066163746976652906da0a5f5f6d65746164617461da0b466f726569676e48617368da0e5f5f746f74616c5f737570706c79da03736574da0c5f5f646170705f7374617465da0c5f5f6c6173745f70726963652901da085f5f707269636573a900722b0000007208000000da045f5f5f5f0c0000007320000000000108010801080108020801080108010801080202010a0108010c010a010a01722c0000002902da036b6579da0576616c756563020000000000000006000000040000004300000073900000007c006a00830064016b03731474016402830182017c01732074016403830182017c0174027c0074036a0466023c00740264011900640419007d02740264011900640519007d0374027c007c02660219007d0474027c007c03660219007d057c047c056b0272867c0174027c003c00640674027c007c0266023c00640674027c007c0366023c007405830001006400530029074e721f0000007a1543616e206e6f74206368616e6765206f776e6572737a22506172616d65746572202276616c7565222063616e206e6f7420626520656d7074797201000000721600000072080000002906da056c6f776572da0e417373657274696f6e4572726f727224000000da03637478da0663616c6c6572da0e5f5f6173736572745f6f776e65722906722d000000722e000000da066f776e657231da066f776e657232da166f776e6572315f6d657461646174615f6368616e6765da166f776e6572325f6d657461646174615f6368616e6765722b000000722b0000007208000000da0f6368616e67655f6d65746164617461210000007318000000000214010c010e010c010c010c010c01080108010c010c0172380000002902da06616d6f756e74da02746f630200000000000000020000000400000043000000734c0000007c0064016b0473107400640283018201740174026a0319007c006b0573267400640383018201740174026a03050019007c00380003003c0074017c01050019007c00370003003c006400530029044e72010000007a1e43616e6e6f742073656e64206e656761746976652062616c616e636573217a194e6f7420656e6f75676820636f696e7320746f2073656e642129047230000000da0a5f5f62616c616e6365737231000000723200000029027239000000723a000000722b000000722b0000007208000000da087472616e736665723100000073080000000002100116011201723c000000630200000000000000020000000400000043000000732a0000007c0064016b0473107400640283018201740174026a037c016602050019007c00370003003c006400530029034e72010000007a1e43616e6e6f742073656e64206e656761746976652062616c616e6365732129047230000000da0c5f5f616c6c6f77616e6365737231000000723200000029027239000000723a000000722b000000722b0000007208000000da07617070726f766539000000730400000000021001723e00000029037239000000723a000000da0c6d61696e5f6163636f756e74630300000000000000030000000500000043000000738e0000007c0064016b047310740064028301820174017c0274026a03660219007c006b0573407400640374017c0274026a03660219009b0064047c009b009d048301820174047c0219007c006b057354740064058301820174017c0274026a036602050019007c00380003003c0074047c02050019007c00380003003c0074047c01050019007c00370003003c006400530029064e72010000007a1e43616e6e6f742073656e64206e656761746976652062616c616e636573217a0d596f7520617070726f766564207a0a20627574206e656564207a194e6f7420656e6f75676820636f696e7320746f2073656e642129057230000000723d00000072310000007232000000723b00000029037239000000723a000000723f000000722b000000722b0000007208000000da0d7472616e736665725f66726f6d3f000000730e000000000210010c01240114011601100172400000002901da0a7461755f616d6f756e74630100000000000000060000000600000043000000730c0100007c0064016b047310740064028301820174016a02830064036b0273247400640483018201740374046405190064066407640664088d047d0174057c01740464091900190074066a028300180074066a0283001b008301640a14007d027c027404640b19006b05727474016a07640c830101006e947c00640a1b007404640d190014007d037c00640a1b007404640e190014007d0474086a097c00740a6a0b740a6a0c640f8d03010074086a0d7c0374046410190064118d0201007c007c0318007c0418007c0174046409190019001b007d05740e740a6a0c050019007c05370003003c00740f6a07740f6a0283007c0517008301010074066a077c017404640919001900830101006400530029124e72010000007a1e43616e6e6f742073656e64206e656761746976652062616c616e6365732172230000007a1c54686520646170702069732063757272656e746c7920706175736564721100000072200000007202000000290472210000007222000000720500000072060000007213000000e964000000721c000000da08696e6163746976657217000000721800000029037239000000723a000000723f000000721500000029027239000000723a000000291072300000007228000000da0367657472250000007224000000da0361627372290000007227000000da0374617572400000007231000000da04746869737232000000723c000000723b000000722600000029067241000000722a000000da0c70726963655f6368616e6765da0a6465765f616d6f756e74da0a6d6e745f616d6f756e74da0b707573645f616d6f756e74722b000000722b0000007208000000da0b7461755f746f5f707573644a000000732200000000021001140108010c01140110010c010c0210011001140212010c010c0112011201724c0000002901724b00000063010000000000000005000000060000004300000073060100007c0064016b047310740064028301820174016a02830064036b0273247400640483018201740374046405190064066407640664088d047d0174057c01740464091900190074066a028300180074066a0283001b008301640a14007d027c027404640b19006b05727474016a07640c830101006e8e7c00640a1b007404640d190014007d037c007c0318007c01740464091900190014007d0474086a097c04740a6a0b640e8d020100740c740a6a0d050019007c03370003003c00740c740a6a0b050019007c00380003003c00740e6a07740e6a0283007c0018008301010074066a077c017404640919001900830101007c03640f6b0590017202740f7c03830101006400530029104e72010000007a1e43616e6e6f742073656e64206e656761746976652062616c616e6365732172230000007a1c54686520646170702069732063757272656e746c79207061757365647211000000722000000072020000002904722100000072220000007205000000720600000072130000007242000000721c0000007243000000721a00000029027239000000723a000000e90a0000002910723000000072280000007244000000722500000072240000007245000000722900000072270000007246000000723c00000072310000007232000000723b00000072470000007226000000da0f5f5f6164645f6c69717569646974792905724b000000722a0000007248000000da0a6c69715f616d6f756e747241000000722b000000722b0000007208000000da0b707573645f746f5f74617561000000732200000000021001140108010c01140110010c010c0210011401100112011201120112010a017250000000630100000000000000020000000400000043000000735e00000074007c0074016401190064028d02010074026a0374016401190083016a0474056a067c0064031b0064048d027d0174076a007c0174016401190064028d02010074026a0374016401190083016a0874056a067c0164058d0201006400530029064e721100000029027239000000723a000000721900000029027205000000da0c746f6b656e5f616d6f756e7429027205000000da0f63757272656e63795f616d6f756e742909723e0000007224000000da0149da0d696d706f72745f6d6f64756c65da0473656c6c723100000072470000007246000000da0d6164645f6c69717569646974792902724b0000007241000000722b000000722b0000007208000000724e00000077000000730c0000000001100112010c0112011201724e000000630000000000000000010000000600000043000000733a000000740074016401190064026403640264048d047d0074026a037c0074016405190019008301010074046a036406830101007405830001006400530029074e721100000072200000007202000000290472210000007222000000720500000072060000007213000000722300000029067225000000722400000072290000007227000000722800000072330000002901722a000000722b000000722b0000007208000000da0c756e70617573655f6461707080000000730a000000000208010c0112010a0172570000006300000000000000000100000006000000430000007336000000740074016401190064026403640264048d047d0074026a0374046a05830164057c0074016406190019001b001400740683001b00530029074e72110000007220000000720200000029047221000000722200000072050000007206000000721600000072130000002907722500000072240000007246000000da0a62616c616e63655f6f6672310000007247000000da1263697263756c6174696e675f737570706c792901722a000000722b000000722b0000007208000000da196765745f63757272656e745f6261636b696e675f726174696f890000007306000000000208010c02725a0000002902720500000072390000006302000000000000000200000005000000430000007328000000740064017c007c018303010074016a027c017c0074036a0464028d0301007405830001006400530029034eda0b6d6967726174655f74617529037239000000723a000000723f0000002906da115f5f617070726f7665645f616374696f6e7246000000723c000000723100000072470000007233000000290272050000007239000000722b000000722b0000007208000000725b00000091000000730600000000020c011201725b000000630200000000000000020000000400000043000000735e0000007c0164016b0473107400640283018201740174026a0319007c016b0573267400640383018201740464047c007c0183030100740174026a03050019007c01380003003c0074017c00050019007c01370003003c007405830001006400530029054e72010000007a1e43616e6e6f742073656e64206e656761746976652062616c616e636573217a194e6f7420656e6f75676820636f696e7320746f2073656e6421da0c6d6967726174655f7075736429067230000000723b00000072310000007247000000725c0000007233000000290272050000007239000000722b000000722b0000007208000000725d00000098000000730c0000000002100116010c0112011001725d0000006302000000000000000300000004000000430000007344000000740064017c007c018303010074016a0274036402190083017d027c026a0474056a067c007c01830301007c026a0774056a067c007c01830301007408830001006400530029034eda0a6d6967726174655f6c7072110000002909725c000000725300000072540000007224000000da11617070726f76655f6c697175696469747972310000007247000000da127472616e736665725f6c697175696469747972330000002903720500000072390000007211000000722b000000722b0000007208000000725e000000a2000000730a00000000020c010e0110011001725e0000002903da06616374696f6e720500000072390000006303000000000000000700000004000000430000007374000000740064011900640219007d03740064011900640319007d0474007c007c03660219007d0574007c007c04660219007d067c057c019b0064047c029b009d036b027350740164057c039b009d02830182017c067c019b0064047c029b009d036b027370740164057c049b009d02830182016400530029064e721f00000072010000007216000000fa012c7a1357726f6e67206d6574616461746120666f7220290272240000007230000000290772610000007205000000723900000072340000007235000000da0d6f776e6572315f616374696f6eda0d6f776e6572325f616374696f6e722b000000722b0000007208000000725c000000ab000000730c00000000010c010c010c010c012001725c000000630000000000000000000000000300000043000000731400000074006a018300740274036a04190018009b00530029014e290572260000007244000000723b00000072310000007247000000722b000000722b000000722b00000072080000007259000000b4000000730200000000027259000000630000000000000000000000000100000043000000730a00000074006a0183009b00530029014e290272260000007244000000722b000000722b000000722b0000007208000000720a000000b900000073020000000002630000000000000000000000000300000043000000731a00000074006a017402640119006b06731674036402830182016400530029034e721f0000007a1d4f6e6c792065786563757461626c65206279206f70657261746f72732129047231000000723200000072240000007230000000722b000000722b000000722b00000072080000007233000000be00000073040000000001100172330000002921da0863757272656e63797246000000da09696d706f72746c69627253000000da0448617368723b000000723d0000007224000000da085661726961626c65722600000072280000007229000000722c000000da085f5f6578706f7274da03737472da03416e797238000000da05666c6f6174723c000000723e0000007240000000724c0000007250000000724e0000007257000000725a000000725b000000725d000000725e000000725c0000007259000000720a0000007233000000722b000000722b000000722b0000007208000000da083c6d6f64756c653e010000007344000000080104010e01060108010e010c010c010c0308150601120f06011207060112050601140a06011016060110150e0910091008060112060601120906011208120910051005
 
Contract con_pusd_v1_2
Variable __owner__
New Value null
 
Contract con_pusd_v1_2
Variable __submitted__
New Value 2021,12,30,0,33,24,0
 
Contract con_pusd_v1_2
Variable __developer__
New Value 6a9004cbc570592c21879e5ee319c754b9b7bf0278878b1cc21ac87eed0ee38d
 
Contract currency
Variable balances
Key 6a9004cbc570592c21879e5ee319c754b9b7bf0278878b1cc21ac87eed0ee38d
New Value 680.04059760750097661891633215734