Snippets of code that can be used to implement flows inside MiniPay
const provider = new providers.JsonRpcProvider("https://forno.celo.org"); // Mainnet
let balance = await checkCUSDBalance(provider, address); // In Ether unit
const publicClient = createPublicClient({
chain: celo,
transport: http(),
}); // Mainnet
let balance = await checkCUSDBalance(publicClient, address); // In Ether unit
const provider = new providers.JsonRpcProvider("https://forno.celo.org"); // Mainnet
let transactionStatus = await checkIfTransactionSucceeded(
provider,
transactionHash
);
const publicClient = createPublicClient({
chain: celo,
transport: http(),
}); // Mainnet
let transactionStatus = await checkIfTransactionSucceeded(
publicClient,
address
); // In Ether unit
const provider = new providers.JsonRpcProvider("https://forno.celo.org"); // Mainnet
// Estimate gas for an example transaction
let gasLimit = await estimateGas(provider, {
from: "0x8eb02597d85abc268bc4769e06a0d4cc603ab05f",
to: "0x4f93fa058b03953c851efaa2e4fc5c34afdfab84",
value: "0x1",
data: "0x",
});
const provider = new providers.JsonRpcProvider("https://forno.celo.org"); // Mainnet
const STABLE_TOKEN_ADDRESS = "0x765DE816845861e75A25fCA122bb6898B8B1282a";
// Estimate gas for an example transaction
let gasLimit = await estimateGas(
provider,
{
from: "0x8eb02597d85abc268bc4769e06a0d4cc603ab05f",
to: "0x4f93fa058b03953c851efaa2e4fc5c34afdfab84",
value: "0x1",
data: "0x",
},
STABLE_TOKEN_ADDRESS
);
const publicClient = createPublicClient({
chain: celo,
transport: http(),
});
let gasLimit = await estimateGas(publicClient, {
account: "0x8eb02597d85abc268bc4769e06a0d4cc603ab05f",
to: "0x4f93fa058b03953c851efaa2e4fc5c34afdfab84",
value: "0x1",
data: "0x",
});
const publicClient = createPublicClient({
chain: celo,
transport: http(),
});
const STABLE_TOKEN_ADDRESS = "0x765DE816845861e75A25fCA122bb6898B8B1282a";
let gasLimit = await estimateGas(
publicClient,
{
account: "0x8eb02597d85abc268bc4769e06a0d4cc603ab05f",
to: "0x4f93fa058b03953c851efaa2e4fc5c34afdfab84",
value: "0x1",
data: "0x",
},
STABLE_TOKEN_ADDRESS
);
const provider = new providers.JsonRpcProvider("https://forno.celo.org"); // Mainnet
let gasPrice = await estimateGasPrice(provider);
const provider = new providers.JsonRpcProvider("https://forno.celo.org"); // Mainnet
const STABLE_TOKEN_ADDRESS = "0x765DE816845861e75A25fCA122bb6898B8B1282a";
let gasPrice = await estimateGasPrice(provider, STABLE_TOKEN_ADDRESS);
const publicClient = createPublicClient({
chain: celo,
transport: http(),
});
let gasPrice = await estimateGasPrice(publicClient);
const publicClient = createPublicClient({
chain: celo,
transport: http(),
});
const STABLE_TOKEN_ADDRESS = "0x765DE816845861e75A25fCA122bb6898B8B1282a";
let gasPrice = await estimateGasPrice(provider, STABLE_TOKEN_ADDRESS);
const provider = new providers.JsonRpcProvider("https://forno.celo.org");
const STABLE_TOKEN_ADDRESS = "0x765DE816845861e75A25fCA122bb6898B8B1282a";
let gasPrice = await estimateGasPrice(provider, STABLE_TOKEN_ADDRESS);
let gasLimit = await estimateGas(
provider,
{
from: "0x8eb02597d85abc268bc4769e06a0d4cc603ab05f",
to: "0x4f93fa058b03953c851efaa2e4fc5c34afdfab84",
value: "0x1",
data: "0x",
},
STABLE_TOKEN_ADDRESS
);
let transactionFeesInCUSD = formatEther(
BigNumber.from(gasLimit).mul(BigNumber.from(gasPrice)).toString()
);
const publicClient = createPublicClient({
chain: celo,
transport: http(),
});
const STABLE_TOKEN_ADDRESS = "0x765DE816845861e75A25fCA122bb6898B8B1282a";
let gasLimit = await estimateGas(
publicClient,
{
account: "0x8eb02597d85abc268bc4769e06a0d4cc603ab05f",
to: "0x4f93fa058b03953c851efaa2e4fc5c34afdfab84",
value: "0x1",
data: "0x",
},
STABLE_TOKEN_ADDRESS
);
let gasPrice = await estimateGasPrice(publicClient, STABLE_TOKEN_ADDRESS);
let transactionFeesInCUSD = formatEther(gasLimit * hexToBigInt(gasPrice));
let wallet = new Wallet(process.env.ISSUER_PRIVATE_KEY, provider);
const issuer = new SocialConnectIssuer(wallet, {
authenticationMethod: AuthenticationMethod.ENCRYPTION_KEY,
rawKey: process.env.DEK_PRIVATE_KEY,
});
await issuer.initialize();
const identifierType = IdentifierPrefix.PHONE_NUMBER;
/**
* Any phone number you want to lookup
*
* The below phone number is registered on the testnet issuer mentioned below.
*/
const identifier = "+911234567890";
/**
* You can lookup under multiple issuers in one request.
*
* Below is the MiniPay issuer address on Mainnet.
*
* Note: Remember to make your environment variable ENVIRONMENT=MAINNET
*/
let issuerAddresses = ["0x7888612486844Bb9BE598668081c59A9f7367FBc"];
// A testnet issuer we setup for you to lookup on testnet.
// let issuerAddresses = ["0xDF7d8B197EB130cF68809730b0D41999A830c4d7"];
let results = await issuer.lookup(identifier, identifierType, issuerAddresses);
let account = privateKeyToAccount(process.env.ISSUER_PRIVATE_KEY);
let walletClient = createWalletClient({
account,
transport: http(),
chain,
});
const issuer = new SocialConnectIssuer(walletClient, {
authenticationMethod: AuthenticationMethod.ENCRYPTION_KEY,
rawKey: process.env.DEK_PRIVATE_KEY,
});
await issuer.initialize();
const identifierType = IdentifierPrefix.PHONE_NUMBER;
/**
* Any phone number you want to lookup
*
* The below phone number is registered on the testnet issuer mentioned below.
*/
const identifier = "+911234567890";
/**
* You can lookup under multiple issuers in one request.
*
* Below is the MiniPay issuer address on Mainnet.
*
* Note: Remember to make your environment variable ENVIRONMENT=MAINNET
*/
let issuerAddresses = ["0x7888612486844Bb9BE598668081c59A9f7367FBc"];
// A testnet issuer we setup for you to lookup on testnet.
// let issuerAddresses = ["0xDF7d8B197EB130cF68809730b0D41999A830c4d7"];
let results = await issuer.lookup(identifier, identifierType, issuerAddresses);
let wallet = new Wallet(process.env.ISSUER_PRIVATE_KEY, provider);
const issuer = new SocialConnectIssuer(wallet, {
authenticationMethod: AuthenticationMethod.ENCRYPTION_KEY,
rawKey: process.env.DEK_PRIVATE_KEY,
});
await issuer.initialize();
const identifierType = IdentifierPrefix.PHONE_NUMBER;
/**
* Any phone number you want to register
*/
const identifier = "+911234567890";
let addressToRegister = "<USER_ADDRESS>";
let results = await issuer.registerOnChainIdentifier(
identifier,
identifierType,
addressToRegister
);
let account = privateKeyToAccount(process.env.ISSUER_PRIVATE_KEY);
let walletClient = createWalletClient({
account,
transport: http(),
chain,
});
const issuer = new SocialConnectIssuer(walletClient, {
authenticationMethod: AuthenticationMethod.ENCRYPTION_KEY,
rawKey: process.env.DEK_PRIVATE_KEY,
});
await issuer.initialize();
const identifierType = IdentifierPrefix.PHONE_NUMBER;
/**
* Any phone number you want to register
*/
const identifier = "+911234567890";
let addressToRegister = "<USER_ADDRESS>";
let results = await issuer.registerOnChainIdentifier(
identifier,
identifierType,
addressToRegister
);
let wallet = new Wallet(process.env.ISSUER_PRIVATE_KEY, provider);
const issuer = new SocialConnectIssuer(wallet, {
authenticationMethod: AuthenticationMethod.ENCRYPTION_KEY,
rawKey: process.env.DEK_PRIVATE_KEY,
});
await issuer.initialize();
const identifierType = IdentifierPrefix.PHONE_NUMBER;
/**
* Any phone number you want to de-register
*/
const identifier = "+911234567890";
let addressToDeRegister = "<USER_ADDRESS>";
let results = await issuer.deregisterOnChainIdentifier(
identifier,
identifierType,
addressToDeRegister
);
let account = privateKeyToAccount(process.env.ISSUER_PRIVATE_KEY);
let walletClient = createWalletClient({
account,
transport: http(),
chain,
});
const issuer = new SocialConnectIssuer(walletClient, {
authenticationMethod: AuthenticationMethod.ENCRYPTION_KEY,
rawKey: process.env.DEK_PRIVATE_KEY,
});
await issuer.initialize();
const identifierType = IdentifierPrefix.PHONE_NUMBER;
/**
* Any phone number you want to de-register
*/
const identifier = "+911234567890";
let addressToDeRegister = "<USER_ADDRESS>";
let results = await issuer.deregisterOnChainIdentifier(
identifier,
identifierType,
addressToDeRegister
);
Please open issue on this repo.