djwebdapp 0.6.1__tar.gz → 0.6.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of djwebdapp might be problematic. Click here for more details.
- {djwebdapp-0.6.1/src/djwebdapp.egg-info → djwebdapp-0.6.5}/PKG-INFO +43 -2
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/setup.py +6 -3
- {djwebdapp-0.6.1 → djwebdapp-0.6.5/src/djwebdapp.egg-info}/PKG-INFO +43 -2
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp.egg-info/requires.txt +6 -4
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/provider.py +48 -22
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/LICENSE +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/MANIFEST.in +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/README.rst +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/setup.cfg +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/admin.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/apps.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/exceptions.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/management/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/management/commands/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/management/commands/history_download.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/management/commands/index.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/management/commands/normalize.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/management/commands/refresh_balances.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/management/commands/spool.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0001_initial.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0002_alter_transaction_receiver_alter_transaction_sender.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0003_transaction_txgroup_alter_transaction_hash_and_more.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0004_alter_transaction_options.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0005_alter_transaction_unique_together_and_more.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0006_blockchain_min_confirmations_alter_transaction_state.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0007_alter_transaction_amount.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0008_transaction_index.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0009_account_index.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0010_alter_transaction_nonce.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0011_rename_max_level_blockchain_index_level.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0012_transaction_number.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0013_transaction_normalized_dependency.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0014_alter_account_unique_together.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0015_alter_transaction_state.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0016_alter_transaction_has_code.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0017_event.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/models.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/normalizers.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/provider.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/signals.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp.egg-info/SOURCES.txt +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp.egg-info/dependency_links.txt +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp.egg-info/top_level.txt +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/admin.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/apps.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/migrations/0001_initial.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/migrations/0002_ethereumcall_ethereumcontract.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/migrations/0003_ethereumtransaction_caller.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/migrations/0004_ethereumevent.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/migrations/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/models.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example/balance.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example/balance_update.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example/deploy.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example/deploy_fa12.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example/migrations/0001_initial.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example/migrations/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example/models.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example/spool.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example/wait.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example/wallet_create.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/account.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/admin.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/apps.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/blockchain.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/blockchain_with_event_provider.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/client.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/deploy.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/deploy_contract.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/deploy_model.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/index.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/load.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/migrations/0001_initial.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/migrations/0002_fa12ethereumbalancemovement.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/migrations/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/mint_normalize.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/models.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/normalize.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/normalizers.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/tests.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/transfer.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/views.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/wallet_import.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/Proxy.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/account.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/admin.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/apps.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/blockchain.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/call_parallel.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/callee.json +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/callee.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/caller.json +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/caller.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/client.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/contracts/FA12.json +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/contracts/FA12.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/deploy.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/deploy_client.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/deploy_contract.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/deploy_model.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/index.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/load.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/migrations/0001_initial.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/migrations/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/mint_normalize.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/models.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/normalize.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/normalize_old.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/normalizers.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/tests.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/transfer.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/views.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/wallet_import.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_fa2/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_fa2/admin.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_fa2/apps.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_fa2/migrations/0001_initial.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_fa2/migrations/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_fa2/models.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_fa2/normalizers.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_fa2/serializers.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_fa2/urls.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_fa2/views.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_multisig/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_multisig/admin.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_multisig/apps.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_multisig/migrations/0001_initial.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_multisig/migrations/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_multisig/models.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_rest_framework/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_rest_framework/apps.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_rest_framework/migrations/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_rest_framework/models.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_rest_framework/views.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/admin.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/management/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/management/commands/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0001_initial.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0002_tezostransaction_caller.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0003_tezoscall_tezoscontract.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0004_delete_tezoscall_delete_tezoscontract.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0005_tezoscall_tezoscontract.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/__init__.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/models.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/provider.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/tests/test_rest_framework.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/tests/test_transaction.py +0 -0
- {djwebdapp-0.6.1 → djwebdapp-0.6.5}/tests/test_txgraph.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: djwebdapp
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.5
|
|
4
4
|
Home-page: https://yourlabs.io/oss/djwebdapp
|
|
5
5
|
Author: James Pic
|
|
6
6
|
Author-email: jamespic@gmail.com
|
|
@@ -8,12 +8,53 @@ License: MIT
|
|
|
8
8
|
Keywords: cli
|
|
9
9
|
Requires-Python: >=3.8
|
|
10
10
|
Description-Content-Type: text/x-rst
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Requires-Dist: django-model-utils
|
|
13
|
+
Requires-Dist: djfernet>=0.8.1
|
|
14
|
+
Requires-Dist: django-picklefield>=3.0.1
|
|
15
|
+
Requires-Dist: networkx==2.8.8
|
|
16
|
+
Requires-Dist: mnemonic
|
|
11
17
|
Provides-Extra: test
|
|
18
|
+
Requires-Dist: django; extra == "test"
|
|
19
|
+
Requires-Dist: djangorestframework; extra == "test"
|
|
20
|
+
Requires-Dist: pytest; extra == "test"
|
|
21
|
+
Requires-Dist: pytest-cov; extra == "test"
|
|
22
|
+
Requires-Dist: pytest-django; extra == "test"
|
|
23
|
+
Requires-Dist: web3<=6.20,>=6.7.0; extra == "test"
|
|
24
|
+
Requires-Dist: eth-typing<5; extra == "test"
|
|
12
25
|
Provides-Extra: ethereum
|
|
26
|
+
Requires-Dist: web3<=6.20,>=6.7.0; extra == "ethereum"
|
|
27
|
+
Requires-Dist: eth-typing<5; extra == "ethereum"
|
|
13
28
|
Provides-Extra: tezos
|
|
29
|
+
Requires-Dist: pytezos>3.4; extra == "tezos"
|
|
30
|
+
Requires-Dist: pymich>=0.9.8; extra == "tezos"
|
|
14
31
|
Provides-Extra: binary
|
|
32
|
+
Requires-Dist: pysodium; extra == "binary"
|
|
33
|
+
Requires-Dist: secp256k1; extra == "binary"
|
|
34
|
+
Requires-Dist: fastecdsa; extra == "binary"
|
|
15
35
|
Provides-Extra: all
|
|
16
|
-
|
|
36
|
+
Requires-Dist: django; extra == "all"
|
|
37
|
+
Requires-Dist: djangorestframework; extra == "all"
|
|
38
|
+
Requires-Dist: pytest; extra == "all"
|
|
39
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
40
|
+
Requires-Dist: pytest-django; extra == "all"
|
|
41
|
+
Requires-Dist: web3<=6.20,>=6.7.0; extra == "all"
|
|
42
|
+
Requires-Dist: eth-typing<5; extra == "all"
|
|
43
|
+
Requires-Dist: web3<=6.20,>=6.7.0; extra == "all"
|
|
44
|
+
Requires-Dist: eth-typing<5; extra == "all"
|
|
45
|
+
Requires-Dist: pytezos>3.4; extra == "all"
|
|
46
|
+
Requires-Dist: pymich>=0.9.8; extra == "all"
|
|
47
|
+
Requires-Dist: django; extra == "all"
|
|
48
|
+
Requires-Dist: djangorestframework; extra == "all"
|
|
49
|
+
Requires-Dist: pytest; extra == "all"
|
|
50
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
51
|
+
Requires-Dist: pytest-django; extra == "all"
|
|
52
|
+
Requires-Dist: web3<=6.20,>=6.7.0; extra == "all"
|
|
53
|
+
Requires-Dist: eth-typing<5; extra == "all"
|
|
54
|
+
Requires-Dist: web3<=6.20,>=6.7.0; extra == "all"
|
|
55
|
+
Requires-Dist: eth-typing<5; extra == "all"
|
|
56
|
+
Requires-Dist: pytezos>3.4; extra == "all"
|
|
57
|
+
Requires-Dist: pymich>=0.9.8; extra == "all"
|
|
17
58
|
|
|
18
59
|
djWebdApp
|
|
19
60
|
~~~~~~~~~
|
|
@@ -8,10 +8,13 @@ extras_require = dict(
|
|
|
8
8
|
'pytest',
|
|
9
9
|
'pytest-cov',
|
|
10
10
|
'pytest-django',
|
|
11
|
-
'web3
|
|
11
|
+
'web3>=6.7.0,<=6.20',
|
|
12
|
+
'eth-typing<5',
|
|
12
13
|
],
|
|
13
14
|
ethereum=[
|
|
14
|
-
'web3>=6.7.0', # no [dev] for persistent deployments
|
|
15
|
+
#'web3>=6.7.0', # no [dev] for persistent deployments
|
|
16
|
+
'web3>=6.7.0,<=6.20',
|
|
17
|
+
'eth-typing<5',
|
|
15
18
|
],
|
|
16
19
|
tezos=[
|
|
17
20
|
'pytezos>3.4',
|
|
@@ -33,7 +36,7 @@ for name, deps in extras_require.items():
|
|
|
33
36
|
|
|
34
37
|
setup(
|
|
35
38
|
name='djwebdapp',
|
|
36
|
-
version='0.6.
|
|
39
|
+
version='0.6.5',
|
|
37
40
|
setup_requires='setupmeta',
|
|
38
41
|
packages=find_packages('src'),
|
|
39
42
|
package_dir={'': 'src'},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: djwebdapp
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.5
|
|
4
4
|
Home-page: https://yourlabs.io/oss/djwebdapp
|
|
5
5
|
Author: James Pic
|
|
6
6
|
Author-email: jamespic@gmail.com
|
|
@@ -8,12 +8,53 @@ License: MIT
|
|
|
8
8
|
Keywords: cli
|
|
9
9
|
Requires-Python: >=3.8
|
|
10
10
|
Description-Content-Type: text/x-rst
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Requires-Dist: django-model-utils
|
|
13
|
+
Requires-Dist: djfernet>=0.8.1
|
|
14
|
+
Requires-Dist: django-picklefield>=3.0.1
|
|
15
|
+
Requires-Dist: networkx==2.8.8
|
|
16
|
+
Requires-Dist: mnemonic
|
|
11
17
|
Provides-Extra: test
|
|
18
|
+
Requires-Dist: django; extra == "test"
|
|
19
|
+
Requires-Dist: djangorestframework; extra == "test"
|
|
20
|
+
Requires-Dist: pytest; extra == "test"
|
|
21
|
+
Requires-Dist: pytest-cov; extra == "test"
|
|
22
|
+
Requires-Dist: pytest-django; extra == "test"
|
|
23
|
+
Requires-Dist: web3<=6.20,>=6.7.0; extra == "test"
|
|
24
|
+
Requires-Dist: eth-typing<5; extra == "test"
|
|
12
25
|
Provides-Extra: ethereum
|
|
26
|
+
Requires-Dist: web3<=6.20,>=6.7.0; extra == "ethereum"
|
|
27
|
+
Requires-Dist: eth-typing<5; extra == "ethereum"
|
|
13
28
|
Provides-Extra: tezos
|
|
29
|
+
Requires-Dist: pytezos>3.4; extra == "tezos"
|
|
30
|
+
Requires-Dist: pymich>=0.9.8; extra == "tezos"
|
|
14
31
|
Provides-Extra: binary
|
|
32
|
+
Requires-Dist: pysodium; extra == "binary"
|
|
33
|
+
Requires-Dist: secp256k1; extra == "binary"
|
|
34
|
+
Requires-Dist: fastecdsa; extra == "binary"
|
|
15
35
|
Provides-Extra: all
|
|
16
|
-
|
|
36
|
+
Requires-Dist: django; extra == "all"
|
|
37
|
+
Requires-Dist: djangorestframework; extra == "all"
|
|
38
|
+
Requires-Dist: pytest; extra == "all"
|
|
39
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
40
|
+
Requires-Dist: pytest-django; extra == "all"
|
|
41
|
+
Requires-Dist: web3<=6.20,>=6.7.0; extra == "all"
|
|
42
|
+
Requires-Dist: eth-typing<5; extra == "all"
|
|
43
|
+
Requires-Dist: web3<=6.20,>=6.7.0; extra == "all"
|
|
44
|
+
Requires-Dist: eth-typing<5; extra == "all"
|
|
45
|
+
Requires-Dist: pytezos>3.4; extra == "all"
|
|
46
|
+
Requires-Dist: pymich>=0.9.8; extra == "all"
|
|
47
|
+
Requires-Dist: django; extra == "all"
|
|
48
|
+
Requires-Dist: djangorestframework; extra == "all"
|
|
49
|
+
Requires-Dist: pytest; extra == "all"
|
|
50
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
51
|
+
Requires-Dist: pytest-django; extra == "all"
|
|
52
|
+
Requires-Dist: web3<=6.20,>=6.7.0; extra == "all"
|
|
53
|
+
Requires-Dist: eth-typing<5; extra == "all"
|
|
54
|
+
Requires-Dist: web3<=6.20,>=6.7.0; extra == "all"
|
|
55
|
+
Requires-Dist: eth-typing<5; extra == "all"
|
|
56
|
+
Requires-Dist: pytezos>3.4; extra == "all"
|
|
57
|
+
Requires-Dist: pymich>=0.9.8; extra == "all"
|
|
17
58
|
|
|
18
59
|
djWebdApp
|
|
19
60
|
~~~~~~~~~
|
|
@@ -10,8 +10,8 @@ djangorestframework
|
|
|
10
10
|
pytest
|
|
11
11
|
pytest-cov
|
|
12
12
|
pytest-django
|
|
13
|
-
web3
|
|
14
|
-
|
|
13
|
+
web3<=6.20,>=6.7.0
|
|
14
|
+
eth-typing<5
|
|
15
15
|
pytezos>3.4
|
|
16
16
|
pymich>=0.9.8
|
|
17
17
|
|
|
@@ -21,7 +21,8 @@ secp256k1
|
|
|
21
21
|
fastecdsa
|
|
22
22
|
|
|
23
23
|
[ethereum]
|
|
24
|
-
web3
|
|
24
|
+
web3<=6.20,>=6.7.0
|
|
25
|
+
eth-typing<5
|
|
25
26
|
|
|
26
27
|
[test]
|
|
27
28
|
django
|
|
@@ -29,7 +30,8 @@ djangorestframework
|
|
|
29
30
|
pytest
|
|
30
31
|
pytest-cov
|
|
31
32
|
pytest-django
|
|
32
|
-
web3
|
|
33
|
+
web3<=6.20,>=6.7.0
|
|
34
|
+
eth-typing<5
|
|
33
35
|
|
|
34
36
|
[tezos]
|
|
35
37
|
pytezos>3.4
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
|
|
3
|
+
from eth_utils.abi import event_abi_to_log_topic
|
|
3
4
|
from hexbytes import HexBytes
|
|
4
5
|
from web3 import Web3
|
|
6
|
+
from web3.exceptions import ContractLogicError
|
|
5
7
|
|
|
6
8
|
from django.conf import settings
|
|
7
9
|
|
|
10
|
+
from django.db import transaction as db_transaction
|
|
8
11
|
from djwebdapp.models import Account
|
|
9
12
|
from djwebdapp_ethereum.models import EthereumEvent, EthereumTransaction
|
|
10
13
|
from djwebdapp.provider import Provider
|
|
@@ -96,7 +99,7 @@ class EthereumProvider(Provider):
|
|
|
96
99
|
index=False,
|
|
97
100
|
)
|
|
98
101
|
|
|
99
|
-
call =
|
|
102
|
+
call = self.transaction_class.objects.select_subclasses().filter(
|
|
100
103
|
hash=transaction['hash'].hex(),
|
|
101
104
|
).first()
|
|
102
105
|
|
|
@@ -186,7 +189,7 @@ class EthereumProvider(Provider):
|
|
|
186
189
|
args[i] = self.client.to_bytes(hexstr=args[i])
|
|
187
190
|
|
|
188
191
|
tx = func(*args)
|
|
189
|
-
transaction.hash = self.write_transaction(transaction
|
|
192
|
+
transaction.hash = self.write_transaction(transaction, tx)
|
|
190
193
|
|
|
191
194
|
def deploy(self, transaction):
|
|
192
195
|
self.logger.debug(f'{transaction}.deploy(): start')
|
|
@@ -237,21 +240,24 @@ class EthereumProvider(Provider):
|
|
|
237
240
|
)
|
|
238
241
|
|
|
239
242
|
tx = Contract.constructor(*transaction.get_args())
|
|
240
|
-
transaction.hash = self.write_transaction(transaction
|
|
243
|
+
transaction.hash = self.write_transaction(transaction, tx)
|
|
241
244
|
receipt = self.client.eth.wait_for_transaction_receipt(
|
|
242
245
|
transaction.hash)
|
|
243
246
|
transaction.address = receipt.contractAddress
|
|
244
247
|
|
|
245
|
-
def write_transaction(self,
|
|
248
|
+
def write_transaction(self, djwebdapp_transaction, tx):
|
|
249
|
+
sender = djwebdapp_transaction.sender
|
|
246
250
|
nonce = self.client.eth.get_transaction_count(sender.address)
|
|
247
251
|
options = {
|
|
248
252
|
'from': sender.address,
|
|
249
253
|
'nonce': nonce,
|
|
250
254
|
}
|
|
251
|
-
|
|
252
|
-
tx.build_transaction(options)
|
|
253
|
-
|
|
254
|
-
|
|
255
|
+
try:
|
|
256
|
+
built = tx.build_transaction(options)
|
|
257
|
+
except ContractLogicError as e:
|
|
258
|
+
djwebdapp_transaction.error = e.message
|
|
259
|
+
raise e
|
|
260
|
+
options['gas'] = self.client.eth.estimate_gas(built)
|
|
255
261
|
signed_txn = self.client.eth.account.sign_transaction(
|
|
256
262
|
built,
|
|
257
263
|
private_key=sender.get_secret_key(),
|
|
@@ -399,7 +405,7 @@ class EthereumEventProvider(EthereumProvider):
|
|
|
399
405
|
self.logs
|
|
400
406
|
))
|
|
401
407
|
|
|
402
|
-
def get_contract_event_names(self, contract_abi):
|
|
408
|
+
def get_contract_event_names(self, contract_abi, encoded_event_name):
|
|
403
409
|
events = []
|
|
404
410
|
for entry in contract_abi:
|
|
405
411
|
if (
|
|
@@ -407,7 +413,12 @@ class EthereumEventProvider(EthereumProvider):
|
|
|
407
413
|
and entry["type"] == "event"
|
|
408
414
|
and "name" in entry
|
|
409
415
|
):
|
|
410
|
-
|
|
416
|
+
candidate_encoded_event_name = "0x" + event_abi_to_log_topic(
|
|
417
|
+
entry,
|
|
418
|
+
).hex()
|
|
419
|
+
if candidate_encoded_event_name == encoded_event_name:
|
|
420
|
+
events.append(entry["name"])
|
|
421
|
+
|
|
411
422
|
return events
|
|
412
423
|
|
|
413
424
|
def index_log(self, log):
|
|
@@ -416,21 +427,31 @@ class EthereumEventProvider(EthereumProvider):
|
|
|
416
427
|
# so the transaction is not created
|
|
417
428
|
# So right now I return if the tx not exists
|
|
418
429
|
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
430
|
+
with db_transaction.atomic():
|
|
431
|
+
transaction, created = self.transaction_class.objects.update_or_create( # noqa: E501
|
|
432
|
+
blockchain=self.blockchain,
|
|
433
|
+
hash=log["transactionHash"].hex(),
|
|
434
|
+
defaults=dict(
|
|
435
|
+
level=log["blockNumber"],
|
|
436
|
+
)
|
|
437
|
+
)
|
|
438
|
+
transaction.state_set("done")
|
|
423
439
|
|
|
424
|
-
|
|
440
|
+
if created:
|
|
441
|
+
"""
|
|
442
|
+
If the transaction was created, then it's from the log of an
|
|
443
|
+
indexed contract, we consider the original transaction to be
|
|
444
|
+
a `function` kind which we don't index.
|
|
425
445
|
|
|
426
|
-
|
|
427
|
-
|
|
446
|
+
This is crucial as it will otherwise by default be saved as
|
|
447
|
+
an indexed contract. If so, then the indexer will try to
|
|
448
|
+
index a contract with no address and raise!!
|
|
428
449
|
|
|
429
|
-
|
|
430
|
-
|
|
450
|
+
Hence this must also be in the atomic block.
|
|
451
|
+
"""
|
|
452
|
+
transaction.kind = "function"
|
|
431
453
|
transaction.index = False
|
|
432
|
-
|
|
433
|
-
transaction.save()
|
|
454
|
+
transaction.save()
|
|
434
455
|
|
|
435
456
|
contract = self.transaction_class.objects.filter(
|
|
436
457
|
address=log["address"]
|
|
@@ -439,7 +460,12 @@ class EthereumEventProvider(EthereumProvider):
|
|
|
439
460
|
address=contract.address,
|
|
440
461
|
abi=contract.abi,
|
|
441
462
|
)
|
|
442
|
-
|
|
463
|
+
# first topic encodes event name
|
|
464
|
+
encoded_log_name = log["topics"][0].hex()
|
|
465
|
+
event_names = self.get_contract_event_names(
|
|
466
|
+
contract_ci.abi,
|
|
467
|
+
encoded_log_name,
|
|
468
|
+
)
|
|
443
469
|
for event_name in event_names:
|
|
444
470
|
event = getattr(contract_ci.events, event_name)
|
|
445
471
|
event_data = event().process_receipt({"logs": [log]})
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0004_alter_transaction_options.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0007_alter_transaction_amount.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0010_alter_transaction_nonce.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0014_alter_account_unique_together.py
RENAMED
|
File without changes
|
{djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0015_alter_transaction_state.py
RENAMED
|
File without changes
|
{djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0016_alter_transaction_has_code.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/blockchain_with_event_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/migrations/0001_initial.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0002_tezostransaction_caller.py
RENAMED
|
File without changes
|
{djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0003_tezoscall_tezoscontract.py
RENAMED
|
File without changes
|
|
File without changes
|
{djwebdapp-0.6.1 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0005_tezoscall_tezoscontract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|