@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.
- package/CHANGELOG.md +12 -0
- package/build/cjs/abi/initia_account.js +232 -0
- package/build/cjs/abi/initia_account.js.map +1 -0
- package/build/cjs/abi/initia_coin.js +369 -0
- package/build/cjs/abi/initia_coin.js.map +1 -0
- package/build/cjs/core/Client.js +111 -33
- package/build/cjs/core/Client.js.map +1 -1
- package/build/cjs/core/WalletClient.js +4 -3
- package/build/cjs/core/WalletClient.js.map +1 -1
- package/build/cjs/core/createEntryPayload.js +3 -1
- package/build/cjs/core/createEntryPayload.js.map +1 -1
- package/build/cjs/hooks/useSubmitTransaction.js +47 -23
- package/build/cjs/hooks/useSubmitTransaction.js.map +1 -1
- package/build/cjs/utils/bcs.js +97 -0
- package/build/cjs/utils/bcs.js.map +1 -0
- package/build/esm/abi/initia_account.js +229 -0
- package/build/esm/abi/initia_account.js.map +1 -0
- package/build/esm/abi/initia_coin.js +366 -0
- package/build/esm/abi/initia_coin.js.map +1 -0
- package/build/esm/core/Client.js +111 -33
- package/build/esm/core/Client.js.map +1 -1
- package/build/esm/core/WalletClient.js +4 -3
- package/build/esm/core/WalletClient.js.map +1 -1
- package/build/esm/core/createEntryPayload.js +3 -1
- package/build/esm/core/createEntryPayload.js.map +1 -1
- package/build/esm/hooks/useSubmitTransaction.js +47 -23
- package/build/esm/hooks/useSubmitTransaction.js.map +1 -1
- package/build/esm/utils/bcs.js +93 -0
- package/build/esm/utils/bcs.js.map +1 -0
- package/build/types/abi/initia_account.d.ts +210 -0
- package/build/types/abi/initia_account.d.ts.map +1 -0
- package/build/types/abi/initia_coin.d.ts +287 -0
- package/build/types/abi/initia_coin.d.ts.map +1 -0
- package/build/types/core/Client.d.ts +5 -3
- package/build/types/core/Client.d.ts.map +1 -1
- package/build/types/core/WalletClient.d.ts.map +1 -1
- package/build/types/core/createEntryPayload.d.ts.map +1 -1
- package/build/types/hooks/useSubmitTransaction.d.ts.map +1 -1
- package/build/types/types/client/client.d.ts +2 -1
- package/build/types/types/client/client.d.ts.map +1 -1
- package/build/types/utils/bcs.d.ts +9 -0
- package/build/types/utils/bcs.d.ts.map +1 -0
- package/package.json +11 -3
- package/src/abi/initia_account.ts +228 -0
- package/src/abi/initia_coin.ts +365 -0
- package/src/core/Client.ts +135 -46
- package/src/core/WalletClient.ts +6 -9
- package/src/core/__tests__/createEntryPayload.test.ts +15 -0
- package/src/core/createEntryPayload.ts +3 -1
- package/src/hooks/useSubmitTransaction.ts +47 -15
- package/src/types/client/client.ts +16 -5
- package/src/utils/bcs.ts +104 -0
package/build/esm/core/Client.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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":"AAAA,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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"}
|
|
@@ -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
|
-
|
|
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;
|
|
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
|
|
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,
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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;
|
|
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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"}
|