UNPKG

nomis-sdk

Version:

SDK for scoring the wallet on Ton

258 lines (183 loc) 5.7 kB
# Nomis Ton Score SDK The Nomis Ton Score SDK allows you to seamlessly integrate your application with the Nomis Ton Score system. Below are the details for installation and usage of the SDK. ## Installation To install the SDK, use the following command: ```sh npm install nomis-sdk ``` ## Methods ### 1. `getScoreData` Retrieves information about a wallet's score. ```javascript const { isUpdate, scoreData, scoreName, token, mintData } = await getScoreData({ address, referrerCode, }); ``` **Parameters:** - `address` (string): The wallet address. - `referrerCode` (string, optional): Code for referral rewards. **Returns:** - `isUpdate` (boolean): Indicates if the user has previously minted the score. - `scoreData` (object): Detailed information about the wallet's score. - `scoreName` (string): The network used for scoring. - `token` (object): Information about the minted score. - `mintData` (object): Data required for minting/updating the score. ### 2. `mintScore` Provides theree methods for minting a score and obtaining the transaction hash. ```javascript const { mintToken, getNewTxHash, getMintingTxParams } = mintScore({ address }); ``` ##### `mintToken` Mints a token using the provided mint data and TonConnect object. ```javascript const lastTx = await mintToken({ ...mintData, tonConnect: tonConnect }); ``` **Parameters:** - `mintData` (object): Data necessary for minting. - `tonConnect` (object): An instance of TonConnect or TonConnectUi that includes a `sendTransaction` method. **Returns:** - `lastTx` (object instance of Transaction): The last transaction in the user's wallet. ##### `getMintingTxParams` Prepares the transaction parameters required for minting a score token without tonconnect. ```javascript const txParams = await getMintingTxParams(mintData); ``` **Parameters:** - `params: IMintData` - An object containing the necessary data for minting a score token. **Returns:** - `Promise<SenderArguments>` - A promise that resolves to the `SenderArguments` object, which contains the prepared transaction parameters. ##### `getNewTxHash` Obtains the transaction hash for the mintToken transaction. ```javascript const txHash = await getNewTxHash(lastTx); ``` **Parameters:** - `lastTx` (object): The last transaction. **Returns:** - `txHash` (string): The transaction hash. ### 3. `getMintedToken` Retrieves the minted token object for a given wallet address. ```javascript const token = await getMintedToken({ address }); ``` **Parameters:** - `address` (string): The wallet address. **Returns:** - `token` (object): The minted token object. ### 4. `isScoreHolder` Checks if the specified wallet holds a score NFT. ```javascript const isHolder = await isScoreHolder({ address }); ``` **Parameters:** - `address` (string): The wallet address. **Returns:** - `isHolder` (boolean): True if the wallet holds a score NFT, otherwise false. ## Usage Example Here’s a simple example of how to use the Nomis Ton Score SDK in your project: ```javascript import { getScoreData, mintScore, getMintedToken, isScoreHolder, getMintingTxParams, } from "nomis-sdk"; // Example usage of getScoreData async function fetchScoreData(address) { const { isUpdate, scoreData, scoreName, token, mintData } = await getScoreData({ address }); console.log(scoreData); /* isUpdate: boolean; scoreData: { address: string; mintData: MintData; mintPrice: number; referralCode: string; referrerReward: number; referrerAddress: string | null; score: number; scoreType: number; stats: Stats; signature: string | null; }; mintData: { calculationModel: number; chainId: number; deadline: number; metadataUrl: string; mintedChain: MintedChain; mintedScore: number; nonce: number; referralCode: string; referrerCode: string; signature: string; referrerAddress: string; referrerReward: string mintPrice: number }, scoreName: string; token: { name: string; score: number; updated: number; tokenId: number; calculationModel: number; chainId: number; owner: string; realTokenId: string; } */ } // Example usage of mintScore async function mintScoreForWallet(address, tonConnect) { const { mintToken, getNewTxHash, getMintingTxParams } = mintScore({ address, }); const lastTx = await mintToken({ ...mintData, tonConnect }); const txHash = await getNewTxHash(lastTx); console.log(txHash); //string const txParams = getMintingTxParams(mintData); console.log(txParams); /* value: bigint; to: Address; body?: Maybe<Cell>; */ } // Example usage of getMintedToken async function fetchMintedToken(address) { const token = await getMintedToken({ address }); console.log(token); /* name: string; score: number; updated: number; tokenId: number; calculationModel: number; chainId: number; owner: string; realTokenId: string */ } // Example usage of isScoreHolder async function checkScoreHolder(address) { const isHolder = await isScoreHolder({ address }); console.log(isHolder); //boolean } // Example usage of mintScore ``` ## License This project is licensed under the MIT License. See the [LICENSE] file for more details. ## Contributing Contributions are welcome! Please open an issue or submit a pull request for any bugs or features. ## Support If you have any questions or need help, please open an issue on our [GitHub repository](https://github.com/Nomis-cc/nomis-sdk/issues). ## Authors - [Enjey](https://github.com/andrei-leon) - [Nomis](https://github.com/Nomis-cc) Enjoy using Nomis Ton Score SDK!