8000 Transfer ERC20 Tokens Using Contracts · Issue #671 · tomusdrw/rust-web3 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Transfer ERC20 Tokens Using Contracts #671
Open
@hasanparasteh

Description

@hasanparasteh

I'm having trouble transferring ERC20 tokens. I created the below method to construct a transaction and then broadcasting the raw transaction to the blockchain. here I have a little problem with using ABI! I call the transfer method but IDK how to provide _to & _value to the call function. Also when I call this method my code panics with below information:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Api(Rpc(Error { code: MethodNotFound, message: "The method eth_sendTransaction does not exist/is not available", data: None }))'

Here is my method declaration:

pub async fn transfer_erc20_token(
    contract: Contract<Http>,
    private_key: SecretKey,
    from: Address,
    to: Address,
    value: U256
) -> Result<H256, web3::contract::Error> {
    let c = contract.call(
         "transfer", 
         (to, value,), 
         from, 
         ContractOptions::default()
     )
     .await.unwrap();

    Ok(c)
}

And this is a piece of abi I provided to setup Contract object:

{
        "constant": false,
        "inputs": [
            {
                "name": "_to",
                "type": "address"
            },
            {
                "name": "_value",
                "type": "uint256"
            }
        ],
        "name": "transfer",
        "outputs": [
            {
                "name": "",
                "type": "bool"
            }
        ],
        "payable": false,
        "stateMutability": "nonpayable",
        "type": "function"
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0