@thalalabs/surf 1.6.0 → 1.7.0
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 +13 -0
- package/build/types/types/abi.d.ts +1 -1
- package/build/types/types/abi.d.ts.map +1 -1
- package/build/types/types/convertor/argsConvertor.d.ts +1 -1
- package/build/types/types/convertor/argsConvertor.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/core/__tests__/option.test.ts +42 -34
- package/src/core/__tests__/useABI.test.ts +10 -1
- package/src/types/abi.ts +1 -1
- package/src/types/convertor/argsConvertor.ts +24 -24
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @thalalabs/surf
|
|
2
2
|
|
|
3
|
+
## 1.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8fad9b9: add "private" in ABI visibility field
|
|
8
|
+
- 8fad9b9: Fix Aptos Move optional type
|
|
9
|
+
|
|
10
|
+
## 1.6.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- a6e1081: upgrade Aptos libraries
|
|
15
|
+
|
|
3
16
|
## 1.6.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
|
@@ -10,7 +10,7 @@ export interface ABIRoot {
|
|
|
10
10
|
}
|
|
11
11
|
export interface ABIFunction {
|
|
12
12
|
name: string;
|
|
13
|
-
visibility: 'friend' | 'public';
|
|
13
|
+
visibility: 'friend' | 'public' | 'private';
|
|
14
14
|
is_entry: boolean;
|
|
15
15
|
is_view: boolean;
|
|
16
16
|
generic_type_params: readonly ABIFunctionGenericTypeParam[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../../src/types/abi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../../src/types/abi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAC5D,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,2BAA2B;IAE1C,WAAW,EAAE,SAAS,GAAG,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,mBAAmB,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAC5D,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -16,6 +16,6 @@ export type ConvertArgs<T extends readonly string[]> = T extends readonly [
|
|
|
16
16
|
*/
|
|
17
17
|
type ConvertArgType<TMoveType extends string> = TMoveType extends MoveNonStructTypes ? ConvertNonStructArgType<TMoveType> : UnknownStruct<TMoveType>;
|
|
18
18
|
type ConvertPrimitiveArgType<TMoveType extends MovePrimitive> = TMoveType extends 'bool' ? boolean : TMoveType extends 'u8' ? number : TMoveType extends 'u16' ? number : TMoveType extends 'u32' ? number : TMoveType extends 'u64' ? AnyNumber : TMoveType extends 'u128' ? AnyNumber : TMoveType extends 'u256' ? AnyNumber : TMoveType extends 'address' ? `0x${string}` : TMoveType extends '0x1::string::String' ? string : never;
|
|
19
|
-
type ConvertNonStructArgType<TMoveType extends MoveNonStructTypes> = TMoveType extends MovePrimitive ? ConvertPrimitiveArgType<TMoveType> : TMoveType extends `vector<u8>` ? string | number[] | Uint8Array : TMoveType extends `vector<${infer TInner}>` ? ConvertArgType<TInner>[] : TMoveType extends `0x1::object::Object<${string}>` ? `0x${string}` : TMoveType extends `0x1::option::Option<${infer TInner}>` ? ConvertArgType<TInner> |
|
|
19
|
+
type ConvertNonStructArgType<TMoveType extends MoveNonStructTypes> = TMoveType extends MovePrimitive ? ConvertPrimitiveArgType<TMoveType> : TMoveType extends `vector<u8>` ? string | number[] | Uint8Array : TMoveType extends `vector<${infer TInner}>` ? ConvertArgType<TInner>[] : TMoveType extends `0x1::object::Object<${string}>` ? `0x${string}` : TMoveType extends `0x1::option::Option<${infer TInner}>` ? ConvertArgType<TInner> | undefined : UnknownStruct<TMoveType>;
|
|
20
20
|
export {};
|
|
21
21
|
//# sourceMappingURL=argsConvertor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argsConvertor.d.ts","sourceRoot":"","sources":["../../../../src/types/convertor/argsConvertor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS,SAAS;IACxE,MAAM,IAAI,SAAS,MAAM;IACzB,GAAG,MAAM,KAAK,SAAS,MAAM,EAAE;CAChC,GACG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,GAC7C,EAAE,CAAC;AAEP;;GAEG;AACH,KAAK,cAAc,CAAC,SAAS,SAAS,MAAM,IAC1C,SAAS,SAAS,kBAAkB,GAEhC,uBAAuB,CAAC,SAAS,CAAC,GAElC,aAAa,CAAC,SAAS,CAAC,CAAC;AAE/B,KAAK,uBAAuB,CAAC,SAAS,SAAS,aAAa,IAC1D,SAAS,SAAS,MAAM,GACpB,OAAO,GACP,SAAS,SAAS,IAAI,
|
|
1
|
+
{"version":3,"file":"argsConvertor.d.ts","sourceRoot":"","sources":["../../../../src/types/convertor/argsConvertor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS,SAAS;IACxE,MAAM,IAAI,SAAS,MAAM;IACzB,GAAG,MAAM,KAAK,SAAS,MAAM,EAAE;CAChC,GACG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,GAC7C,EAAE,CAAC;AAEP;;GAEG;AACH,KAAK,cAAc,CAAC,SAAS,SAAS,MAAM,IAC1C,SAAS,SAAS,kBAAkB,GAEhC,uBAAuB,CAAC,SAAS,CAAC,GAElC,aAAa,CAAC,SAAS,CAAC,CAAC;AAE/B,KAAK,uBAAuB,CAAC,SAAS,SAAS,aAAa,IAC1D,SAAS,SAAS,MAAM,GACpB,OAAO,GACP,SAAS,SAAS,IAAI,GACpB,MAAM,GACN,SAAS,SAAS,KAAK,GACrB,MAAM,GACN,SAAS,SAAS,KAAK,GACrB,MAAM,GACN,SAAS,SAAS,KAAK,GACrB,SAAS,GACT,SAAS,SAAS,MAAM,GACtB,SAAS,GACT,SAAS,SAAS,MAAM,GACtB,SAAS,GACT,SAAS,SAAS,SAAS,GACzB,KAAK,MAAM,EAAE,GACb,SAAS,SAAS,qBAAqB,GACrC,MAAM,GACN,KAAK,CAAC;AAE5B,KAAK,uBAAuB,CAAC,SAAS,SAAS,kBAAkB,IAC/D,SAAS,SAAS,aAAa,GAC3B,uBAAuB,CAAC,SAAS,CAAC,GAClC,SAAS,SAAS,YAAY,GAC5B,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,GAC9B,SAAS,SAAS,UAAU,MAAM,MAAM,GAAG,GACzC,cAAc,CAAC,MAAM,CAAC,EAAE,GACxB,SAAS,SAAS,uBAAuB,MAAM,GAAG,GAChD,KAAK,MAAM,EAAE,GACb,SAAS,SAAS,uBAAuB,MAAM,MAAM,GAAG,GACtD,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,GAClC,aAAa,CAAC,SAAS,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thalalabs/surf",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "TypeScript Interfaces & React Hooks for interacting with Aptos Smart Contracts with type safety.",
|
|
5
5
|
"main": "./build/cjs/index.js",
|
|
6
6
|
"module": "./build/esm/index.js",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@aptos-labs/ts-sdk": "^1.
|
|
37
|
-
"@aptos-labs/wallet-adapter-react": "^
|
|
36
|
+
"@aptos-labs/ts-sdk": "^1.22.0",
|
|
37
|
+
"@aptos-labs/wallet-adapter-react": "^3.4.2",
|
|
38
38
|
"@changesets/cli": "^2.26.1",
|
|
39
39
|
"@types/jest": "~29.5",
|
|
40
40
|
"@types/node": "~18",
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
"@typescript-eslint/parser": "~5.62",
|
|
44
44
|
"eslint": "~8.57",
|
|
45
45
|
"eslint-config-prettier": "~9.1",
|
|
46
|
-
"eslint-plugin-jest": "~
|
|
46
|
+
"eslint-plugin-jest": "~28.6",
|
|
47
47
|
"husky": "^9.0.11",
|
|
48
48
|
"jest": "~29.7",
|
|
49
49
|
"lint-staged": "^15.2.5",
|
|
50
|
-
"prettier": "~3.
|
|
50
|
+
"prettier": "~3.3",
|
|
51
51
|
"react": "^18.2.0",
|
|
52
52
|
"rimraf": "~5.0",
|
|
53
53
|
"ts-api-utils": "~0.0.44",
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"typescript": "~5.1"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
|
-
"@aptos-labs/ts-sdk": "^1.
|
|
60
|
-
"@aptos-labs/wallet-adapter-react": "^
|
|
59
|
+
"@aptos-labs/ts-sdk": "^1.22.0",
|
|
60
|
+
"@aptos-labs/wallet-adapter-react": "^3.4.2",
|
|
61
61
|
"react": "^18.2.0"
|
|
62
62
|
},
|
|
63
63
|
"peerDependenciesMeta": {
|
|
@@ -4,50 +4,58 @@
|
|
|
4
4
|
|
|
5
5
|
import { createSurfClient } from '../Client';
|
|
6
6
|
import { createEntryPayload } from '../createEntryPayload';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
Account,
|
|
9
|
+
Aptos,
|
|
10
|
+
AptosConfig,
|
|
11
|
+
Ed25519PrivateKey,
|
|
12
|
+
Network,
|
|
13
|
+
} from '@aptos-labs/ts-sdk';
|
|
8
14
|
|
|
9
15
|
describe('option type', () => {
|
|
10
16
|
const client = createSurfClient(
|
|
11
|
-
new Aptos(
|
|
12
|
-
new AptosConfig({ network: Network.TESTNET })
|
|
13
|
-
)
|
|
17
|
+
new Aptos(new AptosConfig({ network: Network.TESTNET })),
|
|
14
18
|
);
|
|
15
19
|
|
|
16
|
-
const account = Account.fromPrivateKey({
|
|
20
|
+
const account = Account.fromPrivateKey({
|
|
21
|
+
privateKey: new Ed25519PrivateKey(
|
|
22
|
+
'0x4b0a52d0b047b6868d9650fdb9b61720e361ba74f40571635fec0694a838eb98',
|
|
23
|
+
),
|
|
24
|
+
});
|
|
17
25
|
|
|
18
26
|
// TODO: correctly encode option type for view function
|
|
19
|
-
// it('view function some value', async () => {
|
|
20
|
-
// const payload = createViewPayload(OPTION_ABI, {
|
|
21
|
-
// function: 'test_option_view',
|
|
22
|
-
// functionArguments: [{ vec: ['50'] } as any],
|
|
23
|
-
// typeArguments: [],
|
|
24
|
-
// });
|
|
25
|
-
// const result = await client.view({ payload });
|
|
26
|
-
// expect(result).toMatchInlineSnapshot(`
|
|
27
|
-
// [
|
|
28
|
-
// "50",
|
|
29
|
-
// ]
|
|
30
|
-
// `);
|
|
31
|
-
// }, 60000);
|
|
27
|
+
// it('view function some value', async () => {
|
|
28
|
+
// const payload = createViewPayload(OPTION_ABI, {
|
|
29
|
+
// function: 'test_option_view',
|
|
30
|
+
// functionArguments: [{ vec: ['50'] } as any],
|
|
31
|
+
// typeArguments: [],
|
|
32
|
+
// });
|
|
33
|
+
// const result = await client.view({ payload });
|
|
34
|
+
// expect(result).toMatchInlineSnapshot(`
|
|
35
|
+
// [
|
|
36
|
+
// "50",
|
|
37
|
+
// ]
|
|
38
|
+
// `);
|
|
39
|
+
// }, 60000);
|
|
32
40
|
|
|
33
|
-
// it('view function none value', async () => {
|
|
34
|
-
// const payload = createViewPayload(OPTION_ABI, {
|
|
35
|
-
// function: 'test_option_view',
|
|
36
|
-
// functionArguments: [{ vec: [] } as any],
|
|
37
|
-
// typeArguments: [],
|
|
38
|
-
// });
|
|
39
|
-
// const result = await client.view({ payload });
|
|
40
|
-
// expect(result).toMatchInlineSnapshot(`
|
|
41
|
-
// [
|
|
42
|
-
// "0",
|
|
43
|
-
// ]
|
|
44
|
-
// `);
|
|
45
|
-
// }, 60000);
|
|
41
|
+
// it('view function none value', async () => {
|
|
42
|
+
// const payload = createViewPayload(OPTION_ABI, {
|
|
43
|
+
// function: 'test_option_view',
|
|
44
|
+
// functionArguments: [{ vec: [] } as any],
|
|
45
|
+
// typeArguments: [],
|
|
46
|
+
// });
|
|
47
|
+
// const result = await client.view({ payload });
|
|
48
|
+
// expect(result).toMatchInlineSnapshot(`
|
|
49
|
+
// [
|
|
50
|
+
// "0",
|
|
51
|
+
// ]
|
|
52
|
+
// `);
|
|
53
|
+
// }, 60000);
|
|
46
54
|
|
|
47
55
|
it('entry function none value', async () => {
|
|
48
56
|
const payload = createEntryPayload(OPTION_ABI, {
|
|
49
57
|
function: 'test_option_entry',
|
|
50
|
-
functionArguments: [
|
|
58
|
+
functionArguments: [undefined],
|
|
51
59
|
typeArguments: [],
|
|
52
60
|
});
|
|
53
61
|
|
|
@@ -55,7 +63,7 @@ describe('option type', () => {
|
|
|
55
63
|
publicKey: account.publicKey,
|
|
56
64
|
sender: account.accountAddress.toString(),
|
|
57
65
|
payload,
|
|
58
|
-
})
|
|
66
|
+
});
|
|
59
67
|
|
|
60
68
|
expect(result?.hash).toBeDefined();
|
|
61
69
|
expect((result as any).payload).toMatchInlineSnapshot(`
|
|
@@ -83,7 +91,7 @@ describe('option type', () => {
|
|
|
83
91
|
publicKey: account.publicKey,
|
|
84
92
|
sender: account.accountAddress.toString(),
|
|
85
93
|
payload,
|
|
86
|
-
})
|
|
94
|
+
});
|
|
87
95
|
|
|
88
96
|
expect(result?.hash).toBeDefined();
|
|
89
97
|
expect((result as any).payload).toMatchInlineSnapshot(`
|
|
@@ -111,7 +111,7 @@ describe('useABI', () => {
|
|
|
111
111
|
account,
|
|
112
112
|
isSimulation: true,
|
|
113
113
|
});
|
|
114
|
-
|
|
114
|
+
|
|
115
115
|
expect(result?.hash).toBeDefined();
|
|
116
116
|
expect((result as any).payload).toMatchInlineSnapshot(`
|
|
117
117
|
{
|
|
@@ -143,6 +143,15 @@ const TEST_ABI = {
|
|
|
143
143
|
params: ['address', 'address'],
|
|
144
144
|
return: [],
|
|
145
145
|
},
|
|
146
|
+
{
|
|
147
|
+
name: 'pick_a_random_number',
|
|
148
|
+
visibility: 'private',
|
|
149
|
+
is_entry: true,
|
|
150
|
+
is_view: false,
|
|
151
|
+
generic_type_params: [],
|
|
152
|
+
params: [],
|
|
153
|
+
return: [],
|
|
154
|
+
}
|
|
146
155
|
],
|
|
147
156
|
structs: [],
|
|
148
157
|
} as const;
|
package/src/types/abi.ts
CHANGED
|
@@ -12,7 +12,7 @@ export interface ABIRoot {
|
|
|
12
12
|
|
|
13
13
|
export interface ABIFunction {
|
|
14
14
|
name: string;
|
|
15
|
-
visibility: 'friend' | 'public';
|
|
15
|
+
visibility: 'friend' | 'public' | 'private';
|
|
16
16
|
is_entry: boolean;
|
|
17
17
|
is_view: boolean;
|
|
18
18
|
generic_type_params: readonly ABIFunctionGenericTypeParam[];
|
|
@@ -30,32 +30,32 @@ type ConvertPrimitiveArgType<TMoveType extends MovePrimitive> =
|
|
|
30
30
|
TMoveType extends 'bool'
|
|
31
31
|
? boolean
|
|
32
32
|
: TMoveType extends 'u8'
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
33
|
+
? number
|
|
34
|
+
: TMoveType extends 'u16'
|
|
35
|
+
? number
|
|
36
|
+
: TMoveType extends 'u32'
|
|
37
|
+
? number
|
|
38
|
+
: TMoveType extends 'u64'
|
|
39
|
+
? AnyNumber
|
|
40
|
+
: TMoveType extends 'u128'
|
|
41
|
+
? AnyNumber
|
|
42
|
+
: TMoveType extends 'u256'
|
|
43
|
+
? AnyNumber
|
|
44
|
+
: TMoveType extends 'address'
|
|
45
|
+
? `0x${string}`
|
|
46
|
+
: TMoveType extends '0x1::string::String'
|
|
47
|
+
? string
|
|
48
|
+
: never;
|
|
49
49
|
|
|
50
50
|
type ConvertNonStructArgType<TMoveType extends MoveNonStructTypes> =
|
|
51
51
|
TMoveType extends MovePrimitive
|
|
52
52
|
? ConvertPrimitiveArgType<TMoveType>
|
|
53
53
|
: TMoveType extends `vector<u8>`
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
? string | number[] | Uint8Array
|
|
55
|
+
: TMoveType extends `vector<${infer TInner}>`
|
|
56
|
+
? ConvertArgType<TInner>[]
|
|
57
|
+
: TMoveType extends `0x1::object::Object<${string}>`
|
|
58
|
+
? `0x${string}`
|
|
59
|
+
: TMoveType extends `0x1::option::Option<${infer TInner}>`
|
|
60
|
+
? ConvertArgType<TInner> | undefined
|
|
61
|
+
: UnknownStruct<TMoveType>;
|