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
bced4fa9
Unverified
Commit
bced4fa9
authored
Mar 03, 2022
by
Conner Fromknecht
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: add LoadTeleportByHash and LoadTeleportsByAddress
These will be used to facilitate HTTP requests to the API server.
parent
e5732d97
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
74 additions
and
2 deletions
+74
-2
tame-schools-switch.md
.changeset/tame-schools-switch.md
+5
-0
db.go
go/teleportr/db/db.go
+69
-2
No files found.
.changeset/tame-schools-switch.md
0 → 100644
View file @
bced4fa9
---
'
@eth-optimism/teleportr'
:
patch
---
Add LoadInTeleport method to database
go/teleportr/db/db.go
View file @
bced4fa9
...
...
@@ -383,6 +383,69 @@ func (d *Database) UpsertDisbursement(
return
nil
}
const
loadTeleportByDepositHashQuery
=
`
SELECT
dep.id, dep.address, dep.amount, dis.success,
dep.txn_hash, dep.block_number, dep.block_timestamp,
dis.txn_hash, dis.block_number, dis.block_timestamp
FROM deposits AS dep
LEFT JOIN disbursements AS dis
ON dep.id = dis.id AND dep.txn_hash = $1
LIMIT 1
`
func
(
d
*
Database
)
LoadTeleportByDepositHash
(
txHash
common
.
Hash
,
)
(
*
Teleport
,
error
)
{
row
:=
d
.
conn
.
QueryRow
(
loadTeleportByDepositHashQuery
,
txHash
.
String
())
teleport
,
err
:=
scanTeleport
(
row
)
if
err
==
sql
.
ErrNoRows
{
return
nil
,
nil
}
else
if
err
!=
nil
{
return
nil
,
err
}
return
&
teleport
,
nil
}
const
loadTeleportsByAddressQuery
=
`
SELECT
dep.id, dep.address, dep.amount, dis.success,
dep.txn_hash, dep.block_number, dep.block_timestamp,
dis.txn_hash, dis.block_number, dis.block_timestamp
FROM deposits AS dep
LEFT JOIN disbursements AS dis
ON dep.id = dis.id AND dep.address = $1
ORDER BY dep.block_timestamp DESC, dep.id DESC
LIMIT 100
`
func
(
d
*
Database
)
LoadTeleportsByAddress
(
addr
common
.
Address
,
)
([]
Teleport
,
error
)
{
rows
,
err
:=
d
.
conn
.
Query
(
loadTeleportsByAddressQuery
,
addr
.
String
())
if
err
!=
nil
{
return
nil
,
err
}
defer
rows
.
Close
()
var
teleports
[]
Teleport
for
rows
.
Next
()
{
teleport
,
err
:=
scanTeleport
(
rows
)
if
err
!=
nil
{
return
nil
,
err
}
teleports
=
append
(
teleports
,
teleport
)
}
if
err
:=
rows
.
Err
();
err
!=
nil
{
return
nil
,
err
}
return
teleports
,
nil
}
const
completedTeleportsQuery
=
`
SELECT
dep.id, dep.address, dep.amount, dis.success,
...
...
@@ -417,7 +480,11 @@ func (d *Database) CompletedTeleports() ([]Teleport, error) {
return
teleports
,
nil
}
func
scanTeleport
(
rows
*
sql
.
Rows
)
(
Teleport
,
error
)
{
type
Scanner
interface
{
Scan
(
...
interface
{})
error
}
func
scanTeleport
(
scanner
Scanner
)
(
Teleport
,
error
)
{
var
teleport
Teleport
var
addressStr
string
var
amountStr
string
...
...
@@ -426,7 +493,7 @@ func scanTeleport(rows *sql.Rows) (Teleport, error) {
var
disBlockNumber
*
uint64
var
disBlockTimestamp
*
time
.
Time
var
success
*
bool
err
:=
rows
.
Scan
(
err
:=
scanner
.
Scan
(
&
teleport
.
ID
,
&
addressStr
,
&
amountStr
,
...
...
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