Skip to content

Commit

Permalink
feat: add code to retrieve sxt access token (#27)
Browse files Browse the repository at this point in the history
  • Loading branch information
Dustin-Ray authored Nov 13, 2024
2 parents 14dd1dc + 906129f commit 274d9b9
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 3 deletions.
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");

0 comments on commit 274d9b9

Please sign in to comment.