@thalalabs/surf 0.0.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.
Files changed (122) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +196 -0
  3. package/build/cjs/core/Client.js +80 -0
  4. package/build/cjs/core/Client.js.map +1 -0
  5. package/build/cjs/core/WalletClient.js +52 -0
  6. package/build/cjs/core/WalletClient.js.map +1 -0
  7. package/build/cjs/core/createEntryPayload.js +91 -0
  8. package/build/cjs/core/createEntryPayload.js.map +1 -0
  9. package/build/cjs/core/createViewPayload.js +78 -0
  10. package/build/cjs/core/createViewPayload.js.map +1 -0
  11. package/build/cjs/core/index.js +13 -0
  12. package/build/cjs/core/index.js.map +1 -0
  13. package/build/cjs/ensureTypes.js +40 -0
  14. package/build/cjs/ensureTypes.js.map +1 -0
  15. package/build/cjs/hooks/index.js +8 -0
  16. package/build/cjs/hooks/index.js.map +1 -0
  17. package/build/cjs/hooks/useSubmitTransaction.js +88 -0
  18. package/build/cjs/hooks/useSubmitTransaction.js.map +1 -0
  19. package/build/cjs/hooks/useWalletClient.js +14 -0
  20. package/build/cjs/hooks/useWalletClient.js.map +1 -0
  21. package/build/cjs/index.js +8 -0
  22. package/build/cjs/index.js.map +1 -0
  23. package/build/cjs/package.json +1 -0
  24. package/build/cjs/types/abi.js +3 -0
  25. package/build/cjs/types/abi.js.map +1 -0
  26. package/build/cjs/types/abiClient.js +3 -0
  27. package/build/cjs/types/abiClient.js.map +1 -0
  28. package/build/cjs/types/client.js +3 -0
  29. package/build/cjs/types/client.js.map +1 -0
  30. package/build/cjs/types/common.js +3 -0
  31. package/build/cjs/types/common.js.map +1 -0
  32. package/build/cjs/types/index.js +3 -0
  33. package/build/cjs/types/index.js.map +1 -0
  34. package/build/cjs/types/walletClient.js +3 -0
  35. package/build/cjs/types/walletClient.js.map +1 -0
  36. package/build/esm/core/Client.js +75 -0
  37. package/build/esm/core/Client.js.map +1 -0
  38. package/build/esm/core/WalletClient.js +48 -0
  39. package/build/esm/core/WalletClient.js.map +1 -0
  40. package/build/esm/core/createEntryPayload.js +87 -0
  41. package/build/esm/core/createEntryPayload.js.map +1 -0
  42. package/build/esm/core/createViewPayload.js +74 -0
  43. package/build/esm/core/createViewPayload.js.map +1 -0
  44. package/build/esm/core/index.js +5 -0
  45. package/build/esm/core/index.js.map +1 -0
  46. package/build/esm/ensureTypes.js +34 -0
  47. package/build/esm/ensureTypes.js.map +1 -0
  48. package/build/esm/hooks/index.js +3 -0
  49. package/build/esm/hooks/index.js.map +1 -0
  50. package/build/esm/hooks/useSubmitTransaction.js +84 -0
  51. package/build/esm/hooks/useSubmitTransaction.js.map +1 -0
  52. package/build/esm/hooks/useWalletClient.js +10 -0
  53. package/build/esm/hooks/useWalletClient.js.map +1 -0
  54. package/build/esm/index.js +2 -0
  55. package/build/esm/index.js.map +1 -0
  56. package/build/esm/package.json +1 -0
  57. package/build/esm/types/abi.js +2 -0
  58. package/build/esm/types/abi.js.map +1 -0
  59. package/build/esm/types/abiClient.js +2 -0
  60. package/build/esm/types/abiClient.js.map +1 -0
  61. package/build/esm/types/client.js +2 -0
  62. package/build/esm/types/client.js.map +1 -0
  63. package/build/esm/types/common.js +2 -0
  64. package/build/esm/types/common.js.map +1 -0
  65. package/build/esm/types/index.js +2 -0
  66. package/build/esm/types/index.js.map +1 -0
  67. package/build/esm/types/walletClient.js +2 -0
  68. package/build/esm/types/walletClient.js.map +1 -0
  69. package/build/types/core/Client.d.ts +20 -0
  70. package/build/types/core/Client.d.ts.map +1 -0
  71. package/build/types/core/WalletClient.d.ts +17 -0
  72. package/build/types/core/WalletClient.d.ts.map +1 -0
  73. package/build/types/core/createEntryPayload.d.ts +4 -0
  74. package/build/types/core/createEntryPayload.d.ts.map +1 -0
  75. package/build/types/core/createViewPayload.d.ts +4 -0
  76. package/build/types/core/createViewPayload.d.ts.map +1 -0
  77. package/build/types/core/index.d.ts +5 -0
  78. package/build/types/core/index.d.ts.map +1 -0
  79. package/build/types/ensureTypes.d.ts +4 -0
  80. package/build/types/ensureTypes.d.ts.map +1 -0
  81. package/build/types/hooks/index.d.ts +3 -0
  82. package/build/types/hooks/index.d.ts.map +1 -0
  83. package/build/types/hooks/useSubmitTransaction.d.ts +19 -0
  84. package/build/types/hooks/useSubmitTransaction.d.ts.map +1 -0
  85. package/build/types/hooks/useWalletClient.d.ts +8 -0
  86. package/build/types/hooks/useWalletClient.d.ts.map +1 -0
  87. package/build/types/index.d.ts +3 -0
  88. package/build/types/index.d.ts.map +1 -0
  89. package/build/types/types/abi.d.ts +31 -0
  90. package/build/types/types/abi.d.ts.map +1 -0
  91. package/build/types/types/abiClient.d.ts +18 -0
  92. package/build/types/types/abiClient.d.ts.map +1 -0
  93. package/build/types/types/client.d.ts +24 -0
  94. package/build/types/types/client.d.ts.map +1 -0
  95. package/build/types/types/common.d.ts +60 -0
  96. package/build/types/types/common.d.ts.map +1 -0
  97. package/build/types/types/index.d.ts +5 -0
  98. package/build/types/types/index.d.ts.map +1 -0
  99. package/build/types/types/walletClient.d.ts +9 -0
  100. package/build/types/types/walletClient.d.ts.map +1 -0
  101. package/package.json +78 -0
  102. package/src/core/Client.ts +120 -0
  103. package/src/core/WalletClient.ts +64 -0
  104. package/src/core/__tests__/createEntryPayload.test.ts +262 -0
  105. package/src/core/__tests__/createViewPayload.test.ts +297 -0
  106. package/src/core/__tests__/submitTransaction.test.ts +112 -0
  107. package/src/core/__tests__/useABI.test.ts +139 -0
  108. package/src/core/__tests__/view.test.ts +145 -0
  109. package/src/core/createEntryPayload.ts +128 -0
  110. package/src/core/createViewPayload.ts +100 -0
  111. package/src/core/index.ts +4 -0
  112. package/src/ensureTypes.ts +42 -0
  113. package/src/hooks/index.ts +2 -0
  114. package/src/hooks/useSubmitTransaction.ts +117 -0
  115. package/src/hooks/useWalletClient.ts +10 -0
  116. package/src/index.ts +10 -0
  117. package/src/types/abi.ts +35 -0
  118. package/src/types/abiClient.ts +19 -0
  119. package/src/types/client.ts +32 -0
  120. package/src/types/common.ts +157 -0
  121. package/src/types/index.ts +9 -0
  122. package/src/types/walletClient.ts +10 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSubmitTransaction.js","sourceRoot":"","sources":["../../../src/hooks/useSubmitTransaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { useWallet } from "@aptos-labs/wallet-adapter-react";
2
+ import { MoveTsWalletClient } from "../core";
3
+ export const useWalletClient = ({ nodeUrl }) => {
4
+ const wallet = useWallet();
5
+ return {
6
+ connected: wallet.connected,
7
+ client: wallet.connected ? new MoveTsWalletClient({ wallet, nodeUrl }) : undefined
8
+ };
9
+ };
10
+ //# sourceMappingURL=useWalletClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWalletClient.js","sourceRoot":"","sources":["../../../src/hooks/useWalletClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,OAAO,EAAuB,EAAE,EAAE;IAChE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO;QACH,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;KACrF,CAAC;AACN,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { createViewPayload, createEntryPayload, createClient } from "./core";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACf,MAAM,QAAQ,CAAC"}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../../src/types/abi.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=abiClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abiClient.js","sourceRoot":"","sources":["../../../src/types/abiClient.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/types/client.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=walletClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletClient.js","sourceRoot":"","sources":["../../../src/types/walletClient.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { AptosClient } from "aptos";
2
+ import { ABIRoot, EntryOptions, EntryPayload, ViewOptions, ViewPayload } from "../types";
3
+ import { TransactionResponse } from "../types/common";
4
+ import { ABIEntryClient, ABIViewClient } from "../types";
5
+ export declare function createClient(options: {
6
+ nodeUrl: string;
7
+ }): Client;
8
+ export declare class Client {
9
+ private client;
10
+ constructor(client: AptosClient);
11
+ view<TReturn>(payload: ViewPayload<TReturn>, options?: ViewOptions): Promise<TReturn>;
12
+ submitTransaction(payload: EntryPayload, options: EntryOptions): Promise<TransactionResponse>;
13
+ simulateTransaction(payload: EntryPayload, options: EntryOptions): Promise<TransactionResponse>;
14
+ useABI<T extends ABIRoot>(abi: T): {
15
+ view: ABIViewClient<T>;
16
+ entry: ABIEntryClient<T>;
17
+ };
18
+ private generateRawTxn;
19
+ }
20
+ //# sourceMappingURL=Client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzD,wBAAgB,YAAY,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIjE;AAED,qBAAa,MAAM;IACf,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,WAAW;IAIlB,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC,OAAO,CAAC;IAeN,iBAAiB,CAC1B,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAoBlB,mBAAmB,CAC5B,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAWxB,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC;;;;YAiCzB,cAAc;CAW/B"}
@@ -0,0 +1,17 @@
1
+ import { useWallet } from "@aptos-labs/wallet-adapter-react";
2
+ import { ABIRoot, ABIWalletClient, EntryOptions, EntryPayload } from "../types";
3
+ type Wallet = ReturnType<typeof useWallet>;
4
+ export declare class WalletClient {
5
+ private wallet;
6
+ private client;
7
+ constructor({ wallet, nodeUrl }: {
8
+ wallet: Wallet;
9
+ nodeUrl: string;
10
+ });
11
+ submitTransaction(payload: EntryPayload, _?: EntryOptions | undefined): Promise<{
12
+ hash: string;
13
+ }>;
14
+ useABI<T extends ABIRoot>(abi: T): ABIWalletClient<T>;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=WalletClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletClient.d.ts","sourceRoot":"","sources":["../../../src/core/WalletClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAG7D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEhF,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAE3C,qBAAa,YAAY;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAc;gBAEhB,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAA;KAClB;IAKY,iBAAiB,CAC1B,OAAO,EAAE,YAAY,EACrB,CAAC,GAAE,YAAY,GAAG,SAAqB,GACxC,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IA0BrB,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC;CAe1C"}
@@ -0,0 +1,4 @@
1
+ import { ABIRoot, EntryPayload } from "../types";
2
+ import { EntryFunctionName, EntryRequestPayload } from "../types/common";
3
+ export declare function createEntryPayload<T extends ABIRoot, TFuncName extends EntryFunctionName<T>>(abi: T, payload: EntryRequestPayload<T, TFuncName>): EntryPayload;
4
+ //# sourceMappingURL=createEntryPayload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createEntryPayload.d.ts","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,wBAAgB,kBAAkB,CAC9B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,iBAAiB,CAAC,CAAC,CAAC,EAEtC,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,GAC3C,YAAY,CAoDd"}
@@ -0,0 +1,4 @@
1
+ import { ABIRoot, ViewPayload } from "../types";
2
+ import { ExtractReturnType, ViewFunctionName, ViewRequestPayload } from "../types/common";
3
+ export declare function createViewPayload<T extends ABIRoot, TFuncName extends ViewFunctionName<T>>(abi: T, payload: ViewRequestPayload<T, TFuncName>): ViewPayload<ExtractReturnType<T, TFuncName>>;
4
+ //# sourceMappingURL=createViewPayload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createViewPayload.d.ts","sourceRoot":"","sources":["../../../src/core/createViewPayload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAK1F,wBAAgB,iBAAiB,CAC7B,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAErC,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,SAAS,CAAC,GAEzC,WAAW,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CA4C/C"}
@@ -0,0 +1,5 @@
1
+ export { WalletClient as MoveTsWalletClient } from "./WalletClient";
2
+ export { Client as MoveTsClient, createClient } from "./Client";
3
+ export { createViewPayload } from "./createViewPayload";
4
+ export { createEntryPayload } from "./createEntryPayload";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function ensureBoolean(val: boolean | string): boolean;
2
+ export declare function ensureNumber(val: number | string): number;
3
+ export declare function ensureBigInt(val: number | bigint | string): bigint;
4
+ //# sourceMappingURL=ensureTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureTypes.d.ts","sourceRoot":"","sources":["../../src/ensureTypes.ts"],"names":[],"mappings":"AAQA,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAc5D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAYzD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAGlE"}
@@ -0,0 +1,3 @@
1
+ export { submitTransactionOptions, useSubmitTransaction } from "./useSubmitTransaction";
2
+ export { useWalletClient } from "./useWalletClient";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Types } from "aptos";
2
+ import { EntryPayload } from "../types";
3
+ export type submitTransactionOptions = {
4
+ nodeUrl: string;
5
+ onSuccess?: (result: Types.Transaction_UserTransaction) => void;
6
+ onFailed?: (error: Error) => void;
7
+ max_gas_amount?: string;
8
+ };
9
+ export declare const useSubmitTransaction: () => {
10
+ submitTransaction: (payload: EntryPayload | Types.TransactionPayload_EntryFunctionPayload, { nodeUrl, onSuccess, onFailed, max_gas_amount }: submitTransactionOptions) => Promise<void>;
11
+ reset: () => void;
12
+ isLoading: boolean;
13
+ isIdle: boolean;
14
+ data: {
15
+ type: string;
16
+ } & Types.UserTransaction;
17
+ error: Error;
18
+ };
19
+ //# sourceMappingURL=useSubmitTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSubmitTransaction.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSubmitTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,wBAAwB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,2BAA2B,KAAK,IAAI,CAAC;IAChE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAA;AAMD,eAAO,MAAM,oBAAoB;iCAkBhB,YAAY,GAAG,MAAM,uCAAuC,oDAMlE,wBAAwB,KAC5B,QAAQ,IAAI,CAAC;;;;;;;;CA2EnB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { MoveTsWalletClient } from "../core";
2
+ export declare const useWalletClient: ({ nodeUrl }: {
3
+ nodeUrl: string;
4
+ }) => {
5
+ connected: boolean;
6
+ client: MoveTsWalletClient;
7
+ };
8
+ //# sourceMappingURL=useWalletClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWalletClient.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWalletClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,eAAe;aAA4B,MAAM;;;;CAM7D,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { createViewPayload, createEntryPayload, createClient } from "./core";
2
+ export { EntryPayload, ViewPayload, } from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACf,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACH,YAAY,EACZ,WAAW,GACd,MAAM,SAAS,CAAC"}
@@ -0,0 +1,31 @@
1
+ export interface ABIRoot {
2
+ address: string;
3
+ name: string;
4
+ friends: readonly string[];
5
+ exposed_functions: readonly ABIFunction[];
6
+ structs: readonly ABIStruct[];
7
+ }
8
+ export interface ABIFunction {
9
+ name: string;
10
+ visibility: "friend" | "public";
11
+ is_entry: boolean;
12
+ is_view: boolean;
13
+ generic_type_params: readonly ABIFunctionGenericTypeParam[];
14
+ params: readonly string[];
15
+ return: readonly string[];
16
+ }
17
+ export interface ABIFunctionGenericTypeParam {
18
+ constraints: readonly any[];
19
+ }
20
+ export interface ABIStruct {
21
+ name: string;
22
+ is_native: boolean;
23
+ abilities: readonly string[];
24
+ generic_type_params: readonly ABIFunctionGenericTypeParam[];
25
+ fields: readonly ABIStructField[];
26
+ }
27
+ export interface ABIStructField {
28
+ name: string;
29
+ type: string;
30
+ }
31
+ //# sourceMappingURL=abi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../../src/types/abi.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,OAAO;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAC5D,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IACxC,WAAW,EAAE,SAAS,GAAG,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,mBAAmB,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAC5D,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,18 @@
1
+ import { AptosAccount } from "aptos";
2
+ import { ABIRoot } from "./abi";
3
+ import { EntryFunctionName, ExtractGenericParamsType, ExtractParamsType, ExtractParamsTypeOmitSigner, ExtractReturnType, TransactionResponse, ViewFunctionName } from "./common";
4
+ export type ABIViewClient<T extends ABIRoot> = {
5
+ [TFuncName in ViewFunctionName<T>]: (payload: {
6
+ type_arguments: ExtractGenericParamsType<T, TFuncName>;
7
+ arguments: ExtractParamsType<T, TFuncName>;
8
+ }) => Promise<ExtractReturnType<T, TFuncName>>;
9
+ };
10
+ export type ABIEntryClient<T extends ABIRoot> = {
11
+ [TFuncName in EntryFunctionName<T>]: (payload: {
12
+ type_arguments: ExtractGenericParamsType<T, TFuncName>;
13
+ arguments: ExtractParamsTypeOmitSigner<T, TFuncName>;
14
+ account: AptosAccount;
15
+ isSimulation?: boolean;
16
+ }) => Promise<TransactionResponse>;
17
+ };
18
+ //# sourceMappingURL=abiClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abiClient.d.ts","sourceRoot":"","sources":["../../../src/types/abiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjL,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,OAAO,IAAI;KAC1C,SAAS,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE;QAC1C,cAAc,EAAE,wBAAwB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QACtD,SAAS,EAAE,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;KAC9C,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,OAAO,IAAI;KAC3C,SAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE;QAC3C,cAAc,EAAE,wBAAwB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACvD,SAAS,EAAE,2BAA2B,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACrD,OAAO,EAAE,YAAY,CAAC;QACtB,YAAY,CAAC,EAAE,OAAO,CAAA;KACzB,KAAK,OAAO,CAAC,mBAAmB,CAAC;CACrC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { AptosAccount, TxnBuilderTypes } from "aptos";
2
+ export type EntryOptions = {
3
+ account: AptosAccount;
4
+ };
5
+ export type ViewOptions = {
6
+ ledger_version?: string;
7
+ };
8
+ export type EntryPayload = {
9
+ rawPayload: {
10
+ function: string;
11
+ type_arguments: string[];
12
+ arguments: any[];
13
+ };
14
+ entryRequest: TxnBuilderTypes.EntryFunction;
15
+ };
16
+ export type ViewPayload<TReturn> = {
17
+ viewRequest: {
18
+ function: string;
19
+ type_arguments: string[];
20
+ arguments: any[];
21
+ };
22
+ decoders: (((value: any) => any) | null)[];
23
+ };
24
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/types/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG;IACvB,OAAO,EAAE,YAAY,CAAC;CACzB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,UAAU,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,SAAS,EAAE,GAAG,EAAE,CAAC;KACpB,CAAC;IACF,YAAY,EAAE,eAAe,CAAC,aAAa,CAAC;CAE/C,CAAC;AAGF,MAAM,MAAM,WAAW,CAAC,OAAO,IAAI;IAC/B,WAAW,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,SAAS,EAAE,GAAG,EAAE,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;CAG9C,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { ABIRoot } from "./abi";
2
+ export type Primitive = 'bool' | 'u8' | 'u16' | 'u32' | 'u64' | 'u128' | 'u256' | 'address' | '0x1::string::String';
3
+ type Vector = `vector<${Primitive}>`;
4
+ type VectorOfVector = `vector<vector<${Primitive}>>`;
5
+ export type AllTypes = Primitive | Vector | VectorOfVector;
6
+ type ConvertPrimitiveArgsType<T extends Primitive> = T extends 'bool' ? boolean : T extends 'u8' ? number : T extends 'u16' ? number : T extends 'u32' ? number : T extends 'u64' ? AnyNumber : T extends 'u128' ? AnyNumber : T extends 'u256' ? AnyNumber : T extends 'address' ? `0x${string}` : T extends '0x1::string::String' ? string : never;
7
+ type ConvertVectorArgsType<TInner> = TInner extends Primitive ? ConvertPrimitiveArgsType<TInner>[] : (TInner extends `vector<${infer TInnerInner}>` ? (TInnerInner extends Primitive ? ConvertPrimitiveArgsType<TInnerInner>[][] : any[][]) : (object[]));
8
+ export type ConvertArgsType<T extends AllTypes> = T extends Primitive ? ConvertPrimitiveArgsType<T> : T extends `vector<${infer TInner}>` ? ConvertVectorArgsType<TInner> : Struct<T>;
9
+ type Struct<T extends string> = object;
10
+ type AnyNumber = number | bigint | string;
11
+ export type ConvertPrimitiveReturnType<T extends Primitive> = T extends 'bool' ? boolean : T extends 'u8' ? number : T extends 'u16' ? number : T extends 'u32' ? number : T extends 'u64' ? bigint : T extends 'u128' ? bigint : T extends 'u256' ? bigint : T extends 'address' ? `0x${string}` : T extends '0x1::string::String' ? string : never;
12
+ type ConvertVectorReturnType<TInner> = TInner extends Primitive ? ConvertPrimitiveReturnType<TInner>[] : (TInner extends `vector<${infer TInnerInner}>` ? (TInnerInner extends Primitive ? ConvertPrimitiveReturnType<TInnerInner>[][] : any[][]) : (object[]));
13
+ export type ConvertReturnType<T extends AllTypes> = T extends Primitive ? ConvertPrimitiveReturnType<T> : T extends `vector<${infer TInner}>` ? ConvertVectorReturnType<TInner> : Struct<T>;
14
+ type Functions<T extends ABIRoot> = T['exposed_functions'];
15
+ type MoveFunction<T extends ABIRoot> = Functions<T>[number];
16
+ type FunctionName<T extends ABIRoot> = MoveFunction<T>['name'];
17
+ export type ExtractFunction<T extends ABIRoot, TFuncName extends FunctionName<T>> = Extract<MoveFunction<T>, {
18
+ name: TFuncName;
19
+ }>;
20
+ export type MoveViewFunction<T extends ABIRoot> = Extract<Functions<T>[number], {
21
+ is_view: true;
22
+ }>;
23
+ export type ViewFunctionName<T extends ABIRoot> = MoveViewFunction<T>['name'];
24
+ export type MoveEntryFunction<T extends ABIRoot> = Extract<Functions<T>[number], {
25
+ is_entry: true;
26
+ }>;
27
+ export type EntryFunctionName<T extends ABIRoot> = MoveEntryFunction<T>['name'];
28
+ type ConvertParams<T extends readonly string[]> = {
29
+ [P in keyof T]: T[P] extends AllTypes ? ConvertArgsType<T[P]> : Struct<T[P]>;
30
+ };
31
+ export type ConvertEntryParams<T extends readonly string[]> = ConvertParams<OmitSigner<T>>;
32
+ export type ConvertReturns<T extends readonly string[]> = {
33
+ [P in keyof T]: T[P] extends AllTypes ? ConvertReturnType<T[P]> : Struct<T[P]>;
34
+ };
35
+ export type ExtractReturnType<T extends ABIRoot, TFuncName extends FunctionName<T>> = ConvertReturns<ExtractRawReturnType<T, TFuncName>>;
36
+ export type ExtractRawReturnType<T extends ABIRoot, TFuncName extends FunctionName<T>> = ExtractFunction<T, TFuncName>['return'];
37
+ export type ExtractParamsType<T extends ABIRoot, TFuncName extends FunctionName<T>> = ConvertParams<ExtractRawParamsType<T, TFuncName>>;
38
+ export type ExtractParamsTypeOmitSigner<T extends ABIRoot, TFuncName extends FunctionName<T>> = ConvertParams<OmitSigner<ExtractRawParamsType<T, TFuncName>>>;
39
+ export type ExtractRawParamsType<T extends ABIRoot, TFuncName extends FunctionName<T>> = ExtractFunction<T, TFuncName>['params'];
40
+ export type ExtractGenericParamsType<T extends ABIRoot, TFuncName extends FunctionName<T>> = ConvertTypeParams<ExtractRawGenericParamsType<T, TFuncName>>;
41
+ export type ExtractRawGenericParamsType<T extends ABIRoot, TFuncName extends FunctionName<T>> = ExtractFunction<T, TFuncName>['generic_type_params'];
42
+ export type ConvertTypeParams<T extends readonly any[]> = {
43
+ [P in keyof T]: string;
44
+ };
45
+ export type ViewRequestPayload<T extends ABIRoot, TFuncName extends ViewFunctionName<T>> = {
46
+ function: TFuncName;
47
+ arguments: ExtractParamsType<T, TFuncName>;
48
+ type_arguments: ExtractGenericParamsType<T, TFuncName>;
49
+ };
50
+ type OmitSigner<T extends readonly string[]> = T extends readonly ['&signer' | 'signer', ...infer Rest] ? Rest : T;
51
+ export type EntryRequestPayload<T extends ABIRoot, TFuncName extends EntryFunctionName<T>> = {
52
+ function: TFuncName;
53
+ arguments: ExtractParamsTypeOmitSigner<T, TFuncName>;
54
+ type_arguments: ExtractGenericParamsType<T, TFuncName>;
55
+ };
56
+ export type TransactionResponse = {
57
+ hash: string;
58
+ };
59
+ export {};
60
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { ABIWalletClient } from "./walletClient";
2
+ export { ABIViewClient, ABIEntryClient } from "./abiClient";
3
+ export { ViewPayload, EntryPayload, ViewOptions, EntryOptions, } from "./client";
4
+ export { ABIRoot } from "./abi";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACH,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ABIRoot } from "./abi";
2
+ import { EntryFunctionName, ExtractGenericParamsType, ExtractParamsTypeOmitSigner, TransactionResponse } from "./common";
3
+ export type ABIWalletClient<T extends ABIRoot> = {
4
+ [TFuncName in EntryFunctionName<T>]: (payload: {
5
+ type_arguments: ExtractGenericParamsType<T, TFuncName>;
6
+ arguments: ExtractParamsTypeOmitSigner<T, TFuncName>;
7
+ }) => Promise<TransactionResponse>;
8
+ };
9
+ //# sourceMappingURL=walletClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletClient.d.ts","sourceRoot":"","sources":["../../../src/types/walletClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEzH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,OAAO,IAAI;KAC5C,SAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAClC,CAAC,OAAO,EAAE;QACN,cAAc,EAAE,wBAAwB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACvD,SAAS,EAAE,2BAA2B,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;KACxD,KAAK,OAAO,CAAC,mBAAmB,CAAC;CACrC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,78 @@
1
+ {
2
+ "name": "@thalalabs/surf",
3
+ "version": "0.0.1",
4
+ "description": "TypeScript Interfaces & React Hooks for interacting with Aptos Smart Contracts with type safety.",
5
+ "main": "./build/cjs/index.js",
6
+ "module": "./build/esm/index.js",
7
+ "types": "./build/types/index.d.ts",
8
+ "typings": "./build/types/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": {
12
+ "types": "./build/types/index.d.ts",
13
+ "default": "./build/esm/index.js"
14
+ },
15
+ "require": {
16
+ "types": "./build/types/index.d.ts",
17
+ "default": "./build/cjs/index.js"
18
+ }
19
+ },
20
+ "./hooks": {
21
+ "types": "./build/types/hooks/index.d.ts",
22
+ "import": "./build/esm/hooks/index.js",
23
+ "default": "./build/cjs/hooks/index.js"
24
+ }
25
+ },
26
+ "typesVersions": {
27
+ "*": {
28
+ "hooks": ["./build/types/hooks/index.d.ts"]
29
+ }
30
+ },
31
+ "devDependencies": {
32
+ "@aptos-labs/wallet-adapter-react": "^1.1.0",
33
+ "@types/jest": "~29.5",
34
+ "@types/node": "~18",
35
+ "@types/react": "^18.2.8",
36
+ "@typescript-eslint/eslint-plugin": "~5.59",
37
+ "@typescript-eslint/parser": "~5.59",
38
+ "aptos": "^1.9.0",
39
+ "eslint": "~8.38",
40
+ "eslint-config-prettier": "~8.8",
41
+ "eslint-plugin-jest": "~27.2",
42
+ "jest": "~29.5",
43
+ "prettier": "~2.8",
44
+ "react": "^18.2.0",
45
+ "rimraf": "~5.0",
46
+ "ts-api-utils": "~0.0.44",
47
+ "ts-jest": "~29.1",
48
+ "tslib": "~2.5",
49
+ "typescript": "~5.0"
50
+ },
51
+ "peerDependencies": {
52
+ "@aptos-labs/wallet-adapter-react": "^1.1.0",
53
+ "aptos": "^1.9.0",
54
+ "react": "^18.2.0"
55
+ },
56
+ "scripts": {
57
+ "start": "node build/src/main.js",
58
+ "clean": "rimraf coverage build tmp",
59
+ "prebuild": "yarn lint",
60
+ "build:watch": "tsc -w -p tsconfig.json",
61
+ "build": "yarn clean && yarn build:cjs && yarn build:esm && yarn build:types",
62
+ "build:cjs": "tsc --project tsconfig.json --module commonjs --outDir ./build/cjs --removeComments --verbatimModuleSyntax false && echo > ./build/cjs/package.json '{\"type\":\"commonjs\"}'",
63
+ "build:esm": "tsc --project tsconfig.json --module es2015 --outDir ./build/esm --removeComments && echo > ./build/esm/package.json '{\"type\":\"module\"}'",
64
+ "build:types": "tsc --project tsconfig.json --module esnext --declarationDir ./build/types --emitDeclarationOnly --declaration --declarationMap",
65
+ "lint": "eslint . --ext .ts --ext .mts",
66
+ "test": "jest --coverage",
67
+ "prettier": "prettier --config .prettierrc --write .",
68
+ "test:watch": "jest --watch",
69
+ "prepublishOnly": "yarn build"
70
+ },
71
+ "keywords": [
72
+ "move",
73
+ "blockchain",
74
+ "aptos"
75
+ ],
76
+ "license": "MIT",
77
+ "dependencies": {}
78
+ }
@@ -0,0 +1,120 @@
1
+ import { AptosClient, TxnBuilderTypes } from "aptos";
2
+ import { createViewPayload } from "./createViewPayload";
3
+ import { createEntryPayload } from "./createEntryPayload";
4
+ import { ABIRoot, EntryOptions, EntryPayload, ViewOptions, ViewPayload } from "../types";
5
+ import { TransactionResponse } from "../types/common";
6
+ import { ABIEntryClient, ABIViewClient } from "../types";
7
+
8
+ export function createClient(options: { nodeUrl: string }): Client {
9
+ return new Client(
10
+ new AptosClient(options.nodeUrl)
11
+ );
12
+ }
13
+
14
+ export class Client {
15
+ private client: AptosClient;
16
+
17
+ constructor(client: AptosClient) {
18
+ this.client = client;
19
+ }
20
+
21
+ public async view<TReturn>(
22
+ payload: ViewPayload<TReturn>,
23
+ options?: ViewOptions
24
+ ): Promise<TReturn> {
25
+ const result = await this.client.view(
26
+ payload.viewRequest,
27
+ options?.ledger_version
28
+ );
29
+
30
+ // Decode the return value
31
+ // TODO: for vectors, struct
32
+ return result.map((value, i) =>
33
+ payload.decoders[i] ?
34
+ payload.decoders[i]!(value) :
35
+ value
36
+ ) as TReturn;
37
+ }
38
+
39
+ public async submitTransaction(
40
+ payload: EntryPayload,
41
+ options: EntryOptions
42
+ ): Promise<TransactionResponse> {
43
+ const rawTxn = await this.generateRawTxn(payload, options);
44
+
45
+ // Sign the raw transaction with account's private key
46
+ const bcsTxn = AptosClient.generateBCSTransaction(options.account, rawTxn);
47
+
48
+ // Submit the transaction
49
+ const transactionRes = await this.client.submitSignedBCSTransaction(
50
+ bcsTxn
51
+ );
52
+
53
+ // Wait for the transaction to finish
54
+ // throws an error if the tx fails or not confirmed after timeout
55
+ await this.client.waitForTransaction(transactionRes.hash, {
56
+ timeoutSecs: 120,
57
+ checkSuccess: true,
58
+ });
59
+ return transactionRes;
60
+ }
61
+
62
+ public async simulateTransaction(
63
+ payload: EntryPayload,
64
+ options: EntryOptions
65
+ ): Promise<TransactionResponse> {
66
+ const rawTxn = await this.generateRawTxn(payload, options);
67
+
68
+ const transactionRes = (await this.client.simulateTransaction(options.account, rawTxn))[0];
69
+ if (!transactionRes) {
70
+ throw new Error("Failed to simulate transaction");
71
+ }
72
+
73
+ return transactionRes;
74
+ }
75
+
76
+ public useABI<T extends ABIRoot>(abi: T) {
77
+ return {
78
+ view: new Proxy({} as ABIViewClient<T>, {
79
+ get: (_, prop) => {
80
+ const functionName = prop.toString();
81
+ return (...args) => {
82
+ const payload = createViewPayload(abi, {
83
+ function: functionName,
84
+ type_arguments: args[0].type_arguments,
85
+ arguments: args[0].arguments,
86
+ });
87
+ return this.view(payload);
88
+ };
89
+ }
90
+ }),
91
+ entry: new Proxy({} as ABIEntryClient<T>, {
92
+ get: (_, prop) => {
93
+ const functionName = prop.toString();
94
+ return (...args) => {
95
+ const payload = createEntryPayload(abi, {
96
+ function: functionName,
97
+ type_arguments: args[0].type_arguments,
98
+ arguments: args[0].arguments,
99
+ });
100
+ return args[0].isSimulation ?
101
+ this.simulateTransaction(payload, { account: args[0].account }) :
102
+ this.submitTransaction(payload, { account: args[0].account });
103
+ };
104
+ }
105
+ })
106
+ };
107
+ }
108
+
109
+ private async generateRawTxn(payload: EntryPayload, options: EntryOptions,) {
110
+ const { account } = options;
111
+ const entryFunctionPayload = new TxnBuilderTypes.TransactionPayloadEntryFunction(payload.entryRequest);
112
+
113
+ // Create a raw transaction out of the transaction payload
114
+ const rawTxn = await this.client.generateRawTransaction(
115
+ account.address(),
116
+ entryFunctionPayload
117
+ );
118
+ return rawTxn;
119
+ }
120
+ }