Skip to content

Latest commit

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Requirements

  1. Python3
  2. setuptools
  3. git
  4. gcc >= 7.0
  5. boost >= 1.66.0
  6. openssl (libssl-dev)

Tested on:

  1. Centos 7 (gcc 7.x)
  2. Ubuntu 17.04
  3. OSX 10.13

Build & Install

Global

$ git clone https://github.com/mile-core/mile-csa-python
$ cd mile-csa-python
$ git submodule update --init --recursive --remote
$ python3 ./setup.py build
$ sudo python3 ./setup.py install

In virtual environment via pipenv

$ pipenv install -e git+https://github.com/mile-core/mile-csa-python@master#egg=milecsa

Also you can use specific version: just replace master with target version

Boost updates (if it needs)

$ wget https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.gz
$ tar -xzf boost_1_*
$ cd boost_1_*
$ ./bootstrap.sh --prefix=/usr
$ ./b2 install --prefix=/usr --with=all -j4

Test

$ python3 -m unittest

Examples

Global configuration

frommilecsaimportconfig## disable SSL verification## config.sslVerification = False## set up user defined connection timeout#config.connectionTimeout=30# seconds## use MILE testnet #config.web.url="https://wallet.testnet.mile.global"

Wallet create

github

frommilecsaimportWalletdefmain():
wallet0=Wallet(phrase="Some phrase")
print(wallet0.public_key, wallet0.private_key)
## Put your address#wallet1=Wallet(public_key="...")
state=wallet1.get_state()
print(state.balances, state.preferred_transaction_id, wallet1.public_key)
forbinstate.balances:
print(b)
## Keep Secret phrase to qrcode#wqr0=wallet0.phrase_qr()
print(wqr0)
wqr0.save("./img-wqr0.png")
## Generate Payment Ticket#wqr1=wallet0.payment_qr(asset=1, amount=10)
print(wqr1)
wqr1.save("./img-wqr1.png")
if__name__=='__main__':
main()

Transfer

github

frommilecsaimportTransfer, Walletimporttimedefmain():
src=Wallet(phrase="Some WTF!? secret phrase")
print(src.public_key, src.private_key)
dst=Wallet()
dst_public_key=Wallet().public_keystate=src.get_state()
trx0=Transfer(src=src, dest=dst, asset_code=1, amount=0.001)
trx1=Transfer(src=src, dest=dst_public_key, asset_code=1, amount=1)
print(trx0.data)
print(trx1.data)
## Put your address#src=Wallet(phrase="secret-phrase")
print(src.public_key, src.private_key)
## Put your address#dst=Wallet(phrase="destination-secret-phrase")
result=src.transfer(dest=dst, asset_code=0, amount=0.1, description="give my money back!")
print(result)
time.sleep(21)
state=dst.get_state()
forbinstate.balances:
print(b)
if__name__=="__main__":
main()

Do XDR Emission

github

frommilecsaimportWalletimporttimedefmain():
## Put your address#wallet=Wallet(private_key="...")
result=wallet.emission(asset_code=1)
print(result)
time.sleep(42)
state=wallet.get_state()
forbinstate.balances:
print(b)

Explore blocks

github

importpprintfrommilecsaimportChain, config## Print block state#defprint_block(chain, block):
print("Block Id: ", block.block_id)
print("Version: ", block.version)
print("Timestamp: ", block.timestamp)
print("Trx count: ", block.transaction_count)
## Get bloc transaction#pp=pprint.PrettyPrinter(indent=2)
fortinblock.transactions:
asset=chain.asset_name(t.asset_code)
pp.pprint([asset, t.__class__.__name__, t.__dict__])
defmain():
## Set your full node url#config.web.url="https://wallet.testnet.mile.global"## Enable client balancing#config.useBalancing=True## Enable debug printing#config.rpcDebug=False# Open chainchain=Chain()
# get chain statestate=chain.get_state()
# last block id == state.block_count-1print("Block count: ", state.block_count)
## iterate last 20 blocks#print()
forbidinrange(state.block_count-20, state.block_count):
block=chain.get_block(block_id=bid)
print_block(chain, block)
print()
if__name__=="__main__":
main()

About

MILE Blockchain Common Supported Architecture API + Json-Rpc client.

Topics

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages