Merge pull request #2 from roylee17/fix-concurrent-write-to-addressPrefix

avoid concurrent write to addressPrefixes
This commit is contained in:
Jack Robison 2018-05-15 18:53:26 -04:00 committed by GitHub
commit 185433f2fd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2,6 +2,7 @@ package address
import ( import (
"errors" "errors"
"github.com/lbryio/lbryschema.go/address/base58" "github.com/lbryio/lbryschema.go/address/base58"
) )
@ -20,16 +21,13 @@ const lbrycrdMain = "lbrycrd_main"
const lbrycrdTestnet = "lbrycrd_testnet" const lbrycrdTestnet = "lbrycrd_testnet"
const lbrycrdRegtest = "lbrycrd_regtest" const lbrycrdRegtest = "lbrycrd_regtest"
var addressPrefixes = map[string][2]byte{} var addressPrefixes = map[string][2]byte{
lbrycrdMain: [2]byte{lbrycrdMainPubkeyPrefix, lbrycrdMainScriptPrefix},
func SetPrefixes() { lbrycrdTestnet: [2]byte{lbrycrdTestnetPubkeyPrefix, lbrycrdTestnetScriptPrefix},
addressPrefixes[lbrycrdMain] = [2]byte{lbrycrdMainPubkeyPrefix, lbrycrdMainScriptPrefix} lbrycrdRegtest: [2]byte{lbrycrdRegtestPubkeyPrefix, lbrycrdRegtestScriptPrefix},
addressPrefixes[lbrycrdTestnet] = [2]byte{lbrycrdTestnetPubkeyPrefix, lbrycrdTestnetScriptPrefix}
addressPrefixes[lbrycrdRegtest] = [2]byte{lbrycrdRegtestPubkeyPrefix, lbrycrdRegtestScriptPrefix}
} }
func PrefixIsValid(address [addressLength]byte, blockchainName string) bool { func PrefixIsValid(address [addressLength]byte, blockchainName string) bool {
SetPrefixes()
prefix := address[0] prefix := address[0]
for _, addrPrefix := range addressPrefixes[blockchainName] { for _, addrPrefix := range addressPrefixes[blockchainName] {
if addrPrefix == prefix { if addrPrefix == prefix {