djwebdapp 0.6.0__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.

Files changed (155) hide show
  1. {djwebdapp-0.6.0/src/djwebdapp.egg-info → djwebdapp-0.6.5}/PKG-INFO +43 -2
  2. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/setup.py +6 -3
  3. {djwebdapp-0.6.0 → djwebdapp-0.6.5/src/djwebdapp.egg-info}/PKG-INFO +43 -2
  4. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp.egg-info/requires.txt +6 -4
  5. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/provider.py +49 -23
  6. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/LICENSE +0 -0
  7. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/MANIFEST.in +0 -0
  8. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/README.rst +0 -0
  9. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/setup.cfg +0 -0
  10. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/__init__.py +0 -0
  11. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/admin.py +0 -0
  12. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/apps.py +0 -0
  13. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/exceptions.py +0 -0
  14. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/management/__init__.py +0 -0
  15. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/management/commands/__init__.py +0 -0
  16. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/management/commands/history_download.py +0 -0
  17. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/management/commands/index.py +0 -0
  18. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/management/commands/normalize.py +0 -0
  19. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/management/commands/refresh_balances.py +0 -0
  20. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/management/commands/spool.py +0 -0
  21. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0001_initial.py +0 -0
  22. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0002_alter_transaction_receiver_alter_transaction_sender.py +0 -0
  23. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0003_transaction_txgroup_alter_transaction_hash_and_more.py +0 -0
  24. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0004_alter_transaction_options.py +0 -0
  25. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0005_alter_transaction_unique_together_and_more.py +0 -0
  26. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0006_blockchain_min_confirmations_alter_transaction_state.py +0 -0
  27. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0007_alter_transaction_amount.py +0 -0
  28. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0008_transaction_index.py +0 -0
  29. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0009_account_index.py +0 -0
  30. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0010_alter_transaction_nonce.py +0 -0
  31. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0011_rename_max_level_blockchain_index_level.py +0 -0
  32. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0012_transaction_number.py +0 -0
  33. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0013_transaction_normalized_dependency.py +0 -0
  34. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0014_alter_account_unique_together.py +0 -0
  35. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0015_alter_transaction_state.py +0 -0
  36. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0016_alter_transaction_has_code.py +0 -0
  37. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/0017_event.py +0 -0
  38. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/migrations/__init__.py +0 -0
  39. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/models.py +0 -0
  40. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/normalizers.py +0 -0
  41. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/provider.py +0 -0
  42. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp/signals.py +0 -0
  43. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp.egg-info/SOURCES.txt +0 -0
  44. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp.egg-info/dependency_links.txt +0 -0
  45. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp.egg-info/top_level.txt +0 -0
  46. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/__init__.py +0 -0
  47. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/admin.py +0 -0
  48. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/apps.py +0 -0
  49. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/migrations/0001_initial.py +0 -0
  50. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/migrations/0002_ethereumcall_ethereumcontract.py +0 -0
  51. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/migrations/0003_ethereumtransaction_caller.py +0 -0
  52. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/migrations/0004_ethereumevent.py +0 -0
  53. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/migrations/__init__.py +0 -0
  54. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_ethereum/models.py +0 -0
  55. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example/__init__.py +0 -0
  56. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example/balance.py +0 -0
  57. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example/balance_update.py +0 -0
  58. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example/deploy.py +0 -0
  59. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example/deploy_fa12.py +0 -0
  60. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example/migrations/0001_initial.py +0 -0
  61. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example/migrations/__init__.py +0 -0
  62. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example/models.py +0 -0
  63. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example/spool.py +0 -0
  64. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example/wait.py +0 -0
  65. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example/wallet_create.py +0 -0
  66. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/__init__.py +0 -0
  67. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/account.py +0 -0
  68. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/admin.py +0 -0
  69. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/apps.py +0 -0
  70. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/blockchain.py +0 -0
  71. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/blockchain_with_event_provider.py +0 -0
  72. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/client.py +0 -0
  73. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/deploy.py +0 -0
  74. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/deploy_contract.py +0 -0
  75. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/deploy_model.py +0 -0
  76. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/index.py +0 -0
  77. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/load.py +0 -0
  78. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/migrations/0001_initial.py +0 -0
  79. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/migrations/0002_fa12ethereumbalancemovement.py +0 -0
  80. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/migrations/__init__.py +0 -0
  81. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/mint_normalize.py +0 -0
  82. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/models.py +0 -0
  83. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/normalize.py +0 -0
  84. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/normalizers.py +0 -0
  85. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/tests.py +0 -0
  86. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/transfer.py +0 -0
  87. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/views.py +0 -0
  88. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_ethereum/wallet_import.py +0 -0
  89. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/Proxy.py +0 -0
  90. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/__init__.py +0 -0
  91. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/account.py +0 -0
  92. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/admin.py +0 -0
  93. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/apps.py +0 -0
  94. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/blockchain.py +0 -0
  95. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/call_parallel.py +0 -0
  96. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/callee.json +0 -0
  97. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/callee.py +0 -0
  98. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/caller.json +0 -0
  99. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/caller.py +0 -0
  100. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/client.py +0 -0
  101. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/contracts/FA12.json +0 -0
  102. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/contracts/FA12.py +0 -0
  103. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/deploy.py +0 -0
  104. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/deploy_client.py +0 -0
  105. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/deploy_contract.py +0 -0
  106. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/deploy_model.py +0 -0
  107. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/index.py +0 -0
  108. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/load.py +0 -0
  109. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/migrations/0001_initial.py +0 -0
  110. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/migrations/__init__.py +0 -0
  111. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/mint_normalize.py +0 -0
  112. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/models.py +0 -0
  113. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/normalize.py +0 -0
  114. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/normalize_old.py +0 -0
  115. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/normalizers.py +0 -0
  116. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/tests.py +0 -0
  117. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/transfer.py +0 -0
  118. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/views.py +0 -0
  119. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_example_tezos/wallet_import.py +0 -0
  120. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_fa2/__init__.py +0 -0
  121. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_fa2/admin.py +0 -0
  122. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_fa2/apps.py +0 -0
  123. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_fa2/migrations/0001_initial.py +0 -0
  124. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_fa2/migrations/__init__.py +0 -0
  125. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_fa2/models.py +0 -0
  126. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_fa2/normalizers.py +0 -0
  127. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_fa2/serializers.py +0 -0
  128. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_fa2/urls.py +0 -0
  129. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_fa2/views.py +0 -0
  130. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_multisig/__init__.py +0 -0
  131. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_multisig/admin.py +0 -0
  132. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_multisig/apps.py +0 -0
  133. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_multisig/migrations/0001_initial.py +0 -0
  134. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_multisig/migrations/__init__.py +0 -0
  135. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_multisig/models.py +0 -0
  136. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_rest_framework/__init__.py +0 -0
  137. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_rest_framework/apps.py +0 -0
  138. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_rest_framework/migrations/__init__.py +0 -0
  139. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_rest_framework/models.py +0 -0
  140. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_rest_framework/views.py +0 -0
  141. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_tezos/__init__.py +0 -0
  142. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_tezos/admin.py +0 -0
  143. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_tezos/management/__init__.py +0 -0
  144. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_tezos/management/commands/__init__.py +0 -0
  145. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0001_initial.py +0 -0
  146. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0002_tezostransaction_caller.py +0 -0
  147. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0003_tezoscall_tezoscontract.py +0 -0
  148. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0004_delete_tezoscall_delete_tezoscontract.py +0 -0
  149. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/0005_tezoscall_tezoscontract.py +0 -0
  150. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_tezos/migrations/__init__.py +0 -0
  151. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_tezos/models.py +0 -0
  152. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/src/djwebdapp_tezos/provider.py +0 -0
  153. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/tests/test_rest_framework.py +0 -0
  154. {djwebdapp-0.6.0 → djwebdapp-0.6.5}/tests/test_transaction.py +0 -0
  155. {djwebdapp-0.6.0 → 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.0
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
- License-File: LICENSE
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[dev]>=6.7.0',
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.0',
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.0
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
- License-File: LICENSE
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[dev]>=6.7.0
14
- web3>=6.7.0
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>=6.7.0
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[dev]>=6.7.0
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 = contract.call_set.select_subclasses().filter(
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.sender, tx)
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.sender, tx)
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, sender, tx):
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
- options['gas'] = self.client.eth.estimate_gas(
252
- tx.build_transaction(options)
253
- )
254
- built = tx.build_transaction(options)
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
- events.append(entry["name"])
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,30 +427,45 @@ 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
- transaction, created = self.transaction_class.objects.get_or_create(
420
- blockchain=self.blockchain,
421
- hash=log["transactionHash"].hex(),
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
- is_contract_deployment_tx = 'to' not in log
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
- if created:
427
- transaction.level = log["blockNumber"]
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
- if is_contract_deployment_tx:
430
- transaction.state = 'done'
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"]
437
- ).first().contract_subclass()
458
+ ).first()
438
459
  contract_ci = self.client.eth.contract(
439
460
  address=contract.address,
440
461
  abi=contract.abi,
441
462
  )
442
- event_names = self.get_contract_event_names(contract_ci.abi)
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