スマートコントラクトへのトークン追加について
トークンを追加するメソッドを作りました
トランザクションはブロックに書き込まれるのですが、トークンが増えません
処理前のトークンの確認
truffle(rpc)> tk.balances(web3.eth.accounts[0])
BigNumber { s: 1, e: 4, c: [ 10010 ] }
truffle(rpc)> cc.balances(web3.eth.accounts[1])
BigNumber { s: 1, e: 0, c: [ 0 ] }
以下solidity抜粋
pragma solidity ^0.4.23;
import "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol";
address public minter;
uint256 public totalSupply;
constructor(uint initialSupply) public {
totalSupply = initialSupply;
balances[msg.sender] = initialSupply;
minter = msg.sender;
}
function chargeTK(uint256 _value) public {
balances[minter] = balances[minter].add(_value);
totalSupply = totalSupply.add(_value);
}
以下python抜粋
W3.personal.unlockAccount(ADDRESS_0, ADDRESS_0_PWD)
res = contract_instance.functions.transfer(W3.eth.accounts[1], 10).transact({'from': ADDRESS_0, 'gas': 50000})
W3.personal.lockAccount(ADDRESS_0)
res_dict = W3.eth.getTransaction(W3.toHex(res))
while str(res_dict['blockNumber']) == 'None':
time.sleep(5)
res_dict = W3.eth.getTransaction(W3.toHex(res))
print('blockNumber:', str(res_dict['blockNumber']))
以下実行結果
blockNumber: 30317
処理後のトークンの確認
truffle(rpc)> tk.balances(web3.eth.accounts[0])
BigNumber { s: 1, e: 4, c: [ 10010 ] }
truffle(rpc)> cc.balances(web3.eth.accounts[1])
BigNumber { s: 1, e: 0, c: [ 0 ] }
Ether Block Explorerをインストールして確認したところ、トランザクションの確認(ガス消費)はできましたがトークンの動きがわかる情報がどこかわかりませんでした
res = contract_instance.functions.transfer(W3.eth.accounts[1], 10).transact({'from': ADDRESS_0, 'gas': 50000})
の箇所に問題があるのであればエラーとになりそうですが、どこに問題があるか確認すべき箇所わかりますでしょうか?
pythonでの実行は置いておき、
gethでの送金を試した結果を追加します
> var tk_abi = [...]
> var tk_con = web3.eth.contract(tk_abi)
> var tk = tk_con.at("0x...")
> tk.balanceOf(eth.accounts[0])
10010
> eth.defaultAccount=eth.accounts[0]
> personal.unlockAccount(eth.accounts[0])
> tk.transfer.sendTransaction(eth.accounts[1], 10)
> tk.balanceOf(eth.accounts[0])
10010
> tk.balanceOf(eth.accounts[1])
0
やはりトークン送金できていませんでした