Releases: onchainification/robosaver
v0.1.0: The Robot Factory
What's Changed
- feat: more explicit event when closing pool by @gosuto-inzasheru in #55
- test: adapt to fresh safe deployment to avoid block height dependancy by @petrovska-petro in #59
- feat: include checks if virtual mod is not enabled by @petrovska-petro in #60
- feat: cl submodule integration by @gosuto-inzasheru in #67
- chores: add cl submodule by @petrovska-petro in #61
- feat: factory skeleton by @petrovska-petro in #66
- ci: ignore coverage folders directly through forge by @gosuto-inzasheru in #69
- feat: deposit&stake via aura depositor wrapper contract by @gosuto-inzasheru in #65
- feat: reorg constants and errors into its own
.sol
file by @petrovska-petro in #70 - feat: shutdown robosaver by @gosuto-inzasheru in #78
- feat: update deployment script & use EOA as upkeeps admin for testing purposes by @petrovska-petro in #72
- chore: release v0.1.0 by @gosuto-inzasheru in #84
Deployments
Roles
: https://gnosisscan.io/address/0xedDB035d27fE99Dd934D97E0A58664B4803bc6dE#codeDelay
: https://gnosisscan.io/address/0xBc54FB517e73E410E652C3199964012154f672e7#codeBouncer
: https://gnosisscan.io/address/0xAAacF201E2fC31c9cbC253f82dB57B46AB2f2Cc2#codeRoboSaverVirtualModule
: https://gnosisscan.io/address/0x616BbD896161417b8c3680E7c97c2Cef4a3b8Ac4#codeRoboSaverVirtualModuleFactory
: https://gnosisscan.io/address/0xAC2ba600b02078206E67fB6fE28bCa493736f708#code
Full Changelog: v0.0.2-alpha2...v0.1.0
v0.0.2-alpha2
What's Changed
- fix: save queued close pool tx to storage by @gosuto-inzasheru in #45
- ci: add codecov integration by @gosuto-inzasheru in #49
- test: add placeholder by @gosuto-inzasheru in #50
- ci: test codecov reporting by @gosuto-inzasheru in #51
- feat: cool down logic in
checker
& test by @petrovska-petro in #47 - feat: introduce clean up of expired txs by @petrovska-petro in #48
- test: close pool by @gosuto-inzasheru in #53
Deployments
Roles
: https://gnosisscan.io/address/0x5ecb40e21fadbec4342a6ffa1cf732fb9ebf5643#codeDelay
: https://gnosisscan.io/address/0x35e8bbcedad20a1e12c066e0c499f0960101da21#codeBouncer
: https://gnosisscan.io/address/0x7a13460e0c3cbcd8cfd987ac2d5109966ac2d6d7#codeRoboSaverVirtualModule
: https://gnosisscan.io/address/0x8db6a24f86dfd14adec305f8d9e8449b5d495869#code
Full Changelog: v0.0.2-alpha...v0.0.2-alpha2
v0.0.2: Alpha Alpha
What's Changed
- feat: introduce
bptTopup
method for siphoning eure into bpt by @petrovska-petro in #7 - docs: renaming of vars and improved comments by @gosuto-inzasheru in #14
- feat: unify to single entry point for keeper exec by @petrovska-petro in #13
- docs: rewrite comments by @gosuto-inzasheru in #16
- docs: convert drawio file to png by @gosuto-inzasheru in #21
- docs: display diagram in readme by @gosuto-inzasheru in #22
- feat: intro general event for gelato service being able to track and grab data required to call
executeNextTx
by @petrovska-petro in #20 - feat: include setters by @petrovska-petro in #24
- docs: update readme with latest var names by @gosuto-inzasheru in #25
- Feat/remove abi encode by @petrovska-petro in #30
- forked anvil deployment by @shafu0x in #29
- feat: add check in
checker
to verify no pendant tx is queued on the delay module by @petrovska-petro in #32 - feat: intro struct concept to allow calling from virtual module tx queued up by @petrovska-petro in #33
- test: increase coverage for
adjustPool
by @petrovska-petro in #35 - feat: calc bpt amounts in and out for pool adjustments by @gosuto-inzasheru in #27
- feat: levearge for loop to init
poolAssets
element and use solidity nomenclature by @petrovska-petro in #37 - feat: minor sanity checks during
checker
by @gosuto-inzasheru in #39
New Contributors
Deployments
Roles
:Delay
:Bouncer
:RoboSaverVirtualModule
: https://gnosisscan.io/address/0xe0244833e6f998af0c0767f2069f77409924f1e7#code
Full Changelog: v0.0.1-hackathon...v0.0.2-alpha
Hackathon: Scaling Ethereum 2024
Proof of Concept
This is the version that was submitted to ETHGlobal's Scaling Ethereum 2024 hackathon.
Showcased here: https://ethglobal.com/showcase/robosaver-1t5eh
This PoC assumes that the safe has liquidity in the Balancer stEUR/EURe pool to begin with. The safeTopup
function exists to build the necessary calldata for the EURe withdrawal, and sends that payload to the delay module by passing it to execTransactionFromModule
. After the cooldown has passed, executeNextTx
can then be called (permissionlessly) on the delay module to actually execute it.
This process is then wrapped in the checker
function; it either returns the payload necessary to call safeTopup
or to call executeNextTx
. A Gelato worker can then constantly poll checker
, to know if it should top up the safe balance or execute a queued transaction.
Onchain
This process can be observed to successfully work in the TopupTest.t.sol test. We were also able to successfully run this onchain:
safeTopup
call to queue up the withdrawal: https://gnosisscan.io/tx/0x97fadc58880278486e505fc9706a7cfcf5e0e0405446d0912e457bb961e65763#eventlogexecuteNextTx
call after the cooldown to actually withdraw: https://gnosisscan.io/tx/0x7852741c5b0e936703c5e0b3f69de368440ee1b1b54e2a8fd487f37fd743a68e
Note that the safe's EURe balance going below the threshold of 10 EURe triggered the Gelato worker to queue up the transaction automatically!
Deployments
Roles
: https://gnosisscan.io/address/0xa7882cd617b53ac5832acceec0e786dbd38fec4b#codeDelay
: https://gnosisscan.io/address/0x60bea2e60ac91d354cad23391100bc24ebc9450e#codeBouncer
: https://gnosisscan.io/address/0x40049dec4466fbdc52ec0c21c47c65a6315cf3e7#codeRoboSaverVirtualModule
: https://gnosisscan.io/address/0xe49c90547399f592e92dd28a149a448b17cf3b2a#code