Voucher SDK
Install
yarn add @white-matrix/matrix-world-voucher-sdk
yarn upgrade @white-matrix/matrix-world-voucher-sdk
SDK-Package
Build
yarn run build
Publish
Recommend to use yarn's publish command to publish the package
yarn publish
API Reference
Interfaces
Voucher Frontend API Interface
/*======== VoucherClient specific views======*/
/**
* get the voucher detailed information including owner address and landInfoHash
* @param tokenId the id of the given voucher
* @returns returns the token owner address and the landInfoHash
*/
tokenInfo(tokenId: BigNumber): Promise<TokenInfo>;
/*======== VoucherClient specific transactions======*/
/** claim a voucher and get a voucher token id
* @param account the account to claim the voucher
* @param landInfoHash land info metadata hashed by the backend server
* @param price the price of voucher in ETH
* @param timestamp the UNIX timestamp in seconds to issue the voucher
* @param signature signed the request message by the backend server
* @param config used to passed in payable related values, such as amount of ETH
* @returns Voucher Claim result including a transactionHash and a tokenId used as the id of the claimed voucher
*/
claim(
account: string,
landInfoHash: string,
price: BigNumber,
timestamp: number,
signature: string,
config?: PayableOverrides
): Promise<ContractClaimResult>;
/** batch claim
* @param accounts a list of accounts to claim vouchers
* @param landInfoHashes a list of landInfoHashes corresponding to each entry in the accounts list
* @param prices a list of prices corresponding to each entry in the accounts list
* @param timestamps a list of timestamp corresponding to each entry in the accounts list
* @param signatures a list of signatures corresponding to each entry in the accounts list
* @param config used to passed in payable related values, such as amount of ETH
* @returns Voucher batch claim result including a transactionHash and a list of {account: string; tokenId: BigNumber}
*/
batchClaim(
accounts: string[],
landInfoHashes: string[],
prices: BigNumber[],
timestamps: number[],
signatures: string[],
config?: PayableOverrides
): Promise<ContractBatchClaimResult>;
Voucher Backend API Interface
/*======== Backend functions======*/
/**
* 对claim的请求数据签名
* @param privateKey contract owner private key
* @param account account to claim the voucher
* @param landInfoHash land info metadata hash
* @param price the cost of voucher in a stable coin
* @param timestamp current time in seconds since the Unix epoch
* @returns signature used to be verified in the claim transaction
*/
voucherSignature(
privateKey: string,
account: string,
landInfoHash: string,
price: BigNumber,
timestamp: number
): Promise<string>;
/**
* Hash the land info with the metadata
* @param topLeftX land top left x-coordinate
* @param topeLeftY land top left y-coordinate
* @param height land height
* @param width land width
* @Returns the KECCAK256 of the non-standard encoded values packed according to their respective type in types.
*/
generateLandInfoHash(topLeftX: number, topeLeftY: number, height: number, width: number): string;
/*======== Event Filters======*/
/**
* filers all the VoucherClaimedEvent between 'from' and 'to' blocks
* @param fromBlock the starting block
* @param toBlock the ending block
* @returns promise of all the VoucherClaimedEvent in an array
*/
queryVoucherClaimedEvents(fromBlock: number, toBlock: number): Promise<VoucherClaimedEvent[]>;
/**
* filers all the ERC721 TransferEvent between 'from' and 'to' blocks
* @param fromBlock the starting block
* @param toBlock the ending block
* @returns promise of all the TransferEvent in an array
*/
queryTransferEvents(fromBlock: number, toBlock: number): Promise<TransferEvent[]>;