| 46 | | |
| | 50 | |
| | 51 | postmapping = dict(addcurrency = self.addCurrency, |
| | 52 | mint = self.mintCoins, |
| | 53 | redeem = self.redeemCoins, |
| | 54 | delcurrency = self.delCurrency, |
| | 55 | spend = self.spendCoins) |
| | 56 | |
| | 57 | getmapping = dict(addcurrency = self.displayAddCurrency, |
| | 58 | mint = self.displayMint, |
| | 59 | redeem = self.displayRedeem, |
| | 60 | spend = self.displaySpend, |
| | 61 | delcurrency = self.displayDelCurrency, |
| | 62 | freshenup = self.freshenUp) |
| 60 | | elif action == 'addcurrency': |
| 61 | | self.displayAddCurrency() |
| 62 | | elif action == 'mint': |
| 63 | | self.displayMint() |
| 64 | | |
| 65 | | |
| 66 | | def addCurrency(self): |
| 67 | | url = self.form.getfirst('url','') |
| 68 | | if url: |
| 69 | | transport = transports.HTTPTransport(url) |
| 70 | | w.wallet.addCurrency(transport) |
| 71 | | storage.save() |
| 72 | | self.displayMain() |
| 73 | | |
| 74 | | |
| 75 | | def mintCoins(self): |
| 76 | | amount = int(self.form.getfirst('amount',1)) |
| 77 | | reference = self.form.getfirst('reference') |
| 78 | | cdd,wehave = self.getCurrency(self.form.getfirst('currencyId')) |
| 79 | | transport = transports.HTTPTransport(cdd.issuerServiceLocation) |
| 80 | | self.wallet.mintCoins(transport,amount,reference) |
| 81 | | self.storage.save() |
| 82 | | self.displayMain() |
| | 75 | |
| | 76 | |
| | 77 | ################################ main ################################################ |
| | 135 | |
| | 136 | |
| | 137 | ############################### delete a currency #################################### |
| | 138 | |
| | 139 | def displayDelCurrency(self): |
| | 140 | currencyId = self.form.getfirst('currencyId','') |
| | 141 | cdd,amount = self.getCurrency(currencyId) |
| | 142 | html=""" |
| | 143 | <html><body> |
| | 144 | <h2>Remove %s</h2> |
| | 145 | <form action='%s' method='post'> |
| | 146 | <p>Really really delete %s with %s coins - there is no way to recover</p> |
| | 147 | <p><input type='submit' value='Remove %ss'/> |
| | 148 | or |
| | 149 | |
| | 150 | <a href='%s'>go back to main screen</a> |
| | 151 | </p> |
| | 152 | <input type='hidden' name='action' value='delcurrency'/> |
| | 153 | <input type='hidden' name='currencyId' value='%s'/> |
| | 154 | </form> |
| | 155 | </body></html> |
| | 156 | """ % (currencyId,baseurl,currencyId,amount,currencyId,baseurl,currencyId) |
| | 157 | self.out(html) |
| | 158 | |
| | 159 | def delCurrency(self): |
| | 160 | id = self.form.getfirst('currencyId','') |
| | 161 | self.wallet.deleteCurrency(id) |
| | 162 | self.storage.save() |
| | 163 | self.displayMain() |
| | 164 | |
| | 165 | |
| | 166 | ############################### minting #################################### |
| | 167 | |
| | 168 | def mintCoins(self): |
| | 169 | amount = int(self.form.getfirst('amount',1)) |
| | 170 | reference = self.form.getfirst('reference') |
| | 171 | cdd,wehave = self.getCurrency(self.form.getfirst('currencyId')) |
| | 172 | transport = transports.HTTPTransport(cdd.issuerServiceLocation) |
| | 173 | self.wallet.mintCoins(transport,amount,reference) |
| | 174 | self.storage.save() |
| | 175 | self.displayMain() |
| | 176 | |
| | 177 | |
| 141 | | |
| | 197 | ############################### redeem #################################### |
| | 198 | |
| | 199 | def redeemCoins(self): |
| | 200 | amount = int(self.form.getfirst('amount',1)) |
| | 201 | reference = self.form.getfirst('reference') |
| | 202 | cdd,wehave = self.getCurrency(self.form.getfirst('currencyId')) |
| | 203 | transport = transports.HTTPTransport(cdd.issuerServiceLocation) |
| | 204 | self.wallet.redeemCoins(transport,amount,reference) |
| | 205 | self.storage.save() |
| | 206 | self.displayMain() |
| | 207 | |
| | 208 | |
| | 209 | def displayRedeem(self): |
| | 210 | currencyId = self.form.getfirst('currencyId','coin') |
| | 211 | html=""" |
| | 212 | <html><body> |
| | 213 | <h2>Redeem coins</h2> |
| | 214 | <form action='%s' method='post'> |
| | 215 | How many <b>%ss</b><br> |
| | 216 | <input type='number' name='amount' value='1' /><br> |
| | 217 | Optional message<br> |
| | 218 | <input type='text' name='reference' value='secret' /><br> |
| | 219 | <input type='submit' /> |
| | 220 | <input type='hidden' name='action' value='redeem'/> |
| | 221 | <input type='hidden' name='currencyId' value='%s'/> |
| | 222 | </form> |
| | 223 | </body></html> |
| | 224 | |
| | 225 | """ % (baseurl,currencyId,currencyId) |
| | 226 | self.out(html) |
| | 227 | |
| | 228 | ############################### spend #################################### |
| | 229 | |
| | 230 | def spendCoins(self): |
| | 231 | amount = int(self.form.getfirst('amount',1)) |
| | 232 | reference = self.form.getfirst('reference') |
| | 233 | url = self.form.getfirst('url') |
| | 234 | url = 'http://%s:9091' % url |
| | 235 | cid = self.form.getfirst('currencyId') |
| | 236 | transport = transports.HTTPTransport(url) |
| | 237 | self.wallet.spendCoins(transport,cid,amount,reference) |
| | 238 | self.storage.save() |
| | 239 | self.displayMain() |
| | 240 | |
| | 241 | |
| | 242 | def displaySpend(self): |
| | 243 | currencyId = self.form.getfirst('currencyId','coin') |
| | 244 | html=""" |
| | 245 | <html><body> |
| | 246 | <h2>Pay someone</h2> |
| | 247 | <form action='%s' method='post'> |
| | 248 | Recipient<br/> |
| | 249 | <input type='text' name='url' value='192.168.1.66' /><br> |
| | 250 | How many <b>%ss</b><br> |
| | 251 | <input type='number' name='amount' value='1' /><br> |
| | 252 | Optional message<br> |
| | 253 | <input type='text' name='reference' value='secret' /><br> |
| | 254 | Please make sure the other side is ready to accept!<br> |
| | 255 | <input type='submit' /> |
| | 256 | <input type='hidden' name='action' value='spend'/> |
| | 257 | <input type='hidden' name='currencyId' value='%s'/> |
| | 258 | </form> |
| | 259 | </body></html> |
| | 260 | |
| | 261 | """ % (baseurl,currencyId,currencyId) |
| | 262 | self.out(html) |
| | 263 | |
| | 264 | ############################### freshenUp #################################### |
| | 265 | |
| | 266 | def freshenUp(self): |
| | 267 | cdd,wehave = self.getCurrency(self.form.getfirst('currencyId')) |
| | 268 | transport = transports.HTTPTransport(cdd.issuerServiceLocation) |
| | 269 | self.wallet.freshenUp(transport,cdd) |
| | 270 | self.storage.save() |
| | 271 | self.displayMain() |
| | 272 | |
| | 273 | |
| | 274 | ############################### freshenUp #################################### |
| | 275 | |
| | 276 | def receiveCoins(self): |
| | 277 | message = transports.createMessage(self.form.list[0].name) |
| | 278 | |
| | 279 | if message.header == 'SumAnnounce': |
| | 280 | answer = self.wallet.listenSum(message) |
| | 281 | if message.header == 'SpendRequest': |
| | 282 | cdd,wehave = self.getCurrency(message.coins[0].currencyId) |
| | 283 | transport = transports.HTTPTransport(cdd.issuerServiceLocation) |
| | 284 | answer = self.wallet.listenSpend(transport,message) |
| | 285 | self.storage.save() |
| | 286 | self.mimetype='text/plain' |
| | 287 | self.out(answer.toString(True)) |
| | 288 | |