From 34128d8e98d6f383005f583115728d2bfa702f22 Mon Sep 17 00:00:00 2001 From: Snider Date: Sun, 22 Mar 2026 01:49:26 +0000 Subject: [PATCH] refactor: migrate module path to dappco.re/go/core/blockchain Update go.mod module line, all require/replace directives, and every .go import path from forge.lthn.ai/core/go-blockchain to dappco.re/go/core/blockchain. Add replace directives to bridge dappco.re paths to existing forge.lthn.ai registry during migration. Update CLAUDE.md, README, and docs to reflect the new module path. Co-Authored-By: Virgil --- .gitignore | 4 +- CLAUDE.md | 8 ++-- README.md | 10 ++--- chain/chain.go | 6 +-- chain/chain_test.go | 6 +-- chain/difficulty.go | 4 +- chain/difficulty_test.go | 6 +-- chain/history.go | 2 +- chain/history_test.go | 2 +- chain/index.go | 6 +-- chain/integration_test.go | 12 ++--- chain/levinconn.go | 6 +-- chain/meta.go | 2 +- chain/p2psync.go | 2 +- chain/p2psync_test.go | 4 +- chain/ring.go | 6 +-- chain/ring_test.go | 4 +- chain/store.go | 8 ++-- chain/sync.go | 12 ++--- chain/sync_test.go | 10 ++--- chain/validate.go | 8 ++-- chain/validate_test.go | 4 +- cmd/core-chain/main.go | 4 +- cmd_explorer.go | 10 ++--- cmd_sync.go | 10 ++--- commands.go | 6 +-- consensus/block.go | 6 +-- consensus/block_test.go | 4 +- consensus/fee.go | 4 +- consensus/fee_test.go | 2 +- consensus/freeze_test.go | 4 +- consensus/integration_test.go | 8 ++-- consensus/pow.go | 4 +- consensus/pow_test.go | 2 +- consensus/reward.go | 4 +- consensus/reward_test.go | 2 +- consensus/tx.go | 6 +-- consensus/tx_test.go | 4 +- consensus/tx_version_test.go | 4 +- consensus/v2sig.go | 6 +-- consensus/v2sig_test.go | 6 +-- consensus/verify.go | 10 ++--- consensus/verify_crypto_test.go | 8 ++-- consensus/verify_test.go | 4 +- crypto/clsag.go | 2 +- crypto/crypto_test.go | 2 +- crypto/keygen.go | 2 +- crypto/keyimage.go | 2 +- crypto/pow.go | 2 +- crypto/signature.go | 2 +- difficulty/difficulty_test.go | 2 +- docs/development.md | 2 +- docs/index.md | 10 ++--- docs/rpc.md | 2 +- .../2026-03-16-hf5-confidential-assets.md | 8 ++-- .../2026-03-16-hf6-block-time-halving.md | 12 ++--- ...2026-03-16-hf1-transaction-types-design.md | 2 +- .../2026-03-16-hf3-block-version-design.md | 2 +- ...26-03-16-hf5-confidential-assets-design.md | 2 +- ...026-03-16-hf6-block-time-halving-design.md | 2 +- go.mod | 34 ++++++++++---- go.sum | 44 ++++++++++++------- mining/hash.go | 8 ++-- mining/hash_test.go | 4 +- mining/integration_test.go | 4 +- mining/miner.go | 12 ++--- mining/miner_test.go | 6 +-- p2p/commands.go | 2 +- p2p/handshake.go | 2 +- p2p/handshake_test.go | 4 +- p2p/integration_test.go | 4 +- p2p/ping.go | 2 +- p2p/ping_test.go | 2 +- p2p/relay.go | 2 +- p2p/relay_test.go | 2 +- p2p/sync.go | 4 +- p2p/sync_test.go | 4 +- p2p/timedsync.go | 2 +- rpc/blocks.go | 2 +- rpc/client.go | 2 +- rpc/info.go | 2 +- rpc/mining.go | 2 +- rpc/transactions.go | 2 +- rpc/wallet.go | 2 +- sync_service.go | 10 ++--- tui/explorer_model.go | 6 +-- tui/keyhints_model.go | 2 +- tui/messages.go | 2 +- tui/node.go | 2 +- tui/node_test.go | 8 ++-- tui/status_model.go | 2 +- types/address.go | 4 +- types/address_test.go | 2 +- types/types.go | 2 +- wallet/account.go | 8 ++-- wallet/builder.go | 10 ++--- wallet/builder_test.go | 6 +-- wallet/extra.go | 6 +-- wallet/extra_test.go | 4 +- wallet/integration_test.go | 6 +-- wallet/mnemonic.go | 2 +- wallet/ring.go | 6 +-- wallet/ring_test.go | 4 +- wallet/scanner.go | 4 +- wallet/scanner_test.go | 6 +-- wallet/signer.go | 6 +-- wallet/signer_test.go | 4 +- wallet/transfer.go | 8 ++-- wallet/transfer_test.go | 4 +- wallet/wallet.go | 12 ++--- wallet/wallet_test.go | 10 ++--- wire/block.go | 2 +- wire/block_test.go | 2 +- wire/decoder.go | 2 +- wire/hash.go | 2 +- wire/hash_test.go | 2 +- wire/transaction.go | 4 +- wire/transaction_test.go | 2 +- wire/transaction_v2_test.go | 2 +- 119 files changed, 328 insertions(+), 296 deletions(-) diff --git a/.gitignore b/.gitignore index 0820798..6abd6aa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ crypto/build/ -.core/ .idea/ +.vscode/ +*.log +.core/ diff --git a/CLAUDE.md b/CLAUDE.md index 8a6cb68..8d8a355 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co Go implementation of the Lethean blockchain protocol (CryptoNote/Zano-fork) with a CGo crypto bridge. -Module: `forge.lthn.ai/core/go-blockchain` +Module: `dappco.re/go/core/blockchain` Licence: EUPL-1.2 (every source file carries the copyright header) ## Build @@ -42,7 +42,7 @@ go test -tags integration ./... # integration tests (need C++ te - Co-Author trailer: `Co-Authored-By: Charon ` - Error strings: `package: description` format (e.g. `types: invalid hex for hash`) - Error wrapping: `fmt.Errorf("package: description: %w", err)` -- Import order: stdlib, then `golang.org/x`, then `forge.lthn.ai`, blank lines between groups +- Import order: stdlib, then `golang.org/x`, then `dappco.re`, blank lines between groups - No emojis in code or comments ## Test Conventions @@ -77,9 +77,9 @@ types / config ← leaf packages (stdlib only, no internal deps) - Block hash includes a varint length prefix: `Keccak256(varint(len) || block_hashing_blob)`. - Two P2P varint formats exist: CryptoNote LEB128 (`wire/`) and portable storage 2-bit size mark (`go-p2p/node/levin/`). -**Binary:** `cmd/core-chain/` — cobra CLI via `forge.lthn.ai/core/cli`. Subcommands: `chain sync` (P2P block sync) and `chain explorer` (TUI dashboard). +**Binary:** `cmd/core-chain/` — cobra CLI via `dappco.re/go/core/cli`. Subcommands: `chain sync` (P2P block sync) and `chain explorer` (TUI dashboard). -**Local replace directives:** `go.mod` uses local `replace` for sibling `forge.lthn.ai/core/*` modules. +**Local replace directives:** `go.mod` uses `replace` to map `dappco.re/go/core/*` paths to `forge.lthn.ai/core/*` modules during migration. ## Docs diff --git a/README.md b/README.md index 035cc75..d815117 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Pure Go implementation of the Lethean blockchain protocol. Provides chain configuration, core cryptographic data types, CryptoNote wire serialisation, and LWMA difficulty adjustment for the Lethean CryptoNote/Zano-fork chain. Follows ADR-001: protocol logic in Go, cryptographic primitives deferred to a C++ bridge in later phases. Lineage: CryptoNote to IntenseCoin (2017) to Lethean to Zano rebase. -**Module**: `forge.lthn.ai/core/go-blockchain` +**Module**: `dappco.re/go/core/blockchain` **Licence**: EUPL-1.2 **Language**: Go 1.25 @@ -10,10 +10,10 @@ Pure Go implementation of the Lethean blockchain protocol. Provides chain config ```go import ( - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" - "forge.lthn.ai/core/go-blockchain/difficulty" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" + "dappco.re/go/core/blockchain/difficulty" ) // Query the active hardfork version at a given block height diff --git a/chain/chain.go b/chain/chain.go index 88f91f2..ddf0d69 100644 --- a/chain/chain.go +++ b/chain/chain.go @@ -8,9 +8,9 @@ package chain import ( - "forge.lthn.ai/core/go-blockchain/types" - coreerr "forge.lthn.ai/core/go-log" - store "forge.lthn.ai/core/go-store" + "dappco.re/go/core/blockchain/types" + coreerr "dappco.re/go/core/log" + store "dappco.re/go/core/store" ) // Chain manages blockchain storage and indexing. diff --git a/chain/chain_test.go b/chain/chain_test.go index b6e81c3..21b9758 100644 --- a/chain/chain_test.go +++ b/chain/chain_test.go @@ -8,9 +8,9 @@ package chain import ( "testing" - store "forge.lthn.ai/core/go-store" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + store "dappco.re/go/core/store" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) func newTestChain(t *testing.T) *Chain { diff --git a/chain/difficulty.go b/chain/difficulty.go index 3679e35..1eca220 100644 --- a/chain/difficulty.go +++ b/chain/difficulty.go @@ -8,8 +8,8 @@ package chain import ( "math/big" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/difficulty" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/difficulty" ) // nextDifficultyWith computes the expected difficulty for the block at the diff --git a/chain/difficulty_test.go b/chain/difficulty_test.go index db9a3dd..50af2e9 100644 --- a/chain/difficulty_test.go +++ b/chain/difficulty_test.go @@ -8,9 +8,9 @@ package chain import ( "testing" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" - store "forge.lthn.ai/core/go-store" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" + store "dappco.re/go/core/store" "github.com/stretchr/testify/require" ) diff --git a/chain/history.go b/chain/history.go index 000fd26..a4a7e0f 100644 --- a/chain/history.go +++ b/chain/history.go @@ -5,7 +5,7 @@ package chain -import "forge.lthn.ai/core/go-blockchain/types" +import "dappco.re/go/core/blockchain/types" // SparseChainHistory builds the exponentially-spaced block hash list used by // NOTIFY_REQUEST_CHAIN. Matches the C++ get_short_chain_history() algorithm: diff --git a/chain/history_test.go b/chain/history_test.go index 1015c84..3ba11ef 100644 --- a/chain/history_test.go +++ b/chain/history_test.go @@ -8,7 +8,7 @@ package chain import ( "testing" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/types" "github.com/stretchr/testify/require" ) diff --git a/chain/index.go b/chain/index.go index 7ad6a2a..b35495d 100644 --- a/chain/index.go +++ b/chain/index.go @@ -11,10 +11,10 @@ import ( "fmt" "strconv" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/types" - store "forge.lthn.ai/core/go-store" + "dappco.re/go/core/blockchain/types" + store "dappco.re/go/core/store" ) // MarkSpent records a key image as spent at the given block height. diff --git a/chain/integration_test.go b/chain/integration_test.go index d9c4046..2db12ac 100644 --- a/chain/integration_test.go +++ b/chain/integration_test.go @@ -18,12 +18,12 @@ import ( "github.com/stretchr/testify/require" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/p2p" - "forge.lthn.ai/core/go-blockchain/rpc" - "forge.lthn.ai/core/go-blockchain/types" - levin "forge.lthn.ai/core/go-p2p/node/levin" - store "forge.lthn.ai/core/go-store" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/p2p" + "dappco.re/go/core/blockchain/rpc" + "dappco.re/go/core/blockchain/types" + levin "dappco.re/go/core/p2p/node/levin" + store "dappco.re/go/core/store" ) const testnetRPCAddr = "http://localhost:46941" diff --git a/chain/levinconn.go b/chain/levinconn.go index 749c352..80429e1 100644 --- a/chain/levinconn.go +++ b/chain/levinconn.go @@ -8,10 +8,10 @@ package chain import ( "log" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/p2p" - levinpkg "forge.lthn.ai/core/go-p2p/node/levin" + "dappco.re/go/core/blockchain/p2p" + levinpkg "dappco.re/go/core/p2p/node/levin" ) // LevinP2PConn adapts a Levin connection to the P2PConnection interface. diff --git a/chain/meta.go b/chain/meta.go index 14326d8..e905f53 100644 --- a/chain/meta.go +++ b/chain/meta.go @@ -5,7 +5,7 @@ package chain -import "forge.lthn.ai/core/go-blockchain/types" +import "dappco.re/go/core/blockchain/types" // BlockMeta holds metadata stored alongside each block. type BlockMeta struct { diff --git a/chain/p2psync.go b/chain/p2psync.go index 6a3cad4..5bdfbfe 100644 --- a/chain/p2psync.go +++ b/chain/p2psync.go @@ -10,7 +10,7 @@ import ( "fmt" "log" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // P2PConnection abstracts the P2P communication needed for block sync. diff --git a/chain/p2psync_test.go b/chain/p2psync_test.go index e16a053..a2b341d 100644 --- a/chain/p2psync_test.go +++ b/chain/p2psync_test.go @@ -10,8 +10,8 @@ import ( "fmt" "testing" - store "forge.lthn.ai/core/go-store" - "forge.lthn.ai/core/go-blockchain/config" + store "dappco.re/go/core/store" + "dappco.re/go/core/blockchain/config" "github.com/stretchr/testify/require" ) diff --git a/chain/ring.go b/chain/ring.go index 06645b0..ba52d31 100644 --- a/chain/ring.go +++ b/chain/ring.go @@ -8,10 +8,10 @@ package chain import ( "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/consensus" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/consensus" + "dappco.re/go/core/blockchain/types" ) // GetRingOutputs fetches the public keys for the given global output indices diff --git a/chain/ring_test.go b/chain/ring_test.go index e9238a6..4f7fd23 100644 --- a/chain/ring_test.go +++ b/chain/ring_test.go @@ -8,8 +8,8 @@ package chain import ( "testing" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) func TestGetRingOutputs_Good(t *testing.T) { diff --git a/chain/store.go b/chain/store.go index 53fe068..1f1fcb8 100644 --- a/chain/store.go +++ b/chain/store.go @@ -13,11 +13,11 @@ import ( "fmt" "strconv" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" - store "forge.lthn.ai/core/go-store" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" + store "dappco.re/go/core/store" ) // Storage group constants matching the design schema. diff --git a/chain/sync.go b/chain/sync.go index b4a50ff..27d6154 100644 --- a/chain/sync.go +++ b/chain/sync.go @@ -15,13 +15,13 @@ import ( "regexp" "strconv" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/consensus" - "forge.lthn.ai/core/go-blockchain/rpc" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/consensus" + "dappco.re/go/core/blockchain/rpc" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) const syncBatchSize = 10 diff --git a/chain/sync_test.go b/chain/sync_test.go index 96197e4..645cedd 100644 --- a/chain/sync_test.go +++ b/chain/sync_test.go @@ -16,12 +16,12 @@ import ( "github.com/stretchr/testify/assert" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/rpc" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/rpc" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" - store "forge.lthn.ai/core/go-store" + store "dappco.re/go/core/store" ) // makeGenesisBlockBlob creates a minimal genesis block and returns its hex blob and hash. diff --git a/chain/validate.go b/chain/validate.go index 83ef21e..50c5322 100644 --- a/chain/validate.go +++ b/chain/validate.go @@ -9,11 +9,11 @@ import ( "bytes" "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) // ValidateHeader checks a block header before storage. diff --git a/chain/validate_test.go b/chain/validate_test.go index 6c96ab5..d7230b8 100644 --- a/chain/validate_test.go +++ b/chain/validate_test.go @@ -8,8 +8,8 @@ package chain import ( "testing" - store "forge.lthn.ai/core/go-store" - "forge.lthn.ai/core/go-blockchain/types" + store "dappco.re/go/core/store" + "dappco.re/go/core/blockchain/types" ) func TestValidateHeader_Good_Genesis(t *testing.T) { diff --git a/cmd/core-chain/main.go b/cmd/core-chain/main.go index 7b09209..2563f77 100644 --- a/cmd/core-chain/main.go +++ b/cmd/core-chain/main.go @@ -6,8 +6,8 @@ package main import ( - cli "forge.lthn.ai/core/cli/pkg/cli" - blockchain "forge.lthn.ai/core/go-blockchain" + cli "dappco.re/go/core/cli/pkg/cli" + blockchain "dappco.re/go/core/blockchain" ) func main() { diff --git a/cmd_explorer.go b/cmd_explorer.go index dd1c153..c2dbe7a 100644 --- a/cmd_explorer.go +++ b/cmd_explorer.go @@ -12,13 +12,13 @@ import ( "path/filepath" "sync" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - cli "forge.lthn.ai/core/cli/pkg/cli" - store "forge.lthn.ai/core/go-store" + cli "dappco.re/go/core/cli/pkg/cli" + store "dappco.re/go/core/store" - "forge.lthn.ai/core/go-blockchain/chain" - "forge.lthn.ai/core/go-blockchain/tui" + "dappco.re/go/core/blockchain/chain" + "dappco.re/go/core/blockchain/tui" "github.com/spf13/cobra" ) diff --git a/cmd_sync.go b/cmd_sync.go index df5195f..f184999 100644 --- a/cmd_sync.go +++ b/cmd_sync.go @@ -15,11 +15,11 @@ import ( "sync" "syscall" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/chain" - "forge.lthn.ai/core/go-process" - store "forge.lthn.ai/core/go-store" + "dappco.re/go/core/blockchain/chain" + "dappco.re/go/core/process" + store "dappco.re/go/core/store" "github.com/spf13/cobra" ) @@ -85,7 +85,7 @@ func runSyncDaemon(dataDir, seed string, testnet bool) error { PIDFile: pidFile, Registry: process.DefaultRegistry(), RegistryEntry: process.DaemonEntry{ - Code: "forge.lthn.ai/core/go-blockchain", + Code: "dappco.re/go/core/blockchain", Daemon: "sync", }, }) diff --git a/commands.go b/commands.go index f3274f6..c7a0f4b 100644 --- a/commands.go +++ b/commands.go @@ -9,10 +9,10 @@ import ( "os" "path/filepath" - coreio "forge.lthn.ai/core/go-io" - coreerr "forge.lthn.ai/core/go-log" + coreio "dappco.re/go/core/io" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/config" + "dappco.re/go/core/blockchain/config" "github.com/spf13/cobra" ) diff --git a/consensus/block.go b/consensus/block.go index dfaf16b..f34b4f8 100644 --- a/consensus/block.go +++ b/consensus/block.go @@ -9,10 +9,10 @@ import ( "fmt" "slices" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" ) // IsPoS returns true if the block flags indicate a Proof-of-Stake block. diff --git a/consensus/block_test.go b/consensus/block_test.go index 90ae217..0c6f781 100644 --- a/consensus/block_test.go +++ b/consensus/block_test.go @@ -6,8 +6,8 @@ import ( "testing" "time" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/consensus/fee.go b/consensus/fee.go index 8d561cb..b6f5f7d 100644 --- a/consensus/fee.go +++ b/consensus/fee.go @@ -9,9 +9,9 @@ import ( "fmt" "math" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/types" ) // TxFee calculates the transaction fee for pre-HF4 (v0/v1) transactions. diff --git a/consensus/fee_test.go b/consensus/fee_test.go index 05a4ad2..f160e7b 100644 --- a/consensus/fee_test.go +++ b/consensus/fee_test.go @@ -10,7 +10,7 @@ package consensus import ( "testing" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/consensus/freeze_test.go b/consensus/freeze_test.go index 2556068..243cb75 100644 --- a/consensus/freeze_test.go +++ b/consensus/freeze_test.go @@ -10,8 +10,8 @@ package consensus import ( "testing" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" ) func TestIsPreHardforkFreeze_Good(t *testing.T) { diff --git a/consensus/integration_test.go b/consensus/integration_test.go index 713a0b6..a661b25 100644 --- a/consensus/integration_test.go +++ b/consensus/integration_test.go @@ -10,11 +10,11 @@ package consensus import ( "testing" - store "forge.lthn.ai/core/go-store" + store "dappco.re/go/core/store" - "forge.lthn.ai/core/go-blockchain/chain" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/rpc" + "dappco.re/go/core/blockchain/chain" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/rpc" ) func TestConsensusIntegration(t *testing.T) { diff --git a/consensus/pow.go b/consensus/pow.go index 16586fd..2be459a 100644 --- a/consensus/pow.go +++ b/consensus/pow.go @@ -9,8 +9,8 @@ import ( "encoding/binary" "math/big" - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/types" ) // maxTarget is 2^256, used for difficulty comparison. diff --git a/consensus/pow_test.go b/consensus/pow_test.go index dc361f6..2743549 100644 --- a/consensus/pow_test.go +++ b/consensus/pow_test.go @@ -5,7 +5,7 @@ package consensus import ( "testing" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/types" "github.com/stretchr/testify/assert" ) diff --git a/consensus/reward.go b/consensus/reward.go index 560dd15..f76e7b0 100644 --- a/consensus/reward.go +++ b/consensus/reward.go @@ -9,9 +9,9 @@ import ( "fmt" "math/bits" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/config" + "dappco.re/go/core/blockchain/config" ) // BaseReward returns the base block reward at the given height. diff --git a/consensus/reward_test.go b/consensus/reward_test.go index f1e8044..3fb5bf1 100644 --- a/consensus/reward_test.go +++ b/consensus/reward_test.go @@ -5,7 +5,7 @@ package consensus import ( "testing" - "forge.lthn.ai/core/go-blockchain/config" + "dappco.re/go/core/blockchain/config" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/consensus/tx.go b/consensus/tx.go index bcfa9da..17ba9ea 100644 --- a/consensus/tx.go +++ b/consensus/tx.go @@ -8,10 +8,10 @@ package consensus import ( "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" ) // ValidateTransaction performs semantic validation on a regular (non-coinbase) diff --git a/consensus/tx_test.go b/consensus/tx_test.go index 6ad6883..2ea2e40 100644 --- a/consensus/tx_test.go +++ b/consensus/tx_test.go @@ -10,8 +10,8 @@ package consensus import ( "testing" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/consensus/tx_version_test.go b/consensus/tx_version_test.go index d8ecbe7..192d499 100644 --- a/consensus/tx_version_test.go +++ b/consensus/tx_version_test.go @@ -10,8 +10,8 @@ package consensus import ( "testing" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" ) // validV2Tx returns a minimal valid v2 (Zarcanum) transaction for testing. diff --git a/consensus/v2sig.go b/consensus/v2sig.go index eb91654..c836358 100644 --- a/consensus/v2sig.go +++ b/consensus/v2sig.go @@ -9,10 +9,10 @@ import ( "bytes" "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) // zcSigData holds the parsed components of a ZC_sig variant element diff --git a/consensus/v2sig_test.go b/consensus/v2sig_test.go index 78f066c..463cf98 100644 --- a/consensus/v2sig_test.go +++ b/consensus/v2sig_test.go @@ -11,9 +11,9 @@ import ( "os" "testing" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/consensus/verify.go b/consensus/verify.go index 8fd1925..1438aba 100644 --- a/consensus/verify.go +++ b/consensus/verify.go @@ -8,12 +8,12 @@ package consensus import ( "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) // RingOutputsFn fetches the public keys for a ring at the given amount diff --git a/consensus/verify_crypto_test.go b/consensus/verify_crypto_test.go index ee4be9f..47e3f5d 100644 --- a/consensus/verify_crypto_test.go +++ b/consensus/verify_crypto_test.go @@ -8,10 +8,10 @@ package consensus import ( "testing" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/consensus/verify_test.go b/consensus/verify_test.go index 53562eb..1ed6553 100644 --- a/consensus/verify_test.go +++ b/consensus/verify_test.go @@ -5,8 +5,8 @@ package consensus import ( "testing" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/crypto/clsag.go b/crypto/clsag.go index 7cdfa1c..08d9d7a 100644 --- a/crypto/clsag.go +++ b/crypto/clsag.go @@ -10,7 +10,7 @@ import "C" import ( "unsafe" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // PointMul8 multiplies a curve point by the cofactor 8. diff --git a/crypto/crypto_test.go b/crypto/crypto_test.go index d2334c8..af2378c 100644 --- a/crypto/crypto_test.go +++ b/crypto/crypto_test.go @@ -6,7 +6,7 @@ import ( "encoding/hex" "testing" - "forge.lthn.ai/core/go-blockchain/crypto" + "dappco.re/go/core/blockchain/crypto" ) func TestFastHash_Good_KnownVector(t *testing.T) { diff --git a/crypto/keygen.go b/crypto/keygen.go index 66f3065..110c445 100644 --- a/crypto/keygen.go +++ b/crypto/keygen.go @@ -11,7 +11,7 @@ import ( "fmt" "unsafe" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // GenerateKeys creates a new random key pair. diff --git a/crypto/keyimage.go b/crypto/keyimage.go index 26c74ee..4b44de8 100644 --- a/crypto/keyimage.go +++ b/crypto/keyimage.go @@ -10,7 +10,7 @@ import "C" import ( "unsafe" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // GenerateKeyImage computes the key image for a public/secret key pair. diff --git a/crypto/pow.go b/crypto/pow.go index 74f0a0a..18c0efe 100644 --- a/crypto/pow.go +++ b/crypto/pow.go @@ -11,7 +11,7 @@ import ( "fmt" "unsafe" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // RandomXHash computes the RandomX PoW hash. The key is the cache diff --git a/crypto/signature.go b/crypto/signature.go index f9699db..a30d536 100644 --- a/crypto/signature.go +++ b/crypto/signature.go @@ -10,7 +10,7 @@ import "C" import ( "unsafe" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // GenerateSignature creates a standard (non-ring) signature. diff --git a/difficulty/difficulty_test.go b/difficulty/difficulty_test.go index 75b8f2f..872c9f9 100644 --- a/difficulty/difficulty_test.go +++ b/difficulty/difficulty_test.go @@ -9,7 +9,7 @@ import ( "math/big" "testing" - "forge.lthn.ai/core/go-blockchain/config" + "dappco.re/go/core/blockchain/config" ) func TestNextDifficulty_Good(t *testing.T) { diff --git a/docs/development.md b/docs/development.md index 87c7308..c5c2c16 100644 --- a/docs/development.md +++ b/docs/development.md @@ -147,7 +147,7 @@ Do not use American spellings in identifiers, comments, or documentation. - Error wrapping uses `fmt.Errorf("types: description: %w", err)` - Every source file carries the EUPL-1.2 copyright header - No emojis in code or comments -- Imports are ordered: stdlib, then `golang.org/x`, then `forge.lthn.ai`, each +- Imports are ordered: stdlib, then `golang.org/x`, then `dappco.re`, each separated by a blank line ### Dependencies diff --git a/docs/index.md b/docs/index.md index 3543414..a1e3ee3 100644 --- a/docs/index.md +++ b/docs/index.md @@ -7,7 +7,7 @@ description: Pure Go implementation of the Lethean CryptoNote/Zano-fork blockcha `go-blockchain` is a Go reimplementation of the Lethean blockchain protocol. It provides pure-Go implementations of chain logic, data structures, consensus rules, wallet operations, and networking, delegating only mathematically complex cryptographic operations (ring signatures, Bulletproofs+, Zarcanum proofs) to a cleaned C++ library via CGo. -**Module path:** `forge.lthn.ai/core/go-blockchain` +**Module path:** `dappco.re/go/core/blockchain` **Licence:** [European Union Public Licence (EUPL) version 1.2](https://joinup.ec.europa.eu/software/page/eupl/licence-eupl) @@ -61,9 +61,9 @@ go-blockchain/ import ( "fmt" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/rpc" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/rpc" + "dappco.re/go/core/blockchain/types" ) // Query the daemon @@ -109,7 +109,7 @@ When CGo is disabled, stub implementations return errors, allowing the rest of t ## Development Phases -The project follows a 9-phase development plan. See the [wiki Development Phases page](https://forge.lthn.ai/core/go-blockchain/wiki/Development-Phases) for detailed phase descriptions. +The project follows a 9-phase development plan. See the [wiki Development Phases page](https://dappco.re/go/core/blockchain/wiki/Development-Phases) for detailed phase descriptions. | Phase | Scope | Status | |-------|-------|--------| diff --git a/docs/rpc.md b/docs/rpc.md index fbb3fe7..c074461 100644 --- a/docs/rpc.md +++ b/docs/rpc.md @@ -15,7 +15,7 @@ The Lethean node exposes two RPC interfaces: a **daemon** API for blockchain que The `rpc/` package provides a typed Go client: ```go -import "forge.lthn.ai/core/go-blockchain/rpc" +import "dappco.re/go/core/blockchain/rpc" // Create a client (appends /json_rpc automatically) client := rpc.NewClient("http://localhost:36941") diff --git a/docs/superpowers/plans/2026-03-16-hf5-confidential-assets.md b/docs/superpowers/plans/2026-03-16-hf5-confidential-assets.md index 8e0824e..5694582 100644 --- a/docs/superpowers/plans/2026-03-16-hf5-confidential-assets.md +++ b/docs/superpowers/plans/2026-03-16-hf5-confidential-assets.md @@ -1085,8 +1085,8 @@ package consensus import ( "testing" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" ) // validV2Tx returns a minimal valid v2 (Zarcanum) transaction for testing. @@ -1287,8 +1287,8 @@ package consensus import ( "testing" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" ) func TestIsPreHardforkFreeze_Good(t *testing.T) { diff --git a/docs/superpowers/plans/2026-03-16-hf6-block-time-halving.md b/docs/superpowers/plans/2026-03-16-hf6-block-time-halving.md index 2bdee75..24bcbb3 100644 --- a/docs/superpowers/plans/2026-03-16-hf6-block-time-halving.md +++ b/docs/superpowers/plans/2026-03-16-hf6-block-time-halving.md @@ -51,9 +51,9 @@ package chain import ( "testing" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" - store "forge.lthn.ai/core/go-store" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" + store "dappco.re/go/core/store" "github.com/stretchr/testify/require" ) @@ -277,8 +277,8 @@ package chain import ( "math/big" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/difficulty" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/difficulty" ) // nextDifficultyWith computes the expected difficulty for the block at the @@ -365,7 +365,7 @@ cd /home/claude/Code/core/go-blockchain && go test -race -run "TestNext.*Difficu **Expected:** ``` -ok forge.lthn.ai/core/go-blockchain/chain (cached) +ok dappco.re/go/core/blockchain/chain (cached) ``` All 10 tests pass: `TestNextDifficulty_Genesis`, `TestNextDifficulty_FewBlocks`, `TestNextDifficulty_EmptyChain`, `TestNextDifficulty_HF6Boundary_Good`, `TestNextDifficulty_HF6Boundary_Bad`, `TestNextDifficulty_HF6Boundary_Ugly`, `TestNextPoSDifficulty_Good`, `TestNextPoSDifficulty_HF6Boundary_Good`, `TestNextPoSDifficulty_Genesis`. diff --git a/docs/superpowers/specs/2026-03-16-hf1-transaction-types-design.md b/docs/superpowers/specs/2026-03-16-hf1-transaction-types-design.md index 7e53ae3..64ce763 100644 --- a/docs/superpowers/specs/2026-03-16-hf1-transaction-types-design.md +++ b/docs/superpowers/specs/2026-03-16-hf1-transaction-types-design.md @@ -2,7 +2,7 @@ **Date:** 2026-03-16 **Author:** Charon -**Package:** `forge.lthn.ai/core/go-blockchain` +**Package:** `dappco.re/go/core/blockchain` **Status:** Approved ## Context diff --git a/docs/superpowers/specs/2026-03-16-hf3-block-version-design.md b/docs/superpowers/specs/2026-03-16-hf3-block-version-design.md index fcdebce..d958b6f 100644 --- a/docs/superpowers/specs/2026-03-16-hf3-block-version-design.md +++ b/docs/superpowers/specs/2026-03-16-hf3-block-version-design.md @@ -2,7 +2,7 @@ **Date:** 2026-03-16 **Author:** Charon -**Package:** `forge.lthn.ai/core/go-blockchain` +**Package:** `dappco.re/go/core/blockchain` **Status:** Approved ## Context diff --git a/docs/superpowers/specs/2026-03-16-hf5-confidential-assets-design.md b/docs/superpowers/specs/2026-03-16-hf5-confidential-assets-design.md index 63855be..9a2dee7 100644 --- a/docs/superpowers/specs/2026-03-16-hf5-confidential-assets-design.md +++ b/docs/superpowers/specs/2026-03-16-hf5-confidential-assets-design.md @@ -2,7 +2,7 @@ **Date:** 2026-03-16 **Author:** Charon -**Package:** `forge.lthn.ai/core/go-blockchain` +**Package:** `dappco.re/go/core/blockchain` **Status:** Draft **Depends on:** HF1 (types refactor), HF3 (block version), HF4 (Zarcanum — already implemented) diff --git a/docs/superpowers/specs/2026-03-16-hf6-block-time-halving-design.md b/docs/superpowers/specs/2026-03-16-hf6-block-time-halving-design.md index c59327d..8e8d80e 100644 --- a/docs/superpowers/specs/2026-03-16-hf6-block-time-halving-design.md +++ b/docs/superpowers/specs/2026-03-16-hf6-block-time-halving-design.md @@ -2,7 +2,7 @@ **Date:** 2026-03-16 **Author:** Charon -**Package:** `forge.lthn.ai/core/go-blockchain` +**Package:** `dappco.re/go/core/blockchain` **Status:** Draft **Depends on:** HF5 (confidential assets) diff --git a/go.mod b/go.mod index 16aaae6..27e9447 100644 --- a/go.mod +++ b/go.mod @@ -1,14 +1,14 @@ -module forge.lthn.ai/core/go-blockchain +module dappco.re/go/core/blockchain go 1.26.0 require ( - forge.lthn.ai/core/cli v0.3.1 - forge.lthn.ai/core/go-io v0.1.2 - forge.lthn.ai/core/go-log v0.0.4 - forge.lthn.ai/core/go-p2p v0.1.3 - forge.lthn.ai/core/go-process v0.2.3 - forge.lthn.ai/core/go-store v0.1.6 + dappco.re/go/core/cli v0.3.1 + dappco.re/go/core/io v0.2.0 + dappco.re/go/core/log v0.1.0 + dappco.re/go/core/p2p v0.1.3 + dappco.re/go/core/process v0.2.3 + dappco.re/go/core/store v0.1.6 github.com/charmbracelet/bubbletea v1.3.10 github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 @@ -17,9 +17,12 @@ require ( require ( forge.lthn.ai/core/go v0.3.1 // indirect - forge.lthn.ai/core/go-crypt v0.1.7 // indirect + forge.lthn.ai/core/go-crypt v0.1.6 // indirect forge.lthn.ai/core/go-i18n v0.1.4 // indirect forge.lthn.ai/core/go-inference v0.1.4 // indirect + forge.lthn.ai/core/go-io v0.1.2 // indirect + forge.lthn.ai/core/go-log v0.0.4 // indirect + forge.lthn.ai/core/go-process v0.2.2 // indirect github.com/ProtonMail/go-crypto v1.4.0 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/charmbracelet/colorprofile v0.4.3 // indirect @@ -29,6 +32,7 @@ require ( github.com/charmbracelet/x/term v0.2.2 // indirect github.com/clipperhouse/displaywidth v0.11.0 // indirect github.com/clipperhouse/uax29/v2 v2.7.0 // indirect + github.com/cloudflare/circl v1.6.3 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect @@ -47,6 +51,7 @@ require ( github.com/rivo/uniseg v0.4.7 // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect + golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 // indirect golang.org/x/sys v0.42.0 // indirect golang.org/x/term v0.41.0 // indirect golang.org/x/text v0.35.0 // indirect @@ -56,3 +61,16 @@ require ( modernc.org/memory v1.11.0 // indirect modernc.org/sqlite v1.47.0 // indirect ) + +replace ( + dappco.re/go/core => forge.lthn.ai/core/go v0.5.0 + dappco.re/go/core/cli => forge.lthn.ai/core/cli v0.3.1 + dappco.re/go/core/crypt => forge.lthn.ai/core/go-crypt v0.1.7 + dappco.re/go/core/i18n => forge.lthn.ai/core/go-i18n v0.1.4 + dappco.re/go/core/inference => forge.lthn.ai/core/go-inference v0.1.4 + dappco.re/go/core/io => forge.lthn.ai/core/go-io v0.2.0 + dappco.re/go/core/log => forge.lthn.ai/core/go-log v0.1.0 + dappco.re/go/core/p2p => forge.lthn.ai/core/go-p2p v0.1.3 + dappco.re/go/core/process => forge.lthn.ai/core/go-process v0.2.3 + dappco.re/go/core/store => forge.lthn.ai/core/go-store v0.1.6 +) diff --git a/go.sum b/go.sum index 8773bba..640b656 100644 --- a/go.sum +++ b/go.sum @@ -1,21 +1,31 @@ -forge.lthn.ai/core/cli v0.3.7 h1:1GrbaGg0wDGHr6+klSbbGyN/9sSbHvFbdySJznymhwg= -forge.lthn.ai/core/cli v0.3.7/go.mod h1:DBUppJkA9P45ZFGgI2B8VXw1rAZxamHoI/KG7fRvTNs= -forge.lthn.ai/core/go v0.3.3 h1:kYYZ2nRYy0/Be3cyuLJspRjLqTMxpckVyhb/7Sw2gd0= -forge.lthn.ai/core/go v0.3.3/go.mod h1:Cp4ac25pghvO2iqOu59t1GyngTKVOzKB5/VPdhRi9CQ= -forge.lthn.ai/core/go-i18n v0.1.7 h1:aHkAoc3W8fw3RPNvw/UszQbjyFWXHszzbZgty3SwyAA= -forge.lthn.ai/core/go-i18n v0.1.7/go.mod h1:0VDjwtY99NSj2iqwrI09h5GUsJeM9s48MLkr+/Dn4G8= -forge.lthn.ai/core/go-inference v0.1.6 h1:ce42zC0zO8PuISUyAukAN1NACEdWp5wF1mRgnh5+58E= -forge.lthn.ai/core/go-inference v0.1.6/go.mod h1:jfWz+IJX55wAH98+ic6FEqqGB6/P31CHlg7VY7pxREw= -forge.lthn.ai/core/go-io v0.1.7 h1:Tdb6sqh+zz1lsGJaNX9RFWM6MJ/RhSAyxfulLXrJsbk= -forge.lthn.ai/core/go-io v0.1.7/go.mod h1:8lRLFk4Dnp5cR/Cyzh9WclD5566TbpdRgwcH7UZLWn4= +forge.lthn.ai/core/cli v0.3.1 h1:ZpHhaDrdbaV98JDxj/f0E5nytYk9tTMRu3qohGyK4M0= +forge.lthn.ai/core/cli v0.3.1/go.mod h1:28cOl9eK0H033Otkjrv9f/QCmtHcJl+IIx4om8JskOg= +forge.lthn.ai/core/go v0.3.1 h1:5FMTsUhLcxSr07F9q3uG0Goy4zq4eLivoqi8shSY4UM= +forge.lthn.ai/core/go v0.3.1/go.mod h1:gE6c8h+PJ2287qNhVUJ5SOe1kopEwHEquvinstpuyJc= +forge.lthn.ai/core/go-crypt v0.1.6 h1:jB7L/28S1NR+91u3GcOYuKfBLzPhhBUY1fRe6WkGVns= +forge.lthn.ai/core/go-crypt v0.1.6/go.mod h1:4VZAGqxlbadhSB66sJkdj54/HSJ+bSxVgwWK5kMMYDo= +forge.lthn.ai/core/go-i18n v0.1.4 h1:zOHUUJDgRo88/3tj++kN+VELg/buyZ4T2OSdG3HBbLQ= +forge.lthn.ai/core/go-i18n v0.1.4/go.mod h1:aDyAfz7MMgWYgLkZCptfFmZ7jJg3ocwjEJ1WkJSvv4U= +forge.lthn.ai/core/go-inference v0.1.4 h1:fuAgWbqsEDajHniqAKyvHYbRcBrkGEiGSqR2pfTMRY0= +forge.lthn.ai/core/go-inference v0.1.4/go.mod h1:jfWz+IJX55wAH98+ic6FEqqGB6/P31CHlg7VY7pxREw= +forge.lthn.ai/core/go-io v0.1.2 h1:q8hj2jtOFqAgHlBr5wsUAOXtaFkxy9gqGrQT/il0WYA= +forge.lthn.ai/core/go-io v0.1.2/go.mod h1:PbNKW1Q25ywSOoQXeGdQHbV5aiIrTXvHIQ5uhplA//g= +forge.lthn.ai/core/go-io v0.2.0 h1:O/b3E6agFNQEy99FB2PMeeGO0wJleE0C3jx7tPEu9HA= +forge.lthn.ai/core/go-io v0.2.0/go.mod h1:1QnQV6X9LNgFKfm8SkOtR9LLaj3bDcsOIeJOOyjbL5E= forge.lthn.ai/core/go-log v0.0.4 h1:KTuCEPgFmuM8KJfnyQ8vPOU1Jg654W74h8IJvfQMfv0= forge.lthn.ai/core/go-log v0.0.4/go.mod h1:r14MXKOD3LF/sI8XUJQhRk/SZHBE7jAFVuCfgkXoZPw= -forge.lthn.ai/core/go-p2p v0.1.7 h1:4mEi/mxsSSDUgRsYWwdOdV8NYEm2zOY4OP+VAzhvb+o= -forge.lthn.ai/core/go-p2p v0.1.7/go.mod h1:I8uEoxwchrG6oGY/29OO/CiSd9y7XolgUaiIHTdqLeI= -forge.lthn.ai/core/go-process v0.2.9 h1:Wql+5TUF+lfU2oJ9I+S764MkTqJhBsuyMM0v1zsfZC4= -forge.lthn.ai/core/go-process v0.2.9/go.mod h1:NIzZOF5IVYYCjHkcNIGcg1mZH+bzGoie4SlZUDYOKIM= -forge.lthn.ai/core/go-store v0.1.10 h1:JLyf8xMR3V6PfBAW1kv6SJeHsYY93LacEBpTFW657qE= -forge.lthn.ai/core/go-store v0.1.10/go.mod h1:VNnHh94TMD3+L+sSgvxn0GHtDKhJR8FD6JiuIuRtjuk= +forge.lthn.ai/core/go-log v0.1.0 h1:QMr7jeZj2Bb/BovgPbiZOzNt9j/+wym11lBSleucCa0= +forge.lthn.ai/core/go-log v0.1.0/go.mod h1:Nkqb8gsXhZAO8VLpx7B8i1iAmohhzqA20b9Zr8VUcJs= +forge.lthn.ai/core/go-p2p v0.1.3 h1:XbETiHrYTDiJTq6EAxdU+MJF1l5UxEQE14wJ7G7FOVc= +forge.lthn.ai/core/go-p2p v0.1.3/go.mod h1:F2M4qIzkixQpZEoOEtNaB4rhmi1WQKbR7JqVzGA1r80= +forge.lthn.ai/core/go-process v0.2.2 h1:bnHFtzg92udochDDB6bD2luzzmr9ETKWmGzSsGjFFYE= +forge.lthn.ai/core/go-process v0.2.2/go.mod h1:gVTbxL16ccUIexlFcyDtCy7LfYvD8Rtyzfo8bnXAXrU= +forge.lthn.ai/core/go-process v0.2.3 h1:/ERqRYHgCNZjNT9NMinAAJJGJWSsHuCTiHFNEm6nTPY= +forge.lthn.ai/core/go-process v0.2.3/go.mod h1:gVTbxL16ccUIexlFcyDtCy7LfYvD8Rtyzfo8bnXAXrU= +forge.lthn.ai/core/go-store v0.1.6 h1:7T+K5cciXOaWRxge0WnGkt0PcK3epliWBa1G2FLEuac= +forge.lthn.ai/core/go-store v0.1.6/go.mod h1:/2vqaAn+HgGU14N29B+vIfhjIsBzy7RC+AluI6BIUKI= +github.com/ProtonMail/go-crypto v1.4.0 h1:Zq/pbM3F5DFgJiMouxEdSVY44MVoQNEKp5d5QxIQceQ= +github.com/ProtonMail/go-crypto v1.4.0/go.mod h1:e1OaTyu5SYVrO9gKOEhTc+5UcXtTUa+P3uLudwcgPqo= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw= @@ -34,6 +44,8 @@ github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSE github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0= github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk= github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= +github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8= +github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/mining/hash.go b/mining/hash.go index a1ccfd3..8f27885 100644 --- a/mining/hash.go +++ b/mining/hash.go @@ -11,10 +11,10 @@ package mining import ( "encoding/binary" - "forge.lthn.ai/core/go-blockchain/consensus" - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/consensus" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) // RandomXKey is the cache initialisation key for RandomX hashing. diff --git a/mining/hash_test.go b/mining/hash_test.go index 971c0b6..c8a54e2 100644 --- a/mining/hash_test.go +++ b/mining/hash_test.go @@ -11,8 +11,8 @@ import ( "encoding/hex" "testing" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) func testnetGenesisHeader() types.BlockHeader { diff --git a/mining/integration_test.go b/mining/integration_test.go index 5d62dc4..675a1bd 100644 --- a/mining/integration_test.go +++ b/mining/integration_test.go @@ -12,8 +12,8 @@ import ( "encoding/hex" "testing" - "forge.lthn.ai/core/go-blockchain/rpc" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/rpc" + "dappco.re/go/core/blockchain/wire" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/mining/miner.go b/mining/miner.go index f668845..8583308 100644 --- a/mining/miner.go +++ b/mining/miner.go @@ -15,13 +15,13 @@ import ( "sync/atomic" "time" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/consensus" - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/rpc" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/consensus" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/rpc" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) // TemplateProvider abstracts the RPC methods needed by the miner. diff --git a/mining/miner_test.go b/mining/miner_test.go index 7e2126e..0900361 100644 --- a/mining/miner_test.go +++ b/mining/miner_test.go @@ -14,9 +14,9 @@ import ( "testing" "time" - "forge.lthn.ai/core/go-blockchain/rpc" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/rpc" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" "github.com/stretchr/testify/assert" ) diff --git a/p2p/commands.go b/p2p/commands.go index 9347def..39c60fd 100644 --- a/p2p/commands.go +++ b/p2p/commands.go @@ -6,7 +6,7 @@ // Package p2p implements the CryptoNote P2P protocol for the Lethean blockchain. package p2p -import "forge.lthn.ai/core/go-p2p/node/levin" +import "dappco.re/go/core/p2p/node/levin" // Re-export command IDs from the levin package for convenience. const ( diff --git a/p2p/handshake.go b/p2p/handshake.go index a6f29cc..c451c0a 100644 --- a/p2p/handshake.go +++ b/p2p/handshake.go @@ -8,7 +8,7 @@ package p2p import ( "encoding/binary" - "forge.lthn.ai/core/go-p2p/node/levin" + "dappco.re/go/core/p2p/node/levin" ) // PeerlistEntrySize is the packed size of a peerlist entry (ip + port + id + last_seen). diff --git a/p2p/handshake_test.go b/p2p/handshake_test.go index 12c94f1..f9e14f1 100644 --- a/p2p/handshake_test.go +++ b/p2p/handshake_test.go @@ -9,8 +9,8 @@ import ( "encoding/binary" "testing" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-p2p/node/levin" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/p2p/node/levin" ) func TestEncodeHandshakeRequest_Good_Roundtrip(t *testing.T) { diff --git a/p2p/integration_test.go b/p2p/integration_test.go index 871d582..34b8551 100644 --- a/p2p/integration_test.go +++ b/p2p/integration_test.go @@ -15,8 +15,8 @@ import ( "testing" "time" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-p2p/node/levin" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/p2p/node/levin" "github.com/stretchr/testify/require" ) diff --git a/p2p/ping.go b/p2p/ping.go index b35db13..ccf9dab 100644 --- a/p2p/ping.go +++ b/p2p/ping.go @@ -5,7 +5,7 @@ package p2p -import "forge.lthn.ai/core/go-p2p/node/levin" +import "dappco.re/go/core/p2p/node/levin" // EncodePingRequest returns an encoded empty ping request payload. func EncodePingRequest() ([]byte, error) { diff --git a/p2p/ping_test.go b/p2p/ping_test.go index 9786b2e..32b9cde 100644 --- a/p2p/ping_test.go +++ b/p2p/ping_test.go @@ -8,7 +8,7 @@ package p2p import ( "testing" - "forge.lthn.ai/core/go-p2p/node/levin" + "dappco.re/go/core/p2p/node/levin" ) func TestEncodePingRequest_Good_EmptySection(t *testing.T) { diff --git a/p2p/relay.go b/p2p/relay.go index b184fde..99459a8 100644 --- a/p2p/relay.go +++ b/p2p/relay.go @@ -5,7 +5,7 @@ package p2p -import "forge.lthn.ai/core/go-p2p/node/levin" +import "dappco.re/go/core/p2p/node/levin" // NewBlockNotification is NOTIFY_NEW_BLOCK (2001). type NewBlockNotification struct { diff --git a/p2p/relay_test.go b/p2p/relay_test.go index 1b43475..3fc559c 100644 --- a/p2p/relay_test.go +++ b/p2p/relay_test.go @@ -9,7 +9,7 @@ import ( "bytes" "testing" - "forge.lthn.ai/core/go-p2p/node/levin" + "dappco.re/go/core/p2p/node/levin" ) func TestNewBlockNotification_Good_Roundtrip(t *testing.T) { diff --git a/p2p/sync.go b/p2p/sync.go index f9661f1..4a51531 100644 --- a/p2p/sync.go +++ b/p2p/sync.go @@ -6,8 +6,8 @@ package p2p import ( - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-p2p/node/levin" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/p2p/node/levin" ) // CoreSyncData is the blockchain state exchanged during handshake and timed sync. diff --git a/p2p/sync_test.go b/p2p/sync_test.go index a77de9b..10c7c01 100644 --- a/p2p/sync_test.go +++ b/p2p/sync_test.go @@ -8,8 +8,8 @@ package p2p import ( "testing" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-p2p/node/levin" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/p2p/node/levin" ) func TestCoreSyncData_Good_Roundtrip(t *testing.T) { diff --git a/p2p/timedsync.go b/p2p/timedsync.go index 1dc6a1e..7410084 100644 --- a/p2p/timedsync.go +++ b/p2p/timedsync.go @@ -5,7 +5,7 @@ package p2p -import "forge.lthn.ai/core/go-p2p/node/levin" +import "dappco.re/go/core/p2p/node/levin" // TimedSyncRequest is a COMMAND_TIMED_SYNC request. type TimedSyncRequest struct { diff --git a/rpc/blocks.go b/rpc/blocks.go index 10d3003..dc5184d 100644 --- a/rpc/blocks.go +++ b/rpc/blocks.go @@ -8,7 +8,7 @@ package rpc import ( "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // GetLastBlockHeader returns the header of the most recent block. diff --git a/rpc/client.go b/rpc/client.go index e66c2a7..32ad0e2 100644 --- a/rpc/client.go +++ b/rpc/client.go @@ -15,7 +15,7 @@ import ( "net/url" "time" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // Client is a Lethean daemon RPC client. diff --git a/rpc/info.go b/rpc/info.go index 2c6a152..3ec5966 100644 --- a/rpc/info.go +++ b/rpc/info.go @@ -8,7 +8,7 @@ package rpc import ( "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // GetInfo returns the daemon status. diff --git a/rpc/mining.go b/rpc/mining.go index 68861da..fcb3d7b 100644 --- a/rpc/mining.go +++ b/rpc/mining.go @@ -8,7 +8,7 @@ package rpc import ( "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // SubmitBlock submits a mined block to the daemon. diff --git a/rpc/transactions.go b/rpc/transactions.go index 652476e..f691ace 100644 --- a/rpc/transactions.go +++ b/rpc/transactions.go @@ -8,7 +8,7 @@ package rpc import ( "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // GetTxDetails returns detailed information about a transaction. diff --git a/rpc/wallet.go b/rpc/wallet.go index b5c130b..5d0b560 100644 --- a/rpc/wallet.go +++ b/rpc/wallet.go @@ -9,7 +9,7 @@ import ( "encoding/hex" "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // RandomOutputEntry is a decoy output returned by getrandom_outs. diff --git a/sync_service.go b/sync_service.go index d929f94..da59e62 100644 --- a/sync_service.go +++ b/sync_service.go @@ -14,12 +14,12 @@ import ( "net" "time" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/chain" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/p2p" - levin "forge.lthn.ai/core/go-p2p/node/levin" + "dappco.re/go/core/blockchain/chain" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/p2p" + levin "dappco.re/go/core/p2p/node/levin" ) func syncLoop(ctx context.Context, c *chain.Chain, cfg *config.ChainConfig, forks []config.HardFork, seed string) { diff --git a/tui/explorer_model.go b/tui/explorer_model.go index c1af673..2ac6b31 100644 --- a/tui/explorer_model.go +++ b/tui/explorer_model.go @@ -10,11 +10,11 @@ import ( "strings" "time" - cli "forge.lthn.ai/core/cli/pkg/cli" + cli "dappco.re/go/core/cli/pkg/cli" tea "github.com/charmbracelet/bubbletea" - "forge.lthn.ai/core/go-blockchain/chain" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/chain" + "dappco.re/go/core/blockchain/types" ) // Compile-time check: ExplorerModel implements cli.FrameModel. diff --git a/tui/keyhints_model.go b/tui/keyhints_model.go index 38eaee9..f4d459d 100644 --- a/tui/keyhints_model.go +++ b/tui/keyhints_model.go @@ -10,7 +10,7 @@ import ( tea "github.com/charmbracelet/bubbletea" - cli "forge.lthn.ai/core/cli/pkg/cli" + cli "dappco.re/go/core/cli/pkg/cli" ) // Compile-time check: KeyHintsModel implements cli.FrameModel. diff --git a/tui/messages.go b/tui/messages.go index 1e6c22c..e7a9dac 100644 --- a/tui/messages.go +++ b/tui/messages.go @@ -8,7 +8,7 @@ package tui import ( "time" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/types" ) // NodeStatusMsg carries a periodic status snapshot from the Node goroutine diff --git a/tui/node.go b/tui/node.go index b5312e4..df53c2d 100644 --- a/tui/node.go +++ b/tui/node.go @@ -10,7 +10,7 @@ import ( tea "github.com/charmbracelet/bubbletea" - "forge.lthn.ai/core/go-blockchain/chain" + "dappco.re/go/core/blockchain/chain" ) // Node wraps a [chain.Chain] and provides bubbletea commands for periodic diff --git a/tui/node_test.go b/tui/node_test.go index f4572de..9481528 100644 --- a/tui/node_test.go +++ b/tui/node_test.go @@ -9,11 +9,11 @@ import ( "testing" "time" - store "forge.lthn.ai/core/go-store" + store "dappco.re/go/core/store" - "forge.lthn.ai/core/go-blockchain/chain" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/chain" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) // testCoinbaseTx returns a minimal v1 coinbase transaction that round-trips diff --git a/tui/status_model.go b/tui/status_model.go index 03e3eab..ac6d405 100644 --- a/tui/status_model.go +++ b/tui/status_model.go @@ -11,7 +11,7 @@ import ( tea "github.com/charmbracelet/bubbletea" - cli "forge.lthn.ai/core/cli/pkg/cli" + cli "dappco.re/go/core/cli/pkg/cli" ) // Compile-time check: StatusModel implements cli.FrameModel. diff --git a/types/address.go b/types/address.go index 053c8cc..aa4feab 100644 --- a/types/address.go +++ b/types/address.go @@ -13,11 +13,11 @@ import ( "fmt" "math/big" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" "golang.org/x/crypto/sha3" - "forge.lthn.ai/core/go-blockchain/config" + "dappco.re/go/core/blockchain/config" ) // FlagAuditable marks an address as auditable. When set, the address was diff --git a/types/address_test.go b/types/address_test.go index 77813ca..df9b404 100644 --- a/types/address_test.go +++ b/types/address_test.go @@ -8,7 +8,7 @@ package types import ( "testing" - "forge.lthn.ai/core/go-blockchain/config" + "dappco.re/go/core/blockchain/config" ) // makeTestAddress creates an address with deterministic test data. diff --git a/types/types.go b/types/types.go index 4d85fee..612403d 100644 --- a/types/types.go +++ b/types/types.go @@ -16,7 +16,7 @@ import ( "encoding/hex" "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // Hash is a 256-bit (32-byte) hash value, typically produced by Keccak-256. diff --git a/wallet/account.go b/wallet/account.go index 844cd53..0dbfdfd 100644 --- a/wallet/account.go +++ b/wallet/account.go @@ -17,14 +17,14 @@ import ( "encoding/json" "io" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" "golang.org/x/crypto/argon2" - store "forge.lthn.ai/core/go-store" + store "dappco.re/go/core/store" - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/types" ) // Store group and key for the encrypted account blob. diff --git a/wallet/builder.go b/wallet/builder.go index 67a0566..c8f3cb4 100644 --- a/wallet/builder.go +++ b/wallet/builder.go @@ -15,12 +15,12 @@ import ( "fmt" "slices" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) // Destination is a recipient address and amount. diff --git a/wallet/builder_test.go b/wallet/builder_test.go index 9eadc8f..b75acc2 100644 --- a/wallet/builder_test.go +++ b/wallet/builder_test.go @@ -12,9 +12,9 @@ package wallet import ( "testing" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/types" ) // mockRingSelector returns fixed ring members for testing. diff --git a/wallet/extra.go b/wallet/extra.go index 9dd8552..c2e35af 100644 --- a/wallet/extra.go +++ b/wallet/extra.go @@ -13,10 +13,10 @@ import ( "encoding/binary" "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) // Extra field tag constants from the CryptoNote variant vector encoding. diff --git a/wallet/extra_test.go b/wallet/extra_test.go index 31ec8c9..19a1d3d 100644 --- a/wallet/extra_test.go +++ b/wallet/extra_test.go @@ -8,8 +8,8 @@ package wallet import ( "testing" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) func TestParseTxExtraPublicKey(t *testing.T) { diff --git a/wallet/integration_test.go b/wallet/integration_test.go index a18081b..91bbf7c 100644 --- a/wallet/integration_test.go +++ b/wallet/integration_test.go @@ -14,9 +14,9 @@ package wallet import ( "testing" - store "forge.lthn.ai/core/go-store" - "forge.lthn.ai/core/go-blockchain/chain" - "forge.lthn.ai/core/go-blockchain/rpc" + store "dappco.re/go/core/store" + "dappco.re/go/core/blockchain/chain" + "dappco.re/go/core/blockchain/rpc" ) func TestWalletIntegration(t *testing.T) { diff --git a/wallet/mnemonic.go b/wallet/mnemonic.go index 164b26f..955c417 100644 --- a/wallet/mnemonic.go +++ b/wallet/mnemonic.go @@ -6,7 +6,7 @@ import ( "hash/crc32" "strings" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) const numWords = 1626 diff --git a/wallet/ring.go b/wallet/ring.go index adb6688..9cd3b16 100644 --- a/wallet/ring.go +++ b/wallet/ring.go @@ -12,10 +12,10 @@ package wallet import ( "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/rpc" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/rpc" + "dappco.re/go/core/blockchain/types" ) // RingMember is a public key and global index used in ring construction. diff --git a/wallet/ring_test.go b/wallet/ring_test.go index 12878d3..cb4536b 100644 --- a/wallet/ring_test.go +++ b/wallet/ring_test.go @@ -12,8 +12,8 @@ import ( "net/http/httptest" "testing" - "forge.lthn.ai/core/go-blockchain/rpc" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/rpc" + "dappco.re/go/core/blockchain/types" ) func TestRPCRingSelector(t *testing.T) { diff --git a/wallet/scanner.go b/wallet/scanner.go index ff0a48c..ea98bae 100644 --- a/wallet/scanner.go +++ b/wallet/scanner.go @@ -10,8 +10,8 @@ package wallet import ( - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/types" ) // Scanner detects outputs belonging to a wallet within a transaction. diff --git a/wallet/scanner_test.go b/wallet/scanner_test.go index 66bfd8b..c1f8d3c 100644 --- a/wallet/scanner_test.go +++ b/wallet/scanner_test.go @@ -8,9 +8,9 @@ package wallet import ( "testing" - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) // makeTestTransaction creates a v0 coinbase tx with one output sent to destAddr. diff --git a/wallet/signer.go b/wallet/signer.go index 83ed3a7..b1490a5 100644 --- a/wallet/signer.go +++ b/wallet/signer.go @@ -10,9 +10,9 @@ package wallet import ( - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/types" - coreerr "forge.lthn.ai/core/go-log" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/types" + coreerr "dappco.re/go/core/log" ) // Signer produces signatures for transaction inputs. diff --git a/wallet/signer_test.go b/wallet/signer_test.go index ca8a3e6..52ba434 100644 --- a/wallet/signer_test.go +++ b/wallet/signer_test.go @@ -8,8 +8,8 @@ package wallet import ( "testing" - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/types" ) func TestNLSAGSignerRoundTrip(t *testing.T) { diff --git a/wallet/transfer.go b/wallet/transfer.go index e208bbb..402d684 100644 --- a/wallet/transfer.go +++ b/wallet/transfer.go @@ -13,12 +13,12 @@ import ( "encoding/json" "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - store "forge.lthn.ai/core/go-store" + store "dappco.re/go/core/store" - "forge.lthn.ai/core/go-blockchain/config" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/config" + "dappco.re/go/core/blockchain/types" ) // groupTransfers is the go-store group name for wallet transfer records. diff --git a/wallet/transfer_test.go b/wallet/transfer_test.go index 0a4ab55..1a9e1ee 100644 --- a/wallet/transfer_test.go +++ b/wallet/transfer_test.go @@ -8,9 +8,9 @@ package wallet import ( "testing" - store "forge.lthn.ai/core/go-store" + store "dappco.re/go/core/store" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/types" ) func newTestStore(t *testing.T) *store.Store { diff --git a/wallet/wallet.go b/wallet/wallet.go index 8fba7aa..f6be5cb 100644 --- a/wallet/wallet.go +++ b/wallet/wallet.go @@ -15,13 +15,13 @@ import ( "slices" "strconv" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/chain" - "forge.lthn.ai/core/go-blockchain/rpc" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" - store "forge.lthn.ai/core/go-store" + "dappco.re/go/core/blockchain/chain" + "dappco.re/go/core/blockchain/rpc" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" + store "dappco.re/go/core/store" ) const ( diff --git a/wallet/wallet_test.go b/wallet/wallet_test.go index e18ae02..adcb338 100644 --- a/wallet/wallet_test.go +++ b/wallet/wallet_test.go @@ -12,11 +12,11 @@ package wallet import ( "testing" - store "forge.lthn.ai/core/go-store" - "forge.lthn.ai/core/go-blockchain/chain" - "forge.lthn.ai/core/go-blockchain/crypto" - "forge.lthn.ai/core/go-blockchain/types" - "forge.lthn.ai/core/go-blockchain/wire" + store "dappco.re/go/core/store" + "dappco.re/go/core/blockchain/chain" + "dappco.re/go/core/blockchain/crypto" + "dappco.re/go/core/blockchain/types" + "dappco.re/go/core/blockchain/wire" ) func makeTestBlock(t *testing.T, height uint64, prevHash types.Hash, diff --git a/wire/block.go b/wire/block.go index 78db6db..dfd4c21 100644 --- a/wire/block.go +++ b/wire/block.go @@ -5,7 +5,7 @@ package wire -import "forge.lthn.ai/core/go-blockchain/types" +import "dappco.re/go/core/blockchain/types" // EncodeBlockHeader serialises a block header in the consensus wire format. // diff --git a/wire/block_test.go b/wire/block_test.go index 6bc93fb..976d852 100644 --- a/wire/block_test.go +++ b/wire/block_test.go @@ -9,7 +9,7 @@ import ( "bytes" "testing" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/types" ) // testnetGenesisHeader returns the genesis block header for the Lethean testnet. diff --git a/wire/decoder.go b/wire/decoder.go index 06e9548..732932d 100644 --- a/wire/decoder.go +++ b/wire/decoder.go @@ -10,7 +10,7 @@ import ( "fmt" "io" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" ) // Decoder reads consensus-critical binary data from an io.Reader. diff --git a/wire/hash.go b/wire/hash.go index 1782863..8b22afa 100644 --- a/wire/hash.go +++ b/wire/hash.go @@ -8,7 +8,7 @@ package wire import ( "bytes" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/types" ) // BlockHashingBlob builds the blob used to compute a block's hash. diff --git a/wire/hash_test.go b/wire/hash_test.go index ff55afb..8f743fe 100644 --- a/wire/hash_test.go +++ b/wire/hash_test.go @@ -11,7 +11,7 @@ import ( "encoding/hex" "testing" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/types" ) // testnetGenesisRawTx returns the raw wire bytes of the testnet genesis diff --git a/wire/transaction.go b/wire/transaction.go index 829e071..8a2720a 100644 --- a/wire/transaction.go +++ b/wire/transaction.go @@ -8,9 +8,9 @@ package wire import ( "fmt" - coreerr "forge.lthn.ai/core/go-log" + coreerr "dappco.re/go/core/log" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/types" ) // EncodeTransactionPrefix serialises the transaction prefix (without diff --git a/wire/transaction_test.go b/wire/transaction_test.go index 3a374de..0ca4ae1 100644 --- a/wire/transaction_test.go +++ b/wire/transaction_test.go @@ -9,7 +9,7 @@ import ( "bytes" "testing" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/types" ) func TestCoinbaseTxEncodeDecode_Good(t *testing.T) { diff --git a/wire/transaction_v2_test.go b/wire/transaction_v2_test.go index 48dfca3..a901c9b 100644 --- a/wire/transaction_v2_test.go +++ b/wire/transaction_v2_test.go @@ -10,7 +10,7 @@ import ( "encoding/hex" "testing" - "forge.lthn.ai/core/go-blockchain/types" + "dappco.re/go/core/blockchain/types" ) // Block 101 coinbase transaction from testnet (post-HF4, version 2).