Changes in go-algorand
's handling of dry run errors broke the methods error()
and error_message()
of DryRunInspector
. This is fixed in #49
class ABIContractExecutor
renamed toABICallStrategy
and moved fromgraviton/blackbox.py
tograviton/abi_strategy.py
. Some of the methods have been renamed as well (#49)
class Simulation
ingraviton/sim.py
unifies the ability to run an argument strategy and check that invariants hold using itsrun_and_assert()
method (#49)class DryRunTransactionParameters
has a new methodupdate_fields()
(#49)
In #48, the following classes were pulled out of graviton/blackbox.py
and into a new file graviton/inspector.py
TealVal
DryRunResults
(renamed fromBlackboxResults
)DryRunInspector
In #44:
DryRunExecutor
has been refactored. All the class methodsdryrun_*
have been removed in favor of the instance methodsrun_one()
andrun_sequence()
. In particular, it is now required to instantiate aDryRunExecutor
object before calling a dry run executing method.DryRunInspector
no longer acceptsargs
as a second parameter and usesself.args
instead.- Migration path to the above: it is recommended that calls be re-written to use the new API. If you find that this causes too much friction, please open an issue.
- Adding
budget_added
andbudget_consumed
toDryRunInspector.csv_row()
- Upgrade to
py-algorand-sdk
v2 (#46)
In #42:
- Inside
graviton/blackbox.py
: Removing the parametersabi_argument_types
andabi_return_type
from dry run execution methods, in favor of the unifiedabi_method_signature
parameter. Also addingomit_method_selector
andvalidation
parameters to allow running non-ARC-4 compliant teal code that use ABI types. - Deleting orphaned code mostly brought over from original py-algorand-sdk code:
- Entire file:
graviton/deprecated_dryrun.py
- Entire file:
graviton/deprecated_dryrun_mixin.py
- Entire file:
tests/integration/dryrun_mixin_docs_test.py
- The following functions and methods in
graviton/dryrun.py
:_fail()
assert_pass()
assert_reject()
assert_status()
assert_global_state_contains()
assert_local_state_contains()
DryRunHelper._guess()
DryRunHelper.format_stack()
DryRunHelper.find_delta_value()
DryRunHelper.save_dryrun_request()
- Recommended actions in case you are currently using the above:
- Consider opening an issue alerting us of the impact
- The original code is mostly available in py-algorand v1.20.2
- Entire file:
- Deleting method
Invariant.inputs_and_invariants()
- Recommended migration path: It is recommended that inputs and invariants be accessed directly from the
dictionary that contains them (e.g. this example) or that
Invariant.full_validation()
be employed instead (e.g. this example).
- Recommended migration path: It is recommended that inputs and invariants be accessed directly from the
dictionary that contains them (e.g. this example) or that
class PredicateKind
introduced to strengthen typing of predicates and invariantsPredicateKind.IdenticalPair
: allow asserting identical behavior of teal programs without specifying behavior details
- Ability to handle
dryrun_accounts
in dry run executions - New assertable dryrun properties
budgetAdded
andbudgetConsumed
including the rewiring ofcost
to be computed asbudgetConsumed - budgetAdded
- New
mypy
errors arising from stricter enforcement of setting ofNone
to non-optional types
- Various dependencies including
py-algorand-sdk>=1.16.1
- Better Logos
- Badges for:
- visitor count
- "powered by Algorand"
- New
THANKS.md
- Original logo including ALT link to graviton journal article in the following tag:
<img width="345" alt="http://cds.cern.ch/record/2315186/files/scoap3-fulltext.pdf" src="https://user-images.githubusercontent.com/291133/160721859-21a3560a-0a82-4249-aa54-5ede4c60f8d2.png">
- ABI Contract / Router / Execution functionality
- A bug that made all app calls run as if during creation
- Addressed Issue #5: Better assertion message for invariant predicates of 2 variables
- Minimum python is bumped up to 3.9 (previously 3.8)
mypy
- Jupyter Notebooks
- Allow handling of Transaction Params in Logic Sig and App Dry-Runs
- ABI Functionality (types only)
- Misleading error message in the case of an erroring dry run response
- Semantic versioning
- Basic functionality
- π¦ (Alpaca) ==
v0.1.0
- π (Boar) ==
v0.2.0
- π (Cat) ==
v0.3.0
- π (Dog) ==
v0.4.0
- π (Elephant) ==
v0.5.0
- πΈ (Frog) ==
v0.6.0
... etc ...
- create an annotated tag:
git tag -as π¦ -m "productionize graviton" && git push origin π¦
- get tag details:
git show π¦