@mysten/kiosk 0.14.6 → 1.0.1
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 +114 -2
- package/dist/client/kiosk-client.d.mts +126 -0
- package/dist/client/kiosk-client.d.mts.map +1 -0
- package/dist/client/kiosk-client.mjs +124 -0
- package/dist/client/kiosk-client.mjs.map +1 -0
- package/dist/client/kiosk-transaction.d.mts +236 -0
- package/dist/client/kiosk-transaction.d.mts.map +1 -0
- package/dist/client/kiosk-transaction.mjs +472 -0
- package/dist/client/kiosk-transaction.mjs.map +1 -0
- package/dist/client/tp-transaction.d.mts +139 -0
- package/dist/client/tp-transaction.d.mts.map +1 -0
- package/dist/client/tp-transaction.mjs +273 -0
- package/dist/client/tp-transaction.mjs.map +1 -0
- package/dist/constants.d.mts +42 -0
- package/dist/constants.d.mts.map +1 -0
- package/dist/constants.mjs +62 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/contracts/0x2/bag.mjs +19 -0
- package/dist/contracts/0x2/bag.mjs.map +1 -0
- package/dist/contracts/0x2/balance.mjs +20 -0
- package/dist/contracts/0x2/balance.mjs.map +1 -0
- package/dist/contracts/0x2/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs +16 -0
- package/dist/contracts/0x2/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs.map +1 -0
- package/dist/contracts/0x2/kiosk.mjs +244 -0
- package/dist/contracts/0x2/kiosk.mjs.map +1 -0
- package/dist/contracts/0x2/kiosk_extension.mjs +25 -0
- package/dist/contracts/0x2/kiosk_extension.mjs.map +1 -0
- package/dist/contracts/0x2/transfer_policy.mjs +99 -0
- package/dist/contracts/0x2/transfer_policy.mjs.map +1 -0
- package/dist/contracts/0x2/vec_set.mjs +18 -0
- package/dist/contracts/0x2/vec_set.mjs.map +1 -0
- package/dist/contracts/kiosk/deps/sui/kiosk.mjs +98 -0
- package/dist/contracts/kiosk/deps/sui/kiosk.mjs.map +1 -0
- package/dist/contracts/kiosk/floor_price_rule.mjs +70 -0
- package/dist/contracts/kiosk/floor_price_rule.mjs.map +1 -0
- package/dist/contracts/kiosk/kiosk_lock_rule.mjs +72 -0
- package/dist/contracts/kiosk/kiosk_lock_rule.mjs.map +1 -0
- package/dist/contracts/kiosk/personal_kiosk.mjs +102 -0
- package/dist/contracts/kiosk/personal_kiosk.mjs.map +1 -0
- package/dist/contracts/kiosk/personal_kiosk_rule.mjs +66 -0
- package/dist/contracts/kiosk/personal_kiosk_rule.mjs.map +1 -0
- package/dist/contracts/kiosk/royalty_rule.mjs +115 -0
- package/dist/contracts/kiosk/royalty_rule.mjs.map +1 -0
- package/dist/contracts/utils/index.mjs +118 -0
- package/dist/contracts/utils/index.mjs.map +1 -0
- package/dist/index.d.mts +9 -0
- package/dist/index.mjs +9 -0
- package/dist/query/client-utils.mjs +30 -0
- package/dist/query/client-utils.mjs.map +1 -0
- package/dist/query/kiosk.mjs +154 -0
- package/dist/query/kiosk.mjs.map +1 -0
- package/dist/query/transfer-policy.mjs +110 -0
- package/dist/query/transfer-policy.mjs.map +1 -0
- package/dist/tx/kiosk.mjs +20 -0
- package/dist/tx/kiosk.mjs.map +1 -0
- package/dist/tx/rules/resolve.mjs +114 -0
- package/dist/tx/rules/resolve.mjs.map +1 -0
- package/dist/tx/transfer-policy.mjs +38 -0
- package/dist/tx/transfer-policy.mjs.map +1 -0
- package/dist/types/index.d.mts +23 -0
- package/dist/types/index.d.mts.map +1 -0
- package/dist/types/kiosk.d.mts +165 -0
- package/dist/types/kiosk.d.mts.map +1 -0
- package/dist/types/kiosk.mjs +21 -0
- package/dist/types/kiosk.mjs.map +1 -0
- package/dist/types/transfer-policy.d.mts +56 -0
- package/dist/types/transfer-policy.d.mts.map +1 -0
- package/dist/types/transfer-policy.mjs +19 -0
- package/dist/types/transfer-policy.mjs.map +1 -0
- package/dist/utils.d.mts +45 -0
- package/dist/utils.d.mts.map +1 -0
- package/dist/utils.mjs +156 -0
- package/dist/utils.mjs.map +1 -0
- package/package.json +31 -20
- package/src/client/kiosk-client.ts +42 -5
- package/src/client/kiosk-transaction.ts +144 -65
- package/src/client/tp-transaction.ts +149 -95
- package/src/constants.ts +19 -24
- package/src/contracts/0x2/accumulator.ts +24 -0
- package/src/contracts/0x2/accumulator_metadata.ts +38 -0
- package/src/contracts/0x2/accumulator_settlement.ts +14 -0
- package/src/contracts/0x2/address.ts +145 -0
- package/src/contracts/0x2/address_alias.ts +92 -0
- package/src/contracts/0x2/authenticator_state.ts +44 -0
- package/src/contracts/0x2/bag.ts +192 -0
- package/src/contracts/0x2/balance.ts +269 -0
- package/src/contracts/0x2/bcs.ts +495 -0
- package/src/contracts/0x2/bls12381.ts +717 -0
- package/src/contracts/0x2/borrow.ts +99 -0
- package/src/contracts/0x2/clock.ts +30 -0
- package/src/contracts/0x2/coin.ts +977 -0
- package/src/contracts/0x2/coin_registry.ts +874 -0
- package/src/contracts/0x2/config.ts +30 -0
- package/src/contracts/0x2/deny_list.ts +55 -0
- package/src/contracts/0x2/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.ts +12 -0
- package/src/contracts/0x2/derived_object.ts +95 -0
- package/src/contracts/0x2/display.ts +258 -0
- package/src/contracts/0x2/dynamic_field.ts +171 -0
- package/src/contracts/0x2/dynamic_object_field.ts +167 -0
- package/src/contracts/0x2/ecdsa_k1.ts +65 -0
- package/src/contracts/0x2/ecdsa_r1.ts +49 -0
- package/src/contracts/0x2/ecvrf.ts +29 -0
- package/src/contracts/0x2/ed25519.ts +25 -0
- package/src/contracts/0x2/event.ts +42 -0
- package/src/contracts/0x2/funds_accumulator.ts +86 -0
- package/src/contracts/0x2/groth16.ts +171 -0
- package/src/contracts/0x2/group_ops.ts +49 -0
- package/src/contracts/0x2/hash.ts +37 -0
- package/src/contracts/0x2/hex.ts +37 -0
- package/src/contracts/0x2/hmac.ts +21 -0
- package/src/contracts/0x2/kiosk.ts +797 -0
- package/src/contracts/0x2/kiosk_extension.ts +270 -0
- package/src/contracts/0x2/linked_table.ts +354 -0
- package/src/contracts/0x2/math.ts +117 -0
- package/src/contracts/0x2/nitro_attestation.ts +186 -0
- package/src/contracts/0x2/object.ts +249 -0
- package/src/contracts/0x2/object_bag.ts +210 -0
- package/src/contracts/0x2/object_table.ts +200 -0
- package/src/contracts/0x2/package.ts +414 -0
- package/src/contracts/0x2/party.ts +37 -0
- package/src/contracts/0x2/pay.ts +153 -0
- package/src/contracts/0x2/poseidon.ts +21 -0
- package/src/contracts/0x2/priority_queue.ts +139 -0
- package/src/contracts/0x2/random.ts +294 -0
- package/src/contracts/0x2/sui.ts +29 -0
- package/src/contracts/0x2/table.ts +200 -0
- package/src/contracts/0x2/table_vec.ts +232 -0
- package/src/contracts/0x2/token.ts +873 -0
- package/src/contracts/0x2/transfer.ts +216 -0
- package/src/contracts/0x2/transfer_policy.ts +400 -0
- package/src/contracts/0x2/tx_context.ts +129 -0
- package/src/contracts/0x2/types.ts +24 -0
- package/src/contracts/0x2/url.ts +77 -0
- package/src/contracts/0x2/vdf.ts +45 -0
- package/src/contracts/0x2/vec_map.ts +401 -0
- package/src/contracts/0x2/vec_set.ts +211 -0
- package/src/contracts/0x2/versioned.ts +153 -0
- package/src/contracts/0x2/zklogin_verified_id.ts +172 -0
- package/src/contracts/0x2/zklogin_verified_issuer.ts +99 -0
- package/src/contracts/kiosk/deps/sui/kiosk.ts +94 -0
- package/src/contracts/kiosk/deps/sui/object.ts +15 -0
- package/src/contracts/kiosk/floor_price_rule.ts +92 -0
- package/src/contracts/kiosk/kiosk_lock_rule.ts +97 -0
- package/src/contracts/kiosk/personal_kiosk.ts +295 -0
- package/src/contracts/kiosk/personal_kiosk_rule.ts +89 -0
- package/src/contracts/kiosk/royalty_rule.ts +144 -0
- package/src/contracts/kiosk/witness_rule.ts +92 -0
- package/src/contracts/utils/index.ts +234 -0
- package/src/query/client-utils.ts +51 -0
- package/src/query/kiosk.ts +128 -100
- package/src/query/transfer-policy.ts +112 -78
- package/src/tx/kiosk.ts +7 -231
- package/src/tx/rules/resolve.ts +97 -48
- package/src/tx/transfer-policy.ts +25 -86
- package/src/types/index.ts +3 -14
- package/src/types/kiosk.ts +10 -12
- package/src/types/transfer-policy.ts +4 -4
- package/src/utils.ts +90 -128
- package/dist/cjs/bcs.d.ts +0 -23
- package/dist/cjs/bcs.js +0 -50
- package/dist/cjs/bcs.js.map +0 -7
- package/dist/cjs/client/kiosk-client.d.ts +0 -76
- package/dist/cjs/client/kiosk-client.js +0 -123
- package/dist/cjs/client/kiosk-client.js.map +0 -7
- package/dist/cjs/client/kiosk-transaction.d.ts +0 -186
- package/dist/cjs/client/kiosk-transaction.js +0 -462
- package/dist/cjs/client/kiosk-transaction.js.map +0 -7
- package/dist/cjs/client/tp-transaction.d.ts +0 -114
- package/dist/cjs/client/tp-transaction.js +0 -307
- package/dist/cjs/client/tp-transaction.js.map +0 -7
- package/dist/cjs/constants.d.ts +0 -31
- package/dist/cjs/constants.js +0 -102
- package/dist/cjs/constants.js.map +0 -7
- package/dist/cjs/index.d.ts +0 -6
- package/dist/cjs/index.js +0 -24
- package/dist/cjs/index.js.map +0 -7
- package/dist/cjs/package.json +0 -5
- package/dist/cjs/query/kiosk.d.ts +0 -8
- package/dist/cjs/query/kiosk.js +0 -181
- package/dist/cjs/query/kiosk.js.map +0 -7
- package/dist/cjs/query/transfer-policy.d.ts +0 -29
- package/dist/cjs/query/transfer-policy.js +0 -92
- package/dist/cjs/query/transfer-policy.js.map +0 -7
- package/dist/cjs/tx/kiosk.d.ts +0 -71
- package/dist/cjs/tx/kiosk.js +0 -130
- package/dist/cjs/tx/kiosk.js.map +0 -7
- package/dist/cjs/tx/personal-kiosk.d.ts +0 -7
- package/dist/cjs/tx/personal-kiosk.js +0 -38
- package/dist/cjs/tx/personal-kiosk.js.map +0 -7
- package/dist/cjs/tx/rules/attach.d.ts +0 -7
- package/dist/cjs/tx/rules/attach.js +0 -62
- package/dist/cjs/tx/rules/attach.js.map +0 -7
- package/dist/cjs/tx/rules/resolve.d.ts +0 -15
- package/dist/cjs/tx/rules/resolve.js +0 -109
- package/dist/cjs/tx/rules/resolve.js.map +0 -7
- package/dist/cjs/tx/transfer-policy.d.ts +0 -29
- package/dist/cjs/tx/transfer-policy.js +0 -78
- package/dist/cjs/tx/transfer-policy.js.map +0 -7
- package/dist/cjs/types/index.d.ts +0 -27
- package/dist/cjs/types/index.js +0 -33
- package/dist/cjs/types/index.js.map +0 -7
- package/dist/cjs/types/kiosk.d.ts +0 -160
- package/dist/cjs/types/kiosk.js +0 -37
- package/dist/cjs/types/kiosk.js.map +0 -7
- package/dist/cjs/types/transfer-policy.d.ts +0 -53
- package/dist/cjs/types/transfer-policy.js +0 -35
- package/dist/cjs/types/transfer-policy.js.map +0 -7
- package/dist/cjs/utils.d.ts +0 -51
- package/dist/cjs/utils.js +0 -198
- package/dist/cjs/utils.js.map +0 -7
- package/dist/esm/bcs.d.ts +0 -23
- package/dist/esm/bcs.js +0 -35
- package/dist/esm/bcs.js.map +0 -7
- package/dist/esm/client/kiosk-client.d.ts +0 -76
- package/dist/esm/client/kiosk-client.js +0 -114
- package/dist/esm/client/kiosk-client.js.map +0 -7
- package/dist/esm/client/kiosk-transaction.d.ts +0 -186
- package/dist/esm/client/kiosk-transaction.js +0 -432
- package/dist/esm/client/kiosk-transaction.js.map +0 -7
- package/dist/esm/client/tp-transaction.d.ts +0 -114
- package/dist/esm/client/tp-transaction.js +0 -298
- package/dist/esm/client/tp-transaction.js.map +0 -7
- package/dist/esm/constants.d.ts +0 -31
- package/dist/esm/constants.js +0 -87
- package/dist/esm/constants.js.map +0 -7
- package/dist/esm/index.d.ts +0 -6
- package/dist/esm/index.js +0 -7
- package/dist/esm/index.js.map +0 -7
- package/dist/esm/package.json +0 -5
- package/dist/esm/query/kiosk.d.ts +0 -8
- package/dist/esm/query/kiosk.js +0 -169
- package/dist/esm/query/kiosk.js.map +0 -7
- package/dist/esm/query/transfer-policy.d.ts +0 -29
- package/dist/esm/query/transfer-policy.js +0 -76
- package/dist/esm/query/transfer-policy.js.map +0 -7
- package/dist/esm/tx/kiosk.d.ts +0 -71
- package/dist/esm/tx/kiosk.js +0 -110
- package/dist/esm/tx/kiosk.js.map +0 -7
- package/dist/esm/tx/personal-kiosk.d.ts +0 -7
- package/dist/esm/tx/personal-kiosk.js +0 -18
- package/dist/esm/tx/personal-kiosk.js.map +0 -7
- package/dist/esm/tx/rules/attach.d.ts +0 -7
- package/dist/esm/tx/rules/attach.js +0 -42
- package/dist/esm/tx/rules/attach.js.map +0 -7
- package/dist/esm/tx/rules/resolve.d.ts +0 -15
- package/dist/esm/tx/rules/resolve.js +0 -89
- package/dist/esm/tx/rules/resolve.js.map +0 -7
- package/dist/esm/tx/transfer-policy.d.ts +0 -29
- package/dist/esm/tx/transfer-policy.js +0 -58
- package/dist/esm/tx/transfer-policy.js.map +0 -7
- package/dist/esm/types/index.d.ts +0 -27
- package/dist/esm/types/index.js +0 -12
- package/dist/esm/types/index.js.map +0 -7
- package/dist/esm/types/kiosk.d.ts +0 -160
- package/dist/esm/types/kiosk.js +0 -17
- package/dist/esm/types/kiosk.js.map +0 -7
- package/dist/esm/types/transfer-policy.d.ts +0 -53
- package/dist/esm/types/transfer-policy.js +0 -15
- package/dist/esm/types/transfer-policy.js.map +0 -7
- package/dist/esm/utils.d.ts +0 -51
- package/dist/esm/utils.js +0 -183
- package/dist/esm/utils.js.map +0 -7
- package/dist/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/bcs.ts +0 -39
- package/src/tx/personal-kiosk.ts +0 -34
- package/src/tx/rules/attach.ts +0 -73
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import type { PaginationArguments
|
|
4
|
+
import type { PaginationArguments } from '@mysten/sui/jsonRpc';
|
|
5
|
+
import type { ClientWithCoreApi, SuiClientTypes } from '@mysten/sui/client';
|
|
5
6
|
|
|
6
7
|
import {
|
|
7
8
|
FLOOR_PRICE_RULE_ADDRESS,
|
|
@@ -18,7 +19,6 @@ import {
|
|
|
18
19
|
queryTransferPolicy,
|
|
19
20
|
queryTransferPolicyCapsByType,
|
|
20
21
|
} from '../query/transfer-policy.js';
|
|
21
|
-
import { Network } from '../types/index.js';
|
|
22
22
|
import type {
|
|
23
23
|
FetchKioskOptions,
|
|
24
24
|
KioskClientOptions,
|
|
@@ -26,6 +26,43 @@ import type {
|
|
|
26
26
|
OwnedKiosks,
|
|
27
27
|
} from '../types/index.js';
|
|
28
28
|
|
|
29
|
+
export type KioskExtensionOptions<Name extends string = 'kiosk'> = {
|
|
30
|
+
name?: Name;
|
|
31
|
+
packageIds?: BaseRulePackageIds;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Creates a kiosk client extension that can be used with `client.$extend()`.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* import { SuiJsonRpcClient } from '@mysten/sui/jsonRpc';
|
|
40
|
+
* import { kiosk } from '@mysten/kiosk';
|
|
41
|
+
*
|
|
42
|
+
* const client = new SuiJsonRpcClient({
|
|
43
|
+
* url: getJsonRpcFullnodeUrl('mainnet'),
|
|
44
|
+
* network: 'mainnet',
|
|
45
|
+
* }).$extend(kiosk());
|
|
46
|
+
*
|
|
47
|
+
* const ownedKiosks = await client.kiosk.getOwnedKiosks({ address: '0x...' });
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export function kiosk<const Name extends string = 'kiosk'>({
|
|
51
|
+
name = 'kiosk' as Name,
|
|
52
|
+
packageIds,
|
|
53
|
+
}: KioskExtensionOptions<Name> = {}) {
|
|
54
|
+
return {
|
|
55
|
+
name,
|
|
56
|
+
register: (client: ClientWithCoreApi) => {
|
|
57
|
+
return new KioskClient({
|
|
58
|
+
client,
|
|
59
|
+
network: client.network,
|
|
60
|
+
packageIds,
|
|
61
|
+
});
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
29
66
|
/**
|
|
30
67
|
* A Client that allows you to interact with kiosk.
|
|
31
68
|
* Offers utilities to query kiosk, craft transactions to edit your own kiosk,
|
|
@@ -33,8 +70,8 @@ import type {
|
|
|
33
70
|
* If you pass packageIds, all functionality will be managed using these packages.
|
|
34
71
|
*/
|
|
35
72
|
export class KioskClient {
|
|
36
|
-
client:
|
|
37
|
-
network: Network;
|
|
73
|
+
client: ClientWithCoreApi;
|
|
74
|
+
network: SuiClientTypes.Network;
|
|
38
75
|
rules: TransferPolicyRule[];
|
|
39
76
|
packageIds?: BaseRulePackageIds;
|
|
40
77
|
|
|
@@ -145,7 +182,7 @@ export class KioskClient {
|
|
|
145
182
|
|
|
146
183
|
/// Check existence of rule based on network and throw an error if it's not found.
|
|
147
184
|
/// We always have a fallback for testnet or mainnet.
|
|
148
|
-
if (!rules[rule] && network !==
|
|
185
|
+
if (!rules[rule] && network !== 'mainnet' && network !== 'testnet') {
|
|
149
186
|
throw new Error(`Missing packageId for rule ${rule}`);
|
|
150
187
|
}
|
|
151
188
|
|
|
@@ -7,9 +7,10 @@ import type {
|
|
|
7
7
|
TransactionObjectArgument,
|
|
8
8
|
} from '@mysten/sui/transactions';
|
|
9
9
|
|
|
10
|
-
import * as
|
|
11
|
-
import
|
|
12
|
-
import
|
|
10
|
+
import * as kioskContract from '../contracts/0x2/kiosk.js';
|
|
11
|
+
import * as transferPolicyContract from '../contracts/0x2/transfer_policy.js';
|
|
12
|
+
import * as personalKioskContract from '../contracts/kiosk/personal_kiosk.js';
|
|
13
|
+
import { createKioskAndShare } from '../tx/kiosk.js';
|
|
13
14
|
import type {
|
|
14
15
|
ItemId,
|
|
15
16
|
ItemReference,
|
|
@@ -26,8 +27,6 @@ export type KioskTransactionParams = {
|
|
|
26
27
|
/** The Transaction for this run */
|
|
27
28
|
transaction: Transaction;
|
|
28
29
|
|
|
29
|
-
/** @deprecated use transaction instead */
|
|
30
|
-
transactionBlock?: Transaction;
|
|
31
30
|
/**
|
|
32
31
|
* You can create a new KioskClient by calling `new KioskClient()`
|
|
33
32
|
*/
|
|
@@ -59,12 +58,7 @@ export class KioskTransaction {
|
|
|
59
58
|
// A flag that checks whether kiosk TX is finalized.
|
|
60
59
|
#finalized: boolean = false;
|
|
61
60
|
|
|
62
|
-
constructor({
|
|
63
|
-
transactionBlock,
|
|
64
|
-
transaction = transactionBlock!,
|
|
65
|
-
kioskClient,
|
|
66
|
-
cap,
|
|
67
|
-
}: KioskTransactionParams) {
|
|
61
|
+
constructor({ transaction, kioskClient, cap }: KioskTransactionParams) {
|
|
68
62
|
this.transaction = transaction;
|
|
69
63
|
this.kioskClient = kioskClient;
|
|
70
64
|
|
|
@@ -82,7 +76,7 @@ export class KioskTransaction {
|
|
|
82
76
|
share: true,
|
|
83
77
|
transfer: true,
|
|
84
78
|
});
|
|
85
|
-
const [kiosk, cap] =
|
|
79
|
+
const [kiosk, cap] = this.transaction.add(kioskContract._new({}));
|
|
86
80
|
this.kiosk = kiosk;
|
|
87
81
|
this.kioskCap = cap;
|
|
88
82
|
return this;
|
|
@@ -105,11 +99,16 @@ export class KioskTransaction {
|
|
|
105
99
|
convertToPersonal(borrow?: boolean) {
|
|
106
100
|
this.#validateKioskIsSet();
|
|
107
101
|
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
102
|
+
const packageId = this.kioskClient.getRulePackageId('personalKioskRulePackageId');
|
|
103
|
+
|
|
104
|
+
const [cap] = this.transaction.add(
|
|
105
|
+
personalKioskContract._new({
|
|
106
|
+
package: packageId,
|
|
107
|
+
arguments: {
|
|
108
|
+
kiosk: this.kiosk!,
|
|
109
|
+
cap: this.kioskCap!,
|
|
110
|
+
},
|
|
111
|
+
}),
|
|
113
112
|
);
|
|
114
113
|
|
|
115
114
|
// if we enable `borrow`, we borrow the kioskCap from the cap.
|
|
@@ -125,8 +124,8 @@ export class KioskTransaction {
|
|
|
125
124
|
*/
|
|
126
125
|
createAndShare(address: string) {
|
|
127
126
|
this.#validateFinalizedStatus();
|
|
128
|
-
const cap =
|
|
129
|
-
this.transaction.transferObjects([cap],
|
|
127
|
+
const cap = createKioskAndShare(this.transaction);
|
|
128
|
+
this.transaction.transferObjects([cap], address);
|
|
130
129
|
return this;
|
|
131
130
|
}
|
|
132
131
|
|
|
@@ -136,7 +135,11 @@ export class KioskTransaction {
|
|
|
136
135
|
share() {
|
|
137
136
|
this.#validateKioskIsSet();
|
|
138
137
|
this.#setPendingStatuses({ share: false });
|
|
139
|
-
|
|
138
|
+
this.transaction.moveCall({
|
|
139
|
+
target: '0x2::transfer::public_share_object',
|
|
140
|
+
arguments: [this.kiosk!],
|
|
141
|
+
typeArguments: ['0x2::kiosk::Kiosk'],
|
|
142
|
+
});
|
|
140
143
|
return this;
|
|
141
144
|
}
|
|
142
145
|
|
|
@@ -149,7 +152,7 @@ export class KioskTransaction {
|
|
|
149
152
|
throw new Error('You can only call `shareAndTransferCap` on a non-personal kiosk.');
|
|
150
153
|
this.#setPendingStatuses({ transfer: false });
|
|
151
154
|
this.share();
|
|
152
|
-
this.transaction.transferObjects([this.kioskCap!],
|
|
155
|
+
this.transaction.transferObjects([this.kioskCap!], address);
|
|
153
156
|
return this;
|
|
154
157
|
}
|
|
155
158
|
|
|
@@ -159,12 +162,11 @@ export class KioskTransaction {
|
|
|
159
162
|
*/
|
|
160
163
|
borrowTx({ itemType, itemId }: ItemId, callback: (item: TransactionArgument) => void) {
|
|
161
164
|
this.#validateKioskIsSet();
|
|
162
|
-
const [itemObj, promise] =
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
itemId,
|
|
165
|
+
const [itemObj, promise] = this.transaction.add(
|
|
166
|
+
kioskContract.borrowVal({
|
|
167
|
+
arguments: [this.kiosk!, this.kioskCap!, itemId],
|
|
168
|
+
typeArguments: [itemType],
|
|
169
|
+
}),
|
|
168
170
|
);
|
|
169
171
|
|
|
170
172
|
callback(itemObj);
|
|
@@ -180,12 +182,11 @@ export class KioskTransaction {
|
|
|
180
182
|
*/
|
|
181
183
|
borrow({ itemType, itemId }: ItemId): [TransactionArgument, TransactionArgument] {
|
|
182
184
|
this.#validateKioskIsSet();
|
|
183
|
-
const [itemObj, promise] =
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
itemId,
|
|
185
|
+
const [itemObj, promise] = this.transaction.add(
|
|
186
|
+
kioskContract.borrowVal({
|
|
187
|
+
arguments: [this.kiosk!, this.kioskCap!, itemId],
|
|
188
|
+
typeArguments: [itemType],
|
|
189
|
+
}),
|
|
189
190
|
);
|
|
190
191
|
|
|
191
192
|
return [itemObj, promise];
|
|
@@ -197,19 +198,29 @@ export class KioskTransaction {
|
|
|
197
198
|
*/
|
|
198
199
|
return({ itemType, item, promise }: ItemValue & { promise: TransactionArgument }) {
|
|
199
200
|
this.#validateKioskIsSet();
|
|
200
|
-
|
|
201
|
+
this.transaction.add(
|
|
202
|
+
kioskContract.returnVal({
|
|
203
|
+
arguments: [this.kiosk!, item, promise],
|
|
204
|
+
typeArguments: [itemType],
|
|
205
|
+
}),
|
|
206
|
+
);
|
|
201
207
|
return this;
|
|
202
208
|
}
|
|
203
209
|
|
|
204
210
|
/**
|
|
205
211
|
* A function to withdraw from kiosk
|
|
206
|
-
* @param address Where to
|
|
212
|
+
* @param address Where to transfer the coin.
|
|
207
213
|
* @param amount The amount we aim to withdraw.
|
|
208
214
|
*/
|
|
209
215
|
withdraw(address: string, amount?: string | bigint | number) {
|
|
210
216
|
this.#validateKioskIsSet();
|
|
211
|
-
|
|
212
|
-
|
|
217
|
+
|
|
218
|
+
const [coin] = this.transaction.add(
|
|
219
|
+
kioskContract.withdraw({
|
|
220
|
+
arguments: [this.kiosk!, this.kioskCap!, amount == null ? null : BigInt(amount)],
|
|
221
|
+
}),
|
|
222
|
+
);
|
|
223
|
+
this.transaction.transferObjects([coin], address);
|
|
213
224
|
return this;
|
|
214
225
|
}
|
|
215
226
|
|
|
@@ -220,7 +231,13 @@ export class KioskTransaction {
|
|
|
220
231
|
*/
|
|
221
232
|
place({ itemType, item }: ItemReference) {
|
|
222
233
|
this.#validateKioskIsSet();
|
|
223
|
-
|
|
234
|
+
const itemArg = typeof item === 'string' ? this.transaction.object(item) : item;
|
|
235
|
+
this.transaction.add(
|
|
236
|
+
kioskContract.place({
|
|
237
|
+
arguments: [this.kiosk!, this.kioskCap!, itemArg],
|
|
238
|
+
typeArguments: [itemType],
|
|
239
|
+
}),
|
|
240
|
+
);
|
|
224
241
|
return this;
|
|
225
242
|
}
|
|
226
243
|
|
|
@@ -232,7 +249,14 @@ export class KioskTransaction {
|
|
|
232
249
|
*/
|
|
233
250
|
placeAndList({ itemType, item, price }: ItemReference & Price) {
|
|
234
251
|
this.#validateKioskIsSet();
|
|
235
|
-
|
|
252
|
+
const itemArg = typeof item === 'string' ? this.transaction.object(item) : item;
|
|
253
|
+
const priceArg = typeof price === 'string' ? BigInt(price) : price;
|
|
254
|
+
this.transaction.add(
|
|
255
|
+
kioskContract.placeAndList({
|
|
256
|
+
arguments: [this.kiosk!, this.kioskCap!, itemArg, priceArg],
|
|
257
|
+
typeArguments: [itemType],
|
|
258
|
+
}),
|
|
259
|
+
);
|
|
236
260
|
return this;
|
|
237
261
|
}
|
|
238
262
|
|
|
@@ -244,7 +268,13 @@ export class KioskTransaction {
|
|
|
244
268
|
*/
|
|
245
269
|
list({ itemType, itemId, price }: ItemId & { price: string | bigint }) {
|
|
246
270
|
this.#validateKioskIsSet();
|
|
247
|
-
|
|
271
|
+
const priceArg = typeof price === 'string' ? BigInt(price) : price;
|
|
272
|
+
this.transaction.add(
|
|
273
|
+
kioskContract.list({
|
|
274
|
+
arguments: [this.kiosk!, this.kioskCap!, itemId, priceArg],
|
|
275
|
+
typeArguments: [itemType],
|
|
276
|
+
}),
|
|
277
|
+
);
|
|
248
278
|
return this;
|
|
249
279
|
}
|
|
250
280
|
|
|
@@ -255,7 +285,12 @@ export class KioskTransaction {
|
|
|
255
285
|
*/
|
|
256
286
|
delist({ itemType, itemId }: ItemId) {
|
|
257
287
|
this.#validateKioskIsSet();
|
|
258
|
-
|
|
288
|
+
this.transaction.add(
|
|
289
|
+
kioskContract.delist({
|
|
290
|
+
arguments: [this.kiosk!, this.kioskCap!, itemId],
|
|
291
|
+
typeArguments: [itemType],
|
|
292
|
+
}),
|
|
293
|
+
);
|
|
259
294
|
return this;
|
|
260
295
|
}
|
|
261
296
|
|
|
@@ -267,7 +302,13 @@ export class KioskTransaction {
|
|
|
267
302
|
*/
|
|
268
303
|
take({ itemType, itemId }: ItemId): TransactionObjectArgument {
|
|
269
304
|
this.#validateKioskIsSet();
|
|
270
|
-
|
|
305
|
+
const [item] = this.transaction.add(
|
|
306
|
+
kioskContract.take({
|
|
307
|
+
arguments: [this.kiosk!, this.kioskCap!, itemId],
|
|
308
|
+
typeArguments: [itemType],
|
|
309
|
+
}),
|
|
310
|
+
);
|
|
311
|
+
return item;
|
|
271
312
|
}
|
|
272
313
|
|
|
273
314
|
/**
|
|
@@ -280,7 +321,7 @@ export class KioskTransaction {
|
|
|
280
321
|
transfer({ itemType, itemId, address }: ItemId & { address: string }) {
|
|
281
322
|
this.#validateKioskIsSet();
|
|
282
323
|
const item = this.take({ itemType, itemId });
|
|
283
|
-
this.transaction.transferObjects([item],
|
|
324
|
+
this.transaction.transferObjects([item], address);
|
|
284
325
|
return this;
|
|
285
326
|
}
|
|
286
327
|
|
|
@@ -299,7 +340,18 @@ export class KioskTransaction {
|
|
|
299
340
|
policy,
|
|
300
341
|
}: ItemReference & { policy: ObjectArgument; itemId?: string }) {
|
|
301
342
|
this.#validateKioskIsSet();
|
|
302
|
-
|
|
343
|
+
const itemArg = itemId
|
|
344
|
+
? this.transaction.object(itemId)
|
|
345
|
+
: typeof item === 'string'
|
|
346
|
+
? this.transaction.object(item)
|
|
347
|
+
: item;
|
|
348
|
+
const policyArg = typeof policy === 'string' ? this.transaction.object(policy) : policy;
|
|
349
|
+
this.transaction.add(
|
|
350
|
+
kioskContract.lock({
|
|
351
|
+
arguments: [this.kiosk!, this.kioskCap!, policyArg, itemArg],
|
|
352
|
+
typeArguments: [itemType],
|
|
353
|
+
}),
|
|
354
|
+
);
|
|
303
355
|
return this;
|
|
304
356
|
}
|
|
305
357
|
|
|
@@ -322,10 +374,16 @@ export class KioskTransaction {
|
|
|
322
374
|
TransactionObjectArgument,
|
|
323
375
|
] {
|
|
324
376
|
// Split the coin for the amount of the listing.
|
|
325
|
-
const coin = this.transaction.splitCoins(this.transaction.gas, [
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
377
|
+
const [coin] = this.transaction.splitCoins(this.transaction.gas, [price]);
|
|
378
|
+
const kioskArg =
|
|
379
|
+
typeof sellerKiosk === 'string' ? this.transaction.object(sellerKiosk) : sellerKiosk;
|
|
380
|
+
const [item, transferRequest] = this.transaction.add(
|
|
381
|
+
kioskContract.purchase({
|
|
382
|
+
arguments: [kioskArg, itemId, coin],
|
|
383
|
+
typeArguments: [itemType],
|
|
384
|
+
}),
|
|
385
|
+
);
|
|
386
|
+
return [item, transferRequest];
|
|
329
387
|
}
|
|
330
388
|
|
|
331
389
|
/**
|
|
@@ -377,7 +435,6 @@ export class KioskTransaction {
|
|
|
377
435
|
|
|
378
436
|
await ruleDefinition.resolveRuleFunction({
|
|
379
437
|
packageId: ruleDefinition.packageId,
|
|
380
|
-
transactionBlock: this.transaction,
|
|
381
438
|
transaction: this.transaction,
|
|
382
439
|
itemType,
|
|
383
440
|
itemId,
|
|
@@ -393,7 +450,12 @@ export class KioskTransaction {
|
|
|
393
450
|
});
|
|
394
451
|
}
|
|
395
452
|
|
|
396
|
-
|
|
453
|
+
this.transaction.add(
|
|
454
|
+
transferPolicyContract.confirmRequest({
|
|
455
|
+
arguments: [this.transaction.object(policy.id), transferRequest],
|
|
456
|
+
typeArguments: [itemType],
|
|
457
|
+
}),
|
|
458
|
+
);
|
|
397
459
|
|
|
398
460
|
if (canTransferOutsideKiosk) this.place({ itemType, item: purchasedItem });
|
|
399
461
|
|
|
@@ -436,19 +498,33 @@ export class KioskTransaction {
|
|
|
436
498
|
return;
|
|
437
499
|
}
|
|
438
500
|
|
|
439
|
-
const packageId = this.kioskClient.getRulePackageId('personalKioskRulePackageId');
|
|
440
|
-
|
|
441
501
|
// if we have a promise, return the `ownerCap` back to the personal cap.
|
|
442
502
|
if (this.#promise) {
|
|
443
|
-
this.
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
503
|
+
const packageId = this.kioskClient.getRulePackageId('personalKioskRulePackageId');
|
|
504
|
+
|
|
505
|
+
this.transaction.add(
|
|
506
|
+
personalKioskContract.returnVal({
|
|
507
|
+
package: packageId,
|
|
508
|
+
arguments: {
|
|
509
|
+
self: this.#personalCap,
|
|
510
|
+
cap: this.kioskCap!,
|
|
511
|
+
borrow: this.#promise,
|
|
512
|
+
},
|
|
513
|
+
}),
|
|
514
|
+
);
|
|
447
515
|
}
|
|
448
516
|
|
|
449
517
|
// If we are pending transferring the personalCap, we do it here.
|
|
450
|
-
if (this.#pendingTransfer)
|
|
451
|
-
|
|
518
|
+
if (this.#pendingTransfer) {
|
|
519
|
+
const packageId = this.kioskClient.getRulePackageId('personalKioskRulePackageId');
|
|
520
|
+
|
|
521
|
+
this.transaction.add(
|
|
522
|
+
personalKioskContract.transferToSender({
|
|
523
|
+
package: packageId,
|
|
524
|
+
arguments: { self: this.#personalCap },
|
|
525
|
+
}),
|
|
526
|
+
);
|
|
527
|
+
}
|
|
452
528
|
|
|
453
529
|
// Mark the transaction as finalized, so no other functions can be called.
|
|
454
530
|
this.#finalized = true;
|
|
@@ -490,15 +566,18 @@ export class KioskTransaction {
|
|
|
490
566
|
* A function to borrow from `personalCap`.
|
|
491
567
|
*/
|
|
492
568
|
#borrowFromPersonalCap(personalCap: ObjectArgument) {
|
|
493
|
-
const
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
569
|
+
const packageId = this.kioskClient.getRulePackageId('personalKioskRulePackageId');
|
|
570
|
+
const personalCapArg =
|
|
571
|
+
typeof personalCap === 'string' ? this.transaction.object(personalCap) : personalCap;
|
|
572
|
+
const [kioskCap, promise] = this.transaction.add(
|
|
573
|
+
personalKioskContract.borrowVal({
|
|
574
|
+
package: packageId,
|
|
575
|
+
arguments: { self: personalCapArg },
|
|
576
|
+
}),
|
|
577
|
+
);
|
|
499
578
|
|
|
500
579
|
this.kioskCap = kioskCap;
|
|
501
|
-
this.#personalCap =
|
|
580
|
+
this.#personalCap = personalCapArg;
|
|
502
581
|
this.#promise = promise;
|
|
503
582
|
|
|
504
583
|
return this;
|