Gaze
2befd8b124
feat: add brc20 migrations
2024-05-27 14:33:34 +07:00
Gaze
9febf40e81
Merge remote-tracking branch 'origin/main' into develop
2024-05-27 14:33:00 +07:00
Thanee Charattrakool
709b00ec0e
build: add Docker cache mound for Go modules ( #21 )
...
* build: add cache mount for go modules
* doc(docker): update TZ description
* build: use entrypoint instead cmd exec
* build: add dockerignore
* build: add modules dir to image for migration command
* build: update dockerignore
* doc: fix typo
Co-authored-by: gazenw <163862510+gazenw@users.noreply.github.com >
---------
Co-authored-by: gazenw <163862510+gazenw@users.noreply.github.com >
2024-05-23 17:10:03 +07:00
gazenw
50ae103502
doc: update docker compose example
2024-05-21 14:44:59 +07:00
gazenw
c0242bd555
Update README.md
2024-05-20 18:37:32 +07:00
gazenw
6d4f1d0e87
Release v0.2.0
...
Release v0.2.0
2024-05-16 14:50:03 +07:00
Gaze
b9fac74026
Merge remote-tracking branch 'origin/main' into develop
...
# Conflicts:
# README.md
# cmd/cmd_run.go
2024-05-16 14:37:37 +07:00
Nut Pinyo
62ecd7ea49
fix: runes tag parsing ( #19 )
2024-05-16 13:54:13 +07:00
gazenw
66ea2766a0
refactor: Separated modules initiator ( #17 )
...
* refactor: separated modules initiator
* fix: able to run with empty modules
* doc: update cmd desc
* refactor: sorting code flow
* fix: invalid apionly flow
* refactor: remove unnecessary flags
* feat: add default value for runes config
* refactor: use config instead bind flag to opts struct
* chore: remove unused comment
* refactor(runes): invoke only when in case
* feat: add http server default port
* feat: add logger context
* doc: update readme
---------
Co-authored-by: Gaze <gazenw@users.noreply.github.com >
2024-05-15 16:14:29 +07:00
gazenw
575c144428
fix: invalid pgx version ( #18 )
...
Co-authored-by: Planxnx <planxnx@users.noreply.github.com >
2024-05-15 03:19:10 +07:00
gazenw
f8fbd67bd8
fix: invalid pgx version ( #18 )
...
Co-authored-by: Planxnx <planxnx@users.noreply.github.com >
2024-05-15 03:17:54 +07:00
gazenw
c75b62bdf9
Remove bitcoin indexer ( #16 )
...
* doc: update README.md
* fix: remove bitcoin module
* fix: remove more config
2024-05-14 19:29:43 +07:00
gazenw
cc2649dd64
Update README.md: fix datasource
2024-05-13 14:19:32 +07:00
gazenw
d96370454b
Remove bitcoin module ( #15 )
...
* fix: remove bitcoin module
* fix: remove more config
2024-05-13 14:18:45 +07:00
gazenw
c9a5c6d217
refactor: Generic Indexer ( #14 )
...
* refactor(indexer): init generic indexer
* refactor(btc): updatet datasource
* refactor: remove old indexers pkg
* doc: update comment
---------
Co-authored-by: Gaze <gazenw@users.noreply.github.com >
Co-authored-by: Planxnx <thanee@cleverse.com >
2024-05-08 16:15:33 +07:00
Gaze
86716c1915
feat: auto maxproc only for run command
2024-05-08 14:28:06 +07:00
gazenw
371d1fe008
doc: update README.md
2024-05-08 14:13:21 +07:00
Gaze
c6057d9511
perf(btc): remove unnecessary db index
2024-05-07 21:29:12 +07:00
Gaze
d37be5997b
fix: remove parts of README.md
2024-04-30 10:44:53 +07:00
gazenw
fcdecd4046
feat: v0.1.0 release ( #13 )
...
* fix: don't remove first block
* fix: make etching_terms nullable
* fix: fix panic if empty pkscript
* chore: change testnet starting block
* feat: more logs
* fix: extract tapscript bug
* feat: more logs
* fix: switch pk to block height
* chore: remove redundant log
* fix: repo
* fix: not found error
* fix: golangci-lint
* feat: add etching tx hash to rune entries
* feat: stop main if indexer failed
* fix: check balance after populating current balance
* fix: sql ambiguous column
* feat: add tx hash and out index in tx output
* fix: actually use transactions to write db
* fix: create rune entry states only during flushes
* fix: mint cap reached off by one
* fix: debug log unsafe
* feat: prevent processing of txs before activation height
* feat: add rune number to rune entry
* feat: include new rune entries in event hash and flushing
* refactor(config): separate init and get config func
Co-authored-by: Gaze <dev@gaze.network >
* feat: remove annoying log
Co-authored-by: Gaze <dev@gaze.network >
* feat: mod tidy
Co-authored-by: Gaze <dev@gaze.network >
* refactor: move main to root
Co-authored-by: Gaze <dev@gaze.network >
* feat(cli): create cli commands
Co-authored-by: Gaze <dev@gaze.network >
* refactor: move main logic to command
Co-authored-by: Gaze <dev@gaze.network >
* doc: remove unused desc
Co-authored-by: Gaze <dev@gaze.network >
* refactor: test structure in runestone_test.go
* fix: edict flaws were ignored
* feat: more tests
* refactor(cli): add local flag
Co-authored-by: Gaze <dev@gaze.network >
* feat: set symbol limit to utf8.MaxRune
* refactor(cli): flags for each module
Co-authored-by: Gaze <dev@gaze.network >
* feat(cli): support db selection
Co-authored-by: Gaze <dev@gaze.network >
* fix: remove temp code
Co-authored-by: Gaze <dev@gaze.network >
* fix: get data from cache in processor first, then dg
* feat(cli): add version command
Co-authored-by: Gaze <dev@gaze.network >
* doc(cli): add refactor plan
Co-authored-by: Gaze <dev@gaze.network >
* refactor(cli): rename files
Co-authored-by: Gaze <dev@gaze.network >
* feat: add main.go
Co-authored-by: Gaze <dev@gaze.network >
* feat: more tests
* feat: add overflow err
* feat: finish runestone tests
* refactor(cli): separate protocol config and cli flag
Co-authored-by: Gaze <dev@gaze.network >
* chore(btc): update example config
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): add get block header to datasource interface
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): reorg handling
Co-authored-by: Gaze <dev@gaze.network >
* fix: interface
Co-authored-by: Gaze <dev@gaze.network >
* fix: rename postgres config key
* fix: migrated runes indexer integration to new cli
* fix: commit every block
* feat(btc): add revert data query
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): add revert data to processor
Co-authored-by: Gaze <dev@gaze.network >
* feat: implement public errors
* fix: use errs in api
* refactor: move api and usecase outside of internal
* feat: add custom opcode check for datapush
* fix: break if input utxo is not P2TR
* fix: zero len destination case
* fix: get the rest of transaction data in GetTransaction
* refactor: create subscription utils tools
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): add btc_database from datasource
Co-authored-by: Gaze <dev@gaze.network >
* doc(btc): add note
Co-authored-by: Gaze <dev@gaze.network >
* wip(btc): imple prepare range func
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): add pg queries for datasource
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): update queries
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): implement repo for get blocks
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): update dg
Co-authored-by: Gaze <dev@gaze.network >
* fix(btc): return nil if errors
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): update fetch async for db datasource
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): add get block header from db for reorg handling
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): add todo notes
Co-authored-by: Gaze <dev@gaze.network >
* feat: implement get tx by hash
* fix: rename func
* fix: rename func
* fix: rename func
* fix: fix get transaction by hash
* feat: integrate bitcoin client db to main
* fix: reduce chunk size
* fix: stop main if bitcoin indexer failed
* fix: stop main if runes indexer failed
* fix: move stop() inside goroutine
* chore: add log
* fix: duplicate rune entry number
* feat(btc): add witness utils
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): witness datamodel parsing
Co-authored-by: Gaze <dev@gaze.network >
* fix(btc): invalid table name
Co-authored-by: Gaze <dev@gaze.network >
* fix(btc): remove uniqte index for hash
Co-authored-by: Gaze <dev@gaze.network >
* doc: add todo
Co-authored-by: Gaze <dev@gaze.network >
* feat(logger): remove error verbose
Co-authored-by: Gaze <dev@gaze.network >
* feat: support postgresql db
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): add err notfound
Co-authored-by: Gaze <dev@gaze.network >
* fix: invalid pgx version
Co-authored-by: Gaze <dev@gaze.network >
* fix: invalid indexer flow
Co-authored-by: Gaze <dev@gaze.network >
* feat: refactor runes api
* feat: implement http server
* fix: mount runes api
* fix: error handler
* fix: first empty state error
Co-authored-by: Gaze <dev@gaze.network >
* fix: off by one confirmation
* ci: ignore RollBack error
* fix: change WithPublicMessage to be prefix
* feat: bump cstream version
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): nullable pkscript
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): change rollback style
Co-authored-by: Gaze <dev@gaze.network >
* refactor: move runes out of internal
* feat: rename id field to runeId in rune transaction
* feat(btc): update index
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): add default current block
Co-authored-by: Gaze <dev@gaze.network >
* doc: add note
Co-authored-by: Gaze <dev@gaze.network >
* fix(btc): use int64 to store sequence
Co-authored-by: Gaze <dev@gaze.network >
* fix(btc): upgrade data type for numbers
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): upgrade data type for idx
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): get indexed block impl
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): add common.ZeroHash
Co-authored-by: Gaze <dev@gaze.network >
* feat: add chainparam
* feat: implement get transactions
* fix: wrong condition for non-OP_RETURN output
* feat(btc): add verify indexer states
Co-authored-by: Gaze <dev@gaze.network >
* refactor: sorting code
Co-authored-by: Gaze <dev@gaze.network >
* feat: fix interface
* feat(btc): update chuunk size
Co-authored-by: Gaze <dev@gaze.network >
* feat: add rune_etched column in rune transaction
* fix: missing field in create
* feat: add runeEtched in get transactions
* feat: implement get token info
* feat: add holders count in token info
* feat: implement get holders
* fix: return a new repository when beginning a new tx
* fix: rename type
* feat: add pkscript to outpoint balance
* feat: implement get utxos by address api
* fix: spend outpoint bug
* feat: implement get balances by address batch
* feat: sort balances result by amount
* ci: create Dockerfile
Co-authored-by: Gaze <dev@gaze.network >
* ci: add arg run
Co-authored-by: Gaze <dev@gaze.network >
* perf: add automaxprocs
Co-authored-by: Gaze <dev@gaze.network >
* chore: add performance logging
Co-authored-by: Gaze <dev@gaze.network >
* chore: add performance logger for debyug
Co-authored-by: Gaze <dev@gaze.network >
* fix: empty etched at
* fix: revert data sequentially
* fix: remove unused funcs
* fix: main.go
* feat: add flag --api-only to run cmd
* fix: create index
* fix: don't add zero mint to unallocated
* fix: ignore zero burn amount
* feat(reorg): add reorg detail
Co-authored-by: Gaze <dev@gaze.network >
* fix: wrong index type
* feat: implement reporting client to report runes blocks
* feat: implement report node
* feat(runes): add latest block api
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): use logger warn
Co-authored-by: Gaze <dev@gaze.network >
* fix(btc): txout aren't revert if it's have to revert spent
Co-authored-by: Gaze <dev@gaze.network >
* fix: annoying error when unsubscribe fetcher
Co-authored-by: Gaze <dev@gaze.network >
* refactor(btc): readable code
Co-authored-by: Gaze <dev@gaze.network >
* fix(indexer): fix subscription closed before process when success fetch
Co-authored-by: Gaze <dev@gaze.network >
* fix: remove module enum
* fix: increase max reorg limit
* feat: add starting height for runes mainnet
* fix(btc): fix `with` modified same row twice
Co-authored-by: Gaze <dev@gaze.network >
* fix(runes): handling latest block not found
Co-authored-by: Gaze <dev@gaze.network >
* feat: add decimals in get transactions
* fix: wrong condition
* feat: add more index
* feat: implement get transactions by pkscript
* feat: allow query by rune id too
* feat: more comments
* perf(btc): bitcoin indexer performance optimization (#4 )
* feat(btc): not null to witness
Co-authored-by: Gaze <dev@gaze.network >
* perf(btc): add batch insert txin
Co-authored-by: Gaze <dev@gaze.network >
* perf(btc): batch insert txout
Co-authored-by: Gaze <dev@gaze.network >
* perf(btc): batch insert transaction
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): remove old queries
Co-authored-by: Gaze <dev@gaze.network >
* fix(btc): typo
Co-authored-by: Gaze <dev@gaze.network >
* perf(btc): batch insert blocks (#5 )
Co-authored-by: Gaze <gazenw@users.noreply.github.com >
---------
Co-authored-by: Gaze <gazenw@users.noreply.github.com >
* feat(btc): Duplicate coinbase transaction handling (#7 )
* feat(btc): tx_hash can duplicated in block v1
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): duplicate tx will use same txin/txout from previous tx
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): prevent revert block v1 data
if you really want to revert the data before the block version 2, you should reset the database and reindex the data instead.
Co-authored-by: Gaze <dev@gaze.network >
* doc(btc): update list duplicate tx hash
Co-authored-by: Gaze <dev@gaze.network >
* doc(btc): update docs
Co-authored-by: Gaze <dev@gaze.network >
* fix(btc): use last v1 block instead
Co-authored-by: Gaze <dev@gaze.network >
---------
Co-authored-by: Gaze <gazenw@users.noreply.github.com >
* feat: add ping handler
* fix: type
Co-authored-by: Gaze <dev@gaze.network >
* doc: add refactor note
Co-authored-by: Gaze <dev@gaze.network >
* ci: add golang linter and test runner gh action
* ci: use go-test-action@v0
* ci: annotate test result
* ci: update running flag
* fix: try to fix malformed import path
* feat: add mock test
* ci: remove annotation ci
* ci: add annotate test result
* chore: remove unused
* feat: try testify
* feat: remove test
* ci: add go test on macos, windows and go latest version
* ci: test building
* feat: remove mock code
* ci: add sqlc diff checker action (#10 )
* feat: Graceful shutdown (#8 )
* feat: add shutdown function for indexer
Co-authored-by: Gaze <dev@gaze.network >
* feat: add force shutdown
Co-authored-by: Gaze <dev@gaze.network >
* revert
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): remove unused
Co-authored-by: Gaze <dev@gaze.network >
* style: go fmt
Co-authored-by: Gaze <dev@gaze.network >
* feat: separate context for worker and application
* feat: increase force shutdown timeout
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): update logging
Co-authored-by: Gaze <dev@gaze.network >
* feat(btc): update shutdown function
Co-authored-by: Gaze <dev@gaze.network >
* feat: remove wg for shutdown
Co-authored-by: Gaze <dev@gaze.network >
* feat: refactor shutdown flow
Co-authored-by: Gaze <dev@gaze.network >
* feat: update shutdown flow
Co-authored-by: Gaze <dev@gaze.network >
* feat: update maming
Co-authored-by: Gaze <dev@gaze.network >
* feat: update force shutdown logic
Co-authored-by: Gaze <dev@gaze.network >
---------
Co-authored-by: Gaze <gazenw@users.noreply.github.com >
* feat: check reporting config name
* fix: use db config in bitcoin module for runes datasource
* Add migrate commands (#2 )
* feat: add migrate up
* feat: add down migration
* fix: example
* feat: change description
* fix: hardcode migration source directory
* Update README.md for public release. (#11 )
* feat: initial draft for README.md
* fix: remove some sections
* feat: add block reporting to first description
* fix: reduce redundancy
* feat: update README.md
* Update README.md
* feat: update README.md
* fix: update config.yaml in README
* fix: remove redundant words
* fix: change default datasource
* fix: config.yaml comments
* feat: update README.md
* refactor(logger): format logging (#12 )
* feat(logger): format main logger
* feat(logger): use duration ms for gcp output
* refactor(logger): bitcoin node logger
* refactor(logger): indexer logger
* refactor(logger): fix cmd logger
* refactor(logger): logger in config pacakge
* refactor(logger): set pgx error log level debug
* refactor(logger): btcclient datasource
* refactor: processor name
* refactor(logger): runese logger
* refactor(logger): update logger
* fix(runes): wrong btc db datasource
* refactor(logger): remove unnecessary debug log
* refactor: update logger in indexer
* fix(logger): deadlock in load()
* fix: remove unused
---------
Co-authored-by: Gaze <gazenw@users.noreply.github.com >
* feat(btc): remove unused func
* fix: fix golangci-lint error
* fix(pg): update logger level
* doc: update config example
* feat: go mod tidy
* doc: update readme
* fix: panic cause didn't handle error
* doc: update example config
* doc: update example config in readme
* feat(logger): only log error stacktrace when debug mode is on
* feat(reporting): handling invalid config error
* feat(pg): handling invalid config error
* fix: panic in get_token_info
---------
Co-authored-by: Gaze <gazenw@users.noreply.github.com >
Co-authored-by: Planxnx <thanee@cleverse.com >
Co-authored-by: Thanee Charattrakool <37617738+Planxnx@users.noreply.github.com >
2024-04-29 15:16:10 +07:00
Thanee Charattrakool
5f9cdd5af1
feat: introduce opensource license (GPL v3)
2024-04-27 03:14:24 +07:00
Thanee Charattrakool
ac9132b163
ci: Add Golang Lint and Test CI ( #9 )
...
* ci: add golang linter and test runner gh action
* ci: use go-test-action@v0
* ci: annotate test result
* ci: update running flag
* fix: try to fix malformed import path
* feat: add mock test
* ci: remove annotation ci
* ci: add annotate test result
* chore: remove unused
* feat: try testify
* feat: remove test
* ci: add go test on macos, windows and go latest version
* ci: test building
* feat: remove mock code
2024-04-25 15:27:47 +07:00
Gaze
142f6bda69
doc: add contribution, PR template and guideline doc
...
Co-authored-by: Gaze <dev@gaze.network >
2024-04-25 01:42:18 +07:00
Gaze
50b2000ee7
fix: remove build cache
2024-04-22 16:50:50 +07:00
Gaze
991a0e9137
fix: add latest tag
2024-04-22 16:49:40 +07:00
Gaze
56d759db19
feat: release workflow
2024-04-22 16:40:06 +07:00
Gaze
50062f80e3
feat: draft architecture
2024-04-01 17:21:02 +07:00
Gaze
6c0a88f5e6
feat: init repo
2024-03-29 01:09:47 +07:00