{"_id":"@biolimitless/signature-validators","_rev":"4-c1bc75ee0690b968d99161fb11fb9eb4","name":"@biolimitless/signature-validators","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.2":{"name":"@biolimitless/signature-validators","version":"0.1.2","keywords":["biolimitless"],"author":{"name":"biolimitless-sdk"},"license":"MIT","_id":"@biolimitless/signature-validators@0.1.2","maintainers":[{"name":"jumojet5","email":"pogybkoivan@gmail.com"},{"name":"martushka","email":"marisha.illenok@gmail.com"}],"dist":{"shasum":"dd00d37c0c6567fc6e8629f1ce0e31600ad221e7","tarball":"https://registry.npmjs.org/@biolimitless/signature-validators/-/signature-validators-0.1.2.tgz","fileCount":23,"integrity":"sha512-SM/XDTzx4MvzqpxBQ9lhHH1EmHeexthIEiEC7Q8tuf5AjuWcVE1xYb15Y5RWi57pSMO1vS1uNsgbawa8h0MKIQ==","signatures":[{"sig":"MEUCIH6GHrmBXyxb1w3Gb0NGz7pcoMFj2mJGiYsy1YuT1/WHAiEA6yVkDxku724lMORawHKLB6OL9fEoAZSh0QHzSYFKdDY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15865},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","exports":"./dist/index.js","gitHead":"4b0b7ee427c20304c568136b8e21b0accf4a69a7","scripts":{"test":"jest --passWithNoTests","build":"tsc","start":"tsc --watch","prebuild":"rm -rf dist"},"_npmUser":{"name":"jumojet5","email":"pogybkoivan@gmail.com"},"_npmVersion":"lerna/6.6.2/node@v20.15.1+arm64 (darwin)","description":"signature validators utils","directories":{},"_nodeVersion":"20.15.1","dependencies":{"@biolimitless/core":"^0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/signature-validators_0.1.2_1721980103450_0.03445307890523419","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@biolimitless/signature-validators","version":"0.1.3","keywords":["biolimitless"],"author":{"name":"biolimitless-sdk"},"license":"MIT","_id":"@biolimitless/signature-validators@0.1.3","maintainers":[{"name":"jumojet5","email":"pogybkoivan@gmail.com"},{"name":"martushka","email":"marisha.illenok@gmail.com"}],"dist":{"shasum":"e5465949afd948422d5d7382d85a11ae3df26220","tarball":"https://registry.npmjs.org/@biolimitless/signature-validators/-/signature-validators-0.1.3.tgz","fileCount":23,"integrity":"sha512-8WFwjaLjB1F8WYmkkQy3YeJLj5p56t4EJtlJJP4jEDC/6uJsj2zUuoDjQHxKHUKGG3eDfeztc1s/lGkLXV8+HQ==","signatures":[{"sig":"MEUCIFb0xfOqIFL6WESJVKQpry/gtoWXRyqIYpWiE2g8wee+AiEAoWZDbrjwzmOiNejKqIGUWL7WwhwoiJHu8Py22O8nAe0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16126},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","exports":"./dist/index.js","gitHead":"ce4fa2a718b192431851b5445c39bf6efc1e0001","scripts":{"test":"jest --passWithNoTests","build":"tsc","start":"tsc --watch","prebuild":"rm -rf dist"},"_npmUser":{"name":"jumojet5","email":"pogybkoivan@gmail.com"},"_npmVersion":"lerna/6.6.2/node@v20.15.1+arm64 (darwin)","description":"signature validators utils","directories":{},"_nodeVersion":"20.15.1","dependencies":{"@biolimitless/core":"^0.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/signature-validators_0.1.3_1721993809225_0.75471205128838","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@biolimitless/signature-validators","version":"0.2.0","keywords":["biolimitless"],"author":{"name":"biolimitless-sdk"},"license":"MIT","_id":"@biolimitless/signature-validators@0.2.0","maintainers":[{"name":"jumojet5","email":"pogybkoivan@gmail.com"},{"name":"martushka","email":"marisha.illenok@gmail.com"}],"dist":{"shasum":"f9d11ad016d728996680a53a3766d3f43da3d294","tarball":"https://registry.npmjs.org/@biolimitless/signature-validators/-/signature-validators-0.2.0.tgz","fileCount":23,"integrity":"sha512-A7ePoq+NHxsO2TEgw1gDKypY/8DIIkYPJZLxq2moQaOD+vEY37h34Sjq5mqIw9kC3QWOJhEGKWS6AM6wAj9GtQ==","signatures":[{"sig":"MEYCIQCJj2ZbjyWhHEo25NoHGwbXlbghHe85ZGinFmAaqJg+vQIhAMm72lzOyL2UNjsOcwLin1PmU3yVuuQ4PKHJIAq7lJo6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17888},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","exports":"./dist/index.js","gitHead":"f4e856ab09680d75c077d517c5786007140dd3a0","scripts":{"test":"jest --passWithNoTests","build":"tsc","start":"tsc --watch","prebuild":"rm -rf dist"},"_npmUser":{"name":"jumojet5","email":"pogybkoivan@gmail.com"},"_npmVersion":"lerna/6.6.2/node@v20.15.1+arm64 (darwin)","description":"signature validators utils","directories":{},"_nodeVersion":"20.15.1","dependencies":{"@biolimitless/core":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/signature-validators_0.2.0_1722262858155_0.00617853598523177","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@biolimitless/signature-validators","version":"0.2.1","keywords":["biolimitless"],"author":{"name":"biolimitless-sdk"},"license":"MIT","_id":"@biolimitless/signature-validators@0.2.1","maintainers":[{"name":"jumojet5","email":"pogybkoivan@gmail.com"},{"name":"martushka","email":"marisha.illenok@gmail.com"}],"dist":{"shasum":"da6159979050fc11e8150cf9541282404516ae2d","tarball":"https://registry.npmjs.org/@biolimitless/signature-validators/-/signature-validators-0.2.1.tgz","fileCount":23,"integrity":"sha512-4P5aHJi5Hbbj9Gv5vMsfzNRGX0AdbUqWWfu4pTy/+s+IK+kSwXcCW8rwj6n62VaVQr36iXskzzk56j43/7xrkA==","signatures":[{"sig":"MEUCIQChxjNcU36GmSrl0x+yjHiL/2pvP5DVqflkj4gxONJxlQIgXAnqEf6zXUKVnqcj857EgrdCxB0DoY1QeCk8vmKsf8s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17886},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","exports":"./dist/index.js","gitHead":"d7c4f09535a4a1d2750382fa95c240531f03b34c","scripts":{"test":"jest --passWithNoTests","build":"tsc","start":"tsc --watch","prebuild":"rm -rf dist"},"_npmUser":{"name":"jumojet5","email":"pogybkoivan@gmail.com"},"_npmVersion":"lerna/6.6.2/node@v20.15.1+arm64 (darwin)","description":"signature validators utils","directories":{},"_nodeVersion":"20.15.1","dependencies":{"@biolimitless/core":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/signature-validators_0.2.1_1722263215650_0.38049834679958283","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"@biolimitless/signature-validators","keywords":["biolimitless"],"publishConfig":{"access":"public"},"version":"0.2.2","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.2.1"},"description":"signature validators utils","author":{"name":"biolimitless-sdk"},"license":"MIT","gitHead":"8240f757d6ac51725cf5d135561fd47e859a1081","_id":"@biolimitless/signature-validators@0.2.2","_nodeVersion":"20.15.1","_npmVersion":"lerna/6.6.2/node@v20.15.1+arm64 (darwin)","dist":{"integrity":"sha512-Tc6Z4ukPV8As3OUklu3HSRqoEAwnwSJg64NOVrFmVr+G6j+mNinPELdJ/QYUKgCwthLokgYoko7mGWpJi0ikBw==","shasum":"0a4b15c1ca9f354db8f73f9459869820c87ae661","tarball":"https://registry.npmjs.org/@biolimitless/signature-validators/-/signature-validators-0.2.2.tgz","fileCount":23,"unpackedSize":17886,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAZmEhSy3Z8OLeo2AE+2qsorX/BuVf6r5RGBac/QZ3SBAiEA2sq5OEezp58n8hAttw7nK1ONk8hjPr7VOK9azVh85eI="}]},"_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/signature-validators_0.2.2_1722533706172_0.7878454506957167"},"_hasShrinkwrap":false}},"time":{"created":"2024-07-26T07:48:23.229Z","modified":"2024-08-01T17:35:06.564Z","0.1.2":"2024-07-26T07:48:23.589Z","0.1.3":"2024-07-26T11:36:49.384Z","0.2.0":"2024-07-29T14:20:58.318Z","0.2.1":"2024-07-29T14:26:55.855Z","0.2.2":"2024-08-01T17:35:06.374Z"},"author":{"name":"biolimitless-sdk"},"license":"MIT","keywords":["biolimitless"],"description":"signature validators utils","maintainers":[{"name":"jumojet5","email":"pogybkoivan@gmail.com"},{"name":"martushka","email":"marisha.illenok@gmail.com"}],"readme":"# @biolimitless/signature-validators\n\n## Install\n```shell\nnpm i @biolimitless/signature-validators\n```\n\n## Utils\n\nFor validate existed signatures use these utils.\n\nFor ethereum networks\n```ts\nfunction validateEvmSignature(\n  signature: string,\n  message: string,\n  account: Address,\n): boolean\n```\n\n<div style=\"border-left: rgb(55,154,137) 5px solid;\">\n\n> ### <span style=\"color: rgb(55,154,137);\">ⓘ Info</span>\n> Validating the message signed by `personal_sign` method\n\n</div>\n\nFor tron networks\n```ts\nfunction validateTvmSignature(\n  tronWeb: LimitedTronWeb,\n  signature: string,\n  message: string,\n  account: Address,\n): Promise<boolean>\n```\n\n<div style=\"border-left: rgb(55,154,137) 5px solid;\">\n\n> ### <span style=\"color: rgb(55,154,137);\">ⓘ Info</span>\n> Tron has two methods for sign message `sign` and `signMessageV2`. Our api firstly validates signature by `verifyMessageV2` (for `signMessageV2` method) and after that if v2 not valid use `verifyMessage` (for `sign` method) \n\n</div>\n\n<div style=\"border-left: rgb(203,110,53) 5px solid;\">\n\n> ### <span style=\"color: rgb(203,110,53);\">⚠️ Attention</span>\n> Tron signature could be validated only by `validateTvmSignature` and ethereum signature only by `validateEvmSignature`\n\n</div>\n\n## Usage example:\n\n```ts\n// for evm sign\nasync function signSomething() {\n  const message = 'test message'\n  const connector = new MetamaskConnector(supportedNetworks, activeChainIds[0], activeChainIds)\n  await connector.connect()\n  const account = connector.account\n  const signature = await connector.signMessage(message)\n  await sendSignature(signature, message, account.toHex(), 'evm') // some backend endpoint for validate signature\n}\n\n// for tvm sign\nasync function signSomething() {\n  const message = 'test message'\n  const connector = new TronConnector(TvmChainIdsEnum.MAINNET)\n  await connector.connect()\n  const account = connector.account\n  const signature = await connector.signMessage(message)\n  await sendSignature(signature, message, account.toBase58(), 'tvm') // some backend endpoint for validate signature\n}\n\n/*\n for validate on backend\n\n for example 1\n     signature - '0x6be779db421a2d3b2ddfb2f883a7589ee34a2c793269bdd776c17721471f4d1563ccf1c58fc902497559bc6591726cb1ad90e87f6cf4f6c04019a3e9e8c240c11b\n     message - 'test message'\n     account - 'TTgJKmrBrpjNh2gKYuYaBscEPmG3PucBAr'\n result true\n\n for example2\n     signature - '0xcf8df093455d31dbf28142e8adbb4c341c74da9abff15ec5bef350283246f6e22e1cb218f66a9f7179ae73763f46d08ce4b8879d5fb41be709202d2e3a7f94841b\n     message - 'test message'\n     account - '0x47F110C21FE169c2728cFE5C075b38CA1Bdf476e'\n result true\n */\nasync function validateSign(signature: string, message: string, account: string, type: 'evm' | 'tvm') {\n  switch (type) {\n    case 'evm':\n      return validateTvmSignature(signature, message, Address.from(account))\n    case 'tvm':\n      return validateEvmSignature(signature, message, Address.from(account))\n    default:\n      throw new Error('Unknown type')\n  }\n}\n```\n","readmeFilename":"README.md"}