@tonappchain/sdk 0.7.2-alpha-17 → 0.7.2-alpha-20
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/artifacts/dev/ton/internal/wrappers/CrossChainLayer.js +6 -2
- package/dist/artifacts/testnet/ton/internal/build/CrossChainLayer.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/Executor.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/JettonMinter.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/JettonProxy.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/JettonWallet.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/NFTItem.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/NFTProxy.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/build/Settings.compiled.json +1 -1
- package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.d.ts +65 -6
- package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.js +169 -18
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.d.ts +4 -2
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.js +5 -3
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.d.ts +9 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.js +10 -1
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.d.ts +7 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.js +9 -2
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.d.ts +9 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.js +9 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.d.ts +7 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.js +7 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.d.ts +7 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.js +8 -1
- package/dist/artifacts/testnet/ton/internal/wrappers/Settings.d.ts +1 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/Settings.js +1 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/utils/CrossChainLayerPayload.d.ts +10 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/utils/CrossChainLayerPayload.js +24 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +2 -1
- package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.js +9 -1
- package/dist/src/adapters/OpenerUtils.js +3 -2
- package/dist/src/adapters/TonClient4Opener.d.ts +1 -0
- package/dist/src/adapters/TonClient4Opener.js +9 -1
- package/dist/src/adapters/TonClientOpener.d.ts +2 -0
- package/dist/src/adapters/TonClientOpener.js +11 -1
- package/dist/src/errors/errors.js +29 -12
- package/dist/src/errors/instances.js +32 -11
- package/dist/src/sdk/StartTracking.d.ts +3 -3
- package/dist/src/sdk/StartTracking.js +3 -2
- package/package.json +12 -6
|
@@ -391,8 +391,12 @@ class CrossChainLayer {
|
|
|
391
391
|
const protocolFeeSupply = Number((0, core_1.fromNano)(result.stack.readNumber()));
|
|
392
392
|
const executorCode = result.stack.readCell();
|
|
393
393
|
const groupPublicKey = result.stack.readBigNumber();
|
|
394
|
-
|
|
395
|
-
|
|
394
|
+
let stakingAdapterAddress;
|
|
395
|
+
let stakedTonSupply;
|
|
396
|
+
if (result.stack.remaining > 0) {
|
|
397
|
+
stakingAdapterAddress = result.stack.readAddressOpt()?.toString();
|
|
398
|
+
stakedTonSupply = Number((0, core_1.fromNano)(result.stack.readBigNumber()));
|
|
399
|
+
}
|
|
396
400
|
return {
|
|
397
401
|
adminAddress,
|
|
398
402
|
newAdminAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "hash": "2f7a13d127de8b3a847392fe6d2e2a7008ea740706d0b3e8865c0c0865ef36fd", "hashBase64": "L3oT0SfeizqEc5L+bS4qcAjqdAcG0LPohlwMCGXvNv0=", "hex": "b5ee9c7241022e01000e14000114ff00f4a413f4bcf2c80b0102016202240168d0eda2edfb20c700925f04e001d0d3030171b0925f04e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f0101d33f01120301fced44d0fa4001f861fa4001f862fa4001f863d401d0fa0001f86cfa0001f86bfa0030f86dd401f86ed430d0d32f01f86ad32f01f866d32f01f867d32f01f868d32f01f869d30301f864f40430f8655365a1f845f80701830cf94130f8075003a101a655820086e65003a0128209e1338070f8370170f836a066b608a1a6640403fe5166a122821048e660b5ba8e5a6c7181193c70f8365cbcf2e064f84d59a1a0f86df845f844c8f84a01cb2ff84601cb2ff84701cb2ff84801cb2ff84901cb2fcb03f400c9f84ec8f84cfa02f84bfa02f84dfa02c9c8f841cf16f842cf16f843cf16ccccccc9ed54e02282106c582059bae3002282100e50d313bae302303435050a1302fe03d31ffa00f404fa4055302170547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e255027f266ec000f84cf84b5007a816a05240b915b0927034de5320a022a027a02e81354470f836a0a052c0be5240b0e30210365f06288014fb02c88210ae7df95b2502cb1fcb3f12cb1f22cf16c9702702060901fe3339393a3b5266a05008a05008a026a08014fb02f84d5004a0f86df845f844c8f84a01cb2ff84601cb2ff84701cb2ff84801cb2ff84901cb2fcb03f400c9f84ec8f84cfa02f84bfa02f84dfa02c9c8f841cf16f842cf16f843cf16ccccccc9ed54216ec0009d01c8f400f84cfa02f84bfa02c992316de205c8cb1f2101cb3f0701925003cf165003fa0213f40001cf16c982106c582059017f830771800cc8cb03cb01cb0813cbff02957158cb61cc987058cb6101d0cf16e2c98010fb0021d70b01c000b3915be30ddb31080076c88210d53276db5802cb1fcb3fc970018010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000748010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f80fc000938100cc928064e2f2f00303ee323501fa40d4d4f828f84e52300270705003c85003cf168b02cf16ca00ccc921c8cb0113f40012f400cb00c97001f90074c8cb0212ca07cbffc9d05006c705f2e04701d7393078d721d3ff0131f8458307f40e6fa131f2e0c920d0f404f401fa40fa003020c300935b3234e30ddb3c5222a1c200f2e0640b0e1102f8280441381523d70b01c0008e64aa00814cfb70f836a0738103b582100966018070f837a0801c8127e08209e1338070f837a0a47020c88210d7b9c06e580802cb1fcb3f23cf165004fa0258cf1671fa0214cb00cb00c970c87001ca0012cccb00c9c87001cbff58cf1658fa02ccc9c8ccc9e30d218307f48e6fa56c120c0d003e306c2270c8c9c87f01ca00cccb00c9c87001cbff58cf1658fa02ccc9c8ccc9001a91a4923070e201d0028307f41602f670207f8ef6238307f47c6fa5208ee702d430d0d3ff0130fa40fa00d430d0d2000101d4f40430206e8e2e3054232080108011226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb008e90c802d012cf162310355980108011db3ce2019213a09414a04313e2029132e201b30f1000a28e4dc85801cb055005cf165003fa0254712323ed41ed43ed44ed45ed479f5bc85003cf17c913775003cb6bcccced67ed65ed64ed63ed61747fed11987601cb6bcc01cf17ed41edf101f2ffc901fb00db060008e6306c1201faf845f844c8f84a01cb2ff84601cb2ff84701cb2ff84801cb2ff84901cb2fcb03f400c9f84ec8f84cfa02f84bfa02f84dfa02c9c8f841cf16f842cf16f843cf16ccccccc9ed5482100e50d31350047f830771800cc8cb03cb01cb0813cbff02957158cb61cc987058cb6101d0cf16e2c98010fb0014a101a1f84d5210be1200a6f2e0658010fb0201fa403020d70b01c000b38e3cc88210d53276db580302cb1fcb3fc970018010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00915be204ec248210cf6a5da4bae30224821023b05641bae302332382101f95f86cba8ecd135f03f84dc300f2e0c8c88210f358b6d05802cb1fcb3ff84dfa02c9f841f84d58801072226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0070f86de031228210063199b7ba1417221a03fa3403d4f828f84e52300270705003c85003cf168b02cf16ca00ccc921c8cb0113f40012f400cb00c97001f90074c8cb0212ca07cbffc9d05005c705f2e047028014fb0202fa40308210cf6a5da4587f830771800cc8cb03cb01cb0813cbff02957158cb61cc987058cb6101d0cf16e2c98010fb0020d70b01c000b3e30f1516220078c88210ae7df95b580302cb1fcb3fc970018010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000025b01fe34f8435210c705f2e048f823f849bef2e0ca03d3ff01f84802d32f0131f868f848f849bef2e0cb038014fb02f847f866f823f867f847f84aa0f869f823f844f84aa8a1f8458307f4866fa5908e1c01d32f013122bb9bf84552108307f45b30f865def8458307f47c6fa5e85f03c8f84901cb2fc9d0f84552408307f416f8651801c2c8500301cbff5801cb2ff84801cb2ff84601cb2ff84701cb2ff84901cb2fc9821023b05641017f830771800cc8cb03cb01cb0813cbff02957158cb61cc987058cb6101d0cf16e2c98010fb00c88210d53276db5802cb1fcb3fc9700180108100821900d8226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f845f844c8f84a01cb2ff84601cb2ff84701cb2ff84801cb2ff84901cb2fcb03f400c9f84ec8f84cfa02f84bfa02f84dfa02c9c8f841cf16f842cf16f843cf16ccccccc9ed5404fa8e5432f84112c705f2e046fa0030f86bf845f844c8f84a01cb2ff84601cb2ff84701cb2ff84801cb2ff84901cb2fcb03f400c9f84ec8f84cfa02f84bfa02f84dfa02c9c8f841cf16f842cf16f843cf16ccccccc9ed54e02282103531465cbae3022282105cec6be0bae302228210581879bcbae30222821060094a1bba1b1c1d1e00a832f84112c705f2e046fa0030f86cf845f844c8f84a01cb2ff84601cb2ff84701cb2ff84801cb2ff84901cb2fcb03f400c9f84ec8f84cfa02f84bfa02f84dfa02c9c8f841cf16f842cf16f843cf16ccccccc9ed5400a832f84112c705f2e046fa4030f863f845f844c8f84a01cb2ff84601cb2ff84701cb2ff84801cb2ff84901cb2fcb03f400c9f84ec8f84cfa02f84bfa02f84dfa02c9c8f841cf16f842cf16f843cf16ccccccc9ed5400ba32f84112c705f2e046fa4030f862f8428b02c705f2d050f845f844c8f84a01cb2ff84601cb2ff84701cb2ff84801cb2ff84901cb2fcb03f400c9f84ec8f84cfa02f84bfa02f84dfa02c9c8f841cf16f842cf16f843cf16ccccccc9ed5404f88e536c21f841c705f2e0468b02f862f845f844c8f84a01cb2ff84601cb2ff84701cb2ff84801cb2ff84901cb2fcb03f400c9f84ec8f84cfa02f84bfa02f84dfa02c9c8f841cf16f842cf16f843cf16ccccccc9ed54e02282106a4fbe34bae30222821020faec53bae3022282107ee5a6d0bae302228210e97250b7ba1f20212300ae6c21f842c705f2e049f842f8618b02f862f845f844c8f84a01cb2ff84601cb2ff84701cb2ff84801cb2ff84901cb2fcb03f400c9f84ec8f84cfa02f84bfa02f84dfa02c9c8f841cf16f842cf16f843cf16ccccccc9ed54002e32f84112c705f2e046d421fb0401d0ed1eed53d430ed54017c32f84112c705f2e046d430f86e6df86582107ee5a6d0c8c970830771800cc8cb03cb01cb0813cbff02957158cb61cc987058cb6101d0cf16e2c98010fb0022008cf845f844c8f84a01cb2ff84601cb2ff84701cb2ff84801cb2ff84901cb2fcb03f400c9f84ec8f84cfa02f84bfa02f84dfa02c9c8f841cf16f842cf16f843cf16ccccccc9ed5400ca8e5532f84112c705f2e046d32f0131f86af845f844c8f84a01cb2ff84601cb2ff84701cb2ff84801cb2ff84901cb2fcb03f400c9f84ec8f84cfa02f84bfa02f84dfa02c9c8f841cf16f842cf16f843cf16ccccccc9ed54e05b8210d53276dbbadc840ff2f00201202529020158262700d9b444bda89a1f48003f0c3f48003f0c5f48003f0c7a803a1f40003f0d9f40003f0d7f40061f0dba803f0dda861a1a65e03f0d5a65e03f0cda65e03f0cfa65e03f0d1a65e03f0d3a60603f0c9e80861f0cbf083f085f087f089f08bf08df08ff091f095f093f099f097f09bf09d001f9b4817da89a1f48003f0c3f48003f0c5f48003f0c7a803a1f40003f0d9f40003f0d7f40061f0dba803f0dda861a1a65e03f0d5a65e03f0cda65e03f0cfa65e03f0d1a65e03f0d3a60603f0c9e80861f0cae041f08b060fe90cdf4b211c3003a65e0262a6077928d844a2212261c5f08b060fe8f8df4bd02046be07f08d0280014f847f848f849f84af8440201202a2c01ebb9685ed44d0fa4001f861fa4001f862fa4001f863d401d0fa0001f86cfa0001f86bfa0030f86dd401f86ed430d0d32f01f86ad32f01f866d32f01f867d32f01f868d32f01f869d30301f864f40430f865f828f84e120270705003c85003cf168b02cf16ca00ccc921c8cb0113f40012f400cb00c92082b00207001f90074c8cb0212ca07cbffc9d00101e9bb316ed44d0fa4001f861fa4001f862fa4001f863d401d0fa0001f86cfa0001f86bfa0030f86dd401f86ed430d0d32f01f86ad32f01f866d32f01f867d32f01f868d32f01f869d30301f864f40430f865f828f84e120270705003c85003cf168b02cf16ca00ccc921c8cb0113f40012f400cb00c982d001e7001f90074c8cb0212ca07cbffc9d0ace38ebd" }
|
|
1
|
+
{ "hash": "85de6d2e111cbc56b64af4ac6e0c705806e37d984440d197ff4b6fb39439b672", "hashBase64": "hd5tLhEcvFa2SvSsbgxwWAbjfZhEQNGX/0tvs5Q5tnI=", "hex": "b5ee9c7241024a010017d4000114ff00f4a413f4bcf2c80b010201200245020148032c02f4d0eda2edfb20c700925f04e001d0d30301ed44d0fa4001f861fa4001f862fa4001f863d401d0fa0001f86dfa0001f86cfa0030f86ed401d0d3ff01f864d430f871d401d0d32f01f86bd32f01f867d32f01f868d32f01f869d32f01f86ad30301f865f40430f866d430d0fa4001f86ffa0030f87071b0e302fa400406010a135f03db3c0501748020d721d31f0101d33f01123020821058d9b21bba9a30fa0030f85001a1f8708e1782100659627fba99fa0030f85001a0f8709430f2c096e2e24904f0fa4031fa0031f401fa0031fa00013170f83a02d31f0101d33f01125365a1f846f80701830cf94130f8075003a101a6668200c02b5003a0128209e1338070f8370170f836a066b6085210a1a6645177a123821048e660b5bae3022382106c582059bae300238210497dae1dbae3023035218210cda6f261ba07080e1900da6c818120ed70f8365cbcf2e064f84e59a1a0f86ec8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed5402fe04d31ffa00f404fa4055302170547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e255027f266ec000f84df84c5007a816a05240b915b0927034de5320a022a027a02f813c9170f836a0a052d0be5240b0e30210365f06298014fb02c88210ae7df95b2602cb1fcb3f12cb1f22cf16c9702802090d02fe333839393a3b5254a05006a05008a021a08014fb02f84e5003a0f86ec8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed54266ec00092366de30d020a0b001a06c8f400f84dfa02f84cfa02c9019cc8cb1f2601cb3f5003cf1658fa02f40058cf16c982106c582059017f830771800cc8cb03cb01cb0813cbff02957158cb61cc987058cb6101d0cf16e2c98010fb0020d70b01c000b3915be30ddb310c0078c88210d53276db580302cb1fcb3fc970018010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000748010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f80fc000938100cc928064e2f2f00402fe333602fa40d4d4fa403001d0d3ff0101f404f401fa40fa0030f828f8515250027070500370c85004cf168b02cf1612ca000101cbffcb00c921c8cb0113f40012f400cb00c97001f90074c8cb0212ca07cbffc9d0500ac705f2e04704d7393078d721d3ff0131f8468307f40e6fa131f2e0c927c3009438333530e30d5424600f1102fe26044813505923d70b01c0008e6caa0081505d70f836a0738103b582100966018070f837a0801c8127e08209e1338070f837a0a47020c88210d7b9c06e580802cb1fcb3f23cf165004fa0258cf1671fa0214cb00cb00c9712070c87001ca0014cc13cb0012cb07cb07c9c858cf167f01ca0058fa02ccc9c8ccc9e30d2183073d10002af48e6fa56c1291a4923070e201d0028307f416040304fc54557428705470007f097009a1f84ea15007a18fd551898307f47c6fa5208fc402d430d0fa40d20001209301fa00927058e2d430d0d20001209301fa00927058e2d4f404069232348e95342291348e8d3103d307d3073001c001f2e0cee202e201e30f029132e201b319e65b36365b20c2009831f85001a1f8707f9130e21213161702ee7021c000965b705300f8388f6921c0018ee221c0028e5b21c0048e2a5b8209da9c008019812af85870f837aa008170ae70f836a08019812af870f83c79810f5a70f838a0a4a08e2901c0038e1f308209da9c0080198126955870f8378143e470f836a07281051470f838a4a093f2c0cee2e2e30de30de2414202b8f8502ca153e9a129a15330bc22c200b08ec85b5441145033206e8e2b3080108011226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb008e8cc802d012cf1680108011db3ce214a04313e30d2b1401d428a121a05230bbf2e0665220b608c882103c497a612d02cb1fcb3f2b01cbff21fa0223fa025005cf1613cc12f400c920f80701830cf94130f8075003a1801c813a8a8209e1338070f83781348f58a070f836a00270f838a703a081337270f836a0f84f54200380188011150062226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0051a2a0506aa05055a113a0018e5441145033206e8e2b3080108011226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb008e8cc802d012cf1680108011db3ce215a044142b01e85253a1c200f2e064c8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed54c8500601cbff0101ca00c98210497dae1d01701800fa830771800cc8cb03cb01cb0813cbff02957158cb61cc987058cb6101d0cf16e2c98010fb005042a158a1f84e5210bef2e0658010fb0221d70b01c000b38e3bc88210d53276db5802cb1fcb3fc970018010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00915be204fe8ee031333403d3ff01f828f8515220027070500370c85004cf168b02cf1612ca000101cbffcb00c921c8cb0113f40012f400cb00c97001f90074c8cb0212ca07cbffc9d05005c705f2e047028014fb0201fa4030c82301cbffc98210cda6f261017fe021821074cd76b2bae302352082101f95f86cbae302208210063199b71a1b1c1d01e4830771800cc8cb03cb01cb0813cbff02957158cb61cc987058cb6101d0cf16e2c98010fb0020d70b01c000b38e40c8821086f27385580302cb1fcb3f5801cbffc970018010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00925f03e24900de5b3233f84313c705f2e04801d3ff0131f8648014fb02c8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed54019c10455f05f84ec300f2e0c8c88210f358b6d05802cb1fcb3ff84efa02c9f841f84e58801072226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0070f86e4902feba8e69306c2232f841c705f2e046fa0030f86cc8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed54e02082103531465cbae3022082105cec6be0ba1e1f00d2306c2232f841c705f2e046fa0030f86dc8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed5402fc8e69306c2232f841c705f2e046fa4030f863c8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed54e0208210581879bcbae30220821060094a1bba202100e4306c2232f841c705f2e046fa4030f862f8428b02c705f2d050c8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed5403fe8e6810255f05f841c705f2e0468b02f862c8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed54e02082106a4fbe34bae3022082106e7145f9bae30222232400d810255f05f842c705f2e049f842f8618b02f862c8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed540026306c2232f841c705f2e046d401fb04d430ed5404e62082107ee5a6d0ba8ec0306c2232f841c705f2e046d430f8716df86682107ee5a6d0c8c970830771800cc8cb03cb01cb0813cbff02957158cb61cc987058cb6101d0cf16e2c98010fb00e0208210e97250b7bae302208210d53276dbba925f06e020821074db6fbdbae302208210149c7a93ba4925262700d4306c2232f841c705f2e046d32f0131f86bc8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed5400d2306c2232f841c705f2e046fa4030f86fc8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed5403f08eda30f84112c705f2e046fa00305033a15220bbf2e0cfc8821058d9b21b5802cb1fcb3f21fa02c9f84f522280188010226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f85001a0f870e0208210461d3038bae3023403821046a47169bae3025f04840ff2f049282901ba303233f84113c705f2e04601fa0030f8505210bbf2e0d0c882100659627f580302cb1fcb3f21fa02c9f84f705880188050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f85001a1f8704901d8f84fc705f2e04a01f40430206eb38ed8d0d3ff0101fa40fa00d4f40430f84e17a15005a121be8e3e316c22c85801cbff01fa02c9821049e265430170830771800cc8cb03cb01cb0813cbff02957158cb61cc987058cb6101d0cf16e2c98010fb00f80ff2c065e30d925f03e22a01e64034206e8e2b3080108011226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb008e8cc802d012cf1680108011db3ce2c80101cbffc9821046a471690170830771800cc8cb03cb01cb0813cbff02957158cb61cc987058cb6101d0cf16e2c98010fb002b00a28e4dc85801cb055005cf165003fa0254712323ed41ed43ed44ed45ed479f5bc85003cf17c913775003cb6bcccced67ed65ed64ed63ed61747fed11987601cb6bcc01cf17ed41edf101f2ffc901fb00db060201202d340201202e2f00d3bb769ed44d0fa4001f861fa4001f862fa4001f863d401d0fa0001f86dfa0001f86cfa0030f86ed401d0d3ff01f864d430f871d401d0d32f01f86bd32f01f867d32f01f868d32f01f869d32f01f86ad30301f865f40430f866d430d0fa4001f86ffa0030f870f84ff8508020120303201fbb444bda89a1f48003f0c3f48003f0c5f48003f0c7a803a1f40003f0dbf40003f0d9f40061f0dda803a1a7fe03f0c9a861f0e3a803a1a65e03f0d7a65e03f0cfa65e03f0d1a65e03f0d3a65e03f0d5a60603f0cbe80861f0cda861a1f48003f0dff40061f0e1f083f085f087f08bf08df08ff091f093f097f095f09bf0990310014f84ef851f844f84ff85001cbb4817da89a1f48003f0c3f48003f0c5f48003f0c7a803a1f40003f0dbf40003f0d9f40061f0dda803a1a7fe03f0c9a861f0e3a803a1a65e03f0d7a65e03f0cfa65e03f0d1a65e03f0d3a65e03f0d5a60603f0cbe80861f0cda861a1f48003f0dff40061f0e103300707020f8468307f4866fa5908e1801d32f01315303bc946c2251109130e2f8468307f47c6fa5e810235f03f847f848f849f84af84bf845f8440201203539020120363801d5b6d0bda89a1f48003f0c3f48003f0c5f48003f0c7a803a1f40003f0dbf40003f0d9f40061f0dda803a1a7fe03f0c9a861f0e3a803a1a65e03f0d7a65e03f0cfa65e03f0d1a65e03f0d3a65e03f0d5a60603f0cbe80861f0cda861a1f48003f0dff40061f0e1f051f0a225037006e027070500370c85004cf168b02cf1612ca000101cbffcb00c921c8cb0113f40012f400cb00c9207001f90074c8cb0212ca07cbffc9d001004fb7b17f00e030619f28261f00ea00742034ccd04018056a00740250413c26700e1f06e02e1f06d4100201203a4301fbb40f5f00e4b0619f28261f00ea00743f00fda89a1f48003f0c3f48003f0c5f48003f0c7a803a1f40003f0dbf40003f0d9f40061f0dda803a1a7fe03f0c9a861f0e3a803a1a65e03f0d7a65e03f0cfa65e03f0d1a65e03f0d3a65e03f0d5a60603f0cbe80861f0cda861a1f48003f0dff40061f0e011a1a7fe0261e8086103b02e87f5343a60381037a58a0820812750070f8375348a0a603536aa081037aa070f838525aa0526ba01a70f83818a07181012070f838a0533470f838aa00a082010abd5003a070f83612a017a0810c1c70f836a024c3008e8d70f828541343f83c1024435012926c41e28ae66c21f80758a170f836a03c3f02fe23d70b01c0008e6caa0081505d70f836a0738103b582100966018070f837a0801c8127e08209e1338070f837a0a47020c88210d7b9c06e580802cb1fcb3f23cf165004fa0258cf1671fa0214cb00cb00c9712070c87001ca0014cc13cb0012cb07cb07c9c858cf167f01ca0058fa02ccc9c8ccc9e30d238307f48e6fa56c123d3e0054306c22707121c8c9c87f01ca005006fa0215cc14cb0013cb0712cb07c9c858cf167001ca00ccc9c8ccc9001e91a4923070e201d040148307f41602019a51128307f47c6fa5208ebc02d430d0fa4031d20001209301fa00927058e2d430d0d2000192fa00927001e2d431f404310394303113a08e8d3101d307d3073001c001f2e0cee2029132e201b3124002fc7021c000965b705300f8388f6921c0018ee221c0028e5b21c0048e2a5b8209da9c008019812af85870f837aa008170ae70f836a08019812af870f83c79810f5a70f838a0a4a08e2901c0038e1f308209da9c0080198126955870f8378143e470f836a07281051470f838a4a093f2c0cee2e2e30de30de201a170b60913a04142005a5b8018811c488209e1338070f8377581058e82100966018070f837a08140b570f836a08024814bfa70f838a4a0005a5b801c8127e08209e1338070f8378208278d00738103b55870f837a081535370f836a08042815cb270f838a4a001d5b662dda89a1f48003f0c3f48003f0c5f48003f0c7a803a1f40003f0dbf40003f0d9f40061f0dda803a1a7fe03f0c9a861f0e3a803a1a65e03f0d7a65e03f0cfa65e03f0d1a65e03f0d3a65e03f0d5a60603f0cbe80861f0cda861a1f48003f0dff40061f0e1f051f0a225044006a027070500370c85004cf168b02cf1612ca000101cbffcb00c921c8cb0113f40012f400cb00c97001f90074c8cb0212ca07cbffc9d0013af220c7009130e0d31f840f0282104b19e42abd12f2f28308d71820f9014601faed44d0fa4001f861fa4001f862fa4001f863d401d0fa0001f86dfa0001f86cfa0030f86ed401d0d3ff01f864d430f871d401d0d32f01f86bd32f01f867d32f01f868d32f01f869d32f01f86ad30301f865f40430f866d430d0fa4001f86ffa0030f87001d3ff01f8445e21f910f2a0f84901d32f0131f869f823f849be4701fcf2e0cdf849f84abef2e0cbf800f848f867f823f868f848f84ba0f86af823f845f84ba8a1f8468307f4866fa5908e1c01d32f013122bb9bf84652108307f45b30f866def8468307f47c6fa5e85f03c8f84a01cb2fc9d0f84652308307f416f866c85801cbff0101cb2ff84901cb2ff84701cb2ff84801cb2ff84a01cb2fc948015a82104b19e42a017f830771800cc8cb03cb01cb0813cbff02957158cb61cc987058cb6101d0cf16e2c98010fb004900b2c8f84fcf16f850fa02c9f846f845c8f84b01cb2ff84701cb2ff84801cb2ff84901cb2ff84a01cb2fcb03f400c9f851c8f84401cbffccc9c8f84dfa02f84cfa02f84efa02c9c8f841cf16f842cf16f843cf16ccccccccc9ed5477d5637a" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "hash": "
|
|
1
|
+
{ "hash": "e1813fc7bc8662bfb7862561f4931ff3edde1b562cd21b0dbed7c11a800034d2", "hashBase64": "4YE/x7yGYr+3hiVh9JMf8+3eG1Ys0hsNvtfBGoAANNI=", "hex": "b5ee9c7241020e010002c1000114ff00f4a413f4bcf2c80b010201620208029cd03221c700925f03e0d0d30301ed44d0fa4001f861fa4001f862d20001f863d3ff01f864f40430f86571b08e843031db3ce0fa403001d31f0101d33f011201821042502ab3bae3025f04840ff2f0030501c28020d721d31f0101d33f0112328210497dae1dbaf2e096f84270f8638b02f8626df865f845c8f841cf16f842cf16f84301ca00f84401cbfff400c9ed54c88210cda6f261580302cb1fcb3ff84401cbff01cf16c97076fb02f8417058801081008204004c226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0002cef843f2d0c801d4d4fa40fa4030532501d0d3ff01f864f404f404fa40fa0030f844553010235f03f84458baf2e0cd01f901018307f40e6fa131f2e0cc5ddb3cf80723830cf9413026830cf94130f8075005a15323a60381037a58a0820812750070f8370c54155c0d0601fe7181012070f838506570f838a70314a05970f83ca082010abd58a070f836a08208278d0080668200c02b5870f837a001a0bcb38e362676fb0225706d8010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f80ff230dec88210497dae1d580602cb1fcb3f01cf1612cc0700ba5210cc58cf16c9038010fb02f8417058048018810090226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb007ff863f862f865f845c8f841cf16f842cf16f84301ca00f84401cbfff400c9ed54020148090a0049ba30bd0d3ff01f864f404f404fa40fa0030f844553010245f0401f901018307f40e6fa13180201200b0c0051b444bda89a1f48003f0c3f48003f0c5a40003f0c7a7fe03f0c9e80861f0cbf083f085f087f08bf0890010bb40adb678ff00d003c01d739f2e0c9d30701c003f2e0cad43001f900018307f40e6fa131f2e0cb9ecd8dfe" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "hash": "
|
|
1
|
+
{ "hash": "bcd9666381b77df5b6bb38374e42b3525fc783f8f46faef3e6fc3e556633e58c", "hashBase64": "vNlmY4G3ffW2uzg3TkKzUl/Hg/j0b67z5vw+VWYz5Yw=", "hex": "b5ee9c72410218010004f1000114ff00f4a413f4bcf2c80b0102016202110202ca030f04f7d4831c02497c138007434c0c05c6c2497c1383e900c0074c7c04074cfc0449455284d20072049f82082784ce01c3e0dd4512d82052860053ec0bb51343e80007e187e90007e18be90007e18f5007e1935007e197e1988a0842b9f7e56eeb8c088a08435ee701baeb8c088a0841ef765f7aeb8c08cc8608416061e6f20405060b007432f842c705f2e0498020d721fa40fa00307054130224026df034f84101a0f861f845f844c8f841fa02f842cf16f843cf16ccccf846cf16c9ed54008c32f842c705f2e049fa40fa00fa40fa00f4045e2325473307f034f84101a0f861f40430206eb392f8649130e2f845f844c8f841fa02f842cf16f843cf16ccccf846cf16c9ed5403f86c12fa00fa40f828f84523595970037054201314c85003fa0201cf1601cf16c922c8cb0112f400f400cb00c9f90074c8cb0212ca07cbffc9d05004c705f2e04af84122a1f861f845f844c8f841fa02f842cf16f843cf16ccccf846cf16c9ed5402fa40f40401d0fa00f404f40430103434f8425230c70520e30f7023070809005cc848138210b0afa74d52830a1582106c582059500502cb1fcb3f12cb1f01fa02f40001cf165004cf1658fa02f4000028355b33c88210d53276db580502cb1fcb3f13f400012a928018928010e2049381009093810082e21314db3c0a00988e48c85801cb055004cf1658fa02547120ed41ed43ed44ed45ed479d5bc85003cf17c9127158cb6acced67ed65ed64ed63ed61737fed11977001cb6a01cf17ed41edf101f2ffc901fb00db0503f6ba8e3031f842c705f2e049fa4030f863f8438b02c705f2d050f845f844c8f841fa02f842cf16f843cf16ccccf846cf16c9ed54e021821060094a1bba8e276c21f842c705f2e0498b02f863f845f844c8f841fa02f842cf16f843cf16ccccf846cf16c9ed54e02182106a4fbe34bae30221821023f78ab7bae302320c0d0e00566c21f843c705f2e04bf843f8628b02f863f845f844c8f841fa02f842cf16f843cf16ccccf846cf16c9ed54004c31f842c705f2e049d430f864f845f844c8f841fa02f842cf16f843cf16ccccf846cf16c9ed54008882101754ab63ba8e35f8425210c705f2e049706d80188306226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00e030840ff2f001b7ad32208405e35146560180b2c7f2cfd400fe80be0a33c58073c5807e80bd003e0a3e114408dc150804c5321400fe808073c58073c5b248b232c044bd003d0032c0325c087e401d3232c084b281f2fff2741c1000e00620402436cf201000a28e4dc85801cb055005cf165003fa0254712323ed41ed43ed44ed45ed479f5bc85003cf17c913775003cb6bcccced67ed65ed64ed63ed61747fed11987601cb6bcc01cf17ed41edf101f2ffc901fb00db06020120121502037a2013140054aa25ed44d0fa0001f861fa4001f862fa4001f863d401f864d401f865f866f841f842f843f844f845f8460040a9f7ed44d0fa0001f861fa4001f862fa4001f863d401f864d401f865f866f8460202711617009fadbcf6a2687d0000fc30fd2000fc317d2000fc31ea00fc326a00fc32fc337c147c22acb801b82a10098a642801fd0100e78b00e78b6491646580897a007a00658064fc803a646581096503e5ffe4e840004faf16f6a2687d0000fc30fd2000fc317d2000fc31ea00fc326a00fc32fc337c20bffc217c227c22c06f4040f4" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "hash": "
|
|
1
|
+
{ "hash": "ef238907a22efe60b007b98788d1c9c8e74eca2fcf3df49d708c542528784124", "hashBase64": "7yOJB6Iu/mCwB7mHiNHJyOdOyi/PPfSdcIxUJSh4QSQ=", "hex": "b5ee9c7241020e010003a5000114ff00f4a413f4bcf2c80b01020162020d04f8d020c700925f04e001d0d3030171b0925f04e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f0101d33f0112ed44d0fa4001f861fa4001f862fa4030f8635165a18010811e508209e1338070f83766b608a15155a12182107362d09cbae302303333218210ae7df95bbae3022182107817b330bae30233200307080a018e3101fa0021c2008ebafa40f40401d0fa00f404f404301034342070547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e255023324104b03925f07e20402be04aa015003a001a001a001a081214370f836a0813c9170f836a08115b470f836a08019812af870f83ca0812af870f836a0812ee070f836a08019812af882100966018070f837a080668200c02b8209e1338070f837a015be226eb321b0e30f050600d630c85005cf1624cf1658fa02c9c804103782102906ab024813061582106c582059500502cb1fcb3f12cb1f01fa02f40001cf1613cc12ccc90176fb02f84170588010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000fc32333434443066706d7022c3009430206eb3de20c00091709171e270c882100f8a7ea5580a02cb1fcb3f5006fa025006cf165003cf1615cb005004fa02cb000191cc9131e27001c980108050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f80f938100c8928064e2f2f0013631f841c705f2e0468020d721d430d0fa40fa40fa0030211034706d09012e31f841c705f2e046fa40fa40fa00fa40fa00f4043010560900d27022c3009430206eb3de20c00091709171e270c882100f8a7ea5580a02cb1fcb3f5006fa025006cf165003cf1615cb005004fa02cb000191cc9131e27001c980108050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0002e08210581879bcba8e2730f84212c705f2e047fa4030f863f8438b02c705f2d050c8f841cf16f842cf16f843cf16c9ed54e020821060094a1bba8e1c5bf842c705f2e0478b02f863c8f841cf16f842cf16f843cf16c9ed54e02082106a4fbe34bae30282106e7145f9bae3025b840ff2f00b0c00525bf843c705f2e048f8438b02c705f2d050f843f8628b02f863c8f841cf16f842cf16f843cf16c9ed54002cf84212c705f2e047d421fb0401d0ed1eed53d430ed540035a0844bda89a1f48003f0c3f48003f0c5f48061f0c7f083f085f0878d032a56" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "hash": "
|
|
1
|
+
{ "hash": "6233b33325bdd823e75a7ad68e425df6d9fcd28f399bdee5610eb75a055e3599", "hashBase64": "YjOzMyW92CPnWnrWjkJd9tn80o85m97lYQ63WgVeNZk=", "hex": "b5ee9c7241021501000525000114ff00f4a413f4bcf2c80b0102016202140202ca0313020120041204cdd0831c02497c138007434c0c05c6c2544d7c0fc0e383e903e900c7e800c7d007e800c7e80004c5c3e0e80b4c7c048208403e29fa96ea3a14c0d1676cf3808208405e351466ea3a14c0c96b6cf380d4920841657c1ef2ea3a10d1676cf3817c120840153e8d96ea05090e1101da03d33f0101fa00fa4021f0155bed44d0fa0001f861fa4001f862fa4030f863f84123a1f861f8425006c705f2e2c1f841c2fff2e2c2f843f82a7054201314c85003fa0201cf1601cf16c922c8cb0112f400f400cb00c97021f90074c8cb0212ca07cbffc9d005fa40f401fa00200601fc20d70b009bd74bc00101c001b0f2e2c49130e2c88210178d4519580702cb1fcb3f5004fa02f842cf1601cf1622fa025003cf1643152191729171e2f839206e938129ad9120e2216e9431812ca39101e25023a813a07381034f70f83ca00270f83612a00170f836a0738103b582100966018070f837a0bcf2b070401380180701308050db3cf841f842f843c85003fa0201cf1601cf16c9ed540800a28e4dc85801cb055005cf165003fa0254712323ed41ed43ed44ed45ed479f5bc85003cf17c913775003cb6bcccced67ed65ed64ed63ed61747fed11987601cb6bcc01cf17ed41edf101f2ffc901fb00db0603f2ed44d0fa0001f861fa4001f862fa4030f86303d33f0101fa00f84122a0f861fa40fa40f84327c705f843f82a25595970037054201314c85003fa0201cf1601cf16c922c8cb0112f400f400cb00c9f90074c8cb0212ca07cbffc9d05008c70517b1f2e2c305fa0021925f04e30d22d70b01c000b3925f04e30d0a0b0d0140c882107362d09c2602cb1fcb3f5004fa0258cf1658cf16f8425980188011db3c0c015c03a1f82fa0738103b582100966018070f837b60972fb0270c88210d53276db580402cb1fcb3f128010810082db3c0c00988e48c85801cb055004cf1658fa02547120ed41ed43ed44ed45ed479d5bc85003cf17c9127158cb6acced67ed65ed64ed63ed61737fed11977001cb6a01cf17ed41edf101f2ffc901fb00db050028f841f842f843c85003fa0201cf1601cf16c9ed5401f4ed44d0fa0001f861fa4001f862fa4030f86303d33f0101fa00fa40f40430206e2092316d9201d0e221917093fa0001e222916d9401f40459e20392316d9401f40430e2f84125a1f861f8425008c705f2e2c1f841c2fff2e2c2c821fa0212f40016f400c9c882107bdd97de580502cb1fcb3f58fa02f842cf16210f01e8d70b01c0009331f8429101e2cf16f400c94133f839206e938121cd9120e2216e9431812ca39101e203aa0112a00170f836a081287570f836a0813c9170f836a08125b670f836a00170f836a080668200c02b8209e1338070f837a0801c8127e08209e1338070f837a0bcf2b0f843705880188050100074226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f841f842f843c85003fa0201cf1601cf16c9ed5400b08e51ed44d0fa0001f861fa4001f862fa4030f863738103b582100966018070f83770fb02f842706d8010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00e0840ff2f00013a2fd2210e0007970a6c0009fae200835c87b51343e80007e187e90007e18be900c3e18f4c7c048208405e351466e8060841ef765f7aeac7cb8b1601035c87e800c3e1040683e187e107e10be10f21400fe808073c58073c5b27b55200039a0f605da89a1f40003f0c3f48003f0c5f48061f0c7f083f085f087f05573909161" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "hash": "
|
|
1
|
+
{ "hash": "589990451a76a0b1a6c0e1d70f0410905117f05fa6c97a273d6a1e1f26732ebc", "hashBase64": "WJmQRRp2oLGmwOHXDwQQkFEX8F+myXonPWoeHyZzLrw=", "hex": "b5ee9c72410216010004a6000114ff00f4a413f4bcf2c80b0102016202150202ca0314020120041301bdd0cc8b1c02497c0f83434c0c05c6c238f16fb51343480007e1874ffc07e18b500743e90007e18fe90007e19be900c3e193d010c3e19600835c874c7c04c60841b1608166ebcb832dffe187c0e383e903e900c7e800c7d007e800c7e80004c60504a4ed44d0d20001f861d3ff01f862d401d0fa4001f863fa4001f866fa4030f864f40430f86503d31f0101d33f0112218210bd6ea770bae3022182105fcc3d14bae3022182102fcb26a2bae30221820bb390ceba06070a0b00e8313432f841b3f2e0c8f84301c705f2e048fa4001f864d401f8657ff861f0387581058e82100966018070f83772fb02c8821005138d91580302cb1fcb3f8b02cf1601cf16c9f84470588010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0002c83110344013f841f2e0c9f84414c705f2e047fa4021f0155bfa40d2000130fa0022d70b01c000b35427272191729171e2f839206e9430812dcade02a812a07581058e82100966018070f837a00170f836a0bcf2b020923034e30d02923031e30df864f03808090084c8821005138d912502cb1fcb3ff844cf165006cf16c9544266801071226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00009e22f0155bc88210d53276db5802cb1fcb3fc97581058e82100966018070f83776fb0212700180108306226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000096345b32f841f2e0c9c882108b7717355802cb1fcb3ff84201cbfff843cf16c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00015e8e873110344013db3ce030316c228210ae7df95bba8e12f841b3f2e0c8f846c705f2e0467ff861f038e030840ff2f00c01a0f841f2e0c9f84414c705f2e047fa40f40401d0fa00f404f404301034342070547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e2550233f8465260c70525105b50a443300d04faf839206e9430812d20de5aa058a05003a001aa00a00170f836a0813c9170f836a081121e70f836a080668200c02b8209e1338070f837a07581058e82100966018070f837a0bcf2b0248e123034c88210d53276db580302cb1fcb3ff400e30d70f861f038218e107581058e82100966018070f83776fb02de7022e30f030e0f10110060c88210bcd19310f844102510464303081582106c582059500502cb1fcb3f12cb1f01fa02f40001cf16f844cf1613f400000480180004801001189381009093810082e213db3c1200988e48c85801cb055004cf1658fa02547120ed41ed43ed44ed45ed479d5bc85003cf17c9127158cb6acced67ed65ed64ed63ed61737fed11977001cb6a01cf17ed41edf101f2ffc901fb00db050013a2fd2210e0007970a6c00045ae3e11723e10f3c5be11b3c5be1133c5b2723e104072803e108072fff33d00327b5520007ba11f9fda89a1a40003f0c3a7fe03f0c5a803a1f48003f0c7f48003f0cdf48061f0c9e80861f0cbf08335f083f085f087f089f08bc1f083f085f0871604dbd5959cd1" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "hash": "
|
|
1
|
+
{ "hash": "66d5b121d746cbeb32c1c7ced5ecfeeaeb4c7d2b7a20ec5dbb9048aa0c3c1cdb", "hashBase64": "ZtWxIddGy+sywcfO1ez+6utMfSt6IOxdu5BIqgw8HNs=", "hex": "b5ee9c7241020d01000381000114ff00f4a413f4bcf2c80b01020162020c04f6d020c700925f04e001d0d3030171b0925f04e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f0101d33f01125165a1800f811d588209e1338070f83766b608a15155a1ed44d0fa4001f861fa4001f862fa4030f863218210ae7df95bbae3022182107817b330bae30221821005138d91bae302306c33200304050900c05b6c22f84112c705f2e0468020d721fa40fa4030c882105fcc3d14580402cb1fcb3f22cf1658cf167001ca0070fa027001ca00c9700180108050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000c45b32f841c705f2e046fa40fa40fa0030c882105fcc3d14580602cb1fcb3f21cf1601cf167001ca005003fa027001ca00c90176fb0270018010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0001783101fa40f40401d0fa00f404f404301034342070547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e255023324104a0306029e04aa015003a001a001a001a0811e0870f836a0813c9170f836a081128170f836a0812dca70f836a0801981269582100966018070f837a080668200c02b8209e1338070f837a014be226eb321b0e30f070800c430c8471382108b0929625120071582106c582059500502cb1fcb3f12cb1f01fa02f40001cf1601cf1601cf1612ccc90176fb02f84170588010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000b835355bc882105fcc3d14580502cb1fcb3f22cf1658cf167001ca0070fa027001ca00c912700180108050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f80f938100c8928064e2f2f002e08210581879bcba8e2730f84212c705f2e047fa4030f863f8438b02c705f2d050c8f841cf16f842cf16f843cf16c9ed54e020821060094a1bba8e1c5bf842c705f2e0478b02f863c8f841cf16f842cf16f843cf16c9ed54e02082106a4fbe34bae30282106e7145f9bae3025b840ff2f00a0b00525bf843c705f2e048f8438b02c705f2d050f843f8628b02f863c8f841cf16f842cf16f843cf16c9ed54002cf84212c705f2e047d421fb0401d0ed1eed53d430ed540035a0844bda89a1f48003f0c3f48003f0c5f48061f0c7f083f085f087c02234c5" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "hash": "
|
|
1
|
+
{ "hash": "5f5b34e1aa219ac5e3b92fbe6d4227f4517a2be4ccb13ba6814d72b136e99647", "hashBase64": "X1s04aohmsXjuS++bUIn9FF6K+TMsTumgU1ysTbplkc=", "hex": "b5ee9c72410210010002a6000114ff00f4a413f4bcf2c80b01020162020902f8d020c700925f04e001d0d3030171b0925f04e0fa403001d31f0101d33f0112ed44d0d30701f861fa4001f862fa4001f863f40430f8645154a1f844f80701830cf94130f8075003a170f83601a676820097575003a012821012cc030070f837a066b608a114a1c200f2e064228210245e9406bae302228210581879bc0304005a6c22f84212c705f2e046d3ff0101d430f844128307f417f864f844f841c8cb07f842cf16f843cf16f400c9ed5404feba8e2c6c22f84212c705f2e046fa4030f863f8438b02c705f2d050f844f841c8cb07f842cf16f843cf16f400c9ed54e022821060094a1bba8e22135f03f842c705f2e0468b02f863f844f841c8cb07f842cf16f843cf16f400c9ed54e02282106a4fbe34bae302228210399685b8bae3023001821040148d4abae3025b840f05060708005e135f03f843c705f2e047f8438b02c705f2d050f843f8628b02f863f844f841c8cb07f842cf16f843cf16f400c9ed5400a46c12d3ff013120f8448307f40f6fa130c88210707a28d2580502cb1fcb3f0101cbff12f400c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000080f844c88210cf03b318580402cb1fcb3f12f400c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000004f2f00201200a0d0201580b0c0043b444bda89a1a60e03f0c3f48003f0c5f48003f0c7e80861f0c9f083f085f087f0890003bb4fffda89a1a60e03f0c3f48003f0c5f48003f0c7e80861f0c9f085f087002016a0e0f0037b3093b513434c1c07e187e90007e18be90007e18fd010c3e193e11200043b10dfb513434c1c07e187e90007e18be90007e18fd010c3e193e1120c1fd03dbe860ec13a82d" }
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { Address, Cell, Contract, ContractProvider, Sender, Slice } from '@ton/core';
|
|
2
2
|
import { StorageStats } from './utils/GasUtils';
|
|
3
3
|
import { MerkleRoot } from './utils/MerkleRoots';
|
|
4
|
+
import { CrossChainLayerPayload } from './utils/CrossChainLayerPayload';
|
|
4
5
|
export type CrossChainLayerConfig = {
|
|
5
6
|
adminAddress: string;
|
|
6
7
|
newAdminAddress?: string;
|
|
7
8
|
sequencerMultisigAddress: string;
|
|
9
|
+
groupPublicKey?: bigint;
|
|
8
10
|
maxRootsSize: number;
|
|
9
11
|
merkleRoots?: MerkleRoot[];
|
|
10
12
|
prevEpoch?: number;
|
|
@@ -16,6 +18,8 @@ export type CrossChainLayerConfig = {
|
|
|
16
18
|
tacProtocolFee?: number;
|
|
17
19
|
protocolFeeSupply?: number;
|
|
18
20
|
executorCode: Cell;
|
|
21
|
+
stakingAdapterAddress?: string;
|
|
22
|
+
stakedTonSupply?: number;
|
|
19
23
|
};
|
|
20
24
|
export type EpochInfo = {
|
|
21
25
|
lastMerkleRoot: bigint;
|
|
@@ -25,11 +29,16 @@ export type EpochInfo = {
|
|
|
25
29
|
messageCollectEndTime: number;
|
|
26
30
|
nextVotingTime: number;
|
|
27
31
|
epochDelay: number;
|
|
32
|
+
groupPublicKey: bigint;
|
|
28
33
|
};
|
|
29
34
|
export type ExecutorData = {
|
|
30
35
|
address: Address;
|
|
31
36
|
stateInit: Cell;
|
|
32
37
|
};
|
|
38
|
+
export type StakingInfo = {
|
|
39
|
+
stakingAdapterAddress: Address;
|
|
40
|
+
stakedTonSupply: bigint;
|
|
41
|
+
};
|
|
33
42
|
export declare enum MsgType {
|
|
34
43
|
tonTransfer = 1255570643,
|
|
35
44
|
jettonTransfer = 688302850,
|
|
@@ -39,14 +48,14 @@ export declare enum MsgType {
|
|
|
39
48
|
}
|
|
40
49
|
export declare const CrossChainLayerOpCodes: {
|
|
41
50
|
anyone_tvmMsgToEVM: number;
|
|
42
|
-
|
|
51
|
+
anyone_tvmMsgToEvmErrorNotification: number;
|
|
43
52
|
anyone_excesses: number;
|
|
44
53
|
anyone_addProtocolFee: number;
|
|
45
54
|
anyone_collectProtocolFee: number;
|
|
46
55
|
anyone_collectProtocolFeeNotification: number;
|
|
47
56
|
executor_evmMsgToTVM: number;
|
|
48
|
-
executor_revertSpentParam: number;
|
|
49
57
|
executor_errorNotification: number;
|
|
58
|
+
executor_evmMsgToTvmErrorNotification: number;
|
|
50
59
|
admin_changeAdminAddress: number;
|
|
51
60
|
admin_cancelChangingAdminAddress: number;
|
|
52
61
|
admin_updateCode: number;
|
|
@@ -54,25 +63,45 @@ export declare const CrossChainLayerOpCodes: {
|
|
|
54
63
|
admin_updateEpochDelay: number;
|
|
55
64
|
admin_updateTonProtocolFee: number;
|
|
56
65
|
admin_updateTacProtocolFee: number;
|
|
66
|
+
admin_changeStakingAdapterAddress: number;
|
|
67
|
+
admin_stake: number;
|
|
68
|
+
admin_unstake: number;
|
|
57
69
|
newAdmin_confirmChangingAdminAddress: number;
|
|
58
70
|
sequencerMultisig_changeSequencerMultisigAddress: number;
|
|
59
71
|
sequencerMultisig_updateMerkleRoot: number;
|
|
72
|
+
sequencerMultisig_updateGroupPublicKey: number;
|
|
73
|
+
stakingAdapter_manualUnstakeRequest: number;
|
|
74
|
+
stakingAdapter_automaticUnstakeRequest: number;
|
|
75
|
+
stakingAdapter_stakeRequest: number;
|
|
76
|
+
stakingAdapter_reportUnstakeResult: number;
|
|
77
|
+
stakingAdapter_reportUnstakeResultError: number;
|
|
78
|
+
jettonMinter_mint: number;
|
|
79
|
+
jettonWallet_transferNotification: number;
|
|
80
|
+
jettonWallet_burn: number;
|
|
60
81
|
};
|
|
61
82
|
export declare const CrossChainLayerErrors: {
|
|
62
83
|
noErrors: number;
|
|
84
|
+
invalidSenderSignature: number;
|
|
63
85
|
systemNotEnoughTon: number;
|
|
64
86
|
notFromAdmin: number;
|
|
65
87
|
notFromExecutor: number;
|
|
66
88
|
notFromSequencerMultisig: number;
|
|
67
89
|
notFromNewAdmin: number;
|
|
90
|
+
notFromStakingAdapter: number;
|
|
68
91
|
newAdminAddressIsNone: number;
|
|
69
92
|
notEnoughTon: number;
|
|
70
93
|
insufficientBalance: number;
|
|
94
|
+
insufficientStakedBalance: number;
|
|
71
95
|
zeroFeeSupply: number;
|
|
72
96
|
invalidProof: number;
|
|
73
97
|
votingNotActive: number;
|
|
74
98
|
messageCollectEndTimeLow: number;
|
|
75
99
|
notEnoughProtocolFee: number;
|
|
100
|
+
messageCollectEndTimeHigh: number;
|
|
101
|
+
feeCalculationUnsupported: number;
|
|
102
|
+
stakeAmountTooHigh: number;
|
|
103
|
+
unstakeAmountTooHigh: number;
|
|
104
|
+
unknownOp: number;
|
|
76
105
|
};
|
|
77
106
|
export declare function crossChainLayerConfigToCell(config: CrossChainLayerConfig): Cell;
|
|
78
107
|
export declare class CrossChainLayer implements Contract {
|
|
@@ -81,9 +110,14 @@ export declare class CrossChainLayer implements Contract {
|
|
|
81
110
|
code: Cell;
|
|
82
111
|
data: Cell;
|
|
83
112
|
} | undefined;
|
|
113
|
+
static tvmMsgToEvmGasConsumption: bigint;
|
|
114
|
+
static feeMinterGasConsumption: bigint;
|
|
115
|
+
static collectionMintGasConsumption: bigint;
|
|
84
116
|
static minStorageDuration: number;
|
|
85
117
|
static storageStats: StorageStats;
|
|
86
118
|
static addFeeGasConsumption: bigint;
|
|
119
|
+
static reserveFee: bigint;
|
|
120
|
+
static reportUnstakeResultGasConsumption: bigint;
|
|
87
121
|
constructor(address: Address, init?: {
|
|
88
122
|
code: Cell;
|
|
89
123
|
data: Cell;
|
|
@@ -108,10 +142,15 @@ export declare class CrossChainLayer implements Contract {
|
|
|
108
142
|
}): Promise<void>;
|
|
109
143
|
sendErrorNotification(provider: ContractProvider, via: Sender, value: bigint, opts: {
|
|
110
144
|
queryId?: number;
|
|
111
|
-
|
|
145
|
+
operationId: bigint;
|
|
112
146
|
responseAddress: Address;
|
|
113
147
|
}): Promise<void>;
|
|
114
|
-
|
|
148
|
+
sendUpdateGroupPublicKey(provider: ContractProvider, via: Sender, value: bigint, opts: {
|
|
149
|
+
queryId?: number;
|
|
150
|
+
groupPublicKey: bigint;
|
|
151
|
+
}): Promise<void>;
|
|
152
|
+
buildSignedUpdateMerkleRoot(secretKey: Buffer, merkleRoot: bigint, messageCollectEndTime: number): Cell;
|
|
153
|
+
sendUpdateMerkleRoot(provider: ContractProvider, secretKey: Buffer, opts: {
|
|
115
154
|
queryId?: number;
|
|
116
155
|
merkleRoot: bigint;
|
|
117
156
|
messageCollectEndTime: number;
|
|
@@ -157,8 +196,28 @@ export declare class CrossChainLayer implements Contract {
|
|
|
157
196
|
queryId?: number;
|
|
158
197
|
code: Cell;
|
|
159
198
|
}): Promise<void>;
|
|
199
|
+
sendExcesses(provider: ContractProvider, via: Sender, value: bigint): Promise<void>;
|
|
200
|
+
sendChangeStakingAdapter(provider: ContractProvider, via: Sender, value: bigint, opts: {
|
|
201
|
+
queryId?: number;
|
|
202
|
+
stakingAdapterAddress: string;
|
|
203
|
+
}): Promise<void>;
|
|
204
|
+
sendStake(provider: ContractProvider, via: Sender, value: bigint, opts: {
|
|
205
|
+
queryId?: number;
|
|
206
|
+
stakeAmount: number | bigint;
|
|
207
|
+
}): Promise<void>;
|
|
208
|
+
sendUnstake(provider: ContractProvider, via: Sender, value: bigint, opts: {
|
|
209
|
+
queryId?: number;
|
|
210
|
+
unstakeAmount: number | bigint;
|
|
211
|
+
}): Promise<void>;
|
|
212
|
+
sendReportUnstakeResult(provider: ContractProvider, via: Sender, value: bigint, opts: {
|
|
213
|
+
queryId?: number;
|
|
214
|
+
payload: CrossChainLayerPayload;
|
|
215
|
+
}): Promise<void>;
|
|
160
216
|
getFullData(provider: ContractProvider): Promise<CrossChainLayerConfig>;
|
|
161
217
|
getCurrentEpochInfo(provider: ContractProvider): Promise<EpochInfo>;
|
|
162
|
-
|
|
163
|
-
|
|
218
|
+
getStakingInfo(provider: ContractProvider): Promise<StakingInfo>;
|
|
219
|
+
getExecutorAddress(provider: ContractProvider, operationId: bigint): Promise<Address>;
|
|
220
|
+
getStorageFee(provider: ContractProvider, merkleRoots: Cell): Promise<bigint>;
|
|
221
|
+
getExecutorData(provider: ContractProvider, operationId: bigint): Promise<ExecutorData>;
|
|
222
|
+
getEvmMsgToTvmFees(provider: ContractProvider, payload: Cell, proofBits: bigint, proofCells: bigint, executorFeeAmount: bigint, executorFeeToken: Address): Promise<bigint>;
|
|
164
223
|
}
|
|
@@ -3,9 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CrossChainLayer = exports.CrossChainLayerErrors = exports.CrossChainLayerOpCodes = exports.MsgType = void 0;
|
|
4
4
|
exports.crossChainLayerConfigToCell = crossChainLayerConfigToCell;
|
|
5
5
|
const core_1 = require("@ton/core");
|
|
6
|
+
const crypto_1 = require("@ton/crypto");
|
|
6
7
|
const Constants_1 = require("./Constants");
|
|
7
8
|
const GasUtils_1 = require("./utils/GasUtils");
|
|
8
9
|
const MerkleRoots_1 = require("./utils/MerkleRoots");
|
|
10
|
+
const CrossChainLayerPayload_1 = require("./utils/CrossChainLayerPayload");
|
|
9
11
|
var MsgType;
|
|
10
12
|
(function (MsgType) {
|
|
11
13
|
MsgType[MsgType["tonTransfer"] = 1255570643] = "tonTransfer";
|
|
@@ -16,40 +18,60 @@ var MsgType;
|
|
|
16
18
|
})(MsgType || (exports.MsgType = MsgType = {}));
|
|
17
19
|
exports.CrossChainLayerOpCodes = {
|
|
18
20
|
anyone_tvmMsgToEVM: 0x6c582059,
|
|
19
|
-
|
|
21
|
+
anyone_tvmMsgToEvmErrorNotification: 0xae7df95b,
|
|
20
22
|
anyone_excesses: 0xd53276db,
|
|
21
23
|
anyone_addProtocolFee: 0x48e660b5,
|
|
22
24
|
anyone_collectProtocolFee: 0x1f95f86c,
|
|
23
25
|
anyone_collectProtocolFeeNotification: 0xf358b6d0,
|
|
24
|
-
executor_evmMsgToTVM:
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
executor_evmMsgToTVM: 0x497dae1d,
|
|
27
|
+
executor_errorNotification: 0xcda6f261,
|
|
28
|
+
executor_evmMsgToTvmErrorNotification: 0x86f27385,
|
|
27
29
|
admin_changeAdminAddress: 0x581879bc,
|
|
28
30
|
admin_cancelChangingAdminAddress: 0x60094a1b,
|
|
29
|
-
admin_updateCode:
|
|
31
|
+
admin_updateCode: 0x6e7145f9,
|
|
30
32
|
admin_updateExecutorCode: 0x7ee5a6d0,
|
|
31
33
|
admin_updateEpochDelay: 0xe97250b7,
|
|
32
34
|
admin_updateTonProtocolFee: 0x063199b7,
|
|
33
35
|
admin_updateTacProtocolFee: 0x3531465c,
|
|
36
|
+
admin_changeStakingAdapterAddress: 0x74db6fbd,
|
|
37
|
+
admin_stake: 0x149c7a93,
|
|
38
|
+
admin_unstake: 0x461d3038,
|
|
34
39
|
newAdmin_confirmChangingAdminAddress: 0x6a4fbe34,
|
|
35
40
|
sequencerMultisig_changeSequencerMultisigAddress: 0x5cec6be0,
|
|
36
|
-
sequencerMultisig_updateMerkleRoot:
|
|
41
|
+
sequencerMultisig_updateMerkleRoot: 0x4b19e42a,
|
|
42
|
+
sequencerMultisig_updateGroupPublicKey: 0x74cd76b2,
|
|
43
|
+
stakingAdapter_manualUnstakeRequest: 0x0659627f,
|
|
44
|
+
stakingAdapter_automaticUnstakeRequest: 0x3c497a61,
|
|
45
|
+
stakingAdapter_stakeRequest: 0x58d9b21b,
|
|
46
|
+
stakingAdapter_reportUnstakeResult: 0x46a47169,
|
|
47
|
+
stakingAdapter_reportUnstakeResultError: 0x49e26543,
|
|
48
|
+
jettonMinter_mint: 0xd7b9c06e,
|
|
49
|
+
jettonWallet_transferNotification: 0x7362d09c,
|
|
50
|
+
jettonWallet_burn: 0x595f07bc,
|
|
37
51
|
};
|
|
38
52
|
exports.CrossChainLayerErrors = {
|
|
39
53
|
noErrors: 0,
|
|
54
|
+
invalidSenderSignature: 32,
|
|
40
55
|
systemNotEnoughTon: 37,
|
|
41
56
|
notFromAdmin: 70,
|
|
42
57
|
notFromExecutor: 71,
|
|
43
58
|
notFromSequencerMultisig: 72,
|
|
44
59
|
notFromNewAdmin: 73,
|
|
60
|
+
notFromStakingAdapter: 74,
|
|
45
61
|
newAdminAddressIsNone: 80,
|
|
46
62
|
notEnoughTon: 100,
|
|
47
63
|
insufficientBalance: 101,
|
|
64
|
+
insufficientStakedBalance: 102,
|
|
48
65
|
zeroFeeSupply: 200,
|
|
49
66
|
invalidProof: 201,
|
|
50
67
|
votingNotActive: 202,
|
|
51
68
|
messageCollectEndTimeLow: 203,
|
|
52
69
|
notEnoughProtocolFee: 204,
|
|
70
|
+
messageCollectEndTimeHigh: 205,
|
|
71
|
+
feeCalculationUnsupported: 206,
|
|
72
|
+
stakeAmountTooHigh: 207,
|
|
73
|
+
unstakeAmountTooHigh: 208,
|
|
74
|
+
unknownOp: 0xfffff,
|
|
53
75
|
};
|
|
54
76
|
function crossChainLayerConfigToCell(config) {
|
|
55
77
|
return (0, core_1.beginCell)()
|
|
@@ -61,7 +83,10 @@ function crossChainLayerConfigToCell(config) {
|
|
|
61
83
|
.storeCoins(config.tonProtocolFee ? (0, core_1.toNano)(config.tonProtocolFee.toFixed(9)) : 0)
|
|
62
84
|
.storeCoins(config.protocolFeeSupply ? (0, core_1.toNano)(config.protocolFeeSupply.toFixed(9)) : 0)
|
|
63
85
|
.endCell())
|
|
86
|
+
.storeRef((0, core_1.beginCell)()
|
|
87
|
+
.storeUint(config.groupPublicKey ? config.groupPublicKey : 0n, Constants_1.Params.bitsize.hash)
|
|
64
88
|
.storeRef(config.executorCode)
|
|
89
|
+
.endCell())
|
|
65
90
|
.storeRef((0, core_1.beginCell)()
|
|
66
91
|
.storeUint(config.epochDelay, Constants_1.Params.bitsize.time)
|
|
67
92
|
.storeUint(config.prevEpoch ? config.prevEpoch : 0, Constants_1.Params.bitsize.time)
|
|
@@ -69,7 +94,11 @@ function crossChainLayerConfigToCell(config) {
|
|
|
69
94
|
.storeUint(config.messageCollectEndTime ? config.messageCollectEndTime : 0, Constants_1.Params.bitsize.time)
|
|
70
95
|
.storeUint(config.nextVotingTime ? config.nextVotingTime : 0, Constants_1.Params.bitsize.time)
|
|
71
96
|
.storeUint(config.maxRootsSize, 4)
|
|
72
|
-
.storeDict((0, MerkleRoots_1.
|
|
97
|
+
.storeDict((0, MerkleRoots_1.arrayToDict)(config.merkleRoots ?? []))
|
|
98
|
+
.endCell())
|
|
99
|
+
.storeRef((0, core_1.beginCell)()
|
|
100
|
+
.storeAddress(config.stakingAdapterAddress ? core_1.Address.parse(config.stakingAdapterAddress) : null)
|
|
101
|
+
.storeCoins(config.stakedTonSupply ? (0, core_1.toNano)(config.stakedTonSupply.toFixed(9)) : 0)
|
|
73
102
|
.endCell())
|
|
74
103
|
.endCell();
|
|
75
104
|
}
|
|
@@ -129,23 +158,39 @@ class CrossChainLayer {
|
|
|
129
158
|
body: (0, core_1.beginCell)()
|
|
130
159
|
.storeUint(exports.CrossChainLayerOpCodes.executor_errorNotification, 32)
|
|
131
160
|
.storeUint(opts.queryId || 0, 64)
|
|
132
|
-
.
|
|
161
|
+
.storeUint(opts.operationId, Constants_1.Params.bitsize.hash)
|
|
133
162
|
.storeAddress(opts.responseAddress)
|
|
134
163
|
.endCell(),
|
|
135
164
|
});
|
|
136
165
|
}
|
|
137
|
-
async
|
|
166
|
+
async sendUpdateGroupPublicKey(provider, via, value, opts) {
|
|
138
167
|
await provider.internal(via, {
|
|
139
168
|
value,
|
|
140
169
|
sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
|
|
141
170
|
body: (0, core_1.beginCell)()
|
|
142
|
-
.storeUint(exports.CrossChainLayerOpCodes.
|
|
171
|
+
.storeUint(exports.CrossChainLayerOpCodes.sequencerMultisig_updateGroupPublicKey, Constants_1.Params.bitsize.op)
|
|
143
172
|
.storeUint(opts.queryId || 0, Constants_1.Params.bitsize.queryId)
|
|
144
|
-
.storeUint(opts.
|
|
145
|
-
.storeUint(opts.messageCollectEndTime, Constants_1.Params.bitsize.time)
|
|
173
|
+
.storeUint(opts.groupPublicKey, Constants_1.Params.bitsize.hash)
|
|
146
174
|
.endCell(),
|
|
147
175
|
});
|
|
148
176
|
}
|
|
177
|
+
buildSignedUpdateMerkleRoot(secretKey, merkleRoot, messageCollectEndTime) {
|
|
178
|
+
let msg = (0, core_1.beginCell)()
|
|
179
|
+
.storeUint(merkleRoot, Constants_1.Params.bitsize.hash)
|
|
180
|
+
.storeUint(messageCollectEndTime, Constants_1.Params.bitsize.time)
|
|
181
|
+
.endCell();
|
|
182
|
+
let signature = (0, crypto_1.sign)(msg.hash(), secretKey);
|
|
183
|
+
msg = (0, core_1.beginCell)()
|
|
184
|
+
.storeUint(exports.CrossChainLayerOpCodes.sequencerMultisig_updateMerkleRoot, 32)
|
|
185
|
+
.storeBuffer(signature)
|
|
186
|
+
.storeSlice(msg.asSlice())
|
|
187
|
+
.endCell();
|
|
188
|
+
return msg;
|
|
189
|
+
}
|
|
190
|
+
async sendUpdateMerkleRoot(provider, secretKey, opts) {
|
|
191
|
+
const msg = this.buildSignedUpdateMerkleRoot(secretKey, opts.merkleRoot, opts.messageCollectEndTime);
|
|
192
|
+
await provider.external(msg);
|
|
193
|
+
}
|
|
149
194
|
async sendAddProtocolFee(provider, via, value, opts) {
|
|
150
195
|
await provider.internal(via, {
|
|
151
196
|
value,
|
|
@@ -264,6 +309,71 @@ class CrossChainLayer {
|
|
|
264
309
|
.endCell(),
|
|
265
310
|
});
|
|
266
311
|
}
|
|
312
|
+
async sendExcesses(provider, via, value) {
|
|
313
|
+
await provider.internal(via, {
|
|
314
|
+
value,
|
|
315
|
+
sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
|
|
316
|
+
body: (0, core_1.beginCell)().endCell(),
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
async sendChangeStakingAdapter(provider, via, value, opts) {
|
|
320
|
+
await provider.internal(via, {
|
|
321
|
+
value,
|
|
322
|
+
sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
|
|
323
|
+
body: (0, core_1.beginCell)()
|
|
324
|
+
.storeUint(exports.CrossChainLayerOpCodes.admin_changeStakingAdapterAddress, Constants_1.Params.bitsize.op)
|
|
325
|
+
.storeUint(opts.queryId || 0, Constants_1.Params.bitsize.queryId)
|
|
326
|
+
.storeAddress(core_1.Address.parse(opts.stakingAdapterAddress))
|
|
327
|
+
.endCell(),
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
async sendStake(provider, via, value, opts) {
|
|
331
|
+
let stakeAmount;
|
|
332
|
+
if (typeof opts.stakeAmount === 'bigint') {
|
|
333
|
+
stakeAmount = opts.stakeAmount;
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
stakeAmount = (0, core_1.toNano)(opts.stakeAmount.toFixed(9));
|
|
337
|
+
}
|
|
338
|
+
await provider.internal(via, {
|
|
339
|
+
value,
|
|
340
|
+
sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
|
|
341
|
+
body: (0, core_1.beginCell)()
|
|
342
|
+
.storeUint(exports.CrossChainLayerOpCodes.admin_stake, Constants_1.Params.bitsize.op)
|
|
343
|
+
.storeUint(opts.queryId || 0, Constants_1.Params.bitsize.queryId)
|
|
344
|
+
.storeCoins(stakeAmount)
|
|
345
|
+
.endCell(),
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
async sendUnstake(provider, via, value, opts) {
|
|
349
|
+
let unstakeAmount;
|
|
350
|
+
if (typeof opts.unstakeAmount === 'bigint') {
|
|
351
|
+
unstakeAmount = opts.unstakeAmount;
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
unstakeAmount = (0, core_1.toNano)(opts.unstakeAmount.toFixed(9));
|
|
355
|
+
}
|
|
356
|
+
await provider.internal(via, {
|
|
357
|
+
value,
|
|
358
|
+
sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
|
|
359
|
+
body: (0, core_1.beginCell)()
|
|
360
|
+
.storeUint(exports.CrossChainLayerOpCodes.admin_unstake, Constants_1.Params.bitsize.op)
|
|
361
|
+
.storeUint(opts.queryId || 0, Constants_1.Params.bitsize.queryId)
|
|
362
|
+
.storeCoins(unstakeAmount)
|
|
363
|
+
.endCell(),
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
async sendReportUnstakeResult(provider, via, value, opts) {
|
|
367
|
+
await provider.internal(via, {
|
|
368
|
+
value,
|
|
369
|
+
sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
|
|
370
|
+
body: (0, core_1.beginCell)()
|
|
371
|
+
.storeUint(exports.CrossChainLayerOpCodes.stakingAdapter_reportUnstakeResult, Constants_1.Params.bitsize.op)
|
|
372
|
+
.storeUint(opts.queryId || 0, Constants_1.Params.bitsize.queryId)
|
|
373
|
+
.storeMaybeRef((0, CrossChainLayerPayload_1.CrossChainLayerPayloadToCell)(opts.payload))
|
|
374
|
+
.endCell(),
|
|
375
|
+
});
|
|
376
|
+
}
|
|
267
377
|
async getFullData(provider) {
|
|
268
378
|
const result = await provider.get('get_full_data', []);
|
|
269
379
|
const adminAddress = result.stack.readAddress().toString();
|
|
@@ -280,10 +390,18 @@ class CrossChainLayer {
|
|
|
280
390
|
const tonProtocolFee = Number((0, core_1.fromNano)(result.stack.readNumber()));
|
|
281
391
|
const protocolFeeSupply = Number((0, core_1.fromNano)(result.stack.readNumber()));
|
|
282
392
|
const executorCode = result.stack.readCell();
|
|
393
|
+
const groupPublicKey = result.stack.readBigNumber();
|
|
394
|
+
let stakingAdapterAddress;
|
|
395
|
+
let stakedTonSupply;
|
|
396
|
+
if (result.stack.remaining > 0) {
|
|
397
|
+
stakingAdapterAddress = result.stack.readAddressOpt()?.toString();
|
|
398
|
+
stakedTonSupply = Number((0, core_1.fromNano)(result.stack.readBigNumber()));
|
|
399
|
+
}
|
|
283
400
|
return {
|
|
284
401
|
adminAddress,
|
|
285
402
|
newAdminAddress,
|
|
286
403
|
sequencerMultisigAddress,
|
|
404
|
+
groupPublicKey,
|
|
287
405
|
maxRootsSize,
|
|
288
406
|
merkleRoots: (0, MerkleRoots_1.cellToArray)(merkleRoots),
|
|
289
407
|
prevEpoch,
|
|
@@ -295,6 +413,8 @@ class CrossChainLayer {
|
|
|
295
413
|
tonProtocolFee,
|
|
296
414
|
protocolFeeSupply,
|
|
297
415
|
executorCode,
|
|
416
|
+
stakingAdapterAddress,
|
|
417
|
+
stakedTonSupply,
|
|
298
418
|
};
|
|
299
419
|
}
|
|
300
420
|
async getCurrentEpochInfo(provider) {
|
|
@@ -306,6 +426,7 @@ class CrossChainLayer {
|
|
|
306
426
|
const nextVotingTime = result.stack.readNumber();
|
|
307
427
|
const epochDelay = result.stack.readNumber();
|
|
308
428
|
const maxRootsSize = result.stack.readNumber();
|
|
429
|
+
const groupPublicKey = result.stack.readBigNumber();
|
|
309
430
|
return {
|
|
310
431
|
lastMerkleRoot,
|
|
311
432
|
prevEpoch,
|
|
@@ -314,14 +435,28 @@ class CrossChainLayer {
|
|
|
314
435
|
nextVotingTime,
|
|
315
436
|
epochDelay,
|
|
316
437
|
maxRootsSize,
|
|
438
|
+
groupPublicKey,
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
async getStakingInfo(provider) {
|
|
442
|
+
const result = await provider.get('get_staking_info', []);
|
|
443
|
+
const stakingAdapterAddress = result.stack.readAddress();
|
|
444
|
+
const stakedTonSupply = result.stack.readBigNumber();
|
|
445
|
+
return {
|
|
446
|
+
stakingAdapterAddress,
|
|
447
|
+
stakedTonSupply,
|
|
317
448
|
};
|
|
318
449
|
}
|
|
319
|
-
async getExecutorAddress(provider,
|
|
320
|
-
const result = await provider.get('get_executor_address', [{ type: '
|
|
450
|
+
async getExecutorAddress(provider, operationId) {
|
|
451
|
+
const result = await provider.get('get_executor_address', [{ type: 'int', value: operationId }]);
|
|
321
452
|
return result.stack.readAddress();
|
|
322
453
|
}
|
|
323
|
-
async
|
|
324
|
-
const result = await provider.get('
|
|
454
|
+
async getStorageFee(provider, merkleRoots) {
|
|
455
|
+
const result = await provider.get('get_ccl_storage_fee', [{ type: 'cell', cell: merkleRoots }]);
|
|
456
|
+
return result.stack.readBigNumber();
|
|
457
|
+
}
|
|
458
|
+
async getExecutorData(provider, operationId) {
|
|
459
|
+
const result = await provider.get('get_executor_data', [{ type: 'int', value: operationId }]);
|
|
325
460
|
const address = result.stack.readAddress();
|
|
326
461
|
const stateInit = result.stack.readCell();
|
|
327
462
|
return {
|
|
@@ -329,8 +464,24 @@ class CrossChainLayer {
|
|
|
329
464
|
stateInit,
|
|
330
465
|
};
|
|
331
466
|
}
|
|
467
|
+
async getEvmMsgToTvmFees(provider, payload, proofBits, proofCells, executorFeeAmount, executorFeeToken) {
|
|
468
|
+
const result = await provider.get('calculate_evm_msg_to_tvm_fees', [
|
|
469
|
+
{ type: 'cell', cell: payload },
|
|
470
|
+
{ type: 'int', value: proofBits },
|
|
471
|
+
{ type: 'int', value: proofCells },
|
|
472
|
+
{ type: 'int', value: executorFeeAmount },
|
|
473
|
+
{ type: 'slice', cell: (0, core_1.beginCell)().storeAddress(executorFeeToken).endCell() },
|
|
474
|
+
]);
|
|
475
|
+
return result.stack.readBigNumber();
|
|
476
|
+
}
|
|
332
477
|
}
|
|
333
478
|
exports.CrossChainLayer = CrossChainLayer;
|
|
479
|
+
CrossChainLayer.tvmMsgToEvmGasConsumption = 15505n;
|
|
480
|
+
CrossChainLayer.feeMinterGasConsumption = 9904n;
|
|
481
|
+
CrossChainLayer.collectionMintGasConsumption = 9018n;
|
|
334
482
|
CrossChainLayer.minStorageDuration = 365 * 24 * 3600; //1 year
|
|
335
|
-
CrossChainLayer.storageStats = new GasUtils_1.StorageStats(
|
|
336
|
-
|
|
483
|
+
CrossChainLayer.storageStats = new GasUtils_1.StorageStats(49195n, 102n);
|
|
484
|
+
// Gas consumption constants from contracts/imports/precompiled_gas_const/ccl_gas_utils.fc
|
|
485
|
+
CrossChainLayer.addFeeGasConsumption = 8429n;
|
|
486
|
+
CrossChainLayer.reserveFee = 100n;
|
|
487
|
+
CrossChainLayer.reportUnstakeResultGasConsumption = 13170n;
|