@1inch/fusion-sdk 2.3.10-rc.2 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -107,6 +107,107 @@ async function main() {
107
107
  main()
108
108
  ```
109
109
 
110
+ ## How to swap with Fusion mode from Native asset
111
+ ```typescript
112
+ import {FusionSDK, NetworkEnum, OrderStatus, PrivateKeyProviderConnector, Web3Like, Address, NativeOrdersFactory} from "@1inch/fusion-sdk";
113
+ import {computeAddress, formatUnits, JsonRpcProvider, Wallet} from "ethers";
114
+
115
+ const PRIVATE_KEY = 'YOUR_PRIVATE_KEY'
116
+ const NODE_URL = 'YOUR_WEB3_NODE_URL'
117
+ const DEV_PORTAL_API_TOKEN = 'YOUR_DEV_PORTAL_API_TOKEN'
118
+
119
+ const ethersRpcProvider = new JsonRpcProvider(NODE_URL)
120
+
121
+ const ethersProviderConnector: Web3Like = {
122
+ eth: {
123
+ call(transactionConfig): Promise<string> {
124
+ return ethersRpcProvider.call(transactionConfig)
125
+ }
126
+ },
127
+ extend(): void {}
128
+ }
129
+
130
+ const connector = new PrivateKeyProviderConnector(
131
+ PRIVATE_KEY,
132
+ ethersProviderConnector
133
+ )
134
+
135
+ const sdk = new FusionSDK({
136
+ url: 'https://api.1inch.dev/fusion',
137
+ network: NetworkEnum.BINANCE,
138
+ blockchainProvider: connector,
139
+ authKey: DEV_PORTAL_API_TOKEN
140
+ })
141
+
142
+ const wallet = new Wallet(PRIVATE_KEY, ethersRpcProvider)
143
+
144
+ async function main() {
145
+ const params = {
146
+ fromTokenAddress: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', // ETH
147
+ toTokenAddress: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC
148
+ amount: '2000000000000000', // 0.002 ETH
149
+ walletAddress: computeAddress(PRIVATE_KEY),
150
+ source: 'sdk-test'
151
+ }
152
+
153
+ const quote = await sdk.getQuote(params)
154
+
155
+ const dstTokenDecimals = 6
156
+ console.log('Auction start amount', formatUnits(quote.presets[quote.recommendedPreset].auctionStartAmount, dstTokenDecimals))
157
+ console.log('Auction end amount', formatUnits(quote.presets[quote.recommendedPreset].auctionEndAmount), dstTokenDecimals)
158
+
159
+ const preparedOrder = await sdk.createOrder(params)
160
+
161
+ const info = await sdk.submitNativeOrder(preparedOrder.order, new Address(params.walletAddress), preparedOrder.quoteId)
162
+
163
+ console.log('OrderHash', info.orderHash)
164
+
165
+ const factory = NativeOrdersFactory.default(NetworkEnum.BINANCE)
166
+ const call = factory.create(new Address(wallet.address), preparedOrder.order)
167
+
168
+ const txRes = await wallet.sendTransaction({
169
+ to: call.to.toString(),
170
+ data: call.data,
171
+ value: call.value
172
+ })
173
+
174
+ console.log('TxHash', txRes.hash)
175
+
176
+ await wallet.provider.waitForTransaction(txRes.hash)
177
+
178
+
179
+ const start = Date.now()
180
+
181
+ while (true) {
182
+ try {
183
+ const data = await sdk.getOrderStatus(info.orderHash)
184
+
185
+ if (data.status === OrderStatus.Filled) {
186
+ console.log('fills', data.fills)
187
+ break
188
+ }
189
+
190
+ if (data.status === OrderStatus.Expired) {
191
+ console.log('Order Expired')
192
+ break
193
+ }
194
+
195
+ if (data.status === OrderStatus.Cancelled) {
196
+ console.log('Order Cancelled')
197
+ break
198
+ }
199
+ } catch (e) {
200
+ console.log(e)
201
+ }
202
+
203
+ }
204
+
205
+ console.log('Order executed for', (Date.now() - start) / 1000, 'sec')
206
+ }
207
+
208
+ main()
209
+ ```
210
+
110
211
  ## Resolvers
111
212
 
112
213
  `settleOrders` function usage and Resolver contract examples you can find [here](https://github.com/1inch/fusion-resolver-example)
@@ -1 +1 @@
1
- {"name":"@1inch/fusion-sdk","version":"2.3.10-rc.2","type":"module"}
1
+ {"name":"@1inch/fusion-sdk","version":"2.4.0","type":"module"}