mirror of
https://github.com/cryptosharks131/lndg.git
synced 2026-08-13 12:33:04 +02:00
253 lines
No EOL
9.8 KiB
Python
253 lines
No EOL
9.8 KiB
Python
from rest_framework import serializers
|
|
from rest_framework.relations import PrimaryKeyRelatedField
|
|
from .models import LocalSettings, Payments, PaymentHops, Invoices, Forwards, Channels, Rebalancer, Peers, Onchain, PendingHTLCs, FailedHTLCs, HistFailedHTLC, Closures, Resolutions, PeerEvents, TradeSales, Autofees, InboundFeeLog
|
|
|
|
##FUTURE UPDATE 'exclude' TO 'fields'
|
|
|
|
class PaymentSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.IntegerField(source='index')
|
|
payment_hash = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = Payments
|
|
exclude = []
|
|
|
|
class InvoiceSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.IntegerField(source='index')
|
|
r_hash = serializers.ReadOnlyField()
|
|
creation_date = serializers.ReadOnlyField()
|
|
settle_date = serializers.ReadOnlyField()
|
|
value = serializers.ReadOnlyField()
|
|
amt_paid = serializers.ReadOnlyField()
|
|
state = serializers.ReadOnlyField()
|
|
chan_in = serializers.ReadOnlyField()
|
|
chan_in_alias = serializers.ReadOnlyField()
|
|
keysend_preimage = serializers.ReadOnlyField()
|
|
message = serializers.ReadOnlyField()
|
|
sender = serializers.ReadOnlyField()
|
|
sender_alias = serializers.ReadOnlyField()
|
|
index = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = Invoices
|
|
exclude = []
|
|
|
|
class ForwardSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = Forwards
|
|
exclude = []
|
|
|
|
class ChannelSerializer(serializers.HyperlinkedModelSerializer):
|
|
chan_id = serializers.ReadOnlyField()
|
|
remote_pubkey = serializers.ReadOnlyField()
|
|
funding_txid = serializers.ReadOnlyField()
|
|
output_index = serializers.ReadOnlyField()
|
|
capacity = serializers.ReadOnlyField()
|
|
local_balance = serializers.ReadOnlyField()
|
|
remote_balance = serializers.ReadOnlyField()
|
|
unsettled_balance = serializers.ReadOnlyField()
|
|
local_commit = serializers.ReadOnlyField()
|
|
local_chan_reserve = serializers.ReadOnlyField()
|
|
initiator = serializers.ReadOnlyField()
|
|
local_base_fee = serializers.ReadOnlyField()
|
|
local_fee_rate = serializers.ReadOnlyField()
|
|
remote_base_fee = serializers.ReadOnlyField()
|
|
remote_fee_rate = serializers.ReadOnlyField()
|
|
is_active = serializers.ReadOnlyField()
|
|
is_open = serializers.ReadOnlyField()
|
|
num_updates = serializers.ReadOnlyField()
|
|
local_disabled = serializers.ReadOnlyField()
|
|
remote_disabled = serializers.ReadOnlyField()
|
|
last_update = serializers.ReadOnlyField()
|
|
short_chan_id = serializers.ReadOnlyField()
|
|
total_sent = serializers.ReadOnlyField()
|
|
total_received = serializers.ReadOnlyField()
|
|
private = serializers.ReadOnlyField()
|
|
pending_outbound = serializers.ReadOnlyField()
|
|
pending_inbound = serializers.ReadOnlyField()
|
|
htlc_count = serializers.ReadOnlyField()
|
|
local_cltv = serializers.ReadOnlyField()
|
|
local_min_htlc_msat = serializers.ReadOnlyField()
|
|
local_max_htlc_msat = serializers.ReadOnlyField()
|
|
remote_cltv = serializers.ReadOnlyField()
|
|
remote_min_htlc_msat = serializers.ReadOnlyField()
|
|
remote_max_htlc_msat = serializers.ReadOnlyField()
|
|
alias = serializers.ReadOnlyField()
|
|
fees_updated = serializers.ReadOnlyField()
|
|
push_amt = serializers.ReadOnlyField()
|
|
close_address = serializers.ReadOnlyField()
|
|
local_inbound_base_fee = serializers.ReadOnlyField()
|
|
local_inbound_fee_rate = serializers.ReadOnlyField()
|
|
remote_inbound_base_fee = serializers.ReadOnlyField()
|
|
remote_inbound_fee_rate = serializers.ReadOnlyField()
|
|
opened_in = serializers.SerializerMethodField()
|
|
ar_max_cost = serializers.IntegerField(required=False)
|
|
ar_amt_target = serializers.IntegerField(required=False)
|
|
ar_out_target = serializers.IntegerField(required=False)
|
|
ar_in_target = serializers.IntegerField(required=False)
|
|
auto_fees = serializers.BooleanField(required=False)
|
|
class Meta:
|
|
model = Channels
|
|
exclude = []
|
|
|
|
def get_opened_in(self, obj):
|
|
return int(obj.short_chan_id.split('x')[0])
|
|
|
|
class RebalancerSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.ReadOnlyField()
|
|
requested = serializers.ReadOnlyField()
|
|
start = serializers.ReadOnlyField()
|
|
stop = serializers.ReadOnlyField()
|
|
fees_paid = serializers.ReadOnlyField()
|
|
payment_hash = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = Rebalancer
|
|
exclude = []
|
|
|
|
class ConnectPeerSerializer(serializers.Serializer):
|
|
peer_id = serializers.CharField(label='peer_pubkey', max_length=200)
|
|
|
|
class DisconnectPeerSerializer(serializers.Serializer):
|
|
peer_id = serializers.CharField(label='peer_pubkey', max_length=66)
|
|
|
|
class OpenChannelSerializer(serializers.Serializer):
|
|
peer_pubkey = serializers.CharField(label='peer_pubkey', max_length=66)
|
|
local_amt = serializers.IntegerField(label='local_amt')
|
|
sat_per_byte = serializers.IntegerField(label='sat_per_btye')
|
|
|
|
class CloseChannelSerializer(serializers.Serializer):
|
|
chan_id = serializers.CharField(label='chan_id')
|
|
target_fee = serializers.IntegerField(label='target_fee')
|
|
force = serializers.BooleanField(default=False)
|
|
|
|
class BumpFeeSerializer(serializers.Serializer):
|
|
txid = serializers.CharField(label='txid')
|
|
index = serializers.IntegerField(label='index')
|
|
target_fee = serializers.IntegerField(label='target_fee')
|
|
force = serializers.BooleanField(default=False)
|
|
|
|
class BroadcastTXSerializer(serializers.Serializer):
|
|
raw_tx = serializers.CharField(label='raw_tx')
|
|
|
|
class CreateTradeSerializer(serializers.Serializer):
|
|
description = serializers.CharField(max_length=100)
|
|
price = serializers.IntegerField()
|
|
type = serializers.IntegerField()
|
|
secret = serializers.CharField(max_length=100, required=False, default=None)
|
|
expiry = serializers.DateTimeField(required=False, default=None)
|
|
sale_limit = serializers.IntegerField(required=False, default=None)
|
|
|
|
class TradeSalesSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.ReadOnlyField()
|
|
creation_date = serializers.ReadOnlyField()
|
|
sale_type = serializers.ReadOnlyField()
|
|
secret = serializers.ReadOnlyField()
|
|
sale_count = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = TradeSales
|
|
exclude = []
|
|
|
|
class SignMessageSerializer(serializers.Serializer):
|
|
message = serializers.CharField(label='message')
|
|
|
|
class AddInvoiceSerializer(serializers.Serializer):
|
|
value = serializers.IntegerField(label='value')
|
|
|
|
class UpdateAliasSerializer(serializers.Serializer):
|
|
peer_pubkey = serializers.CharField(label='peer_pubkey', max_length=66)
|
|
|
|
class UpdateChanPolicy(serializers.Serializer):
|
|
chan_id = serializers.CharField(max_length=20)
|
|
base_fee = serializers.IntegerField(required=False, default=None)
|
|
fee_rate = serializers.IntegerField(required=False, default=None)
|
|
inbound_base_fee = serializers.IntegerField(required=False, default=None)
|
|
inbound_fee_rate = serializers.IntegerField(required=False, default=None)
|
|
disabled = serializers.IntegerField(required=False, default=None)
|
|
cltv = serializers.IntegerField(required=False, default=None)
|
|
min_htlc = serializers.FloatField(required=False, default=None)
|
|
max_htlc = serializers.FloatField(required=False, default=None)
|
|
|
|
class NewAddressSerializer(serializers.Serializer):
|
|
legacy = serializers.BooleanField(required=False, default=False)
|
|
|
|
class ConsolidateSerializer(serializers.Serializer):
|
|
sat_per_vbyte = serializers.IntegerField(label='sat_per_vbtye')
|
|
|
|
class PeerSerializer(serializers.HyperlinkedModelSerializer):
|
|
pubkey = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = Peers
|
|
exclude = []
|
|
|
|
class OnchainSerializer(serializers.HyperlinkedModelSerializer):
|
|
tx_hash = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = Onchain
|
|
exclude = []
|
|
|
|
class ClosuresSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = Closures
|
|
exclude = []
|
|
|
|
class ResolutionsSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = Resolutions
|
|
exclude = []
|
|
|
|
class PaymentHopsSerializer(serializers.HyperlinkedModelSerializer):
|
|
payment_hash = PrimaryKeyRelatedField(read_only=True)
|
|
class Meta:
|
|
model = PaymentHops
|
|
exclude = []
|
|
|
|
class LocalSettingsSerializer(serializers.HyperlinkedModelSerializer):
|
|
key = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = LocalSettings
|
|
exclude = []
|
|
|
|
class PendingHTLCSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = PendingHTLCs
|
|
exclude = []
|
|
|
|
class PeerEventsSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.ReadOnlyField()
|
|
out_liq_percent = serializers.SerializerMethodField()
|
|
class Meta:
|
|
model = PeerEvents
|
|
exclude = []
|
|
|
|
def get_out_liq_percent(self, obj):
|
|
capacity = Channels.objects.filter(chan_id=obj.chan_id).get().capacity
|
|
return int(round((obj.out_liq/capacity)*100, 1))
|
|
|
|
class FeeLogSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = Autofees
|
|
exclude = []
|
|
|
|
class InboundFeeLogSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = InboundFeeLog
|
|
exclude = []
|
|
|
|
class FailedHTLCSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = FailedHTLCs
|
|
exclude = []
|
|
|
|
class HistFailedHTLCSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.ReadOnlyField()
|
|
class Meta:
|
|
model = HistFailedHTLC
|
|
exclude = []
|
|
|
|
class ResetSerializer(serializers.Serializer):
|
|
table = serializers.CharField(max_length=20) |