Function: asset_batch_create


Registered at block: #36595608
Snippets: 427754609975...

Source Code

def asset_create(info, args):
    assert args['f'] == 'asset_create'

    tick = args['a'][0]
    assert type(tick) is str
    assert len(tick) > 0 and len(tick) < 42
    assert tick[0] in string.ascii_uppercase
    assert set(tick) <= set(string.ascii_uppercase+string.digits+'_')

    sender = info['sender']
    addr = handle_lookup(sender)
    owner, _ = get('asset', 'owner', None, tick)
    assert not owner

    put(addr, 'asset', 'owner', addr, tick)
    put(addr, 'asset', 'functions', ['asset_update_ownership', 'asset_update_functions'], tick)
    event('AssetCreated', [tick])


def asset_update_ownership(info, args):
    tick = args['a'][0]
    assert type(tick) is str
    assert len(tick) > 0 and len(tick) < 42
    assert tick[0] in string.ascii_uppercase
    assert set(tick) <= set(string.ascii_uppercase+string.digits+'_')

    assert args['f'] == 'asset_update_ownership'
    functions, _ = get('asset', 'functions', [], tick)
    assert args['f'] in functions

    receiver = args['a'][1].lower()
    sender = info['sender']
    addr = handle_lookup(sender)
    owner, _ = get('asset', 'owner', None, tick)
    assert owner.lower() == addr

    # DO THIS to change the owner using receiver's Zentra token
    functions, _ = get('asset', 'functions', None, tick)
    assert type(functions) is list
    assert functions
    put(receiver, 'asset', 'owner', receiver, tick)
    put(receiver, 'asset', 'functions', functions, tick)
    event('AssetOwnershipUpdated', [tick, receiver])

def asset_update_functions(info, args):
    tick = args['a'][0]
    assert type(tick) is str
    assert len(tick) > 0 and len(tick) < 42
    assert tick[0] in string.ascii_uppercase
    assert set(tick) <= set(string.ascii_uppercase+string.digits+'_')

    assert args['f'] == 'asset_update_functions'
    functions, _ = get('asset', 'functions', [], tick)
    assert args['f'] in functions

    sender = info['sender']
    addr = handle_lookup(sender)
    owner, _ = get('asset', 'owner', None, tick)
    assert owner == addr

    functions = args['a'][1]
    assert type(functions) is list
    assert functions
    put(addr, 'asset', 'functions', functions, tick)
    event('AssetFunctionsUpdated', [tick, functions])


def asset_batch_create(info, args):
    assert args['f'] == 'asset_batch_create'

    sender = info['sender']
    addr = handle_lookup(sender)
    committee_members, _ = get('committee', 'members', [])
    committee_members = set(committee_members)
    assert addr in committee_members

    ticks = args['a'][0]
    assert type(ticks) is list
    for tick in ticks:
        assert type(tick) is str
        assert len(tick) > 0 and len(tick) < 42
        assert tick[0] in string.ascii_uppercase
        assert set(tick) <= set(string.ascii_uppercase+string.digits+'_')
        addr = handle_lookup(sender)
        owner, _ = get('asset', 'owner', None, tick)

        if not owner:
            put(addr, 'asset', 'owner', addr, tick)
            put(addr, 'asset', 'functions', ['asset_update_ownership', 'asset_update_functions'], tick)
← Back to Functions