https://github.com/switchboard-xyz/solana-functions-template
Template repository to build a custom Switchboard function on Solana
https://github.com/switchboard-xyz/solana-functions-template
defi oracles serverless solana switchboard
Last synced: 3 months ago
JSON representation
Template repository to build a custom Switchboard function on Solana
- Host: GitHub
- URL: https://github.com/switchboard-xyz/solana-functions-template
- Owner: switchboard-xyz
- Created: 2023-06-16T15:57:26.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-17T03:25:55.000Z (over 1 year ago)
- Last Synced: 2025-02-09T02:45:31.245Z (5 months ago)
- Topics: defi, oracles, serverless, solana, switchboard
- Language: Makefile
- Homepage:
- Size: 57.6 KB
- Stars: 0
- Watchers: 4
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Switchboard Functions
Switchboards V3 architecture allows users to permissionlessly build and run any
code you like and we attest the output is from your code.## Table of Content
- [Project Setup](#setup)
- [Examples](./examples/README.md)
- [Binance](./examples/binance/binance.rs)
- [Randomness](./examples/randomness/randomness.rs)
- [Secrets](./examples/secrets/README.md)## Setup
Edit the Makefile with your docker image name. Make sure to include your docker
organization if publishing to the repository (For example:
`switchboard/my-function`).## Build
Run the following command to build the docker image with your custom function
```bash
make
```You should see a `measurement.txt` in the root of the project containing the
base64 encoding of the MRENCLAVE measurement. You will need to re-generate this
measurement anytime your source code or dependencies change.## Publishing
```bash
make publish
```## Integration
To get started, you will first need to:
1. Build your docker image and upload to a Docker/IPFS repository
2. Generate your MRENCLAVE measurementNext, you will need to create a Function account for your given MRENCLAVE
measurement. Head over to [app.switchboard.xyz](https://app.switchboard.xyz) and
create a new function with your given repository and MRENCLAVE measurement.Alternatively, create a function with the Switchboard CLI:
```bash
npm i --global @switchboard-xyz/clisbv2 solana function create CkvizjVnm2zA5Wuwan34NhVT3zFc7vqUyGnA6tuEF5aE \
--name "My Function" \
--metadata "Basic binance oracle with TWAP" \
--fundAmount 0.25 \
--schedule "30 * * * * *" \
--container switchboardlabs/basic-oracle-function \
--keypair ~/.config/id/solana.json# or fund an existing function
sbv2 solana function fund $MY_FUNCTION_PUBKEY \
--fundAmount 0.25 \
--keypair ~/.config/id/solana.json
```## More Info
See [docs.switchboard.xyz](https://docs.switchboard.xyz/guides/solana/functions)
to get started.