@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 +101 -0
- package/dist/esm/package.json +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +3 -3
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)
|
package/dist/esm/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@1inch/fusion-sdk","version":"2.
|
|
1
|
+
{"name":"@1inch/fusion-sdk","version":"2.4.0","type":"module"}
|