@thalalabs/surf 1.3.1 → 1.4.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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # @thalalabs/surf
2
2
 
3
+ ## 1.4.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 4b6f32c: change abi param to optional
8
+
9
+ ## 1.4.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 2b84c87: improve createViewPayload to includes abi object, so that aptos ts-sdk can avoid to fetch the abi again.
14
+
3
15
  ## 1.3.1
4
16
 
5
17
  ### Patch Changes
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createViewPayload = void 0;
4
4
  const ensureTypes_js_1 = require("../ensureTypes.js");
5
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
5
6
  function createViewPayload(abi, payload) {
6
7
  const fnAbi = abi.exposed_functions.filter((f) => f.name === payload.function)[0];
7
8
  const type_arguments = payload.typeArguments;
@@ -34,9 +35,28 @@ function createViewPayload(abi, payload) {
34
35
  function: `${abi.address}::${abi.name}::${payload.function}`,
35
36
  functionArguments: args,
36
37
  typeArguments: payload.typeArguments,
38
+ abi: constructViewAbiObj(fnAbi),
37
39
  };
38
40
  }
39
41
  exports.createViewPayload = createViewPayload;
42
+ function constructViewAbiObj(abi) {
43
+ if (!abi.is_view) {
44
+ throw new Error(`not an view function`);
45
+ }
46
+ const params = [];
47
+ for (let i = 0; i < abi.params.length; i += 1) {
48
+ params.push((0, ts_sdk_1.parseTypeTag)(abi.params[i], { allowGenerics: true }));
49
+ }
50
+ const returnTypes = [];
51
+ for (let i = 0; i < abi.return.length; i += 1) {
52
+ returnTypes.push((0, ts_sdk_1.parseTypeTag)(abi.return[i], { allowGenerics: true }));
53
+ }
54
+ return {
55
+ typeParameters: abi.generic_type_params,
56
+ parameters: params,
57
+ returnTypes,
58
+ };
59
+ }
40
60
  function encodeVector(type, value) {
41
61
  const regex = /vector<([^]+)>/;
42
62
  const match = type.match(regex);
@@ -1 +1 @@
1
- {"version":3,"file":"createViewPayload.js","sourceRoot":"","sources":["../../../src/core/createViewPayload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createViewPayload.js","sourceRoot":"","sources":["../../../src/core/createViewPayload.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ensureNumber } from '../ensureTypes.js';
2
+ import { parseTypeTag, } from '@aptos-labs/ts-sdk';
2
3
  export function createViewPayload(abi, payload) {
3
4
  const fnAbi = abi.exposed_functions.filter((f) => f.name === payload.function)[0];
4
5
  const type_arguments = payload.typeArguments;
@@ -31,6 +32,25 @@ export function createViewPayload(abi, payload) {
31
32
  function: `${abi.address}::${abi.name}::${payload.function}`,
32
33
  functionArguments: args,
33
34
  typeArguments: payload.typeArguments,
35
+ abi: constructViewAbiObj(fnAbi),
36
+ };
37
+ }
38
+ function constructViewAbiObj(abi) {
39
+ if (!abi.is_view) {
40
+ throw new Error(`not an view function`);
41
+ }
42
+ const params = [];
43
+ for (let i = 0; i < abi.params.length; i += 1) {
44
+ params.push(parseTypeTag(abi.params[i], { allowGenerics: true }));
45
+ }
46
+ const returnTypes = [];
47
+ for (let i = 0; i < abi.return.length; i += 1) {
48
+ returnTypes.push(parseTypeTag(abi.return[i], { allowGenerics: true }));
49
+ }
50
+ return {
51
+ typeParameters: abi.generic_type_params,
52
+ parameters: params,
53
+ returnTypes,
34
54
  };
35
55
  }
36
56
  function encodeVector(type, value) {
@@ -1 +1 @@
1
- {"version":3,"file":"createViewPayload.js","sourceRoot":"","sources":["../../../src/core/createViewPayload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createViewPayload.js","sourceRoot":"","sources":["../../../src/core/createViewPayload.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createViewPayload.d.ts","sourceRoot":"","sources":["../../../src/core/createViewPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAErC,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,SAAS,CAAC,GACxC,WAAW,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CA4C9C"}
1
+ {"version":3,"file":"createViewPayload.d.ts","sourceRoot":"","sources":["../../../src/core/createViewPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAW3B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAErC,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,SAAS,CAAC,GACxC,WAAW,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CA6C9C"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { ABIRoot } from '../abi.js';
5
5
  import { EntryFunctionName, ExtractArgsTypeOmitSigner, ExtractGenericArgsType, ViewFunctionName, ExtractArgsType } from '../extractor/functionExtractor.js';
6
- import { EntryFunctionArgumentTypes, MoveFunctionId, SimpleEntryFunctionArgumentTypes, TypeTag } from '@aptos-labs/ts-sdk';
6
+ import { EntryFunctionArgumentTypes, MoveFunctionId, SimpleEntryFunctionArgumentTypes, TypeTag, ViewFunctionABI } from '@aptos-labs/ts-sdk';
7
7
  export type TransactionResponse = {
8
8
  hash: string;
9
9
  };
@@ -38,5 +38,6 @@ export type ViewPayload<_TReturn> = {
38
38
  function: MoveFunctionId;
39
39
  typeArguments?: Array<TypeTag | string>;
40
40
  functionArguments?: Array<EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes>;
41
+ abi?: ViewFunctionABI;
41
42
  };
42
43
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/types/client/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,gCAAgC,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE3H,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,iBAAiB,EAAE,KAAK,CAAC,0BAA0B,GAAG,gCAAgC,CAAC,CAAC;CACzF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAC7B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,iBAAiB,CAAC,CAAC,CAAC,IACpC;IACF,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB,EAAE,yBAAyB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC3D,aAAa,EAAE,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAC5B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,gBAAgB,CAAC,CAAC,CAAC,IACnC;IACF,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB,EAAE,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACjD,aAAa,EAAE,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,QAAQ,IAAI;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;IACxC,iBAAiB,CAAC,EAAC,KAAK,CAAC,0BAA0B,GAAG,gCAAgC,CAAC,CAAC;CACzF,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/types/client/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,gCAAgC,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE5I,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,iBAAiB,EAAE,KAAK,CAAC,0BAA0B,GAAG,gCAAgC,CAAC,CAAC;CACzF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAC7B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,iBAAiB,CAAC,CAAC,CAAC,IACpC;IACF,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB,EAAE,yBAAyB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC3D,aAAa,EAAE,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAC5B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,gBAAgB,CAAC,CAAC,CAAC,IACnC;IACF,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB,EAAE,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACjD,aAAa,EAAE,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,QAAQ,IAAI;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;IACxC,iBAAiB,CAAC,EAAC,KAAK,CAAC,0BAA0B,GAAG,gCAAgC,CAAC,CAAC;IACxF,GAAG,CAAC,EAAE,eAAe,CAAA;CACtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thalalabs/surf",
3
- "version": "1.3.1",
3
+ "version": "1.4.1",
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",
@@ -55,7 +55,7 @@
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@aptos-labs/wallet-adapter-react": "^2.2.0",
58
- "@aptos-labs/ts-sdk": "^1.11.0",
58
+ "@aptos-labs/ts-sdk": "^1.14.0",
59
59
  "react": "^18.2.0"
60
60
  },
61
61
  "peerDependenciesMeta": {
@@ -58,6 +58,19 @@ describe('createViewPayload', () => {
58
58
 
59
59
  expect(payload).toMatchInlineSnapshot(`
60
60
  {
61
+ "abi": {
62
+ "parameters": [
63
+ n {},
64
+ ],
65
+ "returnTypes": [
66
+ n {},
67
+ ],
68
+ "typeParameters": [
69
+ {
70
+ "constraints": [],
71
+ },
72
+ ],
73
+ },
61
74
  "function": "0x1::coin::balance",
62
75
  "functionArguments": [
63
76
  "0x1",
@@ -92,6 +105,14 @@ describe('createViewPayload', () => {
92
105
 
93
106
  expect(payload).toMatchInlineSnapshot(`
94
107
  {
108
+ "abi": {
109
+ "parameters": [
110
+ n {},
111
+ n {},
112
+ ],
113
+ "returnTypes": [],
114
+ "typeParameters": [],
115
+ },
95
116
  "function": "0x123::test::bool_as_input",
96
117
  "functionArguments": [
97
118
  true,
@@ -125,6 +146,14 @@ describe('createViewPayload', () => {
125
146
 
126
147
  expect(payload).toMatchInlineSnapshot(`
127
148
  {
149
+ "abi": {
150
+ "parameters": [
151
+ n {},
152
+ n {},
153
+ ],
154
+ "returnTypes": [],
155
+ "typeParameters": [],
156
+ },
128
157
  "function": "0x123::test::address_as_input",
129
158
  "functionArguments": [
130
159
  "0x1",
@@ -158,6 +187,18 @@ describe('createViewPayload', () => {
158
187
 
159
188
  expect(payload).toMatchInlineSnapshot(`
160
189
  {
190
+ "abi": {
191
+ "parameters": [
192
+ n {},
193
+ n {},
194
+ n {},
195
+ n {},
196
+ n {},
197
+ n {},
198
+ ],
199
+ "returnTypes": [],
200
+ "typeParameters": [],
201
+ },
161
202
  "function": "0x123::test::number_as_input",
162
203
  "functionArguments": [
163
204
  1,
@@ -187,6 +228,27 @@ describe('createViewPayload', () => {
187
228
 
188
229
  expect(payload).toMatchInlineSnapshot(`
189
230
  {
231
+ "abi": {
232
+ "parameters": [
233
+ n {
234
+ "value": n {},
235
+ },
236
+ n {
237
+ "value": n {},
238
+ },
239
+ n {
240
+ "value": n {},
241
+ },
242
+ n {
243
+ "value": n {},
244
+ },
245
+ n {
246
+ "value": n {},
247
+ },
248
+ ],
249
+ "returnTypes": [],
250
+ "typeParameters": [],
251
+ },
190
252
  "function": "0x123::test::vector_as_input",
191
253
  "functionArguments": [
192
254
  [
@@ -39,8 +39,8 @@ describe('call entry functions', () => {
39
39
  expect((result as any).payload).toMatchInlineSnapshot(`
40
40
  {
41
41
  "arguments": [
42
- "0x0000000000000000000000000000000000000000000000000000000000000001",
43
- "0x0100000000000000",
42
+ "0x1",
43
+ "1",
44
44
  ],
45
45
  "function": "0x1::coin::transfer",
46
46
  "type": "entry_function_payload",
@@ -68,7 +68,7 @@ describe('call entry functions', () => {
68
68
  expect((result as any).payload).toMatchInlineSnapshot(`
69
69
  {
70
70
  "arguments": [
71
- "0x060102030a141e",
71
+ "0x0102030a141e",
72
72
  ],
73
73
  "function": "0x3d097bb505c9e5d8a96e367f371168240025877f6be8d4a88eacaafb709fe5c9::test::test_run_function",
74
74
  "type": "entry_function_payload",
@@ -92,7 +92,7 @@ describe('call entry functions', () => {
92
92
  });
93
93
 
94
94
  expect(result?.hash).toBeDefined();
95
- expect((result as any).payload.arguments[0]).toEqual("0x03010222");
95
+ expect((result as any).payload.arguments[0]).toEqual("0x010222");
96
96
  }, 60000);
97
97
 
98
98
 
@@ -111,7 +111,7 @@ describe('call entry functions', () => {
111
111
  });
112
112
 
113
113
  expect(result?.hash).toBeDefined();
114
- expect((result as any).payload.arguments[0]).toEqual("0x06313233346162");
114
+ expect((result as any).payload.arguments[0]).toEqual("0x313233346162");
115
115
  }, 60000);
116
116
  });
117
117
 
@@ -116,8 +116,8 @@ describe('useABI', () => {
116
116
  expect((result as any).payload).toMatchInlineSnapshot(`
117
117
  {
118
118
  "arguments": [
119
- "0x0000000000000000000000000000000000000000000000000000000000000001",
120
- "0x0100000000000000",
119
+ "0x1",
120
+ "1",
121
121
  ],
122
122
  "function": "0x1::coin::transfer",
123
123
  "type": "entry_function_payload",
@@ -6,7 +6,14 @@ import {
6
6
  ViewRequestPayload,
7
7
  } from '../types/index.js';
8
8
  import { ensureNumber } from '../ensureTypes.js';
9
- import { MoveStructId } from '@aptos-labs/ts-sdk';
9
+ import {
10
+ MoveFunctionGenericTypeParam,
11
+ MoveStructId,
12
+ TypeTag,
13
+ ViewFunctionABI,
14
+ parseTypeTag,
15
+ } from '@aptos-labs/ts-sdk';
16
+ import { ABIFunction } from '../types/abi.js';
10
17
 
11
18
  /**
12
19
  * Create a payload for calling a view function.
@@ -73,6 +80,33 @@ export function createViewPayload<
73
80
  function: `${abi.address}::${abi.name}::${payload.function}`,
74
81
  functionArguments: args,
75
82
  typeArguments: payload.typeArguments as Array<MoveStructId>,
83
+ abi: constructViewAbiObj(fnAbi),
84
+ };
85
+ }
86
+
87
+ function constructViewAbiObj(abi: ABIFunction): ViewFunctionABI {
88
+ // Non-view functions can't be used
89
+ if (!abi.is_view) {
90
+ throw new Error(`not an view function`);
91
+ }
92
+
93
+ // Type tag parameters for the function
94
+ const params: TypeTag[] = [];
95
+ for (let i = 0; i < abi.params.length; i += 1) {
96
+ params.push(parseTypeTag(abi.params[i]!, { allowGenerics: true }));
97
+ }
98
+
99
+ // The return types of the view function
100
+ const returnTypes: TypeTag[] = [];
101
+ for (let i = 0; i < abi.return.length; i += 1) {
102
+ returnTypes.push(parseTypeTag(abi.return[i]!, { allowGenerics: true }));
103
+ }
104
+
105
+ return {
106
+ typeParameters:
107
+ abi.generic_type_params as Array<MoveFunctionGenericTypeParam>,
108
+ parameters: params,
109
+ returnTypes,
76
110
  };
77
111
  }
78
112
 
@@ -10,7 +10,7 @@ import {
10
10
  ViewFunctionName,
11
11
  ExtractArgsType,
12
12
  } from '../extractor/functionExtractor.js';
13
- import { EntryFunctionArgumentTypes, MoveFunctionId, SimpleEntryFunctionArgumentTypes, TypeTag } from '@aptos-labs/ts-sdk';
13
+ import { EntryFunctionArgumentTypes, MoveFunctionId, SimpleEntryFunctionArgumentTypes, TypeTag, ViewFunctionABI } from '@aptos-labs/ts-sdk';
14
14
 
15
15
  export type TransactionResponse = {
16
16
  hash: string;
@@ -56,4 +56,5 @@ export type ViewPayload<_TReturn> = {
56
56
  function: MoveFunctionId;
57
57
  typeArguments?: Array<TypeTag | string>;
58
58
  functionArguments?:Array<EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes>;
59
+ abi?: ViewFunctionABI
59
60
  };