diff --git a/cadence/contracts/interfaces/DeFiActions.cdc b/cadence/contracts/interfaces/DeFiActions.cdc index 9a45dbb..964f492 100644 --- a/cadence/contracts/interfaces/DeFiActions.cdc +++ b/cadence/contracts/interfaces/DeFiActions.cdc @@ -687,10 +687,10 @@ access(all) contract DeFiActions { } } - /// Callback invoked every time an AutoBalancer executes (runs rebalance). + /// Callback invoked after AutoBalancer.executeTransaction runs rebalance. /// access(all) resource interface AutoBalancerExecutionCallback { - /// Called at the end of each rebalance run. + /// Called at the end of each executeTransaction-triggered rebalance run. /// @param balancerUUID: The AutoBalancer's UUID access(all) fun onExecuted(balancerUUID: UInt64) } @@ -949,8 +949,9 @@ access(all) contract DeFiActions { } self._rebalanceRange = range } - /// Sets the optional callback invoked every time this AutoBalancer runs rebalance. + /// Sets the optional callback invoked after executeTransaction runs rebalance. /// Pass nil to clear the callback. + /// NOTE: callback execution occurs in the same transaction context; callback panics will revert execution. access(Set) fun setExecutionCallback(_ cap: Capability<&{AutoBalancerExecutionCallback}>?) { self._executionCallback = cap } @@ -1076,7 +1077,7 @@ access(all) contract DeFiActions { } if let cap = self._executionCallback { if cap.check() { - cap.borrow()!.onExecuted(balancerUUID: self.uniqueID?.id ?? 0) + cap.borrow()!.onExecuted(balancerUUID: self.uuid) } } // clean up internally-managed historical scheduled transactions diff --git a/cadence/tests/AutoBalancer_test.cdc b/cadence/tests/AutoBalancer_test.cdc index 7e8614a..ac0b1a4 100644 --- a/cadence/tests/AutoBalancer_test.cdc +++ b/cadence/tests/AutoBalancer_test.cdc @@ -188,7 +188,7 @@ access(all) fun test_ExecutionCallbackRuns() { let createdEvts = Test.eventsOfType(Type()) Test.assertEqual(1, createdEvts.length) let createdEvt = createdEvts[0] as! DeFiActions.CreatedAutoBalancer - let balancerUUID = createdEvt.uniqueID ?? 0 + let balancerUUID = createdEvt.uuid let interval: UInt64 = 10 let executionEffort: UInt64 = 1_000