Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on May 3, 2024. It is now read-only.

Commit dc8fac2

Browse files
committed
Make private key methods private, completed Collection.get and Collection.get_all
1 parent 3885ca8 commit dc8fac2

File tree

7 files changed

+90
-69
lines changed

7 files changed

+90
-69
lines changed

nftlabs/modules/base.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,25 @@
1313
class BaseModule:
1414
get_client: Optional[Callable[[], Web3]]
1515
get_storage: Optional[Callable[[], IpfsStorage]]
16-
get_signer_address: Optional[Callable[[], str]]
17-
get_private_key: Optional[Callable[[], str]]
18-
get_transact_opts: Optional[Callable[[], TxParams]]
16+
__get_signer_address: Optional[Callable[[], str]]
17+
__get_private_key: Optional[Callable[[], str]]
18+
__get_transact_opts: Optional[Callable[[], TxParams]]
1919

20-
get_account: Optional[Callable[[], LocalAccount]]
20+
__get_account: Optional[Callable[[], LocalAccount]]
2121
get_options: Optional[Callable[[], SdkOptions]]
2222

2323
def __init__(self):
2424
self.get_client = None
2525
self.get_storage = None
26-
self.get_signer_address = None
27-
self.get_private_key = None
28-
self.get_transact_opts = None
29-
self.get_account = None
26+
self.__get_signer_address = None
27+
self.__get_private_key = None
28+
self.__get_transact_opts = None
29+
self.__get_account = None
3030
self.get_options = None
3131

3232
def execute_tx(self, tx) -> TxReceipt:
3333
client = self.get_client()
34-
nonce = client.eth.get_transaction_count(self.get_signer_address())
34+
nonce = client.eth.get_transaction_count(self.__get_signer_address())
3535
tx['nonce'] = nonce
3636
del tx['from']
3737
signed_tx = self.__sign_tx(tx)
@@ -42,7 +42,7 @@ def execute_tx(self, tx) -> TxReceipt:
4242
)
4343

4444
def __sign_tx(self, tx):
45-
signed_tx = self.get_account().sign_transaction(tx)
45+
signed_tx = self.__get_account().sign_transaction(tx)
4646
return signed_tx
4747

4848

nftlabs/modules/collection.py

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from zero_ex.contract_wrappers import TxParams
44

55
from .base import BaseModule
6+
from ..types.nft import NftMetadata
67
from ..errors import NoSignerException
78
from ..types.role import Role
89
from ..abi.nft_collection import NFTCollection
@@ -21,10 +22,19 @@ def __init__(self, address: str, client: Web3):
2122
self.__abi_module = NFTCollection(client, address)
2223

2324
def get(self, token_id: int) -> CollectionMetadata:
24-
pass
25+
uri = self.__abi_module.uri.call(token_id, TxParams(from_=self.address))
26+
meta_str = self.get_storage().get(uri)
27+
meta: NftMetadata = NftMetadata.from_json(meta_str)
28+
meta.id = token_id
29+
return CollectionMetadata(
30+
metadata=meta,
31+
supply=self.__abi_module.total_supply.call(token_id, TxParams(from_=self.address)),
32+
creator=self.__abi_module.creator.call(token_id, TxParams(from_=self.address)),
33+
id=token_id
34+
)
2535

2636
def get_all(self) -> List[CollectionMetadata]:
27-
pass
37+
return [self.get(i) for i in range(self.__abi_module.next_token_id.call(TxParams(from_=self.address)))]
2838

2939
'''
3040
Returns the balance for a given token at owned by a specific address
@@ -37,7 +47,7 @@ def balance_of(self, address: str, token_id: int) -> int:
3747
'''
3848
def balance(self, token_id: int) -> int:
3949
return self.__abi_module.balance_of.call(
40-
self.get_signer_address(),
50+
self.__get_signer_address(),
4151
token_id,
4252
TxParams(from_=self.address)
4353
)
@@ -51,12 +61,12 @@ def is_approved(self, address: str, operator: str) -> bool:
5161

5262
def set_approval(self, operator: str, approved: bool = True):
5363
self.execute_tx(self.__abi_module.set_approval_for_all.build_transaction(
54-
operator, approved, self.get_transact_opts()
64+
operator, approved, self.__get_transact_opts()
5565
))
5666

5767
def transfer(self, to_address: str, token_id: int, amount: int):
5868
self.execute_tx(self.__abi_module.safe_transfer_from.build_transaction(
59-
self.get_signer_address(), to_address, token_id, amount, "", self.get_transact_opts()
69+
self.__get_signer_address(), to_address, token_id, amount, "", self.__get_transact_opts()
6070
))
6171

6272
def create(self, metadata) -> CollectionMetadata:
@@ -106,31 +116,31 @@ def transfer_batch_from(self, from_address: str, to_address: str, args):
106116

107117
def set_royalty_bps(self, amount: int):
108118
self.execute_tx(self.__abi_module.set_royalty_bps.build_transaction(
109-
amount, self.get_transact_opts()
119+
amount, self.__get_transact_opts()
110120
))
111121

112122
def grant_role(self, role: Role, address: str):
113123
role_hash = role.get_hash()
114124
self.execute_tx(self.__abi_module.grant_role.build_transaction(
115-
role_hash, address, self.get_transact_opts()
125+
role_hash, address, self.__get_transact_opts()
116126
))
117127

118128
def revoke_role(self, role: Role, address: str):
119129
role_hash = role.get_hash()
120130

121131
try:
122-
signer_address = self.get_signer_address()
132+
signer_address = self.__get_signer_address()
123133
if signer_address.lower() != address.lower():
124134
pass
125135
self.execute_tx(self.__abi_module.renounce_role.build_transaction(
126-
role_hash, address, self.get_transact_opts()
136+
role_hash, address, self.__get_transact_opts()
127137
))
128138
return
129139
except NoSignerException:
130140
pass
131141

132142
self.execute_tx(self.__abi_module.revoke_role.build_transaction(
133-
role_hash, address, self.get_transact_opts()
143+
role_hash, address, self.__get_transact_opts()
134144
))
135145

136146
def get_role_members(self, role: Role) -> List[str]:

nftlabs/modules/currency.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,66 +31,66 @@ def balance_of(self, address: str) -> int:
3131
return self.__abi_module.balance_of.call(address)
3232

3333
def balance(self):
34-
return self.__abi_module.balance_of.call(self.get_signer_address())
34+
return self.__abi_module.balance_of.call(self.__get_signer_address())
3535

3636
def allowance(self, spender: str) -> int:
37-
return self.__abi_module.allowance.call(self.get_signer_address(), spender)
37+
return self.__abi_module.allowance.call(self.__get_signer_address(), spender)
3838

3939
def allowance_of(self, owner: str, spender: str) -> int:
4040
return self.__abi_module.allowance.call(owner, spender)
4141

4242
def set_allowance(self, spender: str, amount: int):
4343
return self.execute_tx(self.__abi_module.approve.build_transaction(
44-
spender, amount, self.get_transact_opts()
44+
spender, amount, self.__get_transact_opts()
4545
))
4646

4747
def mint_to(self, to: str, amount: int):
4848
return self.execute_tx(self.__abi_module.mint.build_transaction(
49-
to, amount, self.get_transact_opts()
49+
to, amount, self.__get_transact_opts()
5050
))
5151

5252
def mint(self, amount: int):
5353
return self.execute_tx(self.__abi_module.mint.build_transaction(
54-
self.get_signer_address(), amount, self.get_transact_opts()
54+
self.__get_signer_address(), amount, self.__get_transact_opts()
5555
))
5656

5757
def burn(self, amount: int):
5858
return self.execute_tx(self.__abi_module.burn.build_transaction(
59-
amount, self.get_transact_opts()
59+
amount, self.__get_transact_opts()
6060
))
6161

6262
def burn_from(self, from_address: str, amount: int):
6363
return self.execute_tx(self.__abi_module.burn_from.build_transaction(
64-
from_address, amount, self.get_transact_opts()
64+
from_address, amount, self.__get_transact_opts()
6565
))
6666

6767
def transfer_from(self, from_address: str, to_address: str, amount: int):
6868
return self.execute_tx(self.__abi_module.transfer_from.build_transaction(
69-
from_address, to_address, amount, self.get_transact_opts()
69+
from_address, to_address, amount, self.__get_transact_opts()
7070
))
7171

7272
def grant_role(self, role: Role, address: str):
7373
role_hash = role.get_hash()
7474
self.execute_tx(self.__abi_module.grant_role.build_transaction(
75-
role_hash, address, self.get_transact_opts()
75+
role_hash, address, self.__get_transact_opts()
7676
))
7777

7878
def revoke_role(self, role: Role, address: str):
7979
role_hash = role.get_hash()
8080

8181
try:
82-
signer_address = self.get_signer_address()
82+
signer_address = self.__get_signer_address()
8383
if signer_address.lower() != address.lower():
8484
pass
8585
self.execute_tx(self.__abi_module.renounce_role.build_transaction(
86-
role_hash, address, self.get_transact_opts()
86+
role_hash, address, self.__get_transact_opts()
8787
))
8888
return
8989
except NoSignerException:
9090
pass
9191

9292
self.execute_tx(self.__abi_module.revoke_role.build_transaction(
93-
role_hash, address, self.get_transact_opts()
93+
role_hash, address, self.__get_transact_opts()
9494
))
9595

9696
def get_role_members(self, role: Role) -> List[str]:

nftlabs/modules/nft.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def __init__(self, address: str, client: Web3):
2323
self.__abi_module = NFT(client, address)
2424

2525
def mint(self, arg: MintArg) -> NftType:
26-
return self.mint_to(self.get_signer_address(), arg)
26+
return self.mint_to(self.__get_signer_address(), arg)
2727

2828
def mint_to(
2929
self,
@@ -44,8 +44,8 @@ def mint_to(
4444
'properties': final_properties
4545
}
4646

47-
uri = storage.upload(json.dumps(meta), self.address, self.get_signer_address())
48-
tx = self.__abi_module.mint_nft.build_transaction(to_address, uri, self.get_transact_opts())
47+
uri = storage.upload(json.dumps(meta), self.address, self.__get_signer_address())
48+
tx = self.__abi_module.mint_nft.build_transaction(to_address, uri, self.__get_transact_opts())
4949
receipt = self.execute_tx(tx)
5050
result = self.__abi_module.get_minted_event(tx_hash=receipt.transactionHash.hex())
5151
token_id = result[0]['args']['tokenId']
@@ -72,17 +72,17 @@ def __get_metadata_uri(self, nft_id: int):
7272
return uri
7373

7474
def mint_batch(self, args: List[MintArg]):
75-
return self.mint_batch_to(self.get_signer_address(), args)
75+
return self.mint_batch_to(self.__get_signer_address(), args)
7676

7777
def mint_batch_to(self, to_address: str, args: List[MintArg]):
7878
uris = [self.get_storage().upload(json.dumps({
7979
'name': arg.name,
8080
'description': arg.description,
8181
'image': arg.image_uri,
8282
'properties': arg.properties if arg.properties is not None else {}
83-
}), self.address, self.get_signer_address()) for arg in args]
83+
}), self.address, self.__get_signer_address()) for arg in args]
8484

85-
tx = self.__abi_module.mint_nft_batch.build_transaction(to_address, uris, self.get_transact_opts())
85+
tx = self.__abi_module.mint_nft_batch.build_transaction(to_address, uris, self.__get_transact_opts())
8686

8787
receipt = self.execute_tx(tx)
8888
result = self.__abi_module.get_minted_batch_event(tx_hash=receipt.transactionHash.hex())
@@ -92,7 +92,7 @@ def mint_batch_to(self, to_address: str, args: List[MintArg]):
9292
def burn(self, token_id: int):
9393
tx = self.__abi_module.burn.build_transaction(
9494
token_id,
95-
self.get_transact_opts()
95+
self.__get_transact_opts()
9696
)
9797
self.execute_tx(tx)
9898

@@ -101,7 +101,7 @@ def transfer_from(self, from_address: str, to_address: str, token_id: int):
101101
from_address,
102102
to_address,
103103
token_id,
104-
self.get_transact_opts()
104+
self.__get_transact_opts()
105105
)
106106
self.execute_tx(tx)
107107

@@ -110,15 +110,15 @@ def transfer_from(self, from_address: str, to_address: str, token_id: int):
110110
"""
111111
def transfer(self, to_address: str, token_id: int):
112112
tx = self.__abi_module.safe_transfer_from1.build_transaction(
113-
self.get_signer_address(),
113+
self.__get_signer_address(),
114114
to_address,
115115
token_id,
116-
self.get_transact_opts()
116+
self.__get_transact_opts()
117117
)
118118
self.execute_tx(tx)
119119

120120
def set_royalty_bps(self, amount: int):
121-
tx = self.__abi_module.set_royalty_bps.build_transaction(amount, self.get_transact_opts())
121+
tx = self.__abi_module.set_royalty_bps.build_transaction(amount, self.__get_transact_opts())
122122
self.execute_tx(tx)
123123

124124
def get_all(self) -> List[NftType]:
@@ -131,7 +131,7 @@ def get_all(self) -> List[NftType]:
131131
"""
132132
def get_owned(self, address: str = "") -> List[NftType]:
133133
if address == "":
134-
address = self.get_signer_address()
134+
address = self.__get_signer_address()
135135

136136
balance = self.__abi_module.balance_of.call(address)
137137
owned_tokens = [self.__token_of_owner_by_index(address, i) for i in range(balance)]
@@ -144,7 +144,7 @@ def __token_of_owner_by_index(self, address: str, token_id: int) -> int:
144144
Returns balance of the current signers wallet
145145
"""
146146
def balance(self) -> int:
147-
return self.__abi_module.balance_of.call(self.get_signer_address())
147+
return self.__abi_module.balance_of.call(self.__get_signer_address())
148148

149149
def balance_of(self, address: str) -> int:
150150
return self.__abi_module.balance_of.call(address)
@@ -157,22 +157,22 @@ def is_approved(self, address: str, operator: str) -> bool:
157157
"""
158158
def set_approval(self, operator: str, approved: bool = True):
159159
self.execute_tx(self.__abi_module.set_approval_for_all.call(
160-
operator, approved, self.get_transact_opts()
160+
operator, approved, self.__get_transact_opts()
161161
))
162162

163163
def grant_role(self, role: Role, address: str):
164164
role_hash = role.get_hash()
165165
self.execute_tx(self.__abi_module.grant_role.build_transaction(
166-
role_hash, address, self.get_transact_opts()
166+
role_hash, address, self.__get_transact_opts()
167167
))
168168

169169
def revoke_role(self, role, address: str):
170170
role_hash = role.get_hash()
171171
self.execute_tx(self.__abi_module.revoke_role.build_transaction(
172-
role_hash, address, self.get_transact_opts()
172+
role_hash, address, self.__get_transact_opts()
173173
))
174174

175175
def set_restricted_transfer(self, restricted: bool = True):
176176
self.execute_tx(self.__abi_module.set_restricted_transfer.build_transaction(
177-
restricted, self.get_transact_opts()
177+
restricted, self.__get_transact_opts()
178178
))

0 commit comments

Comments
 (0)