@silvana-one/coordination
Version:
Silvana Coordination Client
91 lines • 2.76 kB
JavaScript
"use server";
import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519";
export async function silvanaFaucet(params) {
const { address, amount = 1 } = params;
const response = await fetch(`${silvanaFaucetEndpoint()}/fund`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
address,
amount,
}),
});
if (!response.ok) {
throw new Error(`Failed to fund address: ${address} ${amount} ${response.status} ${response.statusText}`);
}
return response.json();
}
export async function silvanaFaucetGetKey(params = {
autoReturn: false,
}) {
const response = await fetch(`${silvanaFaucetEndpoint()}/get_key`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
auto_return: params.autoReturn,
}),
});
if (!response.ok) {
throw new Error(`Failed to get key: ${response.status} ${response.statusText}`);
}
return response.json();
}
export async function silvanaFaucetPingKey(params) {
const { address } = params;
if (!address) {
return {
message: "Address is required",
success: false,
};
}
const response = await fetch(`${silvanaFaucetEndpoint()}/ping_key`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
address,
}),
});
if (!response.ok) {
throw new Error(`Failed to return key: ${response.status} ${response.statusText}`);
}
return response.json();
}
export async function silvanaFaucetReturnKey(params) {
const address = params.address ??
(params.secretKey
? Ed25519Keypair.fromSecretKey(params.secretKey).toSuiAddress()
: undefined);
if (!address) {
return {
message: "Address or secret key is required",
success: false,
};
}
const response = await fetch(`${silvanaFaucetEndpoint()}/return_key`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
address,
}),
});
if (!response.ok) {
throw new Error(`Failed to return key: ${response.status} ${response.statusText}`);
}
return response.json();
}
function silvanaFaucetEndpoint() {
const silvanaFaucetEndpoint = process.env.SILVANA_FAUCET_ENDPOINT;
if (!silvanaFaucetEndpoint) {
throw new Error("SILVANA_FAUCET_ENDPOINT is not set");
}
return silvanaFaucetEndpoint;
}
//# sourceMappingURL=faucet.js.map