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)