mirror of
https://git.wownero.com/lza_menace/wownero-python.git
synced 2024-08-15 03:25:25 +00:00
Optimize retrieval of master address
This commit is contained in:
parent
a184c3bea2
commit
8f888d2aca
8 changed files with 65 additions and 47 deletions
|
@ -49,7 +49,7 @@ class Account(object):
|
|||
|
||||
:rtype: :class:`SubAddress <monero.address.SubAddress>`
|
||||
"""
|
||||
return self._backend.addresses(account=self.index)[0]
|
||||
return self._backend.addresses(account=self.index, addr_indices=[0])[0]
|
||||
|
||||
def addresses(self):
|
||||
"""
|
||||
|
|
|
@ -162,8 +162,11 @@ class JSONRPCWallet(object):
|
|||
# doesn't return that detail here
|
||||
return Account(self, _account['account_index'], label=label), SubAddress(_account['address'])
|
||||
|
||||
def addresses(self, account=0):
|
||||
_addresses = self.raw_request('getaddress', {'account_index': account})
|
||||
def addresses(self, account=0, addr_indices=None):
|
||||
qdata = {'account_index': account}
|
||||
if addr_indices:
|
||||
qdata['address_index'] = addr_indices
|
||||
_addresses = self.raw_request('getaddress', qdata)
|
||||
addresses = [None] * (max(map(operator.itemgetter('address_index'), _addresses['addresses'])) + 1)
|
||||
for _addr in _addresses['addresses']:
|
||||
addresses[_addr['address_index']] = address(
|
||||
|
@ -412,6 +415,8 @@ _err2exc = {
|
|||
-5: exceptions.WrongPaymentId,
|
||||
-8: exceptions.TransactionNotFound,
|
||||
-9: exceptions.SignatureCheckFailed,
|
||||
-14: exceptions.AccountIndexOutOfBound,
|
||||
-15: exceptions.AddressIndexOutOfBound,
|
||||
-16: exceptions.TransactionNotPossible,
|
||||
-17: exceptions.NotEnoughMoney,
|
||||
-20: exceptions.AmountIsZero,
|
||||
|
|
|
@ -40,8 +40,8 @@ class OfflineWallet(object):
|
|||
def new_account(self, label=None):
|
||||
raise WalletIsOffline()
|
||||
|
||||
def addresses(self, account=0):
|
||||
if account == 0:
|
||||
def addresses(self, account=0, addr_indices=None):
|
||||
if account == 0 and (addr_indices == [0] or addr_indices is None):
|
||||
return [self._address]
|
||||
raise WalletIsOffline() # pragma: no cover (this should never happen)
|
||||
|
||||
|
|
|
@ -44,3 +44,9 @@ class WalletIsNotDeterministic(MoneroException):
|
|||
|
||||
class GenericTransferError(AccountException):
|
||||
pass
|
||||
|
||||
class AccountIndexOutOfBound(AccountException):
|
||||
pass
|
||||
|
||||
class AddressIndexOutOfBound(AccountException):
|
||||
pass
|
||||
|
|
|
@ -176,7 +176,7 @@ class Wallet(object):
|
|||
|
||||
:rtype: :class:`Address <monero.address.Address>`
|
||||
"""
|
||||
return self.accounts[0].addresses()[0]
|
||||
return self.accounts[0].address()
|
||||
|
||||
def addresses(self):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue