{"_id":"@crustnetwork/tonbags-sdk","_rev":"3-4cf7d7752d4a3f9eb0bb87f20527346c","name":"@crustnetwork/tonbags-sdk","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@crustnetwork/tonbags-sdk","version":"0.0.1","author":"","license":"ISC","_id":"@crustnetwork/tonbags-sdk@0.0.1","maintainers":[{"name":"eericxu","email":"2681350846@qq.com"},{"name":"crustbuild","email":"gavin@crust.network"}],"dist":{"shasum":"311de878fa40cbc02a94fdef04c93008a5875f38","tarball":"https://registry.npmjs.org/@crustnetwork/tonbags-sdk/-/tonbags-sdk-0.0.1.tgz","fileCount":11,"integrity":"sha512-vWCn7OcRsTPcixweeWw5KRGgHxVa+WiFsqisDjyx7YUUgscYTbk4dmj5lUEt4UmOxO5LsQyDyRT6qtrQIwrRSA==","signatures":[{"sig":"MEUCIAQyRtoOpS6m1sez8jxLo3sv42UmULCceDb+AY/NYOU3AiEA1/gmbvof1fK6Nz7u8CcRospiFQknitBDl07ZwWUuyHM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27924},"main":"index.js","gitHead":"02b5838e8d5e4444668025a2ca4ba02f911f6e93","scripts":{"fix":"gts fix","pub":"tsc && copyfiles ./package.json ./build && cd build && npm publish --access public","lint":"gts lint","clean":"gts clean","compile":"tsc","build:types":"npx ts-node src/scripts/generate.ts"},"_npmUser":{"name":"eericxu","email":"2681350846@qq.com"},"_npmVersion":"10.2.3","directories":{},"_nodeVersion":"18.19.0","dependencies":{"axios":"^1.7.4","@ton/core":"^0.56.3","js-sha256":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"copyfiles":"latest","typescript":"^4.1.3","@types/node":"^14.14.31"},"_npmOperationalInternal":{"tmp":"tmp/tonbags-sdk_0.0.1_1723691727224_0.8180898205012197","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@crustnetwork/tonbags-sdk","version":"0.0.2","author":"","license":"Apache-2.0","_id":"@crustnetwork/tonbags-sdk@0.0.2","maintainers":[{"name":"eericxu","email":"2681350846@qq.com"},{"name":"crustbuild","email":"gavin@crust.network"}],"dist":{"shasum":"aa38b6d0d873d81b99e8d944124384b9bd8c3187","tarball":"https://registry.npmjs.org/@crustnetwork/tonbags-sdk/-/tonbags-sdk-0.0.2.tgz","fileCount":11,"integrity":"sha512-cLUiQpECMno2HGsU+asd9R+Q1ToN0D74u0xswYbWhL5h+jwPVETDp3eIaUu/0+QQiz2urYILKdVLdljUTgGg3Q==","signatures":[{"sig":"MEUCIQC6+svbvw2FHZl8KsUXxEEGOFTmqIBEOv6dxqWR517HkAIgbv0vjqk2qcCrspays2FQG3t2+qQ26F2PxQzP2kP9dmc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27937},"main":"./src/index.js","types":"./src/index.d.ts","gitHead":"02b5838e8d5e4444668025a2ca4ba02f911f6e93","scripts":{"fix":"gts fix","pub":"tsc && copyfiles ./package.json ./build && cd build && npm publish --access public","lint":"gts lint","clean":"gts clean","compile":"tsc","build:types":"npx ts-node src/scripts/generate.ts"},"_npmUser":{"name":"eericxu","email":"2681350846@qq.com"},"_npmVersion":"10.2.3","directories":{},"_nodeVersion":"18.19.0","dependencies":{"axios":"^1.7.4","@ton/core":"^0.56.3","js-sha256":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"copyfiles":"latest","typescript":"^4.1.3","@types/node":"^14.14.31"},"_npmOperationalInternal":{"tmp":"tmp/tonbags-sdk_0.0.2_1723692381022_0.5959708663615202","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@crustnetwork/tonbags-sdk","version":"0.0.3","author":"","license":"Apache-2.0","_id":"@crustnetwork/tonbags-sdk@0.0.3","maintainers":[{"name":"eericxu","email":"2681350846@qq.com"},{"name":"crustbuild","email":"gavin@crust.network"}],"dist":{"shasum":"e1b73855f023ec1f2ea57c3860c42a9144e575e6","tarball":"https://registry.npmjs.org/@crustnetwork/tonbags-sdk/-/tonbags-sdk-0.0.3.tgz","fileCount":15,"integrity":"sha512-lnEXBlV+zrZm2b+tPi2DovThj/UvneYWcETerDoyWLHT5UJUrE0lriMJrTu3/xss4Etvi+XMwQ27sb4BBZDe/Q==","signatures":[{"sig":"MEUCIQCuiCWNb+s16hzPLhnN427jxebT0CbMgNm492jQ1Lx7JAIgc8H5L0L76sQbFEw2N7P6CYHPCHjEs4RHoPrPaBlKAkQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31260},"main":"./src/index.js","types":"./src/index.d.ts","gitHead":"02b5838e8d5e4444668025a2ca4ba02f911f6e93","scripts":{"fix":"gts fix","pub":"tsc && copyfiles ./package.json ./build && cd build && npm publish --access public","lint":"gts lint","clean":"gts clean","compile":"tsc","build:types":"npx ts-node src/scripts/generate.ts"},"_npmUser":{"name":"eericxu","email":"2681350846@qq.com"},"_npmVersion":"10.2.3","directories":{},"_nodeVersion":"18.19.0","dependencies":{"axios":"^1.7.4","@ton/core":"^0.56.3","js-sha256":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"copyfiles":"latest","typescript":"^4.1.3","@types/node":"^14.14.31"},"_npmOperationalInternal":{"tmp":"tmp/tonbags-sdk_0.0.3_1723697419807_0.5847353245719684","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@crustnetwork/tonbags-sdk","version":"0.0.4","description":"SDK for interacting with TonBags contract","main":"./src/index.js","scripts":{"build:types":"npx ts-node src/scripts/generate.ts","lint":"gts lint","clean":"gts clean","compile":"tsc","fix":"gts fix","pub":"tsc && copyfiles ./package.json ./README.md ./build && cd build && npm publish --access public"},"devDependencies":{"@types/node":"^14.14.31","copyfiles":"latest","typescript":"^4.1.3"},"author":"","license":"Apache-2.0","dependencies":{"@ton/core":"^0.56.3","axios":"^1.7.4","js-sha256":"^0.11.0"},"_id":"@crustnetwork/tonbags-sdk@0.0.4","gitHead":"43c32fae5e9d52afaaedb19759c3fedac4183013","types":"./src/index.d.ts","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-nvmD3B1foJuhEe+ZTEqNKZy2RzcDE+KIl75aiCdl0dCX6rCSl3+zFMjVO05oc2wZdgXnoYROvewpzpt5ei1ozA==","shasum":"c79e851c63592c5db7bb836c6cd4cc37e064bca2","tarball":"https://registry.npmjs.org/@crustnetwork/tonbags-sdk/-/tonbags-sdk-0.0.4.tgz","fileCount":16,"unpackedSize":33496,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCY2VZQ+UEKA7lrO0miraXo6PmNzQuRayMiBP0KuMzyvAIgMsC9WvpKxPHU7iaJIcaHeMERaPegPWEwY+ScS5ZTRVs="}]},"_npmUser":{"name":"eericxu","email":"2681350846@qq.com"},"directories":{},"maintainers":[{"name":"eericxu","email":"2681350846@qq.com"},{"name":"crustbuild","email":"gavin@crust.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tonbags-sdk_0.0.4_1723701962121_0.7860828105528974"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-15T03:15:27.134Z","modified":"2024-08-15T06:06:02.544Z","0.0.1":"2024-08-15T03:15:27.372Z","0.0.2":"2024-08-15T03:26:21.253Z","0.0.3":"2024-08-15T04:50:19.999Z","0.0.4":"2024-08-15T06:06:02.333Z"},"license":"Apache-2.0","maintainers":[{"name":"eericxu","email":"2681350846@qq.com"},{"name":"crustbuild","email":"gavin@crust.network"}],"readme":"## TonBags SDK\nSDK for interacting with TonBags contract\n\n### Installation\n\n```bash\nnpm install @crustnetwork/tonbags-sdk @ton/ton @ton/core @ton/crypto\n```\n\n### Usage \n\n#### Place Storage Order\n```javascript\nimport tonbagssdk from '@crustnetwork/tonbags-sdk'\nimport { default_storage_period } from \"@crustnetwork/tonbags-sdk/src/TonBags\";\nimport { Address, toNano } from \"@ton/core\";\nimport { mnemonicToPrivateKey } from \"@ton/crypto\";\nimport { TonClient, WalletContractV4 } from \"@ton/ton\";\n\nconst tc = new TonClient({\n    endpoint: \"https://testnet.toncenter.com/api/v2/jsonRPC\",\n});\nconst tonbagsAddress = Address.parse(\n    \"EQBOOMNqG0rvNm6vFGfR4qZl48BTDw_gYefVI4DQ70t9GoPC\"\n);\nconst tonBags = tonbagssdk.TonBags.createFromAddress(tonbagsAddress);\n\nconst openTonBags = tc.open(tonBags);\nconst keyPair = await mnemonicToPrivateKey([\"your\", \"mnemonic\"]);\nconst wallet = tc.open(\n    WalletContractV4.create({ workchain: 0, publicKey: keyPair.publicKey })\n);\nawait openTonBags.sendPlaceStorageOrder(\n    wallet.sender(keyPair.secretKey),\n    tonrrentHash, // torrentHash or bagId\n    1024n, // fileSize\n    merkleHash, // file merkle tree root hash\n    toNano(\"0.1\"), // storageFee\n    default_storage_period // storage period time\n);\n\n```\n\n### API Reference\n\n#### merkle tree \n```javascript\nimport { merkle } from '@crustnetwork/tonbags-sdk'\n\nconst readAsBlob = async (file: string) => {\n  return new Promise<Blob>((resolve, reject) => {\n    let chunks: Buffer[] = [];\n    fs.createReadStream(file)\n      .on(\"error\", reject)\n      .on(\"data\", (data: Buffer) => {\n        chunks.push(data);\n      })\n      .on(\"end\", () => resolve(new Blob(chunks)));\n  });\n};\n\nconst mt = new merkle.MerkleTree();\nconst blob = await readAsBlob(\"test.txt\");\n// generate merkle tree\nawait mt.genTree(blob);\n// merkle tree root\nconst merkleRoot = mt.tree![0];\n// getMerkle proofs\nconst dataProofs = await mt.getDataAndProofs(blob, 1)\n```\n\n#### Tonutils\nWraped for the [Tonutils-storage](https://github.com/crustio/tonutils-storage) api\nRequire env TON_STORAGE_UTILS_API=http://localhost:7721\n\n```javascript\nimport { tonutils } from '@crustnetwork/tonbags-sdk'\n\n// create bag\nconst bagId = await tonutils.createBag('path', 'description')\n\n```","readmeFilename":"README.md","description":"SDK for interacting with TonBags contract"}