Package Exports
- @purefi/verifier-sdk
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@purefi/verifier-sdk) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme

@purefi/verifier-sdk
Node.js module with the Verifier SDK for PureFI decentralized AML protocol. Providing wrappers for communicating with PureFI issuers
Installation
Using npm:
npm install @purefi/verifier-sdkUsing yarn:
yarn add @purefi/verifier-sdkQuick Start
CommonJS:
const PureFI = require('@purefi/verifier-sdk').default;
const purefi = new PureFI();
function checkRisk(message, signature) {
return purefi.checkRisk(message, signature);
}
function downloadReport(message, signature) {
return purefi.downloadReport(message, signature);
}ES6:
import PureFI from '@purefi/verifier-sdk';
const purefi = new PureFI();
const checkRisk = async (message, signature) => {
const response = await purefi.checkRisk(message, signature);
return response;
}
const downloadReport = async (message, signature) => {
const response = await purefi.downloadReport(message, signature);
return response;
}Typescript:
import PureFI, { CheckRiskResponse } from '@purefi/verifier-sdk';
const purefi = new PureFI();
const checkRisk = async (message: string, signature: string): Promise<CheckRiskResponse[]> => {
const response: CheckRiskResponse[] = await purefi.checkRisk(message, signature);
return response;
}
const downloadReport = async (message: string, signature: string): Promise<DownloadReportResponse> => {
const response: DownloadReportResponse = await purefi.downloadReport(message, signature);
return response;
}Example
Javascript
// other imports
const ethers = require("ethers");
const PureFI = require('@purefi/verifier-sdk').default;
// create provider instance https://docs.ethers.io/v5/api/providers/other/#Web3Provider
const externalProvider = ...;
const provider = new ethers.providers.Web3Provider(externalProvider);
// obtain signer instance https://docs.ethers.io/v5/api/signer/#signers
const signer = provider.getSigner();
// instantiate purefi
const purefi = new PureFI();
// helper function
function checkRisk(payload) {
const message = JSON.stringify(payload);
return signer
.signMessage(message)
.then((signature) => purefi.checkRisk(message, signature));
}
// helper function
function downloadReport(payload) {
const message = JSON.stringify(payload);
return signer
.signMessage(message)
.then((signature) => purefi.downloadReport(message, signature));
}
// wallet and pool to check
const walletAddressToCheck = '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC';
const poolAddressToCheck = '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB';
const checkRiskPayload = [
{
address: walletAddressToCheck,
},
{
address: poolAddressToCheck,
},
];
// process risks
checkRisk(checkRiskPayload).then((data) => {
data.forEach((riskResponse) => {
// check if request succeeded
if (riskResponse.riskScore !== null) {
console.log(
`Address ${riskResponse.address} - risk level ${
riskResponse.riskScore >= 50 ? 'high' : 'low'
}`
);
console.log(
`Address ${riskResponse.address} - connections ${JSON.stringify(
riskResponse.connections
)}`
);
} else {
console.log(`Error ${riskResponse.details.message}`);
}
});
});
const downloadReportPayload = {
address: walletAddressToCheck,
};
// let user download a report
downloadReport(downloadReportPayload).then((response) => {
// check if request succeeded
if (response.buffer !== null) {
// browser case example
const url = window.URL.createObjectURL(new Blob([response.buffer]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'PureFI VC Certificate.pdf');
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
} else {
console.log(`Error ${response.details.message}`);
}
});