@thalalabs/surf 0.0.7 → 0.0.9
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/README.md +34 -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/index.d.ts +1 -1
- package/build/types/index.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/common.d.ts +2 -2
- package/build/types/types/common.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 +9 -7
- 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 +77 -3
- package/src/index.ts +1 -0
- package/src/types/abiClient.ts +3 -3
- package/src/types/common.ts +2 -2
- package/src/types/{globalABI.ts → defaultABITable.ts} +1 -3
- package/src/types/index.ts +2 -1
- package/src/types/struct.ts +33 -31
- 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
package/README.md
CHANGED
|
@@ -165,6 +165,40 @@ const { hash } = await client.simulateTransaction(
|
|
|
165
165
|
);
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
+
### Get account resource
|
|
169
|
+
|
|
170
|
+
To get account resource with type safety:
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
const { data } = await client.useABI(COIN_ABI).resource.CoinStore({
|
|
174
|
+
type_arguments: ['0x1::aptos_coin::AptosCoin'],
|
|
175
|
+
account: '0x1',
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
// Get property in the struct with type safety
|
|
179
|
+
console.log(data.frozen);
|
|
180
|
+
|
|
181
|
+
// It also works for nested struct type.
|
|
182
|
+
// The `coin` property's type is 0x1::coin::Coin<T0>
|
|
183
|
+
console.log(data.coin.value);
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Some fields of a stuct may reference external modules.To inference the type of a nested struct, it needs the ABI of the external module. Surf currently only built-in some of the ABIs from 0x1, so that it can inference types like "0x1::coin::Coin". The type of an unidentifiable field would be `object`. Developer can provide additional modules to Surf like this:
|
|
187
|
+
```TypeScript
|
|
188
|
+
import { DefaultABITable } from "@thalalabs/surf";
|
|
189
|
+
type ABITAble = DefaultABITable & {
|
|
190
|
+
'0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64': typeof FIXED_POINT64_ABI,
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
const client = createClient<ABITAble>({
|
|
194
|
+
nodeUrl: 'https://fullnode.mainnet.aptoslabs.com/v1',
|
|
195
|
+
});
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
With this customized `ABITAble`, Surf can inference the struct from `0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64`.
|
|
199
|
+
|
|
200
|
+
Considering the `ABITable` is only been used as a type, it would be stripped out after compiling. So it won't increase the bundle size. You can put the `ABITable` in a separate file and `import type { ABITable } from "./ABITable.ts"` to ensure that.
|
|
201
|
+
|
|
168
202
|
### React Hooks
|
|
169
203
|
|
|
170
204
|
Surf currently offers two React Hooks: `useWalletClient` and `useSubmitTransaction`. Both require the `@aptos-labs/wallet-adapter-react`. Check out the [example NextJS package](https://github.com/ThalaLabs/surf/blob/main/example/app/page.tsx) for more information.
|
|
@@ -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"}
|
package/build/types/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { createViewPayload, createEntryPayload, createClient } from "./core/index.js";
|
|
2
|
-
export type { EntryPayload, ViewPayload, } from "./types/index.js";
|
|
2
|
+
export type { EntryPayload, ViewPayload, DefaultABITable } from "./types/index.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACf,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACR,YAAY,EACZ,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACf,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACR,YAAY,EACZ,WAAW,EACX,eAAe,EAClB,MAAM,kBAAkB,CAAC"}
|
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
import type { ABIRoot } from "./abi.js";
|
|
2
2
|
export type Primitive = 'bool' | 'u8' | 'u16' | 'u32' | 'u64' | 'u128' | 'u256' | 'address' | '0x1::string::String';
|
|
3
|
-
type Vector = `vector<${
|
|
4
|
-
type VectorOfVector = `vector<vector<${
|
|
3
|
+
type Vector = `vector<${string}>`;
|
|
4
|
+
type VectorOfVector = `vector<vector<${string}>>`;
|
|
5
5
|
export type AllTypes = Primitive | Vector | VectorOfVector;
|
|
6
6
|
type ConvertPrimitiveArgsType<T extends Primitive> = T extends 'bool' ? boolean : T extends 'u8' ? number : T extends 'u16' ? number : T extends 'u32' ? number : T extends 'u64' ? AnyNumber : T extends 'u128' ? AnyNumber : T extends 'u256' ? AnyNumber : T extends 'address' ? `0x${string}` : T extends '0x1::string::String' ? string : never;
|
|
7
7
|
type ConvertVectorArgsType<TInner> = TInner extends Primitive ? ConvertPrimitiveArgsType<TInner>[] : (TInner extends `vector<${infer TInnerInner}>` ? (TInnerInner extends Primitive ? ConvertPrimitiveArgsType<TInnerInner>[][] : any[][]) : (object[]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,MAAM,SAAS,GACjB,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAC7B,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GACnC,qBAAqB,CAAC;AAE1B,KAAK,MAAM,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,MAAM,SAAS,GACjB,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAC7B,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GACnC,qBAAqB,CAAC;AAE1B,KAAK,MAAM,GAAG,UAAU,MAAM,GAAG,CAAC;AAClC,KAAK,cAAc,GAAG,iBAAiB,MAAM,IAAI,CAAC;AAGlD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,cAAc,CAAC;AAC3D,KAAK,wBAAwB,CAAC,CAAC,SAAS,SAAS,IAC7C,CAAC,SAAS,MAAM,GAAG,OAAO,GAC1B,CAAC,SAAS,IAAI,GAAG,MAAM,GACvB,CAAC,SAAS,KAAK,GAAG,MAAM,GACxB,CAAC,SAAS,KAAK,GAAG,MAAM,GACxB,CAAC,SAAS,KAAK,GAAG,SAAS,GAC3B,CAAC,SAAS,MAAM,GAAG,SAAS,GAC5B,CAAC,SAAS,MAAM,GAAG,SAAS,GAC5B,CAAC,SAAS,SAAS,GAAG,KAAK,MAAM,EAAE,GACnC,CAAC,SAAS,qBAAqB,GAAG,MAAM,GACxC,KAAK,CAAC;AAEV,KAAK,qBAAqB,CAAC,MAAM,IAAI,MAAM,SAAS,SAAS,GAAG,wBAAwB,CAAC,MAAM,CAAC,EAAE,GAC9F,CACI,MAAM,SAAS,UAAU,MAAM,WAAW,GAAG,GAAG,CAC5C,WAAW,SAAS,SAAS,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE,EAAE,GACzE,GAAG,EAAE,EAAE,CAAC,GAAG,CACX,MAAM,EAAE,CACX,CACJ,CAAC;AAEN,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,QAAQ,IAC1C,CAAC,SAAS,SAAS,GAAG,wBAAwB,CAAC,CAAC,CAAC,GACjD,CAAC,SAAS,UAAU,MAAM,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,GACnE,MAAM,CAAC,CAAC,CAAC,CAAC;AAGd,KAAK,MAAM,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC;AAEvC,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,SAAS,IACtD,CAAC,SAAS,MAAM,GAAG,OAAO,GAC1B,CAAC,SAAS,IAAI,GAAG,MAAM,GACvB,CAAC,SAAS,KAAK,GAAG,MAAM,GACxB,CAAC,SAAS,KAAK,GAAG,MAAM,GACxB,CAAC,SAAS,KAAK,GAAG,MAAM,GACxB,CAAC,SAAS,MAAM,GAAG,MAAM,GACzB,CAAC,SAAS,MAAM,GAAG,MAAM,GACzB,CAAC,SAAS,SAAS,GAAG,KAAK,MAAM,EAAE,GACnC,CAAC,SAAS,qBAAqB,GAAG,MAAM,GACxC,KAAK,CAAC;AAEV,KAAK,uBAAuB,CAAC,MAAM,IAAI,MAAM,SAAS,SAAS,GAAG,0BAA0B,CAAC,MAAM,CAAC,EAAE,GAClG,CACI,MAAM,SAAS,UAAU,MAAM,WAAW,GAAG,GAAG,CAC5C,WAAW,SAAS,SAAS,GAAG,0BAA0B,CAAC,WAAW,CAAC,EAAE,EAAE,GAC3E,GAAG,EAAE,EAAE,CAAC,GAAG,CACX,MAAM,EAAE,CACX,CACJ,CAAC;AAEN,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,QAAQ,IAC5C,CAAC,SAAS,SAAS,GAAG,0BAA0B,CAAC,CAAC,CAAC,GACnD,CAAC,SAAS,UAAU,MAAM,MAAM,GAAG,GAAG,uBAAuB,CAAC,MAAM,CAAC,GACrE,MAAM,CAAC,CAAC,CAAC,CAAC;AAEd,KAAK,SAAS,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAC3D,KAAK,YAAY,CAAC,CAAC,SAAS,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5D,KAAK,YAAY,CAAC,CAAC,SAAS,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,SAAS,YAAY,CAAC,CAAC,CAAC,IAC5E,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAElD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AACnG,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AACrG,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,OAAO,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAIhF,KAAK,aAAa,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI;KAC7C,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/E,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAG3F,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI;KACrD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjF,CAAC;AAEF,MAAM,MAAM,iBAAiB,CACzB,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,YAAY,CAAC,CAAC,CAAC,IACjC,cAAc,CAAC,oBAAoB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAEvD,MAAM,MAAM,oBAAoB,CAC5B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,YAAY,CAAC,CAAC,CAAC,IACjC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE5C,MAAM,MAAM,iBAAiB,CACzB,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,YAAY,CAAC,CAAC,CAAC,IACjC,aAAa,CAAC,oBAAoB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAEtD,MAAM,MAAM,2BAA2B,CACnC,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,YAAY,CAAC,CAAC,CAAC,IACjC,aAAa,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAElE,MAAM,MAAM,oBAAoB,CAC5B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,YAAY,CAAC,CAAC,CAAC,IACjC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE5C,MAAM,MAAM,wBAAwB,CAChC,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,YAAY,CAAC,CAAC,CAAC,IACjC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAEjE,MAAM,MAAM,2BAA2B,CACnC,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,YAAY,CAAC,CAAC,CAAC,IACjC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC;AAGzD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,IAAI;KACrD,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CACzB,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,SAAS,gBAAgB,CAAC,CAAC,CAAC,IAAI;IACvF,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC3C,cAAc,EAAE,wBAAwB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;CACzD,CAAA;AAID,KAAK,UAAU,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS,SAAS,CAAC,SAAS,GAAG,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,GACjG,IAAI,GACJ,CAAC,CAAC;AAER,MAAM,MAAM,mBAAmB,CAC3B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,iBAAiB,CAAC,CAAC,CAAC,IAAI;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,2BAA2B,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACrD,cAAc,EAAE,wBAAwB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;CACzD,CAAA;AAEL,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;CAChB,CAAA"}
|
|
@@ -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,25 +1,27 @@
|
|
|
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
|
-
type ConvertVectorStructField<TInner> = TInner extends Primitive ? ConvertPrimitiveStructField<TInner>[] : (TInner extends `vector<${infer TInnerInner}>` ? (TInnerInner extends Primitive ? ConvertPrimitiveStructField<TInnerInner>[][] : any[][]) : (object[]));
|
|
7
5
|
type MoveStruct<T extends ABIRoot> = T['structs'][number];
|
|
8
6
|
export type ResourceStructName<T extends ABIRoot> = MoveStruct<T>['name'];
|
|
9
7
|
type ExtractStructFieldsName<T extends ABIRoot, TStructName extends ResourceStructName<T>> = ExtractStruct<T, TStructName>['fields'][number]['name'];
|
|
10
8
|
type ExtractStruct<T extends ABIRoot, TResourceName extends ResourceStructName<T>> = Extract<MoveStruct<T>, {
|
|
11
9
|
name: TResourceName;
|
|
12
10
|
}>;
|
|
13
|
-
type
|
|
11
|
+
type ExtractStructFieldMoveType<T extends ABIRoot, TStructName extends ResourceStructName<T>, TFieldName extends string> = Extract<ExtractStruct<T, TStructName>['fields'][number], {
|
|
14
12
|
name: TFieldName;
|
|
15
13
|
}>['type'];
|
|
16
|
-
|
|
17
|
-
export type
|
|
18
|
-
|
|
14
|
+
type ConvertStructFieldType<TABITable extends ABITable, TMoveType extends string> = TMoveType extends AllTypes ? ConvertStructFieldNonStructType<TABITable, TMoveType> : ConvertStructFieldStructType<TABITable, TMoveType>;
|
|
15
|
+
export type ConvertStructFieldNonStructType<TABITable extends ABITable, TMoveType extends AllTypes> = TMoveType extends Primitive ? ConvertPrimitiveStructField<TMoveType> : TMoveType extends `vector<${infer TInner}>` ? ConvertStructFieldType<TABITable, TInner>[] : Struct<TMoveType>;
|
|
16
|
+
type ConvertStructFieldStructType<TABITable extends ABITable, TMoveType extends string> = TMoveType 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<TMoveType> : Struct<TMoveType> : Struct<TMoveType>;
|
|
17
|
+
export type ExtractStructType<TABITable extends ABITable, TABI extends ABIRoot, TStructName extends ResourceStructName<TABI>> = {
|
|
18
|
+
[TField in ExtractStructFieldsName<TABI, TStructName>]: ConvertStructFieldType<TABITable, ExtractStructFieldMoveType<TABI, TStructName, TField>>;
|
|
19
19
|
};
|
|
20
20
|
export type ExtractStructRawGenericParamsType<T extends ABIRoot, TStructName extends ResourceStructName<T>> = ExtractStruct<T, TStructName>['generic_type_params'];
|
|
21
21
|
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 GlobalABITable ? OmitInner<TStructName> extends ResourceStructName<GlobalABITable[`${TAccountAddress}::${TModuleName}`]> ? ExtractStructType<GlobalABITable[`${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({
|
|
@@ -23,7 +25,7 @@ describe('get account resource', () => {
|
|
|
23
25
|
});
|
|
24
26
|
|
|
25
27
|
expect(result.data.frozen).toBeFalsy();
|
|
26
|
-
expect(result.data.coin).toBeDefined();
|
|
28
|
+
expect(result.data.coin.value).toBeDefined();
|
|
27
29
|
expect(result.data.deposit_events).toBeDefined();
|
|
28
30
|
expect(result.data.withdraw_events).toBeDefined();
|
|
29
31
|
|
|
@@ -36,4 +38,76 @@ 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
|
+
// `value` and `v` are string type
|
|
58
|
+
result.data.coin.value.startsWith;
|
|
59
|
+
result.data.ratio.v.startsWith;
|
|
60
|
+
|
|
61
|
+
// @ts-expect-error field not exist
|
|
62
|
+
result.data.ratio.abc;
|
|
63
|
+
}
|
|
64
|
+
}, 60000);
|
|
65
|
+
|
|
66
|
+
it('vector struct type', async () => {
|
|
67
|
+
async () => {
|
|
68
|
+
const result = await client.useABI(TEST_ABI).resource.TestVectorStruct({
|
|
69
|
+
type_arguments: [],
|
|
70
|
+
account: '0x1',
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
result.data.coins[0]?.value.startsWith;
|
|
74
|
+
}
|
|
75
|
+
}, 60000);
|
|
39
76
|
});
|
|
77
|
+
|
|
78
|
+
const TEST_ABI = {
|
|
79
|
+
address: '0xf1ab5cd814ef1480b8c36466310d9c21d7758b54f6121872d1fb43887a40e7d8',
|
|
80
|
+
name: 'test',
|
|
81
|
+
friends: [],
|
|
82
|
+
exposed_functions: [],
|
|
83
|
+
structs: [
|
|
84
|
+
{
|
|
85
|
+
name: 'TestStruct',
|
|
86
|
+
is_native: false,
|
|
87
|
+
abilities: ['key'],
|
|
88
|
+
generic_type_params: [],
|
|
89
|
+
fields: [
|
|
90
|
+
{
|
|
91
|
+
"name": "ratio",
|
|
92
|
+
"type": "0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"name": "coin",
|
|
96
|
+
"type": "0x1::coin::Coin<T0>"
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'TestVectorStruct',
|
|
102
|
+
is_native: false,
|
|
103
|
+
abilities: ['key'],
|
|
104
|
+
generic_type_params: [],
|
|
105
|
+
fields: [
|
|
106
|
+
{
|
|
107
|
+
"name": "coins",
|
|
108
|
+
"type": "vector<0x1::coin::Coin<T0>>"
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
} as const;
|
package/src/index.ts
CHANGED
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
|
};
|
package/src/types/common.ts
CHANGED
|
@@ -6,8 +6,8 @@ export type Primitive =
|
|
|
6
6
|
'u64' | 'u128' | 'u256' | 'address' |
|
|
7
7
|
'0x1::string::String';
|
|
8
8
|
|
|
9
|
-
type Vector = `vector<${
|
|
10
|
-
type VectorOfVector = `vector<vector<${
|
|
9
|
+
type Vector = `vector<${string}>`;
|
|
10
|
+
type VectorOfVector = `vector<vector<${string}>>`;
|
|
11
11
|
|
|
12
12
|
// TODO: support vector<vector<vector>>
|
|
13
13
|
export type AllTypes = Primitive | Vector | VectorOfVector;
|
|
@@ -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
|
|
|
@@ -16,15 +15,6 @@ export type ConvertPrimitiveStructField<T extends Primitive> =
|
|
|
16
15
|
T extends '0x1::string::String' ? string :
|
|
17
16
|
never;
|
|
18
17
|
|
|
19
|
-
type ConvertVectorStructField<TInner> = TInner extends Primitive ? ConvertPrimitiveStructField<TInner>[] :
|
|
20
|
-
(
|
|
21
|
-
TInner extends `vector<${infer TInnerInner}>` ? (
|
|
22
|
-
TInnerInner extends Primitive ? ConvertPrimitiveStructField<TInnerInner>[][] :
|
|
23
|
-
any[][]) : (
|
|
24
|
-
object[]
|
|
25
|
-
)
|
|
26
|
-
);
|
|
27
|
-
|
|
28
18
|
type MoveStruct<T extends ABIRoot> = T['structs'][number];
|
|
29
19
|
|
|
30
20
|
export type ResourceStructName<T extends ABIRoot> = MoveStruct<T>['name'];
|
|
@@ -36,25 +26,41 @@ type ExtractStructFieldsName<
|
|
|
36
26
|
type ExtractStruct<T extends ABIRoot, TResourceName extends ResourceStructName<T>> =
|
|
37
27
|
Extract<MoveStruct<T>, { name: TResourceName }>;
|
|
38
28
|
|
|
39
|
-
type
|
|
29
|
+
type ExtractStructFieldMoveType<
|
|
40
30
|
T extends ABIRoot,
|
|
41
31
|
TStructName extends ResourceStructName<T>,
|
|
42
32
|
TFieldName extends string> = Extract<ExtractStruct<T, TStructName>['fields'][number], { name: TFieldName }>['type'];
|
|
43
33
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
34
|
+
// Convert a struct field Move type to a TypeScript type
|
|
35
|
+
type ConvertStructFieldType<TABITable extends ABITable, TMoveType extends string> =
|
|
36
|
+
TMoveType extends AllTypes ?
|
|
37
|
+
// it's a non-struct type
|
|
38
|
+
ConvertStructFieldNonStructType<TABITable, TMoveType> :
|
|
39
|
+
// it's a struct type
|
|
40
|
+
ConvertStructFieldStructType<TABITable, TMoveType>;
|
|
41
|
+
|
|
42
|
+
// Convert a struct field non-struct Move type to a TypeScript type
|
|
43
|
+
export type ConvertStructFieldNonStructType<TABITable extends ABITable, TMoveType extends AllTypes> =
|
|
44
|
+
TMoveType extends Primitive ? ConvertPrimitiveStructField<TMoveType> :
|
|
45
|
+
TMoveType extends `vector<${infer TInner}>` ? ConvertStructFieldType<TABITable, TInner>[] :
|
|
46
|
+
Struct<TMoveType>;
|
|
47
|
+
|
|
48
|
+
// Convert a struct field struct Move type to a TypeScript type
|
|
49
|
+
type ConvertStructFieldStructType<TABITable extends ABITable, TMoveType extends string> =
|
|
50
|
+
TMoveType extends `${infer TAccountAddress}::${infer TModuleName}::${infer TStructName}${'' | `<${infer _TInnerType}>`}`
|
|
51
|
+
? `${TAccountAddress}::${TModuleName}` extends keyof TABITable ?
|
|
52
|
+
OmitInner<TStructName> extends ResourceStructName<TABITable[`${TAccountAddress}::${TModuleName}`]> ?
|
|
53
|
+
ExtractStructType<TABITable, TABITable[`${TAccountAddress}::${TModuleName}`], OmitInner<TStructName>>
|
|
54
|
+
// Unknown struct, use the default struct type
|
|
55
|
+
: Struct<TMoveType> : Struct<TMoveType> : Struct<TMoveType>;
|
|
48
56
|
|
|
57
|
+
// Get the struct type with the name of `TStructName` in `TABI`, with the help of `TABITable`
|
|
49
58
|
export type ExtractStructType<
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
ConvertStructField<ExtractStructFieldType<T, TStructName, TField>> :
|
|
56
|
-
// it's a struct type
|
|
57
|
-
ExtractStructTypeGlobal<ExtractStructFieldType<T, TStructName, TField>>;
|
|
59
|
+
TABITable extends ABITable,
|
|
60
|
+
TABI extends ABIRoot,
|
|
61
|
+
TStructName extends ResourceStructName<TABI>> = {
|
|
62
|
+
[TField in ExtractStructFieldsName<TABI, TStructName>]:
|
|
63
|
+
ConvertStructFieldType<TABITable, ExtractStructFieldMoveType<TABI, TStructName, TField>>
|
|
58
64
|
};
|
|
59
65
|
|
|
60
66
|
export type ExtractStructRawGenericParamsType<
|
|
@@ -67,12 +73,8 @@ export type ExtractStructGenericParamsType<
|
|
|
67
73
|
TStructName extends ResourceStructName<T>> =
|
|
68
74
|
ConvertTypeParams<ExtractStructRawGenericParamsType<T, TStructName>>;
|
|
69
75
|
|
|
70
|
-
type ExtractStructTypeGlobal<TAddress extends string> =
|
|
71
|
-
TAddress extends `${infer TAccountAddress}::${infer TModuleName}::${infer TStructName}${'' | `<${infer _TInnerType}>`}`
|
|
72
|
-
? `${TAccountAddress}::${TModuleName}` extends keyof GlobalABITable ?
|
|
73
|
-
OmitInner<TStructName> extends ResourceStructName<GlobalABITable[`${TAccountAddress}::${TModuleName}`]> ?
|
|
74
|
-
ExtractStructType<GlobalABITable[`${TAccountAddress}::${TModuleName}`], OmitInner<TStructName>>
|
|
75
|
-
// Unknown struct, use the default struct type
|
|
76
|
-
: Struct<TAddress> : Struct<TAddress> : Struct<TAddress>;
|
|
77
|
-
|
|
78
76
|
type OmitInner<T extends string> = T extends `${infer TOuter}<${infer _TInner}>` ? `${TOuter}` : T;
|
|
77
|
+
|
|
78
|
+
export type ABITable = {
|
|
79
|
+
[TAddress in string]: ABIRoot;
|
|
80
|
+
};
|
|
@@ -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"}
|