Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
9bcc12df
Commit
9bcc12df
authored
Aug 23, 2023
by
Hamdi Allam
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cascade delete and unique constraints
parent
277cd746
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
69 additions
and
80 deletions
+69
-80
20230523_create_schema.sql
indexer/migrations/20230523_create_schema.sql
+69
-80
No files found.
indexer/migrations/20230523_create_schema.sql
View file @
9bcc12df
...
...
@@ -8,10 +8,10 @@ CREATE DOMAIN UINT256 AS NUMERIC
CREATE
TABLE
IF
NOT
EXISTS
l1_block_headers
(
-- Searchable fields
hash
VARCHAR
NOT
NULL
PRIMARY
KEY
,
parent_hash
VARCHAR
NOT
NULL
,
number
UINT256
NOT
NULL
,
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
),
hash
VARCHAR
PRIMARY
KEY
,
parent_hash
VARCHAR
NOT
NULL
UNIQUE
,
number
UINT256
NOT
NULL
UNIQUE
,
timestamp
INTEGER
NOT
NULL
UNIQUE
CHECK
(
timestamp
>
0
),
-- Raw Data
rlp_bytes
VARCHAR
NOT
NULL
...
...
@@ -19,10 +19,10 @@ CREATE TABLE IF NOT EXISTS l1_block_headers (
CREATE
TABLE
IF
NOT
EXISTS
l2_block_headers
(
-- Searchable fields
hash
VARCHAR
NOT
NULL
PRIMARY
KEY
,
parent_hash
VARCHAR
NOT
NULL
,
number
UINT256
NOT
NULL
,
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
),
hash
VARCHAR
PRIMARY
KEY
,
parent_hash
VARCHAR
NOT
NULL
UNIQUE
,
number
UINT256
NOT
NULL
UNIQUE
,
timestamp
INTEGER
NOT
NULL
UNIQUE
CHECK
(
timestamp
>
0
),
-- Raw Data
rlp_bytes
VARCHAR
NOT
NULL
...
...
@@ -34,8 +34,8 @@ CREATE TABLE IF NOT EXISTS l2_block_headers (
CREATE
TABLE
IF
NOT
EXISTS
l1_contract_events
(
-- Searchable fields
guid
VARCHAR
NOT
NULL
PRIMARY
KEY
,
block_hash
VARCHAR
NOT
NULL
REFERENCES
l1_block_headers
(
hash
)
,
guid
VARCHAR
PRIMARY
KEY
,
block_hash
VARCHAR
NOT
NULL
REFERENCES
l1_block_headers
(
hash
)
ON
DELETE
CASCADE
,
contract_address
VARCHAR
NOT
NULL
,
transaction_hash
VARCHAR
NOT
NULL
,
log_index
INTEGER
NOT
NULL
,
...
...
@@ -48,8 +48,8 @@ CREATE TABLE IF NOT EXISTS l1_contract_events (
CREATE
TABLE
IF
NOT
EXISTS
l2_contract_events
(
-- Searchable fields
guid
VARCHAR
NOT
NULL
PRIMARY
KEY
,
block_hash
VARCHAR
NOT
NULL
REFERENCES
l2_block_headers
(
hash
)
,
guid
VARCHAR
PRIMARY
KEY
,
block_hash
VARCHAR
NOT
NULL
REFERENCES
l2_block_headers
(
hash
)
ON
DELETE
CASCADE
,
contract_address
VARCHAR
NOT
NULL
,
transaction_hash
VARCHAR
NOT
NULL
,
log_index
INTEGER
NOT
NULL
,
...
...
@@ -63,58 +63,52 @@ CREATE TABLE IF NOT EXISTS l2_contract_events (
-- Tables that index finalization markers for L2 blocks.
CREATE
TABLE
IF
NOT
EXISTS
legacy_state_batches
(
index
INTEGER
NOT
NULL
PRIMARY
KEY
,
root
VARCHAR
NOT
NULL
,
index
INTEGER
PRIMARY
KEY
,
root
VARCHAR
NOT
NULL
UNIQUE
,
size
INTEGER
NOT
NULL
,
prev_total
INTEGER
NOT
NULL
,
l1_contract_event_guid
VARCHAR
REFERENCES
l1_contract_events
(
guid
)
state_batch_appended_guid
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l1_contract_events
(
guid
)
ON
DELETE
CASCADE
);
CREATE
TABLE
IF
NOT
EXISTS
output_proposals
(
output_root
VARCHAR
NOT
NULL
PRIMARY
KEY
,
output_root
VARCHAR
PRIMARY
KEY
,
l2_output_index
UINT256
NOT
NULL
UNIQUE
,
l2_block_number
UINT256
NOT
NULL
UNIQUE
,
l2_output_index
UINT256
NOT
NULL
,
l2_block_number
UINT256
NOT
NULL
,
l1_contract_event_guid
VARCHAR
REFERENCES
l1_contract_events
(
guid
)
output_proposed_guid
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l1_contract_events
(
guid
)
ON
DELETE
CASCADE
);
/**
* BRIDGING DATA
*/
/**
* TOKEN DATA
*/
-- L1 Token table
-- Bridged L1/L2 Tokens
CREATE
TABLE
IF
NOT
EXISTS
l1_tokens
(
address
VARCHAR
PRIMARY
KEY
,
bridge_address
VARCHAR
NOT
NULL
,
l2_token_address
VARCHAR
NOT
NULL
,
name
VARCHAR
NOT
NULL
,
symbol
VARCHAR
NOT
NULL
,
decimals
INTEGER
NOT
NULL
CHECK
(
decimals
>=
0
AND
decimals
<=
18
)
);
-- L2 Token table
CREATE
TABLE
IF
NOT
EXISTS
l2_tokens
(
address
VARCHAR
PRIMARY
KEY
,
bridge_address
VARCHAR
NOT
NULL
,
l1_token_address
VARCHAR
REFERENCES
l1_tokens
(
address
),
-- L1-L2 relationship is 1 to many so this is not necessarily unique
l1_token_address
VARCHAR
REFERENCES
l1_tokens
(
address
)
ON
DELETE
CASCADE
,
name
VARCHAR
NOT
NULL
,
symbol
VARCHAR
NOT
NULL
,
decimals
INTEGER
NOT
NULL
CHECK
(
decimals
>=
0
AND
decimals
<=
18
)
);
-- OptimismPortal/L2ToL1MessagePasser
CREATE
TABLE
IF
NOT
EXISTS
l1_transaction_deposits
(
source_hash
VARCHAR
NOT
NULL
PRIMARY
KEY
,
l2_transaction_hash
VARCHAR
NOT
NULL
,
initiated_l1_event_guid
VARCHAR
NOT
NULL
REFERENCES
l1_contract_events
(
guid
),
source_hash
VARCHAR
PRIMARY
KEY
,
l2_transaction_hash
VARCHAR
NOT
NULL
UNIQUE
,
initiated_l1_event_guid
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l1_contract_events
(
guid
)
ON
DELETE
CASCADE
,
-- transaction data
from_address
VARCHAR
NOT
NULL
,
...
...
@@ -125,18 +119,15 @@ CREATE TABLE IF NOT EXISTS l1_transaction_deposits (
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
)
);
CREATE
TABLE
IF
NOT
EXISTS
l2_transaction_withdrawals
(
withdrawal_hash
VARCHAR
NOT
NULL
PRIMARY
KEY
,
initiated_l2_event_guid
VARCHAR
NOT
NULL
REFERENCES
l2_contract_events
(
guid
)
,
withdrawal_hash
VARCHAR
PRIMARY
KEY
,
nonce
UINT256
NOT
NULL
UNIQUE
,
initiated_l2_event_guid
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l2_contract_events
(
guid
)
ON
DELETE
CASCADE
,
-- Multistep (bedrock) process of a withdrawal
proven_l1_event_guid
VARCHAR
REFERENCES
l1_contract_events
(
guid
)
,
finalized_l1_event_guid
VARCHAR
REFERENCES
l1_contract_events
(
guid
)
,
proven_l1_event_guid
VARCHAR
UNIQUE
REFERENCES
l1_contract_events
(
guid
)
ON
DELETE
CASCADE
,
finalized_l1_event_guid
VARCHAR
UNIQUE
REFERENCES
l1_contract_events
(
guid
)
ON
DELETE
CASCADE
,
succeeded
BOOLEAN
,
-- L2ToL1MessagePasser specific
nonce
UINT256
UNIQUE
,
-- transaction data
from_address
VARCHAR
NOT
NULL
,
to_address
VARCHAR
NOT
NULL
,
...
...
@@ -148,13 +139,12 @@ CREATE TABLE IF NOT EXISTS l2_transaction_withdrawals (
-- CrossDomainMessenger
CREATE
TABLE
IF
NOT
EXISTS
l1_bridge_messages
(
message_hash
VARCHAR
NOT
NULL
PRIMARY
KEY
,
message_hash
VARCHAR
PRIMARY
KEY
,
nonce
UINT256
NOT
NULL
UNIQUE
,
transaction_source_hash
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l1_transaction_deposits
(
source_hash
)
ON
DELETE
CASCADE
,
transaction_source_hash
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l1_transaction_deposits
(
source_hash
),
sent_message_event_guid
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l1_contract_events
(
guid
),
relayed_message_event_guid
VARCHAR
UNIQUE
REFERENCES
l2_contract_events
(
guid
),
sent_message_event_guid
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l1_contract_events
(
guid
)
ON
DELETE
CASCADE
,
relayed_message_event_guid
VARCHAR
UNIQUE
REFERENCES
l2_contract_events
(
guid
)
ON
DELETE
CASCADE
,
-- sent message
from_address
VARCHAR
NOT
NULL
,
...
...
@@ -165,13 +155,12 @@ CREATE TABLE IF NOT EXISTS l1_bridge_messages(
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
)
);
CREATE
TABLE
IF
NOT
EXISTS
l2_bridge_messages
(
message_hash
VARCHAR
NOT
NULL
PRIMARY
KEY
,
message_hash
VARCHAR
PRIMARY
KEY
,
nonce
UINT256
NOT
NULL
UNIQUE
,
transaction_withdrawal_hash
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l2_transaction_withdrawals
(
withdrawal_hash
)
ON
DELETE
CASCADE
,
transaction_withdrawal_hash
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l2_transaction_withdrawals
(
withdrawal_hash
),
sent_message_event_guid
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l2_contract_events
(
guid
),
relayed_message_event_guid
VARCHAR
UNIQUE
REFERENCES
l1_contract_events
(
guid
),
sent_message_event_guid
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l2_contract_events
(
guid
)
ON
DELETE
CASCADE
,
relayed_message_event_guid
VARCHAR
UNIQUE
REFERENCES
l1_contract_events
(
guid
)
ON
DELETE
CASCADE
,
-- sent message
from_address
VARCHAR
NOT
NULL
,
...
...
@@ -184,8 +173,8 @@ CREATE TABLE IF NOT EXISTS l2_bridge_messages(
-- StandardBridge
CREATE
TABLE
IF
NOT
EXISTS
l1_bridge_deposits
(
transaction_source_hash
VARCHAR
PRIMARY
KEY
REFERENCES
l1_transaction_deposits
(
source_hash
),
cross_domain_message_hash
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l1_bridge_messages
(
message_hash
),
transaction_source_hash
VARCHAR
PRIMARY
KEY
REFERENCES
l1_transaction_deposits
(
source_hash
)
ON
DELETE
CASCADE
,
cross_domain_message_hash
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l1_bridge_messages
(
message_hash
)
ON
DELETE
CASCADE
,
-- Deposit information
from_address
VARCHAR
NOT
NULL
,
...
...
@@ -197,8 +186,8 @@ CREATE TABLE IF NOT EXISTS l1_bridge_deposits (
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
)
);
CREATE
TABLE
IF
NOT
EXISTS
l2_bridge_withdrawals
(
transaction_withdrawal_hash
VARCHAR
PRIMARY
KEY
REFERENCES
l2_transaction_withdrawals
(
withdrawal_hash
),
cross_domain_message_hash
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l2_bridge_messages
(
message_hash
),
transaction_withdrawal_hash
VARCHAR
PRIMARY
KEY
REFERENCES
l2_transaction_withdrawals
(
withdrawal_hash
)
ON
DELETE
CASCADE
,
cross_domain_message_hash
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l2_bridge_messages
(
message_hash
)
ON
DELETE
CASCADE
,
-- Withdrawal information
from_address
VARCHAR
NOT
NULL
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment