@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.
- package/.eslintignore +1 -0
- package/CHANGELOG.md +37 -0
- package/dist/src/lib/constants.d.ts +3 -15
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +7 -20
- package/dist/src/lib/iface.d.ts +35 -181
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +11 -38
- package/dist/src/lib/index.d.ts +2 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +6 -2
- package/dist/src/lib/keyPair.d.ts +4 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +7 -10
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts +66 -0
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/Inputs.js +56 -0
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +616 -0
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/TransactionBlock.js +260 -0
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +566 -0
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +171 -0
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts +992 -0
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/Transactions.js +119 -0
- package/dist/src/lib/mystenlab/builder/bcs.d.ts +25 -0
- package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/bcs.js +141 -0
- package/dist/src/lib/mystenlab/builder/index.d.ts +5 -0
- package/dist/src/lib/mystenlab/builder/index.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/index.js +17 -0
- package/dist/src/lib/mystenlab/builder/serializer.d.ts +4 -0
- package/dist/src/lib/mystenlab/builder/serializer.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/serializer.js +101 -0
- package/dist/src/lib/mystenlab/builder/utils.d.ts +10 -0
- package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/utils.js +10 -0
- package/dist/src/lib/mystenlab/cryptography/hash.d.ts +8 -0
- package/dist/src/lib/mystenlab/cryptography/hash.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/cryptography/hash.js +22 -0
- package/dist/src/lib/mystenlab/framework/framework.d.ts +93 -0
- package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/framework/framework.js +138 -0
- package/dist/src/lib/mystenlab/framework/index.d.ts +3 -0
- package/dist/src/lib/mystenlab/framework/index.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/framework/index.js +15 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts +12 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.js +19 -0
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts +7 -0
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +119 -0
- package/dist/src/lib/mystenlab/types/coin.d.ts +89 -0
- package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/coin.js +32 -0
- package/dist/src/lib/mystenlab/types/common.d.ts +45 -0
- package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/common.js +84 -0
- package/dist/src/lib/mystenlab/types/events.d.ts +198 -0
- package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/events.js +46 -0
- package/dist/src/lib/mystenlab/types/index.d.ts +9 -0
- package/dist/src/lib/mystenlab/types/index.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/index.js +21 -0
- package/dist/src/lib/mystenlab/types/normalized.d.ts +254 -0
- package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/normalized.js +111 -0
- package/dist/src/lib/mystenlab/types/objects.d.ts +806 -0
- package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/objects.js +302 -0
- package/dist/src/lib/mystenlab/types/option.d.ts +8 -0
- package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/option.js +14 -0
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +111 -0
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/sui-bcs.js +107 -0
- package/dist/src/lib/mystenlab/types/transactions.d.ts +6703 -0
- package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/transactions.js +405 -0
- package/dist/src/lib/mystenlab/types/validator.d.ts +641 -0
- package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/validator.js +156 -0
- package/dist/src/lib/stakingBuilder.d.ts +24 -35
- package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
- package/dist/src/lib/stakingBuilder.js +93 -129
- package/dist/src/lib/stakingTransaction.d.ts +5 -21
- package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
- package/dist/src/lib/stakingTransaction.js +77 -219
- package/dist/src/lib/transaction.d.ts +8 -6
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +74 -124
- package/dist/src/lib/transactionBuilder.d.ts +9 -9
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +27 -16
- package/dist/src/lib/transactionBuilderFactory.d.ts +8 -5
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +17 -11
- package/dist/src/lib/transferBuilder.d.ts +15 -10
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +38 -101
- package/dist/src/lib/transferTransaction.d.ts +5 -4
- package/dist/src/lib/transferTransaction.d.ts.map +1 -1
- package/dist/src/lib/transferTransaction.js +45 -96
- package/dist/src/lib/unstakingBuilder.d.ts +55 -0
- package/dist/src/lib/unstakingBuilder.d.ts.map +1 -0
- package/dist/src/lib/unstakingBuilder.js +148 -0
- package/dist/src/lib/unstakingTransaction.d.ts +51 -0
- package/dist/src/lib/unstakingTransaction.d.ts.map +1 -0
- package/dist/src/lib/unstakingTransaction.js +206 -0
- package/dist/src/lib/utils.d.ts +30 -92
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +115 -177
- package/dist/src/sui.d.ts.map +1 -1
- package/dist/src/sui.js +23 -13
- package/package.json +9 -9
- package/dist/src/lib/bcs.d.ts +0 -3
- package/dist/src/lib/bcs.d.ts.map +0 -1
- package/dist/src/lib/bcs.js +0 -109
- package/dist/src/lib/txnSchema.d.ts +0 -7
- package/dist/src/lib/txnSchema.d.ts.map +0 -1
- 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 @@
|
|
|
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==
|