@zebec-fintech/card-minimal-sdk
v1.0.0-alpha.2
Published
An sdk for purchasing card in zebec fintech
Downloads
10
Readme
Zebec Card Partners SDK
An sdk for purchasing zebec card for partners
Usage
Purchase Card
To use the functionality of sdk you should first create a ZebecCardService
instance. To create an instance you need signer, chainId, apiConfig and optional sdkConfig. Supported chains are Sepolia, Mainnet (Ethereum), BSC, Base, BscTestnet. If sandox property in sdkConfig is set to true, then only testnet chain ids are allowed and vice versa.
const signer = <ethers.Signer Instance>;
const chainId = 11155111; // sepolia
const apiKey = process.env.API_KEY!;
const encryptionKey = process.env.ENCRYPTION_KEY!;
const service = new ZebecCardService(
signer,
chainId,
{
apiKey,
encryptionKey,
},
{
sandbox: true, // set true for testing and dev environment
},
);
Then you have to invoke purchaseCard method in the instance. The method takes object comprised of amount and recipient. While amount is string type with numbers and decimal point as characters, recipient is an instance of Recipient
. The methods at its core does four task:
- Approve Token for spending to ZebecCard Smart Contract
- Deposit Token to Users vault in ZebecCard Smart Contract
- Purchase card in ZebecCard Smart Contract
- Post purchase card transaction information with additional metadata to ZebecCard Backend
The method returns tuple which consists of Deposit TransactionResponse
, BuyCard TransactionResponse
and lastly an AxiosResponse
of backend api call.
const participantId = "JohnChamling";
const firstName = "John";
const lastName = "Chamling";
const emailAddress = "[email protected]";
const mobilePhone = "+9779876543210";
const language = "en-US";
const city = "Bharatpur";
const state = "Bagmati";
const postalCode = "44200";
const countryCode: CountryCode = "NPL";
const address1 = "Shittal street, Bharatpur - 10, Chitwan";
const recipient = Recipient.create(
participantId,
firstName,
lastName,
emailAddress,
mobilePhone,
language,
city,
state,
postalCode,
countryCode,
address1,
);
const amount = "150.55";
const [depositResponse, buyCardResponse, apiResponse] = await service.purchaseCard({
amount,
recipient,
});
console.log("depositResponse:", depositResponse.hash);
console.log("buyCardResponse:", buyCardResponse.hash);
console.log("apiResponse:", apiResponse.);