def test_ltc_to_btc_exchange(self): self.setup_mnemonic_nopin_nopassphrase() self.client.apply_policy('ShapeShift', 1) # tx: 08ebb7932ff4cd631f82e999b4d2f4dba119a8519991f7d13cbf12dfb3d7f3b2 # input 0: 5.83579345 BTC print "This is a test" inp1 = proto_types.TxInputType( address_n=[0], # 1rExUsv6RScHtQiLeSUv4ERGaAdxJTmDg # amount=583579345, prev_hash=binascii.unhexlify( '08ebb7932ff4cd631f82e999b4d2f4dba119a8519991f7d13cbf12dfb3d7f3b2' ), prev_index=0, ) signed_exchange_out1 = proto_exchange.SignedExchangeResponse( response=proto_exchange.ExchangeResponse( withdrawal_amount=533594, withdrawal_address=proto_exchange.ExchangeAddress( coin_type='btc', address='19nkmC2y4Rq3DXia7Um5YW9hxkRhwA5ABN'), deposit_amount=90000000, deposit_address=proto_exchange.ExchangeAddress( coin_type='ltc', address='LiZ9EjjyZYuKdkBSqzc7ZVHNQPubcUKuNC'), return_address=proto_exchange.ExchangeAddress( coin_type='ltc', address='LhvxkkwMCjDAwyprNHhYW8PE9oNf6wSd2V'), expiration=1471629998149, quoted_rate=626216, api_key=binascii.unhexlify( '6ad5831b778484bb849da45180ac35047848e5cac0fa666454f4ff78b8c7399fea6a8ce2c7ee6287bcd78db6610ca3f538d6b3e90ca80c8e6368b6021445950b' ), miner_fee=30000, order_id=binascii.unhexlify( 'bfe3a6b0afc64126a4d47612d229debf'), ), signature=binascii.unhexlify( '20cb8e122ab35ea5d7e4344ce57f1da9d3deba6f19178c5e7184fb2091a3101848784035d315ccff7282d08dc018686b583f794f8b6f0ad006d8423df6b85e2977' )) exchange_type_out1 = proto_types.ExchangeType( signed_exchange_response=signed_exchange_out1, withdrawal_coin_name='Bitcoin', withdrawal_address_n=[2147483692, 2147483648, 2147483649, 0, 3], return_address_n=[2147483692, 2147483650, 2147483649, 0, 1], ) # Exhange Output address out1 = proto_types.TxOutputType( amount=90000000, address='LiZ9EjjyZYuKdkBSqzc7ZVHNQPubcUKuNC', script_type=proto_types.PAYTOADDRESS, address_type=3, exchange_type=exchange_type_out1, ) with self.client: self.client.set_expected_responses([ proto.TxRequest( request_type=proto_types.TXINPUT, details=proto_types.TxRequestDetailsType(request_index=0)), proto.TxRequest( request_type=proto_types.TXMETA, details=proto_types. TxRequestDetailsType(tx_hash=binascii.unhexlify( "08ebb7932ff4cd631f82e999b4d2f4dba119a8519991f7d13cbf12dfb3d7f3b2" ))), proto.TxRequest( request_type=proto_types.TXINPUT, details=proto_types.TxRequestDetailsType( request_index=0, tx_hash=binascii.unhexlify( "08ebb7932ff4cd631f82e999b4d2f4dba119a8519991f7d13cbf12dfb3d7f3b2" ))), proto.TxRequest( request_type=proto_types.TXOUTPUT, details=proto_types.TxRequestDetailsType( request_index=0, tx_hash=binascii.unhexlify( "08ebb7932ff4cd631f82e999b4d2f4dba119a8519991f7d13cbf12dfb3d7f3b2" ))), proto.TxRequest( request_type=proto_types.TXOUTPUT, details=proto_types.TxRequestDetailsType( request_index=1, tx_hash=binascii.unhexlify( "08ebb7932ff4cd631f82e999b4d2f4dba119a8519991f7d13cbf12dfb3d7f3b2" ))), proto.TxRequest( request_type=proto_types.TXOUTPUT, details=proto_types.TxRequestDetailsType(request_index=0)), proto.ButtonRequest( code=proto_types.ButtonRequest_SignExchange), proto.ButtonRequest( code=proto_types.ButtonRequest_FeeOverThreshold), proto.ButtonRequest(code=proto_types.ButtonRequest_SignTx), proto.TxRequest( request_type=proto_types.TXINPUT, details=proto_types.TxRequestDetailsType(request_index=0)), proto.TxRequest( request_type=proto_types.TXOUTPUT, details=proto_types.TxRequestDetailsType(request_index=0)), proto.TxRequest( request_type=proto_types.TXOUTPUT, details=proto_types.TxRequestDetailsType(request_index=0)), proto.TxRequest(request_type=proto_types.TXFINISHED), ]) self.client.sign_tx('Litecoin', [ inp1, ], [ out1, ]) #reset policy ("ShapeShift") self.client.apply_policy('ShapeShift', 0)
def test_ltc_to_btc_return_address_error(self): self.setup_mnemonic_nopin_nopassphrase() self.client.apply_policy('ShapeShift', 1) # tx: 08ebb7932ff4cd631f82e999b4d2f4dba119a8519991f7d13cbf12dfb3d7f3b2 # input 0: 5.83579345 BTC inp1 = proto_types.TxInputType( address_n=[0], # 1rExUsv6RScHtQiLeSUv4ERGaAdxJTmDg # amount=583579345, prev_hash=binascii.unhexlify( '08ebb7932ff4cd631f82e999b4d2f4dba119a8519991f7d13cbf12dfb3d7f3b2' ), prev_index=0, ) signed_exchange_out1 = proto_exchange.SignedExchangeResponse( response=proto_exchange.ExchangeResponse( withdrawal_amount=533594, withdrawal_address=proto_exchange.ExchangeAddress( coin_type='btc', address='19nkmC2y4Rq3DXia7Um5YW9hxkRhwA5ABN'), deposit_amount=90000000, deposit_address=proto_exchange.ExchangeAddress( coin_type='ltc', address='LiZ9EjjyZYuKdkBSqzc7ZVHNQPubcUKuNC'), return_address=proto_exchange.ExchangeAddress( coin_type='ltc', address='LhvxkkwMCjDAwyprNHhYW8PE9oNf6wSd2V'), expiration=1471629998149, quoted_rate=626216, api_key=binascii.unhexlify( '6ad5831b778484bb849da45180ac35047848e5cac0fa666454f4ff78b8c7399fea6a8ce2c7ee6287bcd78db6610ca3f538d6b3e90ca80c8e6368b6021445950b' ), miner_fee=30000, order_id=binascii.unhexlify( 'bfe3a6b0afc64126a4d47612d229debf'), ), signature=binascii.unhexlify( '20cb8e122ab35ea5d7e4344ce57f1da9d3deba6f19178c5e7184fb2091a3101848784035d315ccff7282d08dc018686b583f794f8b6f0ad006d8423df6b85e2977' )) exchange_type_out1 = proto_types.ExchangeType( signed_exchange_response=signed_exchange_out1, withdrawal_coin_name='Bitcoin', withdrawal_address_n=[2147483692, 2147483648, 2147483649, 0, 3], return_address_n=[2147483692, 2147483650, 2147483649, 0, 2], #error added here! ) # Exhange Output address out1 = proto_types.TxOutputType( amount=90000000, address='LiZ9EjjyZYuKdkBSqzc7ZVHNQPubcUKuNC', script_type=proto_types.PAYTOADDRESS, address_type=3, exchange_type=exchange_type_out1, ) try: self.client.sign_tx('Litecoin', [ inp1, ], [ out1, ]) # << error added here!!! except CallException as e: self.assertEqual(e.args[1], 'Exchange return address error') print "Negative Test Passed (test_ltc_to_btc_return_address_error)!" else: self.assert_(False, "Failed to detect error condition") #reset policy ("ShapeShift") self.client.apply_policy('ShapeShift', 0)
def test_return_address_error(self): self.setup_mnemonic_nopin_nopassphrase() self.client.apply_policy('ShapeShift', 1) # tx: d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882 # input 0: 0.0039 BTC inp1 = proto_types.TxInputType( address_n=[0], # 14LmW5k4ssUrtbAB4255zdqv3b4w1TuX9e # amount=390000, prev_hash=binascii.unhexlify( 'd5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882' ), prev_index=0, ) signed_exchange_out1 = proto_exchange.SignedExchangeResponse( response=proto_exchange.ExchangeResponse( withdrawal_amount=47535135, withdrawal_address=proto_exchange.ExchangeAddress( coin_type='ltc', address='LgCD3vmz2TkYGbaDDy1YRyT4JwL95XpYPw'), deposit_amount=300000, deposit_address=proto_exchange.ExchangeAddress( coin_type='btc', address='1AJaZuL6heuX8SJEthckaKKQPu2EbDMR3U'), return_address=proto_exchange.ExchangeAddress( coin_type='btc', address='19nkmC2y4Rq3DXia7Um5YW9hxkRhwA5ABN'), expiration=1471627016859, quoted_rate=15878378378, api_key=binascii.unhexlify( '6ad5831b778484bb849da45180ac35047848e5cac0fa666454f4ff78b8c7399fea6a8ce2c7ee6287bcd78db6610ca3f538d6b3e90ca80c8e6368b6021445950b' ), miner_fee=100000, order_id=binascii.unhexlify( 'f1c9ace477f04af79bcbc62f3756ae08'), ), signature=binascii.unhexlify( '1f3d840f06670c1688377255dbe5cfc53f8de8628aed7a73a09718d058aae4a13e24baf1b83838ffc580e1b9a0f479663027c14ab6da7069311a7c554157857680' )) exchange_type_out1 = proto_types.ExchangeType( signed_exchange_response=signed_exchange_out1, withdrawal_coin_name='Litecoin', withdrawal_address_n=[2147483692, 2147483650, 2147483648, 0, 1], return_address_n=[2147483692, 2147483648, 2147483649, 0, 4], # <<< error added here!!! ) # Exhange Output address out1 = proto_types.TxOutputType( amount=300000, address='1AJaZuL6heuX8SJEthckaKKQPu2EbDMR3U', script_type=proto_types.PAYTOADDRESS, address_type=3, exchange_type=exchange_type_out1, ) try: self.client.sign_tx('Bitcoin', [ inp1, ], [ out1, ]) except CallException as e: self.assertEqual(e.args[1], 'Exchange return address error') print "Negative Test Passed (test_return_address_error)!" else: self.assert_(False, "Failed to detect error condition") #reset policy ("ShapeShift") self.client.apply_policy('ShapeShift', 0)