diff --git a/README.md b/README.md index 947984d5a1..9cfac38c50 100644 --- a/README.md +++ b/README.md @@ -169,5 +169,5 @@ Provides utilities for the various components: Please see the [COPYING_FAQ](COPYING_FAQ) for details on how to apply our license. -Copyright (C) 2019-2024, Algorand Inc. +Copyright (C) 2019-2025, Algorand Inc. diff --git a/agreement/abstractions.go b/agreement/abstractions.go index ea0a4b1eee..90d4e1cbfc 100644 --- a/agreement/abstractions.go +++ b/agreement/abstractions.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/actions.go b/agreement/actions.go index c174233103..89d2bad4a6 100644 --- a/agreement/actions.go +++ b/agreement/actions.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/actor.go b/agreement/actor.go index aeae4ce6bc..4df7333d11 100644 --- a/agreement/actor.go +++ b/agreement/actor.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/agreeInstall.go b/agreement/agreeInstall.go index e07134d720..3a9c86ddb1 100644 --- a/agreement/agreeInstall.go +++ b/agreement/agreeInstall.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/agreementtest/keyManager.go b/agreement/agreementtest/keyManager.go index d17d726584..f62d296b81 100644 --- a/agreement/agreementtest/keyManager.go +++ b/agreement/agreementtest/keyManager.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/agreementtest/simulate.go b/agreement/agreementtest/simulate.go index da9c42bf0e..b806cdbb40 100644 --- a/agreement/agreementtest/simulate.go +++ b/agreement/agreementtest/simulate.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/agreementtest/simulate_test.go b/agreement/agreementtest/simulate_test.go index 02ba048cb7..5c436a761c 100644 --- a/agreement/agreementtest/simulate_test.go +++ b/agreement/agreementtest/simulate_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/asyncVoteVerifier.go b/agreement/asyncVoteVerifier.go index 659f25663a..8678e1104a 100644 --- a/agreement/asyncVoteVerifier.go +++ b/agreement/asyncVoteVerifier.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/asyncVoteVerifier_test.go b/agreement/asyncVoteVerifier_test.go index 5395740077..3e3384fb31 100644 --- a/agreement/asyncVoteVerifier_test.go +++ b/agreement/asyncVoteVerifier_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/autopsy.go b/agreement/autopsy.go index dd9fe81420..088687fb1c 100644 --- a/agreement/autopsy.go +++ b/agreement/autopsy.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/bundle.go b/agreement/bundle.go index b84b86505c..c2374ec968 100644 --- a/agreement/bundle.go +++ b/agreement/bundle.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/bundle_test.go b/agreement/bundle_test.go index 4038a9f48f..2eac91fb41 100644 --- a/agreement/bundle_test.go +++ b/agreement/bundle_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/cadaver.go b/agreement/cadaver.go index 8437262202..4f4edf3d59 100644 --- a/agreement/cadaver.go +++ b/agreement/cadaver.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/certificate.go b/agreement/certificate.go index 818b16488c..86fde01e01 100644 --- a/agreement/certificate.go +++ b/agreement/certificate.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/certificate_test.go b/agreement/certificate_test.go index 04f2f6cef5..c4272fff15 100644 --- a/agreement/certificate_test.go +++ b/agreement/certificate_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/common_test.go b/agreement/common_test.go index f468bae4a1..1cbba828ab 100644 --- a/agreement/common_test.go +++ b/agreement/common_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/coservice.go b/agreement/coservice.go index 7def929c15..053144fb14 100644 --- a/agreement/coservice.go +++ b/agreement/coservice.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/credentialArrivalHistory.go b/agreement/credentialArrivalHistory.go index 7b302cd89e..321ec5b3a4 100644 --- a/agreement/credentialArrivalHistory.go +++ b/agreement/credentialArrivalHistory.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/credentialArrivalHistory_test.go b/agreement/credentialArrivalHistory_test.go index eb6cef639d..44bb2a20fd 100644 --- a/agreement/credentialArrivalHistory_test.go +++ b/agreement/credentialArrivalHistory_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/cryptoRequestContext.go b/agreement/cryptoRequestContext.go index cd779db38c..05d784ab87 100644 --- a/agreement/cryptoRequestContext.go +++ b/agreement/cryptoRequestContext.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/cryptoRequestContext_test.go b/agreement/cryptoRequestContext_test.go index f5c5db8f78..d67b67edf2 100644 --- a/agreement/cryptoRequestContext_test.go +++ b/agreement/cryptoRequestContext_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/cryptoVerifier.go b/agreement/cryptoVerifier.go index df7e9694cf..1d7752eac5 100644 --- a/agreement/cryptoVerifier.go +++ b/agreement/cryptoVerifier.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/cryptoVerifier_test.go b/agreement/cryptoVerifier_test.go index 5a7e19ccfa..1c482ab71b 100644 --- a/agreement/cryptoVerifier_test.go +++ b/agreement/cryptoVerifier_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/demux.go b/agreement/demux.go index 2f0e9b269b..01429be30f 100644 --- a/agreement/demux.go +++ b/agreement/demux.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/demux_test.go b/agreement/demux_test.go index e644ce76b3..2af7403465 100644 --- a/agreement/demux_test.go +++ b/agreement/demux_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/doc.go b/agreement/doc.go index 12a6bacd14..c8f1d6557f 100644 --- a/agreement/doc.go +++ b/agreement/doc.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/dynamicFilterTimeoutParams.go b/agreement/dynamicFilterTimeoutParams.go index be4febd6ba..cf4bfd226b 100644 --- a/agreement/dynamicFilterTimeoutParams.go +++ b/agreement/dynamicFilterTimeoutParams.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/dynamicFilterTimeoutParams_test.go b/agreement/dynamicFilterTimeoutParams_test.go index 1e84642faf..3854974715 100644 --- a/agreement/dynamicFilterTimeoutParams_test.go +++ b/agreement/dynamicFilterTimeoutParams_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/encoding_test.go b/agreement/encoding_test.go index 0f198cca46..563f5e7f92 100644 --- a/agreement/encoding_test.go +++ b/agreement/encoding_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/errors.go b/agreement/errors.go index 9d4189056c..59382a4023 100644 --- a/agreement/errors.go +++ b/agreement/errors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/events.go b/agreement/events.go index f8d8eca475..6b302243a7 100644 --- a/agreement/events.go +++ b/agreement/events.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/events_test.go b/agreement/events_test.go index 87a494d02d..db8d30a109 100644 --- a/agreement/events_test.go +++ b/agreement/events_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/bandwidthFilter_test.go b/agreement/fuzzer/bandwidthFilter_test.go index c527976ed2..430d69103c 100644 --- a/agreement/fuzzer/bandwidthFilter_test.go +++ b/agreement/fuzzer/bandwidthFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/catchupFilter_test.go b/agreement/fuzzer/catchupFilter_test.go index 79089b5ea7..130715506f 100644 --- a/agreement/fuzzer/catchupFilter_test.go +++ b/agreement/fuzzer/catchupFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/clockedFilter_test.go b/agreement/fuzzer/clockedFilter_test.go index 9ff93be65c..82a81eba44 100644 --- a/agreement/fuzzer/clockedFilter_test.go +++ b/agreement/fuzzer/clockedFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/dropMessageFilter_test.go b/agreement/fuzzer/dropMessageFilter_test.go index 1151a5b541..46e341f22c 100644 --- a/agreement/fuzzer/dropMessageFilter_test.go +++ b/agreement/fuzzer/dropMessageFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/duplicateMessageFilter_test.go b/agreement/fuzzer/duplicateMessageFilter_test.go index 109981040d..eac5832de0 100644 --- a/agreement/fuzzer/duplicateMessageFilter_test.go +++ b/agreement/fuzzer/duplicateMessageFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/filter_test.go b/agreement/fuzzer/filter_test.go index 6439802387..d0a0736b01 100644 --- a/agreement/fuzzer/filter_test.go +++ b/agreement/fuzzer/filter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/fuzzer.go b/agreement/fuzzer/fuzzer.go index a5eb67ce54..7b1c9558b2 100644 --- a/agreement/fuzzer/fuzzer.go +++ b/agreement/fuzzer/fuzzer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/fuzzer_test.go b/agreement/fuzzer/fuzzer_test.go index eea4a0354f..7f0214e2be 100644 --- a/agreement/fuzzer/fuzzer_test.go +++ b/agreement/fuzzer/fuzzer_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/ledger_test.go b/agreement/fuzzer/ledger_test.go index efd68ae087..53a05f761b 100644 --- a/agreement/fuzzer/ledger_test.go +++ b/agreement/fuzzer/ledger_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/messageDecoderFilter_test.go b/agreement/fuzzer/messageDecoderFilter_test.go index 0482bedea5..6fd6d7a5bd 100644 --- a/agreement/fuzzer/messageDecoderFilter_test.go +++ b/agreement/fuzzer/messageDecoderFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/messageDelayFilter_test.go b/agreement/fuzzer/messageDelayFilter_test.go index be65409d16..d6b970e346 100644 --- a/agreement/fuzzer/messageDelayFilter_test.go +++ b/agreement/fuzzer/messageDelayFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/messageDuplicationFilter_test.go b/agreement/fuzzer/messageDuplicationFilter_test.go index 2be51b3d75..6f8fec90ca 100644 --- a/agreement/fuzzer/messageDuplicationFilter_test.go +++ b/agreement/fuzzer/messageDuplicationFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/messagePriorityQueue_test.go b/agreement/fuzzer/messagePriorityQueue_test.go index d053321442..c503398076 100644 --- a/agreement/fuzzer/messagePriorityQueue_test.go +++ b/agreement/fuzzer/messagePriorityQueue_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/messageReflectionFilter_test.go b/agreement/fuzzer/messageReflectionFilter_test.go index 4ec6f86018..2e2792b0a8 100644 --- a/agreement/fuzzer/messageReflectionFilter_test.go +++ b/agreement/fuzzer/messageReflectionFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/messageRegossipFilter_test.go b/agreement/fuzzer/messageRegossipFilter_test.go index eef3897491..448af42665 100644 --- a/agreement/fuzzer/messageRegossipFilter_test.go +++ b/agreement/fuzzer/messageRegossipFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/messageReorderingFilter_test.go b/agreement/fuzzer/messageReorderingFilter_test.go index e17f12acdb..fa1f50a907 100644 --- a/agreement/fuzzer/messageReorderingFilter_test.go +++ b/agreement/fuzzer/messageReorderingFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/networkFacade_test.go b/agreement/fuzzer/networkFacade_test.go index 804fb1e7ff..47ba719b5a 100644 --- a/agreement/fuzzer/networkFacade_test.go +++ b/agreement/fuzzer/networkFacade_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -79,6 +79,11 @@ type facadePeer struct { } func (p *facadePeer) GetNetwork() network.GossipNode { return p.net } +func (p *facadePeer) RoutingAddr() []byte { + buf := make([]byte, 8) + binary.BigEndian.PutUint64(buf, uint64(p.id)) + return buf +} // MakeNetworkFacade creates a facade with a given nodeID. func MakeNetworkFacade(fuzzer *Fuzzer, nodeID int) *NetworkFacade { diff --git a/agreement/fuzzer/nodeCrashFilter_test.go b/agreement/fuzzer/nodeCrashFilter_test.go index 0f77bc95c2..5cf4267f1e 100644 --- a/agreement/fuzzer/nodeCrashFilter_test.go +++ b/agreement/fuzzer/nodeCrashFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/nullFilter_test.go b/agreement/fuzzer/nullFilter_test.go index ee312d744b..81b236bd10 100644 --- a/agreement/fuzzer/nullFilter_test.go +++ b/agreement/fuzzer/nullFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/router_test.go b/agreement/fuzzer/router_test.go index 576ac4a3d9..f8449f1d55 100644 --- a/agreement/fuzzer/router_test.go +++ b/agreement/fuzzer/router_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/schedulerFilter_test.go b/agreement/fuzzer/schedulerFilter_test.go index f6d84fee62..97d8254821 100644 --- a/agreement/fuzzer/schedulerFilter_test.go +++ b/agreement/fuzzer/schedulerFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/tests_test.go b/agreement/fuzzer/tests_test.go index 45583822cb..5970d55b2e 100644 --- a/agreement/fuzzer/tests_test.go +++ b/agreement/fuzzer/tests_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/topologyFilter_test.go b/agreement/fuzzer/topologyFilter_test.go index 57389cc93f..652c9bf7d3 100644 --- a/agreement/fuzzer/topologyFilter_test.go +++ b/agreement/fuzzer/topologyFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/trafficStatisticsFilter_test.go b/agreement/fuzzer/trafficStatisticsFilter_test.go index 61c31ef568..74ce51a346 100644 --- a/agreement/fuzzer/trafficStatisticsFilter_test.go +++ b/agreement/fuzzer/trafficStatisticsFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/validator_test.go b/agreement/fuzzer/validator_test.go index 92ac385457..7ba511a1a3 100644 --- a/agreement/fuzzer/validator_test.go +++ b/agreement/fuzzer/validator_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/fuzzer/voteFilter_test.go b/agreement/fuzzer/voteFilter_test.go index c61affcb07..23c1bcb3be 100644 --- a/agreement/fuzzer/voteFilter_test.go +++ b/agreement/fuzzer/voteFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/gossip/network.go b/agreement/gossip/network.go index 644bb10d71..f456ee1eeb 100644 --- a/agreement/gossip/network.go +++ b/agreement/gossip/network.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/gossip/networkFull_test.go b/agreement/gossip/networkFull_test.go index fa0133d1a7..d2f0886b4d 100644 --- a/agreement/gossip/networkFull_test.go +++ b/agreement/gossip/networkFull_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/gossip/network_test.go b/agreement/gossip/network_test.go index 2867734ff6..0c19ac7bab 100644 --- a/agreement/gossip/network_test.go +++ b/agreement/gossip/network_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/keyManager_test.go b/agreement/keyManager_test.go index f9337e26d7..18f3ffb44e 100644 --- a/agreement/keyManager_test.go +++ b/agreement/keyManager_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/listener.go b/agreement/listener.go index 99e2e3e6bb..136461396d 100644 --- a/agreement/listener.go +++ b/agreement/listener.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/message.go b/agreement/message.go index 49782f4c9c..e372b06fbe 100644 --- a/agreement/message.go +++ b/agreement/message.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/message_test.go b/agreement/message_test.go index 49056c4983..a71a29830b 100644 --- a/agreement/message_test.go +++ b/agreement/message_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/params.go b/agreement/params.go index a4f290aa1b..09685f4918 100644 --- a/agreement/params.go +++ b/agreement/params.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/persistence.go b/agreement/persistence.go index ffb5db8cfa..0dccd61713 100644 --- a/agreement/persistence.go +++ b/agreement/persistence.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/persistence_test.go b/agreement/persistence_test.go index b039ed7e98..59f8ed5c1f 100644 --- a/agreement/persistence_test.go +++ b/agreement/persistence_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/player.go b/agreement/player.go index c86c465471..8d23aa71b7 100644 --- a/agreement/player.go +++ b/agreement/player.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/playerContract.go b/agreement/playerContract.go index 45a2b3dee4..faa83f699e 100644 --- a/agreement/playerContract.go +++ b/agreement/playerContract.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/player_permutation_test.go b/agreement/player_permutation_test.go index 216316d8bd..81e7cc13c0 100644 --- a/agreement/player_permutation_test.go +++ b/agreement/player_permutation_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/player_test.go b/agreement/player_test.go index 2274156934..0095806041 100644 --- a/agreement/player_test.go +++ b/agreement/player_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposal.go b/agreement/proposal.go index e8d506c4b5..c74ce2b7a0 100644 --- a/agreement/proposal.go +++ b/agreement/proposal.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposalManager.go b/agreement/proposalManager.go index 472e8bb975..bde20fc67e 100644 --- a/agreement/proposalManager.go +++ b/agreement/proposalManager.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposalManagerContract.go b/agreement/proposalManagerContract.go index 6f6adf888c..00c3cb20fd 100644 --- a/agreement/proposalManagerContract.go +++ b/agreement/proposalManagerContract.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposalManager_test.go b/agreement/proposalManager_test.go index bc5b98409f..e45f51058a 100644 --- a/agreement/proposalManager_test.go +++ b/agreement/proposalManager_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposalStore.go b/agreement/proposalStore.go index d7c4c48f95..9f8995add6 100644 --- a/agreement/proposalStore.go +++ b/agreement/proposalStore.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposalStoreContract.go b/agreement/proposalStoreContract.go index 25279de145..22c9b14b98 100644 --- a/agreement/proposalStoreContract.go +++ b/agreement/proposalStoreContract.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposalStore_test.go b/agreement/proposalStore_test.go index d434a3cca8..4228e61951 100644 --- a/agreement/proposalStore_test.go +++ b/agreement/proposalStore_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposalTable.go b/agreement/proposalTable.go index 6659594185..9d1d736fec 100644 --- a/agreement/proposalTable.go +++ b/agreement/proposalTable.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposalTable_test.go b/agreement/proposalTable_test.go index 329ef09187..172a70b633 100644 --- a/agreement/proposalTable_test.go +++ b/agreement/proposalTable_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposalTracker.go b/agreement/proposalTracker.go index 0a9dce9d8e..0b23f198b2 100644 --- a/agreement/proposalTracker.go +++ b/agreement/proposalTracker.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposalTrackerContract.go b/agreement/proposalTrackerContract.go index 0fbcaadab7..c6e944422d 100644 --- a/agreement/proposalTrackerContract.go +++ b/agreement/proposalTrackerContract.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposalTracker_test.go b/agreement/proposalTracker_test.go index 885933df12..4202dc0429 100644 --- a/agreement/proposalTracker_test.go +++ b/agreement/proposalTracker_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/proposal_test.go b/agreement/proposal_test.go index f325c507d6..ac1463b569 100644 --- a/agreement/proposal_test.go +++ b/agreement/proposal_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/pseudonode.go b/agreement/pseudonode.go index 32e42cd374..54c9fde7df 100644 --- a/agreement/pseudonode.go +++ b/agreement/pseudonode.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/pseudonode_test.go b/agreement/pseudonode_test.go index fdc92f1805..9b25e739e2 100644 --- a/agreement/pseudonode_test.go +++ b/agreement/pseudonode_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/router.go b/agreement/router.go index fa7e8dd634..a219e93ad2 100644 --- a/agreement/router.go +++ b/agreement/router.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/selector.go b/agreement/selector.go index 1496027bd6..91d559ffdc 100644 --- a/agreement/selector.go +++ b/agreement/selector.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/service.go b/agreement/service.go index 8e38797492..5247ce34cc 100644 --- a/agreement/service.go +++ b/agreement/service.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/service_test.go b/agreement/service_test.go index 3426b4df3b..3b174c266e 100644 --- a/agreement/service_test.go +++ b/agreement/service_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/sort.go b/agreement/sort.go index e9455336cc..d8b3006642 100644 --- a/agreement/sort.go +++ b/agreement/sort.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/sort_test.go b/agreement/sort_test.go index ef7c6ab7e9..11163abcc5 100644 --- a/agreement/sort_test.go +++ b/agreement/sort_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/state_machine_test.go b/agreement/state_machine_test.go index ee2926c203..73bd279672 100644 --- a/agreement/state_machine_test.go +++ b/agreement/state_machine_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/trace.go b/agreement/trace.go index 2409d103f4..a7860cd996 100644 --- a/agreement/trace.go +++ b/agreement/trace.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/traceTime.go b/agreement/traceTime.go index ed38abe55c..82d9deb521 100644 --- a/agreement/traceTime.go +++ b/agreement/traceTime.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/types.go b/agreement/types.go index a2ca872bb5..2b0145b14d 100644 --- a/agreement/types.go +++ b/agreement/types.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/vote.go b/agreement/vote.go index 0d0c5da27f..b9261a4853 100644 --- a/agreement/vote.go +++ b/agreement/vote.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/voteAggregator.go b/agreement/voteAggregator.go index c5b711a6ee..fc60d4ce6d 100644 --- a/agreement/voteAggregator.go +++ b/agreement/voteAggregator.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/voteAggregatorContract.go b/agreement/voteAggregatorContract.go index 73eb9c83c0..fba3e42f8e 100644 --- a/agreement/voteAggregatorContract.go +++ b/agreement/voteAggregatorContract.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/voteAggregator_test.go b/agreement/voteAggregator_test.go index 2a1eee17a9..1a690e8e76 100644 --- a/agreement/voteAggregator_test.go +++ b/agreement/voteAggregator_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/voteAuxiliary.go b/agreement/voteAuxiliary.go index c1c9402cb3..42ba607d25 100644 --- a/agreement/voteAuxiliary.go +++ b/agreement/voteAuxiliary.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/voteAuxiliaryContract.go b/agreement/voteAuxiliaryContract.go index c8c00810bc..cb58df59cf 100644 --- a/agreement/voteAuxiliaryContract.go +++ b/agreement/voteAuxiliaryContract.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/voteAuxiliary_test.go b/agreement/voteAuxiliary_test.go index 852aa30d8a..181f98ae9e 100644 --- a/agreement/voteAuxiliary_test.go +++ b/agreement/voteAuxiliary_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/voteTracker.go b/agreement/voteTracker.go index 6b0f9453c0..7ca9b54a81 100644 --- a/agreement/voteTracker.go +++ b/agreement/voteTracker.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/voteTrackerContract.go b/agreement/voteTrackerContract.go index ef1e6c671a..972039a9d0 100644 --- a/agreement/voteTrackerContract.go +++ b/agreement/voteTrackerContract.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/voteTracker_test.go b/agreement/voteTracker_test.go index 3ed1454d76..a7186049f9 100644 --- a/agreement/voteTracker_test.go +++ b/agreement/voteTracker_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/agreement/vote_test.go b/agreement/vote_test.go index e5da1842e7..9f5b9c9aed 100644 --- a/agreement/vote_test.go +++ b/agreement/vote_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/buildnumber.dat b/buildnumber.dat index 573541ac97..d00491fd7e 100644 --- a/buildnumber.dat +++ b/buildnumber.dat @@ -1 +1 @@ -0 +1 diff --git a/catchup/catchpointService.go b/catchup/catchpointService.go index efa34436a3..281119f7c7 100644 --- a/catchup/catchpointService.go +++ b/catchup/catchpointService.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/catchup/catchpointService_test.go b/catchup/catchpointService_test.go index 0487fb975f..7e070c5cb7 100644 --- a/catchup/catchpointService_test.go +++ b/catchup/catchpointService_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/catchup/classBasedPeerSelector.go b/catchup/classBasedPeerSelector.go index 9ab9e6d71d..2eca3bef2c 100644 --- a/catchup/classBasedPeerSelector.go +++ b/catchup/classBasedPeerSelector.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/catchup/classBasedPeerSelector_test.go b/catchup/classBasedPeerSelector_test.go index 0110663f87..40c708fe13 100644 --- a/catchup/classBasedPeerSelector_test.go +++ b/catchup/classBasedPeerSelector_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/catchup/fetcher_test.go b/catchup/fetcher_test.go index 85dcaba70b..3d1ce1c837 100644 --- a/catchup/fetcher_test.go +++ b/catchup/fetcher_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -251,6 +251,10 @@ func (p *testUnicastPeer) GetAddress() string { func (p *testUnicastPeer) GetNetwork() network.GossipNode { return p.gn } +func (p *testUnicastPeer) RoutingAddr() []byte { + panic("not implemented") +} + func (p *testUnicastPeer) Request(ctx context.Context, tag protocol.Tag, topics network.Topics) (resp *network.Response, e error) { responseChannel := make(chan *network.Response, 1) diff --git a/catchup/ledgerFetcher.go b/catchup/ledgerFetcher.go index ae4c720108..a2ec642b66 100644 --- a/catchup/ledgerFetcher.go +++ b/catchup/ledgerFetcher.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/catchup/ledgerFetcher_test.go b/catchup/ledgerFetcher_test.go index 71562984bb..521b435413 100644 --- a/catchup/ledgerFetcher_test.go +++ b/catchup/ledgerFetcher_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/catchup/peerSelector.go b/catchup/peerSelector.go index a8eefb0958..851e60771c 100644 --- a/catchup/peerSelector.go +++ b/catchup/peerSelector.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/catchup/peerSelector_test.go b/catchup/peerSelector_test.go index 7aa373d280..fffcfc3960 100644 --- a/catchup/peerSelector_test.go +++ b/catchup/peerSelector_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/catchup/pref_test.go b/catchup/pref_test.go index 7c849630e1..b7078cc6b4 100644 --- a/catchup/pref_test.go +++ b/catchup/pref_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/catchup/service.go b/catchup/service.go index a89f6bcecc..dfd0361960 100644 --- a/catchup/service.go +++ b/catchup/service.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/catchup/service_test.go b/catchup/service_test.go index d20305ce82..de0bfaf8cc 100644 --- a/catchup/service_test.go +++ b/catchup/service_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/catchup/universalFetcher.go b/catchup/universalFetcher.go index fd99bcc612..4d03df6e5a 100644 --- a/catchup/universalFetcher.go +++ b/catchup/universalFetcher.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/catchup/universalFetcher_test.go b/catchup/universalFetcher_test.go index bd7f25b77e..772f635a4b 100644 --- a/catchup/universalFetcher_test.go +++ b/catchup/universalFetcher_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algocfg/getCommand.go b/cmd/algocfg/getCommand.go index 0954177934..2cd7c3fb6f 100644 --- a/cmd/algocfg/getCommand.go +++ b/cmd/algocfg/getCommand.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algocfg/getCommand_test.go b/cmd/algocfg/getCommand_test.go index b2b63c3763..e4def43d96 100644 --- a/cmd/algocfg/getCommand_test.go +++ b/cmd/algocfg/getCommand_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algocfg/main.go b/cmd/algocfg/main.go index 94e81256c4..26a89e52c6 100644 --- a/cmd/algocfg/main.go +++ b/cmd/algocfg/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algocfg/profileCommand.go b/cmd/algocfg/profileCommand.go index c96a95d2b9..ce81491dc6 100644 --- a/cmd/algocfg/profileCommand.go +++ b/cmd/algocfg/profileCommand.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algocfg/profileCommand_test.go b/cmd/algocfg/profileCommand_test.go index bdec2d6577..2e7c62f2d7 100644 --- a/cmd/algocfg/profileCommand_test.go +++ b/cmd/algocfg/profileCommand_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algocfg/report.go b/cmd/algocfg/report.go index 27ce95ffcf..3f0a1c684e 100644 --- a/cmd/algocfg/report.go +++ b/cmd/algocfg/report.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algocfg/resetCommand.go b/cmd/algocfg/resetCommand.go index 079b2e164f..cd51e054d8 100644 --- a/cmd/algocfg/resetCommand.go +++ b/cmd/algocfg/resetCommand.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algocfg/setCommand.go b/cmd/algocfg/setCommand.go index 704237b41c..651d101980 100644 --- a/cmd/algocfg/setCommand.go +++ b/cmd/algocfg/setCommand.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algod/main.go b/cmd/algod/main.go index 306435ad94..c806fcb5f3 100644 --- a/cmd/algod/main.go +++ b/cmd/algod/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algod/main_test.go b/cmd/algod/main_test.go index 917f2d038d..031acaaf71 100644 --- a/cmd/algod/main_test.go +++ b/cmd/algod/main_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algofix/deadlock.go b/cmd/algofix/deadlock.go index 1255e38027..24bab521ae 100644 --- a/cmd/algofix/deadlock.go +++ b/cmd/algofix/deadlock.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algofix/deadlock_test.go b/cmd/algofix/deadlock_test.go index 66fcce29dd..d4874d23f1 100644 --- a/cmd/algofix/deadlock_test.go +++ b/cmd/algofix/deadlock_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algoh/blockWatcher.go b/cmd/algoh/blockWatcher.go index d45609182d..13b1716d4d 100644 --- a/cmd/algoh/blockWatcher.go +++ b/cmd/algoh/blockWatcher.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algoh/blockWatcher_test.go b/cmd/algoh/blockWatcher_test.go index 3daa916dd7..bf2193035c 100644 --- a/cmd/algoh/blockWatcher_test.go +++ b/cmd/algoh/blockWatcher_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algoh/blockstats.go b/cmd/algoh/blockstats.go index a91536dbe2..2bc50d0620 100644 --- a/cmd/algoh/blockstats.go +++ b/cmd/algoh/blockstats.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algoh/blockstats_test.go b/cmd/algoh/blockstats_test.go index a2ac99ec81..a8f1cf1129 100644 --- a/cmd/algoh/blockstats_test.go +++ b/cmd/algoh/blockstats_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algoh/client.go b/cmd/algoh/client.go index 20924f9394..463445daf8 100644 --- a/cmd/algoh/client.go +++ b/cmd/algoh/client.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algoh/deadman.go b/cmd/algoh/deadman.go index ffd4d556b3..4ba1769663 100644 --- a/cmd/algoh/deadman.go +++ b/cmd/algoh/deadman.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algoh/eventsender.go b/cmd/algoh/eventsender.go index 111b94a2ae..6ecdbb0964 100644 --- a/cmd/algoh/eventsender.go +++ b/cmd/algoh/eventsender.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algoh/main.go b/cmd/algoh/main.go index 71ebb368cc..35e9887bfd 100644 --- a/cmd/algoh/main.go +++ b/cmd/algoh/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algoh/mockClient.go b/cmd/algoh/mockClient.go index 5370e78d86..a7f8327d3a 100644 --- a/cmd/algoh/mockClient.go +++ b/cmd/algoh/mockClient.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algokey/common.go b/cmd/algokey/common.go index 8fc5867db9..6c98b91725 100644 --- a/cmd/algokey/common.go +++ b/cmd/algokey/common.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algokey/export.go b/cmd/algokey/export.go index 39fcf9440d..5f35853e88 100644 --- a/cmd/algokey/export.go +++ b/cmd/algokey/export.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algokey/generate.go b/cmd/algokey/generate.go index 6382fa3a0c..3bf6190d76 100644 --- a/cmd/algokey/generate.go +++ b/cmd/algokey/generate.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algokey/import.go b/cmd/algokey/import.go index 53f40d02d0..8d5c047719 100644 --- a/cmd/algokey/import.go +++ b/cmd/algokey/import.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algokey/keyreg.go b/cmd/algokey/keyreg.go index 4b034cef50..df1e23524b 100644 --- a/cmd/algokey/keyreg.go +++ b/cmd/algokey/keyreg.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algokey/main.go b/cmd/algokey/main.go index 2c0aa1644b..42f447ca78 100644 --- a/cmd/algokey/main.go +++ b/cmd/algokey/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algokey/multisig.go b/cmd/algokey/multisig.go index 543735b5d8..bd615857a8 100644 --- a/cmd/algokey/multisig.go +++ b/cmd/algokey/multisig.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algokey/part.go b/cmd/algokey/part.go index cd49f73af7..6f017e20ff 100644 --- a/cmd/algokey/part.go +++ b/cmd/algokey/part.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algokey/sign.go b/cmd/algokey/sign.go index 04b6c3bee2..622404b6e1 100644 --- a/cmd/algokey/sign.go +++ b/cmd/algokey/sign.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algons/commands.go b/cmd/algons/commands.go index a1d17029de..dc8c1c4cbd 100644 --- a/cmd/algons/commands.go +++ b/cmd/algons/commands.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algons/dnsCmd.go b/cmd/algons/dnsCmd.go index da402c3326..28c46427ca 100644 --- a/cmd/algons/dnsCmd.go +++ b/cmd/algons/dnsCmd.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algons/dnsaddrCmd.go b/cmd/algons/dnsaddrCmd.go index b248c867f2..822f6e10ec 100644 --- a/cmd/algons/dnsaddrCmd.go +++ b/cmd/algons/dnsaddrCmd.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algorelay/commands.go b/cmd/algorelay/commands.go index 99c5c80879..c73028c07f 100644 --- a/cmd/algorelay/commands.go +++ b/cmd/algorelay/commands.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algorelay/eb/eb.go b/cmd/algorelay/eb/eb.go index 348d729508..42dad1fd71 100644 --- a/cmd/algorelay/eb/eb.go +++ b/cmd/algorelay/eb/eb.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/algorelay/relayCmd.go b/cmd/algorelay/relayCmd.go index 073147e4f8..803073f07b 100644 --- a/cmd/algorelay/relayCmd.go +++ b/cmd/algorelay/relayCmd.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/buildtools/commands.go b/cmd/buildtools/commands.go index 0920d05ab5..a2ab347951 100644 --- a/cmd/buildtools/commands.go +++ b/cmd/buildtools/commands.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/buildtools/genesis.go b/cmd/buildtools/genesis.go index 853a08489c..631bb6230d 100644 --- a/cmd/buildtools/genesis.go +++ b/cmd/buildtools/genesis.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/catchpointdump/commands.go b/cmd/catchpointdump/commands.go index f9dae40186..f6ec14efe9 100644 --- a/cmd/catchpointdump/commands.go +++ b/cmd/catchpointdump/commands.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/catchpointdump/database.go b/cmd/catchpointdump/database.go index 31f18cc867..23581376ac 100644 --- a/cmd/catchpointdump/database.go +++ b/cmd/catchpointdump/database.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -88,6 +88,14 @@ var databaseCmd = &cobra.Command{ if err != nil { reportErrorf("Unable to print state proof verification database : %v", err) } + err = printOnlineAccounts(ledgerTrackerFilename, ledgerTrackerStaging, outFile) + if err != nil { + reportErrorf("Unable to print online accounts : %v", err) + } + err = printOnlineRoundParams(ledgerTrackerFilename, ledgerTrackerStaging, outFile) + if err != nil { + reportErrorf("Unable to print online round params : %v", err) + } }, } diff --git a/cmd/catchpointdump/file.go b/cmd/catchpointdump/file.go index eeda7f25ec..129245b12b 100644 --- a/cmd/catchpointdump/file.go +++ b/cmd/catchpointdump/file.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -142,6 +142,14 @@ var fileCmd = &cobra.Command{ if err != nil { reportErrorf("Unable to print state proof verification database : %v", err) } + err = printOnlineAccounts("./ledger.tracker.sqlite", true, outFile) + if err != nil { + reportErrorf("Unable to print online accounts : %v", err) + } + err = printOnlineRoundParams("./ledger.tracker.sqlite", true, outFile) + if err != nil { + reportErrorf("Unable to print online round params : %v", err) + } } }, } @@ -219,8 +227,17 @@ func loadCatchpointIntoDatabase(ctx context.Context, catchupAccessor ledger.Catc if err != nil { return fileHeader, err } - fmt.Printf("accounts digest=%s, spver digest=%s, onlineaccounts digest=%s onlineroundparams digest=%s\n\n", + fmt.Printf("accounts digest=%s, spver digest=%s, onlineaccounts digest=%s onlineroundparams digest=%s\n", balanceHash, spverHash, onlineAccountsHash, onlineRoundParamsHash) + + fmt.Printf("Catchpoint label: %s\n", fileHeader.Catchpoint) + // make v7 label + v7Label := ledgercore.MakeCatchpointLabelMakerV7(fileHeader.BlocksRound, &fileHeader.BlockHeaderDigest, &balanceHash, fileHeader.Totals, &spverHash) + fmt.Printf("catchpoint v7 label: %s\n", ledgercore.MakeLabel(v7Label)) + + // make v8 label (current) + v8Label := ledgercore.MakeCatchpointLabelMakerCurrent(fileHeader.BlocksRound, &fileHeader.BlockHeaderDigest, &balanceHash, fileHeader.Totals, &spverHash, &onlineAccountsHash, &onlineRoundParamsHash) + fmt.Printf("catchpoint v8 label: %s\n\n", ledgercore.MakeLabel(v8Label)) } return fileHeader, nil } @@ -296,6 +313,8 @@ func printAccountsDatabase(databaseName string, stagingTables bool, fileHeader l "Catchpoint: %s", "Total Accounts: %d", "Total KVs: %d", + "Total Online Accounts: %d", + "Total Online Round Params: %d", "Total Chunks: %d", } var headerValues = []interface{}{ @@ -306,6 +325,8 @@ func printAccountsDatabase(databaseName string, stagingTables bool, fileHeader l fileHeader.Catchpoint, fileHeader.TotalAccounts, fileHeader.TotalKVs, + fileHeader.TotalOnlineAccounts, + fileHeader.TotalOnlineRoundParams, fileHeader.TotalChunks, } // safety check @@ -511,7 +532,6 @@ func printKeyValue(writer *bufio.Writer, key, value []byte) { } func printKeyValueStore(databaseName string, stagingTables bool, outFile *os.File) error { - fmt.Printf("\n") printDumpingCatchpointProgressLine(0, 50, 0) lastProgressUpdate := time.Now() progress := uint64(0) @@ -560,3 +580,65 @@ func printKeyValueStore(databaseName string, stagingTables bool, outFile *os.Fil return nil }) } + +func printOnlineAccounts(databaseName string, stagingTables bool, outFile *os.File) error { + fileWriter := bufio.NewWriterSize(outFile, 1024*1024) + defer fileWriter.Flush() + + dbAccessor, err := db.MakeAccessor(databaseName, true, false) + if err != nil || dbAccessor.Handle == nil { + return err + } + + return dbAccessor.Atomic(func(ctx context.Context, tx *sql.Tx) error { + rows, err := sqlitedriver.MakeOnlineAccountsIter(ctx, tx, stagingTables, 0) + if err != nil { + return err + } + defer rows.Close() + for rows.Next() { + row, err := rows.GetItem() + if err != nil { + return err + } + jsonData, err := json.Marshal(row) + if err != nil { + return err + } + + fmt.Fprintf(fileWriter, "onlineaccount: %s\n", string(jsonData)) + } + return nil + }) +} + +func printOnlineRoundParams(databaseName string, stagingTables bool, outFile *os.File) error { + fileWriter := bufio.NewWriterSize(outFile, 1024*1024) + defer fileWriter.Flush() + + dbAccessor, err := db.MakeAccessor(databaseName, true, false) + if err != nil || dbAccessor.Handle == nil { + return err + } + + return dbAccessor.Atomic(func(ctx context.Context, tx *sql.Tx) error { + rows, err := sqlitedriver.MakeOnlineRoundParamsIter(ctx, tx, stagingTables, 0) + if err != nil { + return err + } + defer rows.Close() + for rows.Next() { + row, err := rows.GetItem() + if err != nil { + return err + } + jsonData, err := json.Marshal(row) + if err != nil { + return err + } + + fmt.Fprintf(fileWriter, "onlineroundparams: %s\n", string(jsonData)) + } + return nil + }) +} diff --git a/cmd/catchpointdump/net.go b/cmd/catchpointdump/net.go index 41e1fd1dd0..079d8e2e9b 100644 --- a/cmd/catchpointdump/net.go +++ b/cmd/catchpointdump/net.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -365,7 +365,14 @@ func loadAndDump(addr string, tarFile string, genesisInitState ledgercore.InitSt if err != nil { return err } - + err = printOnlineAccounts("./ledger.tracker.sqlite", true, outFile) + if err != nil { + return err + } + err = printOnlineRoundParams("./ledger.tracker.sqlite", true, outFile) + if err != nil { + return err + } } return nil } diff --git a/cmd/catchupsrv/download.go b/cmd/catchupsrv/download.go index 80c1cc679b..3c860dc3d1 100644 --- a/cmd/catchupsrv/download.go +++ b/cmd/catchupsrv/download.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/catchupsrv/download_test.go b/cmd/catchupsrv/download_test.go index 18ff841045..5e576ff55a 100644 --- a/cmd/catchupsrv/download_test.go +++ b/cmd/catchupsrv/download_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/catchupsrv/main.go b/cmd/catchupsrv/main.go index 91fa4b0702..d80ae2701f 100644 --- a/cmd/catchupsrv/main.go +++ b/cmd/catchupsrv/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/catchupsrv/tarblocks.go b/cmd/catchupsrv/tarblocks.go index c1498fec05..90936e428e 100644 --- a/cmd/catchupsrv/tarblocks.go +++ b/cmd/catchupsrv/tarblocks.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/dbgen/main.go b/cmd/dbgen/main.go index 3c486ba224..82f54318fc 100644 --- a/cmd/dbgen/main.go +++ b/cmd/dbgen/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/diagcfg/main.go b/cmd/diagcfg/main.go index fc81c6791c..672968d47c 100644 --- a/cmd/diagcfg/main.go +++ b/cmd/diagcfg/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/diagcfg/messages.go b/cmd/diagcfg/messages.go index 75174fc697..ed1e2b9684 100644 --- a/cmd/diagcfg/messages.go +++ b/cmd/diagcfg/messages.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/diagcfg/metric.go b/cmd/diagcfg/metric.go index 4e802ba726..54f7b66970 100644 --- a/cmd/diagcfg/metric.go +++ b/cmd/diagcfg/metric.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/diagcfg/telemetry.go b/cmd/diagcfg/telemetry.go index a4aece54f6..b70ec32290 100644 --- a/cmd/diagcfg/telemetry.go +++ b/cmd/diagcfg/telemetry.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/dispenser/server.go b/cmd/dispenser/server.go index 5501a69b74..4f217cda7b 100644 --- a/cmd/dispenser/server.go +++ b/cmd/dispenser/server.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/genesis/newgenesis.go b/cmd/genesis/newgenesis.go index bce6ca3dd2..22c0801f24 100644 --- a/cmd/genesis/newgenesis.go +++ b/cmd/genesis/newgenesis.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/account.go b/cmd/goal/account.go index b92d58f962..524542ec53 100644 --- a/cmd/goal/account.go +++ b/cmd/goal/account.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/accountsList.go b/cmd/goal/accountsList.go index 5e4a2e6fa8..ab93bb5ce8 100644 --- a/cmd/goal/accountsList.go +++ b/cmd/goal/accountsList.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/application.go b/cmd/goal/application.go index a949e78211..587810b22f 100644 --- a/cmd/goal/application.go +++ b/cmd/goal/application.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/application_test.go b/cmd/goal/application_test.go index 2f49a276a2..bccc9f352f 100644 --- a/cmd/goal/application_test.go +++ b/cmd/goal/application_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/asset.go b/cmd/goal/asset.go index 0263188048..1625b13676 100644 --- a/cmd/goal/asset.go +++ b/cmd/goal/asset.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/box.go b/cmd/goal/box.go index c32b631263..bc98b02061 100644 --- a/cmd/goal/box.go +++ b/cmd/goal/box.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/clerk.go b/cmd/goal/clerk.go index 9387918881..36cd291e83 100644 --- a/cmd/goal/clerk.go +++ b/cmd/goal/clerk.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/clerk_test.go b/cmd/goal/clerk_test.go index 92bcd0315a..7cd7700b67 100644 --- a/cmd/goal/clerk_test.go +++ b/cmd/goal/clerk_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/commands.go b/cmd/goal/commands.go index 4758abbc3a..8054884af9 100644 --- a/cmd/goal/commands.go +++ b/cmd/goal/commands.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/commands_test.go b/cmd/goal/commands_test.go index 986ade2712..0f33fb9f1e 100644 --- a/cmd/goal/commands_test.go +++ b/cmd/goal/commands_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/common.go b/cmd/goal/common.go index 0a8637f98a..100e372049 100644 --- a/cmd/goal/common.go +++ b/cmd/goal/common.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/completion.go b/cmd/goal/completion.go index 0a49f69b4e..81d047c93c 100644 --- a/cmd/goal/completion.go +++ b/cmd/goal/completion.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/formatting.go b/cmd/goal/formatting.go index 32484412fe..892e2d999a 100644 --- a/cmd/goal/formatting.go +++ b/cmd/goal/formatting.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/formatting_test.go b/cmd/goal/formatting_test.go index 158271cf44..d113e3225b 100644 --- a/cmd/goal/formatting_test.go +++ b/cmd/goal/formatting_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/inspect.go b/cmd/goal/inspect.go index 7f57e26f0a..b66664e294 100644 --- a/cmd/goal/inspect.go +++ b/cmd/goal/inspect.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/inspect_test.go b/cmd/goal/inspect_test.go index 7feb1ed03c..6c043f4bd3 100644 --- a/cmd/goal/inspect_test.go +++ b/cmd/goal/inspect_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/interact.go b/cmd/goal/interact.go index e2f0226e90..a0796506cd 100644 --- a/cmd/goal/interact.go +++ b/cmd/goal/interact.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/kmd.go b/cmd/goal/kmd.go index 4076cc8aca..3caef1eaea 100644 --- a/cmd/goal/kmd.go +++ b/cmd/goal/kmd.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/ledger.go b/cmd/goal/ledger.go index 586b28b07c..1064bd1eea 100644 --- a/cmd/goal/ledger.go +++ b/cmd/goal/ledger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/logging.go b/cmd/goal/logging.go index c1894cef5a..6ca2ba444e 100644 --- a/cmd/goal/logging.go +++ b/cmd/goal/logging.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/messages.go b/cmd/goal/messages.go index 1bc78ce30a..0b6440b75c 100644 --- a/cmd/goal/messages.go +++ b/cmd/goal/messages.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/multisig.go b/cmd/goal/multisig.go index a1e9b60494..cacff18fcd 100644 --- a/cmd/goal/multisig.go +++ b/cmd/goal/multisig.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/network.go b/cmd/goal/network.go index 41120f7db2..b1ff14e839 100644 --- a/cmd/goal/network.go +++ b/cmd/goal/network.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/node.go b/cmd/goal/node.go index 8bb103115b..900b05204c 100644 --- a/cmd/goal/node.go +++ b/cmd/goal/node.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/node_test.go b/cmd/goal/node_test.go index e789c786a2..b743d8a640 100644 --- a/cmd/goal/node_test.go +++ b/cmd/goal/node_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/p2pid.go b/cmd/goal/p2pid.go index b35a946432..de51c00ab7 100644 --- a/cmd/goal/p2pid.go +++ b/cmd/goal/p2pid.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/tealsign.go b/cmd/goal/tealsign.go index 9cad30a9fc..0663771655 100644 --- a/cmd/goal/tealsign.go +++ b/cmd/goal/tealsign.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/goal/wallet.go b/cmd/goal/wallet.go index e95aea62a6..104e5998c3 100644 --- a/cmd/goal/wallet.go +++ b/cmd/goal/wallet.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/incorporate/incorporate.go b/cmd/incorporate/incorporate.go index b9f7dd55b1..4d3e429467 100644 --- a/cmd/incorporate/incorporate.go +++ b/cmd/incorporate/incorporate.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/kmd/codes/codes.go b/cmd/kmd/codes/codes.go index e49c456f0d..5f164c8b05 100644 --- a/cmd/kmd/codes/codes.go +++ b/cmd/kmd/codes/codes.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/kmd/main.go b/cmd/kmd/main.go index 711ee75146..83fe77f795 100644 --- a/cmd/kmd/main.go +++ b/cmd/kmd/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/kmd/mlock_darwin.go b/cmd/kmd/mlock_darwin.go index cc9d7fde6b..8734c947bd 100644 --- a/cmd/kmd/mlock_darwin.go +++ b/cmd/kmd/mlock_darwin.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/kmd/mlock_linux.go b/cmd/kmd/mlock_linux.go index 04e6b4232e..1120bdd0fe 100644 --- a/cmd/kmd/mlock_linux.go +++ b/cmd/kmd/mlock_linux.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/kmd/mlock_windows.go b/cmd/kmd/mlock_windows.go index 29f9b14778..373442f94d 100644 --- a/cmd/kmd/mlock_windows.go +++ b/cmd/kmd/mlock_windows.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/loadgenerator/config.go b/cmd/loadgenerator/config.go index f31296f354..b19b96c824 100644 --- a/cmd/loadgenerator/config.go +++ b/cmd/loadgenerator/config.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/loadgenerator/main.go b/cmd/loadgenerator/main.go index 00b3a96727..8f7dd213eb 100644 --- a/cmd/loadgenerator/main.go +++ b/cmd/loadgenerator/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/msgpacktool/main.go b/cmd/msgpacktool/main.go index 80ae61995c..dc6f87072c 100644 --- a/cmd/msgpacktool/main.go +++ b/cmd/msgpacktool/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/netdummy/main.go b/cmd/netdummy/main.go index ef8737368f..2dd434fe9b 100644 --- a/cmd/netdummy/main.go +++ b/cmd/netdummy/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/netgoal/commands.go b/cmd/netgoal/commands.go index ebdf404132..699a2f393b 100644 --- a/cmd/netgoal/commands.go +++ b/cmd/netgoal/commands.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/netgoal/generate.go b/cmd/netgoal/generate.go index 9e87004a05..e3188f3381 100644 --- a/cmd/netgoal/generate.go +++ b/cmd/netgoal/generate.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/netgoal/messages.go b/cmd/netgoal/messages.go index f75c639b92..e378097170 100644 --- a/cmd/netgoal/messages.go +++ b/cmd/netgoal/messages.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/netgoal/network.go b/cmd/netgoal/network.go index fef3850868..8638d8151f 100644 --- a/cmd/netgoal/network.go +++ b/cmd/netgoal/network.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/netgoal/recipe.go b/cmd/netgoal/recipe.go index 0606a253a5..32c4305e0f 100644 --- a/cmd/netgoal/recipe.go +++ b/cmd/netgoal/recipe.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/nodecfg/apply.go b/cmd/nodecfg/apply.go index 49d812ead1..cfb9bfcd60 100644 --- a/cmd/nodecfg/apply.go +++ b/cmd/nodecfg/apply.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/nodecfg/commands.go b/cmd/nodecfg/commands.go index 8e492d73f0..1d2258945c 100644 --- a/cmd/nodecfg/commands.go +++ b/cmd/nodecfg/commands.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/nodecfg/download.go b/cmd/nodecfg/download.go index 1be8fc4d76..e87077e73a 100644 --- a/cmd/nodecfg/download.go +++ b/cmd/nodecfg/download.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/nodecfg/get.go b/cmd/nodecfg/get.go index d21f84c06b..df9b3ef17a 100644 --- a/cmd/nodecfg/get.go +++ b/cmd/nodecfg/get.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/opdoc/opdoc.go b/cmd/opdoc/opdoc.go index 2090462261..e2ce42028b 100644 --- a/cmd/opdoc/opdoc.go +++ b/cmd/opdoc/opdoc.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/opdoc/tmLanguage.go b/cmd/opdoc/tmLanguage.go index fce6388591..4ccb794da8 100644 --- a/cmd/opdoc/tmLanguage.go +++ b/cmd/opdoc/tmLanguage.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/partitiontest_linter/linter.go b/cmd/partitiontest_linter/linter.go index 7a000e5aba..05af0ae6b9 100644 --- a/cmd/partitiontest_linter/linter.go +++ b/cmd/partitiontest_linter/linter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/partitiontest_linter/linter_test.go b/cmd/partitiontest_linter/linter_test.go index a586c9d0b8..5422eeb47d 100644 --- a/cmd/partitiontest_linter/linter_test.go +++ b/cmd/partitiontest_linter/linter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/partitiontest_linter/plugin/plugin.go b/cmd/partitiontest_linter/plugin/plugin.go index 9a895ce90e..a8f248c65c 100644 --- a/cmd/partitiontest_linter/plugin/plugin.go +++ b/cmd/partitiontest_linter/plugin/plugin.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/partitiontest_linter/testdata/linter_testdata_test.go b/cmd/partitiontest_linter/testdata/linter_testdata_test.go index 308f7f1803..b50d313b3e 100644 --- a/cmd/partitiontest_linter/testdata/linter_testdata_test.go +++ b/cmd/partitiontest_linter/testdata/linter_testdata_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/pingpong/commands.go b/cmd/pingpong/commands.go index fb44d8b076..81f793ecb2 100644 --- a/cmd/pingpong/commands.go +++ b/cmd/pingpong/commands.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/pingpong/runCmd.go b/cmd/pingpong/runCmd.go index a29a233c8d..6a57cab766 100644 --- a/cmd/pingpong/runCmd.go +++ b/cmd/pingpong/runCmd.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/pingpong/teal_programs.go b/cmd/pingpong/teal_programs.go index cd54fc1ec8..850f9a1dbb 100644 --- a/cmd/pingpong/teal_programs.go +++ b/cmd/pingpong/teal_programs.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/bundle_home_html.sh b/cmd/tealdbg/bundle_home_html.sh index eff5acd41b..63091361ff 100755 --- a/cmd/tealdbg/bundle_home_html.sh +++ b/cmd/tealdbg/bundle_home_html.sh @@ -3,7 +3,7 @@ THISDIR=$(dirname $0) cat < $THISDIR/homepage.go -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/cdt/proto.go b/cmd/tealdbg/cdt/proto.go index f15a45d257..60e7f9c4d5 100644 --- a/cmd/tealdbg/cdt/proto.go +++ b/cmd/tealdbg/cdt/proto.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/cdtSession.go b/cmd/tealdbg/cdtSession.go index ad4e879e7c..f7324923ae 100644 --- a/cmd/tealdbg/cdtSession.go +++ b/cmd/tealdbg/cdtSession.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/cdtSession_test.go b/cmd/tealdbg/cdtSession_test.go index 6c755511cf..8c45e7c518 100644 --- a/cmd/tealdbg/cdtSession_test.go +++ b/cmd/tealdbg/cdtSession_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/cdtState.go b/cmd/tealdbg/cdtState.go index 65d3e4fb16..32a070e9c8 100644 --- a/cmd/tealdbg/cdtState.go +++ b/cmd/tealdbg/cdtState.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/cdtStateObjects.go b/cmd/tealdbg/cdtStateObjects.go index d329156729..13b8f6724a 100644 --- a/cmd/tealdbg/cdtStateObjects.go +++ b/cmd/tealdbg/cdtStateObjects.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/cdtdbg.go b/cmd/tealdbg/cdtdbg.go index 470aec2a59..8ed3d8f1c8 100644 --- a/cmd/tealdbg/cdtdbg.go +++ b/cmd/tealdbg/cdtdbg.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/cdtdbg_test.go b/cmd/tealdbg/cdtdbg_test.go index a8c11cc3f6..2faa76ca45 100644 --- a/cmd/tealdbg/cdtdbg_test.go +++ b/cmd/tealdbg/cdtdbg_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/debugger.go b/cmd/tealdbg/debugger.go index 0f70e0814c..ceb7c46a3c 100644 --- a/cmd/tealdbg/debugger.go +++ b/cmd/tealdbg/debugger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/debugger_test.go b/cmd/tealdbg/debugger_test.go index 9a03362ab7..46b562cc1d 100644 --- a/cmd/tealdbg/debugger_test.go +++ b/cmd/tealdbg/debugger_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/dryrunRequest.go b/cmd/tealdbg/dryrunRequest.go index 958b43f87c..ddd8531196 100644 --- a/cmd/tealdbg/dryrunRequest.go +++ b/cmd/tealdbg/dryrunRequest.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/homepage.go b/cmd/tealdbg/homepage.go index f0c6a9bb45..e82c5ce23e 100644 --- a/cmd/tealdbg/homepage.go +++ b/cmd/tealdbg/homepage.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/local.go b/cmd/tealdbg/local.go index 332b581cfb..0f31d795a8 100644 --- a/cmd/tealdbg/local.go +++ b/cmd/tealdbg/local.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/localLedger.go b/cmd/tealdbg/localLedger.go index 16f28fd904..2592556f94 100644 --- a/cmd/tealdbg/localLedger.go +++ b/cmd/tealdbg/localLedger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/localLedger_test.go b/cmd/tealdbg/localLedger_test.go index 79423c834b..7e74ec5b9a 100644 --- a/cmd/tealdbg/localLedger_test.go +++ b/cmd/tealdbg/localLedger_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/local_test.go b/cmd/tealdbg/local_test.go index 78558d8cf2..99fe763a0a 100644 --- a/cmd/tealdbg/local_test.go +++ b/cmd/tealdbg/local_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/main.go b/cmd/tealdbg/main.go index 313f4da054..c0f3fe5842 100644 --- a/cmd/tealdbg/main.go +++ b/cmd/tealdbg/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/remote.go b/cmd/tealdbg/remote.go index b845c2d3a7..35e10d94e0 100644 --- a/cmd/tealdbg/remote.go +++ b/cmd/tealdbg/remote.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/remote_test.go b/cmd/tealdbg/remote_test.go index 99b4b67c05..f79464ef24 100644 --- a/cmd/tealdbg/remote_test.go +++ b/cmd/tealdbg/remote_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/server.go b/cmd/tealdbg/server.go index ec457443bf..85a3b889c0 100644 --- a/cmd/tealdbg/server.go +++ b/cmd/tealdbg/server.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/server_test.go b/cmd/tealdbg/server_test.go index 492ebfab7a..aa89f73f08 100644 --- a/cmd/tealdbg/server_test.go +++ b/cmd/tealdbg/server_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/util.go b/cmd/tealdbg/util.go index fe4fcd05d3..e0ad536513 100644 --- a/cmd/tealdbg/util.go +++ b/cmd/tealdbg/util.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/webdbg.go b/cmd/tealdbg/webdbg.go index 2012127c64..d05bff822b 100644 --- a/cmd/tealdbg/webdbg.go +++ b/cmd/tealdbg/webdbg.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/tealdbg/webdbg_test.go b/cmd/tealdbg/webdbg_test.go index 36962ba8d4..f7aadd7bf3 100644 --- a/cmd/tealdbg/webdbg_test.go +++ b/cmd/tealdbg/webdbg_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/updater/commands.go b/cmd/updater/commands.go index 335a149caa..d418ef0049 100644 --- a/cmd/updater/commands.go +++ b/cmd/updater/commands.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/updater/sendCmd.go b/cmd/updater/sendCmd.go index 116340d93d..ce348e3f6e 100644 --- a/cmd/updater/sendCmd.go +++ b/cmd/updater/sendCmd.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/updater/toolsCmd.go b/cmd/updater/toolsCmd.go index 1a44f6805c..bc6866dffe 100644 --- a/cmd/updater/toolsCmd.go +++ b/cmd/updater/toolsCmd.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/updater/util.go b/cmd/updater/util.go index d33c2ce1e9..954d2bbc1c 100644 --- a/cmd/updater/util.go +++ b/cmd/updater/util.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/updater/versionCmd.go b/cmd/updater/versionCmd.go index 374fd982ac..19e57b7ae1 100644 --- a/cmd/updater/versionCmd.go +++ b/cmd/updater/versionCmd.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/updater/version_test.go b/cmd/updater/version_test.go index 6f5418e30f..9409717da2 100644 --- a/cmd/updater/version_test.go +++ b/cmd/updater/version_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/util/cmd.go b/cmd/util/cmd.go index 780aa685b2..16cc22f1a9 100644 --- a/cmd/util/cmd.go +++ b/cmd/util/cmd.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/util/datadir/datadir.go b/cmd/util/datadir/datadir.go index 41928b97e1..8040ccaec2 100644 --- a/cmd/util/datadir/datadir.go +++ b/cmd/util/datadir/datadir.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/util/datadir/messages.go b/cmd/util/datadir/messages.go index e70965e89e..a5a7d4813a 100644 --- a/cmd/util/datadir/messages.go +++ b/cmd/util/datadir/messages.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/cmd/util/datadir/report.go b/cmd/util/datadir/report.go index d5e2e98149..5d8325a13f 100644 --- a/cmd/util/datadir/report.go +++ b/cmd/util/datadir/report.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/components/mocks/mockCatchpointCatchupAccessor.go b/components/mocks/mockCatchpointCatchupAccessor.go index 1d7355b3b7..4297db66c8 100644 --- a/components/mocks/mockCatchpointCatchupAccessor.go +++ b/components/mocks/mockCatchpointCatchupAccessor.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/components/mocks/mockNetwork.go b/components/mocks/mockNetwork.go index 3a1795f057..21d640a084 100644 --- a/components/mocks/mockNetwork.go +++ b/components/mocks/mockNetwork.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/components/mocks/mockParticipationRegistry.go b/components/mocks/mockParticipationRegistry.go index 525c8b1cd3..3e4cfaf5ca 100644 --- a/components/mocks/mockParticipationRegistry.go +++ b/components/mocks/mockParticipationRegistry.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/buildvars.go b/config/buildvars.go index 011d27b64d..de55a25f27 100644 --- a/config/buildvars.go +++ b/config/buildvars.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/config.go b/config/config.go index 07cd69cbda..5bda44c3b0 100644 --- a/config/config.go +++ b/config/config.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/config_test.go b/config/config_test.go index fd16bb0813..5661138183 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/consensus.go b/config/consensus.go index 32343ed154..389e259d30 100644 --- a/config/consensus.go +++ b/config/consensus.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/consensus_test.go b/config/consensus_test.go index 6bc8d45c45..ed09422916 100644 --- a/config/consensus_test.go +++ b/config/consensus_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/defaultsGenerator/defaultsGenerator.go b/config/defaultsGenerator/defaultsGenerator.go index 9afe0d01bd..385726201b 100644 --- a/config/defaultsGenerator/defaultsGenerator.go +++ b/config/defaultsGenerator/defaultsGenerator.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/dnsbootstrap.go b/config/dnsbootstrap.go index 17722e8952..d6780384b3 100644 --- a/config/dnsbootstrap.go +++ b/config/dnsbootstrap.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/dnsbootstrap_test.go b/config/dnsbootstrap_test.go index ccf0f9023f..1e12b64f0d 100644 --- a/config/dnsbootstrap_test.go +++ b/config/dnsbootstrap_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/keyfile.go b/config/keyfile.go index 4e29b74333..b9282ce0d6 100644 --- a/config/keyfile.go +++ b/config/keyfile.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/localTemplate.go b/config/localTemplate.go index 0bb0c2a618..f8b673d195 100644 --- a/config/localTemplate.go +++ b/config/localTemplate.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/local_defaults.go b/config/local_defaults.go index 2891184a21..fcc6e3d3d8 100644 --- a/config/local_defaults.go +++ b/config/local_defaults.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/migrate.go b/config/migrate.go index 8a72407743..0670ab626e 100644 --- a/config/migrate.go +++ b/config/migrate.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/version.go b/config/version.go index 08f6cae898..cd10be13b5 100644 --- a/config/version.go +++ b/config/version.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/config/version_test.go b/config/version_test.go index 8b1d8c17b8..d462008020 100644 --- a/config/version_test.go +++ b/config/version_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/batchverifier.go b/crypto/batchverifier.go index 661e382898..d265e6e4f4 100644 --- a/crypto/batchverifier.go +++ b/crypto/batchverifier.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/batchverifier_test.go b/crypto/batchverifier_test.go index 3922105aa5..6f3c5954fc 100644 --- a/crypto/batchverifier_test.go +++ b/crypto/batchverifier_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/crypto_test.go b/crypto/crypto_test.go index ee3a23d58f..82273c6fbe 100644 --- a/crypto/crypto_test.go +++ b/crypto/crypto_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/cryptoerror.go b/crypto/cryptoerror.go index b635f1ea88..6d1b468c5e 100644 --- a/crypto/cryptoerror.go +++ b/crypto/cryptoerror.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/curve25519.go b/crypto/curve25519.go index 0961ed6263..9a7e92ad2a 100644 --- a/crypto/curve25519.go +++ b/crypto/curve25519.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/curve25519_test.go b/crypto/curve25519_test.go index fac0bd6ab9..9bbbb11158 100644 --- a/crypto/curve25519_test.go +++ b/crypto/curve25519_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/digest.go b/crypto/digest.go index 967fa68abf..3e20fb236a 100644 --- a/crypto/digest.go +++ b/crypto/digest.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/encoding_test.go b/crypto/encoding_test.go index 0093b6c587..e400a19f7a 100644 --- a/crypto/encoding_test.go +++ b/crypto/encoding_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/falconWrapper.go b/crypto/falconWrapper.go index 4930210425..63158fcc85 100644 --- a/crypto/falconWrapper.go +++ b/crypto/falconWrapper.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/falconWrapper_test.go b/crypto/falconWrapper_test.go index cb251c7d89..4d8720e9f9 100644 --- a/crypto/falconWrapper_test.go +++ b/crypto/falconWrapper_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/hashes.go b/crypto/hashes.go index 3e232ed27d..b4392300bf 100644 --- a/crypto/hashes.go +++ b/crypto/hashes.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/hashes_test.go b/crypto/hashes_test.go index 2988f9ca1e..8999834423 100644 --- a/crypto/hashes_test.go +++ b/crypto/hashes_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/memcpy_chk_windows.c b/crypto/memcpy_chk_windows.c index 3cff6c7da2..c48d685f0d 100644 --- a/crypto/memcpy_chk_windows.c +++ b/crypto/memcpy_chk_windows.c @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklearray/array.go b/crypto/merklearray/array.go index 2e1eccb398..cfab888cde 100644 --- a/crypto/merklearray/array.go +++ b/crypto/merklearray/array.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklearray/layer.go b/crypto/merklearray/layer.go index bed28ccf51..728653ff7e 100644 --- a/crypto/merklearray/layer.go +++ b/crypto/merklearray/layer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklearray/merkle.go b/crypto/merklearray/merkle.go index af74ad416f..f77b6dcf7b 100644 --- a/crypto/merklearray/merkle.go +++ b/crypto/merklearray/merkle.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklearray/merkle_test.go b/crypto/merklearray/merkle_test.go index f62d6c282c..4c15f74df6 100644 --- a/crypto/merklearray/merkle_test.go +++ b/crypto/merklearray/merkle_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklearray/partial.go b/crypto/merklearray/partial.go index baebf4538d..e16dc7f12c 100644 --- a/crypto/merklearray/partial.go +++ b/crypto/merklearray/partial.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklearray/proof.go b/crypto/merklearray/proof.go index 8caa057bd3..bd88562d51 100644 --- a/crypto/merklearray/proof.go +++ b/crypto/merklearray/proof.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklearray/proof_test.go b/crypto/merklearray/proof_test.go index 7ef7ae044b..dd93d1a8f4 100644 --- a/crypto/merklearray/proof_test.go +++ b/crypto/merklearray/proof_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklearray/vectorCommitmentArray.go b/crypto/merklearray/vectorCommitmentArray.go index 6745aca603..82bdc8c67e 100644 --- a/crypto/merklearray/vectorCommitmentArray.go +++ b/crypto/merklearray/vectorCommitmentArray.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklearray/vectorCommitmentArray_test.go b/crypto/merklearray/vectorCommitmentArray_test.go index 24b1d32e9d..136609df78 100644 --- a/crypto/merklearray/vectorCommitmentArray_test.go +++ b/crypto/merklearray/vectorCommitmentArray_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklearray/worker.go b/crypto/merklearray/worker.go index 2c33440679..9d5179cbef 100644 --- a/crypto/merklearray/worker.go +++ b/crypto/merklearray/worker.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklesignature/committablePublicKeys.go b/crypto/merklesignature/committablePublicKeys.go index a636b3f02a..8cd8857057 100644 --- a/crypto/merklesignature/committablePublicKeys.go +++ b/crypto/merklesignature/committablePublicKeys.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklesignature/committablePublicKeys_test.go b/crypto/merklesignature/committablePublicKeys_test.go index 68463bf8e6..979528f236 100644 --- a/crypto/merklesignature/committablePublicKeys_test.go +++ b/crypto/merklesignature/committablePublicKeys_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklesignature/const.go b/crypto/merklesignature/const.go index 40817d4215..a7e529771f 100644 --- a/crypto/merklesignature/const.go +++ b/crypto/merklesignature/const.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklesignature/kats_test.go b/crypto/merklesignature/kats_test.go index 64b3e8c539..53aff9c2f0 100644 --- a/crypto/merklesignature/kats_test.go +++ b/crypto/merklesignature/kats_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklesignature/keysBuilder.go b/crypto/merklesignature/keysBuilder.go index 68ee76ae30..aaf8ce8a47 100644 --- a/crypto/merklesignature/keysBuilder.go +++ b/crypto/merklesignature/keysBuilder.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklesignature/keysBuilder_test.go b/crypto/merklesignature/keysBuilder_test.go index 01dd082fd4..c54c230bd9 100644 --- a/crypto/merklesignature/keysBuilder_test.go +++ b/crypto/merklesignature/keysBuilder_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklesignature/merkleSignatureScheme.go b/crypto/merklesignature/merkleSignatureScheme.go index 61724af4ec..a17a59c84b 100644 --- a/crypto/merklesignature/merkleSignatureScheme.go +++ b/crypto/merklesignature/merkleSignatureScheme.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklesignature/merkleSignatureScheme_test.go b/crypto/merklesignature/merkleSignatureScheme_test.go index 5abd9b77cb..9670e90ba1 100644 --- a/crypto/merklesignature/merkleSignatureScheme_test.go +++ b/crypto/merklesignature/merkleSignatureScheme_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklesignature/persistentMerkleSignatureScheme.go b/crypto/merklesignature/persistentMerkleSignatureScheme.go index 66f1dd055b..e3cd8c4b9d 100644 --- a/crypto/merklesignature/persistentMerkleSignatureScheme.go +++ b/crypto/merklesignature/persistentMerkleSignatureScheme.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklesignature/persistentMerkleSignatureScheme_test.go b/crypto/merklesignature/persistentMerkleSignatureScheme_test.go index adc22833f1..95179f3f04 100644 --- a/crypto/merklesignature/persistentMerkleSignatureScheme_test.go +++ b/crypto/merklesignature/persistentMerkleSignatureScheme_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklesignature/posdivs.go b/crypto/merklesignature/posdivs.go index 09b798c780..b1d8374b10 100644 --- a/crypto/merklesignature/posdivs.go +++ b/crypto/merklesignature/posdivs.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merklesignature/posdivs_test.go b/crypto/merklesignature/posdivs_test.go index 68f4b77aba..cb3fd5275a 100644 --- a/crypto/merklesignature/posdivs_test.go +++ b/crypto/merklesignature/posdivs_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merkletrie/bitset.go b/crypto/merkletrie/bitset.go index f764137a9a..7862576b78 100644 --- a/crypto/merkletrie/bitset.go +++ b/crypto/merkletrie/bitset.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merkletrie/bitset_test.go b/crypto/merkletrie/bitset_test.go index 315b27c952..2bf3bc392a 100644 --- a/crypto/merkletrie/bitset_test.go +++ b/crypto/merkletrie/bitset_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merkletrie/cache.go b/crypto/merkletrie/cache.go index 1491517e07..3f8a8d861d 100644 --- a/crypto/merkletrie/cache.go +++ b/crypto/merkletrie/cache.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merkletrie/cache_test.go b/crypto/merkletrie/cache_test.go index ac08ea442f..9ff3649efb 100644 --- a/crypto/merkletrie/cache_test.go +++ b/crypto/merkletrie/cache_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merkletrie/committer.go b/crypto/merkletrie/committer.go index bbfb54966e..eb935a901e 100644 --- a/crypto/merkletrie/committer.go +++ b/crypto/merkletrie/committer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merkletrie/committer_test.go b/crypto/merkletrie/committer_test.go index 6260379aad..004c0b60f7 100644 --- a/crypto/merkletrie/committer_test.go +++ b/crypto/merkletrie/committer_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merkletrie/node.go b/crypto/merkletrie/node.go index 327a6eba65..c7b616d6e6 100644 --- a/crypto/merkletrie/node.go +++ b/crypto/merkletrie/node.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merkletrie/node_test.go b/crypto/merkletrie/node_test.go index c9fc2e46f4..1ffa67bb8b 100644 --- a/crypto/merkletrie/node_test.go +++ b/crypto/merkletrie/node_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merkletrie/trie.go b/crypto/merkletrie/trie.go index 6bb2a51851..4686647e75 100644 --- a/crypto/merkletrie/trie.go +++ b/crypto/merkletrie/trie.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/merkletrie/trie_test.go b/crypto/merkletrie/trie_test.go index 7b15d5534e..96eae19f66 100644 --- a/crypto/merkletrie/trie_test.go +++ b/crypto/merkletrie/trie_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/multisig.go b/crypto/multisig.go index f17833f1a0..f696b1d361 100644 --- a/crypto/multisig.go +++ b/crypto/multisig.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/multisig_test.go b/crypto/multisig_test.go index 614889c5a7..11e1dd791c 100644 --- a/crypto/multisig_test.go +++ b/crypto/multisig_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/onetimesig.go b/crypto/onetimesig.go index aba2385f0f..11930d633e 100644 --- a/crypto/onetimesig.go +++ b/crypto/onetimesig.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/onetimesig_test.go b/crypto/onetimesig_test.go index ca7b641ead..d9eec123d3 100644 --- a/crypto/onetimesig_test.go +++ b/crypto/onetimesig_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/passphrase/errors.go b/crypto/passphrase/errors.go index 84918ce395..00d2d948fb 100644 --- a/crypto/passphrase/errors.go +++ b/crypto/passphrase/errors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/passphrase/passphrase.go b/crypto/passphrase/passphrase.go index 6c1364229b..3bcee21107 100644 --- a/crypto/passphrase/passphrase.go +++ b/crypto/passphrase/passphrase.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/passphrase/passphrase_test.go b/crypto/passphrase/passphrase_test.go index 8824116505..66a9ae51fd 100644 --- a/crypto/passphrase/passphrase_test.go +++ b/crypto/passphrase/passphrase_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/passphrase/wordlist.go b/crypto/passphrase/wordlist.go index d2b786f411..66ebac5111 100644 --- a/crypto/passphrase/wordlist.go +++ b/crypto/passphrase/wordlist.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/rand.go b/crypto/rand.go index e74b62f9dc..7d9e391072 100644 --- a/crypto/rand.go +++ b/crypto/rand.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/rand_test.go b/crypto/rand_test.go index 49d431c8ee..b2e768b067 100644 --- a/crypto/rand_test.go +++ b/crypto/rand_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/stateproof/coinGenerator.go b/crypto/stateproof/coinGenerator.go index eb256336dc..a8a7199ad1 100644 --- a/crypto/stateproof/coinGenerator.go +++ b/crypto/stateproof/coinGenerator.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/stateproof/coinGenerator_test.go b/crypto/stateproof/coinGenerator_test.go index cf4b326eae..38df47c179 100644 --- a/crypto/stateproof/coinGenerator_test.go +++ b/crypto/stateproof/coinGenerator_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/stateproof/committableSignatureSlot.go b/crypto/stateproof/committableSignatureSlot.go index c53df6960d..07a1d9885e 100644 --- a/crypto/stateproof/committableSignatureSlot.go +++ b/crypto/stateproof/committableSignatureSlot.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/stateproof/committableSignatureSlot_test.go b/crypto/stateproof/committableSignatureSlot_test.go index 5723df5aab..93a890d427 100644 --- a/crypto/stateproof/committableSignatureSlot_test.go +++ b/crypto/stateproof/committableSignatureSlot_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/stateproof/const.go b/crypto/stateproof/const.go index 35c6134e98..3580aaba6b 100644 --- a/crypto/stateproof/const.go +++ b/crypto/stateproof/const.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/stateproof/prover.go b/crypto/stateproof/prover.go index 45d9e27aa2..f7c6e69282 100644 --- a/crypto/stateproof/prover.go +++ b/crypto/stateproof/prover.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/stateproof/prover_test.go b/crypto/stateproof/prover_test.go index 42a0daa5ed..d804e9cf0c 100644 --- a/crypto/stateproof/prover_test.go +++ b/crypto/stateproof/prover_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/stateproof/structs.go b/crypto/stateproof/structs.go index f82edbd6c0..ecb8782da8 100644 --- a/crypto/stateproof/structs.go +++ b/crypto/stateproof/structs.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/stateproof/verifier.go b/crypto/stateproof/verifier.go index 0f36f95a50..1afbf0ab45 100644 --- a/crypto/stateproof/verifier.go +++ b/crypto/stateproof/verifier.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/stateproof/verifier_test.go b/crypto/stateproof/verifier_test.go index 352a53202a..5d26d642f3 100644 --- a/crypto/stateproof/verifier_test.go +++ b/crypto/stateproof/verifier_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/stateproof/weights.go b/crypto/stateproof/weights.go index 874222f493..95e72d627e 100644 --- a/crypto/stateproof/weights.go +++ b/crypto/stateproof/weights.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/stateproof/weights_test.go b/crypto/stateproof/weights_test.go index 718382563d..19a93f3622 100644 --- a/crypto/stateproof/weights_test.go +++ b/crypto/stateproof/weights_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/statetrie/nibbles/nibbles.go b/crypto/statetrie/nibbles/nibbles.go index d2f95678fd..ade9117674 100644 --- a/crypto/statetrie/nibbles/nibbles.go +++ b/crypto/statetrie/nibbles/nibbles.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/statetrie/nibbles/nibbles_test.go b/crypto/statetrie/nibbles/nibbles_test.go index 7b355c0386..0e81bef5e9 100644 --- a/crypto/statetrie/nibbles/nibbles_test.go +++ b/crypto/statetrie/nibbles/nibbles_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/util.go b/crypto/util.go index 8d167dfc8b..aa957a408b 100644 --- a/crypto/util.go +++ b/crypto/util.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/util_test.go b/crypto/util_test.go index 01941511b3..9c19053cec 100644 --- a/crypto/util_test.go +++ b/crypto/util_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/vrf.go b/crypto/vrf.go index 0002a7b2f7..b78580671f 100644 --- a/crypto/vrf.go +++ b/crypto/vrf.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/crypto/vrf_test.go b/crypto/vrf_test.go index 7acc791732..55f781b98c 100644 --- a/crypto/vrf_test.go +++ b/crypto/vrf_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/client/encoding.go b/daemon/algod/api/client/encoding.go index b78ca306fd..c13115abe8 100644 --- a/daemon/algod/api/client/encoding.go +++ b/daemon/algod/api/client/encoding.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/client/restClient.go b/daemon/algod/api/client/restClient.go index 6a44a32eaa..1749327ee3 100644 --- a/daemon/algod/api/client/restClient.go +++ b/daemon/algod/api/client/restClient.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -336,6 +336,45 @@ func (client RestClient) WaitForRoundWithTimeout(roundToWaitFor uint64) error { return nil } +// WaitForConfirmedTxn waits until either the passed txid is confirmed +// or until the passed roundTimeout passes +// or until waiting for a round to pass times out +func (client RestClient) WaitForConfirmedTxn(roundTimeout uint64, txid string) (txn v2.PreEncodedTxInfo, err error) { + for { + // Get current round information + curStatus, statusErr := client.Status() + if err != nil { + return txn, statusErr + } + curRound := curStatus.LastRound + + // Check if we know about the transaction yet + var resp []byte + resp, err = client.RawPendingTransactionInformation(txid) + if err == nil { + err = protocol.DecodeReflect(resp, &txn) + if err != nil { + return txn, err + } + } + + // Check if transaction was confirmed + if txn.ConfirmedRound != nil && *txn.ConfirmedRound > 0 { + return + } + // Check if we should wait a round + if curRound > roundTimeout { + err = fmt.Errorf("failed to see confirmed transaction by round %v", roundTimeout) + return txn, err + } + // Wait a round + err = client.WaitForRoundWithTimeout(curRound + 1) + if err != nil { + return txn, err + } + } +} + // HealthCheck does a health check on the potentially running node, // returning an error if the API is down func (client RestClient) HealthCheck() error { diff --git a/daemon/algod/api/server/common/handlers.go b/daemon/algod/api/server/common/handlers.go index c771e1443b..86718bb2f2 100644 --- a/daemon/algod/api/server/common/handlers.go +++ b/daemon/algod/api/server/common/handlers.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/common/metrics.go b/daemon/algod/api/server/common/metrics.go index a3ef24bc85..9e17e108b3 100644 --- a/daemon/algod/api/server/common/metrics.go +++ b/daemon/algod/api/server/common/metrics.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/common/responses.go b/daemon/algod/api/server/common/responses.go index 0b3a4cd3fe..497d80c567 100644 --- a/daemon/algod/api/server/common/responses.go +++ b/daemon/algod/api/server/common/responses.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/common/routes.go b/daemon/algod/api/server/common/routes.go index 237179d71d..ba0dceffb6 100644 --- a/daemon/algod/api/server/common/routes.go +++ b/daemon/algod/api/server/common/routes.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/common/test/handlers_test.go b/daemon/algod/api/server/common/test/handlers_test.go index a928b4e83f..ad2ed00a4c 100644 --- a/daemon/algod/api/server/common/test/handlers_test.go +++ b/daemon/algod/api/server/common/test/handlers_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/common/test/helpers.go b/daemon/algod/api/server/common/test/helpers.go index 638bb81361..a78dfba427 100644 --- a/daemon/algod/api/server/common/test/helpers.go +++ b/daemon/algod/api/server/common/test/helpers.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/lib/common.go b/daemon/algod/api/server/lib/common.go index c3461b25fa..0e59768359 100644 --- a/daemon/algod/api/server/lib/common.go +++ b/daemon/algod/api/server/lib/common.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/lib/middlewares/auth.go b/daemon/algod/api/server/lib/middlewares/auth.go index 06a7573413..efc9e3540c 100644 --- a/daemon/algod/api/server/lib/middlewares/auth.go +++ b/daemon/algod/api/server/lib/middlewares/auth.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/lib/middlewares/auth_test.go b/daemon/algod/api/server/lib/middlewares/auth_test.go index 75b75bca80..984a0f1dc1 100644 --- a/daemon/algod/api/server/lib/middlewares/auth_test.go +++ b/daemon/algod/api/server/lib/middlewares/auth_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/lib/middlewares/connectionLimiter.go b/daemon/algod/api/server/lib/middlewares/connectionLimiter.go index 0d5d329598..4b0fc21385 100644 --- a/daemon/algod/api/server/lib/middlewares/connectionLimiter.go +++ b/daemon/algod/api/server/lib/middlewares/connectionLimiter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/lib/middlewares/connectionLimiter_test.go b/daemon/algod/api/server/lib/middlewares/connectionLimiter_test.go index 88ebc39b90..fc56df2750 100644 --- a/daemon/algod/api/server/lib/middlewares/connectionLimiter_test.go +++ b/daemon/algod/api/server/lib/middlewares/connectionLimiter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/lib/middlewares/cors.go b/daemon/algod/api/server/lib/middlewares/cors.go index c8b292703f..5ac628c934 100644 --- a/daemon/algod/api/server/lib/middlewares/cors.go +++ b/daemon/algod/api/server/lib/middlewares/cors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/lib/middlewares/cors_test.go b/daemon/algod/api/server/lib/middlewares/cors_test.go index 032596cfb2..c317952b48 100644 --- a/daemon/algod/api/server/lib/middlewares/cors_test.go +++ b/daemon/algod/api/server/lib/middlewares/cors_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/lib/middlewares/logger.go b/daemon/algod/api/server/lib/middlewares/logger.go index 7c3084b2bc..fb74026f23 100644 --- a/daemon/algod/api/server/lib/middlewares/logger.go +++ b/daemon/algod/api/server/lib/middlewares/logger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/router.go b/daemon/algod/api/server/router.go index 555f2813a1..32b1b40ac7 100644 --- a/daemon/algod/api/server/router.go +++ b/daemon/algod/api/server/router.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/router_test.go b/daemon/algod/api/server/router_test.go index 0819309aa3..c67a97b506 100644 --- a/daemon/algod/api/server/router_test.go +++ b/daemon/algod/api/server/router_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v1/handlers/errors.go b/daemon/algod/api/server/v1/handlers/errors.go index d61f6bd797..f3f6e1b41c 100644 --- a/daemon/algod/api/server/v1/handlers/errors.go +++ b/daemon/algod/api/server/v1/handlers/errors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v1/handlers/handlers.go b/daemon/algod/api/server/v1/handlers/handlers.go index f7e1ac4cc0..3e7a3cdcba 100644 --- a/daemon/algod/api/server/v1/handlers/handlers.go +++ b/daemon/algod/api/server/v1/handlers/handlers.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v1/routes/routes.go b/daemon/algod/api/server/v1/routes/routes.go index 88ed20ea1d..fe0684637d 100644 --- a/daemon/algod/api/server/v1/routes/routes.go +++ b/daemon/algod/api/server/v1/routes/routes.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v2/account.go b/daemon/algod/api/server/v2/account.go index dc6e3cd14d..5c0305a123 100644 --- a/daemon/algod/api/server/v2/account.go +++ b/daemon/algod/api/server/v2/account.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v2/account_test.go b/daemon/algod/api/server/v2/account_test.go index 29d668f6e2..97b6e83d30 100644 --- a/daemon/algod/api/server/v2/account_test.go +++ b/daemon/algod/api/server/v2/account_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v2/dryrun.go b/daemon/algod/api/server/v2/dryrun.go index 25b3365f4a..1ac2ae0fa2 100644 --- a/daemon/algod/api/server/v2/dryrun.go +++ b/daemon/algod/api/server/v2/dryrun.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v2/dryrun_test.go b/daemon/algod/api/server/v2/dryrun_test.go index 93177e488b..8c71bc7118 100644 --- a/daemon/algod/api/server/v2/dryrun_test.go +++ b/daemon/algod/api/server/v2/dryrun_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v2/errors.go b/daemon/algod/api/server/v2/errors.go index ff1bcbaa07..38233d097b 100644 --- a/daemon/algod/api/server/v2/errors.go +++ b/daemon/algod/api/server/v2/errors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v2/handlers.go b/daemon/algod/api/server/v2/handlers.go index abeb15711b..8cee581abc 100644 --- a/daemon/algod/api/server/v2/handlers.go +++ b/daemon/algod/api/server/v2/handlers.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v2/handlers_test.go b/daemon/algod/api/server/v2/handlers_test.go index 148c5de629..debeffbb7a 100644 --- a/daemon/algod/api/server/v2/handlers_test.go +++ b/daemon/algod/api/server/v2/handlers_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v2/test/handlers_resources_test.go b/daemon/algod/api/server/v2/test/handlers_resources_test.go index f028a9b2a1..39d9c660cf 100644 --- a/daemon/algod/api/server/v2/test/handlers_resources_test.go +++ b/daemon/algod/api/server/v2/test/handlers_resources_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v2/test/handlers_test.go b/daemon/algod/api/server/v2/test/handlers_test.go index 4b97f8f3a4..ce4c5e395f 100644 --- a/daemon/algod/api/server/v2/test/handlers_test.go +++ b/daemon/algod/api/server/v2/test/handlers_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v2/test/helpers.go b/daemon/algod/api/server/v2/test/helpers.go index 5ba5256d63..676836a03a 100644 --- a/daemon/algod/api/server/v2/test/helpers.go +++ b/daemon/algod/api/server/v2/test/helpers.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/server/v2/utils.go b/daemon/algod/api/server/v2/utils.go index 58120f46d8..f3451dd081 100644 --- a/daemon/algod/api/server/v2/utils.go +++ b/daemon/algod/api/server/v2/utils.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/spec/common/model.go b/daemon/algod/api/spec/common/model.go index 016af9a889..984c004628 100644 --- a/daemon/algod/api/spec/common/model.go +++ b/daemon/algod/api/spec/common/model.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/spec/v2/model.go b/daemon/algod/api/spec/v2/model.go index b8b01a2405..2ce7fb7e31 100644 --- a/daemon/algod/api/spec/v2/model.go +++ b/daemon/algod/api/spec/v2/model.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/api/swagger.go b/daemon/algod/api/swagger.go index 601271fa55..c2ff7ca334 100644 --- a/daemon/algod/api/swagger.go +++ b/daemon/algod/api/swagger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/deadlockLogger.go b/daemon/algod/deadlockLogger.go index 8498a3c416..b5b443b6c4 100644 --- a/daemon/algod/deadlockLogger.go +++ b/daemon/algod/deadlockLogger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/deadlock_test.go b/daemon/algod/deadlock_test.go index 2e3b356c4c..9731f90eb6 100644 --- a/daemon/algod/deadlock_test.go +++ b/daemon/algod/deadlock_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/server.go b/daemon/algod/server.go index a823ee0001..8fdacdfdd7 100644 --- a/daemon/algod/server.go +++ b/daemon/algod/server.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/algod/server_test.go b/daemon/algod/server_test.go index 459297ebd8..3d2e26afe3 100644 --- a/daemon/algod/server_test.go +++ b/daemon/algod/server_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/api/api.go b/daemon/kmd/api/api.go index c33d5aa451..4b34f92135 100644 --- a/daemon/kmd/api/api.go +++ b/daemon/kmd/api/api.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/api/cors.go b/daemon/kmd/api/cors.go index 0384de5306..c5afb04a6d 100644 --- a/daemon/kmd/api/cors.go +++ b/daemon/kmd/api/cors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/api/v1/auth.go b/daemon/kmd/api/v1/auth.go index 997d4326e3..976323b7f2 100644 --- a/daemon/kmd/api/v1/auth.go +++ b/daemon/kmd/api/v1/auth.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/api/v1/errors.go b/daemon/kmd/api/v1/errors.go index 762053438d..c1e8aa2235 100644 --- a/daemon/kmd/api/v1/errors.go +++ b/daemon/kmd/api/v1/errors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/api/v1/handlers.go b/daemon/kmd/api/v1/handlers.go index 466daab4cf..50bdafdbc4 100644 --- a/daemon/kmd/api/v1/handlers.go +++ b/daemon/kmd/api/v1/handlers.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/client/client.go b/daemon/kmd/client/client.go index 8d819557ea..06c8378c54 100644 --- a/daemon/kmd/client/client.go +++ b/daemon/kmd/client/client.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/client/requests.go b/daemon/kmd/client/requests.go index 1bf13f7557..17073a0b66 100644 --- a/daemon/kmd/client/requests.go +++ b/daemon/kmd/client/requests.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/client/wrappers.go b/daemon/kmd/client/wrappers.go index a7b5613aff..7333530cab 100644 --- a/daemon/kmd/client/wrappers.go +++ b/daemon/kmd/client/wrappers.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/config/config.go b/daemon/kmd/config/config.go index 468db8ec03..57a12ba5eb 100644 --- a/daemon/kmd/config/config.go +++ b/daemon/kmd/config/config.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/config/errors.go b/daemon/kmd/config/errors.go index cd6197c4e7..5283cfaac4 100644 --- a/daemon/kmd/config/errors.go +++ b/daemon/kmd/config/errors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/kmd.go b/daemon/kmd/kmd.go index 220dd8da5b..3c88f74c6f 100644 --- a/daemon/kmd/kmd.go +++ b/daemon/kmd/kmd.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/lib/kmdapi/common.go b/daemon/kmd/lib/kmdapi/common.go index f1a5a624c5..248eac598a 100644 --- a/daemon/kmd/lib/kmdapi/common.go +++ b/daemon/kmd/lib/kmdapi/common.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/lib/kmdapi/requests.go b/daemon/kmd/lib/kmdapi/requests.go index 445e88df18..3a51c2b583 100644 --- a/daemon/kmd/lib/kmdapi/requests.go +++ b/daemon/kmd/lib/kmdapi/requests.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/lib/kmdapi/responses.go b/daemon/kmd/lib/kmdapi/responses.go index 783953795e..1cace7f65e 100644 --- a/daemon/kmd/lib/kmdapi/responses.go +++ b/daemon/kmd/lib/kmdapi/responses.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/server/errors.go b/daemon/kmd/server/errors.go index 3b0f70ddac..02baf37177 100644 --- a/daemon/kmd/server/errors.go +++ b/daemon/kmd/server/errors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/server/server.go b/daemon/kmd/server/server.go index 58638f0bee..0e73bf22b9 100644 --- a/daemon/kmd/server/server.go +++ b/daemon/kmd/server/server.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/session/auth.go b/daemon/kmd/session/auth.go index 57955a6115..304ebbca2b 100644 --- a/daemon/kmd/session/auth.go +++ b/daemon/kmd/session/auth.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/session/session.go b/daemon/kmd/session/session.go index 6ecdcf8268..d3bd5be9e9 100644 --- a/daemon/kmd/session/session.go +++ b/daemon/kmd/session/session.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/wallet/driver/driver.go b/daemon/kmd/wallet/driver/driver.go index f22f4680b9..a58a21b3c1 100644 --- a/daemon/kmd/wallet/driver/driver.go +++ b/daemon/kmd/wallet/driver/driver.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/wallet/driver/ledger.go b/daemon/kmd/wallet/driver/ledger.go index fbe5367ba3..1153247bfb 100644 --- a/daemon/kmd/wallet/driver/ledger.go +++ b/daemon/kmd/wallet/driver/ledger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/wallet/driver/ledger_errors.go b/daemon/kmd/wallet/driver/ledger_errors.go index 036b2df2cc..5b9a73f8cb 100644 --- a/daemon/kmd/wallet/driver/ledger_errors.go +++ b/daemon/kmd/wallet/driver/ledger_errors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/wallet/driver/ledger_hid.go b/daemon/kmd/wallet/driver/ledger_hid.go index 5a958f4a08..97c3ace1fc 100644 --- a/daemon/kmd/wallet/driver/ledger_hid.go +++ b/daemon/kmd/wallet/driver/ledger_hid.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/wallet/driver/sqlite.go b/daemon/kmd/wallet/driver/sqlite.go index d17e9dace1..10b1174ae1 100644 --- a/daemon/kmd/wallet/driver/sqlite.go +++ b/daemon/kmd/wallet/driver/sqlite.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/wallet/driver/sqlite_crypto.go b/daemon/kmd/wallet/driver/sqlite_crypto.go index 8c77a9f844..618cb9345d 100644 --- a/daemon/kmd/wallet/driver/sqlite_crypto.go +++ b/daemon/kmd/wallet/driver/sqlite_crypto.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/wallet/driver/sqlite_errors.go b/daemon/kmd/wallet/driver/sqlite_errors.go index a07fce2d86..8ae1b1f987 100644 --- a/daemon/kmd/wallet/driver/sqlite_errors.go +++ b/daemon/kmd/wallet/driver/sqlite_errors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/wallet/driver/util.go b/daemon/kmd/wallet/driver/util.go index 533b8860c9..96263d4ace 100644 --- a/daemon/kmd/wallet/driver/util.go +++ b/daemon/kmd/wallet/driver/util.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/daemon/kmd/wallet/wallet.go b/daemon/kmd/wallet/wallet.go index a5b0fc0f71..4822054a7a 100644 --- a/daemon/kmd/wallet/wallet.go +++ b/daemon/kmd/wallet/wallet.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/account/account.go b/data/account/account.go index 0693d8afac..d5840e041d 100644 --- a/data/account/account.go +++ b/data/account/account.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/account/partInstall.go b/data/account/partInstall.go index 0be175c79e..c424d590b9 100644 --- a/data/account/partInstall.go +++ b/data/account/partInstall.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/account/participation.go b/data/account/participation.go index a4dcf04b74..bf50a546c0 100644 --- a/data/account/participation.go +++ b/data/account/participation.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/account/participationRegistry.go b/data/account/participationRegistry.go index 0752bc73f0..a4ebcb7001 100644 --- a/data/account/participationRegistry.go +++ b/data/account/participationRegistry.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/account/participationRegistryBench_test.go b/data/account/participationRegistryBench_test.go index 70790ae748..a9ef60a5d9 100644 --- a/data/account/participationRegistryBench_test.go +++ b/data/account/participationRegistryBench_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/account/participationRegistry_test.go b/data/account/participationRegistry_test.go index 8cc5a4f111..eaab8ce998 100644 --- a/data/account/participationRegistry_test.go +++ b/data/account/participationRegistry_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/account/participation_test.go b/data/account/participation_test.go index 41e1a2bf3d..8f246c0f2f 100644 --- a/data/account/participation_test.go +++ b/data/account/participation_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/account/registeryDbOps.go b/data/account/registeryDbOps.go index 62bd5772aa..b8668d1893 100644 --- a/data/account/registeryDbOps.go +++ b/data/account/registeryDbOps.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/account/rootInstall.go b/data/account/rootInstall.go index b070b8d9b3..304e252d16 100644 --- a/data/account/rootInstall.go +++ b/data/account/rootInstall.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/accountManager.go b/data/accountManager.go index 8e10cb35c7..83a51f4c28 100644 --- a/data/accountManager.go +++ b/data/accountManager.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/accountManager_test.go b/data/accountManager_test.go index 7a1fb2836f..87dae6e59d 100644 --- a/data/accountManager_test.go +++ b/data/accountManager_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/appRateLimiter.go b/data/appRateLimiter.go index 9bb2fd1254..42d6812916 100644 --- a/data/appRateLimiter.go +++ b/data/appRateLimiter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/appRateLimiter_test.go b/data/appRateLimiter_test.go index 5a7a872133..a1971f5144 100644 --- a/data/appRateLimiter_test.go +++ b/data/appRateLimiter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/address.go b/data/basics/address.go index 10aeb821ee..8d6e187ffa 100644 --- a/data/basics/address.go +++ b/data/basics/address.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/address_test.go b/data/basics/address_test.go index 129b453091..ca07315611 100644 --- a/data/basics/address_test.go +++ b/data/basics/address_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/fields_test.go b/data/basics/fields_test.go index a5a73edf7e..234e4246bf 100644 --- a/data/basics/fields_test.go +++ b/data/basics/fields_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/fraction.go b/data/basics/fraction.go index 925d342380..736357f8f2 100644 --- a/data/basics/fraction.go +++ b/data/basics/fraction.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/fraction_test.go b/data/basics/fraction_test.go index 2056717d24..d1f2e9738a 100644 --- a/data/basics/fraction_test.go +++ b/data/basics/fraction_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/overflow.go b/data/basics/overflow.go index 4c8ded599c..a277c276f3 100644 --- a/data/basics/overflow.go +++ b/data/basics/overflow.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/serr.go b/data/basics/serr.go index 229d800d7c..c788c6ad4a 100644 --- a/data/basics/serr.go +++ b/data/basics/serr.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/serr_test.go b/data/basics/serr_test.go index 4df6e20485..1a9b3d336b 100644 --- a/data/basics/serr_test.go +++ b/data/basics/serr_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/sort.go b/data/basics/sort.go index 6e3614f383..f6e3ddccbe 100644 --- a/data/basics/sort.go +++ b/data/basics/sort.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/stateProofParticipant.go b/data/basics/stateProofParticipant.go index 2fa560793a..b2f2c180e0 100644 --- a/data/basics/stateProofParticipant.go +++ b/data/basics/stateProofParticipant.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/teal.go b/data/basics/teal.go index 7268c8aadf..72753f6fea 100644 --- a/data/basics/teal.go +++ b/data/basics/teal.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/teal_test.go b/data/basics/teal_test.go index f1f8e4e0b4..cb16f665f3 100644 --- a/data/basics/teal_test.go +++ b/data/basics/teal_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/testing/userBalance.go b/data/basics/testing/userBalance.go index dd0ebfde5d..1d9d673d7b 100644 --- a/data/basics/testing/userBalance.go +++ b/data/basics/testing/userBalance.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/units.go b/data/basics/units.go index 8e6ef0946c..84904ee8d0 100644 --- a/data/basics/units.go +++ b/data/basics/units.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/units_test.go b/data/basics/units_test.go index 3d80b23324..93afd8ecb2 100644 --- a/data/basics/units_test.go +++ b/data/basics/units_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/userBalance.go b/data/basics/userBalance.go index a9efeca1cb..ad7995cd0d 100644 --- a/data/basics/userBalance.go +++ b/data/basics/userBalance.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/basics/userBalance_test.go b/data/basics/userBalance_test.go index c49afb9abf..cc4ba8056a 100644 --- a/data/basics/userBalance_test.go +++ b/data/basics/userBalance_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/bookkeeping/block.go b/data/bookkeeping/block.go index af2068a1fe..46d08a9ee7 100644 --- a/data/bookkeeping/block.go +++ b/data/bookkeeping/block.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/bookkeeping/block_test.go b/data/bookkeeping/block_test.go index 9b2608cd1d..f47de03df7 100644 --- a/data/bookkeeping/block_test.go +++ b/data/bookkeeping/block_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/bookkeeping/encoding_test.go b/data/bookkeeping/encoding_test.go index 69326437bd..3de80f0ea6 100644 --- a/data/bookkeeping/encoding_test.go +++ b/data/bookkeeping/encoding_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/bookkeeping/genesis.go b/data/bookkeeping/genesis.go index 8220d5232a..f98f03f73d 100644 --- a/data/bookkeeping/genesis.go +++ b/data/bookkeeping/genesis.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/bookkeeping/genesis_test.go b/data/bookkeeping/genesis_test.go index 360e0a9381..3e930ea9e6 100644 --- a/data/bookkeeping/genesis_test.go +++ b/data/bookkeeping/genesis_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/bookkeeping/lightBlockHeader.go b/data/bookkeeping/lightBlockHeader.go index e9b0a111ab..9e6e0462b8 100644 --- a/data/bookkeeping/lightBlockHeader.go +++ b/data/bookkeeping/lightBlockHeader.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/bookkeeping/lightBlockHeader_test.go b/data/bookkeeping/lightBlockHeader_test.go index e61d03f6bb..7e8cf04b1d 100644 --- a/data/bookkeeping/lightBlockHeader_test.go +++ b/data/bookkeeping/lightBlockHeader_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/bookkeeping/prettyprinting.go b/data/bookkeeping/prettyprinting.go index 7721c1f475..dedf23c3e8 100644 --- a/data/bookkeeping/prettyprinting.go +++ b/data/bookkeeping/prettyprinting.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/bookkeeping/txn_merkle.go b/data/bookkeeping/txn_merkle.go index 4aeec79f79..cb00037b78 100644 --- a/data/bookkeeping/txn_merkle.go +++ b/data/bookkeeping/txn_merkle.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/bookkeeping/txn_merkle_test.go b/data/bookkeeping/txn_merkle_test.go index 57d7fbc393..6e220875b3 100644 --- a/data/bookkeeping/txn_merkle_test.go +++ b/data/bookkeeping/txn_merkle_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/committee/committee.go b/data/committee/committee.go index 1432e32021..1ba853b652 100644 --- a/data/committee/committee.go +++ b/data/committee/committee.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/committee/common_test.go b/data/committee/common_test.go index 8566a9cd2a..98437117db 100644 --- a/data/committee/common_test.go +++ b/data/committee/common_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/committee/credential.go b/data/committee/credential.go index 79b22abad3..b09ed56200 100644 --- a/data/committee/credential.go +++ b/data/committee/credential.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/committee/credential_test.go b/data/committee/credential_test.go index bbabac62e9..57ce97cd38 100644 --- a/data/committee/credential_test.go +++ b/data/committee/credential_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/committee/encoding_test.go b/data/committee/encoding_test.go index 1feaf1688c..5c3f659868 100644 --- a/data/committee/encoding_test.go +++ b/data/committee/encoding_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/common_test.go b/data/common_test.go index 6f947067fa..279c591fe7 100644 --- a/data/common_test.go +++ b/data/common_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/datatest/fabricateLedger.go b/data/datatest/fabricateLedger.go index cfde34af8a..4b25ca3e35 100644 --- a/data/datatest/fabricateLedger.go +++ b/data/datatest/fabricateLedger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/datatest/impls.go b/data/datatest/impls.go index 0edae496d1..33cdf594ce 100644 --- a/data/datatest/impls.go +++ b/data/datatest/impls.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/hashable/message.go b/data/hashable/message.go index fc8ae5e412..b49a99d769 100644 --- a/data/hashable/message.go +++ b/data/hashable/message.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/ledger.go b/data/ledger.go index 579d324d0b..131aa8dd2f 100644 --- a/data/ledger.go +++ b/data/ledger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/ledger_test.go b/data/ledger_test.go index caa866575d..0112940c9e 100644 --- a/data/ledger_test.go +++ b/data/ledger_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/pools/errors.go b/data/pools/errors.go index 5ce1a056e2..71224c8db4 100644 --- a/data/pools/errors.go +++ b/data/pools/errors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/pools/statusCache.go b/data/pools/statusCache.go index c8977e3fc6..2c00e185e5 100644 --- a/data/pools/statusCache.go +++ b/data/pools/statusCache.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/pools/transactionPool.go b/data/pools/transactionPool.go index 8446291973..926e02aa49 100644 --- a/data/pools/transactionPool.go +++ b/data/pools/transactionPool.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/pools/transactionPool_test.go b/data/pools/transactionPool_test.go index 518358d809..f0bff7a69a 100644 --- a/data/pools/transactionPool_test.go +++ b/data/pools/transactionPool_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/stateproofmsg/message.go b/data/stateproofmsg/message.go index d87c5fc0e6..88f3493d69 100644 --- a/data/stateproofmsg/message.go +++ b/data/stateproofmsg/message.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/application.go b/data/transactions/application.go index 1cff14760d..70c0189394 100644 --- a/data/transactions/application.go +++ b/data/transactions/application.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/application_test.go b/data/transactions/application_test.go index 2b5965a885..ce6d700e75 100644 --- a/data/transactions/application_test.go +++ b/data/transactions/application_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/asset.go b/data/transactions/asset.go index 9a7cd7ecf4..93b6af840e 100644 --- a/data/transactions/asset.go +++ b/data/transactions/asset.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/common_test.go b/data/transactions/common_test.go index 388a1db5e4..08ce7cc950 100644 --- a/data/transactions/common_test.go +++ b/data/transactions/common_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/error.go b/data/transactions/error.go index 3012946d4f..2cd3e0beeb 100644 --- a/data/transactions/error.go +++ b/data/transactions/error.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/heartbeat.go b/data/transactions/heartbeat.go index 2c3120f1a1..9dd870d59d 100644 --- a/data/transactions/heartbeat.go +++ b/data/transactions/heartbeat.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/json_test.go b/data/transactions/json_test.go index 13462b48d9..b0acc9eeb3 100644 --- a/data/transactions/json_test.go +++ b/data/transactions/json_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/keyreg.go b/data/transactions/keyreg.go index b966f5c299..56789eda43 100644 --- a/data/transactions/keyreg.go +++ b/data/transactions/keyreg.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/README.md b/data/transactions/logic/README.md index 269832d38a..8f5fbee163 100644 --- a/data/transactions/logic/README.md +++ b/data/transactions/logic/README.md @@ -639,8 +639,8 @@ Global fields are fields that are common to all the transactions in the group. I | 18 | PayoutsEnabled | bool | v11 | Whether block proposal payouts are enabled. | | 19 | PayoutsGoOnlineFee | uint64 | v11 | The fee required in a keyreg transaction to make an account incentive eligible. | | 20 | PayoutsPercent | uint64 | v11 | The percentage of transaction fees in a block that can be paid to the block proposer. | -| 21 | PayoutsMinBalance | uint64 | v11 | The minimum algo balance an account must have in the agreement round to receive block payouts in the proposal round. | -| 22 | PayoutsMaxBalance | uint64 | v11 | The maximum algo balance an account can have in the agreement round to receive block payouts in the proposal round. | +| 21 | PayoutsMinBalance | uint64 | v11 | The minimum balance an account must have in the agreement round to receive block payouts in the proposal round. | +| 22 | PayoutsMaxBalance | uint64 | v11 | The maximum balance an account can have in the agreement round to receive block payouts in the proposal round. | **Asset Fields** diff --git a/data/transactions/logic/TEAL_opcodes_v11.md b/data/transactions/logic/TEAL_opcodes_v11.md index 8bbad2e206..f302bca1e5 100644 --- a/data/transactions/logic/TEAL_opcodes_v11.md +++ b/data/transactions/logic/TEAL_opcodes_v11.md @@ -465,8 +465,8 @@ Fields | 18 | PayoutsEnabled | bool | v11 | Whether block proposal payouts are enabled. | | 19 | PayoutsGoOnlineFee | uint64 | v11 | The fee required in a keyreg transaction to make an account incentive eligible. | | 20 | PayoutsPercent | uint64 | v11 | The percentage of transaction fees in a block that can be paid to the block proposer. | -| 21 | PayoutsMinBalance | uint64 | v11 | The minimum algo balance an account must have in the agreement round to receive block payouts in the proposal round. | -| 22 | PayoutsMaxBalance | uint64 | v11 | The maximum algo balance an account can have in the agreement round to receive block payouts in the proposal round. | +| 21 | PayoutsMinBalance | uint64 | v11 | The minimum balance an account must have in the agreement round to receive block payouts in the proposal round. | +| 22 | PayoutsMaxBalance | uint64 | v11 | The maximum balance an account can have in the agreement round to receive block payouts in the proposal round. | ## gtxn diff --git a/data/transactions/logic/assembler.go b/data/transactions/logic/assembler.go index cc8034fdfc..1bd170709c 100644 --- a/data/transactions/logic/assembler.go +++ b/data/transactions/logic/assembler.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/assembler_test.go b/data/transactions/logic/assembler_test.go index 093fe7de3d..36ec42b54b 100644 --- a/data/transactions/logic/assembler_test.go +++ b/data/transactions/logic/assembler_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/backwardCompat_test.go b/data/transactions/logic/backwardCompat_test.go index d2b46788e7..9d3ca14d2b 100644 --- a/data/transactions/logic/backwardCompat_test.go +++ b/data/transactions/logic/backwardCompat_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/blackbox_test.go b/data/transactions/logic/blackbox_test.go index aac3d6260e..7a32ef3833 100644 --- a/data/transactions/logic/blackbox_test.go +++ b/data/transactions/logic/blackbox_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/box.go b/data/transactions/logic/box.go index 09d2f65018..fb9ee6aa09 100644 --- a/data/transactions/logic/box.go +++ b/data/transactions/logic/box.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/box_test.go b/data/transactions/logic/box_test.go index cb948f51c1..0b6c604b8e 100644 --- a/data/transactions/logic/box_test.go +++ b/data/transactions/logic/box_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/crypto.go b/data/transactions/logic/crypto.go index 043f670ee5..0a1c582301 100644 --- a/data/transactions/logic/crypto.go +++ b/data/transactions/logic/crypto.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/crypto_test.go b/data/transactions/logic/crypto_test.go index 8713823747..d5a854cd4f 100644 --- a/data/transactions/logic/crypto_test.go +++ b/data/transactions/logic/crypto_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/debugger.go b/data/transactions/logic/debugger.go index 04478ba25a..f929e1b2be 100644 --- a/data/transactions/logic/debugger.go +++ b/data/transactions/logic/debugger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/debugger_eval_test.go b/data/transactions/logic/debugger_eval_test.go index f2ffb80164..12a300c4f4 100644 --- a/data/transactions/logic/debugger_eval_test.go +++ b/data/transactions/logic/debugger_eval_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/debugger_test.go b/data/transactions/logic/debugger_test.go index bd0f356d01..31eeed1e0a 100644 --- a/data/transactions/logic/debugger_test.go +++ b/data/transactions/logic/debugger_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/doc.go b/data/transactions/logic/doc.go index 2b2f88b850..0e543265d8 100644 --- a/data/transactions/logic/doc.go +++ b/data/transactions/logic/doc.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/doc_test.go b/data/transactions/logic/doc_test.go index 21bfd156cb..f890144660 100644 --- a/data/transactions/logic/doc_test.go +++ b/data/transactions/logic/doc_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/eval.go b/data/transactions/logic/eval.go index ae8614e824..9a3927a002 100644 --- a/data/transactions/logic/eval.go +++ b/data/transactions/logic/eval.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/evalAppTxn_test.go b/data/transactions/logic/evalAppTxn_test.go index 600ab68029..17240007a1 100644 --- a/data/transactions/logic/evalAppTxn_test.go +++ b/data/transactions/logic/evalAppTxn_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/evalBench_test.go b/data/transactions/logic/evalBench_test.go index c9c748833e..6a5bdf1baf 100644 --- a/data/transactions/logic/evalBench_test.go +++ b/data/transactions/logic/evalBench_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/evalStateful_test.go b/data/transactions/logic/evalStateful_test.go index 5f85e8d012..7b50c3283d 100644 --- a/data/transactions/logic/evalStateful_test.go +++ b/data/transactions/logic/evalStateful_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/eval_test.go b/data/transactions/logic/eval_test.go index e6f0abe320..cf6a04aa1f 100644 --- a/data/transactions/logic/eval_test.go +++ b/data/transactions/logic/eval_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/export_test.go b/data/transactions/logic/export_test.go index ed250acd81..82801007e4 100644 --- a/data/transactions/logic/export_test.go +++ b/data/transactions/logic/export_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/fields.go b/data/transactions/logic/fields.go index 3ec054919a..e35cd794dd 100644 --- a/data/transactions/logic/fields.go +++ b/data/transactions/logic/fields.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -626,9 +626,9 @@ var globalFieldSpecs = [...]globalFieldSpec{ {PayoutsPercent, StackUint64, modeAny, incentiveVersion, "The percentage of transaction fees in a block that can be paid to the block proposer."}, {PayoutsMinBalance, StackUint64, modeAny, incentiveVersion, - "The minimum algo balance an account must have in the agreement round to receive block payouts in the proposal round."}, + "The minimum balance an account must have in the agreement round to receive block payouts in the proposal round."}, {PayoutsMaxBalance, StackUint64, modeAny, incentiveVersion, - "The maximum algo balance an account can have in the agreement round to receive block payouts in the proposal round."}, + "The maximum balance an account can have in the agreement round to receive block payouts in the proposal round."}, } func globalFieldSpecByField(f GlobalField) (globalFieldSpec, bool) { diff --git a/data/transactions/logic/fields_test.go b/data/transactions/logic/fields_test.go index ab2548c306..f353068b71 100644 --- a/data/transactions/logic/fields_test.go +++ b/data/transactions/logic/fields_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/frames.go b/data/transactions/logic/frames.go index 25fe68d29c..fc6354483d 100644 --- a/data/transactions/logic/frames.go +++ b/data/transactions/logic/frames.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/frames_test.go b/data/transactions/logic/frames_test.go index 80ce57544d..c27a9148b9 100644 --- a/data/transactions/logic/frames_test.go +++ b/data/transactions/logic/frames_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/jsonspec_test.go b/data/transactions/logic/jsonspec_test.go index 87a445138d..f3e54b7b40 100644 --- a/data/transactions/logic/jsonspec_test.go +++ b/data/transactions/logic/jsonspec_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/ledger_test.go b/data/transactions/logic/ledger_test.go index 8b75f40855..7757895f4d 100644 --- a/data/transactions/logic/ledger_test.go +++ b/data/transactions/logic/ledger_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/mocktracer/scenarios.go b/data/transactions/logic/mocktracer/scenarios.go index b555705a35..df21245de1 100644 --- a/data/transactions/logic/mocktracer/scenarios.go +++ b/data/transactions/logic/mocktracer/scenarios.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/mocktracer/tracer.go b/data/transactions/logic/mocktracer/tracer.go index 20ed108938..1c89687d20 100644 --- a/data/transactions/logic/mocktracer/tracer.go +++ b/data/transactions/logic/mocktracer/tracer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/opcodeExplain.go b/data/transactions/logic/opcodeExplain.go index 28f4f798b2..a9360fe520 100644 --- a/data/transactions/logic/opcodeExplain.go +++ b/data/transactions/logic/opcodeExplain.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/opcodes.go b/data/transactions/logic/opcodes.go index a8de92ce8d..c275395fc4 100644 --- a/data/transactions/logic/opcodes.go +++ b/data/transactions/logic/opcodes.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/opcodes_test.go b/data/transactions/logic/opcodes_test.go index a39be85106..86965d0887 100644 --- a/data/transactions/logic/opcodes_test.go +++ b/data/transactions/logic/opcodes_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/pairing.go b/data/transactions/logic/pairing.go index 13df35c570..cb4ac4a0cc 100644 --- a/data/transactions/logic/pairing.go +++ b/data/transactions/logic/pairing.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/pairing_test.go b/data/transactions/logic/pairing_test.go index d7b4a87e2f..c59a243ff4 100644 --- a/data/transactions/logic/pairing_test.go +++ b/data/transactions/logic/pairing_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/program.go b/data/transactions/logic/program.go index dba9af446a..b96dd1af24 100644 --- a/data/transactions/logic/program.go +++ b/data/transactions/logic/program.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/resources.go b/data/transactions/logic/resources.go index 8c713da671..95c693c85a 100644 --- a/data/transactions/logic/resources.go +++ b/data/transactions/logic/resources.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/resources_test.go b/data/transactions/logic/resources_test.go index 6458e081a1..8d0b2456f4 100644 --- a/data/transactions/logic/resources_test.go +++ b/data/transactions/logic/resources_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/sourcemap.go b/data/transactions/logic/sourcemap.go index 4f5d2ab45d..6d7e186fa7 100644 --- a/data/transactions/logic/sourcemap.go +++ b/data/transactions/logic/sourcemap.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/sourcemap_test.go b/data/transactions/logic/sourcemap_test.go index ba7be2974d..c6465a15a8 100644 --- a/data/transactions/logic/sourcemap_test.go +++ b/data/transactions/logic/sourcemap_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/tracer.go b/data/transactions/logic/tracer.go index 551ea67e10..d8cd980603 100644 --- a/data/transactions/logic/tracer.go +++ b/data/transactions/logic/tracer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logic/tracer_test.go b/data/transactions/logic/tracer_test.go index fd7f9d270e..ad4f953b62 100644 --- a/data/transactions/logic/tracer_test.go +++ b/data/transactions/logic/tracer_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/logicsig.go b/data/transactions/logicsig.go index 15a828ca60..165e38a277 100644 --- a/data/transactions/logicsig.go +++ b/data/transactions/logicsig.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/payment.go b/data/transactions/payment.go index 9a11730fc3..7db066773f 100644 --- a/data/transactions/payment.go +++ b/data/transactions/payment.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/payment_test.go b/data/transactions/payment_test.go index ae9ecfab64..5c24bab195 100644 --- a/data/transactions/payment_test.go +++ b/data/transactions/payment_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/payset.go b/data/transactions/payset.go index 7d70885906..beff43ae6e 100644 --- a/data/transactions/payset.go +++ b/data/transactions/payset.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/payset_test.go b/data/transactions/payset_test.go index 231e8efcae..796ae81d04 100644 --- a/data/transactions/payset_test.go +++ b/data/transactions/payset_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/perf_test.go b/data/transactions/perf_test.go index 9bcc83c0b8..d2652f56e9 100644 --- a/data/transactions/perf_test.go +++ b/data/transactions/perf_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/signedtxn.go b/data/transactions/signedtxn.go index 5a10829f09..f43cc18acd 100644 --- a/data/transactions/signedtxn.go +++ b/data/transactions/signedtxn.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/signedtxn_test.go b/data/transactions/signedtxn_test.go index f6862f2f4f..6001bed087 100644 --- a/data/transactions/signedtxn_test.go +++ b/data/transactions/signedtxn_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/sort.go b/data/transactions/sort.go index d8b3419996..8686149ec2 100644 --- a/data/transactions/sort.go +++ b/data/transactions/sort.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/stateproof.go b/data/transactions/stateproof.go index ed23420a1c..15c69e71bd 100644 --- a/data/transactions/stateproof.go +++ b/data/transactions/stateproof.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/teal.go b/data/transactions/teal.go index fa25a71520..b5c3e9034b 100644 --- a/data/transactions/teal.go +++ b/data/transactions/teal.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/teal_test.go b/data/transactions/teal_test.go index 92dbe0330c..f7c1adedf5 100644 --- a/data/transactions/teal_test.go +++ b/data/transactions/teal_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/testhelpers.go b/data/transactions/testhelpers.go index 349e28cca3..17488d14a8 100644 --- a/data/transactions/testhelpers.go +++ b/data/transactions/testhelpers.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/transaction.go b/data/transactions/transaction.go index f71aaa3744..c4548809c5 100644 --- a/data/transactions/transaction.go +++ b/data/transactions/transaction.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/transaction_test.go b/data/transactions/transaction_test.go index 183ebdc760..a024cf3b5a 100644 --- a/data/transactions/transaction_test.go +++ b/data/transactions/transaction_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/verify/artifact_test.go b/data/transactions/verify/artifact_test.go index 8e1cfcf68c..7f5f0d9645 100644 --- a/data/transactions/verify/artifact_test.go +++ b/data/transactions/verify/artifact_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/verify/txn.go b/data/transactions/verify/txn.go index f01727831f..089875cc60 100644 --- a/data/transactions/verify/txn.go +++ b/data/transactions/verify/txn.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/verify/txnBatch.go b/data/transactions/verify/txnBatch.go index e2bd95d4ea..9c32130317 100644 --- a/data/transactions/verify/txnBatch.go +++ b/data/transactions/verify/txnBatch.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/verify/txnBatch_test.go b/data/transactions/verify/txnBatch_test.go index 27dcc56343..d7921ea3a6 100644 --- a/data/transactions/verify/txnBatch_test.go +++ b/data/transactions/verify/txnBatch_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/verify/txn_test.go b/data/transactions/verify/txn_test.go index 1e7f39101f..9206b0a46c 100644 --- a/data/transactions/verify/txn_test.go +++ b/data/transactions/verify/txn_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/verify/verifiedTxnCache.go b/data/transactions/verify/verifiedTxnCache.go index cb73a43711..b1220f9aa2 100644 --- a/data/transactions/verify/verifiedTxnCache.go +++ b/data/transactions/verify/verifiedTxnCache.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/transactions/verify/verifiedTxnCache_test.go b/data/transactions/verify/verifiedTxnCache_test.go index 03f5cac288..956b3ea9e9 100644 --- a/data/transactions/verify/verifiedTxnCache_test.go +++ b/data/transactions/verify/verifiedTxnCache_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/txDupCache.go b/data/txDupCache.go index ff0e04a866..f05f89fbd8 100644 --- a/data/txDupCache.go +++ b/data/txDupCache.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/txDupCache_test.go b/data/txDupCache_test.go index 0458a3b76d..bf10bade52 100644 --- a/data/txDupCache_test.go +++ b/data/txDupCache_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/txHandler.go b/data/txHandler.go index ecea78f522..65fd869d7e 100644 --- a/data/txHandler.go +++ b/data/txHandler.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -627,7 +627,7 @@ func (handler *TxHandler) incomingMsgDupCheck(data []byte) (*crypto.Digest, bool // Returns: // - the capacity guard returned by the elastic rate limiter // - a boolean indicating if the sender is rate limited -func (handler *TxHandler) incomingMsgErlCheck(sender network.DisconnectablePeer) (*util.ErlCapacityGuard, bool) { +func (handler *TxHandler) incomingMsgErlCheck(sender network.DisconnectableAddressablePeer) (*util.ErlCapacityGuard, bool) { var capguard *util.ErlCapacityGuard var isCMEnabled bool var err error @@ -715,11 +715,11 @@ func (handler *TxHandler) incomingTxGroupCanonicalDedup(unverifiedTxGroup []tran } // incomingTxGroupAppRateLimit checks if the sender is rate limited by the per-application rate limiter. -func (handler *TxHandler) incomingTxGroupAppRateLimit(unverifiedTxGroup []transactions.SignedTxn, sender network.DisconnectablePeer) bool { +func (handler *TxHandler) incomingTxGroupAppRateLimit(unverifiedTxGroup []transactions.SignedTxn, sender network.DisconnectableAddressablePeer) bool { // rate limit per application in a group. Limiting any app in a group drops the entire message. if handler.appLimiter != nil { congestedARL := len(handler.backlogQueue) > handler.appLimiterBacklogThreshold - if congestedARL && handler.appLimiter.shouldDrop(unverifiedTxGroup, sender.(network.IPAddressable).RoutingAddr()) { + if congestedARL && handler.appLimiter.shouldDrop(unverifiedTxGroup, sender.RoutingAddr()) { transactionMessagesAppLimiterDrop.Inc(nil) return true } diff --git a/data/txHandler_test.go b/data/txHandler_test.go index 24e09b2963..67e82468fa 100644 --- a/data/txHandler_test.go +++ b/data/txHandler_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/txntest/defi.go b/data/txntest/defi.go index fedadd00d6..895eb0a54c 100644 --- a/data/txntest/defi.go +++ b/data/txntest/defi.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/txntest/program.go b/data/txntest/program.go index f0fa63dd81..00b6d95852 100644 --- a/data/txntest/program.go +++ b/data/txntest/program.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/data/txntest/txn.go b/data/txntest/txn.go index ed51c7ef40..c677a70d28 100644 --- a/data/txntest/txn.go +++ b/data/txntest/txn.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/gen/generate.go b/gen/generate.go index a5f6e46800..5e063da89f 100644 --- a/gen/generate.go +++ b/gen/generate.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/gen/generate_test.go b/gen/generate_test.go index d4c2ab152d..7c314883e8 100644 --- a/gen/generate_test.go +++ b/gen/generate_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/gen/walletData.go b/gen/walletData.go index 2c8f678ce0..7599fb3cf7 100644 --- a/gen/walletData.go +++ b/gen/walletData.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/heartbeat/README.md b/heartbeat/README.md index 7293afd43f..26dd933eb3 100644 --- a/heartbeat/README.md +++ b/heartbeat/README.md @@ -1,7 +1,7 @@ # Block Payouts, Suspensions, and Heartbeats Running a validator node on Algorand is a relatively lightweight operation. Therefore, participation -in consensus was not compensated. There was an expectation that financial motivated holders of Algos +in consensus was not compensated. There was an expectation that financially motivated holders of Algos would run nodes in order to help secure their holdings. Although simple participation is not terribly resource intensive, running _any_ service with high @@ -11,13 +11,13 @@ face of hardware failure (or the accounts should leave consensus properly). With those burdens in mind, fewer Algo holders chose to run participation nodes than would be preferred to provide security against well-financed bad actors. To alleviate this problem, a -mechanism to reward block proposers has been created. With these _block payouts_ in place, large +mechanism to reward block proposers has been created. With these _block payouts_ in place, Algo holders are incentivized to run participation nodes in order to earn more Algos, increasing security for the entire Algorand network. With the financial incentive to run participation nodes comes the risk that some nodes may be operated without sufficient care. Therefore, a mechanism to _suspend_ nodes that appear to be -performing poorly (or not at all). Appearances can be deceiving, however. Since Algorand is a +performing poorly (or not at all) is required. Appearances can be deceiving, however. Since Algorand is a probabilistic consensus protocol, pure chance might lead to a node appearing to be delinquent. A new transaction type, the _heartbeat_, allows a node to explicitly indicate that it is online even if it does not propose blocks due to "bad luck". @@ -26,17 +26,17 @@ does not propose blocks due to "bad luck". Payouts are made in every block, if the proposer has opted into receiving them, has an Algo balance in an appropriate range, and has not been suspended for poor behavior since opting-in. The size of -the payout is indicated in the block header, and comes from the `FeeSink`. The block payout consist +the payout is indicated in the block header, and comes from the `FeeSink`. The block payout consists of two components. First, a portion of the block fees (currently 50%) are paid to the proposer. -This component incentives fuller blocks which lead to larger payouts. Second, a _bonus_ payout is -made according to a exponentially decaying formula. This bonus is (intentionally) unsustainable +This component incentivizes fuller blocks which lead to larger payouts. Second, a _bonus_ payout is +made according to an exponentially decaying formula. This bonus is (intentionally) unsustainable from protocol fees. It is expected that the Algorand Foundation will seed the `FeeSink` with sufficient funds to allow the bonuses to be paid out according to the formula for several years. If the `FeeSink` has insufficient funds for the sum of these components, the payout will be as high as possible while maintaining the `FeeSink`'s minimum balance. These calculations are performed in `endOfBlock` in `eval/eval.go`. -To opt-in to receiving block payouts, an account includes an extra fee in the `keyreg` +To opt-in to receive block payouts, an account includes an extra fee in the `keyreg` transaction. The amount is controlled by the consensus parameter `Payouts.GoOnlineFee`. When such a fee is included, a new account state bit, `IncentiveEligible` is set to true. @@ -47,7 +47,7 @@ stake. If the account has too much or too little, no payout is performed (thoug rounds earlier, so a clever proposer can not move Algos in the round it proposes in order to receive the payout. Finally, in an interesting corner case, a proposing account could be closed at proposal time, since voting is based on the earlier balance. Such an account receives no payout, even if its -balances was in the proper range 320 rounds ago. +balance was in the proper range 320 rounds ago. A surprising complication in the implementation of these payouts is that when a block is prepared by a node, it does not know which account is the proposer. Until now, `algod` could prepare a single @@ -98,7 +98,7 @@ to 320 rounds past the current round. ## Challenges The absenteeism checks quickly suspend a high-value account if it becomes inoperative. For example, -and account with 2% of stake can be marked absent after 500 rounds (about 24 minutes). After +an account with 2% of stake can be marked absent after 500 rounds (about 24 minutes). After suspension, the effect on consensus is mitigated after 320 more rounds (about 15 minutes). Therefore, the suspension mechanism makes Algorand significantly more robust in the face of operational errors. @@ -106,7 +106,7 @@ of operational errors. However, the absenteeism mechanism is very slow to notice small accounts. An account with 30,000 Algos might represent 1/100,000 or less of total stake. It would only be considered absent after a million or more rounds without a proposal. At current network speeds, this is about a month. With such -slow detection, a financially motived entity might make the decision to run a node even if they lack +slow detection, a financially motivated entity might make the decision to run a node even if they lack the wherewithal to run the node with excellent uptime. A worst case scenario might be a node that is turned off daily, overnight. Such a node would generate profit for the runner, would probably never be marked offline by the absenteeism mechanism, yet would impact consensus negatively. Algorand @@ -136,11 +136,11 @@ committed your latest round yet. It is relatively easy for a bad actor to emit Heartbeats for its accounts without actually participating. However, there is no financial incentive to do so. Pretending to be operational when -offline does not earn block payouts. Furthermore, running a server to monitor the block chain to +offline does not earn block payouts. Furthermore, running a server to monitor the blockchain to notice challenges and gather the recent blockseed is not significantly cheaper than simply running a functional node. It is _already_ possible for malicious, well-resourced accounts to cause consensus difficulties by putting significant stake online without actually participating. Heartbeats do not -mitigate that risk. But these mechanisms have been designed to avoid _motivating_ such behavior, so +mitigate that risk. Heartbeats have rather been designed to avoid _motivating_ such behavior, so that they can accomplish their actual goal of noticing poor behavior stemming from _inadvertent_ operational problems. @@ -163,13 +163,13 @@ The conditions for a free Heartbeat are: ## Heartbeat Service -The Heartbeat Service (`heartbeat/service.go`) watches the state of all acounts for which `algod` +The Heartbeat Service (`heartbeat/service.go`) watches the state of all accounts for which `algod` has participation keys. If any of those accounts meets the requirements above, a heartbeat transaction is sent, starting with the round following half a grace period from the challenge. It uses the (presumably unfunded) logicsig that does nothing except preclude rekey operations. The heartbeat service does _not_ heartbeat if an account is unlucky and threatened to be considered -absent. We presume such false postives to be so unlikely that, if they occur, the node must be +absent. We presume such false positives to be so unlikely that, if they occur, the node must be brought back online manually. It would be reasonable to consider in the future: 1. Making heartbeats free for accounts that are "nearly absent". diff --git a/heartbeat/abstractions.go b/heartbeat/abstractions.go index a60f383669..4e9e24c321 100644 --- a/heartbeat/abstractions.go +++ b/heartbeat/abstractions.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/heartbeat/service.go b/heartbeat/service.go index 3e0a6cfa00..ad96d7f4f6 100644 --- a/heartbeat/service.go +++ b/heartbeat/service.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/heartbeat/service_test.go b/heartbeat/service_test.go index 8fd3cb2865..15185304c0 100644 --- a/heartbeat/service_test.go +++ b/heartbeat/service_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/internal/rapidgen/rapidgenerators.go b/internal/rapidgen/rapidgenerators.go index ba454d6d26..aa7345dcb9 100644 --- a/internal/rapidgen/rapidgenerators.go +++ b/internal/rapidgen/rapidgenerators.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/internal/rapidgen/tld.go b/internal/rapidgen/tld.go index 7d93ead420..31228125b2 100644 --- a/internal/rapidgen/tld.go +++ b/internal/rapidgen/tld.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/acctdeltas.go b/ledger/acctdeltas.go index ad0be650b7..4de4d18921 100644 --- a/ledger/acctdeltas.go +++ b/ledger/acctdeltas.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/acctdeltas_test.go b/ledger/acctdeltas_test.go index b16657dc64..7157e36943 100644 --- a/ledger/acctdeltas_test.go +++ b/ledger/acctdeltas_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -2750,6 +2750,27 @@ func TestAccountOnlineRoundParams(t *testing.T) { require.Equal(t, onlineRoundParams, dbOnlineRoundParams[1:]) require.Equal(t, maxRounds, int(endRound)) + // Use MakeOnlineRoundParamsIter to dump all data, starting from 10 + iter, err := sqlitedriver.MakeOnlineRoundParamsIter(context.Background(), tx, false, 10) + require.NoError(t, err) + defer iter.Close() + var roundParamsIterData []ledgercore.OnlineRoundParamsData + var roundParamsIterLastRound basics.Round + for iter.Next() { + item, err := iter.GetItem() + require.NoError(t, err) + + var orpData ledgercore.OnlineRoundParamsData + err = protocol.Decode(item.Data, &orpData) + require.NoError(t, err) + roundParamsIterLastRound = item.Round + + roundParamsIterData = append(roundParamsIterData, orpData) + } + require.Equal(t, onlineRoundParams[9:], roundParamsIterData) + require.Equal(t, maxRounds, int(roundParamsIterLastRound)) + + // Prune online round params to rnd 10 err = arw.AccountsPruneOnlineRoundParams(10) require.NoError(t, err) @@ -2772,6 +2793,15 @@ func TestAccountOnlineRoundParams(t *testing.T) { func TestOnlineAccountsDeletion(t *testing.T) { partitiontest.PartitionTest(t) + t.Run("delete", func(t *testing.T) { + runTestOnlineAccountsDeletion(t, testOnlineAccountsDeletion) + }) + t.Run("excludeBefore", func(t *testing.T) { + runTestOnlineAccountsDeletion(t, testOnlineAccountsExcludeBefore) + }) +} + +func runTestOnlineAccountsDeletion(t *testing.T, assertFunc func(*testing.T, basics.Address, basics.Address, *sql.Tx)) { dbs, _ := storetesting.DbOpenTest(t, true) storetesting.SetDbLogging(t, dbs) defer dbs.Close() @@ -2783,8 +2813,6 @@ func TestOnlineAccountsDeletion(t *testing.T) { var accts map[basics.Address]basics.AccountData sqlitedriver.AccountsInitTest(t, tx, accts, protocol.ConsensusCurrentVersion) - arw := sqlitedriver.NewAccountsSQLReaderWriter(tx) - updates := compactOnlineAccountDeltas{} addrA := ledgertesting.RandomAddress() addrB := ledgertesting.RandomAddress() @@ -2837,6 +2865,12 @@ func TestOnlineAccountsDeletion(t *testing.T) { require.NoError(t, err) require.Len(t, updated, 5) + assertFunc(t, addrA, addrB, tx) +} + +func testOnlineAccountsDeletion(t *testing.T, addrA, addrB basics.Address, tx *sql.Tx) { + arw := sqlitedriver.NewAccountsSQLReaderWriter(tx) + queries, err := sqlitedriver.OnlineAccountsInitDbQueries(tx) require.NoError(t, err) @@ -2898,6 +2932,62 @@ func TestOnlineAccountsDeletion(t *testing.T) { } } +// same assertions as testOnlineAccountsDeletion but with excludeBefore +func testOnlineAccountsExcludeBefore(t *testing.T, addrA, addrB basics.Address, tx *sql.Tx) { + // Use MakeOnlineAccountsIter to dump all data, starting from rnd + getAcctDataForRound := func(rnd basics.Round, expectedCount int64) map[basics.Address][]*encoded.OnlineAccountRecordV6 { + it, err := sqlitedriver.MakeOnlineAccountsIter(context.Background(), tx, false, rnd) + require.NoError(t, err) + + var count int64 + ret := make(map[basics.Address][]*encoded.OnlineAccountRecordV6) + for it.Next() { + acct, err := it.GetItem() + require.NoError(t, err) + ret[acct.Address] = append(ret[acct.Address], acct) + count++ + } + require.Equal(t, expectedCount, count) + return ret + } + + for _, rnd := range []basics.Round{1, 2, 3} { + vals := getAcctDataForRound(rnd, 5) + + history, ok := vals[addrA] + require.True(t, ok) + require.Len(t, history, 3) + + history, ok = vals[addrB] + require.True(t, ok) + require.Len(t, history, 2) + } + + for _, rnd := range []basics.Round{4, 5, 6, 7} { + vals := getAcctDataForRound(rnd, 3) + + history, ok := vals[addrA] + require.True(t, ok) + require.Len(t, history, 1) + + history, ok = vals[addrB] + require.True(t, ok) + require.Len(t, history, 2) + } + + for _, rnd := range []basics.Round{8, 9} { + vals := getAcctDataForRound(rnd, 2) + + history, ok := vals[addrA] + require.True(t, ok) + require.Len(t, history, 1) + + history, ok = vals[addrB] + require.True(t, ok) + require.Len(t, history, 1) + } +} + type mockOnlineAccountsErrorWriter struct { } diff --git a/ledger/acctonline.go b/ledger/acctonline.go index 76e6ef13ee..c7605281a8 100644 --- a/ledger/acctonline.go +++ b/ledger/acctonline.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/acctonline_expired_test.go b/ledger/acctonline_expired_test.go index 25bfe3b11b..c43f5fabcf 100644 --- a/ledger/acctonline_expired_test.go +++ b/ledger/acctonline_expired_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/acctonline_test.go b/ledger/acctonline_test.go index 296a5a2481..28cc9c3b0d 100644 --- a/ledger/acctonline_test.go +++ b/ledger/acctonline_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -1314,6 +1314,7 @@ func TestAcctOnlineVotersLongerHistory(t *testing.T) { require.NoError(t, err) require.Equal(t, oa.latest()-basics.Round(conf.MaxAcctLookback), endRound) require.Equal(t, maxBlocks-int(lowest)-int(conf.MaxAcctLookback)+1, len(dbOnlineRoundParams)) + require.Equal(t, endRound, oa.cachedDBRoundOnline) _, err = oa.onlineTotalsEx(lowest) require.NoError(t, err) @@ -1324,6 +1325,54 @@ func TestAcctOnlineVotersLongerHistory(t *testing.T) { // ensure the cache size for addrA does not have more entries than maxBalLookback + 1 // +1 comes from the deletion before X without checking account state at X require.Equal(t, maxBalLookback+1, oa.onlineAccountsCache.accounts[addrA].Len()) + + // Test if "excludeBefore" argument works for MakeOnlineAccountsIter & MakeOnlineRoundParamsIter + // when longer history is being used. Exclude rows older than round=lowest+2 + excludeRound := lowest + 2 + + // Test MakeOnlineAccountsIter + var foundCount int + err = oa.dbs.Snapshot(func(ctx context.Context, tx trackerdb.SnapshotScope) error { + // read staging = false, excludeBefore = excludeRound + it, err2 := tx.MakeOnlineAccountsIter(ctx, false, excludeRound) + require.NoError(t, err2) + defer it.Close() + + firstSeen := make(map[basics.Address]basics.Round) + for it.Next() { + acct, acctErr := it.GetItem() + require.NoError(t, acctErr) + // We expect all rows to either: + // - have updRound >= excludeRound + // - or have updRound < excludeRound, and only appear once in the iteration (no updates since excludeRound) + if acct.UpdateRound < excludeRound { + require.NotContains(t, firstSeen, acct.Address, "MakeOnlineAccountsIter produced two rows acct %s for dbRound %d updRound %d < excludeRound %d (first seen %d)", acct.Address, endRound, acct.UpdateRound, excludeRound, firstSeen[acct.Address]) + } + firstSeen[acct.Address] = acct.UpdateRound + foundCount++ + } + return nil + }) + require.NoError(t, err) + require.True(t, foundCount > 0, "Should see some accounts that satisfy updRound >= excludeRound") + + // Test MakeOnlineRoundParamsIter + foundCount = 0 + err = oa.dbs.Snapshot(func(ctx context.Context, tx trackerdb.SnapshotScope) error { + it, err2 := tx.MakeOnlineRoundParamsIter(ctx, false, excludeRound) + require.NoError(t, err2) + defer it.Close() + + for it.Next() { + roundParams, roundParamsErr := it.GetItem() + require.NoError(t, roundParamsErr) + require.True(t, roundParams.Round >= excludeRound, "MakeOnlineRoundParamsIter produced row for round %d < excludeRound %d", roundParams.Round, excludeRound) + foundCount++ + } + return nil + }) + require.NoError(t, err) + require.EqualValues(t, endRound-excludeRound+1, foundCount, "Should see all round params for rounds >= excludeRound") } // compareTopAccounts makes sure that accounts returned from OnlineTop function are sorted and contains the online accounts on the test diff --git a/ledger/acctonlineexp.go b/ledger/acctonlineexp.go index 83cdaea456..4b08b38180 100644 --- a/ledger/acctonlineexp.go +++ b/ledger/acctonlineexp.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/acctonlineexp_test.go b/ledger/acctonlineexp_test.go index 024a8c539c..df53d9ef6f 100644 --- a/ledger/acctonlineexp_test.go +++ b/ledger/acctonlineexp_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/acctupdates.go b/ledger/acctupdates.go index 6acbb12ae5..9544dfcd2d 100644 --- a/ledger/acctupdates.go +++ b/ledger/acctupdates.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/acctupdates_test.go b/ledger/acctupdates_test.go index aa43b07b90..e72dea9444 100644 --- a/ledger/acctupdates_test.go +++ b/ledger/acctupdates_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/applications_test.go b/ledger/applications_test.go index f140d6c7dd..2dbb584966 100644 --- a/ledger/applications_test.go +++ b/ledger/applications_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/application.go b/ledger/apply/application.go index 33ae9545fb..7d18aa5fa7 100644 --- a/ledger/apply/application.go +++ b/ledger/apply/application.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/application_test.go b/ledger/apply/application_test.go index 77efd5b075..b0f04ad00a 100644 --- a/ledger/apply/application_test.go +++ b/ledger/apply/application_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/apply.go b/ledger/apply/apply.go index 5bbe482f38..f8bf1dc2ee 100644 --- a/ledger/apply/apply.go +++ b/ledger/apply/apply.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/asset.go b/ledger/apply/asset.go index 186b82ad46..9b85f5b31a 100644 --- a/ledger/apply/asset.go +++ b/ledger/apply/asset.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/asset_test.go b/ledger/apply/asset_test.go index 0280ecdb60..0c1e800041 100644 --- a/ledger/apply/asset_test.go +++ b/ledger/apply/asset_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/challenge.go b/ledger/apply/challenge.go index 0de7c1208e..19d9828daa 100644 --- a/ledger/apply/challenge.go +++ b/ledger/apply/challenge.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/challenge_test.go b/ledger/apply/challenge_test.go index 3114b6f935..4949f11144 100644 --- a/ledger/apply/challenge_test.go +++ b/ledger/apply/challenge_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/heartbeat.go b/ledger/apply/heartbeat.go index a37c8238a4..898e0e269d 100644 --- a/ledger/apply/heartbeat.go +++ b/ledger/apply/heartbeat.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/heartbeat_test.go b/ledger/apply/heartbeat_test.go index 06a91bf156..bc0c775de4 100644 --- a/ledger/apply/heartbeat_test.go +++ b/ledger/apply/heartbeat_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/keyreg.go b/ledger/apply/keyreg.go index d883618685..571a683d44 100644 --- a/ledger/apply/keyreg.go +++ b/ledger/apply/keyreg.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/keyreg_test.go b/ledger/apply/keyreg_test.go index 41976257ea..7732949ac5 100644 --- a/ledger/apply/keyreg_test.go +++ b/ledger/apply/keyreg_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/mockBalances_test.go b/ledger/apply/mockBalances_test.go index 312f37e76d..ed5b7b2f41 100644 --- a/ledger/apply/mockBalances_test.go +++ b/ledger/apply/mockBalances_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/payment.go b/ledger/apply/payment.go index 908e8eb926..ba1efea2cf 100644 --- a/ledger/apply/payment.go +++ b/ledger/apply/payment.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/payment_test.go b/ledger/apply/payment_test.go index e7d23721b6..eb559f66a5 100644 --- a/ledger/apply/payment_test.go +++ b/ledger/apply/payment_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/stateproof.go b/ledger/apply/stateproof.go index 70db26e882..8838af7161 100644 --- a/ledger/apply/stateproof.go +++ b/ledger/apply/stateproof.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apply/stateproof_test.go b/ledger/apply/stateproof_test.go index be774d2e4f..8e287708db 100644 --- a/ledger/apply/stateproof_test.go +++ b/ledger/apply/stateproof_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/apptxn_test.go b/ledger/apptxn_test.go index fce41b00a3..4509b66c0b 100644 --- a/ledger/apptxn_test.go +++ b/ledger/apptxn_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/archival_test.go b/ledger/archival_test.go index 96477708f5..2e2d5c408a 100644 --- a/ledger/archival_test.go +++ b/ledger/archival_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/blockqueue.go b/ledger/blockqueue.go index 7c17281017..03e7125725 100644 --- a/ledger/blockqueue.go +++ b/ledger/blockqueue.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/blockqueue_test.go b/ledger/blockqueue_test.go index e72523be71..a60c231cd2 100644 --- a/ledger/blockqueue_test.go +++ b/ledger/blockqueue_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/boxtxn_test.go b/ledger/boxtxn_test.go index 7f42beb143..2cbec642ab 100644 --- a/ledger/boxtxn_test.go +++ b/ledger/boxtxn_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/bulletin.go b/ledger/bulletin.go index 8af69f472d..64d360e8b3 100644 --- a/ledger/bulletin.go +++ b/ledger/bulletin.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/bulletin_test.go b/ledger/bulletin_test.go index 69bc2525d8..0b3348481e 100644 --- a/ledger/bulletin_test.go +++ b/ledger/bulletin_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/catchpointfileheader.go b/ledger/catchpointfileheader.go index 8fd75df135..be1e82c205 100644 --- a/ledger/catchpointfileheader.go +++ b/ledger/catchpointfileheader.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/catchpointfilewriter.go b/ledger/catchpointfilewriter.go index 606da98aff..859b8006f3 100644 --- a/ledger/catchpointfilewriter.go +++ b/ledger/catchpointfilewriter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -24,6 +24,8 @@ import ( "os" "path/filepath" + "github.com/algorand/go-algorand/config" + "github.com/algorand/go-algorand/data/basics" "github.com/algorand/go-algorand/ledger/encoded" "github.com/algorand/go-algorand/ledger/ledgercore" "github.com/algorand/go-algorand/ledger/store/trackerdb" @@ -53,6 +55,7 @@ const ( type catchpointFileWriter struct { ctx context.Context tx trackerdb.SnapshotScope + params config.ConsensusParams filePath string totalAccounts uint64 totalKVs uint64 @@ -67,6 +70,7 @@ type catchpointFileWriter struct { biggestChunkLen uint64 accountsIterator trackerdb.EncodedAccountsBatchIter maxResourcesPerChunk int + onlineExcludeBefore basics.Round accountsDone bool kvRows trackerdb.KVsIter kvDone bool @@ -104,7 +108,7 @@ func (data catchpointStateProofVerificationContext) ToBeHashed() (protocol.HashI return protocol.StateProofVerCtx, protocol.Encode(&data) } -func makeCatchpointFileWriter(ctx context.Context, filePath string, tx trackerdb.SnapshotScope, maxResourcesPerChunk int) (*catchpointFileWriter, error) { +func makeCatchpointFileWriter(ctx context.Context, params config.ConsensusParams, filePath string, tx trackerdb.SnapshotScope, maxResourcesPerChunk int, onlineExcludeBefore basics.Round) (*catchpointFileWriter, error) { aw, err := tx.MakeAccountsReader() if err != nil { return nil, err @@ -120,14 +124,17 @@ func makeCatchpointFileWriter(ctx context.Context, filePath string, tx trackerdb return nil, err } - totalOnlineAccounts, err := aw.TotalOnlineAccountRows(ctx) - if err != nil { - return nil, err - } + var totalOnlineAccounts, totalOnlineRoundParams uint64 + if params.EnableCatchpointsWithOnlineAccounts { + totalOnlineAccounts, err = aw.TotalOnlineAccountRows(ctx) + if err != nil { + return nil, err + } - totalOnlineRoundParams, err := aw.TotalOnlineRoundParams(ctx) - if err != nil { - return nil, err + totalOnlineRoundParams, err = aw.TotalOnlineRoundParams(ctx) + if err != nil { + return nil, err + } } err = os.MkdirAll(filepath.Dir(filePath), 0700) @@ -147,6 +154,7 @@ func makeCatchpointFileWriter(ctx context.Context, filePath string, tx trackerdb res := &catchpointFileWriter{ ctx: ctx, tx: tx, + params: params, filePath: filePath, totalAccounts: totalAccounts, totalKVs: totalKVs, @@ -157,6 +165,7 @@ func makeCatchpointFileWriter(ctx context.Context, filePath string, tx trackerdb tar: tar, accountsIterator: tx.MakeEncodedAccountsBatchIter(), maxResourcesPerChunk: maxResourcesPerChunk, + onlineExcludeBefore: onlineExcludeBefore, } return res, nil } @@ -370,10 +379,10 @@ func (cw *catchpointFileWriter) readDatabaseStep(ctx context.Context) error { cw.kvDone = true } - if !cw.onlineAccountsDone { + if cw.params.EnableCatchpointsWithOnlineAccounts && !cw.onlineAccountsDone { // Create the OnlineAccounts iterator JIT if cw.onlineAccountRows == nil { - rows, err := cw.tx.MakeOnlineAccountsIter(ctx, false) + rows, err := cw.tx.MakeOnlineAccountsIter(ctx, false, cw.onlineExcludeBefore) if err != nil { return err } @@ -399,10 +408,10 @@ func (cw *catchpointFileWriter) readDatabaseStep(ctx context.Context) error { cw.onlineAccountsDone = true } - if !cw.onlineRoundParamsDone { + if cw.params.EnableCatchpointsWithOnlineAccounts && !cw.onlineRoundParamsDone { // Create the OnlineRoundParams iterator JIT if cw.onlineRoundParamsRows == nil { - rows, err := cw.tx.MakeOnlineRoundParamsIter(ctx, false) + rows, err := cw.tx.MakeOnlineRoundParamsIter(ctx, false, cw.onlineExcludeBefore) if err != nil { return err } diff --git a/ledger/catchpointfilewriter_test.go b/ledger/catchpointfilewriter_test.go index d091cd5331..daefc89ea2 100644 --- a/ledger/catchpointfilewriter_test.go +++ b/ledger/catchpointfilewriter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -149,7 +149,7 @@ func verifyStateProofVerificationContextWrite(t *testing.T, data []ledgercore.St require.NoError(t, err) err = ml.trackerDB().Transaction(func(ctx context.Context, tx trackerdb.TransactionScope) (err error) { - writer, err := makeCatchpointFileWriter(context.Background(), fileName, tx, ResourcesPerCatchpointFileChunk) + writer, err := makeCatchpointFileWriter(context.Background(), protoParams, fileName, tx, ResourcesPerCatchpointFileChunk, 0) if err != nil { return err } @@ -264,7 +264,7 @@ func TestBasicCatchpointWriter(t *testing.T) { fileName := filepath.Join(temporaryDirectory, "15.data") err = ml.trackerDB().Transaction(func(ctx context.Context, tx trackerdb.TransactionScope) (err error) { - writer, err := makeCatchpointFileWriter(context.Background(), fileName, tx, ResourcesPerCatchpointFileChunk) + writer, err := makeCatchpointFileWriter(context.Background(), protoParams, fileName, tx, ResourcesPerCatchpointFileChunk, 0) if err != nil { return err } @@ -297,7 +297,7 @@ func TestBasicCatchpointWriter(t *testing.T) { require.Equal(t, uint64(len(accts)), uint64(len(chunk.Balances))) } -func testWriteCatchpoint(t *testing.T, rdb trackerdb.Store, datapath string, filepath string, maxResourcesPerChunk int) CatchpointFileHeader { +func testWriteCatchpoint(t *testing.T, params config.ConsensusParams, rdb trackerdb.Store, datapath string, filepath string, maxResourcesPerChunk int, onlineExcludeBefore basics.Round) CatchpointFileHeader { var totalAccounts, totalKVs, totalOnlineAccounts, totalOnlineRoundParams, totalChunks uint64 var biggestChunkLen uint64 var accountsRnd basics.Round @@ -307,7 +307,7 @@ func testWriteCatchpoint(t *testing.T, rdb trackerdb.Store, datapath string, fil } err := rdb.Transaction(func(ctx context.Context, tx trackerdb.TransactionScope) (err error) { - writer, err := makeCatchpointFileWriter(context.Background(), datapath, tx, maxResourcesPerChunk) + writer, err := makeCatchpointFileWriter(context.Background(), params, datapath, tx, maxResourcesPerChunk, onlineExcludeBefore) if err != nil { return err } @@ -440,7 +440,7 @@ func TestCatchpointReadDatabaseOverflowSingleAccount(t *testing.T) { totalAccountsWritten := uint64(0) totalResources := 0 totalChunks := 0 - cw, err := makeCatchpointFileWriter(context.Background(), catchpointDataFilePath, tx, maxResourcesPerChunk) + cw, err := makeCatchpointFileWriter(context.Background(), protoParams, catchpointDataFilePath, tx, maxResourcesPerChunk, 0) require.NoError(t, err) ar, err := tx.MakeAccountsReader() @@ -546,7 +546,7 @@ func TestCatchpointReadDatabaseOverflowAccounts(t *testing.T) { totalAccountsWritten := uint64(0) totalResources := 0 - cw, err := makeCatchpointFileWriter(context.Background(), catchpointDataFilePath, tx, maxResourcesPerChunk) + cw, err := makeCatchpointFileWriter(context.Background(), protoParams, catchpointDataFilePath, tx, maxResourcesPerChunk, 0) require.NoError(t, err) // repeat this until read all accts @@ -604,7 +604,7 @@ func TestFullCatchpointWriterOverflowAccounts(t *testing.T) { catchpointDataFilePath := filepath.Join(temporaryDirectory, "15.data") catchpointFilePath := filepath.Join(temporaryDirectory, "15.catchpoint") const maxResourcesPerChunk = 5 - testWriteCatchpoint(t, ml.trackerDB(), catchpointDataFilePath, catchpointFilePath, maxResourcesPerChunk) + testWriteCatchpoint(t, protoParams, ml.trackerDB(), catchpointDataFilePath, catchpointFilePath, maxResourcesPerChunk, 0) l := testNewLedgerFromCatchpoint(t, ml.trackerDB(), catchpointFilePath) defer l.Close() @@ -802,7 +802,7 @@ func TestFullCatchpointWriter(t *testing.T) { catchpointDataFilePath := filepath.Join(temporaryDirectory, "15.data") catchpointFilePath := filepath.Join(temporaryDirectory, "15.catchpoint") - testWriteCatchpoint(t, ml.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0) + testWriteCatchpoint(t, protoParams, ml.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0, 0) l := testNewLedgerFromCatchpoint(t, ml.trackerDB(), catchpointFilePath) defer l.Close() @@ -818,7 +818,7 @@ func TestFullCatchpointWriter(t *testing.T) { // ensure both committed all pending changes before taking a catchpoint // another approach is to modify the test and craft round numbers, // and make the ledger to generate catchpoint itself when it is time -func testCatchpointFlushRound(l *Ledger) { +func testCatchpointFlushRound(l *Ledger) basics.Round { // Clear the timer to ensure a flush l.trackers.mu.Lock() l.trackers.lastFlushTime = time.Time{} @@ -827,20 +827,34 @@ func testCatchpointFlushRound(l *Ledger) { r, _ := l.LatestCommitted() l.trackers.committedUpTo(r) l.trackers.waitAccountsWriting() + return r } func TestExactAccountChunk(t *testing.T) { partitiontest.PartitionTest(t) - t.Parallel() + // t.Parallel() // probably not good to parallelize catchpoint file save/load - genBalances, addrs, _ := ledgertesting.NewTestGenesis() + t.Run("v39", func(t *testing.T) { testExactAccountChunk(t, protocol.ConsensusV39, 40) }) + t.Run("v40", func(t *testing.T) { testExactAccountChunk(t, protocol.ConsensusV40, 40) }) + t.Run("v40_SPstall", func(t *testing.T) { testExactAccountChunk(t, protocol.ConsensusV40, 100) }) + t.Run("future", func(t *testing.T) { testExactAccountChunk(t, protocol.ConsensusFuture, 40) }) + t.Run("future_SPstall", func(t *testing.T) { testExactAccountChunk(t, protocol.ConsensusFuture, 100) }) +} + +func testExactAccountChunk(t *testing.T, proto protocol.ConsensusVersion, extraBlocks int) { + genBalances, addrs, _ := ledgertesting.NewTestGenesis(func(c *ledgertesting.GenesisCfg) { + c.OnlineCount = 1 // addrs[0] is online + }, ledgertesting.TurnOffRewards) cfg := config.GetDefaultLocal() - dl := NewDoubleLedger(t, genBalances, protocol.ConsensusFuture, cfg) + params := config.Consensus[proto] + + dl := NewDoubleLedger(t, genBalances, proto, cfg) defer dl.Close() + payFrom := addrs[1] // offline account sends pays pay := txntest.Txn{ Type: "pay", - Sender: addrs[0], + Sender: payFrom, Amount: 1_000_000, } // There are 12 accounts in the NewTestGenesis, so we create more so that we @@ -852,16 +866,18 @@ func TestExactAccountChunk(t *testing.T) { dl.fullBlock(&newacctpay) } - // At least 32 more blocks so that we catchpoint after the accounts exist - for i := 0; i < 40; i++ { + // Add more blocks so that we catchpoint after the accounts exist + for i := 0; i < extraBlocks; i++ { selfpay := pay - selfpay.Receiver = addrs[0] + selfpay.Receiver = payFrom selfpay.Note = ledgertesting.RandomNote() dl.fullBlock(&selfpay) } - testCatchpointFlushRound(dl.generator) - testCatchpointFlushRound(dl.validator) + genR := testCatchpointFlushRound(dl.generator) + valR := testCatchpointFlushRound(dl.validator) + require.Equal(t, genR, valR) + require.EqualValues(t, BalancesPerCatchpointFileChunk-12+extraBlocks, genR) require.Eventually(t, func() bool { dl.generator.accts.accountsMu.RLock() @@ -879,8 +895,54 @@ func TestExactAccountChunk(t *testing.T) { catchpointDataFilePath := filepath.Join(tempDir, t.Name()+".data") catchpointFilePath := filepath.Join(tempDir, t.Name()+".catchpoint.tar.gz") - cph := testWriteCatchpoint(t, dl.validator.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0) - require.EqualValues(t, cph.TotalChunks, 2) + genDBRound := dl.generator.trackers.acctsOnline.cachedDBRoundOnline + valDBRound := dl.validator.trackers.acctsOnline.cachedDBRoundOnline + genLowestRound := dl.generator.trackers.acctsOnline.voters.lowestRound(genDBRound) + valLowestRound := dl.validator.trackers.acctsOnline.voters.lowestRound(valDBRound) + require.Equal(t, genLowestRound, valLowestRound) + require.Equal(t, genDBRound, valDBRound) + + var onlineExcludeBefore basics.Round + // we added so many blocks that lowestRound is stuck at first state proof, round 240? + if normalHorizon := (genDBRound + 1).SubSaturate(basics.Round(params.MaxBalLookback)); normalHorizon == genLowestRound { + t.Logf("subtest is exercising case where 320 rounds of history are already in DB") + require.EqualValues(t, genLowestRound, params.StateProofInterval-params.StateProofVotersLookback) + } else if normalHorizon > genLowestRound { + t.Logf("subtest is exercising case where votersTracker causes onlineaccounts & onlineroundparams to extend history to round %d (DBRound %d)", genLowestRound, genDBRound) + onlineExcludeBefore = normalHorizon // fails without this adjustment + } + + cph := testWriteCatchpoint(t, config.Consensus[proto], dl.validator.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0, onlineExcludeBefore) + + decodedData := readCatchpointFile(t, catchpointFilePath) + + // decode and verify some stats about balances chunk contents + var chunks []catchpointFileChunkV6 + for i, d := range decodedData { + t.Logf("section %d: %s", i, d.headerName) + if strings.HasPrefix(d.headerName, "balances.") { + var chunk catchpointFileChunkV6 + err := protocol.Decode(d.data, &chunk) + require.NoError(t, err) + t.Logf("chunk %d balances: %d, kvs: %d, onlineaccounts: %d, onlineroundparams: %d", i, len(chunk.Balances), len(chunk.KVs), len(chunk.OnlineAccounts), len(chunk.OnlineRoundParams)) + chunks = append(chunks, chunk) + } + } + if config.Consensus[proto].EnableCatchpointsWithOnlineAccounts { + require.Len(t, chunks, 3) + } else { + require.Len(t, chunks, 1) + } + require.Len(t, chunks, int(cph.TotalChunks)) + + // first chunk is maxed out (512 accounts) + require.Len(t, chunks[0].Balances, BalancesPerCatchpointFileChunk) + + if config.Consensus[proto].EnableCatchpointsWithOnlineAccounts { + // second and third chunks are onlinaccounts and onlineroundparams + require.Len(t, chunks[1].OnlineAccounts, 1) // only 1 online account + require.Len(t, chunks[2].OnlineRoundParams, int(params.MaxBalLookback)) // 320 + } l := testNewLedgerFromCatchpoint(t, dl.generator.trackerDB(), catchpointFilePath) defer l.Close() @@ -894,7 +956,8 @@ func TestCatchpointAfterTxns(t *testing.T) { genBalances, addrs, _ := ledgertesting.NewTestGenesis() cfg := config.GetDefaultLocal() - dl := NewDoubleLedger(t, genBalances, protocol.ConsensusFuture, cfg) + proto := protocol.ConsensusFuture + dl := NewDoubleLedger(t, genBalances, proto, cfg) defer dl.Close() boxApp := dl.fundedApp(addrs[1], 1_000_000, boxAppSource) @@ -931,7 +994,7 @@ func TestCatchpointAfterTxns(t *testing.T) { catchpointDataFilePath := filepath.Join(tempDir, t.Name()+".data") catchpointFilePath := filepath.Join(tempDir, t.Name()+".catchpoint.tar.gz") - cph := testWriteCatchpoint(t, dl.validator.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0) + cph := testWriteCatchpoint(t, config.Consensus[proto], dl.validator.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0, 0) require.EqualValues(t, 3, cph.TotalChunks) l := testNewLedgerFromCatchpoint(t, dl.validator.trackerDB(), catchpointFilePath) @@ -947,7 +1010,7 @@ func TestCatchpointAfterTxns(t *testing.T) { dl.fullBlock(&newacctpay) // Write and read back in, and ensure even the last effect exists. - cph = testWriteCatchpoint(t, dl.validator.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0) + cph = testWriteCatchpoint(t, config.Consensus[proto], dl.validator.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0, 0) require.EqualValues(t, cph.TotalChunks, 3) // Still only 3 chunks, as last was in a recent block // Drive home the point that `last` is _not_ included in the catchpoint by inspecting balance read from catchpoint. @@ -963,7 +1026,7 @@ func TestCatchpointAfterTxns(t *testing.T) { dl.fullBlock(pay.Noted(strconv.Itoa(i))) } - cph = testWriteCatchpoint(t, dl.validator.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0) + cph = testWriteCatchpoint(t, config.Consensus[proto], dl.validator.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0, 0) require.EqualValues(t, cph.TotalChunks, 4) l = testNewLedgerFromCatchpoint(t, dl.validator.trackerDB(), catchpointFilePath) @@ -994,7 +1057,8 @@ func TestCatchpointAfterStakeLookupTxns(t *testing.T) { ledgertesting.TurnOffRewards(cfg) }) cfg := config.GetDefaultLocal() - dl := NewDoubleLedger(t, genBalances, protocol.ConsensusFuture, cfg, simpleLedgerOnDisk()) + proto := protocol.ConsensusFuture + dl := NewDoubleLedger(t, genBalances, proto, cfg, simpleLedgerOnDisk()) defer dl.Close() initialStake := uint64(833333333333333) @@ -1095,18 +1159,18 @@ assert t.Log("DB round generator", genDBRound, "validator", valDBRound) t.Log("Latest round generator", genLatestRound, "validator", valLatestRound) - genOAHash, genOARows, err := calculateVerificationHash(context.Background(), dl.generator.trackerDB().MakeOnlineAccountsIter, false) + genOAHash, genOARows, err := calculateVerificationHash(context.Background(), dl.generator.trackerDB().MakeOnlineAccountsIter, 0, false) require.NoError(t, err) - valOAHash, valOARows, err := calculateVerificationHash(context.Background(), dl.validator.trackerDB().MakeOnlineAccountsIter, false) + valOAHash, valOARows, err := calculateVerificationHash(context.Background(), dl.validator.trackerDB().MakeOnlineAccountsIter, 0, false) require.NoError(t, err) require.Equal(t, genOAHash, valOAHash) require.NotZero(t, genOAHash) require.Equal(t, genOARows, valOARows) require.NotZero(t, genOARows) - genORPHash, genORPRows, err := calculateVerificationHash(context.Background(), dl.generator.trackerDB().MakeOnlineRoundParamsIter, false) + genORPHash, genORPRows, err := calculateVerificationHash(context.Background(), dl.generator.trackerDB().MakeOnlineRoundParamsIter, 0, false) require.NoError(t, err) - valORPHash, valORPRows, err := calculateVerificationHash(context.Background(), dl.validator.trackerDB().MakeOnlineRoundParamsIter, false) + valORPHash, valORPRows, err := calculateVerificationHash(context.Background(), dl.validator.trackerDB().MakeOnlineRoundParamsIter, 0, false) require.NoError(t, err) require.Equal(t, genORPHash, valORPHash) require.NotZero(t, genORPHash) @@ -1117,19 +1181,19 @@ assert catchpointDataFilePath := filepath.Join(tempDir, t.Name()+".data") catchpointFilePath := filepath.Join(tempDir, t.Name()+".catchpoint.tar.gz") - cph := testWriteCatchpoint(t, dl.generator.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0) + cph := testWriteCatchpoint(t, config.Consensus[proto], dl.generator.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0, 0) require.EqualValues(t, 7, cph.TotalChunks) l := testNewLedgerFromCatchpoint(t, dl.generator.trackerDB(), catchpointFilePath) defer l.Close() - catchpointOAHash, catchpointOARows, err := calculateVerificationHash(context.Background(), l.trackerDBs.MakeOnlineAccountsIter, false) + catchpointOAHash, catchpointOARows, err := calculateVerificationHash(context.Background(), l.trackerDBs.MakeOnlineAccountsIter, 0, false) require.NoError(t, err) require.Equal(t, genOAHash, catchpointOAHash) t.Log("catchpoint onlineaccounts hash", catchpointOAHash, "matches") require.Equal(t, genOARows, catchpointOARows) - catchpointORPHash, catchpointORPRows, err := calculateVerificationHash(context.Background(), l.trackerDBs.MakeOnlineRoundParamsIter, false) + catchpointORPHash, catchpointORPRows, err := calculateVerificationHash(context.Background(), l.trackerDBs.MakeOnlineRoundParamsIter, 0, false) require.NoError(t, err) require.Equal(t, genORPHash, catchpointORPHash) t.Log("catchpoint onlineroundparams hash", catchpointORPHash, "matches") @@ -1161,7 +1225,8 @@ func TestCatchpointAfterBoxTxns(t *testing.T) { genBalances, addrs, _ := ledgertesting.NewTestGenesis() cfg := config.GetDefaultLocal() - dl := NewDoubleLedger(t, genBalances, protocol.ConsensusFuture, cfg) + proto := protocol.ConsensusFuture + dl := NewDoubleLedger(t, genBalances, proto, cfg) defer dl.Close() boxApp := dl.fundedApp(addrs[1], 1_000_000, boxAppSource) @@ -1216,7 +1281,7 @@ func TestCatchpointAfterBoxTxns(t *testing.T) { catchpointDataFilePath := filepath.Join(tempDir, t.Name()+".data") catchpointFilePath := filepath.Join(tempDir, t.Name()+".catchpoint.tar.gz") - cph := testWriteCatchpoint(t, dl.generator.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0) + cph := testWriteCatchpoint(t, config.Consensus[proto], dl.generator.trackerDB(), catchpointDataFilePath, catchpointFilePath, 0, 0) require.EqualValues(t, 3, cph.TotalChunks) l := testNewLedgerFromCatchpoint(t, dl.generator.trackerDB(), catchpointFilePath) diff --git a/ledger/catchpointtracker.go b/ledger/catchpointtracker.go index 603672f8e6..5b30d88869 100644 --- a/ledger/catchpointtracker.go +++ b/ledger/catchpointtracker.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -213,7 +213,7 @@ func (ct *catchpointTracker) getSPVerificationData() (encodedData []byte, spVeri return encodedData, spVerificationHash, nil } -func (ct *catchpointTracker) finishFirstStage(ctx context.Context, dbRound basics.Round, blockProto protocol.ConsensusVersion, updatingBalancesDuration time.Duration) error { +func (ct *catchpointTracker) finishFirstStage(ctx context.Context, dbRound basics.Round, onlineAccountsForgetBefore basics.Round, blockProto protocol.ConsensusVersion, updatingBalancesDuration time.Duration) error { ct.log.Infof("finishing catchpoint's first stage dbRound: %d", dbRound) var totalAccounts, totalKVs, totalOnlineAccounts, totalOnlineRoundParams uint64 @@ -223,8 +223,26 @@ func (ct *catchpointTracker) finishFirstStage(ctx context.Context, dbRound basic var spVerificationEncodedData []byte var catchpointGenerationStats telemetryspec.CatchpointGenerationEventDetails var onlineAccountsHash, onlineRoundParamsHash crypto.Digest - params := config.Consensus[blockProto] + + // Usually onlineAccountsForgetBefore is dbRound - params.MaxBalLookback (320 rounds of history), + // but if votersTracker needs more state, it can set lowestRound to be earlier than that. + // We want to only write MaxBalLookback rounds of history to the catchpoint file. + var onlineExcludeBefore basics.Round + if normalOnlineHorizon := (dbRound + 1).SubSaturate(basics.Round(params.MaxBalLookback)); normalOnlineHorizon == onlineAccountsForgetBefore { + // this is the common case, so we pass 0 so the DB dumps the full table, as is + onlineExcludeBefore = 0 + } else if normalOnlineHorizon > onlineAccountsForgetBefore { + // the previous flush left more online-related rows than we want in the DB. we need to tell + // the catchpoint writer to exclude the rows that are older than the ones we want to keep. + onlineExcludeBefore = normalOnlineHorizon + } else { + // The previous flush left less online-related rows than we want in the DB. This should not happen; return error + ct.log.Errorf("catchpointTracker.finishFirstStage: dbRound %d and onlineAccountsForgetBefore %d has less history than MaxBalLookback %d", + dbRound, onlineAccountsForgetBefore, params.MaxBalLookback) + return errors.New("catchpointTracker.finishFirstStage: onlineAccountsForgetBefore doesn't provide enough history") + } + if params.EnableCatchpointsWithSPContexts { // Generate the SP Verification hash and encoded data. The hash is used in the label when tracking catchpoints, // and the encoded data for that hash will be added to the catchpoint file if catchpoint generation is enabled. @@ -238,13 +256,13 @@ func (ct *catchpointTracker) finishFirstStage(ctx context.Context, dbRound basic // Generate hashes of the onlineaccounts and onlineroundparams tables. err := ct.dbs.Snapshot(func(ctx context.Context, tx trackerdb.SnapshotScope) error { var dbErr error - onlineAccountsHash, _, dbErr = calculateVerificationHash(ctx, tx.MakeOnlineAccountsIter, false) + onlineAccountsHash, _, dbErr = calculateVerificationHash(ctx, tx.MakeOnlineAccountsIter, onlineExcludeBefore, false) if dbErr != nil { return dbErr } - onlineRoundParamsHash, _, dbErr = calculateVerificationHash(ctx, tx.MakeOnlineRoundParamsIter, false) + onlineRoundParamsHash, _, dbErr = calculateVerificationHash(ctx, tx.MakeOnlineRoundParamsIter, onlineExcludeBefore, false) if dbErr != nil { return dbErr } @@ -264,7 +282,7 @@ func (ct *catchpointTracker) finishFirstStage(ctx context.Context, dbRound basic catchpointGenerationStats.BalancesWriteTime = uint64(updatingBalancesDuration.Nanoseconds()) totalAccounts, totalKVs, totalOnlineAccounts, totalOnlineRoundParams, totalChunks, biggestChunkLen, err = ct.generateCatchpointData( - ctx, dbRound, &catchpointGenerationStats, spVerificationEncodedData) + ctx, params, dbRound, onlineExcludeBefore, &catchpointGenerationStats, spVerificationEncodedData) ct.catchpointDataWriting.Store(0) if err != nil { return err @@ -308,7 +326,11 @@ func (ct *catchpointTracker) finishFirstStageAfterCrash(dbRound basics.Round, bl return err } - return ct.finishFirstStage(context.Background(), dbRound, blockProto, 0) + // pass dbRound+1-maxBalLookback as the onlineAccountsForgetBefore parameter: since we can't be sure whether + // there are more than 320 rounds of history in the online accounts tables, this ensures the catchpoint + // will only contain the most recent 320 rounds. + onlineAccountsForgetBefore := (dbRound + 1).SubSaturate(basics.Round(config.Consensus[blockProto].MaxBalLookback)) + return ct.finishFirstStage(context.Background(), dbRound, onlineAccountsForgetBefore, blockProto, 0) } func (ct *catchpointTracker) finishCatchpointsAfterCrash(blockProto protocol.ConsensusVersion, catchpointLookback uint64) error { @@ -977,7 +999,7 @@ func (ct *catchpointTracker) postCommitUnlocked(ctx context.Context, dcc *deferr if dcc.catchpointFirstStage { round := dcc.newBase() blockProto := dcc.committedProtocolVersion[round-dcc.oldBase-1] - err := ct.finishFirstStage(ctx, round, blockProto, dcc.updatingBalancesDuration) + err := ct.finishFirstStage(ctx, round, dcc.onlineAccountsForgetBefore, blockProto, dcc.updatingBalancesDuration) if err != nil { ct.log.Warnf( "error finishing catchpoint's first stage dcc.newBase: %d err: %v", @@ -1209,7 +1231,7 @@ func (ct *catchpointTracker) isWritingCatchpointDataFile() bool { // - Balance and KV chunk (named balances.x.msgpack). // ... // - Balance and KV chunk (named balances.x.msgpack). -func (ct *catchpointTracker) generateCatchpointData(ctx context.Context, accountsRound basics.Round, catchpointGenerationStats *telemetryspec.CatchpointGenerationEventDetails, encodedSPData []byte) (totalAccounts, totalKVs, totalOnlineAccounts, totalOnlineRoundParams, totalChunks, biggestChunkLen uint64, err error) { +func (ct *catchpointTracker) generateCatchpointData(ctx context.Context, params config.ConsensusParams, accountsRound basics.Round, onlineExcludeBefore basics.Round, catchpointGenerationStats *telemetryspec.CatchpointGenerationEventDetails, encodedSPData []byte) (totalAccounts, totalKVs, totalOnlineAccounts, totalOnlineRoundParams, totalChunks, biggestChunkLen uint64, err error) { ct.log.Debugf("catchpointTracker.generateCatchpointData() writing catchpoint accounts for round %d", accountsRound) startTime := time.Now() @@ -1233,7 +1255,7 @@ func (ct *catchpointTracker) generateCatchpointData(ctx context.Context, account start := time.Now() ledgerGeneratecatchpointCount.Inc(nil) err = ct.dbs.SnapshotContext(ctx, func(dbCtx context.Context, tx trackerdb.SnapshotScope) (err error) { - catchpointWriter, err = makeCatchpointFileWriter(dbCtx, catchpointDataFilePath, tx, ResourcesPerCatchpointFileChunk) + catchpointWriter, err = makeCatchpointFileWriter(dbCtx, params, catchpointDataFilePath, tx, ResourcesPerCatchpointFileChunk, onlineExcludeBefore) if err != nil { return } @@ -1382,6 +1404,8 @@ func (ct *catchpointTracker) recordFirstStageInfo(ctx context.Context, tx tracke With("balancesWriteTime", catchpointGenerationStats.BalancesWriteTime). With("accountsCount", catchpointGenerationStats.AccountsCount). With("kvsCount", catchpointGenerationStats.KVsCount). + With("onlineAccountsCount", catchpointGenerationStats.OnlineAccountsCount). + With("onlineRoundParamsCount", catchpointGenerationStats.OnlineRoundParamsCount). With("fileSize", catchpointGenerationStats.FileSize). With("MerkleTrieRootHash", catchpointGenerationStats.MerkleTrieRootHash). With("SPVerificationCtxsHash", catchpointGenerationStats.SPVerificationCtxsHash). diff --git a/ledger/catchpointtracker_test.go b/ledger/catchpointtracker_test.go index ff84cabcb3..3bbc70cadd 100644 --- a/ledger/catchpointtracker_test.go +++ b/ledger/catchpointtracker_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -362,9 +362,10 @@ func createCatchpoint(t *testing.T, ct *catchpointTracker, accountsRound basics. spVerificationEncodedData, stateProofVerificationHash, err := ct.getSPVerificationData() require.NoError(t, err) + proto := protocol.ConsensusCurrentVersion var catchpointGenerationStats telemetryspec.CatchpointGenerationEventDetails _, _, _, _, _, biggestChunkLen, err := ct.generateCatchpointData( - context.Background(), accountsRound, &catchpointGenerationStats, spVerificationEncodedData) + context.Background(), config.Consensus[proto], accountsRound, 0, &catchpointGenerationStats, spVerificationEncodedData) require.NoError(t, err) require.Equal(t, calculateStateProofVerificationHash(t, ml), stateProofVerificationHash) @@ -372,7 +373,7 @@ func createCatchpoint(t *testing.T, ct *catchpointTracker, accountsRound basics. err = ct.createCatchpoint( context.Background(), accountsRound, round, trackerdb.CatchpointFirstStageInfo{BiggestChunkLen: biggestChunkLen}, - crypto.Digest{}, protocol.ConsensusCurrentVersion) + crypto.Digest{}, proto) require.NoError(t, err) } @@ -605,7 +606,7 @@ func BenchmarkLargeCatchpointDataWriting(b *testing.B) { encodedSPData, _, err := ct.getSPVerificationData() require.NoError(b, err) b.ResetTimer() - ct.generateCatchpointData(context.Background(), basics.Round(0), &catchpointGenerationStats, encodedSPData) + ct.generateCatchpointData(context.Background(), proto, 0, 0, &catchpointGenerationStats, encodedSPData) b.StopTimer() b.ReportMetric(float64(accountsNumber), "accounts") } diff --git a/ledger/catchupaccessor.go b/ledger/catchupaccessor.go index 7418ebc98c..ae783075e8 100644 --- a/ledger/catchupaccessor.go +++ b/ledger/catchupaccessor.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -1031,12 +1031,12 @@ func (c *catchpointCatchupAccessorImpl) GetVerifyData(ctx context.Context) (bala return fmt.Errorf("unable to get state proof verification data: %v", err) } - onlineAccountsHash, _, err = calculateVerificationHash(ctx, tx.MakeOnlineAccountsIter, true) + onlineAccountsHash, _, err = calculateVerificationHash(ctx, tx.MakeOnlineAccountsIter, 0, true) if err != nil { return fmt.Errorf("unable to get online accounts verification data: %v", err) } - onlineRoundParamsHash, _, err = calculateVerificationHash(ctx, tx.MakeOnlineRoundParamsIter, true) + onlineRoundParamsHash, _, err = calculateVerificationHash(ctx, tx.MakeOnlineRoundParamsIter, 0, true) if err != nil { return fmt.Errorf("unable to get online round params verification data: %v", err) } @@ -1058,11 +1058,12 @@ func (c *catchpointCatchupAccessorImpl) GetVerifyData(ctx context.Context) (bala // both at restore time (in catchpointCatchupAccessorImpl) and snapshot time (in catchpointTracker). func calculateVerificationHash[T crypto.Hashable]( ctx context.Context, - iterFactory func(context.Context, bool) (trackerdb.TableIterator[T], error), + iterFactory func(context.Context, bool, basics.Round) (trackerdb.TableIterator[T], error), + excludeBefore basics.Round, useStaging bool, ) (crypto.Digest, uint64, error) { - rows, err := iterFactory(ctx, useStaging) + rows, err := iterFactory(ctx, useStaging, excludeBefore) if err != nil { return crypto.Digest{}, 0, err } diff --git a/ledger/catchupaccessor_test.go b/ledger/catchupaccessor_test.go index 50ae986faa..17cf7a80b6 100644 --- a/ledger/catchupaccessor_test.go +++ b/ledger/catchupaccessor_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/double_test.go b/ledger/double_test.go index c1cd09f97c..13f5b0f552 100644 --- a/ledger/double_test.go +++ b/ledger/double_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/encoded/recordsV5.go b/ledger/encoded/recordsV5.go index 86f1373979..00bb202c99 100644 --- a/ledger/encoded/recordsV5.go +++ b/ledger/encoded/recordsV5.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/encoded/recordsV6.go b/ledger/encoded/recordsV6.go index 2ed4161bf9..06b38f1e86 100644 --- a/ledger/encoded/recordsV6.go +++ b/ledger/encoded/recordsV6.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/encoded/recordsV6_test.go b/ledger/encoded/recordsV6_test.go index 84c43e6c82..11122ba983 100644 --- a/ledger/encoded/recordsV6_test.go +++ b/ledger/encoded/recordsV6_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/appcow.go b/ledger/eval/appcow.go index ff1c0cc23a..83aa739629 100644 --- a/ledger/eval/appcow.go +++ b/ledger/eval/appcow.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/appcow_test.go b/ledger/eval/appcow_test.go index 6f5e39b305..ccced6830d 100644 --- a/ledger/eval/appcow_test.go +++ b/ledger/eval/appcow_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/applications.go b/ledger/eval/applications.go index c1d5d6d619..85a5ad4ab7 100644 --- a/ledger/eval/applications.go +++ b/ledger/eval/applications.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/assetcow.go b/ledger/eval/assetcow.go index 6e498d70bd..c64710e133 100644 --- a/ledger/eval/assetcow.go +++ b/ledger/eval/assetcow.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/cow.go b/ledger/eval/cow.go index 046fb46598..edeaa93da4 100644 --- a/ledger/eval/cow.go +++ b/ledger/eval/cow.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/cow_creatables.go b/ledger/eval/cow_creatables.go index 00d90ab5b3..daed36592e 100644 --- a/ledger/eval/cow_creatables.go +++ b/ledger/eval/cow_creatables.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/cow_test.go b/ledger/eval/cow_test.go index 138e2562ad..d0a75fef21 100644 --- a/ledger/eval/cow_test.go +++ b/ledger/eval/cow_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/eval.go b/ledger/eval/eval.go index 4317fa1016..2814499620 100644 --- a/ledger/eval/eval.go +++ b/ledger/eval/eval.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/eval_test.go b/ledger/eval/eval_test.go index 5874c83325..d375feeea3 100644 --- a/ledger/eval/eval_test.go +++ b/ledger/eval/eval_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/evalindexer.go b/ledger/eval/evalindexer.go index f1185df6fd..1d2b217922 100644 --- a/ledger/eval/evalindexer.go +++ b/ledger/eval/evalindexer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/prefetcher/error.go b/ledger/eval/prefetcher/error.go index 9c6b8edaf3..0e2d3a4850 100644 --- a/ledger/eval/prefetcher/error.go +++ b/ledger/eval/prefetcher/error.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/prefetcher/prefetcher.go b/ledger/eval/prefetcher/prefetcher.go index 765b6ea9c2..2ed9a38894 100644 --- a/ledger/eval/prefetcher/prefetcher.go +++ b/ledger/eval/prefetcher/prefetcher.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/prefetcher/prefetcher_alignment_test.go b/ledger/eval/prefetcher/prefetcher_alignment_test.go index 0c232aebf4..8344ddb269 100644 --- a/ledger/eval/prefetcher/prefetcher_alignment_test.go +++ b/ledger/eval/prefetcher/prefetcher_alignment_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/prefetcher/prefetcher_test.go b/ledger/eval/prefetcher/prefetcher_test.go index f1b6ab9eda..4e7de01954 100644 --- a/ledger/eval/prefetcher/prefetcher_test.go +++ b/ledger/eval/prefetcher/prefetcher_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/prefetcher/prefetcher_whitebox_test.go b/ledger/eval/prefetcher/prefetcher_whitebox_test.go index 13dfceed83..28d1371010 100644 --- a/ledger/eval/prefetcher/prefetcher_whitebox_test.go +++ b/ledger/eval/prefetcher/prefetcher_whitebox_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/txntracer.go b/ledger/eval/txntracer.go index 9d19d42e69..1a94850f89 100644 --- a/ledger/eval/txntracer.go +++ b/ledger/eval/txntracer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval/txntracer_test.go b/ledger/eval/txntracer_test.go index 5bcf54f250..80befccde5 100644 --- a/ledger/eval/txntracer_test.go +++ b/ledger/eval/txntracer_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/eval_simple_test.go b/ledger/eval_simple_test.go index f518f074f0..5bd11bd10a 100644 --- a/ledger/eval_simple_test.go +++ b/ledger/eval_simple_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/evalbench_test.go b/ledger/evalbench_test.go index c70795f4d2..f2f0e848e2 100644 --- a/ledger/evalbench_test.go +++ b/ledger/evalbench_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/fullblock_perf_test.go b/ledger/fullblock_perf_test.go index b0fef304f3..f3ffcd51a3 100644 --- a/ledger/fullblock_perf_test.go +++ b/ledger/fullblock_perf_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledger.go b/ledger/ledger.go index bb0dad21de..8e0114f222 100644 --- a/ledger/ledger.go +++ b/ledger/ledger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledger_perf_test.go b/ledger/ledger_perf_test.go index b2ea97b1ce..d8c698b250 100644 --- a/ledger/ledger_perf_test.go +++ b/ledger/ledger_perf_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledger_test.go b/ledger/ledger_test.go index 219b12bc3e..8528ea5052 100644 --- a/ledger/ledger_test.go +++ b/ledger/ledger_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/accountdata.go b/ledger/ledgercore/accountdata.go index ea7b150a6e..2136baafe5 100644 --- a/ledger/ledgercore/accountdata.go +++ b/ledger/ledgercore/accountdata.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/accountdata_test.go b/ledger/ledgercore/accountdata_test.go index fd345eff67..80da77714a 100644 --- a/ledger/ledgercore/accountdata_test.go +++ b/ledger/ledgercore/accountdata_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/accountresource.go b/ledger/ledgercore/accountresource.go index e8f03bd60e..cd5876fb2d 100644 --- a/ledger/ledgercore/accountresource.go +++ b/ledger/ledgercore/accountresource.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/catchpointlabel.go b/ledger/ledgercore/catchpointlabel.go index 5a7bf3b0c2..e77e898d7c 100644 --- a/ledger/ledgercore/catchpointlabel.go +++ b/ledger/ledgercore/catchpointlabel.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/catchpointlabel_test.go b/ledger/ledgercore/catchpointlabel_test.go index f76e559d30..5ac7e75d84 100644 --- a/ledger/ledgercore/catchpointlabel_test.go +++ b/ledger/ledgercore/catchpointlabel_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/error.go b/ledger/ledgercore/error.go index e2084584b7..f12af37dc7 100644 --- a/ledger/ledgercore/error.go +++ b/ledger/ledgercore/error.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/misc.go b/ledger/ledgercore/misc.go index c0e72da433..82ad02d563 100644 --- a/ledger/ledgercore/misc.go +++ b/ledger/ledgercore/misc.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/onlineacct.go b/ledger/ledgercore/onlineacct.go index f5b29c789e..557a496161 100644 --- a/ledger/ledgercore/onlineacct.go +++ b/ledger/ledgercore/onlineacct.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/statedelta.go b/ledger/ledgercore/statedelta.go index 90bf7afeaf..4297afc329 100644 --- a/ledger/ledgercore/statedelta.go +++ b/ledger/ledgercore/statedelta.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/statedelta_test.go b/ledger/ledgercore/statedelta_test.go index 1e2efabe08..56962c872d 100644 --- a/ledger/ledgercore/statedelta_test.go +++ b/ledger/ledgercore/statedelta_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/stateproofverification.go b/ledger/ledgercore/stateproofverification.go index 19d1134f70..ad6c727800 100644 --- a/ledger/ledgercore/stateproofverification.go +++ b/ledger/ledgercore/stateproofverification.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/totals.go b/ledger/ledgercore/totals.go index 22708586b1..1407098b15 100644 --- a/ledger/ledgercore/totals.go +++ b/ledger/ledgercore/totals.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/totals_test.go b/ledger/ledgercore/totals_test.go index b9353ba6b3..c2bdfd9e4f 100644 --- a/ledger/ledgercore/totals_test.go +++ b/ledger/ledgercore/totals_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/validatedBlock.go b/ledger/ledgercore/validatedBlock.go index 0d7704710d..0adab21ee8 100644 --- a/ledger/ledgercore/validatedBlock.go +++ b/ledger/ledgercore/validatedBlock.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/ledgercore/votersForRound.go b/ledger/ledgercore/votersForRound.go index 957ec08a52..048f9cbf80 100644 --- a/ledger/ledgercore/votersForRound.go +++ b/ledger/ledgercore/votersForRound.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/lruaccts.go b/ledger/lruaccts.go index 6b127c0604..b0ddc9b37a 100644 --- a/ledger/lruaccts.go +++ b/ledger/lruaccts.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/lruaccts_test.go b/ledger/lruaccts_test.go index 4ddca0d4d6..5fd2a0e9e1 100644 --- a/ledger/lruaccts_test.go +++ b/ledger/lruaccts_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/lrukv.go b/ledger/lrukv.go index cc64c6f662..5b5c1a2bd2 100644 --- a/ledger/lrukv.go +++ b/ledger/lrukv.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/lrukv_test.go b/ledger/lrukv_test.go index 70b49cef0e..02b0e5c316 100644 --- a/ledger/lrukv_test.go +++ b/ledger/lrukv_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/lruonlineaccts.go b/ledger/lruonlineaccts.go index e96eb9212c..90bd69ebc1 100644 --- a/ledger/lruonlineaccts.go +++ b/ledger/lruonlineaccts.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/lruonlineaccts_test.go b/ledger/lruonlineaccts_test.go index fb37867802..e432584523 100644 --- a/ledger/lruonlineaccts_test.go +++ b/ledger/lruonlineaccts_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/lruresources.go b/ledger/lruresources.go index 58d66d3600..b869e23b07 100644 --- a/ledger/lruresources.go +++ b/ledger/lruresources.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/lruresources_test.go b/ledger/lruresources_test.go index 6d31938837..333a17e986 100644 --- a/ledger/lruresources_test.go +++ b/ledger/lruresources_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/metrics.go b/ledger/metrics.go index 9f8a0ace0d..36d4290c92 100644 --- a/ledger/metrics.go +++ b/ledger/metrics.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/metrics_test.go b/ledger/metrics_test.go index 3f9eed305c..ff42311072 100644 --- a/ledger/metrics_test.go +++ b/ledger/metrics_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/notifier.go b/ledger/notifier.go index c7a8996551..7bf6a9802a 100644 --- a/ledger/notifier.go +++ b/ledger/notifier.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/onlineaccountscache.go b/ledger/onlineaccountscache.go index e6145a4e43..e3a44e08d4 100644 --- a/ledger/onlineaccountscache.go +++ b/ledger/onlineaccountscache.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/onlineaccountscache_test.go b/ledger/onlineaccountscache_test.go index fa66d67a9f..17f09561d7 100644 --- a/ledger/onlineaccountscache_test.go +++ b/ledger/onlineaccountscache_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/onlinetopheap.go b/ledger/onlinetopheap.go index 412f361544..6f8cc81325 100644 --- a/ledger/onlinetopheap.go +++ b/ledger/onlinetopheap.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/onlinetopheap_test.go b/ledger/onlinetopheap_test.go index 69fbd5da3a..6c16a0b3eb 100644 --- a/ledger/onlinetopheap_test.go +++ b/ledger/onlinetopheap_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/perf_test.go b/ledger/perf_test.go index ffeb82cf03..3b3d404b3f 100644 --- a/ledger/perf_test.go +++ b/ledger/perf_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/simple_test.go b/ledger/simple_test.go index 3bc9f335c8..6d8142f47b 100644 --- a/ledger/simple_test.go +++ b/ledger/simple_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/simulation/initialStates.go b/ledger/simulation/initialStates.go index 079a38fa60..f9750c929a 100644 --- a/ledger/simulation/initialStates.go +++ b/ledger/simulation/initialStates.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/simulation/resources.go b/ledger/simulation/resources.go index 3b4546cd28..2132d20710 100644 --- a/ledger/simulation/resources.go +++ b/ledger/simulation/resources.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/simulation/resources_test.go b/ledger/simulation/resources_test.go index b154031f57..0970b6eb54 100644 --- a/ledger/simulation/resources_test.go +++ b/ledger/simulation/resources_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/simulation/simulation_eval_test.go b/ledger/simulation/simulation_eval_test.go index c36171eae6..c2b1b64726 100644 --- a/ledger/simulation/simulation_eval_test.go +++ b/ledger/simulation/simulation_eval_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/simulation/simulator.go b/ledger/simulation/simulator.go index d4ed4e4e94..758275528f 100644 --- a/ledger/simulation/simulator.go +++ b/ledger/simulation/simulator.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/simulation/simulator_test.go b/ledger/simulation/simulator_test.go index e5a126a29a..d8a13ed713 100644 --- a/ledger/simulation/simulator_test.go +++ b/ledger/simulation/simulator_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/simulation/testing/utils.go b/ledger/simulation/testing/utils.go index 3a6bbe0edf..36cd0a1d34 100644 --- a/ledger/simulation/testing/utils.go +++ b/ledger/simulation/testing/utils.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/simulation/trace.go b/ledger/simulation/trace.go index a1cb311089..055fc2da0f 100644 --- a/ledger/simulation/trace.go +++ b/ledger/simulation/trace.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/simulation/tracer.go b/ledger/simulation/tracer.go index 8a9b7dda7b..072f6433e7 100644 --- a/ledger/simulation/tracer.go +++ b/ledger/simulation/tracer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/simulation/tracer_test.go b/ledger/simulation/tracer_test.go index 8a76a508a3..7c3f32e5ae 100644 --- a/ledger/simulation/tracer_test.go +++ b/ledger/simulation/tracer_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/spverificationtracker.go b/ledger/spverificationtracker.go index ba8b537d16..05a064ea66 100644 --- a/ledger/spverificationtracker.go +++ b/ledger/spverificationtracker.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/spverificationtracker_test.go b/ledger/spverificationtracker_test.go index d306d9b60f..5a5b82a0d6 100644 --- a/ledger/spverificationtracker_test.go +++ b/ledger/spverificationtracker_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/blockdb/blockdb.go b/ledger/store/blockdb/blockdb.go index 9b0c80dce2..0fbcbdc42c 100644 --- a/ledger/store/blockdb/blockdb.go +++ b/ledger/store/blockdb/blockdb.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/blockdb/blockdb_test.go b/ledger/store/blockdb/blockdb_test.go index 149c1a3dd3..e9cd0742fe 100644 --- a/ledger/store/blockdb/blockdb_test.go +++ b/ledger/store/blockdb/blockdb_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/testing/helpers.go b/ledger/store/testing/helpers.go index e03b09b85d..544f67a488 100644 --- a/ledger/store/testing/helpers.go +++ b/ledger/store/testing/helpers.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/catchpoint.go b/ledger/store/trackerdb/catchpoint.go index f2d48b0347..3c1aaa205f 100644 --- a/ledger/store/trackerdb/catchpoint.go +++ b/ledger/store/trackerdb/catchpoint.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/data.go b/ledger/store/trackerdb/data.go index 1649d1f82d..e25d5c8a4e 100644 --- a/ledger/store/trackerdb/data.go +++ b/ledger/store/trackerdb/data.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/data_test.go b/ledger/store/trackerdb/data_test.go index b256fa4e76..16ed8c2694 100644 --- a/ledger/store/trackerdb/data_test.go +++ b/ledger/store/trackerdb/data_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/dualdriver/accounts_reader.go b/ledger/store/trackerdb/dualdriver/accounts_reader.go index 5692994636..8220a70f33 100644 --- a/ledger/store/trackerdb/dualdriver/accounts_reader.go +++ b/ledger/store/trackerdb/dualdriver/accounts_reader.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/dualdriver/accounts_reader_ext.go b/ledger/store/trackerdb/dualdriver/accounts_reader_ext.go index 3113ac86dd..28e7855a35 100644 --- a/ledger/store/trackerdb/dualdriver/accounts_reader_ext.go +++ b/ledger/store/trackerdb/dualdriver/accounts_reader_ext.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/dualdriver/accounts_writer.go b/ledger/store/trackerdb/dualdriver/accounts_writer.go index 586ce96978..36f4dbed2a 100644 --- a/ledger/store/trackerdb/dualdriver/accounts_writer.go +++ b/ledger/store/trackerdb/dualdriver/accounts_writer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/dualdriver/accounts_writer_ext.go b/ledger/store/trackerdb/dualdriver/accounts_writer_ext.go index b30e2fd79c..73d5eb8918 100644 --- a/ledger/store/trackerdb/dualdriver/accounts_writer_ext.go +++ b/ledger/store/trackerdb/dualdriver/accounts_writer_ext.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/dualdriver/dualdriver.go b/ledger/store/trackerdb/dualdriver/dualdriver.go index 382db683a7..dfb7aba14b 100644 --- a/ledger/store/trackerdb/dualdriver/dualdriver.go +++ b/ledger/store/trackerdb/dualdriver/dualdriver.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -24,6 +24,7 @@ import ( "sync" "time" + "github.com/algorand/go-algorand/data/basics" "github.com/algorand/go-algorand/ledger/encoded" "github.com/algorand/go-algorand/ledger/store/trackerdb" "github.com/algorand/go-algorand/logging" @@ -278,13 +279,13 @@ func (*reader) MakeKVsIter(ctx context.Context) (trackerdb.KVsIter, error) { } // MakeOnlineAccountsIter implements trackerdb.Reader -func (*reader) MakeOnlineAccountsIter(context.Context, bool) (trackerdb.TableIterator[*encoded.OnlineAccountRecordV6], error) { +func (*reader) MakeOnlineAccountsIter(context.Context, bool, basics.Round) (trackerdb.TableIterator[*encoded.OnlineAccountRecordV6], error) { // TODO: catchpoint return nil, nil } // MakeOnlineRoundParamsIter implements trackerdb.Reader -func (*reader) MakeOnlineRoundParamsIter(context.Context, bool) (trackerdb.TableIterator[*encoded.OnlineRoundParamsRecordV6], error) { +func (*reader) MakeOnlineRoundParamsIter(context.Context, bool, basics.Round) (trackerdb.TableIterator[*encoded.OnlineRoundParamsRecordV6], error) { // TODO: catchpoint return nil, nil } diff --git a/ledger/store/trackerdb/dualdriver/online_accounts_reader.go b/ledger/store/trackerdb/dualdriver/online_accounts_reader.go index f67689c024..7fe0d1163a 100644 --- a/ledger/store/trackerdb/dualdriver/online_accounts_reader.go +++ b/ledger/store/trackerdb/dualdriver/online_accounts_reader.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/dualdriver/online_accounts_writer.go b/ledger/store/trackerdb/dualdriver/online_accounts_writer.go index 97a03062f8..5f25d388c8 100644 --- a/ledger/store/trackerdb/dualdriver/online_accounts_writer.go +++ b/ledger/store/trackerdb/dualdriver/online_accounts_writer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/dualdriver/stateproof_reader.go b/ledger/store/trackerdb/dualdriver/stateproof_reader.go index cdb4093bb8..bf8354db6a 100644 --- a/ledger/store/trackerdb/dualdriver/stateproof_reader.go +++ b/ledger/store/trackerdb/dualdriver/stateproof_reader.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/dualdriver/stateproof_writer.go b/ledger/store/trackerdb/dualdriver/stateproof_writer.go index 25ca52da34..188e86e83d 100644 --- a/ledger/store/trackerdb/dualdriver/stateproof_writer.go +++ b/ledger/store/trackerdb/dualdriver/stateproof_writer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/dualdriver/transaction_for_testing.go b/ledger/store/trackerdb/dualdriver/transaction_for_testing.go index a6946e7908..375b2bd82c 100644 --- a/ledger/store/trackerdb/dualdriver/transaction_for_testing.go +++ b/ledger/store/trackerdb/dualdriver/transaction_for_testing.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/accounts_ext_reader.go b/ledger/store/trackerdb/generickv/accounts_ext_reader.go index 6e5c72daaf..13294913bc 100644 --- a/ledger/store/trackerdb/generickv/accounts_ext_reader.go +++ b/ledger/store/trackerdb/generickv/accounts_ext_reader.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/accounts_ext_writer.go b/ledger/store/trackerdb/generickv/accounts_ext_writer.go index b50a5363f1..e92197ceba 100644 --- a/ledger/store/trackerdb/generickv/accounts_ext_writer.go +++ b/ledger/store/trackerdb/generickv/accounts_ext_writer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/accounts_reader.go b/ledger/store/trackerdb/generickv/accounts_reader.go index 0aa9d55a21..15bbe4aa9d 100644 --- a/ledger/store/trackerdb/generickv/accounts_reader.go +++ b/ledger/store/trackerdb/generickv/accounts_reader.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/accounts_writer.go b/ledger/store/trackerdb/generickv/accounts_writer.go index 590ba4fcfd..887acbec37 100644 --- a/ledger/store/trackerdb/generickv/accounts_writer.go +++ b/ledger/store/trackerdb/generickv/accounts_writer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/catchpoint.go b/ledger/store/trackerdb/generickv/catchpoint.go index 8a21bb5452..d10666dbd0 100644 --- a/ledger/store/trackerdb/generickv/catchpoint.go +++ b/ledger/store/trackerdb/generickv/catchpoint.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/init_accounts.go b/ledger/store/trackerdb/generickv/init_accounts.go index 39f6f25247..fa9e1aebfc 100644 --- a/ledger/store/trackerdb/generickv/init_accounts.go +++ b/ledger/store/trackerdb/generickv/init_accounts.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/migrations.go b/ledger/store/trackerdb/generickv/migrations.go index a329d84bf7..5f7d9823c0 100644 --- a/ledger/store/trackerdb/generickv/migrations.go +++ b/ledger/store/trackerdb/generickv/migrations.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/onlineaccounts_reader.go b/ledger/store/trackerdb/generickv/onlineaccounts_reader.go index 0b72cbc5df..e991d5eee1 100644 --- a/ledger/store/trackerdb/generickv/onlineaccounts_reader.go +++ b/ledger/store/trackerdb/generickv/onlineaccounts_reader.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/onlineaccounts_writer.go b/ledger/store/trackerdb/generickv/onlineaccounts_writer.go index 83a194022f..d01daef9e8 100644 --- a/ledger/store/trackerdb/generickv/onlineaccounts_writer.go +++ b/ledger/store/trackerdb/generickv/onlineaccounts_writer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/reader.go b/ledger/store/trackerdb/generickv/reader.go index bbbfadc9c9..110c983f59 100644 --- a/ledger/store/trackerdb/generickv/reader.go +++ b/ledger/store/trackerdb/generickv/reader.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -20,6 +20,7 @@ import ( "context" "github.com/algorand/go-algorand/config" + "github.com/algorand/go-algorand/data/basics" "github.com/algorand/go-algorand/ledger/encoded" "github.com/algorand/go-algorand/ledger/store/trackerdb" ) @@ -79,13 +80,13 @@ func (r *reader) MakeKVsIter(ctx context.Context) (trackerdb.KVsIter, error) { } // MakeOnlineAccountsIter implements trackerdb.Reader -func (r *reader) MakeOnlineAccountsIter(context.Context, bool) (trackerdb.TableIterator[*encoded.OnlineAccountRecordV6], error) { +func (r *reader) MakeOnlineAccountsIter(context.Context, bool, basics.Round) (trackerdb.TableIterator[*encoded.OnlineAccountRecordV6], error) { // TODO: catchpoint panic("unimplemented") } // MakeOnlineRoundParamsIter implements trackerdb.Reader -func (r *reader) MakeOnlineRoundParamsIter(context.Context, bool) (trackerdb.TableIterator[*encoded.OnlineRoundParamsRecordV6], error) { +func (r *reader) MakeOnlineRoundParamsIter(context.Context, bool, basics.Round) (trackerdb.TableIterator[*encoded.OnlineRoundParamsRecordV6], error) { // TODO: catchpoint panic("unimplemented") } diff --git a/ledger/store/trackerdb/generickv/schema.go b/ledger/store/trackerdb/generickv/schema.go index cabbd8f13d..510b69ccec 100644 --- a/ledger/store/trackerdb/generickv/schema.go +++ b/ledger/store/trackerdb/generickv/schema.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/stateproof_reader.go b/ledger/store/trackerdb/generickv/stateproof_reader.go index 5cd96c44e7..eb6c0e0be5 100644 --- a/ledger/store/trackerdb/generickv/stateproof_reader.go +++ b/ledger/store/trackerdb/generickv/stateproof_reader.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/stateproof_writer.go b/ledger/store/trackerdb/generickv/stateproof_writer.go index 8ef45b1b74..48b29f3bc6 100644 --- a/ledger/store/trackerdb/generickv/stateproof_writer.go +++ b/ledger/store/trackerdb/generickv/stateproof_writer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/generickv/writer.go b/ledger/store/trackerdb/generickv/writer.go index 8975c97c6e..d67fd3790e 100644 --- a/ledger/store/trackerdb/generickv/writer.go +++ b/ledger/store/trackerdb/generickv/writer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/hashing.go b/ledger/store/trackerdb/hashing.go index 4a0122436f..250a127511 100644 --- a/ledger/store/trackerdb/hashing.go +++ b/ledger/store/trackerdb/hashing.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/interface.go b/ledger/store/trackerdb/interface.go index 946056eaf8..90f0ab5f63 100644 --- a/ledger/store/trackerdb/interface.go +++ b/ledger/store/trackerdb/interface.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/params.go b/ledger/store/trackerdb/params.go index 276bf19bd5..af8c2ed8cb 100644 --- a/ledger/store/trackerdb/params.go +++ b/ledger/store/trackerdb/params.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/pebbledbdriver/pebbledriver.go b/ledger/store/trackerdb/pebbledbdriver/pebbledriver.go index 2bb64456b5..a8de77c948 100644 --- a/ledger/store/trackerdb/pebbledbdriver/pebbledriver.go +++ b/ledger/store/trackerdb/pebbledbdriver/pebbledriver.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/pebbledbdriver/pebbledriver_arm.go b/ledger/store/trackerdb/pebbledbdriver/pebbledriver_arm.go index 205ab07e64..69cdf26f04 100644 --- a/ledger/store/trackerdb/pebbledbdriver/pebbledriver_arm.go +++ b/ledger/store/trackerdb/pebbledbdriver/pebbledriver_arm.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/pebbledbdriver/testing.go b/ledger/store/trackerdb/pebbledbdriver/testing.go index c433b4df85..e3f29ed297 100644 --- a/ledger/store/trackerdb/pebbledbdriver/testing.go +++ b/ledger/store/trackerdb/pebbledbdriver/testing.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/accountsV2.go b/ledger/store/trackerdb/sqlitedriver/accountsV2.go index b5443f0cda..31b3038b19 100644 --- a/ledger/store/trackerdb/sqlitedriver/accountsV2.go +++ b/ledger/store/trackerdb/sqlitedriver/accountsV2.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -723,7 +723,11 @@ func (w *accountsV2Writer) TxtailNewRound(ctx context.Context, baseRound basics. // After this cleanup runs, accounts in this table will have either one entry (if all entries besides the latest are expired), // or will have more than one entry (if multiple entries are not yet expired). func (w *accountsV2Writer) OnlineAccountsDelete(forgetBefore basics.Round) (err error) { - rows, err := w.e.Query("SELECT rowid, address, updRound, data FROM onlineaccounts WHERE updRound < ? ORDER BY address, updRound DESC", forgetBefore) + return w.onlineAccountsDelete(forgetBefore, "onlineaccounts") +} + +func (w *accountsV2Writer) onlineAccountsDelete(forgetBefore basics.Round, table string) (err error) { + rows, err := w.e.Query(fmt.Sprintf("SELECT rowid, address, updRound, data FROM %s WHERE updRound < ? ORDER BY address, updRound DESC", table), forgetBefore) if err != nil { return err } @@ -778,10 +782,10 @@ func (w *accountsV2Writer) OnlineAccountsDelete(forgetBefore basics.Round) (err rowids = append(rowids, rowid.Int64) } - return onlineAccountsDeleteByRowIDs(w.e, rowids) + return onlineAccountsDeleteByRowIDs(w.e, rowids, table) } -func onlineAccountsDeleteByRowIDs(e db.Executable, rowids []int64) (err error) { +func onlineAccountsDeleteByRowIDs(e db.Executable, rowids []int64, table string) (err error) { if len(rowids) == 0 { return } @@ -791,7 +795,7 @@ func onlineAccountsDeleteByRowIDs(e db.Executable, rowids []int64) (err error) { // rowids might be larger => split to chunks are remove chunks := rowidsToChunkedArgs(rowids) for _, chunk := range chunks { - _, err = e.Exec("DELETE FROM onlineaccounts WHERE rowid IN (?"+strings.Repeat(",?", len(chunk)-1)+")", chunk...) + _, err = e.Exec("DELETE FROM "+table+" WHERE rowid IN (?"+strings.Repeat(",?", len(chunk)-1)+")", chunk...) if err != nil { return } diff --git a/ledger/store/trackerdb/sqlitedriver/accountsV2_test.go b/ledger/store/trackerdb/sqlitedriver/accountsV2_test.go index 4aa508e9b3..d2fbc6c20e 100644 --- a/ledger/store/trackerdb/sqlitedriver/accountsV2_test.go +++ b/ledger/store/trackerdb/sqlitedriver/accountsV2_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/catchpoint.go b/ledger/store/trackerdb/sqlitedriver/catchpoint.go index 94a0a15b7c..c3a6c466b2 100644 --- a/ledger/store/trackerdb/sqlitedriver/catchpoint.go +++ b/ledger/store/trackerdb/sqlitedriver/catchpoint.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/catchpointPendingHashesIter.go b/ledger/store/trackerdb/sqlitedriver/catchpointPendingHashesIter.go index 2fdf13eb08..0692ad2a55 100644 --- a/ledger/store/trackerdb/sqlitedriver/catchpointPendingHashesIter.go +++ b/ledger/store/trackerdb/sqlitedriver/catchpointPendingHashesIter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/catchpoint_test.go b/ledger/store/trackerdb/sqlitedriver/catchpoint_test.go index 72af28e39e..4acc5d4410 100644 --- a/ledger/store/trackerdb/sqlitedriver/catchpoint_test.go +++ b/ledger/store/trackerdb/sqlitedriver/catchpoint_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/encodedAccountsIter.go b/ledger/store/trackerdb/sqlitedriver/encodedAccountsIter.go index ea2dd5e2d8..895efad6ed 100644 --- a/ledger/store/trackerdb/sqlitedriver/encodedAccountsIter.go +++ b/ledger/store/trackerdb/sqlitedriver/encodedAccountsIter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/kvsIter.go b/ledger/store/trackerdb/sqlitedriver/kvsIter.go index 05fc769d6b..178ea4b5d6 100644 --- a/ledger/store/trackerdb/sqlitedriver/kvsIter.go +++ b/ledger/store/trackerdb/sqlitedriver/kvsIter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -25,6 +25,7 @@ import ( "github.com/algorand/go-algorand/ledger/encoded" "github.com/algorand/go-algorand/ledger/ledgercore" "github.com/algorand/go-algorand/ledger/store/trackerdb" + "github.com/algorand/go-algorand/logging" "github.com/algorand/go-algorand/protocol" "github.com/algorand/go-algorand/util/db" ) @@ -62,29 +63,87 @@ func (iter *kvsIter) Close() { // tableIterator is used to dump onlineaccounts and onlineroundparams tables for catchpoints. type tableIterator[T any] struct { - rows *sql.Rows - scan func(*sql.Rows) (T, error) + rows *sql.Rows + scan func(*sql.Rows) (T, error) + onClose func() } func (iter *tableIterator[T]) Next() bool { return iter.rows.Next() } -func (iter *tableIterator[T]) Close() { iter.rows.Close() } +func (iter *tableIterator[T]) Close() { + iter.rows.Close() + if iter.onClose != nil { + iter.onClose() + } +} func (iter *tableIterator[T]) GetItem() (T, error) { return iter.scan(iter.rows) } -// MakeOnlineAccountsIter creates an onlineAccounts iterator. -func MakeOnlineAccountsIter(ctx context.Context, q db.Queryable, useStaging bool) (trackerdb.TableIterator[*encoded.OnlineAccountRecordV6], error) { +// MakeOnlineAccountsIter creates an onlineAccounts iterator, used by the catchpoint system to dump the +// onlineaccounts table to a catchpoint snapshot file. +// +// If excludeBefore is non-zero, the iterator will exclude all data that would have been deleted if +// OnlineAccountsDelete(excludeBefore) were called on this DB before calling MakeOnlineAccountsIter. +func MakeOnlineAccountsIter(ctx context.Context, q db.Queryable, useStaging bool, excludeBefore basics.Round) (trackerdb.TableIterator[*encoded.OnlineAccountRecordV6], error) { table := "onlineaccounts" if useStaging { table = "catchpointonlineaccounts" } + var onClose func() + if excludeBefore != 0 { + // This is a special case to resolve the issue found in #6214. When the state proof votersTracker has not + // yet validated the recent state proof, the onlineaccounts table will hold more than 320 rows, + // to support state proof recovery (votersTracker.lowestRound() sets deferredCommitRange.lowestRound). + // + // While rare, this may happen e.g. during catchup, where blocks may be flying by so quickly that the + // catchpoint snapshot is started before the latest state proof was validated. In this case, excludeBefore + // will be set to R-320 (MaxBalLookback) where R is the DB snapshot round (specified by CatchpointLookback). + // + // Unfortunately catchpoint snapshots occur within a SnapshotScope, and so a db.Queryable cannot + // execute DDL statements. To work around this, we create a temporary table that we will delete + // when the iterator is closed. + e, ok := q.(*sql.Tx) + if !ok { + return nil, fmt.Errorf("MakeOnlineAccountsIter: cannot convert Queryable to sql.Tx, q is %T", q) + } + // create a new table by selecting from the original table + destTable := table + "_iterator" + _, err := e.ExecContext(ctx, fmt.Sprintf("DROP TABLE IF EXISTS %s", destTable)) + if err != nil { + return nil, err + } + _, err = e.ExecContext(ctx, fmt.Sprintf("CREATE TABLE %s AS SELECT * FROM %s", destTable, table)) + if err != nil { + return nil, err + } + // call prune on the new copied table, using the same logic as OnlineAccountsDelete + aw := accountsV2Writer{e: e} + err = aw.onlineAccountsDelete(excludeBefore, destTable) + if err != nil { + return nil, err + } + // remember to drop the table when the iterator is closed + onClose = func() { + _, err = e.ExecContext(ctx, fmt.Sprintf("DROP TABLE %s", destTable)) + if err != nil { + logging.Base().Errorf("Failed to drop table %s: %v", destTable, err) + } + } + // use the new table to create the iterator + table = destTable + } + rows, err := q.QueryContext(ctx, fmt.Sprintf("SELECT address, updround, normalizedonlinebalance, votelastvalid, data FROM %s ORDER BY address, updround", table)) if err != nil { return nil, err } - return &tableIterator[*encoded.OnlineAccountRecordV6]{rows: rows, scan: scanOnlineAccount}, nil + return &tableIterator[*encoded.OnlineAccountRecordV6]{ + rows: rows, + scan: scanOnlineAccount, + onClose: onClose, + }, nil } func scanOnlineAccount(rows *sql.Rows) (*encoded.OnlineAccountRecordV6, error) { @@ -136,12 +195,18 @@ func scanOnlineAccount(rows *sql.Rows) (*encoded.OnlineAccountRecordV6, error) { } // MakeOnlineRoundParamsIter creates an onlineRoundParams iterator. -func MakeOnlineRoundParamsIter(ctx context.Context, q db.Queryable, useStaging bool) (trackerdb.TableIterator[*encoded.OnlineRoundParamsRecordV6], error) { +func MakeOnlineRoundParamsIter(ctx context.Context, q db.Queryable, useStaging bool, excludeBefore basics.Round) (trackerdb.TableIterator[*encoded.OnlineRoundParamsRecordV6], error) { table := "onlineroundparamstail" if useStaging { table = "catchpointonlineroundparamstail" } - rows, err := q.QueryContext(ctx, fmt.Sprintf("SELECT rnd, data FROM %s ORDER BY rnd", table)) + + where := "" + if excludeBefore != 0 { + where = fmt.Sprintf("WHERE rnd >= %d", excludeBefore) + } + + rows, err := q.QueryContext(ctx, fmt.Sprintf("SELECT rnd, data FROM %s %s ORDER BY rnd", table, where)) if err != nil { return nil, err } diff --git a/ledger/store/trackerdb/sqlitedriver/merkle_committer.go b/ledger/store/trackerdb/sqlitedriver/merkle_committer.go index 25425d08e2..67c6e94ac2 100644 --- a/ledger/store/trackerdb/sqlitedriver/merkle_committer.go +++ b/ledger/store/trackerdb/sqlitedriver/merkle_committer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/orderedAccountsIter.go b/ledger/store/trackerdb/sqlitedriver/orderedAccountsIter.go index 4b021e5aea..404548af66 100644 --- a/ledger/store/trackerdb/sqlitedriver/orderedAccountsIter.go +++ b/ledger/store/trackerdb/sqlitedriver/orderedAccountsIter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/schema.go b/ledger/store/trackerdb/sqlitedriver/schema.go index d938ba180f..c1e9d976d7 100644 --- a/ledger/store/trackerdb/sqlitedriver/schema.go +++ b/ledger/store/trackerdb/sqlitedriver/schema.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/schema_test.go b/ledger/store/trackerdb/sqlitedriver/schema_test.go index 9143eba9c1..b8a982b293 100644 --- a/ledger/store/trackerdb/sqlitedriver/schema_test.go +++ b/ledger/store/trackerdb/sqlitedriver/schema_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/spVerificationAccessor.go b/ledger/store/trackerdb/sqlitedriver/spVerificationAccessor.go index d9b1814c8a..a5b44a5832 100644 --- a/ledger/store/trackerdb/sqlitedriver/spVerificationAccessor.go +++ b/ledger/store/trackerdb/sqlitedriver/spVerificationAccessor.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/sql.go b/ledger/store/trackerdb/sqlitedriver/sql.go index 1befd06298..f69363536b 100644 --- a/ledger/store/trackerdb/sqlitedriver/sql.go +++ b/ledger/store/trackerdb/sqlitedriver/sql.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/sql_test.go b/ledger/store/trackerdb/sqlitedriver/sql_test.go index 86333b96c7..5a890d8ded 100644 --- a/ledger/store/trackerdb/sqlitedriver/sql_test.go +++ b/ledger/store/trackerdb/sqlitedriver/sql_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/sqlitedriver.go b/ledger/store/trackerdb/sqlitedriver/sqlitedriver.go index 247744e01f..31b07f03c2 100644 --- a/ledger/store/trackerdb/sqlitedriver/sqlitedriver.go +++ b/ledger/store/trackerdb/sqlitedriver/sqlitedriver.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -212,13 +212,13 @@ func (r *sqlReader) MakeKVsIter(ctx context.Context) (trackerdb.KVsIter, error) } // MakeOnlineAccountsIter implements trackerdb.Reader -func (r *sqlReader) MakeOnlineAccountsIter(ctx context.Context, useStaging bool) (trackerdb.TableIterator[*encoded.OnlineAccountRecordV6], error) { - return MakeOnlineAccountsIter(ctx, r.q, useStaging) +func (r *sqlReader) MakeOnlineAccountsIter(ctx context.Context, useStaging bool, excludeBefore basics.Round) (trackerdb.TableIterator[*encoded.OnlineAccountRecordV6], error) { + return MakeOnlineAccountsIter(ctx, r.q, useStaging, excludeBefore) } // MakeOnlineRoundParamsIter implements trackerdb.Reader -func (r *sqlReader) MakeOnlineRoundParamsIter(ctx context.Context, useStaging bool) (trackerdb.TableIterator[*encoded.OnlineRoundParamsRecordV6], error) { - return MakeOnlineRoundParamsIter(ctx, r.q, useStaging) +func (r *sqlReader) MakeOnlineRoundParamsIter(ctx context.Context, useStaging bool, excludeBefore basics.Round) (trackerdb.TableIterator[*encoded.OnlineRoundParamsRecordV6], error) { + return MakeOnlineRoundParamsIter(ctx, r.q, useStaging, excludeBefore) } type sqlWriter struct { diff --git a/ledger/store/trackerdb/sqlitedriver/testing.go b/ledger/store/trackerdb/sqlitedriver/testing.go index fd4076799b..33a4303942 100644 --- a/ledger/store/trackerdb/sqlitedriver/testing.go +++ b/ledger/store/trackerdb/sqlitedriver/testing.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/sqlitedriver/trackerdbV2.go b/ledger/store/trackerdb/sqlitedriver/trackerdbV2.go index 9987ef8b03..6c00113ea0 100644 --- a/ledger/store/trackerdb/sqlitedriver/trackerdbV2.go +++ b/ledger/store/trackerdb/sqlitedriver/trackerdbV2.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/store.go b/ledger/store/trackerdb/store.go index 66f7fd0f19..78988d6a16 100644 --- a/ledger/store/trackerdb/store.go +++ b/ledger/store/trackerdb/store.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -20,6 +20,7 @@ import ( "context" "time" + "github.com/algorand/go-algorand/data/basics" "github.com/algorand/go-algorand/ledger/encoded" "github.com/algorand/go-algorand/logging" "github.com/algorand/go-algorand/util/db" @@ -66,8 +67,8 @@ type Reader interface { MakeCatchpointReader() (CatchpointReader, error) MakeEncodedAccountsBatchIter() EncodedAccountsBatchIter MakeKVsIter(ctx context.Context) (KVsIter, error) - MakeOnlineAccountsIter(ctx context.Context, useStaging bool) (TableIterator[*encoded.OnlineAccountRecordV6], error) - MakeOnlineRoundParamsIter(ctx context.Context, useStaging bool) (TableIterator[*encoded.OnlineRoundParamsRecordV6], error) + MakeOnlineAccountsIter(ctx context.Context, useStaging bool, excludeBefore basics.Round) (TableIterator[*encoded.OnlineAccountRecordV6], error) + MakeOnlineRoundParamsIter(ctx context.Context, useStaging bool, excludeBefore basics.Round) (TableIterator[*encoded.OnlineRoundParamsRecordV6], error) } // Writer is the interface for the trackerdb write operations. diff --git a/ledger/store/trackerdb/testdb/testdb.go b/ledger/store/trackerdb/testdb/testdb.go index 05acf777cc..48e93d63d3 100644 --- a/ledger/store/trackerdb/testdb/testdb.go +++ b/ledger/store/trackerdb/testdb/testdb.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/testinterface.go b/ledger/store/trackerdb/testinterface.go index a67cc79e40..1186171a0a 100644 --- a/ledger/store/trackerdb/testinterface.go +++ b/ledger/store/trackerdb/testinterface.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/testsuite/accounts_ext_kv_test.go b/ledger/store/trackerdb/testsuite/accounts_ext_kv_test.go index 227a80d5f8..0a49ce8cfd 100644 --- a/ledger/store/trackerdb/testsuite/accounts_ext_kv_test.go +++ b/ledger/store/trackerdb/testsuite/accounts_ext_kv_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/testsuite/accounts_kv_test.go b/ledger/store/trackerdb/testsuite/accounts_kv_test.go index b804ec8cb9..48476fd774 100644 --- a/ledger/store/trackerdb/testsuite/accounts_kv_test.go +++ b/ledger/store/trackerdb/testsuite/accounts_kv_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/testsuite/dbsemantics_test.go b/ledger/store/trackerdb/testsuite/dbsemantics_test.go index 5c711ffb51..d76e6d100e 100644 --- a/ledger/store/trackerdb/testsuite/dbsemantics_test.go +++ b/ledger/store/trackerdb/testsuite/dbsemantics_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/testsuite/dual_test.go b/ledger/store/trackerdb/testsuite/dual_test.go index a8fe7e4b31..d2f2236286 100644 --- a/ledger/store/trackerdb/testsuite/dual_test.go +++ b/ledger/store/trackerdb/testsuite/dual_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/testsuite/migration_test.go b/ledger/store/trackerdb/testsuite/migration_test.go index d6b14ebdb2..3bcd2525c6 100644 --- a/ledger/store/trackerdb/testsuite/migration_test.go +++ b/ledger/store/trackerdb/testsuite/migration_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/testsuite/mockdb_test.go b/ledger/store/trackerdb/testsuite/mockdb_test.go index 8d1ac0ea86..024dbf2287 100644 --- a/ledger/store/trackerdb/testsuite/mockdb_test.go +++ b/ledger/store/trackerdb/testsuite/mockdb_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/testsuite/onlineaccounts_kv_test.go b/ledger/store/trackerdb/testsuite/onlineaccounts_kv_test.go index f71f4ae1da..6639a7b14c 100644 --- a/ledger/store/trackerdb/testsuite/onlineaccounts_kv_test.go +++ b/ledger/store/trackerdb/testsuite/onlineaccounts_kv_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/testsuite/pebbledb_test.go b/ledger/store/trackerdb/testsuite/pebbledb_test.go index eecb1d555f..6b54bce720 100644 --- a/ledger/store/trackerdb/testsuite/pebbledb_test.go +++ b/ledger/store/trackerdb/testsuite/pebbledb_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/testsuite/sqlitedb_test.go b/ledger/store/trackerdb/testsuite/sqlitedb_test.go index 3b76e8d04d..38a0a4f61a 100644 --- a/ledger/store/trackerdb/testsuite/sqlitedb_test.go +++ b/ledger/store/trackerdb/testsuite/sqlitedb_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/testsuite/stateproofs_kv_test.go b/ledger/store/trackerdb/testsuite/stateproofs_kv_test.go index e9341a6534..e474f5a8c4 100644 --- a/ledger/store/trackerdb/testsuite/stateproofs_kv_test.go +++ b/ledger/store/trackerdb/testsuite/stateproofs_kv_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/testsuite/utils_test.go b/ledger/store/trackerdb/testsuite/utils_test.go index be11fd9ac8..77b55db9fd 100644 --- a/ledger/store/trackerdb/testsuite/utils_test.go +++ b/ledger/store/trackerdb/testsuite/utils_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/utils.go b/ledger/store/trackerdb/utils.go index 96c562a560..ee4c1f2276 100644 --- a/ledger/store/trackerdb/utils.go +++ b/ledger/store/trackerdb/utils.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/store/trackerdb/version.go b/ledger/store/trackerdb/version.go index 4cb343f335..e82df68a1d 100644 --- a/ledger/store/trackerdb/version.go +++ b/ledger/store/trackerdb/version.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/testing/accountsTotals.go b/ledger/testing/accountsTotals.go index 686889c4db..02f9526bfe 100644 --- a/ledger/testing/accountsTotals.go +++ b/ledger/testing/accountsTotals.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/testing/consensusRange.go b/ledger/testing/consensusRange.go index 882fb0f05d..4d15808925 100644 --- a/ledger/testing/consensusRange.go +++ b/ledger/testing/consensusRange.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/testing/consensusRange_test.go b/ledger/testing/consensusRange_test.go index 1ee2fee8f1..fd30e47c5d 100644 --- a/ledger/testing/consensusRange_test.go +++ b/ledger/testing/consensusRange_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/testing/initState.go b/ledger/testing/initState.go index a58a7c8f21..d4a0217f0a 100644 --- a/ledger/testing/initState.go +++ b/ledger/testing/initState.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/testing/randomAccounts.go b/ledger/testing/randomAccounts.go index d97eee20d4..948a58b7a9 100644 --- a/ledger/testing/randomAccounts.go +++ b/ledger/testing/randomAccounts.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/testing/randomAccounts_test.go b/ledger/testing/randomAccounts_test.go index f59f704129..927d63fe82 100644 --- a/ledger/testing/randomAccounts_test.go +++ b/ledger/testing/randomAccounts_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/testing/testGenesis.go b/ledger/testing/testGenesis.go index 81be9e9118..69a5bbcc86 100644 --- a/ledger/testing/testGenesis.go +++ b/ledger/testing/testGenesis.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/testing/withAndWithoutCache.go b/ledger/testing/withAndWithoutCache.go index a59d296c61..7de37463c6 100644 --- a/ledger/testing/withAndWithoutCache.go +++ b/ledger/testing/withAndWithoutCache.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/tracker.go b/ledger/tracker.go index 7f6b025d18..faa4359fc8 100644 --- a/ledger/tracker.go +++ b/ledger/tracker.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/tracker_test.go b/ledger/tracker_test.go index 324c658591..06563b6e88 100644 --- a/ledger/tracker_test.go +++ b/ledger/tracker_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/trackerdb.go b/ledger/trackerdb.go index 581eae6f7d..46e6dcaf9d 100644 --- a/ledger/trackerdb.go +++ b/ledger/trackerdb.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/txnbench_test.go b/ledger/txnbench_test.go index 9cd910f96e..7cee882d9c 100644 --- a/ledger/txnbench_test.go +++ b/ledger/txnbench_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/txtail.go b/ledger/txtail.go index 92ce068ef3..0f657f1fb4 100644 --- a/ledger/txtail.go +++ b/ledger/txtail.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/txtail_test.go b/ledger/txtail_test.go index 8eb9d49901..00c57d7959 100644 --- a/ledger/txtail_test.go +++ b/ledger/txtail_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/voters.go b/ledger/voters.go index 49d7adf457..a4794edd4d 100644 --- a/ledger/voters.go +++ b/ledger/voters.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/ledger/voters_test.go b/ledger/voters_test.go index 083492c610..7b2179a775 100644 --- a/ledger/voters_test.go +++ b/ledger/voters_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/accounts.go b/libgoal/accounts.go index 34bbf304cd..4c90682379 100644 --- a/libgoal/accounts.go +++ b/libgoal/accounts.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/error.go b/libgoal/error.go index f5b9c3d76d..7921deb093 100644 --- a/libgoal/error.go +++ b/libgoal/error.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/libgoal.go b/libgoal/libgoal.go index e7739e085c..fa0630a4d7 100644 --- a/libgoal/libgoal.go +++ b/libgoal/libgoal.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/libgoal_test.go b/libgoal/libgoal_test.go index ec531b8e75..746f40a0cf 100644 --- a/libgoal/libgoal_test.go +++ b/libgoal/libgoal_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/lockedFile.go b/libgoal/lockedFile.go index 4678cf623e..d15ec0a5e4 100644 --- a/libgoal/lockedFile.go +++ b/libgoal/lockedFile.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/lockedFileLinux.go b/libgoal/lockedFileLinux.go index 4e26f2c5a7..dee4507d50 100644 --- a/libgoal/lockedFileLinux.go +++ b/libgoal/lockedFileLinux.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/lockedFileUnix.go b/libgoal/lockedFileUnix.go index 1113e942ab..cf37214769 100644 --- a/libgoal/lockedFileUnix.go +++ b/libgoal/lockedFileUnix.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/lockedFileWindows.go b/libgoal/lockedFileWindows.go index 6e29fe6fa6..42000513c5 100644 --- a/libgoal/lockedFileWindows.go +++ b/libgoal/lockedFileWindows.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/participation.go b/libgoal/participation.go index 73e953396b..a23f7831f9 100644 --- a/libgoal/participation.go +++ b/libgoal/participation.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/participation/participation.go b/libgoal/participation/participation.go index cf0b618b92..4abf94a601 100644 --- a/libgoal/participation/participation.go +++ b/libgoal/participation/participation.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/participation/participation_test.go b/libgoal/participation/participation_test.go index b8f2f1929c..44c8990d92 100644 --- a/libgoal/participation/participation_test.go +++ b/libgoal/participation/participation_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/system.go b/libgoal/system.go index 86157044d9..0f3a2d0bf4 100644 --- a/libgoal/system.go +++ b/libgoal/system.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/teal.go b/libgoal/teal.go index 01266437ca..a87c4519fe 100644 --- a/libgoal/teal.go +++ b/libgoal/teal.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/transactions.go b/libgoal/transactions.go index f4cf38ed5b..21b95e28f5 100644 --- a/libgoal/transactions.go +++ b/libgoal/transactions.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -23,6 +23,7 @@ import ( "github.com/algorand/go-algorand/config" "github.com/algorand/go-algorand/crypto" "github.com/algorand/go-algorand/crypto/merklesignature" + v2 "github.com/algorand/go-algorand/daemon/algod/api/server/v2" "github.com/algorand/go-algorand/daemon/algod/api/server/v2/generated/model" "github.com/algorand/go-algorand/data/account" "github.com/algorand/go-algorand/data/basics" @@ -206,6 +207,15 @@ func (c *Client) SignAndBroadcastTransaction(walletHandle, pw []byte, utx transa return c.BroadcastTransaction(stx) } +// WaitForConfirmedTxn waits for a transaction to be confirmed, returing information about it. +func (c *Client) WaitForConfirmedTxn(roundTimeout uint64, txid string) (txn v2.PreEncodedTxInfo, err error) { + algod, err := c.ensureAlgodClient() + if err != nil { + return + } + return algod.WaitForConfirmedTxn(roundTimeout, txid) +} + // generateRegistrationTransaction returns a transaction object for registering a Participation with its parent this is // similar to account.Participation.GenerateRegistrationTransaction. func generateRegistrationTransaction(part model.ParticipationKey, fee basics.MicroAlgos, txnFirstValid, txnLastValid basics.Round, leaseBytes [32]byte) (transactions.Transaction, error) { diff --git a/libgoal/unencryptedWallet.go b/libgoal/unencryptedWallet.go index c050b03a36..0f9db7fbac 100644 --- a/libgoal/unencryptedWallet.go +++ b/libgoal/unencryptedWallet.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/walletHandles.go b/libgoal/walletHandles.go index 5405f667d5..425d32b92e 100644 --- a/libgoal/walletHandles.go +++ b/libgoal/walletHandles.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/libgoal/wallets.go b/libgoal/wallets.go index e175d62f77..57049777f7 100644 --- a/libgoal/wallets.go +++ b/libgoal/wallets.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/collector.go b/logging/collector.go index c79cba361b..8ab8094090 100644 --- a/logging/collector.go +++ b/logging/collector.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/cyclicWriter.go b/logging/cyclicWriter.go index 579fb4f881..e860ffc9e3 100644 --- a/logging/cyclicWriter.go +++ b/logging/cyclicWriter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/cyclicWriter_test.go b/logging/cyclicWriter_test.go index 1149ae2098..398d830b57 100644 --- a/logging/cyclicWriter_test.go +++ b/logging/cyclicWriter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/logBuffer.go b/logging/logBuffer.go index 9ccc958475..0c00523c09 100644 --- a/logging/logBuffer.go +++ b/logging/logBuffer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/logBuffer_test.go b/logging/logBuffer_test.go index d3c9689e77..f9cc57c192 100644 --- a/logging/logBuffer_test.go +++ b/logging/logBuffer_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/log_test.go b/logging/log_test.go index ac35412cb9..c0d4ede2ad 100644 --- a/logging/log_test.go +++ b/logging/log_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/logspec/agreement.go b/logging/logspec/agreement.go index cb5d978afc..bf320daee4 100644 --- a/logging/logspec/agreement.go +++ b/logging/logspec/agreement.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/logspec/ledger.go b/logging/logspec/ledger.go index d04b2087f7..2d06cf2315 100644 --- a/logging/logspec/ledger.go +++ b/logging/logspec/ledger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/logspec/root.go b/logging/logspec/root.go index a089c650d3..77852b97cb 100644 --- a/logging/logspec/root.go +++ b/logging/logspec/root.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetry.go b/logging/telemetry.go index 2ea5c02363..35c4f773cf 100644 --- a/logging/telemetry.go +++ b/logging/telemetry.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetryCommon.go b/logging/telemetryCommon.go index fb2163a9e0..1c11a1a404 100644 --- a/logging/telemetryCommon.go +++ b/logging/telemetryCommon.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetryConfig.go b/logging/telemetryConfig.go index af715b382e..8a524ce363 100644 --- a/logging/telemetryConfig.go +++ b/logging/telemetryConfig.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetryConfig_test.go b/logging/telemetryConfig_test.go index 31faf9eced..5b7f18de1e 100644 --- a/logging/telemetryConfig_test.go +++ b/logging/telemetryConfig_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetryFilteredHook.go b/logging/telemetryFilteredHook.go index 74e05634e7..0d956ef08e 100644 --- a/logging/telemetryFilteredHook.go +++ b/logging/telemetryFilteredHook.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetry_test.go b/logging/telemetry_test.go index bf4d780e3e..53ac401337 100644 --- a/logging/telemetry_test.go +++ b/logging/telemetry_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetryhook.go b/logging/telemetryhook.go index c166c5efce..73712ff229 100644 --- a/logging/telemetryhook.go +++ b/logging/telemetryhook.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetryhook_test.go b/logging/telemetryhook_test.go index 31ccdc48c3..3c5329cc61 100644 --- a/logging/telemetryhook_test.go +++ b/logging/telemetryhook_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetryspec/category.go b/logging/telemetryspec/category.go index 80de66c671..7b5a9bfb3d 100644 --- a/logging/telemetryspec/category.go +++ b/logging/telemetryspec/category.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetryspec/event.go b/logging/telemetryspec/event.go index 1363646043..a976987ecd 100644 --- a/logging/telemetryspec/event.go +++ b/logging/telemetryspec/event.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetryspec/eventTiming.go b/logging/telemetryspec/eventTiming.go index 2eef89a861..b3b4017a68 100644 --- a/logging/telemetryspec/eventTiming.go +++ b/logging/telemetryspec/eventTiming.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetryspec/metric.go b/logging/telemetryspec/metric.go index 2d43baae0d..a466f0615c 100644 --- a/logging/telemetryspec/metric.go +++ b/logging/telemetryspec/metric.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/telemetryspec/metric_test.go b/logging/telemetryspec/metric_test.go index d2ce4e9333..a626494c9a 100644 --- a/logging/telemetryspec/metric_test.go +++ b/logging/telemetryspec/metric_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/testingLogger.go b/logging/testingLogger.go index 80424adb41..0246b8cdcb 100644 --- a/logging/testingLogger.go +++ b/logging/testingLogger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/logging/usage.go b/logging/usage.go index 798a469819..41511394a4 100644 --- a/logging/usage.go +++ b/logging/usage.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/network.go b/netdeploy/network.go index 1ca99239f4..6951969031 100644 --- a/netdeploy/network.go +++ b/netdeploy/network.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/networkTemplate.go b/netdeploy/networkTemplate.go index d8c30d66ef..865edf6ce5 100644 --- a/netdeploy/networkTemplate.go +++ b/netdeploy/networkTemplate.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/networkTemplates_test.go b/netdeploy/networkTemplates_test.go index 69fca35441..130667f036 100644 --- a/netdeploy/networkTemplates_test.go +++ b/netdeploy/networkTemplates_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/network_test.go b/netdeploy/network_test.go index e18217b781..82f53fb78a 100644 --- a/netdeploy/network_test.go +++ b/netdeploy/network_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/remote/bootstrappedNetwork.go b/netdeploy/remote/bootstrappedNetwork.go index b0814a3691..aee34226b6 100644 --- a/netdeploy/remote/bootstrappedNetwork.go +++ b/netdeploy/remote/bootstrappedNetwork.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/remote/bootstrappedNetwork_test.go b/netdeploy/remote/bootstrappedNetwork_test.go index c84c4f6579..86b44051cc 100644 --- a/netdeploy/remote/bootstrappedNetwork_test.go +++ b/netdeploy/remote/bootstrappedNetwork_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/remote/buildConfig.go b/netdeploy/remote/buildConfig.go index 2fdce2efc3..ae00decf8c 100644 --- a/netdeploy/remote/buildConfig.go +++ b/netdeploy/remote/buildConfig.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/remote/deployedNetwork.go b/netdeploy/remote/deployedNetwork.go index 2a02e77899..55e1fcaa90 100644 --- a/netdeploy/remote/deployedNetwork.go +++ b/netdeploy/remote/deployedNetwork.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/remote/deployedNetwork_test.go b/netdeploy/remote/deployedNetwork_test.go index 66240ee6a5..fc9aabb333 100644 --- a/netdeploy/remote/deployedNetwork_test.go +++ b/netdeploy/remote/deployedNetwork_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/remote/hostConfig.go b/netdeploy/remote/hostConfig.go index 1cbbd66c46..c261ca7c35 100644 --- a/netdeploy/remote/hostConfig.go +++ b/netdeploy/remote/hostConfig.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/remote/hostTemplate.go b/netdeploy/remote/hostTemplate.go index b1118b7342..7971e12639 100644 --- a/netdeploy/remote/hostTemplate.go +++ b/netdeploy/remote/hostTemplate.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/remote/nodeConfig.go b/netdeploy/remote/nodeConfig.go index 4025c47c1c..abe257b1e4 100644 --- a/netdeploy/remote/nodeConfig.go +++ b/netdeploy/remote/nodeConfig.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/remote/nodeWalletData.go b/netdeploy/remote/nodeWalletData.go index 8be7edb993..0a54160582 100644 --- a/netdeploy/remote/nodeWalletData.go +++ b/netdeploy/remote/nodeWalletData.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/remote/nodecfg/nodeConfigurator.go b/netdeploy/remote/nodecfg/nodeConfigurator.go index 1de017f10d..fd2e30c0e8 100644 --- a/netdeploy/remote/nodecfg/nodeConfigurator.go +++ b/netdeploy/remote/nodecfg/nodeConfigurator.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/remote/nodecfg/nodeDir.go b/netdeploy/remote/nodecfg/nodeDir.go index 43417dca27..5298a260a7 100644 --- a/netdeploy/remote/nodecfg/nodeDir.go +++ b/netdeploy/remote/nodecfg/nodeDir.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/netdeploy/remote/topology.go b/netdeploy/remote/topology.go index eebfa3e508..91feaac9e8 100644 --- a/netdeploy/remote/topology.go +++ b/netdeploy/remote/topology.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/addr.go b/network/addr.go index 00eb368881..694a707717 100644 --- a/network/addr.go +++ b/network/addr.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/addr/addr.go b/network/addr/addr.go index c8c0c0b6ab..0c90b1118d 100644 --- a/network/addr/addr.go +++ b/network/addr/addr.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/addr/addr_test.go b/network/addr/addr_test.go index bceeb079f2..d19889654a 100644 --- a/network/addr/addr_test.go +++ b/network/addr/addr_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/connPerfMon.go b/network/connPerfMon.go index 90dacfe713..fc315e3f70 100644 --- a/network/connPerfMon.go +++ b/network/connPerfMon.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/connPerfMon_test.go b/network/connPerfMon_test.go index 4c2bc5f034..3be53b0922 100644 --- a/network/connPerfMon_test.go +++ b/network/connPerfMon_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -48,7 +48,7 @@ func makeMsgPool(N int, peers []Peer) (out []IncomingMessage) { addMsg := func(msgCount int) { for i := 0; i < msgCount; i++ { - msg.Sender = peers[(int(msgIndex)+i)%len(peers)].(DisconnectablePeer) + msg.Sender = peers[(int(msgIndex)+i)%len(peers)].(DisconnectableAddressablePeer) timer += int64(7 * time.Nanosecond) msg.Received = timer out = append(out, msg) diff --git a/network/gossipNode.go b/network/gossipNode.go index 68a5e36d88..e82b5fc0fe 100644 --- a/network/gossipNode.go +++ b/network/gossipNode.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -33,6 +33,17 @@ type DisconnectablePeer interface { GetNetwork() GossipNode } +// DisconnectableAddressablePeer is a Peer with a long-living connection to a network that can be disconnected and has an IP address +type DisconnectableAddressablePeer interface { + DisconnectablePeer + IPAddressable +} + +// IPAddressable is addressable with either IPv4 or IPv6 address +type IPAddressable interface { + RoutingAddr() []byte +} + // PeerOption allows users to specify a subset of peers to query // //msgp:ignore PeerOption @@ -118,7 +129,7 @@ var outgoingMessagesBufferSize = int( // IncomingMessage represents a message arriving from some peer in our p2p network type IncomingMessage struct { - Sender DisconnectablePeer + Sender DisconnectableAddressablePeer Tag Tag Data []byte Err error diff --git a/network/hybridNetwork.go b/network/hybridNetwork.go index c62c01c5d6..3f514c7267 100644 --- a/network/hybridNetwork.go +++ b/network/hybridNetwork.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/hybridNetwork_test.go b/network/hybridNetwork_test.go index 3fac0cefd0..1eac45e6de 100644 --- a/network/hybridNetwork_test.go +++ b/network/hybridNetwork_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/limitcaller/dialer.go b/network/limitcaller/dialer.go index ee9b2e364a..90049081ea 100644 --- a/network/limitcaller/dialer.go +++ b/network/limitcaller/dialer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/limitcaller/rateLimitingTransport.go b/network/limitcaller/rateLimitingTransport.go index 7877c879d1..8aacd05fcb 100644 --- a/network/limitcaller/rateLimitingTransport.go +++ b/network/limitcaller/rateLimitingTransport.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/limitcaller/rateLimitingTransport_test.go b/network/limitcaller/rateLimitingTransport_test.go index 155ed8310f..0e92357945 100644 --- a/network/limitcaller/rateLimitingTransport_test.go +++ b/network/limitcaller/rateLimitingTransport_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/limited_reader_slurper.go b/network/limited_reader_slurper.go index a1ba90a5da..b1ecaf5137 100644 --- a/network/limited_reader_slurper.go +++ b/network/limited_reader_slurper.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/limited_reader_slurper_test.go b/network/limited_reader_slurper_test.go index 45b3fc7279..38bfb7d1b2 100644 --- a/network/limited_reader_slurper_test.go +++ b/network/limited_reader_slurper_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/messageFilter.go b/network/messageFilter.go index b098eddf79..1b11d22d80 100644 --- a/network/messageFilter.go +++ b/network/messageFilter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/messageFilter_test.go b/network/messageFilter_test.go index 93d3dfe6f6..5dd5dc1200 100644 --- a/network/messageFilter_test.go +++ b/network/messageFilter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/messagetracer/graphtrace.go b/network/messagetracer/graphtrace.go index e0390febe6..6b57a70562 100644 --- a/network/messagetracer/graphtrace.go +++ b/network/messagetracer/graphtrace.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/messagetracer/interface.go b/network/messagetracer/interface.go index 798d954a7d..858289155d 100644 --- a/network/messagetracer/interface.go +++ b/network/messagetracer/interface.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/metrics.go b/network/metrics.go index fe62434095..1a0857a349 100644 --- a/network/metrics.go +++ b/network/metrics.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/metrics_test.go b/network/metrics_test.go index ea0448ebc6..e15f7c1b1d 100644 --- a/network/metrics_test.go +++ b/network/metrics_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/msgCompressor.go b/network/msgCompressor.go index 61108cad99..a91dbf69a8 100644 --- a/network/msgCompressor.go +++ b/network/msgCompressor.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/msgCompressor_test.go b/network/msgCompressor_test.go index 172cf05a98..88273e37cf 100644 --- a/network/msgCompressor_test.go +++ b/network/msgCompressor_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/msgOfInterest.go b/network/msgOfInterest.go index be1c7d735e..2830659d2d 100644 --- a/network/msgOfInterest.go +++ b/network/msgOfInterest.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/msgOfInterest_test.go b/network/msgOfInterest_test.go index b8e2c85249..c596781d64 100644 --- a/network/msgOfInterest_test.go +++ b/network/msgOfInterest_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/multiplexer.go b/network/multiplexer.go index ca40f9b0e4..4d498afb17 100644 --- a/network/multiplexer.go +++ b/network/multiplexer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/multiplexer_test.go b/network/multiplexer_test.go index d31f8451a3..54e0a0e029 100644 --- a/network/multiplexer_test.go +++ b/network/multiplexer_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/netidentity.go b/network/netidentity.go index 74f9b09e62..dc19f9d774 100644 --- a/network/netidentity.go +++ b/network/netidentity.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/netidentity_test.go b/network/netidentity_test.go index a54628a6fe..ce3240698f 100644 --- a/network/netidentity_test.go +++ b/network/netidentity_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/netprio.go b/network/netprio.go index 9c6c510608..6a6af66fa0 100644 --- a/network/netprio.go +++ b/network/netprio.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/netprio_test.go b/network/netprio_test.go index 5de45a6074..0c323232a0 100644 --- a/network/netprio_test.go +++ b/network/netprio_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/capabilities.go b/network/p2p/capabilities.go index 6b79ad7d3e..96691c773a 100644 --- a/network/p2p/capabilities.go +++ b/network/p2p/capabilities.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/capabilities_test.go b/network/p2p/capabilities_test.go index 5e662c87fa..508e5d37d6 100644 --- a/network/p2p/capabilities_test.go +++ b/network/p2p/capabilities_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/dht/dht.go b/network/p2p/dht/dht.go index 1ea38bdd78..22d3cbe391 100644 --- a/network/p2p/dht/dht.go +++ b/network/p2p/dht/dht.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/dht/dht_test.go b/network/p2p/dht/dht_test.go index 51cb8978f7..77f3db72da 100644 --- a/network/p2p/dht/dht_test.go +++ b/network/p2p/dht/dht_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/dnsaddr/resolve.go b/network/p2p/dnsaddr/resolve.go index 5e0e8007fc..1dcee65488 100644 --- a/network/p2p/dnsaddr/resolve.go +++ b/network/p2p/dnsaddr/resolve.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/dnsaddr/resolveController.go b/network/p2p/dnsaddr/resolveController.go index ff606b39a1..78d992f676 100644 --- a/network/p2p/dnsaddr/resolveController.go +++ b/network/p2p/dnsaddr/resolveController.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/dnsaddr/resolveController_test.go b/network/p2p/dnsaddr/resolveController_test.go index 5dd3c40a9d..dac680a7fc 100644 --- a/network/p2p/dnsaddr/resolveController_test.go +++ b/network/p2p/dnsaddr/resolveController_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/dnsaddr/resolve_test.go b/network/p2p/dnsaddr/resolve_test.go index 30acbd3e5f..1582515f84 100644 --- a/network/p2p/dnsaddr/resolve_test.go +++ b/network/p2p/dnsaddr/resolve_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/http.go b/network/p2p/http.go index cf6b80ffc3..e82ac482f4 100644 --- a/network/p2p/http.go +++ b/network/p2p/http.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/logger.go b/network/p2p/logger.go index 741755745b..eef4f0322e 100644 --- a/network/p2p/logger.go +++ b/network/p2p/logger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/p2p.go b/network/p2p/p2p.go index 72353e3739..3f6737928a 100644 --- a/network/p2p/p2p.go +++ b/network/p2p/p2p.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/p2p_test.go b/network/p2p/p2p_test.go index 9fbaf09882..9202dd9c74 100644 --- a/network/p2p/p2p_test.go +++ b/network/p2p/p2p_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/peerID.go b/network/p2p/peerID.go index c1b2536575..1fdde6074b 100644 --- a/network/p2p/peerID.go +++ b/network/p2p/peerID.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/peerID_test.go b/network/p2p/peerID_test.go index beed18868c..10f9e364d6 100644 --- a/network/p2p/peerID_test.go +++ b/network/p2p/peerID_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/peerstore/peerstore.go b/network/p2p/peerstore/peerstore.go index 4a4e7e6ddf..5516db6250 100644 --- a/network/p2p/peerstore/peerstore.go +++ b/network/p2p/peerstore/peerstore.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/peerstore/peerstore_test.go b/network/p2p/peerstore/peerstore_test.go index d82b34595d..91152d4cd0 100644 --- a/network/p2p/peerstore/peerstore_test.go +++ b/network/p2p/peerstore/peerstore_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/peerstore/utils.go b/network/p2p/peerstore/utils.go index 90b0af497c..5e0b7627b6 100644 --- a/network/p2p/peerstore/utils.go +++ b/network/p2p/peerstore/utils.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/peerstore/utils_test.go b/network/p2p/peerstore/utils_test.go index 1609b41769..8c1975e16e 100644 --- a/network/p2p/peerstore/utils_test.go +++ b/network/p2p/peerstore/utils_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/pubsub.go b/network/p2p/pubsub.go index 3dfe08301f..71eb57160f 100644 --- a/network/p2p/pubsub.go +++ b/network/p2p/pubsub.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/streams.go b/network/p2p/streams.go index 0b7838ffdc..f271f00ffa 100644 --- a/network/p2p/streams.go +++ b/network/p2p/streams.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2p/testing/httpNode.go b/network/p2p/testing/httpNode.go index ea84144180..10ccb6e7b6 100644 --- a/network/p2p/testing/httpNode.go +++ b/network/p2p/testing/httpNode.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/p2pNetwork.go b/network/p2pNetwork.go index 32b9a49ef3..e8954a0657 100644 --- a/network/p2pNetwork.go +++ b/network/p2pNetwork.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -943,23 +943,35 @@ func (n *P2PNetwork) txTopicHandleLoop() { } } +type gsPeer struct { + peerID peer.ID + net *P2PNetwork +} + +func (p *gsPeer) GetNetwork() GossipNode { + return p.net +} + +func (p *gsPeer) RoutingAddr() []byte { + return []byte(p.peerID) +} + // txTopicValidator calls txHandler to validate and process incoming transactions. func (n *P2PNetwork) txTopicValidator(ctx context.Context, peerID peer.ID, msg *pubsub.Message) pubsub.ValidationResult { - var routingAddr [8]byte n.wsPeersLock.Lock() - var wsp *wsPeer - var ok bool - if wsp, ok = n.wsPeers[peerID]; ok { - copy(routingAddr[:], wsp.RoutingAddr()) + var sender DisconnectableAddressablePeer + if wsp, ok := n.wsPeers[peerID]; ok { + sender = wsp } else { - // well, otherwise use last 8 bytes of peerID - copy(routingAddr[:], peerID[len(peerID)-8:]) + // otherwise use the peerID to handle the case where this peer is not in the wsPeers map yet + // this can happen when pubsub receives new peer notifications before the wsStreamHandler is called: + // create a fake peer that is good enough for tx handler to work with. + sender = &gsPeer{peerID: peerID, net: n} } n.wsPeersLock.Unlock() inmsg := IncomingMessage{ - // Sender: gossipSubPeer{peerID: msg.ReceivedFrom, net: n, routingAddr: routingAddr}, - Sender: wsp, + Sender: sender, Tag: protocol.TxnTag, Data: msg.Data, Net: n, diff --git a/network/p2pNetwork_test.go b/network/p2pNetwork_test.go index 51e4fc7bf2..f42214b84f 100644 --- a/network/p2pNetwork_test.go +++ b/network/p2pNetwork_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -42,6 +42,7 @@ import ( "github.com/algorand/go-algorand/test/partitiontest" pubsub "github.com/libp2p/go-libp2p-pubsub" + pb "github.com/libp2p/go-libp2p-pubsub/pb" "github.com/libp2p/go-libp2p/core/crypto" "github.com/libp2p/go-libp2p/core/network" "github.com/libp2p/go-libp2p/core/peer" @@ -1374,3 +1375,33 @@ func TestP2PEnableGossipService_BothDisable(t *testing.T) { require.False(t, netA.hasPeers()) require.False(t, netB.hasPeers()) } + +// TestP2PTxTopicValidator_NoWsPeer checks txTopicValidator does not call tx handler with empty Sender +func TestP2PTxTopicValidator_NoWsPeer(t *testing.T) { + partitiontest.PartitionTest(t) + + log := logging.TestingLog(t) + + // prepare configs + cfg := config.GetDefaultLocal() + cfg.DNSBootstrapID = "" // disable DNS lookups since the test uses phonebook addresses + + net, err := NewP2PNetwork(log, cfg, "", nil, genesisID, config.Devtestnet, &nopeNodeInfo{}, nil) + require.NoError(t, err) + + peerID := peer.ID("12345678") // must be 8+ in size + msg := pubsub.Message{Message: &pb.Message{}, ID: string(peerID)} + validateIncomingTxMessage := func(rawmsg IncomingMessage) OutgoingMessage { + require.NotEmpty(t, rawmsg.Sender) + require.Implements(t, (*DisconnectableAddressablePeer)(nil), rawmsg.Sender) + return OutgoingMessage{Action: Accept} + } + net.handler.RegisterValidatorHandlers([]TaggedMessageValidatorHandler{ + {Tag: protocol.TxnTag, MessageHandler: ValidateHandleFunc(validateIncomingTxMessage)}, + }) + + ctx := context.Background() + require.NotContains(t, net.wsPeers, peerID) + res := net.txTopicValidator(ctx, peerID, &msg) + require.Equal(t, pubsub.ValidationAccept, res) +} diff --git a/network/p2pPeer.go b/network/p2pPeer.go index 9a0ce2699d..ecc47d1857 100644 --- a/network/p2pPeer.go +++ b/network/p2pPeer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/peersheap.go b/network/peersheap.go index 35a6fa4781..15d856d132 100644 --- a/network/peersheap.go +++ b/network/peersheap.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/phonebook/phonebook.go b/network/phonebook/phonebook.go index 100d624c04..8e8dacc1f0 100644 --- a/network/phonebook/phonebook.go +++ b/network/phonebook/phonebook.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/phonebook/phonebook_test.go b/network/phonebook/phonebook_test.go index d603a51a1a..7fdf022153 100644 --- a/network/phonebook/phonebook_test.go +++ b/network/phonebook/phonebook_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/requestLogger.go b/network/requestLogger.go index 80488cbe91..a87caddf60 100644 --- a/network/requestLogger.go +++ b/network/requestLogger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/requestLogger_test.go b/network/requestLogger_test.go index c6bde8956e..4da7ea08b3 100644 --- a/network/requestLogger_test.go +++ b/network/requestLogger_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/requestTracker.go b/network/requestTracker.go index 8c603e2a32..d318ca2932 100644 --- a/network/requestTracker.go +++ b/network/requestTracker.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/requestTracker_test.go b/network/requestTracker_test.go index 46f003e0f8..d359ae15a4 100644 --- a/network/requestTracker_test.go +++ b/network/requestTracker_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/topics.go b/network/topics.go index 679075c839..6459df550e 100644 --- a/network/topics.go +++ b/network/topics.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/topics_test.go b/network/topics_test.go index 65f96b6a11..cab7cfaf4b 100644 --- a/network/topics_test.go +++ b/network/topics_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/websocketProxy_test.go b/network/websocketProxy_test.go index 96628acb69..fdb27bcaa8 100644 --- a/network/websocketProxy_test.go +++ b/network/websocketProxy_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/network/wsNetwork.go b/network/wsNetwork.go index 675e425573..5dec40f163 100644 --- a/network/wsNetwork.go +++ b/network/wsNetwork.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -284,7 +284,7 @@ const ( type broadcastRequest struct { tags []Tag data [][]byte - except *wsPeer + except Peer done chan struct{} enqueueTime time.Time ctx context.Context @@ -381,7 +381,7 @@ func (wn *msgBroadcaster) BroadcastArray(ctx context.Context, tags []protocol.Ta request := broadcastRequest{tags: tags, data: data, enqueueTime: time.Now(), ctx: ctx} if except != nil { - request.except = except.(*wsPeer) + request.except = except } broadcastQueue := wn.broadcastQueueBulk @@ -1401,7 +1401,7 @@ func (wn *msgBroadcaster) innerBroadcast(request broadcastRequest, prio bool, pe if wn.config.BroadcastConnectionsLimit >= 0 && sentMessageCount >= wn.config.BroadcastConnectionsLimit { break } - if peer == request.except { + if Peer(peer) == request.except { continue } ok := peer.writeNonBlockMsgs(request.ctx, data, prio, digests, request.enqueueTime) diff --git a/network/wsNetwork_test.go b/network/wsNetwork_test.go index 1a355e5250..ad8dff913a 100644 --- a/network/wsNetwork_test.go +++ b/network/wsNetwork_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -4639,3 +4639,40 @@ func TestWebsocketNetworkHTTPClient(t *testing.T) { _, err = netB.GetHTTPClient("invalid") require.Error(t, err) } + +// TestPeerComparisonInBroadcast tests that the peer comparison in the broadcast function works as expected +// when casting wsPeer to Peer (interface{}) type. +func TestPeerComparisonInBroadcast(t *testing.T) { + partitiontest.PartitionTest(t) + t.Parallel() + + log := logging.TestingLog(t) + conf := config.GetDefaultLocal() + wn := &WebsocketNetwork{ + log: log, + config: conf, + ctx: context.Background(), + } + wn.setup() + + testPeer := &wsPeer{ + wsPeerCore: makePeerCore(wn.ctx, wn, log, nil, "test-addr", nil, ""), + sendBufferBulk: make(chan sendMessages, sendBufferLength), + } + exceptPeer := &wsPeer{ + wsPeerCore: makePeerCore(wn.ctx, wn, log, nil, "except-addr", nil, ""), + sendBufferBulk: make(chan sendMessages, sendBufferLength), + } + + request := broadcastRequest{ + tags: []protocol.Tag{"test-tag"}, + data: [][]byte{[]byte("test-data")}, + enqueueTime: time.Now(), + except: exceptPeer, + } + + wn.broadcaster.innerBroadcast(request, false, []*wsPeer{testPeer, exceptPeer}) + + require.Equal(t, 1, len(testPeer.sendBufferBulk)) + require.Equal(t, 0, len(exceptPeer.sendBufferBulk)) +} diff --git a/network/wsPeer.go b/network/wsPeer.go index 2b30a17486..31f22fbe68 100644 --- a/network/wsPeer.go +++ b/network/wsPeer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -282,6 +282,8 @@ type wsPeer struct { // closers is a slice of functions to run when the peer is closed closers []func() + // closersMu synchronizes access to closers + closersMu deadlock.RWMutex // peerType defines the peer's underlying connection type // used for separate p2p vs ws metrics @@ -295,11 +297,6 @@ type HTTPPeer interface { GetHTTPClient() *http.Client } -// IPAddressable is addressable with either IPv4 or IPv6 address -type IPAddressable interface { - RoutingAddr() []byte -} - // UnicastPeer is another possible interface for the opaque Peer. // It is possible that we can only initiate a connection to a peer over websockets. type UnicastPeer interface { @@ -979,6 +976,8 @@ L: } } + wp.closersMu.RLock() + defer wp.closersMu.RUnlock() // now call all registered closers for _, f := range wp.closers { f() @@ -1115,6 +1114,9 @@ func (wp *wsPeer) sendMessagesOfInterest(messagesOfInterestGeneration uint32, me } func (wp *wsPeer) OnClose(f func()) { + wp.closersMu.Lock() + defer wp.closersMu.Unlock() + if wp.closers == nil { wp.closers = []func(){} } diff --git a/network/wsPeer_test.go b/network/wsPeer_test.go index ff1f9be7bc..707dc210ea 100644 --- a/network/wsPeer_test.go +++ b/network/wsPeer_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/node/assemble_test.go b/node/assemble_test.go index d2bf4dd7f7..07a7f65389 100644 --- a/node/assemble_test.go +++ b/node/assemble_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/node/error.go b/node/error.go index ea4ad83575..b9ee13b214 100644 --- a/node/error.go +++ b/node/error.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/node/follower_node.go b/node/follower_node.go index 91bfa4e8e0..573b66dfd8 100644 --- a/node/follower_node.go +++ b/node/follower_node.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/node/follower_node_test.go b/node/follower_node_test.go index 4983b68c8c..587fb0505d 100644 --- a/node/follower_node_test.go +++ b/node/follower_node_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/node/impls.go b/node/impls.go index 3063e09659..54b8b63ed2 100644 --- a/node/impls.go +++ b/node/impls.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/node/netprio.go b/node/netprio.go index f3ac6a488f..5c05724b0f 100644 --- a/node/netprio.go +++ b/node/netprio.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/node/netprio_test.go b/node/netprio_test.go index bf34fff102..e91bed4e45 100644 --- a/node/netprio_test.go +++ b/node/netprio_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/node/node.go b/node/node.go index 2d452afa90..c790658af6 100644 --- a/node/node.go +++ b/node/node.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/node/node_test.go b/node/node_test.go index cc4a795c82..77d23e0ae5 100644 --- a/node/node_test.go +++ b/node/node_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/nodecontrol/LaggedStdIo.go b/nodecontrol/LaggedStdIo.go index c46efb92da..f26bafe78d 100644 --- a/nodecontrol/LaggedStdIo.go +++ b/nodecontrol/LaggedStdIo.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/nodecontrol/NodeController.go b/nodecontrol/NodeController.go index 3535c2127c..504e1714b6 100644 --- a/nodecontrol/NodeController.go +++ b/nodecontrol/NodeController.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/nodecontrol/algodControl.go b/nodecontrol/algodControl.go index a6bcb5fb82..bb17e5598e 100644 --- a/nodecontrol/algodControl.go +++ b/nodecontrol/algodControl.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/nodecontrol/algodControl_test.go b/nodecontrol/algodControl_test.go index af6e48bfbe..05f6c11326 100644 --- a/nodecontrol/algodControl_test.go +++ b/nodecontrol/algodControl_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/nodecontrol/kmdControl.go b/nodecontrol/kmdControl.go index 4dfb3eb747..ea896ebea7 100644 --- a/nodecontrol/kmdControl.go +++ b/nodecontrol/kmdControl.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/nodecontrol/kmdControl_common.go b/nodecontrol/kmdControl_common.go index c26a5085d1..86973b9704 100644 --- a/nodecontrol/kmdControl_common.go +++ b/nodecontrol/kmdControl_common.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/nodecontrol/kmdControl_windows.go b/nodecontrol/kmdControl_windows.go index 39e37a44e8..92baa0da55 100644 --- a/nodecontrol/kmdControl_windows.go +++ b/nodecontrol/kmdControl_windows.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/nodecontrol/nodeControlErrors.go b/nodecontrol/nodeControlErrors.go index ba214534bd..c281a20818 100644 --- a/nodecontrol/nodeControlErrors.go +++ b/nodecontrol/nodeControlErrors.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/codec.go b/protocol/codec.go index 97dbccbc95..7aed14f09a 100644 --- a/protocol/codec.go +++ b/protocol/codec.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/codec_test.go b/protocol/codec_test.go index 72ac537b22..f8503b4fb1 100644 --- a/protocol/codec_test.go +++ b/protocol/codec_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/codec_tester.go b/protocol/codec_tester.go index 63a6aaf0a1..1dbed5be76 100644 --- a/protocol/codec_tester.go +++ b/protocol/codec_tester.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/consensus.go b/protocol/consensus.go index 1549ae76bd..a6d0190f47 100644 --- a/protocol/consensus.go +++ b/protocol/consensus.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/encodebench_test.go b/protocol/encodebench_test.go index b0f26c1614..086bb22201 100644 --- a/protocol/encodebench_test.go +++ b/protocol/encodebench_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/hash.go b/protocol/hash.go index 9390c582c2..e652f84c6c 100644 --- a/protocol/hash.go +++ b/protocol/hash.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/hash_test.go b/protocol/hash_test.go index 12eca20cb4..6a5d9915b3 100644 --- a/protocol/hash_test.go +++ b/protocol/hash_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/networks.go b/protocol/networks.go index b43f939d80..cc473645b1 100644 --- a/protocol/networks.go +++ b/protocol/networks.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/stateproof.go b/protocol/stateproof.go index 7bb1a60fbb..2f41980eff 100644 --- a/protocol/stateproof.go +++ b/protocol/stateproof.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/tags.go b/protocol/tags.go index 3a443c05cf..d187fec1a2 100644 --- a/protocol/tags.go +++ b/protocol/tags.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/tags_test.go b/protocol/tags_test.go index d4440a45cc..b00c99c2ac 100644 --- a/protocol/tags_test.go +++ b/protocol/tags_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/test/allocbound_slice.go b/protocol/test/allocbound_slice.go index b9f696e3c9..d9e462a273 100644 --- a/protocol/test/allocbound_slice.go +++ b/protocol/test/allocbound_slice.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/transcode/core.go b/protocol/transcode/core.go index db97e3daa2..11ddb6a604 100644 --- a/protocol/transcode/core.go +++ b/protocol/transcode/core.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/transcode/core_test.go b/protocol/transcode/core_test.go index 55c05d4612..8dec7b1ba5 100644 --- a/protocol/transcode/core_test.go +++ b/protocol/transcode/core_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/protocol/txntype.go b/protocol/txntype.go index ee2d085dcb..6a60438ab3 100644 --- a/protocol/txntype.go +++ b/protocol/txntype.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/rpcs/blockService.go b/rpcs/blockService.go index 410376a20f..e1b296e12b 100644 --- a/rpcs/blockService.go +++ b/rpcs/blockService.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/rpcs/blockService_test.go b/rpcs/blockService_test.go index 83cfd94ef9..ad714c02aa 100644 --- a/rpcs/blockService_test.go +++ b/rpcs/blockService_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -76,6 +76,10 @@ func (mup *mockUnicastPeer) GetNetwork() network.GossipNode { panic("not implemented") } +func (mup *mockUnicastPeer) RoutingAddr() []byte { + panic("not implemented") +} + // TestHandleCatchupReqNegative covers the error reporting in handleCatchupReq func TestHandleCatchupReqNegative(t *testing.T) { partitiontest.PartitionTest(t) diff --git a/rpcs/healthService.go b/rpcs/healthService.go index 1c852c4e8e..1668c6f9b2 100644 --- a/rpcs/healthService.go +++ b/rpcs/healthService.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/rpcs/healthService_test.go b/rpcs/healthService_test.go index c1153d98ba..8954c29deb 100644 --- a/rpcs/healthService_test.go +++ b/rpcs/healthService_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/rpcs/httpTxSync.go b/rpcs/httpTxSync.go index 311a87cf7b..1aa2584754 100644 --- a/rpcs/httpTxSync.go +++ b/rpcs/httpTxSync.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/rpcs/ledgerService.go b/rpcs/ledgerService.go index d8f45b3a05..a51a9fcc3d 100644 --- a/rpcs/ledgerService.go +++ b/rpcs/ledgerService.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/rpcs/ledgerService_test.go b/rpcs/ledgerService_test.go index a100f03c2b..dcb1e045fa 100644 --- a/rpcs/ledgerService_test.go +++ b/rpcs/ledgerService_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/rpcs/registrar.go b/rpcs/registrar.go index f0122b552c..d9a4cddcdd 100644 --- a/rpcs/registrar.go +++ b/rpcs/registrar.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/rpcs/txService.go b/rpcs/txService.go index e9eb5d7aa2..87c4fc0a6d 100644 --- a/rpcs/txService.go +++ b/rpcs/txService.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/rpcs/txService_test.go b/rpcs/txService_test.go index 0b12d2b413..dde7cfc4ab 100644 --- a/rpcs/txService_test.go +++ b/rpcs/txService_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/rpcs/txSyncer.go b/rpcs/txSyncer.go index 2d2a993d9a..02fdcab3d4 100644 --- a/rpcs/txSyncer.go +++ b/rpcs/txSyncer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/rpcs/txSyncer_test.go b/rpcs/txSyncer_test.go index eb3e4eab60..ac3be12335 100644 --- a/rpcs/txSyncer_test.go +++ b/rpcs/txSyncer_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/shared/algoh/config.go b/shared/algoh/config.go index 12e815dfa1..3be17f6e43 100644 --- a/shared/algoh/config.go +++ b/shared/algoh/config.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/shared/pingpong/accounts.go b/shared/pingpong/accounts.go index 8ac9c44a87..703afa35a9 100644 --- a/shared/pingpong/accounts.go +++ b/shared/pingpong/accounts.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/shared/pingpong/accounts_test.go b/shared/pingpong/accounts_test.go index 2b2fa4cad2..511d478506 100644 --- a/shared/pingpong/accounts_test.go +++ b/shared/pingpong/accounts_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/shared/pingpong/config.go b/shared/pingpong/config.go index 5b4042dee9..d4a46c07a3 100644 --- a/shared/pingpong/config.go +++ b/shared/pingpong/config.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/shared/pingpong/pingpong.go b/shared/pingpong/pingpong.go index 412d59c54f..d241edfab3 100644 --- a/shared/pingpong/pingpong.go +++ b/shared/pingpong/pingpong.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/stateproof/abstractions.go b/stateproof/abstractions.go index 5832fed87a..24bec5de07 100644 --- a/stateproof/abstractions.go +++ b/stateproof/abstractions.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/stateproof/builder.go b/stateproof/builder.go index 3f2e61d695..ac77e0c81a 100644 --- a/stateproof/builder.go +++ b/stateproof/builder.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/stateproof/db.go b/stateproof/db.go index e89942280d..8b997643a6 100644 --- a/stateproof/db.go +++ b/stateproof/db.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/stateproof/db_test.go b/stateproof/db_test.go index d497b92405..ecf5750766 100644 --- a/stateproof/db_test.go +++ b/stateproof/db_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/stateproof/recovery.go b/stateproof/recovery.go index 3585e3ab1a..31afd00a10 100644 --- a/stateproof/recovery.go +++ b/stateproof/recovery.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/stateproof/signer.go b/stateproof/signer.go index 117839b352..b939061647 100644 --- a/stateproof/signer.go +++ b/stateproof/signer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/stateproof/stateproofMessageGenerator.go b/stateproof/stateproofMessageGenerator.go index cadca13c2d..7cc5cdf442 100644 --- a/stateproof/stateproofMessageGenerator.go +++ b/stateproof/stateproofMessageGenerator.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/stateproof/stateproofMessageGenerator_test.go b/stateproof/stateproofMessageGenerator_test.go index a9db6da2d5..54b9bfe4f3 100644 --- a/stateproof/stateproofMessageGenerator_test.go +++ b/stateproof/stateproofMessageGenerator_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/stateproof/verify/stateproof.go b/stateproof/verify/stateproof.go index 50ea86a840..b88cef0640 100644 --- a/stateproof/verify/stateproof.go +++ b/stateproof/verify/stateproof.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/stateproof/verify/stateproof_test.go b/stateproof/verify/stateproof_test.go index b82ef0b2bb..8654531b3e 100644 --- a/stateproof/verify/stateproof_test.go +++ b/stateproof/verify/stateproof_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/stateproof/worker.go b/stateproof/worker.go index 163ec214e0..2422d1e7f3 100644 --- a/stateproof/worker.go +++ b/stateproof/worker.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/stateproof/worker_test.go b/stateproof/worker_test.go index 8521cac93d..fbf4491405 100644 --- a/stateproof/worker_test.go +++ b/stateproof/worker_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/commandandcontrol/cc_agent/component/agent.go b/test/commandandcontrol/cc_agent/component/agent.go index 1a4e738b0d..66c7063fbe 100644 --- a/test/commandandcontrol/cc_agent/component/agent.go +++ b/test/commandandcontrol/cc_agent/component/agent.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/commandandcontrol/cc_agent/component/agent_test.go b/test/commandandcontrol/cc_agent/component/agent_test.go index b827241e5c..1a17488f00 100644 --- a/test/commandandcontrol/cc_agent/component/agent_test.go +++ b/test/commandandcontrol/cc_agent/component/agent_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/commandandcontrol/cc_agent/component/pingPongComponent.go b/test/commandandcontrol/cc_agent/component/pingPongComponent.go index 70e3980b61..9d82c8d9b9 100644 --- a/test/commandandcontrol/cc_agent/component/pingPongComponent.go +++ b/test/commandandcontrol/cc_agent/component/pingPongComponent.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/commandandcontrol/cc_agent/main.go b/test/commandandcontrol/cc_agent/main.go index db8e529434..4e66ec640a 100644 --- a/test/commandandcontrol/cc_agent/main.go +++ b/test/commandandcontrol/cc_agent/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/commandandcontrol/cc_client/main.go b/test/commandandcontrol/cc_client/main.go index 674b795210..a40beabaef 100644 --- a/test/commandandcontrol/cc_client/main.go +++ b/test/commandandcontrol/cc_client/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/commandandcontrol/cc_service/main.go b/test/commandandcontrol/cc_service/main.go index b0d58f721d..54e84fdf27 100644 --- a/test/commandandcontrol/cc_service/main.go +++ b/test/commandandcontrol/cc_service/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/commandandcontrol/lib/ccCommon.go b/test/commandandcontrol/lib/ccCommon.go index a733aefc53..3bd9dc779d 100644 --- a/test/commandandcontrol/lib/ccCommon.go +++ b/test/commandandcontrol/lib/ccCommon.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/algod/cleanup_test.go b/test/e2e-go/cli/algod/cleanup_test.go index 20ec8aeb77..e310dc9d81 100644 --- a/test/e2e-go/cli/algod/cleanup_test.go +++ b/test/e2e-go/cli/algod/cleanup_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/algod/expect/algod_expect_test.go b/test/e2e-go/cli/algod/expect/algod_expect_test.go index 482d6ddecd..106b087319 100644 --- a/test/e2e-go/cli/algod/expect/algod_expect_test.go +++ b/test/e2e-go/cli/algod/expect/algod_expect_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/algod/stdstreams_test.go b/test/e2e-go/cli/algod/stdstreams_test.go index 3d1e7e189a..2573226939 100644 --- a/test/e2e-go/cli/algod/stdstreams_test.go +++ b/test/e2e-go/cli/algod/stdstreams_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/algoh/expect/algoh_expect_test.go b/test/e2e-go/cli/algoh/expect/algoh_expect_test.go index 873708b66f..f3ea11e2fa 100644 --- a/test/e2e-go/cli/algoh/expect/algoh_expect_test.go +++ b/test/e2e-go/cli/algoh/expect/algoh_expect_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/goal/account_test.go b/test/e2e-go/cli/goal/account_test.go index f26cf7e11e..6d27f45bd5 100644 --- a/test/e2e-go/cli/goal/account_test.go +++ b/test/e2e-go/cli/goal/account_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/goal/clerk_test.go b/test/e2e-go/cli/goal/clerk_test.go index 05c1495d37..cf83ec47b1 100644 --- a/test/e2e-go/cli/goal/clerk_test.go +++ b/test/e2e-go/cli/goal/clerk_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/goal/common_test.go b/test/e2e-go/cli/goal/common_test.go index a6d86944be..ba6f912664 100644 --- a/test/e2e-go/cli/goal/common_test.go +++ b/test/e2e-go/cli/goal/common_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/goal/expect/catchpointCatchupWebProxy/webproxy.go b/test/e2e-go/cli/goal/expect/catchpointCatchupWebProxy/webproxy.go index 6b3a2282fb..83621566a0 100644 --- a/test/e2e-go/cli/goal/expect/catchpointCatchupWebProxy/webproxy.go +++ b/test/e2e-go/cli/goal/expect/catchpointCatchupWebProxy/webproxy.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/goal/expect/goal_expect_test.go b/test/e2e-go/cli/goal/expect/goal_expect_test.go index f6d1be4624..a61f503f58 100644 --- a/test/e2e-go/cli/goal/expect/goal_expect_test.go +++ b/test/e2e-go/cli/goal/expect/goal_expect_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/goal/node_cleanup_test.go b/test/e2e-go/cli/goal/node_cleanup_test.go index a472d575c4..de2facf6f6 100644 --- a/test/e2e-go/cli/goal/node_cleanup_test.go +++ b/test/e2e-go/cli/goal/node_cleanup_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/perf/libgoal_test.go b/test/e2e-go/cli/perf/libgoal_test.go index 6843189e09..5a23699eb0 100644 --- a/test/e2e-go/cli/perf/libgoal_test.go +++ b/test/e2e-go/cli/perf/libgoal_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/perf/payment_test.go b/test/e2e-go/cli/perf/payment_test.go index 8c875e0d54..98bec2c741 100644 --- a/test/e2e-go/cli/perf/payment_test.go +++ b/test/e2e-go/cli/perf/payment_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/tealdbg/cdtmock/main.go b/test/e2e-go/cli/tealdbg/cdtmock/main.go index 4aee6e4b1a..f2c109a843 100644 --- a/test/e2e-go/cli/tealdbg/cdtmock/main.go +++ b/test/e2e-go/cli/tealdbg/cdtmock/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/cli/tealdbg/expect/tealdbg_expect_test.go b/test/e2e-go/cli/tealdbg/expect/tealdbg_expect_test.go index 9ebfdec6fd..c5da6ec89f 100644 --- a/test/e2e-go/cli/tealdbg/expect/tealdbg_expect_test.go +++ b/test/e2e-go/cli/tealdbg/expect/tealdbg_expect_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/accountPerf/sixMillion_test.go b/test/e2e-go/features/accountPerf/sixMillion_test.go index 94feb3e9eb..592f245948 100644 --- a/test/e2e-go/features/accountPerf/sixMillion_test.go +++ b/test/e2e-go/features/accountPerf/sixMillion_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/catchup/basicCatchup_test.go b/test/e2e-go/features/catchup/basicCatchup_test.go index adc8c43f18..1944f8cfad 100644 --- a/test/e2e-go/features/catchup/basicCatchup_test.go +++ b/test/e2e-go/features/catchup/basicCatchup_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/catchup/catchpointCatchup_test.go b/test/e2e-go/features/catchup/catchpointCatchup_test.go index ec6171cbfd..661a0f2f4f 100644 --- a/test/e2e-go/features/catchup/catchpointCatchup_test.go +++ b/test/e2e-go/features/catchup/catchpointCatchup_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/catchup/stateproofsCatchup_test.go b/test/e2e-go/features/catchup/stateproofsCatchup_test.go index 5e5e34a067..7db6fc1b02 100644 --- a/test/e2e-go/features/catchup/stateproofsCatchup_test.go +++ b/test/e2e-go/features/catchup/stateproofsCatchup_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/devmode/devmode_test.go b/test/e2e-go/features/devmode/devmode_test.go index bfb6a889ab..d751cbc7e5 100644 --- a/test/e2e-go/features/devmode/devmode_test.go +++ b/test/e2e-go/features/devmode/devmode_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/followernode/syncDeltas_test.go b/test/e2e-go/features/followernode/syncDeltas_test.go index d1458b7451..5bb4ff2991 100644 --- a/test/e2e-go/features/followernode/syncDeltas_test.go +++ b/test/e2e-go/features/followernode/syncDeltas_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/followernode/syncRestart_test.go b/test/e2e-go/features/followernode/syncRestart_test.go index 1aa5b2560d..eaf9c3f59e 100644 --- a/test/e2e-go/features/followernode/syncRestart_test.go +++ b/test/e2e-go/features/followernode/syncRestart_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/incentives/challenge_test.go b/test/e2e-go/features/incentives/challenge_test.go index 661bc7b40c..c0ee38d37f 100644 --- a/test/e2e-go/features/incentives/challenge_test.go +++ b/test/e2e-go/features/incentives/challenge_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -17,7 +17,6 @@ package suspension import ( - "fmt" "path/filepath" "testing" "time" @@ -47,10 +46,17 @@ func eligible(address string) bool { func TestChallenges(t *testing.T) { partitiontest.PartitionTest(t) defer fixtures.ShutdownSynchronizedTest(t) - - t.Parallel() a := require.New(fixtures.SynchronizedTest(t)) + retry := true + for retry { + retry = testChallengesOnce(t, a) + } +} + +// testChallengesOnce is the core of TestChallenges, but is allowed to bail out +// if the random accounts aren't suitable. TestChallenges will try again. +func testChallengesOnce(t *testing.T, a *require.Assertions) (retry bool) { // Overview of this test: // Use a consensus protocol with challenge interval=50, grace period=10, bits=2. // Start a three-node network. One relay, two nodes with 4 accounts each @@ -79,7 +85,7 @@ func TestChallenges(t *testing.T) { accounts, err := fixture.GetNodeWalletsSortedByBalance(c) a.NoError(err) a.Len(accounts, 8) - fmt.Printf("Client %s has %v\n", name, accounts) + t.Logf("Client %s has %v\n", name, accounts) return c, accounts } @@ -91,11 +97,11 @@ func TestChallenges(t *testing.T) { // eligible accounts1 will get challenged with node offline, and suspended for _, account := range accounts1 { - rekeyreg(&fixture, a, c1, account.Address, eligible(account.Address)) + rekeyreg(a, c1, account.Address, eligible(account.Address)) } // eligible accounts2 will get challenged, but node2 will heartbeat for them for _, account := range accounts2 { - rekeyreg(&fixture, a, c2, account.Address, eligible(account.Address)) + rekeyreg(a, c2, account.Address, eligible(account.Address)) } // turn off node 1, so it can't heartbeat @@ -114,6 +120,7 @@ func TestChallenges(t *testing.T) { // 100 = 40 + 32 + (50-22) = 72 + 28 lastPossible := current + lookback challengeRound := lastPossible + (interval - lastPossible%interval) + t.Logf("current %d lastPossible %d challengeRound %d", current, lastPossible, challengeRound) // Advance to challenge round, check the blockseed err = fixture.WaitForRoundWithTimeout(challengeRound) @@ -130,14 +137,16 @@ func TestChallenges(t *testing.T) { address, err := basics.UnmarshalChecksumAddress(account.Address) a.NoError(err) if address[0]&mask == challenge { - fmt.Printf("%v of node 1 was challenged %v by %v\n", address, address[0], challenge) + t.Logf("%v of node 1 was challenged %v by %v\n", address, address[0], challenge) match1.Add(address) if eligible(address.String()) { eligible1.Add(address) } } } - require.NotEmpty(t, match1, "rerun the test") // TODO: remove. + if match1.Empty() { + return true + } match2 := util.MakeSet[basics.Address]() eligible2 := util.MakeSet[basics.Address]() // matched AND eligible @@ -145,14 +154,16 @@ func TestChallenges(t *testing.T) { address, err := basics.UnmarshalChecksumAddress(account.Address) a.NoError(err) if address[0]&mask == challenge { - fmt.Printf("%v of node 2 was challenged %v by %v\n", address, address[0], challenge) + t.Logf("%v of node 2 was challenged %v by %v\n", address, address[0], challenge) match2.Add(address) if eligible(address.String()) { eligible2.Add(address) } } } - require.NotEmpty(t, match2, "rerun the test") // TODO: remove. + if match2.Empty() { + return true + } allMatches := util.Union(match1, match2) @@ -176,18 +187,19 @@ func TestChallenges(t *testing.T) { // In the second half of the grace period, Node 2 should heartbeat for its eligible accounts beated := util.MakeSet[basics.Address]() - fixture.WithEveryBlock(challengeRound+grace/2, challengeRound+grace, func(block bookkeeping.Block) { + fixture.WithEveryBlock(challengeRound+grace/2+1, challengeRound+grace, func(block bookkeeping.Block) { + t.Logf("2nd half Block %d\n", block.Round()) if eligible2.Contains(block.Proposer()) { lucky.Add(block.Proposer()) } for i, txn := range block.Payset { hb := txn.Txn.HeartbeatTxnFields - fmt.Printf("Heartbeat txn %v in position %d round %d\n", hb, i, block.Round()) - a.True(match2.Contains(hb.HbAddress)) // only Node 2 is alive - a.True(eligible2.Contains(hb.HbAddress)) // only eligible accounts get heartbeat - a.False(beated.Contains(hb.HbAddress)) // beat only once + t.Logf("Heartbeat txn %v in position %d round %d\n", hb, i, block.Round()) + a.Contains(match2, hb.HbAddress, hb.HbAddress) // only Node 2 is alive + a.Contains(eligible2, hb.HbAddress, hb.HbAddress) // only eligible accounts get heartbeat + a.NotContains(beated, hb.HbAddress, "rebeat %s", hb.HbAddress) // beat only once beated.Add(hb.HbAddress) - a.False(lucky.Contains(hb.HbAddress)) // we should not see a heartbeat from an account that proposed + a.NotContains(lucky, hb.HbAddress, "unneeded %s", hb.HbAddress) // we should not see a heartbeat from an account that proposed } a.Empty(block.AbsentParticipationAccounts) // nobody suspended during grace }) @@ -202,7 +214,8 @@ func TestChallenges(t *testing.T) { data, err := c2.AccountData(address.String()) a.NoError(err) if eligible1.Contains(address) { - a.Equal(basics.Offline, data.Status, address) + a.Equal(basics.Offline, data.Status, "%v was not offline in round %d. (%d and %d)", + address, challengeRound+grace+1, data.LastHeartbeat, data.LastProposed) } else { a.Equal(basics.Online, data.Status, address) // not eligible, so not suspended } @@ -219,4 +232,5 @@ func TestChallenges(t *testing.T) { a.Equal(data.IncentiveEligible, eligible(address.String())) } + return false // no need to retry } diff --git a/test/e2e-go/features/incentives/payouts_test.go b/test/e2e-go/features/incentives/payouts_test.go index bf8b2e20e2..8f3dde1297 100644 --- a/test/e2e-go/features/incentives/payouts_test.go +++ b/test/e2e-go/features/incentives/payouts_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -49,7 +49,7 @@ func TestBasicPayouts(t *testing.T) { // Make the seed lookback shorter, otherwise we need to wait 320 rounds to become IncentiveEligible. const lookback = 32 fixture.FasterConsensus(protocol.ConsensusFuture, time.Second, lookback) - fmt.Printf("lookback is %d\n", lookback) + t.Logf("lookback is %d\n", lookback) fixture.Setup(t, filepath.Join("nettemplates", "Payouts.json")) defer fixture.Shutdown() @@ -57,13 +57,14 @@ func TestBasicPayouts(t *testing.T) { // rereg to become eligible (must pay extra fee) // show payouts are paid (from fees and bonuses) // deplete feesink to ensure it's graceful - + addressToNode := make(map[string]string) clientAndAccount := func(name string) (libgoal.Client, model.Account) { c := fixture.GetLibGoalClientForNamedNode(name) accounts, err := fixture.GetNodeWalletsSortedByBalance(c) a.NoError(err) a.Len(accounts, 1) - fmt.Printf("Client %s is %v\n", name, accounts[0].Address) + t.Logf("Client %s is %v\n", name, accounts[0].Address) + addressToNode[accounts[0].Address] = name return c, accounts[0] } @@ -71,8 +72,17 @@ func TestBasicPayouts(t *testing.T) { c01, account01 := clientAndAccount("Node01") relay, _ := clientAndAccount("Relay") - data01 := rekeyreg(&fixture, a, c01, account01.Address, true) - data15 := rekeyreg(&fixture, a, c15, account15.Address, true) + data01 := rekeyreg(a, c01, account01.Address, true) + data15 := rekeyreg(a, c15, account15.Address, true) + + // Wait a few rounds after rekeyreg, this means that `lookback` rounds after + // those rekeyregs, the nodes will be IncentiveEligible, but both will have + // too much stake to earn rewards. Then we'll burn from account01, so + // lookback rounds after _that_ account01 will start earning. + client := fixture.LibGoalClient + status, err := client.Status() + a.NoError(err) + fixture.WaitForRoundWithTimeout(status.LastRound + 10) // have account01 burn some money to get below the eligibility cap // Starts with 100M, so burn 60M and get under 70M cap. @@ -81,24 +91,26 @@ func TestBasicPayouts(t *testing.T) { a.NoError(err) burn, err := fixture.WaitForConfirmedTxn(uint64(txn.LastValid), txn.ID().String()) a.NoError(err) + burnRound := *burn.ConfirmedRound + t.Logf("burn round is %d", burnRound) // sync up with the network - _, err = c01.WaitForRound(*burn.ConfirmedRound) + _, err = c01.WaitForRound(burnRound) a.NoError(err) data01, err = c01.AccountData(account01.Address) a.NoError(err) - // Go 31 rounds after the burn happened. During this time, incentive - // eligibility is not in effect yet, so regardless of who proposes, they - // won't earn anything. - client := fixture.LibGoalClient - status, err := client.Status() + // Start advancing. IncentiveEligibile will come into effect 32 rounds after + // the rekeregs but earning will only happen 32 rounds after burnRound, and + // only for account01 (the one that burned to get under the cap). + status, err = client.Status() a.NoError(err) - for status.LastRound < *burn.ConfirmedRound+lookback-1 { + account1earned := false + for !account1earned { block, err := client.BookkeepingBlock(status.LastRound) a.NoError(err) - fmt.Printf("block %d proposed by %v\n", status.LastRound, block.Proposer()) - a.Zero(block.ProposerPayout()) // nobody is eligible yet (hasn't worked back to balance round) + t.Logf("block %d proposed by %s %v\n", + status.LastRound, addressToNode[block.Proposer().String()], block.Proposer()) a.EqualValues(bonus1, block.Bonus.Raw) // all nodes agree the proposer proposed. The paranoia here is @@ -109,7 +121,7 @@ func TestBasicPayouts(t *testing.T) { // optimization, and it would cause failures here. Interface changes // made since they should make such a problem impossible, but... for i, c := range []libgoal.Client{c15, c01, relay} { - fmt.Printf("checking block %v\n", block.Round()) + t.Logf("checking block %v\n", block.Round()) bb, err := getblock(c, status.LastRound) a.NoError(err) a.Equal(block.Proposer(), bb.Proposer()) @@ -125,12 +137,26 @@ func TestBasicPayouts(t *testing.T) { next, err := client.AccountData(block.Proposer().String()) a.NoError(err) a.LessOrEqual(int(status.LastRound), int(next.LastProposed)) - // regardless of proposer, nobody gets paid switch block.Proposer().String() { case account01.Address: - a.Equal(data01.MicroAlgos, next.MicroAlgos) + if uint64(block.Round()) < burnRound+lookback { + // until the burn is lookback rounds old, account01 can't earn + a.Zero(block.ProposerPayout()) + a.Equal(data01.MicroAlgos, next.MicroAlgos) + } else { + a.EqualValues(bonus1, block.ProposerPayout().Raw) + // We'd like to do test if account one got paid the bonus: + // a.EqualValues(data01.MicroAlgos.Raw+bonus1, next.MicroAlgos.Raw) + + // But we can't because it might have already proposed again. So + // let's check if it has received one OR two bonuses. + earned := int(next.MicroAlgos.Raw - data01.MicroAlgos.Raw) + a.True(earned == bonus1 || earned == 2*bonus1, "earned %d", earned) + account1earned = true + } data01 = next case account15.Address: + a.Zero(block.ProposerPayout()) a.Equal(data15.MicroAlgos, next.MicroAlgos) data15 = next default: @@ -141,54 +167,6 @@ func TestBasicPayouts(t *testing.T) { a.NoError(err) } - // all nodes are in sync - for _, c := range []libgoal.Client{c15, c01, relay} { - _, err := c.WaitForRound(status.LastRound) - a.NoError(err) - } - - // Wait until each have proposed, so we can see that 01 gets paid and 15 does not (too much balance) - proposed01 := false - proposed15 := false - for i := 0; !proposed01 || !proposed15; i++ { - status, err := client.Status() - a.NoError(err) - block, err := client.BookkeepingBlock(status.LastRound) - a.NoError(err) - a.EqualValues(bonus1, block.Bonus.Raw) - - next, err := client.AccountData(block.Proposer().String()) - a.NoError(err) - fmt.Printf(" proposer %v has %d after proposing round %d\n", block.Proposer(), next.MicroAlgos.Raw, status.LastRound) - - // all nodes agree the proposer proposed - for i, c := range []libgoal.Client{c15, c01, relay} { - _, err := c.WaitForRound(status.LastRound) - a.NoError(err) - data, err := c.AccountData(block.Proposer().String()) - a.NoError(err) - // <= in case one node is behind, and the others have already advanced - a.LessOrEqual(block.Round(), data.LastProposed, i) - } - - // 01 would get paid (because under balance cap) 15 would not - switch block.Proposer().String() { - case account01.Address: - a.EqualValues(bonus1, block.ProposerPayout().Raw) - a.EqualValues(data01.MicroAlgos.Raw+bonus1, next.MicroAlgos.Raw) // 01 earns - proposed01 = true - data01 = next - case account15.Address: - a.Zero(block.ProposerPayout()) - a.Equal(data15.MicroAlgos, next.MicroAlgos) // didn't earn - data15 = next - proposed15 = true - default: - a.Fail("bad proposer", "%v proposed", block.Proposer) - } - fixture.WaitForRoundWithTimeout(status.LastRound + 1) - } - // Now that we've proven incentives get paid, let's drain the FeeSink and // ensure it happens gracefully. Have account15 go offline so that (after // 32 rounds) only account01 (who is eligible) is proposing, so drainage @@ -203,7 +181,8 @@ func TestBasicPayouts(t *testing.T) { offTxn, err := fixture.WaitForConfirmedTxn(uint64(offline.LastValid), offlineTxID) a.NoError(err) - fmt.Printf(" c15 (%s) will be truly offline (not proposing) after round %d\n", account15.Address, *offTxn.ConfirmedRound+lookback) + t.Logf(" c15 (%s) will be truly offline (not proposing) after round %d\n", + account15.Address, *offTxn.ConfirmedRound+lookback) var feesink basics.Address for i := 0; i < 100; i++ { @@ -317,7 +296,7 @@ func getblock(client libgoal.Client, round uint64) (bookkeeping.Block, error) { return client.BookkeepingBlock(round) } -func rekeyreg(f *fixtures.RestClientFixture, a *require.Assertions, client libgoal.Client, address string, becomeEligible bool) basics.AccountData { +func rekeyreg(a *require.Assertions, client libgoal.Client, address string, becomeEligible bool) basics.AccountData { // we start by making an _offline_ tx here, because we want to populate the // key material ourself with a copy of the account's existing material. That // makes it an _online_ keyreg. That allows the running node to chug along @@ -350,7 +329,7 @@ func rekeyreg(f *fixtures.RestClientFixture, a *require.Assertions, client libgo a.NoError(err) onlineTxID, err := client.SignAndBroadcastTransaction(wh, nil, reReg) a.NoError(err) - txn, err := f.WaitForConfirmedTxn(uint64(reReg.LastValid), onlineTxID) + txn, err := client.WaitForConfirmedTxn(uint64(reReg.LastValid), onlineTxID) a.NoError(err) // sync up with the network _, err = client.WaitForRound(*txn.ConfirmedRound) diff --git a/test/e2e-go/features/incentives/suspension_test.go b/test/e2e-go/features/incentives/suspension_test.go index 4a3709d96e..edc32fe881 100644 --- a/test/e2e-go/features/incentives/suspension_test.go +++ b/test/e2e-go/features/incentives/suspension_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -70,8 +70,8 @@ func TestBasicSuspension(t *testing.T) { c10, account10 := clientAndAccount("Node10") c20, account20 := clientAndAccount("Node20") - rekeyreg(&fixture, a, c10, account10.Address, true) - rekeyreg(&fixture, a, c20, account20.Address, true) + rekeyreg(a, c10, account10.Address, true) + rekeyreg(a, c20, account20.Address, true) // Accounts are now suspendable whether they have proposed yet or not // because keyreg sets LastHeartbeat. Stop c20 which means account20 will be diff --git a/test/e2e-go/features/incentives/whalejoin_test.go b/test/e2e-go/features/incentives/whalejoin_test.go index 90a67450e2..4c0f200942 100644 --- a/test/e2e-go/features/incentives/whalejoin_test.go +++ b/test/e2e-go/features/incentives/whalejoin_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -17,7 +17,6 @@ package suspension import ( - "fmt" "path/filepath" "testing" "time" @@ -65,7 +64,7 @@ func TestWhaleJoin(t *testing.T) { accounts, err := fixture.GetNodeWalletsSortedByBalance(c) a.NoError(err) a.Len(accounts, 1) - fmt.Printf("Client %s is %v\n", name, accounts[0].Address) + t.Logf("Client %s is %v\n", name, accounts[0].Address) return c, accounts[0] } @@ -73,7 +72,7 @@ func TestWhaleJoin(t *testing.T) { c01, account01 := clientAndAccount("Node01") // 1. take wallet15 offline - keys := offline(&fixture, a, c15, account15.Address) + keys := offline(a, c15, account15.Address) // 2. c01 starts with 100M, so burn 99.9M to get total online stake down burn, err := c01.SendPaymentFromUnencryptedWallet(account01.Address, basics.Address{}.String(), @@ -87,7 +86,7 @@ func TestWhaleJoin(t *testing.T) { a.NoError(err) // 4. rejoin, with 1.5B against the paltry 100k that's currently online - online(&fixture, a, c15, account15.Address, keys) + online(a, c15, account15.Address, keys) // 5. wait for agreement balances to kick in (another lookback's worth, plus some slack) _, err = c01.WaitForRound(*receipt.ConfirmedRound + 2*lookback + 5) @@ -139,20 +138,20 @@ func TestBigJoin(t *testing.T) { accounts, err := fixture.GetNodeWalletsSortedByBalance(c) a.NoError(err) a.Len(accounts, 1) - fmt.Printf("Client %s is %v\n", name, accounts[0].Address) + t.Logf("Client %s is %v\n", name, accounts[0].Address) return c, accounts[0] } c01, account01 := clientAndAccount("Node01") // 1. take wallet01 offline - keys := offline(&fixture, a, c01, account01.Address) + keys := offline(a, c01, account01.Address) // 2. Wait lookback rounds wait(&fixture, a, lookback) // 4. rejoin, with 1/16 of total stake - onRound := online(&fixture, a, c01, account01.Address, keys) + onRound := online(a, c01, account01.Address, keys) // 5. wait for enough rounds to pass, during which c01 can't vote, that is // could get knocked off. @@ -162,7 +161,7 @@ func TestBigJoin(t *testing.T) { a.Equal(basics.Online, data.Status) // 5a. just to be sure, do a zero pay to get it "noticed" - zeroPay(&fixture, a, c01, account01.Address) + zeroPay(a, c01, account01.Address) data, err = c01.AccountData(account01.Address) a.NoError(err) a.Equal(basics.Online, data.Status) @@ -175,7 +174,7 @@ func TestBigJoin(t *testing.T) { a.NoError(err) a.Equal(basics.Online, data.Status) - zeroPay(&fixture, a, c01, account01.Address) + zeroPay(a, c01, account01.Address) data, err = c01.AccountData(account01.Address) a.NoError(err) a.Equal(basics.Online, data.Status) @@ -215,7 +214,7 @@ func TestBigIncrease(t *testing.T) { accounts, err := fixture.GetNodeWalletsSortedByBalance(c) a.NoError(err) a.Len(accounts, 1) - fmt.Printf("Client %s is %v\n", name, accounts[0].Address) + t.Logf("Client %s is %v\n", name, accounts[0].Address) return c, accounts[0] } @@ -226,14 +225,14 @@ func TestBigIncrease(t *testing.T) { // certainly will not have proposed by pure luck just before the critical // round. If we don't do that, 1/16 of stake is enough that it will probably // have a fairly recent proposal, and not get knocked off. - pay(&fixture, a, c1, account01.Address, account15.Address, 99*account01.Amount/100) + pay(a, c1, account01.Address, account15.Address, 99*account01.Amount/100) - rekeyreg(&fixture, a, c1, account01.Address, true) + rekeyreg(a, c1, account01.Address, true) // 2. Wait lookback rounds wait(&fixture, a, lookback) - tx := pay(&fixture, a, c15, account15.Address, account01.Address, 50*account15.Amount/100) + tx := pay(a, c15, account15.Address, account01.Address, 50*account15.Amount/100) data, err := c15.AccountData(account01.Address) a.NoError(err) a.EqualValues(*tx.ConfirmedRound+lookback, data.LastHeartbeat) @@ -252,22 +251,21 @@ func wait(f *fixtures.RestClientFixture, a *require.Assertions, count uint64) { a.NoError(f.WaitForRoundWithTimeout(round)) } -func pay(f *fixtures.RestClientFixture, a *require.Assertions, - c libgoal.Client, from string, to string, amount uint64) v2.PreEncodedTxInfo { +func pay(a *require.Assertions, c libgoal.Client, + from string, to string, amount uint64) v2.PreEncodedTxInfo { pay, err := c.SendPaymentFromUnencryptedWallet(from, to, 1000, amount, nil) a.NoError(err) - tx, err := f.WaitForConfirmedTxn(uint64(pay.LastValid), pay.ID().String()) + tx, err := c.WaitForConfirmedTxn(uint64(pay.LastValid), pay.ID().String()) a.NoError(err) return tx } -func zeroPay(f *fixtures.RestClientFixture, a *require.Assertions, - c libgoal.Client, address string) { - pay(f, a, c, address, address, 0) +func zeroPay(a *require.Assertions, c libgoal.Client, address string) { + pay(a, c, address, address, 0) } // Go offline, but return the key material so it's easy to go back online -func offline(f *fixtures.RestClientFixture, a *require.Assertions, client libgoal.Client, address string) transactions.KeyregTxnFields { +func offline(a *require.Assertions, client libgoal.Client, address string) transactions.KeyregTxnFields { offTx, err := client.MakeUnsignedGoOfflineTx(address, 0, 0, 100_000, [32]byte{}) a.NoError(err) @@ -286,7 +284,7 @@ func offline(f *fixtures.RestClientFixture, a *require.Assertions, client libgoa a.NoError(err) onlineTxID, err := client.SignAndBroadcastTransaction(wh, nil, offTx) a.NoError(err) - txn, err := f.WaitForConfirmedTxn(uint64(offTx.LastValid), onlineTxID) + txn, err := client.WaitForConfirmedTxn(uint64(offTx.LastValid), onlineTxID) a.NoError(err) // sync up with the network _, err = client.WaitForRound(*txn.ConfirmedRound) @@ -298,7 +296,7 @@ func offline(f *fixtures.RestClientFixture, a *require.Assertions, client libgoa } // Go online with the supplied key material -func online(f *fixtures.RestClientFixture, a *require.Assertions, client libgoal.Client, address string, keys transactions.KeyregTxnFields) uint64 { +func online(a *require.Assertions, client libgoal.Client, address string, keys transactions.KeyregTxnFields) uint64 { // sanity check that we start offline data, err := client.AccountData(address) a.NoError(err) @@ -313,7 +311,7 @@ func online(f *fixtures.RestClientFixture, a *require.Assertions, client libgoal a.NoError(err) onlineTxID, err := client.SignAndBroadcastTransaction(wh, nil, onTx) a.NoError(err) - receipt, err := f.WaitForConfirmedTxn(uint64(onTx.LastValid), onlineTxID) + receipt, err := client.WaitForConfirmedTxn(uint64(onTx.LastValid), onlineTxID) a.NoError(err) data, err = client.AccountData(address) a.NoError(err) diff --git a/test/e2e-go/features/multisig/multisig_test.go b/test/e2e-go/features/multisig/multisig_test.go index 6264b70161..4e4e83c45a 100644 --- a/test/e2e-go/features/multisig/multisig_test.go +++ b/test/e2e-go/features/multisig/multisig_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/p2p/p2p_basic_test.go b/test/e2e-go/features/p2p/p2p_basic_test.go index 5ee2f034ae..605a136e7a 100644 --- a/test/e2e-go/features/p2p/p2p_basic_test.go +++ b/test/e2e-go/features/p2p/p2p_basic_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/participation/accountParticipationTransitions_test.go b/test/e2e-go/features/participation/accountParticipationTransitions_test.go index 1e5339f13c..fe99b6077a 100644 --- a/test/e2e-go/features/participation/accountParticipationTransitions_test.go +++ b/test/e2e-go/features/participation/accountParticipationTransitions_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/participation/deletePartKeys_test.go b/test/e2e-go/features/participation/deletePartKeys_test.go index aba68a0ce4..951e80510f 100644 --- a/test/e2e-go/features/participation/deletePartKeys_test.go +++ b/test/e2e-go/features/participation/deletePartKeys_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/participation/onlineOfflineParticipation_test.go b/test/e2e-go/features/participation/onlineOfflineParticipation_test.go index 21a701139a..7bd3a1fd3f 100644 --- a/test/e2e-go/features/participation/onlineOfflineParticipation_test.go +++ b/test/e2e-go/features/participation/onlineOfflineParticipation_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/participation/overlappingParticipationKeys_test.go b/test/e2e-go/features/participation/overlappingParticipationKeys_test.go index 60f3471b7a..122a5a3858 100644 --- a/test/e2e-go/features/participation/overlappingParticipationKeys_test.go +++ b/test/e2e-go/features/participation/overlappingParticipationKeys_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/participation/participationExpiration_test.go b/test/e2e-go/features/participation/participationExpiration_test.go index e0569cf040..ab1e24b8cd 100644 --- a/test/e2e-go/features/participation/participationExpiration_test.go +++ b/test/e2e-go/features/participation/participationExpiration_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/participation/participationRewards_test.go b/test/e2e-go/features/participation/participationRewards_test.go index 043f58f3c7..c95553bb8f 100644 --- a/test/e2e-go/features/participation/participationRewards_test.go +++ b/test/e2e-go/features/participation/participationRewards_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/partitionRecovery/partitionRecovery_test.go b/test/e2e-go/features/partitionRecovery/partitionRecovery_test.go index e3429490c4..1d398de3bc 100644 --- a/test/e2e-go/features/partitionRecovery/partitionRecovery_test.go +++ b/test/e2e-go/features/partitionRecovery/partitionRecovery_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/privatenet/privatenet_test.go b/test/e2e-go/features/privatenet/privatenet_test.go index 34c4119cc1..36232faf98 100644 --- a/test/e2e-go/features/privatenet/privatenet_test.go +++ b/test/e2e-go/features/privatenet/privatenet_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/stateproofs/stateproofs_test.go b/test/e2e-go/features/stateproofs/stateproofs_test.go index 4735ca840f..8c58412c96 100644 --- a/test/e2e-go/features/stateproofs/stateproofs_test.go +++ b/test/e2e-go/features/stateproofs/stateproofs_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/teal/compile_test.go b/test/e2e-go/features/teal/compile_test.go index 31a3c078e5..7cd71d191d 100644 --- a/test/e2e-go/features/teal/compile_test.go +++ b/test/e2e-go/features/teal/compile_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/transactions/accountv2_test.go b/test/e2e-go/features/transactions/accountv2_test.go index 97eb1b4bd8..bc916f660f 100644 --- a/test/e2e-go/features/transactions/accountv2_test.go +++ b/test/e2e-go/features/transactions/accountv2_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/transactions/app_pages_test.go b/test/e2e-go/features/transactions/app_pages_test.go index 5058fb59b8..c2d827649f 100644 --- a/test/e2e-go/features/transactions/app_pages_test.go +++ b/test/e2e-go/features/transactions/app_pages_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/transactions/application_test.go b/test/e2e-go/features/transactions/application_test.go index bbe5abf2d4..ddf2a66e1e 100644 --- a/test/e2e-go/features/transactions/application_test.go +++ b/test/e2e-go/features/transactions/application_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/transactions/asset_test.go b/test/e2e-go/features/transactions/asset_test.go index 11baa9b7e4..b83860bdd1 100644 --- a/test/e2e-go/features/transactions/asset_test.go +++ b/test/e2e-go/features/transactions/asset_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/transactions/close_account_test.go b/test/e2e-go/features/transactions/close_account_test.go index c15a39288d..c0eca4f487 100644 --- a/test/e2e-go/features/transactions/close_account_test.go +++ b/test/e2e-go/features/transactions/close_account_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/transactions/group_test.go b/test/e2e-go/features/transactions/group_test.go index 117689f266..0e580fda39 100644 --- a/test/e2e-go/features/transactions/group_test.go +++ b/test/e2e-go/features/transactions/group_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/transactions/lease_test.go b/test/e2e-go/features/transactions/lease_test.go index 47328369eb..6e5b68e0c8 100644 --- a/test/e2e-go/features/transactions/lease_test.go +++ b/test/e2e-go/features/transactions/lease_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/transactions/logicsig_test.go b/test/e2e-go/features/transactions/logicsig_test.go index 8958b5561f..2000a6f6a6 100644 --- a/test/e2e-go/features/transactions/logicsig_test.go +++ b/test/e2e-go/features/transactions/logicsig_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/transactions/onlineStatusChange_test.go b/test/e2e-go/features/transactions/onlineStatusChange_test.go index 04a5144f25..5a9d1c213a 100644 --- a/test/e2e-go/features/transactions/onlineStatusChange_test.go +++ b/test/e2e-go/features/transactions/onlineStatusChange_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/transactions/proof_test.go b/test/e2e-go/features/transactions/proof_test.go index 4f6226f139..e51693514b 100644 --- a/test/e2e-go/features/transactions/proof_test.go +++ b/test/e2e-go/features/transactions/proof_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/features/transactions/sendReceive_test.go b/test/e2e-go/features/transactions/sendReceive_test.go index 22dc94173a..316f0cf224 100644 --- a/test/e2e-go/features/transactions/sendReceive_test.go +++ b/test/e2e-go/features/transactions/sendReceive_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/globals/constants.go b/test/e2e-go/globals/constants.go index fd43a105dc..48ab3624d5 100644 --- a/test/e2e-go/globals/constants.go +++ b/test/e2e-go/globals/constants.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/kmd/e2e_kmd_server_client_test.go b/test/e2e-go/kmd/e2e_kmd_server_client_test.go index 601b3b5acd..7fcc8ec1f0 100644 --- a/test/e2e-go/kmd/e2e_kmd_server_client_test.go +++ b/test/e2e-go/kmd/e2e_kmd_server_client_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/kmd/e2e_kmd_sqlite_test.go b/test/e2e-go/kmd/e2e_kmd_sqlite_test.go index 441ab20323..00d4127c4c 100644 --- a/test/e2e-go/kmd/e2e_kmd_sqlite_test.go +++ b/test/e2e-go/kmd/e2e_kmd_sqlite_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/kmd/e2e_kmd_wallet_keyops_test.go b/test/e2e-go/kmd/e2e_kmd_wallet_keyops_test.go index 3555b49ceb..142aad39aa 100644 --- a/test/e2e-go/kmd/e2e_kmd_wallet_keyops_test.go +++ b/test/e2e-go/kmd/e2e_kmd_wallet_keyops_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/kmd/e2e_kmd_wallet_multisig_test.go b/test/e2e-go/kmd/e2e_kmd_wallet_multisig_test.go index d4367bbdc3..d68668eee9 100644 --- a/test/e2e-go/kmd/e2e_kmd_wallet_multisig_test.go +++ b/test/e2e-go/kmd/e2e_kmd_wallet_multisig_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/kmd/e2e_kmd_wallet_test.go b/test/e2e-go/kmd/e2e_kmd_wallet_test.go index f3e5b87a2e..5105e0caae 100644 --- a/test/e2e-go/kmd/e2e_kmd_wallet_test.go +++ b/test/e2e-go/kmd/e2e_kmd_wallet_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/perf/basic_test.go b/test/e2e-go/perf/basic_test.go index bdb8067c40..7c1e9c5125 100644 --- a/test/e2e-go/perf/basic_test.go +++ b/test/e2e-go/perf/basic_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/restAPI/helpers.go b/test/e2e-go/restAPI/helpers.go index 688ac373ea..845c41bb62 100644 --- a/test/e2e-go/restAPI/helpers.go +++ b/test/e2e-go/restAPI/helpers.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/restAPI/other/appsRestAPI_test.go b/test/e2e-go/restAPI/other/appsRestAPI_test.go index f270eb48a6..fc981cec83 100644 --- a/test/e2e-go/restAPI/other/appsRestAPI_test.go +++ b/test/e2e-go/restAPI/other/appsRestAPI_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/restAPI/other/misc_test.go b/test/e2e-go/restAPI/other/misc_test.go index 23e805dc25..20602fda1f 100644 --- a/test/e2e-go/restAPI/other/misc_test.go +++ b/test/e2e-go/restAPI/other/misc_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/restAPI/restClient_test.go b/test/e2e-go/restAPI/restClient_test.go index 8f3298170a..1561ac6b40 100644 --- a/test/e2e-go/restAPI/restClient_test.go +++ b/test/e2e-go/restAPI/restClient_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/restAPI/simulate/simulateRestAPI_test.go b/test/e2e-go/restAPI/simulate/simulateRestAPI_test.go index b058b510e4..49ffd7897b 100644 --- a/test/e2e-go/restAPI/simulate/simulateRestAPI_test.go +++ b/test/e2e-go/restAPI/simulate/simulateRestAPI_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/restAPI/stateproof/stateproofRestAPI_test.go b/test/e2e-go/restAPI/stateproof/stateproofRestAPI_test.go index f539bf3a33..a7cc3042fd 100644 --- a/test/e2e-go/restAPI/stateproof/stateproofRestAPI_test.go +++ b/test/e2e-go/restAPI/stateproof/stateproofRestAPI_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/stress/transactions/createManyAndGoOnline_test.go b/test/e2e-go/stress/transactions/createManyAndGoOnline_test.go index 57f2735746..afb18e7be4 100644 --- a/test/e2e-go/stress/transactions/createManyAndGoOnline_test.go +++ b/test/e2e-go/stress/transactions/createManyAndGoOnline_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/upgrades/application_support_test.go b/test/e2e-go/upgrades/application_support_test.go index c41ad84166..7dffd5dc41 100644 --- a/test/e2e-go/upgrades/application_support_test.go +++ b/test/e2e-go/upgrades/application_support_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/upgrades/rekey_support_test.go b/test/e2e-go/upgrades/rekey_support_test.go index cc3eca018c..fce4f98d2b 100644 --- a/test/e2e-go/upgrades/rekey_support_test.go +++ b/test/e2e-go/upgrades/rekey_support_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/upgrades/send_receive_upgrade_test.go b/test/e2e-go/upgrades/send_receive_upgrade_test.go index 86127aba8b..72a3e627dc 100644 --- a/test/e2e-go/upgrades/send_receive_upgrade_test.go +++ b/test/e2e-go/upgrades/send_receive_upgrade_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/e2e-go/upgrades/stateproof_participation_test.go b/test/e2e-go/upgrades/stateproof_participation_test.go index 5c6a6ab940..ca94c067da 100644 --- a/test/e2e-go/upgrades/stateproof_participation_test.go +++ b/test/e2e-go/upgrades/stateproof_participation_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/framework/fixtures/baseFixture.go b/test/framework/fixtures/baseFixture.go index 4701508e8d..febefbce15 100644 --- a/test/framework/fixtures/baseFixture.go +++ b/test/framework/fixtures/baseFixture.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/framework/fixtures/expectFixture.go b/test/framework/fixtures/expectFixture.go index 92d2daed80..2653a1b98c 100644 --- a/test/framework/fixtures/expectFixture.go +++ b/test/framework/fixtures/expectFixture.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/framework/fixtures/fixture.go b/test/framework/fixtures/fixture.go index 7e58b8eb33..2a6fea1fab 100644 --- a/test/framework/fixtures/fixture.go +++ b/test/framework/fixtures/fixture.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/framework/fixtures/goalFixture.go b/test/framework/fixtures/goalFixture.go index 15e2fafa7e..9c217e3e35 100644 --- a/test/framework/fixtures/goalFixture.go +++ b/test/framework/fixtures/goalFixture.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/framework/fixtures/kmdFixture.go b/test/framework/fixtures/kmdFixture.go index 7e747bb914..2570be017f 100644 --- a/test/framework/fixtures/kmdFixture.go +++ b/test/framework/fixtures/kmdFixture.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/framework/fixtures/libgoalFixture.go b/test/framework/fixtures/libgoalFixture.go index c05a59ff1f..c6659b33be 100644 --- a/test/framework/fixtures/libgoalFixture.go +++ b/test/framework/fixtures/libgoalFixture.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/framework/fixtures/restClientFixture.go b/test/framework/fixtures/restClientFixture.go index fb1a26d31b..f4131b5422 100644 --- a/test/framework/fixtures/restClientFixture.go +++ b/test/framework/fixtures/restClientFixture.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -27,7 +27,6 @@ import ( "github.com/algorand/go-algorand/data/basics" "github.com/algorand/go-algorand/data/bookkeeping" "github.com/algorand/go-algorand/netdeploy" - "github.com/algorand/go-algorand/protocol" "github.com/algorand/go-algorand/daemon/algod/api/client" v2 "github.com/algorand/go-algorand/daemon/algod/api/server/v2" @@ -192,34 +191,7 @@ func (f *RestClientFixture) WaitForTxnConfirmation(roundTimeout uint64, txid str // or until the passed roundTimeout passes // or until waiting for a round to pass times out func (f *RestClientFixture) WaitForConfirmedTxn(roundTimeout uint64, txid string) (txn v2.PreEncodedTxInfo, err error) { - client := f.AlgodClient - for { - // Get current round information - curStatus, statusErr := client.Status() - require.NoError(f.t, statusErr, "fixture should be able to get node status") - curRound := curStatus.LastRound - - // Check if we know about the transaction yet - var resp []byte - resp, err = client.RawPendingTransactionInformation(txid) - if err == nil { - err = protocol.DecodeReflect(resp, &txn) - require.NoError(f.t, err) - } - - // Check if transaction was confirmed - if txn.ConfirmedRound != nil && *txn.ConfirmedRound > 0 { - return - } - // Check if we should wait a round - if curRound > roundTimeout { - err = fmt.Errorf("failed to see confirmed transaction by round %v", roundTimeout) - return - } - // Wait a round - err = f.WaitForRoundWithTimeout(curRound + 1) - require.NoError(f.t, err, "fixture should be able to wait for one round to pass") - } + return f.AlgodClient.WaitForConfirmedTxn(roundTimeout, txid) } // WaitForAllTxnsToConfirm is as WaitForTxnConfirmation, @@ -295,7 +267,7 @@ func (f *RestClientFixture) WaitForAccountFunded(roundTimeout uint64, accountAdd return fmt.Errorf("failed to see confirmed transaction by round %v", roundTimeout) } // Wait a round - err = f.WaitForRoundWithTimeout(curRound + 1) + err = client.WaitForRoundWithTimeout(curRound + 1) require.NoError(f.t, err, "fixture should be able to wait for one round to pass") } } @@ -318,7 +290,7 @@ func (f *RestClientFixture) SendMoneyAndWaitFromWallet(walletHandle, walletPassw require.NoError(f.t, err, "client should be able to send money from rich to poor account") require.NotEmpty(f.t, fundingTx.ID().String(), "transaction ID should not be empty") waitingDeadline := curRound + uint64(5) - txn, err = f.WaitForConfirmedTxn(waitingDeadline, fundingTx.ID().String()) + txn, err = client.WaitForConfirmedTxn(waitingDeadline, fundingTx.ID().String()) require.NoError(f.t, err) return } diff --git a/test/framework/fixtures/webProxyFixture.go b/test/framework/fixtures/webProxyFixture.go index 87bf95f0f0..8c43cc31c1 100644 --- a/test/framework/fixtures/webProxyFixture.go +++ b/test/framework/fixtures/webProxyFixture.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/heapwatch/block_history.py b/test/heapwatch/block_history.py index 665cd6c743..b74267d6f3 100644 --- a/test/heapwatch/block_history.py +++ b/test/heapwatch/block_history.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (C) 2019-2024 Algorand, Inc. +# Copyright (C) 2019-2025 Algorand, Inc. # This file is part of go-algorand # # go-algorand is free software: you can redistribute it and/or modify diff --git a/test/heapwatch/block_history_plot.py b/test/heapwatch/block_history_plot.py index 0bf8a2c8a2..b893dc92ee 100644 --- a/test/heapwatch/block_history_plot.py +++ b/test/heapwatch/block_history_plot.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (C) 2019-2024 Algorand, Inc. +# Copyright (C) 2019-2025 Algorand, Inc. # This file is part of go-algorand # # go-algorand is free software: you can redistribute it and/or modify diff --git a/test/heapwatch/block_history_relays.py b/test/heapwatch/block_history_relays.py index fd60a3dfe8..78b4bd2544 100644 --- a/test/heapwatch/block_history_relays.py +++ b/test/heapwatch/block_history_relays.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (C) 2019-2024 Algorand, Inc. +# Copyright (C) 2019-2025 Algorand, Inc. # This file is part of go-algorand # # go-algorand is free software: you can redistribute it and/or modify diff --git a/test/heapwatch/client_ram_report.py b/test/heapwatch/client_ram_report.py index f16fbeaa3f..2660204401 100644 --- a/test/heapwatch/client_ram_report.py +++ b/test/heapwatch/client_ram_report.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (C) 2019-2024 Algorand, Inc. +# Copyright (C) 2019-2025 Algorand, Inc. # This file is part of go-algorand # # go-algorand is free software: you can redistribute it and/or modify diff --git a/test/heapwatch/heapWatch.py b/test/heapwatch/heapWatch.py index f242ecd06b..f2443855bf 100644 --- a/test/heapwatch/heapWatch.py +++ b/test/heapwatch/heapWatch.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# Copyright (C) 2019-2024 Algorand, Inc. +# Copyright (C) 2019-2025 Algorand, Inc. # This file is part of go-algorand # # go-algorand is free software: you can redistribute it and/or modify diff --git a/test/heapwatch/metrics_delta.py b/test/heapwatch/metrics_delta.py index 3ff1afca65..71439fe101 100644 --- a/test/heapwatch/metrics_delta.py +++ b/test/heapwatch/metrics_delta.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (C) 2019-2024 Algorand, Inc. +# Copyright (C) 2019-2025 Algorand, Inc. # This file is part of go-algorand # # go-algorand is free software: you can redistribute it and/or modify diff --git a/test/heapwatch/nodeHostTarget.py b/test/heapwatch/nodeHostTarget.py index 1b617c9d25..434adfd564 100644 --- a/test/heapwatch/nodeHostTarget.py +++ b/test/heapwatch/nodeHostTarget.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (C) 2019-2024 Algorand, Inc. +# Copyright (C) 2019-2025 Algorand, Inc. # This file is part of go-algorand # # go-algorand is free software: you can redistribute it and/or modify diff --git a/test/heapwatch/runNodeHost.py b/test/heapwatch/runNodeHost.py index 5625ec61bb..c9c3e46b90 100644 --- a/test/heapwatch/runNodeHost.py +++ b/test/heapwatch/runNodeHost.py @@ -1,5 +1,5 @@ #!/usr/bin/python3 -# Copyright (C) 2019-2024 Algorand, Inc. +# Copyright (C) 2019-2025 Algorand, Inc. # This file is part of go-algorand # # go-algorand is free software: you can redistribute it and/or modify diff --git a/test/linttest/lintissues.go b/test/linttest/lintissues.go index 5f21543d99..d03382dd8a 100644 --- a/test/linttest/lintissues.go +++ b/test/linttest/lintissues.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/netperf-go/puppeteer/main.go b/test/netperf-go/puppeteer/main.go index 691dd663b8..f006089223 100644 --- a/test/netperf-go/puppeteer/main.go +++ b/test/netperf-go/puppeteer/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/netperf-go/puppeteer/promMetricFetcher.go b/test/netperf-go/puppeteer/promMetricFetcher.go index cd268d0db1..059d5ac6b3 100644 --- a/test/netperf-go/puppeteer/promMetricFetcher.go +++ b/test/netperf-go/puppeteer/promMetricFetcher.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/netperf-go/puppeteer/promMetricFetcher_test.go b/test/netperf-go/puppeteer/promMetricFetcher_test.go index ee95922b27..f654f683df 100644 --- a/test/netperf-go/puppeteer/promMetricFetcher_test.go +++ b/test/netperf-go/puppeteer/promMetricFetcher_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/netperf-go/puppeteer/puppeteer.go b/test/netperf-go/puppeteer/puppeteer.go index c317742910..003027fe67 100644 --- a/test/netperf-go/puppeteer/puppeteer.go +++ b/test/netperf-go/puppeteer/puppeteer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/netperf-go/puppeteer/puppeteer_test.go b/test/netperf-go/puppeteer/puppeteer_test.go index b86b1cd1a6..937f0de88a 100644 --- a/test/netperf-go/puppeteer/puppeteer_test.go +++ b/test/netperf-go/puppeteer/puppeteer_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/netperf-go/puppeteer/roundpoller.go b/test/netperf-go/puppeteer/roundpoller.go index 63156ff89c..3a71c73c1c 100644 --- a/test/netperf-go/puppeteer/roundpoller.go +++ b/test/netperf-go/puppeteer/roundpoller.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/partitiontest/filtering.go b/test/partitiontest/filtering.go index de738ed71d..50f0b0c83f 100644 --- a/test/partitiontest/filtering.go +++ b/test/partitiontest/filtering.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/test/reflectionhelpers/helpers.go b/test/reflectionhelpers/helpers.go index d3a7122042..07d4cc26b1 100644 --- a/test/reflectionhelpers/helpers.go +++ b/test/reflectionhelpers/helpers.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/core/commands.go b/tools/block-generator/core/commands.go index cf4396324a..37b78feb6c 100644 --- a/tools/block-generator/core/commands.go +++ b/tools/block-generator/core/commands.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/config.go b/tools/block-generator/generator/config.go index 55097b9ee1..fc833c1171 100644 --- a/tools/block-generator/generator/config.go +++ b/tools/block-generator/generator/config.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/config_test.go b/tools/block-generator/generator/config_test.go index 634ea3497e..1f86aff09b 100644 --- a/tools/block-generator/generator/config_test.go +++ b/tools/block-generator/generator/config_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/daemon.go b/tools/block-generator/generator/daemon.go index 8284fa559d..5d0e3d8317 100644 --- a/tools/block-generator/generator/daemon.go +++ b/tools/block-generator/generator/daemon.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/generate.go b/tools/block-generator/generator/generate.go index 45cf6775c8..fd8f457ca0 100644 --- a/tools/block-generator/generator/generate.go +++ b/tools/block-generator/generator/generate.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/generate_apps.go b/tools/block-generator/generator/generate_apps.go index 972cf1e8ac..7a868a87e3 100644 --- a/tools/block-generator/generator/generate_apps.go +++ b/tools/block-generator/generator/generate_apps.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/generate_test.go b/tools/block-generator/generator/generate_test.go index 2c210ec4e4..00dc480d77 100644 --- a/tools/block-generator/generator/generate_test.go +++ b/tools/block-generator/generator/generate_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/generator_ledger.go b/tools/block-generator/generator/generator_ledger.go index 472ce3f0d5..d1afe7bbb3 100644 --- a/tools/block-generator/generator/generator_ledger.go +++ b/tools/block-generator/generator/generator_ledger.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/generator_types.go b/tools/block-generator/generator/generator_types.go index 6cebf76861..293e9aaa85 100644 --- a/tools/block-generator/generator/generator_types.go +++ b/tools/block-generator/generator/generator_types.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/make_transactions.go b/tools/block-generator/generator/make_transactions.go index 558dfd956f..00d0f9b127 100644 --- a/tools/block-generator/generator/make_transactions.go +++ b/tools/block-generator/generator/make_transactions.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/server.go b/tools/block-generator/generator/server.go index 8bd4c5139f..8fdd8d213e 100644 --- a/tools/block-generator/generator/server.go +++ b/tools/block-generator/generator/server.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/server_test.go b/tools/block-generator/generator/server_test.go index d4b1c8f551..562d81f8ff 100644 --- a/tools/block-generator/generator/server_test.go +++ b/tools/block-generator/generator/server_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/utils.go b/tools/block-generator/generator/utils.go index 17cd5a8658..40afb7b1a1 100644 --- a/tools/block-generator/generator/utils.go +++ b/tools/block-generator/generator/utils.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/generator/utils_test.go b/tools/block-generator/generator/utils_test.go index 295672669e..9728a98aa6 100644 --- a/tools/block-generator/generator/utils_test.go +++ b/tools/block-generator/generator/utils_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/main.go b/tools/block-generator/main.go index 6b5bee80a1..fb2a3f5287 100644 --- a/tools/block-generator/main.go +++ b/tools/block-generator/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/runner/metrics_collector.go b/tools/block-generator/runner/metrics_collector.go index f74a41f119..412078ab73 100644 --- a/tools/block-generator/runner/metrics_collector.go +++ b/tools/block-generator/runner/metrics_collector.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/runner/reporting_test.go b/tools/block-generator/runner/reporting_test.go index cebf6ea549..536feab779 100644 --- a/tools/block-generator/runner/reporting_test.go +++ b/tools/block-generator/runner/reporting_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/runner/run.go b/tools/block-generator/runner/run.go index af5c9fe7b1..864b516e79 100644 --- a/tools/block-generator/runner/run.go +++ b/tools/block-generator/runner/run.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/runner/runner.go b/tools/block-generator/runner/runner.go index c077415c75..e3c857c3ce 100644 --- a/tools/block-generator/runner/runner.go +++ b/tools/block-generator/runner/runner.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/block-generator/util/util.go b/tools/block-generator/util/util.go index 0c4e3bdf47..5db381563f 100644 --- a/tools/block-generator/util/util.go +++ b/tools/block-generator/util/util.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/boxkey/convertBoxKey.go b/tools/boxkey/convertBoxKey.go index 5b87007a54..f1f4d31ed2 100644 --- a/tools/boxkey/convertBoxKey.go +++ b/tools/boxkey/convertBoxKey.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/debug/algodump/main.go b/tools/debug/algodump/main.go index 525ddba705..27233b3dbb 100644 --- a/tools/debug/algodump/main.go +++ b/tools/debug/algodump/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/debug/carpenter/main.go b/tools/debug/carpenter/main.go index 96ca5296a0..87a5b79f09 100644 --- a/tools/debug/carpenter/main.go +++ b/tools/debug/carpenter/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/debug/chopper/main.go b/tools/debug/chopper/main.go index a09172c083..effcf566c2 100644 --- a/tools/debug/chopper/main.go +++ b/tools/debug/chopper/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/debug/coroner/main.go b/tools/debug/coroner/main.go index c8670b7b14..15a6fe2657 100644 --- a/tools/debug/coroner/main.go +++ b/tools/debug/coroner/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/debug/determaccount/main.go b/tools/debug/determaccount/main.go index 3eec1f860c..368c51675c 100644 --- a/tools/debug/determaccount/main.go +++ b/tools/debug/determaccount/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/debug/dumpblocks/main.go b/tools/debug/dumpblocks/main.go index 31a50631d7..fd634caee3 100644 --- a/tools/debug/dumpblocks/main.go +++ b/tools/debug/dumpblocks/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/debug/genconsensusconfig/main.go b/tools/debug/genconsensusconfig/main.go index 2de3f4e8f7..ec0f0255d4 100644 --- a/tools/debug/genconsensusconfig/main.go +++ b/tools/debug/genconsensusconfig/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/debug/logfilter/main.go b/tools/debug/logfilter/main.go index 25bf6feae4..08830e2533 100644 --- a/tools/debug/logfilter/main.go +++ b/tools/debug/logfilter/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/debug/logfilter/main_test.go b/tools/debug/logfilter/main_test.go index 77d14beb53..4386956338 100644 --- a/tools/debug/logfilter/main_test.go +++ b/tools/debug/logfilter/main_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/debug/transplanter/main.go b/tools/debug/transplanter/main.go index e6f88d007e..bef6fe3ab5 100644 --- a/tools/debug/transplanter/main.go +++ b/tools/debug/transplanter/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/misc/convertAddress.go b/tools/misc/convertAddress.go index 126afbe589..c72e0a2096 100644 --- a/tools/misc/convertAddress.go +++ b/tools/misc/convertAddress.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/bootstrap.go b/tools/network/bootstrap.go index d30ae4bda0..b71592ffa6 100644 --- a/tools/network/bootstrap.go +++ b/tools/network/bootstrap.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/bootstrap_test.go b/tools/network/bootstrap_test.go index a24bea422e..a20e493bc3 100644 --- a/tools/network/bootstrap_test.go +++ b/tools/network/bootstrap_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/cloudflare/cloudflare.go b/tools/network/cloudflare/cloudflare.go index a71e20b763..6d935fe48b 100644 --- a/tools/network/cloudflare/cloudflare.go +++ b/tools/network/cloudflare/cloudflare.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/cloudflare/createRecord.go b/tools/network/cloudflare/createRecord.go index d115e8b059..8b578c8e0f 100644 --- a/tools/network/cloudflare/createRecord.go +++ b/tools/network/cloudflare/createRecord.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/cloudflare/deleteRecord.go b/tools/network/cloudflare/deleteRecord.go index a59ab75b9e..8055c10c76 100644 --- a/tools/network/cloudflare/deleteRecord.go +++ b/tools/network/cloudflare/deleteRecord.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/cloudflare/helpers.go b/tools/network/cloudflare/helpers.go index cc5563837c..282ebf7154 100644 --- a/tools/network/cloudflare/helpers.go +++ b/tools/network/cloudflare/helpers.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/cloudflare/listRecords.go b/tools/network/cloudflare/listRecords.go index e676b3e423..b581edad16 100644 --- a/tools/network/cloudflare/listRecords.go +++ b/tools/network/cloudflare/listRecords.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/cloudflare/updateRecord.go b/tools/network/cloudflare/updateRecord.go index 7ad2b188f1..2d61ceb385 100644 --- a/tools/network/cloudflare/updateRecord.go +++ b/tools/network/cloudflare/updateRecord.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/cloudflare/zones.go b/tools/network/cloudflare/zones.go index 8721ef1a74..5d6948c14e 100644 --- a/tools/network/cloudflare/zones.go +++ b/tools/network/cloudflare/zones.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/anchor.go b/tools/network/dnssec/anchor.go index a3f8c0b19c..c35d37c934 100644 --- a/tools/network/dnssec/anchor.go +++ b/tools/network/dnssec/anchor.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/anchor_test.go b/tools/network/dnssec/anchor_test.go index 6b574db8de..1d3502d732 100644 --- a/tools/network/dnssec/anchor_test.go +++ b/tools/network/dnssec/anchor_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/client.go b/tools/network/dnssec/client.go index 71880db095..d485c3812a 100644 --- a/tools/network/dnssec/client.go +++ b/tools/network/dnssec/client.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/client_test.go b/tools/network/dnssec/client_test.go index f52008d441..82df54c2fd 100644 --- a/tools/network/dnssec/client_test.go +++ b/tools/network/dnssec/client_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/config.go b/tools/network/dnssec/config.go index 6919e5618b..4e314fc29f 100644 --- a/tools/network/dnssec/config.go +++ b/tools/network/dnssec/config.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/config_test.go b/tools/network/dnssec/config_test.go index a84d30bb11..b7ed8389d9 100644 --- a/tools/network/dnssec/config_test.go +++ b/tools/network/dnssec/config_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/config_unix.go b/tools/network/dnssec/config_unix.go index 72c9178720..fb72bde3d5 100644 --- a/tools/network/dnssec/config_unix.go +++ b/tools/network/dnssec/config_unix.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/config_unix_test.go b/tools/network/dnssec/config_unix_test.go index 5a840257d6..b689ff2236 100644 --- a/tools/network/dnssec/config_unix_test.go +++ b/tools/network/dnssec/config_unix_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/config_windows.go b/tools/network/dnssec/config_windows.go index 5772d10b1b..b1e303d6e3 100644 --- a/tools/network/dnssec/config_windows.go +++ b/tools/network/dnssec/config_windows.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/dialer.go b/tools/network/dnssec/dialer.go index 48896efcde..559605711e 100644 --- a/tools/network/dnssec/dialer.go +++ b/tools/network/dnssec/dialer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/dnssec_test.go b/tools/network/dnssec/dnssec_test.go index c9d558944f..590c2e49ad 100644 --- a/tools/network/dnssec/dnssec_test.go +++ b/tools/network/dnssec/dnssec_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/relay-check/main.go b/tools/network/dnssec/relay-check/main.go index 47b5cd21ff..ef10b5ced4 100644 --- a/tools/network/dnssec/relay-check/main.go +++ b/tools/network/dnssec/relay-check/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/resolver.go b/tools/network/dnssec/resolver.go index e4f5b9575f..05324b5fcf 100644 --- a/tools/network/dnssec/resolver.go +++ b/tools/network/dnssec/resolver.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/sort.go b/tools/network/dnssec/sort.go index 5dcbeb94d7..f76937d00f 100644 --- a/tools/network/dnssec/sort.go +++ b/tools/network/dnssec/sort.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/sort_test.go b/tools/network/dnssec/sort_test.go index 9cf91cc997..0c987f0eda 100644 --- a/tools/network/dnssec/sort_test.go +++ b/tools/network/dnssec/sort_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/testHarness.go b/tools/network/dnssec/testHarness.go index c261547ddf..3d3edff768 100644 --- a/tools/network/dnssec/testHarness.go +++ b/tools/network/dnssec/testHarness.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/trustchain.go b/tools/network/dnssec/trustchain.go index 38d4731e8d..dc4d8ee54f 100644 --- a/tools/network/dnssec/trustchain.go +++ b/tools/network/dnssec/trustchain.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/trustedchain_test.go b/tools/network/dnssec/trustedchain_test.go index 16c8711a14..5977ce192f 100644 --- a/tools/network/dnssec/trustedchain_test.go +++ b/tools/network/dnssec/trustedchain_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/trustedzone.go b/tools/network/dnssec/trustedzone.go index 44c8cb925e..0601d7c2be 100644 --- a/tools/network/dnssec/trustedzone.go +++ b/tools/network/dnssec/trustedzone.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/trustedzone_test.go b/tools/network/dnssec/trustedzone_test.go index a32d004b83..32d91a4b83 100644 --- a/tools/network/dnssec/trustedzone_test.go +++ b/tools/network/dnssec/trustedzone_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/util.go b/tools/network/dnssec/util.go index 020a645fee..f855ec1ef7 100644 --- a/tools/network/dnssec/util.go +++ b/tools/network/dnssec/util.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/dnssec/util_test.go b/tools/network/dnssec/util_test.go index 07b643b79c..22ac880d7a 100644 --- a/tools/network/dnssec/util_test.go +++ b/tools/network/dnssec/util_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/externalIP.go b/tools/network/externalIP.go index 8f8ab4f3f7..8dab3f4d60 100644 --- a/tools/network/externalIP.go +++ b/tools/network/externalIP.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/resolveController.go b/tools/network/resolveController.go index 0bd7dea79e..fc55a7a0f3 100644 --- a/tools/network/resolveController.go +++ b/tools/network/resolveController.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/resolveController_test.go b/tools/network/resolveController_test.go index bdfd1ffc4c..8dd1496c9f 100644 --- a/tools/network/resolveController_test.go +++ b/tools/network/resolveController_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/resolver.go b/tools/network/resolver.go index ae9d123f2e..104aeed71d 100644 --- a/tools/network/resolver.go +++ b/tools/network/resolver.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/resolver_test.go b/tools/network/resolver_test.go index d8efd59d41..a414f649f2 100644 --- a/tools/network/resolver_test.go +++ b/tools/network/resolver_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/telemetryURIUpdateService.go b/tools/network/telemetryURIUpdateService.go index 2b4e614261..6331c57044 100644 --- a/tools/network/telemetryURIUpdateService.go +++ b/tools/network/telemetryURIUpdateService.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/network/telemetryURIUpdateService_test.go b/tools/network/telemetryURIUpdateService_test.go index 751290720c..5cb18752f7 100644 --- a/tools/network/telemetryURIUpdateService_test.go +++ b/tools/network/telemetryURIUpdateService_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/teal/algotmpl/extract.go b/tools/teal/algotmpl/extract.go index 70a7825a56..69dfb98b2d 100644 --- a/tools/teal/algotmpl/extract.go +++ b/tools/teal/algotmpl/extract.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/teal/algotmpl/main.go b/tools/teal/algotmpl/main.go index 34760ac052..7b82e0a9b5 100644 --- a/tools/teal/algotmpl/main.go +++ b/tools/teal/algotmpl/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/teal/dkey/dsign/main.go b/tools/teal/dkey/dsign/main.go index 4e7cc1927c..335a310269 100644 --- a/tools/teal/dkey/dsign/main.go +++ b/tools/teal/dkey/dsign/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/teal/tealcut/main.go b/tools/teal/tealcut/main.go index 61857d9ef3..1746d04941 100644 --- a/tools/teal/tealcut/main.go +++ b/tools/teal/tealcut/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/x-repo-types/typeAnalyzer/main.go b/tools/x-repo-types/typeAnalyzer/main.go index 54c48a5f09..1f96cfe4b5 100644 --- a/tools/x-repo-types/typeAnalyzer/main.go +++ b/tools/x-repo-types/typeAnalyzer/main.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/x-repo-types/typeAnalyzer/main.tmpl b/tools/x-repo-types/typeAnalyzer/main.tmpl index c7310ab252..d846c443e3 100644 --- a/tools/x-repo-types/typeAnalyzer/main.tmpl +++ b/tools/x-repo-types/typeAnalyzer/main.tmpl @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/x-repo-types/typeAnalyzer/typeAnalyzer.go b/tools/x-repo-types/typeAnalyzer/typeAnalyzer.go index edc9d612dd..e652166c8e 100644 --- a/tools/x-repo-types/typeAnalyzer/typeAnalyzer.go +++ b/tools/x-repo-types/typeAnalyzer/typeAnalyzer.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/x-repo-types/typeAnalyzer/typeAnalyzer_test.go b/tools/x-repo-types/typeAnalyzer/typeAnalyzer_test.go index b09f62d7cc..778bdccf53 100644 --- a/tools/x-repo-types/typeAnalyzer/typeAnalyzer_test.go +++ b/tools/x-repo-types/typeAnalyzer/typeAnalyzer_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/x-repo-types/xrt.go b/tools/x-repo-types/xrt.go index 8ea8a9f152..52cdadfd41 100644 --- a/tools/x-repo-types/xrt.go +++ b/tools/x-repo-types/xrt.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/tools/x-repo-types/xrt_test.go b/tools/x-repo-types/xrt_test.go index 240e8a6ecd..6681100a77 100644 --- a/tools/x-repo-types/xrt_test.go +++ b/tools/x-repo-types/xrt_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/cmdUtils.go b/util/cmdUtils.go index 9b69cfe697..87d62b15c1 100644 --- a/util/cmdUtils.go +++ b/util/cmdUtils.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/codecs/json.go b/util/codecs/json.go index 5a248c9a78..d2b3b6ac21 100644 --- a/util/codecs/json.go +++ b/util/codecs/json.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/codecs/json_test.go b/util/codecs/json_test.go index efe34c2f5f..db4dfb105e 100644 --- a/util/codecs/json_test.go +++ b/util/codecs/json_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/condvar/timedwait.go b/util/condvar/timedwait.go index b4d5849736..08c46b7362 100644 --- a/util/condvar/timedwait.go +++ b/util/condvar/timedwait.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/condvar/timedwait_test.go b/util/condvar/timedwait_test.go index ba3e48c9a6..c9b7dfb567 100644 --- a/util/condvar/timedwait_test.go +++ b/util/condvar/timedwait_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/db/dbpair.go b/util/db/dbpair.go index c5df75f5d7..95a257c2d4 100644 --- a/util/db/dbpair.go +++ b/util/db/dbpair.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/db/dbutil.go b/util/db/dbutil.go index e1cd16e2b5..3f3f4b7f65 100644 --- a/util/db/dbutil.go +++ b/util/db/dbutil.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/db/dbutil_test.go b/util/db/dbutil_test.go index e092a50481..03b6308b90 100644 --- a/util/db/dbutil_test.go +++ b/util/db/dbutil_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/db/fullfsync_darwin.go b/util/db/fullfsync_darwin.go index 2eff12f3f5..7cb08fe7ef 100644 --- a/util/db/fullfsync_darwin.go +++ b/util/db/fullfsync_darwin.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/db/initialize.go b/util/db/initialize.go index f9f328b0a5..33ee093884 100644 --- a/util/db/initialize.go +++ b/util/db/initialize.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/db/initialize_test.go b/util/db/initialize_test.go index 52405d7bcc..55ae3db7f8 100644 --- a/util/db/initialize_test.go +++ b/util/db/initialize_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/db/interfaces.go b/util/db/interfaces.go index 5634b7a681..f88c7ef02b 100644 --- a/util/db/interfaces.go +++ b/util/db/interfaces.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/db/perf_test.go b/util/db/perf_test.go index c76f002fe1..2e65da7b81 100644 --- a/util/db/perf_test.go +++ b/util/db/perf_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/db/versioning.go b/util/db/versioning.go index 51e28520fb..d87d16a8d6 100644 --- a/util/db/versioning.go +++ b/util/db/versioning.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/db/versioning_test.go b/util/db/versioning_test.go index 86634d4291..459a9a6d1a 100644 --- a/util/db/versioning_test.go +++ b/util/db/versioning_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/execpool/backlog.go b/util/execpool/backlog.go index 969587de68..e3709b345a 100644 --- a/util/execpool/backlog.go +++ b/util/execpool/backlog.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/execpool/pool.go b/util/execpool/pool.go index 426edd10cb..c2f6b84835 100644 --- a/util/execpool/pool.go +++ b/util/execpool/pool.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/execpool/stream.go b/util/execpool/stream.go index f6017a0af1..5728ccede7 100644 --- a/util/execpool/stream.go +++ b/util/execpool/stream.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/execpool/stream_test.go b/util/execpool/stream_test.go index 8f40175fdd..887fc3f27f 100644 --- a/util/execpool/stream_test.go +++ b/util/execpool/stream_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/io.go b/util/io.go index 43e47d3f49..f01b58be31 100644 --- a/util/io.go +++ b/util/io.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/io_test.go b/util/io_test.go index 3c587286f7..884664c783 100644 --- a/util/io_test.go +++ b/util/io_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/list.go b/util/list.go index 16e5a3816a..9ea19ada14 100644 --- a/util/list.go +++ b/util/list.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/list_test.go b/util/list_test.go index 972cc28cb1..4b7c0359e3 100644 --- a/util/list_test.go +++ b/util/list_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/couge.go b/util/metrics/couge.go index 503265efa9..3a1003b462 100644 --- a/util/metrics/couge.go +++ b/util/metrics/couge.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/counter.go b/util/metrics/counter.go index e9b437a4a2..1dcd9a1e57 100644 --- a/util/metrics/counter.go +++ b/util/metrics/counter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/counter_test.go b/util/metrics/counter_test.go index c987624cb7..6602dce0bb 100644 --- a/util/metrics/counter_test.go +++ b/util/metrics/counter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/gauge.go b/util/metrics/gauge.go index edf144e48f..6b200fe0be 100644 --- a/util/metrics/gauge.go +++ b/util/metrics/gauge.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/gauge_test.go b/util/metrics/gauge_test.go index 8470362e82..a2c9051482 100644 --- a/util/metrics/gauge_test.go +++ b/util/metrics/gauge_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/metrics.go b/util/metrics/metrics.go index d7afe6439c..6c92b2e21f 100644 --- a/util/metrics/metrics.go +++ b/util/metrics/metrics.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/metrics_test.go b/util/metrics/metrics_test.go index 9b38f12fb2..bb0cfce78c 100644 --- a/util/metrics/metrics_test.go +++ b/util/metrics/metrics_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/netdev_common.go b/util/metrics/netdev_common.go index 3da28aa998..8c644af842 100644 --- a/util/metrics/netdev_common.go +++ b/util/metrics/netdev_common.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/netdev_darwin.go b/util/metrics/netdev_darwin.go index fd7b3cda9f..0a629d1360 100644 --- a/util/metrics/netdev_darwin.go +++ b/util/metrics/netdev_darwin.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/netdev_linux.go b/util/metrics/netdev_linux.go index 7c6db07ae4..7b12f15102 100644 --- a/util/metrics/netdev_linux.go +++ b/util/metrics/netdev_linux.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/netdev_noop.go b/util/metrics/netdev_noop.go index 3d2a1a1851..74e8b83fb4 100644 --- a/util/metrics/netdev_noop.go +++ b/util/metrics/netdev_noop.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/opencensus.go b/util/metrics/opencensus.go index d61c6206cd..bf8eb64e72 100644 --- a/util/metrics/opencensus.go +++ b/util/metrics/opencensus.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/opencensus_test.go b/util/metrics/opencensus_test.go index f5401af541..74aa9a05cc 100644 --- a/util/metrics/opencensus_test.go +++ b/util/metrics/opencensus_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/prometheus.go b/util/metrics/prometheus.go index b55f931001..88d195d8b9 100644 --- a/util/metrics/prometheus.go +++ b/util/metrics/prometheus.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/prometheus_test.go b/util/metrics/prometheus_test.go index 75ef94f97e..d186c1b79e 100644 --- a/util/metrics/prometheus_test.go +++ b/util/metrics/prometheus_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/registry.go b/util/metrics/registry.go index f6d7849401..5757455412 100644 --- a/util/metrics/registry.go +++ b/util/metrics/registry.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/registryCommon.go b/util/metrics/registryCommon.go index 742fae8dd6..752cc6e36b 100644 --- a/util/metrics/registryCommon.go +++ b/util/metrics/registryCommon.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/registry_test.go b/util/metrics/registry_test.go index 6072b1847d..963365096d 100644 --- a/util/metrics/registry_test.go +++ b/util/metrics/registry_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/reporter.go b/util/metrics/reporter.go index 20d2ea53e5..3e93b7ae37 100644 --- a/util/metrics/reporter.go +++ b/util/metrics/reporter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/reporter_test.go b/util/metrics/reporter_test.go index 34c394562b..2709a9413d 100755 --- a/util/metrics/reporter_test.go +++ b/util/metrics/reporter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/runtime.go b/util/metrics/runtime.go index 4624abb250..9ea1833268 100644 --- a/util/metrics/runtime.go +++ b/util/metrics/runtime.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/runtime_test.go b/util/metrics/runtime_test.go index f62a471f6b..b451a88019 100644 --- a/util/metrics/runtime_test.go +++ b/util/metrics/runtime_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/service.go b/util/metrics/service.go index c7089470c6..919df94c03 100644 --- a/util/metrics/service.go +++ b/util/metrics/service.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/serviceCommon.go b/util/metrics/serviceCommon.go index 64e7696ce2..6c769f7fc1 100644 --- a/util/metrics/serviceCommon.go +++ b/util/metrics/serviceCommon.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/tagcounter.go b/util/metrics/tagcounter.go index d12f10ead5..6ee08d6dff 100644 --- a/util/metrics/tagcounter.go +++ b/util/metrics/tagcounter.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/metrics/tagcounter_test.go b/util/metrics/tagcounter_test.go index ec6ab09058..8eafdca48d 100644 --- a/util/metrics/tagcounter_test.go +++ b/util/metrics/tagcounter_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/process.go b/util/process.go index c872b63fe5..5b6c43574d 100644 --- a/util/process.go +++ b/util/process.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/process_common.go b/util/process_common.go index 4e74905670..6b58da56f1 100644 --- a/util/process_common.go +++ b/util/process_common.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/process_windows.go b/util/process_windows.go index 14470ce502..a134e38e93 100644 --- a/util/process_windows.go +++ b/util/process_windows.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/rateLimit.go b/util/rateLimit.go index 3fea7f8912..8406711418 100644 --- a/util/rateLimit.go +++ b/util/rateLimit.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/rateLimit_test.go b/util/rateLimit_test.go index 8888bfcf4c..5a62cac5b5 100644 --- a/util/rateLimit_test.go +++ b/util/rateLimit_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/s3/fileIterator.go b/util/s3/fileIterator.go index 137af17415..d293c2e4f6 100644 --- a/util/s3/fileIterator.go +++ b/util/s3/fileIterator.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/s3/s3Helper.go b/util/s3/s3Helper.go index 79396e7ced..45da896659 100644 --- a/util/s3/s3Helper.go +++ b/util/s3/s3Helper.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/s3/s3Helper_test.go b/util/s3/s3Helper_test.go index 3f7eeb5fbd..32e4c58f8a 100644 --- a/util/s3/s3Helper_test.go +++ b/util/s3/s3Helper_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/set.go b/util/set.go index 3727a99f33..e6ea6a6927 100644 --- a/util/set.go +++ b/util/set.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify @@ -35,6 +35,11 @@ func MakeSet[T comparable](elems ...T) Set[T] { return make(Set[T]).Add(elems...) } +// Empty returns true if the set is empty. +func (s Set[T]) Empty() bool { + return len(s) == 0 +} + // Contains checks the membership of an element in the set. func (s Set[T]) Contains(elem T) (exists bool) { _, exists = s[elem] diff --git a/util/set_test.go b/util/set_test.go index 86df9c5464..34e9e48994 100644 --- a/util/set_test.go +++ b/util/set_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/sleep.go b/util/sleep.go index bfd67b9d2c..9059025f04 100644 --- a/util/sleep.go +++ b/util/sleep.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/sleep_linux.go b/util/sleep_linux.go index a36840f181..8f7f188e8b 100644 --- a/util/sleep_linux.go +++ b/util/sleep_linux.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/sleep_linux_32.go b/util/sleep_linux_32.go index 135ddecf76..cd8156371e 100644 --- a/util/sleep_linux_32.go +++ b/util/sleep_linux_32.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/sleep_linux_64.go b/util/sleep_linux_64.go index 1c56a5d810..6a2c90fec8 100644 --- a/util/sleep_linux_64.go +++ b/util/sleep_linux_64.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/tar/tar.go b/util/tar/tar.go index 6b2640bab5..e97c03b793 100644 --- a/util/tar/tar.go +++ b/util/tar/tar.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/tar/untar.go b/util/tar/untar.go index 1cad1beb59..e04af188a3 100644 --- a/util/tar/untar.go +++ b/util/tar/untar.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/tcpinfo.go b/util/tcpinfo.go index 2ac429a1a5..5771278ccd 100644 --- a/util/tcpinfo.go +++ b/util/tcpinfo.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/tcpinfo_darwin.go b/util/tcpinfo_darwin.go index 50846e626f..fb7dc93b86 100644 --- a/util/tcpinfo_darwin.go +++ b/util/tcpinfo_darwin.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/tcpinfo_linux.go b/util/tcpinfo_linux.go index a528a79b3d..31323e6dcc 100644 --- a/util/tcpinfo_linux.go +++ b/util/tcpinfo_linux.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/tcpinfo_noop.go b/util/tcpinfo_noop.go index 2e2641c3b4..6576a7f20f 100644 --- a/util/tcpinfo_noop.go +++ b/util/tcpinfo_noop.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/timers/frozen.go b/util/timers/frozen.go index a8cf0636fe..671d8e0a9b 100644 --- a/util/timers/frozen.go +++ b/util/timers/frozen.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/timers/interface.go b/util/timers/interface.go index 8340d3d9de..d3cbebe62f 100644 --- a/util/timers/interface.go +++ b/util/timers/interface.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/timers/monotonic.go b/util/timers/monotonic.go index 9cf49e6ae3..6607d1a32f 100644 --- a/util/timers/monotonic.go +++ b/util/timers/monotonic.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/timers/monotonic_test.go b/util/timers/monotonic_test.go index 1b661019e0..5a89c5cdee 100644 --- a/util/timers/monotonic_test.go +++ b/util/timers/monotonic_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/tokens/tokens.go b/util/tokens/tokens.go index 8c7de34153..f71a3750cd 100644 --- a/util/tokens/tokens.go +++ b/util/tokens/tokens.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/util.go b/util/util.go index 572dcab2cc..6aa4ceda8a 100644 --- a/util/util.go +++ b/util/util.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/util_windows.go b/util/util_windows.go index a2a3bc3d1e..811240eb8c 100644 --- a/util/util_windows.go +++ b/util/util_windows.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/uuid/uuid.go b/util/uuid/uuid.go index 84ce59c5c7..3ec271518c 100644 --- a/util/uuid/uuid.go +++ b/util/uuid/uuid.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/uuid/uuid_test.go b/util/uuid/uuid_test.go index cdea4ca486..aa7cd8a3ca 100644 --- a/util/uuid/uuid_test.go +++ b/util/uuid/uuid_test.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify diff --git a/util/watchdogStreamReader.go b/util/watchdogStreamReader.go index d5605571d6..9d05b511ee 100644 --- a/util/watchdogStreamReader.go +++ b/util/watchdogStreamReader.go @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2024 Algorand, Inc. +// Copyright (C) 2019-2025 Algorand, Inc. // This file is part of go-algorand // // go-algorand is free software: you can redistribute it and/or modify