Changeset 298 for trunk

Show
Ignore:
Timestamp:
05/01/09 15:30:42 (3 years ago)
Author:
ocjhb
Message:

freshenup only when needed, automatic after redeem

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/sandbox/jhb/oc2/wallet.py

    r297 r298  
    255255        response = self.requestTransfer(transport,tid,target,[],picked) 
    256256        newcoins = [c for c in coins if c not in picked] 
    257         currency['coins'] = newcoins 
     257        currency['coins'] = newcoins         
    258258        self.storage.save() 
    259  
     259        self.freshenUp(transport,cdd) 
    260260 
    261261 
     
    263263        currency = self.getCurrency(cdd.currencyId) 
    264264        paycoins,secrets,data = self.prepare4exchange(transport,cdd,currency['coins'],[]) 
    265         tid = self.makeSerial() 
    266         response = self.requestTransfer(transport,tid,None,data,paycoins) 
    267         coins = currency['coins'] 
    268         for coin in paycoins: 
    269             coins.pop(coins.index(coin)) 
    270         coins.extend(self.unblindWithSignatures(secrets,response.signatures))  
    271         self.storage.save() 
     265        if secrets: 
     266            tid = self.makeSerial() 
     267            response = self.requestTransfer(transport,tid,None,data,paycoins) 
     268            coins = currency['coins'] 
     269            for coin in paycoins: 
     270                coins.pop(coins.index(coin)) 
     271            coins.extend(self.unblindWithSignatures(secrets,response.signatures))  
     272            self.storage.save() 
    272273 
    273274    def prepare4exchange(self,transport,cdd,oldcoins,newcoins): 
     
    280281        keep,pay,blank = coinsplitting.prepare_for_exchange(denominations,oldvalues,newvalues) 
    281282         
    282         paycoins = [] 
    283         for value in pay: 
    284             for coin in oldcoins: 
    285                 if int(coin.denomination) == value: 
    286                     paycoins.append(oldcoins.pop(oldcoins.index(coin))) 
    287                     break 
    288          
    289         secrets,data = self.prepareBlanks(transport,cdd,blank) 
    290         return paycoins,secrets,data 
     283        if blank: 
     284            paycoins = [] 
     285            for value in pay: 
     286                for coin in oldcoins: 
     287                    if int(coin.denomination) == value: 
     288                        paycoins.append(oldcoins.pop(oldcoins.index(coin))) 
     289                        break 
     290         
     291            secrets,data = self.prepareBlanks(transport,cdd,blank) 
     292            return paycoins,secrets,data 
     293        else: 
     294            return [],[],[]