@bitgo-beta/sdk-coin-sui 0.0.0-semantic-release-managed

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 (165) hide show
  1. package/.eslintignore +6 -0
  2. package/.mocharc.yml +7 -0
  3. package/CHANGELOG.md +1152 -0
  4. package/LICENSE +191 -0
  5. package/README.md +30 -0
  6. package/dist/src/index.d.ts +6 -0
  7. package/dist/src/index.d.ts.map +1 -0
  8. package/dist/src/index.js +22 -0
  9. package/dist/src/lib/compareTransactionBlocks.d.ts +8 -0
  10. package/dist/src/lib/compareTransactionBlocks.d.ts.map +1 -0
  11. package/dist/src/lib/compareTransactionBlocks.js +12 -0
  12. package/dist/src/lib/constants.d.ts +17 -0
  13. package/dist/src/lib/constants.d.ts.map +1 -0
  14. package/dist/src/lib/constants.js +30 -0
  15. package/dist/src/lib/customTransaction.d.ts +57 -0
  16. package/dist/src/lib/customTransaction.d.ts.map +1 -0
  17. package/dist/src/lib/customTransaction.js +159 -0
  18. package/dist/src/lib/customTransactionBuilder.d.ts +46 -0
  19. package/dist/src/lib/customTransactionBuilder.d.ts.map +1 -0
  20. package/dist/src/lib/customTransactionBuilder.js +117 -0
  21. package/dist/src/lib/iface.d.ts +131 -0
  22. package/dist/src/lib/iface.d.ts.map +1 -0
  23. package/dist/src/lib/iface.js +63 -0
  24. package/dist/src/lib/index.d.ts +22 -0
  25. package/dist/src/lib/index.d.ts.map +1 -0
  26. package/dist/src/lib/index.js +77 -0
  27. package/dist/src/lib/keyPair.d.ts +29 -0
  28. package/dist/src/lib/keyPair.d.ts.map +1 -0
  29. package/dist/src/lib/keyPair.js +97 -0
  30. package/dist/src/lib/mystenlab/builder/Inputs.d.ts +66 -0
  31. package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -0
  32. package/dist/src/lib/mystenlab/builder/Inputs.js +55 -0
  33. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +302 -0
  34. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -0
  35. package/dist/src/lib/mystenlab/builder/TransactionBlock.js +255 -0
  36. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +566 -0
  37. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -0
  38. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +168 -0
  39. package/dist/src/lib/mystenlab/builder/Transactions.d.ts +937 -0
  40. package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -0
  41. package/dist/src/lib/mystenlab/builder/Transactions.js +118 -0
  42. package/dist/src/lib/mystenlab/builder/bcs.d.ts +25 -0
  43. package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -0
  44. package/dist/src/lib/mystenlab/builder/bcs.js +141 -0
  45. package/dist/src/lib/mystenlab/builder/index.d.ts +5 -0
  46. package/dist/src/lib/mystenlab/builder/index.d.ts.map +1 -0
  47. package/dist/src/lib/mystenlab/builder/index.js +21 -0
  48. package/dist/src/lib/mystenlab/builder/serializer.d.ts +4 -0
  49. package/dist/src/lib/mystenlab/builder/serializer.d.ts.map +1 -0
  50. package/dist/src/lib/mystenlab/builder/serializer.js +99 -0
  51. package/dist/src/lib/mystenlab/builder/utils.d.ts +10 -0
  52. package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -0
  53. package/dist/src/lib/mystenlab/builder/utils.js +10 -0
  54. package/dist/src/lib/mystenlab/cryptography/hash.d.ts +8 -0
  55. package/dist/src/lib/mystenlab/cryptography/hash.d.ts.map +1 -0
  56. package/dist/src/lib/mystenlab/cryptography/hash.js +21 -0
  57. package/dist/src/lib/mystenlab/framework/framework.d.ts +93 -0
  58. package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -0
  59. package/dist/src/lib/mystenlab/framework/framework.js +135 -0
  60. package/dist/src/lib/mystenlab/framework/index.d.ts +3 -0
  61. package/dist/src/lib/mystenlab/framework/index.d.ts.map +1 -0
  62. package/dist/src/lib/mystenlab/framework/index.js +19 -0
  63. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts +14 -0
  64. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -0
  65. package/dist/src/lib/mystenlab/framework/sui-system-state.js +22 -0
  66. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts +7 -0
  67. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts.map +1 -0
  68. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +119 -0
  69. package/dist/src/lib/mystenlab/types/coin.d.ts +89 -0
  70. package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -0
  71. package/dist/src/lib/mystenlab/types/coin.js +32 -0
  72. package/dist/src/lib/mystenlab/types/common.d.ts +45 -0
  73. package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -0
  74. package/dist/src/lib/mystenlab/types/common.js +84 -0
  75. package/dist/src/lib/mystenlab/types/events.d.ts +198 -0
  76. package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -0
  77. package/dist/src/lib/mystenlab/types/events.js +46 -0
  78. package/dist/src/lib/mystenlab/types/index.d.ts +9 -0
  79. package/dist/src/lib/mystenlab/types/index.d.ts.map +1 -0
  80. package/dist/src/lib/mystenlab/types/index.js +25 -0
  81. package/dist/src/lib/mystenlab/types/normalized.d.ts +254 -0
  82. package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -0
  83. package/dist/src/lib/mystenlab/types/normalized.js +111 -0
  84. package/dist/src/lib/mystenlab/types/objects.d.ts +806 -0
  85. package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -0
  86. package/dist/src/lib/mystenlab/types/objects.js +292 -0
  87. package/dist/src/lib/mystenlab/types/option.d.ts +8 -0
  88. package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -0
  89. package/dist/src/lib/mystenlab/types/option.js +13 -0
  90. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +111 -0
  91. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -0
  92. package/dist/src/lib/mystenlab/types/sui-bcs.js +107 -0
  93. package/dist/src/lib/mystenlab/types/transactions.d.ts +6703 -0
  94. package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -0
  95. package/dist/src/lib/mystenlab/types/transactions.js +389 -0
  96. package/dist/src/lib/mystenlab/types/validator.d.ts +641 -0
  97. package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -0
  98. package/dist/src/lib/mystenlab/types/validator.js +156 -0
  99. package/dist/src/lib/resources/walrusConfig.d.ts +22 -0
  100. package/dist/src/lib/resources/walrusConfig.d.ts.map +1 -0
  101. package/dist/src/lib/resources/walrusConfig.js +37 -0
  102. package/dist/src/lib/rpcClient.d.ts +5 -0
  103. package/dist/src/lib/rpcClient.d.ts.map +1 -0
  104. package/dist/src/lib/rpcClient.js +74 -0
  105. package/dist/src/lib/stakingBuilder.d.ts +62 -0
  106. package/dist/src/lib/stakingBuilder.d.ts.map +1 -0
  107. package/dist/src/lib/stakingBuilder.js +206 -0
  108. package/dist/src/lib/stakingTransaction.d.ts +51 -0
  109. package/dist/src/lib/stakingTransaction.d.ts.map +1 -0
  110. package/dist/src/lib/stakingTransaction.js +219 -0
  111. package/dist/src/lib/tokenTransferBuilder.d.ts +38 -0
  112. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  113. package/dist/src/lib/tokenTransferBuilder.js +132 -0
  114. package/dist/src/lib/tokenTransferTransaction.d.ts +57 -0
  115. package/dist/src/lib/tokenTransferTransaction.d.ts.map +1 -0
  116. package/dist/src/lib/tokenTransferTransaction.js +250 -0
  117. package/dist/src/lib/transaction.d.ts +82 -0
  118. package/dist/src/lib/transaction.d.ts.map +1 -0
  119. package/dist/src/lib/transaction.js +283 -0
  120. package/dist/src/lib/transactionBuilder.d.ts +60 -0
  121. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  122. package/dist/src/lib/transactionBuilder.js +140 -0
  123. package/dist/src/lib/transactionBuilderFactory.d.ts +48 -0
  124. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  125. package/dist/src/lib/transactionBuilderFactory.js +127 -0
  126. package/dist/src/lib/transferBuilder.d.ts +37 -0
  127. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  128. package/dist/src/lib/transferBuilder.js +132 -0
  129. package/dist/src/lib/transferTransaction.d.ts +54 -0
  130. package/dist/src/lib/transferTransaction.d.ts.map +1 -0
  131. package/dist/src/lib/transferTransaction.js +203 -0
  132. package/dist/src/lib/unstakingBuilder.d.ts +62 -0
  133. package/dist/src/lib/unstakingBuilder.d.ts.map +1 -0
  134. package/dist/src/lib/unstakingBuilder.js +227 -0
  135. package/dist/src/lib/unstakingTransaction.d.ts +75 -0
  136. package/dist/src/lib/unstakingTransaction.d.ts.map +1 -0
  137. package/dist/src/lib/unstakingTransaction.js +345 -0
  138. package/dist/src/lib/utils.d.ts +127 -0
  139. package/dist/src/lib/utils.d.ts.map +1 -0
  140. package/dist/src/lib/utils.js +539 -0
  141. package/dist/src/lib/walrusStakingBuilder.d.ts +66 -0
  142. package/dist/src/lib/walrusStakingBuilder.d.ts.map +1 -0
  143. package/dist/src/lib/walrusStakingBuilder.js +200 -0
  144. package/dist/src/lib/walrusStakingTransaction.d.ts +52 -0
  145. package/dist/src/lib/walrusStakingTransaction.d.ts.map +1 -0
  146. package/dist/src/lib/walrusStakingTransaction.js +269 -0
  147. package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts +36 -0
  148. package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts.map +1 -0
  149. package/dist/src/lib/walrusWithdrawStakeBuilder.js +173 -0
  150. package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts +21 -0
  151. package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts.map +1 -0
  152. package/dist/src/lib/walrusWithdrawStakeTransaction.js +190 -0
  153. package/dist/src/register.d.ts +3 -0
  154. package/dist/src/register.d.ts.map +1 -0
  155. package/dist/src/register.js +15 -0
  156. package/dist/src/sui.d.ts +92 -0
  157. package/dist/src/sui.d.ts.map +1 -0
  158. package/dist/src/sui.js +665 -0
  159. package/dist/src/suiToken.d.ts +22 -0
  160. package/dist/src/suiToken.d.ts.map +1 -0
  161. package/dist/src/suiToken.js +61 -0
  162. package/dist/src/tsui.d.ts +22 -0
  163. package/dist/src/tsui.d.ts.map +1 -0
  164. package/dist/src/tsui.js +30 -0
  165. package/package.json +63 -0
@@ -0,0 +1,66 @@
1
+ import { Infer } from 'superstruct';
2
+ import { ObjectId, SharedObjectRef, SuiObjectRef } from '../types';
3
+ export declare const PureCallArg: import("superstruct").Struct<{
4
+ Pure: number[];
5
+ }, {
6
+ Pure: import("superstruct").Struct<number[], import("superstruct").Struct<number, null>>;
7
+ }>;
8
+ export declare const ObjectCallArg: import("superstruct").Struct<{
9
+ Object: {
10
+ ImmOrOwned: {
11
+ digest: string;
12
+ objectId: string;
13
+ version: string | number;
14
+ };
15
+ } | {
16
+ Shared: {
17
+ objectId: string;
18
+ initialSharedVersion: string | number;
19
+ mutable: boolean;
20
+ };
21
+ };
22
+ }, {
23
+ Object: import("superstruct").Struct<{
24
+ ImmOrOwned: {
25
+ digest: string;
26
+ objectId: string;
27
+ version: string | number;
28
+ };
29
+ } | {
30
+ Shared: {
31
+ objectId: string;
32
+ initialSharedVersion: string | number;
33
+ mutable: boolean;
34
+ };
35
+ }, null>;
36
+ }>;
37
+ export type PureCallArg = Infer<typeof PureCallArg>;
38
+ export type ObjectCallArg = Infer<typeof ObjectCallArg>;
39
+ export declare const BuilderCallArg: import("superstruct").Struct<{
40
+ Object: {
41
+ ImmOrOwned: {
42
+ digest: string;
43
+ objectId: string;
44
+ version: string | number;
45
+ };
46
+ } | {
47
+ Shared: {
48
+ objectId: string;
49
+ initialSharedVersion: string | number;
50
+ mutable: boolean;
51
+ };
52
+ };
53
+ } | {
54
+ Pure: number[];
55
+ }, null>;
56
+ export type BuilderCallArg = Infer<typeof BuilderCallArg>;
57
+ export declare const Inputs: {
58
+ Pure(data: unknown, type?: string): PureCallArg;
59
+ ObjectRef(ref: SuiObjectRef): ObjectCallArg;
60
+ SharedObjectRef(ref: SharedObjectRef): ObjectCallArg;
61
+ };
62
+ export declare function getIdFromCallArg(arg: ObjectId | ObjectCallArg): string;
63
+ export declare function getSharedObjectInput(arg: BuilderCallArg): SharedObjectRef | undefined;
64
+ export declare function isSharedObjectInput(arg: BuilderCallArg): boolean;
65
+ export declare function isMutableSharedObjectInput(arg: BuilderCallArg): boolean;
66
+ //# sourceMappingURL=Inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Inputs.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/builder/Inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,EAAkC,MAAM,aAAa,CAAC;AACpF,OAAO,EAAuB,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAcxF,eAAO,MAAM,WAAW;;;;EAAqC,CAAC;AAC9D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAgC,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACpD,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;QAAsC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,eAAO,MAAM,MAAM;eACN,OAAO,SAAS,MAAM,GAAG,WAAW;mBAKhC,YAAY,GAAG,aAAa;yBAGtB,eAAe,GAAG,aAAa;CAGrD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,MAAM,CAQtE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,eAAe,GAAG,SAAS,CAErF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAEhE;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAEvE"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Inputs = exports.BuilderCallArg = exports.ObjectCallArg = exports.PureCallArg = void 0;
4
+ exports.getIdFromCallArg = getIdFromCallArg;
5
+ exports.getSharedObjectInput = getSharedObjectInput;
6
+ exports.isSharedObjectInput = isSharedObjectInput;
7
+ exports.isMutableSharedObjectInput = isMutableSharedObjectInput;
8
+ const superstruct_1 = require("superstruct");
9
+ const types_1 = require("../types");
10
+ const bcs_1 = require("./bcs");
11
+ const ObjectArg = (0, superstruct_1.union)([
12
+ (0, superstruct_1.object)({ ImmOrOwned: types_1.SuiObjectRef }),
13
+ (0, superstruct_1.object)({
14
+ Shared: (0, superstruct_1.object)({
15
+ objectId: (0, superstruct_1.string)(),
16
+ initialSharedVersion: (0, superstruct_1.union)([(0, superstruct_1.integer)(), (0, superstruct_1.string)()]),
17
+ mutable: (0, superstruct_1.boolean)(),
18
+ }),
19
+ }),
20
+ ]);
21
+ exports.PureCallArg = (0, superstruct_1.object)({ Pure: (0, superstruct_1.array)((0, superstruct_1.integer)()) });
22
+ exports.ObjectCallArg = (0, superstruct_1.object)({ Object: ObjectArg });
23
+ exports.BuilderCallArg = (0, superstruct_1.union)([exports.PureCallArg, exports.ObjectCallArg]);
24
+ exports.Inputs = {
25
+ Pure(data, type) {
26
+ return {
27
+ Pure: Array.from(data instanceof Uint8Array ? data : bcs_1.builder.ser(type, data).toBytes()),
28
+ };
29
+ },
30
+ ObjectRef(ref) {
31
+ return { Object: { ImmOrOwned: ref } };
32
+ },
33
+ SharedObjectRef(ref) {
34
+ return { Object: { Shared: ref } };
35
+ },
36
+ };
37
+ function getIdFromCallArg(arg) {
38
+ if (typeof arg === 'string') {
39
+ return (0, types_1.normalizeSuiAddress)(arg);
40
+ }
41
+ if ('ImmOrOwned' in arg.Object) {
42
+ return arg.Object.ImmOrOwned.objectId;
43
+ }
44
+ return arg.Object.Shared.objectId;
45
+ }
46
+ function getSharedObjectInput(arg) {
47
+ return typeof arg === 'object' && 'Object' in arg && 'Shared' in arg.Object ? arg.Object.Shared : undefined;
48
+ }
49
+ function isSharedObjectInput(arg) {
50
+ return !!getSharedObjectInput(arg);
51
+ }
52
+ function isMutableSharedObjectInput(arg) {
53
+ return getSharedObjectInput(arg)?.mutable ?? false;
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5wdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvYnVpbGRlci9JbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUNBLDRDQVFDO0FBRUQsb0RBRUM7QUFFRCxrREFFQztBQUVELGdFQUVDO0FBekRELDZDQUFvRjtBQUNwRixvQ0FBd0Y7QUFDeEYsK0JBQWdDO0FBRWhDLE1BQU0sU0FBUyxHQUFHLElBQUEsbUJBQUssRUFBQztJQUN0QixJQUFBLG9CQUFNLEVBQUMsRUFBRSxVQUFVLEVBQUUsb0JBQVksRUFBRSxDQUFDO0lBQ3BDLElBQUEsb0JBQU0sRUFBQztRQUNMLE1BQU0sRUFBRSxJQUFBLG9CQUFNLEVBQUM7WUFDYixRQUFRLEVBQUUsSUFBQSxvQkFBTSxHQUFFO1lBQ2xCLG9CQUFvQixFQUFFLElBQUEsbUJBQUssRUFBQyxDQUFDLElBQUEscUJBQU8sR0FBRSxFQUFFLElBQUEsb0JBQU0sR0FBRSxDQUFDLENBQUM7WUFDbEQsT0FBTyxFQUFFLElBQUEscUJBQU8sR0FBRTtTQUNuQixDQUFDO0tBQ0gsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVVLFFBQUEsV0FBVyxHQUFHLElBQUEsb0JBQU0sRUFBQyxFQUFFLElBQUksRUFBRSxJQUFBLG1CQUFLLEVBQUMsSUFBQSxxQkFBTyxHQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDakQsUUFBQSxhQUFhLEdBQUcsSUFBQSxvQkFBTSxFQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7QUFJOUMsUUFBQSxjQUFjLEdBQUcsSUFBQSxtQkFBSyxFQUFDLENBQUMsbUJBQVcsRUFBRSxxQkFBYSxDQUFDLENBQUMsQ0FBQztBQUdyRCxRQUFBLE1BQU0sR0FBRztJQUNwQixJQUFJLENBQUMsSUFBYSxFQUFFLElBQWE7UUFDL0IsT0FBTztZQUNMLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBTyxDQUFDLEdBQUcsQ0FBQyxJQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDekYsQ0FBQztJQUNKLENBQUM7SUFDRCxTQUFTLENBQUMsR0FBaUI7UUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxlQUFlLENBQUMsR0FBb0I7UUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBZ0IsZ0JBQWdCLENBQUMsR0FBNkI7SUFDNUQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUEsMkJBQW1CLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksWUFBWSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMvQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7QUFDcEMsQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLEdBQW1CO0lBQ3RELE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLFFBQVEsSUFBSSxHQUFHLElBQUksUUFBUSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDOUcsQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLEdBQW1CO0lBQ3JELE9BQU8sQ0FBQyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFnQiwwQkFBMEIsQ0FBQyxHQUFtQjtJQUM1RCxPQUFPLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFycmF5LCBib29sZWFuLCBJbmZlciwgaW50ZWdlciwgb2JqZWN0LCBzdHJpbmcsIHVuaW9uIH0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuaW1wb3J0IHsgbm9ybWFsaXplU3VpQWRkcmVzcywgT2JqZWN0SWQsIFNoYXJlZE9iamVjdFJlZiwgU3VpT2JqZWN0UmVmIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRlciB9IGZyb20gJy4vYmNzJztcblxuY29uc3QgT2JqZWN0QXJnID0gdW5pb24oW1xuICBvYmplY3QoeyBJbW1Pck93bmVkOiBTdWlPYmplY3RSZWYgfSksXG4gIG9iamVjdCh7XG4gICAgU2hhcmVkOiBvYmplY3Qoe1xuICAgICAgb2JqZWN0SWQ6IHN0cmluZygpLFxuICAgICAgaW5pdGlhbFNoYXJlZFZlcnNpb246IHVuaW9uKFtpbnRlZ2VyKCksIHN0cmluZygpXSksXG4gICAgICBtdXRhYmxlOiBib29sZWFuKCksXG4gICAgfSksXG4gIH0pLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBQdXJlQ2FsbEFyZyA9IG9iamVjdCh7IFB1cmU6IGFycmF5KGludGVnZXIoKSkgfSk7XG5leHBvcnQgY29uc3QgT2JqZWN0Q2FsbEFyZyA9IG9iamVjdCh7IE9iamVjdDogT2JqZWN0QXJnIH0pO1xuZXhwb3J0IHR5cGUgUHVyZUNhbGxBcmcgPSBJbmZlcjx0eXBlb2YgUHVyZUNhbGxBcmc+O1xuZXhwb3J0IHR5cGUgT2JqZWN0Q2FsbEFyZyA9IEluZmVyPHR5cGVvZiBPYmplY3RDYWxsQXJnPjtcblxuZXhwb3J0IGNvbnN0IEJ1aWxkZXJDYWxsQXJnID0gdW5pb24oW1B1cmVDYWxsQXJnLCBPYmplY3RDYWxsQXJnXSk7XG5leHBvcnQgdHlwZSBCdWlsZGVyQ2FsbEFyZyA9IEluZmVyPHR5cGVvZiBCdWlsZGVyQ2FsbEFyZz47XG5cbmV4cG9ydCBjb25zdCBJbnB1dHMgPSB7XG4gIFB1cmUoZGF0YTogdW5rbm93biwgdHlwZT86IHN0cmluZyk6IFB1cmVDYWxsQXJnIHtcbiAgICByZXR1cm4ge1xuICAgICAgUHVyZTogQXJyYXkuZnJvbShkYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSA/IGRhdGEgOiBidWlsZGVyLnNlcih0eXBlISwgZGF0YSkudG9CeXRlcygpKSxcbiAgICB9O1xuICB9LFxuICBPYmplY3RSZWYocmVmOiBTdWlPYmplY3RSZWYpOiBPYmplY3RDYWxsQXJnIHtcbiAgICByZXR1cm4geyBPYmplY3Q6IHsgSW1tT3JPd25lZDogcmVmIH0gfTtcbiAgfSxcbiAgU2hhcmVkT2JqZWN0UmVmKHJlZjogU2hhcmVkT2JqZWN0UmVmKTogT2JqZWN0Q2FsbEFyZyB7XG4gICAgcmV0dXJuIHsgT2JqZWN0OiB7IFNoYXJlZDogcmVmIH0gfTtcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZEZyb21DYWxsQXJnKGFyZzogT2JqZWN0SWQgfCBPYmplY3RDYWxsQXJnKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVN1aUFkZHJlc3MoYXJnKTtcbiAgfVxuICBpZiAoJ0ltbU9yT3duZWQnIGluIGFyZy5PYmplY3QpIHtcbiAgICByZXR1cm4gYXJnLk9iamVjdC5JbW1Pck93bmVkLm9iamVjdElkO1xuICB9XG4gIHJldHVybiBhcmcuT2JqZWN0LlNoYXJlZC5vYmplY3RJZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNoYXJlZE9iamVjdElucHV0KGFyZzogQnVpbGRlckNhbGxBcmcpOiBTaGFyZWRPYmplY3RSZWYgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgJ09iamVjdCcgaW4gYXJnICYmICdTaGFyZWQnIGluIGFyZy5PYmplY3QgPyBhcmcuT2JqZWN0LlNoYXJlZCA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2hhcmVkT2JqZWN0SW5wdXQoYXJnOiBCdWlsZGVyQ2FsbEFyZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gISFnZXRTaGFyZWRPYmplY3RJbnB1dChhcmcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNNdXRhYmxlU2hhcmVkT2JqZWN0SW5wdXQoYXJnOiBCdWlsZGVyQ2FsbEFyZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0U2hhcmVkT2JqZWN0SW5wdXQoYXJnKT8ubXV0YWJsZSA/PyBmYWxzZTtcbn1cbiJdfQ==
@@ -0,0 +1,302 @@
1
+ import { ObjectId, SuiObjectRef } from '../types';
2
+ import { Transactions, TransactionArgument, TransactionType } from './Transactions';
3
+ import { ObjectCallArg } from './Inputs';
4
+ import { TransactionExpiration } from './TransactionDataBlock';
5
+ type TransactionResult = TransactionArgument & TransactionArgument[];
6
+ declare const TRANSACTION_BRAND: unique symbol;
7
+ interface BuildOptions {
8
+ onlyTransactionKind?: boolean;
9
+ }
10
+ /**
11
+ * Transaction Builder
12
+ */
13
+ export declare class TransactionBlock {
14
+ #private;
15
+ /** Returns `true` if the object is an instance of the Transaction builder class. */
16
+ static is(obj: unknown): obj is TransactionBlock;
17
+ /**
18
+ * Converts from a serialize transaction kind (built with `build({ onlyTransactionKind: true })`) to a `Transaction` class.
19
+ * Supports either a byte array, or base64-encoded bytes.
20
+ */
21
+ static fromKind(serialized: string | Uint8Array): TransactionBlock;
22
+ /**
23
+ * Converts from a serialized transaction format to a `Transaction` class.
24
+ * There are two supported serialized formats:
25
+ * - A string returned from `Transaction#serialize`. The serialized format must be compatible, or it will throw an error.
26
+ * - A byte array (or base64-encoded bytes) containing BCS transaction data.
27
+ */
28
+ static from(serialized: string | Uint8Array): TransactionBlock;
29
+ /** A helper to retrieve the Transaction builder `Transactions` */
30
+ static get Transactions(): {
31
+ MoveCall(input: Omit<import("./Transactions").MoveCallTransaction, "kind" | "arguments" | "typeArguments"> & {
32
+ arguments?: TransactionArgument[];
33
+ typeArguments?: string[];
34
+ }): import("./Transactions").MoveCallTransaction;
35
+ TransferObjects(objects: TransactionArgument[], address: TransactionArgument): import("./Transactions").TransferObjectsTransaction;
36
+ SplitCoins(coin: TransactionArgument, amounts: TransactionArgument[]): import("./Transactions").SplitCoinsTransaction;
37
+ MergeCoins(destination: TransactionArgument, sources: TransactionArgument[]): import("./Transactions").MergeCoinsTransaction;
38
+ Publish(modules: number[][], dependencies: ObjectId[]): import("./Transactions").PublishTransaction;
39
+ MakeMoveVec({ type, objects, }: Omit<import("./Transactions").MakeMoveVecTransaction, "kind" | "type"> & {
40
+ type?: string;
41
+ }): import("./Transactions").MakeMoveVecTransaction;
42
+ };
43
+ /** A helper to retrieve the Transaction builder `Inputs` */
44
+ static get Inputs(): {
45
+ Pure(data: unknown, type?: string): import("./Inputs").PureCallArg;
46
+ ObjectRef(ref: SuiObjectRef): ObjectCallArg;
47
+ SharedObjectRef(ref: import("../types").SharedObjectRef): ObjectCallArg;
48
+ };
49
+ setSender(sender: string): void;
50
+ /**
51
+ * Sets the sender only if it has not already been set.
52
+ * This is useful for sponsored transaction flows where the sender may not be the same as the signer address.
53
+ */
54
+ setSenderIfNotSet(sender: string): void;
55
+ setExpiration(expiration?: TransactionExpiration): void;
56
+ setGasPrice(price: number | bigint): void;
57
+ setGasBudget(budget: number | bigint): void;
58
+ setGasOwner(owner: string): void;
59
+ setGasPayment(payments: SuiObjectRef[]): void;
60
+ /** Get a snapshot of the transaction data, in JSON form: */
61
+ get blockData(): {
62
+ version: 1;
63
+ transactions: ({
64
+ target: `${string}::${string}::${string}`;
65
+ arguments: ({
66
+ kind: "Input";
67
+ index: number;
68
+ value?: any;
69
+ type?: "object" | "pure" | undefined;
70
+ } | {
71
+ kind: "GasCoin";
72
+ } | {
73
+ kind: "Result";
74
+ index: number;
75
+ } | {
76
+ resultIndex: number;
77
+ kind: "NestedResult";
78
+ index: number;
79
+ })[];
80
+ kind: "MoveCall";
81
+ typeArguments: string[];
82
+ } | {
83
+ objects: ({
84
+ kind: "Input";
85
+ index: number;
86
+ value?: any;
87
+ type?: "object" | "pure" | undefined;
88
+ } | {
89
+ kind: "GasCoin";
90
+ } | {
91
+ kind: "Result";
92
+ index: number;
93
+ } | {
94
+ resultIndex: number;
95
+ kind: "NestedResult";
96
+ index: number;
97
+ })[];
98
+ kind: "TransferObjects";
99
+ address: {
100
+ kind: "Input";
101
+ index: number;
102
+ value?: any;
103
+ type?: "object" | "pure" | undefined;
104
+ } | {
105
+ kind: "GasCoin";
106
+ } | {
107
+ kind: "Result";
108
+ index: number;
109
+ } | {
110
+ resultIndex: number;
111
+ kind: "NestedResult";
112
+ index: number;
113
+ };
114
+ } | {
115
+ coin: {
116
+ kind: "Input";
117
+ index: number;
118
+ value?: any;
119
+ type?: "object" | "pure" | undefined;
120
+ } | {
121
+ kind: "GasCoin";
122
+ } | {
123
+ kind: "Result";
124
+ index: number;
125
+ } | {
126
+ resultIndex: number;
127
+ kind: "NestedResult";
128
+ index: number;
129
+ };
130
+ kind: "SplitCoins";
131
+ amounts: ({
132
+ kind: "Input";
133
+ index: number;
134
+ value?: any;
135
+ type?: "object" | "pure" | undefined;
136
+ } | {
137
+ kind: "GasCoin";
138
+ } | {
139
+ kind: "Result";
140
+ index: number;
141
+ } | {
142
+ resultIndex: number;
143
+ kind: "NestedResult";
144
+ index: number;
145
+ })[];
146
+ } | {
147
+ kind: "MergeCoins";
148
+ destination: {
149
+ kind: "Input";
150
+ index: number;
151
+ value?: any;
152
+ type?: "object" | "pure" | undefined;
153
+ } | {
154
+ kind: "GasCoin";
155
+ } | {
156
+ kind: "Result";
157
+ index: number;
158
+ } | {
159
+ resultIndex: number;
160
+ kind: "NestedResult";
161
+ index: number;
162
+ };
163
+ sources: ({
164
+ kind: "Input";
165
+ index: number;
166
+ value?: any;
167
+ type?: "object" | "pure" | undefined;
168
+ } | {
169
+ kind: "GasCoin";
170
+ } | {
171
+ kind: "Result";
172
+ index: number;
173
+ } | {
174
+ resultIndex: number;
175
+ kind: "NestedResult";
176
+ index: number;
177
+ })[];
178
+ } | {
179
+ kind: "Publish";
180
+ modules: number[][];
181
+ dependencies: string[];
182
+ } | {
183
+ objects: ({
184
+ kind: "Input";
185
+ index: number;
186
+ value?: any;
187
+ type?: "object" | "pure" | undefined;
188
+ } | {
189
+ kind: "GasCoin";
190
+ } | {
191
+ kind: "Result";
192
+ index: number;
193
+ } | {
194
+ resultIndex: number;
195
+ kind: "NestedResult";
196
+ index: number;
197
+ })[];
198
+ kind: "MakeMoveVec";
199
+ type?: {
200
+ None: null;
201
+ } | {
202
+ Some: string;
203
+ } | undefined;
204
+ })[];
205
+ inputs: {
206
+ kind: "Input";
207
+ index: number;
208
+ value?: any;
209
+ type?: "object" | "pure" | undefined;
210
+ }[];
211
+ gasConfig: {
212
+ budget?: string | undefined;
213
+ price?: string | undefined;
214
+ payment?: {
215
+ digest: string;
216
+ objectId: string;
217
+ version: string | number;
218
+ }[] | undefined;
219
+ owner?: string | undefined;
220
+ };
221
+ sender?: string | undefined;
222
+ expiration?: {
223
+ Epoch: number;
224
+ } | {
225
+ None: true | null;
226
+ } | null | undefined;
227
+ };
228
+ get [TRANSACTION_BRAND](): boolean;
229
+ constructor(transaction?: TransactionBlock);
230
+ /** Returns an argument for the gas coin, to be used in a transaction. */
231
+ get gas(): TransactionArgument;
232
+ /**
233
+ * Dynamically create a new input, which is separate from the `input`. This is important
234
+ * for generated clients to be able to define unique inputs that are non-overlapping with the
235
+ * defined inputs.
236
+ *
237
+ * For `Uint8Array` type automatically convert the input into a `Pure` CallArg, since this
238
+ * is the format required for custom serialization.
239
+ *
240
+ */
241
+ input(type: 'object' | 'pure', value?: unknown): {
242
+ kind: "Input";
243
+ index: number;
244
+ value?: any;
245
+ type?: "object" | "pure" | undefined;
246
+ };
247
+ /**
248
+ * Add a new object input to the transaction.
249
+ */
250
+ object(value: ObjectId | ObjectCallArg): {
251
+ kind: "Input";
252
+ index: number;
253
+ value?: any;
254
+ type?: "object" | "pure" | undefined;
255
+ };
256
+ /**
257
+ * Add a new non-object input to the transaction.
258
+ */
259
+ pure(
260
+ /**
261
+ * The pure value that will be used as the input value. If this is a Uint8Array, then the value
262
+ * is assumed to be raw bytes, and will be used directly.
263
+ */
264
+ value: unknown,
265
+ /**
266
+ * The BCS type to serialize the value into. If not provided, the type will automatically be determined
267
+ * based on how the input is used.
268
+ */
269
+ type?: string): {
270
+ kind: "Input";
271
+ index: number;
272
+ value?: any;
273
+ type?: "object" | "pure" | undefined;
274
+ };
275
+ /** Add a transaction to the transaction block. */
276
+ add(transaction: TransactionType): TransactionResult;
277
+ splitCoins(...args: Parameters<(typeof Transactions)['SplitCoins']>): TransactionResult;
278
+ mergeCoins(...args: Parameters<(typeof Transactions)['MergeCoins']>): TransactionResult;
279
+ publish(...args: Parameters<(typeof Transactions)['Publish']>): TransactionResult;
280
+ moveCall(...args: Parameters<(typeof Transactions)['MoveCall']>): TransactionResult;
281
+ transferObjects(...args: Parameters<(typeof Transactions)['TransferObjects']>): TransactionResult;
282
+ makeMoveVec(...args: Parameters<(typeof Transactions)['MakeMoveVec']>): TransactionResult;
283
+ /**
284
+ * Serialize the transaction to a string so that it can be sent to a separate context.
285
+ * This is different from `build` in that it does not serialize to BCS bytes, and instead
286
+ * uses a separate format that is unique to the transaction builder. This allows
287
+ * us to serialize partially-complete transactions, that can then be completed and
288
+ * built in a separate context.
289
+ *
290
+ * For example, a dapp can construct a transaction, but not provide gas objects
291
+ * or a gas budget. The transaction then can be sent to the wallet, where this
292
+ * information is automatically filled in (e.g. by querying for coin objects
293
+ * and performing a dry run).
294
+ */
295
+ serialize(): string;
296
+ /** Build the transaction to BCS bytes. */
297
+ build({ onlyTransactionKind }?: BuildOptions): Promise<Uint8Array>;
298
+ /** Derive transaction digest */
299
+ getDigest(): Promise<string>;
300
+ }
301
+ export {};
302
+ //# sourceMappingURL=TransactionBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionBlock.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/builder/TransactionBlock.ts"],"names":[],"mappings":"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"}