diff options
Diffstat (limited to 'data/basics/address.go')
-rw-r--r-- | data/basics/address.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/data/basics/address.go b/data/basics/address.go index 412b7bf75..5eed1c512 100644 --- a/data/basics/address.go +++ b/data/basics/address.go @@ -24,6 +24,23 @@ import ( "github.com/algorand/go-algorand/crypto" ) +// NOTE: Another (partial) implementation of `basics.Address` is in `data/abi`. +// The reason of not using this `Address` in `data/abi` is that: +// - `data/basics` has C dependencies (`go-algorand/crypto`) +// - `go-algorand-sdk` has dependency to `go-algorand` for `ABI` +// - if `go-algorand`'s ABI uses `basics.Address`, then it would be +// impossible to up the version of `go-algorand` in `go-algorand-sdk` + +// This is discussed in: +// - ISSUE https://github.com/algorand/go-algorand/issues/3355 +// - PR https://github.com/algorand/go-algorand/pull/3375 + +// There are two solutions: +// - One is to refactoring `crypto.Digest`, `crypto.Hash` and `basics.Address` +// into packages that does not need `libsodium` crypto dependency +// - The other is wrapping `libsodium` in a driver interface to make crypto +// package importable (even if `libsodium` does not exist) + type ( // Address is a unique identifier corresponding to ownership of money Address crypto.Digest |