@ton-wallet/create 14.0.6 → 14.0.7
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/dist/client/TonClient.d.ts +228 -0
- package/dist/client/TonClient.js +441 -0
- package/dist/client/TonClient.spec.d.ts +1 -0
- package/dist/client/TonClient.spec.js +45 -0
- package/dist/client/TonClient4.d.ts +1130 -0
- package/dist/client/TonClient4.js +687 -0
- package/dist/client/TonClient4.spec.d.ts +1 -0
- package/dist/client/TonClient4.spec.js +42 -0
- package/dist/client/api/HttpApi.d.ts +764 -0
- package/dist/client/api/HttpApi.js +306 -0
- package/dist/client/api/TonCache.d.ts +16 -0
- package/dist/client/api/TonCache.js +33 -0
- package/dist/config/ConfigParser.d.ts +622 -0
- package/dist/config/ConfigParser.js +711 -0
- package/dist/config/ConfigParser.spec.d.ts +8 -0
- package/dist/config/ConfigParser.spec.js +97 -0
- package/dist/elector/ElectorContract.d.ts +51 -0
- package/dist/elector/ElectorContract.js +192 -0
- package/dist/elector/ElectorContract.spec.d.ts +8 -0
- package/dist/elector/ElectorContract.spec.js +104 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +129 -0
- package/dist/jetton/JettonMaster.d.ts +21 -0
- package/dist/jetton/JettonMaster.js +39 -0
- package/dist/jetton/JettonMaster.spec.d.ts +8 -0
- package/dist/jetton/JettonMaster.spec.js +27 -0
- package/dist/jetton/JettonWallet.d.ts +14 -0
- package/dist/jetton/JettonWallet.js +27 -0
- package/dist/multisig/MultisigOrder.d.ts +17 -0
- package/dist/multisig/MultisigOrder.js +73 -0
- package/dist/multisig/MultisigOrder.spec.d.ts +1 -0
- package/dist/multisig/MultisigOrder.spec.js +139 -0
- package/dist/multisig/MultisigOrderBuilder.d.ts +13 -0
- package/dist/multisig/MultisigOrderBuilder.js +37 -0
- package/dist/multisig/MultisigWallet.d.ts +27 -0
- package/dist/multisig/MultisigWallet.js +134 -0
- package/dist/multisig/MultisigWallet.spec.d.ts +1 -0
- package/dist/multisig/MultisigWallet.spec.js +248 -0
- package/dist/utils/createTestClient.d.ts +9 -0
- package/dist/utils/createTestClient.js +18 -0
- package/dist/utils/createTestClient4.d.ts +9 -0
- package/dist/utils/createTestClient4.js +15 -0
- package/dist/utils/fees.d.ts +25 -0
- package/dist/utils/fees.js +105 -0
- package/dist/utils/fees.spec.d.ts +1 -0
- package/dist/utils/fees.spec.js +83 -0
- package/dist/utils/maybe.d.ts +8 -0
- package/dist/utils/maybe.js +9 -0
- package/dist/utils/randomTestKey.d.ts +8 -0
- package/dist/utils/randomTestKey.js +24 -0
- package/dist/utils/time.d.ts +15 -0
- package/dist/utils/time.js +63 -0
- package/dist/utils/toUrlSafe.d.ts +8 -0
- package/dist/utils/toUrlSafe.js +23 -0
- package/dist/wallets/WalletContractV1R1.d.ts +58 -0
- package/dist/wallets/WalletContractV1R1.js +100 -0
- package/dist/wallets/WalletContractV1R1.spec.d.ts +8 -0
- package/dist/wallets/WalletContractV1R1.spec.js +44 -0
- package/dist/wallets/WalletContractV1R2.d.ts +58 -0
- package/dist/wallets/WalletContractV1R2.js +101 -0
- package/dist/wallets/WalletContractV1R2.spec.d.ts +8 -0
- package/dist/wallets/WalletContractV1R2.spec.js +44 -0
- package/dist/wallets/WalletContractV1R3.d.ts +58 -0
- package/dist/wallets/WalletContractV1R3.js +101 -0
- package/dist/wallets/WalletContractV1R3.spec.d.ts +8 -0
- package/dist/wallets/WalletContractV1R3.spec.js +44 -0
- package/dist/wallets/WalletContractV2R1.d.ts +60 -0
- package/dist/wallets/WalletContractV2R1.js +102 -0
- package/dist/wallets/WalletContractV2R1.spec.d.ts +8 -0
- package/dist/wallets/WalletContractV2R1.spec.js +44 -0
- package/dist/wallets/WalletContractV2R2.d.ts +60 -0
- package/dist/wallets/WalletContractV2R2.js +102 -0
- package/dist/wallets/WalletContractV2R2.spec.d.ts +8 -0
- package/dist/wallets/WalletContractV2R2.spec.js +44 -0
- package/dist/wallets/WalletContractV3R1.d.ts +57 -0
- package/dist/wallets/WalletContractV3R1.js +104 -0
- package/dist/wallets/WalletContractV3R1.spec.d.ts +8 -0
- package/dist/wallets/WalletContractV3R1.spec.js +44 -0
- package/dist/wallets/WalletContractV3R2.d.ts +57 -0
- package/dist/wallets/WalletContractV3R2.js +104 -0
- package/dist/wallets/WalletContractV3R2.spec.d.ts +8 -0
- package/dist/wallets/WalletContractV3R2.spec.js +44 -0
- package/dist/wallets/WalletContractV3Types.d.ts +12 -0
- package/dist/wallets/WalletContractV3Types.js +2 -0
- package/dist/wallets/WalletContractV4.d.ts +65 -0
- package/dist/wallets/WalletContractV4.js +105 -0
- package/dist/wallets/WalletContractV4.spec.d.ts +8 -0
- package/dist/wallets/WalletContractV4.spec.js +48 -0
- package/dist/wallets/WalletContractV5Beta.d.ts +3 -0
- package/dist/wallets/WalletContractV5Beta.js +19 -0
- package/dist/wallets/WalletContractV5R1.d.ts +3 -0
- package/dist/wallets/WalletContractV5R1.js +19 -0
- package/dist/wallets/signing/createWalletTransfer.d.ts +48 -0
- package/dist/wallets/signing/createWalletTransfer.js +190 -0
- package/dist/wallets/signing/singer.d.ts +9 -0
- package/dist/wallets/signing/singer.js +21 -0
- package/dist/wallets/v5beta/WalletContractV5Beta.d.ts +130 -0
- package/dist/wallets/v5beta/WalletContractV5Beta.js +211 -0
- package/dist/wallets/v5beta/WalletContractV5Beta.spec.d.ts +8 -0
- package/dist/wallets/v5beta/WalletContractV5Beta.spec.js +298 -0
- package/dist/wallets/v5beta/WalletV5BetaActions.d.ts +6 -0
- package/dist/wallets/v5beta/WalletV5BetaActions.js +92 -0
- package/dist/wallets/v5beta/WalletV5BetaActions.spec.d.ts +1 -0
- package/dist/wallets/v5beta/WalletV5BetaActions.spec.js +166 -0
- package/dist/wallets/v5beta/WalletV5BetaWalletId.d.ts +13 -0
- package/dist/wallets/v5beta/WalletV5BetaWalletId.js +31 -0
- package/dist/wallets/v5beta/WalletV5BetaWalletId.spec.d.ts +1 -0
- package/dist/wallets/v5beta/WalletV5BetaWalletId.spec.js +68 -0
- package/dist/wallets/v5beta/WalletV5OutActions.d.ts +17 -0
- package/dist/wallets/v5beta/WalletV5OutActions.js +11 -0
- package/dist/wallets/v5r1/WalletContractV5R1.d.ts +125 -0
- package/dist/wallets/v5r1/WalletContractV5R1.js +207 -0
- package/dist/wallets/v5r1/WalletContractV5R1.spec.d.ts +8 -0
- package/dist/wallets/v5r1/WalletContractV5R1.spec.js +321 -0
- package/dist/wallets/v5r1/WalletV5R1Actions.d.ts +12 -0
- package/dist/wallets/v5r1/WalletV5R1Actions.js +128 -0
- package/dist/wallets/v5r1/WalletV5R1Actions.spec.d.ts +1 -0
- package/dist/wallets/v5r1/WalletV5R1Actions.spec.js +262 -0
- package/dist/wallets/v5r1/WalletV5R1WalletId.d.ts +47 -0
- package/dist/wallets/v5r1/WalletV5R1WalletId.js +69 -0
- package/dist/wallets/v5r1/WalletV5R1WalletId.spec.d.ts +1 -0
- package/dist/wallets/v5r1/WalletV5R1WalletId.spec.js +72 -0
- package/package.json +1 -1
|
@@ -0,0 +1,711 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseFullConfig = exports.loadConfigParamsAsSlice = exports.loadConfigParamById = exports.parseVotingSetup = exports.parseProposalSetup = exports.configParse29 = exports.configParse28 = exports.configParseMsgPrices = exports.configParseGasLimitsPrices = exports.configParseBridge = exports.configParseValidatorSet = exports.configParse12 = exports.configParseWorkchainDescriptor = exports.configParse40 = exports.configParse8 = exports.configParse18 = exports.configParse17 = exports.configParse16 = exports.configParse15 = exports.configParse13 = exports.configParse5 = exports.configParseMasterAddressRequired = exports.parseBridge = exports.parseValidatorSet = exports.configParseMasterAddress = void 0;
|
|
4
|
+
const core_1 = require("@ton/core");
|
|
5
|
+
function configParseMasterAddress(slice) {
|
|
6
|
+
if (slice) {
|
|
7
|
+
return new core_1.Address(-1, slice.loadBuffer(32));
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.configParseMasterAddress = configParseMasterAddress;
|
|
14
|
+
function readPublicKey(slice) {
|
|
15
|
+
// 8e81278a
|
|
16
|
+
if (slice.loadUint(32) !== 0x8e81278a) {
|
|
17
|
+
throw Error('Invalid config');
|
|
18
|
+
}
|
|
19
|
+
return slice.loadBuffer(32);
|
|
20
|
+
}
|
|
21
|
+
const ValidatorDescriptionDictValue = {
|
|
22
|
+
serialize(src, builder) {
|
|
23
|
+
throw Error("not implemented");
|
|
24
|
+
},
|
|
25
|
+
parse(src) {
|
|
26
|
+
const header = src.loadUint(8);
|
|
27
|
+
if (header === 0x53) {
|
|
28
|
+
return {
|
|
29
|
+
publicKey: readPublicKey(src),
|
|
30
|
+
weight: src.loadUintBig(64),
|
|
31
|
+
adnlAddress: null
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
else if (header === 0x73) {
|
|
35
|
+
return {
|
|
36
|
+
publicKey: readPublicKey(src),
|
|
37
|
+
weight: src.loadUintBig(64),
|
|
38
|
+
adnlAddress: src.loadBuffer(32)
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
throw Error('Invalid config');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
function parseValidatorSet(slice) {
|
|
47
|
+
const header = slice.loadUint(8);
|
|
48
|
+
if (header === 0x11) {
|
|
49
|
+
const timeSince = slice.loadUint(32);
|
|
50
|
+
const timeUntil = slice.loadUint(32);
|
|
51
|
+
const total = slice.loadUint(16);
|
|
52
|
+
const main = slice.loadUint(16);
|
|
53
|
+
const list = slice.loadDictDirect(core_1.Dictionary.Keys.Uint(16), ValidatorDescriptionDictValue);
|
|
54
|
+
return {
|
|
55
|
+
timeSince,
|
|
56
|
+
timeUntil,
|
|
57
|
+
total,
|
|
58
|
+
main,
|
|
59
|
+
totalWeight: null,
|
|
60
|
+
list
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
else if (header === 0x12) {
|
|
64
|
+
const timeSince = slice.loadUint(32);
|
|
65
|
+
const timeUntil = slice.loadUint(32);
|
|
66
|
+
const total = slice.loadUint(16);
|
|
67
|
+
const main = slice.loadUint(16);
|
|
68
|
+
const totalWeight = slice.loadUintBig(64);
|
|
69
|
+
const list = slice.loadDict(core_1.Dictionary.Keys.Uint(16), ValidatorDescriptionDictValue);
|
|
70
|
+
return {
|
|
71
|
+
timeSince,
|
|
72
|
+
timeUntil,
|
|
73
|
+
total,
|
|
74
|
+
main,
|
|
75
|
+
totalWeight,
|
|
76
|
+
list
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.parseValidatorSet = parseValidatorSet;
|
|
81
|
+
function parseBridge(slice) {
|
|
82
|
+
const bridgeAddress = new core_1.Address(-1, slice.loadBuffer(32));
|
|
83
|
+
const oracleMultisigAddress = new core_1.Address(-1, slice.loadBuffer(32));
|
|
84
|
+
const oraclesDict = slice.loadDict(core_1.Dictionary.Keys.Buffer(32), core_1.Dictionary.Values.Buffer(32));
|
|
85
|
+
const oracles = new Map();
|
|
86
|
+
for (const [local, remote] of oraclesDict) {
|
|
87
|
+
oracles.set(new core_1.Address(-1, local).toString(), remote);
|
|
88
|
+
}
|
|
89
|
+
const externalChainAddress = slice.loadBuffer(32);
|
|
90
|
+
return {
|
|
91
|
+
bridgeAddress,
|
|
92
|
+
oracleMultisigAddress,
|
|
93
|
+
oracles,
|
|
94
|
+
externalChainAddress
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
exports.parseBridge = parseBridge;
|
|
98
|
+
function configParseMasterAddressRequired(slice) {
|
|
99
|
+
if (!slice) {
|
|
100
|
+
throw Error('Invalid config');
|
|
101
|
+
}
|
|
102
|
+
return configParseMasterAddress(slice);
|
|
103
|
+
}
|
|
104
|
+
exports.configParseMasterAddressRequired = configParseMasterAddressRequired;
|
|
105
|
+
function configParse5(slice) {
|
|
106
|
+
if (!slice) {
|
|
107
|
+
throw Error('Invalid config');
|
|
108
|
+
}
|
|
109
|
+
const magic = slice.loadUint(8);
|
|
110
|
+
if (magic === 0x01) {
|
|
111
|
+
const blackholeAddr = slice.loadBit() ? new core_1.Address(-1, slice.loadBuffer(32)) : null;
|
|
112
|
+
const feeBurnNominator = slice.loadUint(32);
|
|
113
|
+
const feeBurnDenominator = slice.loadUint(32);
|
|
114
|
+
return {
|
|
115
|
+
blackholeAddr,
|
|
116
|
+
feeBurnNominator,
|
|
117
|
+
feeBurnDenominator
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
throw new Error('Invalid config');
|
|
121
|
+
}
|
|
122
|
+
exports.configParse5 = configParse5;
|
|
123
|
+
function configParse13(slice) {
|
|
124
|
+
if (!slice) {
|
|
125
|
+
throw Error('Invalid config');
|
|
126
|
+
}
|
|
127
|
+
const magic = slice.loadUint(8);
|
|
128
|
+
if (magic === 0x1a) {
|
|
129
|
+
const deposit = slice.loadCoins();
|
|
130
|
+
const bitPrice = slice.loadCoins();
|
|
131
|
+
const cellPrice = slice.loadCoins();
|
|
132
|
+
return {
|
|
133
|
+
deposit,
|
|
134
|
+
bitPrice,
|
|
135
|
+
cellPrice
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
throw new Error('Invalid config');
|
|
139
|
+
}
|
|
140
|
+
exports.configParse13 = configParse13;
|
|
141
|
+
function configParse15(slice) {
|
|
142
|
+
if (!slice) {
|
|
143
|
+
throw Error('Invalid config');
|
|
144
|
+
}
|
|
145
|
+
const validatorsElectedFor = slice.loadUint(32);
|
|
146
|
+
const electorsStartBefore = slice.loadUint(32);
|
|
147
|
+
const electorsEndBefore = slice.loadUint(32);
|
|
148
|
+
const stakeHeldFor = slice.loadUint(32);
|
|
149
|
+
return {
|
|
150
|
+
validatorsElectedFor,
|
|
151
|
+
electorsStartBefore,
|
|
152
|
+
electorsEndBefore,
|
|
153
|
+
stakeHeldFor
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
exports.configParse15 = configParse15;
|
|
157
|
+
function configParse16(slice) {
|
|
158
|
+
if (!slice) {
|
|
159
|
+
throw Error('Invalid config');
|
|
160
|
+
}
|
|
161
|
+
const maxValidators = slice.loadUint(16);
|
|
162
|
+
const maxMainValidators = slice.loadUint(16);
|
|
163
|
+
const minValidators = slice.loadUint(16);
|
|
164
|
+
return {
|
|
165
|
+
maxValidators,
|
|
166
|
+
maxMainValidators,
|
|
167
|
+
minValidators
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
exports.configParse16 = configParse16;
|
|
171
|
+
function configParse17(slice) {
|
|
172
|
+
if (!slice) {
|
|
173
|
+
throw Error('Invalid config');
|
|
174
|
+
}
|
|
175
|
+
const minStake = slice.loadCoins();
|
|
176
|
+
const maxStake = slice.loadCoins();
|
|
177
|
+
const minTotalStake = slice.loadCoins();
|
|
178
|
+
const maxStakeFactor = slice.loadUint(32);
|
|
179
|
+
return {
|
|
180
|
+
minStake,
|
|
181
|
+
maxStake,
|
|
182
|
+
minTotalStake,
|
|
183
|
+
maxStakeFactor
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
exports.configParse17 = configParse17;
|
|
187
|
+
const StoragePricesDictValue = {
|
|
188
|
+
serialize(src, builder) {
|
|
189
|
+
throw Error("not implemented");
|
|
190
|
+
},
|
|
191
|
+
parse(src) {
|
|
192
|
+
const header = src.loadUint(8);
|
|
193
|
+
if (header !== 0xcc) {
|
|
194
|
+
throw Error('Invalid config');
|
|
195
|
+
}
|
|
196
|
+
const utime_since = src.loadUint(32);
|
|
197
|
+
const bit_price_ps = src.loadUintBig(64);
|
|
198
|
+
const cell_price_ps = src.loadUintBig(64);
|
|
199
|
+
const mc_bit_price_ps = src.loadUintBig(64);
|
|
200
|
+
const mc_cell_price_ps = src.loadUintBig(64);
|
|
201
|
+
return {
|
|
202
|
+
utime_since,
|
|
203
|
+
bit_price_ps,
|
|
204
|
+
cell_price_ps,
|
|
205
|
+
mc_bit_price_ps,
|
|
206
|
+
mc_cell_price_ps
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
function configParse18(slice) {
|
|
211
|
+
if (!slice) {
|
|
212
|
+
throw Error('Invalid config');
|
|
213
|
+
}
|
|
214
|
+
return slice.loadDictDirect(core_1.Dictionary.Keys.Buffer(4), StoragePricesDictValue).values();
|
|
215
|
+
}
|
|
216
|
+
exports.configParse18 = configParse18;
|
|
217
|
+
function configParse8(slice) {
|
|
218
|
+
if (!slice) {
|
|
219
|
+
return {
|
|
220
|
+
version: 0,
|
|
221
|
+
capabilities: 0n
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
const version = slice.loadUint(32);
|
|
225
|
+
const capabilities = slice.loadUintBig(64);
|
|
226
|
+
return {
|
|
227
|
+
version,
|
|
228
|
+
capabilities
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
exports.configParse8 = configParse8;
|
|
232
|
+
function configParse40(slice) {
|
|
233
|
+
if (!slice) {
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
const header = slice.loadUint(8);
|
|
237
|
+
if (header !== 1) {
|
|
238
|
+
throw Error('Invalid config');
|
|
239
|
+
}
|
|
240
|
+
const defaultFlatFine = slice.loadCoins();
|
|
241
|
+
const defaultProportionaFine = slice.loadCoins();
|
|
242
|
+
const severityFlatMult = slice.loadUint(16);
|
|
243
|
+
const severityProportionalMult = slice.loadUint(16);
|
|
244
|
+
const unfunishableInterval = slice.loadUint(16);
|
|
245
|
+
const longInterval = slice.loadUint(16);
|
|
246
|
+
const longFlatMult = slice.loadUint(16);
|
|
247
|
+
const longProportionalMult = slice.loadUint(16);
|
|
248
|
+
const mediumInterval = slice.loadUint(16);
|
|
249
|
+
const mediumFlatMult = slice.loadUint(16);
|
|
250
|
+
const mediumProportionalMult = slice.loadUint(16);
|
|
251
|
+
return {
|
|
252
|
+
defaultFlatFine,
|
|
253
|
+
defaultProportionaFine,
|
|
254
|
+
severityFlatMult,
|
|
255
|
+
severityProportionalMult,
|
|
256
|
+
unfunishableInterval,
|
|
257
|
+
longInterval,
|
|
258
|
+
longFlatMult,
|
|
259
|
+
longProportionalMult,
|
|
260
|
+
mediumInterval,
|
|
261
|
+
mediumFlatMult,
|
|
262
|
+
mediumProportionalMult
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
exports.configParse40 = configParse40;
|
|
266
|
+
function configParseWorkchainDescriptor(slice) {
|
|
267
|
+
if (slice.loadUint(8) !== 0xA6) {
|
|
268
|
+
throw Error('Invalid config');
|
|
269
|
+
}
|
|
270
|
+
const enabledSince = slice.loadUint(32);
|
|
271
|
+
const actialMinSplit = slice.loadUint(8);
|
|
272
|
+
const min_split = slice.loadUint(8);
|
|
273
|
+
const max_split = slice.loadUint(8);
|
|
274
|
+
const basic = slice.loadBit();
|
|
275
|
+
const active = slice.loadBit();
|
|
276
|
+
const accept_msgs = slice.loadBit();
|
|
277
|
+
const flags = slice.loadUint(13);
|
|
278
|
+
const zerostateRootHash = slice.loadBuffer(32);
|
|
279
|
+
const zerostateFileHash = slice.loadBuffer(32);
|
|
280
|
+
const version = slice.loadUint(32);
|
|
281
|
+
// Only basic format supported
|
|
282
|
+
if (slice.loadBit()) {
|
|
283
|
+
throw Error('Invalid config');
|
|
284
|
+
}
|
|
285
|
+
const vmVersion = slice.loadUint(32);
|
|
286
|
+
const vmMode = slice.loadUintBig(64);
|
|
287
|
+
return {
|
|
288
|
+
enabledSince,
|
|
289
|
+
actialMinSplit,
|
|
290
|
+
min_split,
|
|
291
|
+
max_split,
|
|
292
|
+
basic,
|
|
293
|
+
active,
|
|
294
|
+
accept_msgs,
|
|
295
|
+
flags,
|
|
296
|
+
zerostateRootHash,
|
|
297
|
+
zerostateFileHash,
|
|
298
|
+
version,
|
|
299
|
+
format: {
|
|
300
|
+
vmVersion,
|
|
301
|
+
vmMode
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
exports.configParseWorkchainDescriptor = configParseWorkchainDescriptor;
|
|
306
|
+
const WorkchainDescriptorDictValue = {
|
|
307
|
+
serialize(src, builder) {
|
|
308
|
+
throw Error("not implemented");
|
|
309
|
+
},
|
|
310
|
+
parse(src) {
|
|
311
|
+
if (src.loadUint(8) !== 0xA6) {
|
|
312
|
+
throw Error('Invalid config');
|
|
313
|
+
}
|
|
314
|
+
const enabledSince = src.loadUint(32);
|
|
315
|
+
const actialMinSplit = src.loadUint(8);
|
|
316
|
+
const min_split = src.loadUint(8);
|
|
317
|
+
const max_split = src.loadUint(8);
|
|
318
|
+
const basic = src.loadBit();
|
|
319
|
+
const active = src.loadBit();
|
|
320
|
+
const accept_msgs = src.loadBit();
|
|
321
|
+
const flags = src.loadUint(13);
|
|
322
|
+
const zerostateRootHash = src.loadBuffer(32);
|
|
323
|
+
const zerostateFileHash = src.loadBuffer(32);
|
|
324
|
+
const version = src.loadUint(32);
|
|
325
|
+
// Only basic format supported
|
|
326
|
+
if (src.loadBit()) {
|
|
327
|
+
throw Error('Invalid config');
|
|
328
|
+
}
|
|
329
|
+
const vmVersion = src.loadUint(32);
|
|
330
|
+
const vmMode = src.loadUintBig(64);
|
|
331
|
+
return {
|
|
332
|
+
enabledSince,
|
|
333
|
+
actialMinSplit,
|
|
334
|
+
min_split,
|
|
335
|
+
max_split,
|
|
336
|
+
basic,
|
|
337
|
+
active,
|
|
338
|
+
accept_msgs,
|
|
339
|
+
flags,
|
|
340
|
+
zerostateRootHash,
|
|
341
|
+
zerostateFileHash,
|
|
342
|
+
version,
|
|
343
|
+
format: {
|
|
344
|
+
vmVersion,
|
|
345
|
+
vmMode
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
};
|
|
350
|
+
function configParse12(slice) {
|
|
351
|
+
if (!slice) {
|
|
352
|
+
throw Error('Invalid config');
|
|
353
|
+
}
|
|
354
|
+
const wd = slice.loadDict(core_1.Dictionary.Keys.Uint(32), WorkchainDescriptorDictValue);
|
|
355
|
+
if (wd) {
|
|
356
|
+
return wd;
|
|
357
|
+
}
|
|
358
|
+
throw Error('No workchains exist');
|
|
359
|
+
}
|
|
360
|
+
exports.configParse12 = configParse12;
|
|
361
|
+
function configParseValidatorSet(slice) {
|
|
362
|
+
if (!slice) {
|
|
363
|
+
return null;
|
|
364
|
+
}
|
|
365
|
+
return parseValidatorSet(slice);
|
|
366
|
+
}
|
|
367
|
+
exports.configParseValidatorSet = configParseValidatorSet;
|
|
368
|
+
function configParseBridge(slice) {
|
|
369
|
+
if (!slice) {
|
|
370
|
+
return null;
|
|
371
|
+
}
|
|
372
|
+
return parseBridge(slice);
|
|
373
|
+
}
|
|
374
|
+
exports.configParseBridge = configParseBridge;
|
|
375
|
+
function parseGasLimitsInternal(slice) {
|
|
376
|
+
const tag = slice.loadUint(8);
|
|
377
|
+
if (tag === 0xde) {
|
|
378
|
+
const gasPrice = slice.loadUintBig(64);
|
|
379
|
+
const gasLimit = slice.loadUintBig(64);
|
|
380
|
+
const specialGasLimit = slice.loadUintBig(64);
|
|
381
|
+
const gasCredit = slice.loadUintBig(64);
|
|
382
|
+
const blockGasLimit = slice.loadUintBig(64);
|
|
383
|
+
const freezeDueLimit = slice.loadUintBig(64);
|
|
384
|
+
const deleteDueLimit = slice.loadUintBig(64);
|
|
385
|
+
return {
|
|
386
|
+
gasPrice,
|
|
387
|
+
gasLimit,
|
|
388
|
+
specialGasLimit,
|
|
389
|
+
gasCredit,
|
|
390
|
+
blockGasLimit,
|
|
391
|
+
freezeDueLimit,
|
|
392
|
+
deleteDueLimit
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
else if (tag === 0xdd) {
|
|
396
|
+
const gasPrice = slice.loadUintBig(64);
|
|
397
|
+
const gasLimit = slice.loadUintBig(64);
|
|
398
|
+
const gasCredit = slice.loadUintBig(64);
|
|
399
|
+
const blockGasLimit = slice.loadUintBig(64);
|
|
400
|
+
const freezeDueLimit = slice.loadUintBig(64);
|
|
401
|
+
const deleteDueLimit = slice.loadUintBig(64);
|
|
402
|
+
return {
|
|
403
|
+
gasPrice,
|
|
404
|
+
gasLimit,
|
|
405
|
+
gasCredit,
|
|
406
|
+
blockGasLimit,
|
|
407
|
+
freezeDueLimit,
|
|
408
|
+
deleteDueLimit
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
else {
|
|
412
|
+
throw Error('Invalid config');
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
function configParseGasLimitsPrices(slice) {
|
|
416
|
+
if (!slice) {
|
|
417
|
+
throw Error('Invalid config');
|
|
418
|
+
}
|
|
419
|
+
const tag = slice.loadUint(8);
|
|
420
|
+
if (tag === 0xd1) {
|
|
421
|
+
const flatLimit = slice.loadUintBig(64);
|
|
422
|
+
const flatGasPrice = slice.loadUintBig(64);
|
|
423
|
+
const other = parseGasLimitsInternal(slice);
|
|
424
|
+
return {
|
|
425
|
+
flatLimit,
|
|
426
|
+
flatGasPrice,
|
|
427
|
+
other
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
else {
|
|
431
|
+
throw Error('Invalid config');
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
exports.configParseGasLimitsPrices = configParseGasLimitsPrices;
|
|
435
|
+
function configParseMsgPrices(slice) {
|
|
436
|
+
if (!slice) {
|
|
437
|
+
throw new Error('Invalid config');
|
|
438
|
+
}
|
|
439
|
+
const magic = slice.loadUint(8);
|
|
440
|
+
if (magic !== 0xea) {
|
|
441
|
+
throw new Error('Invalid msg prices param');
|
|
442
|
+
}
|
|
443
|
+
return {
|
|
444
|
+
lumpPrice: slice.loadUintBig(64),
|
|
445
|
+
bitPrice: slice.loadUintBig(64),
|
|
446
|
+
cellPrice: slice.loadUintBig(64),
|
|
447
|
+
ihrPriceFactor: slice.loadUint(32),
|
|
448
|
+
firstFrac: slice.loadUint(16),
|
|
449
|
+
nextFrac: slice.loadUint(16)
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
exports.configParseMsgPrices = configParseMsgPrices;
|
|
453
|
+
// catchain_config#c1 mc_catchain_lifetime:uint32 shard_catchain_lifetime:uint32
|
|
454
|
+
// shard_validators_lifetime:uint32 shard_validators_num:uint32 = CatchainConfig;
|
|
455
|
+
// catchain_config_new#c2 flags:(## 7) { flags = 0 } shuffle_mc_validators:Bool
|
|
456
|
+
// mc_catchain_lifetime:uint32 shard_catchain_lifetime:uint32
|
|
457
|
+
// shard_validators_lifetime:uint32 shard_validators_num:uint32 = CatchainConfig;
|
|
458
|
+
function configParse28(slice) {
|
|
459
|
+
if (!slice) {
|
|
460
|
+
throw new Error('Invalid config');
|
|
461
|
+
}
|
|
462
|
+
const magic = slice.loadUint(8);
|
|
463
|
+
if (magic === 0xc1) {
|
|
464
|
+
const masterCatchainLifetime = slice.loadUint(32);
|
|
465
|
+
const shardCatchainLifetime = slice.loadUint(32);
|
|
466
|
+
const shardValidatorsLifetime = slice.loadUint(32);
|
|
467
|
+
const shardValidatorsCount = slice.loadUint(32);
|
|
468
|
+
return {
|
|
469
|
+
masterCatchainLifetime,
|
|
470
|
+
shardCatchainLifetime,
|
|
471
|
+
shardValidatorsLifetime,
|
|
472
|
+
shardValidatorsCount
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
if (magic === 0xc2) {
|
|
476
|
+
const flags = slice.loadUint(7);
|
|
477
|
+
const suffleMasterValidators = slice.loadBit();
|
|
478
|
+
const masterCatchainLifetime = slice.loadUint(32);
|
|
479
|
+
const shardCatchainLifetime = slice.loadUint(32);
|
|
480
|
+
const shardValidatorsLifetime = slice.loadUint(32);
|
|
481
|
+
const shardValidatorsCount = slice.loadUint(32);
|
|
482
|
+
return {
|
|
483
|
+
flags,
|
|
484
|
+
suffleMasterValidators,
|
|
485
|
+
masterCatchainLifetime,
|
|
486
|
+
shardCatchainLifetime,
|
|
487
|
+
shardValidatorsLifetime,
|
|
488
|
+
shardValidatorsCount
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
throw new Error('Invalid config');
|
|
492
|
+
}
|
|
493
|
+
exports.configParse28 = configParse28;
|
|
494
|
+
// consensus_config#d6 round_candidates:# { round_candidates >= 1 }
|
|
495
|
+
// next_candidate_delay_ms:uint32 consensus_timeout_ms:uint32
|
|
496
|
+
// fast_attempts:uint32 attempt_duration:uint32 catchain_max_deps:uint32
|
|
497
|
+
// max_block_bytes:uint32 max_collated_bytes:uint32 = ConsensusConfig;
|
|
498
|
+
// consensus_config_new#d7 flags:(## 7) { flags = 0 } new_catchain_ids:Bool
|
|
499
|
+
// round_candidates:(## 8) { round_candidates >= 1 }
|
|
500
|
+
// next_candidate_delay_ms:uint32 consensus_timeout_ms:uint32
|
|
501
|
+
// fast_attempts:uint32 attempt_duration:uint32 catchain_max_deps:uint32
|
|
502
|
+
// max_block_bytes:uint32 max_collated_bytes:uint32 = ConsensusConfig;
|
|
503
|
+
// consensus_config_v3#d8 flags:(## 7) { flags = 0 } new_catchain_ids:Bool
|
|
504
|
+
// round_candidates:(## 8) { round_candidates >= 1 }
|
|
505
|
+
// next_candidate_delay_ms:uint32 consensus_timeout_ms:uint32
|
|
506
|
+
// fast_attempts:uint32 attempt_duration:uint32 catchain_max_deps:uint32
|
|
507
|
+
// max_block_bytes:uint32 max_collated_bytes:uint32
|
|
508
|
+
// proto_version:uint16 = ConsensusConfig;
|
|
509
|
+
function configParse29(slice) {
|
|
510
|
+
if (!slice) {
|
|
511
|
+
throw new Error('Invalid config');
|
|
512
|
+
}
|
|
513
|
+
const magic = slice.loadUint(8);
|
|
514
|
+
if (magic === 0xd6) {
|
|
515
|
+
const roundCandidates = slice.loadUint(32);
|
|
516
|
+
const nextCandidateDelay = slice.loadUint(32);
|
|
517
|
+
const consensusTimeout = slice.loadUint(32);
|
|
518
|
+
const fastAttempts = slice.loadUint(32);
|
|
519
|
+
const attemptDuration = slice.loadUint(32);
|
|
520
|
+
const catchainMaxDeps = slice.loadUint(32);
|
|
521
|
+
const maxBlockBytes = slice.loadUint(32);
|
|
522
|
+
const maxColaltedBytes = slice.loadUint(32);
|
|
523
|
+
return {
|
|
524
|
+
roundCandidates,
|
|
525
|
+
nextCandidateDelay,
|
|
526
|
+
consensusTimeout,
|
|
527
|
+
fastAttempts,
|
|
528
|
+
attemptDuration,
|
|
529
|
+
catchainMaxDeps,
|
|
530
|
+
maxBlockBytes,
|
|
531
|
+
maxColaltedBytes
|
|
532
|
+
};
|
|
533
|
+
}
|
|
534
|
+
else if (magic === 0xd7) {
|
|
535
|
+
const flags = slice.loadUint(7);
|
|
536
|
+
const newCatchainIds = slice.loadBit();
|
|
537
|
+
const roundCandidates = slice.loadUint(8);
|
|
538
|
+
const nextCandidateDelay = slice.loadUint(32);
|
|
539
|
+
const consensusTimeout = slice.loadUint(32);
|
|
540
|
+
const fastAttempts = slice.loadUint(32);
|
|
541
|
+
const attemptDuration = slice.loadUint(32);
|
|
542
|
+
const catchainMaxDeps = slice.loadUint(32);
|
|
543
|
+
const maxBlockBytes = slice.loadUint(32);
|
|
544
|
+
const maxColaltedBytes = slice.loadUint(32);
|
|
545
|
+
return {
|
|
546
|
+
flags,
|
|
547
|
+
newCatchainIds,
|
|
548
|
+
roundCandidates,
|
|
549
|
+
nextCandidateDelay,
|
|
550
|
+
consensusTimeout,
|
|
551
|
+
fastAttempts,
|
|
552
|
+
attemptDuration,
|
|
553
|
+
catchainMaxDeps,
|
|
554
|
+
maxBlockBytes,
|
|
555
|
+
maxColaltedBytes
|
|
556
|
+
};
|
|
557
|
+
}
|
|
558
|
+
else if (magic === 0xd8) {
|
|
559
|
+
const flags = slice.loadUint(7);
|
|
560
|
+
const newCatchainIds = slice.loadBit();
|
|
561
|
+
const roundCandidates = slice.loadUint(8);
|
|
562
|
+
const nextCandidateDelay = slice.loadUint(32);
|
|
563
|
+
const consensusTimeout = slice.loadUint(32);
|
|
564
|
+
const fastAttempts = slice.loadUint(32);
|
|
565
|
+
const attemptDuration = slice.loadUint(32);
|
|
566
|
+
const catchainMaxDeps = slice.loadUint(32);
|
|
567
|
+
const maxBlockBytes = slice.loadUint(32);
|
|
568
|
+
const maxColaltedBytes = slice.loadUint(32);
|
|
569
|
+
const protoVersion = slice.loadUint(16);
|
|
570
|
+
return {
|
|
571
|
+
flags,
|
|
572
|
+
newCatchainIds,
|
|
573
|
+
roundCandidates,
|
|
574
|
+
nextCandidateDelay,
|
|
575
|
+
consensusTimeout,
|
|
576
|
+
fastAttempts,
|
|
577
|
+
attemptDuration,
|
|
578
|
+
catchainMaxDeps,
|
|
579
|
+
maxBlockBytes,
|
|
580
|
+
maxColaltedBytes,
|
|
581
|
+
protoVersion
|
|
582
|
+
};
|
|
583
|
+
}
|
|
584
|
+
else if (magic === 0xd9) {
|
|
585
|
+
const flags = slice.loadUint(7);
|
|
586
|
+
const newCatchainIds = slice.loadBit();
|
|
587
|
+
const roundCandidates = slice.loadUint(8);
|
|
588
|
+
const nextCandidateDelay = slice.loadUint(32);
|
|
589
|
+
const consensusTimeout = slice.loadUint(32);
|
|
590
|
+
const fastAttempts = slice.loadUint(32);
|
|
591
|
+
const attemptDuration = slice.loadUint(32);
|
|
592
|
+
const catchainMaxDeps = slice.loadUint(32);
|
|
593
|
+
const maxBlockBytes = slice.loadUint(32);
|
|
594
|
+
const maxColaltedBytes = slice.loadUint(32);
|
|
595
|
+
const protoVersion = slice.loadUint(16);
|
|
596
|
+
const catchainMaxBlocksCoeff = slice.loadUint(32);
|
|
597
|
+
return {
|
|
598
|
+
flags,
|
|
599
|
+
newCatchainIds,
|
|
600
|
+
roundCandidates,
|
|
601
|
+
nextCandidateDelay,
|
|
602
|
+
consensusTimeout,
|
|
603
|
+
fastAttempts,
|
|
604
|
+
attemptDuration,
|
|
605
|
+
catchainMaxDeps,
|
|
606
|
+
maxBlockBytes,
|
|
607
|
+
maxColaltedBytes,
|
|
608
|
+
protoVersion,
|
|
609
|
+
catchainMaxBlocksCoeff
|
|
610
|
+
};
|
|
611
|
+
}
|
|
612
|
+
throw new Error('Invalid config');
|
|
613
|
+
}
|
|
614
|
+
exports.configParse29 = configParse29;
|
|
615
|
+
// cfg_vote_cfg#36 min_tot_rounds:uint8 max_tot_rounds:uint8 min_wins:uint8 max_losses:uint8 min_store_sec:uint32 max_store_sec:uint32 bit_price:uint32 cell_price:uint32 = ConfigProposalSetup;
|
|
616
|
+
function parseProposalSetup(slice) {
|
|
617
|
+
const magic = slice.loadUint(8);
|
|
618
|
+
if (magic !== 0x36) {
|
|
619
|
+
throw new Error('Invalid config');
|
|
620
|
+
}
|
|
621
|
+
const minTotalRounds = slice.loadUint(8);
|
|
622
|
+
const maxTotalRounds = slice.loadUint(8);
|
|
623
|
+
const minWins = slice.loadUint(8);
|
|
624
|
+
const maxLoses = slice.loadUint(8);
|
|
625
|
+
const minStoreSec = slice.loadUint(32);
|
|
626
|
+
const maxStoreSec = slice.loadUint(32);
|
|
627
|
+
const bitPrice = slice.loadUint(32);
|
|
628
|
+
const cellPrice = slice.loadUint(32);
|
|
629
|
+
return { minTotalRounds, maxTotalRounds, minWins, maxLoses, minStoreSec, maxStoreSec, bitPrice, cellPrice };
|
|
630
|
+
}
|
|
631
|
+
exports.parseProposalSetup = parseProposalSetup;
|
|
632
|
+
// cfg_vote_setup#91 normal_params:^ConfigProposalSetup critical_params:^ConfigProposalSetup = ConfigVotingSetup;
|
|
633
|
+
function parseVotingSetup(slice) {
|
|
634
|
+
if (!slice) {
|
|
635
|
+
throw new Error('Invalid config');
|
|
636
|
+
}
|
|
637
|
+
const magic = slice.loadUint(8);
|
|
638
|
+
if (magic !== 0x91) {
|
|
639
|
+
throw new Error('Invalid config');
|
|
640
|
+
}
|
|
641
|
+
const normalParams = parseProposalSetup(slice.loadRef().beginParse());
|
|
642
|
+
const criticalParams = parseProposalSetup(slice.loadRef().beginParse());
|
|
643
|
+
return { normalParams, criticalParams };
|
|
644
|
+
}
|
|
645
|
+
exports.parseVotingSetup = parseVotingSetup;
|
|
646
|
+
function loadConfigParams(configBase64) {
|
|
647
|
+
const comfigMap = core_1.Cell.fromBase64(configBase64).beginParse().loadDictDirect(core_1.Dictionary.Keys.Int(32), core_1.Dictionary.Values.Cell());
|
|
648
|
+
return comfigMap;
|
|
649
|
+
}
|
|
650
|
+
function loadConfigParamById(configBase64, id) {
|
|
651
|
+
return loadConfigParams(configBase64).get(id);
|
|
652
|
+
}
|
|
653
|
+
exports.loadConfigParamById = loadConfigParamById;
|
|
654
|
+
function loadConfigParamsAsSlice(configBase64) {
|
|
655
|
+
const pramsAsCells = loadConfigParams(configBase64);
|
|
656
|
+
const params = new Map();
|
|
657
|
+
for (const [key, value] of pramsAsCells) {
|
|
658
|
+
params.set(key, value.beginParse());
|
|
659
|
+
}
|
|
660
|
+
return params;
|
|
661
|
+
}
|
|
662
|
+
exports.loadConfigParamsAsSlice = loadConfigParamsAsSlice;
|
|
663
|
+
function parseFullConfig(configs) {
|
|
664
|
+
return {
|
|
665
|
+
configAddress: configParseMasterAddressRequired(configs.get(0)),
|
|
666
|
+
electorAddress: configParseMasterAddressRequired(configs.get(1)),
|
|
667
|
+
minterAddress: configParseMasterAddress(configs.get(2)),
|
|
668
|
+
feeCollectorAddress: configParseMasterAddress(configs.get(3)),
|
|
669
|
+
dnsRootAddress: configParseMasterAddress(configs.get(4)),
|
|
670
|
+
burningConfig: configParse5(configs.get(5)),
|
|
671
|
+
globalVersion: configParse8(configs.get(8)),
|
|
672
|
+
workchains: configParse12(configs.get(12)),
|
|
673
|
+
voting: parseVotingSetup(configs.get(11)),
|
|
674
|
+
validators: {
|
|
675
|
+
...configParse15(configs.get(15)),
|
|
676
|
+
...configParse16(configs.get(16)),
|
|
677
|
+
...configParse17(configs.get(17))
|
|
678
|
+
},
|
|
679
|
+
storagePrices: configParse18(configs.get(18)),
|
|
680
|
+
gasPrices: {
|
|
681
|
+
masterchain: configParseGasLimitsPrices(configs.get(20)),
|
|
682
|
+
workchain: configParseGasLimitsPrices(configs.get(21)),
|
|
683
|
+
},
|
|
684
|
+
msgPrices: {
|
|
685
|
+
masterchain: configParseMsgPrices(configs.get(24)),
|
|
686
|
+
workchain: configParseMsgPrices(configs.get(25)),
|
|
687
|
+
},
|
|
688
|
+
validatorSets: {
|
|
689
|
+
prevValidators: configParseValidatorSet(configs.get(32)),
|
|
690
|
+
prevTempValidators: configParseValidatorSet(configs.get(33)),
|
|
691
|
+
currentValidators: configParseValidatorSet(configs.get(34)),
|
|
692
|
+
currentTempValidators: configParseValidatorSet(configs.get(35)),
|
|
693
|
+
nextValidators: configParseValidatorSet(configs.get(36)),
|
|
694
|
+
nextTempValidators: configParseValidatorSet(configs.get(37))
|
|
695
|
+
},
|
|
696
|
+
validatorsPunish: configParse40(configs.get(40)),
|
|
697
|
+
bridges: {
|
|
698
|
+
ethereum: configParseBridge(configs.get(71)),
|
|
699
|
+
binance: configParseBridge(configs.get(72)),
|
|
700
|
+
polygon: configParseBridge(configs.get(73))
|
|
701
|
+
},
|
|
702
|
+
catchain: configParse28(configs.get(28)),
|
|
703
|
+
consensus: configParse29(configs.get(29))
|
|
704
|
+
// TODO: mint_new_price:Grams mint_add_price:Grams = ConfigParam 6;
|
|
705
|
+
// TODO: to_mint:ExtraCurrencyCollection = ConfigParam 7
|
|
706
|
+
// TODO: mandatory_params:(Hashmap 32 True) = ConfigParam 9
|
|
707
|
+
// TODO: critical_params:(Hashmap 32 True) = ConfigParam 10
|
|
708
|
+
// TODO: BlockCreateFees = ConfigParam 14
|
|
709
|
+
};
|
|
710
|
+
}
|
|
711
|
+
exports.parseFullConfig = parseFullConfig;
|