Akash Top-Up Script for Pipedream
Simple script that updates the escrow for an Akash deployment if it detects the account is running low.
Integrations
Pipedream
To setup with pipedream, create a new JS custom set, and use the following template:
import { topUp } from "@akashnetwork/topup-deployment";
const deploymentKey = 'WEBSITE_KEY'
export default {
key: "my-topup-component",
name: "My Topup Component",
version: "0.0.1",
type: "action",
run({ $ }) {
return topUp(deploymentKey, { dryRun: false });
}
}
Set the deployment key to some unique value for the specific deployment. The key can be whatever you want, but must be unique for each deployment you're monitoring. For each deployment you'll need to define the following keys in the env settings for your pipeline account.
<KEY>_OWNER_ADDR
<KEY>_DSEQ
<KEY>_TOPUP_THRESHOLD
<KEY>_TOPUP_TARGET
<KEY>_WALLET_DATA
<KEY>_WALLET_KEY
To monitor multiple deployment, you can simply create multiple pipelines, using a unique key for each deployment.
Notifications Only
If you don't need the automation to automatically send funds, and would prefer to handle that yourself; you can set the dryRun
flag which will put the script into notification-only mode. This will check if the deployment escrow is below the threshold, but won't attempt to send any funds to top it up.
import { topUp } from "@akashnetwork/topup-deployment";
const deploymentKey = 'WEBSITE_KEY'
export default {
key: "my-topup-component",
name: "My Topup Component",
version: "0.0.1",
type: "action",
run({ $ }) {
return topUp(deploymentKey, { dryRun: true });
}
}
If you are using this mode, you don't need to define the environment fields specific to sending signed messages. Specifically the following variables are not required.
<KEY>_TOPUP_TARGET
<KEY>_WALLET_DATA
<KEY>_WALLET_KEY
Notification Types
Reporting can be sent to any of the supported methods in Pipedream. The output of the Top Up component will be a report
object, with a subject
and message
field.
After the top up script, click to +
button to add a step and select "Send Email" from the pop-up window. In the subject, put {{steps.code.$return_value.subject}}
and in the "text" field put {{steps.code.$return_value.message}}
.
Slack Notifications
After the top up script, click to +
button to add a step and select "Slack" from the pop-up window. In the next screen, choose the appropriate channel type for where you want to send a message.
In the next screen click the slack account field. If you've never setup a slack integration for this work flow, you'll be asked to authorize Pipedream to send message to slack on your behalf.
Select the channel or user the message should be sent to (according to the channel type you selected in the previous step). In the "Text" field, enter {{steps.code.$return_value.message}}
.