@bitgo/sdk-coin-sui 2.0.0 → 3.0.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 (122) hide show
  1. package/.eslintignore +1 -0
  2. package/CHANGELOG.md +37 -0
  3. package/dist/src/lib/constants.d.ts +3 -15
  4. package/dist/src/lib/constants.d.ts.map +1 -1
  5. package/dist/src/lib/constants.js +7 -20
  6. package/dist/src/lib/iface.d.ts +35 -181
  7. package/dist/src/lib/iface.d.ts.map +1 -1
  8. package/dist/src/lib/iface.js +11 -38
  9. package/dist/src/lib/index.d.ts +2 -0
  10. package/dist/src/lib/index.d.ts.map +1 -1
  11. package/dist/src/lib/index.js +6 -2
  12. package/dist/src/lib/keyPair.d.ts +4 -0
  13. package/dist/src/lib/keyPair.d.ts.map +1 -1
  14. package/dist/src/lib/keyPair.js +7 -10
  15. package/dist/src/lib/mystenlab/builder/Inputs.d.ts +66 -0
  16. package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -0
  17. package/dist/src/lib/mystenlab/builder/Inputs.js +56 -0
  18. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +616 -0
  19. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -0
  20. package/dist/src/lib/mystenlab/builder/TransactionBlock.js +260 -0
  21. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +566 -0
  22. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -0
  23. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +171 -0
  24. package/dist/src/lib/mystenlab/builder/Transactions.d.ts +992 -0
  25. package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -0
  26. package/dist/src/lib/mystenlab/builder/Transactions.js +119 -0
  27. package/dist/src/lib/mystenlab/builder/bcs.d.ts +25 -0
  28. package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -0
  29. package/dist/src/lib/mystenlab/builder/bcs.js +141 -0
  30. package/dist/src/lib/mystenlab/builder/index.d.ts +5 -0
  31. package/dist/src/lib/mystenlab/builder/index.d.ts.map +1 -0
  32. package/dist/src/lib/mystenlab/builder/index.js +17 -0
  33. package/dist/src/lib/mystenlab/builder/serializer.d.ts +4 -0
  34. package/dist/src/lib/mystenlab/builder/serializer.d.ts.map +1 -0
  35. package/dist/src/lib/mystenlab/builder/serializer.js +101 -0
  36. package/dist/src/lib/mystenlab/builder/utils.d.ts +10 -0
  37. package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -0
  38. package/dist/src/lib/mystenlab/builder/utils.js +10 -0
  39. package/dist/src/lib/mystenlab/cryptography/hash.d.ts +8 -0
  40. package/dist/src/lib/mystenlab/cryptography/hash.d.ts.map +1 -0
  41. package/dist/src/lib/mystenlab/cryptography/hash.js +22 -0
  42. package/dist/src/lib/mystenlab/framework/framework.d.ts +93 -0
  43. package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -0
  44. package/dist/src/lib/mystenlab/framework/framework.js +138 -0
  45. package/dist/src/lib/mystenlab/framework/index.d.ts +3 -0
  46. package/dist/src/lib/mystenlab/framework/index.d.ts.map +1 -0
  47. package/dist/src/lib/mystenlab/framework/index.js +15 -0
  48. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts +12 -0
  49. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -0
  50. package/dist/src/lib/mystenlab/framework/sui-system-state.js +19 -0
  51. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts +7 -0
  52. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts.map +1 -0
  53. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +119 -0
  54. package/dist/src/lib/mystenlab/types/coin.d.ts +89 -0
  55. package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -0
  56. package/dist/src/lib/mystenlab/types/coin.js +32 -0
  57. package/dist/src/lib/mystenlab/types/common.d.ts +45 -0
  58. package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -0
  59. package/dist/src/lib/mystenlab/types/common.js +84 -0
  60. package/dist/src/lib/mystenlab/types/events.d.ts +198 -0
  61. package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -0
  62. package/dist/src/lib/mystenlab/types/events.js +46 -0
  63. package/dist/src/lib/mystenlab/types/index.d.ts +9 -0
  64. package/dist/src/lib/mystenlab/types/index.d.ts.map +1 -0
  65. package/dist/src/lib/mystenlab/types/index.js +21 -0
  66. package/dist/src/lib/mystenlab/types/normalized.d.ts +254 -0
  67. package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -0
  68. package/dist/src/lib/mystenlab/types/normalized.js +111 -0
  69. package/dist/src/lib/mystenlab/types/objects.d.ts +806 -0
  70. package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -0
  71. package/dist/src/lib/mystenlab/types/objects.js +302 -0
  72. package/dist/src/lib/mystenlab/types/option.d.ts +8 -0
  73. package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -0
  74. package/dist/src/lib/mystenlab/types/option.js +14 -0
  75. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +111 -0
  76. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -0
  77. package/dist/src/lib/mystenlab/types/sui-bcs.js +107 -0
  78. package/dist/src/lib/mystenlab/types/transactions.d.ts +6703 -0
  79. package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -0
  80. package/dist/src/lib/mystenlab/types/transactions.js +405 -0
  81. package/dist/src/lib/mystenlab/types/validator.d.ts +641 -0
  82. package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -0
  83. package/dist/src/lib/mystenlab/types/validator.js +156 -0
  84. package/dist/src/lib/stakingBuilder.d.ts +24 -35
  85. package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
  86. package/dist/src/lib/stakingBuilder.js +93 -129
  87. package/dist/src/lib/stakingTransaction.d.ts +5 -21
  88. package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
  89. package/dist/src/lib/stakingTransaction.js +77 -219
  90. package/dist/src/lib/transaction.d.ts +8 -6
  91. package/dist/src/lib/transaction.d.ts.map +1 -1
  92. package/dist/src/lib/transaction.js +74 -124
  93. package/dist/src/lib/transactionBuilder.d.ts +9 -9
  94. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  95. package/dist/src/lib/transactionBuilder.js +27 -16
  96. package/dist/src/lib/transactionBuilderFactory.d.ts +8 -5
  97. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  98. package/dist/src/lib/transactionBuilderFactory.js +17 -11
  99. package/dist/src/lib/transferBuilder.d.ts +15 -10
  100. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  101. package/dist/src/lib/transferBuilder.js +38 -101
  102. package/dist/src/lib/transferTransaction.d.ts +5 -4
  103. package/dist/src/lib/transferTransaction.d.ts.map +1 -1
  104. package/dist/src/lib/transferTransaction.js +45 -96
  105. package/dist/src/lib/unstakingBuilder.d.ts +55 -0
  106. package/dist/src/lib/unstakingBuilder.d.ts.map +1 -0
  107. package/dist/src/lib/unstakingBuilder.js +148 -0
  108. package/dist/src/lib/unstakingTransaction.d.ts +51 -0
  109. package/dist/src/lib/unstakingTransaction.d.ts.map +1 -0
  110. package/dist/src/lib/unstakingTransaction.js +206 -0
  111. package/dist/src/lib/utils.d.ts +30 -92
  112. package/dist/src/lib/utils.d.ts.map +1 -1
  113. package/dist/src/lib/utils.js +115 -177
  114. package/dist/src/sui.d.ts.map +1 -1
  115. package/dist/src/sui.js +23 -13
  116. package/package.json +9 -9
  117. package/dist/src/lib/bcs.d.ts +0 -3
  118. package/dist/src/lib/bcs.d.ts.map +0 -1
  119. package/dist/src/lib/bcs.js +0 -109
  120. package/dist/src/lib/txnSchema.d.ts +0 -7
  121. package/dist/src/lib/txnSchema.d.ts.map +0 -1
  122. package/dist/src/lib/txnSchema.js +0 -81
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transactions.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/builder/Transactions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Transactions = exports.getTransactionType = exports.TransactionType = exports.PublishTransaction = exports.MakeMoveVecTransaction = exports.MergeCoinsTransaction = exports.SplitCoinsTransaction = exports.TransferObjectsTransaction = exports.MoveCallTransaction = exports.PureTransactionArgument = exports.ObjectTransactionArgument = exports.TransactionArgument = exports.TransactionBlockInput = void 0;
4
+ const bcs_1 = require("@mysten/bcs");
5
+ const superstruct_1 = require("superstruct");
6
+ const common_1 = require("../types/common");
7
+ const utils_1 = require("./utils");
8
+ const option = (some) => superstruct_1.union([superstruct_1.object({ None: superstruct_1.literal(null) }), superstruct_1.object({ Some: some })]);
9
+ exports.TransactionBlockInput = superstruct_1.object({
10
+ kind: superstruct_1.literal('Input'),
11
+ index: superstruct_1.integer(),
12
+ value: superstruct_1.optional(superstruct_1.any()),
13
+ type: superstruct_1.optional(superstruct_1.union([superstruct_1.literal('pure'), superstruct_1.literal('object')])),
14
+ });
15
+ const TransactionArgumentTypes = [
16
+ exports.TransactionBlockInput,
17
+ superstruct_1.object({ kind: superstruct_1.literal('GasCoin') }),
18
+ superstruct_1.object({ kind: superstruct_1.literal('Result'), index: superstruct_1.integer() }),
19
+ superstruct_1.object({
20
+ kind: superstruct_1.literal('NestedResult'),
21
+ index: superstruct_1.integer(),
22
+ resultIndex: superstruct_1.integer(),
23
+ }),
24
+ ];
25
+ // Generic transaction argument
26
+ exports.TransactionArgument = superstruct_1.union([...TransactionArgumentTypes]);
27
+ // Transaction argument referring to an object:
28
+ exports.ObjectTransactionArgument = superstruct_1.union([...TransactionArgumentTypes]);
29
+ exports.ObjectTransactionArgument[utils_1.TRANSACTION_TYPE] = {
30
+ kind: 'object',
31
+ };
32
+ const PureTransactionArgument = (type) => {
33
+ const struct = superstruct_1.union([...TransactionArgumentTypes]);
34
+ struct[utils_1.TRANSACTION_TYPE] = {
35
+ kind: 'pure',
36
+ type,
37
+ };
38
+ return struct;
39
+ };
40
+ exports.PureTransactionArgument = PureTransactionArgument;
41
+ exports.MoveCallTransaction = superstruct_1.object({
42
+ kind: superstruct_1.literal('MoveCall'),
43
+ target: superstruct_1.define('target', superstruct_1.string().validator),
44
+ typeArguments: superstruct_1.array(superstruct_1.string()),
45
+ arguments: superstruct_1.array(exports.TransactionArgument),
46
+ });
47
+ exports.TransferObjectsTransaction = superstruct_1.object({
48
+ kind: superstruct_1.literal('TransferObjects'),
49
+ objects: superstruct_1.array(exports.ObjectTransactionArgument),
50
+ address: exports.PureTransactionArgument(bcs_1.BCS.ADDRESS),
51
+ });
52
+ exports.SplitCoinsTransaction = superstruct_1.object({
53
+ kind: superstruct_1.literal('SplitCoins'),
54
+ coin: exports.ObjectTransactionArgument,
55
+ amounts: superstruct_1.array(exports.PureTransactionArgument('u64')),
56
+ });
57
+ exports.MergeCoinsTransaction = superstruct_1.object({
58
+ kind: superstruct_1.literal('MergeCoins'),
59
+ destination: exports.ObjectTransactionArgument,
60
+ sources: superstruct_1.array(exports.ObjectTransactionArgument),
61
+ });
62
+ exports.MakeMoveVecTransaction = superstruct_1.object({
63
+ kind: superstruct_1.literal('MakeMoveVec'),
64
+ type: superstruct_1.optional(option(superstruct_1.string())),
65
+ objects: superstruct_1.array(exports.ObjectTransactionArgument),
66
+ });
67
+ exports.PublishTransaction = superstruct_1.object({
68
+ kind: superstruct_1.literal('Publish'),
69
+ modules: superstruct_1.array(superstruct_1.array(superstruct_1.integer())),
70
+ dependencies: superstruct_1.array(common_1.ObjectId),
71
+ });
72
+ const TransactionTypes = [
73
+ exports.MoveCallTransaction,
74
+ exports.TransferObjectsTransaction,
75
+ exports.SplitCoinsTransaction,
76
+ exports.MergeCoinsTransaction,
77
+ exports.PublishTransaction,
78
+ exports.MakeMoveVecTransaction,
79
+ ];
80
+ exports.TransactionType = superstruct_1.union([...TransactionTypes]);
81
+ function getTransactionType(data) {
82
+ superstruct_1.assert(data, exports.TransactionType);
83
+ return TransactionTypes.find((schema) => superstruct_1.is(data, schema));
84
+ }
85
+ exports.getTransactionType = getTransactionType;
86
+ /**
87
+ * Simple helpers used to construct transactions:
88
+ */
89
+ exports.Transactions = {
90
+ MoveCall(input) {
91
+ var _a, _b;
92
+ return utils_1.create({
93
+ kind: 'MoveCall',
94
+ target: input.target,
95
+ arguments: (_a = input.arguments) !== null && _a !== void 0 ? _a : [],
96
+ typeArguments: (_b = input.typeArguments) !== null && _b !== void 0 ? _b : [],
97
+ }, exports.MoveCallTransaction);
98
+ },
99
+ TransferObjects(objects, address) {
100
+ return utils_1.create({ kind: 'TransferObjects', objects, address }, exports.TransferObjectsTransaction);
101
+ },
102
+ SplitCoins(coin, amounts) {
103
+ return utils_1.create({ kind: 'SplitCoins', coin, amounts }, exports.SplitCoinsTransaction);
104
+ },
105
+ MergeCoins(destination, sources) {
106
+ return utils_1.create({ kind: 'MergeCoins', destination, sources }, exports.MergeCoinsTransaction);
107
+ },
108
+ Publish(modules, dependencies) {
109
+ return utils_1.create({ kind: 'Publish', modules, dependencies }, exports.PublishTransaction);
110
+ },
111
+ MakeMoveVec({ type, objects, }) {
112
+ return utils_1.create({
113
+ kind: 'MakeMoveVec',
114
+ type: type ? { Some: type } : { None: null },
115
+ objects,
116
+ }, exports.MakeMoveVecTransaction);
117
+ },
118
+ };
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvYnVpbGRlci9UcmFuc2FjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQWtDO0FBQ2xDLDZDQWNxQjtBQUNyQiw0Q0FBMkM7QUFDM0MsbUNBQXNFO0FBRXRFLE1BQU0sTUFBTSxHQUFHLENBQTZCLElBQU8sRUFBRSxFQUFFLENBQ3JELG1CQUFLLENBQUMsQ0FBQyxvQkFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLG9CQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdEQsUUFBQSxxQkFBcUIsR0FBRyxvQkFBTSxDQUFDO0lBQzFDLElBQUksRUFBRSxxQkFBTyxDQUFDLE9BQU8sQ0FBQztJQUN0QixLQUFLLEVBQUUscUJBQU8sRUFBRTtJQUNoQixLQUFLLEVBQUUsc0JBQVEsQ0FBQyxpQkFBRyxFQUFFLENBQUM7SUFDdEIsSUFBSSxFQUFFLHNCQUFRLENBQUMsbUJBQUssQ0FBQyxDQUFDLHFCQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUscUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDNUQsQ0FBQyxDQUFDO0FBR0gsTUFBTSx3QkFBd0IsR0FBRztJQUMvQiw2QkFBcUI7SUFDckIsb0JBQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxxQkFBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7SUFDcEMsb0JBQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxxQkFBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxxQkFBTyxFQUFFLEVBQUUsQ0FBQztJQUNyRCxvQkFBTSxDQUFDO1FBQ0wsSUFBSSxFQUFFLHFCQUFPLENBQUMsY0FBYyxDQUFDO1FBQzdCLEtBQUssRUFB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QVMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsMEJBQWtCLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQ1YsSUFBSSxFQUNKLE9BQU8sR0FHUjtRQUNDLE9BQU8sY0FBTSxDQUNYO1lBQ0UsSUFBSSxFQUFFLGFBQWE7WUFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtZQUM1QyxPQUFPO1NBQ1IsRUFDRCw4QkFBc0IsQ0FDdkIsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkNTIH0gZnJvbSAnQG15c3Rlbi9iY3MnO1xuaW1wb3J0IHtcbiAgaXMsXG4gIGFueSxcbiAgYXJyYXksXG4gIEluZmVyLFxuICBpbnRlZ2VyLFxuICBsaXRlcmFsLFxuICBvYmplY3QsXG4gIG9wdGlvbmFsLFxuICBzdHJpbmcsXG4gIHVuaW9uLFxuICBhc3NlcnQsXG4gIFN0cnVjdCxcbiAgZGVmaW5lLFxufSBmcm9tICdzdXBlcnN0cnVjdCc7XG5pbXBvcnQgeyBPYmplY3RJZCB9IGZyb20gJy4uL3R5cGVzL2NvbW1vbic7XG5pbXBvcnQgeyBUUkFOU0FDVElPTl9UWVBFLCBXZWxsS25vd25FbmNvZGluZywgY3JlYXRlIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IG9wdGlvbiA9IDxUIGV4dGVuZHMgU3RydWN0PGFueSwgYW55Pj4oc29tZTogVCkgPT5cbiAgdW5pb24oW29iamVjdCh7IE5vbmU6IGxpdGVyYWwobnVsbCkgfSksIG9iamVjdCh7IFNvbWU6IHNvbWUgfSldKTtcblxuZXhwb3J0IGNvbnN0IFRyYW5zYWN0aW9uQmxvY2tJbnB1dCA9IG9iamVjdCh7XG4gIGtpbmQ6IGxpdGVyYWwoJ0lucHV0JyksXG4gIGluZGV4OiBpbnRlZ2VyKCksXG4gIHZhbHVlOiBvcHRpb25hbChhbnkoKSksXG4gIHR5cGU6IG9wdGlvbmFsKHVuaW9uKFtsaXRlcmFsKCdwdXJlJyksIGxpdGVyYWwoJ29iamVjdCcpXSkpLFxufSk7XG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkJsb2NrSW5wdXQgPSBJbmZlcjx0eXBlb2YgVHJhbnNhY3Rpb25CbG9ja0lucHV0PjtcblxuY29uc3QgVHJhbnNhY3Rpb25Bcmd1bWVudFR5cGVzID0gW1xuICBUcmFuc2FjdGlvbkJsb2NrSW5wdXQsXG4gIG9iamVjdCh7IGtpbmQ6IGxpdGVyYWwoJ0dhc0NvaW4nKSB9KSxcbiAgb2JqZWN0KHsga2luZDogbGl0ZXJhbCgnUmVzdWx0JyksIGluZGV4OiBpbnRlZ2VyKCkgfSksXG4gIG9iamVjdCh7XG4gICAga2luZDogbGl0ZXJhbCgnTmVzdGVkUmVzdWx0JyksXG4gICAgaW5kZXg6IGludGVnZXIoKSxcbiAgICByZXN1bHRJbmRleDogaW50ZWdlcigpLFxuICB9KSxcbl0gYXMgY29uc3Q7XG5cbi8vIEdlbmVyaWMgdHJhbnNhY3Rpb24gYXJndW1lbnRcbmV4cG9ydCBjb25zdCBUcmFuc2FjdGlvbkFyZ3VtZW50ID0gdW5pb24oWy4uLlRyYW5zYWN0aW9uQXJndW1lbnRUeXBlc10pO1xuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25Bcmd1bWVudCA9IEluZmVyPHR5cGVvZiBUcmFuc2FjdGlvbkFyZ3VtZW50PjtcblxuLy8gVHJhbnNhY3Rpb24gYXJndW1lbnQgcmVmZXJyaW5nIHRvIGFuIG9iamVjdDpcbmV4cG9ydCBjb25zdCBPYmplY3RUcmFuc2FjdGlvbkFyZ3VtZW50ID0gdW5pb24oWy4uLlRyYW5zYWN0aW9uQXJndW1lbnRUeXBlc10pO1xuKE9iamVjdFRyYW5zYWN0aW9uQXJndW1lbnQgYXMgYW55KVtUUkFOU0FDVElPTl9UWVBFXSA9IHtcbiAga2luZDogJ29iamVjdCcsXG59IGFzIFdlbGxLbm93bkVuY29kaW5nO1xuXG5leHBvcnQgY29uc3QgUHVyZVRyYW5zYWN0aW9uQXJndW1lbnQgPSAodHlwZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHN0cnVjdCA9IHVuaW9uKFsuLi5UcmFuc2FjdGlvbkFyZ3VtZW50VHlwZXNdKTtcbiAgKHN0cnVjdCBhcyBhbnkpW1RSQU5TQUNUSU9OX1RZUEVdID0ge1xuICAgIGtpbmQ6ICdwdXJlJyxcbiAgICB0eXBlLFxuICB9IGFzIFdlbGxLbm93bkVuY29kaW5nO1xuICByZXR1cm4gc3RydWN0O1xufTtcblxuZXhwb3J0IGNvbnN0IE1vdmVDYWxsVHJhbnNhY3Rpb24gPSBvYmplY3Qoe1xuICBraW5kOiBsaXRlcmFsKCdNb3ZlQ2FsbCcpLFxuICB0YXJnZXQ6IGRlZmluZTxgJHtzdHJpbmd9Ojoke3N0cmluZ306OiR7c3RyaW5nfWA+KCd0YXJnZXQnLCBzdHJpbmcoKS52YWxpZGF0b3IpLFxuICB0eXBlQXJndW1lbnRzOiBhcnJheShzdHJpbmcoKSksXG4gIGFyZ3VtZW50czogYXJyYXkoVHJhbnNhY3Rpb25Bcmd1bWVudCksXG59KTtcbmV4cG9ydCB0eXBlIE1vdmVDYWxsVHJhbnNhY3Rpb24gPSBJbmZlcjx0eXBlb2YgTW92ZUNhbGxUcmFuc2FjdGlvbj47XG5cbmV4cG9ydCBjb25zdCBUcmFuc2Zlck9iamVjdHNUcmFuc2FjdGlvbiA9IG9iamVjdCh7XG4gIGtpbmQ6IGxpdGVyYWwoJ1RyYW5zZmVyT2JqZWN0cycpLFxuICBvYmplY3RzOiBhcnJheShPYmplY3RUcmFuc2FjdGlvbkFyZ3VtZW50KSxcbiAgYWRkcmVzczogUHVyZVRyYW5zYWN0aW9uQXJndW1lbnQoQkNTLkFERFJFU1MpLFxufSk7XG5leHBvcnQgdHlwZSBUcmFuc2Zlck9iamVjdHNUcmFuc2FjdGlvbiA9IEluZmVyPHR5cGVvZiBUcmFuc2Zlck9iamVjdHNUcmFuc2FjdGlvbj47XG5cbmV4cG9ydCBjb25zdCBTcGxpdENvaW5zVHJhbnNhY3Rpb24gPSBvYmplY3Qoe1xuICBraW5kOiBsaXRlcmFsKCdTcGxpdENvaW5zJyksXG4gIGNvaW46IE9iamVjdFRyYW5zYWN0aW9uQXJndW1lbnQsXG4gIGFtb3VudHM6IGFycmF5KFB1cmVUcmFuc2FjdGlvbkFyZ3VtZW50KCd1NjQnKSksXG59KTtcbmV4cG9ydCB0eXBlIFNwbGl0Q29pbnNUcmFuc2FjdGlvbiA9IEluZmVyPHR5cGVvZiBTcGxpdENvaW5zVHJhbnNhY3Rpb24+O1xuXG5leHBvcnQgY29uc3QgTWVyZ2VDb2luc1RyYW5zYWN0aW9uID0gb2JqZWN0KHtcbiAga2luZDogbGl0ZXJhbCgnTWVyZ2VDb2lucycpLFxuICBkZXN0aW5hdGlvbjogT2JqZWN0VHJhbnNhY3Rpb25Bcmd1bWVudCxcbiAgc291cmNlczogYXJyYXkoT2JqZWN0VHJhbnNhY3Rpb25Bcmd1bWVudCksXG59KTtcbmV4cG9ydCB0eXBlIE1lcmdlQ29pbnNUcmFuc2FjdGlvbiA9IEluZmVyPHR5cGVvZiBNZXJnZUNvaW5zVHJhbnNhY3Rpb24+O1xuXG5leHBvcnQgY29uc3QgTWFrZU1vdmVWZWNUcmFuc2FjdGlvbiA9IG9iamVjdCh7XG4gIGtpbmQ6IGxpdGVyYWwoJ01ha2VNb3ZlVmVjJyksXG4gIHR5cGU6IG9wdGlvbmFsKG9wdGlvbihzdHJpbmcoKSkpLFxuICBvYmplY3RzOiBhcnJheShPYmplY3RUcmFuc2FjdGlvbkFyZ3VtZW50KSxcbn0pO1xuZXhwb3J0IHR5cGUgTWFrZU1vdmVWZWNUcmFuc2FjdGlvbiA9IEluZmVyPHR5cGVvZiBNYWtlTW92ZVZlY1RyYW5zYWN0aW9uPjtcblxuZXhwb3J0IGNvbnN0IFB1Ymxpc2hUcmFuc2FjdGlvbiA9IG9iamVjdCh7XG4gIGtpbmQ6IGxpdGVyYWwoJ1B1Ymxpc2gnKSxcbiAgbW9kdWxlczogYXJyYXkoYXJyYXkoaW50ZWdlcigpKSksXG4gIGRlcGVuZGVuY2llczogYXJyYXkoT2JqZWN0SWQpLFxufSk7XG5leHBvcnQgdHlwZSBQdWJsaXNoVHJhbnNhY3Rpb24gPSBJbmZlcjx0eXBlb2YgUHVibGlzaFRyYW5zYWN0aW9uPjtcblxuY29uc3QgVHJhbnNhY3Rpb25UeXBlcyA9IFtcbiAgTW92ZUNhbGxUcmFuc2FjdGlvbixcbiAgVHJhbnNmZXJPYmplY3RzVHJhbnNhY3Rpb24sXG4gIFNwbGl0Q29pbnNUcmFuc2FjdGlvbixcbiAgTWVyZ2VDb2luc1RyYW5zYWN0aW9uLFxuICBQdWJsaXNoVHJhbnNhY3Rpb24sXG4gIE1ha2VNb3ZlVmVjVHJhbnNhY3Rpb24sXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgVHJhbnNhY3Rpb25UeXBlID0gdW5pb24oWy4uLlRyYW5zYWN0aW9uVHlwZXNdKTtcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uVHlwZSA9IEluZmVyPHR5cGVvZiBUcmFuc2FjdGlvblR5cGU+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25UeXBlKGRhdGE6IHVua25vd24pIHtcbiAgYXNzZXJ0KGRhdGEsIFRyYW5zYWN0aW9uVHlwZSk7XG4gIHJldHVybiBUcmFuc2FjdGlvblR5cGVzLmZpbmQoKHNjaGVtYSkgPT4gaXMoZGF0YSwgc2NoZW1hIGFzIFN0cnVjdCkpITtcbn1cblxuLyoqXG4gKiBTaW1wbGUgaGVscGVycyB1c2VkIHRvIGNvbnN0cnVjdCB0cmFuc2FjdGlvbnM6XG4gKi9cbmV4cG9ydCBjb25zdCBUcmFuc2FjdGlvbnMgPSB7XG4gIE1vdmVDYWxsKFxuICAgIGlucHV0OiBPbWl0PE1vdmVDYWxsVHJhbnNhY3Rpb24sICdraW5kJyB8ICdhcmd1bWVudHMnIHwgJ3R5cGVBcmd1bWVudHMnPiAmIHtcbiAgICAgIGFyZ3VtZW50cz86IFRyYW5zYWN0aW9uQXJndW1lbnRbXTtcbiAgICAgIHR5cGVBcmd1bWVudHM/OiBzdHJpbmdbXTtcbiAgICB9XG4gICk6IE1vdmVDYWxsVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBjcmVhdGUoXG4gICAgICB7XG4gICAgICAgIGtpbmQ6ICdNb3ZlQ2FsbCcsXG4gICAgICAgIHRhcmdldDogaW5wdXQudGFyZ2V0LFxuICAgICAgICBhcmd1bWVudHM6IGlucHV0LmFyZ3VtZW50cyA/PyBbXSxcbiAgICAgICAgdHlwZUFyZ3VtZW50czogaW5wdXQudHlwZUFyZ3VtZW50cyA/PyBbXSxcbiAgICAgIH0sXG4gICAgICBNb3ZlQ2FsbFRyYW5zYWN0aW9uXG4gICAgKTtcbiAgfSxcbiAgVHJhbnNmZXJPYmplY3RzKG9iamVjdHM6IFRyYW5zYWN0aW9uQXJndW1lbnRbXSwgYWRkcmVzczogVHJhbnNhY3Rpb25Bcmd1bWVudCk6IFRyYW5zZmVyT2JqZWN0c1RyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gY3JlYXRlKHsga2luZDogJ1RyYW5zZmVyT2JqZWN0cycsIG9iamVjdHMsIGFkZHJlc3MgfSwgVHJhbnNmZXJPYmplY3RzVHJhbnNhY3Rpb24pO1xuICB9LFxuICBTcGxpdENvaW5zKGNvaW46IFRyYW5zYWN0aW9uQXJndW1lbnQsIGFtb3VudHM6IFRyYW5zYWN0aW9uQXJndW1lbnRbXSk6IFNwbGl0Q29pbnNUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIGNyZWF0ZSh7IGtpbmQ6ICdTcGxpdENvaW5zJywgY29pbiwgYW1vdW50cyB9LCBTcGxpdENvaW5zVHJhbnNhY3Rpb24pO1xuICB9LFxuICBNZXJnZUNvaW5zKGRlc3RpbmF0aW9uOiBUcmFuc2FjdGlvbkFyZ3VtZW50LCBzb3VyY2VzOiBUcmFuc2FjdGlvbkFyZ3VtZW50W10pOiBNZXJnZUNvaW5zVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBjcmVhdGUoeyBraW5kOiAnTWVyZ2VDb2lucycsIGRlc3RpbmF0aW9uLCBzb3VyY2VzIH0sIE1lcmdlQ29pbnNUcmFuc2FjdGlvbik7XG4gIH0sXG4gIFB1Ymxpc2gobW9kdWxlczogbnVtYmVyW11bXSwgZGVwZW5kZW5jaWVzOiBPYmplY3RJZFtdKTogUHVibGlzaFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gY3JlYXRlKHsga2luZDogJ1B1Ymxpc2gnLCBtb2R1bGVzLCBkZXBlbmRlbmNpZXMgfSwgUHVibGlzaFRyYW5zYWN0aW9uKTtcbiAgfSxcbiAgTWFrZU1vdmVWZWMoe1xuICAgIHR5cGUsXG4gICAgb2JqZWN0cyxcbiAgfTogT21pdDxNYWtlTW92ZVZlY1RyYW5zYWN0aW9uLCAna2luZCcgfCAndHlwZSc+ICYge1xuICAgIHR5cGU/OiBzdHJpbmc7XG4gIH0pOiBNYWtlTW92ZVZlY1RyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gY3JlYXRlKFxuICAgICAge1xuICAgICAgICBraW5kOiAnTWFrZU1vdmVWZWMnLFxuICAgICAgICB0eXBlOiB0eXBlID8geyBTb21lOiB0eXBlIH0gOiB7IE5vbmU6IG51bGwgfSxcbiAgICAgICAgb2JqZWN0cyxcbiAgICAgIH0sXG4gICAgICBNYWtlTW92ZVZlY1RyYW5zYWN0aW9uXG4gICAgKTtcbiAgfSxcbn07XG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { BCS, TypeName } from '@mysten/bcs';
2
+ export declare const ARGUMENT_INNER = "Argument";
3
+ export declare const VECTOR = "vector";
4
+ export declare const OPTION = "Option";
5
+ export declare const CALL_ARG = "CallArg";
6
+ export declare const TYPE_TAG = "TypeTag";
7
+ export declare const OBJECT_ARG = "ObjectArg";
8
+ export declare const PROGRAMMABLE_TX_BLOCK = "ProgrammableTransaction";
9
+ export declare const PROGRAMMABLE_CALL_INNER = "ProgrammableMoveCall";
10
+ export declare const TRANSACTION_INNER = "Transaction";
11
+ export declare const ENUM_KIND = "EnumKind";
12
+ /** Wrapper around transaction Enum to support `kind` matching in TS */
13
+ export declare const TRANSACTION: TypeName;
14
+ /** Wrapper around Argument Enum to support `kind` matching in TS */
15
+ export declare const ARGUMENT: TypeName;
16
+ /** Custom serializer for decoding package, module, function easier */
17
+ export declare const PROGRAMMABLE_CALL = "SimpleProgrammableMoveCall";
18
+ /** Transaction types */
19
+ export declare type Option<T> = {
20
+ some: T;
21
+ } | {
22
+ none: true;
23
+ };
24
+ export declare const builder: BCS;
25
+ //# sourceMappingURL=bcs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcs.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/builder/bcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM5C,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,QAAQ,YAAY,CAAC;AAClC,eAAO,MAAM,QAAQ,YAAY,CAAC;AAClC,eAAO,MAAM,UAAU,cAAc,CAAC;AACtC,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAC/D,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAC9D,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,QAAyC,CAAC;AACpE,oEAAoE;AACpE,eAAO,MAAM,QAAQ,EAAE,QAAsC,CAAC;AAE9D,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAE9D,wBAAwB;AAExB,oBAAY,MAAM,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAErD,eAAO,MAAM,OAAO,KAwDhB,CAAC"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.builder = exports.PROGRAMMABLE_CALL = exports.ARGUMENT = exports.TRANSACTION = exports.ENUM_KIND = exports.TRANSACTION_INNER = exports.PROGRAMMABLE_CALL_INNER = exports.PROGRAMMABLE_TX_BLOCK = exports.OBJECT_ARG = exports.TYPE_TAG = exports.CALL_ARG = exports.OPTION = exports.VECTOR = exports.ARGUMENT_INNER = void 0;
4
+ const bcs_1 = require("@mysten/bcs");
5
+ const sui_bcs_1 = require("../types/sui-bcs");
6
+ const common_1 = require("../types/common");
7
+ const type_tag_serializer_1 = require("../txn-data-serializers/type-tag-serializer");
8
+ exports.ARGUMENT_INNER = 'Argument';
9
+ exports.VECTOR = 'vector';
10
+ exports.OPTION = 'Option';
11
+ exports.CALL_ARG = 'CallArg';
12
+ exports.TYPE_TAG = 'TypeTag';
13
+ exports.OBJECT_ARG = 'ObjectArg';
14
+ exports.PROGRAMMABLE_TX_BLOCK = 'ProgrammableTransaction';
15
+ exports.PROGRAMMABLE_CALL_INNER = 'ProgrammableMoveCall';
16
+ exports.TRANSACTION_INNER = 'Transaction';
17
+ exports.ENUM_KIND = 'EnumKind';
18
+ /** Wrapper around transaction Enum to support `kind` matching in TS */
19
+ exports.TRANSACTION = [exports.ENUM_KIND, exports.TRANSACTION_INNER];
20
+ /** Wrapper around Argument Enum to support `kind` matching in TS */
21
+ exports.ARGUMENT = [exports.ENUM_KIND, exports.ARGUMENT_INNER];
22
+ /** Custom serializer for decoding package, module, function easier */
23
+ exports.PROGRAMMABLE_CALL = 'SimpleProgrammableMoveCall';
24
+ exports.builder = new bcs_1.BCS(sui_bcs_1.bcs)
25
+ .registerStructType(exports.PROGRAMMABLE_TX_BLOCK, {
26
+ inputs: [exports.VECTOR, exports.CALL_ARG],
27
+ transactions: [exports.VECTOR, exports.TRANSACTION],
28
+ })
29
+ .registerEnumType(exports.ARGUMENT_INNER, {
30
+ GasCoin: null,
31
+ Input: { index: bcs_1.BCS.U16 },
32
+ Result: { index: bcs_1.BCS.U16 },
33
+ NestedResult: { index: bcs_1.BCS.U16, resultIndex: bcs_1.BCS.U16 },
34
+ })
35
+ .registerStructType(exports.PROGRAMMABLE_CALL_INNER, {
36
+ package: bcs_1.BCS.ADDRESS,
37
+ module: bcs_1.BCS.STRING,
38
+ function: bcs_1.BCS.STRING,
39
+ type_arguments: [exports.VECTOR, exports.TYPE_TAG],
40
+ arguments: [exports.VECTOR, exports.ARGUMENT],
41
+ })
42
+ .registerEnumType(exports.TRANSACTION_INNER, {
43
+ /**
44
+ * A Move Call - any public Move function can be called via
45
+ * this transaction. The results can be used that instant to pass
46
+ * into the next transaction.
47
+ */
48
+ MoveCall: exports.PROGRAMMABLE_CALL,
49
+ /**
50
+ * Transfer vector of objects to a receiver.
51
+ */
52
+ TransferObjects: {
53
+ objects: [exports.VECTOR, exports.ARGUMENT],
54
+ address: exports.ARGUMENT,
55
+ },
56
+ /**
57
+ * Split `amount` from a `coin`.
58
+ */
59
+ SplitCoins: { coin: exports.ARGUMENT, amounts: [exports.VECTOR, exports.ARGUMENT] },
60
+ /**
61
+ * Merge Vector of Coins (`sources`) into a `destination`.
62
+ */
63
+ MergeCoins: { destination: exports.ARGUMENT, sources: [exports.VECTOR, exports.ARGUMENT] },
64
+ /**
65
+ * Publish a Move module.
66
+ */
67
+ Publish: {
68
+ modules: [exports.VECTOR, [exports.VECTOR, bcs_1.BCS.U8]],
69
+ dependencies: [exports.VECTOR, bcs_1.BCS.ADDRESS],
70
+ },
71
+ /**
72
+ * Build a vector of objects using the input arguments.
73
+ * It is impossible to construct a `vector<T: key>` otherwise,
74
+ * so this call serves a utility function.
75
+ */
76
+ MakeMoveVec: {
77
+ type: [exports.OPTION, exports.TYPE_TAG],
78
+ objects: [exports.VECTOR, exports.ARGUMENT],
79
+ },
80
+ });
81
+ /**
82
+ * Wrapper around Enum, which transforms any `T` into an object with `kind` property:
83
+ * @example
84
+ * ```
85
+ * let bcsEnum = { TransferObjects: { objects: [], address: ... } }
86
+ * // becomes
87
+ * let translatedEnum = { kind: 'TransferObjects', objects: [], address: ... };
88
+ * ```
89
+ */
90
+ exports.builder.registerType([exports.ENUM_KIND, 'T'], function encode(writer, data, typeParams, typeMap) {
91
+ const kind = data.kind;
92
+ const invariant = { [kind]: data };
93
+ const [enumType] = typeParams;
94
+ return this.getTypeInterface(enumType)._encodeRaw.call(this, writer, invariant, typeParams, typeMap);
95
+ }, function decode(reader, typeParams, typeMap) {
96
+ const [enumType] = typeParams;
97
+ const data = this.getTypeInterface(enumType)._decodeRaw.call(this, reader, typeParams, typeMap);
98
+ // enum invariant can only have one `key` field
99
+ const kind = Object.keys(data)[0];
100
+ return { kind, ...data[kind] };
101
+ }, (data) => {
102
+ if (typeof data !== 'object' && !('kind' in data)) {
103
+ throw new Error(`EnumKind: Missing property "kind" in the input ${JSON.stringify(data)}`);
104
+ }
105
+ return true;
106
+ });
107
+ /**
108
+ * Custom deserializer for the ProgrammableCall.
109
+ *
110
+ * Hides the inner structure and gives a simpler, more convenient
111
+ * interface to encode and decode this struct as a part of `TransactionData`.
112
+ *
113
+ * - `(package)::(module)::(function)` are now `target` property.
114
+ * - `TypeTag[]` array is now passed as strings, not as a struct.
115
+ */
116
+ exports.builder.registerType(exports.PROGRAMMABLE_CALL, function encodeProgrammableTx(writer, data, typeParams, typeMap) {
117
+ const [pkg, module, fun] = data.target.split('::');
118
+ const type_arguments = data.typeArguments.map((tag) => type_tag_serializer_1.TypeTagSerializer.parseFromStr(tag, true));
119
+ return this.getTypeInterface(exports.PROGRAMMABLE_CALL_INNER)._encodeRaw.call(this, writer, {
120
+ package: common_1.normalizeSuiAddress(pkg),
121
+ module,
122
+ function: fun,
123
+ type_arguments,
124
+ arguments: data.arguments,
125
+ }, typeParams, typeMap);
126
+ }, function decodeProgrammableTx(reader, typeParams, typeMap) {
127
+ let data = exports.builder
128
+ .getTypeInterface(exports.PROGRAMMABLE_CALL_INNER)
129
+ ._decodeRaw.call(this, reader, typeParams, typeMap);
130
+ return {
131
+ target: [data.package, data.module, data.function].join('::'),
132
+ arguments: data.arguments,
133
+ typeArguments: data.type_arguments.map(type_tag_serializer_1.TypeTagSerializer.tagToString),
134
+ };
135
+ },
136
+ // Validation callback to error out if the data format is invalid.
137
+ // TODO: make sure TypeTag can be parsed.
138
+ (data) => {
139
+ return data.target.split('::').length === 3;
140
+ });
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvYnVpbGRlci9iY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQTRDO0FBQzVDLDhDQUFnRDtBQUNoRCw0Q0FBc0Q7QUFDdEQscUZBQWdGO0FBR25FLFFBQUEsY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUM1QixRQUFBLE1BQU0sR0FBRyxRQUFRLENBQUM7QUFDbEIsUUFBQSxNQUFNLEdBQUcsUUFBUSxDQUFDO0FBQ2xCLFFBQUEsUUFBUSxHQUFHLFNBQVMsQ0FBQztBQUNyQixRQUFBLFFBQVEsR0FBRyxTQUFTLENBQUM7QUFDckIsUUFBQSxVQUFVLEdBQUcsV0FBVyxDQUFDO0FBQ3pCLFFBQUEscUJBQXFCLEdBQUcseUJBQXlCLENBQUM7QUFDbEQsUUFBQSx1QkFBdUIsR0FBRyxzQkFBc0IsQ0FBQztBQUNqRCxRQUFBLGlCQUFpQixHQUFHLGFBQWEsQ0FBQztBQUVsQyxRQUFBLFNBQVMsR0FBRyxVQUFVLENBQUM7QUFFcEMsdUVBQXVFO0FBQzFELFFBQUEsV0FBVyxHQUFhLENBQUMsaUJBQVMsRUFBRSx5QkFBaUIsQ0FBQyxDQUFDO0FBQ3BFLG9FQUFvRTtBQUN2RCxRQUFBLFFBQVEsR0FBYSxDQUFDLGlCQUFTLEVBQUUsc0JBQWMsQ0FBQyxDQUFDO0FBRTlELHNFQUFzRTtBQUN6RCxRQUFBLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDO0FBTWpELFFBQUEsT0FBTyxHQUFHLElBQUksU0FBRyxDQUFDLGFBQUcsQ0FBQztLQUNoQyxrQkFBa0IsQ0FBQyw2QkFBcUIsRUFBRTtJQUN6QyxNQUFNLEVBQUUsQ0FBQyxjQUFNLEVBQUUsZ0JBQVEsQ0FBQztJQUMxQixZQUFZLEVBQUUsQ0FBQyxjQUFNLEVBQUUsbUJBQVcsQ0FBQztDQUNwQyxDQUFDO0tBQ0QsZ0JBQWdCLENBQUMsc0JBQWMsRUFBRTtJQUNoQyxPQUFPLEVBQUUs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QUFnQixDQUFDLCtCQUF1QixDQUFDO1NBQ3pDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFdEQsT0FBTztRQUNMLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM3RCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7UUFDekIsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLHVDQUFpQixDQUFDLFdBQVcsQ0FBQztLQUN0RSxDQUFDO0FBQ0osQ0FBQztBQUNELGtFQUFrRTtBQUNsRSx5Q0FBeUM7QUFDekMsQ0FBQyxJQUF5QixFQUFFLEVBQUU7SUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkNTLCBUeXBlTmFtZSB9IGZyb20gJ0BteXN0ZW4vYmNzJztcbmltcG9ydCB7IGJjcywgVHlwZVRhZyB9IGZyb20gJy4uL3R5cGVzL3N1aS1iY3MnO1xuaW1wb3J0IHsgbm9ybWFsaXplU3VpQWRkcmVzcyB9IGZyb20gJy4uL3R5cGVzL2NvbW1vbic7XG5pbXBvcnQgeyBUeXBlVGFnU2VyaWFsaXplciB9IGZyb20gJy4uL3R4bi1kYXRhLXNlcmlhbGl6ZXJzL3R5cGUtdGFnLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Bcmd1bWVudCwgTW92ZUNhbGxUcmFuc2FjdGlvbiB9IGZyb20gJy4vVHJhbnNhY3Rpb25zJztcblxuZXhwb3J0IGNvbnN0IEFSR1VNRU5UX0lOTkVSID0gJ0FyZ3VtZW50JztcbmV4cG9ydCBjb25zdCBWRUNUT1IgPSAndmVjdG9yJztcbmV4cG9ydCBjb25zdCBPUFRJT04gPSAnT3B0aW9uJztcbmV4cG9ydCBjb25zdCBDQUxMX0FSRyA9ICdDYWxsQXJnJztcbmV4cG9ydCBjb25zdCBUWVBFX1RBRyA9ICdUeXBlVGFnJztcbmV4cG9ydCBjb25zdCBPQkpFQ1RfQVJHID0gJ09iamVjdEFyZyc7XG5leHBvcnQgY29uc3QgUFJPR1JBTU1BQkxFX1RYX0JMT0NLID0gJ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uJztcbmV4cG9ydCBjb25zdCBQUk9HUkFNTUFCTEVfQ0FMTF9JTk5FUiA9ICdQcm9ncmFtbWFibGVNb3ZlQ2FsbCc7XG5leHBvcnQgY29uc3QgVFJBTlNBQ1RJT05fSU5ORVIgPSAnVHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgRU5VTV9LSU5EID0gJ0VudW1LaW5kJztcblxuLyoqIFdyYXBwZXIgYXJvdW5kIHRyYW5zYWN0aW9uIEVudW0gdG8gc3VwcG9ydCBga2luZGAgbWF0Y2hpbmcgaW4gVFMgKi9cbmV4cG9ydCBjb25zdCBUUkFOU0FDVElPTjogVHlwZU5hbWUgPSBbRU5VTV9LSU5ELCBUUkFOU0FDVElPTl9JTk5FUl07XG4vKiogV3JhcHBlciBhcm91bmQgQXJndW1lbnQgRW51bSB0byBzdXBwb3J0IGBraW5kYCBtYXRjaGluZyBpbiBUUyAqL1xuZXhwb3J0IGNvbnN0IEFSR1VNRU5UOiBUeXBlTmFtZSA9IFtFTlVNX0tJTkQsIEFSR1VNRU5UX0lOTkVSXTtcblxuLyoqIEN1c3RvbSBzZXJpYWxpemVyIGZvciBkZWNvZGluZyBwYWNrYWdlLCBtb2R1bGUsIGZ1bmN0aW9uIGVhc2llciAqL1xuZXhwb3J0IGNvbnN0IFBST0dSQU1NQUJMRV9DQUxMID0gJ1NpbXBsZVByb2dyYW1tYWJsZU1vdmVDYWxsJztcblxuLyoqIFRyYW5zYWN0aW9uIHR5cGVzICovXG5cbmV4cG9ydCB0eXBlIE9wdGlvbjxUPiA9IHsgc29tZTogVCB9IHwgeyBub25lOiB0cnVlIH07XG5cbmV4cG9ydCBjb25zdCBidWlsZGVyID0gbmV3IEJDUyhiY3MpXG4gIC5yZWdpc3RlclN0cnVjdFR5cGUoUFJPR1JBTU1BQkxFX1RYX0JMT0NLLCB7XG4gICAgaW5wdXRzOiBbVkVDVE9SLCBDQUxMX0FSR10sXG4gICAgdHJhbnNhY3Rpb25zOiBbVkVDVE9SLCBUUkFOU0FDVElPTl0sXG4gIH0pXG4gIC5yZWdpc3RlckVudW1UeXBlKEFSR1VNRU5UX0lOTkVSLCB7XG4gICAgR2FzQ29pbjogbnVsbCxcbiAgICBJbnB1dDogeyBpbmRleDogQkNTLlUxNiB9LFxuICAgIFJlc3VsdDogeyBpbmRleDogQkNTLlUxNiB9LFxuICAgIE5lc3RlZFJlc3VsdDogeyBpbmRleDogQkNTLlUxNiwgcmVzdWx0SW5kZXg6IEJDUy5VMTYgfSxcbiAgfSlcbiAgLnJlZ2lzdGVyU3RydWN0VHlwZShQUk9HUkFNTUFCTEVfQ0FMTF9JTk5FUiwge1xuICAgIHBhY2thZ2U6IEJDUy5BRERSRVNTLFxuICAgIG1vZHVsZTogQkNTLlNUUklORyxcbiAgICBmdW5jdGlvbjogQkNTLlNUUklORyxcbiAgICB0eXBlX2FyZ3VtZW50czogW1ZFQ1RPUiwgVFlQRV9UQUddLFxuICAgIGFyZ3VtZW50czogW1ZFQ1RPUiwgQVJHVU1FTlRdLFxuICB9KVxuICAucmVnaXN0ZXJFbnVtVHlwZShUUkFOU0FDVElPTl9JTk5FUiwge1xuICAgIC8qKlxuICAgICAqIEEgTW92ZSBDYWxsIC0gYW55IHB1YmxpYyBNb3ZlIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgdmlhXG4gICAgICogdGhpcyB0cmFuc2FjdGlvbi4gVGhlIHJlc3VsdHMgY2FuIGJlIHVzZWQgdGhhdCBpbnN0YW50IHRvIHBhc3NcbiAgICAgKiBpbnRvIHRoZSBuZXh0IHRyYW5zYWN0aW9uLlxuICAgICAqL1xuICAgIE1vdmVDYWxsOiBQUk9HUkFNTUFCTEVfQ0FMTCxcbiAgICAvKipcbiAgICAgKiBUcmFuc2ZlciB2ZWN0b3Igb2Ygb2JqZWN0cyB0byBhIHJlY2VpdmVyLlxuICAgICAqL1xuICAgIFRyYW5zZmVyT2JqZWN0czoge1xuICAgICAgb2JqZWN0czogW1ZFQ1RPUiwgQVJHVU1FTlRdLFxuICAgICAgYWRkcmVzczogQVJHVU1FTlQsXG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBTcGxpdCBgYW1vdW50YCBmcm9tIGEgYGNvaW5gLlxuICAgICAqL1xuICAgIFNwbGl0Q29pbnM6IHsgY29pbjogQVJHVU1FTlQsIGFtb3VudHM6IFtWRUNUT1IsIEFSR1VNRU5UXSB9LFxuICAgIC8qKlxuICAgICAqIE1lcmdlIFZlY3RvciBvZiBDb2lucyAoYHNvdXJjZXNgKSBpbnRvIGEgYGRlc3RpbmF0aW9uYC5cbiAgICAgKi9cbiAgICBNZXJnZUNvaW5zOiB7IGRlc3RpbmF0aW9uOiBBUkdVTUVOVCwgc291cmNlczogW1ZFQ1RPUiwgQVJHVU1FTlRdIH0sXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBhIE1vdmUgbW9kdWxlLlxuICAgICAqL1xuICAgIFB1Ymxpc2g6IHtcbiAgICAgIG1vZHVsZXM6IFtWRUNUT1IsIFtWRUNUT1IsIEJDUy5VOF1dLFxuICAgICAgZGVwZW5kZW5jaWVzOiBbVkVDVE9SLCBCQ1MuQUREUkVTU10sXG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBCdWlsZCBhIHZlY3RvciBvZiBvYmplY3RzIHVzaW5nIHRoZSBpbnB1dCBhcmd1bWVudHMuXG4gICAgICogSXQgaXMgaW1wb3NzaWJsZSB0byBjb25zdHJ1Y3QgYSBgdmVjdG9yPFQ6IGtleT5gIG90aGVyd2lzZSxcbiAgICAgKiBzbyB0aGlzIGNhbGwgc2VydmVzIGEgdXRpbGl0eSBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBNYWtlTW92ZVZlYzoge1xuICAgICAgdHlwZTogW09QVElPTiwgVFlQRV9UQUddLFxuICAgICAgb2JqZWN0czogW1ZFQ1RPUiwgQVJHVU1FTlRdLFxuICAgIH0sXG4gIH0pO1xuXG4vKipcbiAqIFV0aWxpdGllcyBmb3IgYmV0dGVyIGRlY29kaW5nLlxuICovXG5cbnR5cGUgUHJvZ3JhbW1hYmxlQ2FsbElubmVyID0ge1xuICBwYWNrYWdlOiBzdHJpbmc7XG4gIG1vZHVsZTogc3RyaW5nO1xuICBmdW5jdGlvbjogc3RyaW5nO1xuICB0eXBlX2FyZ3VtZW50czogVHlwZVRhZ1tdO1xuICBhcmd1bWVudHM6IFRyYW5zYWN0aW9uQXJndW1lbnRbXTtcbn07XG5cbi8qKlxuICogV3JhcHBlciBhcm91bmQgRW51bSwgd2hpY2ggdHJhbnNmb3JtcyBhbnkgYFRgIGludG8gYW4gb2JqZWN0IHdpdGggYGtpbmRgIHByb3BlcnR5OlxuICogQGV4YW1wbGVcbiAqIGBgYFxuICogbGV0IGJjc0VudW0gPSB7IFRyYW5zZmVyT2JqZWN0czogeyBvYmplY3RzOiBbXSwgYWRkcmVzczogLi4uIH0gfVxuICogLy8gYmVjb21lc1xuICogbGV0IHRyYW5zbGF0ZWRFbnVtID0geyBraW5kOiAnVHJhbnNmZXJPYmplY3RzJywgb2JqZWN0czogW10sIGFkZHJlc3M6IC4uLiB9O1xuICogYGBgXG4gKi9cbmJ1aWxkZXIucmVnaXN0ZXJUeXBlKFxuICBbRU5VTV9LSU5ELCAnVCddLFxuICBmdW5jdGlvbiBlbmNvZGUodGhpczogQkNTLCB3cml0ZXIsIGRhdGE6IHsga2luZDogc3RyaW5nIH0sIHR5cGVQYXJhbXMsIHR5cGVNYXApIHtcbiAgICBjb25zdCBraW5kID0gZGF0YS5raW5kO1xuICAgIGNvbnN0IGludmFyaWFudCA9IHsgW2tpbmRdOiBkYXRhIH07XG4gICAgY29uc3QgW2VudW1UeXBlXSA9IHR5cGVQYXJhbXM7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRUeXBlSW50ZXJmYWNlKGVudW1UeXBlIGFzIHN0cmluZykuX2VuY29kZVJhdy5jYWxsKHRoaXMsIHdyaXRlciwgaW52YXJpYW50LCB0eXBlUGFyYW1zLCB0eXBlTWFwKTtcbiAgfSxcbiAgZnVuY3Rpb24gZGVjb2RlKHRoaXM6IEJDUywgcmVhZGVyLCB0eXBlUGFyYW1zLCB0eXBlTWFwKSB7XG4gICAgY29uc3QgW2VudW1UeXBlXSA9IHR5cGVQYXJhbXM7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0VHlwZUludGVyZmFjZShlbnVtVHlwZSBhcyBzdHJpbmcpLl9kZWNvZGVSYXcuY2FsbCh0aGlzLCByZWFkZXIsIHR5cGVQYXJhbXMsIHR5cGVNYXApO1xuXG4gICAgLy8gZW51bSBpbnZhcmlhbnQgY2FuIG9ubHkgaGF2ZSBvbmUgYGtleWAgZmllbGRcbiAgICBjb25zdCBraW5kID0gT2JqZWN0LmtleXMoZGF0YSlbMF07XG4gICAgcmV0dXJuIHsga2luZCwgLi4uZGF0YVtraW5kXSB9O1xuICB9LFxuICAoZGF0YTogeyBraW5kOiBzdHJpbmcgfSkgPT4ge1xuICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcgJiYgISgna2luZCcgaW4gZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRW51bUtpbmQ6IE1pc3NpbmcgcHJvcGVydHkgXCJraW5kXCIgaW4gdGhlIGlucHV0ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbik7XG5cbi8qKlxuICogQ3VzdG9tIGRlc2VyaWFsaXplciBmb3IgdGhlIFByb2dyYW1tYWJsZUNhbGwuXG4gKlxuICogSGlkZXMgdGhlIGlubmVyIHN0cnVjdHVyZSBhbmQgZ2l2ZXMgYSBzaW1wbGVyLCBtb3JlIGNvbnZlbmllbnRcbiAqIGludGVyZmFjZSB0byBlbmNvZGUgYW5kIGRlY29kZSB0aGlzIHN0cnVjdCBhcyBhIHBhcnQgb2YgYFRyYW5zYWN0aW9uRGF0YWAuXG4gKlxuICogLSBgKHBhY2thZ2UpOjoobW9kdWxlKTo6KGZ1bmN0aW9uKWAgYXJlIG5vdyBgdGFyZ2V0YCBwcm9wZXJ0eS5cbiAqIC0gYFR5cGVUYWdbXWAgYXJyYXkgaXMgbm93IHBhc3NlZCBhcyBzdHJpbmdzLCBub3QgYXMgYSBzdHJ1Y3QuXG4gKi9cbmJ1aWxkZXIucmVnaXN0ZXJUeXBlKFxuICBQUk9HUkFNTUFCTEVfQ0FMTCxcbiAgZnVuY3Rpb24gZW5jb2RlUHJvZ3JhbW1hYmxlVHgodGhpczogQkNTLCB3cml0ZXIsIGRhdGE6IE1vdmVDYWxsVHJhbnNhY3Rpb24sIHR5cGVQYXJhbXMsIHR5cGVNYXApIHtcbiAgICBjb25zdCBbcGtnLCBtb2R1bGUsIGZ1bl0gPSBkYXRhLnRhcmdldC5zcGxpdCgnOjonKTtcbiAgICBjb25zdCB0eXBlX2FyZ3VtZW50cyA9IGRhdGEudHlwZUFyZ3VtZW50cy5tYXAoKHRhZykgPT4gVHlwZVRhZ1NlcmlhbGl6ZXIucGFyc2VGcm9tU3RyKHRhZywgdHJ1ZSkpO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0VHlwZUludGVyZmFjZShQUk9HUkFNTUFCTEVfQ0FMTF9JTk5FUikuX2VuY29kZVJhdy5jYWxsKFxuICAgICAgdGhpcyxcbiAgICAgIHdyaXRlcixcbiAgICAgIHtcbiAgICAgICAgcGFja2FnZTogbm9ybWFsaXplU3VpQWRkcmVzcyhwa2cpLFxuICAgICAgICBtb2R1bGUsXG4gICAgICAgIGZ1bmN0aW9uOiBmdW4sXG4gICAgICAgIHR5cGVfYXJndW1lbnRzLFxuICAgICAgICBhcmd1bWVudHM6IGRhdGEuYXJndW1lbnRzLFxuICAgICAgfSBhcyBQcm9ncmFtbWFibGVDYWxsSW5uZXIsXG4gICAgICB0eXBlUGFyYW1zLFxuICAgICAgdHlwZU1hcFxuICAgICk7XG4gIH0sXG4gIGZ1bmN0aW9uIGRlY29kZVByb2dyYW1tYWJsZVR4KHRoaXM6IEJDUywgcmVhZGVyLCB0eXBlUGFyYW1zLCB0eXBlTWFwKSB7XG4gICAgbGV0IGRhdGE6IFByb2dyYW1tYWJsZUNhbGxJbm5lciA9IGJ1aWxkZXJcbiAgICAgIC5nZXRUeXBlSW50ZXJmYWNlKFBST0dSQU1NQUJMRV9DQUxMX0lOTkVSKVxuICAgICAgLl9kZWNvZGVSYXcuY2FsbCh0aGlzLCByZWFkZXIsIHR5cGVQYXJhbXMsIHR5cGVNYXApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRhcmdldDogW2RhdGEucGFja2FnZSwgZGF0YS5tb2R1bGUsIGRhdGEuZnVuY3Rpb25dLmpvaW4oJzo6JyksXG4gICAgICBhcmd1bWVudHM6IGRhdGEuYXJndW1lbnRzLFxuICAgICAgdHlwZUFyZ3VtZW50czogZGF0YS50eXBlX2FyZ3VtZW50cy5tYXAoVHlwZVRhZ1NlcmlhbGl6ZXIudGFnVG9TdHJpbmcpLFxuICAgIH07XG4gIH0sXG4gIC8vIFZhbGlkYXRpb24gY2FsbGJhY2sgdG8gZXJyb3Igb3V0IGlmIHRoZSBkYXRhIGZvcm1hdCBpcyBpbnZhbGlkLlxuICAvLyBUT0RPOiBtYWtlIHN1cmUgVHlwZVRhZyBjYW4gYmUgcGFyc2VkLlxuICAoZGF0YTogTW92ZUNhbGxUcmFuc2FjdGlvbikgPT4ge1xuICAgIHJldHVybiBkYXRhLnRhcmdldC5zcGxpdCgnOjonKS5sZW5ndGggPT09IDM7XG4gIH1cbik7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export * from './TransactionBlock';
2
+ export * from './Transactions';
3
+ export * from './Inputs';
4
+ export * from './bcs';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/builder/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./TransactionBlock"), exports);
14
+ __exportStar(require("./Transactions"), exports);
15
+ __exportStar(require("./Inputs"), exports);
16
+ __exportStar(require("./bcs"), exports);
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL215c3RlbmxhYi9idWlsZGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtQztBQUNuQyxpREFBK0I7QUFDL0IsMkNBQXlCO0FBQ3pCLHdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vVHJhbnNhY3Rpb25CbG9jayc7XG5leHBvcnQgKiBmcm9tICcuL1RyYW5zYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL0lucHV0cyc7XG5leHBvcnQgKiBmcm9tICcuL2Jjcyc7XG4iXX0=
@@ -0,0 +1,4 @@
1
+ import { SuiJsonValue, SuiMoveNormalizedType } from '../types';
2
+ export declare function isTxContext(param: SuiMoveNormalizedType): boolean;
3
+ export declare function getPureSerializationType(normalizedType: SuiMoveNormalizedType, argVal: SuiJsonValue | undefined): string | undefined;
4
+ //# sourceMappingURL=serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/builder/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,YAAY,EACZ,qBAAqB,EAEtB,MAAM,UAAU,CAAC;AAmClB,wBAAgB,WAAW,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAGjE;AAaD,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,qBAAqB,EACrC,MAAM,EAAE,YAAY,GAAG,SAAS,GAC/B,MAAM,GAAG,SAAS,CAuDpB"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPureSerializationType = exports.isTxContext = void 0;
4
+ const types_1 = require("../types");
5
+ const STD_ASCII_MODULE_NAME = 'ascii';
6
+ const STD_ASCII_STRUCT_NAME = 'String';
7
+ const STD_UTF8_MODULE_NAME = 'string';
8
+ const STD_UTF8_STRUCT_NAME = 'String';
9
+ const STD_OPTION_MODULE_NAME = 'option';
10
+ const STD_OPTION_STRUCT_NAME = 'Option';
11
+ const RESOLVED_SUI_ID = {
12
+ address: types_1.SUI_FRAMEWORK_ADDRESS,
13
+ module: types_1.OBJECT_MODULE_NAME,
14
+ name: types_1.ID_STRUCT_NAME,
15
+ };
16
+ const RESOLVED_ASCII_STR = {
17
+ address: types_1.MOVE_STDLIB_ADDRESS,
18
+ module: STD_ASCII_MODULE_NAME,
19
+ name: STD_ASCII_STRUCT_NAME,
20
+ };
21
+ const RESOLVED_UTF8_STR = {
22
+ address: types_1.MOVE_STDLIB_ADDRESS,
23
+ module: STD_UTF8_MODULE_NAME,
24
+ name: STD_UTF8_STRUCT_NAME,
25
+ };
26
+ const RESOLVED_STD_OPTION = {
27
+ address: types_1.MOVE_STDLIB_ADDRESS,
28
+ module: STD_OPTION_MODULE_NAME,
29
+ name: STD_OPTION_STRUCT_NAME,
30
+ };
31
+ const isSameStruct = (a, b) => a.address === b.address && a.module === b.module && a.name === b.name;
32
+ function isTxContext(param) {
33
+ var _a;
34
+ const struct = (_a = types_1.extractStructTag(param)) === null || _a === void 0 ? void 0 : _a.Struct;
35
+ return (struct === null || struct === void 0 ? void 0 : struct.address) === '0x2' && (struct === null || struct === void 0 ? void 0 : struct.module) === 'tx_context' && (struct === null || struct === void 0 ? void 0 : struct.name) === 'TxContext';
36
+ }
37
+ exports.isTxContext = isTxContext;
38
+ function expectType(typeName, argVal) {
39
+ if (typeof argVal === 'undefined') {
40
+ return;
41
+ }
42
+ if (typeof argVal !== typeName) {
43
+ throw new Error(`Expect ${argVal} to be ${typeName}, received ${typeof argVal}`);
44
+ }
45
+ }
46
+ const allowedTypes = ['Address', 'Bool', 'U8', 'U16', 'U32', 'U64', 'U128', 'U256'];
47
+ function getPureSerializationType(normalizedType, argVal) {
48
+ if (typeof normalizedType === 'string' && allowedTypes.includes(normalizedType)) {
49
+ if (normalizedType in ['U8', 'U16', 'U32', 'U64', 'U128', 'U256']) {
50
+ expectType('number', argVal);
51
+ }
52
+ else if (normalizedType === 'Bool') {
53
+ expectType('boolean', argVal);
54
+ }
55
+ else if (normalizedType === 'Address') {
56
+ expectType('string', argVal);
57
+ if (argVal && !types_1.isValidSuiAddress(argVal)) {
58
+ throw new Error('Invalid Sui Address');
59
+ }
60
+ }
61
+ return normalizedType.toLowerCase();
62
+ }
63
+ else if (typeof normalizedType === 'string') {
64
+ throw new Error(`Unknown pure normalized type ${JSON.stringify(normalizedType, null, 2)}`);
65
+ }
66
+ if ('Vector' in normalizedType) {
67
+ if ((argVal === undefined || typeof argVal === 'string') && normalizedType.Vector === 'U8') {
68
+ return 'string';
69
+ }
70
+ if (argVal !== undefined && !Array.isArray(argVal)) {
71
+ throw new Error(`Expect ${argVal} to be a array, received ${typeof argVal}`);
72
+ }
73
+ const innerType = getPureSerializationType(normalizedType.Vector,
74
+ // undefined when argVal is empty
75
+ argVal ? argVal[0] : undefined);
76
+ if (innerType === undefined) {
77
+ return;
78
+ }
79
+ return `vector<${innerType}>`;
80
+ }
81
+ if ('Struct' in normalizedType) {
82
+ if (isSameStruct(normalizedType.Struct, RESOLVED_ASCII_STR)) {
83
+ return 'string';
84
+ }
85
+ else if (isSameStruct(normalizedType.Struct, RESOLVED_UTF8_STR)) {
86
+ return 'utf8string';
87
+ }
88
+ else if (isSameStruct(normalizedType.Struct, RESOLVED_SUI_ID)) {
89
+ return 'address';
90
+ }
91
+ else if (isSameStruct(normalizedType.Struct, RESOLVED_STD_OPTION)) {
92
+ const optionToVec = {
93
+ Vector: normalizedType.Struct.typeArguments[0],
94
+ };
95
+ return getPureSerializationType(optionToVec, argVal);
96
+ }
97
+ }
98
+ return undefined;
99
+ }
100
+ exports.getPureSerializationType = getPureSerializationType;
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL2J1aWxkZXIvc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvQ0FTa0I7QUFFbEIsTUFBTSxxQkFBcUIsR0FBRyxPQUFPLENBQUM7QUFDdEMsTUFBTSxxQkFBcUIsR0FBRyxRQUFRLENBQUM7QUFFdkMsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQUM7QUFDdEMsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQUM7QUFFdEMsTUFBTSxzQkFBc0IsR0FBRyxRQUFRLENBQUM7QUFDeEMsTUFBTSxzQkFBc0IsR0FBRyxRQUFRLENBQUM7QUFFeEMsTUFBTSxlQUFlLEdBQUc7SUFDdEIsT0FBTyxFQUFFLDZCQUFxQjtJQUM5QixNQUFNLEVBQUUsMEJBQWtCO0lBQzFCLElBQUksRUFBRSxzQkFBYztDQUNyQixDQUFDO0FBQ0YsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixPQUFPLEVBQUUsMkJBQW1CO0lBQzVCLE1BQU0sRUFBRSxxQkFBcUI7SUFDN0IsSUFBSSxFQUFFLHFCQUFxQjtDQUM1QixDQUFDO0FBQ0YsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixPQUFPLEVBQUUsMkJBQW1CO0lBQzVCLE1BQU0sRUFBRSxvQkFBb0I7SUFDNUIsSUFBSSxFQUFFLG9CQUFvQjtDQUMzQixDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixPQUFPLEVBQUUsMkJBQW1CO0lBQzVCLE1BQU0sRUFBRSxzQkFBc0I7SUFDOUIsSUFBSSxFQUFFLHNCQUFzQjtDQUM3QixDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENB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SyxTQUFTLEVBQUU7WUFDM0IsT0FBTztTQUNSO1FBRUQsT0FBTyxVQUFVLFNBQVMsR0FBRyxDQUFDO0tBQy9CO0lBRUQsSUFBSSxRQUFRLElBQUksY0FBYyxFQUFFO1FBQzlCLElBQUksWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsRUFBRTtZQUMzRCxPQUFPLFFBQVEsQ0FBQztTQUNqQjthQUFNLElBQUksWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtZQUNqRSxPQUFPLFlBQVksQ0FBQztTQUNyQjthQUFNLElBQUksWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLEVBQUU7WUFDL0QsT0FBTyxTQUFTLENBQUM7U0FDbEI7YUFBTSxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLEVBQUU7WUFDbkUsTUFBTSxXQUFXLEdBQTBCO2dCQUN6QyxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2FBQy9DLENBQUM7WUFDRixPQUFPLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN0RDtLQUNGO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQTFERCw0REEwREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBleHRyYWN0U3RydWN0VGFnLFxuICBJRF9TVFJVQ1RfTkFNRSxcbiAgaXNWYWxpZFN1aUFkZHJlc3MsXG4gIE1PVkVfU1RETElCX0FERFJFU1MsXG4gIE9CSkVDVF9NT0RVTEVfTkFNRSxcbiAgU3VpSnNvblZhbHVlLFxuICBTdWlNb3ZlTm9ybWFsaXplZFR5cGUsXG4gIFNVSV9GUkFNRVdPUktfQUREUkVTUyxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5jb25zdCBTVERfQVNDSUlfTU9EVUxFX05BTUUgPSAnYXNjaWknO1xuY29uc3QgU1REX0FTQ0lJX1NUUlVDVF9OQU1FID0gJ1N0cmluZyc7XG5cbmNvbnN0IFNURF9VVEY4X01PRFVMRV9OQU1FID0gJ3N0cmluZyc7XG5jb25zdCBTVERfVVRGOF9TVFJVQ1RfTkFNRSA9ICdTdHJpbmcnO1xuXG5jb25zdCBTVERfT1BUSU9OX01PRFVMRV9OQU1FID0gJ29wdGlvbic7XG5jb25zdCBTVERfT1BUSU9OX1NUUlVDVF9OQU1FID0gJ09wdGlvbic7XG5cbmNvbnN0IFJFU09MVkVEX1NVSV9JRCA9IHtcbiAgYWRkcmVzczogU1VJX0ZSQU1FV09SS19BRERSRVNTLFxuICBtb2R1bGU6IE9CSkVDVF9NT0RVTEVfTkFNRSxcbiAgbmFtZTogSURfU1RSVUNUX05BTUUsXG59O1xuY29uc3QgUkVTT0xWRURfQVNDSUlfU1RSID0ge1xuICBhZGRyZXNzOiBNT1ZFX1NURExJQl9BRERSRVNTLFxuICBtb2R1bGU6IFNURF9BU0NJSV9NT0RVTEVfTkFNRSxcbiAgbmFtZTogU1REX0FTQ0lJX1NUUlVDVF9OQU1FLFxufTtcbmNvbnN0IFJFU09MVkVEX1VURjhfU1RSID0ge1xuICBhZGRyZXNzOiBNT1ZFX1NURExJQl9BRERSRVNTLFxuICBtb2R1bGU6IFNURF9VVEY4X01PRFVMRV9OQU1FLFxuICBuYW1lOiBTVERfVVRGOF9TVFJVQ1RfTkFNRSxcbn07XG5cbmNvbnN0IFJFU09MVkVEX1NURF9PUFRJT04gPSB7XG4gIGFkZHJlc3M6IE1PVkVfU1RETElCX0FERFJFU1MsXG4gIG1vZHVsZTogU1REX09QVElPTl9NT0RVTEVfTkFNRSxcbiAgbmFtZTogU1REX09QVElPTl9TVFJVQ1RfTkFNRSxcbn07XG5cbmNvbnN0IGlzU2FtZVN0cnVjdCA9IChhOiBhbnksIGI6IGFueSkgPT4gYS5hZGRyZXNzID09PSBiLmFkZHJlc3MgJiYgYS5tb2R1bGUgPT09IGIubW9kdWxlICYmIGEubmFtZSA9PT0gYi5uYW1lO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNUeENvbnRleHQocGFyYW06IFN1aU1vdmVOb3JtYWxpemVkVHlwZSk6IGJvb2xlYW4ge1xuICBjb25zdCBzdHJ1Y3QgPSBleHRyYWN0U3RydWN0VGFnKHBhcmFtKT8uU3RydWN0O1xuICByZXR1cm4gc3RydWN0Py5hZGRyZXNzID09PSAnMHgyJyAmJiBzdHJ1Y3Q/Lm1vZHVsZSA9PT0gJ3R4X2NvbnRleHQnICYmIHN0cnVjdD8ubmFtZSA9PT0gJ1R4Q29udGV4dCc7XG59XG5cbmZ1bmN0aW9uIGV4cGVjdFR5cGUodHlwZU5hbWU6IHN0cmluZywgYXJnVmFsPzogU3VpSnNvblZhbHVlKSB7XG4gIGlmICh0eXBlb2YgYXJnVmFsID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAodHlwZW9mIGFyZ1ZhbCAhPT0gdHlwZU5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdCAke2FyZ1ZhbH0gdG8gYmUgJHt0eXBlTmFtZX0sIHJlY2VpdmVkICR7dHlwZW9mIGFyZ1ZhbH1gKTtcbiAgfVxufVxuXG5jb25zdCBhbGxvd2VkVHlwZXMgPSBbJ0FkZHJlc3MnLCAnQm9vbCcsICdVOCcsICdVMTYnLCAnVTMyJywgJ1U2NCcsICdVMTI4JywgJ1UyNTYnXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFB1cmVTZXJpYWxpemF0aW9uVHlwZShcbiAgbm9ybWFsaXplZFR5cGU6IFN1aU1vdmVOb3JtYWxpemVkVHlwZSxcbiAgYXJnVmFsOiBTdWlKc29uVmFsdWUgfCB1bmRlZmluZWRcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICh0eXBlb2Ygbm9ybWFsaXplZFR5cGUgPT09ICdzdHJpbmcnICYmIGFsbG93ZWRUeXBlcy5pbmNsdWRlcyhub3JtYWxpemVkVHlwZSkpIHtcbiAgICBpZiAobm9ybWFsaXplZFR5cGUgaW4gWydVOCcsICdVMTYnLCAnVTMyJywgJ1U2NCcsICdVMTI4JywgJ1UyNTYnXSkge1xuICAgICAgZXhwZWN0VHlwZSgnbnVtYmVyJywgYXJnVmFsKTtcbiAgICB9IGVsc2UgaWYgKG5vcm1hbGl6ZWRUeXBlID09PSAnQm9vbCcpIHtcbiAgICAgIGV4cGVjdFR5cGUoJ2Jvb2xlYW4nLCBhcmdWYWwpO1xuICAgIH0gZWxzZSBpZiAobm9ybWFsaXplZFR5cGUgPT09ICdBZGRyZXNzJykge1xuICAgICAgZXhwZWN0VHlwZSgnc3RyaW5nJywgYXJnVmFsKTtcbiAgICAgIGlmIChhcmdWYWwgJiYgIWlzVmFsaWRTdWlBZGRyZXNzKGFyZ1ZhbCBhcyBzdHJpbmcpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBTdWkgQWRkcmVzcycpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbm9ybWFsaXplZFR5cGUudG9Mb3dlckNhc2UoKTtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygbm9ybWFsaXplZFR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHB1cmUgbm9ybWFsaXplZCB0eXBlICR7SlNPTi5zdHJpbmdpZnkobm9ybWFsaXplZFR5cGUsIG51bGwsIDIpfWApO1xuICB9XG5cbiAgaWYgKCdWZWN0b3InIGluIG5vcm1hbGl6ZWRUeXBlKSB7XG4gICAgaWYgKChhcmdWYWwgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgYXJnVmFsID09PSAnc3RyaW5nJykgJiYgbm9ybWFsaXplZFR5cGUuVmVjdG9yID09PSAnVTgnKSB7XG4gICAgICByZXR1cm4gJ3N0cmluZyc7XG4gICAgfVxuXG4gICAgaWYgKGFyZ1ZhbCAhPT0gdW5kZWZpbmVkICYmICFBcnJheS5pc0FycmF5KGFyZ1ZhbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ICR7YXJnVmFsfSB0byBiZSBhIGFycmF5LCByZWNlaXZlZCAke3R5cGVvZiBhcmdWYWx9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5uZXJUeXBlID0gZ2V0UHVyZVNlcmlhbGl6YXRpb25UeXBlKFxuICAgICAgbm9ybWFsaXplZFR5cGUuVmVjdG9yLFxuICAgICAgLy8gdW5kZWZpbmVkIHdoZW4gYXJnVmFsIGlzIGVtcHR5XG4gICAgICBhcmdWYWwgPyBhcmdWYWxbMF0gOiB1bmRlZmluZWRcbiAgICApO1xuXG4gICAgaWYgKGlubmVyVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIGB2ZWN0b3I8JHtpbm5lclR5cGV9PmA7XG4gIH1cblxuICBpZiAoJ1N0cnVjdCcgaW4gbm9ybWFsaXplZFR5cGUpIHtcbiAgICBpZiAoaXNTYW1lU3RydWN0KG5vcm1hbGl6ZWRUeXBlLlN0cnVjdCwgUkVTT0xWRURfQVNDSUlfU1RSKSkge1xuICAgICAgcmV0dXJuICdzdHJpbmcnO1xuICAgIH0gZWxzZSBpZiAoaXNTYW1lU3RydWN0KG5vcm1hbGl6ZWRUeXBlLlN0cnVjdCwgUkVTT0xWRURfVVRGOF9TVFIpKSB7XG4gICAgICByZXR1cm4gJ3V0ZjhzdHJpbmcnO1xuICAgIH0gZWxzZSBpZiAoaXNTYW1lU3RydWN0KG5vcm1hbGl6ZWRUeXBlLlN0cnVjdCwgUkVTT0xWRURfU1VJX0lEKSkge1xuICAgICAgcmV0dXJuICdhZGRyZXNzJztcbiAgICB9IGVsc2UgaWYgKGlzU2FtZVN0cnVjdChub3JtYWxpemVkVHlwZS5TdHJ1Y3QsIFJFU09MVkVEX1NURF9PUFRJT04pKSB7XG4gICAgICBjb25zdCBvcHRpb25Ub1ZlYzogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlID0ge1xuICAgICAgICBWZWN0b3I6IG5vcm1hbGl6ZWRUeXBlLlN0cnVjdC50eXBlQXJndW1lbnRzWzBdLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBnZXRQdXJlU2VyaWFsaXphdGlvblR5cGUob3B0aW9uVG9WZWMsIGFyZ1ZhbCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ import { Struct } from 'superstruct';
2
+ export declare function create<T, S>(value: T, struct: Struct<T, S>): T;
3
+ export declare type WellKnownEncoding = {
4
+ kind: 'object';
5
+ } | {
6
+ kind: 'pure';
7
+ type: string;
8
+ };
9
+ export declare const TRANSACTION_TYPE: unique symbol;
10
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/builder/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,MAAM,EAAE,MAAM,aAAa,CAAC;AAElE,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAE9D;AAED,oBAAY,iBAAiB,GACzB;IACE,IAAI,EAAE,QAAQ,CAAC;CAChB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEN,eAAO,MAAM,gBAAgB,eAAsC,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TRANSACTION_TYPE = exports.create = void 0;
4
+ const superstruct_1 = require("superstruct");
5
+ function create(value, struct) {
6
+ return superstruct_1.create(value, struct);
7
+ }
8
+ exports.create = create;
9
+ exports.TRANSACTION_TYPE = Symbol('transaction-argument-type');
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL215c3RlbmxhYi9idWlsZGVyL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFrRTtBQUVsRSxTQUFnQixNQUFNLENBQU8sS0FBUSxFQUFFLE1BQW9CO0lBQ3pELE9BQU8sb0JBQWlCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFGRCx3QkFFQztBQVdZLFFBQUEsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGUgYXMgc3VwZXJzdHJ1Y3RDcmVhdGUsIFN0cnVjdCB9IGZyb20gJ3N1cGVyc3RydWN0JztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZTxULCBTPih2YWx1ZTogVCwgc3RydWN0OiBTdHJ1Y3Q8VCwgUz4pOiBUIHtcbiAgcmV0dXJuIHN1cGVyc3RydWN0Q3JlYXRlKHZhbHVlLCBzdHJ1Y3QpO1xufVxuXG5leHBvcnQgdHlwZSBXZWxsS25vd25FbmNvZGluZyA9XG4gIHwge1xuICAgICAga2luZDogJ29iamVjdCc7XG4gICAgfVxuICB8IHtcbiAgICAgIGtpbmQ6ICdwdXJlJztcbiAgICAgIHR5cGU6IHN0cmluZztcbiAgICB9O1xuXG5leHBvcnQgY29uc3QgVFJBTlNBQ1RJT05fVFlQRSA9IFN5bWJvbCgndHJhbnNhY3Rpb24tYXJndW1lbnQtdHlwZScpO1xuIl19
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generates a Blake2b hash of typed data as a base64 string.
3
+ *
4
+ * @param typeTag type tag (e.g. TransactionData, SenderSignedData)
5
+ * @param data data to hash
6
+ */
7
+ export declare function hashTypedData(typeTag: string, data: Uint8Array): Uint8Array;
8
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/cryptography/hash.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAQ3E"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.hashTypedData = void 0;
7
+ const blake2b_1 = __importDefault(require("@bitgo/blake2b"));
8
+ /**
9
+ * Generates a Blake2b hash of typed data as a base64 string.
10
+ *
11
+ * @param typeTag type tag (e.g. TransactionData, SenderSignedData)
12
+ * @param data data to hash
13
+ */
14
+ function hashTypedData(typeTag, data) {
15
+ const typeTagBytes = Array.from(`${typeTag}::`).map((e) => e.charCodeAt(0));
16
+ const dataWithTag = new Uint8Array(typeTagBytes.length + data.length);
17
+ dataWithTag.set(typeTagBytes);
18
+ dataWithTag.set(data, typeTagBytes.length);
19
+ return blake2b_1.default(32).update(dataWithTag).digest('binary');
20
+ }
21
+ exports.hashTypedData = hashTypedData;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL2NyeXB0b2dyYXBoeS9oYXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDZEQUFxQztBQUVyQzs7Ozs7R0FLRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxPQUFlLEVBQUUsSUFBZ0I7SUFDN0QsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFNUUsTUFBTSxXQUFXLEdBQUcsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5QixXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0MsT0FBTyxpQkFBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQVJELHNDQVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJsYWtlMmIgZnJvbSAnQGJpdGdvL2JsYWtlMmInO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhIEJsYWtlMmIgaGFzaCBvZiB0eXBlZCBkYXRhIGFzIGEgYmFzZTY0IHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gdHlwZVRhZyB0eXBlIHRhZyAoZS5nLiBUcmFuc2FjdGlvbkRhdGEsIFNlbmRlclNpZ25lZERhdGEpXG4gKiBAcGFyYW0gZGF0YSBkYXRhIHRvIGhhc2hcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc2hUeXBlZERhdGEodHlwZVRhZzogc3RyaW5nLCBkYXRhOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XG4gIGNvbnN0IHR5cGVUYWdCeXRlcyA9IEFycmF5LmZyb20oYCR7dHlwZVRhZ306OmApLm1hcCgoZSkgPT4gZS5jaGFyQ29kZUF0KDApKTtcblxuICBjb25zdCBkYXRhV2l0aFRhZyA9IG5ldyBVaW50OEFycmF5KHR5cGVUYWdCeXRlcy5sZW5ndGggKyBkYXRhLmxlbmd0aCk7XG4gIGRhdGFXaXRoVGFnLnNldCh0eXBlVGFnQnl0ZXMpO1xuICBkYXRhV2l0aFRhZy5zZXQoZGF0YSwgdHlwZVRhZ0J5dGVzLmxlbmd0aCk7XG5cbiAgcmV0dXJuIGJsYWtlMmIoMzIpLnVwZGF0ZShkYXRhV2l0aFRhZykuZGlnZXN0KCdiaW5hcnknKTtcbn1cbiJdfQ==