Empty this Ethereum contract on Ropsten written in Bamboo!

5Y Ago
Empty this Ethereum contract on Ropsten written in Bamboo!

I have been developing Bamboo, a programming language for Ethereum contracts. It is super-immature. Every time I write a new contract, I find a bug in the compiler. So, please help me find bugs in the Bamboo compiler by emptying this Ethereum contract on the Ropsten test network.

Warning: it’s Ropsten. If you don’t know Ropsten, it is not the Ethereum network you know about. Do not send ETH to the mentioned address. It would be lost.

Warning: anything you send to this account will be probably permanently lost to no avail. Do not send anything you would miss.

When you empty or perform something great on the account, no report is necessary. When I notice, I’ll investigate what happened.

The target Ethereum contract has ERC20 interface, in addition to two extra methods buy(uint256 _amount) and sell(uint256 _amount, uint256 _value).

Calling buy(100) with some Ropsten-Ether might increase your ERC20 balance by 100. Calling sell(100, 20000000) might decrease your ERC20 balance by 100, and might also change your Ropsten-Ether balance; the gas consuption reduces the Ropseten-Ether balance but the contract might send you 20000000 wei. The contract sometimes refuses these kinds of calls on certain discretion (see the source).

The ABI:

[{"type": "constructor", "inputs":[{"name": "totalSupply", "type": "uint256"}], "name": "PreToken", "outputs":[], "payable": true},{"type":"fallback","inputs": [],"outputs": [],"payable": true},{"type":"event","inputs":[{"name":"_from","type":"address","indexed":true},{"name":"_to","type":"address","indexed":true},{"name":"_amount","type":"uint256","indexed":false}],"name":"Transfer"},{"type":"event","inputs":[{"name":"_buyer","type":"address","indexed":true},{"name":"_amount","type":"uint256","indexed":false},{"name":"_value","type":"uint256","indexed":false}],"name":"Buy"},{"type":"event","inputs":[{"name":"_buyer","type":"address","indexed":true},{"name":"_amount","type":"uint256","indexed":false},{"name":"_value","type":"uint256","indexed":false}],"name":"Sell"},{"type":"event","inputs":[{"name":"_owner","type":"address","indexed":true},{"name":"_spender","type":"address","indexed":true},{"name":"_value","type":"uint256","indexed":false}],"name":"Approval"},{"type":"function","name":"totalSupply","inputs": [],"outputs": [{"name": "", "type": "uint256"}],"payable": true},{"type":"function","name":"balanceOf","inputs": [{"name": "a", "type": "address"}],"outputs": [{"name": "", "type": "uint256"}],"payable": true},{"type":"function","name":"transfer","inputs": [{"name": "_to", "type": "address"},{"name": "_amount", "type": "uint256"}],"outputs": [{"name": "", "type": "bool"}],"payable": true},{"type":"function","name":"approve","inputs": [{"name": "_spender", "type": "address"},{"name": "_amount", "type": "uint256"}],"outputs": [{"name": "", "type": "bool"}],"payable": true},{"type":"function","name":"allowance","inputs": [{"name": "_owner", "type": "address"},{"name": "_spender", "type": "address"}],"outputs": [{"name": "", "type": "uint256"}],"payable": true},{"type":"function","name":"transferFrom","inputs": [{"name": "_from", "type": "address"},{"name": "_to", "type": "address"},{"name": "_amount", "type": "uint256"}],"outputs": [{"name": "", "type": "bool"}],"payable": true},{"type":"function","name":"buy","inputs": [{"name": "_amount", "type": "uint256"}],"outputs": [{"name": "", "type": "bool"}],"payable": true},{"type":"function","name":"sell","inputs": [{"name": "_amount", "type": "uint256"},{"name": "_value", "type": "uint256"}],"outputs": [{"name": "", "type": "bool"}],"payable": true}]

Warning: anything you send to this account will be probably permanently lost to no avail. Do not send anything you would miss.

Warning: this account is on the Ropsten test network. Any ETH or anything mainnet will be irreversibly lost if you send it to the mentioned address.