reorganized under examples

This commit is contained in:
diminator 2016-03-02 18:15:27 +01:00
parent 3d423ba44b
commit 516cf2791d
9 changed files with 53 additions and 51 deletions

View File

@ -15,9 +15,9 @@ The edits are found under interledger/core.py and interledger/tests/test_connect
To run the interledger test, [install bigchaindb](#gettingstarted) To run the interledger test, [install bigchaindb](#gettingstarted)
``` ```
$0> rethinkdb & $0> rethinkdb &
$1> bigchaindb -c interledger/tests/bigchain.json start $1> bigchaindb -c examples/interledger/tests/bigchain.json start
$2> bigchaindb -c interledger/tests/megachain.json start $2> bigchaindb -c examples/interledger/tests/megachain.json start
$3> python3 interledger/tests/test_connector.py $3> python3 examples/interledger/tests/test_connector.py
``` ```
- [x] multisig - [x] multisig

45
examples/accounts.py Normal file
View File

@ -0,0 +1,45 @@
class User:
def __init__(self, ledger):
self.ledger = ledger
self.private, self.public = ledger.generate_keys()
self.assets = []
def create_asset(self):
tx = self.ledger.create_transaction(self.ledger.me, self.public, None, 'CREATE')
tx_signed = self.ledger.sign_transaction(tx, self.ledger.me_private)
self.ledger.validate_transaction(tx_signed)
self.ledger.write_transaction(tx_signed)
self.assets.append(tx_signed)
def create_assets(self, amount=1):
for i in range(amount):
self.create_asset()
class Escrow(User):
def __init__(self, ledger=None, current_owner=None, new_owner=None,
asset_id=None, condition_func=None, payload=None):
User.__init__(self, ledger)
self.condition_func = condition_func if condition_func else lambda proof: True
self.new_owner = new_owner
tx = self.ledger.create_transaction(current_owner,
[current_owner, self.public],
asset_id,
'TRANSFER',
payload)
self.assets = tx
def release(self, receipt=None):
if not self.validate(receipt):
raise Exception
tx = self.ledger.create_transaction(self.assets['transaction']['new_owners'],
self.new_owner,
self.assets['id'],
'TRANSFER',
self.assets['transaction']['data']['payload'])
return self.ledger.sign_transaction(tx, self.private, self.public)
def validate(self, receipt):
return self.condition_func(receipt)

View File

@ -1,48 +1,4 @@
from examples.accounts import User, Escrow
class User:
def __init__(self, ledger):
self.ledger = ledger
self.private, self.public = ledger.generate_keys()
self.assets = []
def create_asset(self):
tx = self.ledger.create_transaction(self.ledger.me, self.public, None, 'CREATE')
tx_signed = self.ledger.sign_transaction(tx, self.ledger.me_private)
self.ledger.validate_transaction(tx_signed)
self.ledger.write_transaction(tx_signed)
self.assets.append(tx_signed)
def create_assets(self, amount=1):
for i in range(amount):
self.create_asset()
class Escrow(User):
def __init__(self, ledger=None, current_owner=None, new_owner=None,
asset_id=None, condition_func=None, payload=None):
User.__init__(self, ledger)
self.condition_func = condition_func if condition_func else lambda proof: True
self.new_owner = new_owner
tx = self.ledger.create_transaction(current_owner,
[current_owner, self.public],
asset_id,
'TRANSFER',
payload)
self.assets = tx
def release(self, receipt=None):
if not self.validate(receipt):
raise Exception
tx = self.ledger.create_transaction(self.assets['transaction']['new_owners'],
self.new_owner,
self.assets['id'],
'TRANSFER',
self.assets['transaction']['data']['payload'])
return self.ledger.sign_transaction(tx, self.private, self.public)
def validate(self, receipt):
return self.condition_func(receipt)
class LedgerConnection(User): class LedgerConnection(User):

View File

View File

@ -2,10 +2,11 @@ import json
from time import sleep from time import sleep
from bigchaindb import Bigchain from bigchaindb import Bigchain
from interledger.core import User, Connector from examples.accounts import User
from examples.interledger.connector import Connector
config_bigchain = json.load(open('interledger/tests/bigchain.json', 'r')) config_bigchain = json.load(open('bigchain.json', 'r'))
config_megachain = json.load(open('interledger/tests/megachain.json', 'r')) config_megachain = json.load(open('megachain.json', 'r'))
bigchain = Bigchain(dbname=config_bigchain['database']['name'], bigchain = Bigchain(dbname=config_bigchain['database']['name'],
public_key=config_bigchain['keypair']['public'], public_key=config_bigchain['keypair']['public'],