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
1 year ago
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
,
...
...
This diff is collapsed.
Click to expand it.
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