PSKeeper.ps1
|
function Watch-ForLiquidations(){ $alert_sent = $false while(-not $alert_sent){ $next_vault = ((Get-CDAllVaults) | Sort-Object liquidation_price -Descending)[0].liquidation_price $oracle = Get-CDOracle foreach($price in $oracle.price_infos){ if($next_vault -ge $price[0]){ Send-Pushover -Message "A vault is about to liquidate" $alert_sent = $true } } Write-Host "Waiting 120 seconds" Start-Sleep -Seconds 120 } } function Join-CRTCats { $crt_id = "ea3ace5525d6aaf6d921b66052afc67da11c820b676de91d61ae1a766c8ce615" $first_address = (Get-SageDerivations -limit 1 -offset 0).derivations[0].address $crt_balance = (get-sagecat -asset_id $crt_id).token.balance if($crt_balance -gt 1){ $crt_coin_count = ((get-sagecoins -asset_id $crt_id).coins | Where-Object {$_.spent_height -eq 0}).count if($crt_coin_count -gt 1){ Send-SageCat -amount $crt_balance -address $first_address -asset_id $crt_id -fee 0 -auto_submit $true Wait-OnPendingTransaction } } } function Watch-ForSurplusTrigger{ $alert_sent = $false while(-not ($alert_sent)){ $amt = (((Get-CDTreasury).treasury_balance) + ((Get-CDAllVaults).stability_fees_to_transfer | measure-object -sum).Sum)-1600000 if($amt -ge 50000){ Send-Pushover -Message "Surplus auction ready to be triggered" -Title "Surplus Auction - Can be forced" $alert_sent = $true } Start-Sleep -Seconds 120 } } function Watch-ForSurplusAuction{ $alert_sent = $false while(-not ($alert_sent)){ $amt = ((Get-CDTreasury).treasury_balance) $amt if($amt -ge 1650000){ Send-Pushover -Message "Surplus auction ready to be started" -Title "Surplus Auction - Can Start" $alert_sent = $true } Start-Sleep -Seconds 120 } } function Remove-CDLargestStabilityFee{ param( [int32]$min_price = 100 ) $vaults = ((Get-CDAllVaults) | Sort-Object stability_fees_to_transfer -Descending) if(($vaults[0].stability_fees_to_transfer) -gt $min_price){ try { $output = Move-CDVaultStabilityFee -vault_name ($vaults[0].name) -fee_per_cost 0 -submit -wait Write-Host "Moved $($vaults[0].stability_fees_to_transfer) from $($vaults[0].name)" } catch { Write-Error "Could not move funds" } } else { Write-Information "No funds to move at this time." } } function Start-StabilityFeeBot{ while($true){ Get-Date Remove-CDLargestStabilityFee Write-Host "Sleeping for 5 minutes" Start-Sleep -Seconds 600 } } function Watch-SurplusBid{ $alert_sent = $false while(-not ($alert_sent)){ $auction = Get-CDSurplusAuctions if($auction.last_bid.target_puzzle_hash -ne '44afacdc162edfb610d5b4d7193c467967ffef38baa5907b0c57e00409b756e6'){ $alert_sent = $true Send-Pushover -Message "outbid" } } } |