def test_trx_send_wrong_path(self, app): tx = app.packContract( tron.Transaction.Contract.TransferContract, contract.TransferContract( owner_address=bytes.fromhex(app.getAccount(0)['addressHex']), to_address=bytes.fromhex(app.getAccount(0)['addressHex']), amount=100000000 ) ) data, status = app.sign(app.getAccount(0)['path'], tx) validSignature, txID = validateSignature.validate(tx,data[0:65],app.getAccount(0)['publicKey'][2:]) assert(validSignature == False)
def test_trx_send_with_data_field(self, app): tx = app.packContract( tron.Transaction.Contract.TransferContract, contract.TransferContract( owner_address=bytes.fromhex(app.getAccount(0)['addressHex']), to_address=bytes.fromhex(app.getAccount(0)['addressHex']), amount=100000000 ), b'CryptoChain-TronSR Ledger Transactions Tests' ) data, status = app.sign(app.getAccount(0)['path'], tx) validSignature, txID = validateSignature.validate(tx,data[0:65],app.getAccount(0)['publicKey'][2:]) assert(validSignature == True)
def test_vs_send_permissioned(self, app): tx = app.packContract( vision.Transaction.Contract.TransferContract, contract.TransferContract( owner_address=bytes.fromhex(app.getAccount(0)['addressHex']), to_address=bytes.fromhex(app.getAccount(0)['addressHex']), amount=100000000 ), None, 2 ) data, status = app.sign(app.getAccount(0)['path'], tx) assert(status == 0x9000) validSignature, txID = validateSignature.validate(tx,data[0:65],app.getAccount(0)['publicKey'][2:]) assert(validSignature == True)
def createtransaction(self, owner_address, to_address, amount): """ 创建一个转账的交易 :return: 返回转账合约对象 { "transaction" : {"txID":"454f156bf1256587ff6ccdbc56e64ad0c51e4f8efea5490dcbc720ee606bc7b8", "raw_data": {"contract": [{"parameter": {"value": {"amount":1, "owner_address":"41235d90e1d0a0ccfa268781f464e0252ba6112993", "to_address":"41d1e7a6bc354106cb410e65ff8b181c600ff14292" }, "type_url":"type.googleapis.com/protocol.TransferContract" }, "type":"TransferContract" }], "ref_block_bytes":"267e", "ref_block_hash":"9a447d222e8de9f2", "expiration":1530893064000, "timestamp":1530893006233 } } ,"privateKey": "your private key" } """ transfer = Contract_pb2.TransferContract() transfer.owner_address = owner_address.encode() transfer.to_address = to_address.encode() transfer.amount = amount with grpc.insecure_channel('localhost:50051') as channel: stub = api_pb2_grpc.WalletStub(channel) response = stub.CreateTransaction2(transfer) return response
# Start Channel and WalletStub channel = grpc.insecure_channel("vtest.infragrid.v.network:50051") stub = WalletStub(channel) logger.debug(''' Vision Transactions tests ''') ############ # Send VS # ############ logger.debug('\n\nTransfer Contract:') tx = stub.CreateTransaction2( contract.TransferContract( owner_address=bytes.fromhex(accounts[1]['addressHex']), to_address=bytes.fromhex(accounts[0]['addressHex']), amount=1)) raw_tx, result = ledgerSign(accounts[1]['path'], tx.transaction) validSignature, txID = validateSignature.validate(raw_tx, result[0:65], accounts[1]['publicKey'][2:]) logger.debug('- RAW: {}'.format(raw_tx)) logger.debug('- txID: {}'.format(txID)) logger.debug('- Signature: {}'.format(binascii.hexlify(result[0:65]))) if (validSignature): logger.debug('- Valid: {}'.format(validSignature)) else: logger.error('- Valid: {}'.format(validSignature)) sys.exit(0) # Broadcast Example
# Start Channel and WalletStub channel = grpc.insecure_channel("grpc.trongrid.io:50051") stub = WalletStub(channel) logger.debug(''' Tron Transactions tests ''') ############ # Send TRX # ############ logger.debug('\n\nTransfer Contract:') tx = stub.CreateTransaction2(contract.TransferContract( owner_address=bytes.fromhex(accounts[1]['addressHex']), to_address=bytes.fromhex(accounts[0]['addressHex']), amount=1 )) raw_tx, result = ledgerSign(accounts[1]['path'],tx.transaction) validSignature, txID = validateSignature.validate(raw_tx,result[0:65],accounts[1]['publicKey'][2:]) logger.debug('- RAW: {}'.format(raw_tx)) logger.debug('- txID: {}'.format(txID)) logger.debug('- Signature: {}'.format(binascii.hexlify(result[0:65]))) if (validSignature): logger.debug('- Valid: {}'.format(validSignature)) else: logger.error('- Valid: {}'.format(validSignature)) sys.exit(0) # Broadcast Example
from core import Vision_pb2 as vision from google.protobuf.any_pb2 import Any import grpc # Start Channel and WalletStub channel = grpc.insecure_channel("vtest.infragrid.v.network:50051") stub = WalletStub(channel) logger.debug(''' Vision MultiSign tests ''') tx = stub.CreateTransaction2( contract.TransferContract( owner_address=bytes.fromhex( address_hex("VUEZSdKsoDHQMeZwihtdoBiN46zxhGWYdH")), to_address=bytes.fromhex( address_hex("VPnYqC2ukKyhEDAjqRRobSVygMAb8nAcXM")), amount=100000)) # use permission 2 tx.transaction.raw_data.contract[0].Permission_id = 2 raw_tx, sign1 = ledgerSign(parse_bip32_path("44'/195'/0'/0/0"), tx.transaction) raw_tx, sign2 = ledgerSign(parse_bip32_path("44'/195'/1'/0/0"), tx.transaction) tx.transaction.signature.extend([bytes(sign1[0:65])]) tx.transaction.signature.extend([bytes(sign2[0:65])]) r = stub.BroadcastTransaction(tx.transaction) if r.result == True: print("Success")