Skip to content

Latest commit

 

History

History
122 lines (87 loc) · 6.27 KB

README.md

File metadata and controls

122 lines (87 loc) · 6.27 KB

Ts-out [Beta]


This project is in beta, use at your own risk.

About


This is a tool to extract funds from the token.store (ETH) decentralized exchange.
It was made in collaboration with the token.store team.

Even if the website of a DEX dissapears, the funds deposited in the smart contract are still yours.
You just need a different way to interact with the token.store smart contract

ts-out is one way to interact with the contract and withdraw your tokens.

Token.store


The token.store ETH decentralized exchange was supposed to shut down on June 22 2020.
After a short extension, the site stopped around July 12 2020.

Check the token.store media for info:

FAQ


Why should I trust you?
  • All code is public on github, anyone can check that it isn't doing anything malicious.
  • This tool is linked on the token.store twitter and website.

Please use MetaMask or a similar Web3 wallet, using private keys on a website is a bad idea.

If you don't trust this tool, you can always use the READ-ONLY mode to check your token balances, and withdraw them using an alternative method.

How do I cancel my orders?

You don't need to cancel orders before withdrawing.
All your tokens show up in your balances, whether they are in an active order or not. If an order is not 100% filled, all the remaining tokens can be withdrawn at any time. After withdrawing all your tokens, the order becomes invalid because there is nothing left to use in a trade.

Where do I find my trade history?

An overview for all token.store trades can be found on the etherscan dex tracker or bloxy.
For a trade history of a single address try DeltaBalances trade history.

My token Withdrawal always fails

ERC20 tokens can have their settings changed by their creators. Some tokens get Paused, Locked or Disabled.
For example for a swap to a new smart contract or a different mainnet.

Contact the token creator with your issue, nobody else can move those tokens for you.

ts-out will prevent you from sending a failing transaction with the following warning:
failure warning

For an example of what a locked token looks like, see this token.

  • The majority of the transactions to this token fail
  • The last token transfer was in july 2018
  • Etherscan even has an announcement banner.
Why don't you support (Ledger, Trezor, ....)?

The token.store website only offered 2 ways to connect to the account: Private Key and Metamask. For simplicity this tool supports the same wallets as the exchange.

Can I run this tool (locally/ offline)?

You can download and run this tool local on your own computer.

  • Just download the files in this github repo
    • For private key wallets, you can open index.html in your browser
    • For MetaMask, you need to host index.html on a localhost server.
  • If run this code on a different domain, you might need to replace the API keys for Etherscan and Infura in config.js, as those are limited to certain domains.

It won't work fully offline because it requires internet to check balances and send transactions.

Alternatives


Etherscan

(Requires MetaMask or another Web 3 wallet)
View the smart contract on etherscan and go to the contract tab.

read contract

  • On Read Contract, check your balance using balanceOf
    • Enter the contract address of the ERC20 token and your wallet address. (for ETH use 0x000000000000000000000000000000000000000)
    • Hit query, and copy the resulting number. (this number will often be 10-18x higher than you might think)
      balanceOf example

write contract

  • On the Write contract tab
    • Click Connect to Web3 to enable your wallet
    • use withdrawToken to withdraw ERC20 tokens or withdraw to withdraw ETH (0x000000000000000000000000000000000000000)
    • Paste the exact amount copied from balanceOf

withdrawToken

MyEtherWallet

(works with nearly any type of wallet)

  • Unlock your wallet
  • Head to the Contract tab
  • Enter contract address 0x1cE7AE555139c5EF5A57CC8d814a867ee6Ee33D8
  • Copy the ABI from below from and paste it in ABI
    • Now use balanceOf, withdrawToken and withdraw just like instructed for Etherscan above.
    • Get your exact balance with balanceOf, and withdraw token with withdrawToken and ETH with withdraw.
    • Use a higher gas limit, a withdraw might take from 50000 to 250000 gas depending on the token, some even higher. (use the ts-out site in READ-ONLY mode to calculate this gas)

Tokenstore Withdraw ABI

[{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"},{"name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"}]
Fork a similar exchange

Exchanges like EtherDelta, ForkDelta and Bitcratic use a very similar smart contract. You can download their website to run it locally, and change the smart contract address in the config. Orderbooks and history shouldn't work, but withdrawing tokens is likely to work.