@tradeport/sui-trading-sdk 0.4.48 → 0.4.49
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/index.js +44 -28
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +44 -28
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/constants.ts +6 -3
- package/src/methods/buyListings/addBuyListingTxs.ts +21 -0
- package/src/methods/transferNfts/addTransferNftTx.ts +15 -25
- package/src/methods/transferNfts/transferNfts.ts +7 -2
- package/src/methods/unlistListings/addUnlistListingTxs.ts +20 -0
package/dist/index.mjs
CHANGED
|
@@ -109,14 +109,15 @@ var fetchCollectionBidsAtSamePrice = gql3`
|
|
|
109
109
|
import { Transaction as Transaction2 } from "@mysten/sui/transactions";
|
|
110
110
|
|
|
111
111
|
// src/constants.ts
|
|
112
|
-
var
|
|
112
|
+
var MYSTEN_TRANSFER_POLICY_RULES_PACKAGE_ID = "0x434b5bd8f6a7b05fede0ff46c6e511d71ea326ed38056e3bcd681d2d7c2a7879";
|
|
113
|
+
var MYSTEN_TRANSFER_POLICY_RULES_PACKAGE_ID_V2 = "0x0cb4bcc0560340eb1a1b929cabe56b33fc6449820ec8c1980d69bb98b649b802";
|
|
113
114
|
var TRADEPORT_BENEFICIARY_ADDRESS = "0xbca3b5c01c8d1a93aed3a036feff45145518292dd3c1db1d67cc99a699a7b517";
|
|
114
115
|
var TRADEPORT_DEFAULT_FEE_DECIMAL_PERCENT = 0.03;
|
|
115
116
|
var TRADEPORT_THIRD_PARTY_FEE_DECIMAL_PERCENT = 5e-3;
|
|
116
117
|
var TRADEPORT_LISTINGS_DEFAULT_COMMISSION_BPS = 300;
|
|
117
118
|
var TRADEPORT_LISTING_STORE = "0x47cba0b6309a12ce39f9306e28b899ed4b3698bce4f4911fd0c58ff2329a2ff6";
|
|
118
119
|
var TRADEPORT_BIDDING_STORE = "0x3d3b0c6e616fdc1a45b2b73d022bc085448e78bd729d28081c7a340abb33cba1";
|
|
119
|
-
var TRADEPORT_LISTINGS_PACKAGE = "
|
|
120
|
+
var TRADEPORT_LISTINGS_PACKAGE = "0x6cfe7388ccf732432906d7faebcc33fd91e11d4c2f8cb3ae0082b8d3269e3d5b";
|
|
120
121
|
var TRADEPORT_LISTINGS_STORE = "0xf96f9363ac5a64c058bf7140723226804d74c0dab2dd27516fb441a180cd763b";
|
|
121
122
|
var TRADEPORT_KIOSK_LISTING_STORE = "0xbff3161b047fb8b727883838c09b08afa9e0dd0f5488bde9e99e80643da9b9e0";
|
|
122
123
|
var TRADEPORT_KIOSK_TRANSFERS_STORE = "0xe0f61b6915d3fd4ec8bbe4618514e2152a82841605bfa00cde22ace434153a1b";
|
|
@@ -126,7 +127,7 @@ var TRADEPORT_KIOSK_BIDDING_ESCROW_KIOSK = "0x151fbe627d3f8de855f424c879ea2176d8
|
|
|
126
127
|
var TRADEPORT_KIOSK_BID_NONCE_TYPE = "0xec175e537be9e48f75fa6929291de6454d2502f1091feb22c0d26a22821bbf28::kiosk_biddings::Bid";
|
|
127
128
|
var TRADEPORT_PRICE_LOCK_PACKAGE = "0x3cb532a2548290780a3d70ad6f4f06abc5bebb75ec6f8dd0197d4d2b2860c5d8";
|
|
128
129
|
var TRADEPORT_PRICE_LOCK_STORE = "0x4b705de46a79b29276baf45009bc7d6f70cc0f1407f0c9e03cac5729c0c47946";
|
|
129
|
-
var TRADEPORT_MULTI_BID_PACKAGE = "
|
|
130
|
+
var TRADEPORT_MULTI_BID_PACKAGE = "0x63ce6caee2ba264e92bca2d160036eb297d99b2d91d4db89d48a9bffca66e55b";
|
|
130
131
|
var TRADEPORT_MULTI_BID_PACKAGE_ORIGINAL = "0x53134eb544c5a0b5085e99efaf7eab13b28ad123de35d61f941f8c8c40b72033";
|
|
131
132
|
var TRADEPORT_MULTI_BID_STORE = "0x8aaed7e884343fb8b222c721d02eaac2c6ae2abbb4ddcdf16cb55cf8754ee860";
|
|
132
133
|
var DexConstants = {
|
|
@@ -1107,6 +1108,7 @@ var DYNAMIC_COLLECTION_IDS = [
|
|
|
1107
1108
|
"75381a59-abde-4e4b-aac9-b1c5ba10b4da"
|
|
1108
1109
|
// Claynosaurz: Phantom Purr-ize Patch
|
|
1109
1110
|
];
|
|
1111
|
+
var XOCIETY_FRONTIER_COLLECTION_ID = "9a0fcf4f-c77c-42d8-acad-5054e025eb53";
|
|
1110
1112
|
|
|
1111
1113
|
// src/graphql/queries/fetchNftsById.ts
|
|
1112
1114
|
import { gql as gql4 } from "graphql-request";
|
|
@@ -2763,6 +2765,22 @@ async function addTradePortUnlistTxHandler(txData) {
|
|
|
2763
2765
|
...txData,
|
|
2764
2766
|
kioskTx
|
|
2765
2767
|
});
|
|
2768
|
+
if (txData?.collectionId === XOCIETY_FRONTIER_COLLECTION_ID) {
|
|
2769
|
+
const borrowedItem = await takeAndBorrowNftFromKiosk({
|
|
2770
|
+
tx: txData?.tx,
|
|
2771
|
+
transferPolicies: txData?.transferPolicies,
|
|
2772
|
+
kioskTx,
|
|
2773
|
+
kioskClient: txData?.kioskClient,
|
|
2774
|
+
nftTokenId: txData?.nftTokenId,
|
|
2775
|
+
nftType: txData?.nftType,
|
|
2776
|
+
suiClient: txData?.suiClient,
|
|
2777
|
+
kioskOwner: txData?.seller
|
|
2778
|
+
});
|
|
2779
|
+
txData?.tx.transferObjects(
|
|
2780
|
+
[txData?.tx.object(borrowedItem)],
|
|
2781
|
+
txData?.tx.pure.address(addLeadingZerosAfter0x(txData?.seller))
|
|
2782
|
+
);
|
|
2783
|
+
}
|
|
2766
2784
|
}
|
|
2767
2785
|
});
|
|
2768
2786
|
}
|
|
@@ -4449,6 +4467,22 @@ async function addTradePortBuyTxHandler(txData) {
|
|
|
4449
4467
|
...txData,
|
|
4450
4468
|
kioskTx
|
|
4451
4469
|
});
|
|
4470
|
+
if (txData?.collectionId === XOCIETY_FRONTIER_COLLECTION_ID) {
|
|
4471
|
+
const borrowedItem = await takeAndBorrowNftFromKiosk({
|
|
4472
|
+
tx: txData?.tx,
|
|
4473
|
+
transferPolicies: txData?.transferPolicies,
|
|
4474
|
+
kioskTx,
|
|
4475
|
+
kioskClient: txData?.kioskClient,
|
|
4476
|
+
nftTokenId: txData?.nftTokenId,
|
|
4477
|
+
nftType: txData?.nftType,
|
|
4478
|
+
suiClient: txData?.suiClient,
|
|
4479
|
+
kioskOwner: txData?.buyer
|
|
4480
|
+
});
|
|
4481
|
+
txData?.tx.transferObjects(
|
|
4482
|
+
[txData?.tx.object(borrowedItem)],
|
|
4483
|
+
txData?.tx.pure.address(addLeadingZerosAfter0x(txData?.buyer))
|
|
4484
|
+
);
|
|
4485
|
+
}
|
|
4452
4486
|
}
|
|
4453
4487
|
});
|
|
4454
4488
|
}
|
|
@@ -6359,19 +6393,6 @@ async function addTradeportKioskDirectTransferTx(txData, nfts, suiClient) {
|
|
|
6359
6393
|
if (nfts.length === 0) {
|
|
6360
6394
|
return;
|
|
6361
6395
|
}
|
|
6362
|
-
const [receiverKiosk, receiverKioskCap] = tx.moveCall({
|
|
6363
|
-
target: "0x2::kiosk::new",
|
|
6364
|
-
arguments: []
|
|
6365
|
-
});
|
|
6366
|
-
const recipientAddressWithPrefix = addLeadingZerosAfter0x(recipientAddress);
|
|
6367
|
-
tx.moveCall({
|
|
6368
|
-
target: "0x2::kiosk::set_owner_custom",
|
|
6369
|
-
arguments: [
|
|
6370
|
-
tx.object(receiverKiosk),
|
|
6371
|
-
tx.object(receiverKioskCap),
|
|
6372
|
-
tx.pure.address(recipientAddressWithPrefix)
|
|
6373
|
-
]
|
|
6374
|
-
});
|
|
6375
6396
|
const transferPolicies = new Map(
|
|
6376
6397
|
await Promise.all(
|
|
6377
6398
|
nfts.map(
|
|
@@ -6402,12 +6423,11 @@ async function addTradeportKioskDirectTransferTx(txData, nfts, suiClient) {
|
|
|
6402
6423
|
shouldUseSharedKioskTx: false,
|
|
6403
6424
|
async runCommands(kioskTx) {
|
|
6404
6425
|
tx.moveCall({
|
|
6405
|
-
target: "
|
|
6426
|
+
target: "0x4acc0efedd243eb61ab8f8a3e9c24b09a1838c43d16029e8c8985004dfd67239::kiosk_transfers::direct_transfer_to_receiver",
|
|
6406
6427
|
arguments: [
|
|
6407
6428
|
tx.object(kioskTx.getKiosk()),
|
|
6408
6429
|
tx.object(kioskTx.getKioskCap()),
|
|
6409
|
-
tx.
|
|
6410
|
-
tx.object(receiverKioskCap),
|
|
6430
|
+
tx.pure.address(recipientAddress),
|
|
6411
6431
|
tx.pure.id(nft.token_id),
|
|
6412
6432
|
tx.object(transferPolicies.get(nft.id).id),
|
|
6413
6433
|
royaltyCoin
|
|
@@ -6417,12 +6437,6 @@ async function addTradeportKioskDirectTransferTx(txData, nfts, suiClient) {
|
|
|
6417
6437
|
}
|
|
6418
6438
|
});
|
|
6419
6439
|
}
|
|
6420
|
-
tx.transferObjects([receiverKioskCap], tx.pure.address(recipientAddressWithPrefix));
|
|
6421
|
-
tx.moveCall({
|
|
6422
|
-
target: "0x2::transfer::public_share_object",
|
|
6423
|
-
arguments: [receiverKiosk],
|
|
6424
|
-
typeArguments: ["0x2::kiosk::Kiosk"]
|
|
6425
|
-
});
|
|
6426
6440
|
destroyZeroCoin({ tx, coin: royaltyCoin });
|
|
6427
6441
|
}
|
|
6428
6442
|
async function canBeTransferedDirectly(suiClient, collectionChainState) {
|
|
@@ -6431,7 +6445,7 @@ async function canBeTransferedDirectly(suiClient, collectionChainState) {
|
|
|
6431
6445
|
async function getTransferPolicyForDirectTransfer(suiClient, collectionChainState, validateRules = false) {
|
|
6432
6446
|
const candidatePolicy = collectionChainState?.transfer_policies?.find(
|
|
6433
6447
|
(policy) => !policy.is_origin_byte && !policy.is_disabled && policy.rules.length > 0 && policy.rules?.filter(
|
|
6434
|
-
(rule) => rule.type !== "kiosk_lock_rule" && rule.type !== "royalty_rule"
|
|
6448
|
+
(rule) => rule.type !== "kiosk_lock_rule" && rule.type !== "royalty_rule" && rule.type !== "personal_kiosk_rule"
|
|
6435
6449
|
).length === 0
|
|
6436
6450
|
);
|
|
6437
6451
|
if (validateRules && candidatePolicy) {
|
|
@@ -6439,7 +6453,9 @@ async function getTransferPolicyForDirectTransfer(suiClient, collectionChainStat
|
|
|
6439
6453
|
suiClient,
|
|
6440
6454
|
transferPolicyId: candidatePolicy.id
|
|
6441
6455
|
});
|
|
6442
|
-
if (!ruleNames.every(
|
|
6456
|
+
if (!ruleNames.every(
|
|
6457
|
+
(name) => name.startsWith(MYSTEN_TRANSFER_POLICY_RULES_PACKAGE_ID) || name.startsWith(MYSTEN_TRANSFER_POLICY_RULES_PACKAGE_ID_V2)
|
|
6458
|
+
)) {
|
|
6443
6459
|
return void 0;
|
|
6444
6460
|
}
|
|
6445
6461
|
}
|
|
@@ -7230,7 +7246,7 @@ var transferNfts = async ({ nftIds, recipientAddress, walletAddress }, context)
|
|
|
7230
7246
|
await addOriginByteTransferNftTx(txData);
|
|
7231
7247
|
continue;
|
|
7232
7248
|
}
|
|
7233
|
-
if (txData?.senderKiosk && !hasNativeKioskTransferPolicyRules(txData?.transferPolicies)) {
|
|
7249
|
+
if (txData?.senderKiosk && (!hasNativeKioskTransferPolicyRules(txData?.transferPolicies) || nft?.collection?.id === XOCIETY_FRONTIER_COLLECTION_ID)) {
|
|
7234
7250
|
await kioskTxWrapper({
|
|
7235
7251
|
tx: txData?.tx,
|
|
7236
7252
|
kioskClient: txData?.kioskClient,
|