def test_event_address_getter(self):
     getter = EventAddressGetter()
     self.assertListEqual([], getter.get_addresses())
     event = EventFactory.create()
     self.assertIsNotNone(event)
     self.assertTrue(getter.__contains__(event.address))
     self.assertListEqual([event.address], getter.get_addresses())
     event2 = EventFactory.create()
     self.assertListEqual([event.address, event2.address],
                          getter.get_addresses())
Example #2
0
    def test_transfer_outcome_token(self):
        outcome_token_balance = OutcomeTokenBalanceFactory()
        event = EventFactory()
        outcome_token_balance.balance = 20
        outcome_token_balance.save()

        transfer_event = {
            'name':
            'Transfer',
            'address':
            outcome_token_balance.outcome_token.address,
            'params': [{
                'name': 'from',
                'value': outcome_token_balance.owner
            }, {
                'name': 'to',
                'value': event.address
            }, {
                'name': 'value',
                'value': outcome_token_balance.balance,
            }]
        }

        s = OutcomeTokenTransferSerializer(data=transfer_event)
        self.assertTrue(s.is_valid(), s.errors)
        instance = s.save()

        self.assertEqual(
            OutcomeTokenBalance.objects.get(
                owner=outcome_token_balance.owner).balance, 0)
        self.assertIsNotNone(instance)
        self.assertEqual(instance.owner, event.address)
        self.assertEqual(instance.balance, 20)
Example #3
0
    def test_issuance_outcome_token(self):
        outcome_token = OutcomeTokenFactory()
        event = EventFactory()

        issuance_event = {
            'name':
            'Issuance',
            'address':
            outcome_token.address,
            'params': [{
                'name': 'owner',
                'value': event.address
            }, {
                'name': 'amount',
                'value': 20,
            }]
        }

        s = OutcomeTokenIssuanceSerializer(data=issuance_event)
        self.assertTrue(s.is_valid(), s.errors)
        instance = s.save()

        balance = OutcomeTokenBalance.objects.get(owner=event.address)
        self.assertEqual(balance.balance, 20)
        self.assertIsNotNone(instance)

        self.assertEqual(
            OutcomeToken.objects.get(
                address=outcome_token.address).total_supply,
            outcome_token.total_supply + 20)
Example #4
0
    def test_event_instance_outcome_assignment_receiver(self):
        event_factory = EventFactory()
        assignment_event = {
            'name': 'OutcomeAssignment',
            'address': event_factory.address,
            'params': [{
                'name': 'outcome',
                'value': 1,
            }]
        }

        EventInstanceReceiver().save(assignment_event)
        event = Event.objects.get(address=event_factory.address)
        self.assertTrue(event.is_winning_outcome_set)
Example #5
0
    def test_create_scalar_event(self):
        event = EventFactory()
        oracle = OracleFactory()

        block = {
            'number': oracle.creation_block,
            'timestamp': mktime(oracle.creation_date_time.timetuple())
        }

        scalar_event = {
            'address':
            oracle.factory[1:-8] + 'GIACOMO1',
            'params': [{
                'name': 'creator',
                'value': oracle.creator
            }, {
                'name': 'collateralToken',
                'value': event.collateral_token
            }, {
                'name': 'oracle',
                'value': oracle.address
            }, {
                'name': 'upperBound',
                'value': 1
            }, {
                'name': 'lowerBound',
                'value': 0
            }]
        }

        s = ScalarEventSerializer(data=scalar_event, block=block)
        self.assertFalse(s.is_valid(), s.errors)

        scalar_event.get('params').append({
            'name':
            'scalarEvent',
            'value':
            event.address[1:-8] + 'GIACOMO2'
        })

        s = ScalarEventSerializer(data=scalar_event, block=block)
        self.assertTrue(s.is_valid(), s.errors)
        instance = s.save()
        self.assertIsNotNone(instance)
Example #6
0
    def test_scalar_event_receiver(self):
        oracle = OracleFactory()
        event = EventFactory()
        event_address = event.address[0:33] + 'GIACOMO'

        block = {
            'number': oracle.creation_block,
            'timestamp': self.to_timestamp(oracle.creation_date_time)
        }

        scalar_event = {
            'address':
            oracle.factory[0:33] + 'GIACOMO',
            'name':
            'ScalarEventCreation',
            'params': [{
                'name': 'creator',
                'value': oracle.creator
            }, {
                'name': 'collateralToken',
                'value': event.collateral_token
            }, {
                'name': 'oracle',
                'value': oracle.address
            }, {
                'name': 'outcomeCount',
                'value': 1
            }, {
                'name': 'upperBound',
                'value': 1
            }, {
                'name': 'lowerBound',
                'value': 0
            }, {
                'name': 'scalarEvent',
                'value': event_address
            }]
        }

        EventFactoryReceiver().save(scalar_event, block)
        event = ScalarEvent.objects.get(address=event_address)
        self.assertIsNotNone(event.pk)
Example #7
0
    def test_event_instance_winnings_redemption_receiver(self):
        event_factory = EventFactory()
        redemption_event = {
            'name':
            'WinningsRedemption',
            'address':
            event_factory.address,
            'params': [{
                'name': 'receiver',
                'value': event_factory.creator[0:-7] + 'GIACOMO',
            }, {
                'name': 'winnings',
                'value': 1
            }]
        }

        EventInstanceReceiver().save(redemption_event)
        event = Event.objects.get(address=event_factory.address)
        self.assertEquals(event.redeemed_winnings,
                          event_factory.redeemed_winnings + 1)
Example #8
0
    def test_create_categorical_event(self):
        event_factory = EventFactory()
        oracle = OracleFactory()

        block = {
            'number': oracle.creation_block,
            'timestamp': mktime(oracle.creation_date_time.timetuple())
        }

        categorical_event = {
            'address':
            oracle.factory[1:-7] + 'GIACOMO',
            'params': [{
                'name': 'creator',
                'value': oracle.creator
            }, {
                'name': 'collateralToken',
                'value': event_factory.collateral_token
            }, {
                'name': 'oracle',
                'value': oracle.address
            }, {
                'name': 'outcomeCount',
                'value': 1
            }]
        }

        s = CategoricalEventSerializer(data=categorical_event, block=block)
        self.assertFalse(s.is_valid(), s.errors)

        categorical_event.get('params').append({
            'name':
            'categoricalEvent',
            'value':
            event_factory.address[1:-7] + 'GIACOMO'
        })

        s = CategoricalEventSerializer(data=categorical_event, block=block)
        self.assertTrue(s.is_valid(), s.errors)
        instance = s.save()
        self.assertIsNotNone(instance)
Example #9
0
    def test_create_outcome_token_instance(self):
        outcome_token_factory = OutcomeTokenFactory()
        oracle_factory = OracleFactory()
        event_factory = EventFactory()
        event = None

        block = {
            'number': oracle_factory.creation_block,
            'timestamp': mktime(oracle_factory.creation_date_time.timetuple())
        }

        scalar_event = {
            'address':
            oracle_factory.factory[1:-12] + 'TESTINSTANCE',
            'params': [{
                'name': 'creator',
                'value': oracle_factory.creator
            }, {
                'name': 'collateralToken',
                'value': event_factory.collateral_token
            }, {
                'name': 'oracle',
                'value': oracle_factory.address
            }, {
                'name': 'outcomeCount',
                'value': 1
            }, {
                'name': 'upperBound',
                'value': 1
            }, {
                'name': 'lowerBound',
                'value': 0
            }, {
                'name': 'scalarEvent',
                'value': event_factory.address[1:-12] + 'TESTINSTANCE'
            }]
        }

        s = ScalarEventSerializer(data=scalar_event, block=block)
        s.is_valid()
        event = s.save()

        block = {
            'number': oracle_factory.creation_block,
            'timestamp': mktime(oracle_factory.creation_date_time.timetuple())
        }

        oracle_event = {
            'address':
            oracle_factory.factory[0:-7] + 'GIACOMO',
            'params': [{
                'name': 'creator',
                'value': event.creator
            }, {
                'name': 'address',
                'value': event.address
            }, {
                'name': 'outcomeToken',
                'value': oracle_factory.address[1:-8] + 'INSTANCE',
            }, {
                'name': 'index',
                'value': outcome_token_factory.index
            }]
        }

        s = OutcomeTokenInstanceSerializer(data=oracle_event)
        self.assertTrue(s.is_valid(), s.errors)
        instance = s.save()
        self.assertIsNotNone(instance)
Example #10
0
    def test_event_instance_receiver(self):
        outcome_token_factory = OutcomeTokenFactory()
        oracle_factory = OracleFactory()
        event_factory = EventFactory()
        event_address = event_factory.address[0:-7] + 'GIACOMO'

        block = {
            'number': oracle_factory.creation_block,
            'timestamp': mktime(oracle_factory.creation_date_time.timetuple())
        }

        scalar_event = {
            'name':
            'ScalarEventCreation',
            'address':
            oracle_factory.factory[1:-12] + 'TESTINSTANCE',
            'params': [{
                'name': 'creator',
                'value': oracle_factory.creator
            }, {
                'name': 'collateralToken',
                'value': event_factory.collateral_token
            }, {
                'name': 'oracle',
                'value': oracle_factory.address
            }, {
                'name': 'outcomeCount',
                'value': 1
            }, {
                'name': 'upperBound',
                'value': 1
            }, {
                'name': 'lowerBound',
                'value': 0
            }, {
                'name': 'scalarEvent',
                'value': event_address
            }]
        }

        EventFactoryReceiver().save(scalar_event, block)
        event = ScalarEvent.objects.get(address=event_address)

        block = {
            'number': oracle_factory.creation_block,
            'timestamp': mktime(oracle_factory.creation_date_time.timetuple())
        }
        outcome_token_address = oracle_factory.address[1:-8] + 'INSTANCE'
        outcome_event = {
            'name':
            'OutcomeTokenCreation',
            'address':
            oracle_factory.factory[0:-7] + 'GIACOMO',
            'params': [{
                'name': 'creator',
                'value': event.creator
            }, {
                'name': 'address',
                'value': event.address
            }, {
                'name': 'outcomeToken',
                'value': outcome_token_address,
            }, {
                'name': 'index',
                'value': outcome_token_factory.index
            }]
        }
        EventInstanceReceiver().save(outcome_event, block)
        self.assertIsNotNone(
            OutcomeToken.objects.get(address=outcome_token_address))