summaryrefslogtreecommitdiff
path: root/data/basics/address.go
diff options
context:
space:
mode:
Diffstat (limited to 'data/basics/address.go')
-rw-r--r--data/basics/address.go17
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