2017-10-24 11 views
1

ropsten 테스트 네트워크를 사용하여 고정 된 수의 ERC20 토큰을 작성한 확고한 계약을 맺고 있습니다. 지갑에서 다른 지갑으로 토큰을 보내는 방법이 필요합니다. (web3js 라이브러리를 사용하는 것이 좋지만 JSON-RPC는 작동합니다. 계정에 개인 키가 있습니다). "함수 아니다 .at (중간 값) 형식 오류를" ERC20 토큰 보내기

여기까지

var Web3 = require('web3') 
var web3 = new Web3(new 
Web3.providers.HttpProvider('https://ropsten.infura.io/xxxxxxx')); 
const abi = [ {} ]; 
const contract = new web3.eth.Contract(abi).at("0x...") 
contract.transferFrom('0x....', '0x.....', 100); 

나는이 코드를 실행하면, 내가 문제라고 말하는 내 코드입니다. 나는 web3에 비해 상대적으로 새로운 편이므로 어떤 생각이나 제안이라도 대단히 감사 할 것입니다.

답변

0

이 코드

transferTokensTo: function(contract, address_from, address, tokens) { 
    return new Promise(function(resolve, reject) { 
     contract.methods.decimals().call().then(function (result) { 
      var decimals = result; 
      console.log("Token decimals: " + decimals); 
      var amount = tokens * Math.pow(10, decimals); 

      console.log('Transfer to:', address); 
      console.log('Tokens: ' + tokens + " (" + amount + ")"); 
      contract.methods.transfer(address, amount).send({ 
       from: address_from, 
       gas: 150000 
      }).on('transactionHash', function (hash) { 
       console.log('\n[TRANSACTION_HASH]\n\n' + hash); 
      }).on('confirmation', function (confirmationNumber, receipt) { 
       console.log('\n[CONFIRMATION] ', confirmationNumber); 

       resolve(receipt); 
      }).on('receipt', function (receipt) { 
       console.log('\n[RECEIPT]\n\n', receipt); 

       // TODO: process receipt if needed 
      }).on('error', function (error) { 
       console.log('\n[ERROR]\n\n' + error); 

       reject(error); 
      }).then(function (done) { 
       console.log('\n[DONE]\n\n', done); 
      }); 
     }); 
    }); 
} 
을 시도 할 수 있습니다