File size: 1,910 Bytes
19e145e
 
e82d1af
19e145e
 
e82d1af
19e145e
 
 
 
e82d1af
19e145e
e82d1af
 
 
 
 
 
 
19e145e
 
f8ec69f
1db73ac
 
19e145e
 
 
 
 
 
 
 
 
 
e82d1af
19e145e
e82d1af
8b20f20
 
e82d1af
 
f8ec69f
8b20f20
19e145e
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import gradio as gr
from ocean_lib.config import Config
from ocean_lib.models.btoken import BToken #BToken is ERC20
from ocean_lib.ocean.ocean import Ocean
from ocean_lib.web3_internal.wallet import Wallet
from ocean_lib.web3_internal.currency import from_wei # wei is the smallest denomination of ether e.g. like cents

config = Config('config.ini')
ocean = Ocean(config)

def wallet(private_key):
    wallet = Wallet(ocean.web3, private_key, transaction_timeout=20, block_confirmations=config.block_confirmations)
    address = wallet.address
    OCEAN_token = BToken(ocean.web3, ocean.OCEAN_address)

    eth_balance = from_wei(ocean.web3.eth.get_balance(wallet.address))
    ocean_balance = from_wei(OCEAN_token.balanceOf(wallet.address))

    return address, eth_balance, ocean_balance

description = (
    "This demo calculate the number of tokens in your wallet on the Rinkeby test network using the Ocean Python library. \n"
    "You can export your private key from your metamask wallet. We highly recommend doing this with a wallet that has no real tokens in it (only Rinkeby tokens)."
    "For more info on private keys, see [this](https://github.com/oceanprotocol/ocean.py/blob/main/READMEs/wallets.md) from the ocean.py documentation"
)

article = (
    "<p style='text-align: center'>"
    "<a href='https://oceanprotocol.com/' target='_blank'>Ocean Protocol</a> | "
    "<a href='https://github.com/oceanprotocol/ocean.py' target='_blank'>Ocean Python Library</a> | "
    "<a href='https://www.algovera.ai' target='_blank'>Algovera</a>"
    "</p>"
)


interface = gr.Interface(
    wallet,
    "text",
    [
        gr.outputs.Textbox(label="Public Key"),
        gr.outputs.Textbox(label="ETH balance"),
        gr.outputs.Textbox(label="OCEAN balance"),
    ],
    title="Ocean Token Calculator",
    description=description,
    article=article,
    theme="huggingface",
)

interface.launch()