@thalalabs/surf 1.8.0 → 1.9.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.
Files changed (52) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/cjs/abi/initia_account.js +232 -0
  3. package/build/cjs/abi/initia_account.js.map +1 -0
  4. package/build/cjs/abi/initia_coin.js +369 -0
  5. package/build/cjs/abi/initia_coin.js.map +1 -0
  6. package/build/cjs/core/Client.js +111 -33
  7. package/build/cjs/core/Client.js.map +1 -1
  8. package/build/cjs/core/WalletClient.js +4 -3
  9. package/build/cjs/core/WalletClient.js.map +1 -1
  10. package/build/cjs/core/createEntryPayload.js +3 -1
  11. package/build/cjs/core/createEntryPayload.js.map +1 -1
  12. package/build/cjs/hooks/useSubmitTransaction.js +47 -23
  13. package/build/cjs/hooks/useSubmitTransaction.js.map +1 -1
  14. package/build/cjs/utils/bcs.js +97 -0
  15. package/build/cjs/utils/bcs.js.map +1 -0
  16. package/build/esm/abi/initia_account.js +229 -0
  17. package/build/esm/abi/initia_account.js.map +1 -0
  18. package/build/esm/abi/initia_coin.js +366 -0
  19. package/build/esm/abi/initia_coin.js.map +1 -0
  20. package/build/esm/core/Client.js +111 -33
  21. package/build/esm/core/Client.js.map +1 -1
  22. package/build/esm/core/WalletClient.js +4 -3
  23. package/build/esm/core/WalletClient.js.map +1 -1
  24. package/build/esm/core/createEntryPayload.js +3 -1
  25. package/build/esm/core/createEntryPayload.js.map +1 -1
  26. package/build/esm/hooks/useSubmitTransaction.js +47 -23
  27. package/build/esm/hooks/useSubmitTransaction.js.map +1 -1
  28. package/build/esm/utils/bcs.js +93 -0
  29. package/build/esm/utils/bcs.js.map +1 -0
  30. package/build/types/abi/initia_account.d.ts +210 -0
  31. package/build/types/abi/initia_account.d.ts.map +1 -0
  32. package/build/types/abi/initia_coin.d.ts +287 -0
  33. package/build/types/abi/initia_coin.d.ts.map +1 -0
  34. package/build/types/core/Client.d.ts +5 -3
  35. package/build/types/core/Client.d.ts.map +1 -1
  36. package/build/types/core/WalletClient.d.ts.map +1 -1
  37. package/build/types/core/createEntryPayload.d.ts.map +1 -1
  38. package/build/types/hooks/useSubmitTransaction.d.ts.map +1 -1
  39. package/build/types/types/client/client.d.ts +2 -1
  40. package/build/types/types/client/client.d.ts.map +1 -1
  41. package/build/types/utils/bcs.d.ts +9 -0
  42. package/build/types/utils/bcs.d.ts.map +1 -0
  43. package/package.json +11 -3
  44. package/src/abi/initia_account.ts +228 -0
  45. package/src/abi/initia_coin.ts +365 -0
  46. package/src/core/Client.ts +135 -46
  47. package/src/core/WalletClient.ts +6 -9
  48. package/src/core/__tests__/createEntryPayload.test.ts +15 -0
  49. package/src/core/createEntryPayload.ts +3 -1
  50. package/src/hooks/useSubmitTransaction.ts +47 -15
  51. package/src/types/client/client.ts +16 -5
  52. package/src/utils/bcs.ts +104 -0
@@ -1,5 +1,6 @@
1
1
  import { createViewPayload } from './createViewPayload.js';
2
2
  import { createEntryPayload } from './createEntryPayload.js';
3
+ import { bcsEncoding } from '../utils/bcs.js';
3
4
  export function createSurfClient(aptosClient) {
4
5
  return new Client(aptosClient);
5
6
  }
@@ -11,40 +12,107 @@ export class Client {
11
12
  writable: true,
12
13
  value: void 0
13
14
  });
14
- this.client = client;
15
+ Object.defineProperty(this, "initiaClient", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: void 0
20
+ });
21
+ if ('bank' in client && 'evm' in client) {
22
+ this.initiaClient = client;
23
+ }
24
+ else {
25
+ this.client = client;
26
+ }
15
27
  }
16
28
  async view(args) {
17
- return await this.client.view(args);
29
+ if (this.client) {
30
+ return await this.client.view(args);
31
+ }
32
+ else if (this.initiaClient) {
33
+ const functionParts = args.payload.function.split('::');
34
+ if (functionParts.length !== 3) {
35
+ throw new Error(`Invalid function format: ${args.payload.function}`);
36
+ }
37
+ if (!args.payload.functionArguments || !args.payload.typeArguments) {
38
+ throw new Error('No function arguments or type arguments provided');
39
+ }
40
+ if (!args.payload.abi) {
41
+ throw new Error('No ABI provided');
42
+ }
43
+ const [moduleAddress, moduleName, functionName] = functionParts;
44
+ if (!moduleAddress || !moduleName || !functionName) {
45
+ throw new Error('Invalid function format');
46
+ }
47
+ const bcsArgs = [];
48
+ for (let i = 0; i < args.payload.functionArguments.length; i++) {
49
+ const arg = args.payload.functionArguments[i];
50
+ const paramType = args.payload.abi.parameters[i];
51
+ if (!paramType) {
52
+ throw new Error('payload and abi mismatch');
53
+ }
54
+ const typeStr = paramType.toString();
55
+ bcsArgs.push(bcsEncoding(arg, typeStr));
56
+ }
57
+ const result = await this.initiaClient.move.viewFunction(moduleAddress, moduleName, functionName, args.payload.typeArguments.map((tag) => tag.toString()), bcsArgs);
58
+ return [result];
59
+ }
60
+ else {
61
+ throw new Error('No client available');
62
+ }
18
63
  }
19
64
  async submitTransaction(args) {
20
- const transaction = await this.client.transaction.build.simple({
21
- sender: args.signer.accountAddress.toString(),
22
- data: args.payload,
23
- });
24
- const transactionRes = await this.client.transaction.signAndSubmitTransaction({
25
- signer: args.signer,
26
- transaction,
27
- });
28
- return await this.client.waitForTransaction({
29
- transactionHash: transactionRes.hash,
30
- options: args.options ?? {},
31
- });
65
+ if (this.client) {
66
+ const transaction = await this.client.transaction.build.simple({
67
+ sender: args.signer.accountAddress.toString(),
68
+ data: {
69
+ function: args.payload.function,
70
+ typeArguments: args.payload.typeArguments,
71
+ functionArguments: args.payload.functionArguments,
72
+ },
73
+ });
74
+ const transactionRes = await this.client.transaction.signAndSubmitTransaction({
75
+ signer: args.signer,
76
+ transaction,
77
+ });
78
+ return await this.client.waitForTransaction({
79
+ transactionHash: transactionRes.hash,
80
+ options: args.options ?? {},
81
+ });
82
+ }
83
+ else {
84
+ throw new Error('Not implemented');
85
+ }
32
86
  }
33
87
  async simulateTransaction(args) {
34
- const transaction = await this.client.transaction.build.simple({
35
- sender: args.sender,
36
- data: args.payload,
37
- });
38
- return (await this.client.transaction.simulate.simple({
39
- signerPublicKey: args.publicKey,
40
- transaction,
41
- }))[0];
88
+ if (this.client) {
89
+ const transaction = await this.client.transaction.build.simple({
90
+ sender: args.sender,
91
+ data: {
92
+ function: args.payload.function,
93
+ typeArguments: args.payload.typeArguments,
94
+ functionArguments: args.payload.functionArguments,
95
+ },
96
+ });
97
+ return (await this.client.transaction.simulate.simple({
98
+ signerPublicKey: args.publicKey,
99
+ transaction,
100
+ }))[0];
101
+ }
102
+ else {
103
+ throw new Error('Not implemented');
104
+ }
42
105
  }
43
106
  async fetchABI(address, moduleName) {
44
- return (await this.client.getAccountModule({
45
- accountAddress: address,
46
- moduleName: moduleName,
47
- })).abi;
107
+ if (this.client) {
108
+ return (await this.client.getAccountModule({
109
+ accountAddress: address,
110
+ moduleName: moduleName,
111
+ })).abi;
112
+ }
113
+ else {
114
+ throw new Error('Not implemented');
115
+ }
48
116
  }
49
117
  useABI(abi, address) {
50
118
  return {
@@ -99,13 +167,23 @@ export class Client {
99
167
  structName += `<${args[0].typeArguments.join(',')}>`;
100
168
  }
101
169
  const account = args[0].account;
102
- return this.client.getAccountResource({
103
- accountAddress: account,
104
- resourceType: `${address ?? abi.address}::${abi.name}::${structName}`,
105
- options: {
106
- ledgerVersion: args[0].ledgerVersion,
107
- },
108
- });
170
+ if (this.client) {
171
+ return this.client.getAccountResource({
172
+ accountAddress: account,
173
+ resourceType: `${address ?? abi.address}::${abi.name}::${structName}`,
174
+ options: {
175
+ ledgerVersion: args[0].ledgerVersion,
176
+ },
177
+ });
178
+ }
179
+ else if (this.initiaClient) {
180
+ return this.initiaClient.move
181
+ .resource(account.toString(), `${address ?? abi.address}::${abi.name}::${structName}`, {})
182
+ .then((res) => res.data);
183
+ }
184
+ else {
185
+ throw new Error('No client available');
186
+ }
109
187
  };
110
188
  },
111
189
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,10 @@ export class WalletClient {
11
11
  }
12
12
  async submitTransaction(payload) {
13
13
  return await this.wallet.signAndSubmitTransaction({
14
- sender: this.wallet.account?.address ?? "",
14
+ sender: this.wallet.account?.address ?? '',
15
15
  data: {
16
- ...payload,
16
+ function: payload.function,
17
+ typeArguments: payload.typeArguments,
17
18
  functionArguments: payload.functionArguments.map((arg) => {
18
19
  if (Array.isArray(arg)) {
19
20
  return arg.map((item) => item);
@@ -25,7 +26,7 @@ export class WalletClient {
25
26
  return arg;
26
27
  }
27
28
  }),
28
- }
29
+ },
29
30
  });
30
31
  }
31
32
  useABI(abi) {
@@ -1 +1 @@
1
- {"version":3,"file":"WalletClient.js","sourceRoot":"","sources":["../../../src/core/WalletClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAS7D,MAAM,OAAO,YAAY;IAGvB,YAAY,EAAE,MAAM,EAAuB;QAFnC;;;;;WAAe;QAGrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,OAAqB;QAGrB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC;YAChD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE;YAC1C,IAAI,EAAE;gBACJ,GAAG,OAAO;gBAEV,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;oBAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBAEtB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;qBACrC;yBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;wBAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,mBAAmB,CAAC,CAAC;qBACpE;yBAAM;wBACL,OAAO,GAAG,CAAC;qBACZ;gBACH,CAAC,CAAC;aACH;SACF,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAoB,GAAM;QACrC,OAAO,IAAI,KAAK,CAAC,EAAwB,EAAE;YACzC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;gBACf,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;oBACjB,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE;wBACtC,QAAQ,EAAE,YAAY;wBACtB,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc;wBACrC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;qBACrC,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBACzC,CAAC,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"WalletClient.js","sourceRoot":"","sources":["../../../src/core/WalletClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAK7D,MAAM,OAAO,YAAY;IAGvB,YAAY,EAAE,MAAM,EAAsB;QAFlC;;;;;WAAe;QAGrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,OAAqB;QAGrB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC;YAChD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE;YAC1C,IAAI,EAAE;gBACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;gBAEpC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;oBAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBAEtB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;qBACrC;yBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;wBAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,mBAAmB,CAAC,CAAC;qBACpE;yBAAM;wBACL,OAAO,GAAG,CAAC;qBACZ;gBACH,CAAC,CAAC;aACH;SACF,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAoB,GAAM;QACrC,OAAO,IAAI,KAAK,CAAC,EAAwB,EAAE;YACzC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;gBACf,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;oBACjB,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE;wBACtC,QAAQ,EAAE,YAAY;wBACtB,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc;wBACrC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;qBACrC,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBACzC,CAAC,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -4,7 +4,8 @@ export function createEntryPayload(abi, payload) {
4
4
  throw new Error(`Function ${payload.function} not found in ABI`);
5
5
  const typeArguments = payload.typeArguments;
6
6
  const valArguments = payload.functionArguments;
7
- const abiArgs = fnAbi.params.slice(fnAbi.params.findIndex((param) => param !== '&signer'));
7
+ const nonSignerIndex = fnAbi.params.findIndex((param) => param !== '&signer');
8
+ const abiArgs = fnAbi.params.slice(nonSignerIndex === -1 ? fnAbi.params.length : nonSignerIndex);
8
9
  if (fnAbi === undefined)
9
10
  throw new Error(`Function ${payload.function} not found in ABI`);
10
11
  if (abiArgs.length !== valArguments.length)
@@ -15,6 +16,7 @@ export function createEntryPayload(abi, payload) {
15
16
  typeArguments: payload.typeArguments,
16
17
  functionArguments: payload.functionArguments,
17
18
  function: `${payload.address ?? abi.address}::${abi.name}::${payload.function}`,
19
+ abi: fnAbi,
18
20
  };
19
21
  }
20
22
  //# 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,OAAO,GAAI,KAAK,CAAC,MAAmB,CAAC,KAAK,CAC9C,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CACvD,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;KAChF,CAAC;AACJ,CAAC"}
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,7 +1,12 @@
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;
3
7
  export const useSubmitTransaction = () => {
4
8
  const { connected, signAndSubmitTransaction } = useWallet();
9
+ const { address: initiaAddress, requestInitiaTx: initiaSign } = useInitiaWallet();
5
10
  const [isIdle, setIsIdle] = useState(true);
6
11
  const [isLoading, setIsLoading] = useState(false);
7
12
  const [data, setResult] = useState();
@@ -15,12 +20,6 @@ export const useSubmitTransaction = () => {
15
20
  idRef.current = idRef.current + 1;
16
21
  }
17
22
  async function submitTransaction(payload, options) {
18
- if (connected === false) {
19
- throw new Error('Wallet is not connected');
20
- }
21
- if (signAndSubmitTransaction === undefined) {
22
- return;
23
- }
24
23
  const id = idRef.current;
25
24
  if (!isIdle) {
26
25
  throw new Error('Transaction is already in progress');
@@ -29,23 +28,48 @@ export const useSubmitTransaction = () => {
29
28
  setIsIdle(false);
30
29
  let result;
31
30
  try {
32
- result = await signAndSubmitTransaction({
33
- data: {
34
- ...payload,
35
- functionArguments: payload.functionArguments.map((arg) => {
36
- if (Array.isArray(arg)) {
37
- return arg.map((item) => item);
38
- }
39
- else if (typeof arg === 'object') {
40
- throw new Error(`a value of struct type: ${arg} is not supported`);
41
- }
42
- else {
43
- return arg;
44
- }
45
- }),
46
- },
47
- options: options,
48
- });
31
+ if (connected && signAndSubmitTransaction !== undefined) {
32
+ result = await signAndSubmitTransaction({
33
+ data: {
34
+ function: payload.function,
35
+ typeArguments: payload.typeArguments,
36
+ functionArguments: payload.functionArguments.map((arg) => {
37
+ if (Array.isArray(arg)) {
38
+ return arg.map((item) => item);
39
+ }
40
+ else if (typeof arg === 'object') {
41
+ throw new Error(`a value of struct type: ${arg} is not supported`);
42
+ }
43
+ else {
44
+ return arg;
45
+ }
46
+ }),
47
+ },
48
+ options: options,
49
+ });
50
+ }
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
+ });
72
+ }
49
73
  if (id === idRef.current) {
50
74
  setResult(result);
51
75
  setIsLoading(false);
@@ -1 +1 @@
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;AAK7D,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;QAIzC,IAAI,SAAS,KAAK,KAAK,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;QAED,IAAI,wBAAwB,KAAK,SAAS,EAAE;YAC1C,OAAO;SACR;QACD,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,CAAA;QACV,IAAI;YACF,MAAM,GAAG,MAAM,wBAAwB,CACrC;gBACE,IAAI,EAAE;oBACJ,GAAG,OAAO;oBAEV,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;wBAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BAEtB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;yBACrC;6BAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;4BAClC,MAAM,IAAI,KAAK,CACb,2BAA2B,GAAG,mBAAmB,CAClD,CAAC;yBACH;6BAAM;4BACL,OAAO,GAAG,CAAC;yBACZ;oBACH,CAAC,CAAC;iBACH;gBACD,OAAO,EAAE,OAAQ;aAClB,CACF,CAAC;YAGF,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
+ {"version":3,"file":"useSubmitTransaction.js","sourceRoot":"","sources":["../../../src/hooks/useSubmitTransaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import { bcs } from '@initia/initia.js';
2
+ export function bcsEncoding(arg, typeStr, target = 'base64') {
3
+ const serializer = target === 'base64' ? 'toBase64' : 'toBytes';
4
+ if (typeStr === 'address' || typeStr.startsWith('0x1::object::Object')) {
5
+ return bcs
6
+ .address()
7
+ .serialize(arg)[serializer]();
8
+ }
9
+ else if (typeStr === 'bool') {
10
+ return bcs
11
+ .bool()
12
+ .serialize(arg)[serializer]();
13
+ }
14
+ else if (typeStr === 'u8') {
15
+ return bcs
16
+ .u8()
17
+ .serialize(arg)[serializer]();
18
+ }
19
+ else if (typeStr === 'u16') {
20
+ return bcs
21
+ .u16()
22
+ .serialize(arg)[serializer]();
23
+ }
24
+ else if (typeStr === 'u32') {
25
+ return bcs
26
+ .u32()
27
+ .serialize(arg)[serializer]();
28
+ }
29
+ else if (typeStr === 'u64') {
30
+ return bcs
31
+ .u64()
32
+ .serialize(arg)[serializer]();
33
+ }
34
+ else if (typeStr === 'u128') {
35
+ return bcs
36
+ .u128()
37
+ .serialize(arg)[serializer]();
38
+ }
39
+ else if (typeStr === 'u256') {
40
+ return bcs
41
+ .u256()
42
+ .serialize(arg)[serializer]();
43
+ }
44
+ else if (typeStr.startsWith('vector<u8>')) {
45
+ return bcs
46
+ .vector(bcs.u8())
47
+ .serialize(arg)[serializer]();
48
+ }
49
+ else if (typeStr.startsWith('vector<')) {
50
+ const innerTypeMatch = typeStr.match(/vector<([^>]+)>/);
51
+ if (!innerTypeMatch) {
52
+ throw new Error(`Unsupported vector type: ${typeStr}`);
53
+ }
54
+ const innerType = innerTypeMatch[1];
55
+ if (innerType === 'address') {
56
+ return bcs
57
+ .vector(bcs.address())
58
+ .serialize(arg)[serializer]();
59
+ }
60
+ else if (innerType === 'bool') {
61
+ return bcs
62
+ .vector(bcs.bool())
63
+ .serialize(arg)[serializer]();
64
+ }
65
+ else if (innerType === 'u8') {
66
+ return bcs
67
+ .vector(bcs.u8())
68
+ .serialize(arg)[serializer]();
69
+ }
70
+ else if (innerType === 'u64') {
71
+ return bcs
72
+ .vector(bcs.u64())
73
+ .serialize(arg)[serializer]();
74
+ }
75
+ else if (innerType === 'u128') {
76
+ return bcs
77
+ .vector(bcs.u128())
78
+ .serialize(arg)[serializer]();
79
+ }
80
+ else if (innerType === 'u256') {
81
+ return bcs
82
+ .vector(bcs.u256())
83
+ .serialize(arg)[serializer]();
84
+ }
85
+ else {
86
+ throw new Error(`Unsupported vector inner type: ${innerType}`);
87
+ }
88
+ }
89
+ else {
90
+ throw new Error(`Unsupported type: ${typeStr}`);
91
+ }
92
+ }
93
+ //# sourceMappingURL=bcs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcs.js","sourceRoot":"","sources":["../../../src/utils/bcs.ts"],"names":[],"mappings":"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"}