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)
```
$0> rethinkdb &
$1> bigchaindb -c interledger/tests/bigchain.json start
$2> bigchaindb -c interledger/tests/megachain.json start
$3> python3 interledger/tests/test_connector.py
$1> bigchaindb -c examples/interledger/tests/bigchain.json start
$2> bigchaindb -c examples/interledger/tests/megachain.json start
$3> python3 examples/interledger/tests/test_connector.py
```
- [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 @@
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)
from examples.accounts import User, Escrow
class LedgerConnection(User):

View File

View File

@ -2,10 +2,11 @@ import json
from time import sleep
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_megachain = json.load(open('interledger/tests/megachain.json', 'r'))
config_bigchain = json.load(open('bigchain.json', 'r'))
config_megachain = json.load(open('megachain.json', 'r'))
bigchain = Bigchain(dbname=config_bigchain['database']['name'],
public_key=config_bigchain['keypair']['public'],