{"_id":"@anastasia-labs/smart-handles-offchain","_rev":"7-aea3491ee9b6ac939404b6716c9e73ce","name":"@anastasia-labs/smart-handles-offchain","dist-tags":{"latest":"0.3.5"},"versions":{"0.1.0":{"name":"@anastasia-labs/smart-handles-offchain","version":"0.1.0","keywords":[],"author":"","license":"ISC","_id":"@anastasia-labs/smart-handles-offchain@0.1.0","maintainers":[{"name":"anastasia-labs","email":"info@anastasialabs.com"}],"dist":{"shasum":"0dce9f5c3b247cadf2f2855f119ee234f21963f3","tarball":"https://registry.npmjs.org/@anastasia-labs/smart-handles-offchain/-/smart-handles-offchain-0.1.0.tgz","fileCount":7,"integrity":"sha512-9ZBw4behxrwlL2X0dU3C1iJ1WSa1Fvn1GrYAMIh/UC5fuTaWMT5RKk3FKleAa7hN589JK7ti7IBPw+R8lQtPWg==","signatures":[{"sig":"MEQCIEc1w4JXgYQhvFh4iYU6kSegv92sHM906y7gC2Bv8s9lAiAp8d8LveSX9wlZYD0unzTw2GiYhB6zU3RCwjtFQEVvPw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119120},"main":"./dist/index.js","type":"module","_from":"file:anastasia-labs-smart-handles-offchain-0.1.0.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint","test":"export NODE_ENV='emulator' && vitest run","build":"tsup src/index.ts --minify --format esm,cjs --dts --clean","repack":"pnpm run build  && pnpm pack","test-ci":"export NODE_ENV='CI' && vitest run","ts-node":"ts-node"},"_npmUser":{"name":"anastasia-labs","email":"info@anastasialabs.com"},"_resolved":"/tmp/6a8ca8c4142b8b989840463e53693f42/anastasia-labs-smart-handles-offchain-0.1.0.tgz","_integrity":"sha512-9ZBw4behxrwlL2X0dU3C1iJ1WSa1Fvn1GrYAMIh/UC5fuTaWMT5RKk3FKleAa7hN589JK7ti7IBPw+R8lQtPWg==","_npmVersion":"10.5.0","description":"https://docs.github.com/en/packages/quickstart","directories":{"test":"test"},"_nodeVersion":"20.12.2","dependencies":{"@minswap/sdk":"^0.2.2-beta","@blockfrost/blockfrost-js":"^5.5.0","@anastasia-labs/lucid-cardano-fork":"^0.10.8-rc.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","eslint":"^8.57.0","vitest":"0.34.6","ts-node":"^10.9.2","typescript":"^5.4.2","@types/node":"^20.11.26","@sinclair/typebox":"^0.32.15","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/smart-handles-offchain_0.1.0_1715014380390_0.9077851165986002","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@anastasia-labs/smart-handles-offchain","version":"0.2.0","keywords":[],"author":"","license":"ISC","_id":"@anastasia-labs/smart-handles-offchain@0.2.0","maintainers":[{"name":"anastasia-labs","email":"info@anastasialabs.com"}],"dist":{"shasum":"fd59ab269784f1acd5b476ed1c3dd5e04f40e234","tarball":"https://registry.npmjs.org/@anastasia-labs/smart-handles-offchain/-/smart-handles-offchain-0.2.0.tgz","fileCount":7,"integrity":"sha512-rlia+f10+u412jivE8jDu5R47lZfvzjijduv/N74+Sj7jz0aykKawaBQ6tFlp2Lc6wM7UVvXCKn82l9t79KJjA==","signatures":[{"sig":"MEUCIFxGmrOL/qvQIYdiJgnsgOspcRyUze9dJPNrxs25MOQjAiEAs70jIYIMHyZNRATF930Drj5t+Cq6Xri1aVxDlr0BAEQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":121036},"main":"./dist/index.js","type":"module","_from":"file:anastasia-labs-smart-handles-offchain-0.2.0.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint","test":"export NODE_ENV='emulator' && vitest run","build":"tsup src/index.ts --minify --format esm,cjs --dts --clean","repack":"pnpm run build  && pnpm pack","test-ci":"export NODE_ENV='CI' && vitest run","ts-node":"ts-node"},"_npmUser":{"name":"anastasia-labs","email":"info@anastasialabs.com"},"_resolved":"/tmp/73b41125817644ab9963d207db328bd8/anastasia-labs-smart-handles-offchain-0.2.0.tgz","_integrity":"sha512-rlia+f10+u412jivE8jDu5R47lZfvzjijduv/N74+Sj7jz0aykKawaBQ6tFlp2Lc6wM7UVvXCKn82l9t79KJjA==","_npmVersion":"10.7.0","description":"https://docs.github.com/en/packages/quickstart","directories":{"test":"test"},"_nodeVersion":"20.14.0","dependencies":{"@minswap/sdk":"^0.2.2-beta","@blockfrost/blockfrost-js":"^5.5.0","@anastasia-labs/lucid-cardano-fork":"^0.10.8-rc.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.4+sha1.b198ac6d38244fd829253720f9daafd6a606834d","devDependencies":{"tsup":"^8.0.2","eslint":"^8.57.0","vitest":"0.34.6","ts-node":"^10.9.2","typescript":"^5.4.2","@types/node":"^20.11.26","@sinclair/typebox":"^0.32.15","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/smart-handles-offchain_0.2.0_1717764750332_0.5708438883323899","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@anastasia-labs/smart-handles-offchain","version":"0.3.0","keywords":[],"author":"","license":"ISC","_id":"@anastasia-labs/smart-handles-offchain@0.3.0","maintainers":[{"name":"anastasia-labs","email":"info@anastasialabs.com"}],"dist":{"shasum":"15e47de5e902d040ee16c450b4fd13893792730d","tarball":"https://registry.npmjs.org/@anastasia-labs/smart-handles-offchain/-/smart-handles-offchain-0.3.0.tgz","fileCount":7,"integrity":"sha512-niq7lF+IBJ3fbs0OFTyWrHugxuXasYARaLCnCIr6ZvAxLIIqDrvYaDvSIVwt5kXKh7OF1msrsR+BBJDfz8KMcw==","signatures":[{"sig":"MEUCIQDuMs1PuU9pjy2BoZx+iOBLuaDgzqo9hT9N1HAUTnl5uAIgLQDkPWDp2rATf+p7JtvdRD1vqRQwPTp09NspLcPw9iU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":93007},"main":"./dist/index.js","type":"module","_from":"file:anastasia-labs-smart-handles-offchain-0.3.0.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint","test":"vitest run","build":"tsup src/index.ts --minify --format esm,cjs --dts --clean","repack":"pnpm run build  && pnpm pack","ts-node":"ts-node"},"_npmUser":{"name":"anastasia-labs","email":"info@anastasialabs.com"},"_resolved":"/tmp/ae9edfdb0532ffbaa2ded2f1527da5d1/anastasia-labs-smart-handles-offchain-0.3.0.tgz","_integrity":"sha512-niq7lF+IBJ3fbs0OFTyWrHugxuXasYARaLCnCIr6ZvAxLIIqDrvYaDvSIVwt5kXKh7OF1msrsR+BBJDfz8KMcw==","_npmVersion":"10.8.2","description":"https://docs.github.com/en/packages/quickstart","directories":{},"_nodeVersion":"20.17.0","dependencies":{"lucid-cardano":"^0.10.9","@lucid-evolution/lucid":"^0.3.27"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.4+sha1.b198ac6d38244fd829253720f9daafd6a606834d","devDependencies":{"tsup":"^8.0.2","eslint":"^8.57.0","vitest":"^2.0.5","ts-node":"^10.9.2","typescript":"^5.4.2","@types/node":"^20.11.26","@sinclair/typebox":"^0.32.15","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/smart-handles-offchain_0.3.0_1726763656261_0.5805070434848416","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"@anastasia-labs/smart-handles-offchain","version":"0.3.1","keywords":[],"author":"","license":"ISC","_id":"@anastasia-labs/smart-handles-offchain@0.3.1","maintainers":[{"name":"anastasia-labs","email":"info@anastasialabs.com"}],"dist":{"shasum":"5ea25c623913572655bdaf759473f0438985e909","tarball":"https://registry.npmjs.org/@anastasia-labs/smart-handles-offchain/-/smart-handles-offchain-0.3.1.tgz","fileCount":7,"integrity":"sha512-g9MYXIVGi5cB/tuPZXZNJocfegXXNFcI8pWm6fQ0HhyxY8kAY/z1gkffTq6yghFTAz6k+9YoVc4H5AFw0lbBeA==","signatures":[{"sig":"MEQCIAhnigXcDRYNBmHQw3UlH90N5pbaUmNMawQ49EMeD0tjAiA3NBmmS4MKiMjLzyZG3kQj+EV704KKM43ZRpynUD6v4A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92932},"main":"./dist/index.js","type":"module","_from":"file:anastasia-labs-smart-handles-offchain-0.3.1.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint","test":"vitest run","build":"tsup src/index.ts --minify --format esm,cjs --dts --clean","repack":"pnpm run build  && pnpm pack","ts-node":"ts-node"},"_npmUser":{"name":"anastasia-labs","email":"info@anastasialabs.com"},"_resolved":"/tmp/839e26ba5f426d19765cdb0f3b34d51d/anastasia-labs-smart-handles-offchain-0.3.1.tgz","_integrity":"sha512-g9MYXIVGi5cB/tuPZXZNJocfegXXNFcI8pWm6fQ0HhyxY8kAY/z1gkffTq6yghFTAz6k+9YoVc4H5AFw0lbBeA==","_npmVersion":"10.8.2","description":"https://docs.github.com/en/packages/quickstart","directories":{},"_nodeVersion":"20.17.0","dependencies":{"lucid-cardano":"^0.10.9","@lucid-evolution/lucid":"^0.3.27"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.4+sha1.b198ac6d38244fd829253720f9daafd6a606834d","devDependencies":{"tsup":"^8.0.2","eslint":"^8.57.0","vitest":"^2.0.5","ts-node":"^10.9.2","typescript":"^5.4.2","@types/node":"^20.11.26","@sinclair/typebox":"^0.32.15","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/smart-handles-offchain_0.3.1_1727211412023_0.11970281100286306","host":"s3://npm-registry-packages"}},"0.3.2":{"name":"@anastasia-labs/smart-handles-offchain","version":"0.3.2","keywords":[],"author":"","license":"ISC","_id":"@anastasia-labs/smart-handles-offchain@0.3.2","maintainers":[{"name":"anastasia-labs","email":"info@anastasialabs.com"}],"dist":{"shasum":"6717fc9917dfee010dd46e342ad44662f75b9d86","tarball":"https://registry.npmjs.org/@anastasia-labs/smart-handles-offchain/-/smart-handles-offchain-0.3.2.tgz","fileCount":7,"integrity":"sha512-reWKzl7ENPjev5e/HcHJHk8kphOuxTIn3opsLm6gK9j2vbF7sNY48PdhrRMov13S9KuFBHAB3oXh6uRxSLgOnw==","signatures":[{"sig":"MEUCIEdeG6iBvTl4DxdnwioHmSMldXPCpmDBw65uQX2kJZIuAiEA2KvSpQ+6+QAAe3sqWUAOfe8U2K8n6a2CwOa7geT8z4M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92862},"main":"./dist/index.js","type":"module","_from":"file:anastasia-labs-smart-handles-offchain-0.3.2.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint","test":"vitest run","build":"tsup src/index.ts --minify --format esm,cjs --dts --clean","repack":"pnpm run build  && pnpm pack","ts-node":"ts-node"},"_npmUser":{"name":"anastasia-labs","email":"info@anastasialabs.com"},"_resolved":"/tmp/f2620d06f01310388ef0c67a83a192e6/anastasia-labs-smart-handles-offchain-0.3.2.tgz","_integrity":"sha512-reWKzl7ENPjev5e/HcHJHk8kphOuxTIn3opsLm6gK9j2vbF7sNY48PdhrRMov13S9KuFBHAB3oXh6uRxSLgOnw==","_npmVersion":"10.8.2","description":"https://docs.github.com/en/packages/quickstart","directories":{},"_nodeVersion":"20.18.1","dependencies":{"lucid-cardano":"^0.10.9","@lucid-evolution/lucid":"^0.4.7"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.4+sha1.b198ac6d38244fd829253720f9daafd6a606834d","devDependencies":{"tsup":"^8.0.2","eslint":"^8.57.0","vitest":"^2.0.5","ts-node":"^10.9.2","typescript":"^5.4.2","@types/node":"^20.11.26","@sinclair/typebox":"^0.32.15","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/smart-handles-offchain_0.3.2_1732648020568_0.19014329248370276","host":"s3://npm-registry-packages"}},"0.3.3":{"name":"@anastasia-labs/smart-handles-offchain","version":"0.3.3","keywords":[],"author":"","license":"ISC","_id":"@anastasia-labs/smart-handles-offchain@0.3.3","maintainers":[{"name":"anastasia-labs","email":"info@anastasialabs.com"}],"dist":{"shasum":"029dff73309e038e640bec8a00c943f9adba928b","tarball":"https://registry.npmjs.org/@anastasia-labs/smart-handles-offchain/-/smart-handles-offchain-0.3.3.tgz","fileCount":7,"integrity":"sha512-wLrzeyM7ZP+/barHAxJ43HEv8IUQ5pA5t80l7/io2W5ujP7gbykOr41aMELh/NN8oiCt0wCPEp822rujpNzlYA==","signatures":[{"sig":"MEQCICPWV22g9djWllyWNa9j0vK1ougc9Pww0LaD39lTriYeAiBXsv2HauAklQey7yhoGzsZl+yV1VwPsHOj+6CcZytE8w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92970},"main":"./dist/index.js","type":"module","_from":"file:anastasia-labs-smart-handles-offchain-0.3.3.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint","test":"vitest run","build":"tsup src/index.ts --minify --format esm,cjs --dts --clean","repack":"pnpm run build  && pnpm pack","ts-node":"ts-node"},"_npmUser":{"name":"anastasia-labs","email":"info@anastasialabs.com"},"_resolved":"/tmp/8e84a7b111e0bf4d630ace84988693db/anastasia-labs-smart-handles-offchain-0.3.3.tgz","_integrity":"sha512-wLrzeyM7ZP+/barHAxJ43HEv8IUQ5pA5t80l7/io2W5ujP7gbykOr41aMELh/NN8oiCt0wCPEp822rujpNzlYA==","_npmVersion":"10.8.2","description":"https://docs.github.com/en/packages/quickstart","directories":{},"_nodeVersion":"20.18.1","dependencies":{"lucid-cardano":"^0.10.9","@lucid-evolution/lucid":"^0.4.7"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.4+sha1.b198ac6d38244fd829253720f9daafd6a606834d","devDependencies":{"tsup":"^8.0.2","eslint":"^8.57.0","vitest":"^2.0.5","ts-node":"^10.9.2","typescript":"^5.4.2","@types/node":"^20.11.26","@sinclair/typebox":"^0.32.15","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/smart-handles-offchain_0.3.3_1732664748969_0.03536583782136771","host":"s3://npm-registry-packages"}},"0.3.4":{"name":"@anastasia-labs/smart-handles-offchain","version":"0.3.4","keywords":[],"author":"","license":"ISC","_id":"@anastasia-labs/smart-handles-offchain@0.3.4","maintainers":[{"name":"anastasia-labs","email":"info@anastasialabs.com"}],"dist":{"shasum":"f12b3da8398464eeabb7d2bac8fca22fd691ef10","tarball":"https://registry.npmjs.org/@anastasia-labs/smart-handles-offchain/-/smart-handles-offchain-0.3.4.tgz","fileCount":7,"integrity":"sha512-Ym2UPn7K+sGlMs5zd4B6CDd90d2Uc+7gVCZKGWHeljYrrSUQpg5Ahkt/yPz1DK0D0lTlETEBqxeYp9njy7lQNQ==","signatures":[{"sig":"MEUCIFDWaabRfInWehTjnQpp7+qQepUQyDPJEROtoYs+MaCWAiEA5IqsIeass5ssHVeyu6edVUesWcq5j+2kGTp1BmT9+GU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92971},"main":"./dist/index.js","type":"module","_from":"file:anastasia-labs-smart-handles-offchain-0.3.4.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint","test":"vitest run","build":"tsup src/index.ts --minify --format esm,cjs --dts --clean","repack":"pnpm run build  && pnpm pack","ts-node":"ts-node"},"_npmUser":{"name":"anastasia-labs","email":"info@anastasialabs.com"},"_resolved":"/tmp/927355e3206bad640a0b89c922596619/anastasia-labs-smart-handles-offchain-0.3.4.tgz","_integrity":"sha512-Ym2UPn7K+sGlMs5zd4B6CDd90d2Uc+7gVCZKGWHeljYrrSUQpg5Ahkt/yPz1DK0D0lTlETEBqxeYp9njy7lQNQ==","_npmVersion":"10.8.2","description":"https://docs.github.com/en/packages/quickstart","directories":{},"_nodeVersion":"20.18.1","dependencies":{"lucid-cardano":"^0.10.9","@lucid-evolution/lucid":"^0.4.14"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.4+sha1.b198ac6d38244fd829253720f9daafd6a606834d","devDependencies":{"tsup":"^8.0.2","eslint":"^8.57.0","vitest":"^2.0.5","ts-node":"^10.9.2","typescript":"^5.4.2","@types/node":"^20.11.26","@sinclair/typebox":"^0.32.15","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/smart-handles-offchain_0.3.4_1733833167330_0.34550058210061896","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@anastasia-labs/smart-handles-offchain","version":"0.3.5","description":"https://docs.github.com/en/packages/quickstart","main":"./dist/index.js","types":"./dist/index.d.ts","type":"module","keywords":[],"author":"","license":"ISC","devDependencies":{"@sinclair/typebox":"^0.32.15","@types/node":"^20.11.26","@typescript-eslint/eslint-plugin":"^6.21.0","@typescript-eslint/parser":"^6.21.0","eslint":"^8.57.0","eslint-config-prettier":"^9.1.0","ts-node":"^10.9.2","tsup":"^8.0.2","typescript":"^5.4.2","vitest":"^2.0.5"},"dependencies":{"@lucid-evolution/lucid":"^0.4.16","lucid-cardano":"^0.10.9"},"packageManager":"pnpm@9.0.4+sha1.b198ac6d38244fd829253720f9daafd6a606834d","scripts":{"build":"tsup src/index.ts --minify --format esm,cjs --dts --clean","lint":"eslint","repack":"pnpm run build  && pnpm pack","ts-node":"ts-node","test":"vitest run"},"_id":"@anastasia-labs/smart-handles-offchain@0.3.5","_integrity":"sha512-4K6A61TNl2i016ZAjk+Bu70ukicl9gQQluvPaGYS32FRPCU670hJm24JuOuK1Hsg1d2EzSKaW+/XS6yOZFDNbg==","_resolved":"/tmp/2aba0458db22b54cc3808b4e83b4173a/anastasia-labs-smart-handles-offchain-0.3.5.tgz","_from":"file:anastasia-labs-smart-handles-offchain-0.3.5.tgz","_nodeVersion":"20.18.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-4K6A61TNl2i016ZAjk+Bu70ukicl9gQQluvPaGYS32FRPCU670hJm24JuOuK1Hsg1d2EzSKaW+/XS6yOZFDNbg==","shasum":"0eec1f1a25d97f8568e3393941d630982577e49a","tarball":"https://registry.npmjs.org/@anastasia-labs/smart-handles-offchain/-/smart-handles-offchain-0.3.5.tgz","fileCount":7,"unpackedSize":93037,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAVcPRH0ZgXnyAh93WxuvbhScnJqnrJZrBaAIx5SLxLIAiBOLp0+Ua84n34Waibd3tvgzKlOhG7tbIok2VgDOQVYfw=="}]},"_npmUser":{"name":"anastasia-labs","email":"info@anastasialabs.com"},"directories":{},"maintainers":[{"name":"anastasia-labs","email":"info@anastasialabs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/smart-handles-offchain_0.3.5_1735812089926_0.0006527955709523248"},"_hasShrinkwrap":false}},"time":{"created":"2024-05-06T16:53:00.250Z","modified":"2025-01-02T10:01:30.294Z","0.1.0":"2024-05-06T16:53:00.553Z","0.2.0":"2024-06-07T12:52:30.547Z","0.3.0":"2024-09-19T16:34:16.501Z","0.3.1":"2024-09-24T20:56:52.212Z","0.3.2":"2024-11-26T19:07:00.863Z","0.3.3":"2024-11-26T23:45:49.180Z","0.3.4":"2024-12-10T12:19:27.507Z","0.3.5":"2025-01-02T10:01:30.119Z"},"license":"ISC","keywords":[],"description":"https://docs.github.com/en/packages/quickstart","maintainers":[{"name":"anastasia-labs","email":"info@anastasialabs.com"}],"readme":"# Table of Contents\n\n<!-- vim-markdown-toc GFM -->\n\n* [Off-Chain SDK for Smart Handles](#off-chain-sdk-for-smart-handles)\n    * [Endpoints](#endpoints)\n        * [Fetch Requests](#fetch-requests)\n        * [Request](#request)\n        * [Simple Reclaim](#simple-reclaim)\n        * [Routing & Advanced Reclaim](#routing--advanced-reclaim)\n            * [Simple & Advanced Output Datum Makers](#simple--advanced-output-datum-makers)\n            * [Required Mint Config](#required-mint-config)\n            * [Additional Action](#additional-action)\n            * [Common Fields](#common-fields)\n            * [Advanced Reclaim Configs](#advanced-reclaim-configs)\n            * [Route Configs](#route-configs)\n    * [Example](#example)\n\n<!-- vim-markdown-toc -->\n\n# Off-Chain SDK for Smart Handles\n\nOff-chain SDK for [Smart Handles](https://github.com/Anastasia-Labs/smart-handles),\noffering configuration datatypes with corresponding transaction builders for\nall possible endpoints.\n\n## Endpoints\n\nAll endpoints provide 2 functions for 2 targets: single and batch. The script\nCBOR single targets require are fully applied spending scripts, while batch\nvariants expect the CBOR to be that of a fully applied staking script.\n\nThe staking script's CBOR is internally applied to\nthe [included generic batch spending script](./src/uplc/smartHandleRouter.json) in\norder to yield the batch spending script of the instance.\n\n### Fetch Requests\n\nGiven a `LucidEvolution` object and target script, the two offered functions\nquery UTxOs sitting at their corresponding spending addresses.\n\n### Request\n\nFunctions for submitting simple and/or advanced requests to the instance:\n\n`RouteRequest` is a sum type with 2 constructors, one for the simple requests,\nand one for the advanced ones:\n```ts\nexport type TSRequiredMint = {\n  policyId: PolicyId;\n  tokenName: string;\n};\n\nexport type SimpleRouteRequest = {\n  valueToLock: Assets;\n};\n\nexport type AdvancedRouteRequest = SimpleRouteRequest & {\n  owner?: Address;\n  routerFee: bigint;\n  reclaimRouterFee: bigint;\n  routeRequiredMint: TSRequiredMint | null;\n  reclaimRequiredMint: TSRequiredMint | null;\n  extraInfoDataBuilder: () => DatumJson;\n};\n\nexport type RouteRequest =\n  | { kind: \"simple\"; data: SimpleRouteRequest }\n  | { kind: \"advanced\"; data: AdvancedRouteRequest };\n```\n\nSingle and batch config datatypes are the following:\n```ts\nexport type SingleRequestConfig = {\n  scriptCBOR: CBORHex;\n  routeRequest: RouteRequest;\n  additionalRequiredLovelaces: bigint;\n};\n\nexport type BatchRequestConfig = {\n  stakingScriptCBOR: CBORHex;\n  routeRequests: RouteRequest[];\n  additionalRequiredLovelaces: bigint;\n};\n```\n\n`additionalRequiredLovelaces` allow you to provide more safety by preventing\nrequest submissions that can lead to the funds getting permanently locked.\n\n### Simple Reclaim\n\nReclaiming a simple request only requires the signature of its owner.\n\nAdvanced reclaim is very similar to an advanced route, and therefore is expanded\nupon in the next section.\n\n### Routing & Advanced Reclaim\n\nBefore going over the configs themselves, let's look at some other common\ninterfaces:\n\n#### Simple & Advanced Output Datum Makers\n\nBoth of these endpoints need to provide a function that, given input assets and\ndatum, returns the datum that should be attached to the produced UTxO at route\naddress:\n```ts\nexport type SimpleOutputDatumMaker = (\n  inputAssets: Assets,\n  inputDatum: SimpleDatumFields\n) => Promise<Result<OutputDatum>>;\n\nexport type AdvancedOutputDatumMaker = (\n  inputAssets: Assets,\n  inputDatum: AdvancedDatumFields\n) => Promise<Result<OutputDatum>>;\n```\nAs a route transaction can be consuming a simple datum, route config may be\nprovided with both of these datum makers.\n\nNote the output type, `Promise<Result<OutputDatum>>`, allows your function to\nbe both asynchronous, and fail-able with an error message.\n\n#### Required Mint Config\n\nAdvanced requests can require mints/burns of a single asset for both route and\nreclaim. The datatype to model this is:\n```ts\nexport type RequiredMintConfig = {\n  mintQuantityFinder: (\n    inputAssets: Assets,\n    inputDatum: AdvancedDatumFields\n  ) => Promise<Result<bigint>>;\n  mintRedeemer: string;\n  mintScript: Script;\n};\n```\nSince the quantity of mint/burn can depend on the spent UTxO, a function similar\nto the output datum finder has to be provided. The other two should be fairly\nclear.\n\n#### Additional Action\n\nThe underlying logic of an instance may have some extra requirements that\nsmart handles wrapper does not provide. This function offers instance's\noff-chain to perform additional actions on a partially built transaction before\npassing it to be signed (e.g. including witness of an additional staking\nscript):\n```ts\nexport type AdditionalAction =\n  (tx: TxBuilder, utxo: UTxO) => Promise<Result<TxBuilder>>;\n```\n\n#### Common Fields\n\n```ts\nexport type CommonSingle = {\n  scriptCBOR: CBORHex;\n  requestOutRef: OutRef;\n};\n\nexport type CommonBatch = {\n  stakingScriptCBOR: CBORHex;\n  requestOutRefs: OutRef[];\n};\n```\n\n\nWith these datatypes out of the way, we can now look at the advanced reclaim\nand route configs:\n\n#### Advanced Reclaim Configs\n\n```ts\nexport type AdvancedReclaimConfig = {\n  outputDatumMaker: AdvancedOutputDatumMaker;\n  requiredMintConfig?: RequiredMintConfig;\n  additionalAction: AdditionalAction;\n};\n\nexport type SingleReclaimConfig = CommonSingle & {\n  advancedReclaimConfig?: AdvancedReclaimConfig;\n};\n\nexport type BatchReclaimConfig = CommonBatch & {\n  advancedReclaimConfig?: AdvancedReclaimConfig;\n};\n```\n\n#### Route Configs\n\nFirst we have route configs for simple and advanced requests:\n```ts\nexport type SimpleRouteConfig = {\n  additionalAction: AdditionalAction;\n  outputDatumMaker: SimpleOutputDatumMaker;\n};\n\nexport type AdvancedRouteConfig = {\n  outputDatumMaker: AdvancedOutputDatumMaker;\n  requiredMintConfig?: RequiredMintConfig;\n  additionalAction: AdditionalAction;\n};\n```\n\nAnd use them to define single and batch route configs:\n```ts\nexport type SingleRouteConfig = CommonSingle & {\n  routeAddress: Address;\n  simpleRouteConfig?: SimpleRouteConfig;\n  advancedRouteConfig?: AdvancedRouteConfig;\n};\n\nexport type BatchRouteConfig = CommonBatch & {\n  routeAddress: Address;\n  simpleRouteConfig?: SimpleRouteConfig;\n  advancedRouteConfig?: AdvancedRouteConfig;\n};\n```\n\n## Example\n\nThe `example` folder contains a project that not only uses this package, but\nalso [`smart-handles-agent`](https://github.com/Anastasia-Labs/smart-handles-agent)\nto implement a full off-chain solution for\nits [on-chain counterpart](https://github.com/Anastasia-Labs/smart-handles/blob/develop/src/Specialized/Minswap.hs).\n\nThe bulk of the implementation resides at [`minswap-v1.ts`](./example/src/minswap-v1.ts).\n\nAdditionally, there are also two preprod scenarios implemented\nat `./example/src/scenarios/` which should give you a more practical usage of\nthis SDK.\n\nIts sample transactions on preprod are linked in the\nexample's [`README.md`](./example/README.md).\n","readmeFilename":"README.md"}