forked from LBRYCommunity/lbry-sdk
83 lines
2.2 KiB
Python
83 lines
2.2 KiB
Python
|
from sqlalchemy import (
|
||
|
MetaData, Table, Column, ForeignKey,
|
||
|
Binary, Text, SmallInteger, Integer, Boolean
|
||
|
)
|
||
|
|
||
|
|
||
|
metadata = MetaData()
|
||
|
|
||
|
|
||
|
Version = Table(
|
||
|
'version', metadata,
|
||
|
Column('version', Text, primary_key=True),
|
||
|
)
|
||
|
|
||
|
|
||
|
PubkeyAddress = Table(
|
||
|
'pubkey_address', metadata,
|
||
|
Column('address', Text, primary_key=True),
|
||
|
Column('history', Text, nullable=True),
|
||
|
Column('used_times', Integer, server_default='0'),
|
||
|
)
|
||
|
|
||
|
|
||
|
AccountAddress = Table(
|
||
|
'account_address', metadata,
|
||
|
Column('account', Text, primary_key=True),
|
||
|
Column('address', Text, ForeignKey(PubkeyAddress.columns.address), primary_key=True),
|
||
|
Column('chain', Integer),
|
||
|
Column('pubkey', Binary),
|
||
|
Column('chain_code', Binary),
|
||
|
Column('n', Integer),
|
||
|
Column('depth', Integer),
|
||
|
)
|
||
|
|
||
|
|
||
|
Block = Table(
|
||
|
'block', metadata,
|
||
|
Column('block_hash', Binary, primary_key=True),
|
||
|
Column('previous_hash', Binary),
|
||
|
Column('file_number', SmallInteger),
|
||
|
Column('height', Integer),
|
||
|
)
|
||
|
|
||
|
|
||
|
TX = Table(
|
||
|
'tx', metadata,
|
||
|
Column('block_hash', Binary, nullable=True),
|
||
|
Column('tx_hash', Binary, primary_key=True),
|
||
|
Column('raw', Binary),
|
||
|
Column('height', Integer),
|
||
|
Column('position', SmallInteger),
|
||
|
Column('is_verified', Boolean, server_default='FALSE'),
|
||
|
Column('purchased_claim_hash', Binary, nullable=True),
|
||
|
Column('day', Integer, nullable=True),
|
||
|
)
|
||
|
|
||
|
|
||
|
TXO = Table(
|
||
|
'txo', metadata,
|
||
|
Column('tx_hash', Binary, ForeignKey(TX.columns.tx_hash)),
|
||
|
Column('txo_hash', Binary, primary_key=True),
|
||
|
Column('address', Text),
|
||
|
Column('position', Integer),
|
||
|
Column('amount', Integer),
|
||
|
Column('script', Binary),
|
||
|
Column('is_reserved', Boolean, server_default='0'),
|
||
|
Column('txo_type', Integer, server_default='0'),
|
||
|
Column('claim_id', Text, nullable=True),
|
||
|
Column('claim_hash', Binary, nullable=True),
|
||
|
Column('claim_name', Text, nullable=True),
|
||
|
Column('channel_hash', Binary, nullable=True),
|
||
|
Column('reposted_claim_hash', Binary, nullable=True),
|
||
|
)
|
||
|
|
||
|
|
||
|
TXI = Table(
|
||
|
'txi', metadata,
|
||
|
Column('tx_hash', Binary, ForeignKey(TX.columns.tx_hash)),
|
||
|
Column('txo_hash', Binary, ForeignKey(TXO.columns.txo_hash), primary_key=True),
|
||
|
Column('address', Text),
|
||
|
Column('position', Integer),
|
||
|
)
|