Django-Tezos
项目描述
dgTezos: Django-Tezos
Django-Tezos提供Django模型和uWSGI Spooler(djCall)与PyTezos的集成。
安装djTezos
使用pip安装djtezos,然后将其添加到INSTALLED_APPS。
运行./manage.py migrate以创建djtezos模型的表。
您需要一个足够长的SECRET_KEY来支持AES。
添加区块链
区块链是您必须管理的第一个模型,您可以在管理界面中完成此操作。对于任何区块链,您可以选择Python提供者类,例如djtezos.tezos.Provider或用于测试的模拟的djtezos.fake.Provider。
示例
tzlocal = Blockchain.objects.create(
    name='tzlocal',
    endpoint='http://tz:8732',
    provider_class='djtezos.tezos.Provider',
    is_active=True,
    confirmation_blocks=1,
)
运行tzlocal: docker run --name tz --rm --publish 8732:8732 yourlabs/tezos
添加到/etc/hosts: tz 在以127.0.0.1开始的行中
在gitlab-ci中添加
services:
- name: yourlabs/tezos
  alias: tz
创建账户
为用户创建账户
account = user.account_set.create(blockchain=tzlocal)
account.generate_private_key()
account.save()
用户可以有任意多的账户。
队列
事务以Transaction模型在数据库中排队。您可以使用3种类型的事务。
部署智能合约
使用contract_micheline创建事务以部署智能合约
    contract = Transaction.objects.create(
        sender=account,
        name='TICKR',
        contract_micheline=mich,
        contract_name='PyMich FA 1.2',
        args={'int': '1'},
        state='deploy',
    )
您可以通过Transaction模型和Contract代理模型检索它。
调用智能合约函数
使用新事务调用智能合约函数
    call = Transaction.objects.create(
        sender=account,
        contract=contract,
        function='replace',
        args=[3],
        state='deploy',
    )
这将仅用一个整数字符3调用replace函数。
还有可用的Call代理模型。
执行转账
在区块链上创建转账
    transfer = Transaction.objects.create(
        sender=account,
        receiver=account2,
        amount=10000,
        state='deploy',
    )
从v0.4.x迁移
回调已在发布候选版本中重写,您需要
- 调用 Account.generate_private_key()和Account.save()来能够使用它,或者通过在models.py中定义的AES加密自行配置私钥
- 重复运行: ./manage.py djtezos_sync,最初会赶上积压,然后增量同步,支持reorg
- 重复间隔运行:./manage.py djtezos_balance
此外,您不能在未填写的情况下使用表单显示发送字段。
从djblockchain迁移
- 更改所有导入
- 删除迁移依赖性,从djblockchain到djtezos.0001_initial
- 在生产环境中执行以下SQL
alter table djblockchain_account rename to djtezos_account;
alter table djblockchain_blockchain rename to djtezos_blockchain;
alter table djblockchain_transaction rename to djtezos_transaction;
alter table djtezos_transaction drop column block_id;
drop table djblockchain_block;
alter table djtezos_transaction add column contract_micheline json null;
alter table djtezos_transaction add column amount int null;
insert into django_migrations (app, name, applied) values ('djtezos', '0001_initial', now());
update djtezos_blockchain set provider_class = replace(provider_class, 'djblockchain', 'djtezos');
然后,您可能仍然有使用以太坊提供者的区块链对象,这尚未从djblockchain迁移,您可以通过将is_active设置为False来禁用它们,或者您可以直接删除它们,但这将级联删除所有相关交易,这可能与现有用户对您平台上的期望不符...
项目详情
    
       关闭
    
      
        
    
    
  
djtezos-0.5.2.tar.gz的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | b03cd77a41f919880d0d08e1027662cb8c7978644e7c31c4c6cd428744b340b0 | |
| MD5 | b2514a9671970dd8b2ce0e06acbae274 | |
| BLAKE2b-256 | 869952ebaef388f498c3d707e636c7ccdcf89d564568b9825e72c39784f06033 |