aInitMeta -> AsyncInit
This commit is contained in:
parent
d00dc7987b
commit
21c9690069
6 changed files with 28 additions and 43 deletions
|
|
@ -1140,15 +1140,12 @@ re-import your addresses.
|
|||
d.update(self.al_ids[al_id].make_reverse_dict_addrlist(coinaddrs))
|
||||
return d
|
||||
|
||||
class TwAddrData(AddrData,metaclass=aInitMeta):
|
||||
class TwAddrData(AddrData,metaclass=AsyncInit):
|
||||
|
||||
def __new__(cls,proto,*args,**kwargs):
|
||||
return MMGenObject.__new__(altcoin_subclass(cls,proto,'tw'))
|
||||
|
||||
def __init__(self,proto,*args,**kwargs):
|
||||
pass
|
||||
|
||||
async def __ainit__(self,proto,wallet=None):
|
||||
async def __init__(self,proto,wallet=None):
|
||||
self.proto = proto
|
||||
from .rpc import rpc_init
|
||||
self.rpc = await rpc_init(proto)
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ from . import rlp
|
|||
|
||||
from mmgen.globalvars import g
|
||||
from mmgen.common import *
|
||||
from mmgen.obj import MMGenObject,CoinAddr,TokenAddr,CoinTxID,ETHAmt,aInitMeta
|
||||
from mmgen.obj import MMGenObject,CoinAddr,TokenAddr,CoinTxID,ETHAmt,AsyncInit
|
||||
from mmgen.util import msg
|
||||
|
||||
try:
|
||||
|
|
@ -156,12 +156,9 @@ class Token(TokenBase):
|
|||
self.base_unit = Decimal('10') ** -self.decimals
|
||||
self.rpc = rpc
|
||||
|
||||
class TokenResolve(TokenBase,metaclass=aInitMeta):
|
||||
class TokenResolve(TokenBase,metaclass=AsyncInit):
|
||||
|
||||
def __init__(self,*args,**kwargs):
|
||||
return super().__init__()
|
||||
|
||||
async def __ainit__(self,proto,rpc,addr):
|
||||
async def __init__(self,proto,rpc,addr):
|
||||
self.proto = proto
|
||||
self.rpc = rpc
|
||||
self.addr = TokenAddr(proto,addr)
|
||||
|
|
|
|||
|
|
@ -152,8 +152,8 @@ class EthereumTokenTrackingWallet(EthereumTrackingWallet):
|
|||
symbol = None
|
||||
cur_eth_balances = {}
|
||||
|
||||
async def __ainit__(self,proto,mode='r',token_addr=None):
|
||||
await super().__ainit__(proto,mode=mode)
|
||||
async def __init__(self,proto,mode='r',token_addr=None):
|
||||
await super().__init__(proto,mode=mode)
|
||||
|
||||
for v in self.data['tokens'].values():
|
||||
self.conv_types(v)
|
||||
|
|
@ -244,10 +244,10 @@ Actions: [q]uit view, [p]rint to file, pager [v]iew, [w]ide view,
|
|||
'q':'a_quit','p':'a_print','v':'a_view','w':'a_view_wide',
|
||||
'l':'a_lbl_add','D':'a_addr_delete','R':'a_balance_refresh' }
|
||||
|
||||
async def __ainit__(self,proto,*args,**kwargs):
|
||||
async def __init__(self,proto,*args,**kwargs):
|
||||
if g.cached_balances:
|
||||
self.hdr_fmt += '\n' + yellow('WARNING: Using cached balances. These may be out of date!')
|
||||
await TwUnspentOutputs.__ainit__(self,proto,*args,**kwargs)
|
||||
await TwUnspentOutputs.__init__(self,proto,*args,**kwargs)
|
||||
|
||||
def do_sort(self,key=None,reverse=False):
|
||||
if key == 'txid': return
|
||||
|
|
@ -289,7 +289,7 @@ class EthereumTwAddrList(TwAddrList):
|
|||
|
||||
has_age = False
|
||||
|
||||
async def __ainit__(self,proto,usr_addr_list,minconf,showempty,showbtcaddrs,all_labels,wallet=None):
|
||||
async def __init__(self,proto,usr_addr_list,minconf,showempty,showbtcaddrs,all_labels,wallet=None):
|
||||
|
||||
self.proto = proto
|
||||
self.wallet = wallet or await TrackingWallet(self.proto,mode='w')
|
||||
|
|
@ -322,9 +322,9 @@ class EthereumTwGetBalance(TwGetBalance):
|
|||
|
||||
fs = '{w:13} {c}\n' # TODO - for now, just suppress display of meaningless data
|
||||
|
||||
async def __ainit__(self,proto,*args,**kwargs):
|
||||
async def __init__(self,proto,*args,**kwargs):
|
||||
self.wallet = await TrackingWallet(proto,mode='w')
|
||||
await TwGetBalance.__ainit__(self,proto,*args,**kwargs)
|
||||
await TwGetBalance.__init__(self,proto,*args,**kwargs)
|
||||
|
||||
async def create_data(self):
|
||||
data = self.wallet.mmid_ordered_dict
|
||||
|
|
|
|||
|
|
@ -28,10 +28,10 @@ from .exception import *
|
|||
from .globalvars import *
|
||||
from .color import *
|
||||
|
||||
class aInitMeta(type):
|
||||
class AsyncInit(type):
|
||||
async def __call__(cls,*args,**kwargs):
|
||||
instance = super().__call__(*args,**kwargs)
|
||||
await instance.__ainit__(*args,**kwargs)
|
||||
instance = cls.__new__(cls,*args,**kwargs)
|
||||
await type(instance).__init__(instance,*args,**kwargs)
|
||||
return instance
|
||||
|
||||
def get_obj(objname,*args,**kwargs):
|
||||
|
|
|
|||
16
mmgen/rpc.py
16
mmgen/rpc.py
|
|
@ -23,7 +23,7 @@ rpc.py: Cryptocoin RPC library for the MMGen suite
|
|||
import base64,json,asyncio
|
||||
from decimal import Decimal
|
||||
from .common import *
|
||||
from .obj import aInitMeta
|
||||
from .obj import AsyncInit
|
||||
|
||||
rpc_credentials_msg = '\n'+fmt("""
|
||||
Error: no {proto_name} RPC authentication method found
|
||||
|
|
@ -397,15 +397,12 @@ class RPCClient(MMGenObject):
|
|||
except: m = text
|
||||
raise RPCFailure(f'{s.value} {s.name}: {m}')
|
||||
|
||||
class BitcoinRPCClient(RPCClient,metaclass=aInitMeta):
|
||||
class BitcoinRPCClient(RPCClient,metaclass=AsyncInit):
|
||||
|
||||
auth_type = 'basic'
|
||||
has_auth_cookie = True
|
||||
|
||||
def __init__(self,*args,**kwargs):
|
||||
pass
|
||||
|
||||
async def __ainit__(self,proto,daemon,backend):
|
||||
async def __init__(self,proto,daemon,backend):
|
||||
|
||||
self.proto = proto
|
||||
self.daemon = daemon
|
||||
|
|
@ -579,12 +576,9 @@ class BitcoinRPCClient(RPCClient,metaclass=aInitMeta):
|
|||
'walletpassphrase',
|
||||
)
|
||||
|
||||
class EthereumRPCClient(RPCClient,metaclass=aInitMeta):
|
||||
class EthereumRPCClient(RPCClient,metaclass=AsyncInit):
|
||||
|
||||
def __init__(self,*args,**kwargs):
|
||||
pass
|
||||
|
||||
async def __ainit__(self,proto,daemon,backend):
|
||||
async def __init__(self,proto,daemon,backend):
|
||||
self.proto = proto
|
||||
self.daemon = daemon
|
||||
self.call_sigs = getattr(getattr(CallSigs,proto.base_proto),daemon.id,None)
|
||||
|
|
|
|||
19
mmgen/tw.py
19
mmgen/tw.py
|
|
@ -64,7 +64,7 @@ if os.getenv('MMGEN_BOGUS_WALLET_DATA'):
|
|||
for o in us:
|
||||
o.date = 1831006505 - int(9.7 * 60 * (o.confs - 1))
|
||||
|
||||
class TwUnspentOutputs(MMGenObject,metaclass=aInitMeta):
|
||||
class TwUnspentOutputs(MMGenObject,metaclass=AsyncInit):
|
||||
|
||||
def __new__(cls,proto,*args,**kwargs):
|
||||
return MMGenObject.__new__(altcoin_subclass(cls,proto,'tw'))
|
||||
|
|
@ -121,7 +121,7 @@ Actions: [q]uit view, [p]rint to file, pager [v]iew, [w]ide view, add [l]abel:
|
|||
def amt2(self,value):
|
||||
return self.proto.coin_amt(value)
|
||||
|
||||
async def __ainit__(self,proto,minconf=1,addrs=[]):
|
||||
async def __init__(self,proto,minconf=1,addrs=[]):
|
||||
self.proto = proto
|
||||
self.unspent = self.MMGenTwOutputList()
|
||||
self.fmt_display = ''
|
||||
|
|
@ -539,7 +539,7 @@ Actions: [q]uit view, [p]rint to file, pager [v]iew, [w]ide view, add [l]abel:
|
|||
else:
|
||||
return _date_formatter[age_fmt](self.rpc,o.date)
|
||||
|
||||
class TwAddrList(MMGenDict,metaclass=aInitMeta):
|
||||
class TwAddrList(MMGenDict,metaclass=AsyncInit):
|
||||
has_age = True
|
||||
age_fmts = TwUnspentOutputs.age_fmts
|
||||
age_disp = TwUnspentOutputs.age_disp
|
||||
|
|
@ -547,10 +547,7 @@ class TwAddrList(MMGenDict,metaclass=aInitMeta):
|
|||
def __new__(cls,proto,*args,**kwargs):
|
||||
return MMGenDict.__new__(altcoin_subclass(cls,proto,'tw'),*args,**kwargs)
|
||||
|
||||
def __init__(self,proto,*args,**kwargs):
|
||||
pass
|
||||
|
||||
async def __ainit__(self,proto,usr_addr_list,minconf,showempty,showbtcaddrs,all_labels,wallet=None):
|
||||
async def __init__(self,proto,usr_addr_list,minconf,showempty,showbtcaddrs,all_labels,wallet=None):
|
||||
|
||||
def check_dup_mmid(acct_labels):
|
||||
mmid_prev,err = None,False
|
||||
|
|
@ -702,7 +699,7 @@ class TwAddrList(MMGenDict,metaclass=aInitMeta):
|
|||
|
||||
return '\n'.join(gen_output())
|
||||
|
||||
class TrackingWallet(MMGenObject,metaclass=aInitMeta):
|
||||
class TrackingWallet(MMGenObject,metaclass=AsyncInit):
|
||||
|
||||
caps = ('rescan','batch')
|
||||
data_key = 'addresses'
|
||||
|
|
@ -713,7 +710,7 @@ class TrackingWallet(MMGenObject,metaclass=aInitMeta):
|
|||
def __new__(cls,proto,*args,**kwargs):
|
||||
return MMGenObject.__new__(altcoin_subclass(cls,proto,'tw'))
|
||||
|
||||
async def __ainit__(self,proto,mode='r',token_addr=None):
|
||||
async def __init__(self,proto,mode='r',token_addr=None):
|
||||
|
||||
assert mode in ('r','w','i'), "{!r}: wallet mode must be 'r','w' or 'i'".format(mode)
|
||||
if mode == 'i':
|
||||
|
|
@ -986,14 +983,14 @@ class TrackingWallet(MMGenObject,metaclass=aInitMeta):
|
|||
async def remove_address(self,addr):
|
||||
raise NotImplementedError(f'address removal not implemented for coin {self.proto.coin}')
|
||||
|
||||
class TwGetBalance(MMGenObject,metaclass=aInitMeta):
|
||||
class TwGetBalance(MMGenObject,metaclass=AsyncInit):
|
||||
|
||||
fs = '{w:13} {u:<16} {p:<16} {c}'
|
||||
|
||||
def __new__(cls,proto,*args,**kwargs):
|
||||
return MMGenObject.__new__(altcoin_subclass(cls,proto,'tw'))
|
||||
|
||||
async def __ainit__(self,proto,minconf,quiet):
|
||||
async def __init__(self,proto,minconf,quiet):
|
||||
|
||||
self.minconf = minconf
|
||||
self.quiet = quiet
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue