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
Hide 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
...
@@ -8,10 +8,10 @@ CREATE DOMAIN UINT256 AS NUMERIC
CREATE
TABLE
IF
NOT
EXISTS
l1_block_headers
(
CREATE
TABLE
IF
NOT
EXISTS
l1_block_headers
(
-- Searchable fields
-- Searchable fields
hash
VARCHAR
NOT
NULL
PRIMARY
KEY
,
hash
VARCHAR
PRIMARY
KEY
,
parent_hash
VARCHAR
NOT
NULL
,
parent_hash
VARCHAR
NOT
NULL
UNIQUE
,
number
UINT256
NOT
NULL
,
number
UINT256
NOT
NULL
UNIQUE
,
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
),
timestamp
INTEGER
NOT
NULL
UNIQUE
CHECK
(
timestamp
>
0
),
-- Raw Data
-- Raw Data
rlp_bytes
VARCHAR
NOT
NULL
rlp_bytes
VARCHAR
NOT
NULL
...
@@ -19,10 +19,10 @@ CREATE TABLE IF NOT EXISTS l1_block_headers (
...
@@ -19,10 +19,10 @@ CREATE TABLE IF NOT EXISTS l1_block_headers (
CREATE
TABLE
IF
NOT
EXISTS
l2_block_headers
(
CREATE
TABLE
IF
NOT
EXISTS
l2_block_headers
(
-- Searchable fields
-- Searchable fields
hash
VARCHAR
NOT
NULL
PRIMARY
KEY
,
hash
VARCHAR
PRIMARY
KEY
,
parent_hash
VARCHAR
NOT
NULL
,
parent_hash
VARCHAR
NOT
NULL
UNIQUE
,
number
UINT256
NOT
NULL
,
number
UINT256
NOT
NULL
UNIQUE
,
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
),
timestamp
INTEGER
NOT
NULL
UNIQUE
CHECK
(
timestamp
>
0
),
-- Raw Data
-- Raw Data
rlp_bytes
VARCHAR
NOT
NULL
rlp_bytes
VARCHAR
NOT
NULL
...
@@ -34,8 +34,8 @@ CREATE TABLE IF NOT EXISTS l2_block_headers (
...
@@ -34,8 +34,8 @@ CREATE TABLE IF NOT EXISTS l2_block_headers (
CREATE
TABLE
IF
NOT
EXISTS
l1_contract_events
(
CREATE
TABLE
IF
NOT
EXISTS
l1_contract_events
(
-- Searchable fields
-- Searchable fields
guid
VARCHAR
NOT
NULL
PRIMARY
KEY
,
guid
VARCHAR
PRIMARY
KEY
,
block_hash
VARCHAR
NOT
NULL
REFERENCES
l1_block_headers
(
hash
)
,
block_hash
VARCHAR
NOT
NULL
REFERENCES
l1_block_headers
(
hash
)
ON
DELETE
CASCADE
,
contract_address
VARCHAR
NOT
NULL
,
contract_address
VARCHAR
NOT
NULL
,
transaction_hash
VARCHAR
NOT
NULL
,
transaction_hash
VARCHAR
NOT
NULL
,
log_index
INTEGER
NOT
NULL
,
log_index
INTEGER
NOT
NULL
,
...
@@ -48,8 +48,8 @@ CREATE TABLE IF NOT EXISTS l1_contract_events (
...
@@ -48,8 +48,8 @@ CREATE TABLE IF NOT EXISTS l1_contract_events (
CREATE
TABLE
IF
NOT
EXISTS
l2_contract_events
(
CREATE
TABLE
IF
NOT
EXISTS
l2_contract_events
(
-- Searchable fields
-- Searchable fields
guid
VARCHAR
NOT
NULL
PRIMARY
KEY
,
guid
VARCHAR
PRIMARY
KEY
,
block_hash
VARCHAR
NOT
NULL
REFERENCES
l2_block_headers
(
hash
)
,
block_hash
VARCHAR
NOT
NULL
REFERENCES
l2_block_headers
(
hash
)
ON
DELETE
CASCADE
,
contract_address
VARCHAR
NOT
NULL
,
contract_address
VARCHAR
NOT
NULL
,
transaction_hash
VARCHAR
NOT
NULL
,
transaction_hash
VARCHAR
NOT
NULL
,
log_index
INTEGER
NOT
NULL
,
log_index
INTEGER
NOT
NULL
,
...
@@ -63,58 +63,52 @@ CREATE TABLE IF NOT EXISTS l2_contract_events (
...
@@ -63,58 +63,52 @@ CREATE TABLE IF NOT EXISTS l2_contract_events (
-- Tables that index finalization markers for L2 blocks.
-- Tables that index finalization markers for L2 blocks.
CREATE
TABLE
IF
NOT
EXISTS
legacy_state_batches
(
CREATE
TABLE
IF
NOT
EXISTS
legacy_state_batches
(
index
INTEGER
NOT
NULL
PRIMARY
KEY
,
index
INTEGER
PRIMARY
KEY
,
root
VARCHAR
NOT
NULL
,
root
VARCHAR
NOT
NULL
UNIQUE
,
size
INTEGER
NOT
NULL
,
size
INTEGER
NOT
NULL
,
prev_total
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
(
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
,
output_proposed_guid
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l1_contract_events
(
guid
)
ON
DELETE
CASCADE
l2_block_number
UINT256
NOT
NULL
,
l1_contract_event_guid
VARCHAR
REFERENCES
l1_contract_events
(
guid
)
);
);
/**
/**
* BRIDGING DATA
* BRIDGING DATA
*/
*/
/**
-- Bridged L1/L2 Tokens
* TOKEN DATA
*/
-- L1 Token table
CREATE
TABLE
IF
NOT
EXISTS
l1_tokens
(
CREATE
TABLE
IF
NOT
EXISTS
l1_tokens
(
address
VARCHAR
PRIMARY
KEY
,
address
VARCHAR
PRIMARY
KEY
,
bridge_address
VARCHAR
NOT
NULL
,
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
name
VARCHAR
NOT
NULL
,
CREATE
TABLE
IF
NOT
EXISTS
l2_tokens
(
symbol
VARCHAR
NOT
NULL
,
address
VARCHAR
PRIMARY
KEY
,
decimals
INTEGER
NOT
NULL
CHECK
(
decimals
>=
0
AND
decimals
<=
18
)
bridge_address
VARCHAR
NOT
NULL
,
l1_token_address
VARCHAR
REFERENCES
l1_tokens
(
address
),
name
VARCHAR
NOT
NULL
,
symbol
VARCHAR
NOT
NULL
,
decimals
INTEGER
NOT
NULL
CHECK
(
decimals
>=
0
AND
decimals
<=
18
)
);
);
CREATE
TABLE
IF
NOT
EXISTS
l2_tokens
(
address
VARCHAR
PRIMARY
KEY
,
bridge_address
VARCHAR
NOT
NULL
,
-- 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
-- OptimismPortal/L2ToL1MessagePasser
CREATE
TABLE
IF
NOT
EXISTS
l1_transaction_deposits
(
CREATE
TABLE
IF
NOT
EXISTS
l1_transaction_deposits
(
source_hash
VARCHAR
NOT
NULL
PRIMARY
KEY
,
source_hash
VARCHAR
PRIMARY
KEY
,
l2_transaction_hash
VARCHAR
NOT
NULL
,
l2_transaction_hash
VARCHAR
NOT
NULL
UNIQUE
,
initiated_l1_event_guid
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l1_contract_events
(
guid
)
ON
DELETE
CASCADE
,
initiated_l1_event_guid
VARCHAR
NOT
NULL
REFERENCES
l1_contract_events
(
guid
),
-- transaction data
-- transaction data
from_address
VARCHAR
NOT
NULL
,
from_address
VARCHAR
NOT
NULL
,
...
@@ -125,18 +119,15 @@ CREATE TABLE IF NOT EXISTS l1_transaction_deposits (
...
@@ -125,18 +119,15 @@ CREATE TABLE IF NOT EXISTS l1_transaction_deposits (
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
)
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
)
);
);
CREATE
TABLE
IF
NOT
EXISTS
l2_transaction_withdrawals
(
CREATE
TABLE
IF
NOT
EXISTS
l2_transaction_withdrawals
(
withdrawal_hash
VARCHAR
NOT
NULL
PRIMARY
KEY
,
withdrawal_hash
VARCHAR
PRIMARY
KEY
,
nonce
UINT256
NOT
NULL
UNIQUE
,
initiated_l2_event_guid
VARCHAR
NOT
NULL
REFERENCES
l2_contract_events
(
guid
)
,
initiated_l2_event_guid
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l2_contract_events
(
guid
)
ON
DELETE
CASCADE
,
-- Multistep (bedrock) process of a withdrawal
-- Multistep (bedrock) process of a withdrawal
proven_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
REFERENCES
l1_contract_events
(
guid
)
,
finalized_l1_event_guid
VARCHAR
UNIQUE
REFERENCES
l1_contract_events
(
guid
)
ON
DELETE
CASCADE
,
succeeded
BOOLEAN
,
succeeded
BOOLEAN
,
-- L2ToL1MessagePasser specific
nonce
UINT256
UNIQUE
,
-- transaction data
-- transaction data
from_address
VARCHAR
NOT
NULL
,
from_address
VARCHAR
NOT
NULL
,
to_address
VARCHAR
NOT
NULL
,
to_address
VARCHAR
NOT
NULL
,
...
@@ -148,13 +139,12 @@ CREATE TABLE IF NOT EXISTS l2_transaction_withdrawals (
...
@@ -148,13 +139,12 @@ CREATE TABLE IF NOT EXISTS l2_transaction_withdrawals (
-- CrossDomainMessenger
-- CrossDomainMessenger
CREATE
TABLE
IF
NOT
EXISTS
l1_bridge_messages
(
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
,
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
)
ON
DELETE
CASCADE
,
relayed_message_event_guid
VARCHAR
UNIQUE
REFERENCES
l2_contract_events
(
guid
)
ON
DELETE
CASCADE
,
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
-- sent message
from_address
VARCHAR
NOT
NULL
,
from_address
VARCHAR
NOT
NULL
,
...
@@ -165,13 +155,12 @@ CREATE TABLE IF NOT EXISTS l1_bridge_messages(
...
@@ -165,13 +155,12 @@ CREATE TABLE IF NOT EXISTS l1_bridge_messages(
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
)
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
)
);
);
CREATE
TABLE
IF
NOT
EXISTS
l2_bridge_messages
(
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
,
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
)
ON
DELETE
CASCADE
,
relayed_message_event_guid
VARCHAR
UNIQUE
REFERENCES
l1_contract_events
(
guid
)
ON
DELETE
CASCADE
,
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
-- sent message
from_address
VARCHAR
NOT
NULL
,
from_address
VARCHAR
NOT
NULL
,
...
@@ -184,28 +173,28 @@ CREATE TABLE IF NOT EXISTS l2_bridge_messages(
...
@@ -184,28 +173,28 @@ CREATE TABLE IF NOT EXISTS l2_bridge_messages(
-- StandardBridge
-- StandardBridge
CREATE
TABLE
IF
NOT
EXISTS
l1_bridge_deposits
(
CREATE
TABLE
IF
NOT
EXISTS
l1_bridge_deposits
(
transaction_source_hash
VARCHAR
PRIMARY
KEY
REFERENCES
l1_transaction_deposits
(
source_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
),
cross_domain_message_hash
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l1_bridge_messages
(
message_hash
)
ON
DELETE
CASCADE
,
-- Deposit information
-- Deposit information
from_address
VARCHAR
NOT
NULL
,
from_address
VARCHAR
NOT
NULL
,
to_address
VARCHAR
NOT
NULL
,
to_address
VARCHAR
NOT
NULL
,
local_token_address
VARCHAR
NOT
NULL
,
-- REFERENCES l1_tokens(address), uncomment me in future pr
local_token_address
VARCHAR
NOT
NULL
,
-- REFERENCES l1_tokens(address), uncomment me in future pr
remote_token_address
VARCHAR
NOT
NULL
,
-- REFERENCES l2_tokens(address), uncomment me in future pr
remote_token_address
VARCHAR
NOT
NULL
,
-- REFERENCES l2_tokens(address), uncomment me in future pr
amount
UINT256
NOT
NULL
,
amount
UINT256
NOT
NULL
,
data
VARCHAR
NOT
NULL
,
data
VARCHAR
NOT
NULL
,
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
)
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
)
);
);
CREATE
TABLE
IF
NOT
EXISTS
l2_bridge_withdrawals
(
CREATE
TABLE
IF
NOT
EXISTS
l2_bridge_withdrawals
(
transaction_withdrawal_hash
VARCHAR
PRIMARY
KEY
REFERENCES
l2_transaction_withdrawals
(
withdrawal_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
),
cross_domain_message_hash
VARCHAR
NOT
NULL
UNIQUE
REFERENCES
l2_bridge_messages
(
message_hash
)
ON
DELETE
CASCADE
,
-- Withdrawal information
-- Withdrawal information
from_address
VARCHAR
NOT
NULL
,
from_address
VARCHAR
NOT
NULL
,
to_address
VARCHAR
NOT
NULL
,
to_address
VARCHAR
NOT
NULL
,
local_token_address
VARCHAR
NOT
NULL
,
-- REFERENCES l2_tokens(address), uncomment me in future pr
local_token_address
VARCHAR
NOT
NULL
,
-- REFERENCES l2_tokens(address), uncomment me in future pr
remote_token_address
VARCHAR
NOT
NULL
,
-- REFERENCES l1_tokens(address), uncomment me in future pr
remote_token_address
VARCHAR
NOT
NULL
,
-- REFERENCES l1_tokens(address), uncomment me in future pr
amount
UINT256
NOT
NULL
,
amount
UINT256
NOT
NULL
,
data
VARCHAR
NOT
NULL
,
data
VARCHAR
NOT
NULL
,
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
)
timestamp
INTEGER
NOT
NULL
CHECK
(
timestamp
>
0
)
);
);
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