djwebdapp 0.6.2.dev2__tar.gz → 0.6.6__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 (156) hide show
  1. {djwebdapp-0.6.2.dev2/src/djwebdapp.egg-info → djwebdapp-0.6.6}/PKG-INFO +24 -8
  2. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/setup.py +5 -3
  3. djwebdapp-0.6.6/src/djwebdapp/migrations/0018_blockchain_chain_id.py +18 -0
  4. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/models.py +8 -0
  5. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6/src/djwebdapp.egg-info}/PKG-INFO +24 -8
  6. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp.egg-info/SOURCES.txt +1 -0
  7. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp.egg-info/requires.txt +6 -3
  8. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_ethereum/provider.py +36 -17
  9. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/LICENSE +0 -0
  10. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/MANIFEST.in +0 -0
  11. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/README.rst +0 -0
  12. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/setup.cfg +0 -0
  13. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/__init__.py +0 -0
  14. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/admin.py +0 -0
  15. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/apps.py +0 -0
  16. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/exceptions.py +0 -0
  17. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/management/__init__.py +0 -0
  18. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/management/commands/__init__.py +0 -0
  19. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/management/commands/history_download.py +0 -0
  20. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/management/commands/index.py +0 -0
  21. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/management/commands/normalize.py +0 -0
  22. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/management/commands/refresh_balances.py +0 -0
  23. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/management/commands/spool.py +0 -0
  24. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0001_initial.py +0 -0
  25. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0002_alter_transaction_receiver_alter_transaction_sender.py +0 -0
  26. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0003_transaction_txgroup_alter_transaction_hash_and_more.py +0 -0
  27. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0004_alter_transaction_options.py +0 -0
  28. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0005_alter_transaction_unique_together_and_more.py +0 -0
  29. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0006_blockchain_min_confirmations_alter_transaction_state.py +0 -0
  30. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0007_alter_transaction_amount.py +0 -0
  31. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0008_transaction_index.py +0 -0
  32. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0009_account_index.py +0 -0
  33. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0010_alter_transaction_nonce.py +0 -0
  34. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0011_rename_max_level_blockchain_index_level.py +0 -0
  35. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0012_transaction_number.py +0 -0
  36. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0013_transaction_normalized_dependency.py +0 -0
  37. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0014_alter_account_unique_together.py +0 -0
  38. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0015_alter_transaction_state.py +0 -0
  39. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0016_alter_transaction_has_code.py +0 -0
  40. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/0017_event.py +0 -0
  41. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/migrations/__init__.py +0 -0
  42. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/normalizers.py +0 -0
  43. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/provider.py +0 -0
  44. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp/signals.py +0 -0
  45. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp.egg-info/dependency_links.txt +0 -0
  46. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp.egg-info/top_level.txt +0 -0
  47. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_ethereum/__init__.py +0 -0
  48. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_ethereum/admin.py +0 -0
  49. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_ethereum/apps.py +0 -0
  50. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_ethereum/migrations/0001_initial.py +0 -0
  51. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_ethereum/migrations/0002_ethereumcall_ethereumcontract.py +0 -0
  52. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_ethereum/migrations/0003_ethereumtransaction_caller.py +0 -0
  53. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_ethereum/migrations/0004_ethereumevent.py +0 -0
  54. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_ethereum/migrations/__init__.py +0 -0
  55. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_ethereum/models.py +0 -0
  56. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example/__init__.py +0 -0
  57. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example/balance.py +0 -0
  58. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example/balance_update.py +0 -0
  59. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example/deploy.py +0 -0
  60. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example/deploy_fa12.py +0 -0
  61. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example/migrations/0001_initial.py +0 -0
  62. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example/migrations/__init__.py +0 -0
  63. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example/models.py +0 -0
  64. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example/spool.py +0 -0
  65. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example/wait.py +0 -0
  66. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example/wallet_create.py +0 -0
  67. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/__init__.py +0 -0
  68. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/account.py +0 -0
  69. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/admin.py +0 -0
  70. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/apps.py +0 -0
  71. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/blockchain.py +0 -0
  72. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/blockchain_with_event_provider.py +0 -0
  73. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/client.py +0 -0
  74. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/deploy.py +0 -0
  75. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/deploy_contract.py +0 -0
  76. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/deploy_model.py +0 -0
  77. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/index.py +0 -0
  78. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/load.py +0 -0
  79. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/migrations/0001_initial.py +0 -0
  80. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/migrations/0002_fa12ethereumbalancemovement.py +0 -0
  81. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/migrations/__init__.py +0 -0
  82. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/mint_normalize.py +0 -0
  83. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/models.py +0 -0
  84. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/normalize.py +0 -0
  85. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/normalizers.py +0 -0
  86. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/tests.py +0 -0
  87. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/transfer.py +0 -0
  88. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/views.py +0 -0
  89. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_ethereum/wallet_import.py +0 -0
  90. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/Proxy.py +0 -0
  91. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/__init__.py +0 -0
  92. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/account.py +0 -0
  93. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/admin.py +0 -0
  94. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/apps.py +0 -0
  95. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/blockchain.py +0 -0
  96. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/call_parallel.py +0 -0
  97. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/callee.json +0 -0
  98. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/callee.py +0 -0
  99. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/caller.json +0 -0
  100. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/caller.py +0 -0
  101. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/client.py +0 -0
  102. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/contracts/FA12.json +0 -0
  103. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/contracts/FA12.py +0 -0
  104. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/deploy.py +0 -0
  105. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/deploy_client.py +0 -0
  106. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/deploy_contract.py +0 -0
  107. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/deploy_model.py +0 -0
  108. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/index.py +0 -0
  109. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/load.py +0 -0
  110. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/migrations/0001_initial.py +0 -0
  111. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/migrations/__init__.py +0 -0
  112. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/mint_normalize.py +0 -0
  113. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/models.py +0 -0
  114. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/normalize.py +0 -0
  115. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/normalize_old.py +0 -0
  116. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/normalizers.py +0 -0
  117. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/tests.py +0 -0
  118. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/transfer.py +0 -0
  119. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/views.py +0 -0
  120. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_example_tezos/wallet_import.py +0 -0
  121. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_fa2/__init__.py +0 -0
  122. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_fa2/admin.py +0 -0
  123. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_fa2/apps.py +0 -0
  124. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_fa2/migrations/0001_initial.py +0 -0
  125. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_fa2/migrations/__init__.py +0 -0
  126. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_fa2/models.py +0 -0
  127. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_fa2/normalizers.py +0 -0
  128. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_fa2/serializers.py +0 -0
  129. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_fa2/urls.py +0 -0
  130. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_fa2/views.py +0 -0
  131. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_multisig/__init__.py +0 -0
  132. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_multisig/admin.py +0 -0
  133. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_multisig/apps.py +0 -0
  134. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_multisig/migrations/0001_initial.py +0 -0
  135. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_multisig/migrations/__init__.py +0 -0
  136. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_multisig/models.py +0 -0
  137. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_rest_framework/__init__.py +0 -0
  138. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_rest_framework/apps.py +0 -0
  139. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_rest_framework/migrations/__init__.py +0 -0
  140. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_rest_framework/models.py +0 -0
  141. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_rest_framework/views.py +0 -0
  142. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_tezos/__init__.py +0 -0
  143. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_tezos/admin.py +0 -0
  144. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_tezos/management/__init__.py +0 -0
  145. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_tezos/management/commands/__init__.py +0 -0
  146. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_tezos/migrations/0001_initial.py +0 -0
  147. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_tezos/migrations/0002_tezostransaction_caller.py +0 -0
  148. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_tezos/migrations/0003_tezoscall_tezoscontract.py +0 -0
  149. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_tezos/migrations/0004_delete_tezoscall_delete_tezoscontract.py +0 -0
  150. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_tezos/migrations/0005_tezoscall_tezoscontract.py +0 -0
  151. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_tezos/migrations/__init__.py +0 -0
  152. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_tezos/models.py +0 -0
  153. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/src/djwebdapp_tezos/provider.py +0 -0
  154. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/tests/test_rest_framework.py +0 -0
  155. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/tests/test_transaction.py +0 -0
  156. {djwebdapp-0.6.2.dev2 → djwebdapp-0.6.6}/tests/test_txgraph.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: djwebdapp
3
- Version: 0.6.2.dev2
3
+ Version: 0.6.6
4
4
  Home-page: https://yourlabs.io/oss/djwebdapp
5
5
  Author: James Pic
6
6
  Author-email: jamespic@gmail.com
@@ -20,9 +20,11 @@ Requires-Dist: djangorestframework; extra == "test"
20
20
  Requires-Dist: pytest; extra == "test"
21
21
  Requires-Dist: pytest-cov; extra == "test"
22
22
  Requires-Dist: pytest-django; extra == "test"
23
- Requires-Dist: web3<=6.15.1,>=6.7.0; extra == "test"
23
+ Requires-Dist: web3<=6.20,>=6.7.0; extra == "test"
24
+ Requires-Dist: eth-typing<5; extra == "test"
24
25
  Provides-Extra: ethereum
25
- Requires-Dist: web3<=6.15.1,>=6.7.0; extra == "ethereum"
26
+ Requires-Dist: web3<=6.20,>=6.7.0; extra == "ethereum"
27
+ Requires-Dist: eth-typing<5; extra == "ethereum"
26
28
  Provides-Extra: tezos
27
29
  Requires-Dist: pytezos>3.4; extra == "tezos"
28
30
  Requires-Dist: pymich>=0.9.8; extra == "tezos"
@@ -36,8 +38,10 @@ Requires-Dist: djangorestframework; extra == "all"
36
38
  Requires-Dist: pytest; extra == "all"
37
39
  Requires-Dist: pytest-cov; extra == "all"
38
40
  Requires-Dist: pytest-django; extra == "all"
39
- Requires-Dist: web3<=6.15.1,>=6.7.0; extra == "all"
40
- Requires-Dist: web3<=6.15.1,>=6.7.0; 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"
41
45
  Requires-Dist: pytezos>3.4; extra == "all"
42
46
  Requires-Dist: pymich>=0.9.8; extra == "all"
43
47
  Requires-Dist: django; extra == "all"
@@ -45,10 +49,22 @@ Requires-Dist: djangorestframework; extra == "all"
45
49
  Requires-Dist: pytest; extra == "all"
46
50
  Requires-Dist: pytest-cov; extra == "all"
47
51
  Requires-Dist: pytest-django; extra == "all"
48
- Requires-Dist: web3<=6.15.1,>=6.7.0; extra == "all"
49
- Requires-Dist: web3<=6.15.1,>=6.7.0; 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"
50
56
  Requires-Dist: pytezos>3.4; extra == "all"
51
57
  Requires-Dist: pymich>=0.9.8; extra == "all"
58
+ Dynamic: author
59
+ Dynamic: author-email
60
+ Dynamic: description
61
+ Dynamic: description-content-type
62
+ Dynamic: home-page
63
+ Dynamic: keywords
64
+ Dynamic: license
65
+ Dynamic: provides-extra
66
+ Dynamic: requires-dist
67
+ Dynamic: requires-python
52
68
 
53
69
  djWebdApp
54
70
  ~~~~~~~~~
@@ -8,11 +8,13 @@ extras_require = dict(
8
8
  'pytest',
9
9
  'pytest-cov',
10
10
  'pytest-django',
11
- 'web3>=6.7.0,<=6.15.1',
11
+ 'web3>=6.7.0,<=6.20',
12
+ 'eth-typing<5',
12
13
  ],
13
14
  ethereum=[
14
15
  #'web3>=6.7.0', # no [dev] for persistent deployments
15
- 'web3>=6.7.0,<=6.15.1',
16
+ 'web3>=6.7.0,<=6.20',
17
+ 'eth-typing<5',
16
18
  ],
17
19
  tezos=[
18
20
  'pytezos>3.4',
@@ -34,7 +36,7 @@ for name, deps in extras_require.items():
34
36
 
35
37
  setup(
36
38
  name='djwebdapp',
37
- version='0.6.2.dev2',
39
+ version='0.6.6',
38
40
  setup_requires='setupmeta',
39
41
  packages=find_packages('src'),
40
42
  package_dir={'': 'src'},
@@ -0,0 +1,18 @@
1
+ # Generated by Django 5.2 on 2025-04-15 17:04
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('djwebdapp', '0017_event'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AddField(
14
+ model_name='blockchain',
15
+ name='chain_id',
16
+ field=models.IntegerField(blank=True, null=True),
17
+ ),
18
+ ]
@@ -253,6 +253,10 @@ class Blockchain(models.Model):
253
253
 
254
254
  Optionnal description for this blockchain.
255
255
 
256
+ .. py:attribute:: chain_id
257
+
258
+ Chain ID used to distinguish different EVM blockchains.
259
+
256
260
  .. py:attribute:: unit
257
261
 
258
262
  Unit name of the blockchain, ie. eth, xtz...
@@ -293,6 +297,10 @@ class Blockchain(models.Model):
293
297
  blank=True,
294
298
  help_text='Free text to describe the blockchain to users',
295
299
  )
300
+ chain_id = models.IntegerField(
301
+ blank=True,
302
+ null=True,
303
+ )
296
304
  unit = models.CharField(
297
305
  max_length=15,
298
306
  help_text='Unit name, ie. btc, xtz...',
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: djwebdapp
3
- Version: 0.6.2.dev2
3
+ Version: 0.6.6
4
4
  Home-page: https://yourlabs.io/oss/djwebdapp
5
5
  Author: James Pic
6
6
  Author-email: jamespic@gmail.com
@@ -20,9 +20,11 @@ Requires-Dist: djangorestframework; extra == "test"
20
20
  Requires-Dist: pytest; extra == "test"
21
21
  Requires-Dist: pytest-cov; extra == "test"
22
22
  Requires-Dist: pytest-django; extra == "test"
23
- Requires-Dist: web3<=6.15.1,>=6.7.0; extra == "test"
23
+ Requires-Dist: web3<=6.20,>=6.7.0; extra == "test"
24
+ Requires-Dist: eth-typing<5; extra == "test"
24
25
  Provides-Extra: ethereum
25
- Requires-Dist: web3<=6.15.1,>=6.7.0; extra == "ethereum"
26
+ Requires-Dist: web3<=6.20,>=6.7.0; extra == "ethereum"
27
+ Requires-Dist: eth-typing<5; extra == "ethereum"
26
28
  Provides-Extra: tezos
27
29
  Requires-Dist: pytezos>3.4; extra == "tezos"
28
30
  Requires-Dist: pymich>=0.9.8; extra == "tezos"
@@ -36,8 +38,10 @@ Requires-Dist: djangorestframework; extra == "all"
36
38
  Requires-Dist: pytest; extra == "all"
37
39
  Requires-Dist: pytest-cov; extra == "all"
38
40
  Requires-Dist: pytest-django; extra == "all"
39
- Requires-Dist: web3<=6.15.1,>=6.7.0; extra == "all"
40
- Requires-Dist: web3<=6.15.1,>=6.7.0; 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"
41
45
  Requires-Dist: pytezos>3.4; extra == "all"
42
46
  Requires-Dist: pymich>=0.9.8; extra == "all"
43
47
  Requires-Dist: django; extra == "all"
@@ -45,10 +49,22 @@ Requires-Dist: djangorestframework; extra == "all"
45
49
  Requires-Dist: pytest; extra == "all"
46
50
  Requires-Dist: pytest-cov; extra == "all"
47
51
  Requires-Dist: pytest-django; extra == "all"
48
- Requires-Dist: web3<=6.15.1,>=6.7.0; extra == "all"
49
- Requires-Dist: web3<=6.15.1,>=6.7.0; 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"
50
56
  Requires-Dist: pytezos>3.4; extra == "all"
51
57
  Requires-Dist: pymich>=0.9.8; extra == "all"
58
+ Dynamic: author
59
+ Dynamic: author-email
60
+ Dynamic: description
61
+ Dynamic: description-content-type
62
+ Dynamic: home-page
63
+ Dynamic: keywords
64
+ Dynamic: license
65
+ Dynamic: provides-extra
66
+ Dynamic: requires-dist
67
+ Dynamic: requires-python
52
68
 
53
69
  djWebdApp
54
70
  ~~~~~~~~~
@@ -39,6 +39,7 @@ src/djwebdapp/migrations/0014_alter_account_unique_together.py
39
39
  src/djwebdapp/migrations/0015_alter_transaction_state.py
40
40
  src/djwebdapp/migrations/0016_alter_transaction_has_code.py
41
41
  src/djwebdapp/migrations/0017_event.py
42
+ src/djwebdapp/migrations/0018_blockchain_chain_id.py
42
43
  src/djwebdapp/migrations/__init__.py
43
44
  src/djwebdapp_ethereum/__init__.py
44
45
  src/djwebdapp_ethereum/admin.py
@@ -10,7 +10,8 @@ djangorestframework
10
10
  pytest
11
11
  pytest-cov
12
12
  pytest-django
13
- web3<=6.15.1,>=6.7.0
13
+ web3<=6.20,>=6.7.0
14
+ eth-typing<5
14
15
  pytezos>3.4
15
16
  pymich>=0.9.8
16
17
 
@@ -20,7 +21,8 @@ secp256k1
20
21
  fastecdsa
21
22
 
22
23
  [ethereum]
23
- web3<=6.15.1,>=6.7.0
24
+ web3<=6.20,>=6.7.0
25
+ eth-typing<5
24
26
 
25
27
  [test]
26
28
  django
@@ -28,7 +30,8 @@ djangorestframework
28
30
  pytest
29
31
  pytest-cov
30
32
  pytest-django
31
- web3<=6.15.1,>=6.7.0
33
+ web3<=6.20,>=6.7.0
34
+ eth-typing<5
32
35
 
33
36
  [tezos]
34
37
  pytezos>3.4
@@ -1,11 +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
5
6
  from web3.exceptions import ContractLogicError
6
7
 
7
8
  from django.conf import settings
8
9
 
10
+ from django.db import transaction as db_transaction
9
11
  from djwebdapp.models import Account
10
12
  from djwebdapp_ethereum.models import EthereumEvent, EthereumTransaction
11
13
  from djwebdapp.provider import Provider
@@ -97,7 +99,7 @@ class EthereumProvider(Provider):
97
99
  index=False,
98
100
  )
99
101
 
100
- call = contract.call_set.select_subclasses().filter(
102
+ call = self.transaction_class.objects.select_subclasses().filter(
101
103
  hash=transaction['hash'].hex(),
102
104
  ).first()
103
105
 
@@ -403,7 +405,7 @@ class EthereumEventProvider(EthereumProvider):
403
405
  self.logs
404
406
  ))
405
407
 
406
- def get_contract_event_names(self, contract_abi):
408
+ def get_contract_event_names(self, contract_abi, encoded_event_name):
407
409
  events = []
408
410
  for entry in contract_abi:
409
411
  if (
@@ -411,7 +413,12 @@ class EthereumEventProvider(EthereumProvider):
411
413
  and entry["type"] == "event"
412
414
  and "name" in entry
413
415
  ):
414
- 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
+
415
422
  return events
416
423
 
417
424
  def index_log(self, log):
@@ -420,24 +427,31 @@ class EthereumEventProvider(EthereumProvider):
420
427
  # so the transaction is not created
421
428
  # So right now I return if the tx not exists
422
429
 
423
- transaction, created = self.transaction_class.objects.update_or_create(
424
- blockchain=self.blockchain,
425
- hash=log["transactionHash"].hex(),
426
- defaults=dict(
427
- level=log["blockNumber"],
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
+ )
428
437
  )
429
- )
438
+ transaction.state_set("done")
430
439
 
431
- 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.
432
445
 
433
- if created:
434
- 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!!
435
449
 
436
- if is_contract_deployment_tx:
437
- transaction.state = 'done'
450
+ Hence this must also be in the atomic block.
451
+ """
452
+ transaction.kind = "function"
438
453
  transaction.index = False
439
-
440
- transaction.save()
454
+ transaction.save()
441
455
 
442
456
  contract = self.transaction_class.objects.filter(
443
457
  address=log["address"]
@@ -446,7 +460,12 @@ class EthereumEventProvider(EthereumProvider):
446
460
  address=contract.address,
447
461
  abi=contract.abi,
448
462
  )
449
- 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
+ )
450
469
  for event_name in event_names:
451
470
  event = getattr(contract_ci.events, event_name)
452
471
  event_data = event().process_receipt({"logs": [log]})
File without changes
File without changes
File without changes
File without changes