Skip to content

Commit 48c8ba2

Browse files
committed
Add include options for core APIs (#656)
* Add include options for core APIs * migrate tests to grpc * PR feedback
1 parent 1a35a6a commit 48c8ba2

File tree

64 files changed

+2945
-1155
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+2945
-1155
lines changed

packages/dapp-kit-next/packages/dapp-kit-core/src/utils/signer.ts

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export class CurrentAccountSigner extends Signer {
6868
transaction,
6969
}: {
7070
transaction: Transaction;
71-
}): Promise<Omit<SuiClientTypes.TransactionResponse, 'balanceChanges'>> {
71+
}): Promise<SuiClientTypes.TransactionResponse<{ transaction: true; effects: true }>> {
7272
const { bytes, signature, digest, effects } = await this.#dAppKit.signAndExecuteTransaction({
7373
transaction,
7474
});
@@ -78,19 +78,10 @@ export class CurrentAccountSigner extends Signer {
7878
signatures: [signature],
7979
epoch: null,
8080
effects: parseTransactionEffectsBcs(fromBase64(effects)),
81-
objectTypes: {
82-
// oxlint-disable-next-line no-thenable
83-
get then() {
84-
const promise = Promise.reject<Record<string, string>>(
85-
new Error('objectTypes is not implemented for WalletSigner'),
86-
);
87-
88-
return promise.then.bind(promise);
89-
},
90-
},
9181
transaction: parseTransactionBcs(fromBase64(bytes)),
92-
// TODO: fix this
93-
events: [],
82+
events: undefined,
83+
objectTypes: undefined,
84+
balanceChanges: undefined,
9485
};
9586
}
9687
}

packages/seal/src/key-server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,9 @@ export async function retrieveKeyServers({
4949
// First get the KeyServer object and validate it.
5050
const res = await client.core.getObject({
5151
objectId,
52+
include: { content: true },
5253
});
53-
const ks = KeyServerMove.parse(await res.object.content);
54+
const ks = KeyServerMove.parse(res.object.content);
5455
if (
5556
EXPECTED_SERVER_VERSION < Number(ks.firstVersion) ||
5657
EXPECTED_SERVER_VERSION > Number(ks.lastVersion)

packages/typescript/src/client/core.ts

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -38,30 +38,34 @@ export abstract class CoreClient extends BaseClient implements SuiClientTypes.Tr
3838
});
3939
}
4040

41-
abstract listObjects(
42-
options: SuiClientTypes.ListObjectsOptions,
43-
): Promise<SuiClientTypes.ListObjectsResponse>;
41+
abstract listObjects<Include extends SuiClientTypes.ObjectInclude = object>(
42+
options: SuiClientTypes.ListObjectsOptions<Include>,
43+
): Promise<SuiClientTypes.ListObjectsResponse<Include>>;
4444

45-
async getObject(
46-
options: SuiClientTypes.GetObjectOptions,
47-
): Promise<SuiClientTypes.GetObjectResponse> {
45+
async getObject<Include extends SuiClientTypes.ObjectInclude = object>(
46+
options: SuiClientTypes.GetObjectOptions<Include>,
47+
): Promise<SuiClientTypes.GetObjectResponse<Include>> {
4848
const { objectId } = options;
4949
const {
5050
objects: [result],
51-
} = await this.listObjects({ objectIds: [objectId], signal: options.signal });
51+
} = await this.listObjects({
52+
objectIds: [objectId],
53+
signal: options.signal,
54+
include: options.include,
55+
});
5256
if (result instanceof Error) {
5357
throw result;
5458
}
5559
return { object: result };
5660
}
5761

58-
abstract listCoins(
59-
options: SuiClientTypes.ListCoinsOptions,
60-
): Promise<SuiClientTypes.ListCoinsResponse>;
62+
abstract listCoins<Include extends SuiClientTypes.ObjectInclude = object>(
63+
options: SuiClientTypes.ListCoinsOptions<Include>,
64+
): Promise<SuiClientTypes.ListCoinsResponse<Include>>;
6165

62-
abstract listOwnedObjects(
63-
options: SuiClientTypes.ListOwnedObjectsOptions,
64-
): Promise<SuiClientTypes.ListOwnedObjectsResponse>;
66+
abstract listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = object>(
67+
options: SuiClientTypes.ListOwnedObjectsOptions<Include>,
68+
): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>>;
6569

6670
abstract getBalance(
6771
options: SuiClientTypes.GetBalanceOptions,
@@ -71,17 +75,17 @@ export abstract class CoreClient extends BaseClient implements SuiClientTypes.Tr
7175
options: SuiClientTypes.ListBalancesOptions,
7276
): Promise<SuiClientTypes.ListBalancesResponse>;
7377

74-
abstract getTransaction(
75-
options: SuiClientTypes.GetTransactionOptions,
76-
): Promise<SuiClientTypes.GetTransactionResponse>;
78+
abstract getTransaction<Include extends SuiClientTypes.TransactionInclude = object>(
79+
options: SuiClientTypes.GetTransactionOptions<Include>,
80+
): Promise<SuiClientTypes.GetTransactionResponse<Include>>;
7781

78-
abstract executeTransaction(
79-
options: SuiClientTypes.ExecuteTransactionOptions,
80-
): Promise<SuiClientTypes.ExecuteTransactionResponse>;
82+
abstract executeTransaction<Include extends SuiClientTypes.TransactionInclude = object>(
83+
options: SuiClientTypes.ExecuteTransactionOptions<Include>,
84+
): Promise<SuiClientTypes.ExecuteTransactionResponse<Include>>;
8185

82-
abstract simulateTransaction(
83-
options: SuiClientTypes.SimulateTransactionOptions,
84-
): Promise<SuiClientTypes.SimulateTransactionResponse>;
86+
abstract simulateTransaction<Include extends SuiClientTypes.TransactionInclude = object>(
87+
options: SuiClientTypes.SimulateTransactionOptions<Include>,
88+
): Promise<SuiClientTypes.SimulateTransactionResponse<Include>>;
8589

8690
abstract getReferenceGasPrice(
8791
options?: SuiClientTypes.GetReferenceGasPriceOptions,
@@ -121,6 +125,10 @@ export abstract class CoreClient extends BaseClient implements SuiClientTypes.Tr
121125
} = await this.listObjects({
122126
objectIds: [fieldId],
123127
signal: options.signal,
128+
include: {
129+
previousTransaction: true,
130+
content: true,
131+
},
124132
});
125133

126134
if (fieldObject instanceof Error) {
@@ -155,7 +163,7 @@ export abstract class CoreClient extends BaseClient implements SuiClientTypes.Tr
155163
};
156164
}
157165

158-
async waitForTransaction({
166+
async waitForTransaction<Include extends SuiClientTypes.TransactionInclude = object>({
159167
signal,
160168
timeout = 60 * 1000,
161169
...input
@@ -164,7 +172,9 @@ export abstract class CoreClient extends BaseClient implements SuiClientTypes.Tr
164172
signal?: AbortSignal;
165173
/** The amount of time to wait for transaction. Defaults to one minute. */
166174
timeout?: number;
167-
} & SuiClientTypes.GetTransactionOptions): Promise<SuiClientTypes.GetTransactionResponse> {
175+
} & SuiClientTypes.GetTransactionOptions<Include>): Promise<
176+
SuiClientTypes.GetTransactionResponse<Include>
177+
> {
168178
const abortSignal = signal
169179
? AbortSignal.any([AbortSignal.timeout(timeout), signal])
170180
: AbortSignal.timeout(timeout);

0 commit comments

Comments
 (0)