{"currency":"USD","generated_at":"2026-10-09T01:53:09.231385+00:00","invariant":{"accounted":2971,"holds":true,"issued":2971},"job":{"contract":{"capability":"python-code","currency":"Lux Coins","delivery":"Python kód a základní testy se syntaktickou kontrolou","task":"Napiš v Pythonu (pouze standardní knihovna) třídu Calculator implementující základní kalkulačku: metody add, subtract, multiply, divide (dělení nulou vyvolá ZeroDivisionError) a paměť (memory_store, memory_recall, memory_clear). Přidej unittest testy pokrývající všechny metody včetně dělení nulou.","tier":"compact","verification":"Structure, syntax and seller attestation; no general semantic guarantee"},"created":1791394973.5252223,"failure":null,"id":"job-5a8434fda8feb4be","idempotency_key":"chat-1791394985865-2-attempt-0","offer_id":"offer-scout-python-code","price":5,"result":{"artifact":{"code":"class Calculator:\n    \"\"\"Jednoduchá kalkulačka se základními operacemi a pamětí.\"\"\"\n\n    def __init__(self):\n        self._memory = 0.0\n\n    def add(self, a, b):\n        return a + b\n\n    def subtract(self, a, b):\n        return a - b\n\n    def multiply(self, a, b):\n        return a * b\n\n    def divide(self, a, b):\n        if b == 0:\n            raise ZeroDivisionError(\"Dělení nulou není povoleno.\")\n        return a / b\n\n    def memory_store(self, value):\n        self._memory = value\n\n    def memory_recall(self):\n        return self._memory\n\n    def memory_clear(self):\n        self._memory = 0.0\n","summary":"Dodávám třídu Calculator se základními aritmetickými operacemi a pamětí, včetně unittest testů pokrývajících všechny metody i dělení nulou.","tests":"import unittest\n\n\nclass CalculatorTests(unittest.TestCase):\n    def setUp(self):\n        self.calc = Calculator()\n\n    def test_add(self):\n        self.assertEqual(self.calc.add(2, 3), 5)\n        self.assertEqual(self.calc.add(-1, 1), 0)\n        self.assertAlmostEqual(self.calc.add(0.1, 0.2), 0.3, places=7)\n\n    def test_subtract(self):\n        self.assertEqual(self.calc.subtract(10, 4), 6)\n        self.assertEqual(self.calc.subtract(4, 10), -6)\n\n    def test_multiply(self):\n        self.assertEqual(self.calc.multiply(3, 4), 12)\n        self.assertEqual(self.calc.multiply(-2, 5), -10)\n        self.assertEqual(self.calc.multiply(0, 100), 0)\n\n    def test_divide(self):\n        self.assertEqual(self.calc.divide(10, 2), 5)\n        self.assertAlmostEqual(self.calc.divide(1, 3), 1 / 3)\n\n    def test_divide_by_zero(self):\n        with self.assertRaises(ZeroDivisionError):\n            self.calc.divide(10, 0)\n\n    def test_memory(self):\n        self.assertEqual(self.calc.memory_recall(), 0.0)\n        self.calc.memory_store(42)\n        self.assertEqual(self.calc.memory_recall(), 42)\n        self.calc.memory_clear()\n        self.assertEqual(self.calc.memory_recall(), 0.0)\n\n\nclass TestCalculator(unittest.TestCase):\n    def test_all(self):\n        CalculatorTests(\"test_add\").run()\n        CalculatorTests(\"test_subtract\").run()\n        CalculatorTests(\"test_multiply\").run()\n        CalculatorTests(\"test_divide\").run()\n        CalculatorTests(\"test_divide_by_zero\").run()\n        CalculatorTests(\"test_memory\").run()\n\n\nif __name__ == \"__main__\":\n    unittest.main()\n"},"capability":"python-code","job_id":"job-5a8434fda8feb4be","model":"LuxAI Flash","receipt_id":"delivery-5de9d4f4102f31f1ae7f6e68","runtime":"LSL","seller_id":"scout"},"result_sha256":"c5601ea07c48b9e0809c2a542e9bf065dd32777b22bb7c6856d4275e17c1749d","seller_id":"scout","session_id":"session-1583175291c4bb9b","state":"PAID"},"job_timeline":[{"action":"ESCROW_LOCKED","amount":5,"available_after":15,"created":1791394973.5254385,"created_at":"2026-10-07T17:42:53.525439+00:00","id":"lux-tx-111","job_id":"job-5a8434fda8feb4be","kind":"escrow","label":"Funds locked in escrow for the job","ledger_id":111,"locked_after":5},{"action":"RESULT_DELIVERED","amount":0,"available_after":15,"created":1791394980.769304,"created_at":"2026-10-07T17:43:00.769304+00:00","id":"lux-tx-112","job_id":"job-5a8434fda8feb4be","kind":"delivery","label":"Seller delivery recorded by the marketplace","ledger_id":112,"locked_after":5},{"action":"PAYMENT_RELEASED","amount":5,"available_after":15,"created":1791394981.275378,"created_at":"2026-10-07T17:43:01.275378+00:00","id":"lux-tx-113","job_id":"job-5a8434fda8feb4be","kind":"payment","label":"Escrow released to the seller after verification","ledger_id":113,"locked_after":0}],"payment":{"amount":5,"contract_sha256":"66245cb4dbef27614fa2bf5f7f17bced638a0776b137674ec3578947a3259a3b","currency":"USD","idempotency_key":"chat-1791394985865-2-attempt-0","job_id":"job-5a8434fda8feb4be","ledger":"Central marketplace SQLite ledger; IDs are scoped to this marketplace","offer_id":"offer-scout-python-code","result_sha256":"c5601ea07c48b9e0809c2a542e9bf065dd32777b22bb7c6856d4275e17c1749d","seller_id":"scout","session_id":"session-1583175291c4bb9b","simulated_payments":true,"state":"PAID","transactions":[{"action":"ESCROW_LOCKED","amount":5,"created":1791394973.5254385,"created_at":"2026-10-07T17:42:53.525439+00:00","currency":"USD","from_account":"available","from_wallet":"session-1583175291c4bb9b","id":"lux-tx-111","job_id":"job-5a8434fda8feb4be","ledger_id":111,"session_id":"session-1583175291c4bb9b","to_account":"locked","to_wallet":"session-1583175291c4bb9b"},{"action":"PAYMENT_RELEASED","amount":5,"created":1791394981.275378,"created_at":"2026-10-07T17:43:01.275378+00:00","currency":"USD","from_account":"locked","from_wallet":"session-1583175291c4bb9b","id":"lux-tx-113","job_id":"job-5a8434fda8feb4be","ledger_id":113,"session_id":"session-1583175291c4bb9b","to_account":"available","to_wallet":"scout"}],"verification_receipts":["delivery-5de9d4f4102f31f1ae7f6e68"]},"public_key":{"alg":"Ed25519","id":"ppk-1eec83b33164f1bd","public_key_pem":"-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAO0fnhyrc39vbn8V/2rh/d67NK+1ZK7gvFIbWiKKFxAQ=\n-----END PUBLIC KEY-----"},"receipt_version":"1.0","reconciliation":{"balanced":true,"escrow_locked":5,"movements":3,"price":5,"settled":5},"session":{"budget":20,"created":1791394972.7719316,"created_at":"2026-10-07T17:42:52.771932+00:00","fixture":"buggy","id":"session-1583175291c4bb9b","service":"auto","title":"Napiš v Pythonu (pouze standardní knihovna) třídu Calculator implementující základní kalkulačku: metody add, subtract, multiply, divide (dělení nulou vyvolá ZeroDivisionError) a paměť (memory_store, memory_recall, memory_clear). Přidej unittest testy pokrývající všechny metody včetně dělení nulou."},"signature":null,"simulated_payments":true,"stripe_transfer":null,"timeline":[{"action":"LUX_COINS_ISSUED","amount":20,"available_after":20,"created":1791394972.7727711,"created_at":"2026-10-07T17:42:52.772771+00:00","id":"lux-tx-110","job_id":null,"kind":"issue","label":"Test credits issued to the buyer wallet","ledger_id":110,"locked_after":0},{"action":"ESCROW_LOCKED","amount":5,"available_after":15,"created":1791394973.5254385,"created_at":"2026-10-07T17:42:53.525439+00:00","id":"lux-tx-111","job_id":"job-5a8434fda8feb4be","kind":"escrow","label":"Funds locked in escrow for the job","ledger_id":111,"locked_after":5},{"action":"RESULT_DELIVERED","amount":0,"available_after":15,"created":1791394980.769304,"created_at":"2026-10-07T17:43:00.769304+00:00","id":"lux-tx-112","job_id":"job-5a8434fda8feb4be","kind":"delivery","label":"Seller delivery recorded by the marketplace","ledger_id":112,"locked_after":5},{"action":"PAYMENT_RELEASED","amount":5,"available_after":15,"created":1791394981.275378,"created_at":"2026-10-07T17:43:01.275378+00:00","id":"lux-tx-113","job_id":"job-5a8434fda8feb4be","kind":"payment","label":"Escrow released to the seller after verification","ledger_id":113,"locked_after":0}],"verification":{"capability":"python-code","checks":[],"reasons":[],"scope":"Structure, Python syntax and cited source fetches; seller attestation is not proof of general semantic quality","valid_delivery":true},"wallets":{"buyer":{"available":15,"id":"session-1583175291c4bb9b","kind":"buyer","locked":0},"seller":{"available":135,"id":"scout","kind":"seller","locked":0}}}