Ich schreibe einen Vertrag für ganzzahlige Arithmetik beliebiger Länge zur Verwendung in einem größeren Projekt.
Das Problem ist, dass, sobald der Vertrag eine bestimmte Größe überschreitet, die Python-Testumgebung ethereum.tester.state().abi_contract() diesen Stack-Trace ausgibt:
Traceback (most recent call last):
File "se_bigint.py", line 5, in <module>
bigint = s.abi_contract('bigint.se')
File "/home/ada/mypy/local/lib/python2.7/site-packages/ethereum/tester.py", line 166, in abi_contract
assert len(self.block.get_code(address), "Contract code empty")
AssertionError: Contract code empty
Hier ist ein Pastebin mit funktionierendem Code: http://pastebin.com/1KppMmRx
Und hier ist ein Pastebin, das den Fehler reproduziert: http://pastebin.com/qq7mcLeM
Beachten Sie, dass der einzige Unterschied zwischen ihnen eine bedeutungslose Arbeit ist, die einer der Vertragsfunktionen hinzugefügt wird. Beachten Sie auch, dass beide Verträge erfolgreich über "serpent compile bigint.se" kompiliert werden. Ich sehe dies sowohl in der PyPI-Version als auch im aktuellen Github-Entwicklungszweig.
Ich hätte das im Ethereum-Forum gefragt, aber ich scheine dort drüben in der Kontobestätigung festzustecken.
Weiß jemand woran das liegen könnte oder wie man das umgehen kann?
Liefern Sie genug Gas für den Einsatz? Vor Homestead können Verträge ohne Code bereitgestellt werden, wenn Ihnen während der Bereitstellung das Benzin ausgeht.
Ada Merriweather
eth