@tonappchain/sdk 0.7.3-rc8 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +0 -7
  2. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +0 -7
  3. package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +0 -7
  4. package/dist/artifacts/dev/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +0 -7
  5. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +1 -5
  6. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +1 -5
  7. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +1 -5
  8. package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +1 -5
  9. package/dist/artifacts/dev/ton/internal/build/Settings.compiled.json +1 -1
  10. package/dist/artifacts/dev/ton/internal/wrappers/Settings.d.ts +1 -0
  11. package/dist/artifacts/dev/ton/internal/wrappers/Settings.js +11 -7
  12. package/dist/artifacts/index.d.ts +5 -3
  13. package/dist/artifacts/index.js +6 -3
  14. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +0 -7
  15. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +0 -7
  16. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +0 -7
  17. package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +0 -7
  18. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +1 -5
  19. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +1 -5
  20. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +1 -5
  21. package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +1 -5
  22. package/dist/artifacts/mainnet/ton/internal/build/CrossChainLayer.compiled.json +1 -1
  23. package/dist/artifacts/mainnet/ton/internal/build/Executor.compiled.json +1 -1
  24. package/dist/artifacts/mainnet/ton/internal/build/JettonMinter.compiled.json +1 -1
  25. package/dist/artifacts/mainnet/ton/internal/build/JettonProxy.compiled.json +1 -1
  26. package/dist/artifacts/mainnet/ton/internal/build/JettonWallet.compiled.json +1 -1
  27. package/dist/artifacts/mainnet/ton/internal/build/NFTCollection.compiled.json +1 -1
  28. package/dist/artifacts/mainnet/ton/internal/build/NFTItem.compiled.json +1 -1
  29. package/dist/artifacts/mainnet/ton/internal/build/NFTProxy.compiled.json +1 -1
  30. package/dist/artifacts/mainnet/ton/internal/build/Settings.compiled.json +1 -1
  31. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.d.ts +65 -6
  32. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.js +169 -18
  33. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.d.ts +4 -2
  34. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.js +5 -3
  35. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonProxy.d.ts +9 -0
  36. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonProxy.js +11 -2
  37. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonWallet.d.ts +7 -0
  38. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonWallet.js +9 -2
  39. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.d.ts +11 -1
  40. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.js +17 -5
  41. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTItem.d.ts +9 -1
  42. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTItem.js +15 -5
  43. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTProxy.d.ts +9 -1
  44. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTProxy.js +16 -6
  45. package/dist/artifacts/mainnet/ton/internal/wrappers/Settings.d.ts +2 -0
  46. package/dist/artifacts/mainnet/ton/internal/wrappers/Settings.js +11 -6
  47. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/CrossChainLayerPayload.d.ts +10 -0
  48. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/CrossChainLayerPayload.js +24 -0
  49. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +2 -1
  50. package/dist/artifacts/mainnet/ton/internal/wrappers/utils/MerkleRoots.js +9 -1
  51. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +0 -7
  52. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +0 -7
  53. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +0 -7
  54. package/dist/artifacts/testnet/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +0 -7
  55. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +1 -5
  56. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +1 -5
  57. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +1 -5
  58. package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +1 -5
  59. package/dist/artifacts/testnet/ton/internal/build/Settings.compiled.json +1 -1
  60. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.d.ts +1 -0
  61. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.js +11 -7
  62. package/dist/src/adapters/RetryableContractOpener.js +5 -2
  63. package/dist/src/adapters/ToncenterV3Indexer.js +1 -1
  64. package/dist/src/assets/AssetCache.d.ts +4 -4
  65. package/dist/src/assets/AssetCache.js +11 -6
  66. package/dist/src/assets/AssetFactory.js +2 -2
  67. package/dist/src/errors/index.d.ts +1 -1
  68. package/dist/src/errors/index.js +2 -1
  69. package/dist/src/errors/instances.d.ts +1 -0
  70. package/dist/src/errors/instances.js +3 -1
  71. package/dist/src/index.d.ts +1 -0
  72. package/dist/src/index.js +3 -1
  73. package/dist/src/interfaces/IConfiguration.d.ts +2 -2
  74. package/dist/src/sdk/Artifacts.d.ts +3 -0
  75. package/dist/src/sdk/Artifacts.js +17 -0
  76. package/dist/src/sdk/Configuration.d.ts +4 -4
  77. package/dist/src/sdk/Configuration.js +3 -3
  78. package/dist/src/sdk/Consts.d.ts +0 -1
  79. package/dist/src/sdk/Consts.js +1 -2
  80. package/dist/src/sdk/LiteSequencerClient.js +2 -1
  81. package/dist/src/sdk/StartTracking.js +2 -2
  82. package/dist/src/sdk/TACTransactionManager.js +5 -5
  83. package/dist/src/sdk/TONTransactionManager.js +23 -21
  84. package/dist/src/sdk/TacExplorerClient.js +4 -3
  85. package/dist/src/sdk/TacSdk.js +2 -15
  86. package/dist/src/sdk/TxFinalizer.js +1 -1
  87. package/dist/src/sdk/Utils.js +37 -4
  88. package/dist/src/structs/Struct.d.ts +4 -4
  89. package/package.json +1 -1
@@ -1 +1 @@
1
- { "hash": "29cc743cf701ada8c7eca87e3496fe69ef9cd9ea1a6cad296cea7ca32540cfb5", "hashBase64": "Kcx0PPcBrajH7Kh+NJb+ae+c2eoabK0pbOp8oyVAz7U=", "hex": "b5ee9c72410216010004a6000114ff00f4a413f4bcf2c80b0102016202150202ca0314020120041301bdd0cc8b1c02497c0f83434c0c05c6c238f16fb51343480007e1874ffc07e18b500743e90007e18fe90007e19be900c3e193d010c3e19600835c874c7c04c60841b1608166ebcb832dffe187c0db83e903e900c7e800c7d007e800c7e80004c60504a4ed44d0d20001f861d3ff01f862d401d0fa4001f863fa4001f866fa4030f864f40430f86503d31f0101d33f0112218210bd6ea770bae3022182105fcc3d14bae3022182102fcb26a2bae30221820bb390ceba06070a0b00e8313432f841b3f2e0c8f84301c705f2e048fa4001f864d401f8657ff861f0367581058e82100966018070f83772fb02c8821005138d91580302cb1fcb3f8b02cf1601cf16c9f84470588010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0002c83110344013f841f2e0c9f84414c705f2e047fa4021f0155bfa40d2000130fa0022d70b01c000b35427272191729171e2f839206e9430812dcade02a812a07581058e82100966018070f837a00170f836a0bcf2b020923034e30d02923031e30df864f03608090084c8821005138d912502cb1fcb3ff844cf165006cf16c9544266801071226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00009e22f0155bc88210d53276db5802cb1fcb3fc97581058e82100966018070f83776fb0212700180108306226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000096345b32f841f2e0c9c882108b7717355802cb1fcb3ff84201cbfff843cf16c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00015e8e873110344013db3ce030316c228210ae7df95bba8e12f841b3f2e0c8f846c705f2e0467ff861f036e030840ff2f00c01a0f841f2e0c9f84414c705f2e047fa40f40401d0fa00f404f404301034342070547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e2550233f8465260c70525105b50a443300d04faf839206e9430812d20de5aa058a05003a001aa00a00170f836a081354470f836a081121e70f836a08055820086e68209e1338070f837a07581058e82100966018070f837a0bcf2b0248e123034c88210d53276db580302cb1fcb3ff400e30d70f861f036218e107581058e82100966018070f83776fb02de7022e30f030e0f10110060c88210bcd19310f844102510464303081582106c582059500502cb1fcb3f12cb1f01fa02f40001cf16f844cf1613f400000480180004801001189381009093810082e213db3c1200988e48c85801cb055004cf1658fa02547120ed41ed43ed44ed45ed479d5bc85003cf17c9127158cb6acced67ed65ed64ed63ed61737fed11977001cb6a01cf17ed41edf101f2ffc901fb00db050013a2fd2210e0007970a6c00045adbe11723e10f3c5be11b3c5be1133c5b2723e104072803e108072fff33d00327b5520007ba11f9fda89a1a40003f0c3a7fe03f0c5a803a1f48003f0c7f48003f0cdf48061f0c9e80861f0cbf08335f083f085f087f089f08bc1f083f085f0871604db765e89b6" }
1
+ { "hash": "1a7fdf01131876c48151a1ff676ac020d29258b3a4581000ae4048ffb86a43ec", "hashBase64": "Gn/fARMYdsSBUaH/Z2rAINKSWLOkWBAArkBI/7hqQ+w=", "hex": "b5ee9c72410216010004a6000114ff00f4a413f4bcf2c80b0102016202150202ca0314020120041301bdd0cc8b1c02497c0f83434c0c05c6c238f16fb51343480007e1874ffc07e18b500743e90007e18fe90007e19be900c3e193d010c3e19600835c874c7c04c60841b1608166ebcb832dffe187c0e383e903e900c7e800c7d007e800c7e80004c60504a4ed44d0d20001f861d3ff01f862d401d0fa4001f863fa4001f866fa4030f864f40430f86503d31f0101d33f0112218210bd6ea770bae3022182105fcc3d14bae3022182102fcb26a2bae30221820bb390ceba06070a0b00e8313432f841b3f2e0c8f84301c705f2e048fa4001f864d401f8657ff861f0387581058e82100966018070f83772fb02c8821005138d91580302cb1fcb3f8b02cf1601cf16c9f84470588010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0002c83110344013f841f2e0c9f84414c705f2e047fa4021f0155bfa40d2000130fa0022d70b01c000b35427272191729171e2f839206e9430812dcade02a812a07581058e82100966018070f837a00170f836a0bcf2b020923034e30d02923031e30df864f03808090084c8821005138d912502cb1fcb3ff844cf165006cf16c9544266801071226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00009e22f0155bc88210d53276db5802cb1fcb3fc97581058e82100966018070f83776fb0212700180108306226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000096345b32f841f2e0c9c882108b7717355802cb1fcb3ff84201cbfff843cf16c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00015e8e873110344013db3ce030316c228210ae7df95bba8e12f841b3f2e0c8f846c705f2e0467ff861f038e030840ff2f00c01a0f841f2e0c9f84414c705f2e047fa40f40401d0fa00f404f404301034342070547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e2550233f8465260c70525105b50a443300d04faf839206e9430812d20de5aa058a05003a001aa00a00170f836a0813c9170f836a081121e70f836a080698200c99b8209e1338070f837a07581058e82100966018070f837a0bcf2b0248e123034c88210d53276db580302cb1fcb3ff400e30d70f861f038218e107581058e82100966018070f83776fb02de7022e30f030e0f10110060c88210bcd19310f844102510464303081582106c582059500502cb1fcb3f12cb1f01fa02f40001cf16f844cf1613f400000480180004801001189381009093810082e213db3c1200988e48c85801cb055004cf1658fa02547120ed41ed43ed44ed45ed479d5bc85003cf17c9127158cb6acced67ed65ed64ed63ed61737fed11977001cb6a01cf17ed41edf101f2ffc901fb00db050013a2fd2210e0007970a6c00045ae3e11723e10f3c5be11b3c5be1133c5b2723e104072803e108072fff33d00327b5520007ba11f9fda89a1a40003f0c3a7fe03f0c5a803a1f48003f0c7f48003f0cdf48061f0c9e80861f0cbf08335f083f085f087f089f08bc1f083f085f0871604db009485cf" }
@@ -1 +1 @@
1
- { "hash": "d54a9e278d416e51ccb96d1fe1808f8aa9f14b4959dfab9c6f401488ada2186c", "hashBase64": "1UqeJ41BblHMuW0f4YCPiqnxS0lZ36ucb0AUiK2iGGw=", "hex": "b5ee9c7241020d01000381000114ff00f4a413f4bcf2c80b01020162020c04f6d020c700925f04e001d0d3030171b0925f04e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f0101d33f01125165a1800f811d588209e1338070f83766b608a15155a1ed44d0fa4001f861fa4001f862fa4030f863218210ae7df95bbae3022182107817b330bae30221821005138d91bae302306c33200304050900c05b6c22f84112c705f2e0468020d721fa40fa4030c882105fcc3d14580402cb1fcb3f22cf1658cf167001ca0070fa027001ca00c9700180108050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000c45b32f841c705f2e046fa40fa40fa0030c882105fcc3d14580602cb1fcb3f21cf1601cf167001ca005003fa027001ca00c90176fb0270018010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0001783101fa40f40401d0fa00f404f404301034342070547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e255023324104a0306029e04aa015003a001a001a001a0811e0870f836a081354470f836a081128170f836a0812dca70f836a0801981269582100966018070f837a08055820086e68209e1338070f837a014be226eb321b0e30f070800c430c8471382108b0929625120071582106c582059500502cb1fcb3f12cb1f01fa02f40001cf1601cf1601cf1612ccc90176fb02f84170588010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000b835355bc882105fcc3d14580502cb1fcb3f22cf1658cf167001ca0070fa027001ca00c912700180108050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f80f938100c8928064e2f2f002e08210581879bcba8e2730f84212c705f2e047fa4030f863f8438b02c705f2d050c8f841cf16f842cf16f843cf16c9ed54e020821060094a1bba8e1c5bf842c705f2e0478b02f863c8f841cf16f842cf16f843cf16c9ed54e02082106a4fbe34bae302821020faec53bae3025b840ff2f00a0b00525bf843c705f2e048f8438b02c705f2d050f843f8628b02f863c8f841cf16f842cf16f843cf16c9ed54002cf84212c705f2e047d421fb0401d0ed1eed53d430ed540035a0844bda89a1f48003f0c3f48003f0c5f48061f0c7f083f085f0873ea51522" }
1
+ { "hash": "9921c449c0d97e87b652a9ff33bb35a58c7d2e9791d5aaa015b62d7bf06f60a9", "hashBase64": "mSHEScDZfoe2Uqn/M7s1pYx9LpeR1aqgFbYte/BvYKk=", "hex": "b5ee9c7241020d01000396000114ff00f4a413f4bcf2c80b01020162020c04f6d020c700925f04e001d0d3030171b0925f04e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f0101d33f01125165a1800f811e008209e1338070f83766b608a15155a1ed44d0fa4001f861fa4001f862fa4030f863218210ae7df95bbae3022182107817b330bae30221821005138d91bae302306c33200304050900c05b6c22f84112c705f2e0468020d721fa40fa4030c882105fcc3d14580402cb1fcb3f22cf1658cf167001ca0070fa027001ca00c9700180108050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000ee5b32f841c705f2e046fa40fa40fa006d21c700b39430f404309131e2c882105fcc3d14580702cb1fcb3f22cf1658cf167001ca0001fa02236e9633027001ca009313f400e20176fb027001c98010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0001783101fa40f40401d0fa00f404f404301034342070547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e255023324104a0306029e04aa015003a001a001a001a0811e0870f836a0813c9170f836a081128170f836a0812dca70f836a0801981269582100966018070f837a080698200c99b8209e1338070f837a014be226eb321b0e30f070800c430c8471382108b0929625120071582106c582059500502cb1fcb3f12cb1f01fa02f40001cf1601cf1601cf1612ccc90176fb02f84170588010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000b835355bc882105fcc3d14580502cb1fcb3f22cf1658cf167001ca0070fa027001ca00c912700180108050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f80f938100c8928064e2f2f002e08210581879bcba8e2730f84212c705f2e047fa4030f863f8438b02c705f2d050c8f841cf16f842cf16f843cf16c9ed54e020821060094a1bba8e1c5bf842c705f2e0478b02f863c8f841cf16f842cf16f843cf16c9ed54e02082106a4fbe34bae30282106e7145f9bae3025b840ff2f00a0b00525bf843c705f2e048f8438b02c705f2d050f843f8628b02f863c8f841cf16f842cf16f843cf16c9ed54002cf84212c705f2e047d421fb0401d0ed1eed53d430ed540035a0844bda89a1f48003f0c3f48003f0c5f48061f0c7f083f085f087cf495af0" }
@@ -1 +1 @@
1
- { "hash": "1859fe20de0577dcb59e136e9960b676d907abe9936f7a8b4f8aa505a7932496", "hashBase64": "GFn+IN4Fd9y1nhNumWC2dtkHq+mTb3qLT4qlBaeTJJY=", "hex": "b5ee9c72410210010002a5000114ff00f4a413f4bcf2c80b01020162020902f8d020c700925f04e001d0d3030171b0925f04e0fa403001d31f0101d33f0112ed44d0d30701f861fa4001f862fa4001f863f40430f8645154a1f844f80701830cf94130f8075003a170f83601a66d817c915003a012821012cc030070f837a066b608a114a1c200f2e064228210245e9406bae302228210581879bcba0304005a6c22f84212c705f2e046d3ff0101d430f844128307f417f864f844f841c8cb07f842cf16f843cf16f400c9ed5404fc8e2c6c22f84212c705f2e046fa4030f863f8438b02c705f2d050f844f841c8cb07f842cf16f843cf16f400c9ed54e022821060094a1bba8e22135f03f842c705f2e0468b02f863f844f841c8cb07f842cf16f843cf16f400c9ed54e02282106a4fbe34bae302228210399685b8bae3023001821040148d4abae3025b840f05060708005e135f03f843c705f2e047f8438b02c705f2d050f843f8628b02f863f844f841c8cb07f842cf16f843cf16f400c9ed5400a46c12d3ff013120f8448307f40f6fa130c88210707a28d2580502cb1fcb3f0101cbff12f400c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000080f844c88210cf03b318580402cb1fcb3f12f400c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000004f2f00201200a0d0201580b0c0043b444bda89a1a60e03f0c3f48003f0c5f48003f0c7e80861f0c9f083f085f087f0890003bb4fffda89a1a60e03f0c3f48003f0c5f48003f0c7e80861f0c9f085f087002016a0e0f0037b3093b513434c1c07e187e90007e18be90007e18fd010c3e193e11200043b10dfb513434c1c07e187e90007e18be90007e18fd010c3e193e1120c1fd03dbe8601933b64b" }
1
+ { "hash": "655d70f72671db7999b6b72c2bac3577f8cba999456d33087de10fb2f970345e", "hashBase64": "ZV1w9yZx23mZtrcsK6w1d/jLqZlFbTMIfeEPsvlwNF4=", "hex": "b5ee9c72410210010002a6000114ff00f4a413f4bcf2c80b01020162020902f8d020c700925f04e001d0d3030171b0925f04e0fa403001d31f0101d33f0112ed44d0d30701f861fa4001f862fa4001f863f40430f8645154a1f844f80701830cf94130f8075003a170f83601a676820099075003a012821012cc030070f837a066b608a114a1c200f2e064228210245e9406bae302228210581879bc0304005a6c22f84212c705f2e046d3ff0101d430f844128307f417f864f844f841c8cb07f842cf16f843cf16f400c9ed5404feba8e2c6c22f84212c705f2e046fa4030f863f8438b02c705f2d050f844f841c8cb07f842cf16f843cf16f400c9ed54e022821060094a1bba8e22135f03f842c705f2e0468b02f863f844f841c8cb07f842cf16f843cf16f400c9ed54e02282106a4fbe34bae302228210399685b8bae3023001821040148d4abae3025b840f05060708005e135f03f843c705f2e047f8438b02c705f2d050f843f8628b02f863f844f841c8cb07f842cf16f843cf16f400c9ed5400a46c12d3ff013120f8448307f40f6fa130c88210707a28d2580502cb1fcb3f0101cbff12f400c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000080f844c88210cf03b318580402cb1fcb3f12f400c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000004f2f00201200a0d0201580b0c0043b444bda89a1a60e03f0c3f48003f0c5f48003f0c7e80861f0c9f083f085f087f0890003bb4fffda89a1a60e03f0c3f48003f0c5f48003f0c7e80861f0c9f085f087002016a0e0f0037b3093b513434c1c07e187e90007e18be90007e18fd010c3e193e11200043b10dfb513434c1c07e187e90007e18be90007e18fd010c3e193e1120c1fd03dbe860ab10d848" }
@@ -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
- anyone_errorNotification: number;
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
- payload: Cell;
145
+ operationId: bigint;
112
146
  responseAddress: Address;
113
147
  }): Promise<void>;
114
- sendUpdateMerkleRoot(provider: ContractProvider, via: Sender, value: bigint, opts: {
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
- getExecutorAddress(provider: ContractProvider, payload: Cell): Promise<Address>;
163
- getExecutorData(provider: ContractProvider, payload: Cell): Promise<ExecutorData>;
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
- anyone_errorNotification: 0xae7df95b,
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: 0x0e50d313,
25
- executor_revertSpentParam: 0x959f183a,
26
- executor_errorNotification: 0xcf6a5da4,
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: 0x20faec53,
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: 0x23b05641,
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.arrayToCell)(config.merkleRoots ?? []))
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
- .storeRef(opts.payload)
161
+ .storeUint(opts.operationId, Constants_1.Params.bitsize.hash)
133
162
  .storeAddress(opts.responseAddress)
134
163
  .endCell(),
135
164
  });
136
165
  }
137
- async sendUpdateMerkleRoot(provider, via, value, opts) {
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.sequencerMultisig_updateMerkleRoot, Constants_1.Params.bitsize.op)
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.merkleRoot, Constants_1.Params.bitsize.hash)
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, payload) {
320
- const result = await provider.get('get_executor_address', [{ type: 'cell', cell: payload }]);
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 getExecutorData(provider, payload) {
324
- const result = await provider.get('get_executor_data', [{ type: 'cell', cell: payload }]);
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 = 9278n;
334
482
  CrossChainLayer.minStorageDuration = 365 * 24 * 3600; //1 year
335
- CrossChainLayer.storageStats = new GasUtils_1.StorageStats(34518n, 87n);
336
- CrossChainLayer.addFeeGasConsumption = 6460n;
483
+ CrossChainLayer.storageStats = new GasUtils_1.StorageStats(51611n, 105n);
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;
@@ -1,5 +1,6 @@
1
1
  import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/ton';
2
2
  import { Maybe } from '@ton/core/dist/utils/maybe';
3
+ import { StorageStats } from './utils/GasUtils';
3
4
  export declare const JettonMinterOpCodes: {
4
5
  mint: number;
5
6
  changeAdmin: number;
@@ -19,7 +20,7 @@ export declare const JettonMinterErrors: {
19
20
  };
20
21
  export type JettonMinterConfig = {
21
22
  totalSupply: bigint;
22
- adminAddress: Address;
23
+ adminAddress?: Address;
23
24
  newAdminAddress?: Address;
24
25
  content: Cell;
25
26
  jettonWalletCode: Cell;
@@ -28,7 +29,7 @@ export type JettonMinterConfig = {
28
29
  export type JettonMinterData = {
29
30
  totalSupply: bigint;
30
31
  mintable: boolean;
31
- adminAddress: Address;
32
+ adminAddress?: Address;
32
33
  content: Cell;
33
34
  walletCode: Cell;
34
35
  };
@@ -39,6 +40,7 @@ export declare class JettonMinter implements Contract {
39
40
  code: Cell;
40
41
  data: Cell;
41
42
  } | undefined;
43
+ static storageStats: StorageStats;
42
44
  constructor(address: Address, init?: {
43
45
  code: Cell;
44
46
  data: Cell;
@@ -6,6 +6,7 @@ exports.jettonMinterConfigToCell = jettonMinterConfigToCell;
6
6
  const ton_1 = require("@ton/ton");
7
7
  const CrossChainLayer_1 = require("./CrossChainLayer");
8
8
  const Constants_1 = require("./Constants");
9
+ const GasUtils_1 = require("./utils/GasUtils");
9
10
  exports.JettonMinterOpCodes = {
10
11
  mint: 0xd7b9c06e,
11
12
  changeAdmin: 0x581879bc,
@@ -58,7 +59,7 @@ class JettonMinter {
58
59
  value,
59
60
  sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
60
61
  body: (0, ton_1.beginCell)()
61
- .storeUint(CrossChainLayer_1.CrossChainLayerOpCodes.anyone_errorNotification, 32)
62
+ .storeUint(CrossChainLayer_1.CrossChainLayerOpCodes.anyone_tvmMsgToEvmErrorNotification, 32)
62
63
  .storeUint(params.queryId || 0, 64)
63
64
  .storeUint(params.operation || CrossChainLayer_1.MsgType.jettonBurn, 32)
64
65
  .storeAddress(params.jettonOwnerAddress)
@@ -166,7 +167,7 @@ class JettonMinter {
166
167
  const res = await provider.get('get_jetton_data', []);
167
168
  const totalSupply = res.stack.readBigNumber();
168
169
  const mintable = res.stack.readBoolean();
169
- const adminAddress = res.stack.readAddress();
170
+ const adminAddress = res.stack.readAddressOpt() ?? undefined;
170
171
  const content = res.stack.readCell();
171
172
  const walletCode = res.stack.readCell();
172
173
  return {
@@ -184,7 +185,7 @@ class JettonMinter {
184
185
  async getFullData(provider) {
185
186
  const res = await provider.get('get_full_data', []);
186
187
  const totalSupply = res.stack.readBigNumber();
187
- const adminAddress = res.stack.readAddress();
188
+ const adminAddress = res.stack.readAddressOpt() ?? undefined;
188
189
  const newAdminAddress = res.stack.readAddressOpt() ?? undefined;
189
190
  const content = res.stack.readCell();
190
191
  const jettonWalletCode = res.stack.readCell();
@@ -207,3 +208,4 @@ class JettonMinter {
207
208
  }
208
209
  }
209
210
  exports.JettonMinter = JettonMinter;
211
+ JettonMinter.storageStats = new GasUtils_1.StorageStats(10208n, 28n);
@@ -1,4 +1,5 @@
1
1
  import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/core';
2
+ import { StorageStats } from './utils/GasUtils';
2
3
  export type JettonProxyConfig = {
3
4
  crossChainLayerAddress: string;
4
5
  adminAddress: string;
@@ -31,6 +32,14 @@ export declare class JettonProxy implements Contract {
31
32
  code: Cell;
32
33
  data: Cell;
33
34
  } | undefined;
35
+ static estimatedJettonWalletCells: bigint;
36
+ static estimatedJettonWalletBits: bigint;
37
+ static storageStats: StorageStats;
38
+ static msgToTvmGasConsumption: bigint;
39
+ static errorNotificationGasConsumption: bigint;
40
+ static transferNotificationGasConsumption: bigint;
41
+ static estimatedReceiveTransferGasConsumption: bigint;
42
+ static estimatedSendTransferGasConsumption: bigint;
34
43
  constructor(address: Address, init?: {
35
44
  code: Cell;
36
45
  data: Cell;
@@ -5,6 +5,7 @@ exports.jettonProxyConfigToCell = jettonProxyConfigToCell;
5
5
  const core_1 = require("@ton/core");
6
6
  const CrossChainLayer_1 = require("./CrossChainLayer");
7
7
  const Constants_1 = require("./Constants");
8
+ const GasUtils_1 = require("./utils/GasUtils");
8
9
  exports.JettonProxyOpCodes = {
9
10
  jettonWallet_transfer: 0xf8a7ea5,
10
11
  jettonWallet_transferNotification: 0x7362d09c,
@@ -13,7 +14,7 @@ exports.JettonProxyOpCodes = {
13
14
  anyone_tvmMsgToEVM: 0x6c582059,
14
15
  admin_changeAdminAddress: 0x581879bc,
15
16
  admin_cancelChangingAdminAddress: 0x60094a1b,
16
- admin_updateCode: 0x20faec53,
17
+ admin_updateCode: 0x6e7145f9,
17
18
  newAdmin_confirmChangingAdminAddress: 0x6a4fbe34,
18
19
  };
19
20
  exports.JettonProxyErrors = {
@@ -29,7 +30,7 @@ function jettonProxyConfigToCell(config) {
29
30
  return (0, core_1.beginCell)()
30
31
  .storeAddress(core_1.Address.parse(config.crossChainLayerAddress))
31
32
  .storeAddress(core_1.Address.parse(config.adminAddress))
32
- .storeAddress(config.newAdminAddress ? core_1.Address.parse(config.adminAddress) : null)
33
+ .storeAddress(config.newAdminAddress ? core_1.Address.parse(config.newAdminAddress) : null)
33
34
  .endCell();
34
35
  }
35
36
  class JettonProxy {
@@ -156,3 +157,11 @@ class JettonProxy {
156
157
  }
157
158
  }
158
159
  exports.JettonProxy = JettonProxy;
160
+ JettonProxy.estimatedJettonWalletCells = 25n;
161
+ JettonProxy.estimatedJettonWalletBits = 11000n;
162
+ JettonProxy.storageStats = new GasUtils_1.StorageStats(7760n, 16n);
163
+ JettonProxy.msgToTvmGasConsumption = 5536n;
164
+ JettonProxy.errorNotificationGasConsumption = 5556n;
165
+ JettonProxy.transferNotificationGasConsumption = 8515n;
166
+ JettonProxy.estimatedReceiveTransferGasConsumption = 12000n;
167
+ JettonProxy.estimatedSendTransferGasConsumption = 11000n;
@@ -42,8 +42,15 @@ export declare class JettonWallet implements Contract {
42
42
  code: Cell;
43
43
  data: Cell;
44
44
  } | undefined;
45
+ static mintAfterErrorGasConsumption: bigint;
46
+ static burnNotificationGasConsumption: bigint;
47
+ static nftBurnGasConsumption: bigint;
48
+ static receiveTransferGasConsumption: bigint;
49
+ static sendTransferGasConsumption: bigint;
50
+ static burnGasConsumption: bigint;
45
51
  static storageStats: StorageStats;
46
52
  static stateInitStats: StorageStats;
53
+ static storageDuration: bigint;
47
54
  constructor(address: Address, init?: {
48
55
  code: Cell;
49
56
  data: Cell;