diff --git a/src/xian/tools/genesis_upgrades/token_upgrade.py b/src/xian/tools/genesis_upgrades/token_upgrade.py index 8b7db06..cd4e56a 100644 --- a/src/xian/tools/genesis_upgrades/token_upgrade.py +++ b/src/xian/tools/genesis_upgrades/token_upgrade.py @@ -1,12 +1,12 @@ import ast -from ast import NodeTransformer, AST +from ast import NodeTransformer import json from typing import List, Tuple class TokenFunctionTransformer(NodeTransformer): """AST transformer for updating XSC001 token functions""" - def __init__(self, token_type: str = 'xsc001'): - self.token_type = token_type + def __init__(self, contract_name: str): + self.contract_name = contract_name def visit_FunctionDef(self, node: ast.FunctionDef) -> ast.FunctionDef: """Visit and potentially transform function definitions""" @@ -38,12 +38,11 @@ def visit_FunctionDef(self, node: ast.FunctionDef) -> ast.FunctionDef: def _update_approve_function(self, node: ast.FunctionDef) -> ast.FunctionDef: """Update the approve function with new checks""" new_body = ast.parse(""" -@export def approve(amount: float, to: str): assert amount >= 0, "Cannot approve negative balances." - balances[ctx.caller, to] = amount + __balances[ctx.caller, to] = amount - ApproveEvent({"from": ctx.caller, "to": to, "amount": amount}) + __ApproveEvent({"from": ctx.caller, "to": to, "amount": amount}) """).body[0] @@ -57,14 +56,14 @@ def _update_transfer_from_function(self, node: ast.FunctionDef) -> ast.FunctionD new_body = ast.parse(""" def transfer_from(amount: float, to: str, main_account: str): assert amount > 0, 'Cannot send negative balances!' - assert balances[main_account, ctx.caller] >= amount, f'Not enough coins approved to send! You have {balances[main_account, ctx.caller]} and are trying to spend {amount}' - assert balances[main_account] >= amount, 'Not enough coins to send!' + assert __balances[main_account, ctx.caller] >= amount, f'Not enough coins approved to send! You have {__balances[main_account, ctx.caller]} and are trying to spend {amount}' + assert __balances[main_account] >= amount, 'Not enough coins to send!' - balances[main_account, ctx.caller] -= amount - balances[main_account] -= amount - balances[to] += amount + __balances[main_account, ctx.caller] -= amount + __balances[main_account] -= amount + __balances[to] += amount - TransferEvent({"from": main_account, "to": to, "amount": amount}) + __TransferEvent({"from": main_account, "to": to, "amount": amount}) """).body[0] # Preserve original decorator @@ -76,19 +75,19 @@ def _update_permit_function(self, node: ast.FunctionDef) -> ast.FunctionDef: """Update the permit function""" new_body = ast.parse(""" def permit(owner: str, spender: str, value: float, deadline: str, signature: str): - deadline = strptime_ymdhms(deadline) - permit_msg = construct_permit_msg(owner, spender, value, str(deadline)) + deadline = __strptime_ymdhms(deadline) + permit_msg = __construct_permit_msg(owner, spender, value, str(deadline)) permit_hash = hashlib.sha3(permit_msg) - assert permits[permit_hash] is None, 'Permit can only be used once.' + assert __permits[permit_hash] is None, 'Permit can only be used once.' assert value >= 0, 'Cannot approve negative balances!' assert now < deadline, 'Permit has expired.' assert crypto.verify(owner, permit_msg, signature), 'Invalid signature.' - balances[owner, spender] = value - permits[permit_hash] = True + __balances[owner, spender] = value + __permits[permit_hash] = True - ApproveEvent({"from": owner, "to": spender, "amount": value}) + __ApproveEvent({"from": owner, "to": spender, "amount": value}) return permit_hash """).body[0] @@ -111,7 +110,7 @@ def balance_of(address: str): def _update_construct_permit_msg_function(self, node: ast.FunctionDef) -> ast.FunctionDef: """Update the construct_permit_msg function""" new_body = ast.parse(""" -def construct_permit_msg(owner: str, spender: str, value: float, deadline: str): +def __construct_permit_msg(owner: str, spender: str, value: float, deadline: str): return f"{owner}:{spender}:{value}:{deadline}:{ctx.this}:{chain_id}" """).body[0] @@ -131,15 +130,13 @@ def visit_Module(self, node: ast.Module) -> ast.Module: node = self.generic_visit(node) # Adds events to top of contract if they are missing... - if self.token_type == 'xsc001' and needs_xsc001_events(node.body): - new_header = xsc001_header() - elif self.token_type == 'xsc002' and needs_xsc001_events(node.body): - new_header = xsc002_header() + if needs_xsc001_events(node.body): + new_header = xsc001_header(self.contract_name) # Add balance_of function if it doesn't exist if not has_balance_of: - balance_of_func = ast.parse(""" -@export + balance_of_func = ast.parse(f""" +@__export('{self.contract_name}') def balance_of(address: str): return __balances[address] """).body @@ -156,15 +153,32 @@ def find_code_entries(genesis_data: dict) -> List[Tuple[int, str, str]]: """ code_entries = [] + excluded_contracts = [ + "con_snake.__code__", + "con_xfinxty.__code__", + "con_stk.__code__", + "con_stk001.__code__", + "con_stk5.__code__", + "con_stk6.__code__", + "con_stk003.__code__", + "con_stk005.__code__", + "con_stk006.__code__", + "con_snake.__code__", + ] + for idx, entry in enumerate(genesis_data['abci_genesis']['genesis']): key = entry.get('key', '') - if key.endswith('.__code__') and key.startswith('con_') and "pixel" not in key and "con_snake" != key: + if ( + key.endswith('.__code__') and + key.startswith('con_') and + "pixel" not in key and + key not in excluded_contracts + ): contract_name = key.replace('.__code__', '') code_entries.append((idx, contract_name, entry['value'])) return code_entries - return all(element in code for element in required_elements) def process_genesis_data(genesis_data: dict): """ Main function to process the genesis data @@ -179,22 +193,15 @@ def process_genesis_data(genesis_data: dict): # Process each code entry for idx, contract_name, code_value in code_entries: - - if is_xsc002_token(code_value): - print(f"Found XSC002 token contract: {contract_name} at index {idx}") - updated_code = update_token_code(code_value, 'xsc002') - genesis_data['abci_genesis']['genesis'][idx]['value'] = updated_code - changes_made = True - - elif is_xsc001_token(code_value): + if is_xsc001_token(code_value): print(f"Found XSC001 token contract: {contract_name} at index {idx}") - updated_code = update_token_code(code_value, 'xsc001') + updated_code = update_token_code(contract_name, code_value) genesis_data['abci_genesis']['genesis'][idx]['value'] = updated_code changes_made = True return genesis_data, changes_made -def update_token_code(code: str, token_type: str) -> str: +def update_token_code(contract_name: str, code: str) -> str: """ Update the token code with new functionality using AST transformation """ @@ -202,7 +209,7 @@ def update_token_code(code: str, token_type: str) -> str: tree = ast.parse(code) # Apply our transformations - transformer = TokenFunctionTransformer() + transformer = TokenFunctionTransformer(contract_name) modified_tree = transformer.visit(tree) # Convert back to source code @@ -225,23 +232,6 @@ def is_xsc001_token(code: str) -> bool: # Note: We don't include balance_of in required_elements since we'll add it if missing return all(element in code for element in required_elements) - -def is_xsc002_token(code: str) -> bool: - """ - Check if the given code matches XSC002 token structure - """ - # Basic checks for XSC002 token structure - required_elements = [ - '__balances = Hash(', - '__metadata = Hash(', - 'def transfer(', - 'def approve(', - 'def transfer_from(', - 'def permit(' - ] - - return all(element in code for element in required_elements) - def needs_xsc001_events(code: str) -> bool: xsc001_events = [ @@ -251,18 +241,12 @@ def needs_xsc001_events(code: str) -> bool: return not any(element in code for element in xsc001_events) -def xsc001_header(): - return ast.parse(""" -TransferEvent = LogEvent(event="Transfer", params={"from":{'type':str, 'idx':True}, "to": {'type':str, 'idx':True}, "amount": {'type':(int, float, decimal)}}) -ApproveEvent = LogEvent(event="Approve", params={"from":{'type':str, 'idx':True}, "to": {'type':str, 'idx':True}, "amount": {'type':(int, float, decimal)}}) -""").body +def xsc001_header(contract_name: str): + return ast.parse(f''' +__TransferEvent = LogEvent(event="Transfer", params={{"from": {{"type": str, "idx": True}}, "to": {{"type": str, "idx": True}}, "amount": {{"type": (int, float, decimal)}}}}, contract="{contract_name}", name="TransferEvent") +__ApproveEvent = LogEvent(event="Approve", params={{"from": {{"type": str, "idx": True}}, "to": {{"type": str, "idx": True}}, "amount": {{"type": (int, float, decimal)}}}}, contract="{contract_name}", name="ApproveEvent") +''').body -def xsc002_header(): - return ast.parse(""" -TransferEvent = LogEvent(event="Transfer", params={"from":{'type':str, 'idx':True}, "to": {'type':str, 'idx':True}, "amount": {'type':(int, float, decimal)}}) -ApproveEvent = LogEvent(event="Approve", params={"from":{'type':str, 'idx':True}, "to": {'type':str, 'idx':True}, "amount": {'type':(int, float, decimal)}}) -""").body - if __name__ == "__main__": genesis_file_path = "./genesis.json" diff --git a/tests/tools/fixtures/genesis.json b/tests/tools/fixtures/genesis.json index 226f3f6..7afd319 100644 --- a/tests/tools/fixtures/genesis.json +++ b/tests/tools/fixtures/genesis.json @@ -32,13 +32,23622 @@ } ], "abci_genesis": { - "hash": "66323663373233353432323465313239333635373035613364376233646361306337633231636161666366363239663666346164393639326462623136636233", - "number": 23571, + "hash": "39383463303762636233393165366232343964633461666433386137366338336464643934303365663234653631613337663966323138633536303565333137", + "number": 1241, "origin": { "signature": "", "sender": "" }, "genesis": [ + { + "key": "con_addliquidity.LPBalances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": { + "__fixed__": "1E+2" + } + }, + { + "key": "con_addliquidity.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stakeone", + "con_staketwo" + ] + }, + { + "key": "con_addliquidity.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_addliquidity.LiquidityPools:token_a", + "value": 100 + }, + { + "key": "con_addliquidity.LiquidityPools:token_b", + "value": 100 + }, + { + "key": "con_addliquidity.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_addliquidity.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_addliquidity', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_addliquidity', name=\n 'LPBalances')\n__SwapFeePct = Variable(contract='con_addliquidity', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stakeone',\n 'con_staketwo']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_addliquidity')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n balances_of_token_a = importlib.import_module(token_contract_a)\n balances_of_token_b = importlib.import_module(token_contract_b)\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert balances_of_token_a.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert balances_of_token_b.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token A not allowed'\n assert token_contract_b in __LiquidityPools['allowed_token_contracts'\n ], 'Token B not allowed'\n balances_of_token_a.transfer_from(amount=token_a_amount, to=ctx.this,\n main_account=ctx.signer)\n balances_of_token_a.transfer_from(amount=token_b_amount, to=ctx.this,\n main_account=ctx.signer)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_addliquidity')\ndef get_lp_balance(account: str):\n return __LPBalances[account]\n" + }, + { + "key": "con_addliquidity.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_addliquidity.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 11, + 13, + 6, + 16, + 0 + ] + } + }, + { + "key": "con_as.__code__", + "value": "def ____():\n for i in range(10):\n importlib.import_module('currency')\n\n\n@__export('con_as')\ndef test():\n return 'Hello, World!'\n" + }, + { + "key": "con_as.__developer__", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_as.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 5, + 10, + 51, + 4, + 0 + ] + } + }, + { + "key": "con_as2.__code__", + "value": "def ____():\n for i in range(40):\n importlib.import_module('currency')\n\n\n@__export('con_as2')\ndef test():\n return 'Hello, World!'\n" + }, + { + "key": "con_as2.__developer__", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_as2.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 5, + 10, + 54, + 7, + 0 + ] + } + }, + { + "key": "con_as4.__code__", + "value": "def ____():\n for i in range(40):\n importlib.import_module('con_pixel_frames_master_v0_1')\n\n\n@__export('con_as4')\ndef test():\n return 'Hello, World!'\n" + }, + { + "key": "con_as4.__developer__", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_as4.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 5, + 10, + 54, + 38, + 0 + ] + } + }, + { + "key": "con_asds.__code__", + "value": "def ____():\n return ctx.this\n\n\n@__export('con_asds')\ndef test():\n return ctx.this, ctx.caller, ctx.signer, ctx.entry\n" + }, + { + "key": "con_asds.__developer__", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_asds.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 1, + 10, + 54, + 29, + 0 + ] + } + }, + { + "key": "con_big2.__code__", + "value": "__balances = Hash(default_value=0, contract='con_big2', name='balances')\n__metadata = Hash(contract='con_big2', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 300000000000000000000000000000\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_big2')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_big2')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_big2')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_big2')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_big2')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_big2.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_big2.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 10, + 20, + 15, + 42, + 0 + ] + } + }, + { + "key": "con_big2.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_big2.balances:holder", + "value": { + "__fixed__": "1E+29" + } + }, + { + "key": "con_big2.metadata:operator", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_big2.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_big2.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_big2.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_big2.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_bigtoken.__code__", + "value": "__balances = Hash(default_value=0, contract='con_bigtoken', name='balances')\n__metadata = Hash(contract='con_bigtoken', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 55000000000000000000000000000\n __balances['holder2'] = 99999999999999999999999999999\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_bigtoken')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_bigtoken')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_bigtoken')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_bigtoken')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_bigtoken')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_bigtoken.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_bigtoken.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 10, + 20, + 11, + 17, + 0 + ] + } + }, + { + "key": "con_bigtoken.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_bigtoken.balances:holder2", + "value": { + "__fixed__": "1E+29" + } + }, + { + "key": "con_bigtoken.metadata:operator", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_bigtoken.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_bigtoken.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_bigtoken.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_bigtoken.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_bigtoken2.__code__", + "value": "__balances = Hash(default_value=0, contract='con_bigtoken2', name='balances')\n__metadata = Hash(contract='con_bigtoken2', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 99999999999999999999999999999999999999999999999999\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_bigtoken2')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_bigtoken2')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_bigtoken2')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_bigtoken2')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_bigtoken2')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_bigtoken2.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_bigtoken2.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 5, + 18, + 50, + 18, + 0 + ] + } + }, + { + "key": "con_bigtoken2.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "99999999999999999999010819715.999999968377538753310987705078" + } + }, + { + "key": "con_bigtoken2.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dex22", + "value": { + "__fixed__": "13165975045680062.6" + } + }, + { + "key": "con_bigtoken2.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dex2test", + "value": { + "__fixed__": "99999999999999999999998998980.000199697009030819862726968603" + } + }, + { + "key": "con_bigtoken2.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f1", + "value": { + "__fixed__": "1.1" + } + }, + { + "key": "con_bigtoken2.balances:con_dex_pairs", + "value": { + "__fixed__": "1000.000000031622461246689012294922" + } + }, + { + "key": "con_bigtoken2.balances:con_dex_pairs2", + "value": { + "__fixed__": "989179284" + } + }, + { + "key": "con_bigtoken2.metadata:operator", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_bigtoken2.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_bigtoken2.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_bigtoken2.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_bigtoken2.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_bigtoken3.__code__", + "value": "__balances = Hash(default_value=0, contract='con_bigtoken3', name='balances')\n__metadata = Hash(contract='con_bigtoken3', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = decimal('1e+50')\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_bigtoken3')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_bigtoken3')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_bigtoken3')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_bigtoken3')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_bigtoken3')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_bigtoken3.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_bigtoken3.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 5, + 18, + 50, + 32, + 0 + ] + } + }, + { + "key": "con_bigtoken3.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "1E+29" + } + }, + { + "key": "con_bigtoken3.metadata:operator", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_bigtoken3.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_bigtoken3.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_bigtoken3.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_bigtoken3.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_bn.__code__", + "value": "def ____():\n pass\n\n\n@__export('con_bn')\ndef bn():\n big_number = int(\n '999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999'\n * \n 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999\n )\n return big_number\n" + }, + { + "key": "con_bn.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_bn.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 7, + 14, + 3, + 40, + 0 + ] + } + }, + { + "key": "con_bn2.__code__", + "value": "def ____():\n pass\n\n\n@__export('con_bn2')\ndef bn(num_str: str, num_int: int):\n big_number = int(num_str * num_int)\n return big_number\n" + }, + { + "key": "con_bn2.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_bn2.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 7, + 14, + 4, + 39, + 0 + ] + } + }, + { + "key": "con_busd.__code__", + "value": "__balances = Hash(default_value=0, contract='con_busd', name='balances')\n__metadata = Hash(contract='con_busd', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 9999999999\n __metadata['token_name'] = 'Binance-Peg BUSD Token'\n __metadata['token_symbol'] = 'BUSD'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_busd')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_busd')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_busd')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_busd')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_busd')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_busd.__developer__", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_busd.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 9, + 2, + 15, + 0 + ] + } + }, + { + "key": "con_busd.balances:1a59bfc58681b4d6b94c6d5bbe2177a33ffe015c773b51d2d420a1e5b8684276", + "value": 1 + }, + { + "key": "con_busd.balances:20c91ffb518aafdee0e227dc7b8866c51f097292c829d77b82eda081a329fa34", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_busd.balances:2bc83443f9322c2efed1d2266daba228eb8b1f935fa815e0a67907515b052e07", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_busd.balances:303d423efa797d047247c69a51006fdc6726ab7346ccd54f9b7bc86101eb47db", + "value": 1 + }, + { + "key": "con_busd.balances:4477e8c8a2d73b76afdd5699f0d9b5076cd38598553934f7363b7fc492c71caa", + "value": 1 + }, + { + "key": "con_busd.balances:73020e63cef76c3b4728bbf9c8df52eec50c1ac0511df83b131446563203a0e0", + "value": 1 + }, + { + "key": "con_busd.balances:7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "value": { + "__fixed__": "9999999978" + } + }, + { + "key": "con_busd.balances:800db1f09811a7711f54489186a436f69ecaec06ed8237e2b85d659a32576c06", + "value": 1 + }, + { + "key": "con_busd.balances:a7e9b7f48fe2e706e01dc58426a2259ba7e66771ffc1745dcffab2fc007ac348", + "value": 1 + }, + { + "key": "con_busd.balances:b76c285cac0b9c2a686885815c697195ddabbcef312a13546a410651e03e7d2a", + "value": 1 + }, + { + "key": "con_busd.balances:d99d356fe2d208d401c0fa6c0b48c1cc5d56d3a75aae1234d0fa5b94b1eca690", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_busd.balances:dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6", + "value": 9 + }, + { + "key": "con_busd.balances:ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9", + "value": { + "__fixed__": "4" + } + }, + { + "key": "con_busd.balances:f4057859a460266df1363e13dcca1603a68bed0dbd0392437c206bfa6ad917c4", + "value": 1 + }, + { + "key": "con_busd.balances:f4d0d7bee54dbd6b7c01ef726781e1ed501a0842937f943a7228c4214fef5d5f", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_busd.metadata:operator", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_busd.metadata:token_name", + "value": "Binance-Peg BUSD Token" + }, + { + "key": "con_busd.metadata:token_symbol", + "value": "BUSD" + }, + { + "key": "con_counter.__code__", + "value": "__counter = Variable(contract='con_counter', name='counter')\n__address_to_counter = Hash(default_value=0, contract='con_counter', name=\n 'address_to_counter')\n__owner = Variable(contract='con_counter', name='owner')\n__stopped = Variable(contract='con_counter', name='stopped')\n\n\ndef ____():\n __counter.set(0)\n __owner.set(ctx.caller)\n __stopped.set(False)\n\n\n@__export('con_counter')\ndef increment_counter():\n assert not __stopped.get(), 'Contract is stopped'\n assert 'con_' not in ctx.caller, 'Contracts cannot call this function'\n __counter.set(__counter.get() + 1)\n __address_to_counter[ctx.caller] = __address_to_counter[ctx.caller] + 1\n return __counter.get()\n\n\n@__export('con_counter')\ndef get_counter():\n return __counter.get()\n\n\n@__export('con_counter')\ndef get_address_counter(address: str):\n return __address_to_counter[address]\n\n\n@__export('con_counter')\ndef stop():\n assert ctx.caller == __owner.get(), 'Only the owner can stop the contract'\n __stopped.set(True)\n return True\n\n\n@__export('con_counter')\ndef start():\n assert ctx.caller == __owner.get(), 'Only the owner can start the contract'\n __stopped.set(False)\n return True\n\n\n@__export('con_counter')\ndef reset():\n assert ctx.caller == __owner.get(), 'Only the owner can reset the contract'\n __counter.set(0)\n __address_to_counter.clear()\n return True\n" + }, + { + "key": "con_counter.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_counter.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 17, + 8, + 20, + 14, + 0 + ] + } + }, + { + "key": "con_counter.address_to_counter:1e9043a943ec2985200029add5d031cbcc012ca8dc0b8ab6e7694bb475924c9b", + "value": 1 + }, + { + "key": "con_counter.address_to_counter:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": 3 + }, + { + "key": "con_counter.address_to_counter:5fa1b314468832fb9d391e8af756140e85325a565d8b411ae2f2001d37c30ef4", + "value": 8 + }, + { + "key": "con_counter.address_to_counter:7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "value": 3 + }, + { + "key": "con_counter.address_to_counter:8ce11ec41a14ba8a3545b3214f5913bb129bd686b392d496359fc98f89da490a", + "value": 8 + }, + { + "key": "con_counter.address_to_counter:ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9", + "value": 3 + }, + { + "key": "con_counter.address_to_counter:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce", + "value": 3 + }, + { + "key": "con_counter.counter", + "value": 29 + }, + { + "key": "con_counter.owner", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_counter.stopped", + "value": false + }, + { + "key": "con_crosstoken.__code__", + "value": "__balances = Hash(default_value=0, contract='con_crosstoken', name='balances')\n__metadata = Hash(contract='con_crosstoken', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Cross Token'\n __metadata['token_symbol'] = 'CT'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_crosstoken')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_crosstoken')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_crosstoken')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_crosstoken')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_crosstoken')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_crosstoken.__developer__", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_crosstoken.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 4, + 19, + 31, + 33, + 0 + ] + } + }, + { + "key": "con_crosstoken.balances:7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "value": 1000000 + }, + { + "key": "con_crosstoken.metadata:operator", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_crosstoken.metadata:token_name", + "value": "Cross Token" + }, + { + "key": "con_crosstoken.metadata:token_symbol", + "value": "CT" + }, + { + "key": "con_dafuq.__code__", + "value": "__balances = Hash(default_value=0, contract='con_dafuq', name='balances')\n__metadata = Hash(contract='con_dafuq', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_dafuq')\ndef hello():\n return 'hello'\n" + }, + { + "key": "con_dafuq.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_dafuq.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 23, + 10, + 47, + 8, + 0 + ] + } + }, + { + "key": "con_dafuq.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": 1000000 + }, + { + "key": "con_dafuq.metadata:operator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_dafuq.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_dafuq.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_dafuq.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_dafuq.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_dafuq1.__code__", + "value": "__balances = Hash(default_value=0, contract='con_dafuq1', name='balances')\n__metadata = Hash(contract='con_dafuq1', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_dafuq1')\ndef hello():\n return 'hello'\n" + }, + { + "key": "con_dafuq1.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_dafuq1.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 23, + 14, + 37, + 19, + 0 + ] + } + }, + { + "key": "con_dafuq1.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": 1000000 + }, + { + "key": "con_dafuq1.metadata:operator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_dafuq1.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_dafuq1.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_dafuq1.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_dafuq1.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_dafuq1123.__code__", + "value": "__balances = Hash(default_value=0, contract='con_dafuq1123', name='balances')\n__metadata = Hash(contract='con_dafuq1123', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_dafuq1123')\ndef hello():\n return 'hello'\n" + }, + { + "key": "con_dafuq1123.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_dafuq1123.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 23, + 14, + 57, + 55, + 0 + ] + } + }, + { + "key": "con_dafuq1123.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": 1000000 + }, + { + "key": "con_dafuq1123.metadata:operator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_dafuq1123.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_dafuq1123.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_dafuq1123.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_dafuq1123.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_dao.ProposalCount", + "value": 0 + }, + { + "key": "con_dao.__code__", + "value": "__Proposals = Hash(default_value=None, contract='con_dao', name='Proposals')\n__Ballots = Hash(default_value=False, contract='con_dao', name='Ballots')\n__BallotCount = Hash(default_value=0, contract='con_dao', name='BallotCount')\n__ProposalCount = Variable(contract='con_dao', name='ProposalCount')\n__ProcessedBallots = Hash(default_value=0, contract='con_dao', name=\n 'ProcessedBallots')\n__VerifiedBallots = Hash(default_value=0, contract='con_dao', name=\n 'VerifiedBallots')\n__LPWeight = Hash(default_value=0, contract='con_dao', name='LPWeight')\n__metadata = Hash(default_value=None, contract='con_dao', name='metadata')\nI = importlib\n\n\ndef ____():\n __metadata['operator'] = ctx.caller\n __metadata['fee_currency'] = 'con_rswp_lst001'\n __metadata['fee_amount'] = 27272\n __metadata['token_contract'] = 'con_rswp_lst001'\n __metadata['v_token_contracts'] = ['con_staking_rswp_rswp_interop_v2']\n __metadata['lp_v_token_contracts'] = ['con_liq_mining_rswp_rswp']\n __metadata['dex_contract'] = 'con_rocketswap_official_v1_1'\n __metadata['min_description_length'] = 10\n __metadata['min_title_length'] = 10\n __ProposalCount.set(0)\n\n\n@__export('con_dao')\ndef create_proposal(title: str, description: str, date_decision: datetime.\n datetime, choices: list):\n assert len(title) > __metadata['min_title_length'\n ], 'Title must be more than 10 characters long.'\n assert len(description) > __metadata['min_description_length'\n ], 'Description length must be more than 100 characters long.'\n assert date_decision > now, 'the decision date must take place in the future.'\n assert len(choices) > 1, 'you must specify at least 2 choices.'\n for choice in choices:\n assert len(choice) > 0, 'choice cannot be an empty string.'\n I.import_module(__metadata['fee_currency']).transfer_from(amount=\n __metadata['fee_amount'], to=__metadata['operator'], main_account=\n ctx.signer)\n proposal_idx = __ProposalCount.get() + 1\n __ProposalCount.set(proposal_idx)\n __Proposals[proposal_idx] = {'title': title, 'description': description,\n 'date_decision': date_decision, 'choices': choices, 'state': 'open'}\n token_contract_name = __metadata['token_contract']\n if __LPWeight[proposal_idx, token_contract_name] is 0:\n __set_lp_token_value(proposal_idx, token_contract_name)\n return proposal_idx\n\n\n@__export('con_dao')\ndef count_ballots(proposal_idx: int, batch_size: int=100):\n \"\"\"checks\"\"\"\n assert now > __Proposals[proposal_idx]['date_decision'\n ], 'It is not possible to count the ballots for this proposal yet'\n assert __Proposals[proposal_idx]['state'\n ] is not 'concluded', 'The ballots for this proposal have already been counted'\n assert __Ballots[proposal_idx, 'counted'\n ] is not True, 'this ballot has been counted.'\n \"\"\"check if this proposal has a stored lp token weight, if no, calculate how much the LP weight is worth\"\"\"\n start_idx = __ProcessedBallots[proposal_idx] + 1\n current_ballot_idx = 0\n \"\"\"count the ballots\"\"\"\n for i in range(0, batch_size):\n current_ballot_idx = start_idx + i\n voter_vk = __Ballots[proposal_idx, 'forwards_index',\n current_ballot_idx, 'user_vk']\n __ProcessedBallots[proposal_idx, current_ballot_idx, 'choice'\n ] = __Ballots[proposal_idx, 'forwards_index',\n current_ballot_idx, 'choice']\n __ProcessedBallots[proposal_idx, current_ballot_idx, 'user_vk'\n ] = voter_vk\n __ProcessedBallots[proposal_idx, current_ballot_idx, 'weight'\n ] = get_vk_weight(voter_vk, proposal_idx)\n if current_ballot_idx == __BallotCount[proposal_idx]:\n __Ballots[proposal_idx, 'counted'] = True\n __ProcessedBallots[proposal_idx] = current_ballot_idx\n return\n __ProcessedBallots[proposal_idx] = current_ballot_idx\n\n\n@__export('con_dao')\ndef verify_ballots(proposal_idx: int, batch_size: int=100):\n \"\"\"checks\"\"\"\n assert __Ballots[proposal_idx, 'counted'\n ] is True, 'ballots must be counted before verifying them'\n assert __Ballots[proposal_idx, 'verified'\n ] is not True, 'the ballots for this proposal have already been verified'\n assert __Proposals[proposal_idx]['state'\n ] is not 'concluded', 'this proposal has been concluded'\n start_idx = __VerifiedBallots[proposal_idx] + 1\n current_ballot_idx = 0\n for i in range(0, batch_size):\n current_ballot_idx = start_idx + i\n voter_vk = __ProcessedBallots[proposal_idx, current_ballot_idx,\n 'user_vk']\n choice = __ProcessedBallots[proposal_idx, current_ballot_idx, 'choice']\n processed_weight = __ProcessedBallots[proposal_idx,\n current_ballot_idx, 'weight']\n current_weight = get_vk_weight(voter_vk, proposal_idx)\n if current_weight >= processed_weight - processed_weight * decimal(\n '0.05'):\n __VerifiedBallots[proposal_idx, choice] += current_weight\n if current_ballot_idx == __BallotCount[proposal_idx]:\n choices_len = len(__Proposals[proposal_idx]['choices'])\n __Ballots[proposal_idx, 'verified'] = True\n __Proposals[proposal_idx]['state'] = 'concluded'\n __Proposals[proposal_idx]['results'] = {}\n for c in range(0, choices_len):\n __Proposals[proposal_idx]['results'][str(c)\n ] = __VerifiedBallots[proposal_idx, c]\n __Proposals[proposal_idx] = __Proposals[proposal_idx]\n __VerifiedBallots[proposal_idx] = current_ballot_idx\n return\n __VerifiedBallots[proposal_idx] = current_ballot_idx\n\n\n@__export('con_dao')\ndef cast_ballot(proposal_idx: int, choice_idx: int):\n voter = ctx.signer\n ballot_idx = __BallotCount[proposal_idx] + 1\n \"\"\"checks\"\"\"\n assert __Proposals[proposal_idx] is not False\n assert choice_idx >= 0 and choice_idx < len(__Proposals[proposal_idx][\n 'choices']), 'you must select a valid choice.'\n assert now < __Proposals[proposal_idx]['date_decision'\n ], 'It is too late to cast a ballot for this proposal.'\n assert __Ballots[proposal_idx, 'backwards_index', voter\n ] is False, 'you have already cast a ballot !'\n \"\"\"record ballot\"\"\"\n __Ballots[proposal_idx, 'forwards_index', ballot_idx, 'choice'\n ] = choice_idx\n __Ballots[proposal_idx, 'forwards_index', ballot_idx, 'user_vk'] = voter\n __Ballots[proposal_idx, 'backwards_index', voter] = ballot_idx\n __BallotCount[proposal_idx] = ballot_idx\n\n\n@__export('con_dao')\ndef get_vk_weight(vk: str, proposal_idx: int):\n \"\"\"\n Get the rswp value of any tokens, vtokens and LP tokens for rswp pairs (staked or not). \n \"\"\"\n token_contract_name = __metadata['token_contract']\n user_token_total = 0\n user_token_total += get_token_value(vk, token_contract_name)\n user_token_total += get_staked_token_value(vk)\n user_token_total += get_rocketfuel_value(vk, token_contract_name)\n user_token_total += get_lp_value(vk, proposal_idx, token_contract_name)\n user_token_total += get_staked_lp_value(vk, proposal_idx,\n token_contract_name)\n return user_token_total\n\n\n@__export('con_dao')\ndef get_token_value(vk: str, token_contract_name: str):\n return ForeignHash(foreign_contract=token_contract_name, foreign_name=\n 'balances')[vk]\n\n\n@__export('con_dao')\ndef get_staked_token_value(vk: str):\n \"\"\"iterate through v token contracts and get user balance.\"\"\"\n vk_balance = 0\n for contract in __metadata['v_token_contracts']:\n vk_balance += ForeignHash(foreign_contract=contract, foreign_name=\n 'balances')[vk]\n return vk_balance\n\n\n@__export('con_dao')\ndef get_rocketfuel_value(vk: str, token_contract_name: str):\n \"\"\"\n get value of RSWP staked in rocket fuel\n \"\"\"\n dex_contract_name = __metadata['dex_contract']\n __dex_staked_amount = ForeignHash(foreign_contract=dex_contract_name,\n foreign_name='staked_amount', contract='con_dao', name=\n 'dex_staked_amount')\n return __dex_staked_amount[vk, token_contract_name] or 0\n\n\n@__export('con_dao')\ndef get_lp_value(vk: str, proposal_idx: int, token_contract_name: str):\n \"\"\"\n get lp value from the dex contract\n \"\"\"\n dex_contract_name = __metadata['dex_contract']\n __dex_lp_points = ForeignHash(foreign_contract=dex_contract_name,\n foreign_name='lp_points', contract='con_dao', name='dex_lp_points')\n user_lp = __dex_lp_points[token_contract_name, vk] or 0\n return user_lp * __LPWeight[proposal_idx, token_contract_name]\n\n\n@__export('con_dao')\ndef get_staked_lp_value(vk: str, proposal_idx: int, token_contract_name: str):\n lp_count = 0\n staking_contract_names = __metadata['lp_v_token_contracts']\n lp_token_value = __LPWeight[proposal_idx, token_contract_name]\n for contract in staking_contract_names:\n __balances = ForeignHash(foreign_contract=contract, foreign_name=\n 'balances', contract='con_dao', name='balances')\n vk_balance = __balances[vk] or 0\n lp_count += vk_balance\n return lp_count * __LPWeight[proposal_idx, token_contract_name]\n\n\ndef __set_lp_token_value(proposal_idx: int, token_contract_name: str):\n \"\"\"\n import the dex contract, get the reserves value for the TAU-RSWP pair, take the RSWP value of the LP and multiply it by 2\n \"\"\"\n dex_contract_name = __metadata['dex_contract']\n __dex_reserves = ForeignHash(foreign_contract=dex_contract_name,\n foreign_name='reserves', contract='con_dao', name='dex_reserves')\n __dex_lp_points = ForeignHash(foreign_contract=dex_contract_name,\n foreign_name='lp_points', contract='con_dao', name='dex_lp_points')\n reserves = __dex_reserves[token_contract_name]\n total_lp = __dex_lp_points[token_contract_name]\n token_per_lp = reserves[1] / total_lp\n __LPWeight[proposal_idx, token_contract_name] = token_per_lp * 2\n\n\ndef __assert_operator():\n assert ctx.caller == __metadata['operator'\n ], 'You are not the listed operator for this contract.'\n\n\n@__export('con_dao')\ndef change_meta(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n" + }, + { + "key": "con_dao.__developer__", + "value": "0813b6d7d7507c5f735821c32d06cd8f53e6d29807acb7bc92ab0dfe0417386e" + }, + { + "key": "con_dao.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 10, + 21, + 48, + 10, + 0 + ] + } + }, + { + "key": "con_dao.metadata:dex_contract", + "value": "con_rocketswap_official_v1_1" + }, + { + "key": "con_dao.metadata:fee_amount", + "value": 27272 + }, + { + "key": "con_dao.metadata:fee_currency", + "value": "con_rswp_lst001" + }, + { + "key": "con_dao.metadata:lp_v_token_contracts", + "value": [ + "con_liq_mining_rswp_rswp" + ] + }, + { + "key": "con_dao.metadata:min_description_length", + "value": 10 + }, + { + "key": "con_dao.metadata:min_title_length", + "value": 10 + }, + { + "key": "con_dao.metadata:operator", + "value": "0813b6d7d7507c5f735821c32d06cd8f53e6d29807acb7bc92ab0dfe0417386e" + }, + { + "key": "con_dao.metadata:token_contract", + "value": "con_rswp_lst001" + }, + { + "key": "con_dao.metadata:v_token_contracts", + "value": [ + "con_staking_rswp_rswp_interop_v2" + ] + }, + { + "key": "con_daq.__code__", + "value": "__balances = Hash(default_value=0, contract='con_daq', name='balances')\n__metadata = Hash(contract='con_daq', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_daq')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_daq')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_daq')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_daq')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n" + }, + { + "key": "con_daq.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_daq.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 13, + 17, + 23, + 2, + 0 + ] + } + }, + { + "key": "con_daq.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": 1000000 + }, + { + "key": "con_daq.metadata:operator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_daq.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_daq.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_daq.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_daq.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_dex22.__code__", + "value": "DEX_PAIRS = 'con_dex_pairs2'\nMAX_ROUTE = 32\n__toks_to_pair = ForeignHash(foreign_contract=DEX_PAIRS, foreign_name=\n 'toks_to_pair', contract='con_dex22', name='toks_to_pair')\n__pairsmap = ForeignHash(foreign_contract=DEX_PAIRS, foreign_name='pairs',\n contract='con_dex22', name='pairsmap')\ntoken_interface = [importlib.Func('transfer_from', args=('amount', 'to',\n 'main_account')), importlib.Func('transfer', args=('amount', 'to')),\n importlib.Var('balances', Hash)]\n\n\ndef __PAIRS():\n return importlib.import_module(DEX_PAIRS)\n\n\ndef __safeTransferFrom(token: str, src: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n t.transfer_from(value, to, src)\n\n\ndef __quote(amountA: float, reserveA: float, reserveB: float):\n assert amountA > 0, '__DEXNAME: INSUFFICIENT_AMOUNT'\n assert reserveA > 0 and reserveB > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n return amountA * reserveB / reserveA\n\n\ndef __internal_addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float):\n pairs = __PAIRS()\n desired_pair = __toks_to_pair[tokenA, tokenB]\n if desired_pair == None:\n desired_pair = pairs.createPair(tokenA, tokenB)\n reserveA, reserveB, ignore = pairs.getReserves(desired_pair)\n if reserveA == 0 and reserveB == 0:\n return amountADesired, amountBDesired\n else:\n amountBOptimal = __quote(amountADesired, reserveA, reserveB)\n if amountBOptimal <= amountBDesired:\n assert amountBOptimal >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n return amountADesired, amountBOptimal\n else:\n amountAOptimal = __quote(amountBDesired, reserveB, reserveA)\n assert amountAOptimal <= amountADesired\n assert amountAOptimal >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n return amountAOptimal, amountBDesired\n\n\n@__export('con_dex22')\ndef addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float, to: str,\n deadline: datetime.datetime):\n assert now < deadline, '__DEXNAME: EXPIRED'\n pairs = __PAIRS()\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n amountA, amountB = __internal_addLiquidity(tokenA, tokenB,\n amountADesired, amountBDesired, amountAMin, amountBMin)\n pair = __toks_to_pair[tokenA, tokenB]\n __safeTransferFrom(tokenA, ctx.caller, DEX_PAIRS, amountA)\n __safeTransferFrom(tokenB, ctx.caller, DEX_PAIRS, amountB)\n pairs.sync2(pair)\n liquidity = pairs.mint(pair, to)\n return amountA, amountB, liquidity\n\n\n@__export('con_dex22')\ndef removeLiquidity(tokenA: str, tokenB: str, liquidity: float, amountAMin:\n float, amountBMin: float, to: str, deadline: datetime.datetime):\n assert now < deadline, '__DEXNAME: EXPIRED'\n pairs = __PAIRS()\n desired_pair = __toks_to_pair[tokenA, tokenB]\n assert desired_pair != None, \"Pair doesn't exist!\"\n pairs.liqTransfer_from(desired_pair, liquidity, DEX_PAIRS, ctx.caller)\n pairs.sync2(desired_pair)\n amountA, amountB = pairs.burn(desired_pair, to)\n assert amountA >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n assert amountB >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n return amountA, amountB\n\n\n@__export('con_dex22')\ndef getAmountOut(amountIn: float, reserveIn: float, reserveOut: float):\n assert amountIn > 0, '__DEXNAME: INSUFFICIENT_INPUT_AMOUNT'\n assert reserveIn > 0 and reserveOut > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n amountInWithFee = amountIn * decimal('0.997')\n numerator = amountInWithFee * reserveOut\n denominator = reserveIn + amountInWithFee\n return numerator / denominator\n\n\n@__export('con_dex22')\ndef swapExactTokenForToken(amountIn: float, amountOutMin: float, pair: int,\n src: str, to: str, deadline: datetime.datetime):\n assert now < deadline, '__DEXNAME: EXPIRED'\n pairs = __PAIRS()\n reserve0, reserve1, ignore = pairs.getReserves(pair)\n order = src == __pairsmap[pair, 'token0']\n if not order:\n reserve0, reserve1 = reserve1, reserve0\n amount = getAmountOut(amountIn, reserve0, reserve1)\n assert amount >= amountOutMin, '__DEXNAMEe: INSUFFICIENT_OUTPUT_AMOUNT'\n __safeTransferFrom(src, ctx.caller, DEX_PAIRS, amountIn)\n pairs.sync2(pair)\n out0 = 0 if order else amount\n out1 = amount if order else 0\n pairs.swap(pair, out0, out1, to)\n" + }, + { + "key": "con_dex22.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dex22.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 17, + 21, + 33, + 25, + 0 + ] + } + }, + { + "key": "con_dex2test.__code__", + "value": "DEX_PAIRS = 'con_dex_pairs'\nMAX_ROUTE = 32\n__toks_to_pair = ForeignHash(foreign_contract=DEX_PAIRS, foreign_name=\n 'toks_to_pair', contract='con_dex2test', name='toks_to_pair')\n__pairsmap = ForeignHash(foreign_contract=DEX_PAIRS, foreign_name='pairs',\n contract='con_dex2test', name='pairsmap')\ntoken_interface = [importlib.Func('transfer_from', args=('amount', 'to',\n 'main_account')), importlib.Func('transfer', args=('amount', 'to')),\n importlib.Var('balances', Hash)]\n\n\ndef __PAIRS():\n return importlib.import_module(DEX_PAIRS)\n\n\ndef __safeTransferFrom(token: str, src: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n t.transfer_from(value, to, src)\n\n\ndef __quote(amountA: float, reserveA: float, reserveB: float):\n assert amountA > 0, '__DEXNAME: INSUFFICIENT_AMOUNT'\n assert reserveA > 0 and reserveB > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n return amountA * reserveB / reserveA\n\n\ndef __internal_addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float):\n pairs = __PAIRS()\n desired_pair = __toks_to_pair[tokenA, tokenB]\n if desired_pair == None:\n desired_pair = pairs.createPair(tokenA, tokenB)\n reserveA, reserveB, ignore = pairs.getReserves(desired_pair)\n if reserveA == 0 and reserveB == 0:\n return amountADesired, amountBDesired\n else:\n amountBOptimal = __quote(amountADesired, reserveA, reserveB)\n if amountBOptimal <= amountBDesired:\n assert amountBOptimal >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n return amountADesired, amountBOptimal\n else:\n amountAOptimal = __quote(amountBDesired, reserveB, reserveA)\n assert amountAOptimal <= amountADesired\n assert amountAOptimal >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n return amountAOptimal, amountBDesired\n\n\n@__export('con_dex2test')\ndef addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float, to: str,\n deadline: datetime.datetime):\n assert now < deadline, '__DEXNAME: EXPIRED'\n pairs = __PAIRS()\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n amountA, amountB = __internal_addLiquidity(tokenA, tokenB,\n amountADesired, amountBDesired, amountAMin, amountBMin)\n pair = __toks_to_pair[tokenA, tokenB]\n __safeTransferFrom(tokenA, ctx.caller, DEX_PAIRS, amountA)\n __safeTransferFrom(tokenB, ctx.caller, DEX_PAIRS, amountB)\n pairs.sync2(pair)\n liquidity = pairs.mint(pair, to)\n return amountA, amountB, liquidity\n\n\n@__export('con_dex2test')\ndef removeLiquidity(tokenA: str, tokenB: str, liquidity: float, amountAMin:\n float, amountBMin: float, to: str, deadline: datetime.datetime):\n assert now < deadline, '__DEXNAME: EXPIRED'\n pairs = __PAIRS()\n desired_pair = __toks_to_pair[tokenA, tokenB]\n assert desired_pair != None, \"Pair doesn't exist!\"\n pairs.liqTransfer_from(desired_pair, liquidity, DEX_PAIRS, ctx.caller)\n pairs.sync2(desired_pair)\n amountA, amountB = pairs.burn(desired_pair, to)\n assert amountA >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n assert amountB >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n return amountA, amountB\n\n\n@__export('con_dex2test')\ndef getAmountOut(amountIn: float, reserveIn: float, reserveOut: float):\n assert amountIn > 0, '__DEXNAME: INSUFFICIENT_INPUT_AMOUNT'\n assert reserveIn > 0 and reserveOut > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n amountInWithFee = amountIn * decimal('0.997')\n numerator = amountInWithFee * reserveOut\n denominator = reserveIn + amountInWithFee\n return numerator / denominator\n\n\n@__export('con_dex2test')\ndef swapExactTokenForToken(amountIn: float, amountOutMin: float, pair: int,\n src: str, to: str, deadline: datetime.datetime):\n assert now < deadline, '__DEXNAME: EXPIRED'\n pairs = __PAIRS()\n reserve0, reserve1, ignore = pairs.getReserves(pair)\n order = src == __pairsmap[pair, 'token0']\n if not order:\n reserve0, reserve1 = reserve1, reserve0\n amount = getAmountOut(amountIn, reserve0, reserve1)\n assert amount >= amountOutMin, '__DEXNAMEe: INSUFFICIENT_OUTPUT_AMOUNT'\n __safeTransferFrom(src, ctx.caller, DEX_PAIRS, amountIn)\n pairs.sync2(pair)\n out0 = 0 if order else amount\n out1 = amount if order else 0\n pairs.swap(pair, out0, out1, to)\n" + }, + { + "key": "con_dex2test.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dex2test.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 21, + 43, + 37, + 0 + ] + } + }, + { + "key": "con_dex_pairs.__code__", + "value": "MINIMUM_LIQUIDITY = decimal('1e-08')\nMAXIMUM_BALANCE = decimal('100000000000000.0')\n__toks_to_pair = Hash(default_value=None, contract='con_dex_pairs', name=\n 'toks_to_pair')\n__pairs = Hash(default_value=0, contract='con_dex_pairs', name='pairs')\n__pairs_num = Variable(contract='con_dex_pairs', name='pairs_num')\n__feeTo = Variable(contract='con_dex_pairs', name='feeTo')\n__owner = Variable(contract='con_dex_pairs', name='owner')\n__balances = Hash(default_value=0, contract='con_dex_pairs', name='balances')\ntoken_interface = [importlib.Func('transfer_from', args=('amount', 'to',\n 'main_account')), importlib.Func('transfer', args=('amount', 'to')),\n importlib.Var('balances', Hash)]\n\n\ndef ____():\n __pairs_num.set(0)\n __owner.set(ctx.signer)\n __feeTo.set(ctx.signer)\n\n\n@__export('con_dex_pairs')\ndef createPair(tokenA: str, tokenB: str):\n assert tokenA != tokenB, '__DEXNAME: IDENTICAL_ADDRESSES'\n assert __toks_to_pair[tokenA, tokenB] == None, '__DEXNAME: PAIR_EXISTS'\n p_num = __pairs_num.get() + 1\n __pairs_num.set(p_num)\n __pairs[p_num, 'token0'] = tokenA\n __pairs[p_num, 'token1'] = tokenB\n __pairs[p_num, 'reserve0'] = 0\n __pairs[p_num, 'reserve1'] = 0\n __pairs[p_num, 'balance0'] = 0\n __pairs[p_num, 'balance1'] = 0\n __pairs[p_num, 'blockTimestampLast'] = now\n __pairs[p_num, 'totalSupply'] = 0\n __pairs[p_num, 'kLast'] = 0\n __pairs[p_num, 'creationTime'] = now\n __toks_to_pair[tokenA, tokenB] = p_num\n return p_num\n\n\n@__export('con_dex_pairs')\ndef pairFor(tokenA: str, tokenB: str):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n return __toks_to_pair[tokenA, tokenB]\n\n\n@__export('con_dex_pairs')\ndef liqTransfer(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', ctx.caller\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', ctx.caller] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\n@__export('con_dex_pairs')\ndef liqApprove(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __pairs[pair, 'balances', ctx.caller, to] += amount\n\n\n@__export('con_dex_pairs')\ndef liqTransfer_from(pair: int, amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __pairs[pair, 'balances', main_account, ctx.caller], amount)\n assert __pairs[pair, 'balances', main_account\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', main_account, ctx.caller] -= amount\n __pairs[pair, 'balances', main_account] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\ndef __safeTransferFromPair(pair: int, token: str, to: str, value: float):\n assert value >= 0 and value <= MAXIMUM_BALANCE, 'Invalid value!'\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dex_pairs', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n assert __pairs[pair, 'balance0'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n assert __pairs[pair, 'balance0'] >= 0, 'Negative pair balance0!'\n return True\n elif token == __pairs[pair, 'token1']:\n assert __pairs[pair, 'balance1'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n assert __pairs[pair, 'balance1'] >= 0, 'Negative pair balance1!'\n return True\n assert False, 'Wrong token!'\n return False\n\n\ndef __safeTransferFromPairToPair(pair: int, token: str, to: int, value: float):\n assert value >= 0 and value <= MAXIMUM_BALANCE, 'Invalid value!'\n if token == __pairs[pair, 'token0']:\n assert __pairs[pair, 'balance0'] >= value, 'Not enough coins to send!'\n __pairs[pair, 'balance0'] -= value\n if __pairs[to, 'token0'] == token:\n __pairs[to, 'balance0'] += value\n elif __pairs[to, 'token1'] == token:\n __pairs[to, 'balance1'] += value\n else:\n assert False, 'No token in TO'\n new_balance = __pairs[pair, 'balance0']\n assert new_balance >= 0, 'Negative balance!'\n return True\n elif token == __pairs[pair, 'token1']:\n assert __pairs[pair, 'balance1'] >= value, 'Not enough coins to send!'\n __pairs[pair, 'balance1'] -= value\n if __pairs[to, 'token0'] == token:\n __pairs[to, 'balance0'] += value\n elif __pairs[to, 'token1'] == token:\n __pairs[to, 'balance1'] += value\n else:\n assert False, 'No token in TO'\n new_balance = __pairs[pair, 'balance1']\n assert new_balance >= 0, 'Negative balance!'\n return True\n assert False, 'Wrong token!'\n return False\n\n\n@__export('con_dex_pairs')\ndef sync(pair: int):\n tokenA = __pairs[pair, 'token0']\n tokenB = __pairs[pair, 'token1']\n tA = importlib.import_module(tokenA)\n assert importlib.enforce_interface(tA, token_interface)\n __hashA = ForeignHash(foreign_contract=tokenA, foreign_name='balances',\n contract='con_dex_pairs', name='hashA')\n balA = __hashA[ctx.this]\n if balA == None:\n balA = 0\n tB = importlib.import_module(tokenA)\n assert importlib.enforce_interface(tB, token_interface)\n __hashB = ForeignHash(foreign_contract=tokenB, foreign_name='balances',\n contract='con_dex_pairs', name='hashB')\n balB = __hashB[ctx.this]\n if balB == None:\n balB = 0\n __balances[tokenA] = balA\n __balances[tokenB] = balB\n\n\n@__export('con_dex_pairs')\ndef sync2(pair: int):\n tokenA = __pairs[pair, 'token0']\n tokenB = __pairs[pair, 'token1']\n tA = importlib.import_module(tokenA)\n assert importlib.enforce_interface(tA, token_interface)\n __hashA = ForeignHash(foreign_contract=tokenA, foreign_name='balances',\n contract='con_dex_pairs', name='hashA')\n balA = __hashA[ctx.this]\n if balA == None:\n balA = 0\n tB = importlib.import_module(tokenA)\n assert importlib.enforce_interface(tB, token_interface)\n __hashB = ForeignHash(foreign_contract=tokenB, foreign_name='balances',\n contract='con_dex_pairs', name='hashB')\n balB = __hashB[ctx.this]\n if balB == None:\n balB = 0\n incA = balA - __balances[tokenA]\n assert incA >= 0, '__DEXNAME: token0_neg'\n incB = balB - __balances[tokenB]\n assert incB >= 0, '__DEXNAME: token1_neg'\n __pairs[pair, 'balance0'] += incA\n __pairs[pair, 'balance1'] += incB\n assert __pairs[pair, 'balance0'] <= MAXIMUM_BALANCE, 'TokenA OVERFLOW'\n assert __pairs[pair, 'balance1'] <= MAXIMUM_BALANCE, 'TokenB OVERFLOW'\n\n\n@__export('con_dex_pairs')\ndef getReserves(pair: int):\n return __pairs[pair, 'reserve0'], __pairs[pair, 'reserve1'], __pairs[\n pair, 'blockTimestampLast']\n\n\ndef __internal_update(pair: int, balance0: float, balance1: float):\n assert balance0 <= MAXIMUM_BALANCE and balance1 <= MAXIMUM_BALANCE, '__DEXNAME: BALANCE OVERFLOW'\n __pairs[pair, 'reserve0'] = balance0\n __pairs[pair, 'reserve1'] = balance1\n __pairs[pair, 'blockTimestampLast'] = now\n\n\ndef __internal_mintFee(pair: int, reserve0: float, reserve1: float):\n feeOn = __feeTo.get() != False\n kLast = __pairs[pair, 'kLast']\n if feeOn:\n if kLast != 0:\n rootK = (reserve0 * reserve1) ** decimal('0.5')\n rootKLast = kLast ** decimal('0.5')\n if rootK > rootKLast:\n numerator = __pairs[pair, 'totalSupply'] * (rootK - rootKLast)\n denominator = rootK * 5 + rootKLast\n liquidity = numerator / denominator\n if liquidity > 0:\n __internal_mint(pair, __feeTo.get(), liquidity)\n elif kLast != 0:\n __pairs[pair, 'kLast'] = 0\n return feeOn\n\n\ndef __internal_burn(pair: int, src: str, value: float):\n __pairs[pair, 'totalSupply'] -= value\n assert __pairs[pair, 'totalSupply'] >= 0, 'Negative supply!'\n __pairs[pair, 'balances', src] -= value\n assert __pairs[pair, 'balances', src] >= 0, 'Negative balance!'\n\n\n@__export('con_dex_pairs')\ndef burn(pair: int, to: str):\n reserve0, reserve1, ignore = getReserves(pair)\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n liquidity = __pairs[pair, 'balances', ctx.this]\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n amount0 = liquidity * balance0 / totalSupply\n amount1 = liquidity * balance1 / totalSupply\n assert amount0 > 0 and amount1 > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY_BURNED'\n __internal_burn(pair, ctx.this, liquidity)\n __safeTransferFromPair(pair, token0, to, amount0)\n __safeTransferFromPair(pair, token1, to, amount1)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n __internal_update(pair, balance0, balance1)\n sync(pair)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return amount0, amount1\n\n\ndef __internal_mint(pair: int, to: str, value: float):\n __pairs[pair, 'totalSupply'] += value\n __pairs[pair, 'balances', to] += value\n\n\n@__export('con_dex_pairs')\ndef mint(pair: int, to: str):\n reserve0, reserve1, ignore = getReserves(pair)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0 = balance0 - reserve0\n amount1 = balance1 - reserve1\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n liquidity = 0\n if totalSupply == 0:\n liquidity = (amount0 * amount1) ** decimal('0.5') - MINIMUM_LIQUIDITY\n __internal_mint(pair, 'DEAD', MINIMUM_LIQUIDITY)\n else:\n liquidity = min(amount0 * totalSupply / reserve0, amount1 *\n totalSupply / reserve1)\n assert liquidity > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY_MINTED'\n __internal_mint(pair, to, liquidity)\n __internal_update(pair, balance0, balance1)\n sync(pair)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return liquidity\n\n\n@__export('con_dex_pairs')\ndef swap(pair: int, amount0Out: float, amount1Out: float, to: str):\n assert amount0Out > 0 or amount1Out > 0, '__DEXNAME: INSUFFICIENT_OUTPUT_AMOUNT'\n reserve0, reserve1, ignore = getReserves(pair)\n assert amount0Out < reserve0 and amount1Out < reserve1, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n assert to != token0 and to != token1, '__DEXNAME: INVALID_TO'\n if amount0Out > 0:\n __safeTransferFromPair(pair, token0, to, amount0Out)\n if amount1Out > 0:\n __safeTransferFromPair(pair, token1, to, amount1Out)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0In = balance0 - (reserve0 - amount0Out\n ) if balance0 > reserve0 - amount0Out else 0\n amount1In = balance1 - (reserve1 - amount1Out\n ) if balance1 > reserve1 - amount1Out else 0\n assert amount0In > 0 or amount1In > 0, '__DEXNAME: INSUFFICIENT_INPUT_AMOUNT'\n balance0Adjusted = balance0 - amount0In * decimal('0.003')\n balance1Adjusted = balance1 - amount1In * decimal('0.003')\n assert balance0Adjusted * balance1Adjusted >= reserve0 * reserve1, '__DEXNAME: K'\n __internal_update(pair, balance0, balance1)\n sync(pair)\n\n\n@__export('con_dex_pairs')\ndef swapToPair(pair: int, amount0Out: float, amount1Out: float, to: int):\n assert amount0Out > 0 or amount1Out > 0, '__DEXNAME: INSUFFICIENT_OUTPUT_AMOUNT'\n reserve0, reserve1, ignore = getReserves(pair)\n assert amount0Out < reserve0 and amount1Out < reserve1, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n if amount0Out > 0:\n __safeTransferFromPairToPair(pair, token0, to, amount0Out)\n if amount1Out > 0:\n __safeTransferFromPairToPair(pair, token1, to, amount1Out)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0In = balance0 - (reserve0 - amount0Out\n ) if balance0 > reserve0 - amount0Out else 0\n amount1In = balance1 - (reserve1 - amount1Out\n ) if balance1 > reserve1 - amount1Out else 0\n assert amount0In > 0 or amount1In > 0, '__DEXNAME: INSUFFICIENT_INPUT_AMOUNT {} {}'\n balance0Adjusted = balance0 - amount0In * decimal('0.003')\n balance1Adjusted = balance1 - amount1In * decimal('0.003')\n assert balance0Adjusted * balance1Adjusted >= reserve0 * reserve1, '__DEXNAME: K'\n __internal_update(pair, balance0, balance1)\n" + }, + { + "key": "con_dex_pairs.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dex_pairs.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 21, + 41, + 31, + 0 + ] + } + }, + { + "key": "con_dex_pairs.balances:con_bigtoken2", + "value": { + "__fixed__": "1000.000000031622461246689012294922" + } + }, + { + "key": "con_dex_pairs.balances:con_testtoken", + "value": { + "__fixed__": "41.800633596611738895164383427412" + } + }, + { + "key": "con_dex_pairs.balances:currency", + "value": { + "__fixed__": "47.102000000230291939558750930651" + } + }, + { + "key": "con_dex_pairs.feeTo", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dex_pairs.owner", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dex_pairs.pairs:1:balance0", + "value": { + "__fixed__": "41.800633593449429620125096621332" + } + }, + { + "key": "con_dex_pairs.pairs:1:balance1", + "value": { + "__fixed__": "46.102000000230291939558750930651" + } + }, + { + "key": "con_dex_pairs.pairs:1:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "43.423143767690791851861558771169" + } + }, + { + "key": "con_dex_pairs.pairs:1:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dex2test", + "value": { + "__fixed__": "3507.376054626790649917316581534309" + } + }, + { + "key": "con_dex_pairs.pairs:1:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dex_pairs.pairs:1:balances:con_dex_pairs", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_dex_pairs.pairs:1:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 12, + 12, + 4, + 35, + 0, + 0 + ] + } + }, + { + "key": "con_dex_pairs.pairs:1:creationTime", + "value": { + "__time__": [ + 2024, + 11, + 2, + 21, + 45, + 46, + 0 + ] + } + }, + { + "key": "con_dex_pairs.pairs:1:kLast", + "value": { + "__fixed__": "1916.520344673045781189154003108443" + } + }, + { + "key": "con_dex_pairs.pairs:1:reserve0", + "value": { + "__fixed__": "41.800633593449429620125096621332" + } + }, + { + "key": "con_dex_pairs.pairs:1:reserve1", + "value": { + "__fixed__": "46.102000000230291939558750930651" + } + }, + { + "key": "con_dex_pairs.pairs:1:token0", + "value": "con_testtoken" + }, + { + "key": "con_dex_pairs.pairs:1:token1", + "value": "currency" + }, + { + "key": "con_dex_pairs.pairs:1:totalSupply", + "value": { + "__fixed__": "43.423143777690791851861558771169" + } + }, + { + "key": "con_dex_pairs.pairs:2:balance0", + "value": { + "__fixed__": "1E+3" + } + }, + { + "key": "con_dex_pairs.pairs:2:balance1", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_dex_pairs.pairs:2:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "31.622776591683793319988935444327" + } + }, + { + "key": "con_dex_pairs.pairs:2:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dex_pairs.pairs:2:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 11, + 7, + 15, + 23, + 42, + 0 + ] + } + }, + { + "key": "con_dex_pairs.pairs:2:creationTime", + "value": { + "__time__": [ + 2024, + 11, + 7, + 15, + 23, + 42, + 0 + ] + } + }, + { + "key": "con_dex_pairs.pairs:2:kLast", + "value": { + "__fixed__": "1E+3" + } + }, + { + "key": "con_dex_pairs.pairs:2:reserve0", + "value": { + "__fixed__": "1E+3" + } + }, + { + "key": "con_dex_pairs.pairs:2:reserve1", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_dex_pairs.pairs:2:token0", + "value": "con_bigtoken2" + }, + { + "key": "con_dex_pairs.pairs:2:token1", + "value": "currency" + }, + { + "key": "con_dex_pairs.pairs:2:totalSupply", + "value": { + "__fixed__": "31.622776601683793319988935444327" + } + }, + { + "key": "con_dex_pairs.pairs:3:balance0", + "value": { + "__fixed__": "3.1622461246689012294922E-8" + } + }, + { + "key": "con_dex_pairs.pairs:3:balance1", + "value": { + "__fixed__": "3.16230927503928680608E-9" + } + }, + { + "key": "con_dex_pairs.pairs:3:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_dex_pairs.pairs:3:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dex2test", + "value": { + "__fixed__": "31623.409136263104641599906991002421" + } + }, + { + "key": "con_dex_pairs.pairs:3:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dex_pairs.pairs:3:balances:con_dex_pairs", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_dex_pairs.pairs:3:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 11, + 7, + 17, + 16, + 12, + 0 + ] + } + }, + { + "key": "con_dex_pairs.pairs:3:creationTime", + "value": { + "__time__": [ + 2024, + 11, + 7, + 16, + 9, + 23, + 0 + ] + } + }, + { + "key": "con_dex_pairs.pairs:3:kLast", + "value": { + "__fixed__": "1.00000002499975E-16" + } + }, + { + "key": "con_dex_pairs.pairs:3:reserve0", + "value": { + "__fixed__": "3.1622461246689012294922E-8" + } + }, + { + "key": "con_dex_pairs.pairs:3:reserve1", + "value": { + "__fixed__": "3.16230927503928680608E-9" + } + }, + { + "key": "con_dex_pairs.pairs:3:token0", + "value": "con_bigtoken2" + }, + { + "key": "con_dex_pairs.pairs:3:token1", + "value": "con_testtoken" + }, + { + "key": "con_dex_pairs.pairs:3:totalSupply", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dex_pairs.pairs_num", + "value": 3 + }, + { + "key": "con_dex_pairs.toks_to_pair:con_bigtoken2:con_testtoken", + "value": 3 + }, + { + "key": "con_dex_pairs.toks_to_pair:con_bigtoken2:currency", + "value": 2 + }, + { + "key": "con_dex_pairs.toks_to_pair:con_testtoken:currency", + "value": 1 + }, + { + "key": "con_dex_pairs2.__code__", + "value": "MINIMUM_LIQUIDITY = decimal('1e-08')\nMAXIMUM_BALANCE = decimal('100000000000000.0')\n__PairCreated = LogEvent(event='PairCreated', params={'token0': {'type':\n str, 'idx': True}, 'token1': {'type': str, 'idx': True}, 'pair': {\n 'type': int}}, contract='con_dex_pairs2', name='PairCreated')\n__Mint = LogEvent(event='Mint', params={'pair': {'type': int, 'idx': True},\n 'amount0': {'type': (int, float, decimal)}, 'amount1': {'type': (int,\n float, decimal)}, 'to': {'type': str, 'idx': True}}, contract=\n 'con_dex_pairs2', name='Mint')\n__Burn = LogEvent(event='Burn', params={'pair': {'type': int, 'idx': True},\n 'amount0': {'type': (int, float, decimal)}, 'amount1': {'type': (int,\n float, decimal)}, 'to': {'type': str, 'idx': True}}, contract=\n 'con_dex_pairs2', name='Burn')\n__Swap = LogEvent(event='Swap', params={'pair': {'type': int, 'idx': True},\n 'amount0In': {'type': (int, float, decimal)}, 'amount1In': {'type': (\n int, float, decimal)}, 'amount0Out': {'type': (int, float, decimal)},\n 'amount1Out': {'type': (int, float, decimal)}, 'to': {'type': (str, int\n ), 'idx': True}}, contract='con_dex_pairs2', name='Swap')\n__Sync = LogEvent(event='Sync', params={'pair': {'type': int, 'idx': True},\n 'reserve0': {'type': (int, float, decimal)}, 'reserve1': {'type': (int,\n float, decimal)}}, contract='con_dex_pairs2', name='Sync')\n__toks_to_pair = Hash(default_value=None, contract='con_dex_pairs2', name=\n 'toks_to_pair')\n__pairs = Hash(default_value=0, contract='con_dex_pairs2', name='pairs')\n__pairs_num = Variable(contract='con_dex_pairs2', name='pairs_num')\n__feeTo = Variable(contract='con_dex_pairs2', name='feeTo')\n__owner = Variable(contract='con_dex_pairs2', name='owner')\n__balances = Hash(default_value=decimal('0.0'), contract='con_dex_pairs2',\n name='balances')\ntoken_interface = [importlib.Func('transfer_from', args=('amount', 'to',\n 'main_account')), importlib.Func('transfer', args=('amount', 'to')),\n importlib.Var('balances', Hash)]\n\n\ndef ____():\n __pairs_num.set(0)\n __owner.set(ctx.signer)\n __feeTo.set(ctx.signer)\n\n\n@__export('con_dex_pairs2')\ndef createPair(tokenA: str, tokenB: str):\n assert tokenA != tokenB, '__DEXNAME: IDENTICAL_ADDRESSES'\n assert tokenA < tokenB, '__DEXNAME: BAD_ORDER'\n assert __toks_to_pair[tokenA, tokenB] == None, '__DEXNAME: PAIR_EXISTS'\n tA = importlib.import_module(tokenA)\n assert importlib.enforce_interface(tA, token_interface\n ), '__DEXNAME: NO_TOKA'\n tB = importlib.import_module(tokenB)\n assert importlib.enforce_interface(tB, token_interface\n ), '__DEXNAME: NO_TOKB'\n p_num = __pairs_num.get() + 1\n __pairs_num.set(p_num)\n __pairs[p_num, 'token0'] = tokenA\n __pairs[p_num, 'token1'] = tokenB\n __pairs[p_num, 'reserve0'] = decimal('0.0')\n __pairs[p_num, 'reserve1'] = decimal('0.0')\n __pairs[p_num, 'balance0'] = decimal('0.0')\n __pairs[p_num, 'balance1'] = decimal('0.0')\n __pairs[p_num, 'blockTimestampLast'] = now\n __pairs[p_num, 'totalSupply'] = decimal('0.0')\n __pairs[p_num, 'kLast'] = decimal('0.0')\n __pairs[p_num, 'creationTime'] = now\n __toks_to_pair[tokenA, tokenB] = p_num\n __PairCreated({'token0': tokenA, 'token1': tokenB, 'pair': p_num})\n return p_num\n\n\n@__export('con_dex_pairs2')\ndef pairFor(tokenA: str, tokenB: str):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n return __toks_to_pair[tokenA, tokenB]\n\n\n@__export('con_dex_pairs2')\ndef liqTransfer(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', ctx.caller\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', ctx.caller] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\n@__export('con_dex_pairs2')\ndef liqApprove(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __pairs[pair, 'balances', ctx.caller, to] = amount\n\n\n@__export('con_dex_pairs2')\ndef liqTransfer_from(pair: int, amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __pairs[pair, 'balances', main_account, ctx.caller], amount)\n assert __pairs[pair, 'balances', main_account\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', main_account, ctx.caller] -= amount\n __pairs[pair, 'balances', main_account] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\ndef __safeTransferFromPair(pair: int, token: str, to: str, value: float):\n assert value >= 0 and value <= MAXIMUM_BALANCE, 'Invalid value!'\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dex_pairs2', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n assert __pairs[pair, 'balance0'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n assert __pairs[pair, 'balance0'] >= 0, 'Negative pair balance0!'\n return True\n elif token == __pairs[pair, 'token1']:\n assert __pairs[pair, 'balance1'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n assert __pairs[pair, 'balance1'] >= 0, 'Negative pair balance1!'\n return True\n assert False, 'Wrong token!'\n return False\n\n\ndef __safeTransferFromPairToPair(pair: int, token: str, to: int, value: float):\n assert value >= 0 and value <= MAXIMUM_BALANCE, 'Invalid value!'\n if token == __pairs[pair, 'token0']:\n assert __pairs[pair, 'balance0'] >= value, 'Not enough coins to send!'\n prev_balance = __pairs[pair, 'balance0']\n __pairs[pair, 'balance0'] -= value\n if __pairs[to, 'token0'] == token:\n __pairs[to, 'balance0'] += value\n elif __pairs[to, 'token1'] == token:\n __pairs[to, 'balance1'] += value\n else:\n assert False, 'No token in TO'\n new_balance = __pairs[pair, 'balance0']\n assert new_balance >= 0, 'Negative balance!'\n return True\n elif token == __pairs[pair, 'token1']:\n assert __pairs[pair, 'balance1'] >= value, 'Not enough coins to send!'\n prev_balance = __pairs[pair, 'balance1']\n __pairs[pair, 'balance1'] -= value\n if __pairs[to, 'token0'] == token:\n __pairs[to, 'balance0'] += value\n elif __pairs[to, 'token1'] == token:\n __pairs[to, 'balance1'] += value\n else:\n assert False, 'No token in TO'\n new_balance = __pairs[pair, 'balance1']\n assert new_balance >= 0, 'Negative balance!'\n return True\n assert False, 'Wrong token!'\n return False\n\n\n@__export('con_dex_pairs2')\ndef sync(pair: int):\n tokenA = __pairs[pair, 'token0']\n tokenB = __pairs[pair, 'token1']\n tA = importlib.import_module(tokenA)\n assert importlib.enforce_interface(tA, token_interface)\n __hashA = ForeignHash(foreign_contract=tokenA, foreign_name='balances',\n contract='con_dex_pairs2', name='hashA')\n balA = __hashA[ctx.this]\n if balA == None:\n balA = decimal('0.0')\n tB = importlib.import_module(tokenA)\n assert importlib.enforce_interface(tB, token_interface)\n __hashB = ForeignHash(foreign_contract=tokenB, foreign_name='balances',\n contract='con_dex_pairs2', name='hashB')\n balB = __hashB[ctx.this]\n if balB == None:\n balB = decimal('0.0')\n __balances[tokenA] = balA\n __balances[tokenB] = balB\n\n\n@__export('con_dex_pairs2')\ndef sync2(pair: int):\n tokenA = __pairs[pair, 'token0']\n tokenB = __pairs[pair, 'token1']\n tA = importlib.import_module(tokenA)\n assert importlib.enforce_interface(tA, token_interface)\n __hashA = ForeignHash(foreign_contract=tokenA, foreign_name='balances',\n contract='con_dex_pairs2', name='hashA')\n balA = __hashA[ctx.this]\n if balA == None:\n balA = decimal('0.0')\n tB = importlib.import_module(tokenA)\n assert importlib.enforce_interface(tB, token_interface)\n __hashB = ForeignHash(foreign_contract=tokenB, foreign_name='balances',\n contract='con_dex_pairs2', name='hashB')\n balB = __hashB[ctx.this]\n if balB == None:\n balB = decimal('0.0')\n incA = balA - __balances[tokenA]\n assert incA >= 0, '__DEXNAME: token0_neg'\n incB = balB - __balances[tokenB]\n assert incB >= 0, '__DEXNAME: token1_neg'\n __pairs[pair, 'balance0'] += incA\n __pairs[pair, 'balance1'] += incB\n assert __pairs[pair, 'balance0'] <= MAXIMUM_BALANCE, 'TokenA OVERFLOW'\n assert __pairs[pair, 'balance1'] <= MAXIMUM_BALANCE, 'TokenB OVERFLOW'\n\n\n@__export('con_dex_pairs2')\ndef getReserves(pair: int):\n return __pairs[pair, 'reserve0'], __pairs[pair, 'reserve1'], __pairs[\n pair, 'blockTimestampLast']\n\n\ndef __internal_update(pair: int, balance0: float, balance1: float):\n assert balance0 <= MAXIMUM_BALANCE and balance1 <= MAXIMUM_BALANCE, '__DEXNAME: BALANCE OVERFLOW'\n __pairs[pair, 'reserve0'] = balance0\n __pairs[pair, 'reserve1'] = balance1\n __pairs[pair, 'blockTimestampLast'] = now\n __Sync({'pair': pair, 'reserve0': balance0, 'reserve1': balance1})\n\n\ndef __internal_mintFee(pair: int, reserve0: float, reserve1: float):\n feeOn = __feeTo.get() != False\n kLast = __pairs[pair, 'kLast']\n if feeOn:\n if kLast != 0:\n rootK = (reserve0 * reserve1) ** decimal('0.5')\n rootKLast = kLast ** decimal('0.5')\n if rootK > rootKLast:\n numerator = __pairs[pair, 'totalSupply'] * (rootK - rootKLast)\n denominator = rootK * 5 + rootKLast\n liquidity = numerator / denominator\n if liquidity > 0:\n __internal_mint(pair, __feeTo.get(), liquidity)\n elif kLast != 0:\n __pairs[pair, 'kLast'] = decimal('0.0')\n return feeOn\n\n\ndef __internal_burn(pair: int, src: str, value: float):\n __pairs[pair, 'totalSupply'] -= value\n assert __pairs[pair, 'totalSupply'] >= 0, 'Negative supply!'\n __pairs[pair, 'balances', src] -= value\n assert __pairs[pair, 'balances', src] >= 0, 'Negative balance!'\n\n\n@__export('con_dex_pairs2')\ndef burn(pair: int, to: str):\n reserve0, reserve1, ignore = getReserves(pair)\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n liquidity = __pairs[pair, 'balances', ctx.this]\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n amount0 = liquidity * balance0 / totalSupply\n amount1 = liquidity * balance1 / totalSupply\n assert amount0 > 0 and amount1 > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY_BURNED'\n __internal_burn(pair, ctx.this, liquidity)\n __safeTransferFromPair(pair, token0, to, amount0)\n __safeTransferFromPair(pair, token1, to, amount1)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n __internal_update(pair, balance0, balance1)\n sync(pair)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n __Burn({'pair': pair, 'amount0': amount0, 'amount1': amount1, 'to': to})\n return amount0, amount1\n\n\ndef __internal_mint(pair: int, to: str, value: float):\n __pairs[pair, 'totalSupply'] += value\n __pairs[pair, 'balances', to] += value\n\n\n@__export('con_dex_pairs2')\ndef mint(pair: int, to: str):\n reserve0, reserve1, ignore = getReserves(pair)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0 = balance0 - reserve0\n amount1 = balance1 - reserve1\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n liquidity = 0\n if totalSupply == 0:\n liquidity = (amount0 * amount1) ** decimal('0.5') - MINIMUM_LIQUIDITY\n __internal_mint(pair, 'DEAD', MINIMUM_LIQUIDITY)\n else:\n liquidity = min(amount0 * totalSupply / reserve0, amount1 *\n totalSupply / reserve1)\n assert liquidity > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY_MINTED'\n __internal_mint(pair, to, liquidity)\n __internal_update(pair, balance0, balance1)\n sync(pair)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n __Mint({'pair': pair, 'amount0': amount0, 'amount1': amount1, 'to': to})\n return liquidity\n\n\n@__export('con_dex_pairs2')\ndef swap(pair: int, amount0Out: float, amount1Out: float, to: str):\n assert amount0Out > 0 or amount1Out > 0, '__DEXNAME: INSUFFICIENT_OUTPUT_AMOUNT'\n reserve0, reserve1, ignore = getReserves(pair)\n assert amount0Out < reserve0 and amount1Out < reserve1, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n assert to != token0 and to != token1, '__DEXNAME: INVALID_TO'\n if amount0Out > 0:\n __safeTransferFromPair(pair, token0, to, amount0Out)\n if amount1Out > 0:\n __safeTransferFromPair(pair, token1, to, amount1Out)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0In = balance0 - (reserve0 - amount0Out\n ) if balance0 > reserve0 - amount0Out else 0\n amount1In = balance1 - (reserve1 - amount1Out\n ) if balance1 > reserve1 - amount1Out else 0\n assert amount0In > 0 or amount1In > 0, '__DEXNAME: INSUFFICIENT_INPUT_AMOUNT'\n balance0Adjusted = balance0 - amount0In * decimal('0.003')\n balance1Adjusted = balance1 - amount1In * decimal('0.003')\n assert balance0Adjusted * balance1Adjusted >= reserve0 * reserve1, '__DEXNAME: K'\n __internal_update(pair, balance0, balance1)\n sync(pair)\n __Swap({'pair': pair, 'amount0In': amount0In, 'amount1In': amount1In,\n 'amount0Out': amount0Out, 'amount1Out': amount1Out, 'to': to})\n\n\n@__export('con_dex_pairs2')\ndef swapToPair(pair: int, amount0Out: float, amount1Out: float, to: int):\n assert amount0Out > 0 or amount1Out > 0, '__DEXNAME: INSUFFICIENT_OUTPUT_AMOUNT'\n reserve0, reserve1, ignore = getReserves(pair)\n assert amount0Out < reserve0 and amount1Out < reserve1, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n if amount0Out > 0:\n __safeTransferFromPairToPair(pair, token0, to, amount0Out)\n if amount1Out > 0:\n __safeTransferFromPairToPair(pair, token1, to, amount1Out)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0In = balance0 - (reserve0 - amount0Out\n ) if balance0 > reserve0 - amount0Out else 0\n amount1In = balance1 - (reserve1 - amount1Out\n ) if balance1 > reserve1 - amount1Out else 0\n assert amount0In > 0 or amount1In > 0, '__DEXNAME: INSUFFICIENT_INPUT_AMOUNT'\n balance0Adjusted = balance0 - amount0In * decimal('0.003')\n balance1Adjusted = balance1 - amount1In * decimal('0.003')\n assert balance0Adjusted * balance1Adjusted >= reserve0 * reserve1, '__DEXNAME: K'\n __internal_update(pair, balance0, balance1)\n __Swap({'pair': pair, 'amount0In': amount0In, 'amount1In': amount1In,\n 'amount0Out': amount0Out, 'amount1Out': amount1Out, 'to': to})\n" + }, + { + "key": "con_dex_pairs2.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dex_pairs2.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 17, + 19, + 51, + 1, + 0 + ] + } + }, + { + "key": "con_dex_pairs2.balances:con_bigtoken2", + "value": { + "__fixed__": "989179284" + } + }, + { + "key": "con_dex_pairs2.balances:con_logevent_test_token", + "value": { + "__fixed__": "1E+3" + } + }, + { + "key": "con_dex_pairs2.balances:con_test_1", + "value": { + "__fixed__": "6" + } + }, + { + "key": "con_dex_pairs2.balances:con_test_2", + "value": { + "__fixed__": "1.502253380070105157736604907362" + } + }, + { + "key": "con_dex_pairs2.balances:con_testtoken", + "value": { + "__fixed__": "989179292.337691103385709723481308325324" + } + }, + { + "key": "con_dex_pairs2.balances:currency", + "value": { + "__fixed__": "112" + } + }, + { + "key": "con_dex_pairs2.feeTo", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dex_pairs2.owner", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dex_pairs2.pairs:1:balance0", + "value": { + "__fixed__": "8.337691103385709723481308325324" + } + }, + { + "key": "con_dex_pairs2.pairs:1:balance1", + "value": { + "__fixed__": "12" + } + }, + { + "key": "con_dex_pairs2.pairs:1:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "9.999999989999999999999999999999" + } + }, + { + "key": "con_dex_pairs2.pairs:1:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dex_pairs2.pairs:1:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 12, + 29, + 18, + 38, + 48, + 0 + ] + } + }, + { + "key": "con_dex_pairs2.pairs:1:creationTime", + "value": { + "__time__": [ + 2024, + 12, + 17, + 21, + 44, + 41, + 0 + ] + } + }, + { + "key": "con_dex_pairs2.pairs:1:kLast", + "value": { + "__fixed__": "1E+2" + } + }, + { + "key": "con_dex_pairs2.pairs:1:reserve0", + "value": { + "__fixed__": "8.337691103385709723481308325324" + } + }, + { + "key": "con_dex_pairs2.pairs:1:reserve1", + "value": { + "__fixed__": "12" + } + }, + { + "key": "con_dex_pairs2.pairs:1:token0", + "value": "con_testtoken" + }, + { + "key": "con_dex_pairs2.pairs:1:token1", + "value": "currency" + }, + { + "key": "con_dex_pairs2.pairs:1:totalSupply", + "value": { + "__fixed__": "9.999999999999999999999999999999" + } + }, + { + "key": "con_dex_pairs2.pairs:2:balance0", + "value": { + "__fixed__": "1E+3" + } + }, + { + "key": "con_dex_pairs2.pairs:2:balance1", + "value": { + "__fixed__": "1E+2" + } + }, + { + "key": "con_dex_pairs2.pairs:2:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dex_pairs2.pairs:2:balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": { + "__fixed__": "316.227766006837933199889354443271" + } + }, + { + "key": "con_dex_pairs2.pairs:2:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 12, + 18, + 11, + 33, + 3, + 0 + ] + } + }, + { + "key": "con_dex_pairs2.pairs:2:creationTime", + "value": { + "__time__": [ + 2024, + 12, + 18, + 11, + 33, + 3, + 0 + ] + } + }, + { + "key": "con_dex_pairs2.pairs:2:kLast", + "value": { + "__fixed__": "1E+5" + } + }, + { + "key": "con_dex_pairs2.pairs:2:reserve0", + "value": { + "__fixed__": "1E+3" + } + }, + { + "key": "con_dex_pairs2.pairs:2:reserve1", + "value": { + "__fixed__": "1E+2" + } + }, + { + "key": "con_dex_pairs2.pairs:2:token0", + "value": "con_logevent_test_token" + }, + { + "key": "con_dex_pairs2.pairs:2:token1", + "value": "currency" + }, + { + "key": "con_dex_pairs2.pairs:2:totalSupply", + "value": { + "__fixed__": "316.227766016837933199889354443271" + } + }, + { + "key": "con_dex_pairs2.pairs:3:balance0", + "value": { + "__fixed__": "989179284" + } + }, + { + "key": "con_dex_pairs2.pairs:3:balance1", + "value": { + "__fixed__": "989179284" + } + }, + { + "key": "con_dex_pairs2.pairs:3:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "989179283.99999999" + } + }, + { + "key": "con_dex_pairs2.pairs:3:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dex_pairs2.pairs:3:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 12, + 18, + 13, + 9, + 13, + 0 + ] + } + }, + { + "key": "con_dex_pairs2.pairs:3:creationTime", + "value": { + "__time__": [ + 2024, + 12, + 18, + 13, + 7, + 20, + 0 + ] + } + }, + { + "key": "con_dex_pairs2.pairs:3:kLast", + "value": { + "__fixed__": "978475655894752656" + } + }, + { + "key": "con_dex_pairs2.pairs:3:reserve0", + "value": { + "__fixed__": "989179284" + } + }, + { + "key": "con_dex_pairs2.pairs:3:reserve1", + "value": { + "__fixed__": "989179284" + } + }, + { + "key": "con_dex_pairs2.pairs:3:token0", + "value": "con_bigtoken2" + }, + { + "key": "con_dex_pairs2.pairs:3:token1", + "value": "con_testtoken" + }, + { + "key": "con_dex_pairs2.pairs:3:totalSupply", + "value": { + "__fixed__": "989179284" + } + }, + { + "key": "con_dex_pairs2.pairs:4:balance0", + "value": { + "__fixed__": "6" + } + }, + { + "key": "con_dex_pairs2.pairs:4:balance1", + "value": { + "__fixed__": "1.502253380070105157736604907362" + } + }, + { + "key": "con_dex_pairs2.pairs:4:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "2.99999999" + } + }, + { + "key": "con_dex_pairs2.pairs:4:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dex_pairs2.pairs:4:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 12, + 18, + 13, + 29, + 1, + 0 + ] + } + }, + { + "key": "con_dex_pairs2.pairs:4:creationTime", + "value": { + "__time__": [ + 2024, + 12, + 18, + 13, + 28, + 20, + 0 + ] + } + }, + { + "key": "con_dex_pairs2.pairs:4:kLast", + "value": { + "__fixed__": "9" + } + }, + { + "key": "con_dex_pairs2.pairs:4:reserve0", + "value": { + "__fixed__": "6" + } + }, + { + "key": "con_dex_pairs2.pairs:4:reserve1", + "value": { + "__fixed__": "1.502253380070105157736604907362" + } + }, + { + "key": "con_dex_pairs2.pairs:4:token0", + "value": "con_test_1" + }, + { + "key": "con_dex_pairs2.pairs:4:token1", + "value": "con_test_2" + }, + { + "key": "con_dex_pairs2.pairs:4:totalSupply", + "value": { + "__fixed__": "3" + } + }, + { + "key": "con_dex_pairs2.pairs_num", + "value": 4 + }, + { + "key": "con_dex_pairs2.toks_to_pair:con_bigtoken2:con_testtoken", + "value": 3 + }, + { + "key": "con_dex_pairs2.toks_to_pair:con_logevent_test_token:currency", + "value": 2 + }, + { + "key": "con_dex_pairs2.toks_to_pair:con_test_1:con_test_2", + "value": 4 + }, + { + "key": "con_dex_pairs2.toks_to_pair:con_testtoken:currency", + "value": 1 + }, + { + "key": "con_dexcon.LiquidityPools:allowed_token_contracts", + "value": [ + "currency", + "con_basic_token" + ] + }, + { + "key": "con_dexcon.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon.LiquidityPools:token_a", + "value": 0 + }, + { + "key": "con_dexcon.LiquidityPools:token_b", + "value": 0 + }, + { + "key": "con_dexcon.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_dexcon.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_dexcon', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_dexcon', name='LPBalances')\n__SwapFeePct = Variable(contract='con_dexcon', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['currency',\n 'con_basic_token']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_dexcon')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n __balances_of_token_a = ForeignHash(foreign_contract=token_contract_a,\n foreign_name='balances', contract='con_dexcon', name=\n 'balances_of_token_a')\n __balances_of_token_b = ForeignHash(foreign_contract=token_contract_b,\n foreign_name='balances', contract='con_dexcon', name=\n 'balances_of_token_b')\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert __balances_of_token_a[ctx.caller\n ] >= token_a_amount, 'Insufficient Funds'\n assert __balances_of_token_b[ctx.caller\n ] >= token_b_amount, 'Insufficient Funds'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n token_a = importlib.import_module(token_contract_a)\n token_b = importlib.import_module(token_contract_b)\n token_a.transfer_from(amount=token_a_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer_from(amount=token_b_amount, to=ctx.this, main_account=\n ctx.caller)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_dexcon')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n __balances_of_token_a = ForeignHash(foreign_contract=input_contract,\n foreign_name='balances', contract='con_dexcon', name=\n 'balances_of_token_a')\n assert input_amount > 0, 'Input amount must be positive.'\n assert input_token in __LiquidityPools and output_token in __LiquidityPools, 'Invalid tokens.'\n assert __balances_of_token_a[ctx.caller\n ] >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n token_a = importlib.import_module(input_contract)\n token_b = importlib.import_module(output_contract)\n token_a.transfer_from(amount=input_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer(to=ctx.caller, amount=output_amount)\n\n\n@__export('con_dexcon')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_dexcon')\ndef change_allowed_token_contracts(tokens: list):\n assert ctx.caller == __LiquidityPools['owner'\n ], 'Only the owner can change the allowed token contracts'\n __LiquidityPools['allowed_tokens'] = tokens\n" + }, + { + "key": "con_dexcon.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 7, + 14, + 30, + 43, + 0 + ] + } + }, + { + "key": "con_dexcon001.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stk7", + "con_stk8" + ] + }, + { + "key": "con_dexcon001.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon001.LiquidityPools:token_a", + "value": 0 + }, + { + "key": "con_dexcon001.LiquidityPools:token_b", + "value": 0 + }, + { + "key": "con_dexcon001.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_dexcon001.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_dexcon001', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_dexcon001', name=\n 'LPBalances')\n__SwapFeePct = Variable(contract='con_dexcon001', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stk7', 'con_stk8']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_dexcon001')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n __balances_of_token_a = ForeignHash(foreign_contract=token_contract_a,\n foreign_name='balances', contract='con_dexcon001', name=\n 'balances_of_token_a')\n __balances_of_token_b = ForeignHash(foreign_contract=token_contract_b,\n foreign_name='balances', contract='con_dexcon001', name=\n 'balances_of_token_b')\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert __balances_of_token_a[ctx.caller\n ] >= token_a_amount, 'Insufficient Funds for Token A'\n assert __balances_of_token_b[ctx.caller\n ] >= token_b_amount, 'Insufficient Funds for Token B'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token A not allowed'\n assert token_contract_b in __LiquidityPools['allowed_token_contracts'\n ], 'Token B not allowed'\n current_approval_a = __balances_of_token_a[ctx.caller, ctx.this]\n if current_approval_a < token_a_amount:\n importlib.import_module(token_contract_a).approve(amount=\n token_a_amount, to=ctx.this)\n current_approval_b = __balances_of_token_b[ctx.caller, ctx.this]\n if current_approval_b < token_b_amount:\n importlib.import_module(token_contract_b).approve(amount=\n token_b_amount, to=ctx.this)\n importlib.import_module(token_contract_a).transfer_from(amount=\n token_a_amount, to=ctx.this, main_account=ctx.caller)\n importlib.import_module(token_contract_b).transfer_from(amount=\n token_b_amount, to=ctx.this, main_account=ctx.caller)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_dexcon001')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n __balances_of_token_a = ForeignHash(foreign_contract=input_contract,\n foreign_name='balances', contract='con_dexcon001', name=\n 'balances_of_token_a')\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert __balances_of_token_a[ctx.caller\n ] >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n token_a = importlib.import_module(input_contract)\n token_b = importlib.import_module(output_contract)\n token_a.transfer_from(amount=input_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer(to=ctx.caller, amount=output_amount)\n\n\n@__export('con_dexcon001')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_dexcon001')\ndef change_allowed_token_contracts(tokens: list):\n assert ctx.caller == __LiquidityPools['owner'\n ], 'Only the owner can change the allowed token contracts'\n __LiquidityPools['allowed_token_contracts'] = tokens\n" + }, + { + "key": "con_dexcon001.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon001.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 11, + 49, + 5, + 0 + ] + } + }, + { + "key": "con_dexcon011.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stk7", + "con_stk8" + ] + }, + { + "key": "con_dexcon011.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon011.LiquidityPools:token_a", + "value": 0 + }, + { + "key": "con_dexcon011.LiquidityPools:token_b", + "value": 0 + }, + { + "key": "con_dexcon011.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_dexcon011.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_dexcon011', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_dexcon011', name=\n 'LPBalances')\n__SwapFeePct = Variable(contract='con_dexcon011', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stk7', 'con_stk8']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_dexcon011')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n __balances_of_token_a = ForeignHash(foreign_contract=token_contract_a,\n foreign_name='balances', contract='con_dexcon011', name=\n 'balances_of_token_a')\n __balances_of_token_b = ForeignHash(foreign_contract=token_contract_b,\n foreign_name='balances', contract='con_dexcon011', name=\n 'balances_of_token_b')\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert __balances_of_token_a[ctx.caller\n ] >= token_a_amount, 'Insufficient Funds for Token A'\n assert __balances_of_token_b[ctx.caller\n ] >= token_b_amount, 'Insufficient Funds for Token B'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token A not allowed'\n assert token_contract_b in __LiquidityPools['allowed_token_contracts'\n ], 'Token B not allowed'\n current_approval_a = __balances_of_token_a[ctx.caller, ctx.this]\n if current_approval_a < token_a_amount:\n importlib.import_module(token_contract_a).approve(amount=\n token_a_amount, to=ctx.this)\n current_approval_b = __balances_of_token_b[ctx.caller, ctx.this]\n if current_approval_b < token_b_amount:\n importlib.import_module(token_contract_b).approve(amount=\n token_b_amount, to=ctx.this)\n importlib.import_module(token_contract_a).transfer_from(amount=\n token_a_amount, to=ctx.this, main_account=ctx.caller)\n importlib.import_module(token_contract_b).transfer_from(amount=\n token_b_amount, to=ctx.this, main_account=ctx.caller)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_dexcon011')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n __balances_of_token_a = ForeignHash(foreign_contract=input_contract,\n foreign_name='balances', contract='con_dexcon011', name=\n 'balances_of_token_a')\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert __balances_of_token_a[ctx.caller\n ] >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n token_a = importlib.import_module(input_contract)\n token_b = importlib.import_module(output_contract)\n token_a.transfer_from(amount=input_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer(to=ctx.caller, amount=output_amount)\n\n\n@__export('con_dexcon011')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_dexcon011')\ndef change_allowed_token_contracts(tokens: list):\n assert ctx.caller == __LiquidityPools['owner'\n ], 'Only the owner can change the allowed token contracts'\n __LiquidityPools['allowed_token_contracts'] = tokens\n" + }, + { + "key": "con_dexcon011.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon011.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 0, + 56, + 50, + 0 + ] + } + }, + { + "key": "con_dexcon02.__code__", + "value": "import currency\nI = importlib\ntoken_interface = [I.Func('transfer', args=('amount', 'to')), I.Func(\n 'approve', args=('amount', 'to')), I.Func('transfer_from', args=(\n 'amount', 'to', 'main_account'))]\n__pairs = Hash(contract='con_dexcon02', name='pairs')\n__prices = Hash(default_value=0, contract='con_dexcon02', name='prices')\n__lp_points = Hash(default_value=0, contract='con_dexcon02', name='lp_points')\n__reserves = Hash(default_value=[0, 0], contract='con_dexcon02', name=\n 'reserves')\n__staked_amount = Hash(default_value=0, contract='con_dexcon02', name=\n 'staked_amount')\n__discount = Hash(default_value=1, contract='con_dexcon02', name='discount')\n__state = Hash(contract='con_dexcon02', name='state')\n\n\ndef ____():\n __state['FEE_PERCENTAGE'] = decimal('0.3') / 100\n __state['TOKEN_CONTRACT'] = 'con_amm'\n __state['TOKEN_DISCOUNT'] = decimal('0.75')\n __state['BURN_PERCENTAGE'] = decimal('0.8')\n __state['BURN_ADDRESS'] = '0x0'\n __state['LOG_ACCURACY'] = decimal('1000000000.0')\n __state['MULTIPLIER'] = decimal('0.05')\n __state['DISCOUNT_FLOOR'] = decimal('0.0')\n __state['OWNER'] = ctx.caller\n\n\n@__export('con_dexcon02')\ndef create_market(contract: str, currency_amount: float=0, token_amount:\n float=0):\n assert __pairs[contract] is None, 'Market already exists!'\n assert currency_amount > 0 and token_amount > 0, 'Must provide currency amount and token amount!'\n token = I.import_module(contract)\n assert I.enforce_interface(token, token_interface\n ), 'Invalid token interface!'\n currency.transfer_from(amount=currency_amount, to=ctx.this,\n main_account=ctx.caller)\n token.transfer_from(amount=token_amount, to=ctx.this, main_account=ctx.\n caller)\n __prices[contract] = currency_amount / token_amount\n __pairs[contract] = True\n __lp_points[contract, ctx.caller] = 100\n __lp_points[contract] = 100\n __reserves[contract] = [currency_amount, token_amount]\n return True\n\n\n@__export('con_dexcon02')\ndef liquidity_balance_of(contract: str, account: str):\n return __lp_points[contract, account]\n\n\n@__export('con_dexcon02')\ndef add_liquidity(contract: str, currency_amount: float=0):\n assert __pairs[contract] is True, 'Market does not exist!'\n assert currency_amount > 0\n token = I.import_module(contract)\n assert I.enforce_interface(token, token_interface\n ), 'Invalid token interface!'\n token_amount = currency_amount / __prices[contract]\n currency.transfer_from(amount=currency_amount, to=ctx.this,\n main_account=ctx.caller)\n token.transfer_from(amount=token_amount, to=ctx.this, main_account=ctx.\n caller)\n total_lp_points = __lp_points[contract]\n currency_reserve, token_reserve = __reserves[contract]\n points_per_currency = total_lp_points / currency_reserve\n lp_to_mint = points_per_currency * currency_amount\n __lp_points[contract, ctx.caller] += lp_to_mint\n __lp_points[contract] += lp_to_mint\n __reserves[contract] = [currency_reserve + currency_amount, \n token_reserve + token_amount]\n return lp_to_mint\n\n\n@__export('con_dexcon02')\ndef remove_liquidity(contract: str, amount: float=0):\n assert __pairs[contract] is True, 'Market does not exist!'\n assert amount > 0, 'Must be a positive LP point amount!'\n assert __lp_points[contract, ctx.caller\n ] >= amount, 'Not enough LP points to remove!'\n token = I.import_module(contract)\n assert I.enforce_interface(token, token_interface\n ), 'Invalid token interface!'\n lp_percentage = amount / __lp_points[contract]\n currency_reserve, token_reserve = __reserves[contract]\n currency_amount = currency_reserve * lp_percentage\n token_amount = token_reserve * lp_percentage\n currency.transfer(to=ctx.caller, amount=currency_amount)\n token.transfer(to=ctx.caller, amount=token_amount)\n __lp_points[contract, ctx.caller] -= amount\n __lp_points[contract] -= amount\n assert __lp_points[contract] > 1, 'Not enough remaining liquidity!'\n new_currency_reserve = currency_reserve - currency_amount\n new_token_reserve = token_reserve - token_amount\n assert new_currency_reserve > 0 and new_token_reserve > 0, 'Not enough remaining liquidity!'\n __reserves[contract] = [new_currency_reserve, new_token_reserve]\n return currency_amount, token_amount\n\n\n@__export('con_dexcon02')\ndef transfer_liquidity(contract: str, to: str, amount: float):\n assert amount > 0, 'Must be a positive LP point amount!'\n assert __lp_points[contract, ctx.caller\n ] >= amount, 'Not enough LP points to transfer!'\n __lp_points[contract, ctx.caller] -= amount\n __lp_points[contract, to] += amount\n\n\n@__export('con_dexcon02')\ndef approve_liquidity(contract: str, to: str, amount: float):\n assert amount > 0, 'Cannot send negative balances!'\n __lp_points[contract, ctx.caller, to] += amount\n\n\n@__export('con_dexcon02')\ndef transfer_liquidity_from(contract: str, to: str, main_account: str,\n amount: float):\n assert amount > 0, 'Cannot send negative balances!'\n assert __lp_points[contract, main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __lp_points[main_account, ctx.caller], amount)\n assert __lp_points[contract, main_account\n ] >= amount, 'Not enough coins to send!'\n __lp_points[contract, main_account, ctx.caller] -= amount\n __lp_points[contract, main_account] -= amount\n __lp_points[contract, to] += amount\n" + }, + { + "key": "con_dexcon02.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon02.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 11, + 30, + 56, + 0 + ] + } + }, + { + "key": "con_dexcon02.state:BURN_ADDRESS", + "value": "0x0" + }, + { + "key": "con_dexcon02.state:BURN_PERCENTAGE", + "value": { + "__fixed__": "0.8" + } + }, + { + "key": "con_dexcon02.state:DISCOUNT_FLOOR", + "value": { + "__fixed__": "0" + } + }, + { + "key": "con_dexcon02.state:FEE_PERCENTAGE", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_dexcon02.state:LOG_ACCURACY", + "value": { + "__fixed__": "1E+9" + } + }, + { + "key": "con_dexcon02.state:MULTIPLIER", + "value": { + "__fixed__": "0.05" + } + }, + { + "key": "con_dexcon02.state:OWNER", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon02.state:TOKEN_CONTRACT", + "value": "con_amm" + }, + { + "key": "con_dexcon02.state:TOKEN_DISCOUNT", + "value": { + "__fixed__": "0.75" + } + }, + { + "key": "con_dexcon1.LiquidityPools:allowed_token_contracts", + "value": [ + "currency", + "con_basic_token" + ] + }, + { + "key": "con_dexcon1.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon1.LiquidityPools:token_a", + "value": 0 + }, + { + "key": "con_dexcon1.LiquidityPools:token_b", + "value": 0 + }, + { + "key": "con_dexcon1.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_dexcon1.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_dexcon1', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_dexcon1', name='LPBalances')\n__SwapFeePct = Variable(contract='con_dexcon1', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['currency',\n 'con_basic_token']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_dexcon1')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n __balances_of_token_a = ForeignHash(foreign_contract=token_contract_a,\n foreign_name='balances', contract='con_dexcon1', name=\n 'balances_of_token_a')\n __balances_of_token_b = ForeignHash(foreign_contract=token_contract_b,\n foreign_name='balances', contract='con_dexcon1', name=\n 'balances_of_token_b')\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert __balances_of_token_a[ctx.caller\n ] >= token_a_amount, 'Insufficient Funds'\n assert __balances_of_token_b[ctx.caller\n ] >= token_b_amount, 'Insufficient Funds'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n token_a = importlib.import_module(token_contract_a)\n token_b = importlib.import_module(token_contract_b)\n token_a.transfer_from(amount=token_a_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer_from(amount=token_b_amount, to=ctx.this, main_account=\n ctx.caller)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_dexcon1')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n __balances_of_token_a = ForeignHash(foreign_contract=input_contract,\n foreign_name='balances', contract='con_dexcon1', name=\n 'balances_of_token_a')\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools.get(input_token\n ) is not None, 'Invalid input token.'\n assert __LiquidityPools.get(output_token\n ) is not None, 'Invalid output token.'\n assert __balances_of_token_a[ctx.caller\n ] >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n token_a = importlib.import_module(input_contract)\n token_b = importlib.import_module(output_contract)\n token_a.transfer_from(amount=input_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer(to=ctx.caller, amount=output_amount)\n\n\n@__export('con_dexcon1')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_dexcon1')\ndef change_allowed_token_contracts(tokens: list):\n assert ctx.caller == __LiquidityPools['owner'\n ], 'Only the owner can change the allowed token contracts'\n __LiquidityPools['allowed_tokens'] = tokens\n" + }, + { + "key": "con_dexcon1.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon1.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 8, + 16, + 3, + 7, + 0 + ] + } + }, + { + "key": "con_dexcon2.LiquidityPools:allowed_token_contracts", + "value": [ + "currency", + "con_basic_token" + ] + }, + { + "key": "con_dexcon2.LiquidityPools:allowed_tokens", + "value": [ + "con_stk2", + "con_stk3" + ] + }, + { + "key": "con_dexcon2.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon2.LiquidityPools:token_a", + "value": 0 + }, + { + "key": "con_dexcon2.LiquidityPools:token_b", + "value": 0 + }, + { + "key": "con_dexcon2.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_dexcon2.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_dexcon2', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_dexcon2', name='LPBalances')\n__SwapFeePct = Variable(contract='con_dexcon2', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['currency',\n 'con_basic_token']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_dexcon2')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n __balances_of_token_a = ForeignHash(foreign_contract=token_contract_a,\n foreign_name='balances', contract='con_dexcon2', name=\n 'balances_of_token_a')\n __balances_of_token_b = ForeignHash(foreign_contract=token_contract_b,\n foreign_name='balances', contract='con_dexcon2', name=\n 'balances_of_token_b')\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert __balances_of_token_a[ctx.caller\n ] >= token_a_amount, 'Insufficient Funds'\n assert __balances_of_token_b[ctx.caller\n ] >= token_b_amount, 'Insufficient Funds'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n token_a = importlib.import_module(token_contract_a)\n token_b = importlib.import_module(token_contract_b)\n token_a.transfer_from(amount=token_a_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer_from(amount=token_b_amount, to=ctx.this, main_account=\n ctx.caller)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_dexcon2')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n __balances_of_token_a = ForeignHash(foreign_contract=input_contract,\n foreign_name='balances', contract='con_dexcon2', name=\n 'balances_of_token_a')\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert __balances_of_token_a[ctx.caller\n ] >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n token_a = importlib.import_module(input_contract)\n token_b = importlib.import_module(output_contract)\n token_a.transfer_from(amount=input_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer(to=ctx.caller, amount=output_amount)\n\n\n@__export('con_dexcon2')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_dexcon2')\ndef change_allowed_token_contracts(tokens: list):\n assert ctx.caller == __LiquidityPools['owner'\n ], 'Only the owner can change the allowed token contracts'\n __LiquidityPools['allowed_tokens'] = tokens\n" + }, + { + "key": "con_dexcon2.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon2.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 8, + 16, + 15, + 58, + 0 + ] + } + }, + { + "key": "con_dexcon3.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stk2", + "con_stk3" + ] + }, + { + "key": "con_dexcon3.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon3.LiquidityPools:token_a", + "value": 0 + }, + { + "key": "con_dexcon3.LiquidityPools:token_b", + "value": 0 + }, + { + "key": "con_dexcon3.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_dexcon3.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_dexcon3', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_dexcon3', name='LPBalances')\n__SwapFeePct = Variable(contract='con_dexcon3', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['currency',\n 'con_basic_token']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_dexcon3')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n __balances_of_token_a = ForeignHash(foreign_contract=token_contract_a,\n foreign_name='balances', contract='con_dexcon3', name=\n 'balances_of_token_a')\n __balances_of_token_b = ForeignHash(foreign_contract=token_contract_b,\n foreign_name='balances', contract='con_dexcon3', name=\n 'balances_of_token_b')\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert __balances_of_token_a[ctx.caller\n ] >= token_a_amount, 'Insufficient Funds'\n assert __balances_of_token_b[ctx.caller\n ] >= token_b_amount, 'Insufficient Funds'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n token_a = importlib.import_module(token_contract_a)\n token_b = importlib.import_module(token_contract_b)\n token_a.transfer_from(amount=token_a_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer_from(amount=token_b_amount, to=ctx.this, main_account=\n ctx.caller)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_dexcon3')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n __balances_of_token_a = ForeignHash(foreign_contract=input_contract,\n foreign_name='balances', contract='con_dexcon3', name=\n 'balances_of_token_a')\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert __balances_of_token_a[ctx.caller\n ] >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n token_a = importlib.import_module(input_contract)\n token_b = importlib.import_module(output_contract)\n token_a.transfer_from(amount=input_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer(to=ctx.caller, amount=output_amount)\n\n\n@__export('con_dexcon3')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_dexcon3')\ndef change_allowed_token_contracts(tokens: list):\n assert ctx.caller == __LiquidityPools['owner'\n ], 'Only the owner can change the allowed token contracts'\n __LiquidityPools['allowed_token_contracts'] = tokens\n" + }, + { + "key": "con_dexcon3.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon3.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 8, + 16, + 40, + 19, + 0 + ] + } + }, + { + "key": "con_dexcon4.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stk2", + "con_stk3" + ] + }, + { + "key": "con_dexcon4.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon4.LiquidityPools:token_a", + "value": 0 + }, + { + "key": "con_dexcon4.LiquidityPools:token_b", + "value": 0 + }, + { + "key": "con_dexcon4.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_dexcon4.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_dexcon4', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_dexcon4', name='LPBalances')\n__SwapFeePct = Variable(contract='con_dexcon4', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['currency',\n 'con_basic_token']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_dexcon4')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n __balances_of_token_a = ForeignHash(foreign_contract=token_contract_a,\n foreign_name='balances', contract='con_dexcon4', name=\n 'balances_of_token_a')\n __balances_of_token_b = ForeignHash(foreign_contract=token_contract_b,\n foreign_name='balances', contract='con_dexcon4', name=\n 'balances_of_token_b')\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert __balances_of_token_a[ctx.caller\n ] >= token_a_amount, 'Insufficient Funds'\n assert __balances_of_token_b[ctx.caller\n ] >= token_b_amount, 'Insufficient Funds'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n token_a = importlib.import_module(token_contract_a)\n token_b = importlib.import_module(token_contract_b)\n token_a.approve(amount=token_a_amount, to=ctx.caller)\n token_b.approve(amount=token_b_amount, to=ctx.caller)\n token_a.transfer_from(amount=token_a_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer_from(amount=token_b_amount, to=ctx.this, main_account=\n ctx.caller)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_dexcon4')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n __balances_of_token_a = ForeignHash(foreign_contract=input_contract,\n foreign_name='balances', contract='con_dexcon4', name=\n 'balances_of_token_a')\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert __balances_of_token_a[ctx.caller\n ] >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n token_a = importlib.import_module(input_contract)\n token_b = importlib.import_module(output_contract)\n token_a.transfer_from(amount=input_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer(to=ctx.caller, amount=output_amount)\n\n\n@__export('con_dexcon4')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_dexcon4')\ndef change_allowed_token_contracts(tokens: list):\n assert ctx.caller == __LiquidityPools['owner'\n ], 'Only the owner can change the allowed token contracts'\n __LiquidityPools['allowed_token_contracts'] = tokens\n" + }, + { + "key": "con_dexcon4.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon4.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 8, + 16, + 44, + 21, + 0 + ] + } + }, + { + "key": "con_dexcon5.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stk2", + "con_stk3" + ] + }, + { + "key": "con_dexcon5.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon5.LiquidityPools:token_a", + "value": 0 + }, + { + "key": "con_dexcon5.LiquidityPools:token_b", + "value": 0 + }, + { + "key": "con_dexcon5.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_dexcon5.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_dexcon5', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_dexcon5', name='LPBalances')\n__SwapFeePct = Variable(contract='con_dexcon5', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stk2', 'con_stk3']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_dexcon5')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n __balances_of_token_a = ForeignHash(foreign_contract=token_contract_a,\n foreign_name='balances', contract='con_dexcon5', name=\n 'balances_of_token_a')\n __balances_of_token_b = ForeignHash(foreign_contract=token_contract_b,\n foreign_name='balances', contract='con_dexcon5', name=\n 'balances_of_token_b')\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert __balances_of_token_a[ctx.caller\n ] >= token_a_amount, 'Insufficient Funds'\n assert __balances_of_token_b[ctx.caller\n ] >= token_b_amount, 'Insufficient Funds'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n token_a = importlib.import_module(token_contract_a)\n token_b = importlib.import_module(token_contract_b)\n token_a.approve(amount=token_a_amount, to=ctx.caller)\n token_b.approve(amount=token_b_amount, to=ctx.caller)\n token_a.transfer_from(amount=token_a_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer_from(amount=token_b_amount, to=ctx.this, main_account=\n ctx.caller)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_dexcon5')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n __balances_of_token_a = ForeignHash(foreign_contract=input_contract,\n foreign_name='balances', contract='con_dexcon5', name=\n 'balances_of_token_a')\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert __balances_of_token_a[ctx.caller\n ] >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n token_a = importlib.import_module(input_contract)\n token_b = importlib.import_module(output_contract)\n token_a.transfer_from(amount=input_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer(to=ctx.caller, amount=output_amount)\n\n\n@__export('con_dexcon5')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_dexcon5')\ndef change_allowed_token_contracts(tokens: list):\n assert ctx.caller == __LiquidityPools['owner'\n ], 'Only the owner can change the allowed token contracts'\n __LiquidityPools['allowed_token_contracts'] = tokens\n" + }, + { + "key": "con_dexcon5.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon5.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 8, + 17, + 8, + 14, + 0 + ] + } + }, + { + "key": "con_dexcon6.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stk7", + "con_stk8" + ] + }, + { + "key": "con_dexcon6.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon6.LiquidityPools:token_a", + "value": 0 + }, + { + "key": "con_dexcon6.LiquidityPools:token_b", + "value": 0 + }, + { + "key": "con_dexcon6.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_dexcon6.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_dexcon6', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_dexcon6', name='LPBalances')\n__SwapFeePct = Variable(contract='con_dexcon6', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stk2', 'con_stk3']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_dexcon6')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n __balances_of_token_a = ForeignHash(foreign_contract=token_contract_a,\n foreign_name='balances', contract='con_dexcon6', name=\n 'balances_of_token_a')\n __balances_of_token_b = ForeignHash(foreign_contract=token_contract_b,\n foreign_name='balances', contract='con_dexcon6', name=\n 'balances_of_token_b')\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert __balances_of_token_a[ctx.caller\n ] >= token_a_amount, 'Insufficient Funds'\n assert __balances_of_token_b[ctx.caller\n ] >= token_b_amount, 'Insufficient Funds'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token not allowed'\n token_a = importlib.import_module(token_contract_a)\n token_b = importlib.import_module(token_contract_b)\n current_approval_a = token_a.balances[user, ctx.this]\n if current_approval_a < token_a_amount:\n token_a.approve(amount=token_a_amount, to=ctx.this)\n current_approval_b = token_b.balances[user, ctx.this]\n if current_approval_b < token_b_amount:\n token_b.approve(amount=token_b_amount, to=ctx.this)\n token_a.transfer_from(amount=token_a_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer_from(amount=token_b_amount, to=ctx.this, main_account=\n ctx.caller)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_dexcon6')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n __balances_of_token_a = ForeignHash(foreign_contract=input_contract,\n foreign_name='balances', contract='con_dexcon6', name=\n 'balances_of_token_a')\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert __balances_of_token_a[ctx.caller\n ] >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n token_a = importlib.import_module(input_contract)\n token_b = importlib.import_module(output_contract)\n token_a.transfer_from(amount=input_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer(to=ctx.caller, amount=output_amount)\n\n\n@__export('con_dexcon6')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_dexcon6')\ndef change_allowed_token_contracts(tokens: list):\n assert ctx.caller == __LiquidityPools['owner'\n ], 'Only the owner can change the allowed token contracts'\n __LiquidityPools['allowed_token_contracts'] = tokens\n" + }, + { + "key": "con_dexcon6.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon6.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 8, + 17, + 21, + 14, + 0 + ] + } + }, + { + "key": "con_dexcon7.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stk7", + "con_stk8" + ] + }, + { + "key": "con_dexcon7.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon7.LiquidityPools:token_a", + "value": 0 + }, + { + "key": "con_dexcon7.LiquidityPools:token_b", + "value": 0 + }, + { + "key": "con_dexcon7.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_dexcon7.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_dexcon7', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_dexcon7', name='LPBalances')\n__SwapFeePct = Variable(contract='con_dexcon7', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stk7', 'con_stk8']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_dexcon7')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n __balances_of_token_a = ForeignHash(foreign_contract=token_contract_a,\n foreign_name='balances', contract='con_dexcon7', name=\n 'balances_of_token_a')\n __balances_of_token_b = ForeignHash(foreign_contract=token_contract_b,\n foreign_name='balances', contract='con_dexcon7', name=\n 'balances_of_token_b')\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert __balances_of_token_a[ctx.caller\n ] >= token_a_amount, 'Insufficient Funds for Token A'\n assert __balances_of_token_b[ctx.caller\n ] >= token_b_amount, 'Insufficient Funds for Token B'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token A not allowed'\n assert token_contract_b in __LiquidityPools['allowed_token_contracts'\n ], 'Token B not allowed'\n current_approval_a = __balances_of_token_a[ctx.caller, ctx.this]\n if current_approval_a < token_a_amount:\n importlib.import_module(token_contract_a).approve(amount=\n token_a_amount, to=ctx.this)\n current_approval_b = __balances_of_token_b[ctx.caller, ctx.this]\n if current_approval_b < token_b_amount:\n importlib.import_module(token_contract_b).approve(amount=\n token_b_amount, to=ctx.this)\n importlib.import_module(token_contract_a).transfer_from(amount=\n token_a_amount, to=ctx.this, main_account=ctx.caller)\n importlib.import_module(token_contract_b).transfer_from(amount=\n token_b_amount, to=ctx.this, main_account=ctx.caller)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_dexcon7')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n __balances_of_token_a = ForeignHash(foreign_contract=input_contract,\n foreign_name='balances', contract='con_dexcon7', name=\n 'balances_of_token_a')\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert __balances_of_token_a[ctx.caller\n ] >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n token_a = importlib.import_module(input_contract)\n token_b = importlib.import_module(output_contract)\n token_a.transfer_from(amount=input_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer(to=ctx.caller, amount=output_amount)\n\n\n@__export('con_dexcon7')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_dexcon7')\ndef change_allowed_token_contracts(tokens: list):\n assert ctx.caller == __LiquidityPools['owner'\n ], 'Only the owner can change the allowed token contracts'\n __LiquidityPools['allowed_token_contracts'] = tokens\n" + }, + { + "key": "con_dexcon7.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon7.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 8, + 18, + 39, + 56, + 0 + ] + } + }, + { + "key": "con_dexcon8.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stk7", + "con_stk8" + ] + }, + { + "key": "con_dexcon8.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon8.LiquidityPools:token_a", + "value": 0 + }, + { + "key": "con_dexcon8.LiquidityPools:token_b", + "value": 0 + }, + { + "key": "con_dexcon8.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_dexcon8.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_dexcon8', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_dexcon8', name='LPBalances')\n__SwapFeePct = Variable(contract='con_dexcon8', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stk7', 'con_stk8']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_dexcon8')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n __balances_of_token_a = ForeignHash(foreign_contract=token_contract_a,\n foreign_name='balances', contract='con_dexcon8', name=\n 'balances_of_token_a')\n __balances_of_token_b = ForeignHash(foreign_contract=token_contract_b,\n foreign_name='balances', contract='con_dexcon8', name=\n 'balances_of_token_b')\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert __balances_of_token_a[ctx.caller\n ] >= token_a_amount, 'Insufficient Funds for Token A'\n assert __balances_of_token_b[ctx.caller\n ] >= token_b_amount, 'Insufficient Funds for Token B'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token A not allowed'\n assert token_contract_b in __LiquidityPools['allowed_token_contracts'\n ], 'Token B not allowed'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n assert token_a_reserve is not None and isinstance(token_a_reserve, (int,\n float)), 'Token A reserve must be a valid number.'\n assert token_b_reserve is not None and isinstance(token_b_reserve, (int,\n float)), 'Token B reserve must be a valid number.'\n current_approval_a = __balances_of_token_a[ctx.caller, ctx.this]\n if current_approval_a < token_a_amount:\n importlib.import_module(token_contract_a).approve(amount=\n token_a_amount, to=ctx.this)\n current_approval_b = __balances_of_token_b[ctx.caller, ctx.this]\n if current_approval_b < token_b_amount:\n importlib.import_module(token_contract_b).approve(amount=\n token_b_amount, to=ctx.this)\n importlib.import_module(token_contract_a).transfer_from(amount=\n token_a_amount, to=ctx.this, main_account=ctx.caller)\n importlib.import_module(token_contract_b).transfer_from(amount=\n token_b_amount, to=ctx.this, main_account=ctx.caller)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_dexcon8')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n __balances_of_token_a = ForeignHash(foreign_contract=input_contract,\n foreign_name='balances', contract='con_dexcon8', name=\n 'balances_of_token_a')\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert __balances_of_token_a[ctx.caller\n ] >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n token_a = importlib.import_module(input_contract)\n token_b = importlib.import_module(output_contract)\n token_a.transfer_from(amount=input_amount, to=ctx.this, main_account=\n ctx.caller)\n token_b.transfer(to=ctx.caller, amount=output_amount)\n\n\n@__export('con_dexcon8')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_dexcon8')\ndef change_allowed_token_contracts(tokens: list):\n assert ctx.caller == __LiquidityPools['owner'\n ], 'Only the owner can change the allowed token contracts'\n __LiquidityPools['allowed_token_contracts'] = tokens\n" + }, + { + "key": "con_dexcon8.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_dexcon8.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 8, + 19, + 1, + 14, + 0 + ] + } + }, + { + "key": "con_dextest_001.__code__", + "value": "MINIMUM_LIQUIDITY = decimal('1e-08')\nMAX_ROUTE = 8\n__toks_to_pair = Hash(default_value=False, contract='con_dextest_001', name\n ='toks_to_pair')\n__pairs = Hash(default_value=0, contract='con_dextest_001', name='pairs')\n__pairs_num = Variable(contract='con_dextest_001', name='pairs_num')\n__feeTo = Variable(contract='con_dextest_001', name='feeTo')\n__owner = Variable(contract='con_dextest_001', name='owner')\ntoken_interface = [importlib.Func('transfer_from', args=('amount', 'to',\n 'main_account')), importlib.Func('transfer', args=('amount', 'to')),\n importlib.Var('balances', Hash)]\n\n\ndef ____():\n __pairs_num.set(0)\n __owner.set(ctx.signer)\n __feeTo.set(ctx.signer)\n\n\n@__export('con_dextest_001')\ndef pairFor(tokenA: str, tokenB: str):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n return __toks_to_pair[tokenA, tokenB]\n\n\n@__export('con_dextest_001')\ndef liqTransfer(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', ctx.caller\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', ctx.caller] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\n@__export('con_dextest_001')\ndef liqApprove(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __pairs[pair, 'balances', ctx.caller, to] += amount\n\n\n@__export('con_dextest_001')\ndef liqTransfer_from(pair: int, amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __pairs[pair, 'balances', main_account, ctx.caller], amount)\n assert __pairs[pair, 'balances', main_account\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', main_account, ctx.caller] -= amount\n __pairs[pair, 'balances', main_account] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\ndef __safeTransferFrom(token: str, src: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface\n ), 'Bad token interface!'\n t.transfer_from(value, to, src)\n\n\ndef __safeTransferFromToPair(pair: int, token: str, src: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface\n ), 'Bad token interface!'\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dextest_001', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n t.transfer_from(value, ctx.this, src)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= prev_balance, 'Negative income!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n return True\n elif token == __pairs[pair, 'token1']:\n t.transfer_from(value, ctx.this, src)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= prev_balance, 'Negative income!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n return True\n assert False, 'Wrong token!'\n\n\ndef __safeTransferFromPair(pair: int, token: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface\n ), 'Bad token interface!'\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dextest_001', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n assert __pairs[pair, 'balance0'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n assert __pairs[pair, 'balance0'] >= 0, 'Negative pair balance0!'\n return True\n elif token == __pairs[pair, 'token1']:\n assert __pairs[pair, 'balance1'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n assert __pairs[pair, 'balance1'] >= 0, 'Negative pair balance1!'\n return True\n assert False, 'Wrong token!'\n return False\n\n\ndef __quote(amountA: float, reserveA: float, reserveB: float):\n assert amountA > 0, '__DEXNAME: INSUFFICIENT_AMOUNT'\n assert reserveA > 0 and reserveB > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n return amountA * reserveB / reserveA\n\n\ndef __createPair(tokenA: str, tokenB: str):\n assert tokenA != tokenB, '__DEXNAME: IDENTICAL_ADDRESSES'\n assert __toks_to_pair[tokenA, tokenB] == False, '__DEXNAME: PAIR_EXISTS'\n p_num = __pairs_num.get() + 1\n __pairs_num.set(p_num)\n __pairs[p_num, 'token0'] = tokenA\n __pairs[p_num, 'token1'] = tokenB\n __pairs[p_num, 'reserve0'] = 0\n __pairs[p_num, 'reserve1'] = 0\n __pairs[p_num, 'balance0'] = 0\n __pairs[p_num, 'balance1'] = 0\n __pairs[p_num, 'blockTimestampLast'] = now\n __pairs[p_num, 'totalSupply'] = 0\n __pairs[p_num, 'kLast'] = 0\n __pairs[p_num, 'creationTime'] = now\n __toks_to_pair[tokenA, tokenB] = p_num\n return p_num\n\n\ndef __getReserves(pair: int):\n return __pairs[pair, 'reserve0'], __pairs[pair, 'reserve1'], __pairs[\n pair, 'blockTimestampLast']\n\n\ndef __internal_update(pair: int, balance0: float, balance1: float):\n __pairs[pair, 'reserve0'] = balance0\n __pairs[pair, 'reserve1'] = balance1\n __pairs[pair, 'blockTimestampLast'] = now\n\n\ndef __internal_mintFee(pair: int, reserve0: float, reserve1: float):\n feeto = __feeTo.get()\n feeOn = feeto != False\n kLast = __pairs[pair, 'kLast']\n if feeOn:\n if kLast != 0:\n rootK = (reserve0 * reserve1) ** decimal('0.5')\n rootKLast = kLast ** decimal('0.5')\n if rootK > rootKLast:\n numerator = __pairs[pair, 'totalSupply'] * (rootK - rootKLast)\n denominator = rootK * 5 + rootKLast\n liquidity = numerator / denominator\n if liquidity > 0:\n __mint(pair, feeto.get(), liquidity)\n elif kLast != 0:\n __pairs[pair, 'kLast'] = 0\n return feeOn\n\n\ndef __internal_burn(pair: int, src: str, value: float):\n __pairs[pair, 'totalSupply'] -= value\n assert __pairs[pair, 'totalSupply'] >= 0, 'Negative supply!'\n __pairs[pair, 'balances', src] -= value\n assert __pairs[pair, 'balances', src] >= 0, 'Negative balance!'\n\n\ndef __burn(pair: int, to: str):\n reserve0, reserve1, ignore = __getReserves(pair)\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n liquidity = __pairs[pair, 'balances', ctx.this]\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n amount0 = liquidity * balance0 / totalSupply\n amount1 = liquidity * balance1 / totalSupply\n assert amount0 > 0 and amount1 > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY_BURNED'\n __internal_burn(pair, ctx.this, liquidity)\n __safeTransferFromPair(pair, token0, to, amount0)\n __safeTransferFromPair(pair, token1, to, amount1)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n __internal_update(pair, balance0, balance1)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return amount0, amount1\n\n\ndef __internal_mint(pair: int, to: str, value: float):\n __pairs[pair, 'totalSupply'] += value\n __pairs[pair, 'balances', to] += value\n\n\ndef __mint(pair: int, to: str):\n reserve0, reserve1, ignore = __getReserves(pair)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0 = balance0 - reserve0\n amount1 = balance1 - reserve1\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n liquidity = 0\n if totalSupply == 0:\n liquidity = (amount0 * amount1) ** decimal('0.5') - MINIMUM_LIQUIDITY\n __internal_mint(pair, 'DEAD', MINIMUM_LIQUIDITY)\n else:\n liquidity = min(amount0 * totalSupply / reserve0, amount1 *\n totalSupply / reserve1)\n assert liquidity > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED'\n __internal_mint(pair, to, liquidity)\n __internal_update(pair, balance0, balance1)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return liquidity\n\n\ndef __internal_addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float):\n desired_pair = __toks_to_pair[tokenA, tokenB]\n if desired_pair == False:\n desired_pair = __createPair(tokenA, tokenB)\n reserveA, reserveB, ignore = __getReserves(desired_pair)\n if reserveA == 0 and reserveB == 0:\n return amountADesired, amountBDesired\n else:\n amountBOptimal = __quote(amountADesired, reserveA, reserveB)\n if amountBOptimal <= amountBDesired:\n assert amountBOptimal >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n return amountADesired, amountBOptimal\n else:\n amountAOptimal = __quote(amountBDesired, reserveB, reserveA)\n assert amountAOptimal <= amountADesired\n assert amountAOptimal >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n return amountAOptimal, amountBDesired\n\n\n@__export('con_dextest_001')\ndef addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float, to: str,\n deadline: int):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n amountA, amountB = __internal_addLiquidity(tokenA, tokenB,\n amountADesired, amountBDesired, amountAMin, amountBMin)\n pair = __toks_to_pair[tokenA, tokenB]\n __safeTransferFromToPair(pair, tokenA, ctx.caller, amountA)\n __safeTransferFromToPair(pair, tokenB, ctx.caller, amountB)\n liquidity = __mint(pair, to)\n return amountA, amountB, liquidity\n\n\n@__export('con_dextest_001')\ndef removeLiquidity(tokenA: str, tokenB: str, liquidity: float, amountAMin:\n float, amountBMin: float, to: str, deadline: int):\n desired_pair = __toks_to_pair[tokenA, tokenB]\n assert desired_pair != False, \"Pair doesn't exist!\"\n liqTransfer(desired_pair, liquidity, ctx.this)\n amountA, amountB = __burn(desired_pair, to)\n assert amountA >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n assert amountB >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n return amountA, amountB\n\n\ndef __getAmountOut(amountIn: float, reserveIn: float, reserveOut: float):\n assert amountIn > 0, '__DEXNAME: INSUFFICIENT_INPUT_AMOUNT'\n assert reserveIn > 0 and reserveOut > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n amountInWithFee = amountIn * 997\n numerator = amountInWithFee * reserveOut\n denominator = reserveIn * 1000 + amountInWithFee\n return numerator / denominator\n\n\ndef __swap(pair: int, amount0Out: float, amount1Out: float, to: str):\n assert amount0Out > 0 or amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT'\n reserve0, reserve1, ignore = __getReserves(pair)\n assert amount0Out < reserve0 and amount1Out < reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY'\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n assert to != token0 and to != token1, 'UniswapV2: INVALID_TO'\n if amount0Out > 0:\n __safeTransferFromPair(pair, token0, to, amount0Out)\n if amount1Out > 0:\n __safeTransferFromPair(pair, token1, to, amount1Out)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0In = balance0 - (reserve0 - amount0Out\n ) if balance0 > reserve0 - amount0Out else 0\n amount1In = balance1 - (reserve1 - amount1Out\n ) if balance1 > reserve1 - amount1Out else 0\n assert amount0In > 0 or amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT'\n balance0Adjusted = balance0 * 1000 - amount0In * 3\n balance1Adjusted = balance1 * 1000 - amount1In * 3\n assert balance0Adjusted * balance1Adjusted >= reserve0 * reserve1 * 1000 ** 2 or abs(\n balance0Adjusted * balance1Adjusted - reserve0 * reserve1 * 1000 ** 2\n ) < decimal('1e-16'), 'UniswapV2: K'\n __internal_update(pair, balance0, balance1)\n\n\n@__export('con_dextest_001')\ndef swapExactTokensForTokens(amountIn: float, amountOutMin: float, pair:\n int, src: str, to: str, deadline: int):\n reserve0, reserve1, ignore = __getReserves(pair)\n order = src == __pairs[pair, 'token0']\n if not order:\n reserve0, reserve1 = reserve1, reserve0\n amount = __getAmountOut(amountIn, reserve0, reserve1)\n assert amount >= amountOutMin, '__DEXNAMEe: INSUFFICIENT_OUTPUT_AMOUNT'\n __safeTransferFromToPair(pair, src, ctx.caller, amountIn)\n out0 = 0 if order else amount\n out1 = amount if order else 0\n return __swap(pair, out0, out1, to)\n" + }, + { + "key": "con_dextest_001.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_001.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 11, + 6, + 52, + 30, + 0 + ] + } + }, + { + "key": "con_dextest_001.feeTo", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_001.owner", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_001.pairs:1:balance0", + "value": { + "__fixed__": "90933891060.289169773574611257615713376376" + } + }, + { + "key": "con_dextest_001.pairs:1:balance1", + "value": { + "__fixed__": "1.1" + } + }, + { + "key": "con_dextest_001.pairs:1:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "316227.766015246794369801211930197176" + } + }, + { + "key": "con_dextest_001.pairs:1:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dextest_001.pairs:1:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 10, + 13, + 19, + 24, + 11, + 0 + ] + } + }, + { + "key": "con_dextest_001.pairs:1:creationTime", + "value": { + "__time__": [ + 2024, + 10, + 13, + 19, + 24, + 0, + 0 + ] + } + }, + { + "key": "con_dextest_001.pairs:1:kLast", + "value": 99999999999 + }, + { + "key": "con_dextest_001.pairs:1:reserve0", + "value": { + "__fixed__": "90933891060.289169773574611257615713376376" + } + }, + { + "key": "con_dextest_001.pairs:1:reserve1", + "value": { + "__fixed__": "1.1" + } + }, + { + "key": "con_dextest_001.pairs:1:token0", + "value": "con_testtoken" + }, + { + "key": "con_dextest_001.pairs:1:token1", + "value": "currency" + }, + { + "key": "con_dextest_001.pairs:1:totalSupply", + "value": { + "__fixed__": "316227.766015256794369801211930197176" + } + }, + { + "key": "con_dextest_001.pairs_num", + "value": 1 + }, + { + "key": "con_dextest_001.toks_to_pair:con_testtoken:currency", + "value": 1 + }, + { + "key": "con_dextest_002.__code__", + "value": "MINIMUM_LIQUIDITY = decimal('1e-08')\nMAX_ROUTE = 8\n__toks_to_pair = Hash(default_value=False, contract='con_dextest_002', name\n ='toks_to_pair')\n__pairs = Hash(default_value=0, contract='con_dextest_002', name='pairs')\n__pairs_num = Variable(contract='con_dextest_002', name='pairs_num')\n__feeTo = Variable(contract='con_dextest_002', name='feeTo')\n__owner = Variable(contract='con_dextest_002', name='owner')\ntoken_interface = [importlib.Func('transfer_from', args=('amount', 'to',\n 'main_account')), importlib.Func('transfer', args=('amount', 'to')),\n importlib.Var('balances', Hash)]\n\n\ndef ____():\n __pairs_num.set(0)\n __owner.set(ctx.signer)\n __feeTo.set(ctx.signer)\n\n\n@__export('con_dextest_002')\ndef pairFor(tokenA: str, tokenB: str):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n return __toks_to_pair[tokenA, tokenB]\n\n\n@__export('con_dextest_002')\ndef liqTransfer(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', ctx.caller\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', ctx.caller] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\n@__export('con_dextest_002')\ndef liqApprove(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __pairs[pair, 'balances', ctx.caller, to] += amount\n\n\n@__export('con_dextest_002')\ndef liqTransfer_from(pair: int, amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __pairs[pair, 'balances', main_account, ctx.caller], amount)\n assert __pairs[pair, 'balances', main_account\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', main_account, ctx.caller] -= amount\n __pairs[pair, 'balances', main_account] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\ndef __safeTransferFrom(token: str, src: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n t.transfer_from(value, to, src)\n\n\ndef __safeTransferFromToPair(pair: int, token: str, src: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dextest_002', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n t.transfer_from(value, ctx.this, src)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= prev_balance, 'Negative income!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n return True\n elif token == __pairs[pair, 'token1']:\n t.transfer_from(value, ctx.this, src)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= prev_balance, 'Negative income!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n return True\n assert False, 'Wrong token!'\n\n\ndef __safeTransferFromPair(pair: int, token: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dextest_002', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n assert __pairs[pair, 'balance0'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n assert __pairs[pair, 'balance0'] >= 0, 'Negative pair balance0!'\n return True\n elif token == __pairs[pair, 'token1']:\n assert __pairs[pair, 'balance1'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n assert __pairs[pair, 'balance1'] >= 0, 'Negative pair balance1!'\n return True\n assert False, 'Wrong token!'\n return False\n\n\ndef __quote(amountA: float, reserveA: float, reserveB: float):\n assert amountA > 0, '__DEXNAME: INSUFFICIENT_AMOUNT'\n assert reserveA > 0 and reserveB > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n return amountA * reserveB / reserveA\n\n\ndef __createPair(tokenA: str, tokenB: str):\n assert tokenA != tokenB, '__DEXNAME: IDENTICAL_ADDRESSES'\n assert __toks_to_pair[tokenA, tokenB] == False, '__DEXNAME: PAIR_EXISTS'\n p_num = __pairs_num.get() + 1\n __pairs_num.set(p_num)\n __pairs[p_num, 'token0'] = tokenA\n __pairs[p_num, 'token1'] = tokenB\n __pairs[p_num, 'reserve0'] = 0\n __pairs[p_num, 'reserve1'] = 0\n __pairs[p_num, 'balance0'] = 0\n __pairs[p_num, 'balance1'] = 0\n __pairs[p_num, 'blockTimestampLast'] = now\n __pairs[p_num, 'totalSupply'] = 0\n __pairs[p_num, 'kLast'] = 0\n __pairs[p_num, 'creationTime'] = now\n __toks_to_pair[tokenA, tokenB] = p_num\n return p_num\n\n\ndef __getReserves(pair: int):\n return __pairs[pair, 'reserve0'], __pairs[pair, 'reserve1'], __pairs[\n pair, 'blockTimestampLast']\n\n\ndef __internal_update(pair: int, balance0: float, balance1: float):\n __pairs[pair, 'reserve0'] = balance0\n __pairs[pair, 'reserve1'] = balance1\n __pairs[pair, 'blockTimestampLast'] = now\n\n\ndef __internal_mintFee(pair: int, reserve0: float, reserve1: float):\n feeOn = __feeTo != False\n kLast = __pairs[pair, 'kLast']\n if feeOn:\n if kLast != 0:\n rootK = (reserve0 * reserve1) ** decimal('0.5')\n rootKLast = kLast ** decimal('0.5')\n if rootK > rootKLast:\n numerator = __pairs[pair, 'totalSupply'] * (rootK - rootKLast)\n denominator = rootK * 5 + rootKLast\n liquidity = numerator / denominator\n if liquidity > 0:\n __mint(pair, __feeTo.get(), liquidity)\n elif kLast != 0:\n __pairs[pair, 'kLast'] = 0\n return feeOn\n\n\ndef __internal_burn(pair: int, src: str, value: float):\n __pairs[pair, 'totalSupply'] -= value\n assert __pairs[pair, 'totalSupply'] >= 0, 'Negative supply!'\n __pairs[pair, 'balances', src] -= value\n assert __pairs[pair, 'balances', src] >= 0, 'Negative balance!'\n\n\ndef __burn(pair: int, to: str):\n reserve0, reserve1, ignore = __getReserves(pair)\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n liquidity = __pairs[pair, 'balances', ctx.this]\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n amount0 = liquidity * balance0 / totalSupply\n amount1 = liquidity * balance1 / totalSupply\n assert amount0 > 0 and amount1 > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY_BURNED'\n __internal_burn(pair, ctx.this, liquidity)\n __safeTransferFromPair(pair, token0, to, amount0)\n __safeTransferFromPair(pair, token1, to, amount1)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n __internal_update(pair, balance0, balance1)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return amount0, amount1\n\n\ndef __internal_mint(pair: int, to: str, value: float):\n __pairs[pair, 'totalSupply'] += value\n __pairs[pair, 'balances', to] += value\n\n\ndef __mint(pair: int, to: str):\n reserve0, reserve1, ignore = __getReserves(pair)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0 = balance0 - reserve0\n amount1 = balance1 - reserve1\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n liquidity = 0\n if totalSupply == 0:\n liquidity = (amount0 * amount1) ** decimal('0.5') - MINIMUM_LIQUIDITY\n __internal_mint(pair, 'DEAD', MINIMUM_LIQUIDITY)\n else:\n liquidity = min(amount0 * totalSupply / reserve0, amount1 *\n totalSupply / reserve1)\n assert liquidity > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED'\n __internal_mint(pair, to, liquidity)\n __internal_update(pair, balance0, balance1)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return liquidity\n\n\ndef __internal_addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float):\n desired_pair = __toks_to_pair[tokenA, tokenB]\n if desired_pair == False:\n desired_pair = __createPair(tokenA, tokenB)\n reserveA, reserveB, ignore = __getReserves(desired_pair)\n if reserveA == 0 and reserveB == 0:\n return amountADesired, amountBDesired\n else:\n amountBOptimal = __quote(amountADesired, reserveA, reserveB)\n if amountBOptimal <= amountBDesired:\n assert amountBOptimal >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n return amountADesired, amountBOptimal\n else:\n amountAOptimal = __quote(amountBDesired, reserveB, reserveA)\n assert amountAOptimal <= amountADesired\n assert amountAOptimal >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n return amountAOptimal, amountBDesired\n\n\n@__export('con_dextest_002')\ndef addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float, to: str,\n deadline: int):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n amountA, amountB = __internal_addLiquidity(tokenA, tokenB,\n amountADesired, amountBDesired, amountAMin, amountBMin)\n pair = __toks_to_pair[tokenA, tokenB]\n __safeTransferFromToPair(pair, tokenA, ctx.caller, amountA)\n __safeTransferFromToPair(pair, tokenB, ctx.caller, amountB)\n liquidity = __mint(pair, to)\n return amountA, amountB, liquidity\n\n\n@__export('con_dextest_002')\ndef removeLiquidity(tokenA: str, tokenB: str, liquidity: float, amountAMin:\n float, amountBMin: float, to: str, deadline: int):\n desired_pair = __toks_to_pair[tokenA, tokenB]\n assert desired_pair != False, \"Pair doesn't exist!\"\n liqTransfer(desired_pair, liquidity, ctx.this)\n amountA, amountB = __burn(desired_pair, to)\n assert amountA >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n assert amountB >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n return amountA, amountB\n\n\ndef __getAmountOut(amountIn: float, reserveIn: float, reserveOut: float):\n assert amountIn > 0, '__DEXNAME: INSUFFICIENT_INPUT_AMOUNT'\n assert reserveIn > 0 and reserveOut > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n amountInWithFee = amountIn * 997\n numerator = amountInWithFee * reserveOut\n denominator = reserveIn * 1000 + amountInWithFee\n return numerator / denominator\n\n\ndef __swap(pair: int, amount0Out: float, amount1Out: float, to: str):\n assert amount0Out > 0 or amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT'\n reserve0, reserve1, ignore = __getReserves(pair)\n assert amount0Out < reserve0 and amount1Out < reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY'\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n assert to != token0 and to != token1, 'UniswapV2: INVALID_TO'\n if amount0Out > 0:\n __safeTransferFromPair(pair, token0, to, amount0Out)\n if amount1Out > 0:\n __safeTransferFromPair(pair, token1, to, amount1Out)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0In = balance0 - (reserve0 - amount0Out\n ) if balance0 > reserve0 - amount0Out else 0\n amount1In = balance1 - (reserve1 - amount1Out\n ) if balance1 > reserve1 - amount1Out else 0\n assert amount0In > 0 or amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT'\n balance0Adjusted = balance0 * 1000 - amount0In * 3\n balance1Adjusted = balance1 * 1000 - amount1In * 3\n return (amount0In * 3, amount0Out * 3, amount0Out, amount1Out, reserve0,\n reserve1, balance0, balance1, balance0Adjusted, balance1Adjusted, \n balance0Adjusted * balance1Adjusted, reserve0 * reserve1)\n assert balance0Adjusted * balance1Adjusted >= reserve0 * reserve1 * 1000 ** 2 or abs(\n balance0Adjusted * balance1Adjusted - reserve0 * reserve1 * 1000 ** 2\n ) < decimal('1e-16'), 'UniswapV2: K'\n __internal_update(pair, balance0, balance1)\n\n\n@__export('con_dextest_002')\ndef swapExactTokensForTokens(amountIn: float, amountOutMin: float, pair:\n int, src: str, to: str, deadline: int):\n reserve0, reserve1, ignore = __getReserves(pair)\n order = src == __pairs[pair, 'token0']\n if not order:\n reserve0, reserve1 = reserve1, reserve0\n amount = __getAmountOut(amountIn, reserve0, reserve1)\n assert amount >= amountOutMin, '__DEXNAMEe: INSUFFICIENT_OUTPUT_AMOUNT'\n __safeTransferFromToPair(pair, src, ctx.caller, amountIn)\n out0 = 0 if order else amount\n out1 = amount if order else 0\n return __swap(pair, out0, out1, to)\n" + }, + { + "key": "con_dextest_002.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_002.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 13, + 19, + 40, + 21, + 0 + ] + } + }, + { + "key": "con_dextest_002.feeTo", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_002.owner", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_002.pairs:1:balance0", + "value": { + "__fixed__": "9093389106118.941529508047649358916068018551" + } + }, + { + "key": "con_dextest_002.pairs:1:balance1", + "value": { + "__fixed__": "1.1" + } + }, + { + "key": "con_dextest_002.pairs:1:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "3162277.660168211218115885121513271513" + } + }, + { + "key": "con_dextest_002.pairs:1:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dextest_002.pairs:1:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 10, + 13, + 19, + 45, + 21, + 0 + ] + } + }, + { + "key": "con_dextest_002.pairs:1:creationTime", + "value": { + "__time__": [ + 2024, + 10, + 13, + 19, + 45, + 21, + 0 + ] + } + }, + { + "key": "con_dextest_002.pairs:1:kLast", + "value": 9999999999999 + }, + { + "key": "con_dextest_002.pairs:1:reserve0", + "value": 9999999999999 + }, + { + "key": "con_dextest_002.pairs:1:reserve1", + "value": 1 + }, + { + "key": "con_dextest_002.pairs:1:token0", + "value": "con_testtoken" + }, + { + "key": "con_dextest_002.pairs:1:token1", + "value": "currency" + }, + { + "key": "con_dextest_002.pairs:1:totalSupply", + "value": { + "__fixed__": "3162277.660168221218115885121513271513" + } + }, + { + "key": "con_dextest_002.pairs_num", + "value": 1 + }, + { + "key": "con_dextest_002.toks_to_pair:con_testtoken:currency", + "value": 1 + }, + { + "key": "con_dextest_003.__code__", + "value": "MINIMUM_LIQUIDITY = decimal('1e-08')\nMAX_ROUTE = 8\n__toks_to_pair = Hash(default_value=False, contract='con_dextest_003', name\n ='toks_to_pair')\n__pairs = Hash(default_value=0, contract='con_dextest_003', name='pairs')\n__pairs_num = Variable(contract='con_dextest_003', name='pairs_num')\n__feeTo = Variable(contract='con_dextest_003', name='feeTo')\n__owner = Variable(contract='con_dextest_003', name='owner')\ntoken_interface = [importlib.Func('transfer_from', args=('amount', 'to',\n 'main_account')), importlib.Func('transfer', args=('amount', 'to')),\n importlib.Var('balances', Hash)]\n\n\ndef ____():\n __pairs_num.set(0)\n __owner.set(ctx.signer)\n __feeTo.set(ctx.signer)\n\n\n@__export('con_dextest_003')\ndef pairFor(tokenA: str, tokenB: str):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n return __toks_to_pair[tokenA, tokenB]\n\n\n@__export('con_dextest_003')\ndef liqTransfer(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', ctx.caller\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', ctx.caller] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\n@__export('con_dextest_003')\ndef liqApprove(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __pairs[pair, 'balances', ctx.caller, to] += amount\n\n\n@__export('con_dextest_003')\ndef liqTransfer_from(pair: int, amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __pairs[pair, 'balances', main_account, ctx.caller], amount)\n assert __pairs[pair, 'balances', main_account\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', main_account, ctx.caller] -= amount\n __pairs[pair, 'balances', main_account] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\ndef __safeTransferFrom(token: str, src: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n t.transfer_from(value, to, src)\n\n\ndef __safeTransferFromToPair(pair: int, token: str, src: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dextest_003', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n t.transfer_from(value, ctx.this, src)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= prev_balance, 'Negative income!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n return True\n elif token == __pairs[pair, 'token1']:\n t.transfer_from(value, ctx.this, src)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= prev_balance, 'Negative income!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n return True\n assert False, 'Wrong token!'\n\n\ndef __safeTransferFromPair(pair: int, token: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dextest_003', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n assert __pairs[pair, 'balance0'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n assert __pairs[pair, 'balance0'] >= 0, 'Negative pair balance0!'\n return True\n elif token == __pairs[pair, 'token1']:\n assert __pairs[pair, 'balance1'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n assert __pairs[pair, 'balance1'] >= 0, 'Negative pair balance1!'\n return True\n assert False, 'Wrong token!'\n return False\n\n\ndef __quote(amountA: float, reserveA: float, reserveB: float):\n assert amountA > 0, '__DEXNAME: INSUFFICIENT_AMOUNT'\n assert reserveA > 0 and reserveB > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n return amountA * reserveB / reserveA\n\n\ndef __createPair(tokenA: str, tokenB: str):\n assert tokenA != tokenB, '__DEXNAME: IDENTICAL_ADDRESSES'\n assert __toks_to_pair[tokenA, tokenB] == False, '__DEXNAME: PAIR_EXISTS'\n p_num = __pairs_num.get() + 1\n __pairs_num.set(p_num)\n __pairs[p_num, 'token0'] = tokenA\n __pairs[p_num, 'token1'] = tokenB\n __pairs[p_num, 'reserve0'] = 0\n __pairs[p_num, 'reserve1'] = 0\n __pairs[p_num, 'balance0'] = 0\n __pairs[p_num, 'balance1'] = 0\n __pairs[p_num, 'blockTimestampLast'] = now\n __pairs[p_num, 'totalSupply'] = 0\n __pairs[p_num, 'kLast'] = 0\n __pairs[p_num, 'creationTime'] = now\n __toks_to_pair[tokenA, tokenB] = p_num\n return p_num\n\n\ndef __getReserves(pair: int):\n return __pairs[pair, 'reserve0'], __pairs[pair, 'reserve1'], __pairs[\n pair, 'blockTimestampLast']\n\n\ndef __internal_update(pair: int, balance0: float, balance1: float):\n __pairs[pair, 'reserve0'] = balance0\n __pairs[pair, 'reserve1'] = balance1\n __pairs[pair, 'blockTimestampLast'] = now\n\n\ndef __internal_mintFee(pair: int, reserve0: float, reserve1: float):\n feeOn = __feeTo != False\n kLast = __pairs[pair, 'kLast']\n if feeOn:\n if kLast != 0:\n rootK = (reserve0 * reserve1) ** decimal('0.5')\n rootKLast = kLast ** decimal('0.5')\n if rootK > rootKLast:\n numerator = __pairs[pair, 'totalSupply'] * (rootK - rootKLast)\n denominator = rootK * 5 + rootKLast\n liquidity = numerator / denominator\n if liquidity > 0:\n __mint(pair, __feeTo.get(), liquidity)\n elif kLast != 0:\n __pairs[pair, 'kLast'] = 0\n return feeOn\n\n\ndef __internal_burn(pair: int, src: str, value: float):\n __pairs[pair, 'totalSupply'] -= value\n assert __pairs[pair, 'totalSupply'] >= 0, 'Negative supply!'\n __pairs[pair, 'balances', src] -= value\n assert __pairs[pair, 'balances', src] >= 0, 'Negative balance!'\n\n\ndef __burn(pair: int, to: str):\n reserve0, reserve1, ignore = __getReserves(pair)\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n liquidity = __pairs[pair, 'balances', ctx.this]\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n amount0 = liquidity * balance0 / totalSupply\n amount1 = liquidity * balance1 / totalSupply\n assert amount0 > 0 and amount1 > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY_BURNED'\n __internal_burn(pair, ctx.this, liquidity)\n __safeTransferFromPair(pair, token0, to, amount0)\n __safeTransferFromPair(pair, token1, to, amount1)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n __internal_update(pair, balance0, balance1)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return amount0, amount1\n\n\ndef __internal_mint(pair: int, to: str, value: float):\n __pairs[pair, 'totalSupply'] += value\n __pairs[pair, 'balances', to] += value\n\n\ndef __mint(pair: int, to: str):\n reserve0, reserve1, ignore = __getReserves(pair)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0 = balance0 - reserve0\n amount1 = balance1 - reserve1\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n liquidity = 0\n if totalSupply == 0:\n liquidity = (amount0 * amount1) ** decimal('0.5') - MINIMUM_LIQUIDITY\n __internal_mint(pair, 'DEAD', MINIMUM_LIQUIDITY)\n else:\n liquidity = min(amount0 * totalSupply / reserve0, amount1 *\n totalSupply / reserve1)\n assert liquidity > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED'\n __internal_mint(pair, to, liquidity)\n __internal_update(pair, balance0, balance1)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return liquidity\n\n\ndef __internal_addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float):\n desired_pair = __toks_to_pair[tokenA, tokenB]\n if desired_pair == False:\n desired_pair = __createPair(tokenA, tokenB)\n reserveA, reserveB, ignore = __getReserves(desired_pair)\n if reserveA == 0 and reserveB == 0:\n return amountADesired, amountBDesired\n else:\n amountBOptimal = __quote(amountADesired, reserveA, reserveB)\n if amountBOptimal <= amountBDesired:\n assert amountBOptimal >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n return amountADesired, amountBOptimal\n else:\n amountAOptimal = __quote(amountBDesired, reserveB, reserveA)\n assert amountAOptimal <= amountADesired\n assert amountAOptimal >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n return amountAOptimal, amountBDesired\n\n\n@__export('con_dextest_003')\ndef addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float, to: str,\n deadline: int):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n amountA, amountB = __internal_addLiquidity(tokenA, tokenB,\n amountADesired, amountBDesired, amountAMin, amountBMin)\n pair = __toks_to_pair[tokenA, tokenB]\n __safeTransferFromToPair(pair, tokenA, ctx.caller, amountA)\n __safeTransferFromToPair(pair, tokenB, ctx.caller, amountB)\n liquidity = __mint(pair, to)\n return amountA, amountB, liquidity\n\n\n@__export('con_dextest_003')\ndef removeLiquidity(tokenA: str, tokenB: str, liquidity: float, amountAMin:\n float, amountBMin: float, to: str, deadline: int):\n desired_pair = __toks_to_pair[tokenA, tokenB]\n assert desired_pair != False, \"Pair doesn't exist!\"\n liqTransfer(desired_pair, liquidity, ctx.this)\n amountA, amountB = __burn(desired_pair, to)\n assert amountA >= amountAMin, f'__DEXNAME: INSUFFICIENT_A_AMOUNT {amountA}'\n assert amountB >= amountBMin, f'__DEXNAME: INSUFFICIENT_B_AMOUNT {amountB}'\n return amountA, amountB\n\n\ndef __getAmountOut(amountIn: float, reserveIn: float, reserveOut: float):\n assert amountIn > 0, '__DEXNAME: INSUFFICIENT_INPUT_AMOUNT'\n assert reserveIn > 0 and reserveOut > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n amountInWithFee = amountIn * 997\n numerator = amountInWithFee * reserveOut\n denominator = reserveIn * 1000 + amountInWithFee\n return numerator / denominator\n\n\ndef __swap(pair: int, amount0Out: float, amount1Out: float, to: str):\n assert amount0Out > 0 or amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT'\n reserve0, reserve1, ignore = __getReserves(pair)\n assert amount0Out < reserve0 and amount1Out < reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY'\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n assert to != token0 and to != token1, 'UniswapV2: INVALID_TO'\n if amount0Out > 0:\n __safeTransferFromPair(pair, token0, to, amount0Out)\n if amount1Out > 0:\n __safeTransferFromPair(pair, token1, to, amount1Out)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0In = balance0 - (reserve0 - amount0Out\n ) if balance0 > reserve0 - amount0Out else 0\n amount1In = balance1 - (reserve1 - amount1Out\n ) if balance1 > reserve1 - amount1Out else 0\n assert amount0In > 0 or amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT'\n balance0Adjusted = balance0 * 1000 - amount0In * 3\n balance1Adjusted = balance1 * 1000 - amount1In * 3\n return (amount0In * 3, amount0Out * 3, amount0Out, amount1Out, reserve0,\n reserve1, balance0, balance1, balance0Adjusted, balance1Adjusted, \n balance0Adjusted * balance1Adjusted, reserve0 * reserve1)\n assert balance0Adjusted * balance1Adjusted >= reserve0 * reserve1 * 1000 ** 2 or abs(\n balance0Adjusted * balance1Adjusted - reserve0 * reserve1 * 1000 ** 2\n ) < decimal('1e-16'), 'UniswapV2: K'\n __internal_update(pair, balance0, balance1)\n\n\n@__export('con_dextest_003')\ndef swapExactTokensForTokens(amountIn: float, amountOutMin: float, pair:\n int, src: str, to: str, deadline: int):\n reserve0, reserve1, ignore = __getReserves(pair)\n order = src == __pairs[pair, 'token0']\n if not order:\n reserve0, reserve1 = reserve1, reserve0\n amount = __getAmountOut(amountIn, reserve0, reserve1)\n assert amount >= amountOutMin, '__DEXNAMEe: INSUFFICIENT_OUTPUT_AMOUNT'\n __safeTransferFromToPair(pair, src, ctx.caller, amountIn)\n out0 = 0 if order else amount\n out1 = amount if order else 0\n return __swap(pair, out0, out1, to)\n" + }, + { + "key": "con_dextest_003.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_003.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 13, + 19, + 47, + 1, + 0 + ] + } + }, + { + "key": "con_dextest_003.feeTo", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_003.owner", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_003.pairs:1:balance0", + "value": { + "__fixed__": "109.579070046566934739187634467823" + } + }, + { + "key": "con_dextest_003.pairs:1:balance1", + "value": { + "__fixed__": "0.001000011496015569361148261145" + } + }, + { + "key": "con_dextest_003.pairs:1:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "0.330487201053987389668947217084" + } + }, + { + "key": "con_dextest_003.pairs:1:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dextest_003.pairs:1:balances:con_dextest_003", + "value": 0 + }, + { + "key": "con_dextest_003.pairs:1:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 10, + 14, + 19, + 42, + 3, + 0 + ] + } + }, + { + "key": "con_dextest_003.pairs:1:creationTime", + "value": { + "__time__": [ + 2024, + 10, + 13, + 19, + 52, + 3, + 0 + ] + } + }, + { + "key": "con_dextest_003.pairs:1:kLast", + "value": { + "__fixed__": "0.109251592559122565384297439076" + } + }, + { + "key": "con_dextest_003.pairs:1:reserve0", + "value": { + "__fixed__": "9503431.15838297780810322887888717735" + } + }, + { + "key": "con_dextest_003.pairs:1:reserve1", + "value": { + "__fixed__": "1.1496015569361148261145E-8" + } + }, + { + "key": "con_dextest_003.pairs:1:token0", + "value": "con_testtoken" + }, + { + "key": "con_dextest_003.pairs:1:token1", + "value": "currency" + }, + { + "key": "con_dextest_003.pairs:1:totalSupply", + "value": { + "__fixed__": "0.330487211053987389668947217084" + } + }, + { + "key": "con_dextest_003.pairs_num", + "value": 1 + }, + { + "key": "con_dextest_003.toks_to_pair:con_testtoken:currency", + "value": 1 + }, + { + "key": "con_dextest_004.__code__", + "value": "MINIMUM_LIQUIDITY = decimal('1e-08')\nMAX_ROUTE = 8\n__toks_to_pair = Hash(default_value=False, contract='con_dextest_004', name\n ='toks_to_pair')\n__pairs = Hash(default_value=0, contract='con_dextest_004', name='pairs')\n__pairs_num = Variable(contract='con_dextest_004', name='pairs_num')\n__feeTo = Variable(contract='con_dextest_004', name='feeTo')\n__owner = Variable(contract='con_dextest_004', name='owner')\ntoken_interface = [importlib.Func('transfer_from', args=('amount', 'to',\n 'main_account')), importlib.Func('transfer', args=('amount', 'to')),\n importlib.Var('balances', Hash)]\n\n\ndef ____():\n __pairs_num.set(0)\n __owner.set(ctx.signer)\n __feeTo.set(ctx.signer)\n\n\n@__export('con_dextest_004')\ndef pairFor(tokenA: str, tokenB: str):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n return __toks_to_pair[tokenA, tokenB]\n\n\n@__export('con_dextest_004')\ndef liqTransfer(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', ctx.caller\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', ctx.caller] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\n@__export('con_dextest_004')\ndef liqApprove(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __pairs[pair, 'balances', ctx.caller, to] += amount\n\n\n@__export('con_dextest_004')\ndef liqTransfer_from(pair: int, amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __pairs[pair, 'balances', main_account, ctx.caller], amount)\n assert __pairs[pair, 'balances', main_account\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', main_account, ctx.caller] -= amount\n __pairs[pair, 'balances', main_account] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\ndef __safeTransferFrom(token: str, src: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n t.transfer_from(value, to, src)\n\n\ndef __safeTransferFromToPair(pair: int, token: str, src: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dextest_004', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n t.transfer_from(value, ctx.this, src)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= prev_balance, 'Negative income!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n return True\n elif token == __pairs[pair, 'token1']:\n t.transfer_from(value, ctx.this, src)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= prev_balance, 'Negative income!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n return True\n assert False, 'Wrong token!'\n\n\ndef __safeTransferFromPair(pair: int, token: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dextest_004', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n assert __pairs[pair, 'balance0'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n assert __pairs[pair, 'balance0'] >= 0, 'Negative pair balance0!'\n return True\n elif token == __pairs[pair, 'token1']:\n assert __pairs[pair, 'balance1'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n assert __pairs[pair, 'balance1'] >= 0, 'Negative pair balance1!'\n return True\n assert False, 'Wrong token!'\n return False\n\n\ndef __quote(amountA: float, reserveA: float, reserveB: float):\n assert amountA > 0, '__DEXNAME: INSUFFICIENT_AMOUNT'\n assert reserveA > 0 and reserveB > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n return amountA * reserveB / reserveA\n\n\ndef __createPair(tokenA: str, tokenB: str):\n assert tokenA != tokenB, '__DEXNAME: IDENTICAL_ADDRESSES'\n assert __toks_to_pair[tokenA, tokenB] == False, '__DEXNAME: PAIR_EXISTS'\n p_num = __pairs_num.get() + 1\n __pairs_num.set(p_num)\n __pairs[p_num, 'token0'] = tokenA\n __pairs[p_num, 'token1'] = tokenB\n __pairs[p_num, 'reserve0'] = 0\n __pairs[p_num, 'reserve1'] = 0\n __pairs[p_num, 'balance0'] = 0\n __pairs[p_num, 'balance1'] = 0\n __pairs[p_num, 'blockTimestampLast'] = now\n __pairs[p_num, 'totalSupply'] = 0\n __pairs[p_num, 'kLast'] = 0\n __pairs[p_num, 'creationTime'] = now\n __toks_to_pair[tokenA, tokenB] = p_num\n return p_num\n\n\ndef __getReserves(pair: int):\n return __pairs[pair, 'reserve0'], __pairs[pair, 'reserve1'], __pairs[\n pair, 'blockTimestampLast']\n\n\ndef __internal_update(pair: int, balance0: float, balance1: float):\n __pairs[pair, 'reserve0'] = balance0\n __pairs[pair, 'reserve1'] = balance1\n __pairs[pair, 'blockTimestampLast'] = now\n\n\ndef __internal_mintFee(pair: int, reserve0: float, reserve1: float):\n feeOn = __feeTo.get() != False\n kLast = __pairs[pair, 'kLast']\n if feeOn:\n if kLast != 0:\n rootK = (reserve0 * reserve1) ** decimal('0.5')\n rootKLast = kLast ** decimal('0.5')\n if rootK > rootKLast:\n numerator = __pairs[pair, 'totalSupply'] * (rootK - rootKLast)\n denominator = rootK * 5 + rootKLast\n liquidity = numerator / denominator\n if liquidity > 0:\n __mint(pair, __feeTo.get(), liquidity)\n elif kLast != 0:\n __pairs[pair, 'kLast'] = 0\n return feeOn\n\n\ndef __internal_burn(pair: int, src: str, value: float):\n __pairs[pair, 'totalSupply'] -= value\n assert __pairs[pair, 'totalSupply'] >= 0, 'Negative supply!'\n __pairs[pair, 'balances', src] -= value\n assert __pairs[pair, 'balances', src] >= 0, 'Negative balance!'\n\n\ndef __burn(pair: int, to: str):\n reserve0, reserve1, ignore = __getReserves(pair)\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n liquidity = __pairs[pair, 'balances', ctx.this]\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n amount0 = liquidity * balance0 / totalSupply\n amount1 = liquidity * balance1 / totalSupply\n assert amount0 > 0 and amount1 > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY_BURNED'\n __internal_burn(pair, ctx.this, liquidity)\n __safeTransferFromPair(pair, token0, to, amount0)\n __safeTransferFromPair(pair, token1, to, amount1)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n __internal_update(pair, balance0, balance1)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return amount0, amount1\n\n\ndef __internal_mint(pair: int, to: str, value: float):\n __pairs[pair, 'totalSupply'] += value\n __pairs[pair, 'balances', to] += value\n\n\ndef __mint(pair: int, to: str):\n reserve0, reserve1, ignore = __getReserves(pair)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0 = balance0 - reserve0\n amount1 = balance1 - reserve1\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n liquidity = 0\n if totalSupply == 0:\n liquidity = (amount0 * amount1) ** decimal('0.5') - MINIMUM_LIQUIDITY\n __internal_mint(pair, 'DEAD', MINIMUM_LIQUIDITY)\n else:\n liquidity = min(amount0 * totalSupply / reserve0, amount1 *\n totalSupply / reserve1)\n assert liquidity > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED'\n __internal_mint(pair, to, liquidity)\n __internal_update(pair, balance0, balance1)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return liquidity\n\n\ndef __internal_addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float):\n desired_pair = __toks_to_pair[tokenA, tokenB]\n if desired_pair == False:\n desired_pair = __createPair(tokenA, tokenB)\n reserveA, reserveB, ignore = __getReserves(desired_pair)\n if reserveA == 0 and reserveB == 0:\n return amountADesired, amountBDesired\n else:\n amountBOptimal = __quote(amountADesired, reserveA, reserveB)\n if amountBOptimal <= amountBDesired:\n assert amountBOptimal >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n return amountADesired, amountBOptimal\n else:\n amountAOptimal = __quote(amountBDesired, reserveB, reserveA)\n assert amountAOptimal <= amountADesired\n assert amountAOptimal >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n return amountAOptimal, amountBDesired\n\n\n@__export('con_dextest_004')\ndef addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float, to: str,\n deadline: int):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n amountA, amountB = __internal_addLiquidity(tokenA, tokenB,\n amountADesired, amountBDesired, amountAMin, amountBMin)\n pair = __toks_to_pair[tokenA, tokenB]\n __safeTransferFromToPair(pair, tokenA, ctx.caller, amountA)\n __safeTransferFromToPair(pair, tokenB, ctx.caller, amountB)\n liquidity = __mint(pair, to)\n assert __pairs[pair, 'balance0'] == __pairs[pair, 'reserve0'], '0: bnr'\n assert __pairs[pair, 'balance1'] == __pairs[pair, 'reserve1'], '1: bnr'\n return amountA, amountB, liquidity\n\n\n@__export('con_dextest_004')\ndef removeLiquidity(tokenA: str, tokenB: str, liquidity: float, amountAMin:\n float, amountBMin: float, to: str, deadline: int):\n desired_pair = __toks_to_pair[tokenA, tokenB]\n assert desired_pair != False, \"Pair doesn't exist!\"\n liqTransfer(desired_pair, liquidity, ctx.this)\n amountA, amountB = __burn(desired_pair, to)\n assert amountA >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n assert amountB >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n assert __pairs[desired_pair, 'balance0'] == __pairs[desired_pair,\n 'reserve0'], '0: bnr'\n assert __pairs[desired_pair, 'balance1'] == __pairs[desired_pair,\n 'reserve1'], '1: bnr'\n return amountA, amountB\n\n\ndef __getAmountOut(amountIn: float, reserveIn: float, reserveOut: float):\n assert amountIn > 0, '__DEXNAME: INSUFFICIENT_INPUT_AMOUNT'\n assert reserveIn > 0 and reserveOut > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n amountInWithFee = amountIn * 997\n numerator = amountInWithFee * reserveOut\n denominator = reserveIn * 1000 + amountInWithFee\n return numerator / denominator\n\n\ndef __swap(pair: int, amount0Out: float, amount1Out: float, to: str):\n assert amount0Out > 0 or amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT'\n reserve0, reserve1, ignore = __getReserves(pair)\n assert amount0Out < reserve0 and amount1Out < reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY'\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n assert to != token0 and to != token1, 'UniswapV2: INVALID_TO'\n if amount0Out > 0:\n __safeTransferFromPair(pair, token0, to, amount0Out)\n if amount1Out > 0:\n __safeTransferFromPair(pair, token1, to, amount1Out)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0In = balance0 - (reserve0 - amount0Out\n ) if balance0 > reserve0 - amount0Out else 0\n amount1In = balance1 - (reserve1 - amount1Out\n ) if balance1 > reserve1 - amount1Out else 0\n assert amount0In > 0 or amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT'\n balance0Adjusted = balance0 * 1000 - amount0In * 3\n balance1Adjusted = balance1 * 1000 - amount1In * 3\n assert balance0Adjusted * balance1Adjusted >= reserve0 * reserve1 * 1000 ** 2 or abs(\n balance0Adjusted * balance1Adjusted - reserve0 * reserve1 * 1000 ** 2\n ) < decimal('1e-16'), 'UniswapV2: K'\n __internal_update(pair, balance0, balance1)\n\n\n@__export('con_dextest_004')\ndef swapExactTokensForTokens(amountIn: float, amountOutMin: float, pair:\n int, src: str, to: str, deadline: int):\n reserve0, reserve1, ignore = __getReserves(pair)\n order = src == __pairs[pair, 'token0']\n if not order:\n reserve0, reserve1 = reserve1, reserve0\n amount = __getAmountOut(amountIn, reserve0, reserve1)\n assert amount >= amountOutMin, '__DEXNAMEe: INSUFFICIENT_OUTPUT_AMOUNT'\n __safeTransferFromToPair(pair, src, ctx.caller, amountIn)\n out0 = 0 if order else amount\n out1 = amount if order else 0\n __swap(pair, out0, out1, to)\n assert __pairs[pair, 'balance0'] == __pairs[pair, 'reserve0'], '0: bnr'\n assert __pairs[pair, 'balance1'] == __pairs[pair, 'reserve1'], '1: bnr'\n" + }, + { + "key": "con_dextest_004.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_004.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 14, + 20, + 10, + 28, + 0 + ] + } + }, + { + "key": "con_dextest_004.feeTo", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_004.owner", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_004.pairs:1:balance0", + "value": { + "__fixed__": "99012841965601.948572729883065833638622929394" + } + }, + { + "key": "con_dextest_004.pairs:1:balance1", + "value": { + "__fixed__": "1.01" + } + }, + { + "key": "con_dextest_004.pairs:1:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "9999999.999999939999999999999874999999" + } + }, + { + "key": "con_dextest_004.pairs:1:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dextest_004.pairs:1:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 10, + 16, + 14, + 46, + 57, + 0 + ] + } + }, + { + "key": "con_dextest_004.pairs:1:creationTime", + "value": { + "__time__": [ + 2024, + 10, + 16, + 14, + 46, + 48, + 0 + ] + } + }, + { + "key": "con_dextest_004.pairs:1:kLast", + "value": 99999999999999 + }, + { + "key": "con_dextest_004.pairs:1:reserve0", + "value": { + "__fixed__": "99012841965601.948572729883065833638622929394" + } + }, + { + "key": "con_dextest_004.pairs:1:reserve1", + "value": { + "__fixed__": "1.01" + } + }, + { + "key": "con_dextest_004.pairs:1:token0", + "value": "con_testtoken" + }, + { + "key": "con_dextest_004.pairs:1:token1", + "value": "currency" + }, + { + "key": "con_dextest_004.pairs:1:totalSupply", + "value": { + "__fixed__": "9999999.999999949999999999999874999999" + } + }, + { + "key": "con_dextest_004.pairs_num", + "value": 1 + }, + { + "key": "con_dextest_004.toks_to_pair:con_testtoken:currency", + "value": 1 + }, + { + "key": "con_dextest_005.__code__", + "value": "MINIMUM_LIQUIDITY = decimal('1e-08')\nMAX_ROUTE = 8\n__toks_to_pair = Hash(default_value=False, contract='con_dextest_005', name\n ='toks_to_pair')\n__pairs = Hash(default_value=0, contract='con_dextest_005', name='pairs')\n__pairs_num = Variable(contract='con_dextest_005', name='pairs_num')\n__feeTo = Variable(contract='con_dextest_005', name='feeTo')\n__owner = Variable(contract='con_dextest_005', name='owner')\ntoken_interface = [importlib.Func('transfer_from', args=('amount', 'to',\n 'main_account')), importlib.Func('transfer', args=('amount', 'to')),\n importlib.Var('balances', Hash)]\n\n\ndef ____():\n __pairs_num.set(0)\n __owner.set(ctx.signer)\n __feeTo.set(ctx.signer)\n\n\n@__export('con_dextest_005')\ndef pairFor(tokenA: str, tokenB: str):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n return __toks_to_pair[tokenA, tokenB]\n\n\n@__export('con_dextest_005')\ndef liqTransfer(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', ctx.caller\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', ctx.caller] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\n@__export('con_dextest_005')\ndef liqApprove(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __pairs[pair, 'balances', ctx.caller, to] += amount\n\n\n@__export('con_dextest_005')\ndef liqTransfer_from(pair: int, amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __pairs[pair, 'balances', main_account, ctx.caller], amount)\n assert __pairs[pair, 'balances', main_account\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', main_account, ctx.caller] -= amount\n __pairs[pair, 'balances', main_account] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\ndef __safeTransferFrom(token: str, src: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n t.transfer_from(value, to, src)\n\n\ndef __safeTransferFromToPair(pair: int, token: str, src: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dextest_005', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n t.transfer_from(value, ctx.this, src)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= prev_balance, 'Negative income!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n return True\n elif token == __pairs[pair, 'token1']:\n t.transfer_from(value, ctx.this, src)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= prev_balance, 'Negative income!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n return True\n assert False, 'Wrong token!'\n\n\ndef __safeTransferFromPair(pair: int, token: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dextest_005', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n assert __pairs[pair, 'balance0'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n assert __pairs[pair, 'balance0'] >= 0, 'Negative pair balance0!'\n return True\n elif token == __pairs[pair, 'token1']:\n assert __pairs[pair, 'balance1'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n assert __pairs[pair, 'balance1'] >= 0, 'Negative pair balance1!'\n return True\n assert False, 'Wrong token!'\n return False\n\n\ndef __quote(amountA: float, reserveA: float, reserveB: float):\n assert amountA > 0, '__DEXNAME: INSUFFICIENT_AMOUNT'\n assert reserveA > 0 and reserveB > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n return amountA * reserveB / reserveA\n\n\ndef __createPair(tokenA: str, tokenB: str):\n assert tokenA != tokenB, '__DEXNAME: IDENTICAL_ADDRESSES'\n assert __toks_to_pair[tokenA, tokenB] == False, '__DEXNAME: PAIR_EXISTS'\n p_num = __pairs_num.get() + 1\n __pairs_num.set(p_num)\n __pairs[p_num, 'token0'] = tokenA\n __pairs[p_num, 'token1'] = tokenB\n __pairs[p_num, 'reserve0'] = 0\n __pairs[p_num, 'reserve1'] = 0\n __pairs[p_num, 'balance0'] = 0\n __pairs[p_num, 'balance1'] = 0\n __pairs[p_num, 'blockTimestampLast'] = now\n __pairs[p_num, 'totalSupply'] = 0\n __pairs[p_num, 'kLast'] = 0\n __pairs[p_num, 'creationTime'] = now\n __toks_to_pair[tokenA, tokenB] = p_num\n return p_num\n\n\ndef __getReserves(pair: int):\n return __pairs[pair, 'reserve0'], __pairs[pair, 'reserve1'], __pairs[\n pair, 'blockTimestampLast']\n\n\ndef __internal_update(pair: int, balance0: float, balance1: float):\n __pairs[pair, 'reserve0'] = balance0\n __pairs[pair, 'reserve1'] = balance1\n __pairs[pair, 'blockTimestampLast'] = now\n\n\ndef __internal_mintFee(pair: int, reserve0: float, reserve1: float):\n feeOn = __feeTo.get() != False\n kLast = __pairs[pair, 'kLast']\n if feeOn:\n if kLast != 0:\n rootK = (reserve0 * reserve1) ** decimal('0.5')\n rootKLast = kLast ** decimal('0.5')\n if rootK > rootKLast:\n numerator = __pairs[pair, 'totalSupply'] * (rootK - rootKLast)\n denominator = rootK * 5 + rootKLast\n liquidity = numerator / denominator\n if liquidity > 0:\n __internal_mint(pair, __feeTo.get(), liquidity)\n elif kLast != 0:\n __pairs[pair, 'kLast'] = 0\n return feeOn\n\n\ndef __internal_burn(pair: int, src: str, value: float):\n __pairs[pair, 'totalSupply'] -= value\n assert __pairs[pair, 'totalSupply'] >= 0, 'Negative supply!'\n __pairs[pair, 'balances', src] -= value\n assert __pairs[pair, 'balances', src] >= 0, 'Negative balance!'\n\n\ndef __burn(pair: int, to: str):\n reserve0, reserve1, ignore = __getReserves(pair)\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n liquidity = __pairs[pair, 'balances', ctx.this]\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n amount0 = liquidity * balance0 / totalSupply\n amount1 = liquidity * balance1 / totalSupply\n assert amount0 > 0 and amount1 > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY_BURNED'\n __internal_burn(pair, ctx.this, liquidity)\n __safeTransferFromPair(pair, token0, to, amount0)\n __safeTransferFromPair(pair, token1, to, amount1)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n __internal_update(pair, balance0, balance1)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return amount0, amount1\n\n\ndef __internal_mint(pair: int, to: str, value: float):\n __pairs[pair, 'totalSupply'] += value\n __pairs[pair, 'balances', to] += value\n\n\ndef __mint(pair: int, to: str):\n reserve0, reserve1, ignore = __getReserves(pair)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0 = balance0 - reserve0\n amount1 = balance1 - reserve1\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n liquidity = 0\n if totalSupply == 0:\n liquidity = (amount0 * amount1) ** decimal('0.5') - MINIMUM_LIQUIDITY\n __internal_mint(pair, 'DEAD', MINIMUM_LIQUIDITY)\n else:\n liquidity = min(amount0 * totalSupply / reserve0, amount1 *\n totalSupply / reserve1)\n assert liquidity > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED'\n __internal_mint(pair, to, liquidity)\n __internal_update(pair, balance0, balance1)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return liquidity\n\n\ndef __internal_addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float):\n desired_pair = __toks_to_pair[tokenA, tokenB]\n if desired_pair == False:\n desired_pair = __createPair(tokenA, tokenB)\n reserveA, reserveB, ignore = __getReserves(desired_pair)\n if reserveA == 0 and reserveB == 0:\n return amountADesired, amountBDesired\n else:\n amountBOptimal = __quote(amountADesired, reserveA, reserveB)\n if amountBOptimal <= amountBDesired:\n assert amountBOptimal >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n return amountADesired, amountBOptimal\n else:\n amountAOptimal = __quote(amountBDesired, reserveB, reserveA)\n assert amountAOptimal <= amountADesired\n assert amountAOptimal >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n return amountAOptimal, amountBDesired\n\n\n@__export('con_dextest_005')\ndef addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float, to: str,\n deadline: int):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n amountA, amountB = __internal_addLiquidity(tokenA, tokenB,\n amountADesired, amountBDesired, amountAMin, amountBMin)\n pair = __toks_to_pair[tokenA, tokenB]\n __safeTransferFromToPair(pair, tokenA, ctx.caller, amountA)\n __safeTransferFromToPair(pair, tokenB, ctx.caller, amountB)\n liquidity = __mint(pair, to)\n assert __pairs[pair, 'balance0'] == __pairs[pair, 'reserve0'], '0: bnr'\n assert __pairs[pair, 'balance1'] == __pairs[pair, 'reserve1'], '1: bnr'\n return amountA, amountB, liquidity\n\n\n@__export('con_dextest_005')\ndef removeLiquidity(tokenA: str, tokenB: str, liquidity: float, amountAMin:\n float, amountBMin: float, to: str, deadline: int):\n desired_pair = __toks_to_pair[tokenA, tokenB]\n assert desired_pair != False, \"Pair doesn't exist!\"\n liqTransfer(desired_pair, liquidity, ctx.this)\n amountA, amountB = __burn(desired_pair, to)\n assert amountA >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n assert amountB >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n assert __pairs[desired_pair, 'balance0'] == __pairs[desired_pair,\n 'reserve0'], '0: bnr'\n assert __pairs[desired_pair, 'balance1'] == __pairs[desired_pair,\n 'reserve1'], '1: bnr'\n return amountA, amountB\n\n\ndef __getAmountOut(amountIn: float, reserveIn: float, reserveOut: float):\n assert amountIn > 0, '__DEXNAME: INSUFFICIENT_INPUT_AMOUNT'\n assert reserveIn > 0 and reserveOut > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n amountInWithFee = amountIn * 997\n numerator = amountInWithFee * reserveOut\n denominator = reserveIn * 1000 + amountInWithFee\n return numerator / denominator\n\n\ndef __swap(pair: int, amount0Out: float, amount1Out: float, to: str):\n assert amount0Out > 0 or amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT'\n reserve0, reserve1, ignore = __getReserves(pair)\n assert amount0Out < reserve0 and amount1Out < reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY'\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n assert to != token0 and to != token1, 'UniswapV2: INVALID_TO'\n if amount0Out > 0:\n __safeTransferFromPair(pair, token0, to, amount0Out)\n if amount1Out > 0:\n __safeTransferFromPair(pair, token1, to, amount1Out)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0In = balance0 - (reserve0 - amount0Out\n ) if balance0 > reserve0 - amount0Out else 0\n amount1In = balance1 - (reserve1 - amount1Out\n ) if balance1 > reserve1 - amount1Out else 0\n assert amount0In > 0 or amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT'\n balance0Adjusted = balance0 * 1000 - amount0In * 3\n balance1Adjusted = balance1 * 1000 - amount1In * 3\n assert balance0Adjusted * balance1Adjusted >= reserve0 * reserve1 * 1000 ** 2 or abs(\n balance0Adjusted * balance1Adjusted - reserve0 * reserve1 * 1000 ** 2\n ) < decimal('1e-16'), 'UniswapV2: K'\n __internal_update(pair, balance0, balance1)\n\n\n@__export('con_dextest_005')\ndef swapExactTokensForTokens(amountIn: float, amountOutMin: float, pair:\n int, src: str, to: str, deadline: int):\n reserve0, reserve1, ignore = __getReserves(pair)\n order = src == __pairs[pair, 'token0']\n if not order:\n reserve0, reserve1 = reserve1, reserve0\n amount = __getAmountOut(amountIn, reserve0, reserve1)\n assert amount >= amountOutMin, '__DEXNAMEe: INSUFFICIENT_OUTPUT_AMOUNT'\n __safeTransferFromToPair(pair, src, ctx.caller, amountIn)\n out0 = 0 if order else amount\n out1 = amount if order else 0\n __swap(pair, out0, out1, to)\n assert __pairs[pair, 'balance0'] == __pairs[pair, 'reserve0'], '0: bnr'\n assert __pairs[pair, 'balance1'] == __pairs[pair, 'reserve1'], '1: bnr'\n" + }, + { + "key": "con_dextest_005.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_005.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 16, + 14, + 50, + 50, + 0 + ] + } + }, + { + "key": "con_dextest_005.feeTo", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_005.owner", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_005.pairs:1:balance0", + "value": { + "__fixed__": "1.000000061523096809293425810305" + } + }, + { + "key": "con_dextest_005.pairs:1:balance1", + "value": { + "__fixed__": "6.171458316281627620543E-8" + } + }, + { + "key": "con_dextest_005.pairs:1:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "0.000246996040793644953739169876" + } + }, + { + "key": "con_dextest_005.pairs:1:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dextest_005.pairs:1:balances:con_dextest_005", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_dextest_005.pairs:1:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 10, + 16, + 19, + 58, + 54, + 0 + ] + } + }, + { + "key": "con_dextest_005.pairs:1:creationTime", + "value": { + "__time__": [ + 2024, + 10, + 16, + 14, + 53, + 38, + 0 + ] + } + }, + { + "key": "con_dextest_005.pairs:1:kLast", + "value": { + "__fixed__": "6.116646760700919292278E-8" + } + }, + { + "key": "con_dextest_005.pairs:1:reserve0", + "value": { + "__fixed__": "1.000000061523096809293425810305" + } + }, + { + "key": "con_dextest_005.pairs:1:reserve1", + "value": { + "__fixed__": "6.171458316281627620543E-8" + } + }, + { + "key": "con_dextest_005.pairs:1:token0", + "value": "con_testtoken" + }, + { + "key": "con_dextest_005.pairs:1:token1", + "value": "currency" + }, + { + "key": "con_dextest_005.pairs:1:totalSupply", + "value": { + "__fixed__": "0.000247006040793644953739169876" + } + }, + { + "key": "con_dextest_005.pairs_num", + "value": 1 + }, + { + "key": "con_dextest_005.toks_to_pair:con_testtoken:currency", + "value": 1 + }, + { + "key": "con_dextest_006.__code__", + "value": "MINIMUM_LIQUIDITY = decimal('1e-08')\nMAX_ROUTE = 8\n__toks_to_pair = Hash(default_value=False, contract='con_dextest_006', name\n ='toks_to_pair')\n__pairs = Hash(default_value=0, contract='con_dextest_006', name='pairs')\n__pairs_num = Variable(contract='con_dextest_006', name='pairs_num')\n__feeTo = Variable(contract='con_dextest_006', name='feeTo')\n__owner = Variable(contract='con_dextest_006', name='owner')\ntoken_interface = [importlib.Func('transfer_from', args=('amount', 'to',\n 'main_account')), importlib.Func('transfer', args=('amount', 'to')),\n importlib.Var('balances', Hash)]\n\n\ndef ____():\n __pairs_num.set(0)\n __owner.set(ctx.signer)\n __feeTo.set(ctx.signer)\n\n\n@__export('con_dextest_006')\ndef pairFor(tokenA: str, tokenB: str):\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n return __toks_to_pair[tokenA, tokenB]\n\n\n@__export('con_dextest_006')\ndef liqTransfer(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', ctx.caller\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', ctx.caller] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\n@__export('con_dextest_006')\ndef liqApprove(pair: int, amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __pairs[pair, 'balances', ctx.caller, to] += amount\n\n\n@__export('con_dextest_006')\ndef liqTransfer_from(pair: int, amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __pairs[pair, 'balances', main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __pairs[pair, 'balances', main_account, ctx.caller], amount)\n assert __pairs[pair, 'balances', main_account\n ] >= amount, 'Not enough coins to send!'\n __pairs[pair, 'balances', main_account, ctx.caller] -= amount\n __pairs[pair, 'balances', main_account] -= amount\n __pairs[pair, 'balances', to] += amount\n\n\ndef __safeTransferFrom(token: str, src: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n t.transfer_from(value, to, src)\n\n\ndef __safeTransferFromToPair(pair: int, token: str, src: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dextest_006', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n t.transfer_from(value, ctx.this, src)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= prev_balance, 'Negative income!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n return True\n elif token == __pairs[pair, 'token1']:\n t.transfer_from(value, ctx.this, src)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= prev_balance, 'Negative income!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n return True\n assert False, 'Wrong token!'\n\n\ndef __safeTransferFromPair(pair: int, token: str, to: str, value: float):\n t = importlib.import_module(token)\n assert importlib.enforce_interface(t, token_interface)\n __tok_balances = ForeignHash(foreign_contract=token, foreign_name=\n 'balances', contract='con_dextest_006', name='tok_balances')\n prev_balance = __tok_balances[ctx.this]\n if prev_balance == None:\n prev_balance = 0\n if token == __pairs[pair, 'token0']:\n assert __pairs[pair, 'balance0'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance0'] += new_balance - prev_balance\n assert __pairs[pair, 'balance0'] >= 0, 'Negative pair balance0!'\n return True\n elif token == __pairs[pair, 'token1']:\n assert __pairs[pair, 'balance1'] >= value, 'Not enough coins to send!'\n t.transfer(value, to)\n new_balance = __tok_balances[ctx.this]\n assert new_balance >= 0, 'Negative balance!'\n __pairs[pair, 'balance1'] += new_balance - prev_balance\n assert __pairs[pair, 'balance1'] >= 0, 'Negative pair balance1!'\n return True\n assert False, 'Wrong token!'\n return False\n\n\ndef __quote(amountA: float, reserveA: float, reserveB: float):\n assert amountA > 0, '__DEXNAME: INSUFFICIENT_AMOUNT'\n assert reserveA > 0 and reserveB > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n return amountA * reserveB / reserveA\n\n\ndef __createPair(tokenA: str, tokenB: str):\n assert tokenA != tokenB, '__DEXNAME: IDENTICAL_ADDRESSES'\n assert __toks_to_pair[tokenA, tokenB] == False, '__DEXNAME: PAIR_EXISTS'\n p_num = __pairs_num.get() + 1\n __pairs_num.set(p_num)\n __pairs[p_num, 'token0'] = tokenA\n __pairs[p_num, 'token1'] = tokenB\n __pairs[p_num, 'reserve0'] = 0\n __pairs[p_num, 'reserve1'] = 0\n __pairs[p_num, 'balance0'] = 0\n __pairs[p_num, 'balance1'] = 0\n __pairs[p_num, 'blockTimestampLast'] = now\n __pairs[p_num, 'totalSupply'] = 0\n __pairs[p_num, 'kLast'] = 0\n __pairs[p_num, 'creationTime'] = now\n __toks_to_pair[tokenA, tokenB] = p_num\n return p_num\n\n\ndef __getReserves(pair: int):\n return __pairs[pair, 'reserve0'], __pairs[pair, 'reserve1'], __pairs[\n pair, 'blockTimestampLast']\n\n\ndef __internal_update(pair: int, balance0: float, balance1: float):\n __pairs[pair, 'reserve0'] = balance0\n __pairs[pair, 'reserve1'] = balance1\n __pairs[pair, 'blockTimestampLast'] = now\n\n\ndef __internal_mintFee(pair: int, reserve0: float, reserve1: float):\n feeOn = __feeTo.get() != False\n kLast = __pairs[pair, 'kLast']\n if feeOn:\n if kLast != 0:\n rootK = (reserve0 * reserve1) ** decimal('0.5')\n rootKLast = kLast ** decimal('0.5')\n if rootK > rootKLast:\n numerator = __pairs[pair, 'totalSupply'] * (rootK - rootKLast)\n denominator = rootK * 5 + rootKLast\n liquidity = numerator / denominator\n if liquidity > 0:\n __internal_mint(pair, __feeTo.get(), liquidity)\n elif kLast != 0:\n __pairs[pair, 'kLast'] = 0\n return feeOn\n\n\ndef __internal_burn(pair: int, src: str, value: float):\n __pairs[pair, 'totalSupply'] -= value\n assert __pairs[pair, 'totalSupply'] >= 0, 'Negative supply!'\n __pairs[pair, 'balances', src] -= value\n assert __pairs[pair, 'balances', src] >= 0, 'Negative balance!'\n\n\ndef __burn(pair: int, to: str):\n reserve0, reserve1, ignore = __getReserves(pair)\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n liquidity = __pairs[pair, 'balances', ctx.this]\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n amount0 = liquidity * balance0 / totalSupply\n amount1 = liquidity * balance1 / totalSupply\n assert amount0 > 0 and amount1 > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY_BURNED'\n __internal_burn(pair, ctx.this, liquidity)\n __safeTransferFromPair(pair, token0, to, amount0)\n __safeTransferFromPair(pair, token1, to, amount1)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n __internal_update(pair, balance0, balance1)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return amount0, amount1\n\n\ndef __internal_mint(pair: int, to: str, value: float):\n __pairs[pair, 'totalSupply'] += value\n __pairs[pair, 'balances', to] += value\n\n\ndef __mint(pair: int, to: str):\n reserve0, reserve1, ignore = __getReserves(pair)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0 = balance0 - reserve0\n amount1 = balance1 - reserve1\n feeOn = __internal_mintFee(pair, reserve0, reserve1)\n totalSupply = __pairs[pair, 'totalSupply']\n liquidity = 0\n if totalSupply == 0:\n liquidity = (amount0 * amount1) ** decimal('0.5') - MINIMUM_LIQUIDITY\n __internal_mint(pair, 'DEAD', MINIMUM_LIQUIDITY)\n else:\n liquidity = min(amount0 * totalSupply / reserve0, amount1 *\n totalSupply / reserve1)\n assert liquidity > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED'\n __internal_mint(pair, to, liquidity)\n __internal_update(pair, balance0, balance1)\n if feeOn:\n __pairs[pair, 'kLast'] = balance0 * balance1\n return liquidity\n\n\ndef __internal_addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float):\n desired_pair = __toks_to_pair[tokenA, tokenB]\n if desired_pair == False:\n desired_pair = __createPair(tokenA, tokenB)\n reserveA, reserveB, ignore = __getReserves(desired_pair)\n if reserveA == 0 and reserveB == 0:\n return amountADesired, amountBDesired\n else:\n amountBOptimal = __quote(amountADesired, reserveA, reserveB)\n if amountBOptimal <= amountBDesired:\n assert amountBOptimal >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n return amountADesired, amountBOptimal\n else:\n amountAOptimal = __quote(amountBDesired, reserveB, reserveA)\n assert amountAOptimal <= amountADesired\n assert amountAOptimal >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n return amountAOptimal, amountBDesired\n\n\n@__export('con_dextest_006')\ndef addLiquidity(tokenA: str, tokenB: str, amountADesired: float,\n amountBDesired: float, amountAMin: float, amountBMin: float, to: str,\n deadline: datetime.datetime):\n assert now < deadline, '__DEXNAME: EXPIRED'\n if tokenB < tokenA:\n tokenA, tokenB = tokenB, tokenA\n amountA, amountB = __internal_addLiquidity(tokenA, tokenB,\n amountADesired, amountBDesired, amountAMin, amountBMin)\n pair = __toks_to_pair[tokenA, tokenB]\n __safeTransferFromToPair(pair, tokenA, ctx.caller, amountA)\n __safeTransferFromToPair(pair, tokenB, ctx.caller, amountB)\n liquidity = __mint(pair, to)\n assert __pairs[pair, 'balance0'] == __pairs[pair, 'reserve0'], '0: bnr'\n assert __pairs[pair, 'balance1'] == __pairs[pair, 'reserve1'], '1: bnr'\n return amountA, amountB, liquidity\n\n\n@__export('con_dextest_006')\ndef removeLiquidity(tokenA: str, tokenB: str, liquidity: float, amountAMin:\n float, amountBMin: float, to: str, deadline: datetime.datetime):\n assert now < deadline, '__DEXNAME: EXPIRED'\n desired_pair = __toks_to_pair[tokenA, tokenB]\n assert desired_pair != False, \"Pair doesn't exist!\"\n liqTransfer(desired_pair, liquidity, ctx.this)\n amountA, amountB = __burn(desired_pair, to)\n assert amountA >= amountAMin, '__DEXNAME: INSUFFICIENT_A_AMOUNT'\n assert amountB >= amountBMin, '__DEXNAME: INSUFFICIENT_B_AMOUNT'\n assert __pairs[desired_pair, 'balance0'] == __pairs[desired_pair,\n 'reserve0'], '0: bnr'\n assert __pairs[desired_pair, 'balance1'] == __pairs[desired_pair,\n 'reserve1'], '1: bnr'\n return amountA, amountB\n\n\ndef __getAmountOut(amountIn: float, reserveIn: float, reserveOut: float):\n assert amountIn > 0, '__DEXNAME: INSUFFICIENT_INPUT_AMOUNT'\n assert reserveIn > 0 and reserveOut > 0, '__DEXNAME: INSUFFICIENT_LIQUIDITY'\n amountInWithFee = amountIn * 997\n numerator = amountInWithFee * reserveOut\n denominator = reserveIn * 1000 + amountInWithFee\n return numerator / denominator\n\n\ndef __swap(pair: int, amount0Out: float, amount1Out: float, to: str):\n assert amount0Out > 0 or amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT'\n reserve0, reserve1, ignore = __getReserves(pair)\n assert amount0Out < reserve0 and amount1Out < reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY'\n token0 = __pairs[pair, 'token0']\n token1 = __pairs[pair, 'token1']\n assert to != token0 and to != token1, 'UniswapV2: INVALID_TO'\n if amount0Out > 0:\n __safeTransferFromPair(pair, token0, to, amount0Out)\n if amount1Out > 0:\n __safeTransferFromPair(pair, token1, to, amount1Out)\n balance0 = __pairs[pair, 'balance0']\n balance1 = __pairs[pair, 'balance1']\n amount0In = balance0 - (reserve0 - amount0Out\n ) if balance0 > reserve0 - amount0Out else 0\n amount1In = balance1 - (reserve1 - amount1Out\n ) if balance1 > reserve1 - amount1Out else 0\n assert amount0In > 0 or amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT'\n balance0Adjusted = balance0 * 1000 - amount0In * 3\n balance1Adjusted = balance1 * 1000 - amount1In * 3\n assert balance0Adjusted * balance1Adjusted >= reserve0 * reserve1 * 1000 ** 2 or abs(\n balance0Adjusted * balance1Adjusted - reserve0 * reserve1 * 1000 ** 2\n ) < decimal('1e-16'), 'UniswapV2: K'\n __internal_update(pair, balance0, balance1)\n\n\n@__export('con_dextest_006')\ndef swapExactTokensForTokens(amountIn: float, amountOutMin: float, pair:\n int, src: str, to: str, deadline: datetime.datetime):\n assert now < deadline, '__DEXNAME: EXPIRED'\n reserve0, reserve1, ignore = __getReserves(pair)\n order = src == __pairs[pair, 'token0']\n if not order:\n reserve0, reserve1 = reserve1, reserve0\n amount = __getAmountOut(amountIn, reserve0, reserve1)\n assert amount >= amountOutMin, '__DEXNAMEe: INSUFFICIENT_OUTPUT_AMOUNT'\n __safeTransferFromToPair(pair, src, ctx.caller, amountIn)\n out0 = 0 if order else amount\n out1 = amount if order else 0\n __swap(pair, out0, out1, to)\n assert __pairs[pair, 'balance0'] == __pairs[pair, 'reserve0'], '0: bnr'\n assert __pairs[pair, 'balance1'] == __pairs[pair, 'reserve1'], '1: bnr'\n" + }, + { + "key": "con_dextest_006.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_006.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 21, + 20, + 34, + 26, + 0 + ] + } + }, + { + "key": "con_dextest_006.feeTo", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_006.owner", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_dextest_006.pairs:1:balance0", + "value": { + "__fixed__": "54145.635431733981989220366367171338" + } + }, + { + "key": "con_dextest_006.pairs:1:balance1", + "value": { + "__fixed__": "1.85" + } + }, + { + "key": "con_dextest_006.pairs:1:balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "316.226184864054982170653977443338" + } + }, + { + "key": "con_dextest_006.pairs:1:balances:DEAD", + "value": { + "__fixed__": "1E-8" + } + }, + { + "key": "con_dextest_006.pairs:1:blockTimestampLast", + "value": { + "__time__": [ + 2024, + 10, + 21, + 22, + 0, + 11, + 0 + ] + } + }, + { + "key": "con_dextest_006.pairs:1:creationTime", + "value": { + "__time__": [ + 2024, + 10, + 21, + 21, + 33, + 15, + 0 + ] + } + }, + { + "key": "con_dextest_006.pairs:1:kLast", + "value": 99999 + }, + { + "key": "con_dextest_006.pairs:1:reserve0", + "value": { + "__fixed__": "54145.635431733981989220366367171338" + } + }, + { + "key": "con_dextest_006.pairs:1:reserve1", + "value": { + "__fixed__": "1.85" + } + }, + { + "key": "con_dextest_006.pairs:1:token0", + "value": "con_testtoken" + }, + { + "key": "con_dextest_006.pairs:1:token1", + "value": "currency" + }, + { + "key": "con_dextest_006.pairs:1:totalSupply", + "value": { + "__fixed__": "316.226184874054982170653977443338" + } + }, + { + "key": "con_dextest_006.pairs_num", + "value": 1 + }, + { + "key": "con_dextest_006.toks_to_pair:con_testtoken:currency", + "value": 1 + }, + { + "key": "con_dice.__code__", + "value": "import currency\n__owner = Variable(contract='con_dice', name='owner')\n__cost = Variable(contract='con_dice', name='cost')\n__reward = Variable(contract='con_dice', name='reward')\n\n\ndef ____():\n \"\"\"\n Constructor that initializes the contract, sets the owner, cost, and reward.\n \"\"\"\n __owner.set(ctx.caller)\n __cost.set(decimal('1.0'))\n __reward.set(decimal('2.0'))\n\n\n@__export('con_dice')\ndef transfer_if_greater(num1: int, num2: int, recipient: str):\n \"\"\"\n Compares two numbers and performs a transfer if `num2` is greater than `num1`.\n Deducts `cost` from the player and rewards `reward` tokens if the player wins.\n\n Args:\n num1 (int): The first number to compare.\n num2 (int): The second number to compare.\n recipient (str): The wallet address to send tokens to if `num2 > num1`.\n \"\"\"\n assert isinstance(num1, int) and isinstance(num2, int\n ), 'Both num1 and num2 must be integers.'\n assert isinstance(recipient, str\n ), 'Recipient must be a valid wallet address.'\n currency.transfer_from(amount=__cost.get(), to=ctx.this, main_account=\n ctx.caller)\n if num2 > num1:\n assert currency.balance_of(ctx.this) >= __reward.get(\n ), 'Contract has insufficient balance to pay the reward.'\n currency.transfer(amount=__reward.get(), to=recipient)\n return f'Player wins! Transferred {__reward.get()} to {recipient}.'\n else:\n return (\n f'Player loses! {__cost.get()} tokens were added to the contract.')\n\n\n@__export('con_dice')\ndef balance():\n \"\"\"\n Returns the current balance of the contract. Only the owner can use this function.\n \"\"\"\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n return currency.balance_of(ctx.this)\n\n\n@__export('con_dice')\ndef withdraw(amount: float):\n \"\"\"\n Withdraws a specified amount from the contract to the owner's wallet. Only the owner can use this function.\n\n Args:\n amount (float): The amount to withdraw.\n \"\"\"\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert amount > 0, 'Amount must be greater than zero.'\n contract_balance = currency.balance_of(ctx.this)\n assert amount <= contract_balance, 'Insufficient contract balance.'\n currency.transfer(amount=amount, to=__owner.get())\n return f\"Successfully withdrew {amount} to the owner's wallet.\"\n\n\n@__export('con_dice')\ndef change_cost(new_cost: float):\n \"\"\"\n Updates the cost (tokens deducted per game). Only the owner can use this function.\n\n Args:\n new_cost (float): The new cost to set.\n \"\"\"\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert new_cost > 0, 'Cost must be greater than zero.'\n __cost.set(new_cost)\n return f'Cost updated to {new_cost}.'\n\n\n@__export('con_dice')\ndef change_reward(new_reward: float):\n \"\"\"\n Updates the reward (tokens rewarded for winning). Only the owner can use this function.\n\n Args:\n new_reward (float): The new reward to set.\n \"\"\"\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert new_reward > 0, 'Reward must be greater than zero.'\n __reward.set(new_reward)\n return f'Reward updated to {new_reward}.'\n" + }, + { + "key": "con_dice.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_dice.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 26, + 13, + 25, + 24, + 0 + ] + } + }, + { + "key": "con_dice.cost", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_dice.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_dice.reward", + "value": { + "__fixed__": "2" + } + }, + { + "key": "con_dice2.__code__", + "value": "import currency\n__owner = Variable(contract='con_dice2', name='owner')\n__cost = Variable(contract='con_dice2', name='cost')\n__reward = Variable(contract='con_dice2', name='reward')\n__bet_counter = Variable(contract='con_dice2', name='bet_counter')\n__bets = Hash(default_value=None, contract='con_dice2', name='bets')\n__commission_rate = Variable(contract='con_dice2', name='commission_rate')\n\n\ndef ____():\n __owner.set(ctx.caller)\n __cost.set(decimal('1.0'))\n __reward.set(decimal('2.0'))\n __bet_counter.set(0)\n __commission_rate.set(decimal('0.05'))\n\n\n@__export('con_dice2')\ndef transfer_if_greater(num1: int, num2: int, recipient: str):\n assert isinstance(num1, int) and isinstance(num2, int\n ), 'Both num1 and num2 must be integers.'\n assert isinstance(recipient, str\n ), 'Recipient must be a valid wallet address.'\n currency.transfer_from(amount=__cost.get(), to=ctx.this, main_account=\n ctx.caller)\n if num2 > num1:\n assert currency.balance_of(ctx.this) >= __reward.get(\n ), 'Contract has insufficient balance to pay the reward.'\n currency.transfer(amount=__reward.get(), to=recipient)\n return f'Player wins! Transferred {__reward.get()} to {recipient}.'\n else:\n return (\n f'Player loses! {__cost.get()} tokens were added to the contract.')\n\n\n@__export('con_dice2')\ndef place_bet(name: str, address: str, amount: float) ->str:\n assert amount > 0, 'Bet amount must be greater than zero.'\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n currency.transfer_from(amount=amount, to=ctx.this, main_account=address)\n bet_id = __get_next_bet_id()\n __bets[bet_id] = {'name': name, 'address': address, 'amount': amount}\n return f'Bet placed with ID {bet_id}.'\n\n\ndef __get_next_bet_id():\n current_id = __bet_counter.get()\n next_id = current_id + 1\n __bet_counter.set(next_id)\n return next_id\n\n\n@__export('con_dice2')\ndef get_bets():\n bet_list = []\n current_id = __bet_counter.get()\n for bet_id in range(1, current_id + 1):\n bet = __bets[bet_id]\n if bet is not None:\n bet_list.append({'bet_id': bet_id, 'name': bet['name'],\n 'address': bet['address'], 'amount': bet['amount']})\n return bet_list\n\n\n@__export('con_dice2')\ndef accept_bet(bet_id: int, opponent_address: str, num1: int, num2: int):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n assert 'opponent_address' not in bet, 'Bet has already been accepted and resolved.'\n assert opponent_address != bet['address'\n ], 'Opponent cannot be the same as the bettor.'\n amount = bet['amount']\n currency.transfer_from(amount=amount, to=ctx.this, main_account=\n opponent_address)\n bet['opponent_address'] = opponent_address\n bettor_address = bet['address']\n total_amount = amount * 2\n commission = total_amount * __commission_rate.get()\n payout = total_amount - commission\n if num2 > num1:\n winner = opponent_address\n else:\n winner = bettor_address\n currency.transfer(amount=payout, to=winner)\n __bets[bet_id] = None\n return (\n f'Bet accepted and resolved. Winner is {winner}. Total amount {payout} transferred after {commission} commission.'\n )\n\n\n@__export('con_dice2')\ndef remove_bet(bet_id: int):\n assert ctx.caller == __owner.get(), 'Only the owner can remove bets.'\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n bettor_address = bet['address']\n amount = bet['amount']\n currency.transfer(amount=amount, to=bettor_address)\n if 'opponent_address' in bet:\n opponent_address = bet['opponent_address']\n currency.transfer(amount=amount, to=opponent_address)\n __bets[bet_id] = None\n return f'Bet ID {bet_id} has been removed and funds refunded.'\n\n\n@__export('con_dice2')\ndef change_commission_rate(new_rate: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert 0 <= new_rate <= 1, 'Commission rate must be between 0 and 1.'\n __commission_rate.set(new_rate)\n return f'Commission rate updated to {new_rate * 100}%.'\n\n\n@__export('con_dice2')\ndef balance():\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n return currency.balance_of(ctx.this)\n\n\n@__export('con_dice2')\ndef withdraw(amount: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert amount > 0, 'Amount must be greater than zero.'\n contract_balance = currency.balance_of(ctx.this)\n assert amount <= contract_balance, 'Insufficient contract balance.'\n currency.transfer(amount=amount, to=__owner.get())\n return f\"Successfully withdrew {amount} to the owner's wallet.\"\n\n\n@__export('con_dice2')\ndef change_cost(new_cost: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert new_cost > 0, 'Cost must be greater than zero.'\n __cost.set(new_cost)\n return f'Cost updated to {new_cost}.'\n\n\n@__export('con_dice2')\ndef change_reward(new_reward: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert new_reward > 0, 'Reward must be greater than zero.'\n __reward.set(new_reward)\n return f'Reward updated to {new_reward}.'\n" + }, + { + "key": "con_dice2.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_dice2.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 5, + 19, + 57, + 2, + 0 + ] + } + }, + { + "key": "con_dice2.bet_counter", + "value": 19 + }, + { + "key": "con_dice2.bets:10", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "2" + } + } + }, + { + "key": "con_dice2.bets:11", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "2" + } + } + }, + { + "key": "con_dice2.bets:12", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice2.bets:13", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice2.bets:14", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice2.bets:15", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "11" + } + } + }, + { + "key": "con_dice2.bets:16", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice2.bets:17", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice2.bets:18", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice2.bets:19", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice2.bets:2", + "value": { + "name": "revo", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": 1 + } + }, + { + "key": "con_dice2.bets:3", + "value": { + "name": "revo", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "2" + } + } + }, + { + "key": "con_dice2.bets:4", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "5" + } + } + }, + { + "key": "con_dice2.bets:5", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "3" + } + } + }, + { + "key": "con_dice2.bets:6", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "2" + } + } + }, + { + "key": "con_dice2.bets:7", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice2.bets:8", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice2.bets:9", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "2" + } + } + }, + { + "key": "con_dice2.commission_rate", + "value": { + "__fixed__": "0.05" + } + }, + { + "key": "con_dice2.cost", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_dice2.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_dice2.reward", + "value": { + "__fixed__": "2" + } + }, + { + "key": "con_dice3.__code__", + "value": "import currency\n__owner = Variable(contract='con_dice3', name='owner')\n__cost = Variable(contract='con_dice3', name='cost')\n__reward = Variable(contract='con_dice3', name='reward')\n__bet_counter = Variable(contract='con_dice3', name='bet_counter')\n__bets = Hash(default_value=None, contract='con_dice3', name='bets')\n__commission_rate = Variable(contract='con_dice3', name='commission_rate')\n\n\ndef ____():\n __owner.set(ctx.caller)\n __cost.set(decimal('1.0'))\n __reward.set(decimal('2.0'))\n __bet_counter.set(0)\n __commission_rate.set(decimal('0.05'))\n\n\n@__export('con_dice3')\ndef transfer_if_greater(num1: int, num2: int, recipient: str):\n assert isinstance(num1, int) and isinstance(num2, int\n ), 'Both num1 and num2 must be integers.'\n assert isinstance(recipient, str\n ), 'Recipient must be a valid wallet address.'\n currency.transfer_from(amount=__cost.get(), to=ctx.this, main_account=\n ctx.caller)\n if num2 > num1:\n assert currency.balance_of(ctx.this) >= __reward.get(\n ), 'Contract has insufficient balance to pay the reward.'\n currency.transfer(amount=__reward.get(), to=recipient)\n return f'Player wins! Transferred {__reward.get()} to {recipient}.'\n else:\n return (\n f'Player loses! {__cost.get()} tokens were added to the contract.')\n\n\n@__export('con_dice3')\ndef place_bet(name: str, address: str, amount: float) ->str:\n assert amount > 0, 'Bet amount must be greater than zero.'\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n currency.transfer_from(amount=amount, to=ctx.this, main_account=address)\n bet_id = __get_next_bet_id()\n __bets[bet_id] = {'name': name, 'address': address, 'amount': amount}\n return f'Bet placed with ID {bet_id}.'\n\n\ndef __get_next_bet_id():\n current_id = __bet_counter.get()\n next_id = current_id + 1\n __bet_counter.set(next_id)\n return next_id\n\n\n@__export('con_dice3')\ndef get_bets():\n bet_list = []\n current_id = __bet_counter.get()\n for bet_id in range(1, current_id + 1):\n bet = __bets[bet_id]\n if bet is not None:\n bet_list.append({'bet_id': bet_id, 'name': bet['name'],\n 'amount': bet['amount']})\n return bet_list\n\n\n@__export('con_dice3')\ndef accept_bet(bet_id: int, opponent_address: str, num1: int, num2: int):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n assert 'opponent_address' not in bet, 'Bet has already been accepted and resolved.'\n assert opponent_address != bet['address'\n ], 'Opponent cannot be the same as the bettor.'\n amount = bet['amount']\n currency.transfer_from(amount=amount, to=ctx.this, main_account=\n opponent_address)\n bet['opponent_address'] = opponent_address\n bettor_address = bet['address']\n total_amount = amount * 2\n commission = total_amount * __commission_rate.get()\n payout = total_amount - commission\n if num2 > num1:\n winner = opponent_address\n else:\n winner = bettor_address\n currency.transfer(amount=payout, to=winner)\n __bets[bet_id] = None\n return (\n f'Bet accepted and resolved. Winner is {winner}. Total amount {payout} transferred after {commission} commission.'\n )\n\n\n@__export('con_dice3')\ndef remove_bet(bet_id: int):\n assert ctx.caller == __owner.get(), 'Only the owner can remove bets.'\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n bettor_address = bet['address']\n amount = bet['amount']\n currency.transfer(amount=amount, to=bettor_address)\n if 'opponent_address' in bet:\n opponent_address = bet['opponent_address']\n currency.transfer(amount=amount, to=opponent_address)\n __bets[bet_id] = None\n return f'Bet ID {bet_id} has been removed and funds refunded.'\n\n\n@__export('con_dice3')\ndef change_commission_rate(new_rate: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert 0 <= new_rate <= 1, 'Commission rate must be between 0 and 1.'\n __commission_rate.set(new_rate)\n return f'Commission rate updated to {new_rate * 100}%.'\n\n\n@__export('con_dice3')\ndef balance():\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n return currency.balance_of(ctx.this)\n\n\n@__export('con_dice3')\ndef withdraw(amount: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert amount > 0, 'Amount must be greater than zero.'\n contract_balance = currency.balance_of(ctx.this)\n assert amount <= contract_balance, 'Insufficient contract balance.'\n currency.transfer(amount=amount, to=__owner.get())\n return f\"Successfully withdrew {amount} to the owner's wallet.\"\n\n\n@__export('con_dice3')\ndef change_cost(new_cost: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert new_cost > 0, 'Cost must be greater than zero.'\n __cost.set(new_cost)\n return f'Cost updated to {new_cost}.'\n\n\n@__export('con_dice3')\ndef change_reward(new_reward: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert new_reward > 0, 'Reward must be greater than zero.'\n __reward.set(new_reward)\n return f'Reward updated to {new_reward}.'\n" + }, + { + "key": "con_dice3.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_dice3.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 6, + 1, + 37, + 50, + 0 + ] + } + }, + { + "key": "con_dice3.bet_counter", + "value": 10 + }, + { + "key": "con_dice3.bets:10", + "value": { + "name": "Maicol", + "address": "f0222f00943416a8cacb2160e4af75faff36660b87e99279a045af1f4182dd1f", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice3.bets:8", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice3.bets:9", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice3.commission_rate", + "value": { + "__fixed__": "0.05" + } + }, + { + "key": "con_dice3.cost", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_dice3.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_dice3.reward", + "value": { + "__fixed__": "2" + } + }, + { + "key": "con_dice4.__code__", + "value": "import currency\n__owner = Variable(contract='con_dice4', name='owner')\n__cost = Variable(contract='con_dice4', name='cost')\n__reward = Variable(contract='con_dice4', name='reward')\n__bet_counter = Variable(contract='con_dice4', name='bet_counter')\n__bets = Hash(default_value=None, contract='con_dice4', name='bets')\n__commission_rate = Variable(contract='con_dice4', name='commission_rate')\n\n\ndef ____():\n __owner.set(ctx.caller)\n __cost.set(decimal('1.0'))\n __reward.set(decimal('2.0'))\n __bet_counter.set(0)\n __commission_rate.set(decimal('0.05'))\n\n\n@__export('con_dice4')\ndef transfer_if_greater(num1: int, num2: int, recipient: str):\n assert isinstance(num1, int) and isinstance(num2, int\n ), 'Both num1 and num2 must be integers.'\n assert isinstance(recipient, str\n ), 'Recipient must be a valid wallet address.'\n currency.transfer_from(amount=__cost.get(), to=ctx.this, main_account=\n ctx.caller)\n if num2 > num1:\n assert currency.balance_of(ctx.this) >= __reward.get(\n ), 'Contract has insufficient balance to pay the reward.'\n currency.transfer(amount=__reward.get(), to=recipient)\n return f'Player wins! Transferred {__reward.get()} to {recipient}.'\n else:\n return (\n f'Player loses! {__cost.get()} tokens were added to the contract.')\n\n\n@__export('con_dice4')\ndef place_bet(name: str, address: str, amount: float) ->str:\n assert amount > 0, 'Bet amount must be greater than zero.'\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n currency.transfer_from(amount=amount, to=ctx.this, main_account=address)\n bet_id = __get_next_bet_id()\n __bets[bet_id] = {'name': name, 'address': address, 'amount': amount}\n return f'Bet placed with ID {bet_id}.'\n\n\ndef __get_next_bet_id():\n current_id = __bet_counter.get()\n next_id = current_id + 1\n __bet_counter.set(next_id)\n return next_id\n\n\n@__export('con_dice4')\ndef get_bets():\n bet_list = []\n current_id = __bet_counter.get()\n for bet_id in range(1, current_id + 1):\n bet = __bets[bet_id]\n if bet is not None:\n bet_list.append({'bet_id': bet_id, 'name': bet['name'],\n 'amount': bet['amount']})\n return bet_list\n\n\n@__export('con_dice4')\ndef accept_bet(bet_id: int, opponent_address: str, num1: int, num2: int):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n assert 'opponent_address' not in bet, 'Bet has already been accepted and resolved.'\n assert opponent_address != bet['address'\n ], 'Opponent cannot be the same as the bettor.'\n amount = bet['amount']\n currency.transfer_from(amount=amount, to=ctx.this, main_account=\n opponent_address)\n bet['name'] = opponent_address\n bettor_address = bet['name']\n total_amount = amount * 2\n commission = total_amount * __commission_rate.get()\n payout = total_amount - commission\n if num2 > num1:\n winner = opponent_address\n else:\n winner = bettor_address\n currency.transfer(amount=payout, to=winner)\n __bets[bet_id] = None\n return (\n f'Bet accepted and resolved. Winner is {winner}. Total amount {payout} transferred after {commission} commission.'\n )\n\n\n@__export('con_dice4')\ndef remove_bet(bet_id: int):\n assert ctx.caller == __owner.get(), 'Only the owner can remove bets.'\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n bettor_address = bet['address']\n amount = bet['amount']\n currency.transfer(amount=amount, to=bettor_address)\n if 'opponent_address' in bet:\n opponent_address = bet['opponent_address']\n currency.transfer(amount=amount, to=opponent_address)\n __bets[bet_id] = None\n return f'Bet ID {bet_id} has been removed and funds refunded.'\n\n\n@__export('con_dice4')\ndef get_bet(bet_id: int):\n \"\"\"\n Retrieve details of a specific bet by its ID.\n \"\"\"\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n return {'bet_id': bet_id, 'name': bet['name'], 'address': bet['address'\n ], 'amount': bet['amount']}\n\n\n@__export('con_dice4')\ndef change_commission_rate(new_rate: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert 0 <= new_rate <= 1, 'Commission rate must be between 0 and 1.'\n __commission_rate.set(new_rate)\n return f'Commission rate updated to {new_rate * 100}%.'\n\n\n@__export('con_dice4')\ndef balance():\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n return currency.balance_of(ctx.this)\n\n\n@__export('con_dice4')\ndef withdraw(amount: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert amount > 0, 'Amount must be greater than zero.'\n contract_balance = currency.balance_of(ctx.this)\n assert amount <= contract_balance, 'Insufficient contract balance.'\n currency.transfer(amount=amount, to=__owner.get())\n return f\"Successfully withdrew {amount} to the owner's wallet.\"\n\n\n@__export('con_dice4')\ndef change_cost(new_cost: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert new_cost > 0, 'Cost must be greater than zero.'\n __cost.set(new_cost)\n return f'Cost updated to {new_cost}.'\n\n\n@__export('con_dice4')\ndef change_reward(new_reward: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert new_reward > 0, 'Reward must be greater than zero.'\n __reward.set(new_reward)\n return f'Reward updated to {new_reward}.'\n" + }, + { + "key": "con_dice4.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_dice4.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 6, + 3, + 6, + 10, + 0 + ] + } + }, + { + "key": "con_dice4.bet_counter", + "value": 2 + }, + { + "key": "con_dice4.bets:2", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice4.commission_rate", + "value": { + "__fixed__": "0.05" + } + }, + { + "key": "con_dice4.cost", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_dice4.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_dice4.reward", + "value": { + "__fixed__": "2" + } + }, + { + "key": "con_dice5.__code__", + "value": "import currency\n__owner = Variable(contract='con_dice5', name='owner')\n__cost = Variable(contract='con_dice5', name='cost')\n__reward = Variable(contract='con_dice5', name='reward')\n__bet_counter = Variable(contract='con_dice5', name='bet_counter')\n__bets = Hash(default_value=None, contract='con_dice5', name='bets')\n__commission_rate = Variable(contract='con_dice5', name='commission_rate')\n\n\ndef ____():\n __owner.set(ctx.caller)\n __cost.set(decimal('1.0'))\n __reward.set(decimal('2.0'))\n __bet_counter.set(0)\n __commission_rate.set(decimal('0.05'))\n\n\n@__export('con_dice5')\ndef transfer_if_greater(num1: int, num2: int, recipient: str):\n assert isinstance(num1, int) and isinstance(num2, int\n ), 'Both num1 and num2 must be integers.'\n assert isinstance(recipient, str\n ), 'Recipient must be a valid wallet address.'\n currency.transfer_from(amount=__cost.get(), to=ctx.this, main_account=\n ctx.caller)\n if num2 > num1:\n assert currency.balance_of(ctx.this) >= __reward.get(\n ), 'Contract has insufficient balance to pay the reward.'\n currency.transfer(amount=__reward.get(), to=recipient)\n return f'Player wins! Transferred {__reward.get()} to {recipient}.'\n else:\n return (\n f'Player loses! {__cost.get()} tokens were added to the contract.')\n\n\n@__export('con_dice5')\ndef place_bet(name: str, address: str, amount: float) ->str:\n assert amount > 0, 'Bet amount must be greater than zero.'\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n currency.transfer_from(amount=amount, to=ctx.this, main_account=address)\n bet_id = __get_next_bet_id()\n __bets[bet_id] = {'name': name, 'address': address, 'amount': amount}\n return f'Bet placed with ID {bet_id}.'\n\n\ndef __get_next_bet_id():\n current_id = __bet_counter.get()\n next_id = current_id + 1\n __bet_counter.set(next_id)\n return next_id\n\n\n@__export('con_dice5')\ndef get_bets():\n bet_list = []\n current_id = __bet_counter.get()\n for bet_id in range(1, current_id + 1):\n bet = __bets[bet_id]\n if bet is not None:\n bet_list.append({'bet_id': bet_id, 'name': bet['name'],\n 'amount': bet['amount']})\n return bet_list\n\n\n@__export('con_dice5')\ndef accept_bet(bet_id: int, opponent_name: str, num1: int, num2: int):\n \"\"\"\n Accepts a bet and resolves it by determining the winner.\n The winner's name is returned instead of their address.\n \"\"\"\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n assert 'opponent_name' not in bet, 'Bet has already been accepted and resolved.'\n assert opponent_name != bet['name'\n ], 'Opponent cannot be the same as the bettor.'\n amount = bet['amount']\n currency.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n bettor_name = bet['name']\n total_amount = amount * 2\n commission = total_amount * __commission_rate.get()\n payout = total_amount - commission\n if num2 > num1:\n winner = opponent_name\n else:\n winner = bettor_name\n currency.transfer(amount=payout, to=ctx.caller if winner ==\n opponent_name else bet['address'])\n __bets[bet_id] = None\n return (\n f'Bet accepted and resolved. Winner is {winner}. Total amount {payout} transferred after {commission} commission.'\n )\n\n\n@__export('con_dice5')\ndef remove_bet(bet_id: int):\n assert ctx.caller == __owner.get(), 'Only the owner can remove bets.'\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n bettor_address = bet['address']\n amount = bet['amount']\n currency.transfer(amount=amount, to=bettor_address)\n if 'opponent_address' in bet:\n opponent_address = bet['opponent_address']\n currency.transfer(amount=amount, to=opponent_address)\n __bets[bet_id] = None\n return f'Bet ID {bet_id} has been removed and funds refunded.'\n\n\n@__export('con_dice5')\ndef get_bet(bet_id: int):\n \"\"\"\n Retrieve details of a specific bet by its ID.\n \"\"\"\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n return {'bet_id': bet_id, 'name': bet['name'], 'address': bet['address'\n ], 'amount': bet['amount']}\n\n\n@__export('con_dice5')\ndef change_commission_rate(new_rate: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert 0 <= new_rate <= 1, 'Commission rate must be between 0 and 1.'\n __commission_rate.set(new_rate)\n return f'Commission rate updated to {new_rate * 100}%.'\n\n\n@__export('con_dice5')\ndef balance():\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n return currency.balance_of(ctx.this)\n\n\n@__export('con_dice5')\ndef withdraw(amount: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert amount > 0, 'Amount must be greater than zero.'\n contract_balance = currency.balance_of(ctx.this)\n assert amount <= contract_balance, 'Insufficient contract balance.'\n currency.transfer(amount=amount, to=__owner.get())\n return f\"Successfully withdrew {amount} to the owner's wallet.\"\n\n\n@__export('con_dice5')\ndef change_cost(new_cost: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert new_cost > 0, 'Cost must be greater than zero.'\n __cost.set(new_cost)\n return f'Cost updated to {new_cost}.'\n\n\n@__export('con_dice5')\ndef change_reward(new_reward: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert new_reward > 0, 'Reward must be greater than zero.'\n __reward.set(new_reward)\n return f'Reward updated to {new_reward}.'\n" + }, + { + "key": "con_dice5.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_dice5.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 6, + 3, + 42, + 30, + 0 + ] + } + }, + { + "key": "con_dice5.bet_counter", + "value": 5 + }, + { + "key": "con_dice5.bets:1", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice5.bets:2", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice5.bets:3", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice5.bets:4", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice5.bets:5", + "value": { + "name": "@revolutionx", + "address": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "amount": { + "__fixed__": "1" + } + } + }, + { + "key": "con_dice5.commission_rate", + "value": { + "__fixed__": "0.05" + } + }, + { + "key": "con_dice5.cost", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_dice5.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_dice5.reward", + "value": { + "__fixed__": "2" + } + }, + { + "key": "con_dice6.__code__", + "value": "import currency\n__owner = Variable(contract='con_dice6', name='owner')\n__cost = Variable(contract='con_dice6', name='cost')\n__reward = Variable(contract='con_dice6', name='reward')\n__bet_counter = Variable(contract='con_dice6', name='bet_counter')\n__bets = Hash(default_value=None, contract='con_dice6', name='bets')\n__commission_rate = Variable(contract='con_dice6', name='commission_rate')\n\n\ndef ____():\n __owner.set(ctx.caller)\n __cost.set(decimal('1.0'))\n __reward.set(decimal('2.0'))\n __bet_counter.set(0)\n __commission_rate.set(decimal('0.05'))\n\n\n@__export('con_dice6')\ndef transfer_if_greater(num1: int, num2: int, recipient: str):\n assert isinstance(num1, int) and isinstance(num2, int\n ), 'Both num1 and num2 must be integers.'\n assert isinstance(recipient, str\n ), 'Recipient must be a valid wallet address.'\n currency.transfer_from(amount=__cost.get(), to=ctx.this, main_account=\n ctx.caller)\n if num2 > num1:\n assert currency.balance_of(ctx.this) >= __reward.get(\n ), 'Contract has insufficient balance to pay the reward.'\n currency.transfer(amount=__reward.get(), to=recipient)\n return f'Player wins! Transferred {__reward.get()} to {recipient}.'\n else:\n return (\n f'Player loses! {__cost.get()} tokens were added to the contract.')\n\n\n@__export('con_dice6')\ndef place_bet(name: str, address: str, amount: float) ->str:\n assert amount > 0, 'Bet amount must be greater than zero.'\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n currency.transfer_from(amount=amount, to=ctx.this, main_account=address)\n bet_id = __get_next_bet_id()\n __bets[bet_id] = {'name': name, 'address': address, 'amount': amount}\n return f'Bet placed with ID {bet_id}.'\n\n\ndef __get_next_bet_id():\n current_id = __bet_counter.get()\n next_id = current_id + 1\n __bet_counter.set(next_id)\n return next_id\n\n\n@__export('con_dice6')\ndef get_bets():\n bet_list = []\n current_id = __bet_counter.get()\n for bet_id in range(1, current_id + 1):\n bet = __bets[bet_id]\n if bet is not None:\n bet_list.append({'bet_id': bet_id, 'name': bet['name'],\n 'amount': bet['amount']})\n return bet_list\n\n\n@__export('con_dice6')\ndef accept_bet(bet_id: int, opponent_address: str, num1: int, num2: int):\n \"\"\"\n Accepts a bet and resolves it by determining the winner.\n Returns the name of the bettor if they win, otherwise returns 'opponent_wins'.\n \"\"\"\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n assert 'resolved' not in bet, 'Bet has already been accepted and resolved.'\n assert opponent_address != bet['address'\n ], 'Opponent cannot be the same as the bettor.'\n bettor_name = bet['name']\n bettor_address = bet['address']\n amount = bet['amount']\n currency.transfer_from(amount=amount, to=ctx.this, main_account=\n opponent_address)\n total_amount = amount * 2\n commission = total_amount * __commission_rate.get()\n payout = total_amount - commission\n if num2 > num1:\n winner_address = opponent_address\n currency.transfer(amount=payout, to=winner_address)\n __bets[bet_id] = None\n return 'opponent_wins'\n else:\n winner_address = bettor_address\n currency.transfer(amount=payout, to=winner_address)\n __bets[bet_id] = None\n return bettor_name\n\n\n@__export('con_dice6')\ndef remove_bet(bet_id: int):\n assert ctx.caller == __owner.get(), 'Only the owner can remove bets.'\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n bettor_address = bet['address']\n amount = bet['amount']\n currency.transfer(amount=amount, to=bettor_address)\n if 'opponent_address' in bet:\n opponent_address = bet['opponent_address']\n currency.transfer(amount=amount, to=opponent_address)\n __bets[bet_id] = None\n return f'Bet ID {bet_id} has been removed and funds refunded.'\n\n\n@__export('con_dice6')\ndef get_bet(bet_id: int):\n \"\"\"\n Retrieve details of a specific bet by its ID.\n \"\"\"\n bet = __bets[bet_id]\n assert bet is not None, 'Bet ID does not exist.'\n return {'bet_id': bet_id, 'name': bet['name'], 'address': bet['address'\n ], 'amount': bet['amount']}\n\n\n@__export('con_dice6')\ndef change_commission_rate(new_rate: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert 0 <= new_rate <= 1, 'Commission rate must be between 0 and 1.'\n __commission_rate.set(new_rate)\n return f'Commission rate updated to {new_rate * 100}%.'\n\n\n@__export('con_dice6')\ndef balance():\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n return currency.balance_of(ctx.this)\n\n\n@__export('con_dice6')\ndef withdraw(amount: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert amount > 0, 'Amount must be greater than zero.'\n contract_balance = currency.balance_of(ctx.this)\n assert amount <= contract_balance, 'Insufficient contract balance.'\n currency.transfer(amount=amount, to=__owner.get())\n return f\"Successfully withdrew {amount} to the owner's wallet.\"\n\n\n@__export('con_dice6')\ndef change_cost(new_cost: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert new_cost > 0, 'Cost must be greater than zero.'\n __cost.set(new_cost)\n return f'Cost updated to {new_cost}.'\n\n\n@__export('con_dice6')\ndef change_reward(new_reward: float):\n assert ctx.caller == __owner.get(\n ), 'Only the owner can access this function.'\n assert new_reward > 0, 'Reward must be greater than zero.'\n __reward.set(new_reward)\n return f'Reward updated to {new_reward}.'\n" + }, + { + "key": "con_dice6.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_dice6.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 6, + 3, + 50, + 28, + 0 + ] + } + }, + { + "key": "con_dice6.bet_counter", + "value": 4 + }, + { + "key": "con_dice6.bets:3", + "value": { + "name": "Maicol", + "address": "f0222f00943416a8cacb2160e4af75faff36660b87e99279a045af1f4182dd1f", + "amount": { + "__fixed__": "5" + } + } + }, + { + "key": "con_dice6.commission_rate", + "value": { + "__fixed__": "0.05" + } + }, + { + "key": "con_dice6.cost", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_dice6.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_dice6.reward", + "value": { + "__fixed__": "2" + } + }, + { + "key": "con_games.__code__", + "value": "__owner = Variable(contract='con_games', name='owner')\n__game_counter = Variable(contract='con_games', name='game_counter')\n__games = Hash(default_value=None, contract='con_games', name='games')\n\n\ndef ____():\n __owner.set(ctx.caller)\n __game_counter.set(0)\n\n\n@__export('con_games')\ndef create_game(name: str, image: str, description: str, external_link: str):\n assert ctx.caller == __owner.get(), 'Solo el due\u00f1o puede crear juegos.'\n game_id = __game_counter.get() + 1\n __game_counter.set(game_id)\n __games[game_id] = {'name': name, 'image': image, 'description':\n description, 'external_link': external_link}\n return f'Juego creado con ID {game_id}'\n\n\n@__export('con_games')\ndef update_game(game_id: int, name: str=None, image: str=None, description:\n str=None, external_link: str=None):\n assert ctx.caller == __owner.get(), 'Solo el due\u00f1o puede modificar juegos.'\n game = __games[game_id]\n assert game is not None, 'El ID del juego no existe.'\n if name is not None:\n game['name'] = name\n if image is not None:\n game['image'] = image\n if description is not None:\n game['description'] = description\n if external_link is not None:\n game['external_link'] = external_link\n __games[game_id] = game\n return f'Juego ID {game_id} actualizado.'\n\n\n@__export('con_games')\ndef get_game(game_id: int):\n game = __games[game_id]\n assert game is not None, 'El ID del juego no existe.'\n return game\n\n\n@__export('con_games')\ndef list_games():\n results = []\n count = __game_counter.get()\n for i in range(1, count + 1):\n g = __games[i]\n if g is not None:\n results.append({'game_id': i, 'name': g['name'], 'image': g[\n 'image'], 'description': g['description'], 'external_link':\n g['external_link']})\n return results\n" + }, + { + "key": "con_games.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_games.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 13, + 16, + 41, + 45, + 0 + ] + } + }, + { + "key": "con_games.game_counter", + "value": 2 + }, + { + "key": "con_games.games:1", + "value": { + "name": "pruebas", + "image": "imagen", + "description": "descripcion", + "external_link": "link" + } + }, + { + "key": "con_games.games:2", + "value": { + "name": "pruebas2", + "image": "imagen2", + "description": "descripcion2", + "external_link": "link2" + } + }, + { + "key": "con_games.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_gamess.__code__", + "value": "__owner = Variable(contract='con_gamess', name='owner')\n__game_counter = Variable(contract='con_gamess', name='game_counter')\n__games = Hash(default_value=None, contract='con_gamess', name='games')\n\n\ndef ____():\n __owner.set(ctx.caller)\n __game_counter.set(0)\n\n\n@__export('con_gamess')\ndef create_game(name: str, image: str, description: str, external_link: str):\n assert ctx.caller == __owner.get(), 'Solo el due\u00f1o puede crear juegos.'\n game_id = __game_counter.get() + 1\n __game_counter.set(game_id)\n __games[game_id] = {'name': name, 'image': image, 'description':\n description, 'external_link': external_link}\n return f'Juego creado con ID {game_id}'\n\n\n@__export('con_gamess')\ndef update_game(game_id: int, name: str=None, image: str=None, description:\n str=None, external_link: str=None):\n assert ctx.caller == __owner.get(), 'Solo el due\u00f1o puede modificar juegos.'\n game = __games[game_id]\n assert game is not None, 'El ID del juego no existe.'\n if name is not None:\n game['name'] = name\n if image is not None:\n game['image'] = image\n if description is not None:\n game['description'] = description\n if external_link is not None:\n game['external_link'] = external_link\n __games[game_id] = game\n return f'Juego ID {game_id} actualizado.'\n\n\n@__export('con_gamess')\ndef get_game(game_id: int):\n game = __games[game_id]\n assert game is not None, 'El ID del juego no existe.'\n return game\n\n\n@__export('con_gamess')\ndef list_games():\n results = []\n count = __game_counter.get()\n for i in range(1, count + 1):\n g = __games[i]\n if g is not None:\n results.append({'game_id': i, 'name': g['name'], 'image': g[\n 'image'], 'description': g['description'], 'external_link':\n g['external_link']})\n return results\n" + }, + { + "key": "con_gamess.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_gamess.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 14, + 11, + 45, + 57, + 0 + ] + } + }, + { + "key": "con_gamess.game_counter", + "value": 0 + }, + { + "key": "con_gamess.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_getthis.__code__", + "value": "@__export('con_getthis')\ndef exported():\n return 0\n\n\n@__export('con_getthis')\ndef getthis():\n exported()\n return ctx.this\n" + }, + { + "key": "con_getthis.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_getthis.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 30, + 15, + 30, + 54, + 0 + ] + } + }, + { + "key": "con_hello.__code__", + "value": "__balances = Hash(default_value=0, contract='con_hello', name='balances')\n__metadata = Hash(contract='con_hello', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_hello')\ndef hello():\n return 'hello'\n" + }, + { + "key": "con_hello.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_hello.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 20, + 9, + 50, + 39, + 0 + ] + } + }, + { + "key": "con_hello.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": 1000000 + }, + { + "key": "con_hello.metadata:operator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_hello.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_hello.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_hello.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_hello.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_hello1.__code__", + "value": "__balances = Hash(default_value=0, contract='con_hello1', name='balances')\n__metadata = Hash(contract='con_hello1', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_hello1')\ndef hello():\n return 'hello'\n" + }, + { + "key": "con_hello1.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_hello1.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 20, + 9, + 51, + 3, + 0 + ] + } + }, + { + "key": "con_hello1.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": 1000000 + }, + { + "key": "con_hello1.metadata:operator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_hello1.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_hello1.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_hello1.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_hello1.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_helloworld.__code__", + "value": "def ____():\n pass\n\n\n@__export('con_helloworld')\ndef test():\n return 'Hello, World!'\n" + }, + { + "key": "con_helloworld.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_helloworld.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 1, + 13, + 48, + 11, + 0 + ] + } + }, + { + "key": "con_importme.__code__", + "value": "__balances = Hash(default_value=0, contract='con_importme', name='balances')\n__metadata = Hash(contract='con_importme', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = (\n ''\n )\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_importme')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_importme')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_importme')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_importme')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_importme')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_importme.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_importme.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 20, + 6, + 13, + 41, + 0 + ] + } + }, + { + "key": "con_importme.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": 1000000 + }, + { + "key": "con_importme.metadata:operator", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_importme.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_importme.metadata:token_name", + "value": "" + }, + { + "key": "con_importme.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_importme.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_issue.__code__", + "value": "def ____():\n pass\n\n\n@__export('con_issue')\ndef test():\n long_string = 'a' * 1000\n return long_string\n\n\n@__export('con_issue')\ndef test_normal():\n long_string = 'a' * 1000\n return None\n" + }, + { + "key": "con_issue.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_issue.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 6, + 12, + 49, + 16, + 0 + ] + } + }, + { + "key": "con_issue_num.__code__", + "value": "def ____():\n pass\n\n\n@__export('con_issue_num')\ndef test():\n big_number = int('9' * 1000)\n return big_number\n\n\n@__export('con_issue_num')\ndef test_normal():\n big_number = int('9' * 1000)\n return None\n" + }, + { + "key": "con_issue_num.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_issue_num.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 7, + 12, + 7, + 36, + 0 + ] + } + }, + { + "key": "con_logevent_test_token.__code__", + "value": "__balances = Hash(default_value=0, contract='con_logevent_test_token', name\n ='balances')\n__metadata = Hash(contract='con_logevent_test_token', name='metadata')\n__TransferEvent = LogEvent(event='Transfer', params={'from': {'type': str,\n 'idx': True}, 'to': {'type': str, 'idx': True}, 'amount': {'type': (int,\n float, decimal)}}, contract='con_logevent_test_token', name='TransferEvent'\n )\n__ApproveEvent = LogEvent(event='Approve', params={'from': {'type': str,\n 'idx': True}, 'to': {'type': str, 'idx': True}, 'amount': {'type': (int,\n float, decimal)}}, contract='con_logevent_test_token', name='ApproveEvent')\n__ChangeMetadataEvent = LogEvent(event='ChangeMetadata', params={'key': {\n 'type': str, 'idx': True}, 'value': {'type': str, 'idx': False}},\n contract='con_logevent_test_token', name='ChangeMetadataEvent')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'LOG EVENT TEST TOKEN'\n __metadata['token_symbol'] = 'LETT'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_logevent_test_token')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n __ChangeMetadataEvent({'key': key, 'value': value})\n\n\n@__export('con_logevent_test_token')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n __TransferEvent({'from': ctx.caller, 'to': to, 'amount': amount})\n return f'Sent {amount} to {to}'\n\n\n@__export('con_logevent_test_token')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] = amount\n __ApproveEvent({'from': ctx.caller, 'to': to, 'amount': amount})\n return f'Approved {amount} for {to}'\n\n\n@__export('con_logevent_test_token')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, f'Not enough coins approved to send! You have {__balances[main_account, ctx.caller]} and are trying to spend {amount}'\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n __TransferEvent({'from': main_account, 'to': to, 'amount': amount})\n return f'Sent {amount} to {to} from {main_account}'\n" + }, + { + "key": "con_logevent_test_token.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_logevent_test_token.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 13, + 16, + 33, + 30, + 0 + ] + } + }, + { + "key": "con_logevent_test_token.balances:1565ff3ef4e54a73e5782f5c1c30c7106142370f90495ef3bb6dd6c2e17dc158", + "value": 1200 + }, + { + "key": "con_logevent_test_token.balances:con_dex_pairs2", + "value": { + "__fixed__": "1E+3" + } + }, + { + "key": "con_logevent_test_token.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": { + "__fixed__": "9.978E+5" + } + }, + { + "key": "con_logevent_test_token.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931:con_dex22", + "value": { + "__fixed__": "1E+2" + } + }, + { + "key": "con_logevent_test_token.metadata:operator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_logevent_test_token.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_logevent_test_token.metadata:token_name", + "value": "LOG EVENT TEST TOKEN" + }, + { + "key": "con_logevent_test_token.metadata:token_symbol", + "value": "LETT" + }, + { + "key": "con_logevent_test_token.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_mathtest.__code__", + "value": "@__export('con_mathtest')\ndef mathtest():\n x = 1\n u = decimal('2.00903160154461e-16')\n v = decimal('2.00000000002')\n assert (u + x - decimal('0.003') * x) * (v - x * decimal('0.997') * v /\n (u + decimal('0.997') * x)) >= u * v, 'ERROR'\n" + }, + { + "key": "con_mathtest.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_mathtest.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 4, + 11, + 13, + 37, + 0 + ] + } + }, + { + "key": "con_messaging.__code__", + "value": "__messages = Hash(default_value='', contract='con_messaging', name='messages')\n\n\n@__export('con_messaging')\ndef save_msg(msg: str, recipient: str):\n if __messages[recipient, 'id'] == '':\n __messages[recipient, 'id'] = 0\n msg_id = __messages[recipient, 'id']\n __messages[recipient, msg_id, 'message'] = msg\n __messages[recipient, msg_id, 'sender'] = ctx.signer\n return f'{recipient}:{msg_id}'\n" + }, + { + "key": "con_messaging.__developer__", + "value": "0813b6d7d7507c5f735821c32d06cd8f53e6d29807acb7bc92ab0dfe0417386e" + }, + { + "key": "con_messaging.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 6, + 23, + 30, + 18, + 0 + ] + } + }, + { + "key": "con_msg.__code__", + "value": "__counter = Variable(contract='con_msg', name='counter')\n__messages = Hash(contract='con_msg', name='messages')\n\n\ndef ____():\n __counter.set(0)\n\n\n@__export('con_msg')\ndef save_msg(msg: str, recipient: str):\n __counter.set(__counter.get() + 1)\n __messages[__counter.get()] = {'sender': ctx.signer, 'message': msg,\n 'receiver': recipient, 'timestamp': now}\n" + }, + { + "key": "con_msg.__developer__", + "value": "0813b6d7d7507c5f735821c32d06cd8f53e6d29807acb7bc92ab0dfe0417386e" + }, + { + "key": "con_msg.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 8, + 0, + 47, + 18, + 0 + ] + } + }, + { + "key": "con_msg.counter", + "value": 12 + }, + { + "key": "con_msg.messages:1", + "value": { + "sender": "0813b6d7d7507c5f735821c32d06cd8f53e6d29807acb7bc92ab0dfe0417386e", + "message": "this is a message", + "receiver": "dave", + "timestamp": { + "__time__": [ + 2024, + 12, + 8, + 0, + 47, + 32, + 0 + ] + } + } + }, + { + "key": "con_msg.messages:10", + "value": { + "sender": "ca9aeee192854dc55a6d3e211bf858cc3ecd41e8b86a55c07740ece29f349597", + "message": "75d00f94becacba7078eacd3d2e68736fc691cb85ffc39d6923a32b50e5bf17855fdf7d555ed67287ba4d6ebb4d453defbf7", + "receiver": "13ca9a62d10cbc28d55408e0a85d31f5c059fe3bb49316538e1d03064f3f2c8e", + "timestamp": { + "__time__": [ + 2024, + 12, + 8, + 10, + 28, + 55, + 0 + ] + } + } + }, + { + "key": "con_msg.messages:11", + "value": { + "sender": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "message": "ead1304c7481711f1fd112183790590dc32423b19e5f7cb4d1d5a8e6438c045903bfb410d6051545bd750a8bffbf021e436e650a74", + "receiver": "dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6", + "timestamp": { + "__time__": [ + 2024, + 12, + 8, + 10, + 35, + 10, + 0 + ] + } + } + }, + { + "key": "con_msg.messages:12", + "value": { + "sender": "dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6", + "message": "95c26e04eac52173b073e6ee28bc91b3353a13aa34a600557e1de628c86fa91dc22ddb5d0eb41dce8ce584d2fc4653ed7e981680e7", + "receiver": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "timestamp": { + "__time__": [ + 2024, + 12, + 8, + 10, + 38, + 27, + 0 + ] + } + } + }, + { + "key": "con_msg.messages:2", + "value": { + "sender": "0813b6d7d7507c5f735821c32d06cd8f53e6d29807acb7bc92ab0dfe0417386e", + "message": "this is another one", + "receiver": "eric", + "timestamp": { + "__time__": [ + 2024, + 12, + 8, + 0, + 48, + 10, + 0 + ] + } + } + }, + { + "key": "con_msg.messages:3", + "value": { + "sender": "0813b6d7d7507c5f735821c32d06cd8f53e6d29807acb7bc92ab0dfe0417386e", + "message": "DAMN", + "receiver": "sandy", + "timestamp": { + "__time__": [ + 2024, + 12, + 8, + 0, + 48, + 32, + 0 + ] + } + } + }, + { + "key": "con_msg.messages:4", + "value": { + "sender": "dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6", + "message": "55c20e92d5d4251dc21238227ea50a4753a3487afceaa52979ebed71cd058b3ea26a42adbca45d1f7be2767b2e057d2a21d3b06649", + "receiver": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "timestamp": { + "__time__": [ + 2024, + 12, + 8, + 9, + 21, + 54, + 0 + ] + } + } + }, + { + "key": "con_msg.messages:5", + "value": { + "sender": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "message": "716c794d0da2b258236517a754c58f046af9ac5a5be07750c338c8d372c30b2a8f55a7b7c9c9fe6b9f64884f5eb9a208d5a9ac337038", + "receiver": "dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6", + "timestamp": { + "__time__": [ + 2024, + 12, + 8, + 9, + 23, + 16, + 0 + ] + } + } + }, + { + "key": "con_msg.messages:6", + "value": { + "sender": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "message": "19d2cfa41dfbe3c0d2cd98b3a3408dd734b2085547e4410375be03ac7370e77c7995f12e1420c3f25f2d19646155850fda02e7f4793a1045", + "receiver": "dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6", + "timestamp": { + "__time__": [ + 2024, + 12, + 8, + 9, + 33, + 24, + 0 + ] + } + } + }, + { + "key": "con_msg.messages:7", + "value": { + "sender": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "message": "b5973a0ef4f0c79d2bbd28fee0842b9883c601a8d09bbf80322e57358727955764917b47b82768ef59d3368e335ab1c1ed636a", + "receiver": "dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6", + "timestamp": { + "__time__": [ + 2024, + 12, + 8, + 10, + 11, + 43, + 0 + ] + } + } + }, + { + "key": "con_msg.messages:8", + "value": { + "sender": "dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6", + "message": "91e201fb8e9f0231b3bba256a044a145c5363a36e304791356065ca5ff49467b840d2cb7feca160a100b9ab7ed808e4a46ecd18e", + "receiver": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "timestamp": { + "__time__": [ + 2024, + 12, + 8, + 10, + 18, + 12, + 0 + ] + } + } + }, + { + "key": "con_msg.messages:9", + "value": { + "sender": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "message": "55beb1b339e4e988f0b5548b5588c94f142cf2da6f972ad5b24a1cf912a9881ddedb93a41cf112025cf4aae718967557d1dbccf512eeb59f3d7adcd161", + "receiver": "dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6", + "timestamp": { + "__time__": [ + 2024, + 12, + 8, + 10, + 20, + 32, + 0 + ] + } + } + }, + { + "key": "con_msg_main.__code__", + "value": "__counter = Variable(contract='con_msg_main', name='counter')\n__messages = Hash(contract='con_msg_main', name='messages')\n\n\ndef ____():\n __counter.set(0)\n\n\n@__export('con_msg_main')\ndef save_msg(msg: str, recipient: str):\n __counter.set(__counter.get() + 1)\n __messages[__counter.get()] = {'sender': ctx.signer, 'message': msg,\n 'receiver': recipient, 'timestamp': now}\n" + }, + { + "key": "con_msg_main.__developer__", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_msg_main.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 8, + 10, + 39, + 27, + 0 + ] + } + }, + { + "key": "con_msg_main.counter", + "value": 1 + }, + { + "key": "con_msg_main.messages:1", + "value": { + "sender": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9", + "message": "cdd844c372d4d7ea662bcd0352796087ad9ebbacda25b34cdde174a11ccef35a66a3e78c9d81ed7906f3dde8e55aeaa80bc2197a", + "receiver": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9", + "timestamp": { + "__time__": [ + 2024, + 12, + 12, + 4, + 35, + 7, + 0 + ] + } + } + }, + { + "key": "con_multest.__code__", + "value": "__val = Variable(contract='con_multest', name='val')\n\n\ndef ____():\n __val.set(1)\n\n\n@__export('con_multest')\ndef mul(a: float):\n t = __val.get()\n t *= a\n __val.set(t)\n\n\n@__export('con_multest')\ndef ret():\n return __val.get()\n" + }, + { + "key": "con_multest.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_multest.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 10, + 14, + 30, + 51, + 0 + ] + } + }, + { + "key": "con_multest.val", + "value": { + "__fixed__": "1E+29" + } + }, + { + "key": "con_multi12345.__code__", + "value": "I = importlib\n\n\n@__export('con_multi12345')\ndef send(addresses: list, amount: float, contract: str):\n token = I.import_module(contract)\n for address in addresses:\n token.transfer_from(amount=amount, to=address, main_account=ctx.signer)\n" + }, + { + "key": "con_multi12345.__developer__", + "value": "b6504cf056e264a4c1932d5de6893d110db5459ab4f742eb415d98ed989bb98d" + }, + { + "key": "con_multi12345.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 14, + 12, + 48, + 58, + 0 + ] + } + }, + { + "key": "con_multisend.__code__", + "value": "I = importlib\n\n\n@__export('con_multisend')\ndef send(addresses: list, amount: float, contract: str):\n token = I.import_module(contract)\n for address in addresses:\n token.transfer_from(amount=amount, to=address, main_account=ctx.signer)\n" + }, + { + "key": "con_multisend.__developer__", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_multisend.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 11, + 11, + 40, + 57, + 0 + ] + } + }, + { + "key": "con_multisend1.__code__", + "value": "@__export('con_multisend1')\ndef send(addresses: list, amount: float, contract: str):\n token = importlib.import_module(contract)\n for address in addresses:\n token.transfer_from(amount=amount, to=address, main_account=ctx.signer)\n" + }, + { + "key": "con_multisend1.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_multisend1.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 10, + 12, + 43, + 33, + 0 + ] + } + }, + { + "key": "con_multisend_2.__code__", + "value": "I = importlib\n\n\n@__export('con_multisend_2')\ndef send(addresses: list, amounts: list, contract: str):\n assert len(addresses) == len(amounts\n ), 'Addresses and amounts must have the same length'\n token = I.import_module(contract)\n for address, amount in zip(addresses, amounts):\n assert len(address) > 0, 'Address cannot be empty'\n assert amount > 0, 'Amount must be greater than 0'\n token.transfer_from(amount=amount, to=address, main_account=ctx.signer)\n" + }, + { + "key": "con_multisend_2.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_multisend_2.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 24, + 10, + 47, + 12, + 0 + ] + } + }, + { + "key": "con_my_cool_contract.__code__", + "value": "random.seed()\n__game = Hash(contract='con_my_cool_contract', name='game')\n__rolls = Hash(default_value=False, contract='con_my_cool_contract', name=\n 'rolls')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['total_wins'] = 0\n __game['total_losses'] = 0\n __game['total_rolls'] = 0\n __game['allowed_tokens'] = ['currency']\n __game['max_token_bet', 'currency'] = 1000\n __game['house_edge'] = decimal('0.03')\n\n\n@__export('con_my_cool_contract')\ndef roll(bet_size: float, token_contract: str, roll_type: str, roll_target: int\n ):\n __balances = ForeignHash(foreign_contract=token_contract, foreign_name=\n 'balances', contract='con_my_cool_contract', name='balances')\n assert bet_size > 0, 'Bet size must be greater than 0'\n assert token_contract in __game['allowed_tokens'], 'Token not allowed'\n assert bet_size <= __game['max_token_bet', token_contract\n ], 'Bet size exceeds the maximum allowed bet'\n assert roll_type in ['over', 'under'], 'Invalid roll type'\n if roll_type == 'over':\n assert 1 <= roll_target < 100, 'Roll target must be between 1 and 99 for over rolls'\n else:\n assert 2 <= roll_target <= 100, 'Roll target must be between 2 and 100 for under rolls'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=bet_size, to=ctx.this, main_account=ctx.caller)\n roll_range = (1, roll_target) if roll_type == 'under' else (roll_target,\n 100)\n roll_range_size = roll_range[1] - roll_range[0] + 1\n fair_multiplier = 100 / roll_range_size\n adjusted_multiplier = fair_multiplier * (1 - __game['house_edge'])\n assert __balances[ctx.this\n ] >= bet_size * adjusted_multiplier, 'Contract does not have enough funds to cover the bet'\n __game['total_rolls'] += 1\n roll = random.randint(1, 100)\n __rolls[ctx.caller, __game['total_rolls']] = roll\n if (roll_type == 'over' and roll > roll_target or roll_type == 'under' and\n roll < roll_target):\n win_amount = bet_size * adjusted_multiplier\n token.transfer(amount=win_amount, to=ctx.caller)\n __game['total_wins'] += 1\n return f'You rolled {roll}. You win {win_amount} {token_contract}!'\n else:\n __game['total_losses'] += 1\n return f'You lose! You rolled {roll}'\n\n\n@__export('con_my_cool_contract')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_my_cool_contract')\ndef change_allowed_tokens(tokens: list):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the allowed tokens'\n __game['allowed_tokens'] = tokens\n\n\n@__export('con_my_cool_contract')\ndef change_max_token_bet(token_contract: str, max_bet: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the max token bet'\n __game['max_token_bet', token_contract] = max_bet\n\n\n@__export('con_my_cool_contract')\ndef change_house_edge(new_edge: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the house edge'\n assert 0 <= new_edge < 1, 'House edge must be between 0 and 1. For example, 0.03 represents 3%'\n __game['house_edge'] = new_edge\n\n\n@__export('con_my_cool_contract')\ndef withdraw(amount: float, token_contract: str):\n assert ctx.caller == __game['owner'], 'Only the owner can withdraw'\n token = importlib.import_module(token_contract)\n token.transfer(amount=amount, to=ctx.caller)\n" + }, + { + "key": "con_my_cool_contract.__developer__", + "value": "7c829aba18409ce70bd6fec16cd57108862c3433c637e88087459d98acfcf40d" + }, + { + "key": "con_my_cool_contract.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 13, + 10, + 27, + 42, + 0 + ] + } + }, + { + "key": "con_my_cool_contract.game:allowed_tokens", + "value": [ + "currency" + ] + }, + { + "key": "con_my_cool_contract.game:house_edge", + "value": { + "__fixed__": "0.03" + } + }, + { + "key": "con_my_cool_contract.game:max_token_bet:currency", + "value": 1000 + }, + { + "key": "con_my_cool_contract.game:owner", + "value": "7c829aba18409ce70bd6fec16cd57108862c3433c637e88087459d98acfcf40d" + }, + { + "key": "con_my_cool_contract.game:total_losses", + "value": 0 + }, + { + "key": "con_my_cool_contract.game:total_rolls", + "value": 0 + }, + { + "key": "con_my_cool_contract.game:total_wins", + "value": 0 + }, + { + "key": "con_my_cool_contract1.__code__", + "value": "random.seed()\n__game = Hash(contract='con_my_cool_contract1', name='game')\n__rolls = Hash(default_value=False, contract='con_my_cool_contract1', name=\n 'rolls')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['total_wins'] = 0\n __game['total_losses'] = 0\n __game['total_rolls'] = 0\n __game['allowed_tokens'] = ['currency']\n __game['max_token_bet', 'currency'] = 1000\n __game['house_edge'] = decimal('0.03')\n\n\n@__export('con_my_cool_contract1')\ndef roll(bet_size: float, token_contract: str, roll_type: str, roll_target: int\n ):\n __balances = ForeignHash(foreign_contract=token_contract, foreign_name=\n 'balances', contract='con_my_cool_contract1', name='balances')\n assert bet_size > 0, 'Bet size must be greater than 0'\n assert token_contract in __game['allowed_tokens'], 'Token not allowed'\n assert bet_size <= __game['max_token_bet', token_contract\n ], 'Bet size exceeds the maximum allowed bet'\n assert roll_type in ['over', 'under'], 'Invalid roll type'\n if roll_type == 'over':\n assert 1 <= roll_target < 100, 'Roll target must be between 1 and 99 for over rolls'\n else:\n assert 2 <= roll_target <= 100, 'Roll target must be between 2 and 100 for under rolls'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=bet_size, to=ctx.this, main_account=ctx.caller)\n roll_range = (1, roll_target) if roll_type == 'under' else (roll_target,\n 100)\n roll_range_size = roll_range[1] - roll_range[0] + 1\n fair_multiplier = 100 / roll_range_size\n adjusted_multiplier = fair_multiplier * (1 - __game['house_edge'])\n assert __balances[ctx.this\n ] >= bet_size * adjusted_multiplier, 'Contract does not have enough funds to cover the bet'\n __game['total_rolls'] += 1\n roll = random.randint(1, 100)\n __rolls[ctx.caller, __game['total_rolls']] = roll\n if (roll_type == 'over' and roll > roll_target or roll_type == 'under' and\n roll < roll_target):\n win_amount = bet_size * adjusted_multiplier\n token.transfer(amount=win_amount, to=ctx.caller)\n __game['total_wins'] += 1\n return f'You rolled {roll}. You win {win_amount} {token_contract}!'\n else:\n __game['total_losses'] += 1\n return f'You lose! You rolled {roll}'\n\n\n@__export('con_my_cool_contract1')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_my_cool_contract1')\ndef change_allowed_tokens(tokens: list):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the allowed tokens'\n __game['allowed_tokens'] = tokens\n\n\n@__export('con_my_cool_contract1')\ndef change_max_token_bet(token_contract: str, max_bet: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the max token bet'\n __game['max_token_bet', token_contract] = max_bet\n\n\n@__export('con_my_cool_contract1')\ndef change_house_edge(new_edge: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the house edge'\n assert 0 <= new_edge < 1, 'House edge must be between 0 and 1. For example, 0.03 represents 3%'\n __game['house_edge'] = new_edge\n\n\n@__export('con_my_cool_contract1')\ndef withdraw(amount: float, token_contract: str):\n assert ctx.caller == __game['owner'], 'Only the owner can withdraw'\n token = importlib.import_module(token_contract)\n token.transfer(amount=amount, to=ctx.caller)\n" + }, + { + "key": "con_my_cool_contract1.__developer__", + "value": "7c829aba18409ce70bd6fec16cd57108862c3433c637e88087459d98acfcf40d" + }, + { + "key": "con_my_cool_contract1.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 13, + 10, + 29, + 9, + 0 + ] + } + }, + { + "key": "con_my_cool_contract1.game:allowed_tokens", + "value": [ + "currency" + ] + }, + { + "key": "con_my_cool_contract1.game:house_edge", + "value": { + "__fixed__": "0.03" + } + }, + { + "key": "con_my_cool_contract1.game:max_token_bet:currency", + "value": 1000 + }, + { + "key": "con_my_cool_contract1.game:owner", + "value": "7c829aba18409ce70bd6fec16cd57108862c3433c637e88087459d98acfcf40d" + }, + { + "key": "con_my_cool_contract1.game:total_losses", + "value": 0 + }, + { + "key": "con_my_cool_contract1.game:total_rolls", + "value": 0 + }, + { + "key": "con_my_cool_contract1.game:total_wins", + "value": 0 + }, + { + "key": "con_my_cool_contract22.__code__", + "value": "random.seed()\n__game = Hash(contract='con_my_cool_contract22', name='game')\n__rolls = Hash(default_value=False, contract='con_my_cool_contract22', name\n ='rolls')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['total_wins'] = 0\n __game['total_losses'] = 0\n __game['total_rolls'] = 0\n __game['allowed_tokens'] = ['currency']\n __game['max_token_bet', 'currency'] = 1000\n __game['house_edge'] = decimal('0.03')\n\n\n@__export('con_my_cool_contract22')\ndef roll(bet_size: float, token_contract: str, roll_type: str, roll_target: int\n ):\n __balances = ForeignHash(foreign_contract=token_contract, foreign_name=\n 'balances', contract='con_my_cool_contract22', name='balances')\n assert bet_size > 0, 'Bet size must be greater than 0'\n assert token_contract in __game['allowed_tokens'], 'Token not allowed'\n assert bet_size <= __game['max_token_bet', token_contract\n ], 'Bet size exceeds the maximum allowed bet'\n assert roll_type in ['over', 'under'], 'Invalid roll type'\n if roll_type == 'over':\n assert 1 <= roll_target < 100, 'Roll target must be between 1 and 99 for over rolls'\n else:\n assert 2 <= roll_target <= 100, 'Roll target must be between 2 and 100 for under rolls'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=bet_size, to=ctx.this, main_account=ctx.caller)\n roll_range = (1, roll_target) if roll_type == 'under' else (roll_target,\n 100)\n roll_range_size = roll_range[1] - roll_range[0] + 1\n fair_multiplier = 100 / roll_range_size\n adjusted_multiplier = fair_multiplier * (1 - __game['house_edge'])\n assert __balances[ctx.this\n ] >= bet_size * adjusted_multiplier, 'Contract does not have enough funds to cover the bet'\n __game['total_rolls'] += 1\n roll = random.randint(1, 100)\n __rolls[ctx.caller, __game['total_rolls']] = roll\n if (roll_type == 'over' and roll > roll_target or roll_type == 'under' and\n roll < roll_target):\n win_amount = bet_size * adjusted_multiplier\n token.transfer(amount=win_amount, to=ctx.caller)\n __game['total_wins'] += 1\n return f'You rolled {roll}. You win {win_amount} {token_contract}!'\n else:\n __game['total_losses'] += 1\n return f'You lose! You rolled {roll}'\n\n\n@__export('con_my_cool_contract22')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_my_cool_contract22')\ndef change_allowed_tokens(tokens: list):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the allowed tokens'\n __game['allowed_tokens'] = tokens\n\n\n@__export('con_my_cool_contract22')\ndef change_max_token_bet(token_contract: str, max_bet: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the max token bet'\n __game['max_token_bet', token_contract] = max_bet\n\n\n@__export('con_my_cool_contract22')\ndef change_house_edge(new_edge: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the house edge'\n assert 0 <= new_edge < 1, 'House edge must be between 0 and 1. For example, 0.03 represents 3%'\n __game['house_edge'] = new_edge\n\n\n@__export('con_my_cool_contract22')\ndef withdraw(amount: float, token_contract: str):\n assert ctx.caller == __game['owner'], 'Only the owner can withdraw'\n token = importlib.import_module(token_contract)\n token.transfer(amount=amount, to=ctx.caller)\n" + }, + { + "key": "con_my_cool_contract22.__developer__", + "value": "7c829aba18409ce70bd6fec16cd57108862c3433c637e88087459d98acfcf40d" + }, + { + "key": "con_my_cool_contract22.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 13, + 10, + 32, + 38, + 0 + ] + } + }, + { + "key": "con_my_cool_contract22.game:allowed_tokens", + "value": [ + "currency" + ] + }, + { + "key": "con_my_cool_contract22.game:house_edge", + "value": { + "__fixed__": "0.03" + } + }, + { + "key": "con_my_cool_contract22.game:max_token_bet:currency", + "value": 1000 + }, + { + "key": "con_my_cool_contract22.game:owner", + "value": "7c829aba18409ce70bd6fec16cd57108862c3433c637e88087459d98acfcf40d" + }, + { + "key": "con_my_cool_contract22.game:total_losses", + "value": 0 + }, + { + "key": "con_my_cool_contract22.game:total_rolls", + "value": 0 + }, + { + "key": "con_my_cool_contract22.game:total_wins", + "value": 0 + }, + { + "key": "con_my_cool_token.__code__", + "value": "__balances = Hash(default_value=0, contract='con_my_cool_token', name=\n 'balances')\n__metadata = Hash(contract='con_my_cool_token', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_my_cool_token')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_my_cool_token')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_my_cool_token')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_my_cool_token')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_my_cool_token.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_my_cool_token.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 14, + 9, + 55, + 31, + 0 + ] + } + }, + { + "key": "con_my_cool_token.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_my_cool_token.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_my_cool_token.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_my_cool_token.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_my_cool_token1.__code__", + "value": "__balances = Hash(default_value=0, contract='con_my_cool_token1', name=\n 'balances')\n__metadata = Hash(contract='con_my_cool_token1', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_my_cool_token1')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_my_cool_token1')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_my_cool_token1')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_my_cool_token1')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_my_cool_token1.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_my_cool_token1.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 25, + 18, + 14, + 41, + 0 + ] + } + }, + { + "key": "con_my_cool_token1.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_my_cool_token1.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_my_cool_token1.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_my_cool_token1.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_nameservice.__code__", + "value": "import currency\n__collection_name = Variable(contract='con_nameservice', name='collection_name'\n )\n__collection_owner = Variable(contract='con_nameservice', name=\n 'collection_owner')\n__collection_nfts = Hash(default_value=False, contract='con_nameservice',\n name='collection_nfts')\n__collection_balances = Hash(default_value=0, contract='con_nameservice',\n name='collection_balances')\n__collection_balances_approvals = Hash(default_value=0, contract=\n 'con_nameservice', name='collection_balances_approvals')\n__mint_price = Variable(contract='con_nameservice', name='mint_price')\n__royalty_fee_percentage = Variable(contract='con_nameservice', name=\n 'royalty_fee_percentage')\n__contracts_allowlist = Variable(contract='con_nameservice', name=\n 'contracts_allowlist')\n\n\ndef ____(name: str, owner: str):\n __collection_name.set(name)\n __collection_owner.set(owner)\n __contracts_allowlist.set([])\n __mint_price.set(1)\n __royalty_fee_percentage.set(2)\n\n\n@__export('con_nameservice')\ndef mint_nft(name: str):\n name = name.lower()\n assert name.isalnum(), 'Name must be alphanumeric'\n assert __collection_nfts[name] == False, 'Name already exists'\n assert len(name) >= 3, 'The minimum length is 3 characters'\n assert len(name) <= 32, 'The maximum length is 32 characters'\n currency.transfer_from(amount=__mint_price.get(), to=__collection_owner\n .get(), main_account=ctx.caller)\n __collection_nfts[name] = {'description':\n 'A alias name for your wallet.', 'ipfs_image_url': '', 'metadata':\n {}, 'amount': 1}\n __collection_balances[ctx.caller, name] = 1\n\n\n@__export('con_nameservice')\ndef transfer(name: str, amount: int, to: str):\n assert amount > 0, 'You cannot transfer negative amounts'\n assert name != '', 'Please specify the name of the NFT you want to transfer'\n assert __collection_balances[ctx.caller, name\n ] >= amount, \"You don't have enough NFTs to send\"\n __collection_balances[ctx.caller, name] -= amount\n __collection_balances[to, name] += amount\n\n\n@__export('con_nameservice')\ndef approve(amount: int, name: str, to: str):\n assert amount > 0, 'Cannot approve negative amounts'\n __collection_balances_approvals[ctx.caller, to, name] += amount\n\n\n@__export('con_nameservice')\ndef transfer_from(name: str, amount: int, to: str, main_account: str):\n if 'con_' in ctx.caller:\n assert ctx.caller in __contracts_allowlist.get(\n ), 'This contract is not allowed to interact with this contract'\n assert amount > 0, 'Cannot send negative balances!'\n assert __collection_balances_approvals[main_account, to, name\n ] >= amount, 'Not enough NFTs approved to send! You have {} and are trying to spend {}'.format(\n __collection_balances_approvals[main_account, to, name], amount)\n assert __collection_balances[main_account, name\n ] >= amount, 'Not enough NFTs to send!'\n __collection_balances_approvals[main_account, to, name] -= amount\n __collection_balances[main_account, name] -= amount\n __collection_balances[to, name] += amount\n\n\n@__export('con_nameservice')\ndef set_mint_price(price: int):\n assert ctx.caller == __collection_owner.get(\n ), 'You are not the owner of this collection'\n __mint_price.set(price)\n\n\n@__export('con_nameservice')\ndef set_royalty_fee_percentage(percentage: int):\n assert ctx.caller == __collection_owner.get(\n ), 'You are not the owner of this collection'\n __royalty_fee_percentage.set(percentage)\n\n\n@__export('con_nameservice')\ndef set_collection_owner(owner: str):\n assert ctx.caller == __collection_owner.get(\n ), 'You are not the owner of this collection'\n __collection_owner.set(owner)\n\n\n@__export('con_nameservice')\ndef set_contract_allowlist(contracts: list):\n assert ctx.caller == __collection_owner.get(\n ), 'You are not the owner of this collection'\n __contracts_allowlist.set(contracts)\n" + }, + { + "key": "con_nameservice.__developer__", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_nameservice.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 16, + 17, + 31, + 50, + 0 + ] + } + }, + { + "key": "con_nameservice.collection_balances:7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e:crosschainer", + "value": 1 + }, + { + "key": "con_nameservice.collection_balances:7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e:duelingbenjos", + "value": 1 + }, + { + "key": "con_nameservice.collection_balances:7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e:endogen", + "value": 1 + }, + { + "key": "con_nameservice.collection_balances:7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e:xian", + "value": 1 + }, + { + "key": "con_nameservice.collection_name", + "value": "Xian Nameservice" + }, + { + "key": "con_nameservice.collection_nfts:crosschainer", + "value": { + "description": "A alias name for your wallet.", + "ipfs_image_url": "", + "metadata": {}, + "amount": 1 + } + }, + { + "key": "con_nameservice.collection_nfts:duelingbenjos", + "value": { + "description": "A alias name for your wallet.", + "ipfs_image_url": "", + "metadata": {}, + "amount": 1 + } + }, + { + "key": "con_nameservice.collection_nfts:endogen", + "value": { + "description": "A alias name for your wallet.", + "ipfs_image_url": "", + "metadata": {}, + "amount": 1 + } + }, + { + "key": "con_nameservice.collection_nfts:xian", + "value": { + "description": "A alias name for your wallet.", + "ipfs_image_url": "", + "metadata": {}, + "amount": 1 + } + }, + { + "key": "con_nameservice.collection_owner", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_nameservice.contracts_allowlist", + "value": [] + }, + { + "key": "con_nameservice.mint_price", + "value": 1 + }, + { + "key": "con_nameservice.royalty_fee_percentage", + "value": 2 + }, + { + "key": "con_nwal.__code__", + "value": "__balances = Hash(default_value=0, contract='con_nwal', name='balances')\n__metadata = Hash(contract='con_nwal', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_nwal')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_nwal')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_nwal')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_nwal')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_nwal')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_nwal.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_nwal.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 21, + 22, + 0, + 15, + 0 + ] + } + }, + { + "key": "con_nwal.balances:ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9", + "value": { + "__fixed__": "1E+6" + } + }, + { + "key": "con_nwal.metadata:operator", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_nwal.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_nwal.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_nwal.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_nwal.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_pixel_frames_auction.S:thing_master_contract", + "value": "con_pixel_frames_master" + }, + { + "key": "con_pixel_frames_auction.__code__", + "value": "import currency\nI = importlib\n__Thing_Info = ForeignHash(foreign_contract='con_pixel_frames',\n foreign_name='S', contract='con_pixel_frames_auction', name='Thing_Info')\n__S = Hash(default_value=None, contract='con_pixel_frames_auction', name='S')\n__metadata = Hash(default_value=0, contract='con_pixel_frames_auction',\n name='metadata')\n\n\ndef ____():\n __S['thing_master_contract'] = 'con_pixel_frames_master'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_pixel_frames_auction')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_pixel_frames_auction')\ndef operator_transfer_thing(uid: str, new_owner: str):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can transfer things from contract.'\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=uid, new_owner=new_owner)\n __S[uid] = False\n\n\n@__export('con_pixel_frames_auction')\ndef operator_transfer_currency(amount: str, to: float):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can transfer currency from contract.'\n currency.transfer(amount=amount, to=to)\n\n\ndef __get_listing_info(uid: str):\n listing_info = __S[uid]\n assert listing_info is not None, \"Listing doesn't exist!\"\n return {'start_date': __S[uid, 'start_date'], 'end_date': __S[uid,\n 'end_date'], 'current_owner': __S[uid, 'current_owner'], 'uid': __S\n [uid, 'uid'], 'reserve_price': __S[uid, 'reserve_price'],\n 'current_bid': __S[uid, 'current_bid'], 'current_winner': __S[uid,\n 'current_winner'], 'royalty_percent': __S[uid, 'royalty_percent'],\n 'creator': __S[uid, 'creator']}\n\n\n@__export('con_pixel_frames_auction')\ndef auction_thing(uid: str, reserve_price: float, start_date: datetime.\n datetime, end_date: datetime.datetime):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer_from(uid=uid, to=ctx.this, main_account=\n ctx.caller)\n assert not __S[uid], 'Auction has already started!'\n assert end_date > now, 'end_date is in the past'\n assert reserve_price >= 0, 'reserve_price cannot be less than 0'\n __S[uid, 'start_date'] = start_date\n __S[uid, 'end_date'] = end_date\n __S[uid, 'current_owner'] = ctx.caller\n __S[uid, 'uid'] = uid\n __S[uid, 'reserve_price'] = reserve_price\n __S[uid, 'current_bid'] = None\n __S[uid, 'current_winner'] = ''\n __S[uid, 'royalty_percent'] = __Thing_Info[uid, 'meta', 'royalty_percent']\n __S[uid, 'creator'] = __Thing_Info[uid, 'creator']\n __S[uid] = True\n\n\n@__export('con_pixel_frames_auction')\ndef end_auction(uid: str, end_early: bool):\n listing_info = __get_listing_info(uid=uid)\n if end_early:\n assert listing_info['current_owner'] == ctx.caller or __metadata[\n 'operator'\n ] == ctx.caller, 'Only thing owner or auction operator can end the auction early!'\n if now < listing_info['start_date']:\n __process_auction_result_no_winner(listing_info)\n elif (listing_info['current_bid'] or -1) < listing_info['reserve_price'\n ]:\n __process_auction_result_no_winner(listing_info)\n else:\n assert False, 'Cannot end early. Auction started or reserve has been met.'\n else:\n assert now > listing_info['end_date'], 'Auction is still pending!'\n if listing_info['current_bid'] == None or listing_info['current_bid'\n ] < listing_info['reserve_price']:\n __process_auction_result_no_winner(listing_info)\n else:\n __process_auction_result(listing_info)\n\n\ndef __process_auction_result_no_winner(listing_info):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=listing_info['uid'], new_owner=\n listing_info['current_owner'])\n if listing_info['current_winner'] != '':\n currency.transfer(to=listing_info['current_winner'], amount=\n listing_info['current_bid'])\n __S[listing_info['uid']] = False\n\n\ndef __process_auction_result(listing_info):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=listing_info['uid'], new_owner=\n listing_info['current_winner'])\n royalty_percent = listing_info['royalty_percent']\n if royalty_percent > 0:\n royalty_amount = listing_info['current_bid'] * (royalty_percent / 100)\n net_amount = listing_info['current_bid'] - royalty_amount\n currency.transfer(to=listing_info['creator'], amount=royalty_amount)\n else:\n net_amount = listing_info['current_bid']\n currency.transfer(to=listing_info['current_owner'], amount=net_amount)\n __S[listing_info['uid']] = False\n\n\n@__export('con_pixel_frames_auction')\ndef bid(uid: str, bid_amount: float):\n listing_info = __get_listing_info(uid=uid)\n current_bid = listing_info['current_bid'] or 0\n assert now < listing_info['end_date'], 'Auction has ended.'\n assert now > listing_info['start_date'], 'Auction has not stared.'\n assert bid_amount > 0, 'Bid must be greater than zero.'\n assert bid_amount > current_bid, f'Current bid of {current_bid} is higher!'\n currency.transfer_from(main_account=ctx.caller, to=ctx.this, amount=\n bid_amount)\n if listing_info['current_winner'] != '':\n currency.transfer(to=listing_info['current_winner'], amount=\n listing_info['current_bid'])\n __S[uid, 'current_bid'] = bid_amount\n __S[uid, 'current_winner'] = ctx.caller\n" + }, + { + "key": "con_pixel_frames_auction.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_pixel_frames_auction.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 16, + 9, + 16, + 35, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction.metadata:operator", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_pixel_frames_auction_v0_1.S:thing_master_contract", + "value": "con_pixel_frames_master_v0_1" + }, + { + "key": "con_pixel_frames_auction_v0_1.__code__", + "value": "import currency\nI = importlib\n__Thing_Info = ForeignHash(foreign_contract='con_pixel_frames',\n foreign_name='S', contract='con_pixel_frames_auction_v0_1', name=\n 'Thing_Info')\n__S = Hash(default_value=None, contract='con_pixel_frames_auction_v0_1',\n name='S')\n__metadata = Hash(default_value=0, contract='con_pixel_frames_auction_v0_1',\n name='metadata')\n\n\ndef ____():\n __S['thing_master_contract'] = 'con_pixel_frames_master_v0_1'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_pixel_frames_auction_v0_1')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_pixel_frames_auction_v0_1')\ndef operator_transfer_thing(uid: str, new_owner: str):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can transfer things from contract.'\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=uid, new_owner=new_owner)\n __S[uid] = False\n\n\n@__export('con_pixel_frames_auction_v0_1')\ndef operator_transfer_currency(amount: str, to: float):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can transfer currency from contract.'\n currency.transfer(amount=amount, to=to)\n\n\ndef __get_listing_info(uid: str):\n listing_info = __S[uid]\n assert listing_info is not None, \"Listing doesn't exist!\"\n return {'start_date': __S[uid, 'start_date'], 'end_date': __S[uid,\n 'end_date'], 'current_owner': __S[uid, 'current_owner'], 'uid': __S\n [uid, 'uid'], 'reserve_price': __S[uid, 'reserve_price'],\n 'current_bid': __S[uid, 'current_bid'], 'current_winner': __S[uid,\n 'current_winner'], 'royalty_percent': __S[uid, 'royalty_percent'],\n 'creator': __S[uid, 'creator']}\n\n\n@__export('con_pixel_frames_auction_v0_1')\ndef auction_thing(uid: str, reserve_price: float, start_date: datetime.\n datetime, end_date: datetime.datetime):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer_from(uid=uid, to=ctx.this, main_account=\n ctx.caller)\n assert not __S[uid], 'Auction has already started!'\n assert end_date > now, 'end_date is in the past'\n assert reserve_price >= 0, 'reserve_price cannot be less than 0'\n __S[uid, 'start_date'] = start_date\n __S[uid, 'end_date'] = end_date\n __S[uid, 'current_owner'] = ctx.caller\n __S[uid, 'uid'] = uid\n __S[uid, 'reserve_price'] = reserve_price\n __S[uid, 'current_bid'] = None\n __S[uid, 'current_winner'] = ''\n __S[uid, 'royalty_percent'] = __Thing_Info[uid, 'meta', 'royalty_percent']\n __S[uid, 'creator'] = __Thing_Info[uid, 'creator']\n __S[uid] = True\n\n\n@__export('con_pixel_frames_auction_v0_1')\ndef end_auction(uid: str, end_early: bool):\n listing_info = __get_listing_info(uid=uid)\n if end_early:\n assert listing_info['current_owner'] == ctx.caller or __metadata[\n 'operator'\n ] == ctx.caller, 'Only thing owner or auction operator can end the auction early!'\n if now < listing_info['start_date']:\n __process_auction_result_no_winner(listing_info)\n elif (listing_info['current_bid'] or -1) < listing_info['reserve_price'\n ]:\n __process_auction_result_no_winner(listing_info)\n else:\n assert False, 'Cannot end early. Auction started or reserve has been met.'\n else:\n assert now > listing_info['end_date'], 'Auction is still pending!'\n if listing_info['current_bid'] == None or listing_info['current_bid'\n ] < listing_info['reserve_price']:\n __process_auction_result_no_winner(listing_info)\n else:\n __process_auction_result(listing_info)\n\n\ndef __process_auction_result_no_winner(listing_info):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=listing_info['uid'], new_owner=\n listing_info['current_owner'])\n if listing_info['current_winner'] != '':\n currency.transfer(to=listing_info['current_winner'], amount=\n listing_info['current_bid'])\n __S[listing_info['uid']] = False\n\n\ndef __process_auction_result(listing_info):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=listing_info['uid'], new_owner=\n listing_info['current_winner'])\n royalty_percent = listing_info['royalty_percent']\n if royalty_percent > 0:\n royalty_amount = listing_info['current_bid'] * (royalty_percent / 100)\n net_amount = listing_info['current_bid'] - royalty_amount\n currency.transfer(to=listing_info['creator'], amount=royalty_amount)\n else:\n net_amount = listing_info['current_bid']\n currency.transfer(to=listing_info['current_owner'], amount=net_amount)\n __S[listing_info['uid']] = False\n\n\n@__export('con_pixel_frames_auction_v0_1')\ndef bid(uid: str, bid_amount: float):\n listing_info = __get_listing_info(uid=uid)\n current_bid = listing_info['current_bid'] or 0\n assert now < listing_info['end_date'], 'Auction has ended.'\n assert now > listing_info['start_date'], 'Auction has not stared.'\n assert bid_amount > 0, 'Bid must be greater than zero.'\n assert bid_amount > current_bid, f'Current bid of {current_bid} is higher!'\n currency.transfer_from(main_account=ctx.caller, to=ctx.this, amount=\n bid_amount)\n if listing_info['current_winner'] != '':\n currency.transfer(to=listing_info['current_winner'], amount=\n listing_info['current_bid'])\n __S[uid, 'current_bid'] = bid_amount\n __S[uid, 'current_winner'] = ctx.caller\n" + }, + { + "key": "con_pixel_frames_auction_v0_1.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_pixel_frames_auction_v0_1.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 16, + 10, + 55, + 53, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_1.metadata:operator", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_pixel_frames_auction_v0_4.S:thing_master_contract", + "value": "con_pixel_frames_master_v0_3" + }, + { + "key": "con_pixel_frames_auction_v0_4.__code__", + "value": "import currency\nI = importlib\n__Thing_Info = ForeignHash(foreign_contract='con_pixel_frames_info_v0_3',\n foreign_name='S', contract='con_pixel_frames_auction_v0_4', name=\n 'Thing_Info')\n__S = Hash(default_value=None, contract='con_pixel_frames_auction_v0_4',\n name='S')\n__metadata = Hash(default_value=0, contract='con_pixel_frames_auction_v0_4',\n name='metadata')\n\n\ndef ____():\n __S['thing_master_contract'] = 'con_pixel_frames_master_v0_3'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_pixel_frames_auction_v0_4')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_pixel_frames_auction_v0_4')\ndef operator_transfer_thing(uid: str, new_owner: str):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can transfer things from contract.'\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=uid, new_owner=new_owner)\n __S[uid, new_owner] = False\n\n\n@__export('con_pixel_frames_auction_v0_4')\ndef operator_transfer_currency(amount: str, to: float):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can transfer currency from contract.'\n currency.transfer(amount=amount, to=to)\n\n\ndef __get_listing_info(uid: str):\n listing_info = __S[uid, ctx.caller]\n assert listing_info is not None, \"Listing doesn't exist!\"\n return {'start_date': __S[uid, 'start_date'], 'end_date': __S[uid,\n 'end_date'], 'current_owner': __S[uid, 'current_owner'], 'uid': __S\n [uid, 'uid'], 'reserve_price': __S[uid, 'reserve_price'],\n 'current_bid': __S[uid, 'current_bid'], 'current_winner': __S[uid,\n 'current_winner'], 'royalty_percent': __S[uid, 'royalty_percent'],\n 'creator': __S[uid, 'creator']}\n\n\n@__export('con_pixel_frames_auction_v0_4')\ndef auction_thing(uid: str, reserve_price: float, start_date: datetime.\n datetime, end_date: datetime.datetime):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer_from(uid=uid, to=ctx.this, main_account=\n ctx.caller)\n assert not __S[uid, ctx.caller], 'Auction has already started!'\n assert end_date > now, 'end_date is in the past'\n assert reserve_price >= 0, 'reserve_price cannot be less than 0'\n __S[uid, 'start_date'] = start_date\n __S[uid, 'end_date'] = end_date\n __S[uid, 'current_owner'] = ctx.caller\n __S[uid, 'uid'] = uid\n __S[uid, 'reserve_price'] = reserve_price\n __S[uid, 'current_bid'] = None\n __S[uid, 'current_winner'] = ''\n __S[uid, 'royalty_percent'] = __Thing_Info[uid, 'meta', 'royalty_percent']\n __S[uid, 'creator'] = __Thing_Info[uid, 'creator']\n __S[uid, ctx.caller] = True\n\n\n@__export('con_pixel_frames_auction_v0_4')\ndef end_auction(uid: str, end_early: bool):\n listing_info = __get_listing_info(uid=uid)\n if end_early:\n assert listing_info['current_owner'] == ctx.caller or __metadata[\n 'operator'\n ] == ctx.caller, 'Only thing owner or auction operator can end the auction early!'\n if now < listing_info['start_date']:\n __process_auction_result_no_winner(listing_info)\n elif (listing_info['current_bid'] or -1) < listing_info['reserve_price'\n ]:\n __process_auction_result_no_winner(listing_info)\n else:\n assert False, 'Cannot end early. Auction started or reserve has been met.'\n else:\n assert now > listing_info['end_date'], 'Auction is still pending!'\n if listing_info['current_bid'] == None or listing_info['current_bid'\n ] < listing_info['reserve_price']:\n __process_auction_result_no_winner(listing_info)\n else:\n __process_auction_result(listing_info)\n\n\ndef __process_auction_result_no_winner(listing_info):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=listing_info['uid'], new_owner=\n listing_info['current_owner'])\n if listing_info['current_winner'] != '':\n currency.transfer(to=listing_info['current_winner'], amount=\n listing_info['current_bid'])\n __S[listing_info['uid'], listing_info['current_owner']] = False\n\n\ndef __process_auction_result(listing_info):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=listing_info['uid'], new_owner=\n listing_info['current_winner'])\n royalty_percent = listing_info['royalty_percent']\n if royalty_percent > 0:\n royalty_amount = listing_info['current_bid'] * (royalty_percent / 100)\n net_amount = listing_info['current_bid'] - royalty_amount\n currency.transfer(to=listing_info['creator'], amount=royalty_amount)\n else:\n net_amount = listing_info['current_bid']\n currency.transfer(to=listing_info['current_owner'], amount=net_amount)\n __S[listing_info['uid'], listing_info['current_owner']] = False\n\n\n@__export('con_pixel_frames_auction_v0_4')\ndef bid(uid: str, bid_amount: float):\n listing_info = __get_listing_info(uid=uid)\n current_bid = listing_info['current_bid'] or 0\n assert now < listing_info['end_date'], 'Auction has ended.'\n assert now > listing_info['start_date'], 'Auction has not stared.'\n assert bid_amount > 0, 'Bid must be greater than zero.'\n assert bid_amount > current_bid, f'Current bid of {current_bid} is higher!'\n currency.transfer_from(main_account=ctx.caller, to=ctx.this, amount=\n bid_amount)\n if listing_info['current_winner'] != '':\n currency.transfer(to=listing_info['current_winner'], amount=\n listing_info['current_bid'])\n __S[uid, 'current_bid'] = bid_amount\n __S[uid, 'current_winner'] = ctx.caller\n\n\ndef __strptime_ymdhms(date_string: str):\n return datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')\n" + }, + { + "key": "con_pixel_frames_auction_v0_4.__developer__", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_4.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 6, + 3, + 33, + 39, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_4.metadata:operator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_5.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_5.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:current_owner", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_5.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:current_winner", + "value": "" + }, + { + "key": "con_pixel_frames_auction_v0_5.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:end_date", + "value": { + "__time__": [ + 2024, + 12, + 10, + 12, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_5.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce", + "value": false + }, + { + "key": "con_pixel_frames_auction_v0_5.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:reserve_price", + "value": 20 + }, + { + "key": "con_pixel_frames_auction_v0_5.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_auction_v0_5.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:start_date", + "value": { + "__time__": [ + 2024, + 12, + 10, + 9, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_5.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:uid", + "value": "aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a" + }, + { + "key": "con_pixel_frames_auction_v0_5.S:thing_master_contract", + "value": "con_pixel_frames_master_v0_3" + }, + { + "key": "con_pixel_frames_auction_v0_5.__code__", + "value": "import currency\nI = importlib\n__Thing_Info = ForeignHash(foreign_contract='con_pixel_frames_info_v0_3',\n foreign_name='S', contract='con_pixel_frames_auction_v0_5', name=\n 'Thing_Info')\n__S = Hash(default_value=None, contract='con_pixel_frames_auction_v0_5',\n name='S')\n__metadata = Hash(default_value=0, contract='con_pixel_frames_auction_v0_5',\n name='metadata')\n\n\ndef ____():\n __S['thing_master_contract'] = 'con_pixel_frames_master_v0_3'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_pixel_frames_auction_v0_5')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_pixel_frames_auction_v0_5')\ndef operator_transfer_thing(uid: str, new_owner: str):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can transfer things from contract.'\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=uid, new_owner=new_owner)\n __S[uid, new_owner] = False\n\n\n@__export('con_pixel_frames_auction_v0_5')\ndef operator_transfer_currency(amount: str, to: float):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can transfer currency from contract.'\n currency.transfer(amount=amount, to=to)\n\n\ndef __get_listing_info(uid: str):\n listing_info = __S[uid, ctx.caller]\n assert listing_info is not None, \"Listing doesn't exist!\"\n return {'start_date': __S[uid, 'start_date'], 'end_date': __S[uid,\n 'end_date'], 'current_owner': __S[uid, 'current_owner'], 'uid': __S\n [uid, 'uid'], 'reserve_price': __S[uid, 'reserve_price'],\n 'current_bid': __S[uid, 'current_bid'], 'current_winner': __S[uid,\n 'current_winner'], 'royalty_percent': __S[uid, 'royalty_percent'],\n 'creator': __S[uid, 'creator']}\n\n\n@__export('con_pixel_frames_auction_v0_5')\ndef auction_thing(uid: str, reserve_price: float, start_date: datetime.\n datetime, end_date: datetime.datetime):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer_from(uid=uid, to=ctx.this, main_account=\n ctx.caller)\n start_date = __strptime_ymdhms(start_date)\n end_date = __strptime_ymdhms(end_date)\n assert not __S[uid, ctx.caller], 'Auction has already started!'\n assert end_date > now, 'end_date is in the past'\n assert reserve_price >= 0, 'reserve_price cannot be less than 0'\n __S[uid, 'start_date'] = start_date\n __S[uid, 'end_date'] = end_date\n __S[uid, 'current_owner'] = ctx.caller\n __S[uid, 'uid'] = uid\n __S[uid, 'reserve_price'] = reserve_price\n __S[uid, 'current_bid'] = None\n __S[uid, 'current_winner'] = ''\n __S[uid, 'royalty_percent'] = __Thing_Info[uid, 'meta', 'royalty_percent']\n __S[uid, 'creator'] = __Thing_Info[uid, 'creator']\n __S[uid, ctx.caller] = True\n\n\n@__export('con_pixel_frames_auction_v0_5')\ndef end_auction(uid: str, end_early: bool):\n listing_info = __get_listing_info(uid=uid)\n if end_early:\n assert listing_info['current_owner'] == ctx.caller or __metadata[\n 'operator'\n ] == ctx.caller, 'Only thing owner or auction operator can end the auction early!'\n if now < listing_info['start_date']:\n __process_auction_result_no_winner(listing_info)\n elif (listing_info['current_bid'] or -1) < listing_info['reserve_price'\n ]:\n __process_auction_result_no_winner(listing_info)\n else:\n assert False, 'Cannot end early. Auction started or reserve has been met.'\n else:\n assert now > listing_info['end_date'], 'Auction is still pending!'\n if listing_info['current_bid'] == None or listing_info['current_bid'\n ] < listing_info['reserve_price']:\n __process_auction_result_no_winner(listing_info)\n else:\n __process_auction_result(listing_info)\n\n\ndef __process_auction_result_no_winner(listing_info):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=listing_info['uid'], new_owner=\n listing_info['current_owner'])\n if listing_info['current_winner'] != '':\n currency.transfer(to=listing_info['current_winner'], amount=\n listing_info['current_bid'])\n __S[listing_info['uid'], listing_info['current_owner']] = False\n\n\ndef __process_auction_result(listing_info):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=listing_info['uid'], new_owner=\n listing_info['current_winner'])\n royalty_percent = listing_info['royalty_percent']\n if royalty_percent > 0:\n royalty_amount = listing_info['current_bid'] * (royalty_percent / 100)\n net_amount = listing_info['current_bid'] - royalty_amount\n currency.transfer(to=listing_info['creator'], amount=royalty_amount)\n else:\n net_amount = listing_info['current_bid']\n currency.transfer(to=listing_info['current_owner'], amount=net_amount)\n __S[listing_info['uid'], listing_info['current_owner']] = False\n\n\n@__export('con_pixel_frames_auction_v0_5')\ndef bid(uid: str, bid_amount: float):\n listing_info = __get_listing_info(uid=uid)\n current_bid = listing_info['current_bid'] or 0\n assert now < listing_info['end_date'], 'Auction has ended.'\n assert now > listing_info['start_date'], 'Auction has not stared.'\n assert bid_amount > 0, 'Bid must be greater than zero.'\n assert bid_amount > current_bid, f'Current bid of {current_bid} is higher!'\n currency.transfer_from(main_account=ctx.caller, to=ctx.this, amount=\n bid_amount)\n if listing_info['current_winner'] != '':\n currency.transfer(to=listing_info['current_winner'], amount=\n listing_info['current_bid'])\n __S[uid, 'current_bid'] = bid_amount\n __S[uid, 'current_winner'] = ctx.caller\n\n\ndef __strptime_ymdhms(date_string: str):\n return datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')\n" + }, + { + "key": "con_pixel_frames_auction_v0_5.__developer__", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_5.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 6, + 12, + 21, + 27, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_5.metadata:operator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6.S:thing_master_contract", + "value": "con_pixel_frames_master_v0_3" + }, + { + "key": "con_pixel_frames_auction_v0_6.__code__", + "value": "import currency\nI = importlib\n__Thing_Info = ForeignHash(foreign_contract='con_pixel_frames_info_v0_3',\n foreign_name='S', contract='con_pixel_frames_auction_v0_6', name=\n 'Thing_Info')\n__S = Hash(default_value=None, contract='con_pixel_frames_auction_v0_6',\n name='S')\n__metadata = Hash(default_value=0, contract='con_pixel_frames_auction_v0_6',\n name='metadata')\n\n\ndef ____():\n __S['thing_master_contract'] = 'con_pixel_frames_master_v0_3'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_pixel_frames_auction_v0_6')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_pixel_frames_auction_v0_6')\ndef operator_transfer_thing(uid: str, new_owner: str):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can transfer things from contract.'\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=uid, new_owner=new_owner)\n __S[uid, new_owner] = False\n\n\n@__export('con_pixel_frames_auction_v0_6')\ndef operator_transfer_currency(amount: str, to: float):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can transfer currency from contract.'\n currency.transfer(amount=amount, to=to)\n\n\ndef __get_listing_info(uid: str):\n current_owner = __S[uid, 'current_owner']\n listing_info = __S[uid, current_owner]\n assert listing_info is not None, \"Listing doesn't exist!\"\n return {'start_date': __S[uid, 'start_date'], 'end_date': __S[uid,\n 'end_date'], 'current_owner': current_owner, 'uid': __S[uid, 'uid'],\n 'reserve_price': __S[uid, 'reserve_price'], 'current_bid': __S[uid,\n 'current_bid'], 'current_winner': __S[uid, 'current_winner'],\n 'royalty_percent': __S[uid, 'royalty_percent'], 'creator': __S[uid,\n 'creator']}\n\n\n@__export('con_pixel_frames_auction_v0_6')\ndef auction_thing(uid: str, reserve_price: float, start_date: datetime.\n datetime, end_date: datetime.datetime):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer_from(uid=uid, to=ctx.this, main_account=\n ctx.caller)\n start_date = __strptime_ymdhms(start_date)\n end_date = trptime_ymdhms(end_date)\n assert not __S[uid, ctx.caller], 'Auction has already started!'\n assert end_date > now, 'end_date is in the past'\n assert reserve_price >= 0, 'reserve_price cannot be less than 0'\n __S[uid, 'start_date'] = start_date\n __S[uid, 'end_date'] = end_date\n __S[uid, 'current_owner'] = ctx.caller\n __S[uid, 'uid'] = uid\n __S[uid, 'reserve_price'] = reserve_price\n __S[uid, 'current_bid'] = None\n __S[uid, 'current_winner'] = ''\n __S[uid, 'royalty_percent'] = __Thing_Info[uid, 'meta', 'royalty_percent']\n __S[uid, 'creator'] = __Thing_Info[uid, 'creator']\n __S[uid, ctx.caller] = True\n\n\n@__export('con_pixel_frames_auction_v0_6')\ndef end_auction(uid: str, end_early: bool):\n listing_info = __get_listing_info(uid=uid)\n if end_early:\n assert listing_info['current_owner'] == ctx.caller or __metadata[\n 'operator'\n ] == ctx.caller, 'Only thing owner or auction operator can end the auction early!'\n if now < listing_info['start_date']:\n __process_auction_result_no_winner(listing_info)\n elif (listing_info['current_bid'] or -1) < listing_info['reserve_price'\n ]:\n __process_auction_result_no_winner(listing_info)\n else:\n assert False, 'Cannot end early. Auction started or reserve has been met.'\n else:\n assert now > listing_info['end_date'], 'Auction is still pending!'\n if listing_info['current_bid'] == None or listing_info['current_bid'\n ] < listing_info['reserve_price']:\n __process_auction_result_no_winner(listing_info)\n else:\n __process_auction_result(listing_info)\n\n\ndef __process_auction_result_no_winner(listing_info):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=listing_info['uid'], new_owner=\n listing_info['current_owner'])\n if listing_info['current_winner'] != '':\n currency.transfer(to=listing_info['current_winner'], amount=\n listing_info['current_bid'])\n __S[listing_info['uid'], listing_info['current_owner']] = False\n\n\ndef __process_auction_result(listing_info):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=listing_info['uid'], new_owner=\n listing_info['current_winner'])\n royalty_percent = listing_info['royalty_percent']\n if royalty_percent > 0:\n royalty_amount = listing_info['current_bid'] * (royalty_percent / 100)\n net_amount = listing_info['current_bid'] - royalty_amount\n currency.transfer(to=listing_info['creator'], amount=royalty_amount)\n else:\n net_amount = listing_info['current_bid']\n currency.transfer(to=listing_info['current_owner'], amount=net_amount)\n __S[listing_info['uid'], listing_info['current_owner']] = False\n\n\n@__export('con_pixel_frames_auction_v0_6')\ndef bid(uid: str, bid_amount: float):\n listing_info = __get_listing_info(uid=uid)\n current_bid = listing_info['current_bid'] or 0\n assert now < listing_info['end_date'], 'Auction has ended.'\n assert now > listing_info['start_date'], 'Auction has not stared.'\n assert bid_amount > 0, 'Bid must be greater than zero.'\n assert bid_amount > current_bid, f'Current bid of {current_bid} is higher!'\n currency.transfer_from(main_account=ctx.caller, to=ctx.this, amount=\n bid_amount)\n if listing_info['current_winner'] != '':\n currency.transfer(to=listing_info['current_winner'], amount=\n listing_info['current_bid'])\n __S[uid, 'current_bid'] = bid_amount\n __S[uid, 'current_winner'] = ctx.caller\n\n\ndef __strptime_ymdhms(date_string: str):\n return datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')\n" + }, + { + "key": "con_pixel_frames_auction_v0_6.__developer__", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 10, + 9, + 41, + 10, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6.metadata:operator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:current_owner", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:current_winner", + "value": "" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:end_date", + "value": { + "__time__": [ + 2024, + 12, + 17, + 20, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce", + "value": true + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:reserve_price", + "value": 10 + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:start_date", + "value": { + "__time__": [ + 2024, + 12, + 17, + 19, + 47, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:uid", + "value": "36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:current_bid", + "value": { + "__fixed__": "1E+1" + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:current_owner", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:current_winner", + "value": "3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:end_date", + "value": { + "__time__": [ + 2024, + 12, + 16, + 1, + 20, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce", + "value": false + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:reserve_price", + "value": 10 + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:start_date", + "value": { + "__time__": [ + 2024, + 12, + 16, + 0, + 50, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:uid", + "value": "6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:current_bid", + "value": { + "__fixed__": "1E+1" + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:current_owner", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:current_winner", + "value": "3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:end_date", + "value": { + "__time__": [ + 2024, + 12, + 16, + 1, + 40, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce", + "value": false + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:reserve_price", + "value": 10 + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:start_date", + "value": { + "__time__": [ + 2024, + 12, + 16, + 0, + 30, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:uid", + "value": "92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:current_owner", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:current_winner", + "value": "" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:end_date", + "value": { + "__time__": [ + 2024, + 12, + 17, + 20, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce", + "value": true + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:reserve_price", + "value": 10 + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:start_date", + "value": { + "__time__": [ + 2024, + 12, + 17, + 19, + 52, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:uid", + "value": "a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:current_bid", + "value": { + "__fixed__": "1E+1" + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:current_owner", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:current_winner", + "value": "3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:end_date", + "value": { + "__time__": [ + 2024, + 12, + 10, + 12, + 50, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce", + "value": false + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:reserve_price", + "value": 10 + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:start_date", + "value": { + "__time__": [ + 2024, + 12, + 10, + 10, + 20, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:uid", + "value": "aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:current_bid", + "value": { + "__fixed__": "2E+1" + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:current_owner", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:current_winner", + "value": "3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:end_date", + "value": { + "__time__": [ + 2024, + 12, + 14, + 12, + 20, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce", + "value": false + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:reserve_price", + "value": 10 + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:start_date", + "value": { + "__time__": [ + 2024, + 12, + 14, + 11, + 20, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:uid", + "value": "b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.S:thing_master_contract", + "value": "con_pixel_frames_master_v0_3" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.__code__", + "value": "import currency\nI = importlib\n__Thing_Info = ForeignHash(foreign_contract='con_pixel_frames_info_v0_3',\n foreign_name='S', contract='con_pixel_frames_auction_v0_6_1', name=\n 'Thing_Info')\n__S = Hash(default_value=None, contract='con_pixel_frames_auction_v0_6_1',\n name='S')\n__metadata = Hash(default_value=0, contract=\n 'con_pixel_frames_auction_v0_6_1', name='metadata')\n\n\ndef ____():\n __S['thing_master_contract'] = 'con_pixel_frames_master_v0_3'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_pixel_frames_auction_v0_6_1')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_pixel_frames_auction_v0_6_1')\ndef operator_transfer_thing(uid: str, new_owner: str):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can transfer things from contract.'\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=uid, new_owner=new_owner)\n __S[uid, new_owner] = False\n\n\n@__export('con_pixel_frames_auction_v0_6_1')\ndef operator_transfer_currency(amount: str, to: float):\n assert ctx.caller == __metadata['operator'\n ], 'Only auction operator can transfer currency from contract.'\n currency.transfer(amount=amount, to=to)\n\n\ndef __get_listing_info(uid: str):\n current_owner = __S[uid, 'current_owner']\n listing_info = __S[uid, current_owner]\n assert listing_info is not None, \"Listing doesn't exist!\"\n return {'start_date': __S[uid, 'start_date'], 'end_date': __S[uid,\n 'end_date'], 'current_owner': current_owner, 'uid': __S[uid, 'uid'],\n 'reserve_price': __S[uid, 'reserve_price'], 'current_bid': __S[uid,\n 'current_bid'], 'current_winner': __S[uid, 'current_winner'],\n 'royalty_percent': __S[uid, 'royalty_percent'], 'creator': __S[uid,\n 'creator']}\n\n\n@__export('con_pixel_frames_auction_v0_6_1')\ndef auction_thing(uid: str, reserve_price: float, start_date: datetime.\n datetime, end_date: datetime.datetime):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer_from(uid=uid, to=ctx.this, main_account=\n ctx.caller)\n start_date = __strptime_ymdhms(start_date)\n end_date = __strptime_ymdhms(end_date)\n assert not __S[uid, ctx.caller], 'Auction has already started!'\n assert end_date > now, 'end_date is in the past'\n assert reserve_price >= 0, 'reserve_price cannot be less than 0'\n __S[uid, 'start_date'] = start_date\n __S[uid, 'end_date'] = end_date\n __S[uid, 'current_owner'] = ctx.caller\n __S[uid, 'uid'] = uid\n __S[uid, 'reserve_price'] = reserve_price\n __S[uid, 'current_bid'] = None\n __S[uid, 'current_winner'] = ''\n __S[uid, 'royalty_percent'] = __Thing_Info[uid, 'meta', 'royalty_percent']\n __S[uid, 'creator'] = __Thing_Info[uid, 'creator']\n __S[uid, ctx.caller] = True\n\n\n@__export('con_pixel_frames_auction_v0_6_1')\ndef end_auction(uid: str, end_early: bool):\n listing_info = __get_listing_info(uid=uid)\n if end_early:\n assert listing_info['current_owner'] == ctx.caller or __metadata[\n 'operator'\n ] == ctx.caller, 'Only thing owner or auction operator can end the auction early!'\n if now < listing_info['start_date']:\n __process_auction_result_no_winner(listing_info)\n elif (listing_info['current_bid'] or -1) < listing_info['reserve_price'\n ]:\n __process_auction_result_no_winner(listing_info)\n else:\n assert False, 'Cannot end early. Auction started or reserve has been met.'\n else:\n assert now > listing_info['end_date'], 'Auction is still pending!'\n if listing_info['current_bid'] == None or listing_info['current_bid'\n ] < listing_info['reserve_price']:\n __process_auction_result_no_winner(listing_info)\n else:\n __process_auction_result(listing_info)\n\n\ndef __process_auction_result_no_winner(listing_info):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=listing_info['uid'], new_owner=\n listing_info['current_owner'])\n if listing_info['current_winner'] != '':\n currency.transfer(to=listing_info['current_winner'], amount=\n listing_info['current_bid'])\n __S[listing_info['uid'], listing_info['current_owner']] = False\n\n\ndef __process_auction_result(listing_info):\n thing_master_contract = I.import_module(__S['thing_master_contract'])\n thing_master_contract.transfer(uid=listing_info['uid'], new_owner=\n listing_info['current_winner'])\n royalty_percent = listing_info['royalty_percent']\n if royalty_percent > 0:\n royalty_amount = listing_info['current_bid'] * (royalty_percent / 100)\n net_amount = listing_info['current_bid'] - royalty_amount\n currency.transfer(to=listing_info['creator'], amount=royalty_amount)\n else:\n net_amount = listing_info['current_bid']\n currency.transfer(to=listing_info['current_owner'], amount=net_amount)\n __S[listing_info['uid'], listing_info['current_owner']] = False\n\n\n@__export('con_pixel_frames_auction_v0_6_1')\ndef bid(uid: str, bid_amount: float):\n listing_info = __get_listing_info(uid=uid)\n current_bid = listing_info['current_bid'] or 0\n assert now < listing_info['end_date'], 'Auction has ended.'\n assert now > listing_info['start_date'], 'Auction has not stared.'\n assert bid_amount > 0, 'Bid must be greater than zero.'\n assert bid_amount > current_bid, f'Current bid of {current_bid} is higher!'\n currency.transfer_from(main_account=ctx.caller, to=ctx.this, amount=\n bid_amount)\n if listing_info['current_winner'] != '':\n currency.transfer(to=listing_info['current_winner'], amount=\n listing_info['current_bid'])\n __S[uid, 'current_bid'] = bid_amount\n __S[uid, 'current_winner'] = ctx.caller\n\n\ndef __strptime_ymdhms(date_string: str):\n return datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')\n" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.__developer__", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_auction_v0_6_1.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 10, + 9, + 57, + 9, + 0 + ] + } + }, + { + "key": "con_pixel_frames_auction_v0_6_1.metadata:operator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info.__code__", + "value": "__S = Hash(default_value='', contract='con_pixel_frames_info', name='S')\n\n\n@__export('con_pixel_frames_info')\ndef add_thing(thing_string: str, name: str, description: str, meta: dict,\n creator: str):\n __enforce_thing_standards(thing_string, name, description, meta)\n uid = hashlib.sha256(thing_string)\n assert not __S[uid], thing_string + ' already exists'\n names_uid = hashlib.sha256(name.lower().replace(' ', ''))\n assert not __S['names', names_uid\n ], 'A form of this name already belongs to ' + __S['names', names_uid]\n __S['names', names_uid] = uid\n __custom_string_validations(thing_string, meta['num_of_frames'])\n __S[uid] = ['thing', 'type', 'name', 'description', 'owner', 'creator',\n 'likes', 'price:amount', 'price:hold', 'meta_items']\n __S[uid, 'thing'] = thing_string\n __S[uid, 'type'] = 'text/plain'\n __S[uid, 'name'] = name\n __S[uid, 'description'] = description\n __S[uid, 'owner'] = creator\n __S[uid, 'creator'] = creator\n __S[uid, 'likes'] = 0\n __S[uid, 'price', 'amount'] = 0\n __S[uid, 'meta_items'] = ['speed', 'num_of_frames', 'royalty_percent']\n __S[uid, 'meta', 'speed'] = meta['speed']\n __S[uid, 'meta', 'num_of_frames'] = meta['num_of_frames']\n __S[uid, 'meta', 'royalty_percent'] = meta['royalty_percent']\n return uid\n\n\ndef __enforce_thing_standards(thing_string: str, name: str, description:\n str, meta: dict):\n assert len(thing_string) > 0, 'Thing string cannot be empty.'\n assert len(name) > 0, 'No Name provided.'\n assert len(name) <= 25, 'Name too long (25 chars max).'\n assert len(description) > 0, 'No description provided.'\n assert len(description) <= 128, 'Description too long (128 chars max).'\n __custom_meta_validations(meta)\n\n\ndef __custom_string_validations(thing_string: str, num_of_frames: int):\n assert num_of_frames >= 1 and num_of_frames <= 8, 'num_of_frames value ' + str(\n num_of_frames) + ' is out of range (1-4).'\n assert len(thing_string\n ) % num_of_frames == 0, 'num_of_frames value is invalid.'\n assert len(thing_string\n ) / num_of_frames == 625, 'Frames Data is Invalid, must be 625 pixels/frame.'\n __assertPixelValues(thing_string)\n\n\ndef __assertPixelValues(thing_string):\n for pixel in thing_string:\n assert (ord(pixel) >= 65 and ord(pixel) <= 122) and ord(pixel\n ) != 92, 'Frames Data contains invalid pixel {}.'.format(pixel)\n\n\ndef __custom_meta_validations(meta):\n assert 'speed' in meta, \"Missing meta value 'speed' (int).\"\n assert isinstance(meta['speed'], int), 'Speed value is not an integer.'\n assert meta['speed'] >= 100 and meta['speed'\n ] <= 2000, 'Speed value ' + str(meta['speed']\n ) + ' is out of range (100ms-2000ms).'\n assert 'num_of_frames' in meta, \"Missing meta value 'num_of_frames' (int).\"\n assert isinstance(meta['num_of_frames'], int\n ), 'num_of_frames value is not an integer.'\n assert 'royalty_percent' in meta, \"Missing meta value 'royalty_percent' (int).\"\n assert isinstance(meta['royalty_percent'], int\n ), 'royalty_percent value is not an integer.'\n assert meta['royalty_percent'] >= 0 and meta['royalty_percent'\n ] <= 100, 'royalty_percent value ' + str(meta['royalty_percent']\n ) + ' is out of range (0-100).'\n\n\n@__export('con_pixel_frames_info')\ndef thing_exists(thing_string: str):\n uid = hashlib.sha256(thing_string)\n return __S[uid]\n\n\n@__export('con_pixel_frames_info')\ndef get_owner(uid: str):\n return __S[uid, 'owner']\n\n\n@__export('con_pixel_frames_info')\ndef get_creator(uid: str):\n return __S[uid, 'creator']\n\n\n@__export('con_pixel_frames_info')\ndef set_price(uid: str, amount: float, hold: str):\n assert amount >= 0, 'Cannot set a negative price'\n __S[uid, 'price', 'amount'] = amount\n if not hold == None:\n __S[uid, 'price', 'hold'] = hold\n\n\n@__export('con_pixel_frames_info')\ndef get_price_amount(uid: str):\n return __S[uid, 'price', 'amount']\n\n\n@__export('con_pixel_frames_info')\ndef get_royalty_amount(uid: str):\n return __S[uid, 'meta', 'royalty_percent']\n\n\n@__export('con_pixel_frames_info')\ndef get_price_hold(uid: str):\n return __S[uid, 'price', 'hold']\n\n\n@__export('con_pixel_frames_info')\ndef set_owner(uid: str, owner: str):\n __S[uid, 'owner'] = owner\n\n\n@__export('con_pixel_frames_info')\ndef like_thing(uid: str):\n likes = __S[uid, 'likes']\n __S[uid, 'likes'] = likes + 1\n\n\n@__export('con_pixel_frames_info')\ndef set_proof(uid: str, code: str):\n __S[uid, 'proof'] = code\n" + }, + { + "key": "con_pixel_frames_info.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_pixel_frames_info.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 15, + 13, + 7, + 10, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682:description", + "value": "asdasdsad" + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682:name", + "value": "asdasdasd" + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682:thing", + "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYYAAAAAAAAAAAAAAAAAAAAAAYYAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAYYAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAYYAAAAAYYYAAAAYAAAAAAAAAAYAAAAAYYAAAAAYYAAAAAAAAAAAAAAAAYAAAAAYAAAAAAAAAAAAAAAAAYAAAAAYYAAAAAAAAAAAAAAAAYAAAAAAYAAAAAAAAAAAAAAAAYAAAAAYYAAAAAAAAAAAAAAAAYAAAAAYYAAAAAAAAAAAAAAAAYAAAAAYYAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "con_pixel_frames_info_v0_1.S:4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6:description", + "value": "kjhkhkjhkh" + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6:name", + "value": "kjhgkjhkjh" + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBBAAABBBBBBBBBBBBBJBBBBBBBAABBBBBBBBBBBBBJJJBBBBBBABBBBBBBBBBBJJBJJJJKJBBAABBBBBBBBBBBBBJJBBJKJJBAABBKKKKBBBBBBBBBBKJBJKJBBBBKKLLBBBBBBBBBBBJBJLJBBBBKKLLBBBBBBBBBBBBJJJLJBBKKKLLBBBBBBBBBBBBJJJLLJBKKJLLBBBBBBBBBBBBBJJLLJBKKJLLBBBBBBBBBBBBBJLLBLJKKLLLBBBBBBBBBBBBBBLLBLLJKLLBBBBBBBBBBBBBBBBLBBLJJLLBBBBBBBBBBBBBBBBBBBBLJLLBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_1.S:5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab:creator", + "value": "5fa1b314468832fb9d391e8af756140e85325a565d8b411ae2f2001d37c30ef4" + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab:description", + "value": "cool cool pixel" + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab:name", + "value": "cool_pixel" + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab:owner", + "value": "5fa1b314468832fb9d391e8af756140e85325a565d8b411ae2f2001d37c30ef4" + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab:thing", + "value": "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRTRTRRRRRRRRRRRRRRRRRRRRRTRTRTRRRRRRRRRRRRRRRRRRRRRTRTRTRRRRRRRRRRRRRRRRRRRRRTRTRRRRRRRRRRRRRRRRRRRRRRRTRRRRRRRRRRRRRRRRRRRRRRTRRTRRRRRRRRRRRRRRRRRRRRRTRRTRRRRRRRRRRRRRRRRRRRRRTRRRRRRRRRRRRRRRRRRRRRRRRRTRTRRRRRRRRRRRRRRRRRRRRRRRTRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR" + }, + { + "key": "con_pixel_frames_info_v0_1.S:c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861:description", + "value": "34534534" + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861:name", + "value": "43354345" + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861:thing", + "value": "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYBYYYYYYYYYYYYYYYYYYYYYYYYBYYYYYYYYYYYYYYYYYYYYYYYYBYYYYYYYYYYYYYYYYYYYYYYYYBYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYBYYYYYYYYYYYYYYYYYYYYYYYYAYYYYYYYYYYYYYYYYYYYYYYYYBYYYYYYYYYYYYYYYYYYYYKKYYYYYYYYYYYYYYYYYYYYYYYKKYYBYYYYYYYYYYYYYYYYYYYYYKYYBYYYYKYYYYYYYYYYYYYYBYKYBBYYYYKYYYYYYYKYYKKYKBYKYBBYYYYKYKYYKYYKKYBKKKBYKYBBBYBYKYKYYKKYKKBBKKBBBYBBBBYBBBBKKYBKYBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_1.S:d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_1.S:names:0531a7fd2d8e6d3011f75922c152217bc6c06a32af8a089c3eee69222fbddca7", + "value": "d05e516196753fd40b684e24a08a6a7f87fad9637b03f055c7058b9658869861" + }, + { + "key": "con_pixel_frames_info_v0_1.S:names:d8a928b2043db77e340b523547bf16cb4aa483f0645fe0a290ed1f20aab76257", + "value": "4c105f89b38d388d4b038ec1795cce62bb507bfa1f8a16049a929de5204f8682" + }, + { + "key": "con_pixel_frames_info_v0_1.S:names:f6385893d8383821d6cf3056c600f0e31a4c45b871d4f1c458b3be9084ac1e7d", + "value": "5fefaacc2c91871eede54319c32c10765afa2282aa00b297f4eb778136c11ba6" + }, + { + "key": "con_pixel_frames_info_v0_1.S:names:ffe8608b087fdca776bb71be3f020c61cf6b21fd41e73ad3eda66e3261fb9789", + "value": "c3361632d6a205715dca150fc09c6219c897ec2420d370740e23e6be548088ab" + }, + { + "key": "con_pixel_frames_info_v0_1.__code__", + "value": "__S = Hash(default_value='', contract='con_pixel_frames_info_v0_1', name='S')\n\n\n@__export('con_pixel_frames_info_v0_1')\ndef add_thing(thing_string: str, name: str, description: str, meta: dict,\n creator: str):\n __enforce_thing_standards(thing_string, name, description, meta)\n uid = hashlib.sha256(thing_string)\n assert not __S[uid], thing_string + ' already exists'\n names_uid = hashlib.sha256(name.lower().replace(' ', ''))\n assert not __S['names', names_uid\n ], 'A form of this name already belongs to ' + __S['names', names_uid]\n __S['names', names_uid] = uid\n __custom_string_validations(thing_string, meta['num_of_frames'])\n __S[uid] = ['thing', 'type', 'name', 'description', 'owner', 'creator',\n 'likes', 'price:amount', 'price:hold', 'meta_items']\n __S[uid, 'thing'] = thing_string\n __S[uid, 'type'] = 'text/plain'\n __S[uid, 'name'] = name\n __S[uid, 'description'] = description\n __S[uid, 'owner'] = creator\n __S[uid, 'creator'] = creator\n __S[uid, 'likes'] = 0\n __S[uid, 'price', 'amount'] = 0\n __S[uid, 'meta_items'] = ['speed', 'num_of_frames', 'royalty_percent']\n __S[uid, 'meta', 'speed'] = meta['speed']\n __S[uid, 'meta', 'num_of_frames'] = meta['num_of_frames']\n __S[uid, 'meta', 'royalty_percent'] = meta['royalty_percent']\n return uid\n\n\ndef __enforce_thing_standards(thing_string: str, name: str, description:\n str, meta: dict):\n assert len(thing_string) > 0, 'Thing string cannot be empty.'\n assert len(name) > 0, 'No Name provided.'\n assert len(name) <= 25, 'Name too long (25 chars max).'\n assert len(description) > 0, 'No description provided.'\n assert len(description) <= 128, 'Description too long (128 chars max).'\n __custom_meta_validations(meta)\n\n\ndef __custom_string_validations(thing_string: str, num_of_frames: int):\n assert num_of_frames >= 1 and num_of_frames <= 8, 'num_of_frames value ' + str(\n num_of_frames) + ' is out of range (1-4).'\n assert len(thing_string\n ) % num_of_frames == 0, 'num_of_frames value is invalid.'\n assert len(thing_string\n ) / num_of_frames == 625, 'Frames Data is Invalid, must be 625 pixels/frame.'\n __assertPixelValues(thing_string)\n\n\ndef __assertPixelValues(thing_string):\n for pixel in thing_string:\n assert (ord(pixel) >= 65 and ord(pixel) <= 122) and ord(pixel\n ) != 92, 'Frames Data contains invalid pixel {}.'.format(pixel)\n\n\ndef __custom_meta_validations(meta):\n assert 'speed' in meta, \"Missing meta value 'speed' (int).\"\n assert isinstance(meta['speed'], int), 'Speed value is not an integer.'\n assert meta['speed'] >= 100 and meta['speed'\n ] <= 2000, 'Speed value ' + str(meta['speed']\n ) + ' is out of range (100ms-2000ms).'\n assert 'num_of_frames' in meta, \"Missing meta value 'num_of_frames' (int).\"\n assert isinstance(meta['num_of_frames'], int\n ), 'num_of_frames value is not an integer.'\n assert 'royalty_percent' in meta, \"Missing meta value 'royalty_percent' (int).\"\n assert isinstance(meta['royalty_percent'], int\n ), 'royalty_percent value is not an integer.'\n assert meta['royalty_percent'] >= 0 and meta['royalty_percent'\n ] <= 100, 'royalty_percent value ' + str(meta['royalty_percent']\n ) + ' is out of range (0-100).'\n\n\n@__export('con_pixel_frames_info_v0_1')\ndef thing_exists(thing_string: str):\n uid = hashlib.sha256(thing_string)\n return __S[uid]\n\n\n@__export('con_pixel_frames_info_v0_1')\ndef get_owner(uid: str):\n return __S[uid, 'owner']\n\n\n@__export('con_pixel_frames_info_v0_1')\ndef get_creator(uid: str):\n return __S[uid, 'creator']\n\n\n@__export('con_pixel_frames_info_v0_1')\ndef set_price(uid: str, amount: float, hold: str):\n assert amount >= 0, 'Cannot set a negative price'\n __S[uid, 'price', 'amount'] = amount\n if not hold == None:\n __S[uid, 'price', 'hold'] = hold\n\n\n@__export('con_pixel_frames_info_v0_1')\ndef get_price_amount(uid: str):\n return __S[uid, 'price', 'amount']\n\n\n@__export('con_pixel_frames_info_v0_1')\ndef get_royalty_amount(uid: str):\n return __S[uid, 'meta', 'royalty_percent']\n\n\n@__export('con_pixel_frames_info_v0_1')\ndef get_price_hold(uid: str):\n return __S[uid, 'price', 'hold']\n\n\n@__export('con_pixel_frames_info_v0_1')\ndef set_owner(uid: str, owner: str):\n __S[uid, 'owner'] = owner\n\n\n@__export('con_pixel_frames_info_v0_1')\ndef like_thing(uid: str):\n likes = __S[uid, 'likes']\n __S[uid, 'likes'] = likes + 1\n\n\n@__export('con_pixel_frames_info_v0_1')\ndef set_proof(uid: str, code: str):\n __S[uid, 'proof'] = code\n" + }, + { + "key": "con_pixel_frames_info_v0_1.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_pixel_frames_info_v0_1.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 16, + 10, + 55, + 59, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:created", + "value": { + "__time__": [ + 2024, + 11, + 7, + 18, + 37, + 45, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:description", + "value": "lines lines" + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:name", + "value": "gee lines 3" + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:owner", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBttBBBBBBBBBBBBBBBBBBBBBBttBBBBBBBBBBBBBBBBBBBBBBBttBBBBBBBBBBBBBBBBBBBBBBBtBBBBBBGGBBBBBBBBBBBBBBBttBBBBBBGBBBBBBBBBBBBBBBBtBBBBBBGGBBBBBBBBBBBBBBBtBBBBBBBGBBBBBdBBBBBBBBBBtBBBBBBBGBBBBBdBBBBBBBBBttBBBBBBBGBBBBddBBBBBBBBBtBBBBBBBGBBBBBdBBBBBBBBBBBBBBBBBGBBBBBBdBBBBBBBBBBBBBBBBBGBBBBBBdBBBBBBBBBBBBBBBBBGBBBBBddBBBBBBBBBBBBBBBBGBBBBBBdBBBBBBBBBBBBBBBGGGBBBBBBdBBBBBBBBBBBBBBBBBBBBBBBBdBBBBBBBBBBBBBBBBBBBBBBBBdBBBBBBBBBBBBBBBBBBBBBBBBdBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:created", + "value": { + "__time__": [ + 2024, + 10, + 1, + 12, + 53, + 35, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:description", + "value": "7777" + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:name", + "value": "77" + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:price:amount", + "value": { + "__fixed__": "1111" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBGGBBGBBBBBBBBBBBBBBBBBBBBGGGGGGBBBBBBBBBBBBBBBBBBBGGGGGGGBBBBBBBBBBBBBBGGGGGGGGGGGGBBBBBBBBBBBBBGGGGGGGGGGGBBBBBBBBBBBBBBGGGGGGGGBBBGGBBBBBBBBBBBBGGGGGGGGBBBBBBBBBBBBBBBBBGGGGGGGGGBBBBBBBBBBBBBBBBGGGGGGGGGGBBBBBBBBBBBBBBGGGGGGGGGGGGBBBBBBBBBBBBBBGGGGGGGGGGGBBBBBBBBBBBBBBBGGGGGGGBBBBBBBBBBBBBBBBBBBBGGGGBBBBBBBBBBBBBBBBBBBBBBGGGBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:created", + "value": { + "__time__": [ + 2024, + 10, + 25, + 20, + 54, + 42, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:description", + "value": "123123123" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:name", + "value": "space taco" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:price:amount", + "value": { + "__fixed__": "1123123123123" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:thing", + "value": "GGGPTTTNNNNGGGGGGGGGGGGGGGGGPPPTTTTNNGGGGGGGGDGGGGGGGQQPPPPPTNNNGGGGGGGGGGGGGGGQQQPPPPPTNNNNGGGGGGGGGGGGJJQQQQPPPPTTNNNGGGGGGGGLLKKJJQQQQQQPPPTNNNNNNGGGGLLLKJJJJJQQQQQPPPPTTNNGGGGGLLKKKKJJJJJQQQQPPPTTGGGGGGLLLKKKKJJJJJQQQQQPPGGGGGGGGLLKKKKKKKKKJJJJJJGGCGGGGGGLLLLLLKKKKKKKKKJGGGGGGGGGGGGGGLLLLLLLLKKKGGGGGGGGGGGGGGGGGGGGGGLLLGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:created", + "value": { + "__time__": [ + 2024, + 10, + 25, + 14, + 4, + 48, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:description", + "value": "123123123" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:meta:num_of_frames", + "value": 4 + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:name", + "value": "ANIMATED OMG" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:price:amount", + "value": { + "__fixed__": "1E+5" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBJJBJJBBBBBBBBBBBBBBBBJJBJJJJJJBBJBBBBBBBBBBJJJBJJJBJJBBBBBBBJBBJBBBBBBJJBJJBBBBBBBBBBJJBBBBBBJJJJBBBBBBBBBBBJJJJBBBBBBJBBBBBBBBBBBBBJJJJJBBBBBBBBBBBBBBBBBBJJJJJJBBBBBBBBBBBBBBBBBJJJJBBBBBBBBBBBBBBBBBBBJJJBBBJBBBBBBBBBBBBBBBBJJJJJJJJBJBBBBBJBBBBBBBBBBBBBBBBBBBJBJJJBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBFFBBBBBBBBBBBBFFBFBFFFFFFBBBBBBBBBBBBBBBBBBBBFBBBFBBFBFFFBBBBBBBBBBBBBBBFFJBJJBBBFBFBBBBBBBBBBJJFFJJJJJFBFFFFBBBBBBBJJJBFFFFJFFBFFBBBJBBJBBBBBBJJFJFBBBBFBBBBBJJBBBBBBJFJJBBBBFBFBFBFJFFFBBBBFFFBBFBBFBFBBBFBJFJJJBBBBBBBBBBBBBFBBFBJJJJJJBBBBBBBBBBBFFFFBBFFFJBBBBBBBBBBBFFFFFFFFFJFFBBJBBBBBBBBBBBBBFFFFFJJJJJJBJBBBBBJBBBBBBBBBBBBBBBBBBBJBJJJBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBFFBBBBBBBBBBBBFFBFBFFFFFFBBBBBBBBBBBBBBBBBBBBFBBBFBBLBFFFBBBBBBBBBBBBBBBFFLLLJBBBFBFBBBBBBBBBBJJFFLJJJJFBFFFFBBBBBBBJJJLFLFFJFFBFFBBBJBBJBBBBBBLJFJFBBBBFBBBBLLLBBBBBBLFJJBBBBFLFLLBLLFFFBBBBLFFBBLBBLBFLBBFBJFJJJBBBLBLBLBLBBLFBBFBJJJJJJBBBBBBBBBLBFFFFBBFFFJBBBBBBBBBBBLLLLFFLFLJFLBBLBLLBBBBBBBBBBFFFFFJJJLLLLJLLBLBJBBBBBBBBBBBBBBBBLLBJBLLLBBBBBBBBBBBBBBBLBLBBLBBBBBBBBBBBBBBLLLLBBBBBBBBBBBBBBBBBBBLLLBBLLLLLLLLLBBBBBBBBBBBBLLLLLBLBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBxxxBxBBxBxFBxBxxBBBBBBBFFBFBxFFxFFxxxxxxxxBBBBBBBBBBBBFBxBxBxLxFxFBxBxBBBBBBBxxxxFFLLLJBBBFBxxxxBBBBBBBJJFxLxJJJFxFxFFBBBBBBBJJJLFLFFJxFxFFBBBJBBJBBBBBBLJFJFBxBBFxBBBLLLBBBBBBLFJJBBBxFLFLLxLLFFFBBBBLFFBBLBBLxFLBBFBxFJJJBBBLBLBLBLBBLxBBFBJxJJJJBBBBBBBBBLBFFFFxBxFxJBBBBBBBBBBBLLLLFFLFLJFxBxLBLLBBBBBBBBBBFFFFFxxJLLLLJxxxxBJBBBBBBBBBxxBxxBxLxxJBLLLBBBBBBBBBxBxBBBLBLBBLBBBBBBBBBBBBBBLLxLxBxBxBBBBBBBBBBBBBBLLLBBLLLLxLxxLxxBBBBBBBBBBLLLLxxxxxBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:created", + "value": { + "__time__": [ + 2024, + 10, + 26, + 8, + 41, + 40, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:description", + "value": "987654" + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:meta:num_of_frames", + "value": 3 + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:name", + "value": "987654" + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:price:amount", + "value": { + "__fixed__": "123123" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:thing", + "value": "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCCCCCGGGGGGGGGGGGGGGGGGGEEEEECGGGGGGGGGGGGGGGGGGGEEEEECGGGGGGGGGGGGGGGGGGGEEEEECGGGGGGGGGGGGGGGGGGGEEEEECGGGGGGGGGGGGGGGGGGGEEEEEGGGGGGGGCCCCCGGGGGGGGGGGGGGGGGGGGCEEEEEGGGGGGGGGGGGGGGGGGGCEEEEEGGGGGGGGGGGGGGGGGGGCEEEEEGGGGGGGGGGGGGGGGGGGCEEEEEGGGGGGGGGGGGGGGGGGGGEEEEEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGEEEEEGGGGGGGGGGGGGGGGGGGGEEEEECGGGGGGGGGGGGGGGGGGGEEEEECGGGGGGGGGGGGGGGGGGGEEEEECGGGGGGGGGGGGGGGGGGGEEEEECGGGGGGGGGGGGGGGGGGGGCCCCCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCCCCCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCCCCCGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGCCCCCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCCCCCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCCCCCGGGGGGGGGGGGGGGGGGGGCGGGGGGGDDDDDGGGGGGGGGGGGCGGGGGGGDGGGDGGGGGGGGGGGGCGGGGGGGDGGGDGGGGGGGGGGGGCGGGGGGGDGGGDGGGGGGGGGGGGGGGGGGGGDDDDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGGGGGCGGGGGGGGGGGGGGGGGGGGCCCCCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG" + }, + { + "key": "con_pixel_frames_info_v0_3.S:105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:created", + "value": { + "__time__": [ + 2024, + 10, + 26, + 12, + 35, + 6, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:description", + "value": "100%" + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:name", + "value": "ITS JUST TESTNET SHEEEET" + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:price:amount", + "value": { + "__fixed__": "12313123123" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:thing", + "value": "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDDDGGGGGCCCGGGGGGGGGGGGGCDDDGGGGGCDDDGGGGGGGGGGGGCDDDGGGGGCDDDGGGGGGGGGGGGCCCGGGGCGGDDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGKKKGGGGGGGGGGGGGGGGGGGGGCKKKGGGGGEEEGGGGGGGCGGGGGCKKKGGGGGECCCGGGGGGGGGGGGCCCGGGGGGECFFFGGGGGGGGGGGGGGGGGGGGGCFCFGGGGGGGGGGGGGGGGGGGGGGFFFGGGGZZZCGGGGGGGGGGGGGGGGGGGGGZZZCGGGGGGGGGGGGGGGGGGGGGZZZCGGGGGGGGGGGGGGGCGGGGGGGGGFFFGGGGGGGGGGGGGGGGGFFGGGFFFEGGGGGGGGGGGGGGDDFFGGGFFFEDCCGGGGGGGGGGFDDDGGGGGEEEDCCGGGGGGGGGCFDDDGGGGGGDDDCCGGGGGGGGGCFFFGGGGGGGCCCCCGGGGGGGGGCCCGGGGGGGGCCCCCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG" + }, + { + "key": "con_pixel_frames_info_v0_3.S:120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:created", + "value": { + "__time__": [ + 2024, + 10, + 6, + 12, + 23, + 41, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:description", + "value": "765765" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:name", + "value": "98797" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBJBBBBBBBBBBBBBBBJJBJBBBBJBBBBBBBBBBBBBBBBBBBJNNNNNBBBBBBBBBBBBBBBBBBNNNNNBNNBBBBBBBBBBBBBBBBNNNNNJJBNBBBBBBBBBBBBBBBNNNNNJBBJNNBBBBBBBBBBBBBBNNNNJBBBBJNBBBBBBBBBBBBBBNNNNBBBBBBNJBBBBBBBBBBBBBNNBBBBBBBNBJJBBBBBBBBBBBBBNNNBBBBBNBBBBBBBBBBBBBBBBNNBNNBNNNBBBBBBBBBBBBBBBBBNNNNNNNBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:created", + "value": { + "__time__": [ + 2024, + 10, + 25, + 20, + 59, + 26, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:description", + "value": "352235235" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:name", + "value": "5124512312" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:owner", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBDDDDDGBBBBBBBBBBBBBBBBBBBDDDDDGBBBBBBBBBBBBBBBBBBBDDDDDGBBBBBDDDDDBBBBBBBBBDDDDDGBBBBBDDDDDBBBBBBBBBDDDDDGBBBBBDDDDDBBBBBBBBBBBBBBBBBBBBDDDDDBBBBBBBBBBBBBBBBBBBBDDDDDBBBBBBBBBBBBBBBBBBBBGGGGGBBBBBBBBBBBBBDGGGGGBBBBBBBBBBBBGGGGGBBDGGGGGBBBBBBBBBBBDDDDDGBBDGGGGGBBBBBBBBBBBDDDDDGBBDGGGGGBBBBBBBBBBBDDDDDGBBDGGGGGBBBBBBBBBBBDDDDDGBBBBBBBBBBBBBBBBBBBDDDDDBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBGGGGGBBBBBDDDDDBBBBBBBBBBGDDDDDBBBGDDDDDBBBBBBBBBBGDDDDDBBBGDDDDDBBBBBBBBBBGDDDDDBBBGDDDDDBBBBBBBBBBGDDDDDBBBGDDDDDBBBBBBBBBBBDDDDDBBBGGGGGBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:created", + "value": { + "__time__": [ + 2024, + 10, + 1, + 13, + 5, + 42, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:description", + "value": "12312312312" + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:name", + "value": "13123123" + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:price:amount", + "value": { + "__fixed__": "123123" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBBBBBBABBBBBBBBBBBBBBBBBBBBBBBBBABBBBBBBBBBBBBBBBBBBBBBBBBABBBBBAABBBBBBBBBBBBBBBBBBABBBBAAABBBBBBBBBBBBBBBBBBABBBABABBBBBBBBBBBBBBBBBBAABBABBABBBBBBBBBBBBBBBBBBAABABBBABBBBBBBBBBBBBBBBBBABABBBABBBBBBBBBBBBBBBBBBAABBBBABBBBBBBBBBBBBBBBBBBAABBBABBBBBBBBBBBBBBBBBBBAABBABBBBBBBBBBBBBBBBBBBBAAAABBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBABABBAABBBBBBBBBBBBBBAAAABBBBBAABBBBBBBBBBBBBAABBBBBBBBAAABBBBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBBBBAAABBBBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBBBBAABBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:created", + "value": { + "__time__": [ + 2024, + 10, + 1, + 12, + 51, + 49, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:description", + "value": "555" + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:name", + "value": "555" + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:price:amount", + "value": { + "__fixed__": "7777" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBGBBBBBBBBBBBBBBBBBBBBBBBBGGBBBBBBBBBBBBBBBBBBBBBBBGBGBBBBBBBBBBBBBBBBBBBBBBGBBGGBBBBBBBBBBBBBBBBBBBBBGBGGBBBBBBBBBBBBBBBBBBGGBBBBGGBBBBBBBBBBBBBBGGGBGGGGBBGGGGBBBBBBBBBBBGGGGBBBGGGGGGBBBBBBBBBBBBGGGGGBBGBBGGGBBBBBBBBBBBBGGBGBGGBGGBBGGBBBBBBBBBBBGGBBGBBGGGGBBBBBBBBBBBBBBBGBBBGGBBGBBBBBBBBBBBBBBGGGGGGGBBBGGGBBBBBBBBBBBBGBGGGGGGGGGBGGBBBBBBBBBBGBBBGBBGBBBBBBBGGBBBBBBBBGGBBGGBGBBBBBBBBGGBBBBBBBBGGGBGGGBBBBBBBBBBBBBBBBBBBBBGBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:created", + "value": { + "__time__": [ + 2024, + 10, + 1, + 12, + 52, + 4, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:description", + "value": "666" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:name", + "value": "666" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:price:amount", + "value": { + "__fixed__": "444" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBJBBBBBBBBBBBBBBBBBBBBBBBBJJBBBBBBBBBBBBBBBBBBBBBBJJBJBBBBBBBBBBBBBBBBBBBJJJBBBJBBBBBBBBBBBBBBBBBJBBJBBBBJJBBBBBBBBBBBBBBBJBBJBBBJJBBBBBBBBBBBBBBBBBBJBBBBJJBBBBBBBBBBBBBBBJBBJJBBJBJBBBBBBBBBBBBBBJBBJBBBJBBBBBBBBBBBBBBBBBBBBJBJJBBBJBBBBBBBBBBBBBBJJJJJJBBBBJBBBBBBBBBBBBJJBBJJJBBBBBBBBBBBBBBBBBBJBJBBJJBBBBBJBBBBBBBBBBBJBBJBBBJBBBBBJBBBBBBBBBBBJBBJBBBJBBBBJBBBBBBBBBBBBJJJBBBBJBBBJBBBBBBBBBBBBBBBJJBJJJJBJJBBBBBBBBBBBBBBBBBJBBJBBBBBBBBBBBBBBBBBBBBBBJJJBBBBBBBBBBBBBBBBBBBBBBBJJBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:created", + "value": { + "__time__": [ + 2024, + 10, + 15, + 21, + 43, + 32, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:description", + "value": "123123123" + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:name", + "value": "123123123123" + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBABBBBBBBBBBKKBBBBBBBBBBBBAAAABBKKKKKKBBBBBBBBBBBBBBBKKKKKKKKKBBBBBBBBBBBBBBKKBKKKKBBKKKBBBBBBBBBBBKKBBKKKKKKBBKKKBBBBBBBBBBKKKKKKKKKKKKKAKKBBBBBBBBBBBBKAKKKKKKKKBBKBBBBBBBBBAAAKBKKKBBBKKKBBKBBBBBBBBAAAKBKKABBBBKKBKKBBBBBBBBBBBKBKKKKAABKKKBBBBBBBBBBBBBKKKBBBKKKKAKBBBBBBBBBBBBBBKKBBBBBBKKKAAABBBBBBBBBBBKKKKKBKKKKKBBBBBBBBBBBBBBBKKKKKKKKBKBBBBBBBBBBBBBBBBBKKKAKKKBBBBBBBBBBBBBBBBBBBBAKKBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:created", + "value": { + "__time__": [ + 2024, + 11, + 8, + 10, + 5, + 4, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:description", + "value": "scibble" + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:name", + "value": "scribble" + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:owner", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBoooBBBBBBBBBBBBBooBBBBBBBoBooBBBBBBBBBoooBooBBBBBBoBBooooBBBBBoBBBBBoBBBBBBoBBBBBooBBBBBBBBBBoBBBBBBoBBBBBBoBBBBBBBBBBBoBBBBBoBBBBBBoBBBBBBBBBBBoBBBBBoBBBBBBoBBBBBBBBBBBoBBBBoBBBBBBBBBBBBBBBBBBBoBBBBoBBBBBBBBBBBBBBBBBBBoBBBBBBBBBBBBBBBBBBBBBBBBooBBBoBBBBBBBBBBBBBBBBBBBooBooooooooooBBBBBBBBBooooooooooooooooBBBBBBBBBBBBoBBBBBBBBBBBoBBBBBBBBBBBBoBBBBBBBBBBBBBBBBBBBBBBBBoBBBBBBBBBBBBBBBBBBBBoooooBBBBBBBBBBBBBBBBBBBBooBBBBBBBBBBBBBBBBBBBBBBBBooooBBBBBBBBBBBBBBBBBBBBBBBBoooooBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:created", + "value": { + "__time__": [ + 2024, + 10, + 5, + 10, + 59, + 34, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:description", + "value": "123" + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:name", + "value": "123" + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:thing", + "value": "XXXXXXXXXXXXXXXXXXXXXByyyXXXXXXXXXXXXXXXXXXXXXXyyyXXXXXXXXXXXXXXXXXXXXXXyyyXXXXXXXXXXXXXXXXXXXyyJXXyXXXXXXXXXXXXXXXXXXXXJyXXyXXXXXXXXXXXXXXXXXKKKKyXXXXXXXXXXXXXXXXXXXKJKeeJJXyXXXXXXXXXXXXXXXKJPJeeJJXyXXXXXXXXXKKKyKyJJPeeJJyXXXXXXXXKKKJJJJJJPPeeXJJJXyXXXXXXKJJJPPPPPPPeeXXyyXXXXXXXKJJPPyjJPJJPeeXXyXXXXXXXXKJPyJPJJPPPfeeXXXXXXXXXXXKJPJJJJPPJffeXXXXXXXXXXXfeJPPPjPPffeXXXXXXXXXXXXXfeeeJjPPefeXXXXXXXXXXXXXXfffffffffXXXXXXXXXXXyXXXXXXfffffXXXXXXXXXXXXyyXXXXXXXXXXXXXXXXXXXXXXXyyXXXXXXXXXXXXXXXXXXXXXXyyyXXXXXXXXXXXXXXXXXXXXXXyyyXXXXXXXXXXXXXXXXXXXXXXyyyXXXXXXXXXXXXXXXXXXXXXyyyyXXXXXXXXXXXXXXXXXXXXXyyyyXXXXXXXXXXXXXXXXXXXXXyyyy" + }, + { + "key": "con_pixel_frames_info_v0_3.S:31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:created", + "value": { + "__time__": [ + 2024, + 11, + 6, + 11, + 11, + 29, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:description", + "value": "sun baking the earth" + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:name", + "value": "scorching sun" + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:owner", + "value": "con_pixel_frames_auction_v0_6_1" + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBJBBBBBBJBBBBBBBBBBBBBJBBBJBBBBBJBBBBBBBBBBBBBBJJBBJBBBBJJBBBBBBBBBBBBBBBJBBBBBBBJBBBBBBBBBBBBBBBBJBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBJJBBBBBBBBBBBBBJBBBBBBBBBJJJJBBJJJJBBBBBJJBBBBBJJJBBBJBJJBBBBBBBBBJBBBBJJBBBBBJJBBBBBBBBBBBJBBBBJBBBBBBBJBBBBBBBBBBBBBBBBJBBBBBBBJBBBBBBBBBBBBBBBBJBBBBBBBJBBBBBBBBBBBBBBBBJBBBBBBJBJJBBBBBBBBBBBBBBJJBBBBJJBBJJBBBBBBBBBBBBBBJJBBJJBBBBBBBBBBBBJJJJBBBBJJJJBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBJBBBBBBBBBBBBBBBBBBBBBBBBJJBBBBBBBBBBBBBBBJJBBBBBBBJBBBBBBBBBBBBBJJBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:created", + "value": { + "__time__": [ + 2024, + 10, + 26, + 23, + 51, + 36, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:description", + "value": "00000000" + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:name", + "value": "00000000" + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:thing", + "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "con_pixel_frames_info_v0_3.S:3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:created", + "value": { + "__time__": [ + 2024, + 10, + 25, + 14, + 29, + 34, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:description", + "value": "HELLO :D" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:name", + "value": "SO COOL" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKKKKBBBBBBBBBBBBBBBBBBBBBKKKKKKBBBBBBBBBKKKKBBBBBBKKKKKKBBBBBBBBBKKKKKBBBBBBKKKKBBBBBBBBBBKKKKKKBBBBBBBBBBBBBBBBBBBBKKKKKBBBBBBBBBBBBBBBBBBBBBKKKKBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKKKKKBBBBBBBBBBBBBBBBBBBKKBBBKBBBBBBBBBBBBBBBBKKKBBBBKKKBBBBBBBBBBBBBKKKBBBBKKBKBBBBBBBBBBBBKKKBBBBKKBBBKBBBBBBBBBBKKKBBBBBKKBBBBKBBBBBBBBBBBKBBBBKKBBBBBBKBBBBBBBBBBBKKBBKKBBBBBKKBBBBBBBBBBBBBKKKKKKKKKKKBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:created", + "value": { + "__time__": [ + 2024, + 10, + 1, + 12, + 52, + 21, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:description", + "value": "1" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:name", + "value": "1" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:price:amount", + "value": { + "__fixed__": "12312312" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBGBBGBBBBBBBBBBBBBBBBBBBBBGBBGGBBBBBBBBBBBBBBBBBBBBGGGBGGGBBBBBBBBBBBBBBBGGGGGGGGGGGBBBBBBBBBBBBBGGGGGGGGGGGGGBBBBBBBBBGGGGGGGGGGGGGGGGGBBBBBBBBGGGGGGGGGGGGGGGGGBBBBBBBBGGGGGGGGGGGGGGGGGGBBBBBBBGGGGGGGGGGGGGGGGGGBBBBBBBGGGGGGGGGGGGGGGGGGBBBBBBBGGGGGGGGGGGGGGGGGGBBBBBBBGGGGGGGGGGGGGGGGGGBBBBBBBGGGGGGGGGGGGGGGGGGBBBBBBBGGGGGGGGGGGGGGGGGGBBBBBBBGGBGGGGGGGGGGGGGGGBBBBBBBBBBBGGBGGGGGGGGGBBBBBBBBBBBBBBBBBGGGGGGBBBBBBBBBBBBBBBBBBBBBBGBBBBBBBBBBBBBBBBBBBBBBBBGBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:created", + "value": { + "__time__": [ + 2024, + 10, + 1, + 12, + 51, + 34, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:description", + "value": "44" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:name", + "value": "4" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:price:amount", + "value": { + "__fixed__": "55551" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBAABBBBBBBBBBBBBBAABBBBBBAAAABBBBBBBBBBBBBBBABABBABBBABBBBABBBBBBBBBBBBBAABBBBABBBABBBBBBBBBBBBBBBABABBBABABBBBBBBBBBBBBBBABBBABBAAABBBBBBBBBBBBBBABBBBAABAABBBBBBBBBBBBBBABBBBBBBAAABBBBBBBBBBBBBABBBBBBBBAAABBBBBBBBBBBBBABBBBBBBABBBBBBBBBBBBBBBABBBBBBBAABBBBBBBBBBBBBBABBBBBBBBABBBBBBBBBBBBBBBABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:created", + "value": { + "__time__": [ + 2024, + 10, + 25, + 20, + 36, + 28, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:description", + "value": "1513515135" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:name", + "value": "151515125" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:price:amount", + "value": { + "__fixed__": "123123123123123" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBOBBBBBBBBBBBBBBBBBBBBBBBBOOBABAAAABBBBBBBBBBBBBBBBAAAABAABBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBABBBABABBBBBBBBBBBBBBAAABBBBBOOBABBBBBBBBBBBBBABBBBBBBBAABBBBBBBBBBBBBBBBBBBBBBBAOOBBBBBABAAAABBBBBBBBAAAABABABBBBBBAABBBBBBBBBAAABBBOBBBABBBBBBBBBBBBBBBBBBBBOOBABBBBBBBBBBBBBBBBBOBBBAABBBBBBBBBBBBBBBBBBBOAABBOBBBBBBBBBBBBBBBBBBBAAAAAABBBBBBBBBBBBBBBBBBAABAAABOBBBBBBBBBBBBAAABBBBBBBOOOOBBBBBBBBBBBABAABABBABABABAAABBBBBBBBBBBBBBBBABABOOBBBBBBBBBBBBBBABBAABABBBOBBBBBBBBBBBBBBBBBBAABAABAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:created", + "value": { + "__time__": [ + 2024, + 10, + 1, + 13, + 13, + 49, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:description", + "value": "0" + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:name", + "value": "0" + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:thing", + "value": "BBBBBBBBBGBGBBGGBBBBBBBBBBBBBBBBBGBGBGBGBGBBBBBBBBBBBBBBBBGGGBGBGBBBBBBBBBBBBBGBBGGGGGBBGGGGBBBBBBBBBBBGGBGGGGGGGGGGBGBBBBBBBBBBBGGBGGBGGGBGGBBGBBBBBBBBBBGBGGGGGGGBGGBGBBBBBBBBBBGGGBBGBGGGBBGGGGBBBBBBBBBGGGGBGGGGGBBBGBBGBBBBBBBBGGGGGBGGBGGBGBGGGBBBBBBBBBBGGGBBGGBBGBBBBGGBBBBBBBBBGGGGGGGGGGBBBBGGBBBBBBBBBGGGBGBBGGBBBBGGGGBBBBBBBBGGGGGBBGBGBGBBBBGGBBBBBBBGGBGGGGGGGBGGGBGGGGBBBBGGGGGBBGGBBBBBBBBBBGGBBGGBGBBGGBGBBBBBBBBBBBBBBBBBBGGGBGGGBBBBBBBBBBBBBBBBBBBBGGGBGGBBBBBBBBBBBBBBBBBBBBGGGBGGBBBBBBBBBBBBBBBBBBBBGGGBGBBBBBBBBBBBBBBBBBBBBBBGGBGBBBBBBBBBBBBBBBBBBBBBBBGGGBBBBBBBBBBBBBBBBBBBBBBBGGGBBBBBBBBBBBBBBBBBBBBBBBGGBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:created", + "value": { + "__time__": [ + 2024, + 10, + 25, + 20, + 42, + 4, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:description", + "value": "457457457" + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:name", + "value": "75457457" + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:thing", + "value": "_______B_____``````_____B_____B______``BBBBIIJJ_________B___``_BBIIIIJJJB__B_______``__BIIIJJJJBKK_______B_``B_IIIJJJJJKKLI____BB__``__IIJJJJKKKLLL`___B__``__IIJJJKKKKLLLB``__B__BBBIIIJJKKKKILI``_______BBIIIJJJKKKLLLB``_____BBBIIIJJKKKBBLLB__`____`_BIIIJJKKBKBLLL___`_```B`_BIJ____BLLLL____````___`BBB____B_LB__B_```_B_____BB______B__B__`_`B____```_B____````B_____BB_``_``__B_`___BB______B``BB_``__BB``````___`B__`BBB`B```___B```___AA``__B__``````B__````__B_``BBB_```BBBB``BB``__`B__B___B```BBB__`B__`_```_BB____``B_B``___BBBBB`_``______B__``______BBB_B``_``B`____B`________B```__BBB``BBBB___BBBBBBBB`B__BBBBBBBBBBBBB_B_B_B__" + }, + { + "key": "con_pixel_frames_info_v0_3.S:5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:created", + "value": { + "__time__": [ + 2024, + 10, + 25, + 20, + 42, + 55, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:description", + "value": "346346346346" + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:meta:num_of_frames", + "value": 2 + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:name", + "value": "346346346" + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:price:amount", + "value": { + "__fixed__": "5" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB`BBBBB````BBBBBBBBBBBBBB`````B`BBB`BBBBBBBBBBBBBB`BBBB``BBB`BBBBBBBBBBBBBB`BBBBBB`B``BBBBBBBBBBBBBBB```BBBB``BBBBBBBBBBBBBBBBB``B``B``BBBBBBBBBBBBBBBBBBB```````BBBBBBBBBBBBBBBBB`````BBB```BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB```````BBBBBBBBBB``B`````BBBBBB``BBBBBB```BBBB```B`B`BBBB`BBBBBB`BBBBB``BBBBBB```B`BBBBBBBBBBB``BBBB````BB``BBBBBBBB```````B`BBB`BBBBBBBBBBB``B`B`````BBB`BBBBBBBBBBB`BB`B`B``B`B``BBBBBBBBBBB`BBB```B`BB``BBBBBBBBBBBBB`B```````B``BBBBBBBBBBBBBB``BBB```````BBBBBBBBBBBBB``BB``````BB```BBBBBBBBBBB``BBBBBB```B``BBBBBBBBBBB`B``````B`BBBB`BBBBBBBBBB``BBBBBBBB`BBB``BBBBBBBBBB``BBBBBBBB`BBB`BBBBBBBBBBBB``````BBB`BB`BBBBBBBBB``BBBBBBBBBB````BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:created", + "value": { + "__time__": [ + 2024, + 11, + 6, + 12, + 12, + 2, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:description", + "value": "baking the planet" + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:name", + "value": "hot hot sun" + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:owner", + "value": "3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677" + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBJBBBBBBJBBBBBBBBBBBBBJBBBJBBBBBJBBBBBBBBBBBBBBJJBBJBSBBJJBBBBBBBBBBBBBBBJSSBBSBBJBBSBBBBBBBBBBBBBJBBBBBBBBBSBBBBBBBBBBBBBSBBBBBBJJBBBBBBBBBBBBBJBBSSBBBBBJJJJBBJJJJBBBBBJJBBBBBJJJBBBJBJJBBBBBBBBBJBBBBJJBBBBBJJBBBBBBBBBBBJBBBBJBBBBBBBJBBBBBBBBBBBBBBBBJBBBBBBBJBSSBBBBBBBBBSSBBJBBBBBBBJBBBBBBBBBBBBBBBBJBBBBBBJBJJBBBBBBBBBBBBBBJJBBBBJJBBJJBBBBBBBBBBBBBBJJBBJJBBBBBBBBBBBBJJJJBBBBJJJJBBBSSSBBBBBBBBBBBSSBBSSBBBBBBBBBBBBBBBBBBBBBBBBSSBBBBJBBBBBBBBBBBBBBBBBBBSBBBBJJBBBBBBBBBBBBBBBJJBBBBBBBJBBBBBBBBBBBBBJJBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:created", + "value": { + "__time__": [ + 2024, + 11, + 6, + 17, + 43, + 37, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:description", + "value": "lines with colour" + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:name", + "value": "gee lines 2" + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:owner", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBUUBBBBBBBBBBBBBBBBBBBBBBBUBBBBBBBBBBBBBBBBBBBBBBBUUBBBBBBBBBBBBBBBBBBBBBBBUBBBBBBTTBBBBBBBBBBBBBBBUUBBBBBBTBBBBBBBBBBBBBBBBUBBBBBBTTBBBBBBBBBBBBBBBUBBBBBBBTBBBBBjBBBBBBBBBBUBBBBBBBTBBBBBjBBBBBBBBBUUBBBBBBBTBBBBjjBBBBBBBBBUBBBBBBBTBBBBBjBBBBBBBBBBBBBBBBBTBBBBBBjBBBBBBBBBBBBBBBBBTBBBBBBjBBBBBBBBBBBBBBBBBTBBBBBjjBBBBBBBBBBBBBBBBTBBBBBBjBBBBBBBBBBBBBBBBTTBBBBBBjBBBBBBBBBBBBBBBBBBBBBBBBjBBBBBBBBBBBBBBBBBBBBBBBBjBBBBBBBBBBBBBBBBBBBBBBBBjBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:created", + "value": { + "__time__": [ + 2024, + 10, + 2, + 6, + 48, + 31, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:creator", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:description", + "value": "ssss" + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:name", + "value": "asdsad" + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:owner", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:thing", + "value": "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGVVGGGGGGGGGGGGGGGGGGGGGVVVVVVGGGGGGGGGGGGGGGGVVVVGGGGVVGGGGGGGGGGGGGGVVGGGGGGGGGVGGGGGGGGGGGVVVGGGGGGGGGGGVVGGGGGGGVVVGGGGGGGGGGGGGGVVVGGGGGVVVVVVVVVVVVVVVVVVVVVGGGGVGGGGGGGGGGGGGGGGGGGVGGGGVGGGGGGGGGGGGGGGGGGGVGGGGVGGGGGGGGGGGGGGGGGGGVGGGGVGGGGGGGGGGGGGGGGGGGVGGGGVGGGGGGGGGGGGGGGGGGGVGGGGGVVGGGGGGGGGGGGGGGGVVGGGGGVVGGGGGGGGGGGGGGGGVGGGGGGVVGGGGGGGGGGGGGGGGVGGGGGGVGGGGGGGGGGGGGGGGGVGGGGGGVGGGGGGGGGGGGGGGGGVGGGGGGVVVVVVVVVVVVVVVVVVVGGGGGGGGGGGGGGGGGGGGVVGVVGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG" + }, + { + "key": "con_pixel_frames_info_v0_3.S:71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:created", + "value": { + "__time__": [ + 2024, + 10, + 26, + 18, + 39, + 41, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:description", + "value": "345678" + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:meta:num_of_frames", + "value": 3 + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:name", + "value": "2345678" + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAABBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAABBBBBBBBBBBAAAAAAAAAAAAAABBBBBBBBBBBAAAAAAAAAAAAAABBBBBBBBBBBAAAAAAAAAAAAAABBBBBBBBBBBBAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAABBBBBBBBBAAAAAABBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAABBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAABBBBBBBBBBBAAAAAAAAAAAAAABBBBBBBBBBBAAAAAAAAAAAAAABBBBBBBBBBBAAAAAAAAAAAAAABBBBBBBBBBBBAAAAAAAAAAAAABBAAABBBBBBBBBBBBBBBBBBBBBBAAABBBBBBBBBBBBBBBBBBBBBBAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAABBBBBBBBBAAAAAABBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAABBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAABBBBBBBBBBBAAAAAAAAAAAAGGGGGBBBBBBBBAAAAAAAAAAAAGGGGGGGBBBBBBAAAAAAAAAAAAGGGGGGGBBBBBBBAAAAAAAAAAAGGGGGGGBBBBBBBBBBBBBBBBBBGGGGGGGBBBBBBBBBBBBBBBBBBGGGGGGG" + }, + { + "key": "con_pixel_frames_info_v0_3.S:7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:created", + "value": { + "__time__": [ + 2024, + 10, + 6, + 12, + 19, + 48, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:description", + "value": "321321321" + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:name", + "value": "321321321" + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:thing", + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFJJJFFFFFFFFFFJFFJFFFFFFFFJFJJJFFFFFFFFFJFFFFFFFFFFJJFJJFFFJJJFFFJFFFFFFJJJFFJJJFFFJJFJJFFFFFFFFFJFJJFFFFFJJJFFFJJFFFFFFFFJJJFFFFJJJFFFFFFJJFFFFFFFFFFFFFJJFFFFFJFFFJJFFFFFFFFFFFJJFFFFFFFFFJJFFFFFFFFFFJJJFFFFFJFFFJJFFFFFFFFFFJJFFFFFFFFFFJJFFFFFFFFFFJJFFFFFFJFFFJJFFFFFFFFFFFJJFFFFFFFFFJJFFFFFFFFFFFFFFJJFFJFFFJJFFFFFFFFFFFFFFFFJJFFFFJJFFFFFFFFFFFFFFFFFFFJJFFJFFFFFFFFFFFFFFFFFFFFFJJJJFFFFFFFFFFFFFFFFFFFFFFJJFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "key": "con_pixel_frames_info_v0_3.S:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:created", + "value": { + "__time__": [ + 2024, + 11, + 6, + 10, + 39, + 28, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:description", + "value": "fine table" + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:name", + "value": "fine table" + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:owner", + "value": "3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677" + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKKKKKKKKKKKKKKKBBBBBBBBBBVVVVVVVVVVVVVVVBBBBBBBBBBBBdBBBBBBBBBdBBBBBBBBBBBBBBdBBBBBBBBBdBBBBBBBBBBBBBBdBBBBBBBBBdBBBBBBBBBBBBBBdBBBBBBBBBdBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKKKKKBBBBBBBBBBBBBBBBBBBBKBBBKBBBBBBBBBBBBBBBBBBBBKBBBKBBBBBBBBBBBBBBBBBBBBKVVVKBBBBBBBBBBBBBBBBBBBBdBBBdBBBBBBBBBBBBBBBBBBBBdBBBdBBBBBBBBBBBBBBBBBBBBdBBBdBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:created", + "value": { + "__time__": [ + 2024, + 10, + 25, + 14, + 31, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:description", + "value": "568568568" + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:name", + "value": "756856856" + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:price:amount", + "value": { + "__fixed__": "123123123" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBABBBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBBBABBBBBBAABBBBBBBBBBBBBBAABBBBBAABBBBBBBBBBBBBAAABBBBBBABBBBBBBBBBBBBBBBBBBBBBABBBBBBBBBBBBBBBBBBBBBBABBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBBBBABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:created", + "value": { + "__time__": [ + 2024, + 11, + 6, + 17, + 43, + 4, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:description", + "value": "lines with colours" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:name", + "value": "gee lines" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:owner", + "value": "con_pixel_frames_auction_v0_6_1" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBUUBBBBBBBBBBBBBBBBBBBBBBBUBBBBBBBBBBBBBBBBBBBBBBBUUBBBBBBBBBBBBBBBBBBBBBBBUBBBBBBTTBBBBBBBBBBBBBBBUUBBBBBBTBBBBBBBBBBBBBBBBUBBBBBBTTBBBBBBBBBBBBBBBUBBBBBBBTBBBBBjBBBBBBBBBBUBBBBBBBTBBBBBjBBBBBBBBBUUBBBBBBBBBBBBjjBBBBBBBBBUBBBBBBBTBBBBBjBBBBBBBBBBBBBBBBBTBBBBBBjBBBBBBBBBBBBBBBBBTBBBBBBjBBBBBBBBBBBBBBBBBTBBBBBjjBBBBBBBBBBBBBBBBTBBBBBBjBBBBBBBBBBBBBBBBTTBBBBBBjBBBBBBBBBBBBBBBBBBBBBBBBjBBBBBBBBBBBBBBBBBBBBBBBBjBBBBBBBBBBBBBBBBBBBBBBBBjBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:created", + "value": { + "__time__": [ + 2024, + 10, + 1, + 15, + 28, + 32, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:description", + "value": "555" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:name", + "value": "5555" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:price:amount", + "value": { + "__fixed__": "123123" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBGBBBBBBBBBBBBBBBBBBBBGGGGBBBBBBBBBBBBBBBBBBBGGGBGGBBBBBBBBBBBGGGGGBBBGBGGGGGBBBBBBBBBGGGGGBBBBBGBBBGGGBBBBBBBGGGGGGGBBBBGGBBBBGGBBBBBBGGGGGGGGBGGGGBBBBBGGBBBBGGGGGGGGGGGGGGBBBBBBBBBBBGGGGGGGGGGGGGBGGBBBBBBBBGGGGGGGGGGGBGBGBGBBBBBBBBGGGGGGGGGGGGBBGBGGBBBBBBBGGGGGGGGGGGGBBBGBGGGBBBBBGGGGGGGGGGGGBBBGBBBGBBBBGGGGGGGGGGGGBBBBGBBBGBBBBGGGBGGGGGGGGBBBBGBBBBBBBBBGBBGGBBGGGGGBBGGBBBBBBBBBGBBBBBBBBBBBGGBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:created", + "value": { + "__time__": [ + 2024, + 10, + 1, + 13, + 0, + 13, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:description", + "value": "fire on match" + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:name", + "value": "match on fire" + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:owner", + "value": "3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677" + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBJBBBBBBBBBBBBBBBBBBBBBBBJJJBBBBBBBBBBBBBBBBBBBBBJJJJJBBBBBBBBBBBBBBBBBBBBJJSJJBBBBBBBBBBBBBBBBBBBBSSSSSBBBBBBBBBBBBBBBBBBBBBSSSBBBBBBBBBBBBBBBBBBBBBBSVSBBBBBBBBBBBBBBBBBBBBBBBTBBBBBBBBBBBBBBBBBBBBBBBBTBBBBBBBBBBBBBBBBBBBBBBBBTBBBBBBBBBBBBBBBBBBBBBBBBTBBBBBBBBBBBBBBBBBBBBBBBBTBBBBBBBBBBBBBBBBBBBBBBBBTBBBBBBBBBBBBBBBBBBBBBBBBTBBBBBBBBBBBBBBBBBBBBBBBBTBBBBBBBBBBBBBBBBBBBBBBBBTBBBBBBBBBBBBBBBBBBBBBBBBTBBBBBBBBBBBBBBBBBBBBBBBBTBBBBBBBBBBBBBBBBBBBBBBBBTBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:created", + "value": { + "__time__": [ + 2024, + 10, + 25, + 20, + 36, + 56, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:description", + "value": "235235235" + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:name", + "value": "6525235" + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:price:amount", + "value": { + "__fixed__": "435345123123" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:thing", + "value": "BBBBBBBBBBBBBBBBBBBIIBBBBBBBBBBBBBBBBBBBBBBIIJJBBBBBBBBBBBBBBBBBBIIIIJJJBBBBBBBBBBBBBBBBIIIJJJJBKKBBBBBBBBBBBBBIIIJJJJJKKLIBBBBBBBBBBBBIIJJJJKKKLLLBBBBBBBBBBBIIJJJKKKKLLLBBBBBBBBBBBIIIJJKKKKILIBBBBBBBBBBBIIIJJJKKKLLLBBBBBBBBBBBIIIJJKKKBBLLBBBBBBBBBBBIIIJJKKBKBLLLBBBBBBBBBBBBIJBBBBBLLLLBBBBBBBBBBBBBBBBBBBBBLBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:created", + "value": { + "__time__": [ + 2024, + 10, + 25, + 13, + 51, + 21, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:description", + "value": "35234234234" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:name", + "value": "5234234234" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBBAAABBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKKBBBBBBBBBBBBBBBBBBBBBBKKKBBBBBBBBBBBBBBBBBBBBKKKKBBBBBBBBBBBBBBBBBBBBKKKBBBBBBBBBBBBBBBBBBBBKKKKBBBBBBBBBBBBBBBBBBBBKKABBBBBBBBBBBBBBBBBBBBBKKKAABBBBBBBBBBBBBBBBBBKKKKBBABBBBBBBBBBBBBBBBBKKKKKBBBAABBBBBBBBBBBBBBKKKKBBBBBBAAABBBBBBBBBBBKKKKBBBABBBBBAABBBBBBBBBBBBBBBBBBABBBBBBAABBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBBBBBBABBBBBBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBBBBBBAABBBBBBBBBBBBBBBBBBBBBBBBABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:created", + "value": { + "__time__": [ + 2024, + 10, + 5, + 12, + 3, + 2, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:description", + "value": "123" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:name", + "value": "12322222" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:thing", + "value": "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:created", + "value": { + "__time__": [ + 2024, + 11, + 6, + 11, + 8, + 41, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:creator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:description", + "value": "walking and singing" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:name", + "value": "happy day" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:owner", + "value": "3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBGGBBGGBBBBBBBBBBBBBBBBBGGGGGGGBGGBBBBBBBBBBBBBBGBBBBBBBBGGBBBBBBBBBBBBBBGBBBBBBBBGBBBBBBBBBBBBBBGBBBBBBBBBGBBBBBBBBBBBBBBGBBBBBBBBGGBBBBBBBBBBBBBGGBBBBBBBGGBBBBBBBBBBBBBBGGBBBBBBGGBBBGGBBBBBBBBBBBGGBBBGGBGGBBGBBBBBBBBBBBBBGGGGGBBBGGGBBBBBBBBBBBBBBBBBBBBBGGGBBBBBBBBBBBBBBBBBBBGGGGBBGBBBBBBBBBBBBBBBBBBBBBBBBGBBBBBBBBBBBBBBBBBBBBBBBBGGBBBBBBBBBBBBBBBBBBBBBBBGGBBBBBBBBBBBBBBBBBBBBBGGBBGGBBBBBBBBBBBBBBBBGGGGBBBBGBBBBBBBBBBBBBBBGGBBBBBBBGGBBBBBBBBBBBBBBGBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:created", + "value": { + "__time__": [ + 2024, + 10, + 27, + 0, + 8, + 54, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:description", + "value": "235235235" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:meta:num_of_frames", + "value": 8 + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:meta:speed", + "value": 100 + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:name", + "value": "35235235" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:thing", + "value": "HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:created", + "value": { + "__time__": [ + 2024, + 10, + 1, + 12, + 54, + 13, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:description", + "value": "2342342" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:name", + "value": "51342134" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:price:amount", + "value": { + "__fixed__": "1E+4" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBGGBBBBBBBBBBBBBBBBBBBBBBBBGBBBBBGGGBBBBBBBBBBBBBBBBGBBBBGGBBGBBBBBBBBBBBBBBBBGBGGBBBBBGGBBBBBBBBBBBBBBGGBBBBBBBGGGGGBBBBBBBBBBBGGBBBBBBGBBBGGBBBBBBBBBBGBGBBBBBBGBBBBGGGBBBBBBBBGBBGGGGGGGBBBBGBBGBBBBBBGBBBGGBBBGBGBBBBGBGBBBBBBGBBGBGBBGBBGBBBBBBBGBBBBBGBGBBBBBGBBBGBBBGBBGGBBBBGGGBBBGGGBBBBBBBGBBBGBBBBGGBBBBGGBBBBGBBBGBBBGBBBBGGBBBBBGBBBBBBBBGBBGBBBBBBGGBBBBBBBBBBBBBGGGBBBBBBBBGGBBBBBBBBBBBGGBBBBBBBBBBBGGGGGGBGGGBGGBBBBBBBBBBBBBBGGBBBBBGGBBBBBBBBBBBBBBBBBBGGGGGBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:created", + "value": { + "__time__": [ + 2024, + 10, + 26, + 15, + 30, + 46, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:description", + "value": "515166136" + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:name", + "value": "65342151" + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:price:amount", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:thing", + "value": "BBBBBBBBBBBBBBBBBBBBEEEEEBBEEEEEBBBBBBBBBBBBBEEEEEBBEEEEEBBBBBBBBBBBBBEEEEEBBEEEEEBBBBBEEEEEBBBEEEEEBBEEEEEBBBAAEEEEEBBBEEEEEBBEEEEEBBAAAEEEEEBBBAAAAABBBEEEEEAAAAEEEEEBBBBBBBBBBBEEEEEAAAAEEEEEBBBBBBBBBBBEEEEEAAAAEEEEEBBBBBBBBBBBEEEEEAAAAAAABBBBBBBBBBBBBEEEEEAAAAABBBBBBBBBBBBBBBEEEEEAAEEEEEBBBAAAAAABBBBAAAAAAAEEEEEBBBAAAAAABBBBAAAAAABEEEEEBEEEEEAAABBBBAAAAABBEEEEEBEEEEEAAABBBBBBBBBBBEEEEEAEEEEEAAABEEEEEBBBBBBBBBBAEEEEEAABBEEEEEBBBBBBBBBBAEEEEEEEEEEEEEEBBBBBBBBBBAAAAAAEEEEEEEEEBBBBBBBBBBAAAAAAEEEEEEEEEEEEEBBBBEEEEEEABEEEEBBBBEEEEEBBBBEEEEEEBBEEEEBBBBEEEEEBBBBEEEEEEBBBBBBBBBBEEEEEBBBBEEEEEEBBBBBBBBBBEEEEEBBBBEEEEEEBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:created", + "value": { + "__time__": [ + 2024, + 10, + 1, + 13, + 13, + 18, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:description", + "value": "123123" + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:name", + "value": "123123" + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:price:amount", + "value": { + "__fixed__": "12312312312" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:thing", + "value": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBGBBBBBBBBBBBBBBBBBBBBBBBBGBBBBBBGGBBBBBBBBBBBBBBBBGBBBBBGGBBBBBBBBBBBBBBBBBGBBBBBGBBBBBBBBBBBBBBBBBGGBBBBGBBBBBBBBBBBBBBBBBGGGGBBGBBBBBBBBBBBBBBBBBBGGGGBGGBBBBBBBBBBBBBBBBBBBGGGGGBBBBBBBBBBBBBBBBBBBBGGGGGBBBBBBBBBBBBBBBBBBGGGGGGGGBBBBBBBBBBBBBBBBBGGGGGGGGGBBBBBBBBBBBBBBBBGGGGGGGGGGBBBBBBBBBBBBBGGGGGGGGGGGGGBBBBBBBBBBBBBGGGGGGGGBGBGBBBBBBBBBBBBBBGGGGGGGGBBBBBBBBBBBBBBBBBBGGGGGGGGBBBBBBBBBBBBBBBBBBGGGGGGGBBBBBBBBBBBBBBBBBBBGGGGGGBBBBBBBBBBBBBBBBBBBBGGGGGGBBBBBBBBBBBBBBBBBBBBGGGGBBBBBBBBBBBBBBBBBBBBBBGGGGBBBBBBBBBBBBBBBBBBBBBBGGGBBBBBB" + }, + { + "key": "con_pixel_frames_info_v0_3.S:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:created", + "value": { + "__time__": [ + 2024, + 10, + 26, + 15, + 6, + 32, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:description", + "value": "346346346" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:likes", + "value": 0 + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:name", + "value": "64363346" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:price:amount", + "value": { + "__fixed__": "123123123675765" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:thing", + "value": "YYYBBBBBBYYYBBYYYYYYJJJBBYYYBBBBBBYYYBBYPPPYYJJJJBYYYBMMMMMBBBBBBPPPBWWWJJJBBPPMMMMMNNPBBBPPPPPWWJJJBBPPMMMMMNNPPPJWWPPPWWJJJBBPPMMMMMNNPPPPPPPPPYPPPJBBPPMMMMMNNPPPPPPPPPYPPPBBBPPPPNNNNNPPAPPPPPPYPPPBYYPPPPYYBJWWPPPNNNNNBBBBBYYBYYYYYJJWWPPPMMMMMJJBBBYYBYYWWWJJWWPPPMMMMMJJJYYBBBBPPPWJJPPPYYMMMMMJJAAAYYYMMMMMJJPPPYPMMMMMMJAAAYYYMMMMMNYPPPAPMMMMMMPAAAYYYMMMMMNPPAAAPPMMMMMPAAABBBMMMMMNPPAAAJJMMMMMPAAABBBMMMMMNPPBWWWJMMMMMPYBBBJJWNNNNNBJJWWWJBBYPPPYBBBJJWPPPBBWWWWWWBYYYPPPBBBBJJYYYBBJWWNMMMMMPPPYBBBBBJJJJBBWWWPNMMMMMPPPBBYYYBPPPBPPPWWPNMMMMMPPPBYYYYBPPPYPPPWWPNMMMMMBBYYYYYYYPPPYPPPJBYNMMMMMYYYYYYYYYYYYYBBBBBYYYYYBBYYYYYYYY" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d", + "value": [ + "thing", + "type", + "name", + "description", + "owner", + "creator", + "likes", + "price:amount", + "price:hold", + "meta_items" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:created", + "value": { + "__time__": [ + 2024, + 10, + 1, + 12, + 50, + 14, + 0 + ] + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:creator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:description", + "value": "123123123" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:likes", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:meta:num_of_frames", + "value": 1 + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:meta:royalty_percent", + "value": 5 + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:meta:speed", + "value": 500 + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:meta_items", + "value": [ + "speed", + "num_of_frames", + "royalty_percent" + ] + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:name", + "value": "123123123" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:owner", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:price:amount", + "value": { + "__fixed__": "11111" + } + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:price:hold", + "value": "" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:thing", + "value": "TSSSTSBBSSTTSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSBSTSBSSSSSTSTSSBSSSSSSSSTSSSSSSSS`SSSSTTSSSSSTSBBBB````S`S``SYSSS`S`SSSSSSBSSSSSSSSYS`SSS`SSSSSSSBBB````SBBSSSSBSYYS`SBSSTBBBSSBSSSSSSSSJSGYS`SSSSSSSB`SBSSS`SGGS`SSSBSTBTSSOSS`SBSB`SSSSSSSSSS`SSSSSOSSSASSSSSSSYSSSSSSSSSSSSSSSSASAASSASSSSSAASSSSSSSSSSSASSSSSSSSSSAASSSSSSSSSSSAAAAAAASSSSASSAAASSSSSSSSASSSSSSASAAAAAAASSSSSSSSSAASSSSSSSAAAAAASSSSSSSSSSAASSSSASSASSSAAAAASSSSSSSSAASSSSSSSSSAASASSAASSSSSSSASSSSSSSSAAAAAAASSSSSSSSSAAAAAAAAAASSASSSSSSSSSSSSSAAAAASSSSSAASSSSSSSSSSSSSSSSSSSSSSSASBSSSSSSSSSSSSSBSSSSSSSSSSSBSBSBSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSBS" + }, + { + "key": "con_pixel_frames_info_v0_3.S:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:type", + "value": "text/plain" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:00f8f0e734b9af342cc845306c159b141367e7ca5ed65fc8ed4e16ea61d11274", + "value": "a1d5cd78d5e9cfe7ecf8031db06fa6cdca6fafc84419758844c42a95172ce90a" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:048578ceafb2e5d966d4b5514603f295d189e7f35e25ac3996a63e6500814c12", + "value": "16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:0c08a9536b5dd78713f440acb930872fd69f7a71ad0cf9cdedc9628ddf9ac3d7", + "value": "7881106ed20cae0fdffdcd71876ab35b554195ddc62e0d5a41daf93af8ec49c3" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:12e84da630211bc7682e6f669e4608133869b6ea5436bcb5fac208d24ba27169", + "value": "aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:145756f0f895e3c590869e8b1d23aa739f1c10bc1812729de73f814a066ae8f4", + "value": "f0232d6fa7e731ab96449d2fcd69f74bf999e334a912b97d6f80b71cb3d4917b" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:1a9d053b67d271e16db78005b6eb3b797214bed699cc9e697efc2a155e66da11", + "value": "64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:211aa2734e5c4303791ef1757a163ea1b1cca550144c482f83bfa91aa98d7b7d", + "value": "120f6cf9ecad7ca336f21d3e4ee02b4547754f98b7289860c759b429db60db86" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:2a2564090f6911018cb487564e448eacf0de05a46e409434f4f0568d37f5fcff", + "value": "cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:2e7e49126ce79fe985959d751f7562a5d2c9e158eaf1415652b8da981c807510", + "value": "0c03c637289f76abe7660963658a12c2d5e60590872d5191ec940828f8ea1efc" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:3481d95f26325bf6e7ceb5e9aabd5e46d9df0bf6e9eabbe7d59e90f5d0aebc34", + "value": "b5d06e834eca4e9ee7cd2c25bee9d77dcbfc25dd1aa9c30ec7583e5fe994666b" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:34f05f0000ab238cc5cb3aa4603be6058c54e1e68e789b539914e1508fecc2ce", + "value": "6bb2473fa76c4647c7b7f494ab608f52c7086499e28019180b2b710e7c3ca7ca" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:45efc9bfb4c2f336cde3e91c1499cb73bf061489997d54a275882c428553437c", + "value": "b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a", + "value": "4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:50ad41624c25e493aa1dc7f4ab32bdc5a3b0b78ecc35b539936e3fea7c565af7", + "value": "71ef0b5bbc9ebe0158802318374ede1250485861919178487e0cbcd3b3307371" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:50e721e49c013f00c62cf59f2163542a9d8df02464efeb615d31051b0fddc326", + "value": "091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9", + "value": "528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b", + "value": "4bf89585e7e534bce6f9d3963f3b269bd8e3206743bb64585ab7cfbc420d2838" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:70801eb4bac16df84658a7c0e49cbbf3b42d20c29d1a7f809f7cf6d31c76f2c2", + "value": "a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:70ff594bd2866efb7a7d22a6bc2bd0ffaac1b401bcc5fa12bc6ce2f033259e03", + "value": "4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:7f05d7b59df33f0ca9b77d7d43c6e087ca1755c70711181fe9509cf685f59ed7", + "value": "eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:8667c3ec6a3e9bc25b2b8461c8962c8f788458ccb24676449a884a7f9b7a9580", + "value": "8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:91a73fd806ab2c005c13b4dc19130a884e909dea3f72d46e30266fe1a1f588d8", + "value": "18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:926b31a0e5e9209b45040cbec9fd92307f6d18db4777b7021b6673fa44234244", + "value": "307a8dedad45b562ff4afbffdd38396f726df42bce755580512c0125d365d167" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:932f3c1b56257ce8539ac269d7aab42550dacf8818d075f0bdf1990562aae3ef", + "value": "f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:9a65d356a488535439239331fd4d863bb01dba0a5318554d9386533a768f0283", + "value": "1572b652ee3c770bd9bb02a699cd34c481d6236130e059d5c639f1e5cc184b99" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3", + "value": "31bd626d700bbb232cefdcb98459cedf9638ceb358fec021ef39022ec575ec9e" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:aee0f0d6907c908426095f118cd9bc694d5cc1871bb50d34cc10158b4f236665", + "value": "92846ad290d0c08156ee9258382a0f05d419640f01eea82d1d99c7013f4f4dec" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:ba62b03a7bb5ca64a6d40b103ae48f991fb74bc07e76ab36e330f8de0cf4b846", + "value": "36047ee45b11eac5cb151c48868b9683f9f59006127b0f1f4889cf70ad58ad7e" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:bc35f572b0f9689e524c227418345a0ceeaf3e010638994a4a2587f827d44ad6", + "value": "105ae1904c62050d760046790b1ea9e3453c6cf9e0a3787eaaa6696b6ac38434" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:c38bcf3474a7b0d6ce48860f41f76c2f0b26dccdfc4cb8c268a0880d739d38ac", + "value": "1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:c7e616822f366fb1b5e0756af498cc11d2c0862edcb32ca65882f622ff39de1b", + "value": "1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:c996975318e6e7207f72cac8e2cc4df78f847dff7ddfdfaca7d45ffc5e7d2b86", + "value": "b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119", + "value": "3a9189325f31b6c531de7ee081f88ac3a2b867485812d259ccb4eb447e1159e5" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:e3f25f8bf574760f5a48f6deb95337f090d71a498e7e0b5fef22d76226a30d04", + "value": "5d2754ac707ce94c457e39639230e9bb48e23762a317f9ab89fed79c5b4db247" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:e984af814f7f706b0df901c67ba98fcb038ddd97355fc1126a31b745f93bdc60", + "value": "25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:ea2e9369919d802982c0b3142287e0f185bda864df6ba16178c151f1d04fff5b", + "value": "ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:ea73b4e871bcec03fcfdb5a578bbfa79095cd4f09536f852d9fbd7a61b1c5b1a", + "value": "049f5be10f74f703b8224c1af53baae03c906a562b8ae875137287773c42e1fc" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:efd0cdd4133060a183b6ed1125711e8a2804aaf3ea3b14d1eeeb73cd2489d9b9", + "value": "cdc8cfb1e815811957a035a6d543728b8fcd0b5546d9a56c72364fe46e078f8c" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:f171c53abd4a1b354cc2a390594a5ece760525d14545c0b73d8136da3767f36b", + "value": "4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:fbefd0182b6d2ed16cf61910a8a1d8c9150d3c156d876ec623646bd228e9fd69", + "value": "0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:fc3d3ef39ad0d35d51e678b1ca6c471c33abb9508772a8056b456ba57e881b0e", + "value": "98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:fd31522be7bce2ba2b833080695e4660382751658c5e81c9b9a73e9f54c5859f", + "value": "d5e52417387fe38be240091d527206044514469ca13462ee1b9780dc1967518f" + }, + { + "key": "con_pixel_frames_info_v0_3.S:names:ffe91b515cb12067e2aeb4e625400528b9f67b3a0758bd40c7951b25313a5454", + "value": "6847e8c0e9633eec65c9a3b3c76d96eb720c01b8cbf22bfdb21ca4245355a917" + }, + { + "key": "con_pixel_frames_info_v0_3.__code__", + "value": "__S = Hash(default_value='', contract='con_pixel_frames_info_v0_3', name='S')\n\n\n@__export('con_pixel_frames_info_v0_3')\ndef add_thing(thing_string: str, name: str, description: str, meta: dict,\n creator: str):\n __enforce_thing_standards(thing_string, name, description, meta)\n uid = hashlib.sha256(thing_string)\n assert not __S[uid], thing_string + ' already exists'\n names_uid = hashlib.sha256(name.lower().replace(' ', ''))\n assert not __S['names', names_uid\n ], 'A form of this name already belongs to ' + __S['names', names_uid]\n __S['names', names_uid] = uid\n __custom_string_validations(thing_string, meta['num_of_frames'])\n __S[uid] = ['thing', 'type', 'name', 'description', 'owner', 'creator',\n 'likes', 'price:amount', 'price:hold', 'meta_items']\n __S[uid, 'thing'] = thing_string\n __S[uid, 'type'] = 'text/plain'\n __S[uid, 'name'] = name\n __S[uid, 'description'] = description\n __S[uid, 'owner'] = creator\n __S[uid, 'creator'] = creator\n __S[uid, 'created'] = now\n __S[uid, 'likes'] = 0\n __S[uid, 'price', 'amount'] = 0\n __S[uid, 'meta_items'] = ['speed', 'num_of_frames', 'royalty_percent']\n __S[uid, 'meta', 'speed'] = meta['speed']\n __S[uid, 'meta', 'num_of_frames'] = meta['num_of_frames']\n __S[uid, 'meta', 'royalty_percent'] = meta['royalty_percent']\n return uid\n\n\ndef __enforce_thing_standards(thing_string: str, name: str, description:\n str, meta: dict):\n assert len(thing_string) > 0, 'Thing string cannot be empty.'\n assert len(name) > 0, 'No Name provided.'\n assert len(name) <= 25, 'Name too long (25 chars max).'\n assert len(description) > 0, 'No description provided.'\n assert len(description) <= 128, 'Description too long (128 chars max).'\n __custom_meta_validations(meta)\n\n\ndef __custom_string_validations(thing_string: str, num_of_frames: int):\n assert num_of_frames >= 1 and num_of_frames <= 8, 'num_of_frames value ' + str(\n num_of_frames) + ' is out of range (1-4).'\n assert len(thing_string\n ) % num_of_frames == 0, 'num_of_frames value is invalid.'\n assert len(thing_string\n ) / num_of_frames == 625, 'Frames Data is Invalid, must be 625 pixels/frame.'\n __assertPixelValues(thing_string)\n\n\ndef __assertPixelValues(thing_string):\n for pixel in thing_string:\n assert (ord(pixel) >= 65 and ord(pixel) <= 122) and ord(pixel\n ) != 92, 'Frames Data contains invalid pixel {}.'.format(pixel)\n\n\ndef __custom_meta_validations(meta):\n assert 'speed' in meta, \"Missing meta value 'speed' (int).\"\n assert isinstance(meta['speed'], int), 'Speed value is not an integer.'\n assert meta['speed'] >= 100 and meta['speed'\n ] <= 2000, 'Speed value ' + str(meta['speed']\n ) + ' is out of range (100ms-2000ms).'\n assert 'num_of_frames' in meta, \"Missing meta value 'num_of_frames' (int).\"\n assert isinstance(meta['num_of_frames'], int\n ), 'num_of_frames value is not an integer.'\n assert 'royalty_percent' in meta, \"Missing meta value 'royalty_percent' (int).\"\n assert isinstance(meta['royalty_percent'], int\n ), 'royalty_percent value is not an integer.'\n assert meta['royalty_percent'] >= 0 and meta['royalty_percent'\n ] <= 100, 'royalty_percent value ' + str(meta['royalty_percent']\n ) + ' is out of range (0-100).'\n\n\n@__export('con_pixel_frames_info_v0_3')\ndef thing_exists(thing_string: str):\n uid = hashlib.sha256(thing_string)\n return __S[uid]\n\n\n@__export('con_pixel_frames_info_v0_3')\ndef get_owner(uid: str):\n return __S[uid, 'owner']\n\n\n@__export('con_pixel_frames_info_v0_3')\ndef get_creator(uid: str):\n return __S[uid, 'creator']\n\n\n@__export('con_pixel_frames_info_v0_3')\ndef set_price(uid: str, amount: float, hold: str):\n assert amount >= 0, 'Cannot set a negative price'\n __S[uid, 'price', 'amount'] = amount\n if not hold == None:\n __S[uid, 'price', 'hold'] = hold\n\n\n@__export('con_pixel_frames_info_v0_3')\ndef get_price_amount(uid: str):\n return __S[uid, 'price', 'amount']\n\n\n@__export('con_pixel_frames_info_v0_3')\ndef get_royalty_amount(uid: str):\n return __S[uid, 'meta', 'royalty_percent']\n\n\n@__export('con_pixel_frames_info_v0_3')\ndef get_price_hold(uid: str):\n return __S[uid, 'price', 'hold']\n\n\n@__export('con_pixel_frames_info_v0_3')\ndef set_owner(uid: str, owner: str):\n __S[uid, 'owner'] = owner\n\n\n@__export('con_pixel_frames_info_v0_3')\ndef like_thing(uid: str):\n likes = __S[uid, 'likes']\n __S[uid, 'likes'] = likes + 1\n\n\n@__export('con_pixel_frames_info_v0_3')\ndef set_proof(uid: str, code: str):\n __S[uid, 'proof'] = code\n" + }, + { + "key": "con_pixel_frames_info_v0_3.__developer__", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_info_v0_3.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 1, + 11, + 52, + 0, + 0 + ] + } + }, + { + "key": "con_pixel_frames_master.S:thing_info_contract", + "value": "con_pixel_frames" + }, + { + "key": "con_pixel_frames_master.__code__", + "value": "import currency\nI = importlib\n__S = Hash(default_value='', contract='con_pixel_frames_master', name='S')\n__balances = Hash(default_value=0, contract='con_pixel_frames_master', name\n ='balances')\n__metadata = Hash(default_value=0, contract='con_pixel_frames_master', name\n ='metadata')\n\n\ndef ____():\n __S['thing_info_contract'] = 'con_pixel_frames'\n __metadata['operator'] = ctx.caller\n __metadata['things_name'] = 'Pixel Frames Test 2'\n __metadata['things_description'] = (\n 'Create, Own and Sell unique pixel animations on the Lamden Blockchain!'\n )\n\n\n@__export('con_pixel_frames_master')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_pixel_frames_master')\ndef create_thing(thing_string: str, name: str, description: str, meta: dict={}\n ):\n thing_info = I.import_module(__S['thing_info_contract'])\n sender = ctx.caller\n thing_uid = thing_info.add_thing(thing_string, name, description, meta,\n sender)\n __add_to_balance(sender)\n return thing_uid\n\n\n@__export('con_pixel_frames_master')\ndef buy_thing(uid: str):\n thing_info = I.import_module(__S['thing_info_contract'])\n sender = ctx.caller\n owner = thing_info.get_owner(uid)\n creator = thing_info.get_creator(uid)\n __assert_already_owned(uid, sender)\n price_amount = thing_info.get_price_amount(uid)\n royalty_percent = thing_info.get_royalty_amount(uid)\n assert price_amount, uid + ' is not for sale'\n assert price_amount > 0, uid + ' is not for sale'\n price_hold = thing_info.get_price_hold(uid)\n if price_hold != '':\n assert sender == price_hold, uid + ' is being held for ' + price_hold\n if royalty_percent > 0:\n royalty_amount = price_amount * (royalty_percent / 100)\n net_amount = price_amount - royalty_amount\n currency.transfer_from(royalty_amount, creator, sender)\n else:\n net_amount = price_amount\n currency.transfer_from(net_amount, owner, sender)\n __transfer_ownership(uid, sender)\n\n\n@__export('con_pixel_frames_master')\ndef sell_thing(uid: str, amount: float):\n __assert_ownership(uid, ctx.caller)\n thing_info = I.import_module(__S['thing_info_contract'])\n thing_info.set_price(uid, amount, '')\n\n\n@__export('con_pixel_frames_master')\ndef sell_thing_to(uid: str, amount: float, hold: str):\n __assert_ownership(uid, ctx.caller)\n thing_info = I.import_module(__S['thing_info_contract'])\n thing_info.set_price(uid, amount, hold)\n\n\n@__export('con_pixel_frames_master')\ndef transfer(uid: str, new_owner: str):\n sender = ctx.caller\n __assert_ownership(uid, sender)\n __assert_already_owned(uid, new_owner)\n __transfer_ownership(uid, new_owner)\n\n\n@__export('con_pixel_frames_master')\ndef approve(uid: str, to: str):\n sender = ctx.caller\n __assert_ownership(uid, sender)\n __balances[sender, uid, to] = True\n\n\n@__export('con_pixel_frames_master')\ndef revoke(uid: str, to: str):\n __balances[ctx.caller, uid, to] = None\n\n\n@__export('con_pixel_frames_master')\ndef transfer_from(uid: str, to: str, main_account: str):\n sender = ctx.caller\n assert __balances[main_account, uid, sender\n ], \"You have not been given approval to transfer this user's item.\"\n __assert_ownership(uid, main_account)\n __assert_already_owned(uid, to)\n __transfer_ownership(uid, to)\n __balances[main_account, uid, sender] = None\n\n\n@__export('con_pixel_frames_master')\ndef like_thing(uid: str):\n sender = ctx.caller\n assert __S['liked', uid, sender] == '', sender + ' already liked ' + uid\n thing_info = I.import_module(__S['thing_info_contract'])\n thing_info.like_thing(uid)\n __S['liked', uid, sender] = True\n\n\n@__export('con_pixel_frames_master')\ndef prove_ownership(uid: str, code: str):\n sender = ctx.caller\n __assert_ownership(uid, sender)\n thing_info = I.import_module(__S['thing_info_contract'])\n thing_info.set_proof(uid, code)\n\n\ndef __assert_ownership(uid: str, sender):\n thing_info = I.import_module(__S['thing_info_contract'])\n owner = thing_info.get_owner(uid)\n assert owner == sender, uid + ' not owned by ' + sender\n\n\ndef __assert_already_owned(uid: str, sender):\n thing_info = I.import_module(__S['thing_info_contract'])\n owner = thing_info.get_owner(uid)\n assert owner != sender, uid + ' already owned by ' + sender\n\n\ndef __transfer_ownership(uid: str, new_owner: str):\n thing_info = I.import_module(__S['thing_info_contract'])\n old_owner = thing_info.get_owner(uid)\n thing_info.set_owner(uid, new_owner)\n if thing_info.get_price_amount(uid) > 0:\n thing_info.set_price(uid, 0, '')\n __add_to_balance(new_owner)\n __subtract_from_balance(old_owner)\n\n\ndef __add_to_balance(holder: str):\n if __balances[holder] is None:\n __balances[holder] = 1\n else:\n __balances[holder] = __balances[holder] + 1\n\n\ndef __subtract_from_balance(holder: str):\n if __balances[holder] is None:\n __balances[holder] = 0\n else:\n __balances[holder] = __balances[holder] - 1\n" + }, + { + "key": "con_pixel_frames_master.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_pixel_frames_master.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 16, + 9, + 16, + 41, + 0 + ] + } + }, + { + "key": "con_pixel_frames_master.metadata:operator", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_pixel_frames_master.metadata:things_description", + "value": "Create, Own and Sell unique pixel animations on the Lamden Blockchain!" + }, + { + "key": "con_pixel_frames_master.metadata:things_name", + "value": "Pixel Frames Test 2" + }, + { + "key": "con_pixel_frames_master_v0_1.S:thing_info_contract", + "value": "con_pixel_frames_info_v0_1" + }, + { + "key": "con_pixel_frames_master_v0_1.__code__", + "value": "import currency\nI = importlib\n__S = Hash(default_value='', contract='con_pixel_frames_master_v0_1', name='S')\n__balances = Hash(default_value=0, contract='con_pixel_frames_master_v0_1',\n name='balances')\n__metadata = Hash(default_value=0, contract='con_pixel_frames_master_v0_1',\n name='metadata')\n\n\ndef ____():\n __S['thing_info_contract'] = 'con_pixel_frames_info_v0_1'\n __metadata['operator'] = ctx.caller\n __metadata['things_name'] = 'Pixel Frames Test 2'\n __metadata['things_description'] = (\n 'Create, Own and Sell unique pixel animations on the Lamden Blockchain!'\n )\n\n\n@__export('con_pixel_frames_master_v0_1')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_pixel_frames_master_v0_1')\ndef create_thing(thing_string: str, name: str, description: str, meta: dict={}\n ):\n thing_info = I.import_module(__S['thing_info_contract'])\n sender = ctx.caller\n thing_uid = thing_info.add_thing(thing_string, name, description, meta,\n sender)\n __add_to_balance(sender)\n return thing_uid\n\n\n@__export('con_pixel_frames_master_v0_1')\ndef buy_thing(uid: str):\n thing_info = I.import_module(__S['thing_info_contract'])\n sender = ctx.caller\n owner = thing_info.get_owner(uid)\n creator = thing_info.get_creator(uid)\n __assert_already_owned(uid, sender)\n price_amount = thing_info.get_price_amount(uid)\n royalty_percent = thing_info.get_royalty_amount(uid)\n assert price_amount, uid + ' is not for sale'\n assert price_amount > 0, uid + ' is not for sale'\n price_hold = thing_info.get_price_hold(uid)\n if price_hold != '':\n assert sender == price_hold, uid + ' is being held for ' + price_hold\n if royalty_percent > 0:\n royalty_amount = price_amount * (royalty_percent / 100)\n net_amount = price_amount - royalty_amount\n currency.transfer_from(royalty_amount, creator, sender)\n else:\n net_amount = price_amount\n currency.transfer_from(net_amount, owner, sender)\n __transfer_ownership(uid, sender)\n\n\n@__export('con_pixel_frames_master_v0_1')\ndef sell_thing(uid: str, amount: float):\n __assert_ownership(uid, ctx.caller)\n thing_info = I.import_module(__S['thing_info_contract'])\n thing_info.set_price(uid, amount, '')\n\n\n@__export('con_pixel_frames_master_v0_1')\ndef sell_thing_to(uid: str, amount: float, hold: str):\n __assert_ownership(uid, ctx.caller)\n thing_info = I.import_module(__S['thing_info_contract'])\n thing_info.set_price(uid, amount, hold)\n\n\n@__export('con_pixel_frames_master_v0_1')\ndef transfer(uid: str, new_owner: str):\n sender = ctx.caller\n __assert_ownership(uid, sender)\n __assert_already_owned(uid, new_owner)\n __transfer_ownership(uid, new_owner)\n\n\n@__export('con_pixel_frames_master_v0_1')\ndef approve(uid: str, to: str):\n sender = ctx.caller\n __assert_ownership(uid, sender)\n __balances[sender, uid, to] = True\n\n\n@__export('con_pixel_frames_master_v0_1')\ndef revoke(uid: str, to: str):\n __balances[ctx.caller, uid, to] = None\n\n\n@__export('con_pixel_frames_master_v0_1')\ndef transfer_from(uid: str, to: str, main_account: str):\n sender = ctx.caller\n assert __balances[main_account, uid, sender\n ], \"You have not been given approval to transfer this user's item.\"\n __assert_ownership(uid, main_account)\n __assert_already_owned(uid, to)\n __transfer_ownership(uid, to)\n __balances[main_account, uid, sender] = None\n\n\n@__export('con_pixel_frames_master_v0_1')\ndef like_thing(uid: str):\n sender = ctx.caller\n assert __S['liked', uid, sender] == '', sender + ' already liked ' + uid\n thing_info = I.import_module(__S['thing_info_contract'])\n thing_info.like_thing(uid)\n __S['liked', uid, sender] = True\n\n\n@__export('con_pixel_frames_master_v0_1')\ndef prove_ownership(uid: str, code: str):\n sender = ctx.caller\n __assert_ownership(uid, sender)\n thing_info = I.import_module(__S['thing_info_contract'])\n thing_info.set_proof(uid, code)\n\n\ndef __assert_ownership(uid: str, sender):\n thing_info = I.import_module(__S['thing_info_contract'])\n owner = thing_info.get_owner(uid)\n assert owner == sender, uid + ' not owned by ' + sender\n\n\ndef __assert_already_owned(uid: str, sender):\n thing_info = I.import_module(__S['thing_info_contract'])\n owner = thing_info.get_owner(uid)\n assert owner != sender, uid + ' already owned by ' + sender\n\n\ndef __transfer_ownership(uid: str, new_owner: str):\n thing_info = I.import_module(__S['thing_info_contract'])\n old_owner = thing_info.get_owner(uid)\n thing_info.set_owner(uid, new_owner)\n if thing_info.get_price_amount(uid) > 0:\n thing_info.set_price(uid, 0, '')\n __add_to_balance(new_owner)\n __subtract_from_balance(old_owner)\n\n\ndef __add_to_balance(holder: str):\n if __balances[holder] is None:\n __balances[holder] = 1\n else:\n __balances[holder] = __balances[holder] + 1\n\n\ndef __subtract_from_balance(holder: str):\n if __balances[holder] is None:\n __balances[holder] = 0\n else:\n __balances[holder] = __balances[holder] - 1\n" + }, + { + "key": "con_pixel_frames_master_v0_1.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_pixel_frames_master_v0_1.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 16, + 10, + 48, + 27, + 0 + ] + } + }, + { + "key": "con_pixel_frames_master_v0_1.balances:5fa1b314468832fb9d391e8af756140e85325a565d8b411ae2f2001d37c30ef4", + "value": 1 + }, + { + "key": "con_pixel_frames_master_v0_1.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": 3 + }, + { + "key": "con_pixel_frames_master_v0_1.metadata:operator", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_pixel_frames_master_v0_1.metadata:things_description", + "value": "Create, Own and Sell unique pixel animations on the Lamden Blockchain!" + }, + { + "key": "con_pixel_frames_master_v0_1.metadata:things_name", + "value": "Pixel Frames Test 2" + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:091532b6abc085206f39040f7c4718ae184dab462b39e74bef0dd088481953c5:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:0ef1b7ec0f0f2445c47211efb1642a564cf6fba35da017fe58489dfd12338160:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:1448b25056214625e58f1ea23e8bc8b63647e3a9810c757bf5303db120b5b986:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:16db3b33f6852e84db7ecd548fc6b375059776a9b54c80bb4c0db6c5ba84dbea:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:18bcb7c5ae87d62b6869b5e8f6bad3dcb20a1cfdecaea7df63788e317a1187f8:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:1f2605863f8620b176a459d39b31b875ef7a096fd5261b494d31ae828e42e86a:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:25e969a9a039db4322bf2aa6e0eb29e913ef455ee0e503316468a9576f18fccd:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:4726c773e7c46b9f4802f1a9142fc2445d5c6b762bdd187f3e4730b8ce062eb6:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:4d29b87de51fd13cf856726b57719a4c0cdd98c3d6641ef17be0ce62f24de0df:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:4dd548d6e01b0fb2c82df28f71d3891e1f37c5ef27ebb2651ac8738b805582cc:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:528fbee34cd0a36b5922e597fe3ad27a589592f10d66f9637c90b511ead5ca72:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:64f803263c2b9ba14a2b06da6e130354e059adb7d4e164abcf8369faeaa1388c:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:8211fbf2e9ab5f25128e31346622ff964885b295fdf149660373e87b7388abcc:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:98b7b0fdafcf60ca2987cf257eecb4672e9431f688522dd1922b3960f55c50b5:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:a92c214f31dae9233203e9f295ff8070e1f60071e36c113892efdb7e0b97e038:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:ae1ce57595f161364d726c1319489b62902a5c1fe9b8afaf30e0221f6c48eb90:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:b2310ea420de2a954a9ed5c4b827d54469528d4cbe094181309b60c75a7b4316:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:b4aa56225855b700193d1f155b8558c113b802652ff23d5d2b68db6d4bedfff4:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:cf2aa5347515f44bc640b73307817b437238005335b3378d39e229c098fb2878:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:eaa3c5985c71c865567083cf9df95b91bfc213785bafb13dc729cf106b3e0b5c:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:liked:f2962f7be6f82f3b70a8213b85d207d0f6535e77f8e3d781fe4c0b328227c69d:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.S:thing_info_contract", + "value": "con_pixel_frames_info_v0_3" + }, + { + "key": "con_pixel_frames_master_v0_3.__code__", + "value": "import currency\nI = importlib\n__S = Hash(default_value='', contract='con_pixel_frames_master_v0_3', name='S')\n__balances = Hash(default_value=0, contract='con_pixel_frames_master_v0_3',\n name='balances')\n__metadata = Hash(default_value=0, contract='con_pixel_frames_master_v0_3',\n name='metadata')\n\n\ndef ____():\n __S['thing_info_contract'] = 'con_pixel_frames_info_v0_3'\n __metadata['operator'] = ctx.caller\n __metadata['things_name'] = 'Pixel Frames Test 2'\n __metadata['things_description'] = (\n 'Create, Own and Sell unique pixel animations on the Lamden Blockchain!'\n )\n\n\n@__export('con_pixel_frames_master_v0_3')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_pixel_frames_master_v0_3')\ndef create_thing(thing_string: str, name: str, description: str, meta: dict={}\n ):\n thing_info = I.import_module(__S['thing_info_contract'])\n sender = ctx.caller\n thing_uid = thing_info.add_thing(thing_string, name, description, meta,\n sender)\n __add_to_balance(sender)\n return thing_uid\n\n\n@__export('con_pixel_frames_master_v0_3')\ndef buy_thing(uid: str):\n thing_info = I.import_module(__S['thing_info_contract'])\n sender = ctx.caller\n owner = thing_info.get_owner(uid)\n creator = thing_info.get_creator(uid)\n __assert_already_owned(uid, sender)\n price_amount = thing_info.get_price_amount(uid)\n royalty_percent = thing_info.get_royalty_amount(uid)\n assert price_amount, uid + ' is not for sale'\n assert price_amount > 0, uid + ' is not for sale'\n price_hold = thing_info.get_price_hold(uid)\n if price_hold != '':\n assert sender == price_hold, uid + ' is being held for ' + price_hold\n if royalty_percent > 0:\n royalty_amount = price_amount * (royalty_percent / 100)\n net_amount = price_amount - royalty_amount\n currency.transfer_from(royalty_amount, creator, sender)\n else:\n net_amount = price_amount\n currency.transfer_from(net_amount, owner, sender)\n __transfer_ownership(uid, sender)\n\n\n@__export('con_pixel_frames_master_v0_3')\ndef sell_thing(uid: str, amount: float):\n __assert_ownership(uid, ctx.caller)\n thing_info = I.import_module(__S['thing_info_contract'])\n thing_info.set_price(uid, amount, '')\n\n\n@__export('con_pixel_frames_master_v0_3')\ndef sell_thing_to(uid: str, amount: float, hold: str):\n __assert_ownership(uid, ctx.caller)\n thing_info = I.import_module(__S['thing_info_contract'])\n thing_info.set_price(uid, amount, hold)\n\n\n@__export('con_pixel_frames_master_v0_3')\ndef transfer(uid: str, new_owner: str):\n sender = ctx.caller\n __assert_ownership(uid, sender)\n __assert_already_owned(uid, new_owner)\n __transfer_ownership(uid, new_owner)\n\n\n@__export('con_pixel_frames_master_v0_3')\ndef approve(uid: str, to: str):\n sender = ctx.caller\n __assert_ownership(uid, sender)\n __balances[sender, uid, to] = True\n\n\n@__export('con_pixel_frames_master_v0_3')\ndef revoke(uid: str, to: str):\n __balances[ctx.caller, uid, to] = None\n\n\n@__export('con_pixel_frames_master_v0_3')\ndef transfer_from(uid: str, to: str, main_account: str):\n sender = ctx.caller\n assert __balances[main_account, uid, sender\n ], \"You have not been given approval to transfer this user's item.\"\n __assert_ownership(uid, main_account)\n __assert_already_owned(uid, to)\n __transfer_ownership(uid, to)\n __balances[main_account, uid, sender] = None\n\n\n@__export('con_pixel_frames_master_v0_3')\ndef like_thing(uid: str):\n sender = ctx.caller\n assert __S['liked', uid, sender] == '', sender + ' already liked ' + uid\n thing_info = I.import_module(__S['thing_info_contract'])\n thing_info.like_thing(uid)\n __S['liked', uid, sender] = True\n\n\n@__export('con_pixel_frames_master_v0_3')\ndef prove_ownership(uid: str, code: str):\n sender = ctx.caller\n __assert_ownership(uid, sender)\n thing_info = I.import_module(__S['thing_info_contract'])\n thing_info.set_proof(uid, code)\n\n\ndef __assert_ownership(uid: str, sender):\n thing_info = I.import_module(__S['thing_info_contract'])\n owner = thing_info.get_owner(uid)\n assert owner == sender, uid + ' not owned by ' + sender\n\n\ndef __assert_already_owned(uid: str, sender):\n thing_info = I.import_module(__S['thing_info_contract'])\n owner = thing_info.get_owner(uid)\n assert owner != sender, uid + ' already owned by ' + sender\n\n\ndef __transfer_ownership(uid: str, new_owner: str):\n thing_info = I.import_module(__S['thing_info_contract'])\n old_owner = thing_info.get_owner(uid)\n thing_info.set_owner(uid, new_owner)\n if thing_info.get_price_amount(uid) > 0:\n thing_info.set_price(uid, 0, '')\n __add_to_balance(new_owner)\n __subtract_from_balance(old_owner)\n\n\ndef __add_to_balance(holder: str):\n if __balances[holder] is None:\n __balances[holder] = 1\n else:\n __balances[holder] = __balances[holder] + 1\n\n\ndef __subtract_from_balance(holder: str):\n if __balances[holder] is None:\n __balances[holder] = 0\n else:\n __balances[holder] = __balances[holder] - 1\n" + }, + { + "key": "con_pixel_frames_master_v0_3.__developer__", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_master_v0_3.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 1, + 10, + 1, + 31, + 0 + ] + } + }, + { + "key": "con_pixel_frames_master_v0_3.balances:3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677", + "value": 4 + }, + { + "key": "con_pixel_frames_master_v0_3.balances:con_pixel_frames_auction_v0_5", + "value": 0 + }, + { + "key": "con_pixel_frames_master_v0_3.balances:con_pixel_frames_auction_v0_6_1", + "value": 2 + }, + { + "key": "con_pixel_frames_master_v0_3.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": 32 + }, + { + "key": "con_pixel_frames_master_v0_3.balances:ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9", + "value": 1 + }, + { + "key": "con_pixel_frames_master_v0_3.balances:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce", + "value": 4 + }, + { + "key": "con_pixel_frames_master_v0_3.balances:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:con_pixel_frames_auction_v0_4", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.balances:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce:aded799648b9d8b71085d8df868180ac40d96bf5e677217092ec76cf410e311a:con_pixel_frames_auction_v0_6", + "value": true + }, + { + "key": "con_pixel_frames_master_v0_3.metadata:operator", + "value": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce" + }, + { + "key": "con_pixel_frames_master_v0_3.metadata:things_description", + "value": "Create, Own and Sell unique pixel animations on the Lamden Blockchain!" + }, + { + "key": "con_pixel_frames_master_v0_3.metadata:things_name", + "value": "Pixel Frames Test 2" + }, + { + "key": "con_pow_better2701617.__code__", + "value": "import currency\n__height = Variable(contract='con_pow_better2701617', name='height')\n__current_hash = Variable(contract='con_pow_better2701617', name='current_hash'\n )\n__difficulty = Variable(contract='con_pow_better2701617', name='difficulty')\n__last_block_time = Variable(contract='con_pow_better2701617', name=\n 'last_block_time')\n__solutions = Hash(contract='con_pow_better2701617', name='solutions')\n__base_reward = Variable(contract='con_pow_better2701617', name='base_reward')\n\n\ndef ____():\n random.seed()\n __height.set(0)\n initial_hash = hex(random.randint(0, 2 ** 256 - 1))\n __difficulty.set(initial_hash)\n __current_hash.set(initial_hash)\n __last_block_time.set(now)\n __base_reward.set(5)\n\n\n@__export('con_pow_better2701617')\ndef submit_it(key: str, extra_data: str, solution: str, solution_height: int):\n current_height = __height.get()\n assert solution_height == current_height, 'Wrong block height'\n assert len(extra_data) < 100, 'Extra data is too long'\n assert len(key) == 64, 'Key is not 64 characters'\n assert len(solution) == 64, 'Solution is not 64 characters'\n current_difficulty = __difficulty.get()\n if int(solution, 16) < int(current_difficulty, 16):\n computed_hash = __compute_hash(key, __current_hash.get(), extra_data)\n assert computed_hash == solution, 'Hash does not match solution'\n reward_amount = __calculate_reward()\n __solutions[current_height] = {'problem': __current_hash.get(),\n 'extra_data': extra_data, 'key': key, 'solution': solution,\n 'timestamp': now, 'difficulty': current_difficulty,\n 'reward_amount': reward_amount}\n __retarget_difficulty()\n __height.set(current_height + 1)\n __current_hash.set(solution)\n __last_block_time.set(now)\n currency.transfer(amount=reward_amount, to=ctx.caller)\n return True\n return False\n\n\ndef __compute_hash(key: str, message: str, extra_data: str):\n full_message = __construct_message(message, extra_data)\n computed_hash = crypto.randomx_hash(key, full_message)\n return computed_hash\n\n\ndef __calculate_reward():\n __stamps_hash = ForeignHash(foreign_contract='stamp_cost', foreign_name\n ='S', contract='con_pow_better2701617', name='stamps_hash')\n stamp_cost = __stamps_hash['value']\n xian_txn_cost = 1400 / stamp_cost\n reward_amount = xian_txn_cost + __base_reward.get()\n return reward_amount\n\n\ndef __construct_message(message, extra_data):\n return f'{message}_{extra_data}'\n\n\ndef __retarget_difficulty():\n current_height = __height.get()\n if current_height % 3 == 0 and current_height > 0:\n time_taken = (now - __solutions[current_height - 3]['timestamp']\n ).seconds\n expected_time = 2 * 60 * 3\n adjustment_factor = time_taken / expected_time\n new_difficulty = int(int(__difficulty.get(), 16) * adjustment_factor)\n __difficulty.set(hex(new_difficulty))\n" + }, + { + "key": "con_pow_better2701617.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pow_better2701617.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 24, + 10, + 42, + 39, + 0 + ] + } + }, + { + "key": "con_pow_better2701617.base_reward", + "value": 5 + }, + { + "key": "con_pow_better2701617.current_hash", + "value": "0xd84b3b7547d852f05f116cb6cdc0d7a88f9425ce73b094162358469c4afd99e4" + }, + { + "key": "con_pow_better2701617.difficulty", + "value": "0xd84b3b7547d852f05f116cb6cdc0d7a88f9425ce73b094162358469c4afd99e4" + }, + { + "key": "con_pow_better2701617.height", + "value": 0 + }, + { + "key": "con_pow_better2701617.last_block_time", + "value": { + "__time__": [ + 2024, + 10, + 24, + 10, + 42, + 39, + 0 + ] + } + }, + { + "key": "con_pow_better2757584.__code__", + "value": "I = importlib\n\n\n@__export('con_pow_better2757584')\ndef send(addresses: list, amounts: list, contract: str):\n assert len(addresses) == len(amounts\n ), 'Addresses and amounts must have the same length'\n token = I.import_module(contract)\n for address, amount in zip(addresses, amounts):\n assert len(address) > 0, 'Address cannot be empty'\n assert amount > 0, 'Amount must be greater than 0'\n token.transfer_from(amount=amount, to=address, main_account=ctx.signer)\n" + }, + { + "key": "con_pow_better2757584.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pow_better2757584.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 24, + 10, + 45, + 31, + 0 + ] + } + }, + { + "key": "con_pow_better2947106.__code__", + "value": "import currency\n__height = Variable(contract='con_pow_better2947106', name='height')\n__current_hash = Variable(contract='con_pow_better2947106', name='current_hash'\n )\n__difficulty = Variable(contract='con_pow_better2947106', name='difficulty')\n__last_block_time = Variable(contract='con_pow_better2947106', name=\n 'last_block_time')\n__solutions = Hash(contract='con_pow_better2947106', name='solutions')\n__base_reward = Variable(contract='con_pow_better2947106', name='base_reward')\n\n\ndef ____():\n random.seed()\n __height.set(0)\n initial_hash = hex(random.randint(0, 2 ** 256 - 1))\n __difficulty.set(initial_hash)\n __current_hash.set(initial_hash)\n __last_block_time.set(now)\n __base_reward.set(5)\n\n\n@__export('con_pow_better2947106')\ndef submit_it(key: str, extra_data: str, solution: str, solution_height: int):\n current_height = __height.get()\n assert solution_height == current_height, 'Wrong block height'\n assert len(extra_data) < 100, 'Extra data is too long'\n assert len(key) == 64, 'Key is not 64 characters'\n assert len(solution) == 64, 'Solution is not 64 characters'\n current_difficulty = __difficulty.get()\n if int(solution, 16) < int(current_difficulty, 16):\n computed_hash = __compute_hash(key, __current_hash.get(), extra_data)\n assert computed_hash == solution, 'Hash does not match solution'\n reward_amount = __calculate_reward()\n __solutions[current_height] = {'problem': __current_hash.get(),\n 'extra_data': extra_data, 'key': key, 'solution': solution,\n 'timestamp': now, 'difficulty': current_difficulty,\n 'reward_amount': reward_amount}\n __retarget_difficulty()\n __height.set(current_height + 1)\n __current_hash.set(solution)\n __last_block_time.set(now)\n currency.transfer(amount=reward_amount, to=ctx.caller)\n return True\n return False\n\n\ndef __compute_hash(key: str, message: str, extra_data: str):\n full_message = __construct_message(message, extra_data)\n computed_hash = crypto.randomx_hash(key, full_message)\n return computed_hash\n\n\ndef __calculate_reward():\n __stamps_hash = ForeignHash(foreign_contract='stamp_cost', foreign_name\n ='S', contract='con_pow_better2947106', name='stamps_hash')\n stamp_cost = __stamps_hash['value']\n xian_txn_cost = 1400 / stamp_cost\n reward_amount = xian_txn_cost + __base_reward.get()\n return reward_amount\n\n\ndef __construct_message(message, extra_data):\n return f'{message}_{extra_data}'\n\n\ndef __retarget_difficulty():\n current_height = __height.get()\n if current_height % 3 == 0 and current_height > 0:\n time_taken = (now - __solutions[current_height - 3]['timestamp']\n ).seconds\n expected_time = 2 * 60 * 3\n adjustment_factor = time_taken / expected_time\n new_difficulty = int(int(__difficulty.get(), 16) * adjustment_factor)\n __difficulty.set(hex(new_difficulty))\n" + }, + { + "key": "con_pow_better2947106.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_pow_better2947106.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 24, + 10, + 43, + 40, + 0 + ] + } + }, + { + "key": "con_pow_better2947106.base_reward", + "value": 5 + }, + { + "key": "con_pow_better2947106.current_hash", + "value": "0xeb5687204f4382dabbc05e4913ad7d20de7b6aa1758e5b04b6a08036a456aa53" + }, + { + "key": "con_pow_better2947106.difficulty", + "value": "0xeb5687204f4382dabbc05e4913ad7d20de7b6aa1758e5b04b6a08036a456aa53" + }, + { + "key": "con_pow_better2947106.height", + "value": 0 + }, + { + "key": "con_pow_better2947106.last_block_time", + "value": { + "__time__": [ + 2024, + 10, + 24, + 10, + 43, + 40, + 0 + ] + } + }, + { + "key": "con_proxythis.__code__", + "value": "@__export('con_proxythis')\ndef proxythis(con: str):\n return importlib.import_module(con).getthis()\n" + }, + { + "key": "con_proxythis.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_proxythis.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 31, + 9, + 52, + 23, + 0 + ] + } + }, + { + "key": "con_prueba1.__code__", + "value": "random.seed()\nimport currency\n__movement = Hash(default_value=0, contract='con_prueba1', name='movement')\n__winner = Variable(contract='con_prueba1', name='winner')\n__owner = Variable(contract='con_prueba1', name='owner')\n__player = Variable(contract='con_prueba1', name='player')\n__computer = Variable(contract='con_prueba1', name='computer')\n__prize = Variable(contract='con_prueba1', name='prize')\n__cost = Variable(contract='con_prueba1', name='cost')\n\n\ndef ____():\n __movement['rock'] = 1\n __movement['paper'] = 2\n __movement['scissors'] = 3\n __player.set(__movement['rock'])\n __computer.set(__movement['rock'])\n __owner.set(ctx.caller)\n __prize.set(decimal('2.0'))\n __cost.set(decimal('1.0'))\n\n\ndef __move_to_text(move: int) ->str:\n if move == 1:\n return 'rock'\n elif move == 2:\n return 'paper'\n elif move == 3:\n return 'scissors'\n else:\n return 'Invalid move'\n\n\n@__export('con_prueba1')\ndef Play(move: int):\n assert move < 4, 'Invalid move!'\n assert move > 0, 'Invalid move!'\n __player.set(move)\n __computer.set(random.randint(1, 3))\n currency.transfer_from(amount=__cost.get(), to=__owner.get(),\n main_account=ctx.caller)\n if __player.get() == __computer.get():\n currency.transfer_from(amount=__cost.get(), to=ctx.caller,\n main_account=__owner.get())\n return 'Draw'\n elif __player.get() == __movement['rock'] and __computer.get(\n ) == __movement['scissors'] or __player.get() == __movement['paper'\n ] and __computer.get() == __movement['rock'] or __player.get(\n ) == __movement['scissors'] and __computer.get() == __movement['paper'\n ]:\n currency.transfer_from(amount=__prize.get(), to=ctx.caller,\n main_account=__owner.get())\n __winner.set(ctx.caller)\n return (\n f'You won! Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n else:\n __computer.set(random.randint(1, 3))\n __winner.set(__owner.get())\n return (\n f'You lost, Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n\n\n@__export('con_prueba1')\ndef change_cost(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __cost.set(amount)\n\n\n@__export('con_prueba1')\ndef change_price(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __prize.set(amount)\n" + }, + { + "key": "con_prueba1.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_prueba1.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 21, + 58, + 38, + 0 + ] + } + }, + { + "key": "con_prueba1.computer", + "value": 2 + }, + { + "key": "con_prueba1.cost", + "value": 1 + }, + { + "key": "con_prueba1.movement:paper", + "value": 2 + }, + { + "key": "con_prueba1.movement:rock", + "value": 1 + }, + { + "key": "con_prueba1.movement:scissors", + "value": 3 + }, + { + "key": "con_prueba1.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_prueba1.player", + "value": 2 + }, + { + "key": "con_prueba1.prize", + "value": 3 + }, + { + "key": "con_prueba1.winner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_prueba2.__code__", + "value": "random.seed()\nimport currency\n__movement = Hash(default_value=0, contract='con_prueba2', name='movement')\n__winner = Variable(contract='con_prueba2', name='winner')\n__owner = Variable(contract='con_prueba2', name='owner')\n__player = Variable(contract='con_prueba2', name='player')\n__computer = Variable(contract='con_prueba2', name='computer')\n__prize = Variable(contract='con_prueba2', name='prize')\n__cost = Variable(contract='con_prueba2', name='cost')\n\n\ndef ____():\n __movement['rock'] = 1\n __movement['paper'] = 2\n __movement['scissors'] = 3\n __player.set(__movement['rock'])\n __computer.set(__movement['rock'])\n __owner.set(ctx.caller)\n __prize.set(decimal('2.0'))\n __cost.set(decimal('1.0'))\n\n\ndef __move_to_text(move: int) ->str:\n if move == 1:\n return 'rock'\n elif move == 2:\n return 'paper'\n elif move == 3:\n return 'scissors'\n else:\n return 'Invalid move'\n\n\n@__export('con_prueba2')\ndef Play(move: int):\n assert move < 4, 'Invalid move!'\n assert move > 0, 'Invalid move!'\n __player.set(move)\n __computer.set(random.randint(1, 3))\n currency.transfer_from(amount=__cost.get(), to=__owner.get(),\n main_account=ctx.caller)\n if __player.get() == __computer.get():\n currency.transfer_from(amount=__cost.get(), to=ctx.caller,\n main_account=__owner.get())\n return 'Draw'\n elif __player.get() == __movement['rock'] and __computer.get(\n ) == __movement['scissors'] or __player.get() == __movement['paper'\n ] and __computer.get() == __movement['rock'] or __player.get(\n ) == __movement['scissors'] and __computer.get() == __movement['paper'\n ]:\n currency.transfer_from(amount=__prize.get(), to=ctx.caller,\n main_account=__owner.get())\n __winner.set(ctx.caller)\n return (\n f'You won! Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n else:\n __winner.set(__owner.get())\n return (\n f'You lost, Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n\n\n@__export('con_prueba2')\ndef change_cost(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __cost.set(amount)\n\n\n@__export('con_prueba2')\ndef change_price(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __prize.set(amount)\n" + }, + { + "key": "con_prueba2.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_prueba2.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 4, + 2, + 26, + 54, + 0 + ] + } + }, + { + "key": "con_prueba2.computer", + "value": 1 + }, + { + "key": "con_prueba2.cost", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_prueba2.movement:paper", + "value": 2 + }, + { + "key": "con_prueba2.movement:rock", + "value": 1 + }, + { + "key": "con_prueba2.movement:scissors", + "value": 3 + }, + { + "key": "con_prueba2.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_prueba2.player", + "value": 1 + }, + { + "key": "con_prueba2.prize", + "value": { + "__fixed__": "2" + } + }, + { + "key": "con_prueba3.__code__", + "value": "random.seed()\nimport currency\n__movement = Hash(default_value=0, contract='con_prueba3', name='movement')\n__winner = Variable(contract='con_prueba3', name='winner')\n__owner = Variable(contract='con_prueba3', name='owner')\n__player = Variable(contract='con_prueba3', name='player')\n__computer = Variable(contract='con_prueba3', name='computer')\n__prize = Variable(contract='con_prueba3', name='prize')\n__cost = Variable(contract='con_prueba3', name='cost')\n\n\ndef ____():\n __movement['rock'] = 1\n __movement['paper'] = 2\n __movement['scissors'] = 3\n __player.set(__movement['rock'])\n __computer.set(__movement['rock'])\n __owner.set(ctx.caller)\n __prize.set(decimal('3.0'))\n __cost.set(decimal('1.0'))\n\n\ndef __move_to_text(move: int) ->str:\n if move == 1:\n return 'rock'\n elif move == 2:\n return 'paper'\n elif move == 3:\n return 'scissors'\n else:\n return 'Invalid move'\n\n\n@__export('con_prueba3')\ndef Play(move: int):\n assert move < 4, 'Invalid move!'\n assert move > 0, 'Invalid move!'\n __player.set(move)\n __computer.set(random.randint(1, 3))\n currency.transfer_from(amount=__cost.get(), to=__owner.get(),\n main_account=ctx.caller)\n if __player.get() == __computer.get():\n currency.transfer_from(amount=__cost.get(), to=ctx.caller,\n main_account=__owner.get())\n return 'Draw'\n elif __player.get() == __movement['rock'] and __computer.get(\n ) == __movement['scissors'] or __player.get() == __movement['paper'\n ] and __computer.get() == __movement['rock'] or __player.get(\n ) == __movement['scissors'] and __computer.get() == __movement['paper'\n ]:\n currency.transfer_from(amount=__prize.get(), to=ctx.caller,\n main_account=__owner.get())\n __winner.set(ctx.caller)\n return (\n f'You won! Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n else:\n __winner.set(__owner.get())\n return (\n f'You lost, Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n\n\n@__export('con_prueba3')\ndef change_cost(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __cost.set(amount)\n\n\n@__export('con_prueba3')\ndef change_price(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __prize.set(amount)\n" + }, + { + "key": "con_prueba3.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_prueba3.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 4, + 2, + 29, + 2, + 0 + ] + } + }, + { + "key": "con_prueba3.computer", + "value": 2 + }, + { + "key": "con_prueba3.cost", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_prueba3.movement:paper", + "value": 2 + }, + { + "key": "con_prueba3.movement:rock", + "value": 1 + }, + { + "key": "con_prueba3.movement:scissors", + "value": 3 + }, + { + "key": "con_prueba3.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_prueba3.player", + "value": 2 + }, + { + "key": "con_prueba3.prize", + "value": { + "__fixed__": "3" + } + }, + { + "key": "con_prueba3.winner", + "value": "c0476b987deee6d9d5eddbae604bf80fc442066f32954ef7120549ff4e51dfd9" + }, + { + "key": "con_pruebas.__code__", + "value": "random.seed()\nimport currency\n__movement = Hash(default_value=0, contract='con_pruebas', name='movement')\n__winner = Variable(contract='con_pruebas', name='winner')\n__propietario = Variable(contract='con_pruebas', name='propietario')\n__jugador = Variable(contract='con_pruebas', name='jugador')\n__computadora = Variable(contract='con_pruebas', name='computadora')\n__premio = Variable(contract='con_pruebas', name='premio')\n__coste = Variable(contract='con_pruebas', name='coste')\n\n\ndef ____():\n __movement['piedra'] = 1\n __movement['papel'] = 2\n __movement['tijera'] = 3\n __jugador.set(__movement['piedra'])\n __computadora.set(__movement['piedra'])\n __propietario.set(ctx.caller)\n __premio.set(decimal('5.0'))\n __coste.set(decimal('3.0'))\n\n\n@__export('con_pruebas')\ndef Jugar(movimiento: int):\n assert movimiento < 4, 'No puedes hacer ese movimiento!'\n __jugador.set(movimiento)\n __computadora.set(random.randint(1, 3))\n if __jugador.get() == __computadora.get():\n return 'Empate'\n elif __jugador.get() == __movement['piedra'] and __computadora.get(\n ) == __movement['tijera'] or __jugador.get() == __movement['papel'\n ] and __computadora.get() == __movement['piedra'] or __jugador.get(\n ) == __movement['tijera'] and __computadora.get() == __movement['papel'\n ]:\n currency.transfer_from(amount=__premio.get(), to=ctx.caller,\n main_account=__propietario.get())\n __winner.set(ctx.caller)\n return (\n f'Ganaste revisa tu billetera {__winner.get()} tu premio es de {__premio.get()}'\n )\n else:\n currency.transfer_from(amount=__coste.get(), to=__propietario.get(),\n main_account=ctx.caller)\n __winner.set(__propietario.get())\n return f'Perdiste, gano el dueno del contrato {__winner.get()}'\n\n\n@__export('con_pruebas')\ndef computadora():\n return str(__computadora.get())\n" + }, + { + "key": "con_pruebas.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 20, + 53, + 8, + 0 + ] + } + }, + { + "key": "con_pruebas.computadora", + "value": 1 + }, + { + "key": "con_pruebas.coste", + "value": { + "__fixed__": "3" + } + }, + { + "key": "con_pruebas.jugador", + "value": 1 + }, + { + "key": "con_pruebas.movement:papel", + "value": 2 + }, + { + "key": "con_pruebas.movement:piedra", + "value": 1 + }, + { + "key": "con_pruebas.movement:tijera", + "value": 3 + }, + { + "key": "con_pruebas.premio", + "value": { + "__fixed__": "5" + } + }, + { + "key": "con_pruebas.propietario", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas2.__code__", + "value": "random.seed()\nimport currency\n__movement = Hash(default_value=0, contract='con_pruebas2', name='movement')\n__winner = Variable(contract='con_pruebas2', name='winner')\n__owner = Variable(contract='con_pruebas2', name='owner')\n__player = Variable(contract='con_pruebas2', name='player')\n__computer = Variable(contract='con_pruebas2', name='computer')\n__prize = Variable(contract='con_pruebas2', name='prize')\n__cost = Variable(contract='con_pruebas2', name='cost')\n\n\ndef ____():\n __movement['rock'] = 1\n __movement['paper'] = 2\n __movement['scissors'] = 3\n __player.set(__movement['rock'])\n __computer.set(__movement['rock'])\n __owner.set(ctx.caller)\n __prize.set(decimal('5.0'))\n __cost.set(decimal('3.0'))\n\n\ndef __move_to_text(move: int) ->str:\n if move == 1:\n return 'rock'\n elif move == 2:\n return 'paper'\n elif move == 3:\n return 'scissors'\n else:\n return 'Invalid move'\n\n\n@__export('con_pruebas2')\ndef Play(move: int):\n assert move < 4, 'Invalid move!'\n __player.set(move)\n __computer.set(random.randint(1, 3))\n if __player.get() == __computer.get():\n return 'Draw'\n elif __player.get() == __movement['rock'] and __computer.get(\n ) == __movement['scissors'] or __player.get() == __movement['paper'\n ] and __computer.get() == __movement['rock'] or __player.get(\n ) == __movement['scissors'] and __computer.get() == __movement['paper'\n ]:\n currency.transfer_from(amount=__prize.get(), to=ctx.caller,\n main_account=__owner.get())\n __winner.set(ctx.caller)\n return (\n f'You won! Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n else:\n currency.transfer_from(amount=__cost.get(), to=__owner.get(),\n main_account=ctx.caller)\n __winner.set(__owner.get())\n return (\n f'You lost, Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n\n\n@__export('con_pruebas2')\ndef change_cost(amount: int):\n assert ctx.owner == ctx.caller, 'Only owner can change!'\n __cost.set(amount)\n" + }, + { + "key": "con_pruebas2.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas2.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 21, + 24, + 55, + 0 + ] + } + }, + { + "key": "con_pruebas2.computer", + "value": 1 + }, + { + "key": "con_pruebas2.cost", + "value": { + "__fixed__": "3" + } + }, + { + "key": "con_pruebas2.movement:paper", + "value": 2 + }, + { + "key": "con_pruebas2.movement:rock", + "value": 1 + }, + { + "key": "con_pruebas2.movement:scissors", + "value": 3 + }, + { + "key": "con_pruebas2.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas2.player", + "value": 1 + }, + { + "key": "con_pruebas2.prize", + "value": { + "__fixed__": "5" + } + }, + { + "key": "con_pruebas3.__code__", + "value": "random.seed()\nimport currency\n__movement = Hash(default_value=0, contract='con_pruebas3', name='movement')\n__winner = Variable(contract='con_pruebas3', name='winner')\n__owner = Variable(contract='con_pruebas3', name='owner')\n__player = Variable(contract='con_pruebas3', name='player')\n__computer = Variable(contract='con_pruebas3', name='computer')\n__prize = Variable(contract='con_pruebas3', name='prize')\n__cost = Variable(contract='con_pruebas3', name='cost')\n\n\ndef ____():\n __movement['rock'] = 1\n __movement['paper'] = 2\n __movement['scissors'] = 3\n __player.set(__movement['rock'])\n __computer.set(__movement['rock'])\n __owner.set(ctx.caller)\n __prize.set(decimal('5.0'))\n __cost.set(decimal('3.0'))\n\n\ndef __move_to_text(move: int) ->str:\n if move == 1:\n return 'rock'\n elif move == 2:\n return 'paper'\n elif move == 3:\n return 'scissors'\n else:\n return 'Invalid move'\n\n\n@__export('con_pruebas3')\ndef Play(move: int):\n assert move < 4, 'Invalid move!'\n assert move > 0, 'Invalid move!'\n __player.set(move)\n __computer.set(random.randint(1, 3))\n if __player.get() == __computer.get():\n return 'Draw'\n elif __player.get() == __movement['rock'] and __computer.get(\n ) == __movement['scissors'] or __player.get() == __movement['paper'\n ] and __computer.get() == __movement['rock'] or __player.get(\n ) == __movement['scissors'] and __computer.get() == __movement['paper'\n ]:\n currency.transfer_from(amount=__prize.get(), to=ctx.caller,\n main_account=__owner.get())\n __winner.set(ctx.caller)\n return (\n f'You won! Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n else:\n currency.transfer_from(amount=__cost.get(), to=__owner.get(),\n main_account=ctx.caller)\n __winner.set(__owner.get())\n return (\n f'You lost, Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n\n\n@__export('con_pruebas3')\ndef change_cost(amount: int):\n assert ctx.owner != ctx.caller, 'Only owner can change!'\n __cost.set(amount)\n" + }, + { + "key": "con_pruebas3.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas3.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 21, + 26, + 38, + 0 + ] + } + }, + { + "key": "con_pruebas3.computer", + "value": 1 + }, + { + "key": "con_pruebas3.cost", + "value": 1000 + }, + { + "key": "con_pruebas3.movement:paper", + "value": 2 + }, + { + "key": "con_pruebas3.movement:rock", + "value": 1 + }, + { + "key": "con_pruebas3.movement:scissors", + "value": 3 + }, + { + "key": "con_pruebas3.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas3.player", + "value": 1 + }, + { + "key": "con_pruebas3.prize", + "value": { + "__fixed__": "5" + } + }, + { + "key": "con_pruebas4.__code__", + "value": "random.seed()\nimport currency\n__movement = Hash(default_value=0, contract='con_pruebas4', name='movement')\n__winner = Variable(contract='con_pruebas4', name='winner')\n__owner = Variable(contract='con_pruebas4', name='owner')\n__player = Variable(contract='con_pruebas4', name='player')\n__computer = Variable(contract='con_pruebas4', name='computer')\n__prize = Variable(contract='con_pruebas4', name='prize')\n__cost = Variable(contract='con_pruebas4', name='cost')\n\n\ndef ____():\n __movement['rock'] = 1\n __movement['paper'] = 2\n __movement['scissors'] = 3\n __player.set(__movement['rock'])\n __computer.set(__movement['rock'])\n __owner.set(ctx.caller)\n __prize.set(decimal('6.0'))\n __cost.set(decimal('3.0'))\n\n\ndef __move_to_text(move: int) ->str:\n if move == 1:\n return 'rock'\n elif move == 2:\n return 'paper'\n elif move == 3:\n return 'scissors'\n else:\n return 'Invalid move'\n\n\n@__export('con_pruebas4')\ndef Play(move: int):\n assert move < 4, 'Invalid move!'\n assert move > 0, 'Invalid move!'\n currency.transfer_from(amount=__cost.get(), to=__owner.get(),\n main_account=ctx.caller)\n __player.set(move)\n __computer.set(random.randint(1, 3))\n if __player.get() == __computer.get():\n return 'Draw'\n elif __player.get() == __movement['rock'] and __computer.get(\n ) == __movement['scissors'] or __player.get() == __movement['paper'\n ] and __computer.get() == __movement['rock'] or __player.get(\n ) == __movement['scissors'] and __computer.get() == __movement['paper'\n ]:\n currency.transfer_from(amount=__prize.get(), to=ctx.caller,\n main_account=__owner.get())\n __winner.set(ctx.caller)\n return (\n f'You won! Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n else:\n __winner.set(__owner.get())\n return (\n f'You lost, Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n\n\n@__export('con_pruebas4')\ndef change_cost(amount: int):\n assert ctx.owner != ctx.caller, 'Only owner can change!'\n __cost.set(amount)\n" + }, + { + "key": "con_pruebas4.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas4.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 21, + 30, + 49, + 0 + ] + } + }, + { + "key": "con_pruebas4.computer", + "value": 3 + }, + { + "key": "con_pruebas4.cost", + "value": 5 + }, + { + "key": "con_pruebas4.movement:paper", + "value": 2 + }, + { + "key": "con_pruebas4.movement:rock", + "value": 1 + }, + { + "key": "con_pruebas4.movement:scissors", + "value": 3 + }, + { + "key": "con_pruebas4.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas4.player", + "value": 1 + }, + { + "key": "con_pruebas4.prize", + "value": { + "__fixed__": "6" + } + }, + { + "key": "con_pruebas4.winner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas5.__code__", + "value": "random.seed()\nimport currency\n__movement = Hash(default_value=0, contract='con_pruebas5', name='movement')\n__winner = Variable(contract='con_pruebas5', name='winner')\n__owner = Variable(contract='con_pruebas5', name='owner')\n__player = Variable(contract='con_pruebas5', name='player')\n__computer = Variable(contract='con_pruebas5', name='computer')\n__prize = Variable(contract='con_pruebas5', name='prize')\n__cost = Variable(contract='con_pruebas5', name='cost')\n\n\ndef ____():\n __movement['rock'] = 1\n __movement['paper'] = 2\n __movement['scissors'] = 3\n __player.set(__movement['rock'])\n __computer.set(__movement['rock'])\n __owner.set(ctx.caller)\n __prize.set(decimal('6.0'))\n __cost.set(decimal('3.0'))\n\n\ndef __move_to_text(move: int) ->str:\n if move == 1:\n return 'rock'\n elif move == 2:\n return 'paper'\n elif move == 3:\n return 'scissors'\n else:\n return 'Invalid move'\n\n\n@__export('con_pruebas5')\ndef Play(move: int):\n assert move < 4, 'Invalid move!'\n assert move > 0, 'Invalid move!'\n currency.transfer_from(amount=__cost.get(), to=__owner.get(),\n main_account=ctx.caller)\n __player.set(move)\n if __player.get() == __computer.get():\n return 'Draw'\n elif __computer.set(random.randint(1, 3))(__player.get() == __movement[\n 'rock'] and __computer.get() == __movement['scissors']\n ) or __player.get() == __movement['paper'] and __computer.get(\n ) == __movement['rock'] or __player.get() == __movement['scissors'\n ] and __computer.get() == __movement['paper']:\n currency.transfer_from(amount=__prize.get(), to=ctx.caller,\n main_account=__owner.get())\n __winner.set(ctx.caller)\n return (\n f'You won! Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n else:\n __computer.set(random.randint(1, 3))\n __winner.set(__owner.get())\n return (\n f'You lost, Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n\n\n@__export('con_pruebas5')\ndef change_cost(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __cost.set(amount)\n" + }, + { + "key": "con_pruebas5.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas5.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 21, + 41, + 33, + 0 + ] + } + }, + { + "key": "con_pruebas5.computer", + "value": 1 + }, + { + "key": "con_pruebas5.cost", + "value": 3 + }, + { + "key": "con_pruebas5.movement:paper", + "value": 2 + }, + { + "key": "con_pruebas5.movement:rock", + "value": 1 + }, + { + "key": "con_pruebas5.movement:scissors", + "value": 3 + }, + { + "key": "con_pruebas5.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas5.player", + "value": 1 + }, + { + "key": "con_pruebas5.prize", + "value": { + "__fixed__": "6" + } + }, + { + "key": "con_pruebas6.__code__", + "value": "random.seed()\nimport currency\n__movement = Hash(default_value=0, contract='con_pruebas6', name='movement')\n__winner = Variable(contract='con_pruebas6', name='winner')\n__owner = Variable(contract='con_pruebas6', name='owner')\n__player = Variable(contract='con_pruebas6', name='player')\n__computer = Variable(contract='con_pruebas6', name='computer')\n__prize = Variable(contract='con_pruebas6', name='prize')\n__cost = Variable(contract='con_pruebas6', name='cost')\n\n\ndef ____():\n __movement['rock'] = 1\n __movement['paper'] = 2\n __movement['scissors'] = 3\n __player.set(__movement['rock'])\n __computer.set(__movement['rock'])\n __owner.set(ctx.caller)\n __prize.set(decimal('2.0'))\n __cost.set(decimal('1.0'))\n\n\ndef __move_to_text(move: int) ->str:\n if move == 1:\n return 'rock'\n elif move == 2:\n return 'paper'\n elif move == 3:\n return 'scissors'\n else:\n return 'Invalid move'\n\n\n@__export('con_pruebas6')\ndef Play(move: int):\n assert move < 4, 'Invalid move!'\n assert move > 0, 'Invalid move!'\n __player.set(move)\n currency.transfer_from(amount=coste.get(), to=propietario.get(),\n main_account=ctx.caller)\n if __player.get() == __computer.get():\n currency.transfer_from(amount=coste.get(), to=ctx.caller,\n main_account=propietario.get())\n return 'Draw'\n elif __computer.set(random.randint(1, 3))(__player.get() == __movement[\n 'rock'] and __computer.get() == __movement['scissors']\n ) or __player.get() == __movement['paper'] and __computer.get(\n ) == __movement['rock'] or __player.get() == __movement['scissors'\n ] and __computer.get() == __movement['paper']:\n currency.transfer_from(amount=premio.get(), to=ctx.caller,\n main_account=propietario.get())\n __winner.set(ctx.caller)\n return (\n f'You won! Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n else:\n __computer.set(random.randint(1, 3))\n __winner.set(__owner.get())\n return (\n f'You lost, Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n\n\n@__export('con_pruebas6')\ndef change_cost(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __cost.set(amount)\n\n\n@__export('con_pruebas6')\ndef change_price(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __prize.set(amount)\n" + }, + { + "key": "con_pruebas6.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas6.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 21, + 45, + 54, + 0 + ] + } + }, + { + "key": "con_pruebas6.computer", + "value": 1 + }, + { + "key": "con_pruebas6.cost", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_pruebas6.movement:paper", + "value": 2 + }, + { + "key": "con_pruebas6.movement:rock", + "value": 1 + }, + { + "key": "con_pruebas6.movement:scissors", + "value": 3 + }, + { + "key": "con_pruebas6.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas6.player", + "value": 1 + }, + { + "key": "con_pruebas6.prize", + "value": { + "__fixed__": "2" + } + }, + { + "key": "con_pruebas7.__code__", + "value": "random.seed()\nimport currency\n__movement = Hash(default_value=0, contract='con_pruebas7', name='movement')\n__winner = Variable(contract='con_pruebas7', name='winner')\n__owner = Variable(contract='con_pruebas7', name='owner')\n__player = Variable(contract='con_pruebas7', name='player')\n__computer = Variable(contract='con_pruebas7', name='computer')\n__prize = Variable(contract='con_pruebas7', name='prize')\n__cost = Variable(contract='con_pruebas7', name='cost')\n\n\ndef ____():\n __movement['rock'] = 1\n __movement['paper'] = 2\n __movement['scissors'] = 3\n __player.set(__movement['rock'])\n __computer.set(__movement['rock'])\n __owner.set(ctx.caller)\n __prize.set(decimal('2.0'))\n __cost.set(decimal('1.0'))\n\n\ndef __move_to_text(move: int) ->str:\n if move == 1:\n return 'rock'\n elif move == 2:\n return 'paper'\n elif move == 3:\n return 'scissors'\n else:\n return 'Invalid move'\n\n\n@__export('con_pruebas7')\ndef Play(move: int):\n assert move < 4, 'Invalid move!'\n assert move > 0, 'Invalid move!'\n __player.set(move)\n currency.transfer_from(amount=__cost.get(), to=propietario.get(),\n main_account=ctx.caller)\n if __player.get() == __computer.get():\n currency.transfer_from(amount=__cost.get(), to=ctx.caller,\n main_account=propietario.get())\n return 'Draw'\n elif __computer.set(random.randint(1, 3))(__player.get() == __movement[\n 'rock'] and __computer.get() == __movement['scissors']\n ) or __player.get() == __movement['paper'] and __computer.get(\n ) == __movement['rock'] or __player.get() == __movement['scissors'\n ] and __computer.get() == __movement['paper']:\n currency.transfer_from(amount=premio.get(), to=ctx.caller,\n main_account=propietario.get())\n __winner.set(ctx.caller)\n return (\n f'You won! Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n else:\n __computer.set(random.randint(1, 3))\n __winner.set(__owner.get())\n return (\n f'You lost, Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n\n\n@__export('con_pruebas7')\ndef change_cost(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __cost.set(amount)\n\n\n@__export('con_pruebas7')\ndef change_price(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __prize.set(amount)\n" + }, + { + "key": "con_pruebas7.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas7.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 21, + 51, + 19, + 0 + ] + } + }, + { + "key": "con_pruebas7.computer", + "value": 1 + }, + { + "key": "con_pruebas7.cost", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_pruebas7.movement:paper", + "value": 2 + }, + { + "key": "con_pruebas7.movement:rock", + "value": 1 + }, + { + "key": "con_pruebas7.movement:scissors", + "value": 3 + }, + { + "key": "con_pruebas7.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas7.player", + "value": 1 + }, + { + "key": "con_pruebas7.prize", + "value": { + "__fixed__": "2" + } + }, + { + "key": "con_pruebas8.__code__", + "value": "random.seed()\nimport currency\n__movement = Hash(default_value=0, contract='con_pruebas8', name='movement')\n__winner = Variable(contract='con_pruebas8', name='winner')\n__owner = Variable(contract='con_pruebas8', name='owner')\n__player = Variable(contract='con_pruebas8', name='player')\n__computer = Variable(contract='con_pruebas8', name='computer')\n__prize = Variable(contract='con_pruebas8', name='prize')\n__cost = Variable(contract='con_pruebas8', name='cost')\n\n\ndef ____():\n __movement['rock'] = 1\n __movement['paper'] = 2\n __movement['scissors'] = 3\n __player.set(__movement['rock'])\n __computer.set(__movement['rock'])\n __owner.set(ctx.caller)\n __prize.set(decimal('2.0'))\n __cost.set(decimal('1.0'))\n\n\ndef __move_to_text(move: int) ->str:\n if move == 1:\n return 'rock'\n elif move == 2:\n return 'paper'\n elif move == 3:\n return 'scissors'\n else:\n return 'Invalid move'\n\n\n@__export('con_pruebas8')\ndef Play(move: int):\n assert move < 4, 'Invalid move!'\n assert move > 0, 'Invalid move!'\n __player.set(move)\n currency.transfer_from(amount=__cost.get(), to=__owner.get(),\n main_account=ctx.caller)\n if __player.get() == __computer.get():\n currency.transfer_from(amount=__cost.get(), to=ctx.caller,\n main_account=__owner.get())\n return 'Draw'\n elif __computer.set(random.randint(1, 3))(__player.get() == __movement[\n 'rock'] and __computer.get() == __movement['scissors']\n ) or __player.get() == __movement['paper'] and __computer.get(\n ) == __movement['rock'] or __player.get() == __movement['scissors'\n ] and __computer.get() == __movement['paper']:\n currency.transfer_from(amount=__prize.get(), to=ctx.caller,\n main_account=__owner.get())\n __winner.set(ctx.caller)\n return (\n f'You won! Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n else:\n __computer.set(random.randint(1, 3))\n __winner.set(__owner.get())\n return (\n f'You lost, Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n\n\n@__export('con_pruebas8')\ndef change_cost(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __cost.set(amount)\n\n\n@__export('con_pruebas8')\ndef change_price(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __prize.set(amount)\n" + }, + { + "key": "con_pruebas8.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas8.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 21, + 52, + 22, + 0 + ] + } + }, + { + "key": "con_pruebas8.computer", + "value": 1 + }, + { + "key": "con_pruebas8.cost", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_pruebas8.movement:paper", + "value": 2 + }, + { + "key": "con_pruebas8.movement:rock", + "value": 1 + }, + { + "key": "con_pruebas8.movement:scissors", + "value": 3 + }, + { + "key": "con_pruebas8.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas8.player", + "value": 1 + }, + { + "key": "con_pruebas8.prize", + "value": { + "__fixed__": "2" + } + }, + { + "key": "con_pruebas9.__code__", + "value": "random.seed()\nimport currency\n__movement = Hash(default_value=0, contract='con_pruebas9', name='movement')\n__winner = Variable(contract='con_pruebas9', name='winner')\n__owner = Variable(contract='con_pruebas9', name='owner')\n__player = Variable(contract='con_pruebas9', name='player')\n__computer = Variable(contract='con_pruebas9', name='computer')\n__prize = Variable(contract='con_pruebas9', name='prize')\n__cost = Variable(contract='con_pruebas9', name='cost')\n\n\ndef ____():\n __movement['rock'] = 1\n __movement['paper'] = 2\n __movement['scissors'] = 3\n __player.set(__movement['rock'])\n __computer.set(__movement['rock'])\n __owner.set(ctx.caller)\n __prize.set(decimal('2.0'))\n __cost.set(decimal('1.0'))\n\n\ndef __move_to_text(move: int) ->str:\n if move == 1:\n return 'rock'\n elif move == 2:\n return 'paper'\n elif move == 3:\n return 'scissors'\n else:\n return 'Invalid move'\n\n\n@__export('con_pruebas9')\ndef Play(move: int):\n assert move < 4, 'Invalid move!'\n assert move > 0, 'Invalid move!'\n __player.set(move)\n computadora.set(random.randint(1, 3))\n currency.transfer_from(amount=__cost.get(), to=__owner.get(),\n main_account=ctx.caller)\n if __player.get() == __computer.get():\n currency.transfer_from(amount=__cost.get(), to=ctx.caller,\n main_account=__owner.get())\n return 'Draw'\n elif __player.get() == __movement['rock'] and __computer.get(\n ) == __movement['scissors'] or __player.get() == __movement['paper'\n ] and __computer.get() == __movement['rock'] or __player.get(\n ) == __movement['scissors'] and __computer.get() == __movement['paper'\n ]:\n currency.transfer_from(amount=__prize.get(), to=ctx.caller,\n main_account=__owner.get())\n __winner.set(ctx.caller)\n return (\n f'You won! Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n else:\n __computer.set(random.randint(1, 3))\n __winner.set(__owner.get())\n return (\n f'You lost, Your movement was {__move_to_text(__player.get())} and the computer was {__move_to_text(__computer.get())}'\n )\n\n\n@__export('con_pruebas9')\ndef change_cost(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __cost.set(amount)\n\n\n@__export('con_pruebas9')\ndef change_price(amount: int):\n assert __owner.get() == ctx.caller, 'Only owner can change!'\n __prize.set(amount)\n" + }, + { + "key": "con_pruebas9.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas9.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 2, + 21, + 56, + 16, + 0 + ] + } + }, + { + "key": "con_pruebas9.computer", + "value": 1 + }, + { + "key": "con_pruebas9.cost", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_pruebas9.movement:paper", + "value": 2 + }, + { + "key": "con_pruebas9.movement:rock", + "value": 1 + }, + { + "key": "con_pruebas9.movement:scissors", + "value": 3 + }, + { + "key": "con_pruebas9.owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_pruebas9.player", + "value": 1 + }, + { + "key": "con_pruebas9.prize", + "value": { + "__fixed__": "2" + } + }, + { + "key": "con_s1.__code__", + "value": "random.seed()\n__game = Hash(contract='con_s1', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_s1', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_s1', name='bets')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData', 'Red', 'price'] = 10\n __game['turtleData', 'Red', 'probability'] = decimal('0.25')\n __game['turtleData', 'Green', 'price'] = 20\n __game['turtleData', 'Green', 'probability'] = decimal('0.2')\n __game['turtleData', 'Blue', 'price'] = 15\n __game['turtleData', 'Blue', 'probability'] = decimal('0.25')\n __game['turtleData', 'Yellow', 'price'] = 5\n __game['turtleData', 'Yellow', 'probability'] = decimal('0.15')\n __game['turtleData', 'Purple', 'price'] = 50\n __game['turtleData', 'Purple', 'probability'] = decimal('0.15')\n\n\n@__export('con_s1')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert __game['turtleData', turtle_name, 'price'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData', turtle_name, 'price']\n assert amount > 0, 'Bet amount must be greater than zero'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n __bets[turtle_name] += amount\n\n\n@__export('con_s1')\ndef start_race():\n racing_turtles = []\n probabilities = []\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __turtleOwners[turtle_name] is not None:\n racing_turtles.append(turtle_name)\n probabilities.append(__game['turtleData', turtle_name,\n 'probability'])\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n cumulative_probabilities = []\n cumulative_sum = 0\n for probability in probabilities:\n cumulative_sum += probability\n cumulative_probabilities.append(cumulative_sum)\n assert cumulative_sum == 1, 'Probabilities must sum to 1'\n random_number = random.randint(0, 100) / decimal('100.0')\n winning_turtle = None\n index = 0\n for cumulative_probability in cumulative_probabilities:\n if random_number <= cumulative_probability:\n winning_turtle = racing_turtles[index]\n break\n index += 1\n if winning_turtle is None:\n winning_turtle = racing_turtles[-1]\n total_bet_pool = 0\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __bets[turtle_name] > 0:\n total_bet_pool += __bets[turtle_name]\n winnings = total_bet_pool * (1 - __game['commission'])\n winner = __turtleOwners[winning_turtle]\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=winner)\n __game['totalRaces'] += 1\n __bets.clear()\n __turtleOwners.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_s1')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_s1')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_s1.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s1.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 3, + 35, + 7, + 0 + ] + } + }, + { + "key": "con_s1.bets:Green", + "value": 20 + }, + { + "key": "con_s1.bets:Red", + "value": 10 + }, + { + "key": "con_s1.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_s1.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s1.game:totalRaces", + "value": 0 + }, + { + "key": "con_s1.game:turtleData:Blue:price", + "value": 15 + }, + { + "key": "con_s1.game:turtleData:Blue:probability", + "value": { + "__fixed__": "0.25" + } + }, + { + "key": "con_s1.game:turtleData:Green:price", + "value": 20 + }, + { + "key": "con_s1.game:turtleData:Green:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_s1.game:turtleData:Purple:price", + "value": 50 + }, + { + "key": "con_s1.game:turtleData:Purple:probability", + "value": { + "__fixed__": "0.15" + } + }, + { + "key": "con_s1.game:turtleData:Red:price", + "value": 10 + }, + { + "key": "con_s1.game:turtleData:Red:probability", + "value": { + "__fixed__": "0.25" + } + }, + { + "key": "con_s1.game:turtleData:Yellow:price", + "value": 5 + }, + { + "key": "con_s1.game:turtleData:Yellow:probability", + "value": { + "__fixed__": "0.15" + } + }, + { + "key": "con_s1.turtleOwners:Green", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s1.turtleOwners:Red", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s2.__code__", + "value": "random.seed()\n__game = Hash(contract='con_s2', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_s2', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_s2', name='bets')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData', 'Red', 'price'] = 1\n __game['turtleData', 'Red', 'probability'] = decimal('0.25')\n __game['turtleData', 'Green', 'price'] = 1\n __game['turtleData', 'Green', 'probability'] = decimal('0.2')\n __game['turtleData', 'Blue', 'price'] = 1\n __game['turtleData', 'Blue', 'probability'] = decimal('0.25')\n __game['turtleData', 'Yellow', 'price'] = 1\n __game['turtleData', 'Yellow', 'probability'] = decimal('0.15')\n __game['turtleData', 'Purple', 'price'] = 1\n __game['turtleData', 'Purple', 'probability'] = decimal('0.15')\n\n\n@__export('con_s2')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert __game['turtleData', turtle_name, 'price'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData', turtle_name, 'price']\n assert amount > 0, 'Bet amount must be greater than zero'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n __bets[turtle_name] += amount\n\n\n@__export('con_s2')\ndef start_race():\n racing_turtles = []\n probabilities = []\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __turtleOwners[turtle_name] is not None:\n racing_turtles.append(turtle_name)\n probabilities.append(__game['turtleData', turtle_name,\n 'probability'])\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n cumulative_probabilities = []\n cumulative_sum = 0\n for probability in probabilities:\n cumulative_sum += probability\n cumulative_probabilities.append(cumulative_sum)\n random_number = random.randint(0, 100) / decimal('100.0')\n winning_turtle = None\n index = 0\n for cumulative_probability in cumulative_probabilities:\n if random_number <= cumulative_probability:\n winning_turtle = racing_turtles[index]\n break\n index += 1\n if winning_turtle is None:\n winning_turtle = racing_turtles[-1]\n total_bet_pool = 0\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __bets[turtle_name] > 0:\n total_bet_pool += __bets[turtle_name]\n winnings = total_bet_pool * (1 - __game['commission'])\n winner = __turtleOwners[winning_turtle]\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=winner)\n __game['totalRaces'] += 1\n __bets.clear()\n __turtleOwners.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_s2')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_s2')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_s2.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s2.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 3, + 39, + 27, + 0 + ] + } + }, + { + "key": "con_s2.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_s2.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s2.game:totalRaces", + "value": 2 + }, + { + "key": "con_s2.game:turtleData:Blue:price", + "value": 1 + }, + { + "key": "con_s2.game:turtleData:Blue:probability", + "value": { + "__fixed__": "0.25" + } + }, + { + "key": "con_s2.game:turtleData:Green:price", + "value": 1 + }, + { + "key": "con_s2.game:turtleData:Green:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_s2.game:turtleData:Purple:price", + "value": 1 + }, + { + "key": "con_s2.game:turtleData:Purple:probability", + "value": { + "__fixed__": "0.15" + } + }, + { + "key": "con_s2.game:turtleData:Red:price", + "value": 1 + }, + { + "key": "con_s2.game:turtleData:Red:probability", + "value": { + "__fixed__": "0.25" + } + }, + { + "key": "con_s2.game:turtleData:Yellow:price", + "value": 1 + }, + { + "key": "con_s2.game:turtleData:Yellow:probability", + "value": { + "__fixed__": "0.15" + } + }, + { + "key": "con_s3.__code__", + "value": "random.seed()\n__game = Hash(contract='con_s3', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_s3', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_s3', name='bets')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData', 'Red', 'price'] = 1\n __game['turtleData', 'Red', 'probability'] = decimal('0.2')\n __game['turtleData', 'Green', 'price'] = 1\n __game['turtleData', 'Green', 'probability'] = decimal('0.3')\n __game['turtleData', 'Blue', 'price'] = 1\n __game['turtleData', 'Blue', 'probability'] = decimal('0.2')\n __game['turtleData', 'Yellow', 'price'] = 1\n __game['turtleData', 'Yellow', 'probability'] = decimal('0.1')\n __game['turtleData', 'Purple', 'price'] = 1\n __game['turtleData', 'Purple', 'probability'] = decimal('0.2')\n\n\n@__export('con_s3')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert __game['turtleData', turtle_name, 'price'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData', turtle_name, 'price']\n assert amount > 0, 'Bet amount must be greater than zero'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n __bets[turtle_name] += amount\n\n\n@__export('con_s3')\ndef start_race():\n weighted_turtle_list = []\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __turtleOwners[turtle_name] is not None:\n probability = __game['turtleData', turtle_name, 'probability']\n repetitions = int(probability * 10)\n weighted_turtle_list.extend([turtle_name] * repetitions)\n assert len(weighted_turtle_list) > 0, 'No turtles available to race'\n assert len(set(__turtleOwners.values())\n ) >= 2, 'At least two turtles must have different owners'\n winning_turtle = random.choice(weighted_turtle_list)\n total_bet_pool = 0\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __bets[turtle_name] > 0:\n total_bet_pool += __bets[turtle_name]\n winnings = total_bet_pool * (1 - __game['commission'])\n winner = __turtleOwners[winning_turtle]\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=winner)\n __game['totalRaces'] += 1\n __bets.clear()\n __turtleOwners.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_s3')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_s3')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_s3.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s3.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 3, + 43, + 5, + 0 + ] + } + }, + { + "key": "con_s3.bets:Purple", + "value": 1 + }, + { + "key": "con_s3.bets:Yellow", + "value": 1 + }, + { + "key": "con_s3.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_s3.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s3.game:totalRaces", + "value": 0 + }, + { + "key": "con_s3.game:turtleData:Blue:price", + "value": 1 + }, + { + "key": "con_s3.game:turtleData:Blue:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_s3.game:turtleData:Green:price", + "value": 1 + }, + { + "key": "con_s3.game:turtleData:Green:probability", + "value": { + "__fixed__": "0.3" + } + }, + { + "key": "con_s3.game:turtleData:Purple:price", + "value": 1 + }, + { + "key": "con_s3.game:turtleData:Purple:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_s3.game:turtleData:Red:price", + "value": 1 + }, + { + "key": "con_s3.game:turtleData:Red:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_s3.game:turtleData:Yellow:price", + "value": 1 + }, + { + "key": "con_s3.game:turtleData:Yellow:probability", + "value": { + "__fixed__": "0.1" + } + }, + { + "key": "con_s3.turtleOwners:Purple", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s3.turtleOwners:Yellow", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s4.__code__", + "value": "random.seed()\n__game = Hash(contract='con_s4', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_s4', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_s4', name='bets')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData', 'Red', 'price'] = 1\n __game['turtleData', 'Red', 'probability'] = decimal('0.2')\n __game['turtleData', 'Green', 'price'] = 1\n __game['turtleData', 'Green', 'probability'] = decimal('0.3')\n __game['turtleData', 'Blue', 'price'] = 1\n __game['turtleData', 'Blue', 'probability'] = decimal('0.2')\n __game['turtleData', 'Yellow', 'price'] = 1\n __game['turtleData', 'Yellow', 'probability'] = decimal('0.1')\n __game['turtleData', 'Purple', 'price'] = 1\n __game['turtleData', 'Purple', 'probability'] = decimal('0.2')\n\n\n@__export('con_s4')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert __game['turtleData', turtle_name, 'price'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData', turtle_name, 'price']\n assert amount > 0, 'Bet amount must be greater than zero'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n __bets[turtle_name] += amount\n\n\n@__export('con_s4')\ndef start_race():\n weighted_turtle_list = []\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __turtleOwners[turtle_name] is not None:\n probability = __game['turtleData', turtle_name, 'probability']\n repetitions = int(probability * 10)\n weighted_turtle_list.extend([turtle_name] * repetitions)\n assert len(weighted_turtle_list) > 0, 'No turtles available to race'\n winning_turtle = random.choice(weighted_turtle_list)\n total_bet_pool = 0\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __bets[turtle_name] > 0:\n total_bet_pool += __bets[turtle_name]\n winnings = total_bet_pool * (1 - __game['commission'])\n winner = __turtleOwners[winning_turtle]\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=winner)\n __game['totalRaces'] += 1\n __bets.clear()\n __turtleOwners.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_s4')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_s4')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_s4.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s4.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 3, + 54, + 48, + 0 + ] + } + }, + { + "key": "con_s4.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_s4.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s4.game:totalRaces", + "value": 2 + }, + { + "key": "con_s4.game:turtleData:Blue:price", + "value": 1 + }, + { + "key": "con_s4.game:turtleData:Blue:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_s4.game:turtleData:Green:price", + "value": 1 + }, + { + "key": "con_s4.game:turtleData:Green:probability", + "value": { + "__fixed__": "0.3" + } + }, + { + "key": "con_s4.game:turtleData:Purple:price", + "value": 1 + }, + { + "key": "con_s4.game:turtleData:Purple:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_s4.game:turtleData:Red:price", + "value": 1 + }, + { + "key": "con_s4.game:turtleData:Red:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_s4.game:turtleData:Yellow:price", + "value": 1 + }, + { + "key": "con_s4.game:turtleData:Yellow:probability", + "value": { + "__fixed__": "0.1" + } + }, + { + "key": "con_s5.__code__", + "value": "random.seed()\n__game = Hash(contract='con_s5', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_s5', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_s5', name='bets')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData', 'Red', 'price'] = 1\n __game['turtleData', 'Red', 'probability'] = decimal('0.2')\n __game['turtleData', 'Green', 'price'] = 1\n __game['turtleData', 'Green', 'probability'] = decimal('0.3')\n __game['turtleData', 'Blue', 'price'] = 1\n __game['turtleData', 'Blue', 'probability'] = decimal('0.2')\n __game['turtleData', 'Yellow', 'price'] = 1\n __game['turtleData', 'Yellow', 'probability'] = decimal('0.1')\n __game['turtleData', 'Purple', 'price'] = 1\n __game['turtleData', 'Purple', 'probability'] = decimal('0.2')\n\n\n@__export('con_s5')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert __game['turtleData', turtle_name, 'price'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData', turtle_name, 'price']\n assert amount > 0, 'Bet amount must be greater than zero'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n __bets[turtle_name] += amount\n\n\n@__export('con_s5')\ndef start_race():\n weighted_turtle_list = []\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __turtleOwners[turtle_name] is not None:\n probability = __game['turtleData', turtle_name, 'probability']\n repetitions = int(probability * 10)\n weighted_turtle_list.extend([turtle_name] * repetitions)\n assert len(weighted_turtle_list) > 1, 'We need more turtles to race'\n winning_turtle = random.choice(weighted_turtle_list)\n total_bet_pool = 0\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __bets[turtle_name] > 0:\n total_bet_pool += __bets[turtle_name]\n winnings = total_bet_pool * (1 - __game['commission'])\n winner = __turtleOwners[winning_turtle]\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=winner)\n __game['totalRaces'] += 1\n __bets.clear()\n __turtleOwners.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_s5')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_s5')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_s5.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s5.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 4, + 6, + 39, + 0 + ] + } + }, + { + "key": "con_s5.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_s5.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_s5.game:totalRaces", + "value": 1 + }, + { + "key": "con_s5.game:turtleData:Blue:price", + "value": 1 + }, + { + "key": "con_s5.game:turtleData:Blue:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_s5.game:turtleData:Green:price", + "value": 1 + }, + { + "key": "con_s5.game:turtleData:Green:probability", + "value": { + "__fixed__": "0.3" + } + }, + { + "key": "con_s5.game:turtleData:Purple:price", + "value": 1 + }, + { + "key": "con_s5.game:turtleData:Purple:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_s5.game:turtleData:Red:price", + "value": 1 + }, + { + "key": "con_s5.game:turtleData:Red:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_s5.game:turtleData:Yellow:price", + "value": 1 + }, + { + "key": "con_s5.game:turtleData:Yellow:probability", + "value": { + "__fixed__": "0.1" + } + }, + { + "key": "con_set_value.__code__", + "value": "__test = Variable(t=int, contract='con_set_value', name='test')\n\n\n@__export('con_set_value')\ndef set(value: int):\n __test.set(value)\n\n\ndef __get():\n return __test.get()\n" + }, + { + "key": "con_set_value.__developer__", + "value": "0813b6d7d7507c5f735821c32d06cd8f53e6d29807acb7bc92ab0dfe0417386e" + }, + { + "key": "con_set_value.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 7, + 22, + 37, + 22, + 0 + ] + } + }, + { + "key": "con_set_value.test", + "value": 123 + }, + { + "key": "con_set_value2.__code__", + "value": "__test = Variable(t=str, contract='con_set_value2', name='test')\n\n\n@__export('con_set_value2')\ndef set(value: int):\n __test.set(value)\n\n\ndef __get():\n return __test.get()\n" + }, + { + "key": "con_set_value2.__developer__", + "value": "0813b6d7d7507c5f735821c32d06cd8f53e6d29807acb7bc92ab0dfe0417386e" + }, + { + "key": "con_set_value2.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 7, + 22, + 51, + 30, + 0 + ] + } + }, + { + "key": "con_some_other_token.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token', name=\n 'balances')\n__metadata = Hash(contract='con_some_other_token', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 9, + 36, + 32, + 0 + ] + } + }, + { + "key": "con_some_other_token.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_2ygtob.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_2ygtob',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_2ygtob', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_2ygtob')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_2ygtob')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_2ygtob')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_2ygtob')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_2ygtob.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_2ygtob.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 19, + 0 + ] + } + }, + { + "key": "con_some_other_token_2ygtob.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_2ygtob.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_2ygtob.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_2ygtob.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_4ymc2e.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_4ymc2e',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_4ymc2e', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_4ymc2e')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_4ymc2e')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_4ymc2e')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_4ymc2e')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_4ymc2e.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_4ymc2e.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 11, + 0 + ] + } + }, + { + "key": "con_some_other_token_4ymc2e.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_4ymc2e.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_4ymc2e.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_4ymc2e.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_5qoekn.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_5qoekn',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_5qoekn', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_5qoekn')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_5qoekn')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_5qoekn')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_5qoekn')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_5qoekn.__developer__", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_some_other_token_5qoekn.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 30, + 21, + 11, + 37, + 0 + ] + } + }, + { + "key": "con_some_other_token_5qoekn.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": 1000000 + }, + { + "key": "con_some_other_token_5qoekn.metadata:operator", + "value": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931" + }, + { + "key": "con_some_other_token_5qoekn.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_5qoekn.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_610arp.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_610arp',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_610arp', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_610arp')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_610arp')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_610arp')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_610arp')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_610arp.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_610arp.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 2, + 0 + ] + } + }, + { + "key": "con_some_other_token_610arp.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_610arp.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_610arp.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_610arp.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_69js8i.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_69js8i',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_69js8i', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_69js8i')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_69js8i')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_69js8i')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_69js8i')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_69js8i.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_69js8i.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 25, + 0 + ] + } + }, + { + "key": "con_some_other_token_69js8i.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_69js8i.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_69js8i.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_69js8i.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_6yzj.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_6yzj',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_6yzj', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_6yzj')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_6yzj')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_6yzj')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_6yzj')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_6yzj.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_6yzj.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 39, + 0 + ] + } + }, + { + "key": "con_some_other_token_6yzj.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_6yzj.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_6yzj.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_6yzj.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_96flqb.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_96flqb',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_96flqb', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_96flqb')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_96flqb')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_96flqb')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_96flqb')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_96flqb.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_96flqb.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 22, + 0 + ] + } + }, + { + "key": "con_some_other_token_96flqb.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_96flqb.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_96flqb.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_96flqb.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_bavd6.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_bavd6',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_bavd6', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_bavd6')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_bavd6')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_bavd6')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_bavd6')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_bavd6.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_bavd6.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 34, + 0 + ] + } + }, + { + "key": "con_some_other_token_bavd6.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_bavd6.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_bavd6.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_bavd6.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_cmo2c.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_cmo2c',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_cmo2c', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_cmo2c')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_cmo2c')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_cmo2c')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_cmo2c')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_cmo2c.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_cmo2c.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 8, + 0 + ] + } + }, + { + "key": "con_some_other_token_cmo2c.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_cmo2c.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_cmo2c.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_cmo2c.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_f2h9uu.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_f2h9uu',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_f2h9uu', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_f2h9uu')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_f2h9uu')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_f2h9uu')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_f2h9uu')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_f2h9uu.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_f2h9uu.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 9, + 37, + 1, + 0 + ] + } + }, + { + "key": "con_some_other_token_f2h9uu.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_f2h9uu.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_f2h9uu.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_f2h9uu.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_gjilqp.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_gjilqp',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_gjilqp', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_gjilqp')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_gjilqp')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_gjilqp')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_gjilqp')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_gjilqp.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_gjilqp.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 5, + 0 + ] + } + }, + { + "key": "con_some_other_token_gjilqp.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_gjilqp.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_gjilqp.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_gjilqp.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_hdpbly.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_hdpbly',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_hdpbly', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_hdpbly')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_hdpbly')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_hdpbly')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_hdpbly')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_hdpbly.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_hdpbly.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 58, + 56, + 0 + ] + } + }, + { + "key": "con_some_other_token_hdpbly.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_hdpbly.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_hdpbly.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_hdpbly.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_ib3z2x.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_ib3z2x',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_ib3z2x', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_ib3z2x')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_ib3z2x')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_ib3z2x')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_ib3z2x')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_ib3z2x.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_ib3z2x.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 26, + 0 + ] + } + }, + { + "key": "con_some_other_token_ib3z2x.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_ib3z2x.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_ib3z2x.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_ib3z2x.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_pu2jf.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_pu2jf',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_pu2jf', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_pu2jf')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_pu2jf')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_pu2jf')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_pu2jf')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_pu2jf.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_pu2jf.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 31, + 0 + ] + } + }, + { + "key": "con_some_other_token_pu2jf.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_pu2jf.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_pu2jf.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_pu2jf.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_qy7dao.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_qy7dao',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_qy7dao', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_qy7dao')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_qy7dao')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_qy7dao')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_qy7dao')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_qy7dao.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_qy7dao.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 42, + 0 + ] + } + }, + { + "key": "con_some_other_token_qy7dao.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_qy7dao.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_qy7dao.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_qy7dao.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_sqszgo.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_sqszgo',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_sqszgo', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_sqszgo')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_sqszgo')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_sqszgo')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_sqszgo')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_sqszgo.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_sqszgo.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 18, + 0 + ] + } + }, + { + "key": "con_some_other_token_sqszgo.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_sqszgo.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_sqszgo.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_sqszgo.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_u0ib9q.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_u0ib9q',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_u0ib9q', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_u0ib9q')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_u0ib9q')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_u0ib9q')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_u0ib9q')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_u0ib9q.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_u0ib9q.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 9, + 0 + ] + } + }, + { + "key": "con_some_other_token_u0ib9q.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_u0ib9q.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_u0ib9q.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_u0ib9q.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_vfmsa9.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_vfmsa9',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_vfmsa9', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_vfmsa9')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_vfmsa9')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_vfmsa9')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_vfmsa9')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_vfmsa9.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_vfmsa9.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 37, + 0 + ] + } + }, + { + "key": "con_some_other_token_vfmsa9.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_vfmsa9.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_vfmsa9.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_vfmsa9.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_x08jho.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_x08jho',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_x08jho', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_x08jho')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_x08jho')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_x08jho')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_x08jho')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_x08jho.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_x08jho.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 15, + 0 + ] + } + }, + { + "key": "con_some_other_token_x08jho.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_x08jho.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_x08jho.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_x08jho.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_yc6c5w.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_yc6c5w',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_yc6c5w', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_yc6c5w')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_yc6c5w')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_yc6c5w')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_yc6c5w')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_yc6c5w.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_yc6c5w.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 0, + 0 + ] + } + }, + { + "key": "con_some_other_token_yc6c5w.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_yc6c5w.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_yc6c5w.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_yc6c5w.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_some_other_token_yyvav.__code__", + "value": "__balances = Hash(default_value=0, contract='con_some_other_token_yyvav',\n name='balances')\n__metadata = Hash(contract='con_some_other_token_yyvav', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'Rocketswap Test Token'\n __metadata['token_symbol'] = 'RSWP'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_some_other_token_yyvav')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_some_other_token_yyvav')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('con_some_other_token_yyvav')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n\n\n@__export('con_some_other_token_yyvav')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_some_other_token_yyvav.__developer__", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_yyvav.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 26, + 12, + 59, + 29, + 0 + ] + } + }, + { + "key": "con_some_other_token_yyvav.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": 1000000 + }, + { + "key": "con_some_other_token_yyvav.metadata:operator", + "value": "4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62" + }, + { + "key": "con_some_other_token_yyvav.metadata:token_name", + "value": "Rocketswap Test Token" + }, + { + "key": "con_some_other_token_yyvav.metadata:token_symbol", + "value": "RSWP" + }, + { + "key": "con_stake02.CurrentEpochIndex", + "value": 0 + }, + { + "key": "con_stake02.DevRewardPct", + "value": { + "__fixed__": "0.1" + } + }, + { + "key": "con_stake02.DevRewardWallet", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stake02.EmissionRatePerHour", + "value": 3000 + }, + { + "key": "con_stake02.EndTime", + "value": { + "__time__": [ + 2022, + 3, + 4, + 0, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_stake02.EpochMaxRatioIncrease", + "value": { + "__fixed__": "0.5" + } + }, + { + "key": "con_stake02.EpochMinTime", + "value": 0 + }, + { + "key": "con_stake02.Epochs:0", + "value": { + "time": { + "__time__": [ + 2025, + 1, + 9, + 11, + 57, + 38, + 0 + ] + }, + "staked": 0, + "amt_per_hr": 3000 + } + }, + { + "key": "con_stake02.OpenForBusiness", + "value": true + }, + { + "key": "con_stake02.Owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stake02.StakedBalance", + "value": 0 + }, + { + "key": "con_stake02.StartTime", + "value": { + "__time__": [ + 2018, + 1, + 1, + 0, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_stake02.WithdrawnBalance", + "value": 0 + }, + { + "key": "con_stake02.__code__", + "value": "import con_stk2\nimport con_stk3\nSTAKING_TOKEN = con_stk2\nYIELD_TOKEN = con_stk3\n__Owner = Variable(contract='con_stake02', name='Owner')\n__DevRewardWallet = Variable(contract='con_stake02', name='DevRewardWallet')\n__EmissionRatePerHour = Variable(contract='con_stake02', name=\n 'EmissionRatePerHour')\n__DevRewardPct = Variable(contract='con_stake02', name='DevRewardPct')\n__StartTime = Variable(contract='con_stake02', name='StartTime')\n__EndTime = Variable(contract='con_stake02', name='EndTime')\n__OpenForBusiness = Variable(contract='con_stake02', name='OpenForBusiness')\n__Deposits = Hash(default_value=False, contract='con_stake02', name='Deposits')\n__Withdrawals = Hash(default_value=0, contract='con_stake02', name=\n 'Withdrawals')\n__CurrentEpochIndex = Variable(contract='con_stake02', name='CurrentEpochIndex'\n )\n__Epochs = Hash(default_value=False, contract='con_stake02', name='Epochs')\n__StakedBalance = Variable(contract='con_stake02', name='StakedBalance')\n__WithdrawnBalance = Variable(contract='con_stake02', name='WithdrawnBalance')\n__EpochMinTime = Variable(contract='con_stake02', name='EpochMinTime')\n__EpochMaxRatioIncrease = Variable(contract='con_stake02', name=\n 'EpochMaxRatioIncrease')\n__meta = Hash(default_value=False, contract='con_stake02', name='meta')\n__decimal_converter_var = Variable(contract='con_stake02', name=\n 'decimal_converter_var')\n\n\ndef ____():\n __Owner.set(ctx.caller)\n __DevRewardWallet.set(ctx.caller)\n __CurrentEpochIndex.set(0)\n __StakedBalance.set(0)\n __WithdrawnBalance.set(0)\n __EpochMaxRatioIncrease.set(1 / 2)\n __EpochMinTime.set(0)\n __Epochs[0] = {'time': now, 'staked': 0, 'amt_per_hr': 3000}\n __meta['version'] = '0.0.1'\n __meta['type'] = 'staking_smart_epoch'\n __meta['STAKING_TOKEN'] = 'con_stk2'\n __meta['YIELD_TOKEN'] = 'con_stk3'\n __EmissionRatePerHour.set(3000)\n __DevRewardPct.set(1 / 10)\n __StartTime.set(datetime.datetime(year=2018, month=1, day=1, hour=0))\n __EndTime.set(datetime.datetime(year=2022, month=3, day=4, hour=0))\n __OpenForBusiness.set(True)\n\n\n@__export('con_stake02')\ndef addStakingTokens(amount: float):\n assert __OpenForBusiness.get(\n ) == True, 'This staking pool is not open right now.'\n assert amount > 0, 'You cannot stake a negative balance.'\n user = ctx.caller\n STAKING_TOKEN.transfer_from(amount=amount, to=ctx.this, main_account=user)\n staked = __StakedBalance.get()\n new_staked_amount = staked + amount\n __StakedBalance.set(new_staked_amount)\n epoch_index = decideIncrementEpoch(new_staked_amount=new_staked_amount)\n if __Deposits[user] is False:\n __Deposits[user] = []\n deposits = __Deposits[user]\n deposits.append({'starting_epoch': epoch_index, 'time': now, 'amount':\n amount})\n __Deposits[user] = deposits\n\n\n@__export('con_stake02')\ndef withdrawYield(amount: float):\n assert amount > 0, 'You cannot harvest a negative balance'\n user = ctx.caller\n deposits = __Deposits[user]\n assert deposits is not False, 'You have no deposit to withdraw yield from.'\n withdrawn_yield = __Withdrawals[user]\n harvestable_yield = 0\n for d in deposits:\n harvestable_yield += calculateYield(starting_epoch_index=d[\n 'starting_epoch'], start_time=d['time'], amount=d['amount'])\n harvestable_yield -= withdrawn_yield\n yield_to_harvest = (amount if amount < harvestable_yield else\n harvestable_yield)\n assert yield_to_harvest > 0, 'There is no yield to harvest right now :('\n dev_share = yield_to_harvest * __DevRewardPct.get()\n if dev_share > 0:\n YIELD_TOKEN.transfer(to=__DevRewardWallet.get(), amount=dev_share)\n user_share = yield_to_harvest - dev_share\n YIELD_TOKEN.transfer(to=user, amount=user_share)\n __Withdrawals[user] = withdrawn_yield + yield_to_harvest\n new_withdrawn_amount = __WithdrawnBalance.get() + yield_to_harvest\n __WithdrawnBalance.set(new_withdrawn_amount)\n\n\n@__export('con_stake02')\ndef withdrawTokensAndYield():\n user = ctx.caller\n deposits = __Deposits[user]\n assert deposits is not False, 'You have no deposit to withdraw'\n withdrawn_yield = __Withdrawals[user]\n stake_to_return = 0\n yield_to_harvest = 0\n for d in deposits:\n yield_to_harvest += calculateYield(starting_epoch_index=d[\n 'starting_epoch'], start_time=d['time'], amount=d['amount'])\n stake_to_return += d['amount']\n STAKING_TOKEN.transfer(to=user, amount=stake_to_return)\n yield_to_harvest -= withdrawn_yield\n if yield_to_harvest > 0:\n dev_share = yield_to_harvest * __DevRewardPct.get()\n if dev_share > 0:\n YIELD_TOKEN.transfer(to=__DevRewardWallet.get(), amount=dev_share)\n user_share = yield_to_harvest - dev_share\n YIELD_TOKEN.transfer(to=user, amount=user_share)\n __Deposits[user] = False\n __Withdrawals[user] = 0\n new_staked_amount = __StakedBalance.get() - stake_to_return\n __StakedBalance.set(new_staked_amount)\n new_withdrawn_amount = __WithdrawnBalance.get() + yield_to_harvest\n __WithdrawnBalance.set(new_withdrawn_amount)\n" + }, + { + "key": "con_stake02.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stake02.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 11, + 57, + 38, + 0 + ] + } + }, + { + "key": "con_stake02.meta:STAKING_TOKEN", + "value": "con_stk2" + }, + { + "key": "con_stake02.meta:YIELD_TOKEN", + "value": "con_stk3" + }, + { + "key": "con_stake02.meta:type", + "value": "staking_smart_epoch" + }, + { + "key": "con_stake02.meta:version", + "value": "0.0.1" + }, + { + "key": "con_stake05.DevRewardPct", + "value": { + "__fixed__": "0.1" + } + }, + { + "key": "con_stake05.DevRewardWallet", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stake05.EmissionRatePerHour", + "value": 3000 + }, + { + "key": "con_stake05.EndTime", + "value": { + "__time__": [ + 2025, + 1, + 1, + 0, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_stake05.OpenForBusiness", + "value": true + }, + { + "key": "con_stake05.Owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stake05.StakedBalance", + "value": 0 + }, + { + "key": "con_stake05.StartTime", + "value": { + "__time__": [ + 2018, + 1, + 1, + 0, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_stake05.WithdrawnBalance", + "value": 0 + }, + { + "key": "con_stake05.__code__", + "value": "import con_stk2\nimport con_stk3\nSTAKING_TOKEN = con_stk2\nYIELD_TOKEN = con_stk3\n__Owner = Variable(contract='con_stake05', name='Owner')\n__DevRewardWallet = Variable(contract='con_stake05', name='DevRewardWallet')\n__EmissionRatePerHour = Variable(contract='con_stake05', name=\n 'EmissionRatePerHour')\n__DevRewardPct = Variable(contract='con_stake05', name='DevRewardPct')\n__StartTime = Variable(contract='con_stake05', name='StartTime')\n__EndTime = Variable(contract='con_stake05', name='EndTime')\n__OpenForBusiness = Variable(contract='con_stake05', name='OpenForBusiness')\n__Deposits = Hash(default_value=False, contract='con_stake05', name='Deposits')\n__Withdrawals = Hash(default_value=0, contract='con_stake05', name=\n 'Withdrawals')\n__StakedBalance = Variable(contract='con_stake05', name='StakedBalance')\n__WithdrawnBalance = Variable(contract='con_stake05', name='WithdrawnBalance')\n\n\ndef ____():\n __Owner.set(ctx.caller)\n __DevRewardWallet.set(ctx.caller)\n __EmissionRatePerHour.set(3000)\n __DevRewardPct.set(decimal('0.1'))\n __StartTime.set(datetime.datetime(year=2018, month=1, day=1, hour=0))\n __EndTime.set(datetime.datetime(year=2025, month=1, day=1, hour=0))\n __OpenForBusiness.set(True)\n __StakedBalance.set(0)\n __WithdrawnBalance.set(0)\n\n\n@__export('con_stake05')\ndef addStakingTokens(amount: float):\n assert __OpenForBusiness.get(), 'Staking pool is closed.'\n assert amount > 0, 'Amount must be positive.'\n user = ctx.caller\n STAKING_TOKEN.transfer_from(amount=amount, to=ctx.this, main_account=user)\n __Deposits[user] = __Deposits[user] + amount if __Deposits[user\n ] else amount\n __StakedBalance.set(__StakedBalance.get() + amount)\n\n\n@__export('con_stake05')\ndef withdrawYield():\n user = ctx.caller\n deposited = __Deposits[user]\n assert deposited, 'No tokens staked.'\n elapsed_time = (now - __StartTime.get()).total_seconds()\n emission_rate_per_second = __EmissionRatePerHour.get() / 3600\n yield_to_harvest = elapsed_time * emission_rate_per_second * (deposited /\n __StakedBalance.get())\n dev_share = yield_to_harvest * __DevRewardPct.get()\n user_share = yield_to_harvest - dev_share\n YIELD_TOKEN.transfer(to=__DevRewardWallet.get(), amount=dev_share)\n YIELD_TOKEN.transfer(to=user, amount=user_share)\n __Withdrawals[user] = __Withdrawals[user] + yield_to_harvest\n __WithdrawnBalance.set(__WithdrawnBalance.get() + yield_to_harvest)\n\n\n@__export('con_stake05')\ndef withdrawAll():\n user = ctx.caller\n deposited = __Deposits[user]\n assert deposited, 'No tokens staked.'\n withdrawYield()\n STAKING_TOKEN.transfer(to=user, amount=deposited)\n __Deposits[user] = False\n __StakedBalance.set(__StakedBalance.get() - deposited)\n\n\n@__export('con_stake05')\ndef setOwner(new_owner: str):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __Owner.set(new_owner)\n\n\n@__export('con_stake05')\ndef setDevWallet(new_wallet: str):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __DevRewardWallet.set(new_wallet)\n\n\n@__export('con_stake05')\ndef setEmissionRate(new_rate: float):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __EmissionRatePerHour.set(new_rate)\n\n\n@__export('con_stake05')\ndef setDevRewardPct(new_pct: float):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n assert 0 <= new_pct <= 1, 'Percentage must be between 0 and 1.'\n __DevRewardPct.set(new_pct)\n\n\n@__export('con_stake05')\ndef allowStaking(is_open: bool):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __OpenForBusiness.set(is_open)\n" + }, + { + "key": "con_stake05.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stake05.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 12, + 8, + 49, + 0 + ] + } + }, + { + "key": "con_stakeone.__code__", + "value": "__balances = Hash(default_value=0, contract='con_stakeone', name='balances')\n__metadata = Hash(contract='con_stakeone', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'stakeone'\n __metadata['token_symbol'] = 'STK'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_stakeone')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n sender = ctx.caller\n assert __balances[sender] >= amount, 'Not enough CURRENCY to send!'\n __balances[sender] -= amount\n __balances[to] += amount\n\n\n@__export('con_stakeone')\ndef balance_of(account: str):\n return __balances[account]\n\n\n@__export('con_stakeone')\ndef allowance(owner: str, spender: str):\n return __balances[owner, spender]\n\n\n@__export('con_stakeone')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n sender = ctx.caller\n __balances[sender, to] += amount\n return __balances[sender, to]\n\n\n@__export('con_stakeone')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n sender = ctx.caller\n assert __balances[main_account, sender\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, sender], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, sender] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_stakeone.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stakeone.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 10, + 20, + 20, + 54, + 0 + ] + } + }, + { + "key": "con_stakeone.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": { + "__fixed__": "995783.016836365770817173531127729355" + } + }, + { + "key": "con_stakeone.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_addliquidity", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_stakeone.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_multisend1", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_stakeone.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_swap_one", + "value": { + "__fixed__": "4.7E+2" + } + }, + { + "key": "con_stakeone.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_swap_stk", + "value": { + "__fixed__": "4.7E+2" + } + }, + { + "key": "con_stakeone.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_swapstk", + "value": { + "__fixed__": "1E+2" + } + }, + { + "key": "con_stakeone.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_swapstkone", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_stakeone.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_swapstkthree", + "value": { + "__fixed__": "1E+3" + } + }, + { + "key": "con_stakeone.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_swapstktwo", + "value": { + "__fixed__": "1.3E+2" + } + }, + { + "key": "con_stakeone.balances:9246ae743f5408cceb767e7197bcce20e34be55f10c8ba0bf3b52b97a0c4a82e", + "value": 50 + }, + { + "key": "con_stakeone.balances:con_addliquidity", + "value": 200 + }, + { + "key": "con_stakeone.balances:con_swap_one", + "value": { + "__fixed__": "448.575709089898033970432623707148" + } + }, + { + "key": "con_stakeone.balances:con_swap_stk", + "value": { + "__fixed__": "498.407454544331148856036248563497" + } + }, + { + "key": "con_stakeone.balances:con_swapstk", + "value": 400 + }, + { + "key": "con_stakeone.balances:con_swapstkone", + "value": 1000 + }, + { + "key": "con_stakeone.balances:con_swapstkthree", + "value": 1000 + }, + { + "key": "con_stakeone.balances:con_swapstktwo", + "value": 570 + }, + { + "key": "con_stakeone.balances:ddd326fddb5d1677595311f298b744a4e9f415b577ac179a6afbf38483dc0791", + "value": 50 + }, + { + "key": "con_stakeone.metadata:operator", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stakeone.metadata:token_name", + "value": "stakeone" + }, + { + "key": "con_stakeone.metadata:token_symbol", + "value": "STK" + }, + { + "key": "con_staketwo.__code__", + "value": "__balances = Hash(default_value=0, contract='con_staketwo', name='balances')\n__metadata = Hash(contract='con_staketwo', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'staketwo'\n __metadata['token_symbol'] = 'STK2'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_staketwo')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n sender = ctx.caller\n assert __balances[sender] >= amount, 'Not enough CURRENCY to send!'\n __balances[sender] -= amount\n __balances[to] += amount\n\n\n@__export('con_staketwo')\ndef balance_of(account: str):\n return __balances[account]\n\n\n@__export('con_staketwo')\ndef allowance(owner: str, spender: str):\n return __balances[owner, spender]\n\n\n@__export('con_staketwo')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n sender = ctx.caller\n __balances[sender, to] += amount\n return __balances[sender, to]\n\n\n@__export('con_staketwo')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n sender = ctx.caller\n assert __balances[main_account, sender\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, sender], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, sender] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n" + }, + { + "key": "con_staketwo.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staketwo.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 11, + 12, + 43, + 34, + 0 + ] + } + }, + { + "key": "con_staketwo.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": { + "__fixed__": "998607.854230703069377003275429403892" + } + }, + { + "key": "con_staketwo.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_addliquidity", + "value": { + "__fixed__": "2E+2" + } + }, + { + "key": "con_staketwo.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_swap_one", + "value": { + "__fixed__": "4.7E+2" + } + }, + { + "key": "con_staketwo.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_swap_stk", + "value": { + "__fixed__": "4.7E+2" + } + }, + { + "key": "con_staketwo.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_swapstk", + "value": { + "__fixed__": "5E+2" + } + }, + { + "key": "con_staketwo.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_swapstkone", + "value": { + "__fixed__": "5E+2" + } + }, + { + "key": "con_staketwo.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_swapstkthree", + "value": { + "__fixed__": "2E+3" + } + }, + { + "key": "con_staketwo.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_swapstktwo", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "con_staketwo.balances:con_swap_one", + "value": { + "__fixed__": "451.609403842161876545073691758978" + } + }, + { + "key": "con_staketwo.balances:con_swap_stk", + "value": { + "__fixed__": "501.778226491290973938970768621086" + } + }, + { + "key": "con_staketwo.balances:con_swapstktwo", + "value": { + "__fixed__": "438.758138963477772512680110216044" + } + }, + { + "key": "con_staketwo.metadata:operator", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staketwo.metadata:token_name", + "value": "staketwo" + }, + { + "key": "con_staketwo.metadata:token_symbol", + "value": "STK2" + }, + { + "key": "con_staking001.DevRewardPct", + "value": { + "__fixed__": "0.1" + } + }, + { + "key": "con_staking001.DevRewardWallet", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staking001.EmissionRatePerHour", + "value": 3000 + }, + { + "key": "con_staking001.EndTime", + "value": { + "__time__": [ + 2025, + 1, + 1, + 0, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_staking001.OpenForBusiness", + "value": true + }, + { + "key": "con_staking001.Owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staking001.StakedBalance", + "value": 0 + }, + { + "key": "con_staking001.StartTime", + "value": { + "__time__": [ + 2018, + 1, + 1, + 0, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_staking001.WithdrawnBalance", + "value": 0 + }, + { + "key": "con_staking001.__code__", + "value": "import con_stk004\nimport con_stk005\nSTAKING_TOKEN = con_stk004\nYIELD_TOKEN = con_stk005\n__Owner = Variable(contract='con_staking001', name='Owner')\n__DevRewardWallet = Variable(contract='con_staking001', name='DevRewardWallet')\n__EmissionRatePerHour = Variable(contract='con_staking001', name=\n 'EmissionRatePerHour')\n__DevRewardPct = Variable(contract='con_staking001', name='DevRewardPct')\n__StartTime = Variable(contract='con_staking001', name='StartTime')\n__EndTime = Variable(contract='con_staking001', name='EndTime')\n__OpenForBusiness = Variable(contract='con_staking001', name='OpenForBusiness')\n__Deposits = Hash(default_value=False, contract='con_staking001', name=\n 'Deposits')\n__Withdrawals = Hash(default_value=0, contract='con_staking001', name=\n 'Withdrawals')\n__StakedBalance = Variable(contract='con_staking001', name='StakedBalance')\n__WithdrawnBalance = Variable(contract='con_staking001', name=\n 'WithdrawnBalance')\n\n\ndef ____():\n __Owner.set(ctx.caller)\n __DevRewardWallet.set(ctx.caller)\n __EmissionRatePerHour.set(3000)\n __DevRewardPct.set(decimal('0.1'))\n __StartTime.set(datetime.datetime(year=2018, month=1, day=1, hour=0))\n __EndTime.set(datetime.datetime(year=2025, month=1, day=1, hour=0))\n __OpenForBusiness.set(True)\n __StakedBalance.set(0)\n __WithdrawnBalance.set(0)\n\n\n@__export('con_staking001')\ndef addStakingTokens(amount: float):\n assert __OpenForBusiness.get(), 'Staking pool is closed.'\n assert amount > 0, 'Amount must be positive.'\n user = ctx.caller\n approved_amount = STAKING_TOKEN.balance_of((user, ctx.this))\n assert approved_amount >= amount, f'Not enough tokens approved. Please approve at least {amount} tokens for the staking contract using STAKING_TOKEN.approve({amount}, con_staking).'\n STAKING_TOKEN.transfer_from(amount=amount, to=ctx.this, main_account=user)\n __Deposits[user] = __Deposits[user] + amount if __Deposits[user\n ] else amount\n __StakedBalance.set(__StakedBalance.get() + amount)\n\n\n@__export('con_staking001')\ndef withdrawYield():\n user = ctx.caller\n deposited = __Deposits[user]\n assert deposited, 'No tokens staked.'\n elapsed_time = (now - __StartTime.get()).total_seconds()\n emission_rate_per_second = __EmissionRatePerHour.get() / 3600\n yield_to_harvest = elapsed_time * emission_rate_per_second * (deposited /\n __StakedBalance.get())\n dev_share = yield_to_harvest * __DevRewardPct.get()\n user_share = yield_to_harvest - dev_share\n YIELD_TOKEN.transfer(to=__DevRewardWallet.get(), amount=dev_share)\n YIELD_TOKEN.transfer(to=user, amount=user_share)\n __Withdrawals[user] = __Withdrawals[user] + yield_to_harvest\n __WithdrawnBalance.set(__WithdrawnBalance.get() + yield_to_harvest)\n\n\n@__export('con_staking001')\ndef withdrawAll():\n user = ctx.caller\n deposited = __Deposits[user]\n assert deposited, 'No tokens staked.'\n withdrawYield()\n STAKING_TOKEN.transfer(to=user, amount=deposited)\n __Deposits[user] = False\n __StakedBalance.set(__StakedBalance.get() - deposited)\n\n\n@__export('con_staking001')\ndef setOwner(new_owner: str):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __Owner.set(new_owner)\n\n\n@__export('con_staking001')\ndef setDevWallet(new_wallet: str):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __DevRewardWallet.set(new_wallet)\n\n\n@__export('con_staking001')\ndef setEmissionRate(new_rate: float):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __EmissionRatePerHour.set(new_rate)\n\n\n@__export('con_staking001')\ndef setDevRewardPct(new_pct: float):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n assert 0 <= new_pct <= 1, 'Percentage must be between 0 and 1.'\n __DevRewardPct.set(new_pct)\n\n\n@__export('con_staking001')\ndef allowStaking(is_open: bool):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __OpenForBusiness.set(is_open)\n" + }, + { + "key": "con_staking001.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staking001.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 14, + 27, + 29, + 0 + ] + } + }, + { + "key": "con_staking002.DevRewardPct", + "value": { + "__fixed__": "0.1" + } + }, + { + "key": "con_staking002.DevRewardWallet", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staking002.EmissionRatePerHour", + "value": 3000 + }, + { + "key": "con_staking002.EndTime", + "value": { + "__time__": [ + 2025, + 1, + 1, + 0, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_staking002.OpenForBusiness", + "value": true + }, + { + "key": "con_staking002.Owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staking002.StakedBalance", + "value": 0 + }, + { + "key": "con_staking002.StartTime", + "value": { + "__time__": [ + 2018, + 1, + 1, + 0, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_staking002.WithdrawnBalance", + "value": 0 + }, + { + "key": "con_staking002.__code__", + "value": "import con_stk004\nimport con_stk005\nSTAKING_TOKEN = con_stk004\nYIELD_TOKEN = con_stk005\n__Owner = Variable(contract='con_staking002', name='Owner')\n__DevRewardWallet = Variable(contract='con_staking002', name='DevRewardWallet')\n__EmissionRatePerHour = Variable(contract='con_staking002', name=\n 'EmissionRatePerHour')\n__DevRewardPct = Variable(contract='con_staking002', name='DevRewardPct')\n__StartTime = Variable(contract='con_staking002', name='StartTime')\n__EndTime = Variable(contract='con_staking002', name='EndTime')\n__OpenForBusiness = Variable(contract='con_staking002', name='OpenForBusiness')\n__Deposits = Hash(default_value=False, contract='con_staking002', name=\n 'Deposits')\n__Withdrawals = Hash(default_value=0, contract='con_staking002', name=\n 'Withdrawals')\n__StakedBalance = Variable(contract='con_staking002', name='StakedBalance')\n__WithdrawnBalance = Variable(contract='con_staking002', name=\n 'WithdrawnBalance')\n\n\ndef ____():\n __Owner.set(ctx.caller)\n __DevRewardWallet.set(ctx.caller)\n __EmissionRatePerHour.set(3000)\n __DevRewardPct.set(decimal('0.1'))\n __StartTime.set(datetime.datetime(year=2018, month=1, day=1, hour=0))\n __EndTime.set(datetime.datetime(year=2025, month=1, day=1, hour=0))\n __OpenForBusiness.set(True)\n __StakedBalance.set(0)\n __WithdrawnBalance.set(0)\n\n\n@__export('con_staking002')\ndef addStakingTokens(amount: float):\n assert __OpenForBusiness.get(), 'Staking pool is closed.'\n assert amount > 0, 'Amount must be positive.'\n user = ctx.caller\n approved_amount = STAKING_TOKEN.balance_of((user, user))\n assert approved_amount >= amount, f'Not enough tokens approved. Please approve at least {amount} tokens for the staking contract using STAKING_TOKEN.approve({amount}, con_staking).'\n STAKING_TOKEN.transfer_from(amount=amount, to=ctx.this, main_account=user)\n __Deposits[user] = __Deposits[user] + amount if __Deposits[user\n ] else amount\n __StakedBalance.set(__StakedBalance.get() + amount)\n\n\n@__export('con_staking002')\ndef withdrawYield():\n user = ctx.caller\n deposited = __Deposits[user]\n assert deposited, 'No tokens staked.'\n elapsed_time = (now - __StartTime.get()).total_seconds()\n emission_rate_per_second = __EmissionRatePerHour.get() / 3600\n yield_to_harvest = elapsed_time * emission_rate_per_second * (deposited /\n __StakedBalance.get())\n dev_share = yield_to_harvest * __DevRewardPct.get()\n user_share = yield_to_harvest - dev_share\n YIELD_TOKEN.transfer(to=__DevRewardWallet.get(), amount=dev_share)\n YIELD_TOKEN.transfer(to=user, amount=user_share)\n __Withdrawals[user] = __Withdrawals[user] + yield_to_harvest\n __WithdrawnBalance.set(__WithdrawnBalance.get() + yield_to_harvest)\n\n\n@__export('con_staking002')\ndef withdrawAll():\n user = ctx.caller\n deposited = __Deposits[user]\n assert deposited, 'No tokens staked.'\n withdrawYield()\n STAKING_TOKEN.transfer(to=user, amount=deposited)\n __Deposits[user] = False\n __StakedBalance.set(__StakedBalance.get() - deposited)\n\n\n@__export('con_staking002')\ndef setOwner(new_owner: str):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __Owner.set(new_owner)\n\n\n@__export('con_staking002')\ndef setDevWallet(new_wallet: str):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __DevRewardWallet.set(new_wallet)\n\n\n@__export('con_staking002')\ndef setEmissionRate(new_rate: float):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __EmissionRatePerHour.set(new_rate)\n\n\n@__export('con_staking002')\ndef setDevRewardPct(new_pct: float):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n assert 0 <= new_pct <= 1, 'Percentage must be between 0 and 1.'\n __DevRewardPct.set(new_pct)\n\n\n@__export('con_staking002')\ndef allowStaking(is_open: bool):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __OpenForBusiness.set(is_open)\n" + }, + { + "key": "con_staking002.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staking002.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 14, + 52, + 4, + 0 + ] + } + }, + { + "key": "con_staking003.DevRewardPct", + "value": { + "__fixed__": "0.1" + } + }, + { + "key": "con_staking003.DevRewardWallet", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staking003.EmissionRatePerHour", + "value": 3000 + }, + { + "key": "con_staking003.EndTime", + "value": { + "__time__": [ + 2025, + 1, + 1, + 0, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_staking003.OpenForBusiness", + "value": true + }, + { + "key": "con_staking003.Owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staking003.StakedBalance", + "value": 0 + }, + { + "key": "con_staking003.StartTime", + "value": { + "__time__": [ + 2018, + 1, + 1, + 0, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_staking003.WithdrawnBalance", + "value": 0 + }, + { + "key": "con_staking003.__code__", + "value": "import con_stk004\nimport con_stk005\nSTAKING_TOKEN = con_stk004\nYIELD_TOKEN = con_stk005\n__Owner = Variable(contract='con_staking003', name='Owner')\n__DevRewardWallet = Variable(contract='con_staking003', name='DevRewardWallet')\n__EmissionRatePerHour = Variable(contract='con_staking003', name=\n 'EmissionRatePerHour')\n__DevRewardPct = Variable(contract='con_staking003', name='DevRewardPct')\n__StartTime = Variable(contract='con_staking003', name='StartTime')\n__EndTime = Variable(contract='con_staking003', name='EndTime')\n__OpenForBusiness = Variable(contract='con_staking003', name='OpenForBusiness')\n__Deposits = Hash(default_value=False, contract='con_staking003', name=\n 'Deposits')\n__Withdrawals = Hash(default_value=0, contract='con_staking003', name=\n 'Withdrawals')\n__StakedBalance = Variable(contract='con_staking003', name='StakedBalance')\n__WithdrawnBalance = Variable(contract='con_staking003', name=\n 'WithdrawnBalance')\n\n\ndef ____():\n __Owner.set(ctx.caller)\n __DevRewardWallet.set(ctx.caller)\n __EmissionRatePerHour.set(3000)\n __DevRewardPct.set(decimal('0.1'))\n __StartTime.set(datetime.datetime(year=2018, month=1, day=1, hour=0))\n __EndTime.set(datetime.datetime(year=2025, month=1, day=1, hour=0))\n __OpenForBusiness.set(True)\n __StakedBalance.set(0)\n __WithdrawnBalance.set(0)\n\n\n@__export('con_staking003')\ndef addStakingTokens(amount: float):\n assert __OpenForBusiness.get(), 'Staking pool is closed.'\n assert amount > 0, 'Amount must be positive.'\n user = ctx.caller\n STAKING_TOKEN.transfer_from(amount=amount, to=ctx.this, main_account=user)\n __Deposits[user] = __Deposits[user] + amount if __Deposits[user\n ] else amount\n __StakedBalance.set(__StakedBalance.get() + amount)\n\n\n@__export('con_staking003')\ndef withdrawYield():\n user = ctx.caller\n deposited = __Deposits[user]\n assert deposited, 'No tokens staked.'\n elapsed_time = (now - __StartTime.get()).total_seconds()\n emission_rate_per_second = __EmissionRatePerHour.get() / 3600\n yield_to_harvest = elapsed_time * emission_rate_per_second * (deposited /\n __StakedBalance.get())\n dev_share = yield_to_harvest * __DevRewardPct.get()\n user_share = yield_to_harvest - dev_share\n YIELD_TOKEN.transfer(to=__DevRewardWallet.get(), amount=dev_share)\n YIELD_TOKEN.transfer(to=user, amount=user_share)\n __Withdrawals[user] = __Withdrawals[user] + yield_to_harvest\n __WithdrawnBalance.set(__WithdrawnBalance.get() + yield_to_harvest)\n\n\n@__export('con_staking003')\ndef withdrawAll():\n user = ctx.caller\n deposited = __Deposits[user]\n assert deposited, 'No tokens staked.'\n withdrawYield()\n STAKING_TOKEN.transfer(to=user, amount=deposited)\n __Deposits[user] = False\n __StakedBalance.set(__StakedBalance.get() - deposited)\n\n\n@__export('con_staking003')\ndef setOwner(new_owner: str):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __Owner.set(new_owner)\n\n\n@__export('con_staking003')\ndef setDevWallet(new_wallet: str):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __DevRewardWallet.set(new_wallet)\n\n\n@__export('con_staking003')\ndef setEmissionRate(new_rate: float):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __EmissionRatePerHour.set(new_rate)\n\n\n@__export('con_staking003')\ndef setDevRewardPct(new_pct: float):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n assert 0 <= new_pct <= 1, 'Percentage must be between 0 and 1.'\n __DevRewardPct.set(new_pct)\n\n\n@__export('con_staking003')\ndef allowStaking(is_open: bool):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __OpenForBusiness.set(is_open)\n" + }, + { + "key": "con_staking003.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staking003.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 15, + 26, + 8, + 0 + ] + } + }, + { + "key": "con_staking004.DevRewardPct", + "value": { + "__fixed__": "0.1" + } + }, + { + "key": "con_staking004.DevRewardWallet", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staking004.EmissionRatePerHour", + "value": 3000 + }, + { + "key": "con_staking004.EndTime", + "value": { + "__time__": [ + 2025, + 1, + 1, + 0, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_staking004.OpenForBusiness", + "value": true + }, + { + "key": "con_staking004.Owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staking004.StakedBalance", + "value": 0 + }, + { + "key": "con_staking004.StartTime", + "value": { + "__time__": [ + 2018, + 1, + 1, + 0, + 0, + 0, + 0 + ] + } + }, + { + "key": "con_staking004.WithdrawnBalance", + "value": 0 + }, + { + "key": "con_staking004.__code__", + "value": "import con_stk004\nimport con_stk005\nSTAKING_TOKEN = con_stk004\nYIELD_TOKEN = con_stk005\n__Owner = Variable(contract='con_staking004', name='Owner')\n__DevRewardWallet = Variable(contract='con_staking004', name='DevRewardWallet')\n__EmissionRatePerHour = Variable(contract='con_staking004', name=\n 'EmissionRatePerHour')\n__DevRewardPct = Variable(contract='con_staking004', name='DevRewardPct')\n__StartTime = Variable(contract='con_staking004', name='StartTime')\n__EndTime = Variable(contract='con_staking004', name='EndTime')\n__OpenForBusiness = Variable(contract='con_staking004', name='OpenForBusiness')\n__Deposits = Hash(default_value=False, contract='con_staking004', name=\n 'Deposits')\n__Withdrawals = Hash(default_value=0, contract='con_staking004', name=\n 'Withdrawals')\n__StakedBalance = Variable(contract='con_staking004', name='StakedBalance')\n__WithdrawnBalance = Variable(contract='con_staking004', name=\n 'WithdrawnBalance')\n\n\ndef ____():\n __Owner.set(ctx.caller)\n __DevRewardWallet.set(ctx.caller)\n __EmissionRatePerHour.set(3000)\n __DevRewardPct.set(decimal('0.1'))\n __StartTime.set(datetime.datetime(year=2018, month=1, day=1, hour=0))\n __EndTime.set(datetime.datetime(year=2025, month=1, day=1, hour=0))\n __OpenForBusiness.set(True)\n __StakedBalance.set(0)\n __WithdrawnBalance.set(0)\n\n\n@__export('con_staking004')\ndef addStakingTokens(amount: float):\n assert __OpenForBusiness.get(), 'Staking pool is closed.'\n assert amount > 0, 'Amount must be positive.'\n user = ctx.caller\n approved_amount = STAKING_TOKEN.balance_of((user, ctx.this))\n assert approved_amount >= amount, f'Not enough tokens approved. Please approve at least {amount} tokens for the staking contract using STAKING_TOKEN.approve({amount}, con_staking).'\n STAKING_TOKEN.transfer_from(amount=amount, to=ctx.this, main_account=user)\n __Deposits[user] = __Deposits[user] + amount if __Deposits[user\n ] else amount\n __StakedBalance.set(__StakedBalance.get() + amount)\n\n\n@__export('con_staking004')\ndef withdrawYield():\n user = ctx.caller\n deposited = __Deposits[user]\n assert deposited, 'No tokens staked.'\n elapsed_time = (now - __StartTime.get()).total_seconds()\n emission_rate_per_second = __EmissionRatePerHour.get() / 3600\n yield_to_harvest = elapsed_time * emission_rate_per_second * (deposited /\n __StakedBalance.get())\n dev_share = yield_to_harvest * __DevRewardPct.get()\n user_share = yield_to_harvest - dev_share\n YIELD_TOKEN.transfer(to=__DevRewardWallet.get(), amount=dev_share)\n YIELD_TOKEN.transfer(to=user, amount=user_share)\n __Withdrawals[user] = __Withdrawals[user] + yield_to_harvest\n __WithdrawnBalance.set(__WithdrawnBalance.get() + yield_to_harvest)\n\n\n@__export('con_staking004')\ndef withdrawAll():\n user = ctx.caller\n deposited = __Deposits[user]\n assert deposited, 'No tokens staked.'\n withdrawYield()\n STAKING_TOKEN.transfer(to=user, amount=deposited)\n __Deposits[user] = False\n __StakedBalance.set(__StakedBalance.get() - deposited)\n\n\n@__export('con_staking004')\ndef setOwner(new_owner: str):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __Owner.set(new_owner)\n\n\n@__export('con_staking004')\ndef setDevWallet(new_wallet: str):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __DevRewardWallet.set(new_wallet)\n\n\n@__export('con_staking004')\ndef setEmissionRate(new_rate: float):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __EmissionRatePerHour.set(new_rate)\n\n\n@__export('con_staking004')\ndef setDevRewardPct(new_pct: float):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n assert 0 <= new_pct <= 1, 'Percentage must be between 0 and 1.'\n __DevRewardPct.set(new_pct)\n\n\n@__export('con_staking004')\ndef allowStaking(is_open: bool):\n assert ctx.caller == __Owner.get(), 'Only the owner can call this.'\n __OpenForBusiness.set(is_open)\n" + }, + { + "key": "con_staking004.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_staking004.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 15, + 48, + 36, + 0 + ] + } + }, + { + "key": "con_stk001.__code__", + "value": "__balances = Hash(default_value=0, contract='con_stk001', name='balances')\n__approvals = Hash(default_value=0, contract='con_stk001', name='approvals')\n__metadata = Hash(contract='con_stk001', name='metadata')\n\n\ndef __construct():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'stk2'\n __metadata['token_symbol'] = 'Stk'\n __metadata['token_logo_url'] = ''\n __metadata['token_website'] = ''\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_stk001')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_stk001')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_stk001')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot approve negative balances!'\n __approvals[ctx.caller, to] = amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_stk001')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __approvals[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __approvals[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __approvals[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_stk001')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_stk001.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk001.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 13, + 47, + 0, + 0 + ] + } + }, + { + "key": "con_stk003.__code__", + "value": "__balances = Hash(default_value=0, contract='con_stk003', name='balances')\n__approvals = Hash(default_value=0, contract='con_stk003', name='approvals')\n__metadata = Hash(contract='con_stk003', name='metadata')\n\n\ndef __construct():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'stk2'\n __metadata['token_symbol'] = 'Stk'\n __metadata['token_logo_url'] = ''\n __metadata['token_website'] = ''\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_stk003')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_stk003')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_stk003')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot approve negative balances!'\n __approvals[ctx.caller, to] = amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_stk003')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __approvals[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __approvals[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __approvals[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_stk003')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_stk003.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk003.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 13, + 51, + 20, + 0 + ] + } + }, + { + "key": "con_stk004.__code__", + "value": "__balances = Hash(default_value=0, contract='con_stk004', name='balances')\n__approvals = Hash(default_value=0, contract='con_stk004', name='approvals')\n__metadata = Hash(contract='con_stk004', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'stk2'\n __metadata['token_symbol'] = 'Stk'\n __metadata['token_logo_url'] = ''\n __metadata['token_website'] = ''\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_stk004')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_stk004')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_stk004')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot approve negative balances!'\n __approvals[ctx.caller, to] = amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_stk004')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __approvals[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __approvals[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __approvals[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_stk004')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_stk004.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk004.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 13, + 51, + 46, + 0 + ] + } + }, + { + "key": "con_stk004.approvals:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:'con_staking001'", + "value": 1000 + }, + { + "key": "con_stk004.approvals:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": 7900 + }, + { + "key": "con_stk004.approvals:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:5565f2b994c96776c16c796ed38aa63084ea688b492b27a24fc8a80920f4c0ec", + "value": 30000 + }, + { + "key": "con_stk004.approvals:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_multisend1", + "value": { + "__fixed__": "1E+3" + } + }, + { + "key": "con_stk004.approvals:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_stake003", + "value": 10000 + }, + { + "key": "con_stk004.approvals:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_staking001", + "value": 500 + }, + { + "key": "con_stk004.approvals:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_staking002", + "value": 10000 + }, + { + "key": "con_stk004.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": 996895 + }, + { + "key": "con_stk004.balances:5258c7a3faa30087bc513da7621f06f95e238c5cefaeaae1e397833bb8b9b9d6", + "value": 500 + }, + { + "key": "con_stk004.balances:5565f2b994c96776c16c796ed38aa63084ea688b492b27a24fc8a80920f4c0ec", + "value": 1105 + }, + { + "key": "con_stk004.balances:con_staking001", + "value": 500 + }, + { + "key": "con_stk004.balances:con_staking003", + "value": 1000 + }, + { + "key": "con_stk004.metadata:operator", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk004.metadata:token_logo_url", + "value": "" + }, + { + "key": "con_stk004.metadata:token_name", + "value": "stk2" + }, + { + "key": "con_stk004.metadata:token_symbol", + "value": "Stk" + }, + { + "key": "con_stk004.metadata:token_website", + "value": "" + }, + { + "key": "con_stk005.__code__", + "value": "__balances = Hash(default_value=0, contract='con_stk005', name='balances')\n__approvals = Hash(default_value=0, contract='con_stk005', name='approvals')\n__metadata = Hash(contract='con_stk005', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'stk3'\n __metadata['token_symbol'] = 'Stk'\n __metadata['token_logo_url'] = ''\n __metadata['token_website'] = ''\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_stk005')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_stk005')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_stk005')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot approve negative balances!'\n __approvals[ctx.caller, to] = amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_stk005')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __approvals[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __approvals[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __approvals[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_stk005')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_stk005.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk005.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 13, + 55, + 58, + 0 + ] + } + }, + { + "key": "con_stk005.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": 1000000 + }, + { + "key": "con_stk005.metadata:operator", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk005.metadata:token_logo_url", + "value": "" + }, + { + "key": "con_stk005.metadata:token_name", + "value": "stk3" + }, + { + "key": "con_stk005.metadata:token_symbol", + "value": "Stk" + }, + { + "key": "con_stk005.metadata:token_website", + "value": "" + }, + { + "key": "con_stk1.__code__", + "value": "total_supply = 1000000\n\n\n@__export('con_stk1')\ndef get_balance(owner: str) ->int:\n \"\"\"Returns the balance of the owner\"\"\"\n return client.get_variable(f'balance_{owner}')\n\n\n@__export('con_stk1')\ndef transfer(to: str, amount: int):\n \"\"\"Transfers tokens from the caller to another address\"\"\"\n from_address = ctx.caller\n from_balance = client.get_variable(f'balance_{from_address}')\n if from_balance < amount:\n raise Exception('Insufficient balance')\n client.set_variable(f'balance_{from_address}', from_balance - amount)\n to_balance = client.get_variable(f'balance_{to}')\n client.set_variable(f'balance_{to}', to_balance + amount)\n\n\n@__export('con_stk1')\ndef mint(to: str, amount: int):\n \"\"\"Mints new tokens to the specified address\"\"\"\n total_supply\n total_supply += amount\n balance = client.get_variable(f'balance_{to}')\n client.set_variable(f'balance_{to}', balance + amount)\n" + }, + { + "key": "con_stk1.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk1.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 1, + 16, + 29, + 50, + 0 + ] + } + }, + { + "key": "con_stk2.__code__", + "value": "__balances = Hash(default_value=0, contract='con_stk2', name='balances')\n__metadata = Hash(contract='con_stk2', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'stk2'\n __metadata['token_symbol'] = 'Stk'\n __metadata['token_logo_url'] = ''\n __metadata['token_website'] = ''\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_stk2')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_stk2')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_stk2')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_stk2')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_stk2')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_stk2.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk2.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 1, + 16, + 47, + 28, + 0 + ] + } + }, + { + "key": "con_stk2.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": 999987 + }, + { + "key": "con_stk2.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:'con_stake02'", + "value": 1000 + }, + { + "key": "con_stk2.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": 6000 + }, + { + "key": "con_stk2.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:5565f2b994c96776c16c796ed38aa63084ea688b492b27a24fc8a80920f4c0ec", + "value": 20 + }, + { + "key": "con_stk2.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_stake02", + "value": 1000 + }, + { + "key": "con_stk2.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_stake05", + "value": 500 + }, + { + "key": "con_stk2.balances:5565f2b994c96776c16c796ed38aa63084ea688b492b27a24fc8a80920f4c0ec", + "value": 13 + }, + { + "key": "con_stk2.metadata:operator", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk2.metadata:token_logo_url", + "value": "" + }, + { + "key": "con_stk2.metadata:token_name", + "value": "stk2" + }, + { + "key": "con_stk2.metadata:token_symbol", + "value": "Stk" + }, + { + "key": "con_stk2.metadata:token_website", + "value": "" + }, + { + "key": "con_stk3.__code__", + "value": "__balances = Hash(default_value=0, contract='con_stk3', name='balances')\n__metadata = Hash(contract='con_stk3', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000000\n __metadata['token_name'] = 'stk3'\n __metadata['token_symbol'] = 'Stk3'\n __metadata['token_logo_url'] = ''\n __metadata['token_website'] = ''\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_stk3')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_stk3')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_stk3')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_stk3')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_stk3')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_stk3.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk3.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 8, + 16, + 19, + 39, + 0 + ] + } + }, + { + "key": "con_stk3.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": 1000000000 + }, + { + "key": "con_stk3.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": 50000 + }, + { + "key": "con_stk3.metadata:operator", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk3.metadata:token_logo_url", + "value": "" + }, + { + "key": "con_stk3.metadata:token_name", + "value": "stk3" + }, + { + "key": "con_stk3.metadata:token_symbol", + "value": "Stk3" + }, + { + "key": "con_stk3.metadata:token_website", + "value": "" + }, + { + "key": "con_stk5.__code__", + "value": "__balances = Hash(default_value=0, contract='con_stk5', name='balances')\n__approvals = Hash(default_value=0, contract='con_stk5', name='approvals')\n__metadata = Hash(contract='con_stk5', name='metadata')\n\n\ndef __construct():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'stk2'\n __metadata['token_symbol'] = 'Stk'\n __metadata['token_logo_url'] = ''\n __metadata['token_website'] = ''\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_stk5')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_stk5')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_stk5')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot approve negative balances!'\n __approvals[ctx.caller, to] = amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_stk5')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __approvals[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __approvals[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __approvals[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_stk5')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_stk5.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk5.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 13, + 34, + 24, + 0 + ] + } + }, + { + "key": "con_stk5.approvals:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:5565f2b994c96776c16c796ed38aa63084ea688b492b27a24fc8a80920f4c0ec", + "value": 1000 + }, + { + "key": "con_stk6.__code__", + "value": "__balances = Hash(default_value=0, contract='con_stk6', name='balances')\n__approvals = Hash(default_value=0, contract='con_stk6', name='approvals')\n__metadata = Hash(contract='con_stk6', name='metadata')\n\n\ndef __construct():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'stk2'\n __metadata['token_symbol'] = 'Stk'\n __metadata['token_logo_url'] = ''\n __metadata['token_website'] = ''\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_stk6')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_stk6')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_stk6')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot approve negative balances!'\n __approvals[ctx.caller, to] = amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_stk6')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __approvals[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __approvals[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __approvals[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_stk6')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_stk6.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk6.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 13, + 46, + 13, + 0 + ] + } + }, + { + "key": "con_stk7.__code__", + "value": "__balances = Hash(default_value=0, contract='con_stk7', name='balances')\n__metadata = Hash(contract='con_stk7', name='metadata')\n__permits = Hash(contract='con_stk7', name='permits')\n__TransferEvent = LogEvent(event='Transfer', params={'from': {'type': str,\n 'idx': True}, 'to': {'type': str, 'idx': True}, 'amount': {'type': (int,\n float, decimal)}}, contract='con_stk7', name='TransferEvent')\n__ApproveEvent = LogEvent(event='Approve', params={'from': {'type': str,\n 'idx': True}, 'to': {'type': str, 'idx': True}, 'amount': {'type': (int,\n float, decimal)}}, contract='con_stk7', name='ApproveEvent')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'CON STK2'\n __metadata['token_symbol'] = 'CSTK2'\n __metadata['token_logo_url'] = 'https://example.com/token-logo.png'\n __metadata['token_website'] = 'https://example.com'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_stk7')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata.'\n __metadata[key] = value\n\n\n@__export('con_stk7')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances.'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send.'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n __TransferEvent({'from': ctx.caller, 'to': to, 'amount': amount})\n\n\n@__export('con_stk7')\ndef approve(amount: float, to: str):\n assert amount >= 0, 'Cannot approve negative balances.'\n __balances[ctx.caller, to] = amount\n __ApproveEvent({'from': ctx.caller, 'to': to, 'amount': amount})\n\n\n@__export('con_stk7')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances.'\n assert __balances[main_account, ctx.caller\n ] >= amount, f'Not enough coins approved to send. You have {__balances[main_account, ctx.caller]} and are trying to spend {amount}'\n assert __balances[main_account] >= amount, 'Not enough coins to send.'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n __TransferEvent({'from': main_account, 'to': to, 'amount': amount})\n\n\n@__export('con_stk7')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_stk7.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk7.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 8, + 18, + 32, + 36, + 0 + ] + } + }, + { + "key": "con_stk7.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": 1000000 + }, + { + "key": "con_stk7.metadata:operator", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk7.metadata:token_logo_url", + "value": "https://example.com/token-logo.png" + }, + { + "key": "con_stk7.metadata:token_name", + "value": "CON STK2" + }, + { + "key": "con_stk7.metadata:token_symbol", + "value": "CSTK2" + }, + { + "key": "con_stk7.metadata:token_website", + "value": "https://example.com" + }, + { + "key": "con_stk8.__code__", + "value": "__balances = Hash(default_value=0, contract='con_stk8', name='balances')\n__metadata = Hash(contract='con_stk8', name='metadata')\n__permits = Hash(contract='con_stk8', name='permits')\n__TransferEvent = LogEvent(event='Transfer', params={'from': {'type': str,\n 'idx': True}, 'to': {'type': str, 'idx': True}, 'amount': {'type': (int,\n float, decimal)}}, contract='con_stk8', name='TransferEvent')\n__ApproveEvent = LogEvent(event='Approve', params={'from': {'type': str,\n 'idx': True}, 'to': {'type': str, 'idx': True}, 'amount': {'type': (int,\n float, decimal)}}, contract='con_stk8', name='ApproveEvent')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'CON STK3'\n __metadata['token_symbol'] = 'CSTK3'\n __metadata['token_logo_url'] = 'https://example.com/token-logo.png'\n __metadata['token_website'] = 'https://example.com'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_stk8')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata.'\n __metadata[key] = value\n\n\n@__export('con_stk8')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances.'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send.'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n __TransferEvent({'from': ctx.caller, 'to': to, 'amount': amount})\n\n\n@__export('con_stk8')\ndef approve(amount: float, to: str):\n assert amount >= 0, 'Cannot approve negative balances.'\n __balances[ctx.caller, to] = amount\n __ApproveEvent({'from': ctx.caller, 'to': to, 'amount': amount})\n\n\n@__export('con_stk8')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances.'\n assert __balances[main_account, ctx.caller\n ] >= amount, f'Not enough coins approved to send. You have {__balances[main_account, ctx.caller]} and are trying to spend {amount}'\n assert __balances[main_account] >= amount, 'Not enough coins to send.'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n __TransferEvent({'from': main_account, 'to': to, 'amount': amount})\n\n\n@__export('con_stk8')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_stk8.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk8.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 8, + 18, + 37, + 33, + 0 + ] + } + }, + { + "key": "con_stk8.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": 1000000 + }, + { + "key": "con_stk8.metadata:operator", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_stk8.metadata:token_logo_url", + "value": "https://example.com/token-logo.png" + }, + { + "key": "con_stk8.metadata:token_name", + "value": "CON STK3" + }, + { + "key": "con_stk8.metadata:token_symbol", + "value": "CSTK3" + }, + { + "key": "con_stk8.metadata:token_website", + "value": "https://example.com" + }, + { + "key": "con_stresstest.__code__", + "value": "__h = Hash(contract='con_stresstest', name='h')\n\n\n@__export('con_stresstest')\ndef test(i: int):\n for x in range(0, i):\n __h[x]\n" + }, + { + "key": "con_stresstest.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_stresstest.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 15, + 18, + 23, + 41, + 0 + ] + } + }, + { + "key": "con_swap_one.LPBalances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": { + "__fixed__": "4.5E+2" + } + }, + { + "key": "con_swap_one.LPUsers", + "value": [ + "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + ] + }, + { + "key": "con_swap_one.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stakeone", + "con_staketwo" + ] + }, + { + "key": "con_swap_one.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_swap_one.LiquidityPools:token_a", + "value": { + "__fixed__": "448.485709089898033970432623707148" + } + }, + { + "key": "con_swap_one.LiquidityPools:token_b", + "value": { + "__fixed__": "451.519403842161876545073691758978" + } + }, + { + "key": "con_swap_one.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_swap_one.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_swap_one', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_swap_one', name='LPBalances'\n )\n__SwapFeePct = Variable(contract='con_swap_one', name='SwapFeePct')\n__LPUsers = Variable(contract='con_swap_one', name='LPUsers')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stakeone',\n 'con_staketwo']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n __LPUsers.set([])\n\n\n@__export('con_swap_one')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n balances_of_token_a = importlib.import_module(token_contract_a)\n balances_of_token_b = importlib.import_module(token_contract_b)\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert balances_of_token_a.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert balances_of_token_b.balance_of(ctx.caller\n ) >= token_b_amount, 'Insufficient Funds for Token B'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token A not allowed'\n assert token_contract_b in __LiquidityPools['allowed_token_contracts'\n ], 'Token B not allowed'\n balances_of_token_a.transfer_from(amount=token_a_amount, to=ctx.this,\n main_account=ctx.signer)\n balances_of_token_b.transfer_from(amount=token_b_amount, to=ctx.this,\n main_account=ctx.signer)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n if user not in __LPUsers.get():\n __LPUsers.set(__LPUsers.get() + [user])\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_swap_one')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n input__token_contract = importlib.import_module(input_contract)\n output__token_contract = importlib.import_module(output_contract)\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert input__token_contract.balance_of(ctx.caller\n ) >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n input__token_contract.transfer_from(amount=input_amount, to=ctx.this,\n main_account=ctx.signer)\n output__token_contract.transfer(amount=output_amount, to=ctx.caller)\n\n\n@__export('con_swap_one')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n total_lp_tokens = 0\n for user in __LPUsers.get():\n total_lp_tokens += __LPBalances[user]\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n if __LPBalances[user] == 0:\n updated_users = [u for u in __LPUsers.get() if u != user]\n __LPUsers.set(updated_users)\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_swap_one')\ndef get_lp_balance(account: str):\n return __LPBalances[account]\n" + }, + { + "key": "con_swap_one.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_swap_one.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 14, + 11, + 12, + 6, + 0 + ] + } + }, + { + "key": "con_swap_stk.LPBalances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": { + "__fixed__": "5E+2" + } + }, + { + "key": "con_swap_stk.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stakeone", + "con_staketwo" + ] + }, + { + "key": "con_swap_stk.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_swap_stk.LiquidityPools:token_a", + "value": { + "__fixed__": "498.317454544331148856036248563497" + } + }, + { + "key": "con_swap_stk.LiquidityPools:token_b", + "value": { + "__fixed__": "501.688226491290973938970768621086" + } + }, + { + "key": "con_swap_stk.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_swap_stk.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_swap_stk', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_swap_stk', name='LPBalances'\n )\n__SwapFeePct = Variable(contract='con_swap_stk', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stakeone',\n 'con_staketwo']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_swap_stk')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n balances_of_token_a = importlib.import_module(token_contract_a)\n balances_of_token_b = importlib.import_module(token_contract_b)\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert balances_of_token_a.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert balances_of_token_b.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token A not allowed'\n assert token_contract_b in __LiquidityPools['allowed_token_contracts'\n ], 'Token B not allowed'\n balances_of_token_a.transfer_from(amount=token_a_amount, to=ctx.this,\n main_account=ctx.signer)\n balances_of_token_b.transfer_from(amount=token_b_amount, to=ctx.this,\n main_account=ctx.signer)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_swap_stk')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n input__token_contract = importlib.import_module(input_contract)\n output__token_contract = importlib.import_module(output_contract)\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert input__token_contract.balance_of(ctx.caller\n ) >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n input__token_contract.transfer_from(amount=input_amount, to=ctx.this,\n main_account=ctx.signer)\n output__token_contract.transfer(amount=output_amount, to=ctx.caller)\n\n\n@__export('con_swap_stk')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_swap_stk')\ndef get_lp_balance(account: str):\n return __LPBalances[account]\n" + }, + { + "key": "con_swap_stk.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_swap_stk.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 14, + 11, + 3, + 47, + 0 + ] + } + }, + { + "key": "con_swapstk.LPBalances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": { + "__fixed__": "2E+2" + } + }, + { + "key": "con_swapstk.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stakeone", + "con_staketwo" + ] + }, + { + "key": "con_swapstk.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_swapstk.LiquidityPools:token_a", + "value": 200 + }, + { + "key": "con_swapstk.LiquidityPools:token_b", + "value": 200 + }, + { + "key": "con_swapstk.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_swapstk.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_swapstk', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_swapstk', name='LPBalances')\n__SwapFeePct = Variable(contract='con_swapstk', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stakeone',\n 'con_staketwo']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_swapstk')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n balances_of_token_a = importlib.import_module(token_contract_a)\n balances_of_token_b = importlib.import_module(token_contract_b)\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert balances_of_token_a.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert balances_of_token_b.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token A not allowed'\n assert token_contract_b in __LiquidityPools['allowed_token_contracts'\n ], 'Token B not allowed'\n balances_of_token_a.transfer_from(amount=token_a_amount, to=ctx.this,\n main_account=ctx.signer)\n balances_of_token_a.transfer_from(amount=token_b_amount, to=ctx.this,\n main_account=ctx.signer)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_swapstk')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n input__token_contract = importlib.import_module(input_contract)\n output__token_contract = importlib.import_module(output_contract)\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert input__token_contract.balance_of(ctx.caller\n ) >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n input__token_contract.transfer_from(amount=input_amount, to=ctx.this,\n main_account=ctx.signer)\n output__token_contract.transfer(to=ctx.caller, amount=output_amount)\n\n\n@__export('con_swapstk')\ndef get_lp_balance(account: str):\n return __LPBalances[account]\n" + }, + { + "key": "con_swapstk.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_swapstk.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 11, + 13, + 36, + 38, + 0 + ] + } + }, + { + "key": "con_swapstkone.LPBalances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": { + "__fixed__": "5E+2" + } + }, + { + "key": "con_swapstkone.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stakeone", + "con_staketwo" + ] + }, + { + "key": "con_swapstkone.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_swapstkone.LiquidityPools:token_a", + "value": 500 + }, + { + "key": "con_swapstkone.LiquidityPools:token_b", + "value": 500 + }, + { + "key": "con_swapstkone.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_swapstkone.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_swapstkone', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_swapstkone', name=\n 'LPBalances')\n__SwapFeePct = Variable(contract='con_swapstkone', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stakeone',\n 'con_staketwo']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_swapstkone')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n balances_of_token_a = importlib.import_module(token_contract_a)\n balances_of_token_b = importlib.import_module(token_contract_b)\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert balances_of_token_a.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert balances_of_token_b.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token A not allowed'\n assert token_contract_b in __LiquidityPools['allowed_token_contracts'\n ], 'Token B not allowed'\n balances_of_token_a.transfer_from(amount=token_a_amount, to=ctx.this,\n main_account=ctx.signer)\n balances_of_token_a.transfer_from(amount=token_b_amount, to=ctx.this,\n main_account=ctx.signer)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_swapstkone')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n input__token_contract = importlib.import_module(input_contract)\n output__token_contract = importlib.import_module(output_contract)\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert input__token_contract.balance_of(ctx.caller\n ) >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n input__token_contract.transfer_from(amount=input_amount, to=ctx.this,\n main_account=ctx.signer)\n output__token_contract.transfer(amount=output_amount, to=ctx.caller)\n\n\n@__export('con_swapstkone')\ndef get_lp_balance(account: str):\n return __LPBalances[account]\n" + }, + { + "key": "con_swapstkone.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_swapstkone.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 11, + 18, + 35, + 4, + 0 + ] + } + }, + { + "key": "con_swapstkthree.LPBalances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": { + "__fixed__": "5E+2" + } + }, + { + "key": "con_swapstkthree.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stakeone", + "con_staketwo" + ] + }, + { + "key": "con_swapstkthree.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_swapstkthree.LiquidityPools:token_a", + "value": 500 + }, + { + "key": "con_swapstkthree.LiquidityPools:token_b", + "value": 500 + }, + { + "key": "con_swapstkthree.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_swapstkthree.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_swapstkthree', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_swapstkthree', name=\n 'LPBalances')\n__SwapFeePct = Variable(contract='con_swapstkthree', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stakeone',\n 'con_staketwo']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_swapstkthree')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n balances_of_token_a = importlib.import_module(token_contract_a)\n balances_of_token_b = importlib.import_module(token_contract_b)\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert balances_of_token_a.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert balances_of_token_b.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token A not allowed'\n assert token_contract_b in __LiquidityPools['allowed_token_contracts'\n ], 'Token B not allowed'\n balances_of_token_a.transfer_from(amount=token_a_amount, to=ctx.this,\n main_account=ctx.signer)\n balances_of_token_a.transfer_from(amount=token_b_amount, to=ctx.this,\n main_account=ctx.signer)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_swapstkthree')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n input__token_contract = importlib.import_module(input_contract)\n output__token_contract = importlib.import_module(output_contract)\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert input__token_contract.balance_of(ctx.caller\n ) >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n input__token_contract.transfer_from(amount=input_amount, to=ctx.this,\n main_account=ctx.signer)\n output__token_contract.transfer(amount=output_amount, to=ctx.caller)\n\n\n@__export('con_swapstkthree')\ndef removeLiquidity(lp_tokens: float):\n assert lp_tokens > 0, 'LP token amount must be positive.'\n user = ctx.caller\n user_lp_balance = __LPBalances[user]\n assert lp_tokens <= user_lp_balance, 'Insufficient LP balance.'\n token_a_reserve = __LiquidityPools['token_a']\n token_b_reserve = __LiquidityPools['token_b']\n total_lp_tokens = sum(__LPBalances.values())\n token_a_share = lp_tokens / total_lp_tokens * token_a_reserve\n token_b_share = lp_tokens / total_lp_tokens * token_b_reserve\n __LiquidityPools['token_a'] -= token_a_share\n __LiquidityPools['token_b'] -= token_b_share\n __LPBalances[user] -= lp_tokens\n token_a_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][0])\n token_b_contract = importlib.import_module(__LiquidityPools[\n 'allowed_token_contracts'][1])\n token_a_contract.transfer(to=user, amount=token_a_share)\n token_b_contract.transfer(to=user, amount=token_b_share)\n\n\n@__export('con_swapstkthree')\ndef get_lp_balance(account: str):\n return __LPBalances[account]\n" + }, + { + "key": "con_swapstkthree.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_swapstkthree.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 13, + 23, + 7, + 41, + 0 + ] + } + }, + { + "key": "con_swapstktwo.LPBalances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": { + "__fixed__": "5E+2" + } + }, + { + "key": "con_swapstktwo.LiquidityPools:allowed_token_contracts", + "value": [ + "con_stakeone", + "con_staketwo" + ] + }, + { + "key": "con_swapstktwo.LiquidityPools:owner", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_swapstktwo.LiquidityPools:token_a", + "value": { + "__fixed__": "569.79" + } + }, + { + "key": "con_swapstktwo.LiquidityPools:token_b", + "value": { + "__fixed__": "438.758138963477772512680110216044" + } + }, + { + "key": "con_swapstktwo.SwapFeePct", + "value": { + "__fixed__": "0.003" + } + }, + { + "key": "con_swapstktwo.__code__", + "value": "__LiquidityPools = Hash(default_value={'token_a': 0, 'token_b': 0},\n contract='con_swapstktwo', name='LiquidityPools')\n__LPBalances = Hash(default_value=0, contract='con_swapstktwo', name=\n 'LPBalances')\n__SwapFeePct = Variable(contract='con_swapstktwo', name='SwapFeePct')\n\n\ndef ____():\n __SwapFeePct.set(decimal('0.003'))\n __LiquidityPools['owner'] = ctx.caller\n __LiquidityPools['allowed_token_contracts'] = ['con_stakeone',\n 'con_staketwo']\n __LiquidityPools['token_a'] = 0\n __LiquidityPools['token_b'] = 0\n\n\n@__export('con_swapstktwo')\ndef addLiquidity(token_contract_a: str, token_contract_b: str,\n token_a_amount: float, token_b_amount: float):\n balances_of_token_a = importlib.import_module(token_contract_a)\n balances_of_token_b = importlib.import_module(token_contract_b)\n user = ctx.caller\n assert token_a_amount > 0 and token_b_amount > 0, 'Amounts must be positive.'\n assert balances_of_token_a.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert balances_of_token_b.balance_of(ctx.caller\n ) >= token_a_amount, 'Insufficient Funds for Token A'\n assert token_contract_a in __LiquidityPools['allowed_token_contracts'\n ], 'Token A not allowed'\n assert token_contract_b in __LiquidityPools['allowed_token_contracts'\n ], 'Token B not allowed'\n balances_of_token_a.transfer_from(amount=token_a_amount, to=ctx.this,\n main_account=ctx.signer)\n balances_of_token_b.transfer_from(amount=token_b_amount, to=ctx.this,\n main_account=ctx.signer)\n __LiquidityPools['token_a'] += token_a_amount\n __LiquidityPools['token_b'] += token_b_amount\n lp_tokens = (token_a_amount + token_b_amount) / 2\n __LPBalances[user] += lp_tokens\n\n\n@__export('con_swapstktwo')\ndef swap(input_token: str, output_token: str, input_amount: float):\n token_map = {'token_a': __LiquidityPools['allowed_token_contracts'][0],\n 'token_b': __LiquidityPools['allowed_token_contracts'][1]}\n input_contract = token_map[input_token]\n output_contract = token_map[output_token]\n input__token_contract = importlib.import_module(input_contract)\n output__token_contract = importlib.import_module(output_contract)\n assert input_amount > 0, 'Input amount must be positive.'\n assert __LiquidityPools[input_token] != 0, 'Invalid input token.'\n assert __LiquidityPools[output_token] != 0, 'Invalid output token.'\n assert input__token_contract.balance_of(ctx.caller\n ) >= input_amount, 'Insufficient Funds'\n input_reserve = __LiquidityPools[input_token]\n output_reserve = __LiquidityPools[output_token]\n fee = input_amount * __SwapFeePct.get()\n net_input = input_amount - fee\n output_amount = output_reserve - input_reserve * output_reserve / (\n input_reserve + net_input)\n assert output_amount > 0, 'Insufficient liquidity.'\n __LiquidityPools[input_token] += net_input\n __LiquidityPools[output_token] -= output_amount\n input__token_contract.transfer_from(amount=input_amount, to=ctx.this,\n main_account=ctx.signer)\n output__token_contract.transfer(amount=output_amount, to=ctx.caller)\n\n\n@__export('con_swapstktwo')\ndef get_lp_balance(account: str):\n return __LPBalances[account]\n" + }, + { + "key": "con_swapstktwo.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_swapstktwo.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 11, + 18, + 46, + 41, + 0 + ] + } + }, + { + "key": "con_test1.__code__", + "value": "__balances = Hash(default_value=0, contract='con_test1', name='balances')\n__metadata = Hash(contract='con_test1', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 9999999999999999\n __metadata['token_name'] = 'TEST TOKEN1'\n __metadata['token_symbol'] = 'TST1'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_test1')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n" + }, + { + "key": "con_test1.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_test1.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 18, + 13, + 26, + 6, + 0 + ] + } + }, + { + "key": "con_test1.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": 9999999999999999 + }, + { + "key": "con_test1.metadata:operator", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_test1.metadata:token_name", + "value": "TEST TOKEN1" + }, + { + "key": "con_test1.metadata:token_symbol", + "value": "TST1" + }, + { + "key": "con_test123.__code__", + "value": "import currency\nI = importlib\n\n\n@__export('con_test123')\ndef send(addresses: list, amount: float, contract: str):\n token = I.import_module(contract)\n for address in addresses:\n token.transfer_from(amount=amount, to=address, main_account=ctx.signer)\n" + }, + { + "key": "con_test123.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_test123.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 1, + 18, + 36, + 49, + 0 + ] + } + }, + { + "key": "con_test123456.__code__", + "value": "__x = Variable(contract='con_test123456', name='x')\n\n\ndef ____():\n __x.set('test')\n\n\n@__export('con_test123456')\ndef placeholder():\n __x.set('break')\n\n\n@__export('con_test123456')\ndef placeholder2():\n pass\n\n\n@__export('con_test123456')\ndef placeholder3():\n pass\n" + }, + { + "key": "con_test123456.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_test123456.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 2, + 6, + 44, + 31, + 0 + ] + } + }, + { + "key": "con_test123456.x", + "value": "break" + }, + { + "key": "con_test2.__code__", + "value": "__balances = Hash(default_value=0, contract='con_test2', name='balances')\n__metadata = Hash(contract='con_test2', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 9999999999999999\n __metadata['token_name'] = 'TEST TOKEN2'\n __metadata['token_symbol'] = 'TST2'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_test2')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n" + }, + { + "key": "con_test2.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_test2.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 18, + 13, + 26, + 38, + 0 + ] + } + }, + { + "key": "con_test2.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": 9999999999999999 + }, + { + "key": "con_test2.metadata:operator", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_test2.metadata:token_name", + "value": "TEST TOKEN2" + }, + { + "key": "con_test2.metadata:token_symbol", + "value": "TST2" + }, + { + "key": "con_test8.__code__", + "value": "__x = Variable(contract='con_test8', name='x')\n__y = Hash(contract='con_test8', name='y')\n\n\ndef ____():\n for __x in range(10):\n __y[__x] = __x\n\n\n@__export('con_test8')\ndef placeholder():\n __x.set('break')\n\n\n@__export('con_test8')\ndef placeholder2():\n pass\n\n\n@__export('con_test8')\ndef placeholder3():\n pass\n" + }, + { + "key": "con_test8.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_test8.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 2, + 6, + 45, + 29, + 0 + ] + } + }, + { + "key": "con_test8.y:0", + "value": 0 + }, + { + "key": "con_test8.y:1", + "value": 1 + }, + { + "key": "con_test8.y:2", + "value": 2 + }, + { + "key": "con_test8.y:3", + "value": 3 + }, + { + "key": "con_test8.y:4", + "value": 4 + }, + { + "key": "con_test8.y:5", + "value": 5 + }, + { + "key": "con_test8.y:6", + "value": 6 + }, + { + "key": "con_test8.y:7", + "value": 7 + }, + { + "key": "con_test8.y:8", + "value": 8 + }, + { + "key": "con_test8.y:9", + "value": 9 + }, + { + "key": "con_test81.__code__", + "value": "random.seed()\n__x = Variable(contract='con_test81', name='x')\n__y = Hash(contract='con_test81', name='y')\n\n\ndef ____():\n for __x in range(10):\n __y[__x] = random.randint(0, 1000)\n\n\n@__export('con_test81')\ndef placeholder():\n __x.set('break')\n\n\n@__export('con_test81')\ndef placeholder2():\n for __x in range(99):\n __y[__x] = __x\n\n\n@__export('con_test81')\ndef placeholder3():\n pass\n" + }, + { + "key": "con_test81.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_test81.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 2, + 6, + 47, + 6, + 0 + ] + } + }, + { + "key": "con_test81.y:0", + "value": 621 + }, + { + "key": "con_test81.y:1", + "value": 604 + }, + { + "key": "con_test81.y:2", + "value": 556 + }, + { + "key": "con_test81.y:3", + "value": 107 + }, + { + "key": "con_test81.y:4", + "value": 701 + }, + { + "key": "con_test81.y:5", + "value": 981 + }, + { + "key": "con_test81.y:6", + "value": 175 + }, + { + "key": "con_test81.y:7", + "value": 58 + }, + { + "key": "con_test81.y:8", + "value": 75 + }, + { + "key": "con_test81.y:9", + "value": 961 + }, + { + "key": "con_test82.__code__", + "value": "__x = Variable(contract='con_test82', name='x')\n__y = Hash(contract='con_test82', name='y')\n\n\ndef ____():\n for __x in range(10):\n __y[__x] = __x\n\n\n@__export('con_test82')\ndef placeholder():\n __x.set('break')\n\n\n@__export('con_test82')\ndef placeholder2():\n for __x in range(99):\n __y[__x] = __x\n\n\n@__export('con_test82')\ndef placeholder3():\n pass\n" + }, + { + "key": "con_test82.__developer__", + "value": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9" + }, + { + "key": "con_test82.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 2, + 6, + 46, + 15, + 0 + ] + } + }, + { + "key": "con_test82.y:0", + "value": 0 + }, + { + "key": "con_test82.y:1", + "value": 1 + }, + { + "key": "con_test82.y:10", + "value": 10 + }, + { + "key": "con_test82.y:11", + "value": 11 + }, + { + "key": "con_test82.y:12", + "value": 12 + }, + { + "key": "con_test82.y:13", + "value": 13 + }, + { + "key": "con_test82.y:14", + "value": 14 + }, + { + "key": "con_test82.y:15", + "value": 15 + }, + { + "key": "con_test82.y:16", + "value": 16 + }, + { + "key": "con_test82.y:17", + "value": 17 + }, + { + "key": "con_test82.y:18", + "value": 18 + }, + { + "key": "con_test82.y:19", + "value": 19 + }, + { + "key": "con_test82.y:2", + "value": 2 + }, + { + "key": "con_test82.y:20", + "value": 20 + }, + { + "key": "con_test82.y:21", + "value": 21 + }, + { + "key": "con_test82.y:22", + "value": 22 + }, + { + "key": "con_test82.y:23", + "value": 23 + }, + { + "key": "con_test82.y:24", + "value": 24 + }, + { + "key": "con_test82.y:25", + "value": 25 + }, + { + "key": "con_test82.y:26", + "value": 26 + }, + { + "key": "con_test82.y:27", + "value": 27 + }, + { + "key": "con_test82.y:28", + "value": 28 + }, + { + "key": "con_test82.y:29", + "value": 29 + }, + { + "key": "con_test82.y:3", + "value": 3 + }, + { + "key": "con_test82.y:30", + "value": 30 + }, + { + "key": "con_test82.y:31", + "value": 31 + }, + { + "key": "con_test82.y:32", + "value": 32 + }, + { + "key": "con_test82.y:33", + "value": 33 + }, + { + "key": "con_test82.y:34", + "value": 34 + }, + { + "key": "con_test82.y:35", + "value": 35 + }, + { + "key": "con_test82.y:36", + "value": 36 + }, + { + "key": "con_test82.y:37", + "value": 37 + }, + { + "key": "con_test82.y:38", + "value": 38 + }, + { + "key": "con_test82.y:39", + "value": 39 + }, + { + "key": "con_test82.y:4", + "value": 4 + }, + { + "key": "con_test82.y:40", + "value": 40 + }, + { + "key": "con_test82.y:41", + "value": 41 + }, + { + "key": "con_test82.y:42", + "value": 42 + }, + { + "key": "con_test82.y:43", + "value": 43 + }, + { + "key": "con_test82.y:44", + "value": 44 + }, + { + "key": "con_test82.y:45", + "value": 45 + }, + { + "key": "con_test82.y:46", + "value": 46 + }, + { + "key": "con_test82.y:47", + "value": 47 + }, + { + "key": "con_test82.y:48", + "value": 48 + }, + { + "key": "con_test82.y:49", + "value": 49 + }, + { + "key": "con_test82.y:5", + "value": 5 + }, + { + "key": "con_test82.y:50", + "value": 50 + }, + { + "key": "con_test82.y:51", + "value": 51 + }, + { + "key": "con_test82.y:52", + "value": 52 + }, + { + "key": "con_test82.y:53", + "value": 53 + }, + { + "key": "con_test82.y:54", + "value": 54 + }, + { + "key": "con_test82.y:55", + "value": 55 + }, + { + "key": "con_test82.y:56", + "value": 56 + }, + { + "key": "con_test82.y:57", + "value": 57 + }, + { + "key": "con_test82.y:58", + "value": 58 + }, + { + "key": "con_test82.y:59", + "value": 59 + }, + { + "key": "con_test82.y:6", + "value": 6 + }, + { + "key": "con_test82.y:60", + "value": 60 + }, + { + "key": "con_test82.y:61", + "value": 61 + }, + { + "key": "con_test82.y:62", + "value": 62 + }, + { + "key": "con_test82.y:63", + "value": 63 + }, + { + "key": "con_test82.y:64", + "value": 64 + }, + { + "key": "con_test82.y:65", + "value": 65 + }, + { + "key": "con_test82.y:66", + "value": 66 + }, + { + "key": "con_test82.y:67", + "value": 67 + }, + { + "key": "con_test82.y:68", + "value": 68 + }, + { + "key": "con_test82.y:69", + "value": 69 + }, + { + "key": "con_test82.y:7", + "value": 7 + }, + { + "key": "con_test82.y:70", + "value": 70 + }, + { + "key": "con_test82.y:71", + "value": 71 + }, + { + "key": "con_test82.y:72", + "value": 72 + }, + { + "key": "con_test82.y:73", + "value": 73 + }, + { + "key": "con_test82.y:74", + "value": 74 + }, + { + "key": "con_test82.y:75", + "value": 75 + }, + { + "key": "con_test82.y:76", + "value": 76 + }, + { + "key": "con_test82.y:77", + "value": 77 + }, + { + "key": "con_test82.y:78", + "value": 78 + }, + { + "key": "con_test82.y:79", + "value": 79 + }, + { + "key": "con_test82.y:8", + "value": 8 + }, + { + "key": "con_test82.y:80", + "value": 80 + }, + { + "key": "con_test82.y:81", + "value": 81 + }, + { + "key": "con_test82.y:82", + "value": 82 + }, + { + "key": "con_test82.y:83", + "value": 83 + }, + { + "key": "con_test82.y:84", + "value": 84 + }, + { + "key": "con_test82.y:85", + "value": 85 + }, + { + "key": "con_test82.y:86", + "value": 86 + }, + { + "key": "con_test82.y:87", + "value": 87 + }, + { + "key": "con_test82.y:88", + "value": 88 + }, + { + "key": "con_test82.y:89", + "value": 89 + }, + { + "key": "con_test82.y:9", + "value": 9 + }, + { + "key": "con_test82.y:90", + "value": 90 + }, + { + "key": "con_test82.y:91", + "value": 91 + }, + { + "key": "con_test82.y:92", + "value": 92 + }, + { + "key": "con_test82.y:93", + "value": 93 + }, + { + "key": "con_test82.y:94", + "value": 94 + }, + { + "key": "con_test82.y:95", + "value": 95 + }, + { + "key": "con_test82.y:96", + "value": 96 + }, + { + "key": "con_test82.y:97", + "value": 97 + }, + { + "key": "con_test82.y:98", + "value": 98 + }, + { + "key": "con_test_1.__code__", + "value": "__balances = Hash(default_value=0, contract='con_test_1', name='balances')\n__metadata = Hash(contract='con_test_1', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 10000000\n __metadata['token_name'] = 'TEST TOKEN1'\n __metadata['token_symbol'] = 'TST1'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_test_1')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_test_1')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_test_1')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_test_1')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_test_1')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_test_1.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_test_1.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 18, + 13, + 26, + 44, + 0 + ] + } + }, + { + "key": "con_test_1.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "9999994" + } + }, + { + "key": "con_test_1.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dex22", + "value": { + "__fixed__": "0.6" + } + }, + { + "key": "con_test_1.balances:con_dex_pairs2", + "value": { + "__fixed__": "6" + } + }, + { + "key": "con_test_1.metadata:operator", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_test_1.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_test_1.metadata:token_name", + "value": "TEST TOKEN1" + }, + { + "key": "con_test_1.metadata:token_symbol", + "value": "TST1" + }, + { + "key": "con_test_1.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_test_2.__code__", + "value": "__balances = Hash(default_value=0, contract='con_test_2', name='balances')\n__metadata = Hash(contract='con_test_2', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 10000000\n __metadata['token_name'] = 'TEST TOKEN2'\n __metadata['token_symbol'] = 'TST2'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_test_2')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_test_2')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_test_2')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_test_2')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_test_2')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_test_2.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_test_2.__submitted__", + "value": { + "__time__": [ + 2024, + 12, + 18, + 13, + 27, + 40, + 0 + ] + } + }, + { + "key": "con_test_2.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "9999998.497746619929894842263395092638" + } + }, + { + "key": "con_test_2.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dex22", + "value": { + "__fixed__": "0.3" + } + }, + { + "key": "con_test_2.balances:con_dex_pairs2", + "value": { + "__fixed__": "1.502253380070105157736604907362" + } + }, + { + "key": "con_test_2.metadata:operator", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_test_2.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_test_2.metadata:token_name", + "value": "TEST TOKEN2" + }, + { + "key": "con_test_2.metadata:token_symbol", + "value": "TST2" + }, + { + "key": "con_test_2.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_testing_it.__code__", + "value": "I = importlib\n\n\n@__export('con_testing_it')\ndef send(addresses: list, amount: float, contract: str):\n token = I.import_module(contract)\n for address in addresses:\n token.transfer_from(amount=amount, to=address, main_account=ctx.signer)\n" + }, + { + "key": "con_testing_it.__developer__", + "value": "b6504cf056e264a4c1932d5de6893d110db5459ab4f742eb415d98ed989bb98d" + }, + { + "key": "con_testing_it.__submitted__", + "value": { + "__time__": [ + 2024, + 8, + 14, + 13, + 15, + 53, + 0 + ] + } + }, + { + "key": "con_teststststs.__code__", + "value": "__balances = Hash(default_value=0, contract='con_teststststs', name='balances')\n__metadata = Hash(contract='con_teststststs', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1111\n __metadata['token_name'] = 'Teststststs'\n __metadata['token_symbol'] = 'TC'\n __metadata['token_logo_url'] = ''\n __metadata['token_website'] = ''\n __metadata['total_supply'] = 1111\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_teststststs')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_teststststs')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_teststststs')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_teststststs')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_teststststs')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_teststststs.__developer__", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_teststststs.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 14, + 12, + 34, + 46, + 0 + ] + } + }, + { + "key": "con_teststststs.balances:7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "value": 1111 + }, + { + "key": "con_teststststs.metadata:operator", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "con_teststststs.metadata:token_logo_url", + "value": "" + }, + { + "key": "con_teststststs.metadata:token_name", + "value": "Teststststs" + }, + { + "key": "con_teststststs.metadata:token_symbol", + "value": "TC" + }, + { + "key": "con_teststststs.metadata:token_website", + "value": "" + }, + { + "key": "con_teststststs.metadata:total_supply", + "value": 1111 + }, + { + "key": "con_testtoken.__code__", + "value": "__balances = Hash(default_value=0, contract='con_testtoken', name='balances')\n__metadata = Hash(contract='con_testtoken', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 9999999999999999\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_testtoken')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_testtoken')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_testtoken')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_testtoken')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_testtoken')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_testtoken.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_testtoken.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 6, + 12, + 26, + 18, + 0 + ] + } + }, + { + "key": "con_testtoken.balances:0", + "value": 999 + }, + { + "key": "con_testtoken.balances:1", + "value": 1 + }, + { + "key": "con_testtoken.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "9891791845801756.562119255495011837685026115088" + } + }, + { + "key": "con_testtoken.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dex22", + "value": { + "__fixed__": "13166301474810973.9" + } + }, + { + "key": "con_testtoken.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dex2test", + "value": { + "__fixed__": "10846834023954739828176.956781928186615760996191166073" + } + }, + { + "key": "con_testtoken.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dextest_001", + "value": { + "__fixed__": "9.9999E+15" + } + }, + { + "key": "con_testtoken.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dextest_002", + "value": { + "__fixed__": "9.9999E+17" + } + }, + { + "key": "con_testtoken.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dextest_003", + "value": { + "__fixed__": "98173328263080014.4" + } + }, + { + "key": "con_testtoken.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dextest_004", + "value": { + "__fixed__": "9.9E+15" + } + }, + { + "key": "con_testtoken.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dextest_005", + "value": { + "__fixed__": "9998999999999999999" + } + }, + { + "key": "con_testtoken.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dextest_006", + "value": { + "__fixed__": "1099899999.9" + } + }, + { + "key": "con_testtoken.balances:con_dex_pairs", + "value": { + "__fixed__": "41.800633596611738895164383427412" + } + }, + { + "key": "con_testtoken.balances:con_dex_pairs2", + "value": { + "__fixed__": "989179292.337691103385709723481308325324" + } + }, + { + "key": "con_testtoken.balances:con_dextest_001", + "value": { + "__fixed__": "90933891060.289169773574611257615713376376" + } + }, + { + "key": "con_testtoken.balances:con_dextest_002", + "value": { + "__fixed__": "9093389106118.941529508047649358916068018551" + } + }, + { + "key": "con_testtoken.balances:con_dextest_003", + "value": { + "__fixed__": "109.579070046566934739187634467823" + } + }, + { + "key": "con_testtoken.balances:con_dextest_004", + "value": { + "__fixed__": "99012841965601.948572729883065833638622929394" + } + }, + { + "key": "con_testtoken.balances:con_dextest_005", + "value": { + "__fixed__": "1.000000061523096809293425810305" + } + }, + { + "key": "con_testtoken.balances:con_dextest_006", + "value": { + "__fixed__": "54145.635431733981989220366367171338" + } + }, + { + "key": "con_testtoken.balances:dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6", + "value": { + "__fixed__": "1" + } + }, + { + "key": "con_testtoken.balances:e734ea6c2b6257de72355e472aa05a4c487e6b463c029ed306df2f01b5636b58", + "value": 9999998999 + }, + { + "key": "con_testtoken.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": { + "__fixed__": "1870.905779766066298818296450358387" + } + }, + { + "key": "con_testtoken.balances:test", + "value": { + "__fixed__": "0.000002424863893506355" + } + }, + { + "key": "con_testtoken.metadata:operator", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_testtoken.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_testtoken.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_testtoken.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_testtoken.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_thisproxy.__code__", + "value": "@__export('con_thisproxy')\ndef proxythis():\n return importlib.import_module('con_getthis').getthis()\n" + }, + { + "key": "con_thisproxy.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_thisproxy.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 31, + 9, + 51, + 53, + 0 + ] + } + }, + { + "key": "con_thistest2.__code__", + "value": "@__export('con_thistest2')\ndef exported():\n return 0\n\n\n@__export('con_thistest2')\ndef getthis():\n exported()\n return ctx.this, ctx.caller\n" + }, + { + "key": "con_thistest2.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_thistest2.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 31, + 15, + 49, + 53, + 0 + ] + } + }, + { + "key": "con_token0.__code__", + "value": "__balances = Hash(default_value=0, contract='con_token0', name='balances')\n__metadata = Hash(contract='con_token0', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_token0')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_token0')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_token0')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_token0')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_token0')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_token0.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_token0.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 16, + 17, + 43, + 53, + 0 + ] + } + }, + { + "key": "con_token0.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": 1000000 + }, + { + "key": "con_token0.metadata:operator", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_token0.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_token0.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_token0.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_token0.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_tst01.__code__", + "value": "@__export('con_tst01')\ndef greet(name: str):\n return f'Hello, {name}!'\n" + }, + { + "key": "con_tst01.__developer__", + "value": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385" + }, + { + "key": "con_tst01.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 10, + 19, + 1, + 54, + 0 + ] + } + }, + { + "key": "con_tst3.__code__", + "value": "@__export('con_tst3')\ndef swapExactTokensForTokens(amountIn: float, amountOutMin: float, tokenIn:\n str, tokenOut: str, to: str, deadline: datetime.datetime):\n \"\"\"\n Swap exact amount of input tokens for optimal amount of output tokens\n \"\"\"\n assert now < deadline, 'EXPIRED'\n path, expectedOut = findBestPath(tokenIn, tokenOut, amountIn)\n assert expectedOut >= amountOutMin, 'INSUFFICIENT_OUTPUT'\n currentAmount = amountIn\n for tokenA, tokenB in path:\n pair = toks_to_pair[min(tokenA, tokenB), max(tokenA, tokenB)]\n currentAmount = swapExactTokenForToken(currentAmount, 0, pair,\n tokenA, to if tokenB == tokenOut else DEX_PAIRS, deadline)\n return currentAmount\n" + }, + { + "key": "con_tst3.__developer__", + "value": "8bf21c7dc3a4ff32996bf56a665e1efe3c9261cc95bbf82552c328585c863829" + }, + { + "key": "con_tst3.__submitted__", + "value": { + "__time__": [ + 2025, + 1, + 9, + 0, + 55, + 4, + 0 + ] + } + }, + { + "key": "con_wte.__code__", + "value": "__balances = Hash(default_value=0, contract='con_wte', name='balances')\n__metadata = Hash(contract='con_wte', name='metadata')\n\n\ndef ____(inp: float):\n __balances[ctx.caller] = inp\n __metadata['token_name'] = 'TEST TOKEN'\n __metadata['token_symbol'] = 'TST'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_wte')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_wte')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_wte')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_wte')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_wte')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_wte.__developer__", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_wte.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 10, + 14, + 26, + 32, + 0 + ] + } + }, + { + "key": "con_wte.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "1E+22" + } + }, + { + "key": "con_wte.metadata:operator", + "value": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0" + }, + { + "key": "con_wte.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_wte.metadata:token_name", + "value": "TEST TOKEN" + }, + { + "key": "con_wte.metadata:token_symbol", + "value": "TST" + }, + { + "key": "con_wte.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_x1.__code__", + "value": "random.seed()\n__game = Hash(contract='con_x1', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_x1', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_x1', name='bets')\n__participants = Hash(default_value=False, contract='con_x1', name=\n 'participants')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['allowedTokens'] = ['currency']\n __game['turtleData'] = {'Red': {'price': 10, 'probability': decimal(\n '0.25')}, 'Green': {'price': 20, 'probability': decimal('0.2')},\n 'Blue': {'price': 15, 'probability': decimal('0.25')}, 'Yellow': {\n 'price': 5, 'probability': decimal('0.15')}, 'Purple': {'price': 50,\n 'probability': decimal('0.15')}}\n\n\n@__export('con_x1')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert turtle_name in __game['turtleData'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData'][turtle_name]['price']\n assert token_contract in __game['allowedTokens'], 'Token not allowed'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n\n\n@__export('con_x1')\ndef start_race():\n assert ctx.caller == __game['owner'], 'Only the owner can start the race'\n racing_turtles = set()\n for key in __bets:\n racing_turtles.add(key)\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n turtle_names = list(__game['turtleData'].keys())\n probabilities = [__game['turtleData'][turtle]['probability'] for turtle in\n turtle_names]\n winning_turtle = random.choices(turtle_names, weights=probabilities, k=1)[0\n ]\n total_bet_pool = sum(__bets.values())\n winnings = total_bet_pool * (1 - __game['commission'])\n winner_paid = False\n for (player, turtle_name), bet_amount in __bets.items():\n if turtle_name == winning_turtle:\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=player)\n winner_paid = True\n break\n assert winner_paid, 'No valid winner found'\n __game['totalRaces'] += 1\n __bets.clear()\n __participants.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_x1')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_x1')\ndef change_allowed_tokens(tokens: list):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the allowed tokens'\n __game['allowedTokens'] = tokens\n\n\n@__export('con_x1')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_x1.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x1.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 2, + 48, + 19, + 0 + ] + } + }, + { + "key": "con_x1.game:allowedTokens", + "value": [ + "currency" + ] + }, + { + "key": "con_x1.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_x1.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x1.game:totalRaces", + "value": 0 + }, + { + "key": "con_x1.game:turtleData", + "value": { + "Red": { + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + "Green": { + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + "Blue": { + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + "Yellow": { + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + "Purple": { + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + } + }, + { + "key": "con_x2.__code__", + "value": "random.seed()\n__game = Hash(contract='con_x2', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_x2', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_x2', name='bets')\n__participants = Hash(default_value=False, contract='con_x2', name=\n 'participants')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['allowedTokens'] = ['currency']\n __game['turtleData'] = {'Red': {'price': 10, 'probability': decimal(\n '0.25')}, 'Green': {'price': 20, 'probability': decimal('0.2')},\n 'Blue': {'price': 15, 'probability': decimal('0.25')}, 'Yellow': {\n 'price': 5, 'probability': decimal('0.15')}, 'Purple': {'price': 50,\n 'probability': decimal('0.15')}}\n\n\n@__export('con_x2')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert turtle_name in __game['turtleData'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData'][turtle_name]['price']\n assert token_contract in __game['allowedTokens'], 'Token not allowed'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n\n\n@__export('con_x2')\ndef start_race():\n assert ctx.caller == __game['owner'], 'Only the owner can start the race'\n racing_turtles = set()\n for key in __bets:\n turtle_name = key[1] if isinstance(key, tuple) and len(key\n ) > 1 else key\n racing_turtles.add(turtle_name)\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n for (player, turtle_name), bet_amount in __bets.items():\n assert __turtleOwners[turtle_name\n ] is not None, f'Turtle {turtle_name} does not have an owner'\n turtle_names = list(__game['turtleData'].keys())\n probabilities = [__game['turtleData'][turtle]['probability'] for turtle in\n turtle_names]\n winning_turtle = random.choices(turtle_names, weights=probabilities, k=1)[0\n ]\n total_bet_pool = sum(__bets.values())\n winnings = total_bet_pool * (1 - __game['commission'])\n winner_paid = False\n for (player, turtle_name), bet_amount in __bets.items():\n if turtle_name == winning_turtle:\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=player)\n winner_paid = True\n break\n assert winner_paid, 'No valid winner found'\n __game['totalRaces'] += 1\n __bets.clear()\n __participants.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_x2')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_x2')\ndef change_allowed_tokens(tokens: list):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the allowed tokens'\n __game['allowedTokens'] = tokens\n\n\n@__export('con_x2')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_x2.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x2.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 2, + 49, + 49, + 0 + ] + } + }, + { + "key": "con_x2.game:allowedTokens", + "value": [ + "currency" + ] + }, + { + "key": "con_x2.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_x2.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x2.game:totalRaces", + "value": 0 + }, + { + "key": "con_x2.game:turtleData", + "value": { + "Red": { + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + "Green": { + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + "Blue": { + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + "Yellow": { + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + "Purple": { + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + } + }, + { + "key": "con_x3.__code__", + "value": "random.seed()\n__game = Hash(contract='con_x3', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_x3', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_x3', name='bets')\n__participants = Hash(default_value=False, contract='con_x3', name=\n 'participants')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['allowedTokens'] = ['currency']\n __game['turtleData'] = {'Red': {'price': 10, 'probability': decimal(\n '0.25')}, 'Green': {'price': 20, 'probability': decimal('0.2')},\n 'Blue': {'price': 15, 'probability': decimal('0.25')}, 'Yellow': {\n 'price': 5, 'probability': decimal('0.15')}, 'Purple': {'price': 50,\n 'probability': decimal('0.15')}}\n\n\n@__export('con_x3')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert turtle_name in __game['turtleData'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData'][turtle_name]['price']\n assert token_contract in __game['allowedTokens'], 'Token not allowed'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n\n\n@__export('con_x3')\ndef start_race():\n assert ctx.caller == __game['owner'], 'Only the owner can start the race'\n racing_turtles = set()\n for turtle_name, owner in __turtleOwners.items():\n if owner is not None:\n racing_turtles.add(turtle_name)\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have owners to start the race'\n for turtle_name in racing_turtles:\n assert __turtleOwners[turtle_name\n ] is not None, f'Turtle {turtle_name} does not have an owner'\n turtle_names = list(__game['turtleData'].keys())\n probabilities = [__game['turtleData'][turtle]['probability'] for turtle in\n turtle_names]\n winning_turtle = random.choices(turtle_names, weights=probabilities, k=1)[0\n ]\n total_bet_pool = sum(__bets.values())\n winnings = total_bet_pool * (1 - __game['commission'])\n for (player, turtle_name), bet_amount in __bets.items():\n if turtle_name == winning_turtle:\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=player)\n break\n __game['totalRaces'] += 1\n __bets.clear()\n __participants.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_x3')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_x3')\ndef change_allowed_tokens(tokens: list):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the allowed tokens'\n __game['allowedTokens'] = tokens\n\n\n@__export('con_x3')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_x3.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x3.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 2, + 52, + 20, + 0 + ] + } + }, + { + "key": "con_x3.game:allowedTokens", + "value": [ + "currency" + ] + }, + { + "key": "con_x3.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_x3.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x3.game:totalRaces", + "value": 0 + }, + { + "key": "con_x3.game:turtleData", + "value": { + "Red": { + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + "Green": { + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + "Blue": { + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + "Yellow": { + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + "Purple": { + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + } + }, + { + "key": "con_x4.__code__", + "value": "random.seed()\n__game = Hash(contract='con_x4', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_x4', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_x4', name='bets')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData'] = {'Red': {'price': 10, 'probability': decimal(\n '0.25')}, 'Green': {'price': 20, 'probability': decimal('0.2')},\n 'Blue': {'price': 15, 'probability': decimal('0.25')}, 'Yellow': {\n 'price': 5, 'probability': decimal('0.15')}, 'Purple': {'price': 50,\n 'probability': decimal('0.15')}}\n\n\n@__export('con_x4')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert turtle_name in __game['turtleData'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData'][turtle_name]['price']\n assert amount > 0, 'Bet amount must be greater than zero'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n __bets[turtle_name] += amount\n\n\n@__export('con_x4')\ndef start_race():\n racing_turtles = [turtle for turtle in __bets if __bets[turtle] > 0]\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n probabilities = [__game['turtleData'][turtle]['probability'] for turtle in\n racing_turtles]\n winning_turtle = random.choices(racing_turtles, weights=probabilities, k=1\n )[0]\n total_bet_pool = sum(__bets.values())\n winnings = total_bet_pool * (1 - __game['commission'])\n winner = __turtleOwners[winning_turtle]\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=winner)\n __game['totalRaces'] += 1\n __bets.clear()\n __turtleOwners.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_x4')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_x4')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_x4.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x4.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 3, + 0, + 35, + 0 + ] + } + }, + { + "key": "con_x4.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_x4.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x4.game:totalRaces", + "value": 0 + }, + { + "key": "con_x4.game:turtleData", + "value": { + "Red": { + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + "Green": { + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + "Blue": { + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + "Yellow": { + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + "Purple": { + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + } + }, + { + "key": "con_x5.__code__", + "value": "random.seed()\n__game = Hash(contract='con_x5', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_x5', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_x5', name='bets')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData'] = {'Red': {'price': 10, 'probability': decimal(\n '0.25')}, 'Green': {'price': 20, 'probability': decimal('0.2')},\n 'Blue': {'price': 15, 'probability': decimal('0.25')}, 'Yellow': {\n 'price': 5, 'probability': decimal('0.15')}, 'Purple': {'price': 50,\n 'probability': decimal('0.15')}}\n\n\n@__export('con_x5')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert turtle_name in __game['turtleData'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData'][turtle_name]['price']\n assert amount > 0, 'Bet amount must be greater than zero'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n __bets[turtle_name] += amount\n\n\n@__export('con_x5')\ndef start_race():\n racing_turtles = [turtle for turtle in __bets if __bets[turtle] > 0]\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n probabilities = [__game['turtleData'][turtle]['probability'] for turtle in\n racing_turtles]\n winning_turtle = random.choices(racing_turtles, weights=probabilities, k=1\n )[0]\n total_bet_pool = sum(__bets.values())\n winnings = total_bet_pool * (1 - __game['commission'])\n winner = __turtleOwners[winning_turtle]\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=winner)\n __game['totalRaces'] += 1\n __bets.clear()\n __turtleOwners.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_x5')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_x5')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_x5.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x5.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 3, + 3, + 56, + 0 + ] + } + }, + { + "key": "con_x5.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_x5.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x5.game:totalRaces", + "value": 0 + }, + { + "key": "con_x5.game:turtleData", + "value": { + "Red": { + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + "Green": { + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + "Blue": { + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + "Yellow": { + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + "Purple": { + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + } + }, + { + "key": "con_x6.__code__", + "value": "random.seed()\n__game = Hash(contract='con_x6', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_x6', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_x6', name='bets')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData'] = {'Red': {'price': 10, 'probability': decimal(\n '0.25')}, 'Green': {'price': 20, 'probability': decimal('0.2')},\n 'Blue': {'price': 15, 'probability': decimal('0.25')}, 'Yellow': {\n 'price': 5, 'probability': decimal('0.15')}, 'Purple': {'price': 50,\n 'probability': decimal('0.15')}}\n\n\n@__export('con_x6')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert turtle_name in __game['turtleData'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData'][turtle_name]['price']\n assert amount > 0, 'Bet amount must be greater than zero'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n __bets[turtle_name] += amount\n\n\n@__export('con_x6')\ndef start_race():\n racing_turtles = [turtle for turtle in __bets if __bets[turtle] > 0]\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n return 'paso'\n\n\n@__export('con_x6')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_x6')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_x6.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x6.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 3, + 7, + 13, + 0 + ] + } + }, + { + "key": "con_x6.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_x6.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x6.game:totalRaces", + "value": 0 + }, + { + "key": "con_x6.game:turtleData", + "value": { + "Red": { + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + "Green": { + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + "Blue": { + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + "Yellow": { + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + "Purple": { + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + } + }, + { + "key": "con_x7.__code__", + "value": "random.seed()\n__game = Hash(contract='con_x7', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_x7', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_x7', name='bets')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData', 'Red', 'price'] = 10\n __game['turtleData', 'Red', 'probability'] = decimal('0.25')\n __game['turtleData', 'Green', 'price'] = 20\n __game['turtleData', 'Green', 'probability'] = decimal('0.2')\n __game['turtleData', 'Blue', 'price'] = 15\n __game['turtleData', 'Blue', 'probability'] = decimal('0.25')\n __game['turtleData', 'Yellow', 'price'] = 5\n __game['turtleData', 'Yellow', 'probability'] = decimal('0.15')\n __game['turtleData', 'Purple', 'price'] = 50\n __game['turtleData', 'Purple', 'probability'] = decimal('0.15')\n\n\n@__export('con_x7')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert __game['turtleData', turtle_name, 'price'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData', turtle_name, 'price']\n assert amount > 0, 'Bet amount must be greater than zero'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n __bets[turtle_name] += amount\n\n\n@__export('con_x7')\ndef start_race():\n racing_turtles = []\n probabilities = []\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __turtleOwners[turtle_name] is not None:\n racing_turtles.append(turtle_name)\n probabilities.append(__game['turtleData', turtle_name,\n 'probability'])\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n winning_turtle = random.choices(racing_turtles, weights=probabilities, k=1\n )[0]\n total_bet_pool = sum(__bets.values())\n winnings = total_bet_pool * (1 - __game['commission'])\n winner = __turtleOwners[winning_turtle]\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=winner)\n __game['totalRaces'] += 1\n __bets.clear()\n __turtleOwners.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_x7')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_x7')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_x7.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x7.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 3, + 8, + 48, + 0 + ] + } + }, + { + "key": "con_x7.bets:Green", + "value": 20 + }, + { + "key": "con_x7.bets:Red", + "value": 10 + }, + { + "key": "con_x7.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_x7.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x7.game:totalRaces", + "value": 0 + }, + { + "key": "con_x7.game:turtleData:Blue:price", + "value": 15 + }, + { + "key": "con_x7.game:turtleData:Blue:probability", + "value": { + "__fixed__": "0.25" + } + }, + { + "key": "con_x7.game:turtleData:Green:price", + "value": 20 + }, + { + "key": "con_x7.game:turtleData:Green:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_x7.game:turtleData:Purple:price", + "value": 50 + }, + { + "key": "con_x7.game:turtleData:Purple:probability", + "value": { + "__fixed__": "0.15" + } + }, + { + "key": "con_x7.game:turtleData:Red:price", + "value": 10 + }, + { + "key": "con_x7.game:turtleData:Red:probability", + "value": { + "__fixed__": "0.25" + } + }, + { + "key": "con_x7.game:turtleData:Yellow:price", + "value": 5 + }, + { + "key": "con_x7.game:turtleData:Yellow:probability", + "value": { + "__fixed__": "0.15" + } + }, + { + "key": "con_x7.turtleOwners:Green", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x7.turtleOwners:Red", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x8.__code__", + "value": "random.seed()\n__game = Hash(contract='con_x8', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_x8', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_x8', name='bets')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData', 'Red', 'price'] = 10\n __game['turtleData', 'Red', 'probability'] = decimal('0.25')\n __game['turtleData', 'Green', 'price'] = 20\n __game['turtleData', 'Green', 'probability'] = decimal('0.2')\n __game['turtleData', 'Blue', 'price'] = 15\n __game['turtleData', 'Blue', 'probability'] = decimal('0.25')\n __game['turtleData', 'Yellow', 'price'] = 5\n __game['turtleData', 'Yellow', 'probability'] = decimal('0.15')\n __game['turtleData', 'Purple', 'price'] = 50\n __game['turtleData', 'Purple', 'probability'] = decimal('0.15')\n\n\n@__export('con_x8')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert __game['turtleData', turtle_name, 'price'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData', turtle_name, 'price']\n assert amount > 0, 'Bet amount must be greater than zero'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n __bets[turtle_name] += amount\n\n\n@__export('con_x8')\ndef start_race():\n racing_turtles = []\n probabilities = []\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __turtleOwners[turtle_name] is not None:\n racing_turtles.append(turtle_name)\n probabilities.append(__game['turtleData', turtle_name,\n 'probability'])\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n cumulative_probabilities = []\n cumulative_sum = 0\n for probability in probabilities:\n cumulative_sum += probability\n cumulative_probabilities.append(cumulative_sum)\n random_number = random.randint(0, 100) / decimal('100.0')\n winning_turtle = None\n index = 0\n for cumulative_probability in cumulative_probabilities:\n if random_number <= cumulative_probability:\n winning_turtle = racing_turtles[index]\n break\n index += 1\n total_bet_pool = sum(__bets.values())\n winnings = total_bet_pool * (1 - __game['commission'])\n winner = __turtleOwners[winning_turtle]\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=winner)\n __game['totalRaces'] += 1\n __bets.clear()\n __turtleOwners.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_x8')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_x8')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_x8.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x8.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 3, + 26, + 46, + 0 + ] + } + }, + { + "key": "con_x8.bets:Green", + "value": 20 + }, + { + "key": "con_x8.bets:Red", + "value": 10 + }, + { + "key": "con_x8.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_x8.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x8.game:totalRaces", + "value": 0 + }, + { + "key": "con_x8.game:turtleData:Blue:price", + "value": 15 + }, + { + "key": "con_x8.game:turtleData:Blue:probability", + "value": { + "__fixed__": "0.25" + } + }, + { + "key": "con_x8.game:turtleData:Green:price", + "value": 20 + }, + { + "key": "con_x8.game:turtleData:Green:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_x8.game:turtleData:Purple:price", + "value": 50 + }, + { + "key": "con_x8.game:turtleData:Purple:probability", + "value": { + "__fixed__": "0.15" + } + }, + { + "key": "con_x8.game:turtleData:Red:price", + "value": 10 + }, + { + "key": "con_x8.game:turtleData:Red:probability", + "value": { + "__fixed__": "0.25" + } + }, + { + "key": "con_x8.game:turtleData:Yellow:price", + "value": 5 + }, + { + "key": "con_x8.game:turtleData:Yellow:probability", + "value": { + "__fixed__": "0.15" + } + }, + { + "key": "con_x8.turtleOwners:Green", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x8.turtleOwners:Red", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x9.__code__", + "value": "random.seed()\n__game = Hash(contract='con_x9', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_x9', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_x9', name='bets')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData', 'Red', 'price'] = 10\n __game['turtleData', 'Red', 'probability'] = decimal('0.25')\n __game['turtleData', 'Green', 'price'] = 20\n __game['turtleData', 'Green', 'probability'] = decimal('0.2')\n __game['turtleData', 'Blue', 'price'] = 15\n __game['turtleData', 'Blue', 'probability'] = decimal('0.25')\n __game['turtleData', 'Yellow', 'price'] = 5\n __game['turtleData', 'Yellow', 'probability'] = decimal('0.15')\n __game['turtleData', 'Purple', 'price'] = 50\n __game['turtleData', 'Purple', 'probability'] = decimal('0.15')\n\n\n@__export('con_x9')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert __game['turtleData', turtle_name, 'price'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData', turtle_name, 'price']\n assert amount > 0, 'Bet amount must be greater than zero'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n __bets[turtle_name] += amount\n\n\n@__export('con_x9')\ndef start_race():\n racing_turtles = []\n probabilities = []\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __turtleOwners[turtle_name] is not None:\n racing_turtles.append(turtle_name)\n probabilities.append(__game['turtleData', turtle_name,\n 'probability'])\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n cumulative_probabilities = []\n cumulative_sum = 0\n for probability in probabilities:\n cumulative_sum += probability\n cumulative_probabilities.append(cumulative_sum)\n random_number = random.randint(0, 100) / decimal('100.0')\n winning_turtle = None\n index = 0\n for cumulative_probability in cumulative_probabilities:\n if random_number <= cumulative_probability:\n winning_turtle = racing_turtles[index]\n break\n index += 1\n total_bet_pool = 0\n for turtle_name in ['Red', 'Green', 'Blue', 'Yellow', 'Purple']:\n if __bets[turtle_name] > 0:\n total_bet_pool += __bets[turtle_name]\n winnings = total_bet_pool * (1 - __game['commission'])\n winner = __turtleOwners[winning_turtle]\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=winner)\n __game['totalRaces'] += 1\n __bets.clear()\n __turtleOwners.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_x9')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_x9')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_x9.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x9.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 3, + 31, + 23, + 0 + ] + } + }, + { + "key": "con_x9.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_x9.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_x9.game:totalRaces", + "value": 1 + }, + { + "key": "con_x9.game:turtleData:Blue:price", + "value": 15 + }, + { + "key": "con_x9.game:turtleData:Blue:probability", + "value": { + "__fixed__": "0.25" + } + }, + { + "key": "con_x9.game:turtleData:Green:price", + "value": 20 + }, + { + "key": "con_x9.game:turtleData:Green:probability", + "value": { + "__fixed__": "0.2" + } + }, + { + "key": "con_x9.game:turtleData:Purple:price", + "value": 50 + }, + { + "key": "con_x9.game:turtleData:Purple:probability", + "value": { + "__fixed__": "0.15" + } + }, + { + "key": "con_x9.game:turtleData:Red:price", + "value": 10 + }, + { + "key": "con_x9.game:turtleData:Red:probability", + "value": { + "__fixed__": "0.25" + } + }, + { + "key": "con_x9.game:turtleData:Yellow:price", + "value": 5 + }, + { + "key": "con_x9.game:turtleData:Yellow:probability", + "value": { + "__fixed__": "0.15" + } + }, + { + "key": "con_xiandoge.__code__", + "value": "__balances = Hash(default_value=0, contract='con_xiandoge', name='balances')\n__metadata = Hash(contract='con_xiandoge', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'xiandoge'\n __metadata['token_symbol'] = 'xiandoge'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_xiandoge')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_xiandoge')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_xiandoge')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_xiandoge')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_xiandoge')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_xiandoge.__developer__", + "value": "07410c69dfccb05c05b415a33d6d61d8c1105aa783b8a154d4d31fe3b2ffc5bb" + }, + { + "key": "con_xiandoge.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 7, + 2, + 42, + 21, + 0 + ] + } + }, + { + "key": "con_xiandoge.balances:07410c69dfccb05c05b415a33d6d61d8c1105aa783b8a154d4d31fe3b2ffc5bb", + "value": 1000000 + }, + { + "key": "con_xiandoge.metadata:operator", + "value": "07410c69dfccb05c05b415a33d6d61d8c1105aa783b8a154d4d31fe3b2ffc5bb" + }, + { + "key": "con_xiandoge.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_xiandoge.metadata:token_name", + "value": "xiandoge" + }, + { + "key": "con_xiandoge.metadata:token_symbol", + "value": "xiandoge" + }, + { + "key": "con_xiandoge.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_xianyu.__code__", + "value": "__balances = Hash(default_value=0, contract='con_xianyu', name='balances')\n__metadata = Hash(contract='con_xianyu', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 1000000\n __metadata['token_name'] = 'xianyu'\n __metadata['token_symbol'] = 'xianyu'\n __metadata['token_logo_url'] = 'https://some.token.url/test-token.png'\n __metadata['token_website'] = 'https://some.token.url'\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_xianyu')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_xianyu')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_xianyu')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_xianyu')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_xianyu')\ndef balance_of(address: str):\n return __balances[address]\n" + }, + { + "key": "con_xianyu.__developer__", + "value": "07410c69dfccb05c05b415a33d6d61d8c1105aa783b8a154d4d31fe3b2ffc5bb" + }, + { + "key": "con_xianyu.__submitted__", + "value": { + "__time__": [ + 2024, + 10, + 7, + 2, + 44, + 25, + 0 + ] + } + }, + { + "key": "con_xianyu.balances:07410c69dfccb05c05b415a33d6d61d8c1105aa783b8a154d4d31fe3b2ffc5bb", + "value": 1000000 + }, + { + "key": "con_xianyu.metadata:operator", + "value": "07410c69dfccb05c05b415a33d6d61d8c1105aa783b8a154d4d31fe3b2ffc5bb" + }, + { + "key": "con_xianyu.metadata:token_logo_url", + "value": "https://some.token.url/test-token.png" + }, + { + "key": "con_xianyu.metadata:token_name", + "value": "xianyu" + }, + { + "key": "con_xianyu.metadata:token_symbol", + "value": "xianyu" + }, + { + "key": "con_xianyu.metadata:token_website", + "value": "https://some.token.url" + }, + { + "key": "con_xl2.__code__", + "value": "random.seed()\n__game = Hash(contract='con_xl2', name='game')\n__bets = Hash(default_value=0, contract='con_xl2', name='bets')\n__participants = Hash(contract='con_xl2', name='participants')\n__turtle_owners = Hash(default_value=None, contract='con_xl2', name=\n 'turtle_owners')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['total_races'] = 0\n __game['allowed_tokens'] = ['currency']\n __game['commission'] = decimal('0.02')\n __game['turtle_data'] = {'Red': {'price': 10, 'probability': decimal(\n '0.25')}, 'Green': {'price': 20, 'probability': decimal('0.2')},\n 'Blue': {'price': 15, 'probability': decimal('0.25')}, 'Yellow': {\n 'price': 5, 'probability': decimal('0.15')}, 'Purple': {'price': 50,\n 'probability': decimal('0.15')}}\n\n\n@__export('con_xl2')\ndef buy_turtle(turtle: str, token_contract: str):\n assert turtle in __game['turtle_data'], 'Invalid turtle'\n assert __turtle_owners[turtle\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtle_data'][turtle]['price']\n assert token_contract in __game['allowed_tokens'], 'Token not allowed'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtle_owners[turtle] = ctx.caller\n\n\n@__export('con_xl2')\ndef start_race():\n assert ctx.caller == __game['owner'], 'Only the owner can start the race'\n racing_turtles = list({key[1] for key in __bets.keys()})\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n turtles = list(__game['turtle_data'].keys())\n probabilities = [__game['turtle_data'][turtle]['probability'] for\n turtle in turtles]\n winning_turtle = random.choices(turtles, weights=probabilities, k=1)[0]\n total_bet_pool = sum(__bets.values())\n winnings = total_bet_pool * (1 - __game['commission'])\n for key in __bets.keys():\n player, turtle = key\n if turtle == winning_turtle:\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=player)\n break\n __game['total_races'] += 1\n __bets.clear()\n __participants.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_xl2')\ndef get_participants():\n \"\"\"Return the number of unique participants in the race.\"\"\"\n return len([p for p in __participants if __participants[p]])\n\n\n@__export('con_xl2')\ndef get_total_bets():\n \"\"\"Return the total amount of money currently bet on the race.\"\"\"\n return sum(__bets.values())\n\n\n@__export('con_xl2')\ndef get_turtle_owners():\n \"\"\"Return a dictionary of turtles and their current owners.\"\"\"\n return {turtle: owner for turtle, owner in __turtle_owners.items() if \n owner is not None}\n\n\n@__export('con_xl2')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_xl2')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_xl2.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl2.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 2, + 22, + 59, + 0 + ] + } + }, + { + "key": "con_xl2.game:allowed_tokens", + "value": [ + "currency" + ] + }, + { + "key": "con_xl2.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_xl2.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl2.game:total_races", + "value": 0 + }, + { + "key": "con_xl2.game:turtle_data", + "value": { + "Red": { + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + "Green": { + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + "Blue": { + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + "Yellow": { + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + "Purple": { + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + } + }, + { + "key": "con_xl2.turtle_owners:Green", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl2.turtle_owners:Red", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl3.__code__", + "value": "random.seed()\n__game = Hash(contract='con_xl3', name='game')\n__bets = Hash(default_value=0, contract='con_xl3', name='bets')\n__participants = Hash(contract='con_xl3', name='participants')\n__turtleOwners = Hash(default_value=None, contract='con_xl3', name=\n 'turtleOwners')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['allowedTokens'] = ['currency']\n __game['commission'] = decimal('0.02')\n __game['turtleData'] = [{'name': 'Red', 'price': 10, 'probability':\n decimal('0.25')}, {'name': 'Green', 'price': 20, 'probability':\n decimal('0.2')}, {'name': 'Blue', 'price': 15, 'probability':\n decimal('0.25')}, {'name': 'Yellow', 'price': 5, 'probability':\n decimal('0.15')}, {'name': 'Purple', 'price': 50, 'probability':\n decimal('0.15')}]\n\n\n@__export('con_xl3')\ndef buyTurtle(turtleName: str, tokenContract: str):\n turtle = None\n for t in __game['turtleData']:\n if t['name'] == turtleName:\n turtle = t\n break\n assert turtle is not None, 'Invalid turtle'\n assert __turtleOwners[turtleName\n ] is None, 'Turtle already owned by another player'\n amount = turtle['price']\n assert tokenContract in __game['allowedTokens'], 'Token not allowed'\n token = importlib.import_module(tokenContract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtleName] = ctx.caller\n\n\n@__export('con_xl3')\ndef startRace():\n assert ctx.caller == __game['owner'], 'Only the owner can start the race'\n racingTurtles = set()\n for key in __bets:\n player, turtleName = key\n racingTurtles.add(turtleName)\n assert len(racingTurtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n probabilities = [t['probability'] for t in __game['turtleData']]\n turtles = [t['name'] for t in __game['turtleData']]\n winningTurtle = random.choices(turtles, weights=probabilities, k=1)[0]\n totalBetPool = sum(__bets.values())\n winnings = totalBetPool * (1 - __game['commission'])\n for key in __bets:\n player, turtleName = key\n if turtleName == winningTurtle:\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=player)\n break\n __game['totalRaces'] += 1\n __bets.clear()\n __participants.clear()\n return f'The {winningTurtle} Turtle wins!'\n\n\n@__export('con_xl3')\ndef getParticipants():\n \"\"\"Return the number of unique participants in the race.\"\"\"\n return len([p for p in __participants if __participants[p]])\n\n\n@__export('con_xl3')\ndef getTotalBets():\n \"\"\"Return the total amount of money currently bet on the race.\"\"\"\n return sum(__bets.values())\n\n\n@__export('con_xl3')\ndef getTurtleOwners():\n \"\"\"Return a dictionary of turtles and their current owners.\"\"\"\n return {turtle: owner for turtle, owner in __turtleOwners.items() if \n owner is not None}\n\n\n@__export('con_xl3')\ndef changeOwner(newOwner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = newOwner\n\n\n@__export('con_xl3')\ndef changeCommission(newCommission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= newCommission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = newCommission\n" + }, + { + "key": "con_xl3.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl3.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 2, + 32, + 32, + 0 + ] + } + }, + { + "key": "con_xl3.game:allowedTokens", + "value": [ + "currency" + ] + }, + { + "key": "con_xl3.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_xl3.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl3.game:totalRaces", + "value": 0 + }, + { + "key": "con_xl3.game:turtleData", + "value": [ + { + "name": "Red", + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + { + "name": "Green", + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + { + "name": "Blue", + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + { + "name": "Yellow", + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + { + "name": "Purple", + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + ] + }, + { + "key": "con_xl3.turtleOwners:Green", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl3.turtleOwners:Red", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl4.__code__", + "value": "random.seed()\n__game = Hash(contract='con_xl4', name='game')\n__bets = Hash(default_value=0, contract='con_xl4', name='bets')\n__participants = Hash(contract='con_xl4', name='participants')\n__turtleOwners = Hash(default_value=None, contract='con_xl4', name=\n 'turtleOwners')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['allowedTokens'] = ['currency']\n __game['commission'] = decimal('0.02')\n __game['turtleData'] = [{'name': 'Red', 'price': 10, 'probability':\n decimal('0.25')}, {'name': 'Green', 'price': 20, 'probability':\n decimal('0.2')}, {'name': 'Blue', 'price': 15, 'probability':\n decimal('0.25')}, {'name': 'Yellow', 'price': 5, 'probability':\n decimal('0.15')}, {'name': 'Purple', 'price': 50, 'probability':\n decimal('0.15')}]\n\n\n@__export('con_xl4')\ndef buyTurtle(turtleName: str, tokenContract: str):\n turtle = None\n for t in __game['turtleData']:\n if t['name'] == turtleName:\n turtle = t\n break\n assert turtle is not None, 'Invalid turtle'\n assert __turtleOwners[turtleName\n ] is None, 'Turtle already owned by another player'\n amount = turtle['price']\n assert tokenContract in __game['allowedTokens'], 'Token not allowed'\n token = importlib.import_module(tokenContract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtleName] = ctx.caller\n\n\n@__export('con_xl4')\ndef startRace():\n assert ctx.caller == __game['owner'], 'Only the owner can start the race'\n racingTurtles = set()\n for key in __bets:\n turtleName = key[1]\n racingTurtles.add(turtleName)\n assert len(racingTurtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n probabilities = [t['probability'] for t in __game['turtleData']]\n turtles = [t['name'] for t in __game['turtleData']]\n winningTurtle = random.choices(turtles, weights=probabilities, k=1)[0]\n totalBetPool = sum(__bets.values())\n winnings = totalBetPool * (1 - __game['commission'])\n for key, amount in __bets.items():\n player, turtleName = key\n if turtleName == winningTurtle:\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=player)\n break\n __game['totalRaces'] += 1\n __bets.clear()\n __participants.clear()\n return f'The {winningTurtle} Turtle wins!'\n\n\n@__export('con_xl4')\ndef getParticipants():\n \"\"\"Return the number of unique participants in the race.\"\"\"\n return len([p for p in __participants if __participants[p]])\n\n\n@__export('con_xl4')\ndef getTotalBets():\n \"\"\"Return the total amount of money currently bet on the race.\"\"\"\n return sum(__bets.values())\n\n\n@__export('con_xl4')\ndef getTurtleOwners():\n \"\"\"Return a dictionary of turtles and their current owners.\"\"\"\n return {turtle: owner for turtle, owner in __turtleOwners.items() if \n owner is not None}\n\n\n@__export('con_xl4')\ndef changeOwner(newOwner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = newOwner\n\n\n@__export('con_xl4')\ndef changeCommission(newCommission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= newCommission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = newCommission\n" + }, + { + "key": "con_xl4.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl4.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 2, + 34, + 39, + 0 + ] + } + }, + { + "key": "con_xl4.game:allowedTokens", + "value": [ + "currency" + ] + }, + { + "key": "con_xl4.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_xl4.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl4.game:totalRaces", + "value": 0 + }, + { + "key": "con_xl4.game:turtleData", + "value": [ + { + "name": "Red", + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + { + "name": "Green", + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + { + "name": "Blue", + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + { + "name": "Yellow", + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + { + "name": "Purple", + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + ] + }, + { + "key": "con_xl4.turtleOwners:Green", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl4.turtleOwners:Red", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl5.__code__", + "value": "random.seed()\n__game = Hash(contract='con_xl5', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_xl5', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_xl5', name='bets')\n__participants = Hash(default_value=False, contract='con_xl5', name=\n 'participants')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData'] = {'Red': {'price': 10, 'probability': decimal(\n '0.25')}, 'Green': {'price': 20, 'probability': decimal('0.2')},\n 'Blue': {'price': 15, 'probability': decimal('0.25')}, 'Yellow': {\n 'price': 5, 'probability': decimal('0.15')}, 'Purple': {'price': 50,\n 'probability': decimal('0.15')}}\n\n\n@__export('con_xl5')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert turtle_name in __game['turtleData'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData'][turtle_name]['price']\n assert token_contract == 'currency', 'Token not allowed'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n\n\n@__export('con_xl5')\ndef start_race():\n assert ctx.caller == __game['owner'], 'Only the owner can start the race'\n racing_turtles = set()\n for key in __bets:\n racing_turtles.add(key[1])\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n turtle_names = list(__game['turtleData'].keys())\n probabilities = [__game['turtleData'][turtle]['probability'] for turtle in\n turtle_names]\n winning_turtle = random.choices(turtle_names, weights=probabilities, k=1)[0\n ]\n total_bet_pool = sum(__bets.values())\n winnings = total_bet_pool * (1 - __game['commission'])\n for key in __bets:\n player, turtle_name = key\n if turtle_name == winning_turtle:\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=player)\n break\n __game['totalRaces'] += 1\n __bets.clear()\n __participants.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_xl5')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_xl5')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_xl5.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl5.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 2, + 36, + 54, + 0 + ] + } + }, + { + "key": "con_xl5.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_xl5.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl5.game:totalRaces", + "value": 0 + }, + { + "key": "con_xl5.game:turtleData", + "value": { + "Red": { + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + "Green": { + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + "Blue": { + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + "Yellow": { + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + "Purple": { + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + } + }, + { + "key": "con_xl6.__code__", + "value": "random.seed()\n__game = Hash(contract='con_xl6', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_xl6', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_xl6', name='bets')\n__participants = Hash(default_value=False, contract='con_xl6', name=\n 'participants')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['turtleData'] = {'Red': {'price': 10, 'probability': decimal(\n '0.25')}, 'Green': {'price': 20, 'probability': decimal('0.2')},\n 'Blue': {'price': 15, 'probability': decimal('0.25')}, 'Yellow': {\n 'price': 5, 'probability': decimal('0.15')}, 'Purple': {'price': 50,\n 'probability': decimal('0.15')}}\n\n\n@__export('con_xl6')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert turtle_name in __game['turtleData'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData'][turtle_name]['price']\n assert token_contract == 'currency', 'Token not allowed'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n\n\n@__export('con_xl6')\ndef start_race():\n assert ctx.caller == __game['owner'], 'Only the owner can start the race'\n racing_turtles = set()\n for key in __bets:\n player_turtle_pair = key\n turtle_name = player_turtle_pair[1]\n racing_turtles.add(turtle_name)\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n turtle_names = list(__game['turtleData'].keys())\n probabilities = [__game['turtleData'][turtle]['probability'] for turtle in\n turtle_names]\n winning_turtle = random.choices(turtle_names, weights=probabilities, k=1)[0\n ]\n total_bet_pool = sum(__bets.values())\n winnings = total_bet_pool * (1 - __game['commission'])\n for key in __bets:\n player, turtle_name = key\n if turtle_name == winning_turtle:\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=player)\n break\n __game['totalRaces'] += 1\n __bets.clear()\n __participants.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_xl6')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_xl6')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_xl6.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl6.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 2, + 41, + 35, + 0 + ] + } + }, + { + "key": "con_xl6.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_xl6.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl6.game:totalRaces", + "value": 0 + }, + { + "key": "con_xl6.game:turtleData", + "value": { + "Red": { + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + "Green": { + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + "Blue": { + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + "Yellow": { + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + "Purple": { + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + } + }, + { + "key": "con_xl8.__code__", + "value": "random.seed()\n__game = Hash(contract='con_xl8', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_xl8', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_xl8', name='bets')\n__participants = Hash(default_value=False, contract='con_xl8', name=\n 'participants')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['allowedTokens'] = ['currency']\n __game['turtleData'] = {'Red': {'price': 10, 'probability': decimal(\n '0.25')}, 'Green': {'price': 20, 'probability': decimal('0.2')},\n 'Blue': {'price': 15, 'probability': decimal('0.25')}, 'Yellow': {\n 'price': 5, 'probability': decimal('0.15')}, 'Purple': {'price': 50,\n 'probability': decimal('0.15')}}\n\n\n@__export('con_xl8')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert turtle_name in __game['turtleData'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData'][turtle_name]['price']\n assert token_contract in __game['allowedTokens'], 'Token not allowed'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n\n\n@__export('con_xl8')\ndef start_race():\n assert ctx.caller == __game['owner'], 'Only the owner can start the race'\n racing_turtles = set()\n for key in __bets:\n turtle_name = key[1] if isinstance(key, tuple) and len(key\n ) > 1 else key\n racing_turtles.add(turtle_name)\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n turtle_names = list(__game['turtleData'].keys())\n probabilities = [__game['turtleData'][turtle]['probability'] for turtle in\n turtle_names]\n winning_turtle = random.choices(turtle_names, weights=probabilities, k=1)[0\n ]\n total_bet_pool = sum(__bets.values())\n winnings = total_bet_pool * (1 - __game['commission'])\n for key in __bets:\n player = key[0] if isinstance(key, tuple) else key\n turtle_name = key[1] if isinstance(key, tuple) and len(key\n ) > 1 else key\n if turtle_name == winning_turtle:\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=player)\n break\n __game['totalRaces'] += 1\n __bets.clear()\n __participants.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_xl8')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_xl8')\ndef change_allowed_tokens(tokens: list):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the allowed tokens'\n __game['allowedTokens'] = tokens\n\n\n@__export('con_xl8')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_xl8.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl8.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 2, + 44, + 15, + 0 + ] + } + }, + { + "key": "con_xl8.game:allowedTokens", + "value": [ + "currency" + ] + }, + { + "key": "con_xl8.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_xl8.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl8.game:totalRaces", + "value": 0 + }, + { + "key": "con_xl8.game:turtleData", + "value": { + "Red": { + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + "Green": { + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + "Blue": { + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + "Yellow": { + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + "Purple": { + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + } + }, + { + "key": "con_xl9.__code__", + "value": "random.seed()\n__game = Hash(contract='con_xl9', name='game')\n__turtleOwners = Hash(default_value=None, contract='con_xl9', name=\n 'turtleOwners')\n__bets = Hash(default_value=0, contract='con_xl9', name='bets')\n__participants = Hash(default_value=False, contract='con_xl9', name=\n 'participants')\n\n\ndef ____():\n __game['owner'] = ctx.caller\n __game['totalRaces'] = 0\n __game['commission'] = decimal('0.02')\n __game['allowedTokens'] = ['currency']\n __game['turtleData'] = {'Red': {'price': 10, 'probability': decimal(\n '0.25')}, 'Green': {'price': 20, 'probability': decimal('0.2')},\n 'Blue': {'price': 15, 'probability': decimal('0.25')}, 'Yellow': {\n 'price': 5, 'probability': decimal('0.15')}, 'Purple': {'price': 50,\n 'probability': decimal('0.15')}}\n\n\n@__export('con_xl9')\ndef buy_turtle(turtle_name: str, token_contract: str):\n assert turtle_name in __game['turtleData'], 'Invalid turtle'\n assert __turtleOwners[turtle_name\n ] is None, 'Turtle already owned by another player'\n amount = __game['turtleData'][turtle_name]['price']\n assert token_contract in __game['allowedTokens'], 'Token not allowed'\n token = importlib.import_module(token_contract)\n token.transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller)\n __turtleOwners[turtle_name] = ctx.caller\n\n\n@__export('con_xl9')\ndef start_race():\n assert ctx.caller == __game['owner'], 'Only the owner can start the race'\n racing_turtles = {key for key in __bets}\n assert len(racing_turtles\n ) >= 2, 'At least two turtles must have bets to start the race'\n turtle_names = list(__game['turtleData'].keys())\n probabilities = [__game['turtleData'][turtle]['probability'] for turtle in\n turtle_names]\n winning_turtle = random.choices(turtle_names, weights=probabilities, k=1)[0\n ]\n total_bet_pool = sum(__bets.values())\n winnings = total_bet_pool * (1 - __game['commission'])\n for player, turtle_name in __bets:\n if turtle_name == winning_turtle:\n token = importlib.import_module('currency')\n token.transfer(amount=winnings, to=player)\n break\n __game['totalRaces'] += 1\n __bets.clear()\n __participants.clear()\n return f'The {winning_turtle} Turtle wins!'\n\n\n@__export('con_xl9')\ndef change_owner(new_owner: str):\n assert ctx.caller == __game['owner'], 'Only the owner can change the owner'\n __game['owner'] = new_owner\n\n\n@__export('con_xl9')\ndef change_allowed_tokens(tokens: list):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the allowed tokens'\n __game['allowedTokens'] = tokens\n\n\n@__export('con_xl9')\ndef change_commission(new_commission: float):\n assert ctx.caller == __game['owner'\n ], 'Only the owner can change the commission'\n assert 0 <= new_commission < 1, 'Commission must be between 0 and 1'\n __game['commission'] = new_commission\n" + }, + { + "key": "con_xl9.__developer__", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl9.__submitted__", + "value": { + "__time__": [ + 2024, + 11, + 11, + 2, + 46, + 22, + 0 + ] + } + }, + { + "key": "con_xl9.game:allowedTokens", + "value": [ + "currency" + ] + }, + { + "key": "con_xl9.game:commission", + "value": { + "__fixed__": "0.02" + } + }, + { + "key": "con_xl9.game:owner", + "value": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b" + }, + { + "key": "con_xl9.game:totalRaces", + "value": 0 + }, + { + "key": "con_xl9.game:turtleData", + "value": { + "Red": { + "price": 10, + "probability": { + "__fixed__": "0.25" + } + }, + "Green": { + "price": 20, + "probability": { + "__fixed__": "0.2" + } + }, + "Blue": { + "price": 15, + "probability": { + "__fixed__": "0.25" + } + }, + "Yellow": { + "price": 5, + "probability": { + "__fixed__": "0.15" + } + }, + "Purple": { + "price": 50, + "probability": { + "__fixed__": "0.15" + } + } + } + }, + { + "key": "currency.__code__", + "value": "__balances = Hash(default_value=0, contract='currency', name='balances')\n__metadata = Hash(contract='currency', name='metadata')\n__permits = Hash(contract='currency', name='permits')\n__streams = Hash(contract='currency', name='streams')\nSENDER_KEY = 'sender'\nRECEIVER_KEY = 'receiver'\nSTATUS_KEY = 'status'\nBEGIN_KEY = 'begins'\nCLOSE_KEY = 'closes'\nRATE_KEY = 'rate'\nCLAIMED_KEY = 'claimed'\nSTREAM_ACTIVE = 'active'\nSTREAM_FINALIZED = 'finalized'\nSTREAM_FORFEIT = 'forfeit'\n\n\ndef ____(vk: str):\n __balances[vk] = decimal('5555555.55')\n __balances['team_lock'] = decimal('16666666.65')\n __balances['dao'] = decimal('33333333.3')\n __balances[vk] += decimal('49999999.95')\n __balances[vk] += decimal('5555555.55')\n __setup_seed_stream('team_lock', 'team_lock', vk, decimal(\n '0.10575725568804825'), 1824)\n\n\ndef __setup_seed_stream(stream_id: str, sender: str, receiver: str, rate:\n float, duration_days: int):\n __streams[stream_id, 'status'] = 'active'\n __streams[stream_id, 'begins'] = now\n __streams[stream_id, 'closes'] = now + datetime.timedelta(days=\n duration_days)\n __streams[stream_id, 'receiver'] = receiver\n __streams[stream_id, 'sender'] = sender\n __streams[stream_id, 'rate'] = rate\n __streams[stream_id, 'claimed'] = 0\n\n\n@__export('currency')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances.'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send.'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n\n\n@__export('currency')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances.'\n __balances[ctx.caller, to] += amount\n\n\n@__export('currency')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances.'\n assert __balances[main_account, ctx.caller\n ] >= amount, f'Not enough coins approved to send. You have {__balances[main_account, ctx.caller]} and are trying to spend {amount}'\n assert __balances[main_account] >= amount, 'Not enough coins to send.'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n\n\n@__export('currency')\ndef balance_of(address: str):\n return __balances[address]\n\n\n@__export('currency')\ndef permit(owner: str, spender: str, value: float, deadline: str, signature:\n str):\n deadline = __strptime_ymdhms(deadline)\n permit_msg = __construct_permit_msg(owner, spender, value, str(deadline))\n permit_hash = hashlib.sha3(permit_msg)\n assert __permits[permit_hash] is None, 'Permit can only be used once.'\n assert now < deadline, 'Permit has expired.'\n assert crypto.verify(owner, permit_msg, signature), 'Invalid signature.'\n __balances[owner, spender] += value\n __permits[permit_hash] = True\n return f'Permit granted for {value} to {spender} from {owner}'\n\n\ndef __construct_permit_msg(owner: str, spender: str, value: float, deadline:\n str):\n return f'{owner}:{spender}:{value}:{deadline}:{ctx.this}'\n\n\n@__export('currency')\ndef create_stream(receiver: str, rate: float, begins: str, closes: str):\n begins = __strptime_ymdhms(begins)\n closes = __strptime_ymdhms(closes)\n sender = ctx.caller\n stream_id = __perform_create_stream(sender, receiver, rate, begins, closes)\n return stream_id\n\n\ndef __perform_create_stream(sender: str, receiver: str, rate: float, begins:\n str, closes: str):\n stream_id = hashlib.sha3(f'{sender}:{receiver}:{begins}:{closes}:{rate}')\n assert __streams[stream_id, STATUS_KEY] is None, 'Stream already exists.'\n assert begins < closes, 'Stream cannot begin after the close date.'\n assert rate > 0, 'Rate must be greater than 0.'\n __streams[stream_id, STATUS_KEY] = STREAM_ACTIVE\n __streams[stream_id, BEGIN_KEY] = begins\n __streams[stream_id, CLOSE_KEY] = closes\n __streams[stream_id, RECEIVER_KEY] = receiver\n __streams[stream_id, SENDER_KEY] = sender\n __streams[stream_id, RATE_KEY] = rate\n __streams[stream_id, CLAIMED_KEY] = 0\n return stream_id\n\n\n@__export('currency')\ndef create_stream_from_permit(sender: str, receiver: str, rate: float,\n begins: str, closes: str, deadline: str, signature: str):\n begins = __strptime_ymdhms(begins)\n closes = __strptime_ymdhms(closes)\n deadline = __strptime_ymdhms(deadline)\n assert now < deadline, 'Permit has expired.'\n permit_msg = __construct_stream_permit_msg(sender, receiver, rate,\n begins, closes, deadline)\n permit_hash = hashlib.sha3(permit_msg)\n assert __permits[permit_hash] is None, 'Permit can only be used once.'\n assert crypto.verify(sender, permit_msg, signature), 'Invalid signature.'\n __permits[permit_hash] = True\n return __perform_create_stream(sender, receiver, rate, begins, closes)\n\n\n@__export('currency')\ndef balance_stream(stream_id: str):\n assert __streams[stream_id, STATUS_KEY], 'Stream does not exist.'\n assert __streams[stream_id, STATUS_KEY\n ] == STREAM_ACTIVE, 'You can only balance active streams.'\n assert now > __streams[stream_id, BEGIN_KEY], 'Stream has not started yet.'\n sender = __streams[stream_id, SENDER_KEY]\n receiver = __streams[stream_id, RECEIVER_KEY]\n assert ctx.caller in [sender, receiver\n ], 'Only sender or receiver can balance a stream.'\n closes = __streams[stream_id, CLOSE_KEY]\n begins = __streams[stream_id, BEGIN_KEY]\n rate = __streams[stream_id, RATE_KEY]\n claimed = __streams[stream_id, CLAIMED_KEY]\n outstanding_balance = __calc_outstanding_balance(begins, closes, rate,\n claimed)\n assert outstanding_balance > 0, 'No amount due on this stream.'\n claimable_amount = __calc_claimable_amount(outstanding_balance, sender)\n __balances[sender] -= claimable_amount\n __balances[receiver] += claimable_amount\n __streams[stream_id, CLAIMED_KEY] += claimable_amount\n return f'Claimed {claimable_amount} tokens from stream'\n\n\n@__export('currency')\ndef change_close_time(stream_id: str, new_close_time: str):\n new_close_time = __strptime_ymdhms(new_close_time)\n assert __streams[stream_id, STATUS_KEY], 'Stream does not exist.'\n assert __streams[stream_id, STATUS_KEY\n ] == STREAM_ACTIVE, 'Stream is not active.'\n sender = __streams[stream_id, SENDER_KEY]\n assert ctx.caller == sender, 'Only sender can extend the close time of a stream.'\n if new_close_time < __streams[stream_id, BEGIN_KEY] and now < __streams[\n stream_id, BEGIN_KEY]:\n __streams[stream_id, CLOSE_KEY] = __streams[stream_id, BEGIN_KEY]\n elif new_close_time <= now:\n __streams[stream_id, CLOSE_KEY] = now\n else:\n __streams[stream_id, CLOSE_KEY] = new_close_time\n return f'Changed close time of stream to {__streams[stream_id, CLOSE_KEY]}'\n\n\n@__export('currency')\ndef finalize_stream(stream_id: str):\n assert __streams[stream_id, STATUS_KEY], 'Stream does not exist.'\n assert __streams[stream_id, STATUS_KEY\n ] == STREAM_ACTIVE, 'Stream is not active.'\n sender = __streams[stream_id, 'sender']\n receiver = __streams[stream_id, 'receiver']\n assert ctx.caller in [sender, receiver\n ], 'Only sender or receiver can finalize a stream.'\n begins = __streams[stream_id, BEGIN_KEY]\n closes = __streams[stream_id, CLOSE_KEY]\n rate = __streams[stream_id, RATE_KEY]\n claimed = __streams[stream_id, CLAIMED_KEY]\n assert now <= closes, 'Stream has not closed yet.'\n outstanding_balance = __calc_outstanding_balance(begins, closes, rate,\n claimed)\n assert outstanding_balance == 0, 'Stream has outstanding balance.'\n __streams[stream_id, STATUS_KEY] = STREAM_FINALIZED\n return f'Finalized stream {stream_id}'\n\n\n@__export('currency')\ndef close_balance_finalize(stream_id: str):\n change_close_time(stream_id=stream_id, new_close_time=str(now))\n balance_finalize(stream_id=stream_id)\n\n\n@__export('currency')\ndef balance_finalize(stream_id: str):\n balance_stream(stream_id=stream_id)\n finalize_stream(stream_id=stream_id)\n\n\n@__export('currency')\ndef forfeit_stream(stream_id: str) ->str:\n assert __streams[stream_id, STATUS_KEY], 'Stream does not exist.'\n assert __streams[stream_id, STATUS_KEY\n ] == STREAM_ACTIVE, 'Stream is not active.'\n receiver = __streams[stream_id, RECEIVER_KEY]\n assert ctx.caller == receiver, 'Only receiver can forfeit a stream.'\n __streams[stream_id, STATUS_KEY] = STREAM_FORFEIT\n __streams[stream_id, CLOSE_KEY] = now\n return f'Forfeit stream {stream_id}'\n\n\ndef __calc_outstanding_balance(begins: str, closes: str, rate: float,\n claimed: float) ->float:\n begins = begins\n closes = closes\n claimable_end_point = now if now < closes else closes\n claimable_period = claimable_end_point - begins\n claimable_seconds = claimable_period.seconds\n amount_due = rate * claimable_seconds - claimed\n return amount_due\n\n\ndef __calc_claimable_amount(amount_due: float, sender: str) ->float:\n return amount_due if amount_due < __balances[sender] else __balances[sender\n ]\n\n\ndef __construct_stream_permit_msg(sender: str, receiver: str, rate: float,\n begins: str, closes: str, deadline: str) ->str:\n return (\n f'{sender}:{receiver}:{rate}:{begins}:{closes}:{deadline}:{ctx.this}')\n\n\ndef __strptime_ymdhms(date_string: str) ->datetime.datetime:\n return datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')\n" + }, + { + "key": "currency.__developer__", + "value": "sys" + }, + { + "key": "currency.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 10, + 13, + 39, + 0, + 0 + ] + } + }, + { + "key": "currency.balances:0", + "value": { + "__fixed__": "0.01" + } + }, + { + "key": "currency.balances:0028f9cd0706ff84706daa386212a26be4174407de7a06f91efe83ab8f57d400", + "value": { + "__fixed__": "0.5257475067500000002" + } + }, + { + "key": "currency.balances:00905c7a1e8eafbacb068b40c2d8db5a1673499c4f04fbdf4c9ce03576a2d99b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:00994ff9c9c44f638c14eea6c061a0a68f68dfe64ea31c13305ab0c775a1144a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:009a51940e0271d9e9e89a59114c772c30a59f5dc7b4dd6835b537873ce5bcf2", + "value": { + "__fixed__": "13.91059900603940955793" + } + }, + { + "key": "currency.balances:00aed9daacd1004e1072d8d487e910ff5f1faa69444c379f3ffe5196a30bc5ad", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0125e06124f0eefe58b3892373ef94bba91da3f8c5cffa72a14d8a2840e32619", + "value": 1 + }, + { + "key": "currency.balances:0155b1cab2bc9e626b5d05be6354d2972f8223dca5f0872fede68cce7582f535", + "value": { + "__fixed__": "752.8" + } + }, + { + "key": "currency.balances:01937193541ee1ba21ba48d05e5892caaead2ea09af5b9d55490b156f47ea147", + "value": 1 + }, + { + "key": "currency.balances:02122bff580ac362bfa5578eda5fcac86db69f6a1d0c693dd0fe26183327e223", + "value": { + "__fixed__": "46611.5493" + } + }, + { + "key": "currency.balances:0278da1486ebf423a0bcfd633366af8e2a29356a42100b011638c7b1bd730f46", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:02cea231aa46a0c5888864a473762b3e7bab9963df0ab80b08a83af9907b6dda", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:02ea7c92adf8c0ae3dc26dec6339c50921e7d9a7d55c43f1c6dc27b5a61adfdb", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:02fc49c34ac6976d71482e641f9669fffff92d0f53e28bed5307ee6cc80eb836", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:030fbeb5f3146602cdf9f8c9ed63cb17bc3f1c5f2aa2c80f97dc6ef9b4c93cc2", + "value": 1 + }, + { + "key": "currency.balances:033398fcf01a1f3b930f60f55294206c3f272e2880b27260b8595d5744ede92e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0334f3ace9a08e59ffe0a9bff4a2a4aaa399236baea77790c55ad316c5d4f03a", + "value": { + "__fixed__": "0.122598389349658522" + } + }, + { + "key": "currency.balances:03e2669bf5a8190f8472fcf6f1cff2e6f36a81d2c9305020ba444679f196d2cb", + "value": { + "__fixed__": "45943.433" + } + }, + { + "key": "currency.balances:03e2669bf5a8190f8472fcf6f1cff2e6f36a81d2c9305020ba444679f196d2cb:con_multisend", + "value": { + "__fixed__": "899999999121.9003" + } + }, + { + "key": "currency.balances:0491857ce3026b8b542ea831b509a7eb7db5079c59b237d05c0afced8e4000f1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:049187a7ab26530a2d5ef199eee91dc8c835517ec659364b6b92a3eeb0f24cad", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0553c8a8087f146086b7cd903d7e8ef02a5c9e47407cfdc839e74d006da3d5b4", + "value": 1 + }, + { + "key": "currency.balances:055849a9e30b9468cfe7664e8d2ce7e3370caf697dff3d6dddefbf5ae521e01d", + "value": 1 + }, + { + "key": "currency.balances:059d32f477e57f0905af3bfd697f3601e6047b8cc625b8c1d7d0c3f9521f76f1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:05a196089d73fafa8e28c58691ef7b6bc4b513cdc75f6419780fc004361fe56c", + "value": { + "__fixed__": "775.3219422000001" + } + }, + { + "key": "currency.balances:05e0c5dbc9672da241f414362d0557ff4d86c708af7ffdea2be4f3f9fd0f3296", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0613d5aefc31acb6920dc3b73df39d1a8f06d1d4da1bc0b2bedd4bf9e899bb08", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:061db5646dcb59345b915509ded7a2b9420d0c0958850fd9e832fc71004a0eef", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:068ba209562d2bafc1ef0648216703459377c6f67c344a9b734905e420a9c68a", + "value": 1 + }, + { + "key": "currency.balances:069b9fa4d169d74a8073ff22c1c979a6b4b450564fdea6ae0b8745db9e83f758", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:072482b64b351256524b02afa7f2eeee8bcd843bf4b7ca5dd575d1a83fb6abdd", + "value": 5 + }, + { + "key": "currency.balances:07410c69dfccb05c05b415a33d6d61d8c1105aa783b8a154d4d31fe3b2ffc5bb", + "value": { + "__fixed__": "5888.1" + } + }, + { + "key": "currency.balances:076d12e3822f66378f9b8f4d3b480abc297f1b3fd77f460a47bb497e6e3d069f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0791ea01cc94359025c3deb98b39ce61939b7735ea9a207c31f21a08eee7b1f8", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:07b36fd0665f5f8d1fa0669546da85ca0d55146e777d154d8cee12637b3664ae", + "value": { + "__fixed__": "49.0815677560897834045" + } + }, + { + "key": "currency.balances:07caa8a17efa66695b48ea62e06d9ac7f771a23202407ddfd4ef6443f8d261b0", + "value": 1 + }, + { + "key": "currency.balances:07e6efba66fa62c98d30d7f95c4ba8fe17680dd8251beb501e7f5aceaa5fe0f2", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:07ebd291383122d9402b0e48b52897cd15f1b50c2f77dd5a319b4683d7818960", + "value": 1 + }, + { + "key": "currency.balances:07fac48828b7a8c66899a3c1e4f4ade0a7bb19b09dd0f5ae4c82f683388e25b0", + "value": 1 + }, + { + "key": "currency.balances:0813b6d7d7507c5f735821c32d06cd8f53e6d29807acb7bc92ab0dfe0417386e", + "value": { + "__fixed__": "4499943.479" + } + }, + { + "key": "currency.balances:0857adaa7cf11f36ffc69c42da232144fe315d07f78556d4234472ab53248437", + "value": 1 + }, + { + "key": "currency.balances:087b7f54387aaa6d946183284e297bd75c0f2611968bdf79222dcae8f95d4e11", + "value": 1 + }, + { + "key": "currency.balances:090f3dba373f4af1ad784765895fa93e9c14b9d0585c533fb39926e5c436c4f6", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:092b1c8f9dbb3332d26f233d216ce12f25160996659e0533f8193e1cd076006f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:095c68a2fb6a01ff58caafdba216d2f0fd5e208a3c6b2bfcad8aebc6d6fbf344", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:09bd3eaf14ddca4c1b9a925ea39381d17cea1bc607f0d71d8264b3c5a97dc022", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:09d470957b475a79cb698fa05d2ef84fae21f8ac3219bd6edb1993f60da81b04", + "value": 1 + }, + { + "key": "currency.balances:0a07a0e00e61a48c2cb67c0749865f30a6230a35ce90395f2d05b56e565da552", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0a19b7f696964e11f0e95005d19ffaf61af69e3be75cd8fdfc73afc8913ea152", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0af097c8e8a84238992998db1ffe855b70db0a37356b3d55387c7ff87cef6499", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0af4c009b1f79d05450cadbf12c70b14f652a22e988361a7af2284ad853bb036", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0b5bce5440fd3f381a03dfbaff27935c3e542c95299915ea2807d0026127bbc9", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0b61c3872444032c56fecfb61a5358d896312c0fcbe5325445498d542960d533", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0b718fd1fc334e16f4fa9e1178aa3857e43585fb3fd4a681d2da0cf7dcc6f1b5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0bb3d3e9653c1b11f66d63921242a3ff276233ce1ae82cb715bc8def04894976", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0c119e701bce1517627c10afd9bbbdb623b8eb279a4409cac5ae239f7b0d6e66", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0c686277bc871dc7b47e9cb17e0b172011e0df238ddca7d8968a6e9637fe6da3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0cbe2684a639d06b2686668fddd6715a6606f4a0387356d5fbe6ede7f17b17cc", + "value": { + "__fixed__": "2.2397818801588677477" + } + }, + { + "key": "currency.balances:0d180b6005058e94b846067f72019354902ddcb893e0aadbd9ff5906bdd27d4f", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:0d3075ceae806673835e7eab3afda2e65f5490154f2abfaa0649fa47d58345cd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0db197dd4c4253ddec54cab7b00fa90e2932c387bcf5fef61a62797475395929", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0db2d8351218fc134af3ee0f2198c3206304f3d79e19b5913abfd17a2b0e2941", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0dbb9e47b68fd75d9be27de823e5acdf308a89fcd0e4b275b09f62cfd6843483", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0e1d88c48abd5bcce95de69e08df0a83f8b258acb638d4d02a7cd90e3f29431f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0e3e3e2d7d514b282ca7e6ed42e77d169b7cc96a969f3485f234380470ccb502", + "value": 1 + }, + { + "key": "currency.balances:0f2e6b0b55d707a4bddab2cedb691ec63b1d26a690390e61294e739afa1bad62", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:0f8e2b5f76a54a91cc628dbd5cc3a0b95ab2bfd5a1305da31d011fa3818af868", + "value": { + "__fixed__": "752.8" + } + }, + { + "key": "currency.balances:0fb881dd1d82ad7e4a6462b18a76e3affdd3fb40318c9487e2406e8f6a2e2f0e", + "value": 1 + }, + { + "key": "currency.balances:0fcfbcfad7aaa445bd475bb4fc4b90c98185e5a3ce226bf9814e127bc80369df", + "value": { + "__fixed__": "0.054253994911106032" + } + }, + { + "key": "currency.balances:0ff55a2859bf2124ed5bb2c9ff59b1b7cc1846c44fc684ab0653ecc0936846aa", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1", + "value": 1 + }, + { + "key": "currency.balances:10250ded416da98fea1b656428b489735c24028b9da688984f1af511fe499389", + "value": { + "__fixed__": "0.02717551965806646" + } + }, + { + "key": "currency.balances:1074cdbd11daf9afe28fd553d0386ce47831d23f86dc9813849a09abda037ba2", + "value": 1 + }, + { + "key": "currency.balances:10f88cd6a3de7d8739d4e06594db8e2713408edc6fe6a1cdcee8465e35e05f36", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1128b58aff9f2a9d7a03365b21d8bac26ad0b3436f0f1399a90e7a198487fa9c", + "value": { + "__fixed__": "0.9" + } + }, + { + "key": "currency.balances:1128b58aff9f2a9d7a03365b21d8bac26ad0b3436f0f1399a90e7a198487fa9c:con_prueba1", + "value": 35 + }, + { + "key": "currency.balances:113afd6cd88bfc4e1ea6db381cc1e35f9bb40cd7b7f7d13af0a7768dcef8d61d", + "value": { + "__fixed__": "0.054253994911106032" + } + }, + { + "key": "currency.balances:11511fa96ef7ccba5ce52605d18055d1787b9c1a7f2cf789fc8451dfc64117ab", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:116090140994593ebd45cfc7b895976a267742130965582200590a90f551545c", + "value": 1 + }, + { + "key": "currency.balances:11b30eb3bd5f901ec5777463852773cc807abf04d57b00140e9d3473f1214bd7", + "value": { + "__fixed__": "0.02717551965806646" + } + }, + { + "key": "currency.balances:11cc82592655c0823987672ecca51efa1d62420f6e570238c7d74e90f5cb7853", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:11d867d43b5ece0e28d6e650560bc6acd59d373428ac6e0360c353f4cec47482", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:123123", + "value": { + "__fixed__": "662.51336346879994" + } + }, + { + "key": "currency.balances:1265a791ecbed1ac5dc9de95f195d5eb8f227323d5bc556a57172a9c3f06d4b7", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:128af9728665d95d660bfd29c694a56fe0048ce0aaecb7f71ae8f032dc713893", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1292142ab52b771006f313de5f605d2c907e6f85413ad04b9bcfca062916a3d0", + "value": { + "__fixed__": "0.054253994911106032" + } + }, + { + "key": "currency.balances:13087779c3bb93f62dcb95a24e31312de877aa12b7139b66d2426e3b052d2506", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1325bd52df6459ef3c983ee7398b1a5a18a7d973c291be1c3eead07c3b646b22", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1356202a3f007a5ad359a1421cabec561d1de6259e91ed6fea03bdb718ed6e64", + "value": { + "__fixed__": "130.22013054250002" + } + }, + { + "key": "currency.balances:13a4f5dbd352d5e07df72e4f11fc71a6c07bf8b1736543c3b17ad33be36591e3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:13e8e07f4a684c14818c72dd1974c5d68fe6ef02123305bffb4a05362d337f6b", + "value": 1 + }, + { + "key": "currency.balances:14b33f9efaaad4e7fb2f7570748a524c2505dabff55ce6336266f91e3d0389ce", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:14d463c7286ff9dc2295d8e2ddd78ac0fa94b12183c91dce25a84286955f441d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:15628f7ae7bfb16ce1cc9a16af7d349d7e898d5b22a05aeb55817602d0c5350b", + "value": { + "__fixed__": "8999.82" + } + }, + { + "key": "currency.balances:1565ff3ef4e54a73e5782f5c1c30c7106142370f90495ef3bb6dd6c2e17dc158", + "value": { + "__fixed__": "117.000010000000000000000000000002" + } + }, + { + "key": "currency.balances:15d37796203f4a711abd3557c442ec245ce06913ba782a7d0bf001afea9c88d1", + "value": { + "__fixed__": "2.2397818801588677477" + } + }, + { + "key": "currency.balances:16a413014c3164225d03c4f8198d21a2b6a7cfb20dc9c01e1d8459808470fbb4", + "value": 1 + }, + { + "key": "currency.balances:16fa94afc7abe9969b6be622d1d57096f52e479596c03179da11f14698b9a160", + "value": 1 + }, + { + "key": "currency.balances:1792604b96e7e9b9d040a1e26c205b6638415352c93a97653fdaa68dd09b2c17", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:17a65c3a91827a0c531ca34d2a20d7fa999a9c3e42b3917da46f017409566cba", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:17c21fb55c84f44ed4274e06cd221f3d97786eef80d033d5e82eec7f9c706318", + "value": 1 + }, + { + "key": "currency.balances:17c9b53c69c4cd657f17ec068aa8e949bb097d5594930f844920e0f0595e4086", + "value": { + "__fixed__": "14.61628350261848495716" + } + }, + { + "key": "currency.balances:17eb218c3b545a530fc375f9a256fc0f2ab22b9ffc7ff0582de86e41c3ba1872", + "value": 1 + }, + { + "key": "currency.balances:17f611d737b148396999960953f83ecc9637d47777ae56c8bd95d6b8dc756375", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1825eb4ad0152420f86776ce3d2b2f06b437ff8bb17a73317e3e78aef0905377", + "value": 1 + }, + { + "key": "currency.balances:18c364c60232302043208fbedea80ade55d01663fa0eff2c50185989d41b74df", + "value": 1 + }, + { + "key": "currency.balances:18dfd63b9d210fbb2246715a898440a1b2fd7e1d143a659c92f4b8c9e622c7c6", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1915b41f4db4f1e6c8d9f063370763bdfc47170d7de1ac0b1e39f94382ece042", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1948cb749e1af6d744b11b27ede360a2708367b3a5a2610009bf7ace07cc162d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1a528b274b13e6a9ce95b9608e4e29a97c4801543ef6ea51ae4409313b343e72", + "value": 1 + }, + { + "key": "currency.balances:1a68efeb0dec81c883bb33e55b3819a4782c62c9fcce16222bfccafdb9fb3ee7", + "value": 1 + }, + { + "key": "currency.balances:1b053ccac6197799f3308dd36d3c2be208c603d2ece915170c280e77fd711ce0", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1b73fb5e282b2ec0d3108241f85289df050ace136b7b28d884ba6edcef5824b1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1b78824b1e5cc819e0d2bdab8b3dee4314f8e2a5c9a678bbbc53971172a04a09", + "value": { + "__fixed__": "2.2397818801588677477" + } + }, + { + "key": "currency.balances:1b92ddb207b29e8956c6973e4cbbd6428286ca3342f60fed5ec1030222602283", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1babd133ac8ee675dfa2fdb228f1c4365c5a9b6372bd5b489b2a24b9d0181a00", + "value": 1 + }, + { + "key": "currency.balances:1bdd2ccb6fe6f5dbdfea2b2330370acaaabdfee4c0092ac86626e53ff1fe6a7c", + "value": { + "__fixed__": "311.6705" + } + }, + { + "key": "currency.balances:1c85798fe2cdcd1ed6ee6fe9fe8effa1b71e4817be36a3e8ca474b5ef6cbb6a0", + "value": { + "__fixed__": "169.7785275" + } + }, + { + "key": "currency.balances:1c93de62a1c5349a5884b83b2c02924f2e653c50b3f144f1006283006a8f2dc9", + "value": { + "__fixed__": "86.2745" + } + }, + { + "key": "currency.balances:1c993645376b0ce97c5a46192371fa4f9da9e270952b98c8eb4b29f27ae5e223", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1d33ced16b242052656033614cd10a564111ea0fb3f60cee404fb96cffde16a4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1d3680e34fb0e5932326a55df98ec49142c27ee33ae0dd9fe871fc2735f50cd6", + "value": { + "__fixed__": "45524.2034" + } + }, + { + "key": "currency.balances:1e4977dbeb1a434dbadaf25983d9b6378b76caa148ce0aab30cf75c24977d1fc", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1e519eb50a032065a8b774e7269cd8050448d719e2b96aa63bfcb10b8b727772", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1e576ad2a8bb4b0e340d6e531bbcf43d2aa5eb6d8e7e441e8c5986f2311dbae7", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1e5d942066035fdb10acacbabd167113e5e388f641856cca7eee75f69d883e8c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1e61e89dee00347edaea3b6467aac0b20d1796348c1f3c323db65f2e1d30adb4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1e6fde4bb0ec169bd497ef0d9338a38caf09ed3b9fe877ae1f95699587d9b565", + "value": 1 + }, + { + "key": "currency.balances:1e788196de7a0798a353baf6ac76a7b0ff775a9dca6571c23c099deeef5829e9", + "value": 1 + }, + { + "key": "currency.balances:1e9043a943ec2985200029add5d031cbcc012ca8dc0b8ab6e7694bb475924c9b", + "value": { + "__fixed__": "499.94" + } + }, + { + "key": "currency.balances:1ea88586049a88c76cb4497bafb245f9633d9c4d6e39ae2a111f740da62d2024", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1f8d6a8fad271296883cb1b10e29172145551a852140403e58e519dd0da80fce", + "value": { + "__fixed__": "1048.0039" + } + }, + { + "key": "currency.balances:1f9bffd2708df90010de2c5121f116dcf5558f464c67460e4c002312ffa476fc", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:1fb328bd4739fa111a6ccf8646c034cae1ff10a451e8855a916c161cedebfd44", + "value": 1 + }, + { + "key": "currency.balances:1fdd23c568855e34fff52b962d3905e941abdcc9b36d2a6a1d1061368b66c9b1", + "value": 1 + }, + { + "key": "currency.balances:203414999341b18b289d274157649933b332abc91cbd4c6e29b965cc0bbc3edb", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:203dbfa35a32342e3f386c11a79eeed9d92003f3dffa19a3a45e64960376657d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:20bd0ca2e260a504149c9bf6f5a13df13c0cd25f61cd1a4bdc3f596b0d339e00", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:20c91ffb518aafdee0e227dc7b8866c51f097292c829d77b82eda081a329fa34", + "value": { + "__fixed__": "0.1001" + } + }, + { + "key": "currency.balances:20ffac944156d7eca35ee5ead45d0046223f8ae91ac78b1c1eec8ba3dbbc3c3a", + "value": 1 + }, + { + "key": "currency.balances:2101b422deb1bfcb38801e0b0538fbf27c4708e57afccd789930d722498c569c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:21813def69d51b67841277af1b6da5bb171bc8ad09ca08f6cb6acde52e6da10b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:218afa4c73b01b63b59c90b2b8357fbb4baf59fe04eeecdffabbf87810808ed8", + "value": { + "__fixed__": "2.2397818801588677477" + } + }, + { + "key": "currency.balances:2238f80a7a48f3458cb69de02c865d61286dcb61ba20bbd09b38e6f71564be96", + "value": 1 + }, + { + "key": "currency.balances:22636f48498a5a9f169f03d416193d68b6348a6c1c5f9bfc7eb9f9ffc4f206ed", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:22de18a4f9d7c0758950b69f137118aa0450607de72d65cd5c022c2077b829a1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2324c3dd262f96d136872d2ee3d7e048bf09334e886e365339741c3b2b98c872", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:232a27db15f5cc4722613f2a2b1ddceb11274dfc452b8fac3cf532bff817ad3f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:233d11f00c01f755293f0de7087b26d01b0129520da6ab3ebd84e41162549b8d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:236573d1a760dd843aea6ab6d47407a30df656bf4ef25ddf826545e6befeab7e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:23c8513c5c7af876c4129611976b7a86e288b3864c680a4139c3c670dc23a8cb", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:243d88ce4e5d2676bf3b98011033144066bd709e69393104693e86b9430d1e1d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:245965f6cfe8ad238b41163aadc4b54810f2844e230b9aae9c20423d215cc6b3", + "value": { + "__fixed__": "2.5883480666084075728" + } + }, + { + "key": "currency.balances:24930f82f7aa0c859e41cc20547f1a3f753c22136e1f5ea2ac3db19548894330", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:24d4731bda22c298a5e7b6330fcee99ef50c702c5d2152511e764573dcf46e55", + "value": 1 + }, + { + "key": "currency.balances:2534096413fa989362e039996c2005c9475c1c15ef3ba37de8686ca3887e06db", + "value": { + "__fixed__": "13.91059900603940955793" + } + }, + { + "key": "currency.balances:2536e18e806252200f1dededcba2410614d439825df355979bb5562ffc09e39f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:255d76b39dff97ef23e15c268b4c255949f0109534bd95801c64c737823f1516", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:25aa20c0751df48e38c4e8578ba46cd95a20cb3cc5b8d4381c72d61c531926e7", + "value": 1 + }, + { + "key": "currency.balances:26113242805cc769dd8155f8d5ac96196841bfa0f49448a77ddfa75bfd7b3bd7", + "value": { + "__fixed__": "14.4188996872998442747" + } + }, + { + "key": "currency.balances:261cc844fbdaf289f4bbabfff20fe240f03f816e31af25b2c77315a2a9a3fe93", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2629a4c2f9e2515cd8be321a149bec3293385de66274795a2fdd2e49e6c83e5b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:262e68aa78351dc16b9940ed14e7c9417e22396034b28ac7d606f1d9b143de14", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:264e69bb7bd59031ef2770f3de7147fb8e39b219d43b9f15decde357d5c9c757", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2690c92b254fc1d3f157ac00ce6836d6c36500715b49f21c506d4180e61ab08b", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:2692e74cf8d76a22c94e0d7fb4d93633123551247821dd3fcfcaaa9bb3ef545a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2707d2536784176f36e3bdc0498d979c5c0249624e3220775fff15217914d93e", + "value": 1 + }, + { + "key": "currency.balances:2752769b625f8c72e355dcd8baa811dad4ac1c1233f623b8b0941edd4a2e5ad5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:278605819d5d1d44826ee7736372e220cac9fa493de37e0e0e27c0392334fa86", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:27900d0bcfe3aa802f97180eebb0b37b0e98eafdc1a6a1377d2a81f0cb379e5f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:27b3a515eb89e7b97fcb5710ac34a74c58b7e4b91d3a0ea57dd122d1ae233227", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:27e649ab347b2c975943eef4cd6671f26a61e26cb84e95f712f31c48db1f0467", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:27f7cc4d453a55fb1ef49e45b14923744b2d135e7acb131dbae5f554392b34fe", + "value": 1 + }, + { + "key": "currency.balances:28112a237486cef538f983f21e860afdc79db5924ac871a33f1ddb75485959fe", + "value": 1 + }, + { + "key": "currency.balances:289f528e1024fd7c7896bd39820ea9b39b01bc785a7f5a369c219c355f6aeb2f", + "value": 1 + }, + { + "key": "currency.balances:28a08a7f89dc9822d039bbecd128ef7ab4b8f8b57fe9b33142ed56dae34256fc", + "value": { + "__fixed__": "0.122598389349658522" + } + }, + { + "key": "currency.balances:28fb92a8229d5cf8137619f773f66b6e5c2bc81bf1142e263a1d505e9c3588e6", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2922e87f925c6a4f97bebd0bec32208ba8a8651a704941add9a5115ace541e9c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:292b346779dca86b8ffb979f48b590ea04c2d49d9fb505af9d6aa7e044a45269", + "value": { + "__fixed__": "499309.6033" + } + }, + { + "key": "currency.balances:292b346779dca86b8ffb979f48b590ea04c2d49d9fb505af9d6aa7e044a45269:con_multisend", + "value": { + "__fixed__": "899999499989.9995" + } + }, + { + "key": "currency.balances:293c6cf92f3868b457982c6bdb569bf295c5e7296a7246ab0bd70f8572536ade", + "value": 1 + }, + { + "key": "currency.balances:294e995a4a21e82ef37ed689012baa6f2d6e9123de9be6056a4145c416184518", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:298f9ba5494be213bb038356a52cd7f5e0473f717e47d440387f3939cd228f9b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:29a023779bd6f00bed6d3ce30282aaab23b325baa38f7184a9d78efbef31da16", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:29b86abf0db752fa2a9068a598c9a5efbd1feb46ed03042a208e29f328cf4482", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:29fc00a9503cebb7bd0c75ea473ab39b8cdf2b145cdfd91a12497bed0e3f7a00", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2a492600c1966b3ccf6e66b35c08a57af355eb2deabcb37dc96c79998d6bf2ee", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2a6c5dd0b8488fc09da9f42783f0453745420866bd25af2a2d886bb4446cef77", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2a789fa5ca705f2209f4f984af251b5726b046aaad3aaca0ff6db2f36b6801ce", + "value": { + "__fixed__": "0.183451410162264206" + } + }, + { + "key": "currency.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": { + "__fixed__": "10338.6394" + } + }, + { + "key": "currency.balances:2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385:con_multisend1", + "value": { + "__fixed__": "1E+2" + } + }, + { + "key": "currency.balances:2aa5bf852dddfc3383416df2e5e5838a577b5cd5d7eedcd62dd298d1e7e99880", + "value": 1 + }, + { + "key": "currency.balances:2ab66734df2728db4c66ac1699e56f724a1af6611376a13e62bdd9d0cbe0fc75", + "value": 1 + }, + { + "key": "currency.balances:2adab03a9194c79c6dfcb1d8afb2b379d3289953800fae7fe846d37aa858046c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2ae5e3f55ed8f1ad3b33ad158b4d56c07365b3c918e4537225ebaf052ef16cd4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2ae6eac1df063051be3931bcce3fcc4b06b798332d45f1a8596bf993df6f4dde", + "value": 1 + }, + { + "key": "currency.balances:2ba3a795cd91e966cfe618a827842cf76c91b241eeaba17c79deffb4aaaff0db", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2bc21d0386ce4e4193fd77f030f7a66a6bc5937a256340224522b8e7444f9b5a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2bc547488461a8108b21cd5f77b2389bd0c217e76f3121ec522a4e1aff8cc3a1", + "value": 1 + }, + { + "key": "currency.balances:2bc83443f9322c2efed1d2266daba228eb8b1f935fa815e0a67907515b052e07", + "value": { + "__fixed__": "749.8" + } + }, + { + "key": "currency.balances:2bcb749487e1486192c80c0bb66d8c263ad436be4ccce9b191bf198b5e0b4eb8", + "value": 1 + }, + { + "key": "currency.balances:2c387bd9dae8e63b96fb65f0ff5efe7d8a6400dcfeef1962d74f962ff91e9d74", + "value": { + "__fixed__": "0.183451410162264206" + } + }, + { + "key": "currency.balances:2c6cd9dad226a2501ef8afde0b61d1e6f92adb67e2f8b58d2df59d2a26fcb71b", + "value": 1 + }, + { + "key": "currency.balances:2cc390e0da3eb4f70681db7b4e4e3a130d4175abc0df4aab200bf02e2b669553", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2ce8a4a6e5c69b285adff27d959d80b969c26ee026e5f20f51adbd80318bc320", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2d19be2b0d52f8953a493c9ce78690bbc724e4dafad8cb0922a8523824682923", + "value": 1 + }, + { + "key": "currency.balances:2d3d688f5c381da7f21fb2e523f07a57bbede787202c543526511eb8976bb12f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2dc7115ed6110fb02eff6a1924262dc08241570ba35222c4d6d4b0fbaf5d1c4a", + "value": 1 + }, + { + "key": "currency.balances:2dfeb1760be18344950f5d99d19c57dcf062c109a8f6f641a5b7a0594695c0a4", + "value": { + "__fixed__": "0.183451410162264206" + } + }, + { + "key": "currency.balances:2e0fb24203bac752d2f3430b7f69ad79a93b4d88cbdf39016b9174dc1907c9b7", + "value": { + "__fixed__": "0.054253994911106032" + } + }, + { + "key": "currency.balances:2e4e28827986c7e1e0907bf3443a8c6a46d693330b56d364447290a155bc5b59", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2e5e07b9631bdfe6095a6162522cfa5355094e5b0742293b19eab09751283361", + "value": 1 + }, + { + "key": "currency.balances:2e8986af52acb0af0a6eb4a6cce09273c0c358526cf28a6d67d2d4fe917809e6", + "value": { + "__fixed__": "0.122598389349658522" + } + }, + { + "key": "currency.balances:2e8cfc5875b607dafa784927183ac613d7f6a60afc02ccb0eeaa16b7d9e70106", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2f6876523544b3fca138a14c8bebb287dfb804f2f47f582505a1aaf858a1b250", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2fa37d5274ff1a0036220cf907b9ba19c2c76f5fb15db71fd4a7fa1e01d6bb78", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2fb676c3aed07516b991534d483ef1d55d42ef9ce4ee33d0d9644b95365c7aef", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:2fb8ef680fdfa963d40f4fc77994e9f36b7e4e8debeb2468e0c1272e1def96b2", + "value": { + "__fixed__": "0.054253994911106032" + } + }, + { + "key": "currency.balances:2fc6a1c902c285f9e24fdececcf8ae61d8fb4dae2e3fb6bc724dcebae12e35cd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:30e1077ed14ec0b37315b53cca88e46e937fcf3ee55391dccd38763b8ab87392", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:311a23bd1a2df4d9759acf37a2947910ba5e217fda50f63795b739caa4fa2569", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:314d7c40d55f53b4a93b0a05dbe30c0b88c3b7f5347fa3960f416828783f39a4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:31e6080ec3bcb291a2b5805fe320654a8bc493da8b21052ebea75d5215ad10a0", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:31f6bdad1f39ccd22c711e7f53dae6fd9ffa2632c811170b8baa5a8982a98e8f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:31f997868d3c5730bf0f950935fd01314aae91fa9888dc45bec491eb514e687e", + "value": 1 + }, + { + "key": "currency.balances:31fa8d5a88d7ece9abaf312a76a9360fc314ecd2a2f0e9e44c5571d3ccd12595", + "value": { + "__fixed__": "46471.0494" + } + }, + { + "key": "currency.balances:321312", + "value": { + "__fixed__": "383.659857240000068" + } + }, + { + "key": "currency.balances:32348c21a7fed16a98e20233b176cfe9b49c4534a6a07fe16794abb60857b44d", + "value": { + "__fixed__": "0.183451410162264206" + } + }, + { + "key": "currency.balances:324cef4cac366a440eedcdf2f1b589c25afd3fae382850d9656e22473834f2c9", + "value": { + "__fixed__": "0.122598389349658522" + } + }, + { + "key": "currency.balances:3291e615ce293c7098c7c73afcdf54739022dde01d2c207eb4622702924a103e", + "value": 1 + }, + { + "key": "currency.balances:33268418af1867c363a9bb0f7e195977593d89ff8b1f1172f14c9b91f362490d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3357447e83f7a3441bacea039c1a33b82561cb19ce0f84ed111c3c966a64e690", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3372c2f0fd71e9bac84dcf84129693be188d00cfc686080be78c11a7f9e098c1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:341cf6acaf74f798f956513c49fa609d2f49bb716e7b1fd1f909a3f22c856c41", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:3427580303c1e48dfc36648280869a7854b9eb4073c5d97a6e85fcdaddd1e528", + "value": 1 + }, + { + "key": "currency.balances:345079a4fe7830cdb9a8468b9dadbff994c2b0edf5413dedcba6037386aff6aa", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:34c5935ac777905deec5f5e17b07b57e7267654d3d5e5aa36f35bf7dd972e5f4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:34dd722e2ed4b2682ee5ff5ff73f4002625e884bbd2dad228ac4af3a88524913", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:34dfb7455e1ecb9556afcff7b6c7d19d172db78516559808df0c08f329855792", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:35137a894748e0df1117a697ed2f841aee6f1759d1decd661a3e10c4276d4f56", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:35248b5fbeac2ec94ec89da03be17547eddddf1924c3f984e2cee520b6dbb7a7", + "value": { + "__fixed__": "242.0626" + } + }, + { + "key": "currency.balances:3535d0cea166dcd5ba341a82fe02260bf10eb49d72e01c1972e94f9e981c3ac0", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:353c98c1490e7b5740f67a6320f369ddbdc1ebac50a280784ccf7db85700c427", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:359fb5a55485a3c796aefda39704155358838abbb6012f502abf07d2eb98a063", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:35bc5cc2585c73c70b68c38e42a14d79e97aa0fd159b2b969c79436d0f39f754", + "value": 1 + }, + { + "key": "currency.balances:35c99bc9e6e3f3789efc22ae74bdedd1ccc9411e3fd535b09942527ba472465e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3633224ea6d861f5b84c52adbc84d5aea1abbe98939e29530407dda2e443c2f3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:364d42e2801553ee6fd2e22045b280059f24176adfba45de2b46219fbdc57d51", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3678dbf130411f256d27ab1e11eb623b197b3867904d44d6575bff0042f6c9fd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:368f4fd786a1567a3646d82b7e3fed290a3d3bc5a5eead8660a3834f357baaa8", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:36f9fb39edbd49921e9c423b803f48e9e723ac667bb8adcda402f958862d7ee2", + "value": 1 + }, + { + "key": "currency.balances:3736cdcab5e4e5d093e7b3cde86cd3ccc7dbd85c26b6b590448804a43f29b0de", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:376a64bb3fac1cbee34c1e20519d06b3f32ccca957b8141d890b3cffc984ea35", + "value": 1 + }, + { + "key": "currency.balances:37e5673bb29557e4c51010dd39c05b08946e3dd6309cbeb2f0960550e75d753f", + "value": 1 + }, + { + "key": "currency.balances:383d1619f1d67e751d9ca05b61c569ec5c8b50e3367d3714c258a07c8697e5d9", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3856c902524d497831f1f7e7d23b0acec2cd55ceb5115455a80e6aef8de6675f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:38b0c2813b624c403c0af95befe606a41c5f987b125711ad7e7f99c3fd7c8983", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3949f668838b7d2dae11ad1ff62fcd4b0aaa1b9ab161ad9eda7ce787b7314790", + "value": { + "__fixed__": "89.2745" + } + }, + { + "key": "currency.balances:39BFD8F2A8337E5025EE831AD3B7107BF1FC68D1669AC6C95A596AD0443D97D4", + "value": 1 + }, + { + "key": "currency.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", + "value": { + "__fixed__": "9256.930399926559109328263824602773" + } + }, + { + "key": "currency.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dex22", + "value": { + "__fixed__": "0.1" + } + }, + { + "key": "currency.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dex2test", + "value": { + "__fixed__": "8.596434653007166991680000000001" + } + }, + { + "key": "currency.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dextest_001", + "value": { + "__fixed__": "97.9" + } + }, + { + "key": "currency.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dextest_002", + "value": { + "__fixed__": "99999997.9" + } + }, + { + "key": "currency.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dextest_003", + "value": { + "__fixed__": "99999996.899000000000000019247972579438" + } + }, + { + "key": "currency.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dextest_004", + "value": { + "__fixed__": "99999999999997.99" + } + }, + { + "key": "currency.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dextest_005", + "value": { + "__fixed__": "999999999995.9899" + } + }, + { + "key": "currency.balances:39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0:con_dextest_006", + "value": { + "__fixed__": "0.075" + } + }, + { + "key": "currency.balances:3a114870e8b9abb41d4a12e79e8b39de19f1a431ac59672f3b9e030df74b5e1b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3a2fd7a81e4412872825eda293f3007002be53795cb20048c0ef1e85ce8f1a0b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3a539036f5116fd91fd78ff21af1feea80628f232c710eb7847ee47a2375d51c", + "value": 1 + }, + { + "key": "currency.balances:3a656b720fae8be43b39c9bd5edf96b239822bd57774a529653486c700604201", + "value": { + "__fixed__": "0.122598389349658522" + } + }, + { + "key": "currency.balances:3a802aa31e1ef95a8d96358c1c6d4b2d3c779983b550e768bdf2c4a809bbe4c9", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3aa39053790871506be8e6a17e2bc725dd11b559e26972fc9ef23299b068ea50", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3b05b72dbb14413c3cbdcad008e2026d11e23bc30249b0ad4a38e0ff9be08546", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3b20713e924694fa92860a1fb4b10ec42c04dcd30232b07de5e3eea71a991f47", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3bba4eebd097fb435db7e9fc2b526985f02decce353b6ff5f368f3e4a1191c12", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3bc2445f8daa06789b9c932faa6cd5de56b0da7298d1432db677de1dba54bdc6", + "value": { + "__fixed__": "3.86" + } + }, + { + "key": "currency.balances:3bc2445f8daa06789b9c932faa6cd5de56b0da7298d1432db677de1dba54bdc6:con_prueba1", + "value": 1 + }, + { + "key": "currency.balances:3bd3ae75b7e51ad52b7f850cb8eb046a1920bd44bc8c0c10ab992998a177c513", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3bde15f61593b3209a411b44e7bbed61f6c6d9d50d25a7d5af76e5bf29ab7028", + "value": 1 + }, + { + "key": "currency.balances:3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677", + "value": { + "__fixed__": "10940.62" + } + }, + { + "key": "currency.balances:3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677:con_pixel_frames_auction_v0_5", + "value": { + "__fixed__": "2E+8" + } + }, + { + "key": "currency.balances:3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677:con_pixel_frames_auction_v0_6_1", + "value": { + "__fixed__": "3.9999995E+8" + } + }, + { + "key": "currency.balances:3c2986f8bcbb29ec2c34b84346b8d3a248f390b9c50250937e80124296c7c0da", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3c460e39312bb6fc9f6f53dfb47459214ee5bde97d43e74ed747fdba3fbd5cb0", + "value": { + "__fixed__": "0.3802" + } + }, + { + "key": "currency.balances:3c669064e4dccaf69811e678a81a25b4a9cd6e574ed9079ebe7706ee7511ec0f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3c8cf450e5050cf1af5b2b50923571ee345726c6a4b7781ed909e9d1578e89fa", + "value": { + "__fixed__": "10.8843685844062307037" + } + }, + { + "key": "currency.balances:3c98512499e2b00966df2ecd3ddddbb81c1dfff5332fdd55aa55a6bde26fb67a", + "value": 1 + }, + { + "key": "currency.balances:3c9a0d31f0fcc9aaec7989ba39ac766f346efb587a1ccabbcb528216451980dc", + "value": { + "__fixed__": "2.5883480666084075728" + } + }, + { + "key": "currency.balances:3cbbe524bd7dfc89bc3125ff644b137e12ed7b2ac8c1129ff6837e05fab74bda", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3d3cf10ead9f8f03184f0d45be26f2c2719ce6500f4bf395ccf51938e76b9da5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3d53c84e5c95f2234bfcc9997013992239d02690c09af0513619dfe239c2fdb5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3d67a7c5dad6ac8b82723a907caa5f76a567589eaacdc05970607cb580a83d00", + "value": 1 + }, + { + "key": "currency.balances:3d6cd5a1d1023bc145a53f80d58a5e53bb9fc513ceeec9e61eb97c6ff2dd429b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3da308a864021ae5c7f8a71edd6e136dee38efeb1565ee8499c54406bbe77772", + "value": 1 + }, + { + "key": "currency.balances:3daabc4698f988c1cd72531c46d755587e0e207ed18a38a171a68ad93053fabb", + "value": { + "__fixed__": "0.3802" + } + }, + { + "key": "currency.balances:3de52892ae3642eba8343f903f7379878bae61705e4f26dda0efe2f043ca9399", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3df4ff79c0a1b2af954566e2df54f59208380e8cc9ddbfafc2b79d0920abc4a9", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3e4a56054b83d78aca809c236f797b7f9ea3d8c2fce1c0dd4afceb9c59d917d0", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3e790dfbfd635d6600692ed0ef1c41fd68004b65d57540a68011cfe65e10f4e6", + "value": 1 + }, + { + "key": "currency.balances:3e8754b5ae9d6ab6111e77f7e2c24b34bffc466744488225f0ed7c9496da6ec2", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3eb26b154123fbe233f80a2dc298ec89d1942d7f644a6f1d0a6027d1349d09af", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3ed84390b94ebfa41a989f39e1cba217272afe262dea82aae2ce0859c6c92ed6", + "value": { + "__fixed__": "5.19690543642048939296" + } + }, + { + "key": "currency.balances:3f4f9e504468d130179bc1a46fa1530fabc1d79cae044edcf4e32c38efc8e27a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:3f584f5c38cc8396c1ae8c3f38aab07ef6c403b2ad99f9c223b87ba23f1a52df", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4082f1e8274d62b838fc35016b3d3042961126f691b0f7fd8a6b649036e30f47", + "value": { + "__fixed__": "13.46616375083513467054" + } + }, + { + "key": "currency.balances:40ae59ef47cdb638847f009504a283ddb06949f4c2d7fbf4dceaa5e20809cd10", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:40ce7c141513d489767451d691434a67b409d8933ee7b67d8079340983a742ce", + "value": { + "__fixed__": "2.5883480666084075728" + } + }, + { + "key": "currency.balances:40eafce3d637497a13196d354ac858fec93015d74f7db352906d80345eb7888f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:40f6c713806cc7dd8916fea32b7d22f190f012497658b0d6c19cc1d96261a474", + "value": { + "__fixed__": "749.78" + } + }, + { + "key": "currency.balances:4108c82a05c2b538b8429a9928df058f9f90ca8249bd4fc8b76f0875fd53e18d", + "value": { + "__fixed__": "49.0815677560897834045" + } + }, + { + "key": "currency.balances:413a2ed58e44112a547d1e2e560177e31b8522ebb687fe9a09c4f8bbf695ee44", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4154ee87945a11cdb39c094fd793a923a6bef6926b569d01138603d937f8a0c4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:41a7f026e510e9770c6c8e9dbc16846fc1c73e2c225b5be3fa5e431eef829cc1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:41f281d6dd3954128cd446d8a074369f7fef37bb609813c63fd9a53f10c7b097", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:42139ce34e9043a175a71deefd526142bf04831c77af7376dd7164564f4bb348", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4231c9538e32e31cc49a4722cdb6cbf5de92cf0fac5c4be446160dfc36b73d36", + "value": 1 + }, + { + "key": "currency.balances:42776501310c18c0e733f4f25e64bde1c0f5b82cc06f1c4ab9c324d088fab559", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:42cd67795e24022cdc78b73088d075fd6f8d9bcf25bbcd291bf0f55f6f8d8186", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4321576961a99c687fc7dd4f9adcbc2dd28e7b1d9d7fe4539bc0a92319ecb18c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:432974a851de4c3d41c5ed5054b55208b9f96a06b3791834d3839f819c12c1f2", + "value": 500 + }, + { + "key": "currency.balances:433903eb4ad968d120f47205ada594baebdc4da38dc16b0bad051460f9e0a93c", + "value": 1 + }, + { + "key": "currency.balances:4369bac509f20f4cb7c79e91b8099e253b828c493350bb3172a8e5467890f037", + "value": 1 + }, + { + "key": "currency.balances:4397a1e4756f488b220d988bf18069826d8f13e19cd4b6274420d86f09f0a50b", + "value": { + "__fixed__": "13.46616375083513467054" + } + }, + { + "key": "currency.balances:43b3676963a0054bf93cdc49317303f48277bb3b1f6cecf44bf9471bc6ab871e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4432cf5adbe1f20400382b0193dc9a1e50e45dce0450d56d47b9661dd290126b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4451dcfabb7d674f2cd473e040e0c0904b2c045c96effd9c183b512d5a329449", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4489385768afe2d66f5ca188924d273416fb69fe7625390cc5d2a728e443ff44", + "value": { + "__fixed__": "10.8843685844062307037" + } + }, + { + "key": "currency.balances:4493600174e51781d163cac8d6becb66fca61878a91a71253a72be567ac8ee62", + "value": { + "__fixed__": "1.88" + } + }, + { + "key": "currency.balances:44947f4a985daee7ec3d7ea07d4942c6b931d90d4c4b4d06bcf32fc0fe0cb480", + "value": { + "__fixed__": "752.8" + } + }, + { + "key": "currency.balances:449f6f2489854ec3173f7a7642d3732782c1d4b546eaf4a15c0024949e9f6488", + "value": { + "__fixed__": "2E+3" + } + }, + { + "key": "currency.balances:44e6d1fc2d3a18ec2acf651f41b35b55d8b1b084c9eeeb4d35c362e65c1785e8", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:45178df664bd42ecc31b57128cfab3c4b148a5620ad282e2556a92dd08b85751", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:452d00f07a5e59b86483525a1125127559b8a19abb9723c562b92aab4d989e56", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4530137bbf8d45b913502c3a9388023f25229705471840802ce30105dc6a521c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:454107cf3096582581101c25aeb2871d4ee6bb45e75db9ec212db2acd1780038", + "value": 1 + }, + { + "key": "currency.balances:454d9bdb503e8c36ef4afd928a50e210f428aacb0e6735db0d6b0601801f88fb", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4568e789d9ae696faadb80a69a3da559dbaad198c146adaa03cbf1dfaac92c2a", + "value": 1 + }, + { + "key": "currency.balances:458b97b64221efbe89cd949e2e9d7418fcebaa993baaef93f0e1e9d54d12452f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:45a6aa1813e8c173ca4c4fe75ea658ad99041f83b3991036cefc0df22a71efa7", + "value": 1 + }, + { + "key": "currency.balances:462bfea8cac53e1f97a34ad48eeea4b01bb164cea1730c2c8afd36d0651f5884", + "value": { + "__fixed__": "0.183451410162264206" + } + }, + { + "key": "currency.balances:464089cdf1e0bebfe6f16b314ffc5c4631131d8da1f71adf2b626abf2299c406", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:464d43a7d4c9ca58bd4fde5f224c4beaf6bbedd3273b8fd05c8a89a1c3e3ec31", + "value": 1 + }, + { + "key": "currency.balances:468a5e768fe567a1265e121e2521316c29d0d7754b13ae16994ec0b4962ded65", + "value": { + "__fixed__": "38.0264247" + } + }, + { + "key": "currency.balances:4696215f6c78e481a53f15fd662e2222c23dfcc3feda19d62d9f08a815b1f5be", + "value": { + "__fixed__": "17.1476312725" + } + }, + { + "key": "currency.balances:469d3a93b4dd1744d3e202cfadb6e6ad2b314ca00dde85d1062b6d674ff92ac6", + "value": 1 + }, + { + "key": "currency.balances:46a750a01686861dab032c8633d4a8e42f2a951c0b4d9dade4b6cc920dace3a0", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:46bb77797c2f1219223664329b75ae6fadff126c9e95e4103890549608d42ba8", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:46e280ac6f5358623c5a98244c582427341185e471b001112698abeeada0bdf7", + "value": { + "__fixed__": "5.19690543642048939296" + } + }, + { + "key": "currency.balances:4702f8777348df662b7c717a7ec6e1eae95edeb2151e7328883f932e53ffc2dd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:47781eb500fb779283c6e7a76fe82f0f6d0143b974fdc5d228fa01979ce9d5e4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:478dd92919c60a96be16728db4852bcadeb6cd85b0ad163d94b9e8ede912b49b", + "value": 1 + }, + { + "key": "currency.balances:478e050bd036b19a9b9009d494babb573a41b2a8cb690a1b631fd4336745d6c8", + "value": 1 + }, + { + "key": "currency.balances:47fcfa43155dbec171bcd606e99509309b7af65761c72e3088d790dbee3f83a5", + "value": 1 + }, + { + "key": "currency.balances:485bebc86f680181f01b7a925cb720f6a7de2d3b0235dd63b23242c9ad8c412a", + "value": 1 + }, + { + "key": "currency.balances:48a5d1351aefd2b1caf4f8ffb1b24fbd6be021d31fcf7f618112b1cde3a31645", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:48d24d5ab068509642e4fe91de2956a4516c795ff9feaa383063d66b542ea615", + "value": 1 + }, + { + "key": "currency.balances:49381c23271bede79a7cc53a65fda054b156bf3efdea2f7d29d830afbabdb14b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:497e749295b5489899c4a03d7398ddfc4348d3b765bbaf125c07fcb0bd8ef946", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:499d686a3d8ce652c4fa5f7d4cde378bc82d0b68feac2da3f1b7f78cbe526967", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:49e701a2099da51f69cff85ab9e761ad6e0dcb55153c88f5e70fc39dc06e244a", + "value": 1 + }, + { + "key": "currency.balances:4a001f3637e3626b3b049f7541e98557997ffb7ec2f6a1792b37f79b9b3f19e7", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4a1c9c2363910723c3299dc7e139709e97ebda799b7eeed179e7aec48abdd4c9", + "value": 3 + }, + { + "key": "currency.balances:4a6c81cdb070e65239c9702c78946995bab3d7fbc3551d3a8263124ea7bbb603", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:4b660689fe0b9ede795dcfd426a3849aa3d651f27581c5166db06f017e737e89", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4c056cb9c016aa71d86d172a73de87936825bfacb2955ba610563bcdde38f25b", + "value": { + "__fixed__": "0.3802" + } + }, + { + "key": "currency.balances:4c07da8e922d87e62e06f8e83ab61f0ca140c5b78f798d4cee27b063670a8089", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4c5e1bf9ef741e9ce5d3e8d464f0aab2b0827d42ba0fbbe86cf774ebb4c9cc9b", + "value": { + "__fixed__": "2.2397818801588677477" + } + }, + { + "key": "currency.balances:4cb79e15f656a53b764d8b8698462b404cb3b4f26600277dad0b8d9b58ed9d50", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4cc2d11f5943b9c3fb85459020c519ae48616833eb00cb172190e9122955104e", + "value": { + "__fixed__": "0.02717551965806646" + } + }, + { + "key": "currency.balances:4d0bdd333d06cbd6b0c7fa91a40fd273152bf9a1b65ce3c17fdae23bbc77a2fe", + "value": { + "__fixed__": "15.57537181885815781687" + } + }, + { + "key": "currency.balances:4d6b21fffa7b964199c325c27f2220501bf25ca7d234c3a45f1f8360632fadea", + "value": 1 + }, + { + "key": "currency.balances:4da2f1536b91d2a07111e32439e77ad7c33fd67c2023fb6c849b1b4ec949ad23", + "value": { + "__fixed__": "0.183451410162264206" + } + }, + { + "key": "currency.balances:4dae719e5937192dbaf5b505bcf9b6a9b68741198a2e4c2be5a2985dfeb05e62", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4dc8b1f07f5a37cbe4c376949802d949d79f7367a3745be8dd5dd284f1e92ddd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4e3a0d257278f0b99472292f7e442882260fd9196532f898a1268ebe03c9d4d1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4e881e6c42a9ffb9057738a9df0267c2887b2cf0dffc4c934a97cc1dcb51aded", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4eb9a84934687d1ff3680e6a3f92b9602d52f258efd69c8ca9323a9549158284", + "value": 1 + }, + { + "key": "currency.balances:4f338857b4522af13df95d96240d03cf3f5f92214dcdc8f8d8eec1cc9cd09bdb", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4f45818b3494eb2a250a95cf36d1d568b4a420eae478b607a57159407e96407f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4f4fae337afb50b47c7e973d2516af40691fea83f6d071ad342491380495c026", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:4f756e4952f3009d3a6738599671b30e3c13e8025140c472781c4e77d4d0e5b1", + "value": 1 + }, + { + "key": "currency.balances:4f87e4c6d0f13650816cd3e6a3905854e39f8c8590570ec00ec06f80620c5596", + "value": { + "__fixed__": "5.19690543642048939296" + } + }, + { + "key": "currency.balances:4fb302a01ef2e1c7d5aa17b95ea600807094bcd10437cc50b14d6f17f9fd1b08", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "value": { + "__fixed__": "104.379" + } + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_dice", + "value": 50 + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_dice2", + "value": { + "__fixed__": "999999999959" + } + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_dice3", + "value": { + "__fixed__": "999999999987" + } + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_dice4", + "value": { + "__fixed__": "999999999997" + } + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_dice5", + "value": { + "__fixed__": "999999999994" + } + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_dice6", + "value": { + "__fixed__": "999999999974" + } + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_prueba1", + "value": { + "__fixed__": "9" + } + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_prueba3", + "value": { + "__fixed__": "8" + } + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_pruebas4", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_pruebas8", + "value": { + "__fixed__": "2" + } + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_pruebas9", + "value": 50 + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_s1", + "value": 20 + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_s2", + "value": 46 + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_s3", + "value": 48 + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_s4", + "value": 47 + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_s5", + "value": 48 + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_x7", + "value": 20 + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_x8", + "value": 20 + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_x9", + "value": 20 + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_xl2", + "value": 20 + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_xl3", + "value": 20 + }, + { + "key": "currency.balances:503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b:con_xl4", + "value": 20 + }, + { + "key": "currency.balances:5043ddf746174db1dfd0bc5ebd73a62a8f5271e4d0bc6911a07b81ef4fcadcc8", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:505d1d2ef22fac032ada9b581e7713c9b32d372ed055fc32b9d7fd41590998b6", + "value": 1 + }, + { + "key": "currency.balances:50d10acdd5120ea81c4e6a1086733420e8a35cf479aa63eb7f8c3d699358fa7f", + "value": { + "__fixed__": "14.4188996872998442747" + } + }, + { + "key": "currency.balances:511c8c14435db0a381b7a602bbf6890511ea79d7091909dc3a6d48602aa86156", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5123124", + "value": { + "__fixed__": "9303.8633064000002" + } + }, + { + "key": "currency.balances:512ea32e0f4b621a81cb9768cbf639c1c624620f5531ca91013d3f20b4403739", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:513ea9ceb187ce0dd2a51920f48984027562ad7bb3fb0b665c5756d5fa35e6e3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:514e9dc3d3ad33141f44b5fd7056cc3186b912d57b06ca4c730208512eeb01f5", + "value": 1 + }, + { + "key": "currency.balances:5171af2d5ef69afe19d1cd00b2a02d52c63d3dfbdaa26b7b1db2073f786db106", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:51e5ea905527664f4dc93bd90e62d2a89db01547f75578914dd09c7807c6494e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:52226e31d56da22fa8ea0d8725790d26b9040580a2e5780926fdc348d9ccc65c", + "value": { + "__fixed__": "0.05" + } + }, + { + "key": "currency.balances:523e6ed96ede6ea00c0158d0b6cfb1f647f50ba3cf4a6a703f92aada2c288956", + "value": { + "__fixed__": "0.183451410162264206" + } + }, + { + "key": "currency.balances:525793b11827f037c9e3c4c410254f520223886e202b51fa089b34b5d7ce6d7d", + "value": 80000 + }, + { + "key": "currency.balances:5278b2a8f22e33c419242a281c48b3204bb9ef4efdb50cb67ae68a33166c7ef6", + "value": 1 + }, + { + "key": "currency.balances:5292f0e9534696d77cb639ece22f25ee0b4a9ebc7cc7ab3463a8cb4599390574", + "value": { + "__fixed__": "17.8677499" + } + }, + { + "key": "currency.balances:52b7e28a6beb0ae24f83753ededa5a1648677e568abab3fb58b9a6a70016ab39", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:52c6f390ad93ca3c50353ecf095043c1e588706a2ea9194407af3019a6a02620", + "value": { + "__fixed__": "13.46616375083513467054" + } + }, + { + "key": "currency.balances:531fbd7ecfe09df72e4fbb0f04acc1410eaa8d6f72c4b8855d9d6d1650a530c1", + "value": 1 + }, + { + "key": "currency.balances:53681efea8155e46c36fbde0124f97a5712e6d9dc11f9cccfdb7b30b35f761e6", + "value": 1 + }, + { + "key": "currency.balances:5379914832fc61805c1a6186f7f0625052675b560ab54bd30c743f06eb0f6a40", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:53b38a255cda4e5fa285fa0baa6b2a845c0f11c6df5913fc492821755cac6328", + "value": { + "__fixed__": "751.8" + } + }, + { + "key": "currency.balances:53ebe132225157155c8d4782a0f8e369a7173f90519c49d6c793619f5a194147", + "value": 1 + }, + { + "key": "currency.balances:54da38d2a7ea24b00e55eb634d76f6e8145ce470ce7d241e59f1bb29d2b3ac7e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:54f1503f808c6be8810144548d690299d1abbca507c8e9854eb287f4fded08d0", + "value": 1 + }, + { + "key": "currency.balances:552291f02c9317519633021302d0f7ba39b1cf32310e23ee7aa6a4312ae4a027", + "value": 10 + }, + { + "key": "currency.balances:555", + "value": { + "__fixed__": "2025.12584501999974" + } + }, + { + "key": "currency.balances:5565f2b994c96776c16c796ed38aa63084ea688b492b27a24fc8a80920f4c0ec", + "value": { + "__fixed__": "3.8" + } + }, + { + "key": "currency.balances:5584929de84a11696bc1f38898c77240cd1260c0d7e2f8db98039761510721c8", + "value": { + "__fixed__": "0.33955705499999994" + } + }, + { + "key": "currency.balances:5592834d93a1a6292027ba1de347424aa3b964d51ace983d526bd9ce3dbb0d63", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:55ad01a7201cd43d8c722b5011d636b68519e2bb9eca56186b7f9995cfb4bda5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:55d9e1cc0c37c514758fdc13015b9622d0f6b1a313d1b29ab4711a55a97cbf1f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:55fd70fbcd99f2ef97b55e7695f285fc9e58514c372d8b1ad9948bb71cf3872a", + "value": { + "__fixed__": "46672.2748" + } + }, + { + "key": "currency.balances:562953a4ac52f69d2453e0bd94164ff77a2c768e3edc7cd950a5b154d8f0bb70", + "value": 1 + }, + { + "key": "currency.balances:56710a628565623b4aca874c0d3c90353ee0a3076daf7810e9611f9a2d58b308", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:56870e5d20ffdcc23bf607c17e99f1432b6d7fff8ea790da4a148ef3045a8fea", + "value": 1 + }, + { + "key": "currency.balances:56f09e3189aea1614c9e3c5347590a70f8497b490901ab72a75d003a5e045875", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:57988205efe693de91a48b4a304b4f3ff41feced7435f31acbe14e59a5b98fdc", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5843a377007fa113487c63c1de7a8bfc0490e52767f2d341561842ab4ca6fba8", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:589652257b23a6f816007865339e25167e24730a5e6e679b83b0aed6eb22041e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:599f9ba284e42c500d6cf044fe069634d59080c4734973b87ef566a7f2116c0d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5a4d944b89b84f8914cf20102b87cb832d595f8eb995d3111d9af7cdd20aeb0c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5a5128857a999aeae59dbf6a6d8a078a8e7d9f749372e68f08a5ea23bfa75954", + "value": { + "__fixed__": "46611.5493" + } + }, + { + "key": "currency.balances:5ac5ae7cf62e79070cb6e40d198a467d7e3ee82de53c2d23c11dad406335eea6", + "value": 1 + }, + { + "key": "currency.balances:5ae8aa54f160b3b61f8979ee0ce5f36c761137f5ab22b947b251798621753da3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5b03c88bb8d7458a175a732696c4fb47ec8d38b170a8809cb7c84796a227ea29", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5b11bfc76e15bb4889d5174eca4a5e45e6e4cad19260945cf7540143899f8abd", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:5b4e2d92b15254e1245279e46142b13bab405c1546f984490203056816d2c230", + "value": 1 + }, + { + "key": "currency.balances:5b64749e5abed7d3d29277088503a42e7ce99e172231a65dc29f6100c4cbaac6", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5bcbeb1fe2d8d525a507308e832efa19b64b3c00e0662f226ac05408f958e713", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5be5942e78ecf1f8306b47ea04dd8e09cdbee02c460208832daa48c8d52b5464", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5bfc25a4cadd3b9d229296ed77358118a5513584205739fdda4ed6780ca3abfd", + "value": { + "__fixed__": "169.7785275" + } + }, + { + "key": "currency.balances:5c599f79ed3b17bb5a88b77726113844da6cd28c06c41d0fb3941840dd9482c3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5ca35b75e756ce008c043072f578c6ffe84b2dc924904ddf1decf54242545798", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5dc906caf2a0b32dd6287b391b633886198f737023c657876aa6d56356b56a9f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5df1c92a824a75c178fdd8443ffcce0d250713b07214d9461067c0036f37d528", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5e6bb8c3908b51361f92fd0caade04085014721429e95c0f8b036edb1917da54", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5e7050ef0c516d39ad1f0cb1656c9283e0110f21d39dfd4ba4bd219490af09cd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5e72d721b27fe3c2d3f7fc5bd28c9cf30653b28201f75424eb9e07b79163fe4c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5eb37469e0178cd22105058c959c38eab06745b4f99e8d280d855a31dde202e9", + "value": 1 + }, + { + "key": "currency.balances:5f3ce2258463f3f4c14570e103d3829beff5130154842145998965f24d051001", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:5fa1b314468832fb9d391e8af756140e85325a565d8b411ae2f2001d37c30ef4", + "value": { + "__fixed__": "988.32" + } + }, + { + "key": "currency.balances:60033a99b7eaf16d34986fc954b90f11d6c469138a5aeee08f7e72e7148b6a1c", + "value": { + "__fixed__": "2.5883480666084075728" + } + }, + { + "key": "currency.balances:603d7649095c7b18c158499fc0ef68fc375e9dc4c893169f392640fa8a483a62", + "value": 1 + }, + { + "key": "currency.balances:60ba427b1070915adb6434e100feb4aacba67f53f95142d3e9ce3ad07126a476", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:610251a68c8041e409a5b80b23fcd23ce0fed0a72ed1ebfe1675127739a3b520", + "value": 1 + }, + { + "key": "currency.balances:6115ea05429ad70b39b372f4ecc572632bdac3d33cdf95525b4d693edab3e391", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:612c3d675179ce221dc43cf98e93cee2dc34f26719d139681667983eeab59948", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:61e294dff8bb734f2fddef5216a53d2a93f617a2c13154c8cda1b682c9d02586", + "value": 1 + }, + { + "key": "currency.balances:61ef61ed62fba5941d9a8f792fd55a545558a475a1a760be4c4ff82c3db2c814", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:62ead519467d737ccc5ebf817d50767b095fa59f5c77365d6906121b7616268a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:632749c344830fa6db889b98975e449f9b353b8e718b57289e9b8e7a05011595", + "value": 1 + }, + { + "key": "currency.balances:6337086039439f5f13d9bffeb9c8fb060b3a8d2b09b8e5e15af2eefba8a69fbb", + "value": 1 + }, + { + "key": "currency.balances:634fb5273cfbf5dec8ce01d59d384bcbe3e9065ecf4fb0ecfef7daac923002d2", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:636a51a3c741a75e1debb9678c6548bc1a4b917905bd79ec9c10ccec10d284dd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:63779a1783792fb90f025ee94eccfb05c6cbca9e5c647332456e5666d7521a01", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:639a36c857c165b08d254b9bf06284a34f6d032c72b6c76e53791d34ef234b91", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:63cdcaed9e19fbc3c74e54cdff11cab0203030957c9445e367621978babbf35e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:63fc1024c2c18e66e93421bd311c5405705737f733abb8e5c8a435f38561da4f", + "value": 1 + }, + { + "key": "currency.balances:6445ac1957417ff1997b1e41946074a6e3b83fdf37811e0379b6549929208346", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6462f818c1c6e78005d78b3fbbfa701a16a9c27ac9f582001ec0e245a505f408", + "value": 1 + }, + { + "key": "currency.balances:6469db016e9444cec27e0e5ffcf0908cbeb2a6ee5ad29742ec46044266cc9e37", + "value": { + "__fixed__": "69.6579" + } + }, + { + "key": "currency.balances:64b0b4a380080c5700ed67bf5d65da7476bec271ef2bf7e6b520a0589b2fbf33", + "value": { + "__fixed__": "10.8843685844062307037" + } + }, + { + "key": "currency.balances:64b85568b58342b3af746a5e13d2c2e9ca21182d78f7c9ad38c5c10e9f6818cd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:650590bcf42ef2e946d06908a12b6d2f756558aed2fcae2796a042cbcfc782c3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:656237dd079afcdd09c92858abd162ecc7db5f206b9dd00351684df704164752", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:65723da81c38701aa018c2a38d600a18435bd34db363b19f7dddd9e29e8afab8", + "value": { + "__fixed__": "751.8" + } + }, + { + "key": "currency.balances:65a981cf56d5aea1ae64e667464be5e2db23e0c7dc37f2f2ce879f220755ac4c", + "value": 1 + }, + { + "key": "currency.balances:6623272f211c9a2b58a6fbf6c2af0c26be8054e401dfd8b2a2c27b8981c79140", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:663438b072dc59e6f047c829b1cf9e9a363a1ea0a6093f24094fc1a8c4cb8b2c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6650a7fab7625a5d518e5e6fc5cf021948a9c9b372a53bda9e39023cfb0d45a4", + "value": { + "__fixed__": "13.46616375083513467054" + } + }, + { + "key": "currency.balances:669f5cf90812ebdced39650a0ee7bec4030974dca3ba286a64d7102b97def607", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:66b67d7d99732d2e4698ddd22ec26181f0f19faf5b2f39919ff9420a927071b3", + "value": 1 + }, + { + "key": "currency.balances:66b72d7ac7f7b58d4666b6f978068cd7ff46dcd47986386ae9782a97e51f0ff0", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:66c6b5861236097ff916ed67cfcdeb44d3db90d850132e671b878e8b9b60b835", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:66ed008a46d0e933c7fbd4a34c9bf89046b25bf86bcb80e9b05d945238413224", + "value": 1 + }, + { + "key": "currency.balances:670d6a1241e10f134a8a369369cec6d30d555c47942eb6b8d8a0e148151c9c2d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6734de78f96b49de63c74eb2c30bee4d9123ed3348f8f24aadd9416f52daca08", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:67378593b6a6255e10e15885ec51515d1139049502ae906a167077a9115e96f8", + "value": { + "__fixed__": "17.03444559" + } + }, + { + "key": "currency.balances:67925ecbb9e454d5da73f54ced0abac0304e99e9a9aa3f9f03259c0278ec2f82", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:67badd4df9e78910b3393f59ead5943a968422299ba1ae0ea4745635dd7940d7", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:67f0f075bf2ff2ef987fd7928cb057ce75cfee5399bcc62313ba7b86a84f0d3e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:684a3925fa336b8728fb9b0ff036cd43701436b1b8b1f0786a5635eabdcb6f42", + "value": { + "__fixed__": "69.4093" + } + }, + { + "key": "currency.balances:684a3925fa336b8728fb9b0ff036cd43701436b1b8b1f0786a5635eabdcb6f42:con_multisend", + "value": { + "__fixed__": "899999999285" + } + }, + { + "key": "currency.balances:684ca42dbc260291be7a193e66dde31dbe12ecb2a754565966d704d4f568473b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:688585c4c474621dff7f6c877869926fa977876533d9b0d41273e2e64d1d9b39", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:689384ec293634439772901663cdf71e92605e475df6f0f9354bf1cbc65dab1b", + "value": { + "__fixed__": "14.4188996872998442747" + } + }, + { + "key": "currency.balances:68ed8e3107e2cfc0cfc46c58160ca72413a152b72466aefbf6e13f8066c21777", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:69883ff95af65c4f6c3ce740b333f0b218ce84eda91da6dd5827a226f2be8d68", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:69896e055c01c57c34dee2cfe645ef99c1482d9d1146cabd0d97aea895898487", + "value": 1 + }, + { + "key": "currency.balances:698b35e6d14a39404164de4e2fcce9a1a42b73793abc1ef2b199cb4b484ad800", + "value": { + "__fixed__": "14.61628350261848495716" + } + }, + { + "key": "currency.balances:699249a17519aa50b0c57c6db8ec46d4a81fc1f557031ef9a3edb2aa4a43a16d", + "value": { + "__fixed__": "1E+2" + } + }, + { + "key": "currency.balances:69acaa8f190e87cf7b128b9d78b96f13b7a2cf2eb6eab474c98ee29f0af718b9", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:69f2e1e4484efdb544c8e4631ab8a5bf632c9a55896cf67389d7fe8ba21b756a", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:6a1d8825d27c38d7ccbf2af187ce44351581a578b05906eaaaeb05690bf059bf", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6a35737759c8e80d745237e8dda300e104ce41e08971529564d31b45b0d74eac", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6a525982e909f83f2dadf071d67eb1b3a88331a810afc8f789533c9b10ac131d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6a6a0bcbdcd7d56385a42f465461fd8d063775f58efb9ed974c1f53bc7759f66", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6a8e54eaf9c699dede9132ecbad83c66db1dc820c43b4fef9500aab285ab3c3b", + "value": 1 + }, + { + "key": "currency.balances:6ab4c6f6f02f14bc5924ff3614af168fdefb2bbf3df57e006cf4e79bd5fc4834", + "value": 1 + }, + { + "key": "currency.balances:6b05d08a2ae75b6824dfd441fb8b3c4244a1d1f9a61ffb4ada0aef99d685806e", + "value": { + "__fixed__": "49.0815677560897834045" + } + }, + { + "key": "currency.balances:6b4e0381f3135e39167fe1329df6cb83d910079b262e2f1c80b7dc32f05f304d", + "value": 1 + }, + { + "key": "currency.balances:6b596c4590a64651145a45a1e512eb6f1255124c06cae1e33586d3434b67e761", + "value": { + "__fixed__": "5.9412" + } + }, + { + "key": "currency.balances:6b5b0fb58b5818b3ca01b268cef2b10236a7218eaa8a35d553e71424ebab6e14", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6b7d4bc17a73e91bdbc2e0e27711018f83a5e4d2e42cfa914ccb52306f5c2b7e", + "value": 1 + }, + { + "key": "currency.balances:6b85c0c1df49c0242cb9b7e88cb450c8d616cff6ccb40814a49f9d0e6f96c1d0", + "value": { + "__fixed__": "10.8843685844062307037" + } + }, + { + "key": "currency.balances:6bacb4f55fa1fa5cdb7cb62d714ada95a3e1933bed019aae51de93ba25b0f7fe", + "value": { + "__fixed__": "24" + } + }, + { + "key": "currency.balances:6bc8d865c1311856f42db1fcbcf0708867c840c84587bdd3a51d43b8042d18f0", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6be65ddc3deeedee0da09927cc60a7b3574f51781dbbf6bb144d10113135d36d", + "value": { + "__fixed__": "10.8843685844062307037" + } + }, + { + "key": "currency.balances:6bf489721faf4f0546f4ec5cb6c27336afe71240adb358a2a2cdceed8f48669f", + "value": { + "__fixed__": "15.57537181885815781687" + } + }, + { + "key": "currency.balances:6cede34a9993a5bacb5461e65864966aa1ce3740969fe1e790e038926918e732", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6d2476cd66fa277b6077c76cdcd92733040dada2e12a28c3ebb08af44e12be76", + "value": 1 + }, + { + "key": "currency.balances:6d2fb38ce7cb48ddc937aae07c0502caa0e557a15d681b31c29e2fcb71d518b4", + "value": { + "__fixed__": "2.5883480666084075728" + } + }, + { + "key": "currency.balances:6d3c1665681365beb8acb710944b2b64881baf2f475253e659fc4feb7fcb1a62", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6d59caf4a0e552dee0f1859799946a7c93d23bb47428241543dfff3f201969ba", + "value": { + "__fixed__": "14.4188996872998442747" + } + }, + { + "key": "currency.balances:6d7751c3604c3ce42c7ce271f4773de9cb47e6de728ac44664cb49c6ebfc62b5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6d8e9913fa1a99a5788623aaa34af1b0dcf3191eb840feb22e7fecd7cda699af", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6d93c2b5d57b81fd373bbff97ecf7aaaa1b23e638bbf91a2c5ae17a635b14ceb", + "value": 1 + }, + { + "key": "currency.balances:6da65c136853cd405f841b6db52b225b1f0fb11c95aa75f44cff2afb0cf4d05f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6e0d955e16f46ac99b235a3d9065b48f3b29a970bae42fb8b8b2f448d6612387", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6e3627169dbb523f945ad74e15d5dd56039caa8f908824bf883cc6c562f27d9d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6e3ae4b9838defab5335fb625848477c13f4c36127eccc94ee9f5c45fbe9aadf", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6ef9f05a7b3d164c03225643c819408264c73afbe5a54486b459a2fb4ebe6c5c", + "value": 1 + }, + { + "key": "currency.balances:6f06a42eb97022d90abe353cb4f9d28a054f1ecbeacb2be7dddacb7fb85258ea", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6f0ab17155d21c7736a96b6cd9d56c2b1ea8d4faf8ddff7dc9c19b32eebbf782", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6f3fd1c9195ff59a9033435bbec480ccf69b6e3eddd57c2352d49ca5f16b2ead", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6f4b36342c22fe7f5348d2cae60bfd07ce8d3f6447f2d105425b9c8e74961052", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6f85df513837a0bb519448926d4f5a02326ea0b976d7938f1134a31d58389ad2", + "value": { + "__fixed__": "2.5883480666084075728" + } + }, + { + "key": "currency.balances:6f9327d04a24f49f1aabd45c249b17fbd263c72c723b4d18aebcfa316e7120b7", + "value": { + "__fixed__": "13.91059900603940955793" + } + }, + { + "key": "currency.balances:6fe558b93882182a6ce0311f4bb2766bd5beb92d57061719fc979f068b896079", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:6ff2b3c23629f4d99d4f860ca991c0961d93bfd635437d4067a9d38abb908f1b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7011766abc7d61e27ed5de9114f68ae2116c72b712601d6e569fc3dc916b84bf", + "value": { + "__fixed__": "5.19690543642048939296" + } + }, + { + "key": "currency.balances:7011bba0b8c985dc6cc2f3015324a7328a6023c67084280b20d6ea1d4fca3ccf", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:705d3beb41dba62dbc7a70074ed440625bc9d8e0f3a33df2490a334225524fe9", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7065fed285e564ab8c0282a7da44c8b8cd21566b65064e1e26c8d0baa34265a6", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:70672b7ab905a4db4912e49b6a4b22fb6ca5ed5bca07c5f5e639fc24428d8e6c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:706ab78924a444e98363380bbf7e881c31738c0220f5ccac75bdb3a075653efe", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:70b38163671538ba1b3ba65e5231408c5a5b5872d7ba9a63fd8e9388ac4a69dd", + "value": 1 + }, + { + "key": "currency.balances:70bfe6ce78fb19dd5db3d4adf54d53f839efabe58170762aa806e291eed44b00", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:70e2809341c4eb3bc33e26762ad29a2b404c6a4975eddc4a20e0ac945ce5af48", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:710a9e4a162f92c63db9230b612eaf3082616d4f72086f7abbad8a1228aad9f7", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:713f0580eeb53d5f6660c96863fb311a1e4be9bc02b5cfb91517af23ac971357", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7208b5462f1f53d6f93314ac20a21961c53d417449ccc9c7adfa418386d4dd99", + "value": 1 + }, + { + "key": "currency.balances:724e36786c2908ce2809db355e2614808b8806a06e4a9e747852bdf651ca1b31", + "value": 1 + }, + { + "key": "currency.balances:72d2dea0c4f7aa75af2ec913babda8254b38ecb37c3c3274aaac53250726aec3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:730cd83855d40afbee7f39bcede4f714a63c8d9c76cc4f57ecb7841693ec22f8", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:733d59cc491f5e8086582d127087e007acc869eff44a4a19dcfc8f09c880a08c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7388ed2f1aa8f1d74b0ae2158dd63c29488e1040ed21a0ba99e8b6366ca7d788", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7396db6ce8d185e78be4746ee269e4d27a007a3498271a3a5020bcfe939d1e1d", + "value": 1 + }, + { + "key": "currency.balances:73ab3e144e360b03b923237b39b52b7f97f042a85c4933c9c1bfb6ed7655ac51", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:73af6ebe9547f3006ff09ec08d3fb3b75a5715de8bf8e7e175959824981be068", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:73cc03544f90fe810648a12e9095466a4f6bd0d6df9d27afe534614ef51ddb6f", + "value": { + "__fixed__": "0.122598389349658522" + } + }, + { + "key": "currency.balances:73da95256667d50b818e8014b64054a5abc30d2b2d05556bca4224c6394fc4e0", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:74c10570fef76df12d86fad1354d2ec9ed24d41a1e91967c8e3968d0d91d3484", + "value": { + "__fixed__": "0.054253994911106032" + } + }, + { + "key": "currency.balances:74de9e410273c86e675b6baa764a1e1339af17ad5c5721403a51e00a177af441", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:74ff1bc4c3a52ecdae2b0bc4a8c8c30e17feb0dd1861390d3f03c997659a7002", + "value": { + "__fixed__": "1E+3" + } + }, + { + "key": "currency.balances:7540fe87a8b61436f18eee83b10f640188596d65d52e2cd333367e9a9c9978a3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:754d88848b02c9a03931d683086a35de46db971ae9a4462c83628caffe814b43", + "value": 1 + }, + { + "key": "currency.balances:7550ce8eae861b6619eab3ee89ef01a3646e379c28bb926c0fa1b89b95805924", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7576acebb1ad304ea062251c3144d4fb589d8754a0fb4b43ccf6f513c4e779dd", + "value": { + "__fixed__": "14.4188996872998442747" + } + }, + { + "key": "currency.balances:75a4ad8cace505fa3f8dd511ece54dcc39d7637ab6d510f1dd38d8585bad010d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:75b9869e7e9e472233d8d407c284c1ee8029ebd45e56cff53dc621030a997f8c", + "value": 1 + }, + { + "key": "currency.balances:75fdb605398c4f5784e8e40ae95b002f4a5de3fde971b43ff731c50e4bfe06a5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7606df4f454d71cbd70c6c1ceb510250004546b8920a0a9b761f02c2db4cc299", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7607bd2bbe203f795a0c786c0087c293edf207c89abeb16a565409bab9c0f9dc", + "value": { + "__fixed__": "1.1320489214500000002" + } + }, + { + "key": "currency.balances:76469c30320287412da9b6da6387e4a200db937eb2f13b79a4061df6f029db2d", + "value": 1 + }, + { + "key": "currency.balances:76e4f6dcd1d927a7dcfc2a672ab350327f5d44e34702cb19c275302e94006786", + "value": 1 + }, + { + "key": "currency.balances:7700a56411e0a10295355a1d31f5e95c136dc7fd0934ff336642081981f48cf8", + "value": { + "__fixed__": "0.02717551965806646" + } + }, + { + "key": "currency.balances:777777", + "value": { + "__fixed__": "210.525374069999994" + } + }, + { + "key": "currency.balances:777bdee9f2aa1f0b0a607596e8089e997735c2bb82a3652207710356dc4bcd08", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:77b3626e9ab79c24ba488075d4708ea5db2ec8e7ed59267c7f19727d572ae64b", + "value": 1 + }, + { + "key": "currency.balances:77d34ea4ec5d9fb24ff378c2dbd30e835c5ba84da128054eb2ff85ac305c849a", + "value": 1 + }, + { + "key": "currency.balances:77db4361d8e1e56f2500c0a3d11f45468a6f4580e0c9013779ffde29a18578cd", + "value": { + "__fixed__": "2.5883480666084075728" + } + }, + { + "key": "currency.balances:77e0805872687a801e1b7a227f1b5abe15531ea4c58997c27eb43e0f5046511e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:77f9f4f9f9949ac99598d6528ff4dc8382af826cfcd2a8ff9e0d141d811dbd25", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:784cb51b05805b445b8a01aa10da4ffe274579f8ee4d89846d8314e051a58b75", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7851aac28145ec5c12d671a9e9450326c14094ff8cc91c507949a6e6c8eb489c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:78a5802463e5414ba0fb8264b3a65f08d0f62b63cb8ae8db947ac201be4a3904", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:78c5af4b365e468d6c392e3673e8f1074601d7823363ab65e2123515504a8b8c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:78d99321175027dddfa3e63d2c4d2c61541e5a96f7822441b9b04751e50d7473", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:791ef35a9c4a87c59ded6f1d075078aa4d7810c19830ac1577541f5ff5476ca7", + "value": 1 + }, + { + "key": "currency.balances:79a5646b25dd0285b256fca581cc14b9f3b3e99ce39f172b3fdf2b5b6202ec4f", + "value": 1 + }, + { + "key": "currency.balances:79d5d3789fe2f75eb54c68f41e68d92fc33835ea8d45d06b27a1e4781c84a626", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:79e710423fe5c63514a2bc2c59bbec7d501fa8678b01f52973edca42c4886d88", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:7a02e1c09fe09f17028818739cc8865f685eab9a5e0cd6395e3e83c70f0c2b28", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7a49be5024c3392d5569b52191ffab6841a23b790a5494567e129eb50be358e4", + "value": 1 + }, + { + "key": "currency.balances:7b0f4d4f887a1ad3d602a8fb69b605567b1561f3661d6d1c57cbb7108dcf8f82", + "value": 1 + }, + { + "key": "currency.balances:7b5d6bfeb7550a576495c0cc49e6bbc96dc8f0132f88df4c09f7841df7f06ec0", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7b7762c109d4355d2f74c057e4210c3fba2c7a4df26068c0818d3ecbea1195de", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7b88e6c9d22bfb9b6ebc0055bd66bad8b4855a616480f1964e07dce250443aac", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7bb2d5b7989692e973a801fea975eb184a256442040c230dc3ebe0ebe290984a", + "value": 1 + }, + { + "key": "currency.balances:7bfb74f10222285fc5d7d198a1f10e3596b3dea38846eff28fe6337b3da92b04", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7c1dec368192289c805ee2ef36f7e9b727dce23ce4f59f0a4e6afb51a244d04d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7c3aa384cd20aa3bc01fc8783d992d01598258713ffd29eeee621f09f53f45e0", + "value": { + "__fixed__": "0.3802" + } + }, + { + "key": "currency.balances:7c68109c12a720399e8d3af884fb29775212daf05968050c037d8e4ce3bf00e9", + "value": 1 + }, + { + "key": "currency.balances:7c829aba18409ce70bd6fec16cd57108862c3433c637e88087459d98acfcf40d", + "value": { + "__fixed__": "75.02" + } + }, + { + "key": "currency.balances:7cab22acbca76d83b9966d7bde03e7577ee58e59824efa62601e6411f53e8071", + "value": 1 + }, + { + "key": "currency.balances:7cd7589bc700e771d14cb9918f7995d7791189e642169ae7890d5acac5cc1759", + "value": 1 + }, + { + "key": "currency.balances:7cf9b40ca45a76c2ab617b3f12ca78e64b26c749ed795d8b9ae954cbb93457ca", + "value": { + "__fixed__": "13.91059900603940955793" + } + }, + { + "key": "currency.balances:7d1ee85a0d3674ee1133c4639032ac6601d3d260e78dc5eb0dfbeb3089c89261", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7d22730cdd7a8adea2a38bf14f71b74212c07884481ff20ac9353cebe4e71b02", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7d3c133de20b45db2c949fc63c75d0b9576df96bd9375c1e49e6e5b91b4ac91d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7d65427969090966fa6ff23907a19894ffc4d605398a6794aa65b4942c78e3cc", + "value": { + "__fixed__": "0.054253994911106032" + } + }, + { + "key": "currency.balances:7d870855003c6144f2af00027f0457c030ca2caad06cfb96a3785377fc49f049", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7da01eeaaadef04190c7265f5a64f2bf5e65b8abcbcd96d36e52c9d93c05af0c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7db66c7e3e4c9f26b5798872847e44a5b9697231eb657dd39177cba52991fd62", + "value": { + "__fixed__": "14.61628350261848495716" + } + }, + { + "key": "currency.balances:7dce6f53947c3083951b40960b7540d99df90dc6da9d1997312c6291fd65ac66", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7dd0f03495a99d9c7dd354aeda18481eb99b836718f8e5f9d9beeeb53aa8a67b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7dfbd469cdc96322e1a4882debae84339a24ea77d7022163cd8fa213cbc01032", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7e7ebb994db97e455573242f8d8ac5fd61a9b47359a6d976a7a69624e357ca6a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7ec1e28b95490a1a4e852b1195e3fc0ba46d3772304cb708d901d98cab547ea1", + "value": { + "__fixed__": "13.91059900603940955793" + } + }, + { + "key": "currency.balances:7ec28d04c874b8ccbf46cd02c4cff1ebf55771e8172b760c93b966f442174da7", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7ec3b1b5a5f21541b3ed72350a30a8f7f985c09b07edf53e5de0fa2e9b1019d4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7efd5e0ef5788579774ec3bf0825dbf45a53f81cbb7c5f33190fb6d3e22d18e4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7f2e88104d49b77031153c7b931d8d1498e4783445262f5d137c2b90af675c2f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7f566d90cbf18a963b06146476bbb538b2749d7090f27a96a8db87db64a513b4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "value": { + "__fixed__": "59021402.83988205352288775" + } + }, + { + "key": "currency.balances:7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e:con_multisend", + "value": 10210185 + }, + { + "key": "currency.balances:7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e:con_nameservice", + "value": 1212121208 + }, + { + "key": "currency.balances:7fea2e88a8dc01869eff6de42f14c332980cdf052ecc891f509b09391e2c8028", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8049737a45ad626f8fac584164d349383b5c23ad2b114db040c6d2e8d1d91a5a", + "value": { + "__fixed__": "13.46616375083513467054" + } + }, + { + "key": "currency.balances:805b51c7c2d7ef9435ab5b51770e0ec66621c125622c7ed7b9838e437c4573f4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8092bb2a19271a92e67bb845af03fe1e25f56430730014bb69b51bf85b095757", + "value": 1 + }, + { + "key": "currency.balances:80c5b3ef951265d715f51c57f64143290389784cd619aff947ce5cfb5b9458c3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:80e22a3ff1faffc3411b24d332841d7e3b0704b5ba5046101f02eb9765f0e7a3", + "value": 1 + }, + { + "key": "currency.balances:80e2e88bdd05405a046b976c29cc8f956922409f8b41f0899f5fd21507ebc99c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8113d6f7dc2d68b6f12ce2e1a75a6851094e2c24c54a8086f485b4d96b4dacd9", + "value": 1 + }, + { + "key": "currency.balances:8157c7e9c425a2bfbb591525bac175a74a398250471ca4ccb82ab3df31359595", + "value": 1 + }, + { + "key": "currency.balances:816aaf7183cf79f41dba2638dd3221c72ce26da87422228be92a182ba8e96a8f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:816b01bbe8fa2d198553275984d6318e2850abad1130cbeca48a13e88b24e175", + "value": 1 + }, + { + "key": "currency.balances:818d0009e121a721138218d0b185cd8650d74d37ab0db50593f62aa4b248be2e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:819b9d49603868999978c3d2648ffaf1d545af0a992f83e3ad799e5a36e15942", + "value": 1 + }, + { + "key": "currency.balances:81a1726ffb7a3b2aed25a6c60740fbd252311a305afea921f4d97ef6c02a17af", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:81cf516a98ca0a00282437cb66433dbb41e152ffc3dc32c1c5235dce9708e8ce", + "value": 1 + }, + { + "key": "currency.balances:820318bbaa75d211c802f3d99a967c9d013606293b4a59aca115178214775ce3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:82691a883586d5fd4520c4e3486148e026a5708e080bc9e055f14d6cfda2b5fd", + "value": { + "__fixed__": "0.054253994911106032" + } + }, + { + "key": "currency.balances:82719726e23aded5e053e68ae1e810bee779b8f15bb63dad4efc59f23fa1940d", + "value": { + "__fixed__": "4499.76" + } + }, + { + "key": "currency.balances:82dede56091344f9c90af0b070f1f531b5d0c15903f69c0d6211e22c7bdf4839", + "value": { + "__fixed__": "14.4188996872998442747" + } + }, + { + "key": "currency.balances:83149157084acb99503f17c737125a860746c466930253f95be875d3c140f631", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8337979d4d85658456cc0ac567c1a6d5bcf0ba569adeb914db122ad157b3aa61", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:8337df631a74529b45932feb1668f25228831066c8171b97ca2b9ef4da99aeb1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:833a64c84fd64506bb2775361bc87f6ce8e8b47387df8f97efc725913e17f118", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8346f37bf35de29d8c918c355fc3a8e37bd10570b057f0544285fdc6d7e42db8", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8359e7047e2966beee8014bdaea45ac471483fc0a552f3b57291f20d8f4a0588", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:8444c492afe2bb92ec33766fd75e3d9c7a50b095da6bf4901125fa653a0be53d", + "value": 1 + }, + { + "key": "currency.balances:85188600eb73438f85a5429c03f6b306621fa8858924f69d9dc618c8b2a51400", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8550bbc7f0abb5acdd759122f354b79ccd13f967e931e53b5a5574aa174e7e53", + "value": { + "__fixed__": "15.57537181885815781687" + } + }, + { + "key": "currency.balances:85c0416fe2d8c2c83552a873df35baa43b953fb2e3711ad61cd7f5bb8c081ac7", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:85cf2c67da1aabd3cb63ff7bebec7a8a6dcc72e38f9408611bf9a9999457818e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:85d80f9992e24a0b820d89470fb31e12e7418539a5824bfb5ada2db016dceb31", + "value": 1 + }, + { + "key": "currency.balances:85d968b7671676dbc0f2860e757f68c85f283d6d87eed0b6a2e2ffa6be4344f2", + "value": 1 + }, + { + "key": "currency.balances:867b588192e673ead0a9f23a6e2ac149efe7b110fc9eb0e2bf768b300f7d4f6c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:86880226266884950b0f7b72eefdf55bcfc69379cba395d821c2a0471230ce82", + "value": 1 + }, + { + "key": "currency.balances:873f18647459479386c24b2243c9ba71ea81a0e6ee8a5fde9fdc5c4388ce5713", + "value": 1 + }, + { + "key": "currency.balances:8772772dcb223d5bd35dda0db617b97d600d6cf657f5fd70331e0118234654df", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:87732a63f310e5eda3b7ef07fe2f2cf9bf3718a77154e316c154e59469e829d2", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:889f4c5ebfa9f98ee0205fa6c5584779daa733caaaacd529dfc82e3a256d1416", + "value": 100 + }, + { + "key": "currency.balances:8914bddce1c45906351cf14e55f3a7db4910859b8866967152775b3fd2ca3ce8", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:894eacd7965e077d171a11f6263f1ca080bf0b0315539a27975b243193c6648f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8976675ae08fde29845c59936faae9e19b3cf6e50cdb59abeb8c542587bf505b", + "value": 10000 + }, + { + "key": "currency.balances:898e76a09cc598999c1dacb23633351eaefe953c5aee7f9f24082883ad9267d1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:89ae4d2e27666a5022ae1ebe4dbf4cde5b3fcf8aa9a2dd121c52a956bce26334", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:89b50ac95cb617a7e0eb598aec329df86ca0f2030778288c56451e4b9ddd767a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:89c0d7d9007128392736bf840c1a6d75d62fc4dcc19ff72ed45c07e8c1b396fd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:89c1fe5dfca1010c2a903e558cd369ba606e942d43dc867ee3ac474940a8a542", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8a366323b366d26160358c712dd8abded2b57bc6bad189eb7b6b51f1a9d28bd8", + "value": 1 + }, + { + "key": "currency.balances:8a3a519d1c934ab1b1a8456401d253b18e8041ef5496ac922a731319d7737f79", + "value": 1 + }, + { + "key": "currency.balances:8a42ab5235903c76b2ff7f8491aa719685f72c26bf996d7040b1a7ab7a5d47d4", + "value": { + "__fixed__": "7.64" + } + }, + { + "key": "currency.balances:8a42ab5235903c76b2ff7f8491aa719685f72c26bf996d7040b1a7ab7a5d47d4:con_dice2", + "value": { + "__fixed__": "999999999998" + } + }, + { + "key": "currency.balances:8a42ab5235903c76b2ff7f8491aa719685f72c26bf996d7040b1a7ab7a5d47d4:con_dice3", + "value": { + "__fixed__": "1999999999998" + } + }, + { + "key": "currency.balances:8a42ab5235903c76b2ff7f8491aa719685f72c26bf996d7040b1a7ab7a5d47d4:con_dice4", + "value": { + "__fixed__": "999999999999" + } + }, + { + "key": "currency.balances:8a42ab5235903c76b2ff7f8491aa719685f72c26bf996d7040b1a7ab7a5d47d4:con_dice5", + "value": { + "__fixed__": "999999999999" + } + }, + { + "key": "currency.balances:8a42ab5235903c76b2ff7f8491aa719685f72c26bf996d7040b1a7ab7a5d47d4:con_dice6", + "value": { + "__fixed__": "999999999999" + } + }, + { + "key": "currency.balances:8a815df8f1386196394858815a0e90cf34e3cd9286e3e2162f591d60e4b900a5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8a9c521246d0dbef5178fead7fbeea90e2e42084de9a9b69304213ce30ce8f3c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8a9cd993a6f34916a53e6e3276ac941979d29618fe7b0ec52a5d9da7867e9750", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8b00437ec984090cde4772adba61da8d4aceb18d1d9d01ef7d6fb64495b0e90a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8b1e1bdb40c49ecf36b721d27c5ac357ca8a0eb5a45553b594a2f7032c6268da", + "value": { + "__fixed__": "22.69372984" + } + }, + { + "key": "currency.balances:8bb4d5785f7457f14957eeb17f58c052eb29a336f01dd9f450c287bd1e288aed", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8be1719d98089cbcff754123548ae07e600f29d6f0a625d09110acbee1480a4e", + "value": { + "__fixed__": "751" + } + }, + { + "key": "currency.balances:8bf21c7dc3a4ff32996bf56a665e1efe3c9261cc95bbf82552c328585c863819", + "value": { + "__fixed__": "5.55" + } + }, + { + "key": "currency.balances:8bf21c7dc3a4ff32996bf56a665e1efe3c9261cc95bbf82552c328585c863829", + "value": { + "__fixed__": "499998.73" + } + }, + { + "key": "currency.balances:8c4c1e9209ae6e1894c4c2edb690fde061f72cd3df5384d09e10773b029c0a34", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8c574b46810f451557bf1102fc3e9e0fb93a3e8517e7980a1b4ca387c3dd6423", + "value": 1 + }, + { + "key": "currency.balances:8c5df0a10a8e3e7f0e322d8e858b7cf5c4214545472c04c2325133d3acf624ef", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8c6df446e162aa40fb87d65185dfa40a3899aaddc2c6c02640c29c52b0187abe", + "value": { + "__fixed__": "14.4188996872998442747" + } + }, + { + "key": "currency.balances:8c7ebba26373d295fba548b1bd776559dfe4f522e534f753458108ff6fc6e5ce", + "value": { + "__fixed__": "2.5883480666084075728" + } + }, + { + "key": "currency.balances:8cc199d0cd1f317d701e6dd011f10448e5cf56ec49d63cf6bf9e476fc1ee2b04", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8ccd49dd13b332fad9d9af8a7a3089c5f1ad17e79d9ce262fcea8dddce16dac4", + "value": { + "__fixed__": "4.9858478125" + } + }, + { + "key": "currency.balances:8ce11ec41a14ba8a3545b3214f5913bb129bd686b392d496359fc98f89da490a", + "value": { + "__fixed__": "991.74" + } + }, + { + "key": "currency.balances:8ceecffa42740c5b798bc04cd369a007c40851c76a1b1f9eb177216032e420f2", + "value": 1 + }, + { + "key": "currency.balances:8d3395516e47a5baa74cd6691a2757c9ecbf3778f169ec2bc1984a76bf01f372", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8d36a3f6e2391119af09197115d5a2369cf528e872b79d44a313b2424178381b", + "value": 1 + }, + { + "key": "currency.balances:8e521b51a3c3aa7fe829a98d9143024d6b8188af5ebe101cc5c3d81f00a630ce", + "value": 1 + }, + { + "key": "currency.balances:8e8b3f6bbd959687b6d655b6b430427c7b0233fb9544649c4796b5e9206357cc", + "value": { + "__fixed__": "0.05" + } + }, + { + "key": "currency.balances:8f03977014b8c43fb2e0a09e605004420bcee66645477d413c968e98a9ba8fd2", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:8f2e46b21ee615a1f5881ec87213bef3cd29f9cfdd4867228ac0dea1a373aaf5", + "value": 1 + }, + { + "key": "currency.balances:8ff5d94ab6bb6eeaf4a761bd72696cd68e75f1bd86e471642ac9e5610a846f47", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:900f8790b2696568d9ecff517f24e02409d58297420e60d3d41d3e968f454564", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:90201230317f524333e9da87e93534c3575b982fef6db6b9dc1ca620efadff76", + "value": { + "__fixed__": "0.122598389349658522" + } + }, + { + "key": "currency.balances:909d7baded2bb215f33f8cafbe3274408501a1d5418ea9407c4f5e6fdab1a1bb", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:90bfd1c7c5ac8b9565c95c4932a77203d5a06a6e9f44250d0cd635906421826b", + "value": 1 + }, + { + "key": "currency.balances:90d2c74e34bcfbd2d5eeddb63c285eb601bdf09e99414532f22e0def39e94ae0", + "value": 1 + }, + { + "key": "currency.balances:9146ca8fed18ef9088bc0d556b62ef624a5df6cc060724b9007ce5f8b0d8a2c6", + "value": { + "__fixed__": "1055.452842499999996" + } + }, + { + "key": "currency.balances:91a183124406c4a4dbed53a3f62240e8d3b6dcdd3c72c1c6be5f81a51cb4cf87", + "value": 1 + }, + { + "key": "currency.balances:91d44fdc0cf1eb569ed0cc3dd467e44efa0228bb4c0e9e421a2191ca897f703f", + "value": 1 + }, + { + "key": "currency.balances:91e0196dccb8935446bb2516f196b302b8ef516bf04ac4ba2be46cddc16effb5", + "value": { + "__fixed__": "19.46793782" + } + }, + { + "key": "currency.balances:9246ae743f5408cceb767e7197bcce20e34be55f10c8ba0bf3b52b97a0c4a82e", + "value": 5 + }, + { + "key": "currency.balances:9257e102815ca24bad873d6049b2ab931badde604fd04d8d5c75acf1b2edfb0c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:92741ff6562aad0c24c8c85116121933ee4f8920b38ad722d6152faa08000683", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:92afb0278344d2269fe6f2fd42bc9930f3a64f25bcb513182f04d0dd1c21c5fd", + "value": { + "__fixed__": "0.02717551965806646" + } + }, + { + "key": "currency.balances:92d61e459216aeef2f3a8834e4a902b0691d3c4b8ddb6f467485639997628c8e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:92f7946da2668774a66093ceb673804008ddc73c9ed6876abb1f2e15a54734da", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:930e930a545475a773040c77a39f8f3a66e702d13c0d1a0597bcb390f49d581e", + "value": { + "__fixed__": "49.0815677560897834045" + } + }, + { + "key": "currency.balances:938a68b6d80cd1c0c59cdb6359556a3b30034d9987e0b2f01ee90d94cae6b852", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:93a7343925a369e81098f0e20ccc73e917504c6dc55efa1d61152eeb461735dd", + "value": { + "__fixed__": "750.8" + } + }, + { + "key": "currency.balances:93ab35a43596fdedcfa8f3f6745b70692748b74c919d6940a9385d895ab4e252", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9491399f51689ac8deb5e17e7399e25eb74712ce032b0031b4d7399a2cf55cef", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:94915001748799d1f3e8b976b705774fe7914354e4392de8eaae13e54f194275", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:95062c0ca921333b8d9a94f47e272e3098043845da7e2ccd5b65dde671a3992c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9566460cd9f63e5f2687bb3e8e00c73a1119baed71d71008fdde05b07ca10026", + "value": { + "__fixed__": "14.4188996872998442747" + } + }, + { + "key": "currency.balances:95677a1a761eced95b619738e33c095d9c21e56487d67e952b94f75c7609834d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:95b7b47349e32934baf62228fb01b4c63ec57a9b0d0a2977d40760f57fa1fd4a", + "value": 1 + }, + { + "key": "currency.balances:95c343c8d60d49d8e6e8b98520f7f6a07bce11809ec8e71400523b84ba5dee4e", + "value": 1 + }, + { + "key": "currency.balances:964c4fb6dd4d45bccdc194c7915a9912700e43770caf7cac84e1df3ca12f7ae3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:96c59aa4db2101aeeb2cd39a536337db3f6b2c5f681ced08513a5dfabf568917", + "value": 1 + }, + { + "key": "currency.balances:96f003a6a7cda697897b4076f6b19433ac72ea4f92ea54964746f40dc15f9ac9", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:96fdfb36c6217b8b0b9a152c1af439c72a6b3572d9a676049ad3452279879038", + "value": { + "__fixed__": "49.0815677560897834045" + } + }, + { + "key": "currency.balances:975c79c31f9285a0943d5497df233d94349df3e670ae7d5372f90723071ebeb7", + "value": 1 + }, + { + "key": "currency.balances:97a9a16aa12d2bbc66ff119bbe8ddaf118f5f11a64b0f258163e9cf0542b0b3d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:97aa5a647f0f855ddcb1d288790013ad2a6759388346d2cc5b0e143d9756d2ed", + "value": { + "__fixed__": "15.57537181885815781687" + } + }, + { + "key": "currency.balances:9825d9abb8ebdcee421c7afdd9ca4a1a5343eff120f9d8495e6672b404156cbe", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9841f8aad4dde3015155071d386cff09b97630fd8b733735ca3c08ad8663af59", + "value": 1 + }, + { + "key": "currency.balances:987d020e7c98e257b8ea14e50d148a5f9cd98422b524eb5acb1f8c05fb5fc9e1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:98c515b156242ab7b8e08f26b90a0f4030f70c13e0b1c960f4fb103dd79de5a6", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:98e7f1842eb2546c5247d49e4898a8bf75b167723595fcaf6c02a4bb00c6922f", + "value": { + "__fixed__": "13.46616375083513467054" + } + }, + { + "key": "currency.balances:99782ae83ab678adf38e3d05ec242b6403fb69d9b74d952bbefd22a9725ae668", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:99814499d19581c7c509ac401fb3ad10adb484877fc0fd3d6ad5ba734c6c71e1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9984059e525838d0cf29b131c55f75069b71dc3180f106c16f14fc0a8aaadc0d", + "value": 1 + }, + { + "key": "currency.balances:9a931377e06177e24792a3ce41087ca1680fc167eecfa5cdd1ad4fd69380393a", + "value": 1 + }, + { + "key": "currency.balances:9aac5d6abcf175cdef2863fb6b817bc6b2df15a4cc571d8c19cabbee30ec4461", + "value": { + "__fixed__": "282.96421250000003" + } + }, + { + "key": "currency.balances:9b035a1c1786336fd7a7a77caf48800621851cd00e31ee438dfa0c81c726e501", + "value": 1 + }, + { + "key": "currency.balances:9b2ad42cecee3d2a83be2c2181343d68d9d2c425b9da6cd83b264e8fbebed4ea", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9b6400905671459c5c74ee129f865b9c7b855d082207c0cbb4fedf772adb3fc3", + "value": { + "__fixed__": "14.4188996872998442747" + } + }, + { + "key": "currency.balances:9bc3455a3410c8244c3a18fcb3938df04c0e7ae962cb4b90ff50c6b36de4e9cf", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9bd459d1941a43927c62e2e19dc758d89c1b818ef3a31ed35dee40fe303b92f0", + "value": 1 + }, + { + "key": "currency.balances:9bd5cc96fc68bfb48e33c7b1dc34262adc48f528c28068ff6a9a67ab082ae023", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9bdf283ad0a3ce7e8aeb3a1833b9f81bf70cd927e89c3fb18050d98ebe959f17", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9bed9c6fbf3388899c75c7853a30e2e181fda8f3830694ef189ba9942cb65d93", + "value": { + "__fixed__": "10.8843685844062307037" + } + }, + { + "key": "currency.balances:9c2eb4e43bada2d8d5fe0ae2a0ee9ed4e964b2589f5d1a8edb72e4eab731a8fe", + "value": 1 + }, + { + "key": "currency.balances:9c46952812da47f5940bdd83a6701bf53ec1724e234287e2cd88b3d03bd6d349", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9c5b999407700380c518899c61f51a823a2482a98eb05c23f5902b523af7397a", + "value": { + "__fixed__": "2.2397818801588677477" + } + }, + { + "key": "currency.balances:9c60585dd76b4b1169f69e3cec36b168c5535b34a371cbd4d0d35e1835611e88", + "value": 1 + }, + { + "key": "currency.balances:9cfc56893fcaa5a19e8de20c73f272cf4916616046aa0bb106fbb90f5961a588", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9d77acadacf6846db97e26965dfdd49b817107d388fb38eb111c3077eb7a4c60", + "value": { + "__fixed__": "5.19690543642048939296" + } + }, + { + "key": "currency.balances:9e3b4f0e607b2b2aa39a8edc784dce05f24faf7d85026d76d1037cccef715eae", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9e6c9d624c69efa0eb33c0f761eb5ee7bc3c83ef384aadd639428ec84a91421e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9ec8b515aa0235acc3e343d3dcd756af5e553c330ab49997825a4bdab49f62ba", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9edaf5fb7f9f814a00d911f61529b42c6ee646e9d85037924995c270e7640e89", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9edfa70afb2472aa4746c831780d6aa5861b72b99bfa9f59dfc011005721be2a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9f4574748a71e98a89af1f0296b729d22afb3cf220e8d9f3d28df76106bbb230", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9fbc9c89d311b10f84446a02d0cff7156fce779fa4d66ffa421f18952591465b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:9fc5902aa67fdea5b55f41fe6a35f7be426f7ffa15ab1fea0451b7eede9dade0", + "value": { + "__fixed__": "751.8" + } + }, + { + "key": "currency.balances:CE3BDF86A5FF4AC9D054EBF2DCE3ADC9D21C91E893C927A5A36CF4D92568E96E", + "value": 2 + }, + { + "key": "currency.balances:JAVASCRIPT_TRANSACTION_TEST", + "value": { + "__fixed__": "0.00002016" + } + }, + { + "key": "currency.balances:None", + "value": { + "__fixed__": "31.781" + } + }, + { + "key": "currency.balances:PYTHON_TXN_TEST", + "value": { + "__fixed__": "0.00000756" + } + }, + { + "key": "currency.balances:a02c8f968b586204480877ff0723bc4a8f68fc0ff1862f19a970e3f805049dd1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a04fee73a6f2c25a9d1d2f584ad616cb8f26dab0f4c613d10cd22e1f7a172aaf", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a09c96077d036d0661f64f6ccf11e1667082f88abfe9bf24494aced074d9fb6e", + "value": { + "__fixed__": "159.5352230425" + } + }, + { + "key": "currency.balances:a0c6919a7d826c7cd906b714c6b862c8186d6deb4ea37637777d764e3510bbdd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a140a76ef320f135ebaeb248e9ee63b0aed558736a03d802311d9f550ebb632b", + "value": 1 + }, + { + "key": "currency.balances:a14d475a61222bf53cc9e75a744ec7ec6e93220cd9c2a3e5f6a67c04a4a3cb91", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a18e3d9604e8c4c97de9505f591200dbd1cfadf1624eac052b30b1008b35a314", + "value": 1 + }, + { + "key": "currency.balances:a1cd454766e4a4a6c1cf9b08592d72906929f81de2c3025e0a127533a0c58b1d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a1cfd31f154c8ec45937f7a73c2571d2450aea43c498ef745e8e53889cc6c21f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a1de06d715df9f70e84908ebb6e997152b88df3985a3a82fccc1b84046dbb67f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a1f54d0739caeaba1484bd3320c0e5255c7802f50c386420f2a897f357856ef7", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a25051066bd6e334d176be81660c6a2c66f534dff9a8116620c7dd38ee5f4936", + "value": 1 + }, + { + "key": "currency.balances:a25230e4030fe9879d94a8c5e9fa7f222ba15559b2120b8e3d2eaf0ca13f2f44", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a27cb9c8c43d20eb60171ad4dff512388773fea22cdf4ae242c202114dee9df5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a2a49f140f96f962849d1dcf1c8875e5c529859ff0e034b44e0bb4907152d842", + "value": 1 + }, + { + "key": "currency.balances:a2a8d3a3856d903a185e4d65be73cfc7827bd1026c5724af8059f324bab116c7", + "value": { + "__fixed__": "0.02717551965806646" + } + }, + { + "key": "currency.balances:a2d0ef5240f8c023c18e8e5d757a9997f8698bdc52dd41dd4e57ee937f29529c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a2d129e63cacc05b24eae0e7fa6ff360430bae240ed0977bcebe4b775ce51200", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a2f86028d3b1b81d16ddb1a7f4fb9ba721e71c2a268051f967cc909679ade2e4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a3217735f5670d1ce094eb5c00c5bf61e548ba574ef2bffc28df97833a47cb1b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a38b9bfdf59555411f8e94188aa04e7f3e07402afc723bf064bdc3a94dc85ec5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a395cb454b6345a1716cc539b0e13efae35063bb35f9fa8651401e130f4e84a7", + "value": 1 + }, + { + "key": "currency.balances:a41da8f02fd8d09fc1fcbd6962d08c1176c571c1f90ae09331090bd8a6e033f3", + "value": 1 + }, + { + "key": "currency.balances:a4225bf1732a21e02911b34bdfa36e4fded25df91b1a46556439d3d700ca1b3f", + "value": { + "__fixed__": "10.8843685844062307037" + } + }, + { + "key": "currency.balances:a43203c1c0a5836698d15f7515ea9483135566ad5bb63a68535a9a58081494bd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a46a6172fe2585eb83f5cef6418c2a04a73ad38f83beadb4476db4f100dc1dd4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a47554b3c35e440af07977790fb7477258586565f0c7b3b721d2d404d9cb461b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a51f164fff813def37773e288bdf2499250c488ab230d0a6f161243fa645532e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a549cf8967d5d61d263ae6572e3e6d73a91671c9d4fd1399816e13e009e6c5c1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a55a9de82f1cfdf0e4f6e54155423c99421e88485900434a11c7d870ce0949ca", + "value": 1 + }, + { + "key": "currency.balances:a57a27682949aafaac60520046516e68cadfe8e7d71abf73f029fee8ea74bf1a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a5cea247bb1de7f49bccd90171860d051558fa0a5c596421413fc7466d702653", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a5f99d3a4d6f32e7de173e8be8784ab0b905c98659ca9506e4f899134c298dac", + "value": { + "__fixed__": "2.2397818801588677477" + } + }, + { + "key": "currency.balances:a622c01628d939682febf1f3288288377bb584b4c283481855d01b5bb83a43f1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a63d8f6e3df1b72ca5bd84babf2701fff905c71f599927490aa323cda095e53a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a64bd9688035af9f247ad2d9e71c9c3a5df88a46e39d163dc41a833a03271658", + "value": 1 + }, + { + "key": "currency.balances:a66d3190075a6163492262463877371c8e6c3d9e60eac9e9d9aff8dee4723178", + "value": 1 + }, + { + "key": "currency.balances:a66f76c78eaeb1d2ebca749858779a162bff68ce26e551815fa834e5eca7de8d", + "value": 1 + }, + { + "key": "currency.balances:a671bf670678fb7e9709d8a120e413ac30abe3311310f50ed496ba914ad10896", + "value": { + "__fixed__": "72.1579" + } + }, + { + "key": "currency.balances:a757dafab58e308ce53b37e1b60177ec7eb735eb72c8ce7ba322752704027fa9", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a7afc578039624ccc93ac56770ba3800e6a6a3f56712769a745ea75eef35fa7a", + "value": 1 + }, + { + "key": "currency.balances:a7cd934b8731e4d56dd106daed0fc748e637970e2aea9974b2a4c8ba9c78e912", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a7dee1290d4030b6e48f383094299598aeb01f6022998cc1f02af75ed6ec86dd", + "value": 1 + }, + { + "key": "currency.balances:a7dfd0ec72dce53ad4825d5bc2fd98af6624bd088b0602ac63991cc721a5fddf", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a81dc3eb9a7b8a3fd314de4f4515436705459adf3117eace7807e73d0073005f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a82efa2a750efe89daae17077b250e44568e8b0eea97ac69f9f75dc79fae8be8", + "value": 1 + }, + { + "key": "currency.balances:a8506f958234d9ca83ac0b6a61f65bc44d6c99bd8bcf3123f41999843a3b8000", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a862870458497355863c5ce81a29d4e111e09bbb4a1963a73e9041b19381816a", + "value": { + "__fixed__": "28.013457040000002" + } + }, + { + "key": "currency.balances:a8b600224fccc9969d2481f0238eb31ca3c07f77d08bbb4f9fcb8da7d01c5055", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a8b6d2b3c227167ae36024445e70063bcf645a79418b39b7e5267f6e03366527", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a8e8825826cef22a40eb6524e63ebf329ddabcbf76ca26033325af0e137bc13d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a93f66e0eb6cc7c76dbb4e12b2d7ea53da985e0f25fdf9f9f1084bb91dad646a", + "value": { + "__fixed__": "16.977852749999997" + } + }, + { + "key": "currency.balances:a96b1a838a31024f79656e08e377092ce293172fb7b564aa32538f6d9123c2f1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a9b066fb877a536fdf79ad189476eab670d9b93fbb568b7842a2a616dd45bd91", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:a9b7c4088713c23ce9dbda969f3208691dea1be3aab01e6be8b82422579cddc4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:aa357b666484257c7a2f1f299a43a4fca8d2a32a76b378b1809218c63f30e6d8", + "value": 1 + }, + { + "key": "currency.balances:aa5584760b7d622ae056620467a0925b2c25f24e12b50c67e1395f9d7e88bc14", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:aa58d011481b169f54eb3c1966eec1b37718f5dcbda1d0132fa3849fbfe00666", + "value": 1 + }, + { + "key": "currency.balances:aa6d42809ea13533d34a47f6d3a1bff753c68c749c9f1ee1f12cbb6b198861cf", + "value": { + "__fixed__": "13.91059900603940955793" + } + }, + { + "key": "currency.balances:aa82ed8ead8f0d49298ad959f6982222adc00e2a55e87980b2460d4c403fa4da", + "value": { + "__fixed__": "10.8843685844062307037" + } + }, + { + "key": "currency.balances:aaaec4985bb414b7848bdcaa129d247c411cfa18df0346d91a78ed76f1560b2a", + "value": 1 + }, + { + "key": "currency.balances:aad71603d54e85a1ae390a5474d324dceb8e01909f1295df2abd1218c1023b07", + "value": 1 + }, + { + "key": "currency.balances:ab600b6a2f20fd09c29bb88ca1174a9300d7d8073ef75b1bc38db5b5ebea570f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ab89a353b144ef3c2f8e8b50f161aeac4d0f2757b281aa9cf32b84724b257d73", + "value": { + "__fixed__": "0.183451410162264206" + } + }, + { + "key": "currency.balances:ab8b1935980ef84f2fb7c129c621ef4e5a66c61dbb4f90a2e3b71eab01f889df", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ac12fa5c0566b96207de83af5f4ae4602784c95cf8937e9aaf92836aeaf2eb01", + "value": { + "__fixed__": "14.61628350261848495716" + } + }, + { + "key": "currency.balances:ac365e28c88420c7e4103fdb66dfe4c27126f3553f35b8783f7a106ea296fb3c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ac91d2e7ab79009e8cb9cb8b8367e3f7e9c0fa55b2c971eee4f78e46ca545829", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ad490b35065050b7b1287987764000f7780773962d1ede96b13cdf4864d3ec56", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ad6fd48acf453f1405163f7ed1bccd71fa762c82f2ef8da968f7eb738bb05f07", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ae0eb025e94f0d6bc733646d962222eebbe09267dd248fc82075e3b00bc34488", + "value": { + "__fixed__": "752" + } + }, + { + "key": "currency.balances:ae1b1dc2055d656ea4c8f4d30d093b68d3ce67beb6e40feb4cb6dbc5ba14d38c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ae31e0e41530124a4dda0a2acfcdca43b77f5a790f86480da533ca5e4b201d49", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ae7ce55f75b6060c6515f5a7b0aaf9dd1da6a37e1e83704353a87489840f7a62", + "value": { + "__fixed__": "0.02717551965806646" + } + }, + { + "key": "currency.balances:aeebf2c5fb931936a9e788336b20c716c4d3ab5800bba8cb85970f5115c02bd1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:aef653306ebf9704f6eeb4bfe005a27bcab58e2af9c0419c5bfb9fbff3d79397", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:af2744ec24a5fa0511903e6a4252c58423ca841f483cbe8c2a152b1768bb7678", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:af303ee1896725cc389c9096f056424d7dd518c5477f90d24a94c1862680a63b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:af5ad16605beefcde3a0923ba60de3993e86169ee1f159284708614375cef689", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:anywhere", + "value": 1 + }, + { + "key": "currency.balances:b02b8086c951fbdccda5511109bb23875560bff70d82bc6aa1217a2803997915", + "value": 1 + }, + { + "key": "currency.balances:b03510ace44734e4687e0dfcb5e1a9ce1413fcd8234273709cb94323c044fe16", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b041ef4bf7247a539ace86772428d0fd8ba68419f3f55291968a2611e7fa08b4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b0a598938cb4905529bae280d9a75a591f237d92951aa5df27abaa3847d2d025", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b0d142feb20d8328c78a5d5b3d45599d2e6075c8908511d4ef1fc9cadf31ed80", + "value": { + "__fixed__": "5.19690543642048939296" + } + }, + { + "key": "currency.balances:b1ef75e5ffffb058a2a4a5b121d2acb05ea70f618fdf2d73957fe8a468d0f330", + "value": { + "__fixed__": "15.57537181885815781687" + } + }, + { + "key": "currency.balances:b213b5d7fdccc701ea90e4b09bd1651325b33fd53de5bf753c809e736fb24099", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b27a12fe7022691ba8cfdb2d554091698f7c288caa6f67c535785cad7ab1c118", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b28245c21b9f391fe45a5fca1c633ffad5a061e97bbd47460e94aa297e85499c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b29c498646c940f2354ca95f886b1877b05cb7e7bc9f6f165284f212b3c0271f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b2adaf4baaebcd734a29f27f4f0451fe2fa513bd2ec1569fd036cc89667f5985", + "value": { + "__fixed__": "13.91059900603940955793" + } + }, + { + "key": "currency.balances:b2fc3d738e626272e69b92586058bb30a311a09abc08c068ff75ac98aaf67aef", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b457b5e5f7e96b152bc7e03fa5590ea412d81fd66d7dfa6a997cb9e6607aecae", + "value": { + "__fixed__": "49.0815677560897834045" + } + }, + { + "key": "currency.balances:b4c4ef1f133217db5a8238624b2b00b1e77dcd41a04d6d0538ec7830c0f0a633", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b5327afb9af39c6f0fc6ac06a2f1f5bfa17416a99e61b4a56a4e481959c22885", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b545247f8b6104e6fade3669541b8559299ddc43086b7485e71bd1adf9c316ed", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b5a155c321720599dad4fe894f925d5f3d9069f7cdd8c2daae18214075517904", + "value": 1 + }, + { + "key": "currency.balances:b5a8ab90b02b158daac5784f89bc94d06d0a96e5f38e3bfa9a85e9f3e58211d1", + "value": { + "__fixed__": "2.2637136998500000002" + } + }, + { + "key": "currency.balances:b5f0128d4d650bd6cc69ab7419755e132d632787b5eb60013934a8400afadc8d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b61d8dc59b47cf3e1bfe2d129661eb4fd83015452d5f15fe740e20e81d5b5137", + "value": { + "__fixed__": "15.57537181885815781687" + } + }, + { + "key": "currency.balances:b6366590b2b7d8ce02738723d67e342f032bec2b5019e670ccad41d239c273a6", + "value": 1 + }, + { + "key": "currency.balances:b6504cf056e264a4c1932d5de6893d110db5459ab4f742eb415d98ed989bb980", + "value": { + "__fixed__": "5" + } + }, + { + "key": "currency.balances:b6504cf056e264a4c1932d5de6893d110db5459ab4f742eb415d98ed989bb981", + "value": { + "__fixed__": "7.3E+2" + } + }, + { + "key": "currency.balances:b6504cf056e264a4c1932d5de6893d110db5459ab4f742eb415d98ed989bb98d", + "value": { + "__fixed__": "15554.092" + } + }, + { + "key": "currency.balances:b6504cf056e264a4c1932d5de6893d110db5459ab4f742eb415d98ed989bb98d:con_multi12345", + "value": { + "__fixed__": "9E+11" + } + }, + { + "key": "currency.balances:b6504cf056e264a4c1932d5de6893d110db5459ab4f742eb415d98ed989bb98d:con_multisend", + "value": { + "__fixed__": "899999987109.002" + } + }, + { + "key": "currency.balances:b6cd8f99c2aead772e7e4a13b0427f25ee107e56ef2390331f662a135bea6b16", + "value": 1 + }, + { + "key": "currency.balances:b6f2a9ef4417bc607b06718aa9e2e3f817a60c38f76460566119259217668c4b", + "value": 1 + }, + { + "key": "currency.balances:b71c27c3872bf8444892e4b8c6c79d9243c6c809cd9117a9588416b6bcaf9462", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b722ba4dcf0a6c4444d0e032513fb150e85d6c1219019f8541403290cbd2e91f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b72392169f5f8c62cc72b79b22e86d26031f9eb5b3cb3d60dd8650e918fe611f", + "value": { + "__fixed__": "0.183451410162264206" + } + }, + { + "key": "currency.balances:b73737f1c45e25363e380f98de848c92e90180c593d9653594464323c4354c8d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b7703feb95597e270f6751f37b57df7799b66fa9fc4cd30913e1d938558661d6", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b818b3578ab37c02a35f95af4c8b3189074468fa6b48508822754d8f979682ac", + "value": 1 + }, + { + "key": "currency.balances:b8283bce65f983edb3628c320590852afa3eb075531bb7f8da778e3cca53341f", + "value": 1 + }, + { + "key": "currency.balances:b82f350dccec3ee8d9c112f97eea445fe4fad8a895c8d8d05bc31460a49d23a6", + "value": 1 + }, + { + "key": "currency.balances:b837124b7cbe977e8a4dce74b2b24a2634c3dd01797bd1baa4369c296b2a3881", + "value": { + "__fixed__": "13.46616375083513467054" + } + }, + { + "key": "currency.balances:b853b90e610dce2e79ec4abe7881c8ae7d6fc0dd556050384810c31c123bf13f", + "value": 1 + }, + { + "key": "currency.balances:b8ba6610d2599f0efd6cc6c531bf8e13d03bb57b17b42142df8ff943b3503272", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b93690aa8d75abaf76ec35be7d4406ee136ae7600d0ac98939a947653fd2577b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b93d835bfd21818a26700b5ed03f9a1548a77d40d01fcf548d1f9a9b00780140", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b9477b4780c97d18683e5123424e3e6cc554aabea29f79b60d2a142765781415", + "value": { + "__fixed__": "14.4188996872998442747" + } + }, + { + "key": "currency.balances:b94ce8b9fc6e7c04536d4de835e5f60065cd57cac56870705bd62e36b3210f2e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b9944116f84c109eb1887ef012ea989636df17ff09fd47117f54b86fcb055907", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b9c624855c720cf32a94b2f3b252523cea52b5c2051a1a8433314dcd2ea04092", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b9d118d30a64bc19388396a9c76457cea001786e38bcedf553e4c8b55cee3557", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:b9d74f2fce1a9e5496f40737ea8feb05293b0a660bd54a05cdc70d6eaf59329f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:baaa1675f7e9d5d461e1efb9bf97284d3d32d1d1eeaa52faa62d389d38f96c82", + "value": 1 + }, + { + "key": "currency.balances:bab2169cf4219b64b256a66d06d195a916ace4a0760208421badca933f841e55", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:babe5f7c737a4aa104ad80d757ce2a19f85676953d880573298a8607352355ad", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:bbb138a7088fa1b70a09cecf8f3c6146dba0e39f9de083bf4e4590e32b23a186", + "value": 1 + }, + { + "key": "currency.balances:bbc84ef00add60c0adedf3e30d8f5dd1aba1b2f615351752c6e2300438089b0d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:bc715a47ef98fe18cd218db247da82f8bb55d07cb999cb46a8d8262c96499f29", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:bc7234aa2ef95186c40894dfa180a44423cf952a32d0481c16777b2123510c23", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:bc8d99cef4aeb4366dac0af5f6c0f187df36a8fafb6029935195acb3c9aa7d8b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:bc917d6bf4c38bfbb93ddbac3af044645207dc2b10ef5c79821c4477d6ed2cfc", + "value": 1 + }, + { + "key": "currency.balances:bd3526e702815d5215fdecdf264be3dfa599c944c2b641ae0d9182326eed42ee", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:bd665e881ac1db8761fd15147574a45c07f51d531870bf28110092f3c2fe006c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:bd78e1ab41f214259239cc6d3430d8cd8d0c53721f3868acd7b4b96feec69d04", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:be007fad594672fbc5a928e79167ee4d96743504fbbd3f544add5e852d72b305", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:be033abce4b62ac96366bc16b1a5bdc35404acffbbb1e347046381d08c34d291", + "value": { + "__fixed__": "2" + } + }, + { + "key": "currency.balances:be033abce4b62ac96366bc16b1a5bdc35404acffbbb1e347046381d08c34d295", + "value": { + "__fixed__": "248.8212" + } + }, + { + "key": "currency.balances:be273facd29194526245292a166f0189f428288fd049b5c6f32d03dc869bea21", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:be27b7fbefa77d500db8419b1b2f13011f85d253cafd052eab02ee107613799a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:bea0ea30705cd5bb5fc73f128db4165736bbab3b8962ae8cd4a7651d0e63b216", + "value": { + "__fixed__": "2.5" + } + }, + { + "key": "currency.balances:bf33e2b93f32209629576ad6142078ec6eb4ba42a1cc30b834be0e7d3b5c9629", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:bf6b18bdfc38181c38ffb7d42d09cd1e13100bb2e11adf36bd816ca7658c91e0", + "value": 1 + }, + { + "key": "currency.balances:bfd7a0df8f3ecb74c22e601dd7928f275918a3d1c86eab169858d0db41f38dc9", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:burn", + "value": { + "__fixed__": "4.4444" + } + }, + { + "key": "currency.balances:c039138f9a836bb7eaadfedf74f5fa1a0914eed21d712cb3b5a28957d4778797", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c03983fc1bd1927ae6253e5b1c777e3b5b1cd764fe65b5aba51c997163e987ae", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c0476b987deee6d9d5eddbae604bf80fc442066f32954ef7120549ff4e51dfd9", + "value": { + "__fixed__": "6.68" + } + }, + { + "key": "currency.balances:c0476b987deee6d9d5eddbae604bf80fc442066f32954ef7120549ff4e51dfd9:burn", + "value": 41 + }, + { + "key": "currency.balances:c0476b987deee6d9d5eddbae604bf80fc442066f32954ef7120549ff4e51dfd9:con_prueba1", + "value": 3 + }, + { + "key": "currency.balances:c0476b987deee6d9d5eddbae604bf80fc442066f32954ef7120549ff4e51dfd9:con_prueba3", + "value": { + "__fixed__": "131" + } + }, + { + "key": "currency.balances:c0a5b67246d2930f3f45b8c50bc8a358123f33e77fa0125d2f4b60d75e0d216a", + "value": 1 + }, + { + "key": "currency.balances:c0a6aada8581976060d83db7f5295a8200b8506c8fd503ea84596f90a4dded4f", + "value": { + "__fixed__": "10.8843685844062307037" + } + }, + { + "key": "currency.balances:c0cd6761879fc21539c24e7249e1000e4ff80c0b2e5a9e7df486876636c2394e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c0dbce15a98248e2c5768d45e699377725b3940d2adcb70cbda9d52da8c70c2a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c1211c2b548456c8fad432e880548daf2181a8d15ba59e41c8471d544c1351df", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c14108310ca2532e51d67adc405fd79943bcd78eecf92ead37563023fe521e9e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c170b1f85dc23033307bbf0d182a6dd4e1a8979cd4d4c07f0bc462076538ce9d", + "value": { + "__fixed__": "0.122598389349658522" + } + }, + { + "key": "currency.balances:c197af46e6bf1f944dd76bb1330fa51aa422fd10bf058a379a2ee4d18f054768", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c1ae587308612f65005cbbe47565645ff9d83350ce344a9d454641630c9d482a", + "value": { + "__fixed__": "0.3802" + } + }, + { + "key": "currency.balances:c26f2626b6684f5fd1b440c3c5dd209206bc0b2ade7c717a997e18ee3a118131", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c274fe3ccd970aa44de391808607c1cf4c38673c339be6daaf23b9d7022e024e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c2a2f03a279f97de648477b4ed6bccb54d682f2c679cdd818ec4c4327465add1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c346f1f821984352af3e86bc0bf489c7c643e8c49abba715af8ebe0c0719301b", + "value": 1 + }, + { + "key": "currency.balances:c3557c4ef2c59bb0a7c771e4a0f9594dba6dd95b59b470ad26070f8cb4124af8", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c38124cc9dc6b453f7e19c858528e43942700f4be8f07e98bb21d9222669c621", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c38afe436bca21189efec5a0357b5075c2dddb5cf4f8890d7ddb7a43e2863672", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c5424fa210032f4169b4dac10fa44c8e58d37b5491637a5e704454c023c6f933", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c58d04dfd0412178f14d2885ac32912d131c3bf2ebfaf449dfccf49d5a9118c4", + "value": { + "__fixed__": "2.2397818801588677477" + } + }, + { + "key": "currency.balances:c638638ca186f35112bb7a350791a196068d9343e5ef7ab463400e840c889592", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c6591e088aba474499e624ad2ea9bb99d7527be6b575743f45b786c5f32780d7", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c69d6c63c13a3e21984e700a5b96f88e2485723cffbafbb0ac319f0c4078383c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c6ef7e45100272acaf8fc4d817071c74b47fe8f5c94e8f49140b6b505e4f7c07", + "value": 1 + }, + { + "key": "currency.balances:c71389d2d3461a029d9a655f8d1026902cea3ca58f02807a5fbf995615a5d9d3", + "value": { + "__fixed__": "13.91059900603940955793" + } + }, + { + "key": "currency.balances:c7bf705ed76f15fcd166b2e8bade6b11b62861b7442457717747ed862ec8d49a", + "value": 1 + }, + { + "key": "currency.balances:c7c35fcce46edd5ce7507e7ada3b5ef9f83a8d989cb9b101ee348659e6f6eed2", + "value": { + "__fixed__": "0.122598389349658522" + } + }, + { + "key": "currency.balances:c7e75cb47713e0972c01a9d32924ff3bca910e91227d9b08212c34204ac90cce", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c7f0f16169e661ce4c468800fe6be24f6988463089df2089ba66ec6a0e2c538a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c8103f212e4b556afdf1e3873192f22d1c90cfcfe8a6dbe62b116c2dc9613785", + "value": { + "__fixed__": "2.9412" + } + }, + { + "key": "currency.balances:c84054155b9a0c904ade6e2dad4786c4b6e9593d682345a3a75c166716a76a93", + "value": 1 + }, + { + "key": "currency.balances:c86d320ff5b6165b0bde4dbca7c6c25f36243630dc3325a2738bf99c59801f4f", + "value": { + "__fixed__": "5.19690543642048939296" + } + }, + { + "key": "currency.balances:c8725f0f806976ffd0ccfd589739265d81397f06c61ddb3b8425907877ff28de", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c87afa7a6efdee26746e80b0deca090d3d99bb4812e03f9b3143a4ff52a4c94a", + "value": 1 + }, + { + "key": "currency.balances:c8897e1724b70aa9d2ca28f40a1a37e67d5603033bad69c2b618ea9da3fc1a27", + "value": 1 + }, + { + "key": "currency.balances:c8a8e1396a7b84da9f440184d43d25e24c23849cb90628bdaccf315c230bf10d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c8c3147d79afb8605010c5aea8e9a483fb3bace8ddc043317f26a0f6d64e9bc8", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:c8d95c0a0ed58aef0075f0b7c10123a0cde8479ecdfbf128a36c389a89872805", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ca4ebdf557eae168bc5cabc85b98f1f43a4131faab877eef09b429e02d5175e5", + "value": { + "__fixed__": "45527.2034" + } + }, + { + "key": "currency.balances:ca96d0610facce8f5e48561e727f63662cdb0b53bbb579cf4b83a90217c18dbc", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ca9aeee192854dc55a6d3e211bf858cc3ecd41e8b86a55c07740ece29f349597", + "value": { + "__fixed__": "902.54000252" + } + }, + { + "key": "currency.balances:caf56af5d62052ffe5265274d3cbe1fae7c07d26fa89af96fcbbdb138e2345da", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:cbd04221bdf5b8378470ef2245ce7da979b1c8bbc10005e0617d4feda80a03fd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:cc6784de4f17f7e9cbc79c1bcf09c6f31af721f2fd71ffdb67222d40044621d6", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:cc81ca9eef4ecb6b87f55dcffd939a44b597fb82f43744a832aa385c84e40c95", + "value": { + "__fixed__": "5.19690543642048939296" + } + }, + { + "key": "currency.balances:ccb09fd90dbe430be4cdb0103c239446fe2cbbbcde6277dd7a59bcbfc76ffa50", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ccba65d07059aff316ad8b9a0abaacf35d2febed4eccf33798f55c2c92b854bf", + "value": 1 + }, + { + "key": "currency.balances:ccfab75e82f504cb550999ef0f4921cdb6409d6dd80046ca5f223401684afa9c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:cd127d11374f108989ee2d275ca841947ee53462a38acca3053b101722164254", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:cd1b495f40850ff3056539e11d63bcaa70861dc5e0e0edffb2306f83637f1024", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:cd2b84a0dd9b1ba49378083e8dbd4ebec1db85617bf206811cf90fa846258f14", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:cd503ef1aef4f046556896f8d1ec89286c642c6847804b7d6136990e2effa555", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:cd85dc5319271ccc2a6a3bd10a40b4f14e34b3e0cca9a8900cd9401cd8689f78", + "value": { + "__fixed__": "15.57537181885815781687" + } + }, + { + "key": "currency.balances:cd9e4a66b51fc8b7a84fa0b8bd9f774d7dafc8bcf6cac298d648497e0d3f4ea6", + "value": { + "__fixed__": "13.91059900603940955793" + } + }, + { + "key": "currency.balances:cda8a98844fecf682151116b78d12acb9d11662c2acc66df02977ebd18bd0621", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:cdb5e9c7817b8a8248584cff27a64b424600dd964a34a77f73eb3d1ff4ebf250", + "value": 1 + }, + { + "key": "currency.balances:cdcb4aa7c77b72de055938dc05344e23dc43dfbcd2cc026394821da8e2683105", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ce0d9d7f6d08a197b097ceffd173fe8371273c6ec1a33e17527a941cb2d7b396", + "value": { + "__fixed__": "13.46616375083513467054" + } + }, + { + "key": "currency.balances:ce30cd579f31f112996a7b7bb61c719a4a6b0e89ae3f668a9251cbe1c0d8c05a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ce54a886c69799763b067e2495f0b919b72eda81028d43a2718b1196df8db292", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ce89c1b44e5b6ef90ccd58e7c1af6e280725777150819d6dceac87d2306645e9", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ce924a8bc4ced8a2b9cef2e2cf7709b1a87f87bd84a9d645de96ec46a458a6c9", + "value": { + "__fixed__": "751.8" + } + }, + { + "key": "currency.balances:ce943adce77d1be398afb5d30645ecefb65ae2374289b5b5d6500e8ed807241f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:cedb8e584caa18acabe5f03a44c7d68e46d19899c64e4d8850c19b0e53a76bb3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:cf0a5b7d92c4c4766886fd9c2fa24c2dc89e135733a52d3ea5d0e3cea98702e4", + "value": 1 + }, + { + "key": "currency.balances:cf726cb470a740ebd8c5d20d8ae112191aa2e3098f5c9ace262c9b6e1e6b7b9c", + "value": { + "__fixed__": "10946.896" + } + }, + { + "key": "currency.balances:cf8219f0e6f07692219a2b7fbbbfaaae406ff892dbaf3d4da7c1339fcc341d54", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:con_dex_pairs", + "value": { + "__fixed__": "47.102000000230291939558750930651" + } + }, + { + "key": "currency.balances:con_dex_pairs2", + "value": { + "__fixed__": "112" + } + }, + { + "key": "currency.balances:con_dextest_001", + "value": { + "__fixed__": "1.1" + } + }, + { + "key": "currency.balances:con_dextest_002", + "value": { + "__fixed__": "1.1" + } + }, + { + "key": "currency.balances:con_dextest_003", + "value": { + "__fixed__": "0.001000011496015569361148261145" + } + }, + { + "key": "currency.balances:con_dextest_004", + "value": { + "__fixed__": "1.01" + } + }, + { + "key": "currency.balances:con_dextest_005", + "value": { + "__fixed__": "6.171458316281627620543E-8" + } + }, + { + "key": "currency.balances:con_dextest_006", + "value": { + "__fixed__": "1.85" + } + }, + { + "key": "currency.balances:con_dice2", + "value": { + "__fixed__": "39.1" + } + }, + { + "key": "currency.balances:con_dice3", + "value": { + "__fixed__": "4.9" + } + }, + { + "key": "currency.balances:con_dice4", + "value": { + "__fixed__": "1.1" + } + }, + { + "key": "currency.balances:con_dice5", + "value": { + "__fixed__": "5" + } + }, + { + "key": "currency.balances:con_dice6", + "value": { + "__fixed__": "11.9" + } + }, + { + "key": "currency.balances:con_pixel_frames_auction_v0_6_1", + "value": { + "__fixed__": "-0" + } + }, + { + "key": "currency.balances:con_s1", + "value": 30 + }, + { + "key": "currency.balances:con_s2", + "value": { + "__fixed__": "0.08" + } + }, + { + "key": "currency.balances:con_s3", + "value": 2 + }, + { + "key": "currency.balances:con_s4", + "value": { + "__fixed__": "0.06" + } + }, + { + "key": "currency.balances:con_s5", + "value": { + "__fixed__": "0.04" + } + }, + { + "key": "currency.balances:con_x7", + "value": 30 + }, + { + "key": "currency.balances:con_x8", + "value": 30 + }, + { + "key": "currency.balances:con_x9", + "value": { + "__fixed__": "0.6" + } + }, + { + "key": "currency.balances:con_xl2", + "value": 30 + }, + { + "key": "currency.balances:con_xl3", + "value": 30 + }, + { + "key": "currency.balances:con_xl4", + "value": 30 + }, + { + "key": "currency.balances:d0069430105d910ab412fb177f490cc0d646c844b6198148029fc24f6d21e57b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d00a45bbbd36ce70addb97c17c9413f082f89389f6783c7ffe6bdb516ff8a023", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d0362296b1cec350045e6409829cba364ebc79b9495955b84c2ab37e07ee8376", + "value": { + "__fixed__": "14.61628350261848495716" + } + }, + { + "key": "currency.balances:d04d2c981075523881a48c770943cb239032adaeda98bc31c65640df910f8cfd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d07132a2238c9b274f8deca42d6077d701c378bf96e18c54c6cf43c7a91ff50a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d09ef2fe4e29ebd56db577bead20b69aeced318bb0233c8c6c0f1e3065c3878a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d1492cf0a03be4648171c616e23cd384a0755ebd0b0275885ead920c1e2f47c1", + "value": { + "__fixed__": "8.4412" + } + }, + { + "key": "currency.balances:d19f67b14cd82e0ce82d9fb8f800e15f6042d06f95ec14ba49c5b130230ca94e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d1c0a4b76745d701761896b24836847c2158fef73f87dedce0d588eb58c9f76a", + "value": 1 + }, + { + "key": "currency.balances:d1c33e20f859c404d5c9956d1d7e9706ed33ae3c91bf774f7dd3099164851825", + "value": 1 + }, + { + "key": "currency.balances:d21fc634c69336fb0b6b30decc3ed56cbb0620263be20a450662d813b76617e6", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d2537e085ac5fe455e32861a4a766f6f09a521cb103166acfeafa0dd58e0d8ef", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d2d057fdec22300b9606ccabf636852c6116f04e2b0678788d0eb3cac19d6a4a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d302728d9ab3862673ef30593414fa1af6fe5a830275496125c2aba8b880218c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d3065270fcadb9eb08ef067f70fd39b6b9f397b781dd8f9971d535f2f6ebb1aa", + "value": { + "__fixed__": "15.57537181885815781687" + } + }, + { + "key": "currency.balances:d373dbedf51bff99d7b6f82c9d6520338aa8a3194ce6109bf49daba6303f0917", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d3993f0dbfa0a7ffe019ea5c63bb887f72d9730964a71e9ea0fe5bf76301c7f3", + "value": { + "__fixed__": "0.3802" + } + }, + { + "key": "currency.balances:d3d6c2de27382d05e147d58a790fa2b766e8abde680cfa32cdb1366b51808c27", + "value": 1 + }, + { + "key": "currency.balances:d401dfc0ca591362cc74f67fd89d5a294409931fead7365f8a806c3d9b81d271", + "value": { + "__fixed__": "0.02717551965806646" + } + }, + { + "key": "currency.balances:d435976bfa637d792527c1a0fbca94b6b80fdb31eb819956291612447fabb82c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d45dca4d83fc19ca36023d68b033e6520fa010fbd763543f616705068224d43a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d470acad5b6d8396d119324bf7f4127ce21605979e827423afc9120c7b40a13f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d4b06d6c108b38624dc2749f398ff3c54fba78c0e4ca621cf46a97f5111dcea8", + "value": { + "__fixed__": "14.61628350261848495716" + } + }, + { + "key": "currency.balances:d4b247127a8e52285c2a38e0a7f2cf1787307c5b873305686c95a02234f3b4c4", + "value": 1 + }, + { + "key": "currency.balances:d4cd7a8a34d231cde06e9ec0133006113398caecacc42ad2bbaa14159e325bcd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d4dc72d26c6b32d75015127cd0af34f8f9be41d0154311deffc67a512e6d0606", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d4e8a1c6e7f472d72ebd468d5aae90582426597ffb0c9965fa2c03783dc0934c", + "value": { + "__fixed__": "49.0815677560897834045" + } + }, + { + "key": "currency.balances:d4f51477c4792c0351d3e4db3ddb09d6f9acd9013cdcd99a19ab6657e6c189a5", + "value": { + "__fixed__": "14.61628350261848495716" + } + }, + { + "key": "currency.balances:d4f8b494f168db75dfe8c1ffa1972ef4bb25e5498d3e6d364c62473bd9cde5da", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d643964e8c00151d7fec669f3493c3b50cef23297922d8918ac2c30ac5db1e5d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d668236778ee8e5558c17b0eef3cc53c7bc01503e430c71df5918441f87d4f56", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d6b5855803fae7d7c2a819f7a63b9eb7942282c43882b8777b123386e5705c55", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d6fc4eba4b62050493447dede2e6bc4e26946423454fafbcd35b70653d2b1eb8", + "value": 1 + }, + { + "key": "currency.balances:d70858f07251ed349b3ae4c15b179e6c61a02c4d147a6c84773b3d0aed88bb65", + "value": 1 + }, + { + "key": "currency.balances:d719d6055f7c649aa19fd6a0ac53968cc0547825ec7d5b3056e02c95926abc11", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d71fa8a431240ce123cb0a9f224a3179d9a3989bde6482db431c64d3c9f83d7e", + "value": { + "__fixed__": "15.57537181885815781687" + } + }, + { + "key": "currency.balances:d7230203679bf54e4182c599998b2130cf9f4cc00e24da70a3d609dd8ad7cfed", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d72b501f61f8c60cb2f143fda1d99beb13e5322dc022c65ec1d5141127bc48a0", + "value": 1 + }, + { + "key": "currency.balances:d75fabe94182d81a2930b1ee153a20f42cfc748803be2537629f69cc78c57017", + "value": { + "__fixed__": "0.054253994911106032" + } + }, + { + "key": "currency.balances:d76977e8733bb4fdcbaf1d515349df23dbc827b605f3c134caccfb8374105bc4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d7afa44804d2b52c51939b08b9e46d45924cf6ce555dbb7972b7622e247cfa9b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d7ca62ac28c4cc7f9b952ce1b2dae84d75460a06ec8bc799346f952bed8832ed", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d7cbaecacc767fdfad371f866c569b42a349f148c7ae09e478080e776f96cf92", + "value": 1 + }, + { + "key": "currency.balances:d7ee0ab871490a66ec9961201a352b8736e8e1db619397deed9760c8b9886b6e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d8080cd1ba3216d6d5f7957eabbb78f79aedaeecff5d35615f52cf42d7e5e0cd", + "value": 1 + }, + { + "key": "currency.balances:d81d066d1d6911c6bc2ae986a463812252bf4ee7ac4e3e9a35bf82070b1a5ded", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d847fa66c1b202aa72a5f47de1cad5a5a33b6022eb4513648ba9a96ef79d83d6", + "value": { + "__fixed__": "10.8843685844062307037" + } + }, + { + "key": "currency.balances:d8873b44c120f02a0589e468f8a9694dbbe2dc59d46744ef9fa57b57e0bf2057", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d8c2dc24d88bfc8bf5ac9c8575a87a4f5d5cd35874ca80a3904661c2431b3074", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:d91bd7259e2c3880ff23cc3283d94fe83602c5e93ffad14a1553dd984ca21b64", + "value": 1 + }, + { + "key": "currency.balances:d96afcfcbb9d656b0e75b544b90acd2cb7a48378279c21d55aeb554d99a79e4d", + "value": { + "__fixed__": "2.2397818801588677477" + } + }, + { + "key": "currency.balances:d99d356fe2d208d401c0fa6c0b48c1cc5d56d3a75aae1234d0fa5b94b1eca690", + "value": { + "__fixed__": "0.1001" + } + }, + { + "key": "currency.balances:d9c804e65f7d97df6c623189048ed79b7fa0a311eeb60f0ac9eb07d1c6c0e1c6", + "value": 1 + }, + { + "key": "currency.balances:da143979858839490c16479bcaf2331fc894ee1fdeaa74c36fff23073b528ca5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:da6f392de2829712cb0db80593f5fe39d3a3205855d4f62c72510f4d8f346ecd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:da79173533b31ec3372099689e58d13b7ac5656acf6ee95ed50f3376d3e92871", + "value": 1 + }, + { + "key": "currency.balances:daff08f34b3bb9596183fee147c4fdb028f4093375e252fdee0f2090251c12ae", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:dao", + "value": { + "__fixed__": "28333333.3" + } + }, + { + "key": "currency.balances:db344ed7c43ce1970fcc0d656e9d47718f90f8947c1517667f768b1c3b432e10", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:db933846c6493282605a3a47ab70f518a4865301ba45e71106f29b50d654d8ff", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:db93cf7aacdc565236117de38c2cb2af16cdadd41047a4d8e3f01e2046828c69", + "value": 1 + }, + { + "key": "currency.balances:dbeb65465f0008e44628a04bbba8b06ddade5082c96ae744513744bf186f1332", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:dc713dd0be95c670c1ba8dba60067b93bd6e8f845a12748e8623e8ba6792a3be", + "value": { + "__fixed__": "49.0815677560897834045" + } + }, + { + "key": "currency.balances:dc7f63ee4429398fd9c866bee7637812b4764560e0aeb3546c9533f738713b0f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:dcc7b2b2ebd52d9e9c3bbfc0f2aac62fec786b15858d8d9c3c571f964bf134a4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:dcdeb11527b2469e1d6b53c19195c6f073ac2ac8e9fefc212b35cb359b12a5a6", + "value": 1 + }, + { + "key": "currency.balances:dcf8eddc2f215eab9496069c5af56f695533f30b1f86009112f6c9f206b4b222", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:dd0d8a6b62c884e523f2634089307e7b76584aa4ac176afed7522e82e792849a", + "value": { + "__fixed__": "0.02717551965806646" + } + }, + { + "key": "currency.balances:dd302e35427beeb5180ff15d1ae2cc94022bf3472789201177c7a88207427863", + "value": { + "__fixed__": "14.61628350261848495716" + } + }, + { + "key": "currency.balances:dd86e88e07ae95bd1d64fb801ad4b001030a914e7a31e82fba2786c768b4ffb1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ddd326fddb5d1677595311f298b744a4e9f415b577ac179a6afbf38483dc0791", + "value": 5 + }, + { + "key": "currency.balances:ddff1fdaa645c5e9f0292cba6f4c1a1cedea4a0fc6a877984aa897fbfaec53d6", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:def2437853dfdc92216b36e06eb54a69a36b7dd4551650693fe83144924a9112", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:defcffaa0c2603d9722c925652e17bb1f7ba7acf8e9cc7967c60e2e8732329a7", + "value": 1 + }, + { + "key": "currency.balances:df2f23997d5415d17934f3bb5a1ec2b0f25b47a4aa58b47e42341f03d1c72242", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:dfa868b9e750119f4c0bc87e96292615a77ebfe7db53a54ad4283d6225eb4fe6", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:dfb2bbbbf7e24a30217cb1ed0e4696bbc7db6da719b5dfa0415f57df4aebc395", + "value": { + "__fixed__": "15.57537181885815781687" + } + }, + { + "key": "currency.balances:dfd374c2a6519c3031f5491ee602f30026e11fe1ad48b8db00a19b0e43ab0c2c", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6", + "value": { + "__fixed__": "3931.9116" + } + }, + { + "key": "currency.balances:e07cb805155e95d820146451bf9724cf3e944a8a66169c5fc97b624457f8462d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e0be0b4acf1390904e3e971a906ac59a590221825b701837467d97cd243b19ea", + "value": { + "__fixed__": "28.296421249999998" + } + }, + { + "key": "currency.balances:e0c405adfb8c86724c858501978c1b1482abadf792c88621790ad0c700373692", + "value": { + "__fixed__": "49.0815677560897834045" + } + }, + { + "key": "currency.balances:e0fbdee6626672004795dbeb1d3b8f6d9fb1bbd4060a0a9da17951555bfe38d4", + "value": { + "__fixed__": "13.46616375083513467054" + } + }, + { + "key": "currency.balances:e1b58d9dad786d47ff7d66b30c09406eb5080250f8f355b4e1b969dc342b83ec", + "value": { + "__fixed__": "14.61628350261848495716" + } + }, + { + "key": "currency.balances:e1bae6e5ef4e89c4604ffb54aa36403e7074b299629ec055e223a7b685ab0879", + "value": 1 + }, + { + "key": "currency.balances:e1df68ef8ac03e3c235e3f0d9497774558d0894842c540406a430123d3e4db99", + "value": { + "__fixed__": "0.054253994911106032" + } + }, + { + "key": "currency.balances:e1e5d407146d94701ddea4d31058395a015f7addcadacf56eee7d33a45423d72", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e27ab37c1368fbf7798825eea969dd493b9a804d199e632ac81d7fe4279a8dbe", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e3007eee3b351e288008b37da8ae59d1ea4a15375dce30121465c0302aeddaa0", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e35d3b7f54807f123e545399286d509585b38609023f81e29dab101438df0d9f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e39ba5821dc9366eeee38c8cdf34b00f834cbb23640e553011a12f7bb850d519", + "value": 1 + }, + { + "key": "currency.balances:e3d50e1d6122d1d019f703512b6d5e9e4bb6427caf7e18c0dabea0caf073c0c9", + "value": 1 + }, + { + "key": "currency.balances:e3dede97726658a91f4a7d2fd39b5a7cd7bc4ce4e72583a97550d0def63d354a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e4152d75199f4ac8b282011a5f5cf8355062b6add9e4237acbbad7fbbc836091", + "value": 1 + }, + { + "key": "currency.balances:e44e61b704d3e81feac36675b1cf49579809963d61b1cc2769c2c9d98220c4fd", + "value": 1 + }, + { + "key": "currency.balances:e46d50bde84de2f74748b97a80e33da1d724ca91ceeddd9fe677d0e585fe3ec0", + "value": { + "__fixed__": "0.02717551965806646" + } + }, + { + "key": "currency.balances:e47fd583f77c0bde61b537697cfab05ef2e26cbf6aca28ef5aa2a4c2e080d0e0", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e491f2f669c0643670cca202d955a364ae2ff279810b88ae76a514136450bf13", + "value": 1 + }, + { + "key": "currency.balances:e49930500dcec26abcd824c31a4458abd7a9a2d0d98af9dac0c0abf95b642df3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e55d5b7b7f67dcbd89a4322832e4664bb08c710add57a7fb6cbae3226c805b6e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e6404486f324394b0be2eb87d4dda10d4a95ca0737a3b41c30cffefaa1b7efc7", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e6b22e83fc9b7d538f451253bef32d0807c10b12653282b2b9672689d33fd2ba", + "value": { + "__fixed__": "5.19690543642048939296" + } + }, + { + "key": "currency.balances:e70ac9672baf14013a46cb9935d38ee2613aea3414260cb799c9b64273f79a20", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e72efc88aab20cf7c26e98419aad72fcac922b4f465ed2fc7ebea1e1449d32a2", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e734ea6c2b6257de72355e472aa05a4c487e6b463c029ed306df2f01b5636b58", + "value": { + "__fixed__": "100.15" + } + }, + { + "key": "currency.balances:e734ea6c2b6257de72355e472aa05a4c487e6b463c029ed306df2f01b5636b58:con_dextest_006", + "value": { + "__fixed__": "1.1" + } + }, + { + "key": "currency.balances:e77ca85ba1399523b69a18ef0ffed9680f87d768f4a8fc72fa8b35161747c050", + "value": 1 + }, + { + "key": "currency.balances:e7a62cde715a789492d3515caddd310a4ee55ae0bffba157345cf6d20ff1e26d", + "value": 1 + }, + { + "key": "currency.balances:e7d442da2c3257ca26a57e4c30917a7894b2073c8144e80810b12b32403b3c3b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e7e7333eb02941f7d1ff2d690fd59f84c07ae63f5094df3270ae86bd878952a3", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e81b6d910e9befd9dfb80c95b6e2acc2351f047f8d29f02e5e4e399887873fcf", + "value": 1 + }, + { + "key": "currency.balances:e85df37fdbbc86315e9079f1d63892ee3d29ac0514016e03fb5df8d63d76e777", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e86ba24fcf183e87860ec860ff41e7f4ccf34c486b3930e9ccae233d24b76ad4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e881b172afaed01e3eb33014b788cca549343a6c70abf87f04a576176a8e66af", + "value": 1 + }, + { + "key": "currency.balances:e888e32c43c4bca31905f731942bb009f48e7cfc869394cd1541b49acb9dea4b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e90e1fa19ec03c79ca1e170660f4b7a93227bf0c14b6011afbb6126904cbdc3b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e96ae72a90592dd2fc3b207b8c1f71d3e3ef1cbbe58d803d888656d611e99994", + "value": 1 + }, + { + "key": "currency.balances:e9c11922b052aeecb1c95207c05f46ee98664e74a96de162c6cee844b212e7a8", + "value": 1 + }, + { + "key": "currency.balances:e9d508621001857bbfadba285235638810c4982b1e2bd4dc603daf1920482b9b", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", + "value": { + "__fixed__": "981623.799514054990895930799999999998" + } + }, + { + "key": "currency.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931:burn", + "value": 2 + }, + { + "key": "currency.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931:con_dex22", + "value": { + "__fixed__": "3.4E+2" + } + }, + { + "key": "currency.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931:con_dex2test", + "value": { + "__fixed__": "54.9" + } + }, + { + "key": "currency.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931:con_multisend", + "value": { + "__fixed__": "15000899999998399.4365119658409468114" + } + }, + { + "key": "currency.balances:e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931:con_multisend_2", + "value": { + "__fixed__": "8000009999984041.261863605199929" + } + }, + { + "key": "currency.balances:ea0f3630b376568fa66f5d5f98358d057fb699671218b2ed480b7b84ddfa7dd5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:eb0906ef7ddde8bb1e8df2527eb714358f3ffa710cebd7305e596d9203b9d478", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:eb235f486847725ca5848e027c30baf469c4c3d2585f6df8d9e7864cdb3b5a6f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:eb3bef7ea1ce12cf375e6416f97a2211189c0d9528f35eb66b3baf5746ef1ee5", + "value": 100 + }, + { + "key": "currency.balances:eb4c17d980c91677e204d55b7ac2f5980885281dfbe037546bbcb3b0341cda02", + "value": { + "__fixed__": "13.91059900603940955793" + } + }, + { + "key": "currency.balances:eb54256f48209f229633ce181a2021a4085b1f4dc120cd62404d1c9241705390", + "value": { + "__fixed__": "13.46616375083513467054" + } + }, + { + "key": "currency.balances:eb8a6063a5396d9e6a6e74453a39320e54c94661c28d34f50c1728fffbe4ef93", + "value": 1 + }, + { + "key": "currency.balances:eb9187db8e09c32737e657fd3f666fe395b4806b47aa040015d404226e1308a2", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:eb9287c8dc8c655a61db13b1af13b8100944961c8e34a95ef6b26f7970e3cf43", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ebcf6b83fa5fa0cd99db63638265f9f4225f324dca0df3cef251e5afe106f8ac", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ebf556fa72b2394ed70ae0f1e8a8b64a1fad613c6a33c51e59bd3104e547a606", + "value": 1 + }, + { + "key": "currency.balances:ec4cc6dec018578d03e9af766ed9a683fa5bf6fbce2118d3cb6e3cf5868c44dc", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ecb3fbf2932fe2df5e86bc921a6268b4a22bbbd04be8f8ef6abfb32e21894829", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ecd852d28ac2ddd86ce93d99218174f294a5793988be3a7d65cf95105b6ea576", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ed2de329f6e6987545a4538fd0b333026dd319fe52ce9fa495415bc70f34bdcd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ed72d192c32f02de68c0e308ca88bbcc18d012f768ba9e0fc8fe909c8af76e90", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:edb6cde6dd18cd6c17e0b97d7391c87d340ed2e58a94d66412338e082a4dd51f", + "value": 1 + }, + { + "key": "currency.balances:edf0dcc7cf108385a6c2cf4b46df228157345881209ace0cb4ffd66b19740fcd", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9", + "value": { + "__fixed__": "6.53539748" + } + }, + { + "key": "currency.balances:ee451ab9ea740a83ca94c14d5fca5122f7e9fc5cbd9700020310b78ca938e94b", + "value": 1 + }, + { + "key": "currency.balances:eeba5bd863e96ca1214d3f83485da357883b592cdae85f2e088d2356cd82a5d6", + "value": 1 + }, + { + "key": "currency.balances:ef330e8e70066c02fd954a2928a68cdc07a8af2c95f40af45b8b58793ef3971c", + "value": 1 + }, + { + "key": "currency.balances:ef414ac7b6d86bc4d446bdb584763b00eb183fc5e783232afca30d7a24cb4c61", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ef6e12684289fdaded1a86b5aa6c7cb6473d33412abea7c27eed5dbf012ae580", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ef71da0c62aea95ae3ba7f567571edb075439b85cd8daf0077b9ab10ee82a701", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f0018d21c0dd7a98db36122bed7f9bbba4ad8cc1c1e85953ade34e82957243c3", + "value": 1 + }, + { + "key": "currency.balances:f01a80841677d137fa63058a358225d8beac65d5a3064b5fef66d8ebbeb47f72", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f0222f00943416a8cacb2160e4af75faff36660b87e99279a045af1f4182dd1f", + "value": { + "__fixed__": "17.34" + } + }, + { + "key": "currency.balances:f0222f00943416a8cacb2160e4af75faff36660b87e99279a045af1f4182dd1f:con_dice3", + "value": { + "__fixed__": "1999999999988" + } + }, + { + "key": "currency.balances:f0222f00943416a8cacb2160e4af75faff36660b87e99279a045af1f4182dd1f:con_dice4", + "value": { + "__fixed__": "1999999999997" + } + }, + { + "key": "currency.balances:f0222f00943416a8cacb2160e4af75faff36660b87e99279a045af1f4182dd1f:con_dice5", + "value": { + "__fixed__": "999999999999" + } + }, + { + "key": "currency.balances:f0222f00943416a8cacb2160e4af75faff36660b87e99279a045af1f4182dd1f:con_dice6", + "value": { + "__fixed__": "999999999985" + } + }, + { + "key": "currency.balances:f03b351c034831e3245af4b6115b7761f8f785cd14f335365d42a57972394517", + "value": { + "__fixed__": "2.5883480666084075728" + } + }, + { + "key": "currency.balances:f04fe4697975bd694952e828476b201454fcb68048419c09f5b40686d40d6d94", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f065b14bbed5387225e591f561b6b8a628899c6802042fb2b3cb2c2857a892cf", + "value": { + "__fixed__": "0.33955705499999994" + } + }, + { + "key": "currency.balances:f06df3844c2e2914b1eb0a136202b532b8c61ee83ea46ed9b14dd83e37266a6d", + "value": 1 + }, + { + "key": "currency.balances:f07b92bc8a75953e843437cc383240a1d79fc8f1fcda12fed3149737d57c5bb7", + "value": 1 + }, + { + "key": "currency.balances:f09a3ef2d493633c43d466c024eef5a41b3438fa11b330fa0905e7ca3fea572d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f09fa5781228dc25f96e70dd73118097417b8268adf2834db746faae16126aea", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f0fbffaba939ccf20c270cfc88d82c467518b8707c280dc60e4bb765aa92720c", + "value": 1 + }, + { + "key": "currency.balances:f1228b97b70ffe557e35fac26fca0da3e1f5060a4ea62d8f3137360e201254db", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f16105c7a8418df91df99eb33a59d35303f7124cfd84f83ea4034373e6e38636", + "value": { + "__fixed__": "18.08141318" + } + }, + { + "key": "currency.balances:f1b947b494fe116a169a2dc8ef55a87302a7b18b115ab436193ef42cd3ba409d", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f1f1b1f046d1ce37bfefe02050eb829268916cd752df4d993ac2258174e2042d", + "value": 1 + }, + { + "key": "currency.balances:f20fb94c1f2c21d4cd47bf0a48c1db89f0da43c624dbd17a34e00cd2381193ed", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f2390f75c78ef6cb41d4f290ce06861aaff146d83e580413941c4a8771e0319a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f2a944b315fc47474767190cbd6246ea089495ed0a59a54a8a22d086554072ce", + "value": 1 + }, + { + "key": "currency.balances:f300ee01dfbb1022bdb61163763a428facb4633a00770bc1dcacbdb4b0f42a84", + "value": { + "__fixed__": "3.961498974" + } + }, + { + "key": "currency.balances:f30a077b26d633299a2659258e10f094746fe152514bab75f6494bcaaa6902f6", + "value": 1 + }, + { + "key": "currency.balances:f31835c500828b6dbadc3ba1cbd17b57ffc5122ce421588ebcc711961058690a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f31dc321fd3f087ce72e73aaf432835c73ba79d88d85fb62d9e6404cb19e4dc2", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f36ab12efb37303f44ad9cbb495ef37eb2bca3d351762fce9c3140de377537a1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f3adebf7a7112ebce9684e6d5931baf38071a53f54a2567a2fee915ab182c526", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f3bedcfd6923823b9f6a019983740c991b5ac1dabc961ec39f6d9b126970272e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f408f135b8db9d11daafae6b508c98a0cc79556c921b4fafe5d9ada0d5e3910d", + "value": { + "__fixed__": "0.3802" + } + }, + { + "key": "currency.balances:f4304ff51bccf98aa7f5a8d1e881787fe77f450d8997be99719261c06fdbac0d", + "value": 5000 + }, + { + "key": "currency.balances:f4602143a3d066ff8a528fb669592887628eda7a05b251236b0a9e569f2f361e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f4a13de1612d7dc4e2072cb0d669ae772ae2cd1a30e2b062315bc82276211b67", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f4c1d09313698449d68472fccc228376c1f8fe0a5b03d1107e381d753a6e14d6", + "value": 1 + }, + { + "key": "currency.balances:f4d0d7bee54dbd6b7c01ef726781e1ed501a0842937f943a7228c4214fef5d5f", + "value": { + "__fixed__": "0.1001" + } + }, + { + "key": "currency.balances:f4e7867f5917f874591818fdb77a13ad773062837eb21f5f1e5833e7b57082fe", + "value": 1 + }, + { + "key": "currency.balances:f5334cd8518900b8517899c7db1056789922b0bc025ff83fed406e9080912ea7", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f58e802f298b5b852ea62b961bd8a00b759ab690d5863ced2f36ef0fafaa8280", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f5910a6fec138501fd89d274e5143488d9955b1329a856abec2abff725b924f1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f5bdce0a60d1ea3db3eafd3daf923d27035824aa1d0ec4a179dced3d2be26143", + "value": { + "__fixed__": "46520.5367" + } + }, + { + "key": "currency.balances:f5c58d78d03f6d120966eb4ce620d7d67ef00993734c1469dbe7aabb9bb2d1e1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f5eeeb3ab5e2aaaa18bc216e68bdae7bed4c3d385811f267be185ac5602aad22", + "value": 1 + }, + { + "key": "currency.balances:f67c0bea0f7133196f32c88f97015cbea71fb37a2dc25951605d7e3e4eecb3c2", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f6a184020d91c3d585e5a228884d22f1d40ba46c9d2adbbf76d9636011a2a12c", + "value": 1 + }, + { + "key": "currency.balances:f6dd3ef9829e8f7684f6b79e2bbd581d088cdbd4329ba3a0dd8749b101f7e151", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f6e29a4bc6fe7b81df9318c97b9d9bf1a4b0853ecd2dfe1789b9618486509f9c", + "value": 1 + }, + { + "key": "currency.balances:f6f5e390665501dcff39c8e0a081be3ceef29d086e1ae528227bcb23b62d1371", + "value": { + "__fixed__": "0.183451410162264206" + } + }, + { + "key": "currency.balances:f73a9c383e8706f48fefde2344b7d34b4b20f79a4d1bcefb63599ea9634a6bd5", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f762d1004d3fdac41105818c6aae9318a26aa6a3e094ea327afb043dba2b71d5", + "value": { + "__fixed__": "49.0815677560897834045" + } + }, + { + "key": "currency.balances:f785ff29aaff263205875ad21ddf30cdc7d9e84a30558e041c6c3e67051bfcd8", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f7a7ad8971556bed8e104ab063bf46de4feaab7eaa657373bec7671421483978", + "value": 1 + }, + { + "key": "currency.balances:f7fc7a7e87a66263286110af1efef86457012216d16b7de5b73975209c8bec94", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f831d442d935b7692a0e474de6e1333bc47c25b77f3f3dcd888e594ef4b7e7ad", + "value": 1 + }, + { + "key": "currency.balances:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce", + "value": { + "__fixed__": "32377.7516" + } + }, + { + "key": "currency.balances:f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce:con_pixel_frames_master_v0_3", + "value": { + "__fixed__": "9.999995E+7" + } + }, + { + "key": "currency.balances:f8886fa33fe852136a7e6346c17e5b042bcca66100c55517d87e97cd1e3de896", + "value": 1 + }, + { + "key": "currency.balances:f8c13ed52691dafb0f5bfbec52048561933e888c7145c707022daf16e753fae6", + "value": 1 + }, + { + "key": "currency.balances:f8e50a34e0ab068450b67f0855763ac9de1db6be2b19e82748dfb9232e915ea5", + "value": { + "__fixed__": "152.9412" + } + }, + { + "key": "currency.balances:f8ecb11a340092b73c9540e90f4a2a38b462ecf4f64420ff29af2f8edaabbdff", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f97ba4ec7b3ca0222ea89ec8e187c72ed71ec526f5594f585f073880733e83a4", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:f9cf56fa2d09182882f264fce09d40cfbb76c72c99675ed8c43a981ea9b2585f", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fa385b9494c81abbccf13a4cfef0ec40e2cbedd92347dc13cc4d5d1b62b25ee2", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fabf7ad6ff649224be5a4c4b98d96627d7cc3adae70b7f8942dd76e29944bf0e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fb133a8209291ec109ddc99861746c51ad279109e1963398b2a847d1c86ef595", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fb484707cb9b899ce939d2b673bcc9c470f6ddabf19050605974e8974c47a3bc", + "value": { + "__fixed__": "14.61628350261848495716" + } + }, + { + "key": "currency.balances:fb63bf1bf3b32edb8ba68643ae799c5d785c139157570c236cdc37c659fbd644", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fb6acac7d637ed9e8eee654eddf78730b4cd8664dce4432a3fc94a693100292b", + "value": { + "__fixed__": "2.2397818801588677477" + } + }, + { + "key": "currency.balances:fb6de1638cf2377cd56ffa7ac531660bd4d6ca634e444d635d24ff847e71163e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fbdfefac57f6773cb085f5527591f08430dfcc59bc24d923d478e728112033b1", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fcac8451d22c7672bcfe78c54cfa1ed278c7debe2c85bb42bb578e6be8878dde", + "value": 1 + }, + { + "key": "currency.balances:fccc61c6f445f324cf9eac00e997e0e0545e9a75d8eca8d3f04803eb6bfeff18", + "value": { + "__fixed__": "5.19690543642048939296" + } + }, + { + "key": "currency.balances:fcf26e17ea8e18837f115a56359801c356ac6aa0ea3b163301dbe6bd1d426785", + "value": 1 + }, + { + "key": "currency.balances:fd0bf6bc9a205ee2f53895f945645b2fda1a7598c8420d52f2d6fa62a24b6e2e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fd8a75812695e66a2ce8c734a58aeecfe9eb53e9c6c2832533b9d165364e77db", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fd97470445292c57180846cf32c17d0c661af9311927e1dea85755467a3213a5", + "value": { + "__fixed__": "752" + } + }, + { + "key": "currency.balances:fda595405fd0b7692c0864a0b38f17c1aaa7993084245f35acfa0596db008286", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fdba528d57673c220b3ccdcc6d5b7b09282885f71052f9962cbcc5117cb87e1e", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fe01544fb76b9a745c1a5c27522c4e075cdaffcd914e3b36a747e3ebc375db8a", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fe0b96656b75708718fc8e4427f4ff037fc597511ca6ba7e221f808bb470e323", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fe778793ec610bef1f7ea888d23d9a41df088049b3612d34167fc38b6b17bfa2", + "value": { + "__fixed__": "2.5883480666084075728" + } + }, + { + "key": "currency.balances:fea12833912097a652f2d9f0f9086bccaa597a9f4dbc147e1ef764f5834b0867", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:febb1fd3c637a668d0050df68382ac1f097170c04ddeb1b02a5fe44742c19154", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:fee97a7c5dcd6694ed668fbc15b403c64a331bfefea70a3d374dac8522c25eed", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:feee860b9b553049346a8092f07233842dd1abc7a9a5eaeff95dde7920e36dd4", + "value": { + "__fixed__": "0.122598389349658522" + } + }, + { + "key": "currency.balances:ff69b200e8ad9ed5ba211e5e640da6578ee78ffe49e465da614d299c6afe0fe6", + "value": 1 + }, + { + "key": "currency.balances:ff9d743afde13190faa2740268031b3d76a7283a111661e757ca37fe86a9f534", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ffa5342532a3a7c6c62791fdd8d527d7b0bcd2f5089fd2979f6f310d12c958e3", + "value": 1 + }, + { + "key": "currency.balances:ffb27289731c3c6cf8226f655ff36475665896e4888e20b6e9269063089cbc11", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:ffc94c4da25745d6595d48348a7e45137102e3529ddf4702e82901d14bf4a973", + "value": { + "__fixed__": "0.00001" + } + }, + { + "key": "currency.balances:me", + "value": 8 + }, + { + "key": "currency.balances:nwm", + "value": { + "__fixed__": "0.01" + } + }, + { + "key": "currency.balances:team_lock", + "value": { + "__fixed__": "16656788.18201794647711225" + } + }, + { + "key": "currency.balances:test_address", + "value": { + "__fixed__": "547.48325887999997" + } + }, + { + "key": "currency.balances:test_address_2", + "value": { + "__fixed__": "574.100314959999996" + } + }, + { + "key": "currency.balances:wallet_address", + "value": 7 + }, + { + "key": "currency.balances:you", + "value": 8 + }, + { + "key": "currency.streams:team_lock:begins", + "value": { + "__time__": [ + 2024, + 6, + 10, + 13, + 39, + 0, + 0 + ] + } + }, + { + "key": "currency.streams:team_lock:claimed", + "value": { + "__fixed__": "9878.46798205352288775" + } + }, + { + "key": "currency.streams:team_lock:closes", + "value": { + "__time__": [ + 2029, + 6, + 8, + 13, + 39, + 0, + 0 + ] + } + }, + { + "key": "currency.streams:team_lock:rate", + "value": { + "__fixed__": "0.10575725568804825" + } + }, + { + "key": "currency.streams:team_lock:receiver", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "currency.streams:team_lock:sender", + "value": "team_lock" + }, + { + "key": "currency.streams:team_lock:status", + "value": "active" + }, + { + "key": "dao.__code__", + "value": "import currency\n\n\n@__export('dao')\ndef transfer_from_dao(args: dict):\n amount = args.get('amount')\n to = args.get('to')\n assert amount > 0, 'Amount must be greater than 0'\n currency.transfer(amount=amount, to=to)\n" + }, + { + "key": "dao.__developer__", + "value": "sys" + }, + { + "key": "dao.__owner__", + "value": "masternodes" + }, + { + "key": "dao.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 10, + 13, + 39, + 0, + 0 + ] + } + }, + { + "key": "foundation.__code__", + "value": "import currency\n__owner = Variable(contract='foundation', name='owner')\n\n\ndef ____(vk: str):\n __owner.set(vk)\n\n\n@__export('foundation')\ndef withdraw(amount: float):\n assert amount > 0, 'Cannot send negative balances!'\n assert ctx.caller == __owner.get(), 'Not owner!'\n currency.transfer(amount, ctx.caller)\n\n\n@__export('foundation')\ndef change_owner(vk: str):\n assert ctx.caller == __owner.get(), 'Not owner!'\n __owner.set(vk)\n" + }, + { + "key": "foundation.__developer__", + "value": "sys" + }, + { + "key": "foundation.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 10, + 13, + 39, + 0, + 0 + ] + } + }, + { + "key": "foundation.owner", + "value": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + }, + { + "key": "masternodes.__code__", + "value": "import dao\nimport rewards\nimport stamp_cost\nimport currency\n__nodes = Variable(contract='masternodes', name='nodes')\n__votes = Hash(default_value=False, contract='masternodes', name='votes')\n__total_votes = Variable(contract='masternodes', name='total_votes')\n__types = Variable(contract='masternodes', name='types')\n__registration_fee = Variable(contract='masternodes', name='registration_fee')\n__pending_registrations = Hash(default_value=False, contract='masternodes',\n name='pending_registrations')\n__pending_leave = Hash(default_value=False, contract='masternodes', name=\n 'pending_leave')\n__holdings = Hash(default_value=0, contract='masternodes', name='holdings')\n\n\ndef ____(genesis_nodes: list, genesis_registration_fee: int):\n __nodes.set(genesis_nodes)\n __types.set(['add_member', 'remove_member', 'change_registration_fee',\n 'reward_change', 'dao_payout', 'stamp_cost_change', 'change_types'])\n __total_votes.set(0)\n __registration_fee.set(genesis_registration_fee)\n\n\n@__export('masternodes')\ndef propose_vote(type_of_vote: str, arg: Any):\n assert ctx.caller in __nodes.get(), 'Only nodes can propose new votes'\n if type_of_vote == 'add_member':\n assert __pending_registrations[arg\n ] == True, 'Member must have pending registration'\n assert type_of_vote in __types.get(), 'Invalid type'\n proposal_id = __total_votes.get() + 1\n __votes[proposal_id] = {'yes': 1, 'no': 0, 'type': type_of_vote, 'arg':\n arg, 'voters': [ctx.caller], 'finalized': False}\n __total_votes.set(proposal_id)\n if len(__votes[proposal_id]['voters']) >= len(__nodes.get()) // 2:\n if not __votes[proposal_id]['finalized']:\n __finalize_vote(proposal_id)\n return proposal_id\n\n\n@__export('masternodes')\ndef vote(proposal_id: int, vote: str):\n assert ctx.caller in __nodes.get(), 'Only nodes can vote'\n assert __votes[proposal_id], 'Invalid proposal'\n assert __votes[proposal_id]['finalized'\n ] == False, 'Proposal already finalized'\n assert vote in ['yes', 'no'], 'Invalid vote'\n assert ctx.caller not in __votes[proposal_id]['voters'], 'Already voted'\n cur_vote = __votes[proposal_id]\n cur_vote[vote] += 1\n cur_vote['voters'].append(ctx.caller)\n __votes[proposal_id] = cur_vote\n if len(__votes[proposal_id]['voters']) >= len(__nodes.get()) // 2:\n if not __votes[proposal_id]['finalized']:\n __finalize_vote(proposal_id)\n return cur_vote\n\n\ndef __finalize_vote(proposal_id: int):\n cur_vote = __votes[proposal_id]\n if cur_vote['yes'] > cur_vote['no']:\n if cur_vote['type'] == 'add_member':\n __nodes.set(__nodes.get() + [cur_vote['arg']])\n elif cur_vote['type'] == 'remove_member':\n __nodes.set([node for node in __nodes.get() if node != cur_vote\n ['arg']])\n __force_leave(cur_vote['arg'])\n elif cur_vote['type'] == 'reward_change':\n rewards.set_value(new_value=cur_vote['arg'])\n elif cur_vote['type'] == 'dao_payout':\n dao.transfer_from_dao(args=cur_vote['arg'])\n elif cur_vote['type'] == 'stamp_cost_change':\n stamp_cost.set_value(new_value=cur_vote['arg'])\n elif cur_vote['type'] == 'change_registration_fee':\n __registration_fee.set(cur_vote['arg'])\n elif cur_vote['type'] == 'change_types':\n __types.set(cur_vote['arg'])\n cur_vote['finalized'] = True\n __votes[proposal_id] = cur_vote\n return cur_vote\n\n\ndef __force_leave(node: str):\n __pending_leave[node] = now + datetime.timedelta(days=7)\n\n\n@__export('masternodes')\ndef announce_leave():\n assert ctx.caller in __nodes.get(), 'Not a node'\n assert __pending_leave[ctx.caller] == False, 'Already pending leave'\n __pending_leave[ctx.caller] = now + datetime.timedelta(days=7)\n\n\n@__export('masternodes')\ndef leave():\n assert __pending_leave[ctx.caller\n ] < now, 'Leave announcement period not over'\n if ctx.caller in __nodes.get():\n __nodes.set([node for node in __nodes.get() if node != ctx.caller])\n __pending_leave[ctx.caller] = False\n\n\n@__export('masternodes')\ndef register():\n assert ctx.caller not in __nodes.get(), 'Already a node'\n assert __pending_registrations[ctx.caller\n ] == False, 'Already pending registration'\n currency.transfer_from(amount=__registration_fee.get(), to=ctx.this,\n main_account=ctx.caller)\n __holdings[ctx.caller] = __registration_fee.get()\n __pending_registrations[ctx.caller] = True\n\n\n@__export('masternodes')\ndef unregister():\n assert ctx.caller not in __nodes.get(\n ), \"If you're a node already, you can't unregister. You need to leave or be removed.\"\n assert __pending_registrations[ctx.caller\n ] == True, 'No pending registration'\n if __holdings[ctx.caller] > 0:\n currency.transfer(__holdings[ctx.caller], ctx.caller)\n __pending_registrations[ctx.caller] = False\n __holdings[ctx.caller] = 0\n" + }, + { + "key": "masternodes.__developer__", + "value": "sys" + }, + { + "key": "masternodes.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 10, + 13, + 39, + 0, + 0 + ] + } + }, + { + "key": "masternodes.nodes", + "value": [ + "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6" + ] + }, + { + "key": "masternodes.registration_fee", + "value": 100000 + }, + { + "key": "masternodes.total_votes", + "value": 8 + }, + { + "key": "masternodes.types", + "value": [ + "add_member", + "remove_member", + "change_registration_fee", + "reward_change", + "dao_payout", + "stamp_cost_change", + "change_types" + ] + }, + { + "key": "masternodes.votes:1", + "value": { + "yes": 1, + "no": 0, + "type": "reward_change", + "arg": [ + 0.78, + 0.11, + 0.01, + 0.1 + ], + "voters": [ + "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + ], + "finalized": true + } + }, + { + "key": "masternodes.votes:2", + "value": { + "yes": 1, + "no": 0, + "type": "reward_change", + "arg": [ + 0.45, + 0.45, + 0.09, + 0.01 + ], + "voters": [ + "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + ], + "finalized": true + } + }, + { + "key": "masternodes.votes:3", + "value": { + "yes": 1, + "no": 0, + "type": "reward_change", + "arg": [ + 0.45, + 0.01, + 0.09, + 0.45 + ], + "voters": [ + "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + ], + "finalized": true + } + }, + { + "key": "masternodes.votes:4", + "value": { + "yes": 1, + "no": 0, + "type": "stamp_cost_change", + "arg": 50, + "voters": [ + "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + ], + "finalized": true + } + }, + { + "key": "masternodes.votes:5", + "value": { + "yes": 1, + "no": 0, + "type": "reward_change", + "arg": [ + 0.49, + 0.49, + 0.01, + 0.01 + ], + "voters": [ + "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + ], + "finalized": true + } + }, + { + "key": "masternodes.votes:6", + "value": { + "yes": 1, + "no": 0, + "type": "reward_change", + "arg": [ + 0.49, + 0.01, + 0.49, + 0.01 + ], + "voters": [ + "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + ], + "finalized": true + } + }, + { + "key": "masternodes.votes:7", + "value": { + "yes": 1, + "no": 0, + "type": "reward_change", + "arg": [ + 0.49, + 0.01, + 0.01, + 0.49 + ], + "voters": [ + "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + ], + "finalized": true + } + }, + { + "key": "masternodes.votes:8", + "value": { + "yes": 1, + "no": 0, + "type": "dao_payout", + "arg": { + "amount": 5000000, + "to": "0813b6d7d7507c5f735821c32d06cd8f53e6d29807acb7bc92ab0dfe0417386e" + }, + "voters": [ + "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e" + ], + "finalized": true + } + }, + { + "key": "rewards.S:value", + "value": [ + 0.49, + 0.01, + 0.01, + 0.49 + ] + }, + { + "key": "rewards.__code__", + "value": "__S = Hash(contract='rewards', name='S')\n\n\ndef ____(initial_split: list=[decimal('0.88'), decimal('0.01'), decimal(\n '0.01'), decimal('0.1')]):\n __S['value'] = initial_split\n\n\n@__export('rewards')\ndef current_value():\n return __S['value']\n\n\n@__export('rewards')\ndef set_value(new_value: list):\n assert len(new_value) == 4, 'New value must be a list of 4 elements'\n assert sum(new_value) == 1, 'Sum of new value must be 1'\n __S['value'] = new_value\n" + }, + { + "key": "rewards.__developer__", + "value": "sys" + }, + { + "key": "rewards.__owner__", + "value": "masternodes" + }, + { + "key": "rewards.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 10, + 13, + 39, + 0, + 0 + ] + } + }, + { + "key": "stamp_cost.S:value", + "value": 50 + }, + { + "key": "stamp_cost.__code__", + "value": "__S = Hash(contract='stamp_cost', name='S')\n\n\ndef ____(initial_rate: int=100):\n __S['value'] = initial_rate\n\n\n@__export('stamp_cost')\ndef current_value():\n return __S['value']\n\n\n@__export('stamp_cost')\ndef set_value(new_value: int):\n assert new_value > 0, 'New value must be greater than 0'\n __S['value'] = new_value\n" + }, + { + "key": "stamp_cost.__developer__", + "value": "sys" + }, + { + "key": "stamp_cost.__owner__", + "value": "masternodes" + }, + { + "key": "stamp_cost.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 10, + 13, + 39, + 0, + 0 + ] + } + }, + { + "key": "submission.__code__", + "value": "@__export('submission')\ndef submit_contract(name: str, code: str, owner: Any=None, constructor_args: dict={}):\n if ctx.caller != 'sys':\n assert name.startswith('con_'), 'Contract must start with con_!'\n\n assert ctx.caller == ctx.signer, 'Contract cannot be called from another contract!'\n assert len(name) <= 64, 'Contract name length exceeds 64 characters!'\n assert name.islower(), 'Contract name must be lowercase!'\n\n __Contract().submit(\n name=name,\n code=code,\n owner=owner,\n constructor_args=constructor_args,\n developer=ctx.caller\n )\n\n\n@__export('submission')\ndef change_developer(contract: str, new_developer: str):\n d = __Contract()._driver.get_var(contract=contract, variable='__developer__')\n assert ctx.caller == d, 'Sender is not current developer!'\n\n __Contract()._driver.set_var(\n contract=contract,\n variable='__developer__',\n value=new_developer\n )\n" + }, + { + "key": "submission.__submitted__", + "value": { + "__time__": [ + 2024, + 6, + 18, + 16, + 32, + 44, + 484123 + ] + } + }, { "key": "con_abctoken.__code__", "value": "__balances = Hash(default_value=0, contract='con_abctoken', name='balances')\n__metadata = Hash(contract='con_abctoken', name='metadata')\n\n\ndef ____():\n __balances[ctx.caller] = 12121\n __metadata['token_name'] = 'ABCToken'\n __metadata['token_symbol'] = 'abc'\n __metadata['token_logo_url'] = ''\n __metadata['token_website'] = ''\n __metadata['operator'] = ctx.caller\n\n\n@__export('con_abctoken')\ndef change_metadata(key: str, value: Any):\n assert ctx.caller == __metadata['operator'\n ], 'Only operator can set metadata!'\n __metadata[key] = value\n\n\n@__export('con_abctoken')\ndef transfer(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[ctx.caller] >= amount, 'Not enough coins to send!'\n __balances[ctx.caller] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to}'\n\n\n@__export('con_abctoken')\ndef approve(amount: float, to: str):\n assert amount > 0, 'Cannot send negative balances!'\n __balances[ctx.caller, to] += amount\n return f'Approved {amount} for {to}'\n\n\n@__export('con_abctoken')\ndef transfer_from(amount: float, to: str, main_account: str):\n assert amount > 0, 'Cannot send negative balances!'\n assert __balances[main_account, ctx.caller\n ] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'.format(\n __balances[main_account, ctx.caller], amount)\n assert __balances[main_account] >= amount, 'Not enough coins to send!'\n __balances[main_account, ctx.caller] -= amount\n __balances[main_account] -= amount\n __balances[to] += amount\n return f'Sent {amount} to {to} from {main_account}'\n\n\n@__export('con_abctoken')\ndef balance_of(address: str):\n return __balances[address]\n" @@ -54053,609 +77662,182 @@ ], "nonces": [ { - "key": "025f2ad8abad9a1623c3a28cc709711a3084cac10268238512b4422614049d33", - "value": 0 - }, - { - "key": "03e8cf1775b006a48e8cf83fe2fc06c2847a563a7bd8bcca6af57ad42bae0e76", - "value": 0 - }, - { - "key": "040a9ab5d2ad02b4f0bf9ffb028149cc3d7231d0de092344569e60d5440f00d0", - "value": 2 - }, - { - "key": "0442ceb7944d766cf68d0fa418eb66f995ec45c219c65425c9871ea184d8abf6", - "value": 2 - }, - { - "key": "0729c3d7072a961f23c921849a3d6836a8bbcdbc9272973b453a8c05349753ea", + "key": "0155b1cab2bc9e626b5d05be6354d2972f8223dca5f0872fede68cce7582f535", "value": 0 }, { "key": "07410c69dfccb05c05b415a33d6d61d8c1105aa783b8a154d4d31fe3b2ffc5bb", - "value": 5 - }, - { - "key": "07a4269bf8559ccbb3e7f22a9f5d825677fe8feab7a2ff900b0ed949b72dd1cc", - "value": 0 - }, - { - "key": "081e233f4e122a5fd79ff3c44f9d58848c3214f7110130936661394403100a9a", "value": 6 }, { - "key": "0ac7774f4e9a8f3cf8bd182df4c0bb7f0d1bfd47f42ed1d5c489d4837e96c0c4", - "value": 0 - }, - { - "key": "0b83a3e36c47724ce71830375302cafec102e03564b39515bc4e6b6c810fd224", - "value": 5 - }, - { - "key": "0e124614ef9c5ead93bc418272bf0ad4d9008eca3a929611bf7da86a9846d3db", - "value": 0 - }, - { - "key": "0fb85507bfa7774aefa7b868339c30bde1df11a61b488aeaa844a600a032ae4e", - "value": 4 - }, - { - "key": "110cdd00de3a103e23b29319007e24eadeda98b70e24d8c49514474c7dceece7", - "value": 4 - }, - { - "key": "11297ae4fbb2b0b54d8f73ee5797799cb320e24c9c5302fc9a802dad76a4fc61", - "value": 0 - }, - { - "key": "1148de5d0cd6d742095c4fe128780d66c1c398439990743abd583218ba733511", - "value": 159 - }, - { - "key": "13ca9a62d10cbc28d55408e0a85d31f5c059fe3bb49316538e1d03064f3f2c8e", - "value": 100021 - }, - { - "key": "1416130329b0249b43617ef1fa9a78aba80eae7fb076c5234ea79ca50a326d5d", - "value": 0 - }, - { - "key": "15628f7ae7bfb16ce1cc9a16af7d349d7e898d5b22a05aeb55817602d0c5350b", - "value": 10 - }, - { - "key": "1656f52e5df26b92749940739db0337f4bf7f8fd9ffbeae01e6e7be83fc76626", - "value": 5 - }, - { - "key": "170be5d7116fc5a48d5cd2f7bc86dcf15c953f87e69e7d9c85b1c9091d56862c", - "value": 0 - }, - { - "key": "19e3a920bbfec4bd90ef7d2213c93716a5080fa834759b0da9c885fbd3ec9380", - "value": 49 - }, - { - "key": "1a2e1a9778d747577baedbb922621d60d6ffd34e68279b8f973b225fe518e45b", - "value": 0 - }, - { - "key": "1e83c022eb302d79bc3772f990eb6e0c3c70844fdad03f911e75c4294cdf157f", - "value": 0 - }, - { - "key": "20183fa382971ae2d722e48962ebbe04ae8de316a6e9442ea774f112875af387", - "value": 1 - }, - { - "key": "22d7550fe241b4fcb7ae072cb77c989f2f082030a09464d356d8b30c443b3d79", - "value": 0 - }, - { - "key": "2327f806bfcd8e4cb8281e994a05f1f348abc44cc1c87ea948b66621fc80a98e", - "value": 0 - }, - { - "key": "23eceb01a770da41d4bff813eaea535abf9fd0f588f9fc2accef05106ed417c7", - "value": 0 - }, - { - "key": "28526841fe2ae2b8e39ec7fa224fd2c7c7439d5512be4ac952a506104be6d3f0", - "value": 1 - }, - { - "key": "2918e312e2ee0d3dcc35d96907272ff20eb708eb152e13500a1ffbd54c34d4aa", - "value": 0 - }, - { - "key": "2929a2d65195c34e1a0706ae0d3f865e92bc1867f61d6778760f2c501c3b8d59", - "value": 1 - }, - { - "key": "2c911759edcc9404ceda52363f074b373b1ec3487e5d74fb03bfafb95235e71b", - "value": 0 - }, - { - "key": "2e7fdde43ed628f2d8631dad8a022e26349bb3d14de056ed21dcc6d52ae5e7cc", - "value": 10 - }, - { - "key": "2e9097ea8e9f800f0e609ffe1bee8e2d4f03ac8b07fbee4441bd7189709aa237", - "value": 5 + "key": "0813b6d7d7507c5f735821c32d06cd8f53e6d29807acb7bc92ab0dfe0417386e", + "value": 18 }, { - "key": "2ffe04ab07ffd9b90efa030435c7a6dbcf49ebc20ad381851032eb33b310b34c", + "key": "0f8e2b5f76a54a91cc628dbd5cc3a0b95ab2bfd5a1305da31d011fa3818af868", "value": 0 }, { - "key": "3319490e6fcbc9eda7cfb9bc9f5bbe16f43fff3b3fdc99fdf2611de2222b0e09", - "value": 2 - }, - { - "key": "3336f3561b99e2cf89f2278d08d360e8e4ab92caae1ce5bb36ac03fa57e55062", + "key": "1128b58aff9f2a9d7a03365b21d8bac26ad0b3436f0f1399a90e7a198487fa9c", "value": 6 }, { - "key": "34658526f3b4ce74d4c8ef2bc3ad6562002888485aed6beef0a49e206a9a4d46", + "key": "15628f7ae7bfb16ce1cc9a16af7d349d7e898d5b22a05aeb55817602d0c5350b", "value": 0 }, { - "key": "349365857c5299627d873076b772efbfdea4f676a861b7c5c07fbc1e97dcd05c", + "key": "20c91ffb518aafdee0e227dc7b8866c51f097292c829d77b82eda081a329fa34", "value": 0 }, { - "key": "387176ee8866c8ebbaef51c03830eb68cd26dffff4e2ede9265a572706d383bd", - "value": 0 + "key": "2a7b393e3c3225b0e690e59335ec062b586d7e7f2b65c7d452252ef3412ad385", + "value": 199 }, { - "key": "38e425abaa9409eec26abdb91e5808848e4d1187edf4619e4edee6a56ce1413d", + "key": "2bc83443f9322c2efed1d2266daba228eb8b1f935fa815e0a67907515b052e07", "value": 0 }, { "key": "39a982e221a2805a585fad76cc4147daba631ff8e64e640a4ff3815dc780e7f0", - "value": 1 - }, - { - "key": "3bd6b93a2989808b9d906bb34e775f5457222bd2021da27d83e6ef630ec5daa3", - "value": 0 - }, - { - "key": "3cc13fc608f52ccbd525cb575cf25098ce2f26f6df83a94be826ad84f0de9fce", - "value": 0 - }, - { - "key": "3e93f15dd2430137cde3e1c2c6d4a06ce1281a81fa56a603a6d5bae649efdbc3", - "value": 0 - }, - { - "key": "403bc27ae7580dfd5fd6a5fea44ba0a38a3fa46990d5153fd245ffd78fbdb277", - "value": 8 - }, - { - "key": "40447f46cea1260dd7487833cff630a65b7868f19aafdfd6465b989c9a6dba0e", - "value": 1 - }, - { - "key": "4198fec9f317de7961c7293882f6a05c57a12429c19eb43bc2284b973c2746da", - "value": 0 - }, - { - "key": "42d1163df438bb4505e2c60014c8e3a5614f87a58b174238c0dd266074f220b1", - "value": 1 - }, - { - "key": "46154e9070ab1c066219deaffc7d368f22b60c933aab669c07b508cf7ce034dd", - "value": 7 - }, - { - "key": "464886d002733daf28ed90add04bf2f0d59b96043c3c682c0fafd8e58d78d07f", - "value": 1 - }, - { - "key": "464a1e218dc95466ea0d77df0cc5c390c7da2d13314b139002c5ebc5648b4513", - "value": 1 - }, - { - "key": "4696215f6c78e481a53f15fd662e2222c23dfcc3feda19d62d9f08a815b1f5be", - "value": 3 - }, - { - "key": "48a11586eeeec7ce7a795263bcbb9790bea720459f0cd6e56715b8416ff0da2d", - "value": 2 - }, - { - "key": "48aac788986f398959113542b508fc56da7d3d4eb33e3db8ef3c8457c6fdb2f2", - "value": 2 - }, - { - "key": "4e3e811c3b4c16f7f0df3ad4eac47e4ac3381134fdf875216145bccece13a803", - "value": 0 - }, - { - "key": "4e467a3e9f82061503cb556b4918ae4da12c27fb0b3a329db1e03db017d9b3f6", - "value": 5 - }, - { - "key": "503ccb3dc04eaaed7c72c3ee6d22368e48a7f7e52b8577f4a4a9989eec51a0be", - "value": 3 - }, - { - "key": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", - "value": 70 - }, - { - "key": "53df0ca253c2bc0fe683dbfb0033aba6f2832e4665165da1ab1b2911c655470e", - "value": 0 - }, - { - "key": "595921837690c968dc87c5404941fda8c1a80b6819a3824cf3952db111cdf593", - "value": 1 - }, - { - "key": "5b4bde6b5c9cbd7b72fa3d44810d957b9ebd007fdd3f8c6a405a879fa41ae38c", - "value": 0 - }, - { - "key": "5bfc25a4cadd3b9d229296ed77358118a5513584205739fdda4ed6780ca3abfd", - "value": 0 - }, - { - "key": "5ca2ca451b49b45fe9540f60f55c3b87eee02b9708a817773db58a81e61e80ba", - "value": 0 - }, - { - "key": "5ff1009c072d9150cadee9b5889537ef993f4d095357a21e72ecef331e4a628b", - "value": 0 - }, - { - "key": "639de732cc15b83d6223422fb3f71b83c3cd3ed687dd7f1e1f6213d063f8d48a", - "value": 0 - }, - { - "key": "64224cbc5fe7487bf258045d76b433b5eb511d1cba89e9b07d407318c042cd21", - "value": 4 - }, - { - "key": "653f4ffb823ff95c81f8346b2d8e748b59c4ca8cae1f8cb52db80fed4b973dfd", - "value": 0 + "value": 227 }, { - "key": "68d474769169e51354a8adf97b40751e635324483e760b20f7085273bc8b12b5", + "key": "3bc2445f8daa06789b9c932faa6cd5de56b0da7298d1432db677de1dba54bdc6", "value": 0 }, { - "key": "68f37a10e916dfcdd2b6ee1b172d2400b428347b10b97121be58e3b012132407", - "value": 1 + "key": "3c2161a4dd5beacbaa630d71423b94e466e903ca349149a89c37ea5317ff5677", + "value": 16 }, { - "key": "69bcb11c53dc01d0bd4dc41e35c9998240529bfaa9e92ff1b00b049801450db0", + "key": "3c460e39312bb6fc9f6f53dfb47459214ee5bde97d43e74ed747fdba3fbd5cb0", "value": 0 }, { - "key": "6d4a0b3334b9c57cf06bb79e917928cf20029ac65bf5f74ede2c6c476fca3eac", - "value": 2 - }, - { - "key": "6ebd8090a80e5fc629f38fceefd05d66035a5a4d4ba2c223319ec8f9b83cb48a", - "value": 8 - }, - { - "key": "6f92f10d7b981898df4ebfebb512edc9f8ed9ab722005b6c72d059bd1c1f6df9", - "value": 1 - }, - { - "key": "7067cf020cfeecd001b656b924639713efa3affc71ecd7db6f4a3e99c8b52d05", - "value": 26 - }, - { - "key": "72504fa04b52ef63ecb907059ea412dc92051d62eb8130c9c82727100289674f", + "key": "3daabc4698f988c1cd72531c46d755587e0e207ed18a38a171a68ad93053fabb", "value": 0 }, { - "key": "728e037df108a9bbb0a178dc601ff7cf8cffe36b0327b1879fb55c5d18b15baa", + "key": "40f6c713806cc7dd8916fea32b7d22f190f012497658b0d6c19cc1d96261a474", "value": 0 }, { - "key": "72f9dba38c6235ed7840bb0a946102d71b068e63f657cfd07663f643577625df", + "key": "44947f4a985daee7ec3d7ea07d4942c6b931d90d4c4b4d06bcf32fc0fe0cb480", "value": 0 }, { - "key": "739d78d4642f1838ffddba1d392928b706fb58c92a80fe89baeb5b0f273d2c47", + "key": "4c056cb9c016aa71d86d172a73de87936825bfacb2955ba610563bcdde38f25b", "value": 0 }, { - "key": "7421e1c731d157a27705eea115b5fc4bc69fa8adefbc7cf847459dafa21ea53c", - "value": 0 + "key": "503e10f0c38a5f6844306f83f8f78ddd38a0c7977b4295fe1b840bb0d0e0de4b", + "value": 324 }, { - "key": "7607bd2bbe203f795a0c786c0087c293edf207c89abeb16a565409bab9c0f9dc", + "key": "53b38a255cda4e5fa285fa0baa6b2a845c0f11c6df5913fc492821755cac6328", "value": 0 }, { - "key": "7a5a47abd2f8f1a76eeb23ec8352d88f3bf12d3e22bfc3391a1ac880f481c588", + "key": "5565f2b994c96776c16c796ed38aa63084ea688b492b27a24fc8a80920f4c0ec", "value": 0 }, { - "key": "7cd580f751d08c58fb631d6ba3b16af953ca5766e441bcec3cb71f850c07db8b", + "key": "65723da81c38701aa018c2a38d600a18435bd34db363b19f7dddd9e29e8afab8", "value": 0 }, { - "key": "7fe83202b3130727ca8af23c25d282ccc0b6e49f1c5d57379175991bad1021f7", + "key": "7c3aa384cd20aa3bc01fc8783d992d01598258713ffd29eeee621f09f53f45e0", "value": 0 }, { - "key": "89123cbc42892d0de7f5288569c5a38c10efaa2ff1bcea8b476fa1223ad06f71", - "value": 0 + "key": "7fa496ca2438e487cc45a8a27fd95b2efe373223f7b72868fbab205d686be48e", + "value": 98 }, { - "key": "8976675ae08fde29845c59936faae9e19b3cf6e50cdb59abeb8c542587bf505b", - "value": 2 + "key": "8a42ab5235903c76b2ff7f8491aa719685f72c26bf996d7040b1a7ab7a5d47d4", + "value": 7 }, { "key": "8bf21c7dc3a4ff32996bf56a665e1efe3c9261cc95bbf82552c328585c863829", - "value": 87 - }, - { - "key": "8c8e00216fc02632af61fed193004f7cbee82cff7117352eaae89c4309fc532b", - "value": 2 - }, - { - "key": "8d6682e70db8b8602be42c7fce8f2de9ffe6e1a577b6d2f0e7a24bff84af15c3", - "value": 0 - }, - { - "key": "8e73052eed03e60d4f27e4e422c0742cd2a755ac034122bd504a87afad746f8a", - "value": 1 - }, - { - "key": "8e77ce39ed1970e0d38119611f84d40827fcffa444592abdd6bc74acdb0f8ec2", - "value": 1 - }, - { - "key": "90c2498ea55af9d09cfab1cabc57811fb769df5b3acfe41971fa7e87cc55cebe", - "value": 0 + "value": 3 }, { - "key": "9126ee4143166b1b855f1b7cbabc84156ec15a0bd82ccbc7dc8b15857cdd9554", + "key": "8ccd49dd13b332fad9d9af8a7a3089c5f1ad17e79d9ce262fcea8dddce16dac4", "value": 0 }, { "key": "9146ca8fed18ef9088bc0d556b62ef624a5df6cc060724b9007ce5f8b0d8a2c6", - "value": 133 - }, - { - "key": "91e0196dccb8935446bb2516f196b302b8ef516bf04ac4ba2be46cddc16effb5", - "value": 1 - }, - { - "key": "92b8cac3531af5b3566240d991352172e3fb345e27e6d51de0ecd7380219c6bb", - "value": 16 - }, - { - "key": "9908f83f860a42f46b400726bba99cbb08300a02d87a68655a5197c72f89445d", - "value": 0 - }, - { - "key": "9a6b40b85125b3e3baa1f9fd0600ad6b01d01c1a7c27f6c6325cbdb6b4947b67", - "value": 13 - }, - { - "key": "9d1b7632140eabf4651d7d2e2009d8e1bdccf70b86ff157829c944abf8a137f3", - "value": 1 - }, - { - "key": "9d479af67842d27255f0a1bdf452edb32ffc0bca0d142f5cf1b1966442c572a6", - "value": 13 - }, - { - "key": "a09c96077d036d0661f64f6ccf11e1667082f88abfe9bf24494aced074d9fb6e", - "value": 4 - }, - { - "key": "a55d28c3dcdb413c54dcd2cd6f8886b1f3084b935d248a33d12e87e39a24e16b", - "value": 5 - }, - { - "key": "a5694e7f678e84eb74e422a5c253cf5cd8994826ef691ab4850eeaf4879bd258", - "value": 0 - }, - { - "key": "a765dfc1a5d575e99017d44e2969a3dc45bb4ed4543f626b5e37bb3ea2e2e3f3", - "value": 7 - }, - { - "key": "a862870458497355863c5ce81a29d4e111e09bbb4a1963a73e9041b19381816a", - "value": 660 - }, - { - "key": "abaf8580ad0ef02d370a789e05ae9fd64c1de9dd08cbbc8aaafa8e8d224398b2", - "value": 0 - }, - { - "key": "b006e7cea383723b8392b58f31c7c4c8c2c3040ddfef8b3cfd36f9213aedc81e", - "value": 0 - }, - { - "key": "b04bf09affe3672d024efa47b719f50655d73ec9f3faae27e369d33f0e684062", - "value": 1 - }, - { - "key": "b081cd6bceef8fd92a49c337dc33c559c912efe7a05c21ebc2caabdd0c03539a", - "value": 0 - }, - { - "key": "b2d38ad0bda00cc9793104d8e5910edfca9db99af0f3e67eea389163d82a655e", - "value": 0 - }, - { - "key": "b2fcb5b681926ac52689637e90a970a51ecb78e2a0f5334467e366a48fcadfad", - "value": 0 - }, - { - "key": "b5387202ecaa665c1cff13f6fb41b23b4a63dff6e4569f7c25b188fc58506558", - "value": 0 - }, - { - "key": "b73cebc6e6ca9131003cf906b1eac01653f7c938707c61e1dae95f784d582fd7", - "value": 0 - }, - { - "key": "b8c2d3d106db221026296bec8ca0da5e9f414ee78eaea5baf3c189458a022dd9", - "value": 3 - }, - { - "key": "b97971ac4034ed2e50ad141483f3befe831a9fc60f9073b80ffc6602291b50ec", - "value": 5 - }, - { - "key": "b9ece0f0ab3ee60ccc735a79e84bfe8015ac5f3cbe04f135f542bd37709abb27", "value": 0 }, { - "key": "baca93c9304c42f64eee0234723207eb1aba3ad7d8c04859162a6a1f2df9cab2", - "value": 148 - }, - { - "key": "bc08d2750e50d485c10b300bf3c1d185df997d71f0397eff8c805f658d581e06", + "key": "93a7343925a369e81098f0e20ccc73e917504c6dc55efa1d61152eeb461735dd", "value": 0 }, { - "key": "bed39b96156c80a9ef93136023bfb87af1ef5951aa21a2c2274a8d06d89c96e5", - "value": 5 - }, - { - "key": "c01320dabd575b2951f5069c90585cda749903aec3bdb8210fdc6f204da0801d", + "key": "9fc5902aa67fdea5b55f41fe6a35f7be426f7ffa15ab1fea0451b7eede9dade0", "value": 0 }, { - "key": "c017cc8b31d346c7c6fdce1b0d7ee53fcef61ab36e7a1fc95088366dc110d0e8", + "key": "b6504cf056e264a4c1932d5de6893d110db5459ab4f742eb415d98ed989bb98d", "value": 0 }, { "key": "c0476b987deee6d9d5eddbae604bf80fc442066f32954ef7120549ff4e51dfd9", - "value": 36 - }, - { - "key": "c0e3d0ca42f06c7413be6fc22e24f8b8e3fd38fdcdfdca9a73252137cde6169a", - "value": 1 - }, - { - "key": "c1ef8fc72db63c36de1f52e03c13a09f4e618ca69c3085251f3c16c474d7437e", - "value": 0 + "value": 191 }, { - "key": "c1ffeb33be494bcbac53adbfe582b0fc98f1d40af24af1f9cccd2677367e09d1", + "key": "c1ae587308612f65005cbbe47565645ff9d83350ce344a9d454641630c9d482a", "value": 0 }, - { - "key": "c5f266838a350723634a96393309dacaa07611674a41700af756c4d22782ae00", - "value": 2 - }, { "key": "ca9aeee192854dc55a6d3e211bf858cc3ecd41e8b86a55c07740ece29f349597", - "value": 7358 - }, - { - "key": "cce685977fe2555b49ec30486324e3dd904133195e0f83027be46487967d2a0c", - "value": 0 - }, - { - "key": "ce1ba631e54d35089052dbf649b8905cacd46849027b6c611389711281405451", - "value": 5 - }, - { - "key": "d37ddb28488fe1bae65279934d6800fae11b26f7c01511b76ca6e602bbc2398d", "value": 1 }, { - "key": "d81f4e04bc8100f6a1a04e41a823c0b1478659ffaff4f08b2f2ad06952b47ebf", + "key": "ce924a8bc4ced8a2b9cef2e2cf7709b1a87f87bd84a9d645de96ec46a458a6c9", "value": 0 }, { - "key": "ddbc893f9ec985a1997c6174dc61f0abd0694c8ef31920f90b2ede2053ac1e09", - "value": 3 - }, - { - "key": "dead666715e1f9ce2796af1bca55c4ad1176384face07953971290c5a5a1e629", + "key": "d3993f0dbfa0a7ffe019ea5c63bb887f72d9730964a71e9ea0fe5bf76301c7f3", "value": 0 }, { - "key": "e18ff03a360991f4631d283c0a5968937e899f2ad91fa1039725e7b4cdd60403", + "key": "d99d356fe2d208d401c0fa6c0b48c1cc5d56d3a75aae1234d0fa5b94b1eca690", "value": 0 }, { - "key": "e26ab7bd3684a6e57fa0c48a09541a1d644f0530007c83c0c63caa1a99c7b07a", - "value": 2 - }, - { - "key": "e35ac630dffb8ad8d4bbf486e6abd4e8e7f61a958cae6691cd57e9da86bca511", - "value": 74 - }, - { - "key": "e3c79fe52ad368d2d38dae9de9ac7ace7864189c9c2fede7ef112fa7948bdc52", - "value": 11 - }, - { - "key": "e4cb17366f765edf1248d3777e60c5fc8e0b588439f02c2d5961b61d18c41f9d", - "value": 0 + "key": "dff5d54d9c3cdb04d279c3c0a123d6a73a94e0725d7eac955fdf87298dbe45a6", + "value": 21 }, { - "key": "e807792722b8f5206327fff186ea70b0527d159286309cd807556f942a2e3d06", - "value": 1 + "key": "e734ea6c2b6257de72355e472aa05a4c487e6b463c029ed306df2f01b5636b58", + "value": 46 }, { "key": "e9e8aad29ce8e94fd77d9c55582e5e0c57cf81c552ba61c0d4e34b0dc11fd931", - "value": 142 + "value": 336 }, { - "key": "eca2ada8a15e8a2abf721c0e19e5a12fb224b022326087df1782d42908f3d2d8", - "value": 0 + "key": "ee06a34cf08bf72ce592d26d36b90c79daba2829ba9634992d034318160d49f9", + "value": 23 }, { - "key": "ed3254c56613151f23c71ab1955dc74181af289dcd41b8a188b0eedf34b14813", - "value": 0 + "key": "f0222f00943416a8cacb2160e4af75faff36660b87e99279a045af1f4182dd1f", + "value": 5 }, { - "key": "f065b14bbed5387225e591f561b6b8a628899c6802042fb2b3cb2c2857a892cf", + "key": "f408f135b8db9d11daafae6b508c98a0cc79556c921b4fafe5d9ada0d5e3910d", "value": 0 }, { - "key": "f083824fb69ff5de1ccbf710ad469a8ef428ee1b2926e612958dfdd4b4191a71", + "key": "f4d0d7bee54dbd6b7c01ef726781e1ed501a0842937f943a7228c4214fef5d5f", "value": 0 }, { - "key": "f1081b60f40fe692a6de732e0375c08a29ac81002e3cf9dee995780db92ad009", - "value": 2 - }, - { - "key": "f34430e0c1e6976993e225dd8b6dcba5259196a6dcda3dd03036dbd808170cc2", + "key": "f84eae148729b12f79875be889933ad378ffa4d4fcb5ec65d2e314b8730b1fce", "value": 71 - }, - { - "key": "f40003fe84d8a9816fa18b51c89025b9f9e3d49e980c512ceffe4750aa09cbb0", - "value": 0 - }, - { - "key": "f5f8d6ba87e5f65fdb330bfb0e58931481e7e111f3c8a55991bf7a805e911886", - "value": 2 - }, - { - "key": "f7d7765c6acd4b63f24c9a2242f10511136e27cef6adccbc98f6bd3a5a7e5477", - "value": 46 - }, - { - "key": "f921fc105b7d7151c5c337bb6e21aa7315ce04226008edbcdb31fb724b3ccc5e", - "value": 1 - }, - { - "key": "fae9f4eddc881f18d7258a5b9ccbb807ec9befa3912ef742abaf5b362832392f", - "value": 1 - }, - { - "key": "fd188e259d0d160d7bf2af4fc2b5bd969b183057f5a47c1afc5e3300f8132dc9", - "value": 0 } ] + } } \ No newline at end of file diff --git a/tests/tools/test_token_upgrade.py b/tests/tools/test_token_upgrade.py index 6ec79b7..9fc0428 100644 --- a/tests/tools/test_token_upgrade.py +++ b/tests/tools/test_token_upgrade.py @@ -1,6 +1,7 @@ import unittest from contracting.stdlib.bridge.time import Datetime from contracting.client import ContractingClient +from xian.utils.block import compile_contract_from_source from xian_py.decompiler import ContractDecompiler from xian_py.wallet import Wallet from contracting.stdlib.bridge.hashing import sha3 @@ -8,37 +9,69 @@ import json import os from pathlib import Path -from xian.tools.genesis_upgrades.token_upgrade import process_genesis_data, find_code_entries, is_xsc001_token +from xian.tools.genesis_upgrades.token_upgrade import ( + process_genesis_data, + find_code_entries, + is_xsc001_token, +) + class TestTokenUpgrade(unittest.TestCase): def setUp(self): self.client = ContractingClient() self.client.flush() - + # Load and process genesis file from fixtures current_dir = Path(__file__).parent genesis_path = current_dir / "fixtures/genesis.json" - - with open(genesis_path, 'r') as f: + + with open(genesis_path, "r") as f: self.genesis_data = json.load(f) - + # Process genesis and get updated data - self.updated_genesis, self.changes_made = process_genesis_data(self.genesis_data) - + self.updated_genesis, self.changes_made = process_genesis_data( + self.genesis_data + ) + + # These contracts are broken and need to be excluded + self.EXCLUDED_CONTRACTS = [ + "con_snake.__code__", + "con_xfinxty.__code__", + "con_stk.__code__", + "con_stk001.__code__", + "con_stk5.__code__", + "con_stk6.__code__", + "con_stk003.__code__", + "con_stk005.__code__", + "con_stk006.__code__", + ] + # Find and submit all XSC001 tokens self.token_contracts = {} - for idx, entry in enumerate(self.updated_genesis['abci_genesis']['genesis']): - key = entry.get('key', '') - if key.endswith('.__code__') and is_xsc001_token(entry['value']) and "pixel" not in key and "con_snake.__code__" != key and "con_xfinxty.__code__" != key and key.startswith("con_"): - contract_name = key.replace('.__code__', '') - original_code = ContractDecompiler().decompile(entry['value']) + for idx, entry in enumerate( + self.updated_genesis["abci_genesis"]["genesis"] + ): + key = entry.get("key", "") + if ( + key.endswith(".__code__") + and is_xsc001_token(entry["value"]) + and "pixel" not in key + and key.startswith("con_") + and key not in self.EXCLUDED_CONTRACTS + ): + + contract_name = key.replace(".__code__", "") print(f"Submitting {contract_name}") - # Check if the code has a constructor argument for vk - if "____(vk: str)" in original_code: - self.client.submit(original_code, name=contract_name, constructor_args={"vk": "sys"}) - else: - self.client.submit(original_code, name=contract_name, signer="sys") - self.token_contracts[contract_name] = self.client.get_contract(contract_name) + compiled_code = compile_contract_from_source(entry) + self.client.raw_driver.set( + f"{contract_name}.__compiled__", compiled_code + ) + self.client.raw_driver.set(key, entry.get("value")) + self.token_contracts[contract_name] = self.client.get_contract( + contract_name + ) + else: + self.client.raw_driver.set(key, entry.get("value")) def tearDown(self): self.client.flush() @@ -48,29 +81,26 @@ def test_all_tokens_approve_functionality(self): for contract_name, contract in self.token_contracts.items(): with self.subTest(contract=contract_name): # Test approve - try: - contract.balances["sys"] = 10000000 - except Exception as e: - exc = e + contract.balances["sys"] = 10000000 contract.approve(amount=500, to="spender", signer="sys") - + # Check allowance allowance = contract.balances["sys", "spender"] self.assertEqual(allowance, 500) - + # Test transfer_from with approval contract.transfer_from( amount=100, to="recipient", main_account="sys", - signer="spender" + signer="spender", ) - - # Check balances and remaining allowance + + + # Check balances and remaining allowance self.assertEqual(contract.balances["recipient"], 100) self.assertEqual(contract.balances["sys", "spender"], 400) - def test_all_tokens_transfer_from_validation(self): """Test that all upgraded tokens properly validate transfer_from operations""" for contract_name, contract in self.token_contracts.items(): @@ -81,9 +111,11 @@ def test_all_tokens_transfer_from_validation(self): amount=100, to="recipient", main_account="sys", - signer="unauthorized" + signer="unauthorized", ) - self.assertIn("Not enough coins approved to send", str(context.exception)) + self.assertIn( + "Not enough coins approved to send", str(context.exception) + ) def test_all_tokens_approve_overwrites(self): """Test that approve overwrites previous allowances""" @@ -92,7 +124,7 @@ def test_all_tokens_approve_overwrites(self): # Initial approval contract.approve(amount=500, to="spender", signer="sys") self.assertEqual(contract.balances["sys", "spender"], 500) - + # New approval should overwrite contract.approve(amount=200, to="spender", signer="sys") self.assertEqual(contract.balances["sys", "spender"], 200) @@ -104,41 +136,68 @@ def test_all_tokens_balance_of_functionality(self): # First set up some balances contract.balances["sys"] = 10000000 contract.transfer(amount=100, to="recipient", signer="sys") - + # Test balance_of for recipient recipient_balance = contract.balance_of(address="recipient") self.assertEqual(recipient_balance, 100) - + # Test balance_of for sys account sys_balance = contract.balance_of(address="sys") - self.assertGreater(sys_balance, 0) # sys should have some balance as initial holder - + self.assertGreater( + sys_balance, 0 + ) # sys should have some balance as initial holder + # Test balance_of for non-existent account zero_balance = contract.balance_of(address="non_existent") - self.assertEqual(zero_balance, 0) # Should return default value of 0 - + self.assertEqual( + zero_balance, 0 + ) # Should return default value of 0 + def test_all_xsc002_tokens_permit_functionality(self): """Test that all upgraded tokens have the updated permit functionality""" for contract_name, contract in self.token_contracts.items(): with self.subTest(contract=contract_name): - private_key = 'ed30796abc4ab47a97bfb37359f50a9c362c7b304a4b4ad1b3f5369ecb6f7fd8' + private_key = "ed30796abc4ab47a97bfb37359f50a9c362c7b304a4b4ad1b3f5369ecb6f7fd8" wallet = Wallet(private_key) public_key = wallet.public_key deadline = create_deadline() spender = "some_spender" value = 100 - chain_id = "test-chain" - msg = construct_permit_msg(public_key, spender, value, deadline, contract_name, chain_id) + chain_id = "test-chain" + msg = construct_permit_msg( + public_key, + spender, + value, + deadline, + contract_name, + chain_id, + ) hash = sha3(msg) signature = wallet.sign_msg(msg) if vars(contract).get("permit") is not None: - response = contract.permit(owner=public_key, spender=spender, value=value, deadline=str(deadline), signature=signature, environment={"chain_id": chain_id}) + response = contract.permit( + owner=public_key, + spender=spender, + value=value, + deadline=str(deadline), + signature=signature, + environment={"chain_id": chain_id}, + ) self.assertEqual(response, hash) -def construct_permit_msg(owner: str, spender: str, value: float, deadline: dict, contract_name: str, chain_id: str): + +def construct_permit_msg( + owner: str, + spender: str, + value: float, + deadline: dict, + contract_name: str, + chain_id: str, +): return f"{owner}:{spender}:{value}:{deadline}:{contract_name}:{chain_id}" + def create_deadline(minutes=1): d = datetime.datetime.now() + datetime.timedelta(minutes=minutes) return Datetime(d.year, d.month, d.day, hour=d.hour, minute=d.minute)