Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add code to retrieve sxt access token #27

Merged
merged 1 commit into from
Nov 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions chainlink-functions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ This example is heavily borrowed from https://docs.chain.link/chainlink-function
LINK_TOKEN_ADDRESS=0x779877A7B0D9E8603169DdbD7836e478b4624789 # REPLACE this with your wallet address
ETHEREUM_SEPOLIA_RPC_URL=
PRIVATE_KEY=
SXT_API_KEY=
```
4. Run `node example/request.js` to upload the secrets, run a simulation, and then submit a chainlink job.
2 changes: 1 addition & 1 deletion chainlink-functions/example/request.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ const makeRequestSepolia = async () => {
.toString();

const args = [];
const secrets = { apiKey: "TODO" }; // NOTE: be sure to modify source.js to use this secret properly when actually adding a secret.
const secrets = { apiKey: process.env.SXT_API_KEY };
const slotIdNumber = 0; // slot ID where to upload the secrets
const expirationTimeMinutes = 15; // expiration time in minutes of the secrets
const gasLimit = 300000;
Expand Down
22 changes: 20 additions & 2 deletions chainlink-functions/example/source.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@

// Ensure the API key is available
if (!secrets.apiKey) {
throw Error("API Key Not Found");
}

// NOTE: Do NOT use this apiKey here in production, it is only here to demonstrate secrets.
return Functions.encodeString(secrets.apiKey);
// Construct a payload to fetch an accesstoken to be used for
// api access to the prover. It is a required component of the payload to
// receive a proof.
// Set the secrets field to an apiKey that you own for your sxt account.

// Execute the API request using Functions.makeHttpRequest
const apiResponse = await Functions.makeHttpRequest({
url: "https://proxy.api.spaceandtime.dev/auth/apikey",
method: "POST",
headers: {
"apikey": secrets.apiKey,
"Content-Type": "application/json"
}
});

// Extract the access token, truncate it to 256 characters, and return it as an encoded string
const accessToken = apiResponse.data.accessToken;
return Functions.encodeString("TODO");
Comment on lines +22 to +24
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My only comment on this is that we dont want to actually truncate anything, this is just done to get this to pass in the playground

Loading