@thalalabs/surf 0.0.7 → 0.0.8
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/build/cjs/core/Client.js.map +1 -1
- package/build/cjs/types/{globalABI.js → defaultABITable.js} +1 -1
- package/build/cjs/types/defaultABITable.js.map +1 -0
- package/build/esm/core/Client.js.map +1 -1
- package/build/esm/types/defaultABITable.js +2 -0
- package/build/esm/types/defaultABITable.js.map +1 -0
- package/build/types/core/Client.d.ts +6 -5
- package/build/types/core/Client.d.ts.map +1 -1
- package/build/types/types/abiClient.d.ts +3 -3
- package/build/types/types/abiClient.d.ts.map +1 -1
- package/build/types/types/{globalABI.d.ts → defaultABITable.d.ts} +2 -4
- package/build/types/types/defaultABITable.d.ts.map +1 -0
- package/build/types/types/index.d.ts +1 -0
- package/build/types/types/index.d.ts.map +1 -1
- package/build/types/types/struct.d.ts +6 -4
- package/build/types/types/struct.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/Client.ts +8 -6
- package/src/core/__tests__/accountResource.test.ts +52 -2
- package/src/types/abiClient.ts +3 -3
- package/src/types/{globalABI.ts → defaultABITable.ts} +1 -3
- package/src/types/index.ts +2 -1
- package/src/types/struct.ts +10 -6
- package/build/cjs/types/globalABI.js.map +0 -1
- package/build/esm/types/globalABI.js +0 -2
- package/build/esm/types/globalABI.js.map +0 -1
- package/build/types/types/globalABI.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":";;;AAAA,iCAAqD;AACrD,iEAA2D;AAC3D,mEAA6D;
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultABITable.js","sourceRoot":"","sources":["../../../src/types/defaultABITable.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultABITable.js","sourceRoot":"","sources":["../../../src/types/defaultABITable.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { AptosClient } from "aptos";
|
|
2
|
-
import type { ABIEntryClient, ABIViewClient, ABIRoot, EntryOptions, EntryPayload, ViewOptions, ViewPayload } from "../types/index.js";
|
|
2
|
+
import type { ABIEntryClient, ABIViewClient, ABIRoot, EntryOptions, EntryPayload, ViewOptions, ViewPayload, DefaultABITable } from "../types/index.js";
|
|
3
3
|
import type { TransactionResponse } from "../types/common.js";
|
|
4
4
|
import { ABIResourceClient } from "../types/abiClient.js";
|
|
5
|
-
|
|
5
|
+
import { ABITable } from "../types/struct.js";
|
|
6
|
+
export declare function createClient<TABITable extends ABITable = DefaultABITable>(options: {
|
|
6
7
|
nodeUrl: string;
|
|
7
|
-
}): Client
|
|
8
|
-
export declare class Client {
|
|
8
|
+
}): Client<TABITable>;
|
|
9
|
+
export declare class Client<TABITable extends ABITable> {
|
|
9
10
|
private client;
|
|
10
11
|
constructor(client: AptosClient);
|
|
11
12
|
view<TReturn>(payload: ViewPayload<TReturn>, options?: ViewOptions): Promise<TReturn>;
|
|
@@ -14,7 +15,7 @@ export declare class Client {
|
|
|
14
15
|
useABI<T extends ABIRoot>(abi: T): {
|
|
15
16
|
view: ABIViewClient<T>;
|
|
16
17
|
entry: ABIEntryClient<T>;
|
|
17
|
-
resource: ABIResourceClient<T>;
|
|
18
|
+
resource: ABIResourceClient<TABITable, T>;
|
|
18
19
|
};
|
|
19
20
|
private generateRawTxn;
|
|
20
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvJ,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,YAAY,CAAC,SAAS,SAAS,QAAQ,GAAG,eAAe,EACpE,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAIpD;AAED,qBAAa,MAAM,CAAC,SAAS,SAAS,QAAQ;IAC1C,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,WAAW;IAIlB,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC,OAAO,CAAC;IAeN,iBAAiB,CAC1B,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAoBlB,mBAAmB,CAC5B,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAWxB,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC;;;;;YAiDzB,cAAc;CAW/B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AptosAccount } from "aptos";
|
|
2
2
|
import type { ABIRoot } from "./abi.js";
|
|
3
3
|
import type { EntryFunctionName, ExtractGenericParamsType, ExtractParamsType, ExtractParamsTypeOmitSigner, ExtractReturnType, TransactionResponse, ViewFunctionName } from "./common.js";
|
|
4
|
-
import { ExtractStructGenericParamsType, ExtractStructType, ResourceStructName } from "./struct.js";
|
|
4
|
+
import { ABITable, ExtractStructGenericParamsType, ExtractStructType, ResourceStructName } from "./struct.js";
|
|
5
5
|
export type ABIViewClient<T extends ABIRoot> = {
|
|
6
6
|
[TFuncName in ViewFunctionName<T>]: (payload: {
|
|
7
7
|
type_arguments: ExtractGenericParamsType<T, TFuncName>;
|
|
@@ -16,12 +16,12 @@ export type ABIEntryClient<T extends ABIRoot> = {
|
|
|
16
16
|
isSimulation?: boolean;
|
|
17
17
|
}) => Promise<TransactionResponse>;
|
|
18
18
|
};
|
|
19
|
-
export type ABIResourceClient<T extends ABIRoot> = {
|
|
19
|
+
export type ABIResourceClient<TABITable extends ABITable, T extends ABIRoot> = {
|
|
20
20
|
[TStructName in ResourceStructName<T>]: (payload: {
|
|
21
21
|
type_arguments: ExtractStructGenericParamsType<T, TStructName>;
|
|
22
22
|
account: `0x${string}`;
|
|
23
23
|
}) => Promise<{
|
|
24
|
-
data: ExtractStructType<T, TStructName>;
|
|
24
|
+
data: ExtractStructType<TABITable, T, TStructName>;
|
|
25
25
|
type: string;
|
|
26
26
|
}>;
|
|
27
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abiClient.d.ts","sourceRoot":"","sources":["../../../src/types/abiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EACR,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"abiClient.d.ts","sourceRoot":"","sources":["../../../src/types/abiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EACR,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE9G,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,OAAO,IAAI;KAC1C,SAAS,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE;QAC1C,cAAc,EAAE,wBAAwB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QACtD,SAAS,EAAE,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;KAC9C,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,OAAO,IAAI;KAC3C,SAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE;QAC3C,cAAc,EAAE,wBAAwB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACvD,SAAS,EAAE,2BAA2B,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACrD,OAAO,EAAE,YAAY,CAAC;QACtB,YAAY,CAAC,EAAE,OAAO,CAAA;KACzB,KAAK,OAAO,CAAC,mBAAmB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,SAAS,SAAS,QAAQ,EAAE,CAAC,SAAS,OAAO,IAAI;KAC1E,WAAW,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE;QAC9C,cAAc,EAAE,8BAA8B,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/D,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;KAC1B,KAAK,OAAO,CAAC;QACV,IAAI,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,EAAE,MAAM,CAAA;KACf,CAAC;CACL,CAAC"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import type { COIN_ABI } from "../abi/coin.js";
|
|
2
2
|
import type { EVENT_ABI } from "../abi/event.js";
|
|
3
|
-
import { FIXED_POINT64_ABI } from "../abi/fixed_point64.js";
|
|
4
3
|
import type { GUID_ABI } from "../abi/guid.js";
|
|
5
4
|
import { TABLE_ABI } from "../abi/table.js";
|
|
6
|
-
export type
|
|
5
|
+
export type DefaultABITable = {
|
|
7
6
|
'0x1::coin': typeof COIN_ABI;
|
|
8
7
|
'0x1::event': typeof EVENT_ABI;
|
|
9
8
|
'0x1::guid': typeof GUID_ABI;
|
|
10
9
|
'0x1::table': typeof TABLE_ABI;
|
|
11
|
-
'0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64': typeof FIXED_POINT64_ABI;
|
|
12
10
|
};
|
|
13
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=defaultABITable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultABITable.d.ts","sourceRoot":"","sources":["../../../src/types/defaultABITable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,MAAM,eAAe,GAAG;IAC1B,WAAW,EAAE,OAAO,QAAQ,CAAC;IAC7B,YAAY,EAAE,OAAO,SAAS,CAAC;IAC/B,WAAW,EAAE,OAAO,QAAQ,CAAC;IAC7B,YAAY,EAAE,OAAO,SAAS,CAAC;CAClC,CAAC"}
|
|
@@ -2,4 +2,5 @@ export type { ABIWalletClient } from "./walletClient.js";
|
|
|
2
2
|
export type { ABIViewClient, ABIEntryClient } from "./abiClient.js";
|
|
3
3
|
export type { ViewPayload, EntryPayload, ViewOptions, EntryOptions, } from "./client.js";
|
|
4
4
|
export type { ABIRoot } from "./abi.js";
|
|
5
|
+
export type { DefaultABITable } from "./defaultABITable.js";
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ABIRoot } from "./abi.js";
|
|
2
2
|
import { AllTypes, ConvertTypeParams, Primitive } from "./common.js";
|
|
3
|
-
import { GlobalABITable } from "./globalABI.js";
|
|
4
3
|
type Struct<_T extends string> = object;
|
|
5
4
|
export type ConvertPrimitiveStructField<T extends Primitive> = T extends 'bool' ? boolean : T extends 'u8' ? number : T extends 'u16' ? number : T extends 'u32' ? number : T extends 'u64' ? string : T extends 'u128' ? string : T extends 'u256' ? string : T extends 'address' ? `0x${string}` : T extends '0x1::string::String' ? string : never;
|
|
6
5
|
type ConvertVectorStructField<TInner> = TInner extends Primitive ? ConvertPrimitiveStructField<TInner>[] : (TInner extends `vector<${infer TInnerInner}>` ? (TInnerInner extends Primitive ? ConvertPrimitiveStructField<TInnerInner>[][] : any[][]) : (object[]));
|
|
@@ -14,12 +13,15 @@ type ExtractStructFieldType<T extends ABIRoot, TStructName extends ResourceStruc
|
|
|
14
13
|
name: TFieldName;
|
|
15
14
|
}>['type'];
|
|
16
15
|
export type ConvertStructField<T extends AllTypes> = T extends Primitive ? ConvertPrimitiveStructField<T> : T extends `vector<${infer TInner}>` ? ConvertVectorStructField<TInner> : Struct<T>;
|
|
17
|
-
export type ExtractStructType<T extends ABIRoot, TStructName extends ResourceStructName<T>> = {
|
|
18
|
-
[TField in ExtractStructFieldsName<T, TStructName>]: ExtractStructFieldType<T, TStructName, TField> extends AllTypes ? ConvertStructField<ExtractStructFieldType<T, TStructName, TField>> : ExtractStructTypeGlobal<ExtractStructFieldType<T, TStructName, TField>>;
|
|
16
|
+
export type ExtractStructType<TABITable extends ABITable, T extends ABIRoot, TStructName extends ResourceStructName<T>> = {
|
|
17
|
+
[TField in ExtractStructFieldsName<T, TStructName>]: ExtractStructFieldType<T, TStructName, TField> extends AllTypes ? ConvertStructField<ExtractStructFieldType<T, TStructName, TField>> : ExtractStructTypeGlobal<TABITable, ExtractStructFieldType<T, TStructName, TField>>;
|
|
19
18
|
};
|
|
20
19
|
export type ExtractStructRawGenericParamsType<T extends ABIRoot, TStructName extends ResourceStructName<T>> = ExtractStruct<T, TStructName>['generic_type_params'];
|
|
21
20
|
export type ExtractStructGenericParamsType<T extends ABIRoot, TStructName extends ResourceStructName<T>> = ConvertTypeParams<ExtractStructRawGenericParamsType<T, TStructName>>;
|
|
22
|
-
type ExtractStructTypeGlobal<TAddress extends string> = TAddress extends `${infer TAccountAddress}::${infer TModuleName}::${infer TStructName}${'' | `<${infer _TInnerType}>`}` ? `${TAccountAddress}::${TModuleName}` extends keyof
|
|
21
|
+
type ExtractStructTypeGlobal<TABITable extends ABITable, TAddress extends string> = TAddress extends `${infer TAccountAddress}::${infer TModuleName}::${infer TStructName}${'' | `<${infer _TInnerType}>`}` ? `${TAccountAddress}::${TModuleName}` extends keyof TABITable ? OmitInner<TStructName> extends ResourceStructName<TABITable[`${TAccountAddress}::${TModuleName}`]> ? ExtractStructType<TABITable, TABITable[`${TAccountAddress}::${TModuleName}`], OmitInner<TStructName>> : Struct<TAddress> : Struct<TAddress> : Struct<TAddress>;
|
|
23
22
|
type OmitInner<T extends string> = T extends `${infer TOuter}<${infer _TInner}>` ? `${TOuter}` : T;
|
|
23
|
+
export type ABITable = {
|
|
24
|
+
[TAddress in string]: ABIRoot;
|
|
25
|
+
};
|
|
24
26
|
export {};
|
|
25
27
|
//# sourceMappingURL=struct.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../../src/types/struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../../src/types/struct.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/core/Client.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { AptosClient, TxnBuilderTypes } from "aptos";
|
|
2
2
|
import { createViewPayload } from "./createViewPayload.js";
|
|
3
3
|
import { createEntryPayload } from "./createEntryPayload.js";
|
|
4
|
-
import type { ABIEntryClient, ABIViewClient, ABIRoot, EntryOptions, EntryPayload, ViewOptions, ViewPayload } from "../types/index.js";
|
|
4
|
+
import type { ABIEntryClient, ABIViewClient, ABIRoot, EntryOptions, EntryPayload, ViewOptions, ViewPayload, DefaultABITable } from "../types/index.js";
|
|
5
5
|
import type { TransactionResponse } from "../types/common.js";
|
|
6
6
|
import { ABIResourceClient } from "../types/abiClient.js";
|
|
7
|
+
import { ABITable } from "../types/struct.js";
|
|
7
8
|
|
|
8
|
-
export function createClient
|
|
9
|
-
|
|
9
|
+
export function createClient<TABITable extends ABITable = DefaultABITable>
|
|
10
|
+
(options: { nodeUrl: string }): Client<TABITable> {
|
|
11
|
+
return new Client<TABITable>(
|
|
10
12
|
new AptosClient(options.nodeUrl)
|
|
11
13
|
);
|
|
12
14
|
}
|
|
13
15
|
|
|
14
|
-
export class Client {
|
|
16
|
+
export class Client<TABITable extends ABITable> {
|
|
15
17
|
private client: AptosClient;
|
|
16
18
|
|
|
17
19
|
constructor(client: AptosClient) {
|
|
@@ -103,11 +105,11 @@ export class Client {
|
|
|
103
105
|
};
|
|
104
106
|
}
|
|
105
107
|
}),
|
|
106
|
-
resource: new Proxy({} as ABIResourceClient<T>, {
|
|
108
|
+
resource: new Proxy({} as ABIResourceClient<TABITable, T>, {
|
|
107
109
|
get: (_, prop) => {
|
|
108
110
|
let structName = prop.toString();
|
|
109
111
|
return (...args) => {
|
|
110
|
-
if(args[0].type_arguments.length !== 0) {
|
|
112
|
+
if (args[0].type_arguments.length !== 0) {
|
|
111
113
|
structName += `<${args[0].type_arguments.join(",")}>`;
|
|
112
114
|
}
|
|
113
115
|
return this.client.getAccountResource(
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import { COIN_ABI } from '../../abi/coin';
|
|
6
|
+
import { FIXED_POINT64_ABI } from '../../abi/fixed_point64';
|
|
7
|
+
import { DefaultABITable } from '../../types';
|
|
6
8
|
import { createClient } from '../Client';
|
|
7
9
|
|
|
8
10
|
describe('get account resource', () => {
|
|
@@ -11,10 +13,10 @@ describe('get account resource', () => {
|
|
|
11
13
|
});
|
|
12
14
|
|
|
13
15
|
// Act before assertions
|
|
14
|
-
beforeAll(async () => {});
|
|
16
|
+
beforeAll(async () => { });
|
|
15
17
|
|
|
16
18
|
// Teardown (cleanup) after assertions
|
|
17
|
-
afterAll(() => {});
|
|
19
|
+
afterAll(() => { });
|
|
18
20
|
|
|
19
21
|
it('get CoinStore', async () => {
|
|
20
22
|
const result = await client.useABI(COIN_ABI).resource.CoinStore({
|
|
@@ -36,4 +38,52 @@ describe('get account resource', () => {
|
|
|
36
38
|
// @ts-expect-error field not exist
|
|
37
39
|
expect(result.abc).toBeUndefined();
|
|
38
40
|
}, 60000);
|
|
41
|
+
|
|
42
|
+
it('use customized ABITable', async () => {
|
|
43
|
+
async () => {
|
|
44
|
+
type ABITAble = DefaultABITable & {
|
|
45
|
+
'0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64': typeof FIXED_POINT64_ABI,
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const client = createClient<ABITAble>({
|
|
49
|
+
nodeUrl: 'https://fullnode.testnet.aptoslabs.com/v1',
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
const result = await client.useABI(TEST_ABI).resource.TestStruct({
|
|
53
|
+
type_arguments: [],
|
|
54
|
+
account: '0x1',
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
result.data.coin.value.startsWith;
|
|
58
|
+
result.data.ratio.v;
|
|
59
|
+
|
|
60
|
+
// @ts-expect-error field not exist
|
|
61
|
+
result.data.ratio.abc;
|
|
62
|
+
}
|
|
63
|
+
}, 60000);
|
|
39
64
|
});
|
|
65
|
+
|
|
66
|
+
const TEST_ABI = {
|
|
67
|
+
address: '0xf1ab5cd814ef1480b8c36466310d9c21d7758b54f6121872d1fb43887a40e7d8',
|
|
68
|
+
name: 'test',
|
|
69
|
+
friends: [],
|
|
70
|
+
exposed_functions: [],
|
|
71
|
+
structs: [
|
|
72
|
+
{
|
|
73
|
+
name: 'TestStruct',
|
|
74
|
+
is_native: false,
|
|
75
|
+
abilities: ['key'],
|
|
76
|
+
generic_type_params: [],
|
|
77
|
+
fields: [
|
|
78
|
+
{
|
|
79
|
+
"name": "ratio",
|
|
80
|
+
"type": "0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "coin",
|
|
84
|
+
"type": "0x1::coin::Coin<T0>"
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
} as const;
|
package/src/types/abiClient.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type {
|
|
|
9
9
|
TransactionResponse,
|
|
10
10
|
ViewFunctionName
|
|
11
11
|
} from "./common.js";
|
|
12
|
-
import { ExtractStructGenericParamsType, ExtractStructType, ResourceStructName } from "./struct.js";
|
|
12
|
+
import { ABITable, ExtractStructGenericParamsType, ExtractStructType, ResourceStructName } from "./struct.js";
|
|
13
13
|
|
|
14
14
|
export type ABIViewClient<T extends ABIRoot> = {
|
|
15
15
|
[TFuncName in ViewFunctionName<T>]: (payload: {
|
|
@@ -27,12 +27,12 @@ export type ABIEntryClient<T extends ABIRoot> = {
|
|
|
27
27
|
}) => Promise<TransactionResponse>
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
export type ABIResourceClient<T extends ABIRoot> = {
|
|
30
|
+
export type ABIResourceClient<TABITable extends ABITable, T extends ABIRoot> = {
|
|
31
31
|
[TStructName in ResourceStructName<T>]: (payload: {
|
|
32
32
|
type_arguments: ExtractStructGenericParamsType<T, TStructName>,
|
|
33
33
|
account: `0x${string}`,
|
|
34
34
|
}) => Promise<{
|
|
35
|
-
data: ExtractStructType<T, TStructName>,
|
|
35
|
+
data: ExtractStructType<TABITable, T, TStructName>,
|
|
36
36
|
type: string
|
|
37
37
|
}>
|
|
38
38
|
};
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import type { COIN_ABI } from "../abi/coin.js";
|
|
2
2
|
import type { EVENT_ABI } from "../abi/event.js";
|
|
3
|
-
import { FIXED_POINT64_ABI } from "../abi/fixed_point64.js";
|
|
4
3
|
import type { GUID_ABI } from "../abi/guid.js";
|
|
5
4
|
import { TABLE_ABI } from "../abi/table.js";
|
|
6
5
|
|
|
7
|
-
export type
|
|
6
|
+
export type DefaultABITable = {
|
|
8
7
|
'0x1::coin': typeof COIN_ABI,
|
|
9
8
|
'0x1::event': typeof EVENT_ABI,
|
|
10
9
|
'0x1::guid': typeof GUID_ABI,
|
|
11
10
|
'0x1::table': typeof TABLE_ABI,
|
|
12
|
-
'0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64': typeof FIXED_POINT64_ABI,
|
|
13
11
|
};
|
package/src/types/index.ts
CHANGED
package/src/types/struct.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ABIRoot } from "./abi.js";
|
|
2
2
|
import { AllTypes, ConvertTypeParams, Primitive } from "./common.js";
|
|
3
|
-
import { GlobalABITable } from "./globalABI.js";
|
|
4
3
|
|
|
5
4
|
type Struct<_T extends string> = object;
|
|
6
5
|
|
|
@@ -47,6 +46,7 @@ export type ConvertStructField<T extends AllTypes> =
|
|
|
47
46
|
Struct<T>;
|
|
48
47
|
|
|
49
48
|
export type ExtractStructType<
|
|
49
|
+
TABITable extends ABITable,
|
|
50
50
|
T extends ABIRoot,
|
|
51
51
|
TStructName extends ResourceStructName<T>> = {
|
|
52
52
|
[TField in ExtractStructFieldsName<T, TStructName>]:
|
|
@@ -54,7 +54,7 @@ export type ExtractStructType<
|
|
|
54
54
|
// it's a non-struct type
|
|
55
55
|
ConvertStructField<ExtractStructFieldType<T, TStructName, TField>> :
|
|
56
56
|
// it's a struct type
|
|
57
|
-
ExtractStructTypeGlobal<ExtractStructFieldType<T, TStructName, TField>>;
|
|
57
|
+
ExtractStructTypeGlobal<TABITable, ExtractStructFieldType<T, TStructName, TField>>;
|
|
58
58
|
};
|
|
59
59
|
|
|
60
60
|
export type ExtractStructRawGenericParamsType<
|
|
@@ -67,12 +67,16 @@ export type ExtractStructGenericParamsType<
|
|
|
67
67
|
TStructName extends ResourceStructName<T>> =
|
|
68
68
|
ConvertTypeParams<ExtractStructRawGenericParamsType<T, TStructName>>;
|
|
69
69
|
|
|
70
|
-
type ExtractStructTypeGlobal<TAddress extends string> =
|
|
70
|
+
type ExtractStructTypeGlobal<TABITable extends ABITable, TAddress extends string> =
|
|
71
71
|
TAddress extends `${infer TAccountAddress}::${infer TModuleName}::${infer TStructName}${'' | `<${infer _TInnerType}>`}`
|
|
72
|
-
? `${TAccountAddress}::${TModuleName}` extends keyof
|
|
73
|
-
OmitInner<TStructName> extends ResourceStructName<
|
|
74
|
-
ExtractStructType<
|
|
72
|
+
? `${TAccountAddress}::${TModuleName}` extends keyof TABITable ?
|
|
73
|
+
OmitInner<TStructName> extends ResourceStructName<TABITable[`${TAccountAddress}::${TModuleName}`]> ?
|
|
74
|
+
ExtractStructType<TABITable, TABITable[`${TAccountAddress}::${TModuleName}`], OmitInner<TStructName>>
|
|
75
75
|
// Unknown struct, use the default struct type
|
|
76
76
|
: Struct<TAddress> : Struct<TAddress> : Struct<TAddress>;
|
|
77
77
|
|
|
78
78
|
type OmitInner<T extends string> = T extends `${infer TOuter}<${infer _TInner}>` ? `${TOuter}` : T;
|
|
79
|
+
|
|
80
|
+
export type ABITable = {
|
|
81
|
+
[TAddress in string]: ABIRoot;
|
|
82
|
+
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"globalABI.js","sourceRoot":"","sources":["../../../src/types/globalABI.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"globalABI.js","sourceRoot":"","sources":["../../../src/types/globalABI.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"globalABI.d.ts","sourceRoot":"","sources":["../../../src/types/globalABI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG;IACzB,WAAW,EAAE,OAAO,QAAQ,CAAC;IAC7B,YAAY,EAAE,OAAO,SAAS,CAAC;IAC/B,WAAW,EAAE,OAAO,QAAQ,CAAC;IAC7B,YAAY,EAAE,OAAO,SAAS,CAAC;IAC/B,mFAAmF,EAAE,OAAO,iBAAiB,CAAC;CACjH,CAAC"}
|