Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
211 commits
Select commit Hold shift + click to select a range
8f840dc
Add simulate endpoint to OpenAPI file
jdtzmn Jul 20, 2022
62f4b59
Basic simulation endpoint with failure message
jdtzmn Jul 25, 2022
505bc50
Return msgpack response instead of JSON
jdtzmn Jul 26, 2022
58846a3
Test Simulator class with basic pay transactions
jdtzmn Jul 27, 2022
e242bc4
Use genesis methods for block header creation
jdtzmn Jul 27, 2022
63805af
Test simple group transaction
jdtzmn Jul 27, 2022
5d93ceb
Trivial app create and call test
jdtzmn Jul 27, 2022
2c8c912
Remove budget error gatekeeping for now
jdtzmn Jul 27, 2022
b9f96ee
Add invalid signature check
jdtzmn Jul 28, 2022
e52d1bf
Lowercase simulate test methods to make them private
jdtzmn Jul 28, 2022
a9f4d1a
Add balance change test
jdtzmn Jul 28, 2022
8a54d2e
Merge branch 'feature/simulate-endpoint' into psuedo-eval-endpoint
jdtzmn Jul 29, 2022
301a366
Implement newly included ledger methods introduced in the merge
jdtzmn Jul 29, 2022
06d0063
Fix unkeyed struct fields
jdtzmn Jul 29, 2022
0631333
Fix golint errors
jdtzmn Jul 29, 2022
7f0b564
Spec file changes
jdtzmn Aug 1, 2022
6e5c9ce
Use new flag for configuring simulation endpoint visibility
jdtzmn Aug 2, 2022
64567aa
Check node status separately from transaction decoding
jdtzmn Aug 2, 2022
fc76cb2
Write interface annotations
jdtzmn Aug 2, 2022
760bbfb
Add docstring to MakeLedgerForRound
jdtzmn Aug 2, 2022
cc6e605
Use error type to fix fragile signature error check
jdtzmn Aug 2, 2022
c51926f
Fix signature check and add invalid signature test
jdtzmn Aug 2, 2022
deb330f
Test reject app call
jdtzmn Aug 2, 2022
19cdb73
Disable transaction simulator by default
jdtzmn Aug 4, 2022
462a9dd
Fix API spec descriptions
jdtzmn Aug 5, 2022
b2c4f51
Improve `decodeTxGroup`
jdtzmn Aug 4, 2022
6ec12f1
Clean up simulator ledger
jdtzmn Aug 5, 2022
b5473ae
Add invalid transaction group test
jdtzmn Aug 5, 2022
307709d
Make `SignatureError` a struct
jdtzmn Aug 5, 2022
7995700
Cleanup simulator tests
jdtzmn Aug 5, 2022
02d0947
Remove “contact us” language and cut helper function used in only one…
jdtzmn Aug 5, 2022
a3e0f59
Handle returned error from `attachGroupID`
jdtzmn Aug 5, 2022
dad0197
Cleaner implementation by going through `Node` instead of `LedgerForAPI`
jdtzmn Aug 8, 2022
ac72228
Rename `makeSimulateEnv` to `prepareSimulatorTest`
jdtzmn Aug 8, 2022
50304a3
Use `MissingSignatures` boolean instead of `SignatureFailureMessage`
jdtzmn Aug 8, 2022
33dda59
Implement renamed `MissingSignatures`
jdtzmn Aug 8, 2022
f1c0b05
Improve Simulator `check` to catch badly formed transactions when sig…
jdtzmn Aug 8, 2022
f90c19a
Document allowing unsigned transactions
jdtzmn Aug 8, 2022
394f7e7
Correctly catch CompactCert special case
jdtzmn Aug 9, 2022
be38467
Simplify TxnIsMissingSig logic
jdtzmn Aug 9, 2022
970d9f4
Fix linter errors
jdtzmn Aug 9, 2022
595ca6b
Refactor Simulator to be more general
jdtzmn Aug 9, 2022
5f45dfe
Deprecate no longer needed `SimulationResult`
jdtzmn Aug 9, 2022
7897a2e
Fix shortened property names in API spec
jdtzmn Aug 9, 2022
051cbef
Test pooled fees
jdtzmn Aug 9, 2022
65cba5c
Support verifying transaction groups with missing signatures
jdtzmn Aug 9, 2022
b78e899
Test non-overriden `data.Ledger` methods used during evaluation have …
jdtzmn Aug 9, 2022
7324c0e
Redesign DebuggerHook to support more hooks
jdtzmn Jul 29, 2022
ad3be73
Remove unnecessary cx.Debugger checks
jdtzmn Jul 29, 2022
2176d2d
Support `afterTealOp` hook
jdtzmn Jul 29, 2022
cb381d8
Fix test name typo
jdtzmn Aug 10, 2022
195ac07
Support `beforeInnerTxn` and `afterInnerTxn` hooks
jdtzmn Aug 11, 2022
e2eb402
Support `beforeTxn` and `afterTxn` hooks
jdtzmn Aug 11, 2022
2d92ad4
Return error in `LookupLatest` override since panics within API handl…
jdtzmn Aug 10, 2022
2f189d2
Add missing `PartitionTest()`
jdtzmn Aug 11, 2022
5bf32e7
Improve test step description
jdtzmn Aug 12, 2022
c7996d3
Favor explicit returns within `txnGroupBatchVerify`
jdtzmn Aug 18, 2022
08f8e5e
Remove unused `ScopedSimulatorError` artifact
jdtzmn Aug 18, 2022
f16d378
Fix dryrun hooks and docstrings
jdtzmn Aug 18, 2022
83fae5c
Fix incorrect debugger hooks lifecycle test
jdtzmn Aug 18, 2022
2a30a89
Implement additional `BeforeTxn` and `AfterTxn` responsibilities
jdtzmn Aug 18, 2022
f32981a
Rename inner transaction hooks and add documentation
jdtzmn Aug 18, 2022
8c90301
Fix dryrun debugger hooks so the logic stays consistent with previous…
jdtzmn Aug 18, 2022
251cc15
Use correctly named debugger hooks within the TEAL debugger
jdtzmn Aug 18, 2022
9bbd757
Fix tealdbg debugger hooks so the logic stays consistent with previou…
jdtzmn Aug 18, 2022
b9acbf7
Fix unnecessary calls to `cx.refreshDebugState`
jdtzmn Aug 18, 2022
0c99043
Support LogicSigs within `logic.DebuggerHook`
jdtzmn Aug 18, 2022
d91c4a6
`DetailedSimulate` method with `ApplyData`
jdtzmn Aug 16, 2022
9700a89
Implement `FailureMessage` and `FailedAt`
jdtzmn Aug 16, 2022
b5bb33f
Set `WouldSucceed` and `MissingSignature` flags
jdtzmn Aug 16, 2022
6591780
Implement `SimulationResult` serializers
jdtzmn Aug 17, 2022
ea919e9
Use `DetailedSimulate` within simulate endpoint handler
jdtzmn Aug 17, 2022
4fa3eef
Implement `DetailedSimulation` logic
jdtzmn Aug 19, 2022
3165675
Test and fix nested inner transaction ApplyData with rejection
jdtzmn Aug 19, 2022
4351fd6
Add test for when evaluation fails after non-app-call inner transactions
jdtzmn Aug 19, 2022
9067f70
Add test case for accessing ApplyData of two non-app-call inner trans…
jdtzmn Aug 19, 2022
e22579b
Use more robust ApplyData copy mechanism
jdtzmn Aug 19, 2022
6e448a8
Remove extra space (#4435)
jdtzmn Aug 19, 2022
139672a
Undo changes to txn verification code, use proxy signer instead
jasonpaulos Aug 23, 2022
6ad7387
More simulator tests
jasonpaulos Aug 23, 2022
47e83dc
Merge branch 'master' into psuedo-eval-endpoint
jasonpaulos Aug 23, 2022
ba5d43e
Fix merge issues
jasonpaulos Aug 23, 2022
82f31c8
Merge branch 'master' into feature/simulate-endpoint
jasonpaulos Aug 23, 2022
d3e4253
Merge branch 'feature/simulate-endpoint' into psuedo-eval-endpoint
jasonpaulos Aug 23, 2022
bf3907b
Revert unintended change
jasonpaulos Aug 23, 2022
1e518be
Not sure what happened, but fix routes again
jasonpaulos Aug 23, 2022
5da2cd8
Merge branch 'psuedo-eval-endpoint' into extend-debugger-interface
jasonpaulos Aug 24, 2022
e7ce7fc
Add comments about future LogicSig support
jasonpaulos Aug 24, 2022
6e106ba
Merge branch 'psuedo-eval-endpoint' into extend-debugger-interface
jasonpaulos Aug 24, 2022
75d5326
Rename TxnGroupForDebugger -> TxnGroupWithDebugger
jasonpaulos Aug 24, 2022
dd27558
Fix debugger not being able to handle logicsigs
jasonpaulos Aug 24, 2022
4cf359e
godog
jasonpaulos Aug 24, 2022
67e0978
Merge branch 'extend-debugger-interface' into basic-simulation-result
jasonpaulos Aug 24, 2022
8c4310b
Post merge fixes
jasonpaulos Aug 25, 2022
4a2a998
Combine Simulate and DetailedSimulate
jasonpaulos Aug 26, 2022
042704a
Make a copy of the txgroup when checking sigs
jasonpaulos Aug 29, 2022
ca59421
CR feedback
jasonpaulos Aug 29, 2022
a0a0550
Merge pull request #4322 from jdtzmn/psuedo-eval-endpoint
jasonpaulos Aug 29, 2022
6673103
Merge branch 'feature/simulate-endpoint' into extend-debugger-interface
jasonpaulos Aug 29, 2022
488d748
Split debugger code into current and legacy
jasonpaulos Aug 30, 2022
ce98909
Separate debugger tests better and fix error
jasonpaulos Aug 30, 2022
8bdbd5f
Remove DebugState from EvalContext, bring back DebuggerHook helper me…
jasonpaulos Aug 30, 2022
d7981a8
More legacy debugger tests
jasonpaulos Aug 30, 2022
82b75e9
Fix missed debugger
jasonpaulos Aug 30, 2022
959261f
Combine app and logicsig eval hooks into one & expose logic.RunMode
jasonpaulos Aug 30, 2022
25899d0
More testing
jasonpaulos Aug 30, 2022
1908046
Remove debugger arg from PrepareGroupContext, enhance evaluator and v…
jasonpaulos Aug 31, 2022
0aca986
Merge branch 'extend-debugger-interface' into basic-simulation-result
jasonpaulos Aug 31, 2022
827d4e2
Rename simulator debugger
jasonpaulos Aug 31, 2022
e5fd2a1
Make all debugger methods required
jasonpaulos Sep 19, 2022
b99b80b
Merge branch 'master' into feature/simulate-endpoint
jasonpaulos Oct 31, 2022
ad5f515
Fix generate config files
jasonpaulos Oct 31, 2022
2a2b8a9
Merge branch 'feature/simulate-endpoint' into extend-debugger-interface
jasonpaulos Oct 31, 2022
115421f
Reorder debugger hook functions
jasonpaulos Oct 31, 2022
de27a6c
WIP debugger work
jasonpaulos Sep 1, 2022
533c239
Merge branch 'master' into feature/simulate-endpoint
jasonpaulos Nov 1, 2022
1219bef
Merge branch 'feature/simulate-endpoint' into extend-debugger-interface
jasonpaulos Nov 1, 2022
361931f
Merge branch 'extend-debugger-interface' into basic-simulation-result
jasonpaulos Nov 1, 2022
8a75f1b
Fix cursor debugger logic
jasonpaulos Nov 1, 2022
983ea77
Fix handlers test
jasonpaulos Nov 1, 2022
74b4f96
Missing copyright
jasonpaulos Nov 2, 2022
78f3892
Reduce cursorDebuggerHook reliance on logic params
jasonpaulos Nov 3, 2022
1c7c406
WIP
jasonpaulos Nov 8, 2022
807b384
Merge branch 'master' into feature/simulate-endpoint
jasonpaulos Dec 8, 2022
3f4e74e
Clarify group transactions are also acceptable
jasonpaulos Dec 8, 2022
4a74a24
Try to appease the new parallel linter
jasonpaulos Dec 8, 2022
2f083e8
Classify simulation endpoint as experimental
jasonpaulos Dec 9, 2022
3c5bc99
Merge branch 'master' into feature/simulate-endpoint
jasonpaulos Dec 9, 2022
70ddd43
Rename EnableTransactionSimulator to EnableExperimentalAPI
jasonpaulos Dec 12, 2022
6de00a4
Update config.json.example
jasonpaulos Dec 12, 2022
c2dfb80
Merge branch 'feature/simulate-endpoint' into extend-debugger-interface
jasonpaulos Dec 12, 2022
a76ce0c
File renames
jasonpaulos Dec 12, 2022
3ef9112
Rename DebuggerHook to EvalTracer and remove error return values from…
jasonpaulos Dec 14, 2022
f153f4a
Merge branch 'master' into feature/simulate-endpoint
jasonpaulos Dec 14, 2022
d1f0d0e
Make experimental routes public
jasonpaulos Dec 14, 2022
845425b
Add to API docs
jasonpaulos Dec 14, 2022
075e288
Missing change to README
jasonpaulos Dec 14, 2022
b1ee178
Linter bug
jasonpaulos Dec 14, 2022
336038e
Merge branch 'feature/simulate-endpoint' into extend-debugger-interface
jasonpaulos Dec 14, 2022
f3ea97e
debuggerEvalTracerAdaptor embeds NullEvalTracer
jasonpaulos Dec 14, 2022
987fd51
Rename EvalTracer methods
jasonpaulos Dec 14, 2022
a932450
Get rid of legacy names
jasonpaulos Dec 14, 2022
b20f6a7
Better use of txntest package
jasonpaulos Dec 14, 2022
cfe8496
Let's see if the export linter yells at this
jasonpaulos Dec 15, 2022
0e19762
Rename DebuggerHook to Debugger
jasonpaulos Dec 15, 2022
76ca4cd
Ensure tracer implements don't drift from interface
jasonpaulos Dec 15, 2022
82d3f2c
Add back export comments
jasonpaulos Dec 15, 2022
942901c
Improve EvalTracer method docs
jasonpaulos Dec 15, 2022
84c5dff
Add experimental warning to swagger file
jasonpaulos Dec 15, 2022
446d158
Merge branch 'master' into feature/simulate-endpoint
jasonpaulos Dec 15, 2022
3d57840
Merge branch 'feature/simulate-endpoint' into extend-debugger-interface
jasonpaulos Dec 15, 2022
f588511
Merge branch 'master' into extend-debugger-interface
jasonpaulos Jan 12, 2023
8b4384b
Fix test issue
jasonpaulos Jan 12, 2023
0c43566
Update license headers
jasonpaulos Jan 12, 2023
54b7534
minor updates from CR
jasonpaulos Jan 12, 2023
5927a63
Use assembler instead of hardcoding program bytes
jasonpaulos Jan 12, 2023
0b02d9e
Make tracer a field in BlockEvaluator and generalize txn group hooks
jasonpaulos Jan 17, 2023
10e74cb
Don't add tracer to GroupContext
jasonpaulos Jan 17, 2023
c0489c7
Fix incorrect txn depth logic in debuggerEvalTracerAdaptor
jasonpaulos Jan 17, 2023
f745436
Work in progress
jasonpaulos Jan 18, 2023
9be7012
Merge branch 'extend-debugger-interface' into basic-simulation-result
jasonpaulos Jan 19, 2023
d087b0a
Post merge fixes
jasonpaulos Jan 19, 2023
e515ebd
Update cursorEvalTracer to work with new Before/AfterTxnGroup hooks
jasonpaulos Jan 19, 2023
46d0a06
Update license headers
jasonpaulos Jan 19, 2023
df139a9
Move test back to original file
jasonpaulos Jan 19, 2023
73d2efa
Update TestSimpleAppCall & minor changes to tracer test comments
jasonpaulos Jan 19, 2023
b4e0999
Merge branch 'master' into extend-debugger-interface
jasonpaulos Jan 20, 2023
66b501d
Merge branch 'extend-debugger-interface' into basic-simulation-result
jasonpaulos Jan 20, 2023
5eb4820
Update TestRejectAppCall and fix simulation eval tracer
jasonpaulos Jan 21, 2023
ed84777
Update more tests
jasonpaulos Jan 21, 2023
9d60dd7
Update TestPooledFeesAcrossSignedAndUnsigned & TestSimulateFailureInf…
jasonpaulos Jan 23, 2023
d3e5075
Merge branch 'master' into basic-simulation-result
jasonpaulos Jan 23, 2023
58d8982
Modify EvalTracer design and improve testing for transaction/program …
jasonpaulos Jan 28, 2023
7877000
Modify EvalTracer design and improve testing for transaction/program …
jasonpaulos Jan 28, 2023
58dba87
Add license headers
jasonpaulos Jan 28, 2023
00daa4e
Remove old test code
jasonpaulos Jan 30, 2023
020502e
Remove old test code
jasonpaulos Jan 30, 2023
332da4c
Uncomment and update remaining tests
jasonpaulos Jan 31, 2023
ac2883d
Restructure tests and test for panics
jasonpaulos Feb 1, 2023
b51e198
Rename returnErr to err
jasonpaulos Feb 1, 2023
8ec4b67
Merge branch 'evaltracer-failure-handling' into basic-simulation-result
jasonpaulos Feb 2, 2023
e6575eb
Merge branch 'master' into basic-simulation-result
jasonpaulos Feb 2, 2023
4f8d9ba
Fix follower node
jasonpaulos Feb 2, 2023
51f4877
Improve descriptions and comments
jasonpaulos Feb 2, 2023
1f25626
Fix compiler and linter errors
jasonpaulos Feb 6, 2023
3ae89a9
Test mocktracer scenarios in simulate
jasonpaulos Feb 6, 2023
f373eb9
Add comments for remaining definitions
jasonpaulos Feb 6, 2023
09694a7
Merge branch 'master' into basic-simulation-result
jasonpaulos Feb 6, 2023
1ab4254
Update REST definition
jasonpaulos Feb 7, 2023
c64d018
Move simulation result block validation code from production to testing
jasonpaulos Feb 7, 2023
f4d92b8
Improve and test response fields & support json responses
jasonpaulos Feb 8, 2023
ffaa3a2
Fix omitempty properties of simulation response
jasonpaulos Feb 9, 2023
bcb7ec8
Fix lsig error behavior and test it
jasonpaulos Feb 11, 2023
7b8ee52
Test simulate at endpoint level
jasonpaulos Feb 11, 2023
d92088d
Merge branch 'master' into basic-simulation-result
jasonpaulos Feb 11, 2023
6443f4a
Satisfy linter
jasonpaulos Feb 13, 2023
aea3f68
Fix group validation error reporting bug
jasonpaulos Feb 13, 2023
777bf69
Clean up test code
jasonpaulos Feb 13, 2023
08f99a0
Add logs to mocktracer scenarios
jasonpaulos Feb 14, 2023
4476bbe
Merge branch 'master' into basic-simulation-result
jasonpaulos Feb 15, 2023
bbc03ba
Clean up comments
jasonpaulos Feb 15, 2023
f060ccf
Minor cleanups
jasonpaulos Feb 15, 2023
00e8660
CR feedback
jasonpaulos Feb 17, 2023
cc7be80
Standardize response names
jasonpaulos Feb 21, 2023
b737c49
reorder
jasonpaulos Feb 21, 2023
88b7182
Add round to response
jasonpaulos Feb 21, 2023
689d686
Improve testing of last round
jasonpaulos Feb 22, 2023
5311c6f
Seed the random func
jasonpaulos Feb 22, 2023
865cafc
linter
jasonpaulos Feb 22, 2023
aa32610
Merge branch 'master' into basic-simulation-result
jasonpaulos Feb 23, 2023
9557a66
Improve API descriptions
jasonpaulos Feb 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 70 additions & 10 deletions daemon/algod/api/algod.oas2.json
Original file line number Diff line number Diff line change
Expand Up @@ -1215,6 +1215,7 @@
"application/x-binary"
],
"produces": [
"application/json",
"application/msgpack"
],
"schemes": [
Expand All @@ -1232,11 +1233,14 @@
"type": "string",
"format": "binary"
}
},
{
"$ref": "#/parameters/format"
}
],
"responses": {
"200": {
"$ref": "#/responses/SimulationResponse"
"$ref": "#/responses/SimulateResponse"
},
"400": {
"description": "Bad Request - Malformed Algorand transaction",
Expand Down Expand Up @@ -3321,6 +3325,49 @@
}
}
},
"SimulateTransactionGroupResult": {
"description": "Simulation result for an atomic transaction group",
"type": "object",
"required": [
"txn-results"
],
"properties": {
"txn-results": {
"description": "Simulation result for individual transactions",
"type": "array",
"items": {
"$ref": "#/definitions/SimulateTransactionResult"
}
},
"failure-message": {
"description": "If present, indicates that the transaction group failed and specifies why that happened",
"type": "string"
},
"failed-at": {
"description": "If present, indicates which transaction in this group caused the failure. This array represents the path to the failing transaction. Indexes are zero based, the first element indicates the top-level transaction, and successive elements indicate deeper inner transactions.",
"type": "array",
"items": {
"type": "integer"
}
}
}
},
"SimulateTransactionResult": {
"description": "Simulation result for an individual transaction",
"type": "object",
"required": [
"txn-result"
],
"properties": {
"txn-result": {
"$ref": "#/definitions/PendingTransactionResponse"
},
"missing-signature": {
"description": "A boolean indicating whether this transaction is missing signatures",
"type": "boolean"
}
}
},
"StateProof": {
"description": "Represents a state proof and its corresponding message",
"type": "object",
Expand Down Expand Up @@ -3485,7 +3532,7 @@
"msgpack"
],
"type": "string",
"description": "Configures whether the response object is JSON or MessagePack encoded.",
"description": "Configures whether the response object is JSON or MessagePack encoded. If not provided, defaults to JSON.",
"name": "format",
"in": "query"
},
Expand Down Expand Up @@ -3964,24 +4011,37 @@
}
}
},
"SimulationResponse": {
"SimulateResponse": {
"description": "Result of a transaction group simulation.",
"tags": [
"experimental"
],
"schema": {
"type": "object",
"required": [
"failure-message",
"missing-signatures"
"version",
"last-round",
"txn-groups",
"would-succeed"
],
"properties": {
"failure-message": {
"description": "\\[fm\\] Failure message, if the transaction would have failed during a live broadcast.",
"type": "string"
"version": {
"description": "The version of this response object.",
"type": "integer"
},
"last-round": {
"description": "The round immediately preceding this simulation. State changes through this round were used to run this simulation.",
"type": "integer"
},
"txn-groups": {
"description": "A result object for each transaction group that was simulated.",
"type": "array",
"items": {
"$ref": "#/definitions/SimulateTransactionGroupResult"
}
},
"missing-signatures": {
"description": "\\[ms\\] Whether any transactions would have failed during a live broadcast because they were missing signatures.",
"would-succeed": {
"description": "Indicates whether the simulated transactions would have succeeded during an actual submission. If any transaction fails or is missing a signature, this will be false.",
"type": "boolean"
}
}
Expand Down
Loading