@thalalabs/surf 1.9.1 → 1.9.2

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,11 @@
1
1
  # @thalalabs/surf
2
2
 
3
+ ## 1.9.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 119f0ed: fix entry function abi type
8
+
3
9
  ## 1.9.1
4
10
 
5
11
  ### Patch Changes
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createEntryPayload = void 0;
4
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
4
5
  function createEntryPayload(abi, payload) {
5
6
  const fnAbi = abi.exposed_functions.filter((f) => f.name === payload.function)[0];
6
7
  if (fnAbi === undefined)
@@ -19,8 +20,25 @@ function createEntryPayload(abi, payload) {
19
20
  typeArguments: payload.typeArguments,
20
21
  functionArguments: payload.functionArguments,
21
22
  function: `${payload.address ?? abi.address}::${abi.name}::${payload.function}`,
22
- abi: fnAbi,
23
+ abi: constructEntryAbiObj(fnAbi),
23
24
  };
24
25
  }
25
26
  exports.createEntryPayload = createEntryPayload;
27
+ function constructEntryAbiObj(abi) {
28
+ if (!abi.is_entry) {
29
+ throw new Error(`not an entry function`);
30
+ }
31
+ const params = [];
32
+ for (let i = 0; i < abi.params.length; i += 1) {
33
+ params.push((0, ts_sdk_1.parseTypeTag)(abi.params[i], { allowGenerics: true }));
34
+ }
35
+ const returnTypes = [];
36
+ for (let i = 0; i < abi.return.length; i += 1) {
37
+ returnTypes.push((0, ts_sdk_1.parseTypeTag)(abi.return[i], { allowGenerics: true }));
38
+ }
39
+ return {
40
+ typeParameters: abi.generic_type_params,
41
+ parameters: params,
42
+ };
43
+ }
26
44
  //# sourceMappingURL=createEntryPayload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createEntryPayload.js","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":";;;AA2BA,SAAgB,kBAAkB,CAGhC,GAAM,EAAE,OAA0C;IAClD,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,CACnC,CAAC,CAAC,CAAC,CAAC;IAEL,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IAGnE,MAAM,aAAa,GAAa,OAAO,CAAC,aAAsB,CAAC;IAG/D,MAAM,YAAY,GAAU,OAAO,CAAC,iBAA0B,CAAC;IAC/D,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAI,KAAK,CAAC,MAAmB,CAAC,KAAK,CAC9C,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAC7D,CAAC;IAGF,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;QACxC,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,CAAC,QAAQ,YAAY,KAAK,CAAC,MAAM,CAAC,MAAM,mBAAmB,OAAO,CAAC,iBAAiB,CAAC,MAAM,gBAAgB,CAC/H,CAAC;IACJ,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM;QAC3D,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,CAAC,QAAQ,YAAY,KAAK,CAAC,mBAAmB,CAAC,MAAM,wBAAwB,OAAO,CAAC,aAAa,CAAC,MAAM,gBAAgB,CAC7I,CAAC;IAEJ,OAAO;QACL,aAAa,EAAE,OAAO,CAAC,aAAa;QAEpC,iBAAiB,EAAE,OAAO,CAAC,iBAAwB;QACnD,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE;QAC/E,GAAG,EAAE,KAAK;KACX,CAAC;AACJ,CAAC;AAxCD,gDAwCC"}
1
+ {"version":3,"file":"createEntryPayload.js","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":";;;AAOA,+CAK4B;AAsB5B,SAAgB,kBAAkB,CAGhC,GAAM,EAAE,OAA0C;IAClD,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,CACnC,CAAC,CAAC,CAAC,CAAC;IAEL,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IAGnE,MAAM,aAAa,GAAa,OAAO,CAAC,aAAsB,CAAC;IAG/D,MAAM,YAAY,GAAU,OAAO,CAAC,iBAA0B,CAAC;IAC/D,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAI,KAAK,CAAC,MAAmB,CAAC,KAAK,CAC9C,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAC7D,CAAC;IAGF,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;QACxC,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,CAAC,QAAQ,YAAY,KAAK,CAAC,MAAM,CAAC,MAAM,mBAAmB,OAAO,CAAC,iBAAiB,CAAC,MAAM,gBAAgB,CAC/H,CAAC;IACJ,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM;QAC3D,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,CAAC,QAAQ,YAAY,KAAK,CAAC,mBAAmB,CAAC,MAAM,wBAAwB,OAAO,CAAC,aAAa,CAAC,MAAM,gBAAgB,CAC7I,CAAC;IAEJ,OAAO;QACL,aAAa,EAAE,OAAO,CAAC,aAAa;QAEpC,iBAAiB,EAAE,OAAO,CAAC,iBAAwB;QACnD,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE;QAC/E,GAAG,EAAE,oBAAoB,CAAC,KAAK,CAAC;KACjC,CAAC;AACJ,CAAC;AAxCD,gDAwCC;AAED,SAAS,oBAAoB,CAAC,GAAgB;IAE5C,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;KAC1C;IAGD,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC7C,MAAM,CAAC,IAAI,CAAC,IAAA,qBAAY,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;KACpE;IAGD,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC7C,WAAW,CAAC,IAAI,CAAC,IAAA,qBAAY,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;KACzE;IAED,OAAO;QACL,cAAc,EACZ,GAAG,CAAC,mBAA0D;QAChE,UAAU,EAAE,MAAM;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useInitiaSubmitTransaction = void 0;
4
+ const react_1 = require("react");
5
+ const react_wallet_widget_1 = require("@initia/react-wallet-widget");
6
+ const initia_js_1 = require("@initia/initia.js");
7
+ const bcs_js_1 = require("../utils/bcs.js");
8
+ const useInitiaSubmitTransaction = () => {
9
+ const { address: initiaAddress, requestInitiaTx: initiaSign } = (0, react_wallet_widget_1.useWallet)();
10
+ const [isIdle, setIsIdle] = (0, react_1.useState)(true);
11
+ const [isLoading, setIsLoading] = (0, react_1.useState)(false);
12
+ const [data, setResult] = (0, react_1.useState)();
13
+ const [error, setError] = (0, react_1.useState)();
14
+ const idRef = (0, react_1.useRef)(0);
15
+ function reset() {
16
+ setIsIdle(true);
17
+ setIsLoading(false);
18
+ setResult(undefined);
19
+ setError(undefined);
20
+ idRef.current = idRef.current + 1;
21
+ }
22
+ async function submitTransaction(payload) {
23
+ const id = idRef.current;
24
+ if (!isIdle) {
25
+ throw new Error('Transaction is already in progress');
26
+ }
27
+ setIsLoading(true);
28
+ setIsIdle(false);
29
+ let result;
30
+ try {
31
+ if (initiaAddress && initiaSign) {
32
+ if (!payload.abi) {
33
+ throw new Error('abi is required for initia transactions');
34
+ }
35
+ const [moduleAddress, moduleName, functionName] = payload.function.split('::');
36
+ const fnAbi = payload.abi;
37
+ const nonSignerIndex = fnAbi.parameters.findIndex((param) => !param.isSigner());
38
+ const bcsArgs = [];
39
+ for (let i = 0; i < payload.functionArguments.length; i++) {
40
+ const arg = payload.functionArguments[i];
41
+ const paramType = fnAbi.parameters[i + nonSignerIndex];
42
+ if (!paramType) {
43
+ throw new Error('payload and abi mismatch');
44
+ }
45
+ bcsArgs.push((0, bcs_js_1.bcsEncoding)(arg, paramType.toString()));
46
+ }
47
+ result = await initiaSign({
48
+ msgs: [
49
+ new initia_js_1.MsgExecute(initiaAddress, moduleAddress, moduleName, functionName, payload.typeArguments, bcsArgs),
50
+ ],
51
+ });
52
+ }
53
+ else {
54
+ throw new Error('Wallet is not connected');
55
+ }
56
+ if (id === idRef.current) {
57
+ setResult(result);
58
+ setIsLoading(false);
59
+ }
60
+ }
61
+ catch (e) {
62
+ setError(error);
63
+ setIsLoading(false);
64
+ throw e;
65
+ }
66
+ return result;
67
+ }
68
+ return { submitTransaction, reset, isLoading, isIdle, data, error };
69
+ };
70
+ exports.useInitiaSubmitTransaction = useInitiaSubmitTransaction;
71
+ //# sourceMappingURL=useInitiaSubmitTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInitiaSubmitTransaction.js","sourceRoot":"","sources":["../../../src/hooks/useInitiaSubmitTransaction.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useSubmitTransaction = void 0;
4
4
  const react_1 = require("react");
5
5
  const wallet_adapter_react_1 = require("@aptos-labs/wallet-adapter-react");
6
- const react_wallet_widget_1 = require("@initia/react-wallet-widget");
7
- const initia_js_1 = require("@initia/initia.js");
8
- const bcs_js_1 = require("../utils/bcs.js");
9
- initia_js_1.MsgExecute.fromData;
10
6
  const useSubmitTransaction = () => {
11
7
  const { connected, signAndSubmitTransaction } = (0, wallet_adapter_react_1.useWallet)();
12
- const { address: initiaAddress, requestInitiaTx: initiaSign } = (0, react_wallet_widget_1.useWallet)();
13
8
  const [isIdle, setIsIdle] = (0, react_1.useState)(true);
14
9
  const [isLoading, setIsLoading] = (0, react_1.useState)(false);
15
10
  const [data, setResult] = (0, react_1.useState)();
@@ -51,27 +46,8 @@ const useSubmitTransaction = () => {
51
46
  options: options,
52
47
  });
53
48
  }
54
- else if (initiaAddress && initiaSign) {
55
- if (!payload.abi) {
56
- throw new Error('abi is required for initia transactions');
57
- }
58
- const [moduleAddress, moduleName, functionName] = payload.function.split('::');
59
- const fnAbi = payload.abi;
60
- const nonSignerIndex = fnAbi.params.findIndex((param) => param !== '&signer');
61
- const bcsArgs = [];
62
- for (let i = 0; i < payload.functionArguments.length; i++) {
63
- const arg = payload.functionArguments[i];
64
- const paramType = fnAbi.params[i + nonSignerIndex];
65
- if (!paramType) {
66
- throw new Error('payload and abi mismatch');
67
- }
68
- bcsArgs.push((0, bcs_js_1.bcsEncoding)(arg, paramType));
69
- }
70
- result = await initiaSign({
71
- msgs: [
72
- new initia_js_1.MsgExecute(initiaAddress, moduleAddress, moduleName, functionName, payload.typeArguments, bcsArgs),
73
- ],
74
- });
49
+ else {
50
+ throw new Error('Wallet is not connected');
75
51
  }
76
52
  if (id === idRef.current) {
77
53
  setResult(result);
@@ -1 +1 @@
1
- {"version":3,"file":"useSubmitTransaction.js","sourceRoot":"","sources":["../../../src/hooks/useSubmitTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSubmitTransaction.js","sourceRoot":"","sources":["../../../src/hooks/useSubmitTransaction.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AACzC,2EAA6D;AAItD,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,GAAG,IAAA,gCAAS,GAAE,CAAC;IAE5D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAElD,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,GAAO,CAAC;IAC1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAS,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAA,cAAM,EAAS,CAAC,CAAC,CAAC;IAEhC,SAAS,KAAK;QACZ,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,UAAU,iBAAiB,CAC9B,OAAqB,EACrB,OAAyC;QAGzC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;QAEzB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;QACD,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,SAAS,CAAC,KAAK,CAAC,CAAC;QAEjB,IAAI,MAAM,CAAC;QACX,IAAI;YACF,IAAI,SAAS,IAAI,wBAAwB,KAAK,SAAS,EAAE;gBACvD,MAAM,GAAG,MAAM,wBAAwB,CAAC;oBACtC,IAAI,EAAE;wBACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;wBAEpC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;4BAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gCAEtB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;6BACrC;iCAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;gCAClC,MAAM,IAAI,KAAK,CACb,2BAA2B,GAAG,mBAAmB,CAClD,CAAC;6BACH;iCAAM;gCACL,OAAO,GAAG,CAAC;6BACZ;wBACH,CAAC,CAAC;qBACH;oBACD,OAAO,EAAE,OAAQ;iBAClB,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;aAC5C;YAGD,IAAI,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE;gBACxB,SAAS,CAAC,MAAM,CAAC,CAAC;gBAClB,YAAY,CAAC,KAAK,CAAC,CAAC;aACrB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,CAAC;SACT;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACtE,CAAC,CAAC;AAzEW,QAAA,oBAAoB,wBAyE/B"}
@@ -1,3 +1,4 @@
1
+ import { parseTypeTag, } from '@aptos-labs/ts-sdk';
1
2
  export function createEntryPayload(abi, payload) {
2
3
  const fnAbi = abi.exposed_functions.filter((f) => f.name === payload.function)[0];
3
4
  if (fnAbi === undefined)
@@ -16,7 +17,24 @@ export function createEntryPayload(abi, payload) {
16
17
  typeArguments: payload.typeArguments,
17
18
  functionArguments: payload.functionArguments,
18
19
  function: `${payload.address ?? abi.address}::${abi.name}::${payload.function}`,
19
- abi: fnAbi,
20
+ abi: constructEntryAbiObj(fnAbi),
21
+ };
22
+ }
23
+ function constructEntryAbiObj(abi) {
24
+ if (!abi.is_entry) {
25
+ throw new Error(`not an entry function`);
26
+ }
27
+ const params = [];
28
+ for (let i = 0; i < abi.params.length; i += 1) {
29
+ params.push(parseTypeTag(abi.params[i], { allowGenerics: true }));
30
+ }
31
+ const returnTypes = [];
32
+ for (let i = 0; i < abi.return.length; i += 1) {
33
+ returnTypes.push(parseTypeTag(abi.return[i], { allowGenerics: true }));
34
+ }
35
+ return {
36
+ typeParameters: abi.generic_type_params,
37
+ parameters: params,
20
38
  };
21
39
  }
22
40
  //# sourceMappingURL=createEntryPayload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createEntryPayload.js","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":"AA2BA,MAAM,UAAU,kBAAkB,CAGhC,GAAM,EAAE,OAA0C;IAClD,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,CACnC,CAAC,CAAC,CAAC,CAAC;IAEL,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IAGnE,MAAM,aAAa,GAAa,OAAO,CAAC,aAAsB,CAAC;IAG/D,MAAM,YAAY,GAAU,OAAO,CAAC,iBAA0B,CAAC;IAC/D,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAI,KAAK,CAAC,MAAmB,CAAC,KAAK,CAC9C,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAC7D,CAAC;IAGF,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;QACxC,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,CAAC,QAAQ,YAAY,KAAK,CAAC,MAAM,CAAC,MAAM,mBAAmB,OAAO,CAAC,iBAAiB,CAAC,MAAM,gBAAgB,CAC/H,CAAC;IACJ,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM;QAC3D,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,CAAC,QAAQ,YAAY,KAAK,CAAC,mBAAmB,CAAC,MAAM,wBAAwB,OAAO,CAAC,aAAa,CAAC,MAAM,gBAAgB,CAC7I,CAAC;IAEJ,OAAO;QACL,aAAa,EAAE,OAAO,CAAC,aAAa;QAEpC,iBAAiB,EAAE,OAAO,CAAC,iBAAwB;QACnD,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE;QAC/E,GAAG,EAAE,KAAK;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"createEntryPayload.js","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { useState, useRef } from 'react';
2
+ import { useWallet as useInitiaWallet } from '@initia/react-wallet-widget';
3
+ import { MsgExecute } from '@initia/initia.js';
4
+ import { bcsEncoding } from '../utils/bcs.js';
5
+ export const useInitiaSubmitTransaction = () => {
6
+ const { address: initiaAddress, requestInitiaTx: initiaSign } = useInitiaWallet();
7
+ const [isIdle, setIsIdle] = useState(true);
8
+ const [isLoading, setIsLoading] = useState(false);
9
+ const [data, setResult] = useState();
10
+ const [error, setError] = useState();
11
+ const idRef = useRef(0);
12
+ function reset() {
13
+ setIsIdle(true);
14
+ setIsLoading(false);
15
+ setResult(undefined);
16
+ setError(undefined);
17
+ idRef.current = idRef.current + 1;
18
+ }
19
+ async function submitTransaction(payload) {
20
+ const id = idRef.current;
21
+ if (!isIdle) {
22
+ throw new Error('Transaction is already in progress');
23
+ }
24
+ setIsLoading(true);
25
+ setIsIdle(false);
26
+ let result;
27
+ try {
28
+ if (initiaAddress && initiaSign) {
29
+ if (!payload.abi) {
30
+ throw new Error('abi is required for initia transactions');
31
+ }
32
+ const [moduleAddress, moduleName, functionName] = payload.function.split('::');
33
+ const fnAbi = payload.abi;
34
+ const nonSignerIndex = fnAbi.parameters.findIndex((param) => !param.isSigner());
35
+ const bcsArgs = [];
36
+ for (let i = 0; i < payload.functionArguments.length; i++) {
37
+ const arg = payload.functionArguments[i];
38
+ const paramType = fnAbi.parameters[i + nonSignerIndex];
39
+ if (!paramType) {
40
+ throw new Error('payload and abi mismatch');
41
+ }
42
+ bcsArgs.push(bcsEncoding(arg, paramType.toString()));
43
+ }
44
+ result = await initiaSign({
45
+ msgs: [
46
+ new MsgExecute(initiaAddress, moduleAddress, moduleName, functionName, payload.typeArguments, bcsArgs),
47
+ ],
48
+ });
49
+ }
50
+ else {
51
+ throw new Error('Wallet is not connected');
52
+ }
53
+ if (id === idRef.current) {
54
+ setResult(result);
55
+ setIsLoading(false);
56
+ }
57
+ }
58
+ catch (e) {
59
+ setError(error);
60
+ setIsLoading(false);
61
+ throw e;
62
+ }
63
+ return result;
64
+ }
65
+ return { submitTransaction, reset, isLoading, isIdle, data, error };
66
+ };
67
+ //# sourceMappingURL=useInitiaSubmitTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInitiaSubmitTransaction.js","sourceRoot":"","sources":["../../../src/hooks/useInitiaSubmitTransaction.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,7 @@
1
1
  import { useState, useRef } from 'react';
2
2
  import { useWallet } from '@aptos-labs/wallet-adapter-react';
3
- import { useWallet as useInitiaWallet } from '@initia/react-wallet-widget';
4
- import { MsgExecute } from '@initia/initia.js';
5
- import { bcsEncoding } from '../utils/bcs.js';
6
- MsgExecute.fromData;
7
3
  export const useSubmitTransaction = () => {
8
4
  const { connected, signAndSubmitTransaction } = useWallet();
9
- const { address: initiaAddress, requestInitiaTx: initiaSign } = useInitiaWallet();
10
5
  const [isIdle, setIsIdle] = useState(true);
11
6
  const [isLoading, setIsLoading] = useState(false);
12
7
  const [data, setResult] = useState();
@@ -48,27 +43,8 @@ export const useSubmitTransaction = () => {
48
43
  options: options,
49
44
  });
50
45
  }
51
- else if (initiaAddress && initiaSign) {
52
- if (!payload.abi) {
53
- throw new Error('abi is required for initia transactions');
54
- }
55
- const [moduleAddress, moduleName, functionName] = payload.function.split('::');
56
- const fnAbi = payload.abi;
57
- const nonSignerIndex = fnAbi.params.findIndex((param) => param !== '&signer');
58
- const bcsArgs = [];
59
- for (let i = 0; i < payload.functionArguments.length; i++) {
60
- const arg = payload.functionArguments[i];
61
- const paramType = fnAbi.params[i + nonSignerIndex];
62
- if (!paramType) {
63
- throw new Error('payload and abi mismatch');
64
- }
65
- bcsArgs.push(bcsEncoding(arg, paramType));
66
- }
67
- result = await initiaSign({
68
- msgs: [
69
- new MsgExecute(initiaAddress, moduleAddress, moduleName, functionName, payload.typeArguments, bcsArgs),
70
- ],
71
- });
46
+ else {
47
+ throw new Error('Wallet is not connected');
72
48
  }
73
49
  if (id === idRef.current) {
74
50
  setResult(result);
@@ -1 +1 @@
1
- {"version":3,"file":"useSubmitTransaction.js","sourceRoot":"","sources":["../../../src/hooks/useSubmitTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSubmitTransaction.js","sourceRoot":"","sources":["../../../src/hooks/useSubmitTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAI7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,GAAG,SAAS,EAAE,CAAC;IAE5D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAO,CAAC;IAC1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAS,CAAC,CAAC,CAAC;IAEhC,SAAS,KAAK;QACZ,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,UAAU,iBAAiB,CAC9B,OAAqB,EACrB,OAAyC;QAGzC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;QAEzB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;QACD,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,SAAS,CAAC,KAAK,CAAC,CAAC;QAEjB,IAAI,MAAM,CAAC;QACX,IAAI;YACF,IAAI,SAAS,IAAI,wBAAwB,KAAK,SAAS,EAAE;gBACvD,MAAM,GAAG,MAAM,wBAAwB,CAAC;oBACtC,IAAI,EAAE;wBACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;wBAEpC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;4BAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gCAEtB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;6BACrC;iCAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;gCAClC,MAAM,IAAI,KAAK,CACb,2BAA2B,GAAG,mBAAmB,CAClD,CAAC;6BACH;iCAAM;gCACL,OAAO,GAAG,CAAC;6BACZ;wBACH,CAAC,CAAC;qBACH;oBACD,OAAO,EAAE,OAAQ;iBAClB,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;aAC5C;YAGD,IAAI,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE;gBACxB,SAAS,CAAC,MAAM,CAAC,CAAC;gBAClB,YAAY,CAAC,KAAK,CAAC,CAAC;aACrB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,CAAC;SACT;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACtE,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createEntryPayload.d.ts","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,iBAAiB,CAAC,CAAC,CAAC,EACtC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,YAAY,CAqClE"}
1
+ {"version":3,"file":"createEntryPayload.d.ts","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAS5E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,iBAAiB,CAAC,CAAC,CAAC,EACtC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,YAAY,CAqClE"}
@@ -0,0 +1,10 @@
1
+ import type { EntryPayload } from '../types/index.js';
2
+ export declare const useInitiaSubmitTransaction: () => {
3
+ submitTransaction: (payload: EntryPayload) => Promise<any>;
4
+ reset: () => void;
5
+ isLoading: boolean;
6
+ isIdle: boolean;
7
+ data: any;
8
+ error: Error | undefined;
9
+ };
10
+ //# sourceMappingURL=useInitiaSubmitTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInitiaSubmitTransaction.d.ts","sourceRoot":"","sources":["../../../src/hooks/useInitiaSubmitTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtD,eAAO,MAAM,0BAA0B;iCAoB1B,YAAY,KAGpB,QAAQ,GAAG,CAAC;;;;;;CA+DhB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSubmitTransaction.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSubmitTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAOrE,eAAO,MAAM,oBAAoB;iCAqBpB,YAAY,YACX,+BAA+B,KAExC,QAAQ,GAAG,CAAC;;;;;;CAkFhB,CAAC"}
1
+ {"version":3,"file":"useSubmitTransaction.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSubmitTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAErE,eAAO,MAAM,oBAAoB;iCAmBpB,YAAY,YACX,+BAA+B,KAExC,QAAQ,GAAG,CAAC;;;;;;CAmDhB,CAAC"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * The types for the `Client` class.
3
3
  */
4
- import { ABIFunction, ABIRoot } from '../abi.js';
4
+ import { ABIRoot } from '../abi.js';
5
5
  import { EntryFunctionName, ExtractArgsTypeOmitSigner, ExtractGenericArgsType, ViewFunctionName, ExtractArgsType } from '../extractor/functionExtractor.js';
6
- import { EntryFunctionArgumentTypes, MoveFunctionId, SimpleEntryFunctionArgumentTypes, TypeTag, ViewFunctionABI } from '@aptos-labs/ts-sdk';
6
+ import { EntryFunctionABI, EntryFunctionArgumentTypes, MoveFunctionId, SimpleEntryFunctionArgumentTypes, TypeTag, ViewFunctionABI } from '@aptos-labs/ts-sdk';
7
7
  export type TransactionResponse = {
8
8
  hash: string;
9
9
  };
@@ -14,7 +14,7 @@ export type EntryPayload = {
14
14
  function: MoveFunctionId;
15
15
  typeArguments: Array<string>;
16
16
  functionArguments: Array<EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes>;
17
- abi?: ABIFunction;
17
+ abi?: EntryFunctionABI;
18
18
  };
19
19
  /**
20
20
  * The input payload type of `createEntryPayload`
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/types/client/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,gCAAgC,EAChC,OAAO,EACP,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,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,CACtB,0BAA0B,GAAG,gCAAgC,CAC9D,CAAC;IACF,GAAG,CAAC,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAC7B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,iBAAiB,CAAC,CAAC,CAAC,IACpC;IACF,OAAO,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACxB,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,OAAO,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACxB,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,EAAE,KAAK,CACvB,0BAA0B,GAAG,gCAAgC,CAC9D,CAAC;IACF,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,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,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,gCAAgC,EAChC,OAAO,EACP,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,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,CACtB,0BAA0B,GAAG,gCAAgC,CAC9D,CAAC;IACF,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAC7B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,iBAAiB,CAAC,CAAC,CAAC,IACpC;IACF,OAAO,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACxB,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,OAAO,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACxB,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,EAAE,KAAK,CACvB,0BAA0B,GAAG,gCAAgC,CAC9D,CAAC;IACF,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thalalabs/surf",
3
- "version": "1.9.1",
3
+ "version": "1.9.2",
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",
@@ -23,6 +23,11 @@
23
23
  "types": "./build/types/hooks/index.d.ts",
24
24
  "import": "./build/esm/hooks/index.js",
25
25
  "default": "./build/cjs/hooks/index.js"
26
+ },
27
+ "./hooks/useInitiaSubmitTransaction": {
28
+ "types": "./build/types/hooks/useInitiaSubmitTransaction.d.ts",
29
+ "import": "./build/esm/hooks/useInitiaSubmitTransaction.js",
30
+ "default": "./build/cjs/hooks/useInitiaSubmitTransaction.js"
26
31
  }
27
32
  },
28
33
  "typesVersions": {
@@ -106,6 +111,6 @@
106
111
  },
107
112
  "license": "MIT",
108
113
  "dependencies": {
109
- "@initia/initia.js": "^1.0.0"
114
+ "@initia/initia.js": "^1.0.4"
110
115
  }
111
116
  }
@@ -4,6 +4,13 @@ import type {
4
4
  EntryRequestPayload,
5
5
  } from '../types/index.js';
6
6
  import { EntryFunctionName } from '../types/extractor/functionExtractor.js';
7
+ import { ABIFunction } from '../types/abi.js';
8
+ import {
9
+ EntryFunctionABI,
10
+ MoveFunctionGenericTypeParam,
11
+ TypeTag,
12
+ parseTypeTag,
13
+ } from '@aptos-labs/ts-sdk';
7
14
 
8
15
  /**
9
16
  * Create a payload for calling a entry function.
@@ -63,6 +70,31 @@ export function createEntryPayload<
63
70
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
64
71
  functionArguments: payload.functionArguments as any,
65
72
  function: `${payload.address ?? abi.address}::${abi.name}::${payload.function}`,
66
- abi: fnAbi,
73
+ abi: constructEntryAbiObj(fnAbi),
74
+ };
75
+ }
76
+
77
+ function constructEntryAbiObj(abi: ABIFunction): EntryFunctionABI {
78
+ // Non-view functions can't be used
79
+ if (!abi.is_entry) {
80
+ throw new Error(`not an entry function`);
81
+ }
82
+
83
+ // Type tag parameters for the function
84
+ const params: TypeTag[] = [];
85
+ for (let i = 0; i < abi.params.length; i += 1) {
86
+ params.push(parseTypeTag(abi.params[i]!, { allowGenerics: true }));
87
+ }
88
+
89
+ // The return types of the view function
90
+ const returnTypes: TypeTag[] = [];
91
+ for (let i = 0; i < abi.return.length; i += 1) {
92
+ returnTypes.push(parseTypeTag(abi.return[i]!, { allowGenerics: true }));
93
+ }
94
+
95
+ return {
96
+ typeParameters:
97
+ abi.generic_type_params as Array<MoveFunctionGenericTypeParam>,
98
+ parameters: params,
67
99
  };
68
100
  }
@@ -0,0 +1,94 @@
1
+ import { useState, useRef } from 'react';
2
+ import type { EntryPayload } from '../types/index.js';
3
+ // @ts-ignore
4
+ import { useWallet as useInitiaWallet } from '@initia/react-wallet-widget';
5
+ import { MsgExecute } from '@initia/initia.js';
6
+ import { bcsEncoding } from '../utils/bcs.js';
7
+
8
+ export const useInitiaSubmitTransaction = () => {
9
+ const { address: initiaAddress, requestInitiaTx: initiaSign } =
10
+ useInitiaWallet();
11
+
12
+ const [isIdle, setIsIdle] = useState(true);
13
+ const [isLoading, setIsLoading] = useState(false);
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ const [data, setResult] = useState<any>();
16
+ const [error, setError] = useState<Error>();
17
+ const idRef = useRef<number>(0);
18
+
19
+ function reset() {
20
+ setIsIdle(true);
21
+ setIsLoading(false);
22
+ setResult(undefined);
23
+ setError(undefined);
24
+ idRef.current = idRef.current + 1;
25
+ }
26
+
27
+ async function submitTransaction(
28
+ payload: EntryPayload,
29
+ // options?: InputGenerateTransactionOptions,
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ ): Promise<any> {
32
+ const id = idRef.current;
33
+
34
+ if (!isIdle) {
35
+ throw new Error('Transaction is already in progress');
36
+ }
37
+ setIsLoading(true);
38
+ setIsIdle(false);
39
+
40
+ let result;
41
+ try {
42
+ if (initiaAddress && initiaSign) {
43
+ if (!payload.abi) {
44
+ throw new Error('abi is required for initia transactions');
45
+ }
46
+ const [moduleAddress, moduleName, functionName] =
47
+ payload.function.split('::');
48
+ const fnAbi = payload.abi;
49
+ const nonSignerIndex = fnAbi.parameters.findIndex(
50
+ (param) => !param.isSigner(),
51
+ );
52
+ const bcsArgs: string[] = [];
53
+ for (let i = 0; i < payload.functionArguments.length; i++) {
54
+ const arg = payload.functionArguments[i];
55
+ const paramType = fnAbi.parameters[i + nonSignerIndex];
56
+ if (!paramType) {
57
+ throw new Error('payload and abi mismatch');
58
+ }
59
+
60
+ bcsArgs.push(bcsEncoding(arg, paramType.toString()));
61
+ }
62
+
63
+ result = await initiaSign({
64
+ msgs: [
65
+ new MsgExecute(
66
+ initiaAddress,
67
+ moduleAddress as string,
68
+ moduleName as string,
69
+ functionName as string,
70
+ payload.typeArguments,
71
+ bcsArgs,
72
+ ),
73
+ ],
74
+ });
75
+ } else {
76
+ throw new Error('Wallet is not connected');
77
+ }
78
+
79
+ // Only update the status if the request is not stale.
80
+ if (id === idRef.current) {
81
+ setResult(result);
82
+ setIsLoading(false);
83
+ }
84
+ } catch (e) {
85
+ setError(error);
86
+ setIsLoading(false);
87
+ throw e;
88
+ }
89
+
90
+ return result;
91
+ }
92
+
93
+ return { submitTransaction, reset, isLoading, isIdle, data, error };
94
+ };
@@ -2,16 +2,9 @@ import { useState, useRef } from 'react';
2
2
  import { useWallet } from '@aptos-labs/wallet-adapter-react';
3
3
  import type { EntryPayload } from '../types/index.js';
4
4
  import { InputGenerateTransactionOptions } from '@aptos-labs/ts-sdk';
5
- // @ts-ignore
6
- import { useWallet as useInitiaWallet } from '@initia/react-wallet-widget';
7
- import { MsgExecute } from '@initia/initia.js';
8
- import { bcsEncoding } from '../utils/bcs.js';
9
- MsgExecute.fromData;
10
- // TODO: add test for this
5
+
11
6
  export const useSubmitTransaction = () => {
12
7
  const { connected, signAndSubmitTransaction } = useWallet();
13
- const { address: initiaAddress, requestInitiaTx: initiaSign } =
14
- useInitiaWallet();
15
8
 
16
9
  const [isIdle, setIsIdle] = useState(true);
17
10
  const [isLoading, setIsLoading] = useState(false);
@@ -64,39 +57,8 @@ export const useSubmitTransaction = () => {
64
57
  },
65
58
  options: options!,
66
59
  });
67
- } else if (initiaAddress && initiaSign) {
68
- if (!payload.abi) {
69
- throw new Error('abi is required for initia transactions');
70
- }
71
- const [moduleAddress, moduleName, functionName] =
72
- payload.function.split('::');
73
- const fnAbi = payload.abi;
74
- const nonSignerIndex = fnAbi.params.findIndex(
75
- (param) => param !== '&signer',
76
- );
77
- const bcsArgs: string[] = [];
78
- for (let i = 0; i < payload.functionArguments.length; i++) {
79
- const arg = payload.functionArguments[i];
80
- const paramType = fnAbi.params[i + nonSignerIndex];
81
- if (!paramType) {
82
- throw new Error('payload and abi mismatch');
83
- }
84
-
85
- bcsArgs.push(bcsEncoding(arg, paramType));
86
- }
87
-
88
- result = await initiaSign({
89
- msgs: [
90
- new MsgExecute(
91
- initiaAddress,
92
- moduleAddress as string,
93
- moduleName as string,
94
- functionName as string,
95
- payload.typeArguments,
96
- bcsArgs,
97
- ),
98
- ],
99
- });
60
+ } else {
61
+ throw new Error('Wallet is not connected');
100
62
  }
101
63
 
102
64
  // Only update the status if the request is not stale.
@@ -2,7 +2,7 @@
2
2
  * The types for the `Client` class.
3
3
  */
4
4
 
5
- import { ABIFunction, ABIRoot } from '../abi.js';
5
+ import { ABIRoot } from '../abi.js';
6
6
  import {
7
7
  EntryFunctionName,
8
8
  ExtractArgsTypeOmitSigner,
@@ -11,6 +11,7 @@ import {
11
11
  ExtractArgsType,
12
12
  } from '../extractor/functionExtractor.js';
13
13
  import {
14
+ EntryFunctionABI,
14
15
  EntryFunctionArgumentTypes,
15
16
  MoveFunctionId,
16
17
  SimpleEntryFunctionArgumentTypes,
@@ -31,7 +32,7 @@ export type EntryPayload = {
31
32
  functionArguments: Array<
32
33
  EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes
33
34
  >;
34
- abi?: ABIFunction;
35
+ abi?: EntryFunctionABI;
35
36
  };
36
37
 
37
38
  /**