Changeset 215
- Timestamp:
- 03/16/08 21:29:30 (4 years ago)
- Location:
- trunk/pyopencoin/oc
- Files:
-
- 3 modified
-
entities.py (modified) (2 diffs)
-
protocols.py (modified) (6 diffs)
-
tests.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pyopencoin/oc/entities.py
r197 r215 284 284 >>> stt = transports.SimpleTestTransport() 285 285 >>> w.listen(stt) 286 >>> stt.send('HANDSHAKE', {'protocol': 'opencoin 1.0'})286 >>> stt.send('HANDSHAKE',[['protocol', 'opencoin 1.0']]) 287 287 <Message('HANDSHAKE_ACCEPT',None)> 288 288 >>> stt.send('sendMoney',[1,2]) … … 558 558 >>> stt = transports.SimpleTestTransport() 559 559 >>> i.listen(stt) 560 >>> stt.send('HANDSHAKE', {'protocol': 'opencoin 1.0'})560 >>> stt.send('HANDSHAKE',[['protocol', 'opencoin 1.0']]) 561 561 <Message('HANDSHAKE_ACCEPT',None)> 562 562 >>> stt.send('TRANSFER_TOKEN_REQUEST',[tid, 'my account', [], [tests.coinA.toPython()], [['type', 'redeem']]]) -
trunk/pyopencoin/oc/protocols.py
r211 r215 72 72 def initiateHandshake(self,message): 73 73 self.newState(self.verifyHandshake) 74 return Message('HANDSHAKE', {'protocol': 'opencoin 1.0'})74 return Message('HANDSHAKE',[['protocol', 'opencoin 1.0']]) 75 75 76 76 def verifyHandshake(self, message): 77 77 if message.type == 'HANDSHAKE_ACCEPT': 78 78 self.newState(self.firstStep) 79 # FIXME: If we have handshakes that return things, we need to check for them here 79 80 return self.firstStep(message) 80 81 … … 101 102 def start(self,message): 102 103 if message.type == 'HANDSHAKE': 103 if message.data['protocol'] == 'opencoin 1.0': 104 105 # NOTE: We do not do set up the newState. If this fails, it comes right back to handshakes 106 if not isinstance(message.data, types.ListType): 107 return ProtocolErrorMessage('aHP') 108 109 for var in message.data: 110 try: 111 key, value = var 112 except ValueError: 113 return ProtocolErrorMessage('aHP') 114 115 if not message.data: 116 return ProtocolErrorMessage('aHP') 117 118 # Make a dictionary of options in the handshake 119 120 options = {} 121 for var in message.data: 122 key, value = var 123 if key in options: 124 raise ProtocolErrorMessage('aHP') 125 126 options[key] = value 127 128 # FIXME: If we allow opencoin 1.0+, we need to check for that as well 129 if options['protocol'] == 'opencoin 1.0': 104 130 # Set up a state where the handshake no longer is needed. 105 131 self.old_start = self.start … … 140 166 >>> css = TokenSpendSender([coin1,coin2],'foobar') 141 167 >>> css.state(Message(None)) 142 <Message('HANDSHAKE', {'protocol': 'opencoin 1.0'})>168 <Message('HANDSHAKE',[['protocol', 'opencoin 1.0']])> 143 169 >>> css.state(Message('HANDSHAKE_ACCEPT',None)) 144 170 <Message('SUM_ANNOUNCE',['...', '3', 'foobar'])> … … 378 404 >>> tts = TransferTokenSender('my account',[],[coin1, coin2],type='redeem') 379 405 >>> tts.state(Message(None)) 380 <Message('HANDSHAKE', {'protocol': 'opencoin 1.0'})>406 <Message('HANDSHAKE',[['protocol', 'opencoin 1.0']])> 381 407 >>> tts.state(Message('HANDSHAKE_ACCEPT',None)) 382 408 <Message('TRANSFER_TOKEN_REQUEST',['...', 'my account', [], [[(...)], [(...)]], [['type', 'redeem']]])> … … 874 900 >>> fmp = fetchMintKeyProtocol(denominations=['1']) 875 901 >>> fmp.state(Message(None)) 876 <Message('HANDSHAKE', {'protocol': 'opencoin 1.0'})>902 <Message('HANDSHAKE',[['protocol', 'opencoin 1.0']])> 877 903 >>> fmp.state(Message('HANDSHAKE_ACCEPT',None)) 878 904 <Message('MINT_KEY_FETCH_DENOMINATION',[['1'], '0'])> … … 892 918 >>> fmp = fetchMintKeyProtocol(keyids=['sj17RxE1hfO06+oTgBs9Z7xLut/3NN+nHJbXSJYTks0=']) 893 919 >>> fmp.state(Message(None)) 894 <Message('HANDSHAKE', {'protocol': 'opencoin 1.0'})>920 <Message('HANDSHAKE',[['protocol', 'opencoin 1.0']])> 895 921 >>> fmp.state(Message('HANDSHAKE_ACCEPT')) 896 922 <Message('MINT_KEY_FETCH_KEYID',['sj17RxE1hfO06+oTgBs9Z7xLut/3NN+nHJbXSJYTks0='])> -
trunk/pyopencoin/oc/tests.py
r211 r215 19 19 >>> t = ClientTest(issuer.listen) 20 20 >>> walletA.fetchMintKey(t,denominations=['1']) 21 Client <Message('HANDSHAKE', {'protocol': 'opencoin 1.0'})>21 Client <Message('HANDSHAKE',[['protocol', 'opencoin 1.0']])> 22 22 Server <Message('HANDSHAKE_ACCEPT',None)> 23 23 Client <Message('MINT_KEY_FETCH_DENOMINATION',[['1'], '0'])> … … 32 32 >>> t = ClientTest(issuer.listen) 33 33 >>> walletA.fetchMintKey(t,denominations=['1']) 34 Client <Message('HANDSHAKE', {'protocol': 'opencoin 1.0'})>34 Client <Message('HANDSHAKE',[['protocol', 'opencoin 1.0']])> 35 35 Server <Message('HANDSHAKE_ACCEPT',None)> 36 36 Client <Message('MINT_KEY_FETCH_DENOMINATION',[['1'], '0'])> … … 46 46 >>> walletB.coins = [coin1, coin2] 47 47 >>> walletB.transferTokens(t,'myaccount',[],[coin1, coin2],type='redeem') 48 Client <Message('HANDSHAKE', {'protocol': 'opencoin 1.0'})>48 Client <Message('HANDSHAKE',[['protocol', 'opencoin 1.0']])> 49 49 Server <Message('HANDSHAKE_ACCEPT',None)> 50 50 Client <Message('TRANSFER_TOKEN_REQUEST',['...', 'myaccount', [], [[(...)], [(...)]], [['type', 'redeem']]])> … … 69 69 70 70 >>> walletB.transferTokens(t, 'myaccount', blanks, walletB.coins, type='exchange') 71 Client <Message('HANDSHAKE', {'protocol': 'opencoin 1.0'})>71 Client <Message('HANDSHAKE',[['protocol', 'opencoin 1.0']])> 72 72 Server <Message('HANDSHAKE_ACCEPT',None)> 73 73 Client <Message('TRANSFER_TOKEN_REQUEST',['...', 'myaccount', [['...', ['...', '...', '...']]], [[(...)], [(...)]], [['type', 'exchange']]])> … … 86 86 >>> walletA.coins=[coin1] 87 87 >>> walletA.sendCoins(t, target='a book', amount=1) 88 walletA <Message('HANDSHAKE', {'protocol': 'opencoin 1.0'})>88 walletA <Message('HANDSHAKE',[['protocol', 'opencoin 1.0']])> 89 89 walletB <Message('HANDSHAKE_ACCEPT',None)> 90 90 walletA <Message('SUM_ANNOUNCE',['...', '...', '...', '1', 'a book'])> 91 91 walletB <Message('SUM_ACCEPT',None)> 92 92 walletA <Message('SPEND_TOKEN_REQUEST',['...', [[(...)]], 'a book'])> 93 walletB <Message('HANDSHAKE', {'protocol': 'opencoin 1.0'})>93 walletB <Message('HANDSHAKE',[['protocol', 'opencoin 1.0']])> 94 94 issuer <Message('HANDSHAKE_ACCEPT',None)> 95 95 walletB <Message('TRANSFER_TOKEN_REQUEST',['...', 'my account', [], [[(...)]], [['type', 'redeem']]])>
