{"_id":"@biolimitless/user-nfts","name":"@biolimitless/user-nfts","dist-tags":{"latest":"0.2.0"},"versions":{"0.2.0":{"name":"@biolimitless/user-nfts","keywords":["biolimitless"],"publishConfig":{"access":"public"},"version":"0.2.0","scripts":{"prebuild":"rm -rf dist","build":"tsc","start":"tsc --watch","test":"jest --passWithNoTests"},"type":"commonjs","types":"./dist/index.d.ts","main":"./dist/index.js","exports":"./dist/index.js","peerDependencies":{"ethers":"^5.4.1"},"dependencies":{"@biolimitless/core":"^0.1.3"},"description":"signature validators utils","author":{"name":"biolimitless-sdk"},"license":"MIT","gitHead":"8240f757d6ac51725cf5d135561fd47e859a1081","_id":"@biolimitless/user-nfts@0.2.0","_nodeVersion":"20.15.1","_npmVersion":"lerna/6.6.2/node@v20.15.1+arm64 (darwin)","dist":{"integrity":"sha512-aadbJYjtVsXDFNZXcue/tBCwKLZCodL0f9WFslpbqhbsrqKNjoqlFy7oYS3m3fKuzkM3m5DvSWDByrKQQy95Qw==","shasum":"c4e878dfe98fb010ad3694f2d9f66300e7eedf42","tarball":"https://registry.npmjs.org/@biolimitless/user-nfts/-/user-nfts-0.2.0.tgz","fileCount":23,"unpackedSize":17754,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVUjj8EBYMiJk5PVysLSaxYaDiHgUNitGMH1KEBYUaXwIhAKaCowTnpFt+AnKwaZ3sG6FyKzgYvpXORqlBlEAJWIJ+"}]},"_npmUser":{"name":"jumojet5","email":"pogybkoivan@gmail.com"},"directories":{},"maintainers":[{"name":"jumojet5","email":"pogybkoivan@gmail.com"},{"name":"martushka","email":"marisha.illenok@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/user-nfts_0.2.0_1722533704685_0.29347579569269455"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-01T17:35:04.574Z","0.2.0":"2024-08-01T17:35:04.851Z","modified":"2024-08-01T17:35:05.196Z"},"maintainers":[{"name":"jumojet5","email":"pogybkoivan@gmail.com"},{"name":"martushka","email":"marisha.illenok@gmail.com"}],"description":"signature validators utils","keywords":["biolimitless"],"author":{"name":"biolimitless-sdk"},"license":"MIT","readme":"# @biolimitless/user-nfts\n\n## Install\n```shell\nnpm i @biolimitless/user-nfts\n```\n\n## Utils\n\nFor load NFTs list by owner address\n```ts\nfunction loadAccountNft(\n  url: string, // provide url depends on environments\n  account: Address, // provide address of searched user\n): Promise<AccountNftDetails[]> \n```\n\nFor initialize NFTs list types\n```ts\nfunction mapAccountNft<T extends string>(\n  data: AccountNftDetails[], // provide loaded list of NFTs\n  nftTypes: NftTypes<T>[], // provide types of known NFTs\n): AccountNftDetails<T>[]\n```\n\n## Types\n```ts\ntype AccountNftDetails<T extends string = string> = {\n  contract: Address\n  owner: Address\n  tokenId: string\n  mintedAt: number // timestamp of mint in seconds\n  type?: T\n}\n\ntype NftTypes<T extends string = string> = { nftAddress: Address; type: T }\n```\nAddress - see [core package](../core/README.md)\n\n## Usage example:\n\n```ts\nconst testUrl = 'http://localhost:8000/subgraphs/name/biolimitless'\nconst testAccount = Address.from('0x47F110C21FE169c2728cFE5C075b38CA1Bdf476e')\nconst nft1 = Address.from('0xDC64A140AA3E981100A9BECA4E685F962F0CF6C9')\nconst nft2 = Address.from('0x2279B7A0A67DB372996A5FAB50D91EAA73D2EBE6')\nconst nftList = await loadAccountNft(testUrl, testAccount)\nconsole.log({ nftList })\n/*\n{\n    \"nftList\": [\n        {\n            \"contract\": Address.from('0xDC64A140AA3E981100A9BECA4E685F962F0CF6C9'),\n            \"owner\": Address.from('0x47F110C21FE169c2728cFE5C075b38CA1Bdf476e'),\n            \"tokenId\": \"1\",\n            \"mintedAt\": 1722421198\n        },\n        {\n            \"contract\": Address.from('0x2279B7A0A67DB372996A5FAB50D91EAA73D2EBE6'),\n            \"owner\": Address.from('0x47F110C21FE169c2728cFE5C075b38CA1Bdf476e'),\n            \"tokenId\": \"2\",\n            \"mintedAt\": 1722421198\n        }\n    ]\n}\n */\n\nconst typedList = mapAccountNft(nftList, [\n  { nftAddress: nft1, type: 'nft1' },\n  { nftAddress: nft2, type: 'nft2' },\n])\nconsole.log({ typedList })\n/*\n{\n    \"nftList\": [\n        {\n            \"contract\": Address.from('0xDC64A140AA3E981100A9BECA4E685F962F0CF6C9'),\n            \"owner\": Address.from('0x47F110C21FE169c2728cFE5C075b38CA1Bdf476e'),\n            \"tokenId\": \"1\",\n            \"mintedAt\": 1722421198,\n            type: \"nft1\"\n        },\n        {\n            \"contract\": Address.from('0x2279B7A0A67DB372996A5FAB50D91EAA73D2EBE6'),\n            \"owner\": Address.from('0x47F110C21FE169c2728cFE5C075b38CA1Bdf476e'),\n            \"tokenId\": \"2\",\n            \"mintedAt\": 1722421198,\n            type: \"nft2\"\n        }\n    ]\n}\n */\n```\n","readmeFilename":"README.md"}