A Cloudflare Worker that sends Discord notifications for DAO DAO DAOs.
Used template for Cosmos wallet authentication to authenticate requests via a Cosmos wallet signature.
npm run dev
# OR
wrangler dev --local --persist
-
Copy
wrangler.toml.example
towrangler.toml
. -
Create KV namespaces for production and development:
npx wrangler kv:namespace create NONCES
npx wrangler kv:namespace create NONCES --preview
npx wrangler kv:namespace create WEBHOOKS
npx wrangler kv:namespace create WEBHOOKS --preview
- Update the binding IDs in
wrangler.toml
:
kv-namespaces = [
{ binding = "NONCES", id = "<INSERT NONCES_ID>", preview_id = "<INSERT NONCES_PREVIEW_ID>" },
{ binding = "WEBHOOKS", id = "<INSERT WEBHOOKS_ID>", preview_id = "<INSERT WEBHOOKS_PREVIEW_ID>" },
]
- Configure variables in
wrangler.toml
:
[vars]
DISCORD_CLIENT_ID = "<VALUE>"
- Configure secrets:
echo <VALUE> | npx wrangler secret put DISCORD_CLIENT_SECRET
echo <VALUE> | npx wrangler secret put DISCORD_BOT_TOKEN
echo <VALUE> | npx wrangler secret put NOTIFY_API_KEY
wrangler publish
# OR
npm run deploy
The WEBHOOKS
KV store maps chainId:daoAddress:walletPublicKey:webhookId
to a
webhook object.