@katanaperps/katana-perps-sdk 1.0.0-alpha.13 → 1.0.0-alpha.15
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/dist/abis/ExchangeLocalDepositAdapter_v1.json +318 -0
- package/dist/bridge/deposit.d.ts +14 -3
- package/dist/bridge/deposit.d.ts.map +1 -1
- package/dist/bridge/deposit.js +70 -10
- package/dist/bridge/utils.d.ts +1 -0
- package/dist/bridge/utils.d.ts.map +1 -1
- package/dist/bridge/utils.js +17 -6
- package/dist/typechain-types/ExchangeLocalDepositAdapter_v1.d.ts +210 -0
- package/dist/typechain-types/ExchangeLocalDepositAdapter_v1.d.ts.map +1 -0
- package/dist/typechain-types/ExchangeLocalDepositAdapter_v1.js +2 -0
- package/dist/typechain-types/factories/ExchangeLocalDepositAdapter_v1__factory.d.ts +255 -0
- package/dist/typechain-types/factories/ExchangeLocalDepositAdapter_v1__factory.d.ts.map +1 -0
- package/dist/typechain-types/factories/ExchangeLocalDepositAdapter_v1__factory.js +335 -0
- package/dist/typechain-types/factories/index.d.ts +1 -0
- package/dist/typechain-types/factories/index.d.ts.map +1 -1
- package/dist/typechain-types/factories/index.js +3 -1
- package/dist/typechain-types/index.d.ts +2 -0
- package/dist/typechain-types/index.d.ts.map +1 -1
- package/dist/typechain-types/index.js +3 -1
- package/dist/types/rest/endpoints/GetExchange.d.ts +2 -0
- package/dist/types/rest/endpoints/GetExchange.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"inputs": [
|
|
4
|
+
{
|
|
5
|
+
"internalType": "address",
|
|
6
|
+
"name": "exchange_",
|
|
7
|
+
"type": "address"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"internalType": "address",
|
|
11
|
+
"name": "exchangeManagedAccountDepositAdapter_",
|
|
12
|
+
"type": "address"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"stateMutability": "nonpayable",
|
|
16
|
+
"type": "constructor"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"inputs": [
|
|
20
|
+
{
|
|
21
|
+
"internalType": "address",
|
|
22
|
+
"name": "owner",
|
|
23
|
+
"type": "address"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"name": "OwnableInvalidOwner",
|
|
27
|
+
"type": "error"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"inputs": [
|
|
31
|
+
{
|
|
32
|
+
"internalType": "address",
|
|
33
|
+
"name": "account",
|
|
34
|
+
"type": "address"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"name": "OwnableUnauthorizedAccount",
|
|
38
|
+
"type": "error"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"anonymous": false,
|
|
42
|
+
"inputs": [
|
|
43
|
+
{
|
|
44
|
+
"indexed": false,
|
|
45
|
+
"internalType": "address",
|
|
46
|
+
"name": "depositorWallet",
|
|
47
|
+
"type": "address"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"indexed": false,
|
|
51
|
+
"internalType": "uint256",
|
|
52
|
+
"name": "quantity",
|
|
53
|
+
"type": "uint256"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"indexed": false,
|
|
57
|
+
"internalType": "bytes",
|
|
58
|
+
"name": "errorData",
|
|
59
|
+
"type": "bytes"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"name": "ComposeFailed",
|
|
63
|
+
"type": "event"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"anonymous": false,
|
|
67
|
+
"inputs": [
|
|
68
|
+
{
|
|
69
|
+
"indexed": false,
|
|
70
|
+
"internalType": "uint32",
|
|
71
|
+
"name": "sourceEndpointId",
|
|
72
|
+
"type": "uint32"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"indexed": false,
|
|
76
|
+
"internalType": "address",
|
|
77
|
+
"name": "destinationWallet",
|
|
78
|
+
"type": "address"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"indexed": false,
|
|
82
|
+
"internalType": "uint256",
|
|
83
|
+
"name": "quantity",
|
|
84
|
+
"type": "uint256"
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"name": "ComposeSucceeded",
|
|
88
|
+
"type": "event"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"anonymous": false,
|
|
92
|
+
"inputs": [
|
|
93
|
+
{
|
|
94
|
+
"indexed": true,
|
|
95
|
+
"internalType": "address",
|
|
96
|
+
"name": "previousOwner",
|
|
97
|
+
"type": "address"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"indexed": true,
|
|
101
|
+
"internalType": "address",
|
|
102
|
+
"name": "newOwner",
|
|
103
|
+
"type": "address"
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
"name": "OwnershipTransferStarted",
|
|
107
|
+
"type": "event"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"anonymous": false,
|
|
111
|
+
"inputs": [
|
|
112
|
+
{
|
|
113
|
+
"indexed": true,
|
|
114
|
+
"internalType": "address",
|
|
115
|
+
"name": "previousOwner",
|
|
116
|
+
"type": "address"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"indexed": true,
|
|
120
|
+
"internalType": "address",
|
|
121
|
+
"name": "newOwner",
|
|
122
|
+
"type": "address"
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"name": "OwnershipTransferred",
|
|
126
|
+
"type": "event"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"anonymous": false,
|
|
130
|
+
"inputs": [
|
|
131
|
+
{
|
|
132
|
+
"indexed": false,
|
|
133
|
+
"internalType": "address",
|
|
134
|
+
"name": "depositorWallet",
|
|
135
|
+
"type": "address"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"indexed": false,
|
|
139
|
+
"internalType": "uint256",
|
|
140
|
+
"name": "quantity",
|
|
141
|
+
"type": "uint256"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"indexed": false,
|
|
145
|
+
"internalType": "bytes",
|
|
146
|
+
"name": "payload",
|
|
147
|
+
"type": "bytes"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"indexed": false,
|
|
151
|
+
"internalType": "bytes",
|
|
152
|
+
"name": "errorData",
|
|
153
|
+
"type": "bytes"
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
"name": "WithdrawQuoteAssetFailed",
|
|
157
|
+
"type": "event"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"inputs": [],
|
|
161
|
+
"name": "acceptOwnership",
|
|
162
|
+
"outputs": [],
|
|
163
|
+
"stateMutability": "nonpayable",
|
|
164
|
+
"type": "function"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"inputs": [
|
|
168
|
+
{
|
|
169
|
+
"internalType": "uint256",
|
|
170
|
+
"name": "quoteAssetQuantityInAssetUnits",
|
|
171
|
+
"type": "uint256"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"internalType": "bytes",
|
|
175
|
+
"name": "payload",
|
|
176
|
+
"type": "bytes"
|
|
177
|
+
}
|
|
178
|
+
],
|
|
179
|
+
"name": "deposit",
|
|
180
|
+
"outputs": [],
|
|
181
|
+
"stateMutability": "nonpayable",
|
|
182
|
+
"type": "function"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"inputs": [],
|
|
186
|
+
"name": "exchange",
|
|
187
|
+
"outputs": [
|
|
188
|
+
{
|
|
189
|
+
"internalType": "contract IExchange",
|
|
190
|
+
"name": "",
|
|
191
|
+
"type": "address"
|
|
192
|
+
}
|
|
193
|
+
],
|
|
194
|
+
"stateMutability": "view",
|
|
195
|
+
"type": "function"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"inputs": [],
|
|
199
|
+
"name": "exchangeManagedAccountDepositAdapter",
|
|
200
|
+
"outputs": [
|
|
201
|
+
{
|
|
202
|
+
"internalType": "contract IExchangeManagedAccountDepositAdapter",
|
|
203
|
+
"name": "",
|
|
204
|
+
"type": "address"
|
|
205
|
+
}
|
|
206
|
+
],
|
|
207
|
+
"stateMutability": "view",
|
|
208
|
+
"type": "function"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"inputs": [],
|
|
212
|
+
"name": "isDepositEnabled",
|
|
213
|
+
"outputs": [
|
|
214
|
+
{
|
|
215
|
+
"internalType": "bool",
|
|
216
|
+
"name": "",
|
|
217
|
+
"type": "bool"
|
|
218
|
+
}
|
|
219
|
+
],
|
|
220
|
+
"stateMutability": "view",
|
|
221
|
+
"type": "function"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"inputs": [],
|
|
225
|
+
"name": "owner",
|
|
226
|
+
"outputs": [
|
|
227
|
+
{
|
|
228
|
+
"internalType": "address",
|
|
229
|
+
"name": "",
|
|
230
|
+
"type": "address"
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"stateMutability": "view",
|
|
234
|
+
"type": "function"
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"inputs": [],
|
|
238
|
+
"name": "pendingOwner",
|
|
239
|
+
"outputs": [
|
|
240
|
+
{
|
|
241
|
+
"internalType": "address",
|
|
242
|
+
"name": "",
|
|
243
|
+
"type": "address"
|
|
244
|
+
}
|
|
245
|
+
],
|
|
246
|
+
"stateMutability": "view",
|
|
247
|
+
"type": "function"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"inputs": [],
|
|
251
|
+
"name": "quoteAsset",
|
|
252
|
+
"outputs": [
|
|
253
|
+
{
|
|
254
|
+
"internalType": "contract IERC20",
|
|
255
|
+
"name": "",
|
|
256
|
+
"type": "address"
|
|
257
|
+
}
|
|
258
|
+
],
|
|
259
|
+
"stateMutability": "view",
|
|
260
|
+
"type": "function"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"inputs": [],
|
|
264
|
+
"name": "renounceOwnership",
|
|
265
|
+
"outputs": [],
|
|
266
|
+
"stateMutability": "nonpayable",
|
|
267
|
+
"type": "function"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"inputs": [
|
|
271
|
+
{
|
|
272
|
+
"internalType": "bool",
|
|
273
|
+
"name": "isEnabled",
|
|
274
|
+
"type": "bool"
|
|
275
|
+
}
|
|
276
|
+
],
|
|
277
|
+
"name": "setDepositEnabled",
|
|
278
|
+
"outputs": [],
|
|
279
|
+
"stateMutability": "nonpayable",
|
|
280
|
+
"type": "function"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"inputs": [
|
|
284
|
+
{
|
|
285
|
+
"internalType": "address",
|
|
286
|
+
"name": "newOwner",
|
|
287
|
+
"type": "address"
|
|
288
|
+
}
|
|
289
|
+
],
|
|
290
|
+
"name": "transferOwnership",
|
|
291
|
+
"outputs": [],
|
|
292
|
+
"stateMutability": "nonpayable",
|
|
293
|
+
"type": "function"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"inputs": [
|
|
297
|
+
{
|
|
298
|
+
"internalType": "address",
|
|
299
|
+
"name": "",
|
|
300
|
+
"type": "address"
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"internalType": "uint256",
|
|
304
|
+
"name": "",
|
|
305
|
+
"type": "uint256"
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"internalType": "bytes",
|
|
309
|
+
"name": "",
|
|
310
|
+
"type": "bytes"
|
|
311
|
+
}
|
|
312
|
+
],
|
|
313
|
+
"name": "withdrawQuoteAsset",
|
|
314
|
+
"outputs": [],
|
|
315
|
+
"stateMutability": "view",
|
|
316
|
+
"type": "function"
|
|
317
|
+
}
|
|
318
|
+
]
|
package/dist/bridge/deposit.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export type DepositToWalletBridgePayloadParameters = {
|
|
|
22
22
|
};
|
|
23
23
|
export type DepositBaseParameters = {
|
|
24
24
|
exchangeLayerZeroAdapterAddress?: string;
|
|
25
|
+
exchangeLocalDepositAdapterAddress?: string;
|
|
25
26
|
minimumForwardQuantityMultiplierInPips: bigint;
|
|
26
27
|
quantityInAssetUnits: bigint;
|
|
27
28
|
sourceBridgeTarget: BridgeTarget;
|
|
@@ -90,14 +91,18 @@ export declare function decodeDepositBridgeAdapterPayload(payload: EncodedDeposi
|
|
|
90
91
|
export declare function depositViaBridge(parameters: AddManagedAccountParameters | DepositToManagedAccountParameters | DepositToWalletParameters, providers: {
|
|
91
92
|
ethereum: ethers.Provider;
|
|
92
93
|
sourceChain: ethers.Provider;
|
|
93
|
-
}, sourceSigner: ethers.Signer, sandbox: boolean, extraRequestParams?: Pick<TransactionRequest, 'nonce'
|
|
94
|
+
}, sourceSigner: ethers.Signer, sandbox: boolean, extraRequestParams?: Pick<TransactionRequest, 'nonce'>,
|
|
95
|
+
/** Let software wallet show estimate to the user. Even on expected TX failure. */
|
|
96
|
+
ignoreEstimateError?: boolean): Promise<string>;
|
|
94
97
|
/**
|
|
95
98
|
* Deposit funds cross-chain into the Exchange using a LayerZero OFT or Stargate
|
|
96
99
|
*/
|
|
97
100
|
export declare function depositViaVaultComposerSync(parameters: AddManagedAccountParameters | DepositToManagedAccountParameters | DepositToWalletParameters, providers: {
|
|
98
101
|
ethereum: ethers.Provider;
|
|
99
102
|
sourceChain: ethers.Provider;
|
|
100
|
-
}, sourceSigner: ethers.Signer, sandbox: boolean, extraRequestParams?: Pick<TransactionRequest, 'nonce'
|
|
103
|
+
}, sourceSigner: ethers.Signer, sandbox: boolean, extraRequestParams?: Pick<TransactionRequest, 'nonce'>,
|
|
104
|
+
/** Let software wallet show estimate to the user. Even on expected TX failure. */
|
|
105
|
+
ignoreEstimateError?: boolean): Promise<string>;
|
|
101
106
|
/**
|
|
102
107
|
* Deposit funds cross-chain into the Exchange using a LayerZero OFT or Stargate
|
|
103
108
|
*/
|
|
@@ -107,7 +112,13 @@ export declare function depositViaForwarder(parameters: AddManagedAccountParamet
|
|
|
107
112
|
}, sourceSigner: ethers.Signer, sandbox: boolean, extraRequestParams?: Pick<TransactionRequest, 'nonce'>,
|
|
108
113
|
/** Let software wallet show estimate to the user. Even on expected TX failure. */
|
|
109
114
|
ignoreEstimateError?: boolean): Promise<string>;
|
|
110
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Deposit funds locally on Katana
|
|
117
|
+
*/
|
|
118
|
+
export declare function depositLocally(parameters: AddManagedAccountParameters | DepositToManagedAccountParameters | DepositToWalletParameters, signer: ethers.Signer, sandbox: boolean, extraRequestParams?: Pick<TransactionRequest, 'nonce'>,
|
|
119
|
+
/** Let software wallet show estimate to the user. Even on expected TX failure. */
|
|
120
|
+
ignoreEstimateError?: boolean): Promise<string>;
|
|
121
|
+
export declare function encodeDepositBridgeAdapterPayload(sourceConfig: ReturnType<typeof getBridgeTargetConfig>, parameters: Pick<AddManagedAccountParameters, 'bridgePayloadType' | 'fixedIncomeVaultProviderAddress' | 'managerWallet' | 'addManagedAccountPayload'> | Pick<DepositToManagedAccountParameters, 'bridgePayloadType' | 'depositorWallet' | 'fixedIncomeVaultProviderAddress' | 'managerWallet'> | Pick<DepositToWalletParameters, 'bridgePayloadType' | 'depositorWallet'>): EncodedDepositBridgeAdapterPayload;
|
|
111
122
|
export declare function encodeFixedIncomeVaultConfigurationFields(configurationFields: FixedIncomeVaultConfigurationFields): string;
|
|
112
123
|
/**
|
|
113
124
|
* Estimate native gas fee needed to deposit USDC cross-chain into the Exchange
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deposit.d.ts","sourceRoot":"","sources":["../../src/bridge/deposit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,kBAAkB,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"deposit.d.ts","sourceRoot":"","sources":["../../src/bridge/deposit.ts"],"names":[],"mappings":"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"}
|
package/dist/bridge/deposit.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDestinationWallet = exports.estimateDepositFees = exports.encodeFixedIncomeVaultConfigurationFields = exports.encodeDepositBridgeAdapterPayload = exports.depositViaForwarder = exports.depositViaVaultComposerSync = exports.depositViaBridge = exports.decodeDepositBridgeAdapterPayload = exports.decodeDepositBridgeAdapterPayloadType = exports.depositBridgeAdapterPayloadLengths = exports.fixedIncomeVaultConfigurationFieldsLength = exports.DepositBridgeAdapterPayloadType = void 0;
|
|
3
|
+
exports.getDestinationWallet = exports.estimateDepositFees = exports.encodeFixedIncomeVaultConfigurationFields = exports.encodeDepositBridgeAdapterPayload = exports.depositLocally = exports.depositViaForwarder = exports.depositViaVaultComposerSync = exports.depositViaBridge = exports.decodeDepositBridgeAdapterPayload = exports.decodeDepositBridgeAdapterPayloadType = exports.depositBridgeAdapterPayloadLengths = exports.fixedIncomeVaultConfigurationFieldsLength = exports.DepositBridgeAdapterPayloadType = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
|
|
6
6
|
const ethers_1 = require("ethers");
|
|
@@ -64,16 +64,20 @@ exports.decodeDepositBridgeAdapterPayload = decodeDepositBridgeAdapterPayload;
|
|
|
64
64
|
/**
|
|
65
65
|
* Deposit funds cross-chain into the Exchange using a LayerZero OFT or Stargate
|
|
66
66
|
*/
|
|
67
|
-
async function depositViaBridge(parameters, providers, sourceSigner, sandbox, extraRequestParams
|
|
67
|
+
async function depositViaBridge(parameters, providers, sourceSigner, sandbox, extraRequestParams,
|
|
68
|
+
/** Let software wallet show estimate to the user. Even on expected TX failure. */
|
|
69
|
+
ignoreEstimateError) {
|
|
68
70
|
return parameters.sourceBridgeTarget === request_1.BridgeTarget.STARGATE_ETHEREUM ?
|
|
69
|
-
depositViaVaultComposerSync(parameters, providers, sourceSigner, sandbox, extraRequestParams)
|
|
70
|
-
: depositViaForwarder(parameters, providers, sourceSigner, sandbox, extraRequestParams);
|
|
71
|
+
depositViaVaultComposerSync(parameters, providers, sourceSigner, sandbox, extraRequestParams, ignoreEstimateError)
|
|
72
|
+
: depositViaForwarder(parameters, providers, sourceSigner, sandbox, extraRequestParams, ignoreEstimateError);
|
|
71
73
|
}
|
|
72
74
|
exports.depositViaBridge = depositViaBridge;
|
|
73
75
|
/**
|
|
74
76
|
* Deposit funds cross-chain into the Exchange using a LayerZero OFT or Stargate
|
|
75
77
|
*/
|
|
76
|
-
async function depositViaVaultComposerSync(parameters, providers, sourceSigner, sandbox, extraRequestParams
|
|
78
|
+
async function depositViaVaultComposerSync(parameters, providers, sourceSigner, sandbox, extraRequestParams,
|
|
79
|
+
/** Let software wallet show estimate to the user. Even on expected TX failure. */
|
|
80
|
+
ignoreEstimateError) {
|
|
77
81
|
const [{ sendParam, sourceConfig }, { gasFee }] = await Promise.all([
|
|
78
82
|
getDepositFromEthereumSendParamAndSourceConfig(parameters, sandbox),
|
|
79
83
|
estimateDepositFromEthereumFees(parameters, providers, sandbox),
|
|
@@ -103,15 +107,23 @@ async function depositViaVaultComposerSync(parameters, providers, sourceSigner,
|
|
|
103
107
|
// fall through and use the configured default gas limit. The wallet software in use should
|
|
104
108
|
// still show if that limit is insufficient, which is only an issue for blockchains with
|
|
105
109
|
// variable gas costs such as Arbitrum One
|
|
106
|
-
if (
|
|
110
|
+
if (error?.code === 'INSUFFICIENT_FUNDS') {
|
|
111
|
+
console.log('[depositViaVaultComposerSync] Insufficient funds - continue with default gas');
|
|
112
|
+
}
|
|
113
|
+
else if (ignoreEstimateError) {
|
|
114
|
+
// TODO: In latest contract it throws 'CALL_EXCEPTION' instead of 'INSUFFICIENT_FUNDS'
|
|
115
|
+
console.log('[depositViaVaultComposerSync] Estimate failed - continue with default gas', error);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
107
118
|
throw error;
|
|
108
119
|
}
|
|
109
120
|
}
|
|
110
121
|
const response = await vaultComposerSync.depositAndSend.send(parameters.quantityInAssetUnits, sendParam, sourceWallet, // Refund address - extra gas (if any) is returned to this address
|
|
111
122
|
{
|
|
123
|
+
...extraRequestParams,
|
|
112
124
|
from: sourceWallet,
|
|
113
125
|
gasLimit,
|
|
114
|
-
value: gasFee,
|
|
126
|
+
value: gasFee, // Native gas to pay for the cross chain message fee
|
|
115
127
|
});
|
|
116
128
|
return response.hash;
|
|
117
129
|
}
|
|
@@ -134,8 +146,7 @@ ignoreEstimateError) {
|
|
|
134
146
|
const estimatedGasLimit = await oft.send.estimateGas(sendParam, { nativeFee: gasFee, lzTokenFee: 0 }, sourceWallet, // Refund address - extra gas (if any) is returned to this address
|
|
135
147
|
{
|
|
136
148
|
...extraRequestParams,
|
|
137
|
-
from: sourceWallet,
|
|
138
|
-
// Native gas to pay for the cross chain message fee
|
|
149
|
+
from: sourceWallet, // Native gas to pay for the cross chain message fee
|
|
139
150
|
value: gasFee,
|
|
140
151
|
});
|
|
141
152
|
// Add 20% buffer for safety
|
|
@@ -153,7 +164,6 @@ ignoreEstimateError) {
|
|
|
153
164
|
// variable gas costs such as Arbitrum One
|
|
154
165
|
if (error?.code === 'INSUFFICIENT_FUNDS') {
|
|
155
166
|
console.log('[depositViaForwarder] Insufficient funds - continue with default gas');
|
|
156
|
-
// Exit without throwing
|
|
157
167
|
}
|
|
158
168
|
else if (ignoreEstimateError) {
|
|
159
169
|
// TODO: In latest contract it throws 'CALL_EXCEPTION' instead of 'INSUFFICIENT_FUNDS'
|
|
@@ -165,6 +175,7 @@ ignoreEstimateError) {
|
|
|
165
175
|
}
|
|
166
176
|
const response = await oft.send(sendParam, { nativeFee: gasFee, lzTokenFee: 0 }, sourceWallet, // Refund address - extra gas (if any) is returned to this address
|
|
167
177
|
{
|
|
178
|
+
...extraRequestParams,
|
|
168
179
|
from: sourceWallet,
|
|
169
180
|
gasLimit,
|
|
170
181
|
value: gasFee,
|
|
@@ -172,6 +183,55 @@ ignoreEstimateError) {
|
|
|
172
183
|
return response.hash;
|
|
173
184
|
}
|
|
174
185
|
exports.depositViaForwarder = depositViaForwarder;
|
|
186
|
+
/**
|
|
187
|
+
* Deposit funds locally on Katana
|
|
188
|
+
*/
|
|
189
|
+
async function depositLocally(parameters, signer, sandbox, extraRequestParams,
|
|
190
|
+
/** Let software wallet show estimate to the user. Even on expected TX failure. */
|
|
191
|
+
ignoreEstimateError) {
|
|
192
|
+
const sourceConfig = (0, utils_1.getBridgeTargetConfig)(request_1.BridgeTarget.KATANA_KATANA, sandbox);
|
|
193
|
+
const exchangeLocalDepositAdapterAddress = await (0, utils_1.loadExchangeLocalDepositAddressFromApiIfNeeded)(parameters.exchangeLocalDepositAdapterAddress);
|
|
194
|
+
let gasLimit = config_1.BridgeConfig.settings.depositSourceChainGasLimit;
|
|
195
|
+
const localDepositAdapter = index_1.ExchangeLocalDepositAdapter_v1__factory.connect(exchangeLocalDepositAdapterAddress, signer);
|
|
196
|
+
const wallet = await signer.getAddress();
|
|
197
|
+
try {
|
|
198
|
+
// Estimate gas
|
|
199
|
+
const estimatedGasLimit = await localDepositAdapter.deposit.estimateGas(parameters.quantityInAssetUnits, encodeDepositBridgeAdapterPayload(sourceConfig, parameters), {
|
|
200
|
+
...extraRequestParams,
|
|
201
|
+
from: wallet,
|
|
202
|
+
});
|
|
203
|
+
// Add 20% buffer for safety
|
|
204
|
+
gasLimit = Number(new bignumber_js_1.default(estimatedGasLimit.toString())
|
|
205
|
+
.times(new bignumber_js_1.default(1.2))
|
|
206
|
+
.toFixed(0));
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
// ethers.js will perform the estimation at the block gas limit, which is much higher than the
|
|
210
|
+
// gas actually needed by the tx. If the wallet does not have the funds to cover the tx at this
|
|
211
|
+
// high gas limit then the RPC will throw an INSUFFICIENT_FUNDS error; however the wallet may
|
|
212
|
+
// still have enough funds to successfully bridge at the actual gas limit. In this case simply
|
|
213
|
+
// fall through and use the configured default gas limit. The wallet software in use should
|
|
214
|
+
// still show if that limit is insufficient, which is only an issue for blockchains with
|
|
215
|
+
// variable gas costs such as Arbitrum One
|
|
216
|
+
if (error?.code === 'INSUFFICIENT_FUNDS') {
|
|
217
|
+
console.log('[depositViaForwarder] Insufficient funds - continue with default gas');
|
|
218
|
+
}
|
|
219
|
+
else if (ignoreEstimateError) {
|
|
220
|
+
// TODO: In latest contract it throws 'CALL_EXCEPTION' instead of 'INSUFFICIENT_FUNDS'
|
|
221
|
+
console.log('[depositViaForwarder] Estimate failed - continue with default gas', error);
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
throw error;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
const response = await localDepositAdapter.deposit(parameters.quantityInAssetUnits, encodeDepositBridgeAdapterPayload(sourceConfig, parameters), {
|
|
228
|
+
...extraRequestParams,
|
|
229
|
+
gasLimit,
|
|
230
|
+
from: wallet,
|
|
231
|
+
});
|
|
232
|
+
return response.hash;
|
|
233
|
+
}
|
|
234
|
+
exports.depositLocally = depositLocally;
|
|
175
235
|
function encodeDepositBridgeAdapterPayload(sourceConfig, parameters) {
|
|
176
236
|
if (parameters.bridgePayloadType ===
|
|
177
237
|
DepositBridgeAdapterPayloadType.addManagedAccount) {
|
package/dist/bridge/utils.d.ts
CHANGED
|
@@ -130,5 +130,6 @@ export declare function getBridgeTargetConfig<T extends BridgeTarget, S extends
|
|
|
130
130
|
}[T];
|
|
131
131
|
export declare function bridgeTargetForLayerZeroEndpointId(layerZeroEndpointId: number, sandbox: boolean): "stargate.arbitrum" | "stargate.aurora" | "stargate.avalanche" | "stargate.base" | "stargate.berachain" | "stargate.ethereum" | "stargate.optimism" | "stargate.rari" | "stargate.scroll" | "stargate.taiko" | null;
|
|
132
132
|
export declare function loadExchangeLayerZeroAddressFromApiIfNeeded(exchangeLayerZeroAdapterAddress?: string): Promise<string>;
|
|
133
|
+
export declare function loadExchangeLocalDepositAddressFromApiIfNeeded(exchangeLocalDepositAdapterAddress?: string): Promise<string>;
|
|
133
134
|
export declare function loadStargateBridgeForwarderContractAddressFromApiIfNeeded(stargateBridgeForwarderContractAddress?: string): Promise<string>;
|
|
134
135
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,eAAO,MAAM,iCAAiC,mFAI5C,CAAC;AAEH,MAAM,MAAM,iCAAiC,GAC3C,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,wBAAgB,kCAAkC,CAChD,mBAAmB,EAAE,MAAM,GAC1B,mBAAmB,IAAI,iCAAiC,CAI1D;AAED,eAAO,MAAM,iCAAiC,mBAI5C,CAAC;AAEH,MAAM,MAAM,iCAAiC,GAC3C,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,wBAAgB,kCAAkC,CAChD,mBAAmB,EAAE,MAAM,GAC1B,mBAAmB,IAAI,iCAAiC,CAI1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,IAAI,GAAG,KAAK,EACtB,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAY5B;AAED,wBAAgB,kCAAkC,CAChD,mBAAmB,EAAE,MAAM,EAC3B,OAAO,EAAE,OAAO,uNAYjB;AAED,wBAAsB,2CAA2C,CAC/D,+BAA+B,CAAC,EAAE,MAAM,GACvC,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,wBAAsB,8CAA8C,CAClE,kCAAkC,CAAC,EAAE,MAAM,GAC1C,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,wBAAsB,yDAAyD,CAC7E,sCAAsC,CAAC,EAAE,MAAM,GAC9C,OAAO,CAAC,MAAM,CAAC,CAQjB"}
|
package/dist/bridge/utils.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.loadStargateBridgeForwarderContractAddressFromApiIfNeeded = exports.loadExchangeLayerZeroAddressFromApiIfNeeded = exports.bridgeTargetForLayerZeroEndpointId = exports.getBridgeTargetConfig = exports.isBridgeTestnetLayerZeroEndpointId = exports.BridgeTestnetLayerZeroEndpointIds = exports.isBridgeMainnetLayerZeroEndpointId = exports.BridgeMainnetLayerZeroEndpointIds = void 0;
|
|
4
|
-
const ethers_1 = require("ethers");
|
|
3
|
+
exports.loadStargateBridgeForwarderContractAddressFromApiIfNeeded = exports.loadExchangeLocalDepositAddressFromApiIfNeeded = exports.loadExchangeLayerZeroAddressFromApiIfNeeded = exports.bridgeTargetForLayerZeroEndpointId = exports.getBridgeTargetConfig = exports.isBridgeTestnetLayerZeroEndpointId = exports.BridgeTestnetLayerZeroEndpointIds = exports.isBridgeMainnetLayerZeroEndpointId = exports.BridgeMainnetLayerZeroEndpointIds = void 0;
|
|
5
4
|
const config_1 = require("#bridge/config");
|
|
5
|
+
const public_1 = require("#client/rest/public");
|
|
6
6
|
exports.BridgeMainnetLayerZeroEndpointIds = Object.values(config_1.BridgeConfigByLayerZeroEndpointId.mainnet).map((value) => {
|
|
7
7
|
return value.layerZeroEndpointId;
|
|
8
8
|
});
|
|
@@ -52,15 +52,26 @@ async function loadExchangeLayerZeroAddressFromApiIfNeeded(exchangeLayerZeroAdap
|
|
|
52
52
|
if (exchangeLayerZeroAdapterAddress) {
|
|
53
53
|
return exchangeLayerZeroAdapterAddress;
|
|
54
54
|
}
|
|
55
|
-
|
|
56
|
-
return
|
|
55
|
+
const [exchangeResponse] = await (0, public_1.loadExchangeResponseFromApiIfNeeded)();
|
|
56
|
+
return exchangeResponse.bridgeAdapters
|
|
57
|
+
.stargateBridgeAdapterV1KatanaContractAddress;
|
|
57
58
|
}
|
|
58
59
|
exports.loadExchangeLayerZeroAddressFromApiIfNeeded = loadExchangeLayerZeroAddressFromApiIfNeeded;
|
|
60
|
+
async function loadExchangeLocalDepositAddressFromApiIfNeeded(exchangeLocalDepositAdapterAddress) {
|
|
61
|
+
if (exchangeLocalDepositAdapterAddress) {
|
|
62
|
+
return exchangeLocalDepositAdapterAddress;
|
|
63
|
+
}
|
|
64
|
+
const [exchangeResponse] = await (0, public_1.loadExchangeResponseFromApiIfNeeded)();
|
|
65
|
+
return exchangeResponse.bridgeAdapters
|
|
66
|
+
.localDepositAdapterV1KatanaContractAddress;
|
|
67
|
+
}
|
|
68
|
+
exports.loadExchangeLocalDepositAddressFromApiIfNeeded = loadExchangeLocalDepositAddressFromApiIfNeeded;
|
|
59
69
|
async function loadStargateBridgeForwarderContractAddressFromApiIfNeeded(stargateBridgeForwarderContractAddress) {
|
|
60
70
|
if (stargateBridgeForwarderContractAddress) {
|
|
61
71
|
return stargateBridgeForwarderContractAddress;
|
|
62
72
|
}
|
|
63
|
-
|
|
64
|
-
return
|
|
73
|
+
const [exchangeResponse] = await (0, public_1.loadExchangeResponseFromApiIfNeeded)();
|
|
74
|
+
return exchangeResponse.bridgeAdapters
|
|
75
|
+
.stargateBridgeForwarderV1EthereumContractAddress;
|
|
65
76
|
}
|
|
66
77
|
exports.loadStargateBridgeForwarderContractAddressFromApiIfNeeded = loadStargateBridgeForwarderContractAddressFromApiIfNeeded;
|