def test_fromcompact2(self): tx = Transaction.from_compact("zeta_brousouf", tx_compact_2) self.assertEqual(tx.version, 2) self.assertEqual(tx.currency, "zeta_brousouf") self.assertEqual(len(tx.issuers), 1) self.assertEqual(len(tx.inputs), 1) self.assertEqual(len(tx.unlocks), 1) self.assertEqual(len(tx.outputs), 2) self.assertEqual(tx.issuers[0], "GNPdPNwSJAYw7ixkDeibo3YpdELgLmrZ2Q86HF4cyg92") self.assertEqual(tx.inputs[0].source, 'D') self.assertEqual(tx.inputs[0].origin_id, "GNPdPNwSJAYw7ixkDeibo3YpdELgLmrZ2Q86HF4cyg92") self.assertEqual(tx.inputs[0].index, 471) self.assertEqual(tx.unlocks[0].index, 0) self.assertEqual(str(tx.unlocks[0].parameters[0]), "SIG(0)") self.assertEqual(tx.outputs[0].amount, 90) self.assertEqual(tx.outputs[0].base, 0) self.assertEqual(pypeg2.compose(tx.outputs[0].conditions, output.Condition), "SIG(5zDvFjJB1PGDQNiExpfzL9c1tQGs6xPA8mf1phr3VoVi)") self.assertEqual(type(tx.outputs[0].conditions.left), output.SIG) self.assertEqual(tx.outputs[1].amount, 10) self.assertEqual(tx.outputs[1].base, 0) self.assertEqual(pypeg2.compose(tx.outputs[1].conditions, output.Condition), "SIG(GNPdPNwSJAYw7ixkDeibo3YpdELgLmrZ2Q86HF4cyg92)") self.assertEqual(type(tx.outputs[1].conditions.left), output.SIG) self.assertEqual(tx.signatures[0], "XDQeEMcJDd+XVGaFIZc8d4kKRJgsPuWAPVNG5UKNk8mDZx2oE1kTP/hbxiFx6yDouBELCswuf/X6POK9ES7JCA==")
def test_transaction_document(self): transaction_document = """TX:10:1:6:6:2:1:0 278644-000004546FCB16F2851A8B6D1066219B0EBB3580C882850411618E35241719EA 8rYgYd64F2Y3Gfxwohjrc7K3zSNpDz79yNxRJorUwmse 1011:0:D:8rYgYd64F2Y3Gfxwohjrc7K3zSNpDz79yNxRJorUwmse:278052 1011:0:D:8rYgYd64F2Y3Gfxwohjrc7K3zSNpDz79yNxRJorUwmse:278333 1011:0:D:8rYgYd64F2Y3Gfxwohjrc7K3zSNpDz79yNxRJorUwmse:278609 1011:0:T:4116D06975AE613C96183390FC5A2BE2561F36C86F5CFE69EB23E3B517AA6F17:1 20330:0:T:56D8A0ACE3BC7E1173FF8BFB8A97A2F3353B6F3AEBCF4923C8BE2E81FDCC0685:1 11121:0:T:7CC29A8707D72936ED0EB9C618CEB3278DFAB4647B6639AA09620FA31EAD95D8:1 0:SIG(0) 1:SIG(0) 2:SIG(0) 3:SIG(0) 4:SIG(0) 5:SIG(0) 30000:0:SIG(2mKmto464oWCVsRgcYM6vpwsLsGk6MhMtrBKf7DTAU34) 5495:0:SIG(8rYgYd64F2Y3Gfxwohjrc7K3zSNpDz79yNxRJorUwmse) Solde huile Millepertuis rgjOmzFH5h+hkDbJLk1b88X7Z83HMgTa5rBckeMSdF/yZtItN3zMn09MphcXjffdrKcK+MebwoisLJqV+jXrDg== """ tx = Transaction.from_compact("g1", transaction_document) verifying_key = VerifyingKey(tx.issuers[0]) self.assertTrue(verifying_key.verify_document(tx))
def test_is_simple(self): tx = Transaction.from_compact("zeta_brousouf", tx_compact_2) self.assertTrue(SimpleTransaction.is_simple(tx)) tx = Transaction.from_compact("zeta_brousouf", tx_compact) self.assertFalse(SimpleTransaction.is_simple(tx))
def test_compact_change(self): tx = Transaction.from_compact("gtest", compact_change) rendered_tx = tx.signed_raw() from_rendered_tx = Transaction.from_signed_raw(rendered_tx)
def test_fromcompact(self): tx = Transaction.from_compact("zeta_brousouf", tx_compact) self.assertEqual(tx.version, 2) self.assertEqual(tx.currency, "zeta_brousouf") self.assertEqual(len(tx.issuers), 3) self.assertEqual(len(tx.inputs), 6) self.assertEqual(len(tx.unlocks), 6) self.assertEqual(len(tx.outputs), 3) self.assertEqual(tx.issuers[0], "HsLShAtzXTVxeUtQd7yi5Z5Zh4zNvbu8sTEZ53nfKcqY") self.assertEqual(tx.issuers[1], "CYYjHsNyg3HMRMpTHqCJAN9McjH5BwFLmDKGV3PmCuKp") self.assertEqual(tx.issuers[2], "9WYHTavL1pmhunFCzUwiiq4pXwvgGG5ysjZnjz9H8yB") self.assertEqual(tx.inputs[0].source, 'T') self.assertEqual(tx.inputs[0].origin_id, "6991C993631BED4733972ED7538E41CCC33660F554E3C51963E2A0AC4D6453D3") self.assertEqual(tx.inputs[0].index, 2) self.assertEqual(tx.inputs[1].source, 'T') self.assertEqual(tx.inputs[1].origin_id, "3A09A20E9014110FD224889F13357BAB4EC78A72F95CA03394D8CCA2936A7435") self.assertEqual(tx.inputs[1].index, 8) self.assertEqual(tx.inputs[2].source, 'D') self.assertEqual(tx.inputs[2].origin_id, "HsLShAtzXTVxeUtQd7yi5Z5Zh4zNvbu8sTEZ53nfKcqY") self.assertEqual(tx.inputs[2].index, 46) self.assertEqual(tx.inputs[3].source, 'T') self.assertEqual(tx.inputs[3].origin_id, "A0D9B4CDC113ECE1145C5525873821398890AE842F4B318BD076095A23E70956") self.assertEqual(tx.inputs[3].index, 3) self.assertEqual(tx.inputs[4].source, 'T') self.assertEqual(tx.inputs[4].origin_id, "67F2045B5318777CC52CD38B424F3E40DDA823FA0364625F124BABE0030E7B5B") self.assertEqual(tx.inputs[4].index, 5) self.assertEqual(tx.inputs[5].source, 'D') self.assertEqual(tx.inputs[5].origin_id, "9WYHTavL1pmhunFCzUwiiq4pXwvgGG5ysjZnjz9H8yB") self.assertEqual(tx.inputs[5].index, 46) self.assertEqual(tx.unlocks[0].index, 0) self.assertEqual(str(tx.unlocks[0].parameters[0]), "SIG(0)") self.assertEqual(tx.unlocks[1].index, 1) self.assertEqual(str(tx.unlocks[1].parameters[0]), "XHX(7665798292)") self.assertEqual(tx.unlocks[2].index, 2) self.assertEqual(str(tx.unlocks[2].parameters[0]), "SIG(0)") self.assertEqual(tx.unlocks[3].index, 3) self.assertEqual(str(tx.unlocks[3].parameters[0]), "SIG(0)") self.assertEqual(str(tx.unlocks[3].parameters[1]), "SIG(2)") self.assertEqual(tx.unlocks[4].index, 4) self.assertEqual(str(tx.unlocks[4].parameters[0]), "SIG(0)") self.assertEqual(str(tx.unlocks[4].parameters[1]), "SIG(1)") self.assertEqual(str(tx.unlocks[4].parameters[2]), "SIG(2)") self.assertEqual(tx.unlocks[5].index, 5) self.assertEqual(str(tx.unlocks[5].parameters[0]), "SIG(2)") self.assertEqual(tx.outputs[0].amount, 120) self.assertEqual(tx.outputs[0].base, 2) self.assertEqual(pypeg2.compose(tx.outputs[0].conditions, output.Condition), "SIG(BYfWYFrsyjpvpFysgu19rGK3VHBkz4MqmQbNyEuVU64g)") self.assertEqual(tx.outputs[1].amount, 146) self.assertEqual(tx.outputs[1].base, 2) self.assertEqual(pypeg2.compose(tx.outputs[1].conditions, output.Condition), "SIG(DSz4rgncXCytsUMW2JU2yhLquZECD2XpEkpP9gG5HyAx)") self.assertEqual(tx.outputs[2].amount, 49) self.assertEqual(tx.outputs[2].base, 2) self.assertEqual(pypeg2.compose(tx.outputs[2].conditions, output.Condition), "(SIG(6DyGr5LFtFmbaJYRvcs9WmBsr4cbJbJ1EV9zBbqG7A6i) || XHX(8FAA0ED653CA4D2C1156D511F0D0036F5168ABA4DAC2929676D279C8A2A12E36))") self.assertEqual(tx.comment, "-----@@@----- (why not this comment?)") self.assertEqual(tx.signatures[0], "42yQm4hGTJYWkPg39hQAUgP6S6EQ4vTfXdJuxKEHL1ih6YHiDL2hcwrFgBHjXLRgxRhj2VNVqqc6b4JayKqTE14r") self.assertEqual(tx.signatures[1], "2D96KZwNUvVtcapQPq2mm7J9isFcDCfykwJpVEZwBc7tCgL4qPyu17BT5ePozAE9HS6Yvj51f62Mp4n9d9dkzJoX") self.assertEqual(tx.signatures[2], "2XiBDpuUdu6zCPWGzHXXy8c4ATSscfFQG9DjmqMZUxDZVt1Dp4m2N5oHYVUfoPdrU9SLk4qxi65RNrfCVnvQtQJk")
def test_compact_change(self): tx = Transaction.from_compact("gtest", compact_change) rendered_tx = tx.signed_raw() self.assertEqual(tx_from_compact_change, rendered_tx) Transaction.from_signed_raw(rendered_tx)