mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
reorganized under examples
This commit is contained in:
parent
3d423ba44b
commit
516cf2791d
@ -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
45
examples/accounts.py
Normal 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)
|
||||||
@ -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):
|
||||||
0
examples/interledger/tests/__init__.py
Normal file
0
examples/interledger/tests/__init__.py
Normal 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'],
|
||||||
Loading…
x
Reference in New Issue
Block a user