跳到主要内容

Aleo Provider

FoxWallet uses the same protocol as Leo Wallet.

getProvider

function getProvider() {
const provider = window.foxwallet && window.foxwallet.aleo;
if (!provider) {
window.open("https://foxwallet.com/download");
throw `Please guide users to download from FoxWallet official website`;
}
return provider;
}

connect

Connect the current account

  • Returns: Promise
  • Example:
try {
const provider = getProvider();
provider.on("connect", (address) => {
console.log("connected address ", address);
});
const address = await provider.connect("ON_CHAIN_HISTORY", "testnetbeta");
console.log("connected address ", address);
} catch (e) {
console.log('connect failed');
}

decrypt

Decrypt the ciphertext

try {
const provider = getProvider();
const plaintext = await provider.decrypt("ciphertext1qgqxn5j5egd59rk0nfvvcrupgkf8c67d4k3sxpxvkzqs8ewjg0a67rvejfyppqralf8lqkjhefpuaptguctfkyzah25q5xjve6vvl0s8qc5mnrkg");
console.log("decrypt plaintext ", plaintext);
} catch (e) {
console.log('decrypt failed');
}

requestRecords

Request the records of connected account

try {
const provider = getProvider();
// type Record = {
// id: string;
// owner: string;
// program_id: string;
// spent: boolean;
// data: string;
// recordName: string;
// }
const records = await provider.requestRecords("credits.aleo");
console.log("requestRecords ", records);
} catch (e) {
console.log('requestRecords failed');
}

requestRecordPlaintexts

Request the records with decrypted plaintext of connected account

try {
const provider = getProvider();
// type Record = {
// id: string;
// owner: string;
// program_id: string;
// spent: boolean;
// data: string;
// recordName: string;
// plaintext: string;
// }
const records = await provider.requestRecordPlaintexts("credits.aleo");
console.log("requestRecordPlaintexts ", records);
} catch (e) {
console.log('requestRecordPlaintexts failed');
}

requestTransaction

Request connected account to send transaction

try {
const provider = getProvider();
const result = await provider.requestTransaction({
address: "" /* connected address */,
chainId: "testnetbeta",
transitions: [{ program: "credits.aleo", functionName: "transfer_public", inputs: ["" /* transfer address */, "1000000u64"]}];
fee: 5555 /* estimate fee */,
feePrivate: false,
});
console.log("requestTransaction ", result);
} catch (e) {
console.log('requestTransaction failed');
}

transactionStatus

Request previous sent transaction's status

try {
const provider = getProvider();
const result = await provider.transactionStatus("" /* transaction id */);
// type Status = "Queued" | "Generating Prover Files" | "Generating Transaction" | "Broadcasting" | "Completed" | "Rejected" | "Finalized" | "Failed"
console.log("transactionStatus ", result);
} catch (e) {
console.log('transactionStatus failed');
}

requestDeploy

Request deployment

try {
const provider = getProvider();
const result = await provider.requestDeploy({
address: "" /* connected address */,
chainId: "testnetbeta",
program: "" /* the program content to be deployed */,
fee: 2000000 /* estimate fee */;
feePrivate: false;
});
console.log("requestDeploy ", result);
} catch (e) {
console.log('requestDeploy failed');
}