Esempio n. 1
0
def test_get_or_create_network_asset(dbsession):
    """We should upsert asset by name."""

    with transaction.manager:

        network = AssetNetwork(name="Foo Bank")
        dbsession.add(network)
        dbsession.flush()

        asset = network.get_or_create_asset_by_name("Footoken")
        asset.asset_class = AssetClass.token
        dbsession.flush()
        aid = asset.id

    with transaction.manager:
        network = dbsession.query(AssetNetwork).first()
        asset = network.get_or_create_asset_by_name("Footoken")
        assert asset.id == aid
Esempio n. 2
0
def test_get_or_create_network_asset(dbsession):
    """We should upsert asset by name."""

    with transaction.manager:

        network = AssetNetwork(name="Foo Bank")
        dbsession.add(network)
        dbsession.flush()

        asset, _ = network.get_or_create_asset_by_name("Footoken")
        asset.asset_class = AssetClass.token
        dbsession.flush()
        aid = asset.id

    with transaction.manager:
        network = dbsession.query(AssetNetwork).first()
        asset, _ = network.get_or_create_asset_by_name("Footoken")
        assert asset.id == aid
Esempio n. 3
0
def get_eth_network(dbsession: Session, asset_network_name="ethereum") -> AssetNetwork:
    """Create Ethereum network instance.

    :param asset_network_name: What network we use. *ethereum* for main network, *testnet* for testnet.
    """

    network = dbsession.query(AssetNetwork).filter_by(name=asset_network_name).one_or_none()
    if not network:
        network = AssetNetwork(name=asset_network_name)
        dbsession.add(network)
        dbsession.flush()  # Gives us network.id
    return network
Esempio n. 4
0
def create_house_address(network: AssetNetwork) -> CryptoAddressCreation:
    """Sets up house Ethereum account.

    Store CryptoAddress UUID under "house_address" key in network.other_data JSON bag.
    """

    assert not network.other_data.get("house_address")

    op = CryptoAddress.create_address(network)
    op.required_confirmation_count = 1
    addr_id = op.address.id
    assert addr_id
    network.other_data["house_address"] = str(addr_id)
    return op
Esempio n. 5
0
def create_house_address(network: AssetNetwork) -> CryptoAddressCreation:
    """Sets up house Ethereum account.

    Store CryptoAddress UUID under "house_address" key in network.other_data JSON bag.
    """

    assert not network.other_data.get("house_address")

    op = CryptoAddress.create_address(network)
    op.required_confirmation_count = 1
    addr_id = op.address.id
    assert addr_id
    network.other_data["house_address"] = str(addr_id)
    return op
Esempio n. 6
0
def get_house_holdings_by_symbol(network: AssetNetwork, symbol: str) -> CryptoAddressAccount:
    """Get a asset holded by a house."""
    asset = network.get_asset_by_symbol(symbol)
    return get_house_holdings(network, asset)
Esempio n. 7
0
def create_token(network: AssetNetwork, name: str, symbol: str, supply: int, initial_owner_address: CryptoAddress) -> Asset:
    asset = network.create_asset(name=name, symbol=symbol, supply=Decimal(supply), asset_class=AssetClass.token)
    op = initial_owner_address.create_token(asset)
    return asset
Esempio n. 8
0
def create_token(network: AssetNetwork, name: str, symbol: str, supply: int, initial_owner_address: CryptoAddress) -> Asset:
    asset = network.create_asset(name=name, symbol=symbol, supply=Decimal(supply), asset_class=AssetClass.token)
    op = initial_owner_address.create_token(asset)
    return asset
Esempio n. 9
0
def get_house_holdings_by_symbol(network: AssetNetwork, symbol: str) -> CryptoAddressAccount:
    """Get a asset holded by a house."""
    asset = network.get_asset_by_symbol(symbol)
    return get_house_holdings(network, asset)