Skip to content

Commit

Permalink
Feature/address for network2 (#68)
Browse files Browse the repository at this point in the history
* Add method to generate address for prefix
  • Loading branch information
idmitriev authored Sep 28, 2023
1 parent 9b2a3e9 commit 1e6982a
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 7 deletions.
4 changes: 4 additions & 0 deletions core/pkg/crypto/ed25519.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ func (e *ed25519Scheme) Address() (string, error) {
return subkey.SS58Address(e.publicKey, 42)
}

func (e *ed25519Scheme) AddressForNetwork(network uint8) (string, error) {
return subkey.SS58Address(e.publicKey, network)
}

func (e *ed25519Scheme) PublicKeyHex() string {
return fmt.Sprintf("0x%s", hex.EncodeToString(e.publicKey))
}
Expand Down
6 changes: 6 additions & 0 deletions core/pkg/crypto/ed25519_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,12 @@ func TestAddressEd25519Scheme(t *testing.T) {
assert.Equal(t, address, addr)
}

func TestAddressForCereNetworkEd25519Scheme(t *testing.T) {
addr, err := testEd25519Scheme.AddressForNetwork(54)
assert.NoError(t, err)
assert.Equal(t, addressForCereNetwork, addr)
}

func TestPublicKeyHexEd25519Scheme(t *testing.T) {
keyHex := testEd25519Scheme.PublicKeyHex()
assert.Equal(t, pubKeyHex, keyHex)
Expand Down
1 change: 1 addition & 0 deletions core/pkg/crypto/scheme.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ type (
Name() string
PublicKey() []byte
Address() (string, error)
AddressForNetwork(network uint8) (string, error)
PublicKeyHex() string
}
)
Expand Down
7 changes: 4 additions & 3 deletions core/pkg/crypto/scheme_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ import (
)

const (
content = "Hello world!"
address = "5FJDBC3jJbWX48PyfpRCo7pKsFwSy4Mzj5t39PfXixD5jMgy"
pubKeyHex = "0x8f01969eb5244d853cc9c6ad73c46d8a1a091842c414cabd2377531f0832635f"
content = "Hello world!"
address = "5FJDBC3jJbWX48PyfpRCo7pKsFwSy4Mzj5t39PfXixD5jMgy"
addressForCereNetwork = "6Sk8H6YZv61EvqFYYCyVKw1Rd5eydFvEzNXcXbP9HDLw7E4W"
pubKeyHex = "0x8f01969eb5244d853cc9c6ad73c46d8a1a091842c414cabd2377531f0832635f"
)

func TestCreateScheme(t *testing.T) {
Expand Down
4 changes: 4 additions & 0 deletions core/pkg/crypto/secp256k1.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ func (s *secp256k1Scheme) Address() (string, error) {
return subkey.SS58Address(s.publicKey, 42)
}

func (s *secp256k1Scheme) AddressForNetwork(network uint8) (string, error) {
return subkey.SS58Address(s.publicKey, network)
}

func (s *secp256k1Scheme) PublicKeyHex() string {
return fmt.Sprintf("0x%s", hex.EncodeToString(s.publicKey))
}
Expand Down
6 changes: 6 additions & 0 deletions core/pkg/crypto/secp256k1_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,12 @@ func TestSecp256k1_Address(t *testing.T) {
assert.Equal(t, expAddress, address)
}

func TestSecp256k1_AddressForCereNetwork(t *testing.T) {
address, err := testEd25519Scheme.AddressForNetwork(54)
assert.NoError(t, err)
assert.Equal(t, addressForCereNetwork, address)
}

func TestSecp256k1_PublicKeyHex(t *testing.T) {
publicKeyHex := testEd25519Scheme.PublicKeyHex()
assert.Equal(t, publicKeyHex, pubKeyHex)
Expand Down
4 changes: 4 additions & 0 deletions core/pkg/crypto/sr25519.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ func (s *sr25519Scheme) Address() (string, error) {
return subkey.SS58Address(s.publicKey, 42)
}

func (s *sr25519Scheme) AddressForNetwork(network uint8) (string, error) {
return subkey.SS58Address(s.publicKey, network)
}

func (s *sr25519Scheme) PublicKeyHex() string {
return fmt.Sprintf("0x%s", hex.EncodeToString(s.publicKey))
}
Expand Down
16 changes: 12 additions & 4 deletions core/pkg/crypto/sr25519_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ import (
)

const (
privKeySr25519 = "6e40d467e86ec447ae0088c81072feff8c860eebcff7dc44017b1b15746cce0d"
pubKeyHexSr25519 = "0xc8393bc5fd86bccda163187c8c23cba9d63622a745ed59fedc51d51210d1884f"
signatureSr25519 = "ba4a02f174694ee29a6a38b4ad2c16ff59f590da38694b556299197d1b352f464db889d93d1e3d86b068522aabb3585f50c129e1565a48b653336014a5fe158f"
privKeySr25519 = "6e40d467e86ec447ae0088c81072feff8c860eebcff7dc44017b1b15746cce0d"
pubKeyHexSr25519 = "0xc8393bc5fd86bccda163187c8c23cba9d63622a745ed59fedc51d51210d1884f"
signatureSr25519 = "ba4a02f174694ee29a6a38b4ad2c16ff59f590da38694b556299197d1b352f464db889d93d1e3d86b068522aabb3585f50c129e1565a48b653336014a5fe158f"
addressSr25519 = "5GbESExKAqUSer8YHHRpze6XDGjRaC2dpS7E44vMiXmEHoSe"
addressForCereNetworkSr25519 = "6U39Y9T9nKyAXYz79fz7XTHcy6SxEPat5ikoSGdyGnu5fd9V"
)

var (
Expand Down Expand Up @@ -70,7 +72,13 @@ func TestSignSr25519(t *testing.T) {
func TestAddressSr25519(t *testing.T) {
address, err := testSr25519Scheme.Address()
assert.NoError(t, err)
assert.Equal(t, address, address)
assert.Equal(t, addressSr25519, address)
}

func TestAddressForCereNetworkSr25519(t *testing.T) {
address, err := testSr25519Scheme.AddressForNetwork(54)
assert.NoError(t, err)
assert.Equal(t, address, addressForCereNetworkSr25519)
}

func TestPublicKeyHexSr25519(t *testing.T) {
Expand Down

0 comments on commit 1e6982a

Please sign in to comment.