示例#1
0
class ChannelStateSchema(BaseSchema):
    channel_identifier = IntegerToStringField(attribute="identifier")
    token_network_address = AddressField()
    token_address = AddressField()
    partner_address = fields.Method("get_partner_address")
    settle_timeout = IntegerToStringField()
    reveal_timeout = IntegerToStringField()
    balance = fields.Method("get_balance")
    state = fields.Method("get_state")
    total_deposit = fields.Method("get_total_deposit")
    total_withdraw = fields.Method("get_total_withdraw")

    @staticmethod
    def get_partner_address(channel_state: NettingChannelState) -> str:
        return to_checksum_address(channel_state.partner_state.address)

    @staticmethod
    def get_balance(channel_state: NettingChannelState) -> str:
        return str(channel.get_balance(channel_state.our_state, channel_state.partner_state))

    @staticmethod
    def get_state(channel_state: NettingChannelState) -> str:
        return channel.get_status(channel_state).value

    @staticmethod
    def get_total_deposit(channel_state: NettingChannelState) -> str:
        """Return our total deposit in the contract for this channel"""
        return str(channel_state.our_total_deposit)

    @staticmethod
    def get_total_withdraw(channel_state: NettingChannelState) -> str:
        """Return our total withdraw from this channel"""
        return str(channel_state.our_total_withdraw)
示例#2
0
class RaidenEventsRequestSchema(BaseSchema):
    limit = IntegerToStringField(missing=None)
    offset = IntegerToStringField(missing=None)

    class Meta:
        strict = True
        # decoding to a dict is required by the @use_kwargs decorator from webargs
        decoding_class = dict
示例#3
0
class BlockchainEventsRequestSchema(BaseSchema):
    from_block = IntegerToStringField(missing=None)
    to_block = IntegerToStringField(missing=None)

    class Meta:
        strict = True
        # decoding to a dict is required by the @use_kwargs decorator from webargs
        decoding_class = dict
示例#4
0
class PaymentSchema(BaseSchema):
    initiator_address = AddressField(missing=None)
    target_address = AddressField(missing=None)
    token_address = AddressField(missing=None)
    amount = IntegerToStringField(required=True)
    identifier = IntegerToStringField(missing=None)
    secret = SecretField(missing=None)
    secret_hash = SecretHashField(missing=None)
    lock_timeout = IntegerToStringField(missing=None)
示例#5
0
class ConnectionsConnectSchema(BaseSchema):
    funds = IntegerToStringField(required=True)
    initial_channel_target = IntegerToStringField(
        missing=DEFAULT_INITIAL_CHANNEL_TARGET)
    joinable_funds_target = fields.Decimal(
        missing=DEFAULT_JOINABLE_FUNDS_TARGET)

    class Meta:
        strict = True
        decoding_class = dict
示例#6
0
class ChannelPutSchema(BaseSchema):
    token_address = AddressField(required=True)
    partner_address = AddressField(required=True)
    reveal_timeout = IntegerToStringField(missing=None)
    settle_timeout = IntegerToStringField(missing=None)
    total_deposit = IntegerToStringField(default=None, missing=None)

    class Meta:
        strict = True
        # decoding to a dict is required by the @use_kwargs decorator from webargs:
        decoding_class = dict
示例#7
0
class EventPaymentSchema(BaseSchema):
    block_number = IntegerToStringField()
    identifier = IntegerToStringField()
    log_time = TimeStampField()
    token_address = AddressField(missing=None)

    def serialize(self, chain_state: ChainState, event: TimestampedEvent) -> Dict[str, Any]:
        serialized_event = self.dump(event)
        token_network = get_token_network_by_address(
            chain_state=chain_state,
            token_network_address=event.wrapped_event.token_network_address,
        )
        assert token_network, "Token network object should be registered if we got events with it"
        serialized_event["token_address"] = to_checksum_address(token_network.token_address)
        return serialized_event
示例#8
0
class ChannelPatchSchema(BaseSchema):
    total_deposit = IntegerToStringField(default=None, missing=None)
    total_withdraw = IntegerToStringField(default=None, missing=None)
    reveal_timeout = IntegerToStringField(default=None, missing=None)
    state = fields.String(
        default=None,
        missing=None,
        validate=validate.OneOf(
            [
                ChannelState.STATE_CLOSED.value,
                ChannelState.STATE_OPENED.value,
                ChannelState.STATE_SETTLED.value,
            ]
        ),
    )
示例#9
0
class MintTokenSchema(BaseSchema):
    to = AddressField(required=True)
    value = IntegerToStringField(required=True,
                                 validate=validate.Range(min=1,
                                                         max=UINT256_MAX))

    class Meta:
        strict = True
        decoding_class = dict
示例#10
0
class ChannelPatchSchema(BaseSchema):
    total_deposit = IntegerToStringField(default=None, missing=None)
    total_withdraw = IntegerToStringField(default=None, missing=None)
    reveal_timeout = IntegerToStringField(default=None, missing=None)
    state = fields.String(
        default=None,
        missing=None,
        validate=validate.OneOf([
            ChannelState.STATE_CLOSED.value,
            ChannelState.STATE_OPENED.value,
            ChannelState.STATE_SETTLED.value,
        ]),
    )

    class Meta:
        strict = True
        # decoding to a dict is required by the @use_kwargs decorator from webargs:
        decoding_class = dict
示例#11
0
def test_deserialize_raises_validation_error_on_dict():
    for field in [
        IntegerToStringField(),
        OptionalIntegerToStringField(),
        BytesField(),
        AddressField(),
        QueueIdentifierField(),
    ]:
        with pytest.raises(marshmallow.exceptions.ValidationError):
            field._deserialize({}, None, None)
示例#12
0
class MintTokenSchema(BaseSchema):
    to = AddressField(required=True)
    value = IntegerToStringField(required=True,
                                 validate=validate.Range(min=1,
                                                         max=UINT256_MAX))
    contract_method = fields.String(validate=validate.OneOf(
        choices=("increaseSupply", "mint", "mintFor")))

    class Meta:
        strict = True
        decoding_class = dict
示例#13
0
class EventPaymentReceivedSuccessSchema(EventPaymentSchema):
    event = fields.Constant("EventPaymentReceivedSuccess")
    amount = IntegerToStringField()
    initiator = AddressField()

    class Meta:
        fields = (
            "block_number",
            "event",
            "amount",
            "initiator",
            "identifier",
            "log_time",
            "token_address",
        )
示例#14
0
class EventPaymentSentSuccessSchema(EventPaymentSchema):
    event = fields.Constant("EventPaymentSentSuccess")
    amount = IntegerToStringField()
    target = AddressField()

    class Meta:
        fields = (
            "block_number",
            "event",
            "amount",
            "target",
            "identifier",
            "log_time",
            "token_address",
        )
        strict = True
        decoding_class = dict
示例#15
0
class ChannelPutSchema(BaseSchema):
    token_address = AddressField(required=True)
    partner_address = AddressField(required=True)
    reveal_timeout = IntegerToStringField(missing=None)
    settle_timeout = IntegerToStringField(missing=None)
    total_deposit = IntegerToStringField(default=None, missing=None)
示例#16
0
class BlockchainEventsRequestSchema(BaseSchema):
    from_block = IntegerToStringField(missing=None)
    to_block = IntegerToStringField(missing=None)
示例#17
0
class RaidenEventsRequestSchema(BaseSchema):
    limit = IntegerToStringField(missing=None)
    offset = IntegerToStringField(missing=None)