File size: 1,911 Bytes
19e145e
 
e82d1af
19e145e
 
e82d1af
19e145e
 
 
 
e82d1af
19e145e
e82d1af
 
 
 
 
 
 
19e145e
 
1db73ac
 
 
19e145e
 
 
 
 
 
 
 
 
 
e82d1af
19e145e
e82d1af
8b20f20
 
e82d1af
 
 
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. "
    "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="ETOCEANH balance"),
    ],
    title="Ocean Token Calculator",
    description=description,
    article=article,
    theme="huggingface",
)

interface.launch()