Skip to content

Commit c8181ae

Browse files
authored
refactor: public key class (#169)
1 parent f26b2a8 commit c8181ae

14 files changed

+34
-35
lines changed

crypto/identity/public_key.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
1-
from binascii import hexlify, unhexlify
2-
31
from coincurve import PublicKey as PubKey
42

53
from crypto.identity.private_key import PrivateKey
64

75
class PublicKey(object):
6+
public_key: str
7+
88
def __init__(self, public_key: str):
9-
self.public_key = PubKey(unhexlify(public_key.encode()))
9+
self.public_key = public_key
1010

1111
@classmethod
12-
def from_passphrase(cls, passphrase: str) -> str:
12+
def from_passphrase(cls, passphrase: str) -> 'PublicKey':
1313
private_key = PrivateKey.from_passphrase(passphrase)
1414

15-
return private_key.public_key
15+
return cls(private_key.public_key)
1616

1717
@classmethod
18-
def from_hex(cls, public_key):
18+
def from_hex(cls, public_key) -> 'PublicKey':
1919
return cls(public_key)
20+
21+
@classmethod
22+
def recover(cls, message: bytes, signature: bytes) -> 'PublicKey':
23+
recovered_public_key = PubKey.from_signature_and_message(signature, message, hasher=None)
24+
25+
return cls(recovered_public_key.format().hex())

crypto/transactions/builder/evm_call_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from crypto.transactions.builder.base import AbstractTransactionBuilder
1+
from crypto.transactions.builder.abstract_transaction_builder import AbstractTransactionBuilder
22
from crypto.transactions.types.evm_call import EvmCall
33
from crypto.utils.transaction_utils import TransactionUtils
44

crypto/transactions/builder/multipayment_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from crypto.enums.contract_addresses import ContractAddresses
2-
from crypto.transactions.builder.base import AbstractTransactionBuilder
2+
from crypto.transactions.builder.abstract_transaction_builder import AbstractTransactionBuilder
33
from crypto.transactions.types.multipayment import Multipayment
44

55
class MultipaymentBuilder(AbstractTransactionBuilder):

crypto/transactions/builder/transfer_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from crypto.transactions.builder.base import AbstractTransactionBuilder
1+
from crypto.transactions.builder.abstract_transaction_builder import AbstractTransactionBuilder
22
from crypto.transactions.types.transfer import Transfer
33

44

crypto/transactions/builder/unvote_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from crypto.enums.contract_addresses import ContractAddresses
2-
from crypto.transactions.builder.base import AbstractTransactionBuilder
2+
from crypto.transactions.builder.abstract_transaction_builder import AbstractTransactionBuilder
33
from crypto.transactions.types.unvote import Unvote
44

55
class UnvoteBuilder(AbstractTransactionBuilder):

crypto/transactions/builder/username_registration_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import re
22
from crypto.enums.contract_addresses import ContractAddresses
33
from crypto.exceptions import InvalidUsernameException
4-
from crypto.transactions.builder.base import AbstractTransactionBuilder
4+
from crypto.transactions.builder.abstract_transaction_builder import AbstractTransactionBuilder
55
from crypto.transactions.types.username_registration import UsernameRegistration
66

77
class UsernameRegistrationBuilder(AbstractTransactionBuilder):

crypto/transactions/builder/username_resignation_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from crypto.enums.contract_addresses import ContractAddresses
2-
from crypto.transactions.builder.base import AbstractTransactionBuilder
2+
from crypto.transactions.builder.abstract_transaction_builder import AbstractTransactionBuilder
33
from crypto.transactions.types.username_resignation import UsernameResignation
44

55
class UsernameResignationBuilder(AbstractTransactionBuilder):

crypto/transactions/builder/validator_registration_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from crypto.enums.contract_addresses import ContractAddresses
2-
from crypto.transactions.builder.base import AbstractTransactionBuilder
2+
from crypto.transactions.builder.abstract_transaction_builder import AbstractTransactionBuilder
33
from crypto.transactions.types.validator_registration import ValidatorRegistration
44

55
class ValidatorRegistrationBuilder(AbstractTransactionBuilder):

crypto/transactions/builder/validator_resignation_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from crypto.enums.contract_addresses import ContractAddresses
2-
from crypto.transactions.builder.base import AbstractTransactionBuilder
2+
from crypto.transactions.builder.abstract_transaction_builder import AbstractTransactionBuilder
33
from crypto.transactions.types.validator_resignation import ValidatorResignation
44

55
class ValidatorResignationBuilder(AbstractTransactionBuilder):

0 commit comments

Comments
 (0)