@tradeport/sui-trading-sdk 0.1.0 → 0.1.2
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/CHANGELOG.md +12 -0
- package/dist/index.js +52 -37
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +52 -37
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/constants.ts +5 -0
- package/src/helpers/getRoyaltyRuleModule.ts +7 -0
- package/src/helpers/getSharedObjects.ts +6 -7
- package/src/helpers/kiosk/getKioskTransferPolicies.ts +1 -0
- package/src/methods/acceptCollectionBid/acceptCollectionBid.ts +1 -0
- package/src/methods/acceptCollectionBid/addAcceptCollectionBIdTxs.ts +7 -2
- package/src/methods/acceptNftBids/acceptNftBids.ts +2 -1
- package/src/methods/acceptNftBids/addAcceptNftBidTxs.ts +6 -2
- package/src/methods/buyListings/buyListings.ts +1 -1
- package/src/methods/listNfts/addListTxs.ts +6 -1
- package/src/methods/placeCollectionBids/addPlaceCollectionBidTxs.ts +6 -5
- package/src/methods/placeCollectionBids/placeCollectionBids.ts +6 -1
- package/src/methods/placeNftBids/addPlaceNftBidTxs.ts +12 -4
- package/src/methods/placeNftBids/placeNftBids.ts +1 -0
- package/src/methods/relistNft/relistNft.ts +9 -2
- package/src/methods/unlistListings/addUnlistListingTxs.ts +17 -3
package/CHANGELOG.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -243,6 +243,9 @@ var BASC_ROYALTY_DECIMAL_PERCENT = 0.055;
|
|
|
243
243
|
var DSL_LEGACY_ROYALTY_DECIMAL_PERCENT = 0.05;
|
|
244
244
|
var PREMIUM_NOMINATOR = 300n;
|
|
245
245
|
var PREMIUM_FEE_NOMINATOR = 2500n;
|
|
246
|
+
var ORIGIN_BYTE_NFT_TYPES_MISSING_ORDERBOOK = [
|
|
247
|
+
"0xc4fc5b341858ac6fff4859d8105e345b195847cd230e8538d61a2f319ae8093c::bluemove_launchpad::GOATsOfSui"
|
|
248
|
+
];
|
|
246
249
|
|
|
247
250
|
// src/graphql/queries/fetchSharedObjectsByType.ts
|
|
248
251
|
var import_graphql_request6 = require("graphql-request");
|
|
@@ -296,18 +299,15 @@ var getSharedObjects = async (nftType) => {
|
|
|
296
299
|
if (nftType === "0x5fe8e884960f6977f813d871a3d43049d72d19d4ad07819b979c06434f60af4d::mint::SuiEcosystemNFT") {
|
|
297
300
|
allowList = SUI_ECOSYSTEM_ORIGIN_BYTE_ALLOW_LIST_OBJECT;
|
|
298
301
|
}
|
|
299
|
-
|
|
302
|
+
const transferPolicy = res?.sharedObjects?.filter(
|
|
300
303
|
(object) => object?.module === "transfer_policy"
|
|
301
304
|
)?.[0]?.id;
|
|
305
|
+
let orderbook = res?.sharedObjects?.filter((object) => object?.module === "orderbook")?.[0]?.id;
|
|
302
306
|
if (nftTypeSplit?.join("::")?.includes("keepsake_nft::KEEPSAKE")) {
|
|
303
|
-
|
|
304
|
-
(object) => object?.type?.includes(
|
|
305
|
-
"0x02be8c4a1a3cea4d3255d870d367c87838a8cc2bfe4f216a6b67b153027087a7::transfer_policy::TransferPolicy"
|
|
306
|
-
)
|
|
307
|
-
)?.[0]?.id;
|
|
307
|
+
orderbook = null;
|
|
308
308
|
}
|
|
309
309
|
return {
|
|
310
|
-
orderbook
|
|
310
|
+
orderbook,
|
|
311
311
|
collection: res?.sharedObjects?.filter((object) => object?.module === "collection")?.[0]?.id,
|
|
312
312
|
marketplace: res?.sharedObjects?.filter((object) => object?.module === "marketplace")?.[0]?.id,
|
|
313
313
|
royaltyStrategy: res?.sharedObjects?.filter(
|
|
@@ -321,6 +321,17 @@ var getSharedObjects = async (nftType) => {
|
|
|
321
321
|
};
|
|
322
322
|
};
|
|
323
323
|
|
|
324
|
+
// src/utils/normalizeNftType.ts
|
|
325
|
+
var normalizedNftType = (nftType) => {
|
|
326
|
+
const nftTypeSplit = nftType?.split("::");
|
|
327
|
+
if (nftTypeSplit?.[0])
|
|
328
|
+
nftTypeSplit[0] = addLeadingZerosAfter0x(nftTypeSplit[0]);
|
|
329
|
+
return nftTypeSplit?.join("::");
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
// src/helpers/getRoyaltyRuleModule.ts
|
|
333
|
+
var getRoyaltyRuleModule = (nftType) => normalizedNftType(nftType) === "0xe7e651e4974fe367aa2837712d68081efb299c470242a15e2b9c26ea326159ec::card::SudoCard" ? "kiosk_royalty_rule" : "royalty_rule";
|
|
334
|
+
|
|
324
335
|
// src/graphql/queries/fetchTransferPoliciesByType.ts
|
|
325
336
|
var import_graphql_request7 = require("graphql-request");
|
|
326
337
|
var fetchTransferPoliciesByType = import_graphql_request7.gql`
|
|
@@ -334,14 +345,6 @@ var fetchTransferPoliciesByType = import_graphql_request7.gql`
|
|
|
334
345
|
}
|
|
335
346
|
`;
|
|
336
347
|
|
|
337
|
-
// src/utils/normalizeNftType.ts
|
|
338
|
-
var normalizedNftType = (nftType) => {
|
|
339
|
-
const nftTypeSplit = nftType?.split("::");
|
|
340
|
-
if (nftTypeSplit?.[0])
|
|
341
|
-
nftTypeSplit[0] = addLeadingZerosAfter0x(nftTypeSplit[0]);
|
|
342
|
-
return nftTypeSplit?.join("::");
|
|
343
|
-
};
|
|
344
|
-
|
|
345
348
|
// src/helpers/kiosk/getKioskTransferPolicies.ts
|
|
346
349
|
var getKioskTransferPolicies = async (nftType) => {
|
|
347
350
|
const res = await gqlChainRequest({
|
|
@@ -865,7 +868,8 @@ async function addTradeportKioskAcceptNftBidTx({
|
|
|
865
868
|
bidNonce,
|
|
866
869
|
nftTokenId,
|
|
867
870
|
nftType,
|
|
868
|
-
royaltyRulePackageId
|
|
871
|
+
royaltyRulePackageId,
|
|
872
|
+
royaltyRuleModule
|
|
869
873
|
}) {
|
|
870
874
|
const { transferPolicy } = sharedObjects;
|
|
871
875
|
const [feeCoin, transferRequest] = tx.moveCall({
|
|
@@ -882,7 +886,7 @@ async function addTradeportKioskAcceptNftBidTx({
|
|
|
882
886
|
typeArguments: [nftType]
|
|
883
887
|
});
|
|
884
888
|
tx.moveCall({
|
|
885
|
-
target: `${royaltyRulePackageId}::
|
|
889
|
+
target: `${royaltyRulePackageId}::${royaltyRuleModule}::pay`,
|
|
886
890
|
typeArguments: [nftType],
|
|
887
891
|
arguments: [tx.object(transferPolicy), transferRequest, feeCoin]
|
|
888
892
|
});
|
|
@@ -970,7 +974,8 @@ async function addTradePortAcceptNftBidTxHandler(txData) {
|
|
|
970
974
|
}
|
|
971
975
|
if (isTradePortKioskBid(bidType)) {
|
|
972
976
|
if (txData?.sellerKiosk) {
|
|
973
|
-
const
|
|
977
|
+
const royaltyRuleModule = getRoyaltyRuleModule(txData?.nftType);
|
|
978
|
+
const royaltyRulePackageId = await getRulePackageId(txData.nftType, royaltyRuleModule);
|
|
974
979
|
return kioskTxWrapper({
|
|
975
980
|
tx: txData?.tx,
|
|
976
981
|
kioskTx: txData?.kioskTx,
|
|
@@ -980,7 +985,8 @@ async function addTradePortAcceptNftBidTxHandler(txData) {
|
|
|
980
985
|
await addTradeportKioskAcceptNftBidTx({
|
|
981
986
|
...txData,
|
|
982
987
|
kioskTx,
|
|
983
|
-
royaltyRulePackageId
|
|
988
|
+
royaltyRulePackageId,
|
|
989
|
+
royaltyRuleModule
|
|
984
990
|
});
|
|
985
991
|
}
|
|
986
992
|
});
|
|
@@ -1130,7 +1136,7 @@ function addSomisUnlistTx({
|
|
|
1130
1136
|
});
|
|
1131
1137
|
}
|
|
1132
1138
|
async function addTradePortUnlistTxHandler(txData) {
|
|
1133
|
-
if (txData?.listingNonce && isOriginByteTx(txData?.sharedObjects)) {
|
|
1139
|
+
if (txData?.listingNonce && isOriginByteTx(txData?.sharedObjects) && !ORIGIN_BYTE_NFT_TYPES_MISSING_ORDERBOOK?.includes(normalizedNftType(txData?.nftType))) {
|
|
1134
1140
|
addOriginByteUnlistTx(txData);
|
|
1135
1141
|
return;
|
|
1136
1142
|
}
|
|
@@ -1154,7 +1160,7 @@ async function addTradePortUnlistTxHandler(txData) {
|
|
|
1154
1160
|
addTradePortUnlistTx(txData);
|
|
1155
1161
|
}
|
|
1156
1162
|
async function addHyperspaceUnlistTxHandler(txData) {
|
|
1157
|
-
if (txData?.listingNonce && isOriginByteTx(txData?.sharedObjects)) {
|
|
1163
|
+
if (txData?.listingNonce && isOriginByteTx(txData?.sharedObjects) && !ORIGIN_BYTE_NFT_TYPES_MISSING_ORDERBOOK?.includes(normalizedNftType(txData?.nftType))) {
|
|
1158
1164
|
addOriginByteUnlistTx(txData);
|
|
1159
1165
|
return;
|
|
1160
1166
|
}
|
|
@@ -1171,7 +1177,7 @@ async function addHyperspaceUnlistTxHandler(txData) {
|
|
|
1171
1177
|
});
|
|
1172
1178
|
}
|
|
1173
1179
|
async function addBluemoveUnlistTxHandler(txData) {
|
|
1174
|
-
if (txData?.listingNonce && isOriginByteTx(txData?.sharedObjects)) {
|
|
1180
|
+
if (txData?.listingNonce && isOriginByteTx(txData?.sharedObjects) && !ORIGIN_BYTE_NFT_TYPES_MISSING_ORDERBOOK?.includes(normalizedNftType(txData?.nftType))) {
|
|
1175
1181
|
addOriginByteUnlistTx(txData);
|
|
1176
1182
|
return;
|
|
1177
1183
|
}
|
|
@@ -1399,7 +1405,8 @@ async function addTradePortAcceptCollectionBidTxHandler(txData) {
|
|
|
1399
1405
|
}
|
|
1400
1406
|
if (isTradePortKioskBid(bidType)) {
|
|
1401
1407
|
if (txData?.sellerKiosk) {
|
|
1402
|
-
const
|
|
1408
|
+
const royaltyRuleModule = getRoyaltyRuleModule(txData?.nftType);
|
|
1409
|
+
const royaltyRulePackageId = await getRulePackageId(txData.nftType, royaltyRuleModule);
|
|
1403
1410
|
return kioskTxWrapper({
|
|
1404
1411
|
tx: txData?.tx,
|
|
1405
1412
|
kioskOwner: txData?.itemOwner,
|
|
@@ -1408,13 +1415,15 @@ async function addTradePortAcceptCollectionBidTxHandler(txData) {
|
|
|
1408
1415
|
await addTradeportKioskAcceptCollectionBidTx({
|
|
1409
1416
|
...txData,
|
|
1410
1417
|
kioskTx,
|
|
1411
|
-
royaltyRulePackageId
|
|
1418
|
+
royaltyRulePackageId,
|
|
1419
|
+
royaltyRuleModule
|
|
1412
1420
|
});
|
|
1413
1421
|
}
|
|
1414
1422
|
});
|
|
1415
1423
|
}
|
|
1416
1424
|
if (await hasTransferPolicyRules(txData?.nftType) && !txData?.sellerKiosk) {
|
|
1417
|
-
const
|
|
1425
|
+
const royaltyRuleModule = getRoyaltyRuleModule(txData?.nftType);
|
|
1426
|
+
const royaltyRulePackageId = await getRulePackageId(txData.nftType, royaltyRuleModule);
|
|
1418
1427
|
return kioskTxWrapper({
|
|
1419
1428
|
tx: txData?.tx,
|
|
1420
1429
|
kioskOwner: txData?.seller,
|
|
@@ -1427,7 +1436,8 @@ async function addTradePortAcceptCollectionBidTxHandler(txData) {
|
|
|
1427
1436
|
await addTradeportKioskAcceptCollectionBidTx({
|
|
1428
1437
|
...txData,
|
|
1429
1438
|
kioskTx,
|
|
1430
|
-
royaltyRulePackageId
|
|
1439
|
+
royaltyRulePackageId,
|
|
1440
|
+
royaltyRuleModule
|
|
1431
1441
|
});
|
|
1432
1442
|
}
|
|
1433
1443
|
});
|
|
@@ -2521,7 +2531,7 @@ async function addTradePortKioskListTx({
|
|
|
2521
2531
|
});
|
|
2522
2532
|
}
|
|
2523
2533
|
async function addTradePortListTxHandler(txData) {
|
|
2524
|
-
if (isOriginByteTx(txData?.sharedObjects)) {
|
|
2534
|
+
if (isOriginByteTx(txData?.sharedObjects) && !ORIGIN_BYTE_NFT_TYPES_MISSING_ORDERBOOK?.includes(normalizedNftType(txData?.nftType))) {
|
|
2525
2535
|
await addOriginByteListTx(txData);
|
|
2526
2536
|
return;
|
|
2527
2537
|
}
|
|
@@ -2627,7 +2637,7 @@ async function relistNft({ tx, nft, listPrice, sharedObjects, walletAddress }) {
|
|
|
2627
2637
|
};
|
|
2628
2638
|
switch (nft?.listings?.[0]?.market_name) {
|
|
2629
2639
|
case "tradeport":
|
|
2630
|
-
if (!isOriginByteTx(txData?.sharedObjects) && txData?.listingNonce && await isNonKioskListing(txData?.listingNonce)) {
|
|
2640
|
+
if ((!isOriginByteTx(txData?.sharedObjects) || ORIGIN_BYTE_NFT_TYPES_MISSING_ORDERBOOK?.includes(normalizedNftType(txData?.nftType))) && txData?.listingNonce && await isNonKioskListing(txData?.listingNonce)) {
|
|
2631
2641
|
addTradePortRelistTx({ ...txData, listPrice });
|
|
2632
2642
|
} else {
|
|
2633
2643
|
return kioskTxWrapper({
|
|
@@ -2653,7 +2663,7 @@ async function relistNft({ tx, nft, listPrice, sharedObjects, walletAddress }) {
|
|
|
2653
2663
|
await addTradePortListTxHandler({ ...txData, listPrice });
|
|
2654
2664
|
break;
|
|
2655
2665
|
case "bluemove":
|
|
2656
|
-
if (!isOriginByteTx(txData?.sharedObjects) && !txData?.sellerKiosk) {
|
|
2666
|
+
if (!isOriginByteTx(txData?.sharedObjects) || ORIGIN_BYTE_NFT_TYPES_MISSING_ORDERBOOK?.includes(normalizedNftType(txData?.nftType)) && !txData?.sellerKiosk) {
|
|
2657
2667
|
addBlueMoveRelistTx({ ...txData, listPrice });
|
|
2658
2668
|
} else {
|
|
2659
2669
|
await addBluemoveUnlistTxHandler(txData);
|
|
@@ -2880,8 +2890,11 @@ async function addOriginByteCollectionBidTx({
|
|
|
2880
2890
|
}
|
|
2881
2891
|
async function addTradePortPlaceCollectionBidTxHandler(txData) {
|
|
2882
2892
|
if (await hasRoyaltyRule(txData?.nftType)) {
|
|
2883
|
-
const royaltyRuleModule = txData?.
|
|
2884
|
-
const royaltyRulePackageId = await getRulePackageId(
|
|
2893
|
+
const royaltyRuleModule = getRoyaltyRuleModule(txData?.nftType);
|
|
2894
|
+
const royaltyRulePackageId = await getRulePackageId(
|
|
2895
|
+
txData.nftType,
|
|
2896
|
+
getRoyaltyRuleModule(txData?.collectionId)
|
|
2897
|
+
);
|
|
2885
2898
|
addTradePortKioskCollectionBidTx({ ...txData, royaltyRulePackageId, royaltyRuleModule });
|
|
2886
2899
|
return;
|
|
2887
2900
|
}
|
|
@@ -2929,7 +2942,7 @@ var placeCollectionBids = async ({
|
|
|
2929
2942
|
bidAmount: collections?.find((c) => c.id === collection?.id)?.bidAmountInMist
|
|
2930
2943
|
};
|
|
2931
2944
|
const numOfBids = collections?.find((c) => c.id === collection?.id)?.numOfBids;
|
|
2932
|
-
if (isOriginByteTx(txData?.sharedObjects)) {
|
|
2945
|
+
if (isOriginByteTx(txData?.sharedObjects) && !ORIGIN_BYTE_NFT_TYPES_MISSING_ORDERBOOK?.includes(normalizedNftType(txData?.nftType))) {
|
|
2933
2946
|
const { kiosk: bidderKiosk, isNewKiosk: isNewBidderKiosk } = await getOrCreateOBKiosk({
|
|
2934
2947
|
tx,
|
|
2935
2948
|
address: txData.bidder
|
|
@@ -2984,12 +2997,13 @@ function addTradePortKioskPlaceNftBidTx({
|
|
|
2984
2997
|
nftTokenId,
|
|
2985
2998
|
nftType,
|
|
2986
2999
|
bidAmount,
|
|
2987
|
-
royaltyRulePackageId
|
|
3000
|
+
royaltyRulePackageId,
|
|
3001
|
+
royaltyRuleModule
|
|
2988
3002
|
}) {
|
|
2989
3003
|
const { transferPolicy } = sharedObjects;
|
|
2990
3004
|
const marketFeePrice = getMarketFeePrice({ price: bidAmount, collectionId });
|
|
2991
3005
|
const royaltyCoin = tx.moveCall({
|
|
2992
|
-
target: `${royaltyRulePackageId}::
|
|
3006
|
+
target: `${royaltyRulePackageId}::${royaltyRuleModule}::fee_amount`,
|
|
2993
3007
|
arguments: [tx.object(transferPolicy), tx.pure.u64(bidAmount?.toString())],
|
|
2994
3008
|
typeArguments: [nftType]
|
|
2995
3009
|
});
|
|
@@ -3041,13 +3055,14 @@ async function addOriginBytePlaceNftBidTx({
|
|
|
3041
3055
|
destroyZeroCoin({ tx, coin });
|
|
3042
3056
|
}
|
|
3043
3057
|
async function addTradePortPlaceNftBidTxHandler(txData) {
|
|
3044
|
-
if (isOriginByteTx(txData?.sharedObjects)) {
|
|
3058
|
+
if (isOriginByteTx(txData?.sharedObjects) && !ORIGIN_BYTE_NFT_TYPES_MISSING_ORDERBOOK?.includes(normalizedNftType(txData?.nftType))) {
|
|
3045
3059
|
await addOriginBytePlaceNftBidTx(txData);
|
|
3046
3060
|
return;
|
|
3047
3061
|
}
|
|
3048
3062
|
if (await hasTransferPolicyRules(txData?.nftType) && txData?.sellerKiosk) {
|
|
3049
|
-
const
|
|
3050
|
-
|
|
3063
|
+
const royaltyRuleModule = getRoyaltyRuleModule(txData?.nftType);
|
|
3064
|
+
const royaltyRulePackageId = await getRulePackageId(txData.nftType, royaltyRuleModule);
|
|
3065
|
+
addTradePortKioskPlaceNftBidTx({ ...txData, royaltyRulePackageId, royaltyRuleModule });
|
|
3051
3066
|
return;
|
|
3052
3067
|
}
|
|
3053
3068
|
addTradePortPlaceNftBidTx(txData);
|