コード例 #1
0
ファイル: test_contract.py プロジェクト: spidemen/tronpy
def test_trc20_transfer():
    # TGQgfK497YXmjdgvun9Bg5Zu3xE15v17cu
    priv_key = PrivateKey(
        bytes.fromhex(
            "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee")
    )

    client = Tron(network='nile')

    contract = client.get_contract('THi2qJf6XmvTJSpZHc17HgQsmJop6kb3ia')
    print('Balance',
          contract.functions.balanceOf('TGQgfK497YXmjdgvun9Bg5Zu3xE15v17cu'))
    txn = (contract.functions.transfer(
        'TVjsyZ7fYF3qLF6BQgPmTEZy1xrNNyVAAA',
        1_000).with_owner('TGQgfK497YXmjdgvun9Bg5Zu3xE15v17cu').fee_limit(
            5_000_000).build().sign(priv_key).inspect().broadcast())

    print(txn)
    # wait
    receipt = txn.wait()
    print(receipt)
    if 'contractResult' in receipt:
        print(
            'result:',
            contract.functions.transfer.parse_output(
                receipt['contractResult'][0]))

    # result
    print(txn.result())
コード例 #2
0
ファイル: tronapi.py プロジェクト: lhb929/TRC_usdt
def transferToken():
    # cttAddr = ''

    _from = request.form.get('from_address')
    _to = request.form.get('to_address')
    _privKey = request.form.get('private_key')
    _amount = request.form.get('amount')
    _fee_limit = request.form.get('fee_limit', 20)

    try:
        _amount = to_sun(_amount)
        _fee_limit = to_sun(_fee_limit)

        if _amount <= 0:
            raise Exception('转账金额需大于0')
        if not is_address(_from):
            raise Exception('from 地址格式不正确')
        if not is_address(_to):
            raise Exception('to 地址格式不正确')

        client = Tron()
        priv_key = PrivateKey(bytes.fromhex(_privKey))
        contract = client.get_contract(cttAddr)
        # print('Balance', contract.functions.balanceOf(_from))
        txn = (
            contract.functions.transfer(_to, _amount).with_owner(
                _from).fee_limit(_fee_limit).build().sign(priv_key)
            # .inspect()
            .broadcast())
        return jsonify({"data": txn, "code": 200, "msg": "TOKEN交易成功"})
    except Exception as e:
        return jsonify({"data": None, "code": 500, "msg": str(e)})
コード例 #3
0
def test_client_get_contract():
    client = Tron()
    priv_key = PrivateKey(
        bytes.fromhex(
            "ebf7c9cad1ca710553c22669fd3c7c70832e7024c1a32da69bbc5ad19dcc8992")
    )
    """
    txn = (
        client.trx.asset_issue(
            "TGxv9UXRNMh4E6b33iuH1pqJfBffz6hXnV", "BTCC", 1_0000_0000_000000, url="https://www.example.com"
        )
        .memo("test issue BTCC coin")
        .fee_limit(0)
        .build()
        .inspect()
        .sign(priv_key)
        # .broadcast()
    )

    print(txn)
    """

    # print(client.get_account_permission("TGxv9UXRNMh4E6b33iuH1pqJfBffz6hXnV"))

    # very old address, of mainnet
    # print(client.get_account_resource("TTjacDH5PL8hpWirqU7HQQNZDyF723PuCg"))
    # "TGj1Ej1qRzL9feLTLhjwgxXF4Ct6GTWg2U"))

    cntr = client.get_contract("TMDRdYAcXbQDajbGFy4rgXcNLYswuYsfk1")
    print(cntr)

    print(cntr.abi)
    # print(client.get_contract("TTjacDH5PL8hpWirqU7HQQNZDyF723PuCg"))

    cntr.functions.name()
コード例 #4
0
ファイル: tronapi.py プロジェクト: lhb929/TRC_usdt
def balanceOf(address):
    try:
        if not is_address(address):
            raise Exception('地址格式不正确')

        client = Tron()
        contract = client.get_contract(cttAddr)
        # symbol = contract.functions.symbol()

        balance_raw = contract.functions.balanceOf(address)

        balance_sun = str(from_sun(balance_raw))

    except Exception as e:
        return jsonify({"data": None, "code": 500, "msg": str(e)})

    return jsonify({
        "data": {
            'cttAddr': cttAddr,
            # 'token': symbol,
            'balance': {
                'to_sun': balance_sun,
                'raw': balance_raw
            }
        },
        "code": 200,
        "msg": "查询成功"
    })
コード例 #5
0
def test_query_event_logs():
    client = Tron()
    txi = client.get_transaction_info('eb47b9779a759203899d46f2bda75c0335405f7bcba838aad8781697f216b177')
    time.sleep(1)   # due to tron official node's freq limit
    cnr = client.get_contract('TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8')
    events = list(cnr.events.Transfer.process_receipt(txi))
    assert events
    assert events[0]['event'] == 'Transfer'
    assert events[0]['address'] == 'TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8'
    assert events[0]['args'] == {
        'from': 'TMuY43m8TQ2hZ1naSiDyGujosVSMZoWLrq',
        'to': 'TXX1i3BWKBuTxUmTERCztGyxSSpRagEcjX',
        'value': 459155742
    }
コード例 #6
0
ファイル: test_contract.py プロジェクト: spidemen/tronpy
def test_const_functions():
    client = Tron(network='nile')

    contract = client.get_contract('THi2qJf6XmvTJSpZHc17HgQsmJop6kb3ia')
    assert contract

    assert 'name' in dir(contract.functions)

    print(dir(contract.functions))
    print(repr(contract.functions.name()))
    print(repr(contract.functions.decimals()))

    assert contract.functions.totalSupply() > 0

    for f in contract.functions:
        print(f)
コード例 #7
0
def test_const_functions():
    client = Tron(network='nile')

    contract = client.get_contract(CNR_ADDR)
    assert contract

    assert 'name' in dir(contract.functions)

    print(dir(contract.functions))
    print(repr(contract.functions.name()))
    print(repr(contract.functions.decimals()))

    assert contract.functions.totalSupply() > 0

    for f in contract.functions:
        print(f)
コード例 #8
0
ファイル: tronmoney.py プロジェクト: maiyude2018/tronmoney
    def trc2_trans(to_con,key,tplayer,to_add,to_num,trc20_decimals):
        client = Tron()
        contract = client.get_contract(to_con)
        priv_key = PrivateKey(bytes.fromhex(key))

        txn = (
            contract.functions.transfer(to_add, int(to_num * (10 ** trc20_decimals)))
                .with_owner(tplayer)
                .fee_limit(1_000_000)
                .build()
                .sign(priv_key)
                .inspect()
                .broadcast()
        )

        # wait
        ok = txn.wait()
        print("结果", ok)
        return ok
コード例 #9
0
def test_trc20_transfer():
    client = Tron(network='nile')

    contract = client.get_contract(CNR_ADDR)
    print('Balance', contract.functions.balanceOf(FROM_ADDR))
    txn = (contract.functions.transfer(
        TO_ADDR, 1_000).with_owner(FROM_ADDR).fee_limit(
            5_000_000).build().sign(FROM_PRIV_KEY).inspect().broadcast())

    print(txn)
    # wait
    receipt = txn.wait()
    print(receipt)
    if 'contractResult' in receipt:
        print(
            'result:',
            contract.functions.transfer.parse_output(
                receipt['contractResult'][0]))

    # result
    print(txn.result())
コード例 #10
0
ファイル: justswap.py プロジェクト: zoeas/tronpy
dzi_trade = 'TSMssi9ojNkzj5fT5bAjzuGjrLmsKau8Xj'
from_addr = 'TVrSWkL6a9xvtxRKq5RHg2HjUpGdPN3wBa'
priv_key = keys.PrivateKey.fromhex("975a98.....(omitted)..........86b98d97b")


def timestamp():
    return int(time.time())


swap_abi = []
with open(os.path.join(__dir__, "JustSwapExchange.abi")) as fp:
    swap_abi = json.load(fp)

client = Tron(network='nile')

cntr = client.get_contract(dzi_trade)
cntr.abi = swap_abi

for f in cntr.functions:
    print(f)

# call contract functions with TRX transfer
txn = (cntr.functions.trxToTokenSwapInput.with_transfer(1_000_000_000)(
    1_000_000_000, timestamp() +
    120).with_owner(from_addr).fee_limit(1_000_000_000).build().sign(priv_key))
print("txn =>", txn)
# print("broadcast and result =>", txn.broadcast().wait())

# NOTE: before calling tokenToTrxSwapInput, you MUST add TRC20 allowance to the swap contract.