{"_id":"1inch-fusion-sdk","name":"1inch-fusion-sdk","dist-tags":{"latest":"2.2.3"},"versions":{"2.2.3":{"name":"1inch-fusion-sdk","version":"2.2.3","description":"a forked version of 1inch Fusion SDK","author":{"name":"@1inch"},"module":"./dist/esm/index.js","main":"./dist/cjs/index.js","types":"./dist/types/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/1inch/fusion-sdk.git"},"dependencies":{"@1inch/byte-utils":"3","@1inch/limit-order-sdk":"4.12.1","ethers":"^6.13.5","tslib":"^2.8.1","ws":"^8.18.0"},"devDependencies":{"@1inch/eslint-config":"3.0.6","@1inch/tsconfig":"1.0.8","@swc/core":"1.10.9","@swc/jest":"0.2.37","@types/jest":"29.5.14","@types/prompts":"^2.4.9","@types/ws":"^8.5.10","@typescript-eslint/eslint-plugin":"^8.21.0","@typescript-eslint/parser":"^8.21.0","axios":"^1.7.2","eslint":"~9.18.0","eslint-config-prettier":"^10.0.1","eslint-config-standard":"^17.1.0","eslint-import-resolver-typescript":"^3.6.3","eslint-plugin-import":"^2.30.0","eslint-plugin-n":"^17.10.2","eslint-plugin-prettier":"^5.2.1","eslint-plugin-promise":"^7.2.1","eslint-plugin-unused-imports":"^4.1.4","generate-changelog":"^1.8.0","jest":"^29.7.0","prettier":"^3.3.3","testcontainers":"10.17.1","ts-loader":"^9.5.1","ts-mockito":"^2.6.1","ts-node":"^10.9.2","tslib":"2.6.3","typescript":"5.7.3"},"peerDependencies":{"assert":"^2.0.0","axios":">=1 <2"},"peerDependenciesMeta":{"axios":{"optional":true},"assert":{"optional":true}},"volta":{"node":"22.13.1"},"scripts":{"build":"npm run build:esm && npm run build:cjs && npm run build:types","build:esm":"tsc --project tsconfig.esm.json","build:cjs":"tsc --project tsconfig.cjs.json","build:types":"tsc --project tsconfig.types.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","lint:ci":"eslint \"{src,apps,libs,test}/**/*.ts\"","lint":"eslint  \"{src,apps,libs,test}/**/*.ts\"","lint:types":"tsc --noEmit","test":"TZ=UTC jest","test:integration":"TZ=UTC forge build && jest -c jest.integration.config.js","test:watch":"jest --watch","changelog:generate":"changelog generate -a"},"bugs":{"url":"https://github.com/1inch/fusion-sdk/issues"},"homepage":"https://github.com/1inch/fusion-sdk#readme","_id":"1inch-fusion-sdk@2.2.3","_integrity":"sha512-vR13u7IF6VjSQnyRhs3Yqq6HVVfKCIsPHzAsgjbZHcQ1rU/vS7U0IO0v6qYmS6XcglvcVK1jFCmnfqaWfI3r3g==","_resolved":"/tmp/3ba975311420bb1fc66d632c9762a1c3/1inch-fusion-sdk-2.2.3.tgz","_from":"file:1inch-fusion-sdk-2.2.3.tgz","_nodeVersion":"20.13.1","_npmVersion":"10.5.2","dist":{"integrity":"sha512-vR13u7IF6VjSQnyRhs3Yqq6HVVfKCIsPHzAsgjbZHcQ1rU/vS7U0IO0v6qYmS6XcglvcVK1jFCmnfqaWfI3r3g==","shasum":"3641c0b64144bf7ae937102116bb0e4f33d0393a","tarball":"https://registry.npmjs.org/1inch-fusion-sdk/-/1inch-fusion-sdk-2.2.3.tgz","fileCount":373,"unpackedSize":1050709,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDByd1qmx6kkM/FYD43pjt3TgQowrKQXCax3YZGNHxwWwIgMhbFeU30Smbr8gCPYCp6lTLsQO+Py0maiH9y10WhMCE="}]},"_npmUser":{"name":"weijiewu8","email":"wuwjpku@gmail.com"},"directories":{},"maintainers":[{"name":"weijiewu8","email":"wuwjpku@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/1inch-fusion-sdk_2.2.3_1744933684541_0.02201448273165596"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-17T23:48:04.476Z","2.2.3":"2025-04-17T23:48:04.769Z","modified":"2025-04-17T23:48:04.988Z"},"maintainers":[{"name":"weijiewu8","email":"wuwjpku@gmail.com"}],"description":"a forked version of 1inch Fusion SDK","homepage":"https://github.com/1inch/fusion-sdk#readme","repository":{"type":"git","url":"git+ssh://git@github.com/1inch/fusion-sdk.git"},"author":{"name":"@1inch"},"bugs":{"url":"https://github.com/1inch/fusion-sdk/issues"},"readme":"# SDK for 1inch Fusion Mode\n\n## Installation\n\n### Npm\n\n```\nnpm install @1inch/fusion-sdk@2\n```\n\n### Yarn\n\n```\nyarn add @1inch/fusion-sdk@2\n```\n\n## Modules docs\n\n-   [auction-details](src/fusion-order/auction-details/README.md)\n-   [fusion-order](src/fusion-order/README.md)\n-   [sdk](src/sdk/README.md)\n-   [ws-api](src/ws-api/README.md)\n\n## How to swap with Fusion Mode\n\n```typescript\nimport {FusionSDK, NetworkEnum, OrderStatus, PrivateKeyProviderConnector, Web3Like,} from \"@1inch/fusion-sdk\";\nimport {computeAddress, formatUnits, JsonRpcProvider} from \"ethers\";\n\nconst PRIVATE_KEY = 'YOUR_PRIVATE_KEY'\nconst NODE_URL = 'YOUR_WEB3_NODE_URL'\nconst DEV_PORTAL_API_TOKEN = 'YOUR_DEV_PORTAL_API_TOKEN'\n\nconst ethersRpcProvider = new JsonRpcProvider(NODE_URL)\n\nconst ethersProviderConnector: Web3Like = {\n    eth: {\n        call(transactionConfig): Promise<string> {\n            return ethersRpcProvider.call(transactionConfig)\n        }\n    },\n    extend(): void {}\n}\n\nconst connector = new PrivateKeyProviderConnector(\n    PRIVATE_KEY,\n    ethersProviderConnector\n)\n\nconst sdk = new FusionSDK({\n    url: 'https://api.1inch.dev/fusion',\n    network: NetworkEnum.BINANCE,\n    blockchainProvider: connector,\n    authKey: DEV_PORTAL_API_TOKEN\n})\n\nasync function main() {\n    const params = {\n        fromTokenAddress: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d', // USDC\n        toTokenAddress: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',  // BNB\n        amount: '10000000000000000000', // 10 USDC\n        walletAddress: computeAddress(PRIVATE_KEY),\n        source: 'sdk-test'\n    }\n\n    const quote = await sdk.getQuote(params)\n\n    const dstTokenDecimals = 18\n    console.log('Auction start amount', formatUnits(quote.presets[quote.recommendedPreset].auctionStartAmount, dstTokenDecimals))\n    console.log('Auction end amount', formatUnits(quote.presets[quote.recommendedPreset].auctionEndAmount), dstTokenDecimals)\n\n    const preparedOrder = await sdk.createOrder(params)\n\n    const info = await sdk.submitOrder(preparedOrder.order, preparedOrder.quoteId)\n\n    console.log('OrderHash', info.orderHash)\n\n    const start = Date.now()\n\n    while (true) {\n        try {\n            const data = await sdk.getOrderStatus(info.orderHash)\n\n            if (data.status === OrderStatus.Filled) {\n                console.log('fills', data.fills)\n                break\n            }\n\n            if (data.status === OrderStatus.Expired) {\n                console.log('Order Expired')\n                break\n            }\n            \n            if (data.status === OrderStatus.Cancelled) {\n                console.log('Order Cancelled')\n                break\n            }\n        } catch (e) {\n            console.log(e)\n        }\n\n    }\n\n    console.log('Order executed for', (Date.now() - start) / 1000, 'sec')\n}\n\nmain()\n```\n\n## Resolvers\n\n`settleOrders` function usage and Resolver contract examples you can find [here](https://github.com/1inch/fusion-resolver-example)\n","readmeFilename":"README.md","_rev":"1-6d2c4a6b2579476b3b6748d421aa67a2"}