@tradeport/sui-trading-sdk 0.0.1 → 0.0.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 +6 -0
- package/dist/index.js +87 -55
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +87 -55
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/helpers/hasRoyaltyRule.ts +4 -9
- package/src/helpers/hasTransferPolicyRules.ts +3 -18
- package/src/helpers/kiosk/getKioskTransferPolicies.ts +16 -0
- package/src/methods/placeCollectionBids/addPlaceCollectionBidTxs.ts +29 -17
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @tradeport/sui-trading-sdk
|
|
2
2
|
|
|
3
|
+
## 0.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 485e023: Bug Fix: Fixed handling of Suiduckz and Cyberpills txs to list on TradePort's normal contract since they are untradable on OB or Kiosk contracts
|
|
8
|
+
|
|
3
9
|
## 0.0.1
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -317,27 +317,50 @@ var getSharedObjects = async (nftType) => {
|
|
|
317
317
|
};
|
|
318
318
|
};
|
|
319
319
|
|
|
320
|
-
// src/
|
|
321
|
-
var
|
|
322
|
-
var
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
320
|
+
// src/graphql/queries/fetchTransferPoliciesByType.ts
|
|
321
|
+
var import_graphql_request7 = require("graphql-request");
|
|
322
|
+
var fetchTransferPoliciesByType = import_graphql_request7.gql`
|
|
323
|
+
query fetchTransferPoliciesByType($type: String!) {
|
|
324
|
+
transfer_policies_by_type(type: $type) {
|
|
325
|
+
id
|
|
326
|
+
is_origin_byte
|
|
327
|
+
rules
|
|
328
|
+
type
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
`;
|
|
328
332
|
|
|
329
|
-
// src/helpers/
|
|
330
|
-
var
|
|
333
|
+
// src/helpers/kiosk/getKioskTransferPolicies.ts
|
|
334
|
+
var getKioskTransferPolicies = async (nftType) => {
|
|
331
335
|
const nftTypeSplit = nftType?.split("::");
|
|
332
336
|
if (nftTypeSplit?.[0])
|
|
333
337
|
nftTypeSplit[0] = addLeadingZerosAfter0x(nftTypeSplit[0]);
|
|
334
|
-
const res = await
|
|
335
|
-
|
|
338
|
+
const res = await gqlChainRequest({
|
|
339
|
+
chain: "sui",
|
|
340
|
+
query: fetchTransferPoliciesByType,
|
|
341
|
+
variables: { type: nftTypeSplit?.join("::") }
|
|
342
|
+
});
|
|
343
|
+
return res?.transfer_policies_by_type?.filter((policy) => !policy?.is_origin_byte);
|
|
344
|
+
};
|
|
345
|
+
|
|
346
|
+
// src/helpers/hasTransferPolicyRules.ts
|
|
347
|
+
var hasTransferPolicyRules = async (nftType) => {
|
|
348
|
+
const transferPolicies = await getKioskTransferPolicies(nftType);
|
|
349
|
+
return transferPolicies?.some((policy) => policy?.rules?.length > 0);
|
|
336
350
|
};
|
|
337
351
|
|
|
338
352
|
// src/helpers/kiosk/getRulePackageId.ts
|
|
339
353
|
var import_kiosk2 = require("@mysten/kiosk");
|
|
340
354
|
|
|
355
|
+
// src/apiClients/kioskClient.ts
|
|
356
|
+
var import_kiosk = require("@mysten/kiosk");
|
|
357
|
+
var kioskClient = new import_kiosk.KioskClient({
|
|
358
|
+
// @ts-ignore
|
|
359
|
+
client: suiClient_default,
|
|
360
|
+
network: import_kiosk.Network.MAINNET
|
|
361
|
+
});
|
|
362
|
+
var kioskClient_default = kioskClient;
|
|
363
|
+
|
|
341
364
|
// src/utils/addHexPrefix.ts
|
|
342
365
|
function addHexPrefix(input) {
|
|
343
366
|
if (input.startsWith("0x")) {
|
|
@@ -372,8 +395,8 @@ var isTradePortKioskBid = (bidType) => bidType === TRADEPORT_KIOSK_BID_NONCE_TYP
|
|
|
372
395
|
var import_kiosk3 = require("@mysten/kiosk");
|
|
373
396
|
|
|
374
397
|
// src/graphql/queries/fetchKiosksByOwner.ts
|
|
375
|
-
var
|
|
376
|
-
var fetchKiosksByOwner =
|
|
398
|
+
var import_graphql_request8 = require("graphql-request");
|
|
399
|
+
var fetchKiosksByOwner = import_graphql_request8.gql`
|
|
377
400
|
query fetchKiosksByOwner($ownerAddress: String!) {
|
|
378
401
|
kiosks: kiosks_by_owner_address(owner_address: $ownerAddress) {
|
|
379
402
|
id
|
|
@@ -386,8 +409,8 @@ var fetchKiosksByOwner = import_graphql_request7.gql`
|
|
|
386
409
|
`;
|
|
387
410
|
|
|
388
411
|
// src/graphql/queries/fetchOwnerCapByKiosk.ts
|
|
389
|
-
var
|
|
390
|
-
var fetchOwnerCapByKiosk =
|
|
412
|
+
var import_graphql_request9 = require("graphql-request");
|
|
413
|
+
var fetchOwnerCapByKiosk = import_graphql_request9.gql`
|
|
391
414
|
query fetchOwnerCapByKiosk($kioskId: String!) {
|
|
392
415
|
ownerCap: kiosk_owner_cap_by_kiosk(kiosk_id: $kioskId) {
|
|
393
416
|
id
|
|
@@ -397,8 +420,8 @@ var fetchOwnerCapByKiosk = import_graphql_request8.gql`
|
|
|
397
420
|
`;
|
|
398
421
|
|
|
399
422
|
// src/graphql/queries/fetchPersonalCapByKiosk.ts
|
|
400
|
-
var
|
|
401
|
-
var fetchPersonalCapByKiosk =
|
|
423
|
+
var import_graphql_request10 = require("graphql-request");
|
|
424
|
+
var fetchPersonalCapByKiosk = import_graphql_request10.gql`
|
|
402
425
|
query fetchPersonalCapByKiosk($kioskId: String!) {
|
|
403
426
|
personalCap: personal_kiosk_cap_by_kiosk(kiosk_id: $kioskId) {
|
|
404
427
|
id
|
|
@@ -515,8 +538,8 @@ var createOBKiosk = async ({ txBlock, createMethod = "new" }) => {
|
|
|
515
538
|
};
|
|
516
539
|
|
|
517
540
|
// src/helpers/originByte/getOBKiosk.ts
|
|
518
|
-
var
|
|
519
|
-
var fetchAccountKiosks =
|
|
541
|
+
var import_graphql_request11 = require("graphql-request");
|
|
542
|
+
var fetchAccountKiosks = import_graphql_request11.gql`
|
|
520
543
|
query fetchAccountKiosks($accountAddress: String!) {
|
|
521
544
|
kiosks: kiosks_by_owner_address(owner_address: $accountAddress) {
|
|
522
545
|
id
|
|
@@ -1544,8 +1567,8 @@ var acceptCollectionBid = async ({
|
|
|
1544
1567
|
var import_transactions2 = require("@mysten/sui.js/transactions");
|
|
1545
1568
|
|
|
1546
1569
|
// src/graphql/queries/fetchBidsById.ts
|
|
1547
|
-
var
|
|
1548
|
-
var fetchBidsById =
|
|
1570
|
+
var import_graphql_request12 = require("graphql-request");
|
|
1571
|
+
var fetchBidsById = import_graphql_request12.gql`
|
|
1549
1572
|
query fetchBidsById($bidIds: [uuid!]) {
|
|
1550
1573
|
bids(where: { id: { _in: $bidIds } }) {
|
|
1551
1574
|
nonce
|
|
@@ -1633,8 +1656,8 @@ var acceptNftBids = async ({ bidIds }) => {
|
|
|
1633
1656
|
var import_transactions3 = require("@mysten/sui.js/transactions");
|
|
1634
1657
|
|
|
1635
1658
|
// src/graphql/queries/fetchListingsById.ts
|
|
1636
|
-
var
|
|
1637
|
-
var fetchListingsById =
|
|
1659
|
+
var import_graphql_request13 = require("graphql-request");
|
|
1660
|
+
var fetchListingsById = import_graphql_request13.gql`
|
|
1638
1661
|
query fetchListingsById($listingIds: [uuid!]) {
|
|
1639
1662
|
listings(where: { id: { _in: $listingIds } }) {
|
|
1640
1663
|
seller
|
|
@@ -1669,8 +1692,8 @@ var addThirdPartyTxFee = async (txBlock, price) => {
|
|
|
1669
1692
|
};
|
|
1670
1693
|
|
|
1671
1694
|
// src/graphql/queries/fetchCommissionByListingId.ts
|
|
1672
|
-
var
|
|
1673
|
-
var fetchCommissionByNftContractId =
|
|
1695
|
+
var import_graphql_request14 = require("graphql-request");
|
|
1696
|
+
var fetchCommissionByNftContractId = import_graphql_request14.gql`
|
|
1674
1697
|
query fetchCommissionByNftContractId($nftContractId: uuid!) {
|
|
1675
1698
|
commissions(where: { contract_id: { _eq: $nftContractId } }) {
|
|
1676
1699
|
is_custodial
|
|
@@ -2699,8 +2722,8 @@ var listNfts = async ({ nfts, walletAddress }) => {
|
|
|
2699
2722
|
var import_transactions6 = require("@mysten/sui.js/transactions");
|
|
2700
2723
|
|
|
2701
2724
|
// src/graphql/queries/fetchCollectionsById.ts
|
|
2702
|
-
var
|
|
2703
|
-
var fetchCollectionsById =
|
|
2725
|
+
var import_graphql_request15 = require("graphql-request");
|
|
2726
|
+
var fetchCollectionsById = import_graphql_request15.gql`
|
|
2704
2727
|
query fetchCollectionsById($collectionIds: [uuid!]) {
|
|
2705
2728
|
collections(where: { id: { _in: $collectionIds } }) {
|
|
2706
2729
|
id
|
|
@@ -2710,7 +2733,7 @@ var fetchCollectionsById = import_graphql_request14.gql`
|
|
|
2710
2733
|
}
|
|
2711
2734
|
}
|
|
2712
2735
|
`;
|
|
2713
|
-
var fetchCollectionsByIdWithOneNft =
|
|
2736
|
+
var fetchCollectionsByIdWithOneNft = import_graphql_request15.gql`
|
|
2714
2737
|
query fetchCollectionsByIdWithOneNft($collectionIds: [uuid!]) {
|
|
2715
2738
|
collections(where: { id: { _in: $collectionIds } }) {
|
|
2716
2739
|
id
|
|
@@ -2745,12 +2768,9 @@ var getTradeportBiddingContractBidAmount = ({ bidAmount, collectionId }) => {
|
|
|
2745
2768
|
|
|
2746
2769
|
// src/helpers/hasRoyaltyRule.ts
|
|
2747
2770
|
var hasRoyaltyRule = async (nftType) => {
|
|
2748
|
-
const
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
const res = await kioskClient_default.getTransferPolicies({ type: nftTypeSplit?.join("::") });
|
|
2752
|
-
return res?.some(
|
|
2753
|
-
(policy) => policy?.rules?.filter((rule) => rule?.includes("royalty_rule"))?.length > 0
|
|
2771
|
+
const transferPolicies = await getKioskTransferPolicies(nftType);
|
|
2772
|
+
return transferPolicies?.some(
|
|
2773
|
+
(policy) => policy?.rules?.filter((rule) => rule?.type?.includes("royalty_rule"))?.length > 0
|
|
2754
2774
|
);
|
|
2755
2775
|
};
|
|
2756
2776
|
|
|
@@ -2783,36 +2803,48 @@ function addTradePortKioskCollectionBidTx({
|
|
|
2783
2803
|
nftType,
|
|
2784
2804
|
bidAmount,
|
|
2785
2805
|
sharedObjects,
|
|
2786
|
-
bidder,
|
|
2787
2806
|
royaltyRulePackageId,
|
|
2788
2807
|
royaltyRuleModule
|
|
2789
2808
|
}) {
|
|
2790
2809
|
const { transferPolicy } = sharedObjects;
|
|
2791
|
-
const marketFeePrice = getMarketFeePrice({
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2810
|
+
const marketFeePrice = getMarketFeePrice({
|
|
2811
|
+
price: bidAmount,
|
|
2812
|
+
collectionId
|
|
2813
|
+
});
|
|
2814
|
+
let coin;
|
|
2815
|
+
if (royaltyRulePackageId && royaltyRuleModule) {
|
|
2816
|
+
const fee = txBlock.moveCall({
|
|
2817
|
+
target: `${royaltyRulePackageId}::${royaltyRuleModule}::fee_amount`,
|
|
2818
|
+
arguments: [txBlock.object(transferPolicy), txBlock.pure(bidAmount)],
|
|
2819
|
+
typeArguments: [nftType]
|
|
2820
|
+
});
|
|
2821
|
+
const [coin1, coin2] = splitCoins({
|
|
2822
|
+
txBlock,
|
|
2823
|
+
amounts: [txBlock.pure(bidAmount + marketFeePrice), txBlock.object(fee)]
|
|
2824
|
+
});
|
|
2825
|
+
coin = coin1;
|
|
2826
|
+
if (!coin1 || !coin2)
|
|
2827
|
+
throw new Error("Coin could not be split");
|
|
2828
|
+
txBlock.mergeCoins(txBlock.object(coin1), [txBlock.object(coin2)]);
|
|
2829
|
+
} else {
|
|
2830
|
+
const [coin1] = splitCoins({
|
|
2831
|
+
txBlock,
|
|
2832
|
+
amounts: [txBlock.pure(bidAmount + marketFeePrice)]
|
|
2833
|
+
});
|
|
2834
|
+
coin = coin1;
|
|
2835
|
+
}
|
|
2804
2836
|
txBlock.moveCall({
|
|
2805
2837
|
target: "0x33a9e4a3089d911c2a2bf16157a1d6a4a8cbd9a2106a98ecbaefe6ed370d7a25::kiosk_biddings::collection_bid",
|
|
2806
2838
|
arguments: [
|
|
2807
2839
|
txBlock.object(TRADEPORT_KIOSK_BIDDING_STORE),
|
|
2808
2840
|
txBlock.pure(bidAmount),
|
|
2809
|
-
txBlock.object(
|
|
2841
|
+
txBlock.object(coin),
|
|
2810
2842
|
txBlock.pure(marketFeePrice),
|
|
2811
2843
|
txBlock.pure(TRADEPORT_BENEFICIARY_ADDRESS)
|
|
2812
2844
|
],
|
|
2813
2845
|
typeArguments: [nftType]
|
|
2814
2846
|
});
|
|
2815
|
-
destroyZeroCoin({ txBlock, coin
|
|
2847
|
+
destroyZeroCoin({ txBlock, coin });
|
|
2816
2848
|
}
|
|
2817
2849
|
async function addOriginByteCollectionBidTx({
|
|
2818
2850
|
txBlock,
|
|
@@ -3315,8 +3347,8 @@ var removeNftBids = async ({ bidIds }) => {
|
|
|
3315
3347
|
var import_transactions10 = require("@mysten/sui.js/transactions");
|
|
3316
3348
|
|
|
3317
3349
|
// src/graphql/queries/fetchCryptoToUsdRate.ts
|
|
3318
|
-
var
|
|
3319
|
-
var fetchCryptoToUsdRate =
|
|
3350
|
+
var import_graphql_request16 = require("graphql-request");
|
|
3351
|
+
var fetchCryptoToUsdRate = import_graphql_request16.gql`
|
|
3320
3352
|
query fetchCryptoToUsdRate($crypto: String!) {
|
|
3321
3353
|
crypto_rates(where: { crypto: { _eq: $crypto }, fiat: { _eq: "USD" } }) {
|
|
3322
3354
|
crypto
|
|
@@ -3354,8 +3386,8 @@ var addOneDollarFee = async (txBlock) => {
|
|
|
3354
3386
|
};
|
|
3355
3387
|
|
|
3356
3388
|
// src/graphql/queries/fetchAccountKiosks.ts
|
|
3357
|
-
var
|
|
3358
|
-
var fetchAccountKiosks2 =
|
|
3389
|
+
var import_graphql_request17 = require("graphql-request");
|
|
3390
|
+
var fetchAccountKiosks2 = import_graphql_request17.gql`
|
|
3359
3391
|
query fetchAccountKiosks($accountAddress: String!) {
|
|
3360
3392
|
kiosks: kiosks_by_owner_address(owner_address: $accountAddress) {
|
|
3361
3393
|
id
|