@tonappchain/sdk 0.7.2-scaled-ui-support-2 → 0.7.2

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 (171) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +198 -198
  3. package/dist/artifacts/dev/index.d.ts +2 -2
  4. package/dist/artifacts/dev/index.js +2 -1
  5. package/dist/artifacts/dev/tac/endpoints.d.ts +1 -0
  6. package/dist/artifacts/dev/tac/endpoints.js +2 -1
  7. package/dist/artifacts/dev/ton/internal/build/CrossChainLayer.compiled.json +1 -1
  8. package/dist/artifacts/dev/ton/internal/build/Executor.compiled.json +1 -1
  9. package/dist/artifacts/dev/ton/internal/build/JettonProxy.compiled.json +1 -1
  10. package/dist/artifacts/dev/ton/internal/build/JettonWallet.compiled.json +1 -1
  11. package/dist/artifacts/dev/ton/internal/build/NFTItem.compiled.json +1 -1
  12. package/dist/artifacts/dev/ton/internal/build/NFTProxy.compiled.json +1 -1
  13. package/dist/artifacts/dev/ton/internal/build/Settings.compiled.json +1 -1
  14. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.d.ts +53 -6
  15. package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.js +130 -17
  16. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.d.ts +2 -0
  17. package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.js +3 -1
  18. package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.d.ts +9 -0
  19. package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.js +10 -1
  20. package/dist/artifacts/dev/ton/internal/wrappers/JettonWallet.d.ts +7 -0
  21. package/dist/artifacts/dev/ton/internal/wrappers/JettonWallet.js +9 -2
  22. package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.d.ts +9 -0
  23. package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.js +9 -0
  24. package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.d.ts +7 -0
  25. package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.js +7 -0
  26. package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.d.ts +7 -0
  27. package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.js +8 -1
  28. package/dist/artifacts/dev/ton/internal/wrappers/Settings.d.ts +1 -0
  29. package/dist/artifacts/dev/ton/internal/wrappers/Settings.js +1 -0
  30. package/dist/artifacts/dev/ton/internal/wrappers/utils/CrossChainLayerPayload.d.ts +10 -0
  31. package/dist/artifacts/dev/ton/internal/wrappers/utils/CrossChainLayerPayload.js +24 -0
  32. package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.d.ts +2 -1
  33. package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.js +9 -1
  34. package/dist/artifacts/mainnet/index.d.ts +2 -2
  35. package/dist/artifacts/mainnet/index.js +2 -1
  36. package/dist/artifacts/mainnet/tac/endpoints.d.ts +1 -0
  37. package/dist/artifacts/mainnet/tac/endpoints.js +2 -1
  38. package/dist/artifacts/mainnet/ton/endpoints.d.ts +1 -1
  39. package/dist/artifacts/mainnet/ton/endpoints.js +1 -1
  40. package/dist/artifacts/mainnet/ton/internal/build/CrossChainLayer.compiled.json +1 -1
  41. package/dist/artifacts/mainnet/ton/internal/build/Executor.compiled.json +1 -1
  42. package/dist/artifacts/mainnet/ton/internal/build/JettonMinter.compiled.json +1 -1
  43. package/dist/artifacts/mainnet/ton/internal/build/JettonProxy.compiled.json +1 -1
  44. package/dist/artifacts/mainnet/ton/internal/build/JettonWallet.compiled.json +1 -1
  45. package/dist/artifacts/mainnet/ton/internal/build/NFTItem.compiled.json +1 -1
  46. package/dist/artifacts/mainnet/ton/internal/build/NFTProxy.compiled.json +1 -1
  47. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.d.ts +1 -13
  48. package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.js +7 -45
  49. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.d.ts +2 -2
  50. package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.js +2 -2
  51. package/dist/artifacts/testnet/index.d.ts +2 -2
  52. package/dist/artifacts/testnet/index.js +2 -1
  53. package/dist/artifacts/testnet/tac/endpoints.d.ts +1 -0
  54. package/dist/artifacts/testnet/tac/endpoints.js +2 -1
  55. package/dist/artifacts/testnet/ton/endpoints.d.ts +1 -1
  56. package/dist/artifacts/testnet/ton/endpoints.js +1 -1
  57. package/dist/artifacts/testnet/ton/internal/build/CrossChainLayer.compiled.json +1 -1
  58. package/dist/artifacts/testnet/ton/internal/build/Executor.compiled.json +1 -1
  59. package/dist/artifacts/testnet/ton/internal/build/JettonProxy.compiled.json +1 -1
  60. package/dist/artifacts/testnet/ton/internal/build/JettonWallet.compiled.json +1 -1
  61. package/dist/artifacts/testnet/ton/internal/build/NFTItem.compiled.json +1 -1
  62. package/dist/artifacts/testnet/ton/internal/build/NFTProxy.compiled.json +1 -1
  63. package/dist/artifacts/testnet/ton/internal/build/Settings.compiled.json +1 -1
  64. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.d.ts +53 -6
  65. package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.js +130 -17
  66. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.d.ts +2 -0
  67. package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.js +3 -1
  68. package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.d.ts +9 -0
  69. package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.js +10 -1
  70. package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.d.ts +7 -0
  71. package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.js +9 -2
  72. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.d.ts +9 -0
  73. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.js +9 -0
  74. package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.d.ts +7 -0
  75. package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.js +7 -0
  76. package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.d.ts +7 -0
  77. package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.js +8 -1
  78. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.d.ts +1 -0
  79. package/dist/artifacts/testnet/ton/internal/wrappers/Settings.js +1 -0
  80. package/dist/artifacts/testnet/ton/internal/wrappers/utils/CrossChainLayerPayload.d.ts +10 -0
  81. package/dist/artifacts/testnet/ton/internal/wrappers/utils/CrossChainLayerPayload.js +24 -0
  82. package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +2 -1
  83. package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.js +9 -1
  84. package/dist/src/adapters/BaseContractOpener.d.ts +76 -0
  85. package/dist/src/adapters/BaseContractOpener.js +440 -0
  86. package/dist/src/adapters/LiteClientOpener.d.ts +38 -0
  87. package/dist/src/adapters/LiteClientOpener.js +141 -0
  88. package/dist/src/adapters/OpenerUtils.d.ts +3 -0
  89. package/dist/src/adapters/OpenerUtils.js +40 -0
  90. package/dist/src/adapters/RetryableContractOpener.d.ts +40 -0
  91. package/dist/src/adapters/RetryableContractOpener.js +290 -0
  92. package/dist/src/adapters/SandboxOpener.d.ts +15 -0
  93. package/dist/src/adapters/SandboxOpener.js +35 -0
  94. package/dist/src/adapters/TonClient4Opener.d.ts +24 -0
  95. package/dist/src/adapters/TonClient4Opener.js +95 -0
  96. package/dist/src/adapters/TonClientOpener.d.ts +19 -0
  97. package/dist/src/adapters/TonClientOpener.js +82 -0
  98. package/dist/src/adapters/index.d.ts +7 -2
  99. package/dist/src/adapters/index.js +7 -2
  100. package/dist/src/assets/AssetCache.d.ts +8 -8
  101. package/dist/src/assets/AssetCache.js +3 -0
  102. package/dist/src/assets/AssetFactory.js +8 -2
  103. package/dist/src/assets/FT.d.ts +2 -3
  104. package/dist/src/assets/FT.js +4 -7
  105. package/dist/src/assets/NFT.d.ts +1 -1
  106. package/dist/src/assets/NFT.js +1 -1
  107. package/dist/src/assets/TON.d.ts +3 -2
  108. package/dist/src/assets/TON.js +2 -1
  109. package/dist/src/errors/errors.d.ts +12 -1
  110. package/dist/src/errors/errors.js +66 -2
  111. package/dist/src/errors/index.d.ts +2 -2
  112. package/dist/src/errors/index.js +4 -1
  113. package/dist/src/errors/instances.d.ts +7 -2
  114. package/dist/src/errors/instances.js +67 -2
  115. package/dist/src/index.d.ts +3 -1
  116. package/dist/src/index.js +6 -4
  117. package/dist/src/interfaces/Asset.d.ts +4 -9
  118. package/dist/src/interfaces/ContractOpener.d.ts +76 -2
  119. package/dist/src/interfaces/IOperationTracker.d.ts +22 -22
  120. package/dist/src/interfaces/ISimulator.d.ts +9 -1
  121. package/dist/src/interfaces/ITONTransactionManager.d.ts +20 -1
  122. package/dist/src/interfaces/ITacExplorerClient.d.ts +8 -0
  123. package/dist/src/interfaces/ITacExplorerClient.js +2 -0
  124. package/dist/src/interfaces/ITacSDK.d.ts +25 -1
  125. package/dist/src/interfaces/ITxFinalizer.d.ts +4 -0
  126. package/dist/src/interfaces/ITxFinalizer.js +2 -0
  127. package/dist/src/interfaces/WalletInstanse.d.ts +4 -8
  128. package/dist/src/interfaces/index.d.ts +1 -0
  129. package/dist/src/interfaces/index.js +1 -0
  130. package/dist/src/sdk/Configuration.d.ts +5 -3
  131. package/dist/src/sdk/Configuration.js +54 -7
  132. package/dist/src/sdk/Consts.d.ts +18 -1
  133. package/dist/src/sdk/Consts.js +21 -2
  134. package/dist/src/sdk/Fees.d.ts +21 -0
  135. package/dist/src/sdk/Fees.js +201 -0
  136. package/dist/src/sdk/LiteSequencerClient.d.ts +1 -0
  137. package/dist/src/sdk/LiteSequencerClient.js +39 -17
  138. package/dist/src/sdk/OperationTracker.d.ts +11 -11
  139. package/dist/src/sdk/OperationTracker.js +46 -94
  140. package/dist/src/sdk/Simulator.d.ts +10 -2
  141. package/dist/src/sdk/Simulator.js +102 -0
  142. package/dist/src/sdk/StartTracking.d.ts +12 -7
  143. package/dist/src/sdk/StartTracking.js +75 -49
  144. package/dist/src/sdk/TONTransactionManager.d.ts +5 -4
  145. package/dist/src/sdk/TONTransactionManager.js +63 -8
  146. package/dist/src/sdk/TacExplorerClient.d.ts +8 -0
  147. package/dist/src/sdk/TacExplorerClient.js +22 -0
  148. package/dist/src/sdk/TacSdk.d.ts +8 -2
  149. package/dist/src/sdk/TacSdk.js +27 -4
  150. package/dist/src/sdk/TxFinalizer.d.ts +4 -3
  151. package/dist/src/sdk/TxFinalizer.js +41 -41
  152. package/dist/src/sdk/Utils.d.ts +20 -1
  153. package/dist/src/sdk/Utils.js +158 -10
  154. package/dist/src/sender/BatchSender.js +19 -0
  155. package/dist/src/sender/MockSender.d.ts +2 -0
  156. package/dist/src/sender/MockSender.js +13 -0
  157. package/dist/src/sender/RawSender.js +34 -1
  158. package/dist/src/sender/SenderFactory.js +1 -1
  159. package/dist/src/sender/TonConnectSender.js +2 -0
  160. package/dist/src/sender/index.d.ts +1 -0
  161. package/dist/src/sender/index.js +1 -0
  162. package/dist/src/structs/InternalStruct.d.ts +98 -4
  163. package/dist/src/structs/Struct.d.ts +183 -7
  164. package/dist/src/structs/Struct.js +4 -3
  165. package/dist/src/wrappers/HighloadWalletV3.d.ts +5 -3
  166. package/dist/src/wrappers/HighloadWalletV3.js +14 -3
  167. package/package.json +121 -117
  168. package/dist/src/adapters/contractOpener.d.ts +0 -20
  169. package/dist/src/adapters/contractOpener.js +0 -126
  170. package/dist/src/adapters/retryableContractOpener.d.ts +0 -24
  171. package/dist/src/adapters/retryableContractOpener.js +0 -111
@@ -1 +1 @@
1
- { "hash": "2626cfbe9db7a4f30ddfd0ea01797ac84fddc3502cb39c2a17b85a35fc119210", "hashBase64": "JibPvp23pPMN39DqAXl6yE/dw1Ass5wqF7haNfwRkhA=", "hex": "b5ee9c7241021501000525000114ff00f4a413f4bcf2c80b0102016202140202ca0313020120041204cdd0831c02497c138007434c0c05c6c2544d7c0fc0e383e903e900c7e800c7d007e800c7e80004c5c3e0e80b4c7c048208403e29fa96ea3a14c0d1676cf3808208405e351466ea3a14c0c96b6cf380d4920841657c1ef2ea3a10d1676cf3817c120840153e8d96ea05090e1101da03d33f0101fa00fa4021f0155bed44d0fa0001f861fa4001f862fa4030f863f84123a1f861f8425006c705f2e2c1f841c2fff2e2c2f843f82a7054201314c85003fa0201cf1601cf16c922c8cb0112f400f400cb00c97021f90074c8cb0212ca07cbffc9d005fa40f401fa00200601fc20d70b009bd74bc00101c001b0f2e2c49130e2c88210178d4519580702cb1fcb3f5004fa02f842cf1601cf1622fa025003cf1643152191729171e2f839206e938129ad9120e2216e9431812ca39101e25023a813a07381034f70f83ca00270f83612a00170f836a0738103b582100966018070f837a0bcf2b070401380180701308050db3cf841f842f843c85003fa0201cf1601cf16c9ed540800a28e4dc85801cb055005cf165003fa0254712323ed41ed43ed44ed45ed479f5bc85003cf17c913775003cb6bcccced67ed65ed64ed63ed61747fed11987601cb6bcc01cf17ed41edf101f2ffc901fb00db0603f2ed44d0fa0001f861fa4001f862fa4030f86303d33f0101fa00f84122a0f861fa40fa40f84327c705f843f82a25595970037054201314c85003fa0201cf1601cf16c922c8cb0112f400f400cb00c9f90074c8cb0212ca07cbffc9d05008c70517b1f2e2c305fa0021925f04e30d22d70b01c000b3925f04e30d0a0b0d0140c882107362d09c2602cb1fcb3f5004fa0258cf1658cf16f8425980188011db3c0c015c03a1f82fa0738103b582100966018070f837b60972fb0270c88210d53276db580402cb1fcb3f128010810082db3c0c00988e48c85801cb055004cf1658fa02547120ed41ed43ed44ed45ed479d5bc85003cf17c9127158cb6acced67ed65ed64ed63ed61737fed11977001cb6a01cf17ed41edf101f2ffc901fb00db050028f841f842f843c85003fa0201cf1601cf16c9ed5401f4ed44d0fa0001f861fa4001f862fa4030f86303d33f0101fa00fa40f40430206e2092316d9201d0e221917093fa0001e222916d9401f40459e20392316d9401f40430e2f84125a1f861f8425008c705f2e2c1f841c2fff2e2c2c821fa0212f40016f400c9c882107bdd97de580502cb1fcb3f58fa02f842cf16210f01e8d70b01c0009331f8429101e2cf16f400c94133f839206e938121cd9120e2216e9431812ca39101e203aa0112a00170f836a081287570f836a081391b70f836a08125b670f836a00170f836a080648200a9fa8209e1338070f837a0801c8127e08209e1338070f837a0bcf2b0f843705880188050100074226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f841f842f843c85003fa0201cf1601cf16c9ed5400b08e51ed44d0fa0001f861fa4001f862fa4030f863738103b582100966018070f83770fb02f842706d8010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00e0840ff2f00013a2fd2210e0007970a6c0009fae200835c87b51343e80007e187e90007e18be900c3e18f4c7c048208405e351466e8060841ef765f7aeac7cb8b1601035c87e800c3e1040683e187e107e10be10f21400fe808073c58073c5b27b55200039a0f605da89a1f40003f0c3f48003f0c5f48061f0c7f083f085f087f0550958ae7f" }
1
+ { "hash": "6233b33325bdd823e75a7ad68e425df6d9fcd28f399bdee5610eb75a055e3599", "hashBase64": "YjOzMyW92CPnWnrWjkJd9tn80o85m97lYQ63WgVeNZk=", "hex": "b5ee9c7241021501000525000114ff00f4a413f4bcf2c80b0102016202140202ca0313020120041204cdd0831c02497c138007434c0c05c6c2544d7c0fc0e383e903e900c7e800c7d007e800c7e80004c5c3e0e80b4c7c048208403e29fa96ea3a14c0d1676cf3808208405e351466ea3a14c0c96b6cf380d4920841657c1ef2ea3a10d1676cf3817c120840153e8d96ea05090e1101da03d33f0101fa00fa4021f0155bed44d0fa0001f861fa4001f862fa4030f863f84123a1f861f8425006c705f2e2c1f841c2fff2e2c2f843f82a7054201314c85003fa0201cf1601cf16c922c8cb0112f400f400cb00c97021f90074c8cb0212ca07cbffc9d005fa40f401fa00200601fc20d70b009bd74bc00101c001b0f2e2c49130e2c88210178d4519580702cb1fcb3f5004fa02f842cf1601cf1622fa025003cf1643152191729171e2f839206e938129ad9120e2216e9431812ca39101e25023a813a07381034f70f83ca00270f83612a00170f836a0738103b582100966018070f837a0bcf2b070401380180701308050db3cf841f842f843c85003fa0201cf1601cf16c9ed540800a28e4dc85801cb055005cf165003fa0254712323ed41ed43ed44ed45ed479f5bc85003cf17c913775003cb6bcccced67ed65ed64ed63ed61747fed11987601cb6bcc01cf17ed41edf101f2ffc901fb00db0603f2ed44d0fa0001f861fa4001f862fa4030f86303d33f0101fa00f84122a0f861fa40fa40f84327c705f843f82a25595970037054201314c85003fa0201cf1601cf16c922c8cb0112f400f400cb00c9f90074c8cb0212ca07cbffc9d05008c70517b1f2e2c305fa0021925f04e30d22d70b01c000b3925f04e30d0a0b0d0140c882107362d09c2602cb1fcb3f5004fa0258cf1658cf16f8425980188011db3c0c015c03a1f82fa0738103b582100966018070f837b60972fb0270c88210d53276db580402cb1fcb3f128010810082db3c0c00988e48c85801cb055004cf1658fa02547120ed41ed43ed44ed45ed479d5bc85003cf17c9127158cb6acced67ed65ed64ed63ed61737fed11977001cb6a01cf17ed41edf101f2ffc901fb00db050028f841f842f843c85003fa0201cf1601cf16c9ed5401f4ed44d0fa0001f861fa4001f862fa4030f86303d33f0101fa00fa40f40430206e2092316d9201d0e221917093fa0001e222916d9401f40459e20392316d9401f40430e2f84125a1f861f8425008c705f2e2c1f841c2fff2e2c2c821fa0212f40016f400c9c882107bdd97de580502cb1fcb3f58fa02f842cf16210f01e8d70b01c0009331f8429101e2cf16f400c94133f839206e938121cd9120e2216e9431812ca39101e203aa0112a00170f836a081287570f836a0813c9170f836a08125b670f836a00170f836a080668200c02b8209e1338070f837a0801c8127e08209e1338070f837a0bcf2b0f843705880188050100074226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f841f842f843c85003fa0201cf1601cf16c9ed5400b08e51ed44d0fa0001f861fa4001f862fa4030f863738103b582100966018070f83770fb02f842706d8010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00e0840ff2f00013a2fd2210e0007970a6c0009fae200835c87b51343e80007e187e90007e18be900c3e18f4c7c048208405e351466e8060841ef765f7aeac7cb8b1601035c87e800c3e1040683e187e107e10be10f21400fe808073c58073c5b27b55200039a0f605da89a1f40003f0c3f48003f0c5f48061f0c7f083f085f087f05573909161" }
@@ -1 +1 @@
1
- { "hash": "3b204bbf7facf521e4a442f2f560ad6b9d38cda92eab1320d7cc1fac42815ec9", "hashBase64": "OyBLv3+s9SHkpELy9WCta504zakuqxMg18wfrEKBXsk=", "hex": "b5ee9c72410216010004a6000114ff00f4a413f4bcf2c80b0102016202150202ca0314020120041301bdd0cc8b1c02497c0f83434c0c05c6c238f16fb51343480007e1874ffc07e18b500743e90007e18fe90007e19be900c3e193d010c3e19600835c874c7c04c60841b1608166ebcb832dffe187c0e383e903e900c7e800c7d007e800c7e80004c60504a4ed44d0d20001f861d3ff01f862d401d0fa4001f863fa4001f866fa4030f864f40430f86503d31f0101d33f0112218210bd6ea770bae3022182105fcc3d14bae3022182102fcb26a2bae30221820bb390ceba06070a0b00e8313432f841b3f2e0c8f84301c705f2e048fa4001f864d401f8657ff861f0387581058e82100966018070f83772fb02c8821005138d91580302cb1fcb3f8b02cf1601cf16c9f84470588010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0002c83110344013f841f2e0c9f84414c705f2e047fa4021f0155bfa40d2000130fa0022d70b01c000b35427272191729171e2f839206e9430812dcade02a812a07581058e82100966018070f837a00170f836a0bcf2b020923034e30d02923031e30df864f03808090084c8821005138d912502cb1fcb3ff844cf165006cf16c9544266801071226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00009e22f0155bc88210d53276db5802cb1fcb3fc97581058e82100966018070f83776fb0212700180108306226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000096345b32f841f2e0c9c882108b7717355802cb1fcb3ff84201cbfff843cf16c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00015e8e873110344013db3ce030316c228210ae7df95bba8e12f841b3f2e0c8f846c705f2e0467ff861f038e030840ff2f00c01a0f841f2e0c9f84414c705f2e047fa40f40401d0fa00f404f404301034342070547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e2550233f8465260c70525105b50a443300d04faf839206e9430812d20de5aa058a05003a001aa00a00170f836a081391b70f836a081121e70f836a080648200a9fa8209e1338070f837a07581058e82100966018070f837a0bcf2b0248e123034c88210d53276db580302cb1fcb3ff400e30d70f861f038218e107581058e82100966018070f83776fb02de7022e30f030e0f10110060c88210bcd19310f844102510464303081582106c582059500502cb1fcb3f12cb1f01fa02f40001cf16f844cf1613f400000480180004801001189381009093810082e213db3c1200988e48c85801cb055004cf1658fa02547120ed41ed43ed44ed45ed479d5bc85003cf17c9127158cb6acced67ed65ed64ed63ed61737fed11977001cb6a01cf17ed41edf101f2ffc901fb00db050013a2fd2210e0007970a6c00045ae3e11723e10f3c5be11b3c5be1133c5b2723e104072803e108072fff33d00327b5520007ba11f9fda89a1a40003f0c3a7fe03f0c5a803a1f48003f0c7f48003f0cdf48061f0c9e80861f0cbf08335f083f085f087f089f08bc1f083f085f0871604db387929ff" }
1
+ { "hash": "589990451a76a0b1a6c0e1d70f0410905117f05fa6c97a273d6a1e1f26732ebc", "hashBase64": "WJmQRRp2oLGmwOHXDwQQkFEX8F+myXonPWoeHyZzLrw=", "hex": "b5ee9c72410216010004a6000114ff00f4a413f4bcf2c80b0102016202150202ca0314020120041301bdd0cc8b1c02497c0f83434c0c05c6c238f16fb51343480007e1874ffc07e18b500743e90007e18fe90007e19be900c3e193d010c3e19600835c874c7c04c60841b1608166ebcb832dffe187c0e383e903e900c7e800c7d007e800c7e80004c60504a4ed44d0d20001f861d3ff01f862d401d0fa4001f863fa4001f866fa4030f864f40430f86503d31f0101d33f0112218210bd6ea770bae3022182105fcc3d14bae3022182102fcb26a2bae30221820bb390ceba06070a0b00e8313432f841b3f2e0c8f84301c705f2e048fa4001f864d401f8657ff861f0387581058e82100966018070f83772fb02c8821005138d91580302cb1fcb3f8b02cf1601cf16c9f84470588010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0002c83110344013f841f2e0c9f84414c705f2e047fa4021f0155bfa40d2000130fa0022d70b01c000b35427272191729171e2f839206e9430812dcade02a812a07581058e82100966018070f837a00170f836a0bcf2b020923034e30d02923031e30df864f03808090084c8821005138d912502cb1fcb3ff844cf165006cf16c9544266801071226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00009e22f0155bc88210d53276db5802cb1fcb3fc97581058e82100966018070f83776fb0212700180108306226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000096345b32f841f2e0c9c882108b7717355802cb1fcb3ff84201cbfff843cf16c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00015e8e873110344013db3ce030316c228210ae7df95bba8e12f841b3f2e0c8f846c705f2e0467ff861f038e030840ff2f00c01a0f841f2e0c9f84414c705f2e047fa40f40401d0fa00f404f404301034342070547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e2550233f8465260c70525105b50a443300d04faf839206e9430812d20de5aa058a05003a001aa00a00170f836a0813c9170f836a081121e70f836a080668200c02b8209e1338070f837a07581058e82100966018070f837a0bcf2b0248e123034c88210d53276db580302cb1fcb3ff400e30d70f861f038218e107581058e82100966018070f83776fb02de7022e30f030e0f10110060c88210bcd19310f844102510464303081582106c582059500502cb1fcb3f12cb1f01fa02f40001cf16f844cf1613f400000480180004801001189381009093810082e213db3c1200988e48c85801cb055004cf1658fa02547120ed41ed43ed44ed45ed479d5bc85003cf17c9127158cb6acced67ed65ed64ed63ed61737fed11977001cb6a01cf17ed41edf101f2ffc901fb00db050013a2fd2210e0007970a6c00045ae3e11723e10f3c5be11b3c5be1133c5b2723e104072803e108072fff33d00327b5520007ba11f9fda89a1a40003f0c3a7fe03f0c5a803a1f48003f0c7f48003f0cdf48061f0c9e80861f0cbf08335f083f085f087f089f08bc1f083f085f0871604dbd5959cd1" }
@@ -1 +1 @@
1
- { "hash": "10be820c5430a474d5c0cb66c22eb1fc992556acbeb5be47398ab2dec280fe6c", "hashBase64": "EL6CDFQwpHTVwMtmwi6x/JklVqy+tb5HOYqy3sKA/mw=", "hex": "b5ee9c7241020d01000381000114ff00f4a413f4bcf2c80b01020162020c04f6d020c700925f04e001d0d3030171b0925f04e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f0101d33f01125165a1800f811d588209e1338070f83766b608a15155a1ed44d0fa4001f861fa4001f862fa4030f863218210ae7df95bbae3022182107817b330bae30221821005138d91bae302306c33200304050900c05b6c22f84112c705f2e0468020d721fa40fa4030c882105fcc3d14580402cb1fcb3f22cf1658cf167001ca0070fa027001ca00c9700180108050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000c45b32f841c705f2e046fa40fa40fa0030c882105fcc3d14580602cb1fcb3f21cf1601cf167001ca005003fa027001ca00c90176fb0270018010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0001783101fa40f40401d0fa00f404f404301034342070547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e255023324104a0306029e04aa015003a001a001a001a0811e0870f836a081391b70f836a081128170f836a0812dca70f836a0801981269582100966018070f837a080648200a9fa8209e1338070f837a014be226eb321b0e30f070800c430c8471382108b0929625120071582106c582059500502cb1fcb3f12cb1f01fa02f40001cf1601cf1601cf1612ccc90176fb02f84170588010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000b835355bc882105fcc3d14580502cb1fcb3f22cf1658cf167001ca0070fa027001ca00c912700180108050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f80f938100c8928064e2f2f002e08210581879bcba8e2730f84212c705f2e047fa4030f863f8438b02c705f2d050c8f841cf16f842cf16f843cf16c9ed54e020821060094a1bba8e1c5bf842c705f2e0478b02f863c8f841cf16f842cf16f843cf16c9ed54e02082106a4fbe34bae302821020faec53bae3025b840ff2f00a0b00525bf843c705f2e048f8438b02c705f2d050f843f8628b02f863c8f841cf16f842cf16f843cf16c9ed54002cf84212c705f2e047d421fb0401d0ed1eed53d430ed540035a0844bda89a1f48003f0c3f48003f0c5f48061f0c7f083f085f0871d6c5f98" }
1
+ { "hash": "66d5b121d746cbeb32c1c7ced5ecfeeaeb4c7d2b7a20ec5dbb9048aa0c3c1cdb", "hashBase64": "ZtWxIddGy+sywcfO1ez+6utMfSt6IOxdu5BIqgw8HNs=", "hex": "b5ee9c7241020d01000381000114ff00f4a413f4bcf2c80b01020162020c04f6d020c700925f04e001d0d3030171b0925f04e0fa40fa4031fa0031f401fa0031fa00013170f83a02d31f0101d33f01125165a1800f811d588209e1338070f83766b608a15155a1ed44d0fa4001f861fa4001f862fa4030f863218210ae7df95bbae3022182107817b330bae30221821005138d91bae302306c33200304050900c05b6c22f84112c705f2e0468020d721fa40fa4030c882105fcc3d14580402cb1fcb3f22cf1658cf167001ca0070fa027001ca00c9700180108050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000c45b32f841c705f2e046fa40fa40fa0030c882105fcc3d14580602cb1fcb3f21cf1601cf167001ca005003fa027001ca00c90176fb0270018010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0001783101fa40f40401d0fa00f404f404301034342070547000246ec0008e156c3101d0d300fa00fa0023963403fa0030039130e29134e255023324104a0306029e04aa015003a001a001a001a0811e0870f836a0813c9170f836a081128170f836a0812dca70f836a0801981269582100966018070f837a080668200c02b8209e1338070f837a014be226eb321b0e30f070800c430c8471382108b0929625120071582106c582059500502cb1fcb3f12cb1f01fa02f40001cf1601cf1601cf1612ccc90176fb02f84170588010810082226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb0000b835355bc882105fcc3d14580502cb1fcb3f22cf1658cf167001ca0070fa027001ca00c912700180108050226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb00f80f938100c8928064e2f2f002e08210581879bcba8e2730f84212c705f2e047fa4030f863f8438b02c705f2d050c8f841cf16f842cf16f843cf16c9ed54e020821060094a1bba8e1c5bf842c705f2e0478b02f863c8f841cf16f842cf16f843cf16c9ed54e02082106a4fbe34bae30282106e7145f9bae3025b840ff2f00a0b00525bf843c705f2e048f8438b02c705f2d050f843f8628b02f863c8f841cf16f842cf16f843cf16c9ed54002cf84212c705f2e047d421fb0401d0ed1eed53d430ed540035a0844bda89a1f48003f0c3f48003f0c5f48061f0c7f083f085f087c02234c5" }
@@ -1 +1 @@
1
- { "hash": "1859fe20de0577dcb59e136e9960b676d907abe9936f7a8b4f8aa505a7932496", "hashBase64": "GFn+IN4Fd9y1nhNumWC2dtkHq+mTb3qLT4qlBaeTJJY=", "hex": "b5ee9c72410210010002a5000114ff00f4a413f4bcf2c80b01020162020902f8d020c700925f04e001d0d3030171b0925f04e0fa403001d31f0101d33f0112ed44d0d30701f861fa4001f862fa4001f863f40430f8645154a1f844f80701830cf94130f8075003a170f83601a66d817c915003a012821012cc030070f837a066b608a114a1c200f2e064228210245e9406bae302228210581879bcba0304005a6c22f84212c705f2e046d3ff0101d430f844128307f417f864f844f841c8cb07f842cf16f843cf16f400c9ed5404fc8e2c6c22f84212c705f2e046fa4030f863f8438b02c705f2d050f844f841c8cb07f842cf16f843cf16f400c9ed54e022821060094a1bba8e22135f03f842c705f2e0468b02f863f844f841c8cb07f842cf16f843cf16f400c9ed54e02282106a4fbe34bae302228210399685b8bae3023001821040148d4abae3025b840f05060708005e135f03f843c705f2e047f8438b02c705f2d050f843f8628b02f863f844f841c8cb07f842cf16f843cf16f400c9ed5400a46c12d3ff013120f8448307f40f6fa130c88210707a28d2580502cb1fcb3f0101cbff12f400c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000080f844c88210cf03b318580402cb1fcb3f12f400c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000004f2f00201200a0d0201580b0c0043b444bda89a1a60e03f0c3f48003f0c5f48003f0c7e80861f0c9f083f085f087f0890003bb4fffda89a1a60e03f0c3f48003f0c5f48003f0c7e80861f0c9f085f087002016a0e0f0037b3093b513434c1c07e187e90007e18be90007e18fd010c3e193e11200043b10dfb513434c1c07e187e90007e18be90007e18fd010c3e193e1120c1fd03dbe8601933b64b" }
1
+ { "hash": "5f5b34e1aa219ac5e3b92fbe6d4227f4517a2be4ccb13ba6814d72b136e99647", "hashBase64": "X1s04aohmsXjuS++bUIn9FF6K+TMsTumgU1ysTbplkc=", "hex": "b5ee9c72410210010002a6000114ff00f4a413f4bcf2c80b01020162020902f8d020c700925f04e001d0d3030171b0925f04e0fa403001d31f0101d33f0112ed44d0d30701f861fa4001f862fa4001f863f40430f8645154a1f844f80701830cf94130f8075003a170f83601a676820097575003a012821012cc030070f837a066b608a114a1c200f2e064228210245e9406bae302228210581879bc0304005a6c22f84212c705f2e046d3ff0101d430f844128307f417f864f844f841c8cb07f842cf16f843cf16f400c9ed5404feba8e2c6c22f84212c705f2e046fa4030f863f8438b02c705f2d050f844f841c8cb07f842cf16f843cf16f400c9ed54e022821060094a1bba8e22135f03f842c705f2e0468b02f863f844f841c8cb07f842cf16f843cf16f400c9ed54e02282106a4fbe34bae302228210399685b8bae3023001821040148d4abae3025b840f05060708005e135f03f843c705f2e047f8438b02c705f2d050f843f8628b02f863f844f841c8cb07f842cf16f843cf16f400c9ed5400a46c12d3ff013120f8448307f40f6fa130c88210707a28d2580502cb1fcb3f0101cbff12f400c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000080f844c88210cf03b318580402cb1fcb3f12f400c9700180108042226eb32091719170e2c8500401cb055006cf165004fa02cb6a039358cc019130e201c901fb000004f2f00201200a0d0201580b0c0043b444bda89a1a60e03f0c3f48003f0c5f48003f0c7e80861f0c9f083f085f087f0890003bb4fffda89a1a60e03f0c3f48003f0c5f48003f0c7e80861f0c9f085f087002016a0e0f0037b3093b513434c1c07e187e90007e18be90007e18fd010c3e193e11200043b10dfb513434c1c07e187e90007e18be90007e18fd010c3e193e1120c1fd03dbe860ec13a82d" }
@@ -1,6 +1,7 @@
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;
@@ -17,6 +18,8 @@ export type CrossChainLayerConfig = {
17
18
  tacProtocolFee?: number;
18
19
  protocolFeeSupply?: number;
19
20
  executorCode: Cell;
21
+ stakingAdapterAddress?: string;
22
+ stakedTonSupply?: number;
20
23
  };
21
24
  export type EpochInfo = {
22
25
  lastMerkleRoot: bigint;
@@ -32,6 +35,10 @@ export type ExecutorData = {
32
35
  address: Address;
33
36
  stateInit: Cell;
34
37
  };
38
+ export type StakingInfo = {
39
+ stakingAdapterAddress: Address;
40
+ stakedTonSupply: bigint;
41
+ };
35
42
  export declare enum MsgType {
36
43
  tonTransfer = 1255570643,
37
44
  jettonTransfer = 688302850,
@@ -41,14 +48,14 @@ export declare enum MsgType {
41
48
  }
42
49
  export declare const CrossChainLayerOpCodes: {
43
50
  anyone_tvmMsgToEVM: number;
44
- anyone_errorNotification: number;
51
+ anyone_tvmMsgToEvmErrorNotification: number;
45
52
  anyone_excesses: number;
46
53
  anyone_addProtocolFee: number;
47
54
  anyone_collectProtocolFee: number;
48
55
  anyone_collectProtocolFeeNotification: number;
49
56
  executor_evmMsgToTVM: number;
50
- executor_revertSpentParam: number;
51
57
  executor_errorNotification: number;
58
+ executor_evmMsgToTvmErrorNotification: number;
52
59
  admin_changeAdminAddress: number;
53
60
  admin_cancelChangingAdminAddress: number;
54
61
  admin_updateCode: number;
@@ -56,28 +63,44 @@ export declare const CrossChainLayerOpCodes: {
56
63
  admin_updateEpochDelay: number;
57
64
  admin_updateTonProtocolFee: number;
58
65
  admin_updateTacProtocolFee: number;
66
+ admin_changeStakingAdapterAddress: number;
67
+ admin_stake: number;
68
+ admin_unstake: number;
59
69
  newAdmin_confirmChangingAdminAddress: number;
60
70
  sequencerMultisig_changeSequencerMultisigAddress: number;
61
71
  sequencerMultisig_updateMerkleRoot: number;
62
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;
63
81
  };
64
82
  export declare const CrossChainLayerErrors: {
65
83
  noErrors: number;
84
+ invalidSenderSignature: number;
66
85
  systemNotEnoughTon: number;
67
86
  notFromAdmin: number;
68
87
  notFromExecutor: number;
69
88
  notFromSequencerMultisig: number;
70
89
  notFromNewAdmin: number;
90
+ notFromStakingAdapter: number;
71
91
  newAdminAddressIsNone: number;
72
92
  notEnoughTon: number;
73
93
  insufficientBalance: number;
94
+ insufficientStakedBalance: number;
74
95
  zeroFeeSupply: number;
75
96
  invalidProof: number;
76
97
  votingNotActive: number;
77
98
  messageCollectEndTimeLow: number;
78
99
  notEnoughProtocolFee: number;
79
100
  messageCollectEndTimeHigh: number;
80
- invalidSenderSignature: number;
101
+ feeCalculationUnsupported: number;
102
+ stakeAmountTooHigh: number;
103
+ unstakeAmountTooHigh: number;
81
104
  unknownOp: number;
82
105
  };
83
106
  export declare function crossChainLayerConfigToCell(config: CrossChainLayerConfig): Cell;
@@ -87,9 +110,14 @@ export declare class CrossChainLayer implements Contract {
87
110
  code: Cell;
88
111
  data: Cell;
89
112
  } | undefined;
113
+ static tvmMsgToEvmGasConsumption: bigint;
114
+ static feeMinterGasConsumption: bigint;
115
+ static collectionMintGasConsumption: bigint;
90
116
  static minStorageDuration: number;
91
117
  static storageStats: StorageStats;
92
118
  static addFeeGasConsumption: bigint;
119
+ static reserveFee: bigint;
120
+ static reportUnstakeResultGasConsumption: bigint;
93
121
  constructor(address: Address, init?: {
94
122
  code: Cell;
95
123
  data: Cell;
@@ -114,7 +142,7 @@ export declare class CrossChainLayer implements Contract {
114
142
  }): Promise<void>;
115
143
  sendErrorNotification(provider: ContractProvider, via: Sender, value: bigint, opts: {
116
144
  queryId?: number;
117
- payload: Cell;
145
+ operationId: bigint;
118
146
  responseAddress: Address;
119
147
  }): Promise<void>;
120
148
  sendUpdateGroupPublicKey(provider: ContractProvider, via: Sender, value: bigint, opts: {
@@ -168,9 +196,28 @@ export declare class CrossChainLayer implements Contract {
168
196
  queryId?: number;
169
197
  code: Cell;
170
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>;
171
216
  getFullData(provider: ContractProvider): Promise<CrossChainLayerConfig>;
172
217
  getCurrentEpochInfo(provider: ContractProvider): Promise<EpochInfo>;
173
- getExecutorAddress(provider: ContractProvider, payload: Cell): Promise<Address>;
174
- 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>;
175
222
  getEvmMsgToTvmFees(provider: ContractProvider, payload: Cell, proofBits: bigint, proofCells: bigint, executorFeeAmount: bigint, executorFeeToken: Address): Promise<bigint>;
176
223
  }
@@ -7,6 +7,7 @@ const crypto_1 = require("@ton/crypto");
7
7
  const Constants_1 = require("./Constants");
8
8
  const GasUtils_1 = require("./utils/GasUtils");
9
9
  const MerkleRoots_1 = require("./utils/MerkleRoots");
10
+ const CrossChainLayerPayload_1 = require("./utils/CrossChainLayerPayload");
10
11
  var MsgType;
11
12
  (function (MsgType) {
12
13
  MsgType[MsgType["tonTransfer"] = 1255570643] = "tonTransfer";
@@ -17,43 +18,59 @@ var MsgType;
17
18
  })(MsgType || (exports.MsgType = MsgType = {}));
18
19
  exports.CrossChainLayerOpCodes = {
19
20
  anyone_tvmMsgToEVM: 0x6c582059,
20
- anyone_errorNotification: 0xae7df95b,
21
+ anyone_tvmMsgToEvmErrorNotification: 0xae7df95b,
21
22
  anyone_excesses: 0xd53276db,
22
23
  anyone_addProtocolFee: 0x48e660b5,
23
24
  anyone_collectProtocolFee: 0x1f95f86c,
24
25
  anyone_collectProtocolFeeNotification: 0xf358b6d0,
25
- executor_evmMsgToTVM: 0x0e50d313,
26
- executor_revertSpentParam: 0x959f183a,
27
- executor_errorNotification: 0xcf6a5da4,
26
+ executor_evmMsgToTVM: 0x497dae1d,
27
+ executor_errorNotification: 0xcda6f261,
28
+ executor_evmMsgToTvmErrorNotification: 0x86f27385,
28
29
  admin_changeAdminAddress: 0x581879bc,
29
30
  admin_cancelChangingAdminAddress: 0x60094a1b,
30
- admin_updateCode: 0x20faec53,
31
+ admin_updateCode: 0x6e7145f9,
31
32
  admin_updateExecutorCode: 0x7ee5a6d0,
32
33
  admin_updateEpochDelay: 0xe97250b7,
33
34
  admin_updateTonProtocolFee: 0x063199b7,
34
35
  admin_updateTacProtocolFee: 0x3531465c,
36
+ admin_changeStakingAdapterAddress: 0x74db6fbd,
37
+ admin_stake: 0x149c7a93,
38
+ admin_unstake: 0x461d3038,
35
39
  newAdmin_confirmChangingAdminAddress: 0x6a4fbe34,
36
40
  sequencerMultisig_changeSequencerMultisigAddress: 0x5cec6be0,
37
41
  sequencerMultisig_updateMerkleRoot: 0x4b19e42a,
38
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,
39
51
  };
40
52
  exports.CrossChainLayerErrors = {
41
53
  noErrors: 0,
54
+ invalidSenderSignature: 32,
42
55
  systemNotEnoughTon: 37,
43
56
  notFromAdmin: 70,
44
57
  notFromExecutor: 71,
45
58
  notFromSequencerMultisig: 72,
46
59
  notFromNewAdmin: 73,
60
+ notFromStakingAdapter: 74,
47
61
  newAdminAddressIsNone: 80,
48
62
  notEnoughTon: 100,
49
63
  insufficientBalance: 101,
64
+ insufficientStakedBalance: 102,
50
65
  zeroFeeSupply: 200,
51
66
  invalidProof: 201,
52
67
  votingNotActive: 202,
53
68
  messageCollectEndTimeLow: 203,
54
69
  notEnoughProtocolFee: 204,
55
70
  messageCollectEndTimeHigh: 205,
56
- invalidSenderSignature: 32,
71
+ feeCalculationUnsupported: 206,
72
+ stakeAmountTooHigh: 207,
73
+ unstakeAmountTooHigh: 208,
57
74
  unknownOp: 0xfffff,
58
75
  };
59
76
  function crossChainLayerConfigToCell(config) {
@@ -62,14 +79,14 @@ function crossChainLayerConfigToCell(config) {
62
79
  .storeAddress(config.newAdminAddress ? core_1.Address.parse(config.newAdminAddress) : null)
63
80
  .storeAddress(core_1.Address.parse(config.sequencerMultisigAddress))
64
81
  .storeRef((0, core_1.beginCell)()
65
- .storeUint(config.groupPublicKey ? config.groupPublicKey : 0n, Constants_1.Params.bitsize.hash)
66
- .endCell())
67
- .storeRef((0, core_1.beginCell)()
68
82
  .storeCoins(config.tacProtocolFee ? (0, core_1.toNano)(config.tacProtocolFee.toFixed(9)) : 0)
69
83
  .storeCoins(config.tonProtocolFee ? (0, core_1.toNano)(config.tonProtocolFee.toFixed(9)) : 0)
70
84
  .storeCoins(config.protocolFeeSupply ? (0, core_1.toNano)(config.protocolFeeSupply.toFixed(9)) : 0)
71
85
  .endCell())
86
+ .storeRef((0, core_1.beginCell)()
87
+ .storeUint(config.groupPublicKey ? config.groupPublicKey : 0n, Constants_1.Params.bitsize.hash)
72
88
  .storeRef(config.executorCode)
89
+ .endCell())
73
90
  .storeRef((0, core_1.beginCell)()
74
91
  .storeUint(config.epochDelay, Constants_1.Params.bitsize.time)
75
92
  .storeUint(config.prevEpoch ? config.prevEpoch : 0, Constants_1.Params.bitsize.time)
@@ -77,7 +94,11 @@ function crossChainLayerConfigToCell(config) {
77
94
  .storeUint(config.messageCollectEndTime ? config.messageCollectEndTime : 0, Constants_1.Params.bitsize.time)
78
95
  .storeUint(config.nextVotingTime ? config.nextVotingTime : 0, Constants_1.Params.bitsize.time)
79
96
  .storeUint(config.maxRootsSize, 4)
80
- .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)
81
102
  .endCell())
82
103
  .endCell();
83
104
  }
@@ -137,7 +158,7 @@ class CrossChainLayer {
137
158
  body: (0, core_1.beginCell)()
138
159
  .storeUint(exports.CrossChainLayerOpCodes.executor_errorNotification, 32)
139
160
  .storeUint(opts.queryId || 0, 64)
140
- .storeRef(opts.payload)
161
+ .storeUint(opts.operationId, Constants_1.Params.bitsize.hash)
141
162
  .storeAddress(opts.responseAddress)
142
163
  .endCell(),
143
164
  });
@@ -288,6 +309,71 @@ class CrossChainLayer {
288
309
  .endCell(),
289
310
  });
290
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
+ }
291
377
  async getFullData(provider) {
292
378
  const result = await provider.get('get_full_data', []);
293
379
  const adminAddress = result.stack.readAddress().toString();
@@ -305,6 +391,12 @@ class CrossChainLayer {
305
391
  const protocolFeeSupply = Number((0, core_1.fromNano)(result.stack.readNumber()));
306
392
  const executorCode = result.stack.readCell();
307
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
+ }
308
400
  return {
309
401
  adminAddress,
310
402
  newAdminAddress,
@@ -321,6 +413,8 @@ class CrossChainLayer {
321
413
  tonProtocolFee,
322
414
  protocolFeeSupply,
323
415
  executorCode,
416
+ stakingAdapterAddress,
417
+ stakedTonSupply,
324
418
  };
325
419
  }
326
420
  async getCurrentEpochInfo(provider) {
@@ -344,12 +438,25 @@ class CrossChainLayer {
344
438
  groupPublicKey,
345
439
  };
346
440
  }
347
- async getExecutorAddress(provider, payload) {
348
- const result = await provider.get('get_executor_address', [{ type: 'cell', cell: payload }]);
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,
448
+ };
449
+ }
450
+ async getExecutorAddress(provider, operationId) {
451
+ const result = await provider.get('get_executor_address', [{ type: 'int', value: operationId }]);
349
452
  return result.stack.readAddress();
350
453
  }
351
- async getExecutorData(provider, payload) {
352
- 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 }]);
353
460
  const address = result.stack.readAddress();
354
461
  const stateInit = result.stack.readCell();
355
462
  return {
@@ -369,6 +476,12 @@ class CrossChainLayer {
369
476
  }
370
477
  }
371
478
  exports.CrossChainLayer = CrossChainLayer;
479
+ CrossChainLayer.tvmMsgToEvmGasConsumption = 15505n;
480
+ CrossChainLayer.feeMinterGasConsumption = 9904n;
481
+ CrossChainLayer.collectionMintGasConsumption = 9018n;
372
482
  CrossChainLayer.minStorageDuration = 365 * 24 * 3600; //1 year
373
- CrossChainLayer.storageStats = new GasUtils_1.StorageStats(36550n, 90n);
374
- CrossChainLayer.addFeeGasConsumption = 7525n;
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;
@@ -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;
@@ -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)
@@ -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 = {
@@ -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;
@@ -189,5 +189,12 @@ class JettonWallet {
189
189
  }
190
190
  }
191
191
  exports.JettonWallet = JettonWallet;
192
- JettonWallet.storageStats = new GasUtils_1.StorageStats(949, 3);
193
- JettonWallet.stateInitStats = new GasUtils_1.StorageStats(847, 3);
192
+ JettonWallet.mintAfterErrorGasConsumption = 9654n;
193
+ JettonWallet.burnNotificationGasConsumption = 10357n;
194
+ JettonWallet.nftBurnGasConsumption = 11552n;
195
+ JettonWallet.receiveTransferGasConsumption = 11427n;
196
+ JettonWallet.sendTransferGasConsumption = 10669n;
197
+ JettonWallet.burnGasConsumption = 8653n;
198
+ JettonWallet.storageStats = new GasUtils_1.StorageStats(949n, 3n);
199
+ JettonWallet.stateInitStats = new GasUtils_1.StorageStats(847n, 3n);
200
+ JettonWallet.storageDuration = 5n * 365n * 24n * 3600n;
@@ -1,4 +1,5 @@
1
1
  import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/core';
2
+ import { StorageStats } from './utils/GasUtils';
2
3
  export declare const NFTCollectionOpCodes: {
3
4
  admin_deployNFTItem: number;
4
5
  admin_batchDeployNFTItems: number;
@@ -33,6 +34,14 @@ export declare class NFTCollection implements Contract {
33
34
  code: Cell;
34
35
  data: Cell;
35
36
  } | undefined;
37
+ static stateInitStats: StorageStats;
38
+ static handleErrorNotificationGasConsumption: bigint;
39
+ static transferGasConsumption: bigint;
40
+ static burnGasConsumption: bigint;
41
+ static storageStats: StorageStats;
42
+ static initGasConsumption: bigint;
43
+ static nftHandleErrorNotificationGasConsumption: bigint;
44
+ static nftTransferGasConsumption: bigint;
36
45
  constructor(address: Address, init?: {
37
46
  code: Cell;
38
47
  data: Cell;
@@ -4,6 +4,7 @@ exports.NFTCollection = exports.NFTCollectionErrors = exports.NFTCollectionOpCod
4
4
  exports.nftCollectionConfigToCell = nftCollectionConfigToCell;
5
5
  const core_1 = require("@ton/core");
6
6
  const Constants_1 = require("./Constants");
7
+ const GasUtils_1 = require("./utils/GasUtils");
7
8
  exports.NFTCollectionOpCodes = {
8
9
  admin_deployNFTItem: 0xfdba5d5f,
9
10
  admin_batchDeployNFTItems: 0x909d579b,
@@ -149,3 +150,11 @@ class NFTCollection {
149
150
  }
150
151
  }
151
152
  exports.NFTCollection = NFTCollection;
153
+ NFTCollection.stateInitStats = new GasUtils_1.StorageStats(1328n, 5n);
154
+ NFTCollection.handleErrorNotificationGasConsumption = 4638n;
155
+ NFTCollection.transferGasConsumption = 11722n;
156
+ NFTCollection.burnGasConsumption = 11552n;
157
+ NFTCollection.storageStats = new GasUtils_1.StorageStats(7240n, 24n);
158
+ NFTCollection.initGasConsumption = 7546n;
159
+ NFTCollection.nftHandleErrorNotificationGasConsumption = 4638n;
160
+ NFTCollection.nftTransferGasConsumption = 11722n;
@@ -1,4 +1,5 @@
1
1
  import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/core';
2
+ import { StorageStats } from './utils/GasUtils';
2
3
  export declare const NFTItemOpCodes: {
3
4
  owner_transfer: number;
4
5
  owner_burn: number;
@@ -41,6 +42,12 @@ export declare class NFTItem implements Contract {
41
42
  code: Cell;
42
43
  data: Cell;
43
44
  } | undefined;
45
+ static stateInitStats: StorageStats;
46
+ static storageStats: StorageStats;
47
+ static handleErrorNotificationGasConsumption: bigint;
48
+ static transferGasConsumption: bigint;
49
+ static burnGasConsumption: bigint;
50
+ static initGasConsumption: bigint;
44
51
  constructor(address: Address, init?: {
45
52
  code: Cell;
46
53
  data: Cell;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NFTItem = exports.NFTItemErrors = exports.NFTItemOpCodes = void 0;
4
4
  exports.nftItemConfigToCell = nftItemConfigToCell;
5
5
  const core_1 = require("@ton/core");
6
+ const GasUtils_1 = require("./utils/GasUtils");
6
7
  exports.NFTItemOpCodes = {
7
8
  owner_transfer: 0x5fcc3d14,
8
9
  owner_burn: 0x3b390ce,
@@ -146,3 +147,9 @@ class NFTItem {
146
147
  }
147
148
  }
148
149
  exports.NFTItem = NFTItem;
150
+ NFTItem.stateInitStats = new GasUtils_1.StorageStats(1328n, 5n);
151
+ NFTItem.storageStats = new GasUtils_1.StorageStats(1422n, 5n);
152
+ NFTItem.handleErrorNotificationGasConsumption = 4638n;
153
+ NFTItem.transferGasConsumption = 11722n;
154
+ NFTItem.burnGasConsumption = 11552n;
155
+ NFTItem.initGasConsumption = 7546n;