@interest-protocol/xswap-sdk 1.0.2 → 1.0.3
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/constants.d.ts +17 -15
- package/dist/constants.d.ts.map +1 -1
- package/dist/enclave-client.d.ts.map +1 -1
- package/dist/index.js +81 -96
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +81 -97
- package/dist/index.mjs.map +1 -1
- package/dist/schemas.d.ts +1 -6
- package/dist/schemas.d.ts.map +1 -1
- package/dist/utils.d.ts +0 -28
- package/dist/utils.d.ts.map +1 -1
- package/dist/xswap.d.ts +8 -7
- package/dist/xswap.d.ts.map +1 -1
- package/dist/xswap.types.d.ts +7 -3
- package/dist/xswap.types.d.ts.map +1 -1
- package/package.json +57 -57
package/dist/index.mjs
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import invariant from 'tiny-invariant';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
4
|
+
const ORIGINAL_PACKAGE_ID = '0xb188334e53f795fe12f0b516716d5b0b8024ddf51482df23525fd599c875edfa';
|
|
5
|
+
const MAINNET_PACKAGE_ID = '0xb188334e53f795fe12f0b516716d5b0b8024ddf51482df23525fd599c875edfa';
|
|
6
|
+
const ENCLAVE_CAP_OBJECT_ID = '0xe0f1b062c6ce742b8659e59ca29f8ebed7a926c292b4f8fc479ed82c04997abf';
|
|
7
|
+
const ENCLAVE_OBJECT_ID = '0x73ed1600688bde2ffaaf8669ed0292809ae86c6945f076daa369c093060f7f04';
|
|
8
|
+
const ENCLAVE_INITIAL_SHARED_VERSION = '788631979';
|
|
8
9
|
const ENCLAVE_SHARED_OBJECT_DATA = {
|
|
9
10
|
objectId: ENCLAVE_OBJECT_ID,
|
|
10
11
|
initialSharedVersion: ENCLAVE_INITIAL_SHARED_VERSION,
|
|
11
12
|
};
|
|
12
|
-
const ADMIN_CAP_OBJECT_ID = '
|
|
13
|
-
const UPGRADE_CAP_OBJECT_ID = '
|
|
14
|
-
const XSWAP_OBJECT_ID = '
|
|
15
|
-
const XSWAP_INITIAL_SHARED_VERSION = '
|
|
13
|
+
const ADMIN_CAP_OBJECT_ID = '0xbab05412dc7b3eeb9ae441d73c86f1f3442b49cf6ca4f34c5ca59c3c0dded688';
|
|
14
|
+
const UPGRADE_CAP_OBJECT_ID = '0xa4e1aaf8a79289e097ffb3f7ac3ea7882fddf81329596fc25645b1e3d68dd1fc';
|
|
15
|
+
const XSWAP_OBJECT_ID = '0xcbc04da0c892ca1f9d170976e84ff45dc6ae3439f01cbc93b3f06855c6c3e8a7';
|
|
16
|
+
const XSWAP_INITIAL_SHARED_VERSION = '788588232';
|
|
16
17
|
const XSWAP_SHARED_OBJECT_DATA = {
|
|
17
18
|
objectId: XSWAP_OBJECT_ID,
|
|
18
19
|
initialSharedVersion: XSWAP_INITIAL_SHARED_VERSION,
|
|
@@ -27,8 +28,8 @@ const Modules = {
|
|
|
27
28
|
XSwap: 'xswap',
|
|
28
29
|
Structs: 'structs',
|
|
29
30
|
};
|
|
30
|
-
const WITNESS_TYPE = `${
|
|
31
|
-
const XSWAP_TYPE = `${
|
|
31
|
+
const WITNESS_TYPE = `${ORIGINAL_PACKAGE_ID}::${Modules.XSwap}::Witness`;
|
|
32
|
+
const XSWAP_TYPE = `${ORIGINAL_PACKAGE_ID}::${Modules.XSwap}::XSWAP`;
|
|
32
33
|
const Functions = {
|
|
33
34
|
InitApp: 'init_app',
|
|
34
35
|
NewRequest: 'new_request',
|
|
@@ -46,7 +47,8 @@ const Functions = {
|
|
|
46
47
|
Unpause: 'unpause',
|
|
47
48
|
AddWallet: 'add_wallet',
|
|
48
49
|
MintPresign: 'mint_presign',
|
|
49
|
-
|
|
50
|
+
TakePresign: 'take_presign',
|
|
51
|
+
SetRequestFee: 'set_request_fee',
|
|
50
52
|
CollectFees: 'collect_fees',
|
|
51
53
|
NewRequestParams: 'new_request_params',
|
|
52
54
|
NewSettleParams: 'new_settle_params',
|
|
@@ -76,19 +78,19 @@ const WalletKey = {
|
|
|
76
78
|
[ChainId.Solana]: 0n,
|
|
77
79
|
};
|
|
78
80
|
const DWalletAddress = {
|
|
79
|
-
[ChainId.Sui]: '
|
|
80
|
-
[ChainId.Solana]: '
|
|
81
|
+
[ChainId.Sui]: '0x0d6d396862af7cd10d235069fee9580545e7fc0a9e74cf7a92ec1a6a1996313b',
|
|
82
|
+
[ChainId.Solana]: 'HmBJM5kjvCRE4iBd4kakGFRoaAyUfkq9xivMZgVzqGGC',
|
|
81
83
|
};
|
|
82
84
|
const DWalletId = {
|
|
83
|
-
[ChainId.Sui]: '
|
|
84
|
-
[ChainId.Solana]: '
|
|
85
|
+
[ChainId.Sui]: '0x66b32816bff596b27b7ae99ec2e0bc69e63035a0e087006fe4937b6b09e30b95',
|
|
86
|
+
[ChainId.Solana]: '0x3ca05691123a358e6793946ba38595d0925c68b656efe91ad08bbee430bfb26b',
|
|
85
87
|
};
|
|
86
88
|
const XCoreWalletId = {
|
|
87
|
-
[ChainId.Sui]: '
|
|
88
|
-
[ChainId.Solana]: '
|
|
89
|
+
[ChainId.Sui]: '0xb15f12512da8f21d853dcb549e2029f49e0a5dd0f56e88fc7b45d91d703ace0f',
|
|
90
|
+
[ChainId.Solana]: '0xc1b88839208b334cefbe141304a70fc51364069f7051a6b6b86fd0c3e9816144',
|
|
89
91
|
};
|
|
90
|
-
const XCORE_PACKAGE_ID = '
|
|
91
|
-
const PRESIGN_CAP_TYPE = `${XCORE_PACKAGE_ID}::presign_cap::PresignCap
|
|
92
|
+
const XCORE_PACKAGE_ID = '0x1f9ded5e071cc9cb59dc1c4a0249e5674b82af44241092a0f40fc7a9bf6ea251';
|
|
93
|
+
const PRESIGN_CAP_TYPE = `${XCORE_PACKAGE_ID}::presign_cap::PresignCap<${ORIGINAL_PACKAGE_ID}::xswap::Witness>`;
|
|
92
94
|
const PCR_LENGTH = 48;
|
|
93
95
|
const EMPTY_PCR = new Uint8Array(PCR_LENGTH).fill(0);
|
|
94
96
|
const SOLANA_WALLET_CONFIG = {
|
|
@@ -2748,11 +2750,6 @@ const WithdrawRequestProofRawSchema = z.object({
|
|
|
2748
2750
|
tx_bytes: numberArray,
|
|
2749
2751
|
});
|
|
2750
2752
|
const PresignCapFieldsRawSchema = z.object({
|
|
2751
|
-
app_type_name: z.object({
|
|
2752
|
-
fields: z.object({
|
|
2753
|
-
name: z.string(),
|
|
2754
|
-
}),
|
|
2755
|
-
}),
|
|
2756
2753
|
wallet_key: z.string(),
|
|
2757
2754
|
cap: z.object({
|
|
2758
2755
|
fields: z.object({
|
|
@@ -2763,7 +2760,7 @@ const PresignCapFieldsRawSchema = z.object({
|
|
|
2763
2760
|
const PresignSessionFieldsRawSchema = z.object({
|
|
2764
2761
|
state: z.object({
|
|
2765
2762
|
fields: z.object({
|
|
2766
|
-
presign: numberArray,
|
|
2763
|
+
presign: numberArray.optional(),
|
|
2767
2764
|
}),
|
|
2768
2765
|
}),
|
|
2769
2766
|
});
|
|
@@ -6222,44 +6219,16 @@ const parseU256LittleEndian = (bytes) => {
|
|
|
6222
6219
|
}
|
|
6223
6220
|
return result;
|
|
6224
6221
|
};
|
|
6225
|
-
/**
|
|
6226
|
-
* Extract the ed25519 public key from a dWallet's public_output.
|
|
6227
|
-
*
|
|
6228
|
-
* The public_output format is: [count, length, ...pubkey]
|
|
6229
|
-
* - Byte 0: count (typically 1)
|
|
6230
|
-
* - Byte 1: key length (32 for ed25519)
|
|
6231
|
-
* - Bytes 2-33: the 32-byte public key
|
|
6232
|
-
*/
|
|
6233
6222
|
const extractEd25519PublicKey = (publicOutput) => {
|
|
6234
6223
|
const keyLength = publicOutput[1];
|
|
6235
6224
|
invariant(keyLength === ED25519_PUBKEY_LENGTH, `Expected ed25519 key length ${ED25519_PUBKEY_LENGTH}, got ${keyLength}`);
|
|
6236
6225
|
return publicOutput.slice(2, 2 + ED25519_PUBKEY_LENGTH);
|
|
6237
6226
|
};
|
|
6238
|
-
/**
|
|
6239
|
-
* Extract the compressed secp256k1 public key from a dWallet's public_output.
|
|
6240
|
-
*
|
|
6241
|
-
* The public_output format is: [count, length, ...compressed_pubkey]
|
|
6242
|
-
* - Byte 0: count (typically 1)
|
|
6243
|
-
* - Byte 1: key length (33 for secp256k1 compressed)
|
|
6244
|
-
* - Bytes 2-34: the 33-byte compressed public key
|
|
6245
|
-
*/
|
|
6246
6227
|
const extractSecp256k1PublicKey = (publicOutput) => {
|
|
6247
6228
|
const keyLength = publicOutput[1];
|
|
6248
6229
|
invariant(keyLength === SECP256K1_COMPRESSED_PUBKEY_LENGTH, `Expected secp256k1 compressed key length ${SECP256K1_COMPRESSED_PUBKEY_LENGTH}, got ${keyLength}`);
|
|
6249
6230
|
return publicOutput.slice(2, 2 + SECP256K1_COMPRESSED_PUBKEY_LENGTH);
|
|
6250
6231
|
};
|
|
6251
|
-
/**
|
|
6252
|
-
* Serialize a secp256k1 signature for Sui transaction execution.
|
|
6253
|
-
*
|
|
6254
|
-
* Sui signature format: [flag byte] + [64-byte signature] + [33-byte compressed pubkey]
|
|
6255
|
-
* - Flag byte 0x01 indicates secp256k1
|
|
6256
|
-
* - Signature is 64 bytes (r || s)
|
|
6257
|
-
* - Public key is 33 bytes (compressed secp256k1)
|
|
6258
|
-
*
|
|
6259
|
-
* @param signature - 64-byte secp256k1 signature from IKA dWallet signing
|
|
6260
|
-
* @param publicKey - 33-byte compressed secp256k1 public key
|
|
6261
|
-
* @returns Serialized signature ready for Sui executeTransactionBlock
|
|
6262
|
-
*/
|
|
6263
6232
|
const serializeSuiSecp256k1Signature = (signature, publicKey) => {
|
|
6264
6233
|
invariant(signature.length === SECP256K1_SIGNATURE_LENGTH, `Expected signature length ${SECP256K1_SIGNATURE_LENGTH}, got ${signature.length}`);
|
|
6265
6234
|
invariant(publicKey.length === SECP256K1_COMPRESSED_PUBKEY_LENGTH, `Expected public key length ${SECP256K1_COMPRESSED_PUBKEY_LENGTH}, got ${publicKey.length}`);
|
|
@@ -6275,7 +6244,7 @@ const TxBytesKind = {
|
|
|
6275
6244
|
SuiTransaction: 'sui_transaction',
|
|
6276
6245
|
};
|
|
6277
6246
|
|
|
6278
|
-
var _XSwap_suiClient, _XSwap_packageId, _XSwap_xswapSharedObjectData, _XSwap_xcoreSharedObjectData, _XSwap_registrySharedObjectData, _XSwap_dwalletCoordinatorSharedObjectData, _XSwap_enclaveSharedObjectData;
|
|
6247
|
+
var _XSwap_suiClient, _XSwap_packageId, _XSwap_originalPackageId, _XSwap_xswapSharedObjectData, _XSwap_xcoreSharedObjectData, _XSwap_registrySharedObjectData, _XSwap_dwalletCoordinatorSharedObjectData, _XSwap_enclaveSharedObjectData;
|
|
6279
6248
|
const bcsBytes = suiBcs.vector(suiBcs.u8());
|
|
6280
6249
|
class XSwap {
|
|
6281
6250
|
static parseTxBytes(sourceChain, txBytes) {
|
|
@@ -6336,9 +6305,10 @@ class XSwap {
|
|
|
6336
6305
|
static parseWithdrawProof(raw) {
|
|
6337
6306
|
return XSwap.parseWithdrawRequestProof(raw);
|
|
6338
6307
|
}
|
|
6339
|
-
constructor({ suiClient, packageId, xswapSharedObjectData, xcoreSharedObjectData, registrySharedObjectData, dwalletCoordinatorSharedObjectData, enclaveSharedObjectData, }) {
|
|
6308
|
+
constructor({ suiClient, packageId, originalPackageId, xswapSharedObjectData, xcoreSharedObjectData, registrySharedObjectData, dwalletCoordinatorSharedObjectData, enclaveSharedObjectData, }) {
|
|
6340
6309
|
_XSwap_suiClient.set(this, void 0);
|
|
6341
6310
|
_XSwap_packageId.set(this, void 0);
|
|
6311
|
+
_XSwap_originalPackageId.set(this, void 0);
|
|
6342
6312
|
_XSwap_xswapSharedObjectData.set(this, void 0);
|
|
6343
6313
|
_XSwap_xcoreSharedObjectData.set(this, void 0);
|
|
6344
6314
|
_XSwap_registrySharedObjectData.set(this, void 0);
|
|
@@ -6346,13 +6316,13 @@ class XSwap {
|
|
|
6346
6316
|
_XSwap_enclaveSharedObjectData.set(this, void 0);
|
|
6347
6317
|
__classPrivateFieldSet(this, _XSwap_suiClient, suiClient, "f");
|
|
6348
6318
|
__classPrivateFieldSet(this, _XSwap_packageId, packageId ?? MAINNET_PACKAGE_ID, "f");
|
|
6319
|
+
__classPrivateFieldSet(this, _XSwap_originalPackageId, originalPackageId ?? ORIGINAL_PACKAGE_ID, "f");
|
|
6349
6320
|
__classPrivateFieldSet(this, _XSwap_xswapSharedObjectData, xswapSharedObjectData, "f");
|
|
6350
6321
|
__classPrivateFieldSet(this, _XSwap_xcoreSharedObjectData, xcoreSharedObjectData, "f");
|
|
6351
6322
|
__classPrivateFieldSet(this, _XSwap_registrySharedObjectData, registrySharedObjectData, "f");
|
|
6352
6323
|
__classPrivateFieldSet(this, _XSwap_dwalletCoordinatorSharedObjectData, dwalletCoordinatorSharedObjectData, "f");
|
|
6353
6324
|
__classPrivateFieldSet(this, _XSwap_enclaveSharedObjectData, enclaveSharedObjectData, "f");
|
|
6354
6325
|
}
|
|
6355
|
-
// === Params Builders ===
|
|
6356
6326
|
newRequestParams(tx, params) {
|
|
6357
6327
|
return tx.moveCall({
|
|
6358
6328
|
target: `${__classPrivateFieldGet(this, _XSwap_packageId, "f")}::${Modules.Structs}::${Functions.NewRequestParams}`,
|
|
@@ -6405,7 +6375,6 @@ class XSwap {
|
|
|
6405
6375
|
],
|
|
6406
6376
|
});
|
|
6407
6377
|
}
|
|
6408
|
-
// === Transaction Builders ===
|
|
6409
6378
|
initApp({ tx = new Transaction() } = {}) {
|
|
6410
6379
|
tx.moveCall({
|
|
6411
6380
|
target: `${__classPrivateFieldGet(this, _XSwap_packageId, "f")}::${Modules.XSwap}::${Functions.InitApp}`,
|
|
@@ -6413,7 +6382,7 @@ class XSwap {
|
|
|
6413
6382
|
});
|
|
6414
6383
|
return tx;
|
|
6415
6384
|
}
|
|
6416
|
-
newRequest({ tx = new Transaction(), params }) {
|
|
6385
|
+
newRequest({ tx = new Transaction(), params, fee }) {
|
|
6417
6386
|
const requestParams = this.newRequestParams(tx, params);
|
|
6418
6387
|
const result = tx.moveCall({
|
|
6419
6388
|
target: `${__classPrivateFieldGet(this, _XSwap_packageId, "f")}::${Modules.XSwap}::${Functions.NewRequest}`,
|
|
@@ -6424,6 +6393,7 @@ class XSwap {
|
|
|
6424
6393
|
this.immutableRegistryRef(tx),
|
|
6425
6394
|
this.immutableEnclaveRef(tx),
|
|
6426
6395
|
requestParams,
|
|
6396
|
+
fee,
|
|
6427
6397
|
],
|
|
6428
6398
|
});
|
|
6429
6399
|
return { tx, result };
|
|
@@ -6448,11 +6418,11 @@ class XSwap {
|
|
|
6448
6418
|
target: `${__classPrivateFieldGet(this, _XSwap_packageId, "f")}::${Modules.XSwap}::${Functions.SettleRequest}`,
|
|
6449
6419
|
arguments: [
|
|
6450
6420
|
this.mutableXSwapRef(tx),
|
|
6451
|
-
tx.object.clock(),
|
|
6452
6421
|
this.mutableXCoreRef(tx),
|
|
6453
6422
|
this.mutableDwalletCoordinatorRef(tx),
|
|
6454
|
-
this.immutableRegistryRef(tx),
|
|
6455
6423
|
requestRef,
|
|
6424
|
+
tx.object.clock(),
|
|
6425
|
+
this.immutableRegistryRef(tx),
|
|
6456
6426
|
this.immutableEnclaveRef(tx),
|
|
6457
6427
|
tx.object(presignCapId),
|
|
6458
6428
|
settleParams,
|
|
@@ -6495,20 +6465,31 @@ class XSwap {
|
|
|
6495
6465
|
});
|
|
6496
6466
|
return { tx, result };
|
|
6497
6467
|
}
|
|
6498
|
-
mintPresign({ tx = new Transaction(), walletKey
|
|
6499
|
-
|
|
6468
|
+
mintPresign({ tx = new Transaction(), walletKey }) {
|
|
6469
|
+
tx.moveCall({
|
|
6500
6470
|
target: `${__classPrivateFieldGet(this, _XSwap_packageId, "f")}::${Modules.XSwap}::${Functions.MintPresign}`,
|
|
6501
6471
|
arguments: [
|
|
6502
6472
|
this.mutableXSwapRef(tx),
|
|
6503
6473
|
this.mutableXCoreRef(tx),
|
|
6504
6474
|
this.mutableDwalletCoordinatorRef(tx),
|
|
6505
|
-
fee,
|
|
6506
6475
|
tx.pure.u64(walletKey),
|
|
6507
6476
|
],
|
|
6508
6477
|
});
|
|
6478
|
+
return tx;
|
|
6479
|
+
}
|
|
6480
|
+
takePresign({ tx = new Transaction(), walletKey, fee }) {
|
|
6481
|
+
const result = tx.moveCall({
|
|
6482
|
+
target: `${__classPrivateFieldGet(this, _XSwap_packageId, "f")}::${Modules.XSwap}::${Functions.TakePresign}`,
|
|
6483
|
+
arguments: [
|
|
6484
|
+
this.mutableXSwapRef(tx),
|
|
6485
|
+
this.mutableXCoreRef(tx),
|
|
6486
|
+
this.mutableDwalletCoordinatorRef(tx),
|
|
6487
|
+
tx.pure.u64(walletKey),
|
|
6488
|
+
fee,
|
|
6489
|
+
],
|
|
6490
|
+
});
|
|
6509
6491
|
return { tx, result };
|
|
6510
6492
|
}
|
|
6511
|
-
// === Manager ===
|
|
6512
6493
|
addManager({ tx = new Transaction(), manager }) {
|
|
6513
6494
|
tx.moveCall({
|
|
6514
6495
|
target: `${__classPrivateFieldGet(this, _XSwap_packageId, "f")}::${Modules.XSwap}::${Functions.AddManager}`,
|
|
@@ -6523,10 +6504,9 @@ class XSwap {
|
|
|
6523
6504
|
});
|
|
6524
6505
|
return tx;
|
|
6525
6506
|
}
|
|
6526
|
-
|
|
6527
|
-
setPresignFee({ tx = new Transaction(), adminCapId, fee }) {
|
|
6507
|
+
setRequestFee({ tx = new Transaction(), adminCapId, fee }) {
|
|
6528
6508
|
tx.moveCall({
|
|
6529
|
-
target: `${__classPrivateFieldGet(this, _XSwap_packageId, "f")}::${Modules.XSwap}::${Functions.
|
|
6509
|
+
target: `${__classPrivateFieldGet(this, _XSwap_packageId, "f")}::${Modules.XSwap}::${Functions.SetRequestFee}`,
|
|
6530
6510
|
arguments: [this.mutableXSwapRef(tx), tx.object(adminCapId), tx.pure.u64(fee)],
|
|
6531
6511
|
});
|
|
6532
6512
|
return tx;
|
|
@@ -6620,7 +6600,6 @@ class XSwap {
|
|
|
6620
6600
|
});
|
|
6621
6601
|
return tx;
|
|
6622
6602
|
}
|
|
6623
|
-
// === Getters ===
|
|
6624
6603
|
async getRequest({ requestId }) {
|
|
6625
6604
|
const [obj, dynamicFields] = await Promise.all([
|
|
6626
6605
|
__classPrivateFieldGet(this, _XSwap_suiClient, "f").getObject({
|
|
@@ -6637,7 +6616,7 @@ class XSwap {
|
|
|
6637
6616
|
return XSwap.parseRequestFields(fields, txBytes);
|
|
6638
6617
|
}
|
|
6639
6618
|
async resolveTxBytes(dynamicFieldsData, sourceChain) {
|
|
6640
|
-
const txBytesField = dynamicFieldsData.find((field) => field.name.type === `${__classPrivateFieldGet(this,
|
|
6619
|
+
const txBytesField = dynamicFieldsData.find((field) => field.name.type === `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.XSwap}::TxBytesKey`);
|
|
6641
6620
|
if (!txBytesField) {
|
|
6642
6621
|
return null;
|
|
6643
6622
|
}
|
|
@@ -6680,13 +6659,13 @@ class XSwap {
|
|
|
6680
6659
|
txBytes,
|
|
6681
6660
|
};
|
|
6682
6661
|
}
|
|
6683
|
-
async getFirstPresign({ owner, walletKey,
|
|
6684
|
-
const caps = await this.getPresignCaps({ owner, walletKey
|
|
6662
|
+
async getFirstPresign({ owner, walletKey, }) {
|
|
6663
|
+
const caps = await this.getPresignCaps({ owner, walletKey });
|
|
6685
6664
|
const first = caps[0];
|
|
6686
|
-
invariant(first, `getFirstPresign: no PresignCap found for owner ${owner} with walletKey ${walletKey}
|
|
6665
|
+
invariant(first, `getFirstPresign: no PresignCap found for owner ${owner} with walletKey ${walletKey}`);
|
|
6687
6666
|
return first;
|
|
6688
6667
|
}
|
|
6689
|
-
async getPresignCaps({ owner, walletKey,
|
|
6668
|
+
async getPresignCaps({ owner, walletKey, }) {
|
|
6690
6669
|
const ownedObjects = await __classPrivateFieldGet(this, _XSwap_suiClient, "f").getOwnedObjects({
|
|
6691
6670
|
owner,
|
|
6692
6671
|
filter: { StructType: PRESIGN_CAP_TYPE },
|
|
@@ -6697,14 +6676,9 @@ class XSwap {
|
|
|
6697
6676
|
invariant(obj.data?.content?.dataType === 'moveObject', `getPresignCaps: unexpected content type for ${obj.data?.objectId}`);
|
|
6698
6677
|
const fields = PresignCapFieldsRawSchema.parse(obj.data.content.fields);
|
|
6699
6678
|
const objWalletKey = BigInt(fields.wallet_key);
|
|
6700
|
-
const objAppTypeName = fields.app_type_name.fields.name;
|
|
6701
6679
|
if (walletKey !== undefined && objWalletKey !== walletKey) {
|
|
6702
6680
|
continue;
|
|
6703
6681
|
}
|
|
6704
|
-
if (appTypeName !== undefined &&
|
|
6705
|
-
normalizeStructTag(objAppTypeName) !== normalizeStructTag(appTypeName)) {
|
|
6706
|
-
continue;
|
|
6707
|
-
}
|
|
6708
6682
|
const presignSessionId = fields.cap.fields.presign_id;
|
|
6709
6683
|
const sessionObj = await __classPrivateFieldGet(this, _XSwap_suiClient, "f").getObject({
|
|
6710
6684
|
id: presignSessionId,
|
|
@@ -6712,6 +6686,8 @@ class XSwap {
|
|
|
6712
6686
|
});
|
|
6713
6687
|
invariant(sessionObj.data?.content?.dataType === 'moveObject', `getPresignCaps: failed to fetch presign session ${presignSessionId}`);
|
|
6714
6688
|
const sessionFields = PresignSessionFieldsRawSchema.parse(sessionObj.data.content.fields);
|
|
6689
|
+
if (!sessionFields.state.fields.presign)
|
|
6690
|
+
continue;
|
|
6715
6691
|
results.push({
|
|
6716
6692
|
presignCapId: obj.data.objectId,
|
|
6717
6693
|
presign: new Uint8Array(sessionFields.state.fields.presign),
|
|
@@ -6752,24 +6728,22 @@ class XSwap {
|
|
|
6752
6728
|
const [rawBytes] = result.results[0].returnValues[0];
|
|
6753
6729
|
return suiBcs.bool().parse(new Uint8Array(rawBytes));
|
|
6754
6730
|
}
|
|
6755
|
-
// === Events ===
|
|
6756
6731
|
getEventTypes() {
|
|
6757
6732
|
return {
|
|
6758
|
-
requestCreated: `${__classPrivateFieldGet(this,
|
|
6759
|
-
requestSettled: `${__classPrivateFieldGet(this,
|
|
6760
|
-
requestCancelled: `${__classPrivateFieldGet(this,
|
|
6761
|
-
requestExpired: `${__classPrivateFieldGet(this,
|
|
6762
|
-
requestWithdrawn: `${__classPrivateFieldGet(this,
|
|
6763
|
-
chainAdded: `${__classPrivateFieldGet(this,
|
|
6764
|
-
chainRemoved: `${__classPrivateFieldGet(this,
|
|
6765
|
-
paused: `${__classPrivateFieldGet(this,
|
|
6766
|
-
unpaused: `${__classPrivateFieldGet(this,
|
|
6767
|
-
solverAdded: `${__classPrivateFieldGet(this,
|
|
6768
|
-
solverRemoved: `${__classPrivateFieldGet(this,
|
|
6769
|
-
walletAdded: `${__classPrivateFieldGet(this,
|
|
6733
|
+
requestCreated: `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.Structs}::RequestCreated`,
|
|
6734
|
+
requestSettled: `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.Structs}::RequestSettled`,
|
|
6735
|
+
requestCancelled: `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.Structs}::RequestCancelled`,
|
|
6736
|
+
requestExpired: `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.Structs}::RequestExpired`,
|
|
6737
|
+
requestWithdrawn: `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.Structs}::RequestWithdrawn`,
|
|
6738
|
+
chainAdded: `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.Structs}::ChainAdded`,
|
|
6739
|
+
chainRemoved: `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.Structs}::ChainRemoved`,
|
|
6740
|
+
paused: `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.Structs}::Paused`,
|
|
6741
|
+
unpaused: `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.Structs}::Unpaused`,
|
|
6742
|
+
solverAdded: `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.Structs}::SolverAdded`,
|
|
6743
|
+
solverRemoved: `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.Structs}::SolverRemoved`,
|
|
6744
|
+
walletAdded: `${__classPrivateFieldGet(this, _XSwap_originalPackageId, "f")}::${Modules.Structs}::WalletAdded`,
|
|
6770
6745
|
};
|
|
6771
6746
|
}
|
|
6772
|
-
// === Helpers ===
|
|
6773
6747
|
immutableXSwapRef(tx) {
|
|
6774
6748
|
return tx.sharedObjectRef({
|
|
6775
6749
|
objectId: __classPrivateFieldGet(this, _XSwap_xswapSharedObjectData, "f").objectId,
|
|
@@ -6837,9 +6811,19 @@ class XSwap {
|
|
|
6837
6811
|
return __classPrivateFieldGet(this, _XSwap_suiClient, "f");
|
|
6838
6812
|
}
|
|
6839
6813
|
}
|
|
6840
|
-
_XSwap_suiClient = new WeakMap(), _XSwap_packageId = new WeakMap(), _XSwap_xswapSharedObjectData = new WeakMap(), _XSwap_xcoreSharedObjectData = new WeakMap(), _XSwap_registrySharedObjectData = new WeakMap(), _XSwap_dwalletCoordinatorSharedObjectData = new WeakMap(), _XSwap_enclaveSharedObjectData = new WeakMap();
|
|
6814
|
+
_XSwap_suiClient = new WeakMap(), _XSwap_packageId = new WeakMap(), _XSwap_originalPackageId = new WeakMap(), _XSwap_xswapSharedObjectData = new WeakMap(), _XSwap_xcoreSharedObjectData = new WeakMap(), _XSwap_registrySharedObjectData = new WeakMap(), _XSwap_dwalletCoordinatorSharedObjectData = new WeakMap(), _XSwap_enclaveSharedObjectData = new WeakMap();
|
|
6841
6815
|
|
|
6842
6816
|
var _EnclaveClient_instances, _EnclaveClient_baseUrl, _EnclaveClient_apiKey, _EnclaveClient_fetchFromEnclave, _EnclaveClient_validateDigest;
|
|
6817
|
+
const TEXT_DECODER = new TextDecoder();
|
|
6818
|
+
const TEXT_ENCODER = new TextEncoder();
|
|
6819
|
+
const encodeTokenForEnclave = (tokenBytes, chainId) => {
|
|
6820
|
+
if (chainId === ChainId.Sui) {
|
|
6821
|
+
const structTag = TEXT_DECODER.decode(tokenBytes);
|
|
6822
|
+
const normalized = normalizeStructTag(structTag);
|
|
6823
|
+
return toHex(TEXT_ENCODER.encode(normalized)).replace(/^0x/, '');
|
|
6824
|
+
}
|
|
6825
|
+
return toHex(tokenBytes).replace(/^0x/, '');
|
|
6826
|
+
};
|
|
6843
6827
|
class EnclaveClient {
|
|
6844
6828
|
constructor({ baseUrl, apiKey }) {
|
|
6845
6829
|
_EnclaveClient_instances.add(this);
|
|
@@ -6868,9 +6852,9 @@ class EnclaveClient {
|
|
|
6868
6852
|
source_chain: args.sourceChain,
|
|
6869
6853
|
destination_chain: args.destinationChain,
|
|
6870
6854
|
destination_address: toHex(args.destinationAddress).replace(/^0x/, ''),
|
|
6871
|
-
destination_token:
|
|
6855
|
+
destination_token: encodeTokenForEnclave(args.destinationToken, args.destinationChain),
|
|
6872
6856
|
solver_recipient: args.solverRecipient.replace(/^0x/, ''),
|
|
6873
|
-
source_token:
|
|
6857
|
+
source_token: encodeTokenForEnclave(args.sourceToken, args.sourceChain),
|
|
6874
6858
|
source_amount: args.sourceAmount.toString(),
|
|
6875
6859
|
nonce_account: nonceAccount,
|
|
6876
6860
|
sui_gas_price_multiplier: suiGasPriceMultiplier,
|
|
@@ -6883,7 +6867,7 @@ class EnclaveClient {
|
|
|
6883
6867
|
const raw = await __classPrivateFieldGet(this, _EnclaveClient_instances, "m", _EnclaveClient_fetchFromEnclave).call(this, '/withdraw_request', {
|
|
6884
6868
|
chain_id: args.chainId,
|
|
6885
6869
|
user: toHex(args.user).replace(/^0x/, ''),
|
|
6886
|
-
token:
|
|
6870
|
+
token: encodeTokenForEnclave(args.token, args.chainId),
|
|
6887
6871
|
amount: args.amount.toString(),
|
|
6888
6872
|
recipient: toHex(args.recipient).replace(/^0x/, ''),
|
|
6889
6873
|
nonce_account: nonceAccount,
|
|
@@ -6928,5 +6912,5 @@ _EnclaveClient_baseUrl = new WeakMap(), _EnclaveClient_apiKey = new WeakMap(), _
|
|
|
6928
6912
|
}
|
|
6929
6913
|
};
|
|
6930
6914
|
|
|
6931
|
-
export { ADMIN_CAP_OBJECT_ID, ChainId, DWALLET_COORDINATOR_INITIAL_SHARED_VERSION, DWALLET_COORDINATOR_OBJECT_ID, DWALLET_COORDINATOR_SHARED_OBJECT_DATA, DWalletAddress, DWalletId, EMPTY_PCR, ENCLAVE_CAP_OBJECT_ID, ENCLAVE_INITIAL_SHARED_VERSION, ENCLAVE_OBJECT_ID, ENCLAVE_SHARED_OBJECT_DATA, EnclaveClient, Functions, Intent$1 as Intent, MAINNET_PACKAGE_ID, Modules, PCR_LENGTH, PRESIGN_CAP_TYPE, RequestStatus, SOLANA_WALLET_CONFIG, SUI_WALLET_CONFIG, TxBytesKind, UPGRADE_CAP_OBJECT_ID, WITNESS_TYPE, WalletKey, XCORE_PACKAGE_ID, XCoreWalletId, XSWAP_INITIAL_SHARED_VERSION, XSWAP_OBJECT_ID, XSWAP_SHARED_OBJECT_DATA, XSWAP_TYPE, XSwap, extractEd25519PublicKey, extractSecp256k1PublicKey, parseU256LittleEndian, serializeSuiSecp256k1Signature };
|
|
6915
|
+
export { ADMIN_CAP_OBJECT_ID, ChainId, DWALLET_COORDINATOR_INITIAL_SHARED_VERSION, DWALLET_COORDINATOR_OBJECT_ID, DWALLET_COORDINATOR_SHARED_OBJECT_DATA, DWalletAddress, DWalletId, EMPTY_PCR, ENCLAVE_CAP_OBJECT_ID, ENCLAVE_INITIAL_SHARED_VERSION, ENCLAVE_OBJECT_ID, ENCLAVE_SHARED_OBJECT_DATA, EnclaveClient, Functions, Intent$1 as Intent, MAINNET_PACKAGE_ID, Modules, ORIGINAL_PACKAGE_ID, PCR_LENGTH, PRESIGN_CAP_TYPE, RequestStatus, SOLANA_WALLET_CONFIG, SUI_WALLET_CONFIG, TxBytesKind, UPGRADE_CAP_OBJECT_ID, WITNESS_TYPE, WalletKey, XCORE_PACKAGE_ID, XCoreWalletId, XSWAP_INITIAL_SHARED_VERSION, XSWAP_OBJECT_ID, XSWAP_SHARED_OBJECT_DATA, XSWAP_TYPE, XSwap, extractEd25519PublicKey, extractSecp256k1PublicKey, parseU256LittleEndian, serializeSuiSecp256k1Signature };
|
|
6932
6916
|
//# sourceMappingURL=index.mjs.map
|