@layerzerolabs/layerzero-v2-ton 3.0.12-ton.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 (251) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/README.md +15 -0
  3. package/build/AllStorages.boc +0 -0
  4. package/build/AllStorages.compiled.json +1 -0
  5. package/build/AllStorages.fif +4164 -0
  6. package/build/AllStorages.test.boc +0 -0
  7. package/build/AllStorages.test.compiled.json +1 -0
  8. package/build/AllStorages.test.fif +1831 -0
  9. package/build/BaseContract.test.boc +0 -0
  10. package/build/BaseContract.test.compiled.json +1 -0
  11. package/build/BaseContract.test.fif +3553 -0
  12. package/build/Channel.boc +0 -0
  13. package/build/Channel.compiled.json +1 -0
  14. package/build/Channel.fif +5001 -0
  15. package/build/Channel.permissions.test.boc +0 -0
  16. package/build/Channel.permissions.test.compiled.json +1 -0
  17. package/build/Channel.permissions.test.fif +7569 -0
  18. package/build/ChannelBurn.test.boc +0 -0
  19. package/build/ChannelBurn.test.compiled.json +1 -0
  20. package/build/ChannelBurn.test.fif +7454 -0
  21. package/build/ChannelCommitPacket.test.boc +0 -0
  22. package/build/ChannelCommitPacket.test.compiled.json +1 -0
  23. package/build/ChannelCommitPacket.test.fif +7981 -0
  24. package/build/ChannelConfig.test.boc +0 -0
  25. package/build/ChannelConfig.test.compiled.json +1 -0
  26. package/build/ChannelConfig.test.fif +7442 -0
  27. package/build/ChannelInitialize.test.boc +0 -0
  28. package/build/ChannelInitialize.test.compiled.json +1 -0
  29. package/build/ChannelInitialize.test.fif +7289 -0
  30. package/build/ChannelMsglibIntegration.test.boc +0 -0
  31. package/build/ChannelMsglibIntegration.test.compiled.json +1 -0
  32. package/build/ChannelMsglibIntegration.test.fif +7404 -0
  33. package/build/ChannelMsglibSendCallback.test.boc +0 -0
  34. package/build/ChannelMsglibSendCallback.test.compiled.json +1 -0
  35. package/build/ChannelMsglibSendCallback.test.fif +7711 -0
  36. package/build/ChannelNilify.test.boc +0 -0
  37. package/build/ChannelNilify.test.compiled.json +1 -0
  38. package/build/ChannelNilify.test.fif +7672 -0
  39. package/build/ChannelReceive.test.boc +0 -0
  40. package/build/ChannelReceive.test.compiled.json +1 -0
  41. package/build/ChannelReceive.test.fif +7702 -0
  42. package/build/ChannelReceiveCallback.test.boc +0 -0
  43. package/build/ChannelReceiveCallback.test.compiled.json +1 -0
  44. package/build/ChannelReceiveCallback.test.fif +7549 -0
  45. package/build/ChannelReceiveView.test.boc +0 -0
  46. package/build/ChannelReceiveView.test.compiled.json +1 -0
  47. package/build/ChannelReceiveView.test.fif +7352 -0
  48. package/build/ChannelSend.test.boc +0 -0
  49. package/build/ChannelSend.test.compiled.json +1 -0
  50. package/build/ChannelSend.test.fif +7658 -0
  51. package/build/Classlib.test.boc +0 -0
  52. package/build/Classlib.test.compiled.json +1 -0
  53. package/build/Classlib.test.fif +4728 -0
  54. package/build/Connection.boc +0 -0
  55. package/build/Connection.compiled.json +1 -0
  56. package/build/Connection.fif +3503 -0
  57. package/build/Connection.test.boc +0 -0
  58. package/build/Connection.test.compiled.json +1 -0
  59. package/build/Connection.test.fif +6575 -0
  60. package/build/Controller.assertions.test.boc +0 -0
  61. package/build/Controller.assertions.test.compiled.json +1 -0
  62. package/build/Controller.assertions.test.fif +6130 -0
  63. package/build/Controller.boc +0 -0
  64. package/build/Controller.compiled.json +1 -0
  65. package/build/Controller.fif +3195 -0
  66. package/build/Controller.permissions.test.boc +0 -0
  67. package/build/Controller.permissions.test.compiled.json +1 -0
  68. package/build/Controller.permissions.test.fif +6237 -0
  69. package/build/Controller.test.boc +0 -0
  70. package/build/Controller.test.compiled.json +1 -0
  71. package/build/Controller.test.fif +6400 -0
  72. package/build/Counter.boc +0 -0
  73. package/build/Counter.compiled.json +1 -0
  74. package/build/Counter.fif +4809 -0
  75. package/build/Counter.permissions.test.boc +0 -0
  76. package/build/Counter.permissions.test.compiled.json +1 -0
  77. package/build/Counter.permissions.test.fif +7106 -0
  78. package/build/Counter.setters.test.boc +0 -0
  79. package/build/Counter.setters.test.compiled.json +1 -0
  80. package/build/Counter.setters.test.fif +7083 -0
  81. package/build/Counter.test.boc +0 -0
  82. package/build/Counter.test.compiled.json +1 -0
  83. package/build/Counter.test.fif +7540 -0
  84. package/build/Dvn.boc +0 -0
  85. package/build/Dvn.compiled.json +1 -0
  86. package/build/Dvn.fif +2923 -0
  87. package/build/Dvn.test.boc +0 -0
  88. package/build/Dvn.test.compiled.json +1 -0
  89. package/build/Dvn.test.fif +5753 -0
  90. package/build/Endpoint.boc +0 -0
  91. package/build/Endpoint.compiled.json +1 -0
  92. package/build/Endpoint.fif +3694 -0
  93. package/build/Endpoint.permissions.test.boc +0 -0
  94. package/build/Endpoint.permissions.test.compiled.json +1 -0
  95. package/build/Endpoint.permissions.test.fif +6211 -0
  96. package/build/Endpoint.test.boc +0 -0
  97. package/build/Endpoint.test.compiled.json +1 -0
  98. package/build/Endpoint.test.fif +6899 -0
  99. package/build/EndpointSetEpConfigDefaults.test.boc +0 -0
  100. package/build/EndpointSetEpConfigDefaults.test.compiled.json +1 -0
  101. package/build/EndpointSetEpConfigDefaults.test.fif +6529 -0
  102. package/build/Executor.boc +0 -0
  103. package/build/Executor.compiled.json +1 -0
  104. package/build/Executor.fif +2731 -0
  105. package/build/Executor.test.boc +0 -0
  106. package/build/Executor.test.compiled.json +1 -0
  107. package/build/Executor.test.fif +5822 -0
  108. package/build/LzClasses.test.boc +0 -0
  109. package/build/LzClasses.test.compiled.json +1 -0
  110. package/build/LzClasses.test.fif +4457 -0
  111. package/build/LzUtil.test.boc +0 -0
  112. package/build/LzUtil.test.compiled.json +1 -0
  113. package/build/LzUtil.test.fif +1831 -0
  114. package/build/MsgData.test.boc +0 -0
  115. package/build/MsgData.test.compiled.json +1 -0
  116. package/build/MsgData.test.fif +4318 -0
  117. package/build/MsglibPacketCodec.test.boc +0 -0
  118. package/build/MsglibPacketCodec.test.compiled.json +1 -0
  119. package/build/MsglibPacketCodec.test.fif +4851 -0
  120. package/build/MultiSig.boc +0 -0
  121. package/build/MultiSig.compiled.json +1 -0
  122. package/build/MultiSig.fif +727 -0
  123. package/build/MultiSigOrder.boc +0 -0
  124. package/build/MultiSigOrder.compiled.json +1 -0
  125. package/build/MultiSigOrder.fif +650 -0
  126. package/build/PipelinedOutOfOrder.test.boc +0 -0
  127. package/build/PipelinedOutOfOrder.test.compiled.json +1 -0
  128. package/build/PipelinedOutOfOrder.test.fif +2188 -0
  129. package/build/SmlConnection.boc +0 -0
  130. package/build/SmlConnection.compiled.json +1 -0
  131. package/build/SmlConnection.fif +2517 -0
  132. package/build/SmlConnection.permissions.test.boc +0 -0
  133. package/build/SmlConnection.permissions.test.compiled.json +1 -0
  134. package/build/SmlConnection.permissions.test.fif +5497 -0
  135. package/build/SmlConnection.test.boc +0 -0
  136. package/build/SmlConnection.test.compiled.json +1 -0
  137. package/build/SmlConnection.test.fif +5494 -0
  138. package/build/SmlManager.boc +0 -0
  139. package/build/SmlManager.compiled.json +1 -0
  140. package/build/SmlManager.fif +3904 -0
  141. package/build/SmlManager.permissions.test.boc +0 -0
  142. package/build/SmlManager.permissions.test.compiled.json +1 -0
  143. package/build/SmlManager.permissions.test.fif +6018 -0
  144. package/build/SmlManager.test.boc +0 -0
  145. package/build/SmlManager.test.compiled.json +1 -0
  146. package/build/SmlManager.test.fif +6047 -0
  147. package/build/Uln.boc +0 -0
  148. package/build/Uln.compiled.json +1 -0
  149. package/build/Uln.fif +4841 -0
  150. package/build/Uln.test.boc +0 -0
  151. package/build/Uln.test.compiled.json +1 -0
  152. package/build/Uln.test.fif +7077 -0
  153. package/build/UlnManager.boc +0 -0
  154. package/build/UlnManager.compiled.json +1 -0
  155. package/build/UlnManager.fif +3851 -0
  156. package/build/UlnManager.test.boc +0 -0
  157. package/build/UlnManager.test.compiled.json +1 -0
  158. package/build/UlnManager.test.fif +6571 -0
  159. package/build/UlnReceiveConfig.test.boc +0 -0
  160. package/build/UlnReceiveConfig.test.compiled.json +1 -0
  161. package/build/UlnReceiveConfig.test.fif +4413 -0
  162. package/build/UlnSend.test.boc +0 -0
  163. package/build/UlnSend.test.compiled.json +1 -0
  164. package/build/UlnSend.test.fif +6576 -0
  165. package/build/UlnSendConfig.test.boc +0 -0
  166. package/build/UlnSendConfig.test.compiled.json +1 -0
  167. package/build/UlnSendConfig.test.fif +4431 -0
  168. package/build/UlnSendWorkerFactory.test.boc +0 -0
  169. package/build/UlnSendWorkerFactory.test.compiled.json +1 -0
  170. package/build/UlnSendWorkerFactory.test.fif +6683 -0
  171. package/build/UlnUtil.test.boc +0 -0
  172. package/build/UlnUtil.test.compiled.json +1 -0
  173. package/build/UlnUtil.test.fif +5873 -0
  174. package/build/WorkerCore.test.boc +0 -0
  175. package/build/WorkerCore.test.compiled.json +1 -0
  176. package/build/WorkerCore.test.fif +5630 -0
  177. package/build/ZroMinter.boc +0 -0
  178. package/build/ZroMinter.compiled.json +1 -0
  179. package/build/ZroMinter.fif +2300 -0
  180. package/build/ZroWallet.boc +0 -0
  181. package/build/ZroWallet.compiled.json +1 -0
  182. package/build/ZroWallet.fif +2471 -0
  183. package/package.json +64 -0
  184. package/src/classes/lz/Attestation.fc +23 -0
  185. package/src/classes/lz/Config.fc +23 -0
  186. package/src/classes/lz/EpConfig.fc +91 -0
  187. package/src/classes/lz/MsglibInfo.fc +31 -0
  188. package/src/classes/lz/Packet.fc +202 -0
  189. package/src/classes/lz/Path.fc +56 -0
  190. package/src/classes/lz/ReceiveEpConfig.fc +24 -0
  191. package/src/classes/lz/SendEpConfig.fc +18 -0
  192. package/src/classes/lz/SmlJobAssigned.fc +20 -0
  193. package/src/classes/lz/Worker.fc +32 -0
  194. package/src/classes/msgdata/AddMsglib.fc +18 -0
  195. package/src/classes/msgdata/Amount.fc +16 -0
  196. package/src/classes/msgdata/Bool.fc +16 -0
  197. package/src/classes/msgdata/ChannelNonceInfo.fc +18 -0
  198. package/src/classes/msgdata/ClaimUnaccountedPoolFunds.fc +0 -0
  199. package/src/classes/msgdata/CoinsAmount.fc +16 -0
  200. package/src/classes/msgdata/CounterIncrement.fc +24 -0
  201. package/src/classes/msgdata/Deploy.fc +20 -0
  202. package/src/classes/msgdata/ExtendedMd.fc +20 -0
  203. package/src/classes/msgdata/GetMsglibCallback.fc +18 -0
  204. package/src/classes/msgdata/InitEndpoint.fc +16 -0
  205. package/src/classes/msgdata/InitSmlConnection.fc +16 -0
  206. package/src/classes/msgdata/InitUlnConnection.fc +18 -0
  207. package/src/classes/msgdata/LzReceiveStatus.fc +58 -0
  208. package/src/classes/msgdata/LzSend.fc +58 -0
  209. package/src/classes/msgdata/MdAddress.fc +18 -0
  210. package/src/classes/msgdata/MdEid.fc +18 -0
  211. package/src/classes/msgdata/MdObj.fc +18 -0
  212. package/src/classes/msgdata/MessagingReceipt.fc +22 -0
  213. package/src/classes/msgdata/MsglibSendCallback.fc +113 -0
  214. package/src/classes/msgdata/Nonce.fc +16 -0
  215. package/src/classes/msgdata/OptionsExtended.fc +20 -0
  216. package/src/classes/msgdata/OptionsV1.fc +27 -0
  217. package/src/classes/msgdata/OptionsV2.fc +34 -0
  218. package/src/classes/msgdata/PacketId.fc +18 -0
  219. package/src/classes/msgdata/PacketSent.fc +39 -0
  220. package/src/classes/msgdata/SetAddress.fc +16 -0
  221. package/src/classes/msgdata/SetEpConfig.fc +33 -0
  222. package/src/classes/msgdata/SetPeer.fc +18 -0
  223. package/src/classes/msgdata/SetSmlManagerConfig.fc +18 -0
  224. package/src/funC++/abstract/contractMainAbstract.fc +3 -0
  225. package/src/funC++/abstract/handlerAbstract.fc +12 -0
  226. package/src/funC++/actions/call.fc +51 -0
  227. package/src/funC++/actions/deploy.fc +118 -0
  228. package/src/funC++/actions/destroy.fc +28 -0
  229. package/src/funC++/actions/dispatch.fc +57 -0
  230. package/src/funC++/actions/event.fc +69 -0
  231. package/src/funC++/actions/payment.fc +52 -0
  232. package/src/funC++/actions/sendJettons.fc +76 -0
  233. package/src/funC++/actions/utils.fc +49 -0
  234. package/src/funC++/baseInterface.fc +16 -0
  235. package/src/funC++/classlib.fc +819 -0
  236. package/src/funC++/constants.fc +64 -0
  237. package/src/funC++/contractMain.fc +84 -0
  238. package/src/funC++/dataStructures/DeterministicInsertionCircularQueue.fc +155 -0
  239. package/src/funC++/dataStructures/PipelinedOutOfOrder.fc +93 -0
  240. package/src/funC++/handlerCore.fc +30 -0
  241. package/src/funC++/stdlib.fc +625 -0
  242. package/src/funC++/stringlib.fc +75 -0
  243. package/src/funC++/txnContext.fc +126 -0
  244. package/src/funC++/utils.fc +119 -0
  245. package/src/jettons/zro/minter.fc +120 -0
  246. package/src/jettons/zro/op-codes.fc +10 -0
  247. package/src/jettons/zro/params.fc +18 -0
  248. package/src/jettons/zro/utils.fc +33 -0
  249. package/src/jettons/zro/wallet.fc +261 -0
  250. package/tests/baseContractTest.fc +192 -0
  251. package/tests/testMain.fc +135 -0
@@ -0,0 +1,3553 @@
1
+ "Asm.fif" include
2
+ // automatically generated from `src/funC++/tests/baseContract/main.fc` incl:`src/funC++/tests/baseContract/./handler.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/protocolHandler.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/handlerCore.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/actions/utils.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/actions/../utils.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/actions/../constants.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/actions/../stdlib.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/actions/../txnContext.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/actions/../classlib.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/actions/../stringlib.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/baseInterface.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/abstract/handlerAbstract.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/actions/call.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/actions/deploy.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/actions/event.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../../../funC++/actions/payment.fc` incl:`src/funC++/tests/baseContract/./../../../protocol/core/abstract/../baseStorage.fc` incl:`src/funC++/tests/baseContract/./storage.fc` incl:`src/funC++/tests/baseContract/../../../../tests/baseContractTest.fc` incl:`src/funC++/tests/baseContract/../../../../tests/./testMain.fc` incl:`src/funC++/tests/baseContract/../../../../tests/../src/funC++/actions/sendJettons.fc` incl:`src/funC++/tests/baseContract/../../../../tests/../src/funC++/actions/destroy.fc` incl:`src/funC++/tests/baseContract/../../../../tests/../src/funC++/actions/dispatch.fc` incl:`src/funC++/tests/baseContract/../../../../tests/protocolStorageTestUtils.fc` incl:`src/funC++/tests/baseContract/../../../../tests/consts.fc` incl:`src/funC++/tests/baseContract/../../../../tests/../src/protocol/msglibs/ultralightnode/uln/interface.fc` incl:`src/funC++/tests/baseContract/../../../../tests/../src/protocol/msglibs/ultralightnode/uln/storage.fc` incl:`src/funC++/tests/baseContract/../../../../tests/../src/protocol/msglibs/ultralightnode/uln/../msgdata/UlnReceiveConfig.fc` incl:`src/funC++/tests/baseContract/../../../../tests/../src/protocol/msglibs/ultralightnode/uln/../msgdata/UlnSendConfig.fc`
3
+ PROGRAM{
4
+ DECLPROC cell_is_empty
5
+ DECLPROC throwError
6
+ DECLPROC throwErrorUnless
7
+ DECLPROC getContractStateSize
8
+ DECLPROC calculateStorageFees
9
+ DECLPROC treeShapeEqual
10
+ DECLPROC str::asciiUint256ToStr
11
+ DECLPROC ~str::concat
12
+ DECLPROC str::concat
13
+ DECLPROC ~str::concatInt
14
+ DECLPROC str::concatInt
15
+ DECLPROC ~str::concatHex
16
+ DECLPROC str::concatHex
17
+ DECLPROC str::console::log<int>
18
+ DECLPROC basechainAddressStdToHashpart
19
+ DECLPROC hashpartToBasechainAddressStd
20
+ DECLPROC getContractAddress
21
+ 131006 DECLMETHOD cl::objToSlice
22
+ DECLPROC _getTypeWidth
23
+ DECLPROC cl::hash
24
+ DECLPROC cl::isNull
25
+ DECLPROC cl::noRefFields
26
+ DECLPROC cl::equalObjTypeShallow
27
+ DECLPROC setContractStorage
28
+ 125767 DECLMETHOD getContractStorage
29
+ DECLPROC computeContractAddress
30
+ 72147 DECLMETHOD cl::typeof
31
+ 100174 DECLMETHOD cl::declare
32
+ 129818 DECLMETHOD cl::nullObject
33
+ 97013 DECLMETHOD cl::set
34
+ 78847 DECLMETHOD cl::get<uint>
35
+ 126275 DECLMETHOD cl::get<cellRef>
36
+ 122745 DECLMETHOD cl::getWithCell<cellRef>
37
+ 67678 DECLMETHOD cl::get<objRef>
38
+ 99339 DECLMETHOD cl::get<uint8>
39
+ 72361 DECLMETHOD cl::get<uint16>
40
+ 112653 DECLMETHOD cl::get<uint32>
41
+ 129371 DECLMETHOD cl::get<uint64>
42
+ 121426 DECLMETHOD cl::get<coins>
43
+ 100035 DECLMETHOD cl::get<uint256>
44
+ 71979 DECLMETHOD cl::get<std_address>
45
+ 117250 DECLMETHOD cl::get<bool>
46
+ 111335 DECLMETHOD cl::get<dict256>
47
+ 93365 DECLMETHOD cl::get<address>
48
+ DECLPROC typeofField
49
+ DECLPROC compareObjectFields
50
+ DECLPROC objectsAreEqual
51
+ DECLPROC _typeToStr
52
+ DECLPROC printField
53
+ 101219 DECLMETHOD uint256ToSlice
54
+ 76252 DECLMETHOD sliceToUint256
55
+ 101318 DECLMETHOD cl::dict256::New
56
+ 107506 DECLMETHOD cl::dict256::get
57
+ 68118 DECLMETHOD cl::dict256::get<uint256>
58
+ 90518 DECLMETHOD cl::dict256::get<cellRef>
59
+ 83291 DECLMETHOD cl::dict256::setRef
60
+ DECLPROC cl::dict256::set
61
+ DECLPROC cl::dict256::delete
62
+ DECLPROC cl::dict256::getMin<slice>
63
+ DECLPROC cl::dict256::getMin<uint256>
64
+ DECLPROC cl::dict256::getMin<cellRef>
65
+ DECLPROC cl::dict256::getNext<slice>
66
+ DECLPROC cl::dict256::getNext<uint256>
67
+ DECLPROC cl::dict256::getNext<cellRef>
68
+ DECLPROC cl::dict256::size
69
+ 130704 DECLMETHOD cl::nestedDict256::set
70
+ 75945 DECLMETHOD cl::nestedDict256::setRef
71
+ 74780 DECLMETHOD cl::nestedDict256::delete
72
+ 90264 DECLMETHOD cl::nestedDict256::get<uint256>
73
+ 111526 DECLMETHOD cl::nestedDict256::get<slice>
74
+ 68376 DECLMETHOD cl::nestedDict256::get<cellRef>
75
+ DECLPROC getMsgValue
76
+ DECLPROC getOpcode
77
+ DECLPROC txnIsBounced
78
+ DECLPROC getContractBalance
79
+ DECLPROC getInitialContractBalance
80
+ DECLPROC getCaller
81
+ DECLPROC getOrigin
82
+ DECLPROC getOriginStd
83
+ DECLPROC getDonationNanos
84
+ DECLPROC setDonationNanos
85
+ DECLPROC getMsgData
86
+ DECLPROC setOrigin
87
+ DECLPROC initTxnContext
88
+ DECLPROC emptyActions
89
+ DECLPROC sendTerminalAction
90
+ DECLPROC sendNonTerminalAction
91
+ DECLPROC buildLayerzeroMessageBody
92
+ DECLPROC assertInitialized
93
+ DECLPROC checkPermissions
94
+ DECLPROC initialize
95
+ DECLPROC authenticateIfNecessary
96
+ DECLPROC assertOwner
97
+ DECLPROC _checkPermissions
98
+ DECLPROC preamble
99
+ DECLPROC action::call::New
100
+ DECLPROC action::call::equals
101
+ DECLPROC _newAction<call>
102
+ DECLPROC ~pushAction<call>
103
+ DECLPROC executeCall
104
+ DECLPROC action::deploy::New
105
+ DECLPROC action::deploy::equals
106
+ DECLPROC _newAction<deployAndCall>
107
+ DECLPROC ~pushAction<deployAndCall>
108
+ DECLPROC executeDeploy
109
+ DECLPROC _getEventSink
110
+ 79569 DECLMETHOD action::event::New
111
+ DECLPROC action::event::equals
112
+ DECLPROC _newAction<event>
113
+ DECLPROC ~pushAction<event>
114
+ DECLPROC executeEvent
115
+ DECLPROC action::payment::New
116
+ DECLPROC action::payment::equals
117
+ DECLPROC _newAction<payment>
118
+ DECLPROC ~pushAction<payment>
119
+ DECLPROC executePayment
120
+ 124063 DECLMETHOD BaseStorage::New
121
+ DECLPROC getOwner
122
+ DECLPROC getInitialStorage
123
+ DECLPROC assertAuthenticated
124
+ DECLPROC authenticate
125
+ DECLPROC _initialize
126
+ DECLPROC baseContract::New
127
+ DECLPROC _testName
128
+ DECLPROC baseTest::getTests
129
+ DECLPROC baseTest::prepare
130
+ DECLPROC emitDone
131
+ DECLPROC test::throwError
132
+ DECLPROC test::throwErrorUnless
133
+ 119192 DECLMETHOD get_test_name
134
+ DECLPROC setCaller
135
+ DECLPROC setContractBalance
136
+ DECLPROC setNewTime
137
+ DECLPROC main
138
+ DECLPROC test::shouldBeTrue
139
+ DECLPROC test::shouldBeFalse
140
+ DECLPROC action::sendJettons::New
141
+ DECLPROC action::sendJettons::equals
142
+ DECLPROC _newAction<sendJettons>
143
+ DECLPROC ~pushAction<sendJettons>
144
+ DECLPROC buildJettonMessageBody
145
+ DECLPROC executeSendJettons
146
+ DECLPROC action::destroy::New
147
+ DECLPROC action::destroy::equals
148
+ DECLPROC action::dispatch::New
149
+ DECLPROC action::dispatch::equals
150
+ DECLPROC _newAction<dispatch>
151
+ DECLPROC ~pushAction<dispatch>
152
+ DECLPROC executeDispatch
153
+ DECLPROC _callCheckPermissions
154
+ DECLPROC forceAuthenticate
155
+ DECLPROC createInitializedStorage
156
+ DECLPROC spoofCaller
157
+ DECLPROC initializeTestStorage
158
+ DECLPROC test::handler::shouldPass
159
+ DECLPROC test::handler::shouldFail
160
+ DECLPROC test::permissions::shouldPass
161
+ DECLPROC test::permissions::shouldFail
162
+ DECLPROC _createInitializedStorage
163
+ DECLPROC createContractStorage
164
+ 103343 DECLMETHOD UlnReceiveConfig::New
165
+ 77303 DECLMETHOD UlnReceiveConfig::NewWithDefaults
166
+ DECLPROC UlnReceiveConfig::utils::getDVNs
167
+ DECLPROC UlnReceiveConfig::utils::getUlnReceiveConfig
168
+ DECLPROC UlnReceiveConfig::utils::readConfig
169
+ DECLPROC UlnReceiveConfig::sanitize
170
+ 78563 DECLMETHOD UlnSendConfig::New
171
+ 89503 DECLMETHOD UlnSendConfig::NewWithDefaults
172
+ DECLPROC _serializeDVNList
173
+ DECLPROC ~dvnListNext
174
+ DECLPROC lz::UlnSendConfig::GetUlnSendConfig
175
+ DECLPROC _serializedDVNListIsValid
176
+ DECLPROC lz::UlnSendConfig::sanitize
177
+ 85777 DECLMETHOD Uln::New
178
+ DECLPROC event::checkPermissions::success::basic
179
+ DECLPROC initialize::checkPermissions::success::basic
180
+ DECLPROC initialize::checkPermissions::revert::notOwner
181
+ DECLPROC initialize::handler::revert::notAuthenticated
182
+ DECLPROC initialize::handler::success::basic
183
+ DECLPROC initialize::handler::success::alreadyInitialized
184
+ DECLGLOBVAR txnContext
185
+ DECLGLOBVAR base_error_msg
186
+ cell_is_empty PROCINLINE:<{
187
+ HASHCU
188
+ 68134197439415885698044414435951397869210496020759160419881882418413283430343 PUSHINT
189
+ EQUAL
190
+ }>
191
+ throwError PROCINLINE:<{
192
+ DUP
193
+ STRDUMP
194
+ DROP
195
+ HASHSU
196
+ 11 PUSHPOW2DEC
197
+ AND
198
+ THROWANY
199
+ }>
200
+ throwErrorUnless PROCINLINE:<{
201
+ SWAP
202
+ IFNOT:<{
203
+ throwError INLINECALLDICT
204
+ }>ELSE<{
205
+ DROP
206
+ }>
207
+ }>
208
+ getContractStateSize PROCINLINE:<{
209
+ 6 PUSHINT
210
+ NEWC
211
+ 5 STU
212
+ s1 s2 XCHG
213
+ STREF
214
+ STREF
215
+ ENDC
216
+ 16 PUSHPOW2DEC
217
+ CDATASIZE
218
+ DROP
219
+ }>
220
+ calculateStorageFees PROCINLINE:<{
221
+ 0 PUSHINT
222
+ GETSTORAGEFEE
223
+ }>
224
+ treeShapeEqual PROCINLINE:<{
225
+ SWAP
226
+ CTOS
227
+ SWAP
228
+ CTOS
229
+ OVER
230
+ SBITREFS
231
+ s2 PUSH
232
+ SBITREFS
233
+ s3 s3 XCHG2
234
+ NEQ
235
+ s1 s2 PUXC
236
+ NEQ
237
+ s1 s2 XCHG
238
+ OR
239
+ IF:<{
240
+ 3 BLKDROP
241
+ FALSE
242
+ }>ELSE<{
243
+ DUP
244
+ 0 EQINT
245
+ IFJMP:<{
246
+ 3 BLKDROP
247
+ TRUE
248
+ }>
249
+ TRUE
250
+ 0 PUSHINT
251
+ WHILE:<{
252
+ s2 PUSH
253
+ 0 GTINT
254
+ }>DO<{
255
+ s4 s0 PUSH2
256
+ PLDREFVAR
257
+ s4 s1 PUSH2
258
+ PLDREFVAR
259
+ treeShapeEqual INLINECALLDICT
260
+ s1 s2 XCHG
261
+ AND
262
+ SWAP
263
+ }>
264
+ s1 s4 XCHG
265
+ 4 BLKDROP
266
+ }>
267
+ }>
268
+ str::asciiUint256ToStr PROC:<{
269
+ DUP
270
+ NEWC
271
+ 256 STU
272
+ ENDC
273
+ CTOS
274
+ SDCNTLEAD0
275
+ 8 PUSHPOW2
276
+ SWAP
277
+ SUB
278
+ POW2
279
+ DEC
280
+ 8627645864741206717834700843784589212596587092734002810783114102550390051603 PUSHINT
281
+ SWAP
282
+ NOT
283
+ AND
284
+ OR
285
+ NEWC
286
+ 256 STU
287
+ ENDC
288
+ CTOS
289
+ }>
290
+ ~str::concat PROC:<{
291
+ OVER
292
+ SBITS
293
+ OVER
294
+ SBITS
295
+ ADD
296
+ 32385 PUSHINT
297
+ GREATER
298
+ IF:<{
299
+ x{43616e6e6f7420636f6e636174656e6174653a20737472696e6720746f6f206c6f6e67} PUSHSLICE
300
+ throwError INLINECALLDICT
301
+ }>
302
+ NEWC
303
+ ROT
304
+ STSLICER
305
+ SWAP
306
+ STSLICER
307
+ ENDC
308
+ CTOS
309
+ }>
310
+ str::concat PROC:<{
311
+ ~str::concat CALLDICT
312
+ }>
313
+ ~str::concatInt PROC:<{
314
+ <b b> <s PUSHSLICE
315
+ OVER
316
+ 0 LESSINT
317
+ IF:<{
318
+ s0 s2 XCHG
319
+ x{2d} PUSHSLICE
320
+ ~str::concat CALLDICT
321
+ SWAP
322
+ NEGATE
323
+ ROT
324
+ }>
325
+ OVER
326
+ 0 EQINT
327
+ IF:<{
328
+ 48 PUSHINT
329
+ NEWC
330
+ 8 STU
331
+ ENDC
332
+ CTOS
333
+ ~str::concat CALLDICT
334
+ }>
335
+ WHILE:<{
336
+ OVER
337
+ 0 GTINT
338
+ }>DO<{
339
+ OVER
340
+ 10 PUSHINT
341
+ MOD
342
+ 48 ADDCONST
343
+ NEWC
344
+ 8 STU
345
+ ENDC
346
+ CTOS
347
+ SWAP
348
+ str::concat CALLDICT
349
+ SWAP
350
+ 10 PUSHINT
351
+ DIV
352
+ SWAP
353
+ }>
354
+ NIP
355
+ str::concat CALLDICT
356
+ }>
357
+ str::concatInt PROC:<{
358
+ ~str::concatInt CALLDICT
359
+ }>
360
+ ~str::concatHex PROC:<{
361
+ <b b> <s PUSHSLICE
362
+ OVER
363
+ 0 EQINT
364
+ IF:<{
365
+ 48 PUSHINT
366
+ NEWC
367
+ 8 STU
368
+ ENDC
369
+ CTOS
370
+ ~str::concat CALLDICT
371
+ }>
372
+ WHILE:<{
373
+ OVER
374
+ 0 GTINT
375
+ }>DO<{
376
+ OVER
377
+ 4 MODPOW2#
378
+ 10 LESSINT
379
+ IF:<{
380
+ OVER
381
+ 4 MODPOW2#
382
+ 48 ADDCONST
383
+ NEWC
384
+ 8 STU
385
+ ENDC
386
+ CTOS
387
+ SWAP
388
+ str::concat CALLDICT
389
+ }>ELSE<{
390
+ OVER
391
+ 4 MODPOW2#
392
+ 65 ADDCONST
393
+ -10 ADDCONST
394
+ NEWC
395
+ 8 STU
396
+ ENDC
397
+ CTOS
398
+ SWAP
399
+ str::concat CALLDICT
400
+ }>
401
+ SWAP
402
+ 4 RSHIFT#
403
+ SWAP
404
+ }>
405
+ NIP
406
+ str::concat CALLDICT
407
+ }>
408
+ str::concatHex PROC:<{
409
+ ~str::concatHex CALLDICT
410
+ }>
411
+ str::console::log<int> PROC:<{
412
+ SWAP
413
+ x{3a20} PUSHSLICE
414
+ str::concat CALLDICT
415
+ SWAP
416
+ str::concatInt CALLDICT
417
+ STRDUMP
418
+ DROP
419
+ }>
420
+ basechainAddressStdToHashpart PROCINLINE:<{
421
+ REWRITESTDADDR
422
+ NIP
423
+ }>
424
+ hashpartToBasechainAddressStd PROCINLINE:<{
425
+ 0 PUSHINT
426
+ 4 PUSHINT
427
+ NEWC
428
+ 3 STU
429
+ 8 STI
430
+ 256 STU
431
+ ENDC CTOS
432
+ }>
433
+ getContractAddress PROCINLINE:<{
434
+ MYADDR
435
+ 11 PUSHINT
436
+ 8 PUSHPOW2
437
+ SDSUBSTR
438
+ 256 PLDU
439
+ }>
440
+ cl::objToSlice PROCINLINE:<{
441
+ CTOS
442
+ }>
443
+ _getTypeWidth PROCINLINE:<{
444
+ DUP
445
+ 9 LESSINT
446
+ IF:<{
447
+ POW2
448
+ }>ELSE<{
449
+ DROP
450
+ 0 PUSHINT
451
+ }>
452
+ }>
453
+ cl::hash PROCINLINE:<{
454
+ HASHCU
455
+ }>
456
+ cl::isNull PROCINLINE:<{
457
+ cell_is_empty INLINECALLDICT
458
+ }>
459
+ cl::noRefFields PROC:<{
460
+ c2 SAVE
461
+ SAMEALTSAVE
462
+ CTOS
463
+ DUP
464
+ SREFS
465
+ DUP
466
+ 0 EQINT
467
+ IFJMP:<{
468
+ 2DROP
469
+ TRUE
470
+ }>
471
+ DUP
472
+ 3 LESSINT
473
+ IFJMP:<{
474
+ 2DROP
475
+ FALSE
476
+ RETALT
477
+ }>
478
+ DUP
479
+ 2 GTINT
480
+ IF:<{
481
+ OVER
482
+ 0 PUSHINT
483
+ PLDREFVAR
484
+ cell_is_empty INLINECALLDICT
485
+ 0 EQINT
486
+ s2 PUSH
487
+ 1 PUSHINT
488
+ PLDREFVAR
489
+ cell_is_empty INLINECALLDICT
490
+ 0 EQINT
491
+ OR
492
+ s2 PUSH
493
+ 2 PUSHINT
494
+ PLDREFVAR
495
+ CTOS
496
+ SREFS
497
+ 0 NEQINT
498
+ OR
499
+ IFJMP:<{
500
+ 2DROP
501
+ FALSE
502
+ RETALT
503
+ }>
504
+ }>
505
+ 3 GTINT
506
+ IF:<{
507
+ 3 PUSHINT
508
+ PLDREFVAR
509
+ CTOS
510
+ SREFS
511
+ 0 NEQINT
512
+ IFJMP:<{
513
+ FALSE
514
+ RETALT
515
+ }>
516
+ }>ELSE<{
517
+ DROP
518
+ }>
519
+ TRUE
520
+ }>
521
+ cl::equalObjTypeShallow PROC:<{
522
+ c2 SAVE
523
+ SAMEALTSAVE
524
+ SWAP
525
+ CTOS
526
+ SWAP
527
+ CTOS
528
+ OVER
529
+ SREFS
530
+ OVER
531
+ SREFS
532
+ s1 s(-1) PUXC
533
+ NEQ
534
+ s3 PUSH
535
+ SBITS
536
+ s3 PUSH
537
+ SBITS
538
+ NEQ
539
+ OR
540
+ IFJMP:<{
541
+ 3 BLKDROP
542
+ FALSE
543
+ }>
544
+ 2 PUSHINT
545
+ WHILE:<{
546
+ s0 s1 PUSH2
547
+ LESS
548
+ }>DO<{
549
+ s3 s0 PUSH2
550
+ PLDREFVAR
551
+ CTOS
552
+ SREFS
553
+ s3 s1 PUSH2
554
+ PLDREFVAR
555
+ CTOS
556
+ SREFS
557
+ NEQ
558
+ s4 s1 PUSH2
559
+ PLDREFVAR
560
+ CTOS
561
+ SBITS
562
+ s4 s2 PUSH2
563
+ PLDREFVAR
564
+ CTOS
565
+ SBITS
566
+ NEQ
567
+ OR
568
+ IFJMP:<{
569
+ 4 BLKDROP
570
+ FALSE
571
+ RETALT
572
+ }>
573
+ INC
574
+ }>
575
+ 4 BLKDROP
576
+ TRUE
577
+ }>
578
+ setContractStorage PROCINLINE:<{
579
+ c4 POP
580
+ }>
581
+ getContractStorage PROCINLINE:<{
582
+ c4 PUSH
583
+ }>
584
+ computeContractAddress PROCINLINE:<{
585
+ 6 PUSHINT
586
+ NEWC
587
+ 5 STU
588
+ STREF
589
+ STREF
590
+ ENDC
591
+ HASHCU
592
+ }>
593
+ cl::typeof PROCINLINE:<{
594
+ DUP
595
+ cl::isNull INLINECALLDICT
596
+ IF:<{
597
+ DROP
598
+ 1314212940 PUSHINT
599
+ }>ELSE<{
600
+ CTOS
601
+ 80 PLDU
602
+ }>
603
+ }>
604
+ cl::declare PROCINLINE:<{
605
+ PUSHNULL
606
+ NEWC
607
+ PAIR
608
+ OVER
609
+ TLEN
610
+ s0 s3 XCHG
611
+ NEWC
612
+ 80 STU
613
+ 1 PUSHINT
614
+ DUP
615
+ 2 PUSHINT
616
+ 350 PUSHINT
617
+ 0 PUSHINT
618
+ DUP
619
+ WHILE:<{
620
+ s0 s9 PUSH2
621
+ LESS
622
+ }>DO<{
623
+ s8 s0 PUSH2
624
+ INDEXVAR
625
+ DUP
626
+ 0 INDEX
627
+ DUP
628
+ _getTypeWidth INLINECALLDICT
629
+ s5 s0 PUSH2
630
+ ADD
631
+ 10 PUSHPOW2DEC
632
+ GREATER
633
+ IF:<{
634
+ s5 POP
635
+ s0 s7 XCHG
636
+ INC
637
+ 0 PUSHINT
638
+ s10 PUSH
639
+ TLEN
640
+ s2 s(-1) PUXC
641
+ GEQ
642
+ IF:<{
643
+ s0 s10 XCHG
644
+ NEWC
645
+ TPUSH
646
+ s0 s10 XCHG
647
+ }>
648
+ s8 s5 XCHG2
649
+ }>
650
+ s4 PUSH
651
+ INC
652
+ s7 PUSH
653
+ GREATER
654
+ IF:<{
655
+ s4 POP
656
+ s5 POP
657
+ s0 s5 XCHG
658
+ INC
659
+ 0 PUSHINT
660
+ 4 PUSHINT
661
+ s10 PUSH
662
+ TLEN
663
+ s3 s(-1) PUXC
664
+ GEQ
665
+ IF:<{
666
+ s0 s10 XCHG
667
+ NEWC
668
+ TPUSH
669
+ s0 s10 XCHG
670
+ }>
671
+ s7 s6 s6 XCHG3
672
+ s0 s4 XCHG
673
+ }>
674
+ OVER
675
+ 9 LESSINT
676
+ IF:<{
677
+ s0 s2 XCHG
678
+ 1 INDEX
679
+ ABS
680
+ s10 s8 PUSH2
681
+ INDEXVAR
682
+ s3 PUSH
683
+ STUX
684
+ s10 s0 s8 XC2PU
685
+ SETINDEXVAR
686
+ }>ELSE<{
687
+ OVER
688
+ 9 EQINT
689
+ IF:<{
690
+ s0 s2 XCHG
691
+ 1 INDEX
692
+ s10 s7 PUSH2
693
+ INDEXVAR
694
+ STREF
695
+ s10 s0 s7 XC2PU
696
+ SETINDEXVAR
697
+ }>ELSE<{
698
+ s0 s2 XCHG
699
+ 1 INDEX
700
+ s10 s7 PUSH2
701
+ INDEXVAR
702
+ STREF
703
+ s10 s0 s7 XC2PU
704
+ SETINDEXVAR
705
+ }>
706
+ }>
707
+ s9 s8 XCHG2
708
+ 4 STU
709
+ s8 PUSH
710
+ 0 GTINT
711
+ IF:<{
712
+ 3 PUSHINT
713
+ s7 PUSH
714
+ 1 EQINT
715
+ IF:<{
716
+ 0 PUSHINT
717
+ }>ELSE<{
718
+ s7 PUSH
719
+ }>
720
+ ROT
721
+ 2 STU
722
+ s4 s(-1) PUXC
723
+ 10 STU
724
+ 2 STU
725
+ s3 s8 XCHG2
726
+ ADD
727
+ }>ELSE<{
728
+ s8 POP
729
+ 10 PUSHPOW2DEC
730
+ s5 PUSH
731
+ 1 EQINT
732
+ IF:<{
733
+ 0 PUSHINT
734
+ }>ELSE<{
735
+ s5 PUSH
736
+ }>
737
+ s0 s9 XCHG2
738
+ 2 STU
739
+ s1 s8 XCHG
740
+ 10 STU
741
+ s1 s(-1) PUXC
742
+ 2 STU
743
+ SWAP
744
+ INC
745
+ s7 s0 s7 XCHG3
746
+ }>
747
+ s0 s2 XCHG
748
+ INC
749
+ s6 s7 XCHG
750
+ }>
751
+ 6 BLKDROP
752
+ 2 2 BLKDROP2
753
+ OVER
754
+ 1 INDEX
755
+ s2 PUSH
756
+ TLEN
757
+ DEC
758
+ DUP
759
+ 1 GTINT
760
+ IF:<{
761
+ OVER
762
+ BREFS
763
+ 0 EQINT
764
+ IF:<{
765
+ <b b> PUSHREF
766
+ <b b> PUSHREF
767
+ s0 s3 XCHG2
768
+ STREF
769
+ s1 s2 XCHG
770
+ STREF
771
+ }>ELSE<{
772
+ OVER
773
+ BREFS
774
+ 1 EQINT
775
+ IF:<{
776
+ <b b> PUSHREF
777
+ ROT
778
+ STREF
779
+ SWAP
780
+ }>
781
+ SWAP
782
+ }>
783
+ SWAP
784
+ }>
785
+ 350 PUSHINT
786
+ s3 PUSH
787
+ BBITS
788
+ SUB
789
+ s1 s3 XCHG
790
+ STONES
791
+ SWAP
792
+ STBR
793
+ OVER
794
+ 1 EQINT
795
+ IF:<{
796
+ 2 1 BLKDROP2
797
+ ENDC
798
+ }>ELSE<{
799
+ SWAP
800
+ 2 EQINT
801
+ IFJMP:<{
802
+ SWAP
803
+ 2 INDEX
804
+ ENDC
805
+ SWAP
806
+ STREF
807
+ ENDC
808
+ }>
809
+ OVER
810
+ 3 INDEX
811
+ ENDC
812
+ s0 s2 XCHG
813
+ 2 INDEX
814
+ ENDC
815
+ SWAP
816
+ STREF
817
+ STREF
818
+ ENDC
819
+ }>
820
+ }>
821
+ cl::nullObject PROCINLINE:<{
822
+ <b b> PUSHREF
823
+ }>
824
+ cl::set PROCINLINE:<{
825
+ s0 s2 XCHG
826
+ CTOS
827
+ SWAP
828
+ 18 MULCONST
829
+ 80 ADDCONST
830
+ 2DUP
831
+ 4 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH, headerSlice]
832
+ 2 PUSHINT // STACK [_CELL_ID_WIDTH, fieldInfoOffset + _FIELD_TYPE_WIDTH, headerSlice]
833
+ SDSUBSTR // STACK [substring]
834
+ 2 PLDU // STACK [2BitUnsignInt]
835
+ s2 s1 PUSH2
836
+ // STACK [fieldInfoOffset, headerSlice]
837
+ 4 PUSHINT // STACK [_FIELD_TYPE_WIDTH, fieldInfoOffset, headerSlice]
838
+ SDSUBSTR // STACK [substring]
839
+ 4 PLDU // STACK [2BitUnsignInt]
840
+ 2OVER
841
+ 6 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH + _CELL_ID_WIDTH, headerSlice]
842
+ 10 PUSHINT // STACK [_DATA_OFFSET_WIDTH, fieldInfoOffset +_FIELD_TYPE_WIDTH + _CELL_ID_WIDTH, headerSlice]
843
+ SDSUBSTR // STACK [substring]
844
+ 10 PLDU // STACK [10BitUnsignInt]
845
+ s4 s3 PUXC
846
+ 16 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH + _CELL_ID_WIDTH + _DATA_OFFSET_WIDTH, headerSlice]
847
+ 2 PUSHINT // STACK [_REF_OFFSET_WIDTH, fieldInfoOffset + _FIELD_TYPE_WIDTH + _CELL_ID_WIDTH + _DATA_OFFSET_WIDTH headerSlice]
848
+ SDSUBSTR // STACK [substring]
849
+ 2 PLDU // STACK [10BitUnsignInt]
850
+ OVER
851
+ _getTypeWidth INLINECALLDICT
852
+ s3 PUSH
853
+ 0 EQINT
854
+ IF:<{
855
+ s5 PUSH
856
+ }>ELSE<{
857
+ s5 s3 PUSH2
858
+ PLDREFVAR
859
+ CTOS
860
+ }>
861
+ OVER
862
+ 0 NEQINT
863
+ IF:<{
864
+ 4 PUSHINT
865
+ s3 POP
866
+ }>
867
+ NEWC
868
+ OVER
869
+ SBITS
870
+ s7 PUSH
871
+ MIN
872
+ s2 PUSH
873
+ SREFS
874
+ s5 s(-1) PUXC
875
+ MIN
876
+ s3 PUSH
877
+ -ROT
878
+ SCUTFIRST
879
+ STSLICER
880
+ s4 PUSH
881
+ 9 EQINT
882
+ IF:<{
883
+ s2 POP
884
+ s3 POP
885
+ s4 POP
886
+ s5 s5 XCHG2
887
+ s0 s3 XCHG
888
+ STREF
889
+ 0 PUSHINT
890
+ s3 PUSH
891
+ SREFS
892
+ s0 s6 XCHG2
893
+ SUB
894
+ DEC
895
+ s3 s5 s0 XCHG3
896
+ SCUTLAST
897
+ s1 s3 XCHG
898
+ STSLICER
899
+ }>ELSE<{
900
+ s0 s4 XCHG
901
+ 9 EQINT
902
+ IF:<{
903
+ NIP
904
+ s4 POP
905
+ s5 s5 XCHG2
906
+ STREF
907
+ 0 PUSHINT
908
+ s3 PUSH
909
+ SREFS
910
+ s0 s6 XCHG2
911
+ SUB
912
+ DEC
913
+ s3 s5 s0 XCHG3
914
+ SCUTLAST
915
+ s1 s3 XCHG
916
+ STSLICER
917
+ }>ELSE<{
918
+ s2 POP
919
+ s0 s6 XCHG
920
+ ABS
921
+ s0 s2 s6 XC2PU
922
+ STUX
923
+ s3 s5 XCHG2
924
+ ADD
925
+ s2 PUSH
926
+ SREFS
927
+ s2 s3 XCHG
928
+ SSKIPFIRST
929
+ s1 s3 XCHG
930
+ STSLICER
931
+ }>
932
+ }>
933
+ s2 PUSH
934
+ 0 GTINT
935
+ IF:<{
936
+ ENDC
937
+ NEWC
938
+ s2 PUSH
939
+ SBITS
940
+ s3 s4 s(-1) PU2XC
941
+ SCUTFIRST
942
+ STSLICER
943
+ STREF
944
+ 0 PUSHINT
945
+ s2 PUSH
946
+ SREFS
947
+ s0 s4 XCHG2
948
+ SUB
949
+ DEC
950
+ s1 s3 XCHG
951
+ SCUTLAST
952
+ STSLICER
953
+ ENDC
954
+ }>ELSE<{
955
+ 2 1 BLKDROP2
956
+ ENDC
957
+ }>
958
+ }>
959
+ cl::get<uint> PROCINLINE:<{
960
+ s0 s2 XCHG
961
+ CTOS
962
+ SWAP
963
+ 18 MULCONST
964
+ 80 ADDCONST
965
+ 2DUP
966
+ 4 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH, headerSlice]
967
+ 2 PUSHINT // STACK [_CELL_ID_WIDTH, fieldInfoOffset + _FIELD_TYPE_WIDTH, headerSlice]
968
+ SDSUBSTR // STACK [substring]
969
+ 2 PLDU // STACK [2BitUnsignInt]
970
+ s2 s1 PUXC
971
+ 6 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH + _CELL_ID_WIDTH, headerSlice]
972
+ 10 PUSHINT // STACK [_DATA_OFFSET_WIDTH, fieldInfoOffset +_FIELD_TYPE_WIDTH + _CELL_ID_WIDTH, headerSlice]
973
+ SDSUBSTR // STACK [substring]
974
+ 10 PLDU // STACK [10BitUnsignInt]
975
+ OVER
976
+ 0 EQINT
977
+ IF:<{
978
+ NIP
979
+ s2 PUSH
980
+ SDSUBSTR // STACK [substring]
981
+ s1 XCHG0
982
+ PLDUX // STACK [10BitUnsignInt] (CC +1 )
983
+ }>ELSE<{
984
+ -ROT
985
+ PLDREFVAR
986
+ CTOS
987
+ s1 s2 XCPU
988
+ SDSUBSTR // STACK [substring]
989
+ s1 XCHG0
990
+ PLDUX // STACK [10BitUnsignInt] (CC +1 )
991
+ }>
992
+ }>
993
+ cl::get<cellRef> PROCINLINE:<{
994
+ SWAP
995
+ CTOS
996
+ SWAP
997
+ 18 MULCONST
998
+ 80 ADDCONST
999
+ 2DUP
1000
+ 4 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH, headerSlice]
1001
+ 2 PUSHINT // STACK [_CELL_ID_WIDTH, fieldInfoOffset + _FIELD_TYPE_WIDTH, headerSlice]
1002
+ SDSUBSTR // STACK [substring]
1003
+ 2 PLDU // STACK [2BitUnsignInt]
1004
+ s2 s1 PUXC
1005
+ 16 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH + _CELL_ID_WIDTH + _DATA_OFFSET_WIDTH, headerSlice]
1006
+ 2 PUSHINT // STACK [_REF_OFFSET_WIDTH, fieldInfoOffset + _FIELD_TYPE_WIDTH + _CELL_ID_WIDTH + _DATA_OFFSET_WIDTH headerSlice]
1007
+ SDSUBSTR // STACK [substring]
1008
+ 2 PLDU // STACK [10BitUnsignInt]
1009
+ OVER
1010
+ 0 EQINT
1011
+ IF:<{
1012
+ NIP
1013
+ PLDREFVAR
1014
+ }>ELSE<{
1015
+ -ROT
1016
+ PLDREFVAR
1017
+ CTOS
1018
+ SWAP
1019
+ PLDREFVAR
1020
+ }>
1021
+ }>
1022
+ cl::getWithCell<cellRef> PROCINLINE:<{
1023
+ cl::get<cellRef> INLINECALLDICT
1024
+ }>
1025
+ cl::get<objRef> PROCINLINE:<{
1026
+ cl::get<cellRef> INLINECALLDICT
1027
+ }>
1028
+ cl::get<uint8> PROCINLINE:<{
1029
+ 8 PUSHINT
1030
+ cl::get<uint> INLINECALLDICT
1031
+ }>
1032
+ cl::get<uint16> PROCINLINE:<{
1033
+ 16 PUSHINT
1034
+ cl::get<uint> INLINECALLDICT
1035
+ }>
1036
+ cl::get<uint32> PROCINLINE:<{
1037
+ 32 PUSHINT
1038
+ cl::get<uint> INLINECALLDICT
1039
+ }>
1040
+ cl::get<uint64> PROCINLINE:<{
1041
+ 64 PUSHINT
1042
+ cl::get<uint> INLINECALLDICT
1043
+ }>
1044
+ cl::get<coins> PROCINLINE:<{
1045
+ 7 PUSHPOW2
1046
+ cl::get<uint> INLINECALLDICT
1047
+ }>
1048
+ cl::get<uint256> PROCINLINE:<{
1049
+ 8 PUSHPOW2
1050
+ cl::get<uint> INLINECALLDICT
1051
+ }>
1052
+ cl::get<std_address> PROCINLINE:<{
1053
+ 8 PUSHPOW2
1054
+ cl::get<uint> INLINECALLDICT
1055
+ hashpartToBasechainAddressStd INLINECALLDICT
1056
+ }>
1057
+ cl::get<bool> PROCINLINE:<{
1058
+ 1 PUSHINT
1059
+ cl::get<uint> INLINECALLDICT
1060
+ 0 NEQINT
1061
+ }>
1062
+ cl::get<dict256> PROCINLINE:<{
1063
+ cl::get<cellRef> INLINECALLDICT
1064
+ }>
1065
+ cl::get<address> PROCINLINE:<{
1066
+ 8 PUSHPOW2
1067
+ cl::get<uint> INLINECALLDICT
1068
+ }>
1069
+ typeofField PROCINLINE:<{
1070
+ SWAP
1071
+ CTOS
1072
+ SWAP
1073
+ 18 MULCONST
1074
+ 80 ADDCONST
1075
+ 4 PUSHINT
1076
+ SDSUBSTR
1077
+ 4 PLDU
1078
+ }>
1079
+ compareObjectFields PROCINLINE:<{
1080
+ CONT:<{
1081
+ c2 SAVE
1082
+ SAMEALTSAVE
1083
+ OVER
1084
+ cl::typeof INLINECALLDICT
1085
+ OVER
1086
+ cl::typeof INLINECALLDICT
1087
+ NEQ
1088
+ DUP
1089
+ IF:<{
1090
+ 3 BLKDROP
1091
+ 16 PUSHINT
1092
+ }>ELSE<{
1093
+ s2 PUSH
1094
+ cl::typeof INLINECALLDICT
1095
+ 1314212940 PUSHINT
1096
+ EQUAL
1097
+ IFJMP:<{
1098
+ 3 BLKDROP
1099
+ -1 PUSHINT
1100
+ }>
1101
+ 0 PUSHINT
1102
+ WHILE:<{
1103
+ DUP
1104
+ 16 LESSINT
1105
+ }>DO<{
1106
+ s3 s0 PUSH2
1107
+ typeofField INLINECALLDICT
1108
+ DUP
1109
+ 9 EQINT
1110
+ IF:<{
1111
+ DROP
1112
+ NIP
1113
+ s2 s0 PUSH2
1114
+ cl::get<objRef> INLINECALLDICT
1115
+ cl::hash INLINECALLDICT
1116
+ s2 s1 PUSH2
1117
+ cl::get<objRef> INLINECALLDICT
1118
+ cl::hash INLINECALLDICT
1119
+ NEQ
1120
+ DUP
1121
+ IF:<{
1122
+ s3 s1 PUSH2
1123
+ cl::get<objRef> INLINECALLDICT
1124
+ HASHCU
1125
+ s0 DUMP
1126
+ DROP
1127
+ s2 s1 PUSH2
1128
+ cl::get<objRef> INLINECALLDICT
1129
+ HASHCU
1130
+ s0 DUMP
1131
+ DROP
1132
+ }>
1133
+ }>ELSE<{
1134
+ DUP
1135
+ 9 LESSINT
1136
+ IF:<{
1137
+ 1 2 BLKDROP2
1138
+ _getTypeWidth INLINECALLDICT
1139
+ s3 s1 s0 PUSH3
1140
+ cl::get<uint> INLINECALLDICT
1141
+ s3 s2 s1 PUSH3
1142
+ cl::get<uint> INLINECALLDICT
1143
+ NEQ
1144
+ DUP
1145
+ IF:<{
1146
+ x{6c68733a20} PUSHSLICE
1147
+ s5 s3 s2 PUSH3
1148
+ cl::get<uint> INLINECALLDICT
1149
+ str::console::log<int> CALLDICT
1150
+ 2OVER
1151
+ x{7268733a20} PUSHSLICE
1152
+ s0 s4 XCHG
1153
+ cl::get<uint> INLINECALLDICT
1154
+ s1 s2 XCHG
1155
+ str::console::log<int> CALLDICT
1156
+ }>ELSE<{
1157
+ NIP
1158
+ }>
1159
+ }>ELSE<{
1160
+ 2DROP
1161
+ 16 PUSHINT
1162
+ SWAP
1163
+ }>
1164
+ }>
1165
+ DUP
1166
+ IFJMP:<{
1167
+ s1 s3 XCHG
1168
+ 3 BLKDROP
1169
+ x{4d616c666f726d6564206669656c643a20} PUSHSLICE
1170
+ OVER
1171
+ str::console::log<int> CALLDICT
1172
+ RETALT
1173
+ }>
1174
+ SWAP
1175
+ INC
1176
+ }>
1177
+ 4 BLKDROP
1178
+ -1 PUSHINT
1179
+ }>
1180
+ }>
1181
+ EXECUTE
1182
+ }>
1183
+ objectsAreEqual PROCINLINE:<{
1184
+ compareObjectFields INLINECALLDICT
1185
+ -1 EQINT
1186
+ }>
1187
+ _typeToStr PROC:<{
1188
+ DUP
1189
+ 3 EQINT
1190
+ IFJMP:<{
1191
+ DROP
1192
+ x{75696e7438} PUSHSLICE
1193
+ }>
1194
+ DUP
1195
+ 4 EQINT
1196
+ IFJMP:<{
1197
+ DROP
1198
+ x{75696e743136} PUSHSLICE
1199
+ }>
1200
+ DUP
1201
+ 5 EQINT
1202
+ IFJMP:<{
1203
+ DROP
1204
+ x{75696e743332} PUSHSLICE
1205
+ }>
1206
+ DUP
1207
+ 6 EQINT
1208
+ IFJMP:<{
1209
+ DROP
1210
+ x{75696e743634} PUSHSLICE
1211
+ }>
1212
+ DUP
1213
+ 8 EQINT
1214
+ IFJMP:<{
1215
+ DROP
1216
+ x{75696e74323536} PUSHSLICE
1217
+ }>
1218
+ DUP
1219
+ 7 EQINT
1220
+ IFJMP:<{
1221
+ DROP
1222
+ x{636f696e73} PUSHSLICE
1223
+ }>
1224
+ DUP
1225
+ 8 EQINT
1226
+ IFJMP:<{
1227
+ DROP
1228
+ x{61646472657373} PUSHSLICE
1229
+ }>
1230
+ DUP
1231
+ 9 EQINT
1232
+ IFJMP:<{
1233
+ DROP
1234
+ x{64696374323536} PUSHSLICE
1235
+ }>
1236
+ DUP
1237
+ 9 EQINT
1238
+ IFJMP:<{
1239
+ DROP
1240
+ x{6f626a526566} PUSHSLICE
1241
+ }>
1242
+ DUP
1243
+ 9 EQINT
1244
+ IFJMP:<{
1245
+ DROP
1246
+ x{63656c6c526566} PUSHSLICE
1247
+ }>
1248
+ 0 EQINT
1249
+ IFJMP:<{
1250
+ x{626f6f6c} PUSHSLICE
1251
+ }>
1252
+ x{756e6b6e6f776e} PUSHSLICE
1253
+ }>
1254
+ printField PROCINLINE:<{
1255
+ OVER
1256
+ CTOS
1257
+ s2 s1 PUSH2
1258
+ typeofField INLINECALLDICT
1259
+ s2 PUSH
1260
+ 18 MULCONST
1261
+ 80 ADDCONST
1262
+ DUP
1263
+ 4 ADDCONST
1264
+ s3 s(-1) PUXC
1265
+ 2 PUSHINT
1266
+ SDSUBSTR
1267
+ 2 PLDU
1268
+ OVER
1269
+ 4 ADDCONST
1270
+ 2 ADDCONST
1271
+ 10 ADDCONST
1272
+ s4 s(-1) PUXC
1273
+ 2 PUSHINT
1274
+ SDSUBSTR
1275
+ 2 PLDU
1276
+ s3 PUSH
1277
+ _getTypeWidth INLINECALLDICT
1278
+ s0 s3 XCHG
1279
+ 4 ADDCONST
1280
+ 2 ADDCONST
1281
+ s1 s5 XCHG
1282
+ 10 PUSHINT
1283
+ SDSUBSTR
1284
+ 10 PLDU
1285
+ s3 PUSH
1286
+ _typeToStr CALLDICT
1287
+ x{20} PUSHSLICE
1288
+ str::concat CALLDICT
1289
+ s6 PUSH
1290
+ str::concatInt CALLDICT
1291
+ x{2061742063} PUSHSLICE
1292
+ str::concat CALLDICT
1293
+ ROT
1294
+ str::concatInt CALLDICT
1295
+ s2 PUSH
1296
+ 0 GTINT
1297
+ IF:<{
1298
+ s4 POP
1299
+ s0 s3 XCHG
1300
+ x{2e62} PUSHSLICE
1301
+ str::concat CALLDICT
1302
+ s0 s3 XCHG2
1303
+ str::concatInt CALLDICT
1304
+ }>ELSE<{
1305
+ NIP
1306
+ x{2e72} PUSHSLICE
1307
+ str::concat CALLDICT
1308
+ s0 s3 XCHG2
1309
+ str::concatInt CALLDICT
1310
+ }>
1311
+ OVER
1312
+ 9 LESSINT
1313
+ IF:<{
1314
+ NIP
1315
+ x{203d20} PUSHSLICE
1316
+ str::concat CALLDICT
1317
+ 3 -ROLL
1318
+ cl::get<uint> INLINECALLDICT
1319
+ str::concatInt CALLDICT
1320
+ STRDUMP
1321
+ DROP
1322
+ }>ELSE<{
1323
+ s2 POP
1324
+ 9 EQINT
1325
+ IF:<{
1326
+ x{2068617368203d20} PUSHSLICE
1327
+ str::concat CALLDICT
1328
+ -ROT
1329
+ cl::get<objRef> INLINECALLDICT
1330
+ cl::hash INLINECALLDICT
1331
+ str::concatInt CALLDICT
1332
+ STRDUMP
1333
+ DROP
1334
+ }>ELSE<{
1335
+ x{2068617368203d20} PUSHSLICE
1336
+ str::concat CALLDICT
1337
+ -ROT
1338
+ cl::get<cellRef> INLINECALLDICT
1339
+ HASHCU
1340
+ str::concatInt CALLDICT
1341
+ STRDUMP
1342
+ DROP
1343
+ }>
1344
+ }>
1345
+ }>
1346
+ uint256ToSlice PROCINLINE:<{
1347
+ NEWC
1348
+ 256 STU
1349
+ ENDC CTOS
1350
+ }>
1351
+ sliceToUint256 PROCINLINE:<{
1352
+ 256 PLDU
1353
+ }>
1354
+ cl::dict256::New PROCINLINE:<{
1355
+ <b b> PUSHREF
1356
+ }>
1357
+ cl::dict256::get PROCINLINE:<{
1358
+ OVER
1359
+ cell_is_empty INLINECALLDICT
1360
+ IF:<{
1361
+ NIP
1362
+ NEWDICT
1363
+ 8 PUSHPOW2
1364
+ DICTUGET
1365
+ NULLSWAPIFNOT
1366
+ }>ELSE<{
1367
+ SWAP
1368
+ 8 PUSHPOW2
1369
+ DICTUGET
1370
+ NULLSWAPIFNOT
1371
+ }>
1372
+ }>
1373
+ cl::dict256::get<uint256> PROCINLINE:<{
1374
+ cl::dict256::get INLINECALLDICT
1375
+ IF:<{
1376
+ sliceToUint256 INLINECALLDICT
1377
+ TRUE
1378
+ }>ELSE<{
1379
+ DROP
1380
+ 0 PUSHINT
1381
+ FALSE
1382
+ }>
1383
+ }>
1384
+ cl::dict256::get<cellRef> PROCINLINE:<{
1385
+ OVER
1386
+ cell_is_empty INLINECALLDICT
1387
+ IF:<{
1388
+ 2DROP
1389
+ <b b> PUSHREF
1390
+ FALSE
1391
+ }>ELSE<{
1392
+ SWAP
1393
+ 8 PUSHPOW2
1394
+ DICTUGETREF
1395
+ NULLSWAPIFNOT
1396
+ }>
1397
+ }>
1398
+ cl::dict256::setRef PROCINLINE:<{
1399
+ s2 PUSH
1400
+ cell_is_empty INLINECALLDICT
1401
+ IF:<{
1402
+ 1 2 BLKDROP2
1403
+ NEWDICT
1404
+ s1 s2 XCHG
1405
+ 8 PUSHPOW2
1406
+ DICTUSETREF
1407
+ }>ELSE<{
1408
+ s0 s2 XCHG
1409
+ 8 PUSHPOW2
1410
+ DICTUSETREF
1411
+ }>
1412
+ }>
1413
+ cl::dict256::set PROCINLINE:<{
1414
+ DUP
1415
+ <{ TRY:<{ SBITS DROP -1 PUSHINT }>CATCH<{ 2DROP 0 PUSHINT }> }>CONT 1 1 CALLXARGS
1416
+ IF:<{
1417
+ }>ELSE<{
1418
+ uint256ToSlice INLINECALLDICT
1419
+ }>
1420
+ s2 PUSH
1421
+ cell_is_empty INLINECALLDICT
1422
+ IF:<{
1423
+ s2 POP
1424
+ NEWDICT
1425
+ 8 PUSHPOW2
1426
+ DICTUSET
1427
+ }>ELSE<{
1428
+ s0 s2 XCHG
1429
+ 8 PUSHPOW2
1430
+ DICTUSET
1431
+ }>
1432
+ }>
1433
+ cl::dict256::delete PROC:<{
1434
+ OVER
1435
+ cell_is_empty INLINECALLDICT
1436
+ IFJMP:<{
1437
+ DROP
1438
+ }>
1439
+ SWAP
1440
+ 8 PUSHPOW2
1441
+ DICTUDEL
1442
+ DROP
1443
+ DUP
1444
+ <{ TRY:<{ CTOS DROP -1 PUSHINT }>CATCH<{ 2DROP 0 PUSHINT }> }>CONT 1 1 CALLXARGS
1445
+ IF:<{
1446
+ }>ELSE<{
1447
+ DROP
1448
+ cl::dict256::New INLINECALLDICT
1449
+ }>
1450
+ }>
1451
+ cl::dict256::getMin<slice> PROC:<{
1452
+ DUP
1453
+ cell_is_empty INLINECALLDICT
1454
+ IFJMP:<{
1455
+ DROP
1456
+ -1 PUSHINT
1457
+ PUSHNULL
1458
+ }>
1459
+ 8 PUSHPOW2
1460
+ DICTUMIN
1461
+ NULLSWAPIFNOT2
1462
+ IFJMP:<{
1463
+ SWAP
1464
+ }>
1465
+ 2DROP
1466
+ -1 PUSHINT
1467
+ PUSHNULL
1468
+ }>
1469
+ cl::dict256::getMin<uint256> PROC:<{
1470
+ DUP
1471
+ cell_is_empty INLINECALLDICT
1472
+ IFJMP:<{
1473
+ DROP
1474
+ -1 PUSHINT
1475
+ PUSHNULL
1476
+ }>
1477
+ 8 PUSHPOW2
1478
+ DICTUMIN
1479
+ NULLSWAPIFNOT2
1480
+ IFJMP:<{
1481
+ SWAP
1482
+ 256 PLDU
1483
+ }>
1484
+ 2DROP
1485
+ -1 PUSHINT
1486
+ PUSHNULL
1487
+ }>
1488
+ cl::dict256::getMin<cellRef> PROC:<{
1489
+ DUP
1490
+ cell_is_empty INLINECALLDICT
1491
+ IFJMP:<{
1492
+ DROP
1493
+ -1 PUSHINT
1494
+ PUSHNULL
1495
+ }>
1496
+ 8 PUSHPOW2
1497
+ DICTUMINREF
1498
+ NULLSWAPIFNOT2
1499
+ IFJMP:<{
1500
+ SWAP
1501
+ }>
1502
+ 2DROP
1503
+ -1 PUSHINT
1504
+ PUSHNULL
1505
+ }>
1506
+ cl::dict256::getNext<slice> PROC:<{
1507
+ OVER
1508
+ cell_is_empty INLINECALLDICT
1509
+ IFJMP:<{
1510
+ 2DROP
1511
+ -1 PUSHINT
1512
+ PUSHNULL
1513
+ }>
1514
+ SWAP
1515
+ 8 PUSHPOW2
1516
+ DICTUGETNEXT
1517
+ NULLSWAPIFNOT2
1518
+ IFJMP:<{
1519
+ SWAP
1520
+ }>
1521
+ 2DROP
1522
+ -1 PUSHINT
1523
+ PUSHNULL
1524
+ }>
1525
+ cl::dict256::getNext<uint256> PROC:<{
1526
+ OVER
1527
+ cell_is_empty INLINECALLDICT
1528
+ IFJMP:<{
1529
+ 2DROP
1530
+ -1 PUSHINT
1531
+ PUSHNULL
1532
+ }>
1533
+ SWAP
1534
+ 8 PUSHPOW2
1535
+ DICTUGETNEXT
1536
+ NULLSWAPIFNOT2
1537
+ IFJMP:<{
1538
+ SWAP
1539
+ 256 PLDU
1540
+ }>
1541
+ 2DROP
1542
+ -1 PUSHINT
1543
+ PUSHNULL
1544
+ }>
1545
+ cl::dict256::getNext<cellRef> PROC:<{
1546
+ OVER
1547
+ cell_is_empty INLINECALLDICT
1548
+ IFJMP:<{
1549
+ 2DROP
1550
+ -1 PUSHINT
1551
+ PUSHNULL
1552
+ }>
1553
+ SWAP
1554
+ 8 PUSHPOW2
1555
+ DICTUGETNEXT
1556
+ NULLSWAPIFNOT2
1557
+ IFJMP:<{
1558
+ SWAP
1559
+ 0 PLDREFIDX
1560
+ }>
1561
+ 2DROP
1562
+ -1 PUSHINT
1563
+ PUSHNULL
1564
+ }>
1565
+ cl::dict256::size PROCINLINE:<{
1566
+ 0 PUSHINT
1567
+ OVER
1568
+ cl::dict256::getMin<slice> CALLDICT
1569
+ DROP
1570
+ WHILE:<{
1571
+ DUP
1572
+ -1 GTINT
1573
+ }>DO<{
1574
+ s2 s(-1) PUXC
1575
+ cl::dict256::getNext<slice> CALLDICT
1576
+ DROP
1577
+ SWAP
1578
+ INC
1579
+ SWAP
1580
+ }>
1581
+ DROP
1582
+ NIP
1583
+ }>
1584
+ cl::nestedDict256::set PROCINLINE:<{
1585
+ 2OVER
1586
+ cl::get<dict256> INLINECALLDICT
1587
+ -ROT
1588
+ cl::dict256::set INLINECALLDICT
1589
+ cl::set INLINECALLDICT
1590
+ }>
1591
+ cl::nestedDict256::setRef PROCINLINE:<{
1592
+ 2OVER
1593
+ cl::get<dict256> INLINECALLDICT
1594
+ -ROT
1595
+ cl::dict256::setRef INLINECALLDICT
1596
+ cl::set INLINECALLDICT
1597
+ }>
1598
+ cl::nestedDict256::delete PROCINLINE:<{
1599
+ s2 s1 PUSH2
1600
+ cl::get<dict256> INLINECALLDICT
1601
+ SWAP
1602
+ cl::dict256::delete CALLDICT
1603
+ cl::set INLINECALLDICT
1604
+ }>
1605
+ cl::nestedDict256::get<uint256> PROCINLINE:<{
1606
+ -ROT
1607
+ cl::get<dict256> INLINECALLDICT
1608
+ SWAP
1609
+ cl::dict256::get<uint256> INLINECALLDICT
1610
+ }>
1611
+ cl::nestedDict256::get<slice> PROCINLINE:<{
1612
+ -ROT
1613
+ cl::get<dict256> INLINECALLDICT
1614
+ SWAP
1615
+ cl::dict256::get INLINECALLDICT
1616
+ }>
1617
+ cl::nestedDict256::get<cellRef> PROCINLINE:<{
1618
+ -ROT
1619
+ cl::get<dict256> INLINECALLDICT
1620
+ SWAP
1621
+ cl::dict256::get INLINECALLDICT
1622
+ DUP
1623
+ IF:<{
1624
+ SWAP
1625
+ 0 PLDREFIDX
1626
+ SWAP
1627
+ }>ELSE<{
1628
+ NIP
1629
+ <b b> PUSHREF
1630
+ SWAP
1631
+ }>
1632
+ }>
1633
+ getMsgValue PROCINLINE:<{
1634
+ txnContext GETGLOB
1635
+ 6 INDEX
1636
+ }>
1637
+ getOpcode PROCINLINE:<{
1638
+ txnContext GETGLOB
1639
+ 3 INDEX
1640
+ }>
1641
+ txnIsBounced PROCINLINE:<{
1642
+ txnContext GETGLOB
1643
+ 0 INDEX
1644
+ }>
1645
+ getContractBalance PROCINLINE:<{
1646
+ txnContext GETGLOB
1647
+ 5 INDEX
1648
+ }>
1649
+ getInitialContractBalance PROCINLINE:<{
1650
+ getContractBalance INLINECALLDICT
1651
+ getMsgValue INLINECALLDICT
1652
+ SUB
1653
+ }>
1654
+ getCaller PROCINLINE:<{
1655
+ txnContext GETGLOB
1656
+ 1 INDEX
1657
+ }>
1658
+ getOrigin PROCINLINE:<{
1659
+ txnContext GETGLOB
1660
+ 9 INDEX
1661
+ }>
1662
+ getOriginStd PROCINLINE:<{
1663
+ getOrigin INLINECALLDICT
1664
+ hashpartToBasechainAddressStd INLINECALLDICT
1665
+ }>
1666
+ getDonationNanos PROCINLINE:<{
1667
+ txnContext GETGLOB
1668
+ 10 INDEX
1669
+ }>
1670
+ setDonationNanos PROCINLINE:<{
1671
+ txnContext GETGLOB
1672
+ SWAP
1673
+ 10 PUSHINT
1674
+ SETINDEXVAR
1675
+ txnContext SETGLOB
1676
+ }>
1677
+ getMsgData PROCINLINE:<{
1678
+ txnContext GETGLOB
1679
+ 11 INDEX
1680
+ }>
1681
+ setOrigin PROCINLINE:<{
1682
+ txnContext GETGLOB
1683
+ SWAP
1684
+ 9 PUSHINT
1685
+ SETINDEXVAR
1686
+ txnContext SETGLOB
1687
+ }>
1688
+ initTxnContext PROCINLINE:<{
1689
+ OVER
1690
+ CTOS
1691
+ 4 PUSHINT
1692
+ LDUX
1693
+ FALSE
1694
+ s0 s2 XCHG
1695
+ 1 PUSHINT
1696
+ AND
1697
+ IF:<{
1698
+ NIP
1699
+ TRUE
1700
+ s0 s2 XCHG
1701
+ 32 PUSHINT
1702
+ SDSKIPFIRST
1703
+ -ROT
1704
+ }>
1705
+ -1 PUSHINT
1706
+ DUP
1707
+ 0 PUSHINT
1708
+ PUSHNULL
1709
+ s0 s4 XCHG
1710
+ LDMSGADDR
1711
+ LDMSGADDR
1712
+ NIP
1713
+ LDGRAMS
1714
+ NIP
1715
+ 1 PUSHINT
1716
+ SDSKIPFIRST
1717
+ LDGRAMS
1718
+ NIP
1719
+ SWAP
1720
+ basechainAddressStdToHashpart INLINECALLDICT
1721
+ s0 s7 PUSH2
1722
+ SEMPTY
1723
+ IFNOT:<{
1724
+ 3 3 BLKDROP2
1725
+ s0 s5 XCHG
1726
+ 32 PUSHINT
1727
+ LDUX
1728
+ 64 PUSHINT
1729
+ LDUX
1730
+ LDGRAMS
1731
+ DUP
1732
+ SBITS
1733
+ 267 PUSHINT
1734
+ GEQ
1735
+ IF:<{
1736
+ s8 POP
1737
+ s7 PUSH
1738
+ 11 PUSHINT
1739
+ 8 PUSHPOW2
1740
+ SDSUBSTR
1741
+ 256 PLDU
1742
+ s0 s8 XCHG
1743
+ }>
1744
+ DUP
1745
+ SREMPTY
1746
+ IFNOT:<{
1747
+ s6 POP
1748
+ s5 PUSH
1749
+ PLDREF
1750
+ s0 s6 XCHG
1751
+ }>
1752
+ s0 s8 XCHG
1753
+ s3 s5 XCHG
1754
+ s4 s3 s0 XCHG3
1755
+ s1 s2 XCHG
1756
+ }>
1757
+ s0 s2 XCHG
1758
+ LDGRAMS
1759
+ DROP
1760
+ 3 PUSHINT
1761
+ 1 MULRSHIFT#
1762
+ s7 s11 XCHG
1763
+ s10 s9 XCHG2
1764
+ s5 s8 XCHG
1765
+ s4 s7 XCHG
1766
+ s4 s6 XCHG
1767
+ s3 s3 XCHG2
1768
+ s0 s5 XCHG
1769
+ s0 s4 XCHG
1770
+ 12 TUPLE
1771
+ txnContext SETGLOB
1772
+ }>
1773
+ emptyActions PROCINLINE:<{
1774
+ 0 PUSHINT
1775
+ SINGLE
1776
+ }>
1777
+ sendTerminalAction PROCINLINE:<{
1778
+ 24 PUSHINT
1779
+ NEWC
1780
+ 6 STU
1781
+ s0 s4 XCHG
1782
+ hashpartToBasechainAddressStd INLINECALLDICT
1783
+ s1 s4 XCHG
1784
+ STSLICER
1785
+ 0 PUSHINT
1786
+ STGRAMS
1787
+ OVER
1788
+ ISNULL
1789
+ IF:<{
1790
+ 1 PUSHINT
1791
+ s2 POP
1792
+ 107 STU
1793
+ }>ELSE<{
1794
+ 7 PUSHINT
1795
+ SWAP
1796
+ 108 STU
1797
+ STREF
1798
+ }>
1799
+ STREF
1800
+ ENDC
1801
+ 7 PUSHPOW2
1802
+ ROT
1803
+ OR
1804
+ SENDRAWMSG
1805
+ }>
1806
+ sendNonTerminalAction PROCINLINE:<{
1807
+ 1 PUSHINT
1808
+ s0 s5 XCHG
1809
+ NEWC
1810
+ 6 STU
1811
+ s0 s3 XCHG
1812
+ hashpartToBasechainAddressStd INLINECALLDICT
1813
+ s1 s3 XCHG
1814
+ STSLICER
1815
+ s0 s3 XCHG2
1816
+ STGRAMS
1817
+ s1 s3 XCHG
1818
+ 107 STU
1819
+ STREF
1820
+ ENDC
1821
+ SWAP
1822
+ SENDRAWMSG
1823
+ }>
1824
+ buildLayerzeroMessageBody PROCINLINE:<{
1825
+ SWAP
1826
+ txnContext GETGLOB 4 INDEX SWAP NEWC 32 STU 64 STU
1827
+ ROT
1828
+ STGRAMS
1829
+ getOriginStd INLINECALLDICT
1830
+ STSLICER
1831
+ STREF
1832
+ ENDC
1833
+ }>
1834
+ assertInitialized PROCINLINE:<{
1835
+ getContractStorage INLINECALLDICT
1836
+ 0 PUSHINT
1837
+ cl::get<objRef> INLINECALLDICT
1838
+ 2 PUSHINT
1839
+ cl::get<bool> INLINECALLDICT
1840
+ 1160 THROWIFNOT
1841
+ }>
1842
+ checkPermissions PROCINLINE:<{
1843
+ OVER
1844
+ 3812333683 PUSHINT
1845
+ EQUAL
1846
+ IF:<{
1847
+ 2DROP
1848
+ }>ELSE<{
1849
+ OVER
1850
+ 4133284232 PUSHINT
1851
+ EQUAL
1852
+ IF:<{
1853
+ 2DROP
1854
+ assertOwner INLINECALLDICT
1855
+ }>ELSE<{
1856
+ _checkPermissions INLINECALLDICT
1857
+ }>
1858
+ }>
1859
+ }>
1860
+ initialize PROCINLINE:<{
1861
+ assertAuthenticated INLINECALLDICT
1862
+ getContractStorage INLINECALLDICT
1863
+ 0 PUSHINT
1864
+ cl::get<objRef> INLINECALLDICT
1865
+ 2 PUSHINT
1866
+ cl::get<bool> INLINECALLDICT
1867
+ IF:<{
1868
+ DROP
1869
+ emptyActions INLINECALLDICT
1870
+ }>ELSE<{
1871
+ _initialize INLINECALLDICT
1872
+ 0 PUSHINT
1873
+ s2 s0 PUSH2
1874
+ cl::get<objRef> INLINECALLDICT
1875
+ 2 PUSHINT
1876
+ TRUE
1877
+ cl::set INLINECALLDICT
1878
+ s2 s3 XCHG
1879
+ cl::set INLINECALLDICT
1880
+ setContractStorage INLINECALLDICT
1881
+ }>
1882
+ }>
1883
+ authenticateIfNecessary PROCINLINE:<{
1884
+ getContractStorage INLINECALLDICT
1885
+ 0 PUSHINT
1886
+ cl::get<objRef> INLINECALLDICT
1887
+ 1 PUSHINT
1888
+ cl::get<bool> INLINECALLDICT
1889
+ 0 EQINT
1890
+ IF:<{
1891
+ authenticate CALLDICT
1892
+ }>
1893
+ }>
1894
+ assertOwner PROCINLINE:<{
1895
+ getContractStorage INLINECALLDICT
1896
+ 0 PUSHINT
1897
+ cl::get<objRef> INLINECALLDICT
1898
+ getCaller INLINECALLDICT
1899
+ SWAP
1900
+ 0 PUSHINT
1901
+ cl::get<address> INLINECALLDICT
1902
+ EQUAL
1903
+ 163 THROWIFNOT
1904
+ }>
1905
+ _checkPermissions PROCINLINE:<{
1906
+ 2DROP
1907
+ }>
1908
+ preamble PROCINLINE:<{
1909
+ getContractStorage INLINECALLDICT
1910
+ emptyActions INLINECALLDICT
1911
+ }>
1912
+ action::call::New PROCINLINE:<{
1913
+ 459904164859953153141868 PUSHINT
1914
+ 3 -ROLL
1915
+ 4 TUPLE
1916
+ }>
1917
+ action::call::equals PROC:<{
1918
+ OVER
1919
+ 3 INDEX
1920
+ OVER
1921
+ 3 INDEX
1922
+ compareObjectFields INLINECALLDICT
1923
+ s2 PUSH
1924
+ 0 INDEX
1925
+ s2 PUSH
1926
+ 0 INDEX
1927
+ EQUAL
1928
+ s3 PUSH
1929
+ 1 INDEX
1930
+ s3 PUSH
1931
+ 1 INDEX
1932
+ EQUAL
1933
+ AND
1934
+ s0 s3 XCHG
1935
+ 2 INDEX
1936
+ s0 s2 XCHG
1937
+ 2 INDEX
1938
+ s1 s2 XCHG
1939
+ EQUAL
1940
+ s1 s2 XCHG
1941
+ AND
1942
+ SWAP
1943
+ -1 EQINT
1944
+ AND
1945
+ }>
1946
+ _newAction<call> PROCINLINE:<{
1947
+ action::call::New INLINECALLDICT
1948
+ }>
1949
+ ~pushAction<call> PROCINLINE:<{
1950
+ _newAction<call> INLINECALLDICT
1951
+ TPUSH
1952
+ }>
1953
+ executeCall PROCINLINE:<{
1954
+ DUP
1955
+ 1 INDEX
1956
+ 0 PUSHINT
1957
+ s2 PUSH
1958
+ 2 INDEX
1959
+ s0 s3 XCHG
1960
+ 3 INDEX
1961
+ s1 s3 s0 XCHG3
1962
+ buildLayerzeroMessageBody INLINECALLDICT
1963
+ PUSHNULL
1964
+ 0 PUSHINT
1965
+ sendTerminalAction INLINECALLDICT
1966
+ FALSE
1967
+ }>
1968
+ action::deploy::New PROCINLINE:<{
1969
+ 110386840629113 PUSHINT
1970
+ 6 -ROLL
1971
+ 7 TUPLE
1972
+ }>
1973
+ action::deploy::equals PROC:<{
1974
+ OVER
1975
+ 2 INDEX
1976
+ OVER
1977
+ 2 INDEX
1978
+ compareObjectFields INLINECALLDICT
1979
+ s2 PUSH
1980
+ 5 INDEX
1981
+ s2 PUSH
1982
+ 5 INDEX
1983
+ compareObjectFields INLINECALLDICT
1984
+ s3 PUSH
1985
+ 0 INDEX
1986
+ s3 PUSH
1987
+ 0 INDEX
1988
+ EQUAL
1989
+ s4 PUSH
1990
+ 1 INDEX
1991
+ HASHCU
1992
+ s4 PUSH
1993
+ 1 INDEX
1994
+ HASHCU
1995
+ EQUAL
1996
+ AND
1997
+ s0 s2 XCHG
1998
+ -1 EQINT
1999
+ s1 s2 XCHG
2000
+ AND
2001
+ s3 PUSH
2002
+ 3 INDEX
2003
+ s3 PUSH
2004
+ 3 INDEX
2005
+ EQUAL
2006
+ AND
2007
+ s3 PUSH
2008
+ 4 INDEX
2009
+ s3 PUSH
2010
+ 4 INDEX
2011
+ EQUAL
2012
+ AND
2013
+ SWAP
2014
+ -1 EQINT
2015
+ AND
2016
+ s0 s2 XCHG
2017
+ 6 INDEX
2018
+ SWAP
2019
+ 6 INDEX
2020
+ EQUAL
2021
+ AND
2022
+ }>
2023
+ _newAction<deployAndCall> PROCINLINE:<{
2024
+ action::deploy::New INLINECALLDICT
2025
+ }>
2026
+ ~pushAction<deployAndCall> PROCINLINE:<{
2027
+ _newAction<deployAndCall> INLINECALLDICT
2028
+ TPUSH
2029
+ }>
2030
+ executeDeploy PROCINLINE:<{
2031
+ DUP
2032
+ 2 INDEX
2033
+ OVER
2034
+ 1 INDEX
2035
+ 2DUP
2036
+ computeContractAddress INLINECALLDICT
2037
+ s3 PUSH
2038
+ 3 INDEX
2039
+ s4 PUSH
2040
+ 4 INDEX
2041
+ s0 s5 XCHG
2042
+ 5 INDEX
2043
+ s1 s5 s0 XCHG3
2044
+ buildLayerzeroMessageBody INLINECALLDICT
2045
+ 6 PUSHINT
2046
+ NEWC
2047
+ 5 STU
2048
+ s1 s2 XCHG
2049
+ STREF
2050
+ s1 s2 XCHG
2051
+ STREF
2052
+ ENDC
2053
+ 0 PUSHINT
2054
+ sendTerminalAction INLINECALLDICT
2055
+ FALSE
2056
+ }>
2057
+ _getEventSink PROCINLINE:<{
2058
+ getContractAddress INLINECALLDICT
2059
+ }>
2060
+ action::event::New PROCINLINE:<{
2061
+ 435778055796 PUSHINT
2062
+ 8 PUSHINT
2063
+ s0 s4 XCHG2
2064
+ PAIR
2065
+ 9 PUSHINT
2066
+ s0 s3 XCHG2
2067
+ PAIR
2068
+ 9 PUSHINT
2069
+ ROT
2070
+ PAIR
2071
+ TRIPLE
2072
+ cl::declare INLINECALLDICT
2073
+ 435778055796 PUSHINT
2074
+ SWAP
2075
+ PAIR
2076
+ }>
2077
+ action::event::equals PROC:<{
2078
+ OVER
2079
+ 1 INDEX
2080
+ OVER
2081
+ 1 INDEX
2082
+ compareObjectFields INLINECALLDICT
2083
+ s0 s2 XCHG
2084
+ 0 INDEX
2085
+ SWAP
2086
+ 0 INDEX
2087
+ EQUAL
2088
+ SWAP
2089
+ -1 EQINT
2090
+ AND
2091
+ }>
2092
+ _newAction<event> PROCINLINE:<{
2093
+ getInitialStorage INLINECALLDICT
2094
+ action::event::New INLINECALLDICT
2095
+ }>
2096
+ ~pushAction<event> PROCINLINE:<{
2097
+ _newAction<event> INLINECALLDICT
2098
+ TPUSH
2099
+ }>
2100
+ executeEvent PROCINLINE:<{
2101
+ 16 PUSHINT
2102
+ 0 PUSHINT
2103
+ _getEventSink INLINECALLDICT
2104
+ OVER
2105
+ 3812333683 PUSHINT
2106
+ s0 s5 XCHG
2107
+ 1 INDEX
2108
+ s1 s5 s0 XCHG3
2109
+ buildLayerzeroMessageBody INLINECALLDICT
2110
+ s1 s3 s0 XCHG3
2111
+ 1 PUSHINT
2112
+ sendNonTerminalAction INLINECALLDICT
2113
+ TRUE
2114
+ }>
2115
+ action::payment::New PROCINLINE:<{
2116
+ 31632371545894516 PUSHINT
2117
+ 3 -ROLL
2118
+ 4 TUPLE
2119
+ }>
2120
+ action::payment::equals PROC:<{
2121
+ OVER
2122
+ 0 INDEX
2123
+ OVER
2124
+ 0 INDEX
2125
+ EQUAL
2126
+ s2 PUSH
2127
+ 1 INDEX
2128
+ s2 PUSH
2129
+ 1 INDEX
2130
+ EQUAL
2131
+ AND
2132
+ s2 PUSH
2133
+ 2 INDEX
2134
+ s2 PUSH
2135
+ 2 INDEX
2136
+ EQUAL
2137
+ AND
2138
+ s0 s2 XCHG
2139
+ 3 INDEX
2140
+ SWAP
2141
+ 3 INDEX
2142
+ EQUAL
2143
+ AND
2144
+ }>
2145
+ _newAction<payment> PROCINLINE:<{
2146
+ action::payment::New INLINECALLDICT
2147
+ }>
2148
+ ~pushAction<payment> PROCINLINE:<{
2149
+ DUP
2150
+ 0 GTINT
2151
+ IF:<{
2152
+ s3 PUSH
2153
+ 0 INDEX
2154
+ OVER
2155
+ ADD
2156
+ s1 s4 XCHG
2157
+ 0 PUSHINT
2158
+ SETINDEXVAR
2159
+ s0 s3 XCHG
2160
+ }>
2161
+ _newAction<payment> INLINECALLDICT
2162
+ TPUSH
2163
+ }>
2164
+ executePayment PROCINLINE:<{
2165
+ 16 PUSHINT
2166
+ 1 PUSHINT
2167
+ 0 PUSHINT
2168
+ DUP
2169
+ GETFORWARDFEE
2170
+ s2 PUSH
2171
+ 2 INDEX
2172
+ ADD
2173
+ s0 s2 XCHG
2174
+ 1 INDEX
2175
+ <b b> PUSHREF
2176
+ s2 s3 XCHG
2177
+ 0 PUSHINT
2178
+ sendNonTerminalAction INLINECALLDICT
2179
+ TRUE
2180
+ }>
2181
+ BaseStorage::New PROCINLINE:<{
2182
+ 1814802986876646945381 PUSHINT
2183
+ 8 PUSHINT
2184
+ ROT
2185
+ PAIR
2186
+ 0 PUSHINT
2187
+ FALSE
2188
+ PAIR
2189
+ 0 PUSHINT
2190
+ FALSE
2191
+ PAIR
2192
+ 9 PUSHINT
2193
+ cl::nullObject INLINECALLDICT
2194
+ PAIR
2195
+ 4 TUPLE
2196
+ cl::declare INLINECALLDICT
2197
+ }>
2198
+ getOwner PROCINLINE:<{
2199
+ getContractStorage INLINECALLDICT
2200
+ 0 PUSHINT
2201
+ cl::get<objRef> INLINECALLDICT
2202
+ 0 PUSHINT
2203
+ cl::get<address> INLINECALLDICT
2204
+ }>
2205
+ getInitialStorage PROCINLINE:<{
2206
+ getContractStorage INLINECALLDICT
2207
+ 0 PUSHINT
2208
+ cl::get<objRef> INLINECALLDICT
2209
+ 3 PUSHINT
2210
+ cl::get<objRef> INLINECALLDICT
2211
+ }>
2212
+ assertAuthenticated PROCINLINE:<{
2213
+ getContractStorage INLINECALLDICT
2214
+ 0 PUSHINT
2215
+ cl::get<objRef> INLINECALLDICT
2216
+ 1 PUSHINT
2217
+ cl::get<bool> INLINECALLDICT
2218
+ 2032 THROWIFNOT
2219
+ }>
2220
+ authenticate PROC:<{
2221
+ assertOwner INLINECALLDICT
2222
+ getContractStorage INLINECALLDICT
2223
+ 0 PUSHINT
2224
+ 2DUP
2225
+ cl::get<objRef> INLINECALLDICT
2226
+ 3 PUSHINT
2227
+ getContractStorage INLINECALLDICT
2228
+ cl::set INLINECALLDICT
2229
+ 1 PUSHINT
2230
+ TRUE
2231
+ cl::set INLINECALLDICT
2232
+ cl::set INLINECALLDICT
2233
+ setContractStorage INLINECALLDICT
2234
+ }>
2235
+ _initialize PROCINLINE:<{
2236
+ DROP
2237
+ preamble INLINECALLDICT
2238
+ }>
2239
+ baseContract::New PROCINLINE:<{
2240
+ 464589564622803746055028 PUSHINT
2241
+ 9 PUSHINT
2242
+ s0 s2 XCHG
2243
+ BaseStorage::New INLINECALLDICT
2244
+ s1 s2 XCHG
2245
+ PAIR
2246
+ SINGLE
2247
+ cl::declare INLINECALLDICT
2248
+ }>
2249
+ _testName PROC:<{
2250
+ x{62617365436f6e7472616374} PUSHSLICE
2251
+ }>
2252
+ baseTest::getTests PROC:<{
2253
+ NIL
2254
+ CONT:<{
2255
+ event::checkPermissions::success::basic CALLDICT
2256
+ }>
2257
+ x{6576656e743a3a636865636b5065726d697373696f6e733a3a737563636573733a3a6261736963} PUSHSLICE
2258
+ PAIR
2259
+ TPUSH
2260
+ CONT:<{
2261
+ initialize::checkPermissions::success::basic CALLDICT
2262
+ }>
2263
+ x{696e697469616c697a653a3a636865636b5065726d697373696f6e733a3a737563636573733a3a6261736963} PUSHSLICE
2264
+ PAIR
2265
+ TPUSH
2266
+ CONT:<{
2267
+ initialize::checkPermissions::revert::notOwner CALLDICT
2268
+ }>
2269
+ x{696e697469616c697a653a3a636865636b5065726d697373696f6e733a3a7265766572743a3a6e6f744f776e6572} PUSHSLICE
2270
+ PAIR
2271
+ TPUSH
2272
+ CONT:<{
2273
+ initialize::handler::revert::notAuthenticated CALLDICT
2274
+ }>
2275
+ x{696e697469616c697a653a3a68616e646c65723a3a7265766572743a3a6e6f7441757468656e74696361746564} PUSHSLICE
2276
+ PAIR
2277
+ TPUSH
2278
+ CONT:<{
2279
+ initialize::handler::success::basic CALLDICT
2280
+ }>
2281
+ x{696e697469616c697a653a3a68616e646c65723a3a737563636573733a3a6261736963} PUSHSLICE
2282
+ PAIR
2283
+ TPUSH
2284
+ CONT:<{
2285
+ initialize::handler::success::alreadyInitialized CALLDICT
2286
+ }>
2287
+ x{696e697469616c697a653a3a68616e646c65723a3a737563636573733a3a616c7265616479496e697469616c697a6564} PUSHSLICE
2288
+ PAIR
2289
+ TPUSH
2290
+ }>
2291
+ baseTest::prepare PROCINLINE:<{
2292
+ DROP
2293
+ createInitializedStorage CALLDICT
2294
+ }>
2295
+ emitDone PROCINLINE:<{
2296
+ 0 PUSHINT
2297
+ 1 PUSHINT
2298
+ 8 PUSHPOW2
2299
+ OVER
2300
+ 12 PUSHINT
2301
+ NEWC
2302
+ 4 STU
2303
+ 2 STU
2304
+ 9 STU
2305
+ 256 STU
2306
+ 98 STU
2307
+ ENDC
2308
+ 0 PUSHINT
2309
+ SENDRAWMSG
2310
+ }>
2311
+ test::throwError PROC:<{
2312
+ _testName CALLDICT
2313
+ x{3a20} PUSHSLICE
2314
+ str::concat CALLDICT
2315
+ base_error_msg GETGLOB
2316
+ str::concat CALLDICT
2317
+ x{3a20} PUSHSLICE
2318
+ str::concat CALLDICT
2319
+ OVER
2320
+ str::concat CALLDICT
2321
+ STRDUMP
2322
+ DROP
2323
+ _testName CALLDICT
2324
+ x{3a20} PUSHSLICE
2325
+ str::concat CALLDICT
2326
+ base_error_msg GETGLOB
2327
+ str::concat CALLDICT
2328
+ x{3a20} PUSHSLICE
2329
+ str::concat CALLDICT
2330
+ SWAP
2331
+ str::concat CALLDICT
2332
+ throwError INLINECALLDICT
2333
+ }>
2334
+ test::throwErrorUnless PROC:<{
2335
+ SWAP
2336
+ IFNOT:<{
2337
+ test::throwError CALLDICT
2338
+ }>ELSE<{
2339
+ DROP
2340
+ }>
2341
+ }>
2342
+ get_test_name PROC:<{
2343
+ baseTest::getTests CALLDICT
2344
+ SWAP
2345
+ INDEXVAR
2346
+ 1 INDEX
2347
+ }>
2348
+ setCaller PROCINLINE:<{
2349
+ txnContext GETGLOB
2350
+ SWAP
2351
+ 1 PUSHINT
2352
+ SETINDEXVAR
2353
+ txnContext SETGLOB
2354
+ }>
2355
+ setContractBalance PROCINLINE:<{
2356
+ txnContext GETGLOB
2357
+ SWAP
2358
+ 5 PUSHINT
2359
+ SETINDEXVAR
2360
+ txnContext SETGLOB
2361
+ }>
2362
+ setNewTime PROC:<{
2363
+ c7 PUSH
2364
+ DUP
2365
+ 0 INDEX
2366
+ ROT
2367
+ 3 PUSHINT
2368
+ SETINDEXVAR
2369
+ 0 PUSHINT
2370
+ SETINDEXVAR
2371
+ c7 POP
2372
+ }>
2373
+ main PROC:<{
2374
+ DUP
2375
+ SEMPTY
2376
+ IFJMP:<{
2377
+ 4 BLKDROP
2378
+ }>
2379
+ initTxnContext INLINECALLDICT
2380
+ x{626173655f6572726f725f6d7367204e4f54207365742e2e2e20} PUSHSLICE
2381
+ base_error_msg SETGLOB
2382
+ getOpcode INLINECALLDICT
2383
+ getOrigin INLINECALLDICT
2384
+ setCaller INLINECALLDICT
2385
+ baseTest::getTests CALLDICT
2386
+ DUP
2387
+ TLEN
2388
+ s2 s(-1) PUXC
2389
+ GEQ
2390
+ IF:<{
2391
+ 2DROP
2392
+ emitDone INLINECALLDICT
2393
+ }>ELSE<{
2394
+ SWAP
2395
+ INDEXVAR
2396
+ DUP
2397
+ 0 INDEX
2398
+ OVER
2399
+ 1 INDEX
2400
+ base_error_msg SETGLOB
2401
+ SWAP
2402
+ baseTest::prepare INLINECALLDICT
2403
+ getContractStorage INLINECALLDICT
2404
+ s0 s2 XCHG
2405
+ 1 2 CALLXARGS
2406
+ s0 s2 XCHG
2407
+ setContractStorage INLINECALLDICT
2408
+ -1 EQINT
2409
+ SWAP
2410
+ test::throwErrorUnless CALLDICT
2411
+ }>
2412
+ }>
2413
+ test::shouldBeTrue PROC:<{
2414
+ IFJMP:<{
2415
+ -1 PUSHINT
2416
+ x{} PUSHSLICE
2417
+ }>
2418
+ 0 PUSHINT
2419
+ x{746573743a3a73686f756c64426554727565} PUSHSLICE
2420
+ }>
2421
+ test::shouldBeFalse PROC:<{
2422
+ 0 EQINT
2423
+ test::shouldBeTrue CALLDICT
2424
+ }>
2425
+ action::sendJettons::New PROCINLINE:<{
2426
+ 544943221246095313366894 PUSHINT
2427
+ 4 -ROLL
2428
+ 5 TUPLE
2429
+ }>
2430
+ action::sendJettons::equals PROC:<{
2431
+ OVER
2432
+ 0 INDEX
2433
+ OVER
2434
+ 0 INDEX
2435
+ EQUAL
2436
+ s2 PUSH
2437
+ 1 INDEX
2438
+ s2 PUSH
2439
+ 1 INDEX
2440
+ EQUAL
2441
+ AND
2442
+ s2 PUSH
2443
+ 2 INDEX
2444
+ s2 PUSH
2445
+ 2 INDEX
2446
+ EQUAL
2447
+ AND
2448
+ s2 PUSH
2449
+ 3 INDEX
2450
+ s2 PUSH
2451
+ 3 INDEX
2452
+ EQUAL
2453
+ AND
2454
+ s0 s2 XCHG
2455
+ 4 INDEX
2456
+ SWAP
2457
+ 4 INDEX
2458
+ EQUAL
2459
+ AND
2460
+ }>
2461
+ _newAction<sendJettons> PROCINLINE:<{
2462
+ action::sendJettons::New INLINECALLDICT
2463
+ }>
2464
+ ~pushAction<sendJettons> PROCINLINE:<{
2465
+ _newAction<sendJettons> INLINECALLDICT
2466
+ TPUSH
2467
+ }>
2468
+ buildJettonMessageBody PROCINLINE:<{
2469
+ PUSHNULL
2470
+ PUSHNULL
2471
+ 260734629 PUSHINT
2472
+ txnContext GETGLOB 4 INDEX SWAP NEWC 32 STU 64 STU
2473
+ s0 s4 XCHG2
2474
+ STGRAMS
2475
+ s0 s4 XCHG
2476
+ hashpartToBasechainAddressStd INLINECALLDICT
2477
+ s1 s4 XCHG
2478
+ STSLICER
2479
+ SWAP
2480
+ hashpartToBasechainAddressStd INLINECALLDICT
2481
+ STSLICER
2482
+ STOPTREF
2483
+ 0 PUSHINT
2484
+ STGRAMS
2485
+ STOPTREF
2486
+ ENDC
2487
+ }>
2488
+ executeSendJettons PROC:<{
2489
+ DUP
2490
+ 1 INDEX
2491
+ OVER
2492
+ 2 INDEX
2493
+ s2 PUSH
2494
+ 3 INDEX
2495
+ s0 s3 XCHG
2496
+ 4 INDEX
2497
+ s1 s3 s0 XCHG3
2498
+ buildJettonMessageBody INLINECALLDICT
2499
+ PUSHNULL
2500
+ 0 PUSHINT
2501
+ sendTerminalAction INLINECALLDICT
2502
+ FALSE
2503
+ }>
2504
+ action::destroy::New PROCINLINE:<{
2505
+ 28259044220366713 PUSHINT
2506
+ 3 -ROLL
2507
+ 4 TUPLE
2508
+ }>
2509
+ action::destroy::equals PROC:<{
2510
+ OVER
2511
+ 3 INDEX
2512
+ OVER
2513
+ 3 INDEX
2514
+ compareObjectFields INLINECALLDICT
2515
+ s2 PUSH
2516
+ 0 INDEX
2517
+ s2 PUSH
2518
+ 0 INDEX
2519
+ EQUAL
2520
+ s3 PUSH
2521
+ 1 INDEX
2522
+ s3 PUSH
2523
+ 1 INDEX
2524
+ EQUAL
2525
+ AND
2526
+ s0 s3 XCHG
2527
+ 2 INDEX
2528
+ s0 s2 XCHG
2529
+ 2 INDEX
2530
+ s1 s2 XCHG
2531
+ EQUAL
2532
+ s1 s2 XCHG
2533
+ AND
2534
+ SWAP
2535
+ -1 EQINT
2536
+ AND
2537
+ }>
2538
+ action::dispatch::New PROCINLINE:<{
2539
+ 7235441202855961448 PUSHINT
2540
+ 4 -ROLL
2541
+ 5 TUPLE
2542
+ }>
2543
+ action::dispatch::equals PROC:<{
2544
+ OVER
2545
+ 3 INDEX
2546
+ OVER
2547
+ 3 INDEX
2548
+ compareObjectFields INLINECALLDICT
2549
+ s2 PUSH
2550
+ 0 INDEX
2551
+ s2 PUSH
2552
+ 0 INDEX
2553
+ EQUAL
2554
+ s3 PUSH
2555
+ 1 INDEX
2556
+ s3 PUSH
2557
+ 1 INDEX
2558
+ EQUAL
2559
+ AND
2560
+ s3 PUSH
2561
+ 2 INDEX
2562
+ s3 PUSH
2563
+ 2 INDEX
2564
+ EQUAL
2565
+ AND
2566
+ SWAP
2567
+ -1 EQINT
2568
+ AND
2569
+ s0 s2 XCHG
2570
+ 4 INDEX
2571
+ SWAP
2572
+ 4 INDEX
2573
+ EQUAL
2574
+ AND
2575
+ }>
2576
+ _newAction<dispatch> PROCINLINE:<{
2577
+ action::dispatch::New INLINECALLDICT
2578
+ }>
2579
+ ~pushAction<dispatch> PROCINLINE:<{
2580
+ _newAction<dispatch> INLINECALLDICT
2581
+ TPUSH
2582
+ }>
2583
+ executeDispatch PROC:<{
2584
+ 24 PUSHINT
2585
+ OVER
2586
+ 4 INDEX
2587
+ s2 PUSH
2588
+ 1 INDEX
2589
+ 0 PUSHINT
2590
+ s4 PUSH
2591
+ 2 INDEX
2592
+ s0 s5 XCHG
2593
+ 3 INDEX
2594
+ s1 s5 s0 XCHG3
2595
+ buildLayerzeroMessageBody INLINECALLDICT
2596
+ s1 s3 s0 XCHG3
2597
+ 0 PUSHINT
2598
+ sendNonTerminalAction INLINECALLDICT
2599
+ TRUE
2600
+ }>
2601
+ _callCheckPermissions PROC:<{
2602
+ checkPermissions INLINECALLDICT
2603
+ 0 PUSHINT
2604
+ }>
2605
+ forceAuthenticate PROC:<{
2606
+ getContractStorage INLINECALLDICT
2607
+ s0 s1 PUSH2
2608
+ cl::get<objRef> INLINECALLDICT
2609
+ 3 PUSHINT
2610
+ getContractStorage INLINECALLDICT
2611
+ cl::set INLINECALLDICT
2612
+ 1 PUSHINT
2613
+ TRUE
2614
+ cl::set INLINECALLDICT
2615
+ s1 s2 XCHG
2616
+ cl::set INLINECALLDICT
2617
+ setContractStorage INLINECALLDICT
2618
+ }>
2619
+ createInitializedStorage PROC:<{
2620
+ c4 PUSH
2621
+ CTOS
2622
+ SBITS
2623
+ 80 LESSINT
2624
+ IF:<{
2625
+ createContractStorage CALLDICT
2626
+ DROP
2627
+ 0 PUSHINT
2628
+ forceAuthenticate CALLDICT
2629
+ _createInitializedStorage CALLDICT
2630
+ }>
2631
+ getContractStorage INLINECALLDICT
2632
+ }>
2633
+ spoofCaller PROCINLINE:<{
2634
+ setCaller INLINECALLDICT
2635
+ }>
2636
+ initializeTestStorage PROC:<{
2637
+ DROP
2638
+ -1 PUSHINT
2639
+ x{} PUSHSLICE
2640
+ }>
2641
+ test::handler::shouldPass PROC:<{
2642
+ c2 SAVE
2643
+ SAMEALTSAVE
2644
+ s3 s4 XCHG2
2645
+ 1 1 CALLXARGS
2646
+ DUP
2647
+ TLEN
2648
+ s2 PUSH
2649
+ TLEN
2650
+ s1 s(-1) PUXC
2651
+ NEQ
2652
+ IFJMP:<{
2653
+ DROP
2654
+ 2 2 BLKDROP2
2655
+ 0 PUSHINT
2656
+ x{616374696f6e206c656e67746820696e636f72726563743a} PUSHSLICE
2657
+ s0 s2 XCHG
2658
+ TLEN
2659
+ s1 s2 XCHG
2660
+ str::concatInt CALLDICT
2661
+ x{20213d3d20} PUSHSLICE
2662
+ str::concat CALLDICT
2663
+ s0 s2 XCHG
2664
+ TLEN
2665
+ s1 s2 XCHG
2666
+ str::concatInt CALLDICT
2667
+ }>
2668
+ OVER
2669
+ 0 INDEX
2670
+ s3 PUSH
2671
+ 0 INDEX
2672
+ NEQ
2673
+ IFJMP:<{
2674
+ 5 BLKDROP
2675
+ 0 PUSHINT
2676
+ x{616374696f6e2076616c7565206f7574666c6f7720696e636f7272656374} PUSHSLICE
2677
+ }>
2678
+ 1 PUSHINT
2679
+ NIL
2680
+ WHILE:<{
2681
+ s1 s2 PUSH2
2682
+ LESS
2683
+ }>DO<{
2684
+ s3 s1 PUSH2
2685
+ INDEXVAR
2686
+ s5 s2 PUSH2
2687
+ INDEXVAR
2688
+ OVER
2689
+ 0 INDEX
2690
+ OVER
2691
+ 0 INDEX
2692
+ NEQ
2693
+ IF:<{
2694
+ x{616374696f6e207479706520696e636f72726563743a20} PUSHSLICE
2695
+ s4 PUSH
2696
+ str::concatInt CALLDICT
2697
+ test::throwError CALLDICT
2698
+ }>
2699
+ OVER
2700
+ 0 INDEX
2701
+ FALSE
2702
+ OVER
2703
+ 28259044220366713 PUSHINT
2704
+ EQUAL
2705
+ IF:<{
2706
+ 2DROP
2707
+ s2 s3 XCPU
2708
+ TPUSH
2709
+ s0 s2 XCHG
2710
+ action::destroy::equals CALLDICT
2711
+ }>ELSE<{
2712
+ OVER
2713
+ 110386840629113 PUSHINT
2714
+ EQUAL
2715
+ IF:<{
2716
+ 2DROP
2717
+ s2 s3 XCPU
2718
+ TPUSH
2719
+ s0 s2 XCHG
2720
+ action::deploy::equals CALLDICT
2721
+ }>ELSE<{
2722
+ OVER
2723
+ 459904164859953153141868 PUSHINT
2724
+ EQUAL
2725
+ IF:<{
2726
+ 2DROP
2727
+ s2 s3 XCPU
2728
+ TPUSH
2729
+ s0 s2 XCHG
2730
+ action::call::equals CALLDICT
2731
+ }>ELSE<{
2732
+ OVER
2733
+ 7235441202855961448 PUSHINT
2734
+ EQUAL
2735
+ IF:<{
2736
+ 2DROP
2737
+ action::dispatch::equals CALLDICT
2738
+ }>ELSE<{
2739
+ OVER
2740
+ 31632371545894516 PUSHINT
2741
+ EQUAL
2742
+ IF:<{
2743
+ 2DROP
2744
+ action::payment::equals CALLDICT
2745
+ }>ELSE<{
2746
+ OVER
2747
+ 435778055796 PUSHINT
2748
+ EQUAL
2749
+ IF:<{
2750
+ 2DROP
2751
+ action::event::equals CALLDICT
2752
+ }>ELSE<{
2753
+ SWAP
2754
+ 544943221246095313366894 PUSHINT
2755
+ EQUAL
2756
+ IF:<{
2757
+ DROP
2758
+ action::sendJettons::equals CALLDICT
2759
+ }>ELSE<{
2760
+ 2 1 BLKDROP2
2761
+ }>
2762
+ }>
2763
+ }>
2764
+ }>
2765
+ }>
2766
+ }>
2767
+ }>
2768
+ IFNOT:<{
2769
+ x{616374696f6e20696e636f72726563743a20} PUSHSLICE
2770
+ s2 PUSH
2771
+ str::concatInt CALLDICT
2772
+ test::throwError CALLDICT
2773
+ }>
2774
+ SWAP
2775
+ INC
2776
+ SWAP
2777
+ }>
2778
+ 4 1 BLKDROP2
2779
+ TLEN
2780
+ 1 GTINT
2781
+ IF:<{
2782
+ x{4d756c7469706c65207465726d696e616c20616374696f6e73} PUSHSLICE
2783
+ test::throwError CALLDICT
2784
+ }>
2785
+ getContractStorage INLINECALLDICT
2786
+ SWAP
2787
+ compareObjectFields INLINECALLDICT
2788
+ DUP
2789
+ 16 EQINT
2790
+ IFJMP:<{
2791
+ 2DROP
2792
+ 0 PUSHINT
2793
+ x{53746f7261676520616e642065787065637465642073746f72616765206e6f74206f66207468652073616d652074797065} PUSHSLICE
2794
+ }>
2795
+ DUP
2796
+ -1 NEQINT
2797
+ IFJMP:<{
2798
+ NIP
2799
+ 0 PUSHINT
2800
+ x{6d616c666f726d6564206669656c6420} PUSHSLICE
2801
+ ROT
2802
+ str::concatInt CALLDICT
2803
+ RETALT
2804
+ }>
2805
+ DROP
2806
+ DUP
2807
+ TLEN
2808
+ txnContext GETGLOB
2809
+ TLEN
2810
+ NEQ
2811
+ IFJMP:<{
2812
+ DROP
2813
+ 0 PUSHINT
2814
+ x{6d616c666f726d65642074786e20636f6e74657874} PUSHSLICE
2815
+ }>
2816
+ 0 PUSHINT
2817
+ WHILE:<{
2818
+ txnContext GETGLOB
2819
+ TLEN
2820
+ s1 s(-1) PUXC
2821
+ LESS
2822
+ }>DO<{
2823
+ txnContext GETGLOB
2824
+ OVER
2825
+ INDEXVAR
2826
+ <{ TRY:<{ 0 PUSHINT ADD DROP -1 PUSHINT }>CATCH<{ 2DROP 0 PUSHINT }> }>CONT 1 1 CALLXARGS
2827
+ IF:<{
2828
+ txnContext GETGLOB
2829
+ OVER
2830
+ INDEXVAR
2831
+ s2 s1 PUSH2
2832
+ INDEXVAR
2833
+ NEQ
2834
+ }>ELSE<{
2835
+ txnContext GETGLOB
2836
+ OVER
2837
+ INDEXVAR
2838
+ <{ TRY:<{ CTOS DROP -1 PUSHINT }>CATCH<{ 2DROP 0 PUSHINT }> }>CONT 1 1 CALLXARGS
2839
+ IF:<{
2840
+ txnContext GETGLOB
2841
+ OVER
2842
+ INDEXVAR
2843
+ HASHCU
2844
+ s2 s1 PUSH2
2845
+ INDEXVAR
2846
+ HASHCU
2847
+ NEQ
2848
+ }>ELSE<{
2849
+ txnContext GETGLOB
2850
+ OVER
2851
+ INDEXVAR
2852
+ <{ TRY:<{ SBITS DROP -1 PUSHINT }>CATCH<{ 2DROP 0 PUSHINT }> }>CONT 1 1 CALLXARGS
2853
+ IF:<{
2854
+ txnContext GETGLOB
2855
+ OVER
2856
+ INDEXVAR
2857
+ s2 s1 PUSH2
2858
+ INDEXVAR
2859
+ SDEQ
2860
+ NOT
2861
+ }>ELSE<{
2862
+ txnContext GETGLOB
2863
+ OVER
2864
+ INDEXVAR
2865
+ cl::hash INLINECALLDICT
2866
+ NOT
2867
+ s2 s1 PUSH2
2868
+ INDEXVAR
2869
+ cl::hash INLINECALLDICT
2870
+ EQUAL
2871
+ }>
2872
+ }>
2873
+ }>
2874
+ IFJMP:<{
2875
+ NIP
2876
+ 0 PUSHINT
2877
+ x{74786e20636f6e74657874206d69736d6174636820617420696e646578} PUSHSLICE
2878
+ ROT
2879
+ str::concatInt CALLDICT
2880
+ RETALT
2881
+ }>
2882
+ INC
2883
+ }>
2884
+ 2DROP
2885
+ -1 PUSHINT
2886
+ x{} PUSHSLICE
2887
+ }>
2888
+ test::handler::shouldFail PROC:<{
2889
+ c2 SAVE
2890
+ SAMEALTSAVE
2891
+ c4 PUSH
2892
+ c5 PUSH
2893
+ c7 PUSH
2894
+ <{
2895
+ NIP
2896
+ s0 s1 PUSH2
2897
+ NEQ
2898
+ IFJMP:<{
2899
+ 0 PUSHINT
2900
+ x{61637475616c206572726f723a20} PUSHSLICE
2901
+ ROT
2902
+ str::concatInt CALLDICT
2903
+ x{20213d2065787065637465643a20} PUSHSLICE
2904
+ str::concat CALLDICT
2905
+ ROT
2906
+ str::concatInt CALLDICT
2907
+ RETALT
2908
+ }>
2909
+ 2DROP
2910
+ }>CONT
2911
+ c7 SETCONT
2912
+ c5 SETCONT
2913
+ c4 SETCONT
2914
+ 1 PUSHINT
2915
+ -1 PUSHINT
2916
+ SETCONTVARARGS
2917
+ <{
2918
+ SWAP
2919
+ 1 1 CALLXARGS
2920
+ TLEN
2921
+ -1 GTINT
2922
+ IFJMP:<{
2923
+ 0 PUSHINT
2924
+ x{746573743a3a68616e646c65723a3a73686f756c644661696c206e65766572207468726f7773} PUSHSLICE
2925
+ RETALT
2926
+ }>
2927
+ }>CONT
2928
+ c1 PUSH
2929
+ COMPOSALT
2930
+ SWAP
2931
+ TRY
2932
+ -1 PUSHINT
2933
+ x{} PUSHSLICE
2934
+ }>
2935
+ test::permissions::shouldPass PROC:<{
2936
+ FALSE
2937
+ c4 PUSH
2938
+ c5 PUSH
2939
+ c7 PUSH
2940
+ <{
2941
+ 2DROP
2942
+ TRUE
2943
+ }>CONT
2944
+ c7 SETCONT
2945
+ c5 SETCONT
2946
+ c4 SETCONT
2947
+ <{
2948
+ -ROT
2949
+ _callCheckPermissions CALLDICT
2950
+ DROP
2951
+ }>CONT
2952
+ c1 PUSH
2953
+ COMPOSALT
2954
+ SWAP
2955
+ TRY
2956
+ IF:<{
2957
+ 0 PUSHINT
2958
+ x{7065726d697373696f6e7320636865636b2073686f756c64206e6f742068617665207468726f776e} PUSHSLICE
2959
+ }>ELSE<{
2960
+ -1 PUSHINT
2961
+ x{} PUSHSLICE
2962
+ }>
2963
+ }>
2964
+ test::permissions::shouldFail PROC:<{
2965
+ FALSE
2966
+ c4 PUSH
2967
+ c5 PUSH
2968
+ c7 PUSH
2969
+ <{
2970
+ 2DROP
2971
+ }>CONT
2972
+ c7 SETCONT
2973
+ c5 SETCONT
2974
+ c4 SETCONT
2975
+ 1 PUSHINT
2976
+ -1 PUSHINT
2977
+ SETCONTVARARGS
2978
+ <{
2979
+ _callCheckPermissions CALLDICT
2980
+ DROP
2981
+ TRUE
2982
+ }>CONT
2983
+ c1 PUSH
2984
+ COMPOSALT
2985
+ SWAP
2986
+ TRY
2987
+ IF:<{
2988
+ 0 PUSHINT
2989
+ x{7065726d697373696f6e7320636865636b2073686f756c642068617665207468726f776e} PUSHSLICE
2990
+ }>ELSE<{
2991
+ -1 PUSHINT
2992
+ x{} PUSHSLICE
2993
+ }>
2994
+ }>
2995
+ _createInitializedStorage PROC:<{
2996
+ cl::nullObject INLINECALLDICT
2997
+ initialize INLINECALLDICT
2998
+ DROP
2999
+ }>
3000
+ createContractStorage PROC:<{
3001
+ getCaller INLINECALLDICT
3002
+ baseContract::New INLINECALLDICT
3003
+ setContractStorage INLINECALLDICT
3004
+ getContractStorage INLINECALLDICT
3005
+ }>
3006
+ UlnReceiveConfig::New PROC:<{
3007
+ 24044593853984358 PUSHINT
3008
+ 0 PUSHINT
3009
+ s0 s10 XCHG2
3010
+ PAIR
3011
+ 5 PUSHINT
3012
+ s0 s9 XCHG2
3013
+ PAIR
3014
+ 0 PUSHINT
3015
+ s0 s8 XCHG2
3016
+ PAIR
3017
+ 6 PUSHINT
3018
+ s0 s7 XCHG2
3019
+ PAIR
3020
+ 0 PUSHINT
3021
+ s0 s6 XCHG2
3022
+ PAIR
3023
+ 9 PUSHINT
3024
+ s0 s5 XCHG2
3025
+ PAIR
3026
+ 0 PUSHINT
3027
+ s0 s4 XCHG2
3028
+ PAIR
3029
+ 9 PUSHINT
3030
+ s0 s3 XCHG2
3031
+ PAIR
3032
+ 3 PUSHINT
3033
+ ROT
3034
+ PAIR
3035
+ 9 TUPLE
3036
+ cl::declare INLINECALLDICT
3037
+ }>
3038
+ UlnReceiveConfig::NewWithDefaults PROCINLINE:<{
3039
+ TRUE
3040
+ 0 PUSHINT
3041
+ TRUE
3042
+ OVER
3043
+ TRUE
3044
+ cl::dict256::New INLINECALLDICT
3045
+ TRUE
3046
+ cl::dict256::New INLINECALLDICT
3047
+ s4 PUSH
3048
+ UlnReceiveConfig::New CALLDICT
3049
+ }>
3050
+ UlnReceiveConfig::utils::getDVNs PROCINLINE:<{
3051
+ OVER
3052
+ 5 PUSHINT
3053
+ cl::get<dict256> INLINECALLDICT
3054
+ s2 PUSH
3055
+ 7 PUSHINT
3056
+ cl::get<dict256> INLINECALLDICT
3057
+ s3 PUSH
3058
+ 8 PUSHINT
3059
+ cl::get<uint8> INLINECALLDICT
3060
+ s4 PUSH
3061
+ 4 PUSHINT
3062
+ cl::get<bool> INLINECALLDICT
3063
+ IF:<{
3064
+ s2 POP
3065
+ s2 PUSH
3066
+ 5 PUSHINT
3067
+ cl::get<dict256> INLINECALLDICT
3068
+ s0 s2 XCHG
3069
+ }>
3070
+ s0 s4 XCHG
3071
+ 6 PUSHINT
3072
+ cl::get<bool> INLINECALLDICT
3073
+ IF:<{
3074
+ DROP
3075
+ s2 POP
3076
+ DUP
3077
+ 7 PUSHINT
3078
+ cl::get<dict256> INLINECALLDICT
3079
+ SWAP
3080
+ 8 PUSHINT
3081
+ cl::get<uint8> INLINECALLDICT
3082
+ s0 s2 XCHG
3083
+ }>ELSE<{
3084
+ s2 POP
3085
+ }>
3086
+ s0 s2 XCHG
3087
+ }>
3088
+ UlnReceiveConfig::utils::getUlnReceiveConfig PROCINLINE:<{
3089
+ 2DUP
3090
+ UlnReceiveConfig::utils::getDVNs INLINECALLDICT
3091
+ s4 PUSH
3092
+ 3 PUSHINT
3093
+ cl::get<uint64> INLINECALLDICT
3094
+ s0 s5 XCHG
3095
+ 2 PUSHINT
3096
+ cl::get<bool> INLINECALLDICT
3097
+ IF:<{
3098
+ s4 POP
3099
+ s0 s2 XCHG
3100
+ 3 PUSHINT
3101
+ cl::get<uint64> INLINECALLDICT
3102
+ s3 s1 s3 XCHG3
3103
+ }>ELSE<{
3104
+ s3 POP
3105
+ }>
3106
+ s0 s0 s3 XCHG3
3107
+ }>
3108
+ UlnReceiveConfig::utils::readConfig PROCINLINE:<{
3109
+ DUP
3110
+ 0 PUSHINT
3111
+ cl::get<bool> INLINECALLDICT
3112
+ OVER
3113
+ 1 PUSHINT
3114
+ cl::get<uint32> INLINECALLDICT
3115
+ s2 PUSH
3116
+ 2 PUSHINT
3117
+ cl::get<bool> INLINECALLDICT
3118
+ s3 PUSH
3119
+ 3 PUSHINT
3120
+ cl::get<uint64> INLINECALLDICT
3121
+ s4 PUSH
3122
+ 4 PUSHINT
3123
+ cl::get<bool> INLINECALLDICT
3124
+ s5 PUSH
3125
+ 5 PUSHINT
3126
+ cl::get<dict256> INLINECALLDICT
3127
+ s6 PUSH
3128
+ 6 PUSHINT
3129
+ cl::get<bool> INLINECALLDICT
3130
+ s7 PUSH
3131
+ 7 PUSHINT
3132
+ cl::get<dict256> INLINECALLDICT
3133
+ s0 s8 XCHG
3134
+ 8 PUSHINT
3135
+ cl::get<uint8> INLINECALLDICT
3136
+ s7 s8 XCHG
3137
+ s6 s7 XCHG
3138
+ s5 s6 XCHG
3139
+ s4 s5 XCHG
3140
+ s3 s4 XCHG
3141
+ s1 s3 s0 XCHG3
3142
+ }>
3143
+ UlnReceiveConfig::sanitize PROC:<{
3144
+ UlnReceiveConfig::utils::readConfig INLINECALLDICT
3145
+ s3 PUSH
3146
+ cl::dict256::size INLINECALLDICT
3147
+ s2 PUSH
3148
+ cl::dict256::size INLINECALLDICT
3149
+ s10 PUSH
3150
+ 0 EQINT
3151
+ s10 PUSH
3152
+ 1 LESSINT
3153
+ AND
3154
+ 778 THROWIF
3155
+ s2 s0 PUSH2
3156
+ GREATER
3157
+ 1465 THROWIF
3158
+ DUP
3159
+ 0 GTINT
3160
+ s3 PUSH
3161
+ 1 LESSINT
3162
+ AND
3163
+ 740 THROWIF
3164
+ s6 PUSH
3165
+ 0 EQINT
3166
+ s5 PUSH
3167
+ 0 EQINT
3168
+ AND
3169
+ s0 s2 XCHG
3170
+ 0 EQINT
3171
+ s1 s2 XCHG
3172
+ AND
3173
+ SWAP
3174
+ 0 EQINT
3175
+ AND
3176
+ 1869 THROWIF
3177
+ UlnReceiveConfig::New CALLDICT
3178
+ }>
3179
+ UlnSendConfig::New PROC:<{
3180
+ 24044593853984358 PUSHINT
3181
+ 5 PUSHINT
3182
+ s0 s9 XCHG2
3183
+ PAIR
3184
+ 5 PUSHINT
3185
+ s0 s8 XCHG2
3186
+ PAIR
3187
+ 0 PUSHINT
3188
+ s0 s7 XCHG2
3189
+ PAIR
3190
+ 8 PUSHINT
3191
+ s0 s6 XCHG2
3192
+ PAIR
3193
+ 0 PUSHINT
3194
+ s0 s5 XCHG2
3195
+ PAIR
3196
+ 9 PUSHINT
3197
+ s0 s4 XCHG2
3198
+ PAIR
3199
+ 0 PUSHINT
3200
+ s0 s3 XCHG2
3201
+ PAIR
3202
+ 9 PUSHINT
3203
+ ROT
3204
+ PAIR
3205
+ 8 TUPLE
3206
+ cl::declare INLINECALLDICT
3207
+ }>
3208
+ UlnSendConfig::NewWithDefaults PROC:<{
3209
+ 32 PUSHPOW2DEC
3210
+ DUP
3211
+ TRUE
3212
+ 0 PUSHINT
3213
+ TRUE
3214
+ <b b> PUSHREF
3215
+ TRUE
3216
+ <b b> PUSHREF
3217
+ UlnSendConfig::New CALLDICT
3218
+ }>
3219
+ _serializeDVNList PROC:<{
3220
+ NEWC
3221
+ SINGLE
3222
+ 0 PUSHINT
3223
+ WHILE:<{
3224
+ s2 PUSH
3225
+ TLEN
3226
+ s1 s(-1) PUXC
3227
+ LESS
3228
+ }>DO<{
3229
+ OVER
3230
+ TLEN
3231
+ DEC
3232
+ s2 s(-1) PUXC
3233
+ INDEXVAR
3234
+ BBITS
3235
+ 8 PUSHPOW2
3236
+ ADD
3237
+ 10 PUSHPOW2DEC
3238
+ GREATER
3239
+ IF:<{
3240
+ SWAP
3241
+ NEWC
3242
+ TPUSH
3243
+ SWAP
3244
+ }>
3245
+ OVER
3246
+ TLEN
3247
+ DEC
3248
+ s2 s(-1) PUXC
3249
+ INDEXVAR
3250
+ s3 s1 PUSH2
3251
+ INDEXVAR
3252
+ SWAP
3253
+ 256 STU
3254
+ s2 PUSH
3255
+ TLEN
3256
+ DEC
3257
+ s2 s3 XCHG
3258
+ SETINDEXVAR
3259
+ SWAP
3260
+ INC
3261
+ }>
3262
+ DROP
3263
+ NIP
3264
+ TPOP
3265
+ WHILE:<{
3266
+ OVER
3267
+ TLEN
3268
+ 0 GTINT
3269
+ }>DO<{
3270
+ SWAP
3271
+ TPOP
3272
+ s0 s2 XCHG
3273
+ ENDC
3274
+ ROT
3275
+ STREF
3276
+ }>
3277
+ NIP
3278
+ ENDC
3279
+ }>
3280
+ ~dvnListNext PROC:<{
3281
+ c2 SAVE
3282
+ SAMEALTSAVE
3283
+ DUP
3284
+ SBITS
3285
+ 0 EQINT
3286
+ IF:<{
3287
+ DUP
3288
+ SREMPTY
3289
+ IFJMP:<{
3290
+ 0 PUSHINT
3291
+ RETALT
3292
+ }>
3293
+ 0 PLDREFIDX
3294
+ CTOS
3295
+ }>
3296
+ 256 LDU SWAP
3297
+ }>
3298
+ lz::UlnSendConfig::GetUlnSendConfig PROC:<{
3299
+ OVER
3300
+ 0 PUSHINT
3301
+ cl::get<uint32> INLINECALLDICT
3302
+ DUP
3303
+ 0 EQINT
3304
+ IF:<{
3305
+ DROP
3306
+ DUP
3307
+ 0 PUSHINT
3308
+ cl::get<uint32> INLINECALLDICT
3309
+ }>
3310
+ s2 PUSH
3311
+ 1 PUSHINT
3312
+ cl::get<uint32> INLINECALLDICT
3313
+ DUP
3314
+ 0 EQINT
3315
+ IF:<{
3316
+ DROP
3317
+ OVER
3318
+ 1 PUSHINT
3319
+ cl::get<uint32> INLINECALLDICT
3320
+ }>
3321
+ s3 PUSH
3322
+ 3 PUSHINT
3323
+ cl::get<address> INLINECALLDICT
3324
+ s4 PUSH
3325
+ 2 PUSHINT
3326
+ cl::get<bool> INLINECALLDICT
3327
+ IF:<{
3328
+ DROP
3329
+ s2 PUSH
3330
+ 3 PUSHINT
3331
+ cl::get<address> INLINECALLDICT
3332
+ }>
3333
+ s4 PUSH
3334
+ 5 PUSHINT
3335
+ cl::get<cellRef> INLINECALLDICT
3336
+ s5 PUSH
3337
+ 4 PUSHINT
3338
+ cl::get<bool> INLINECALLDICT
3339
+ IF:<{
3340
+ DROP
3341
+ s3 PUSH
3342
+ 5 PUSHINT
3343
+ cl::get<cellRef> INLINECALLDICT
3344
+ }>
3345
+ s5 PUSH
3346
+ 7 PUSHINT
3347
+ cl::get<cellRef> INLINECALLDICT
3348
+ s0 s6 XCHG
3349
+ 6 PUSHINT
3350
+ cl::get<bool> INLINECALLDICT
3351
+ IF:<{
3352
+ s5 POP
3353
+ s0 s3 XCHG
3354
+ 7 PUSHINT
3355
+ cl::get<cellRef> INLINECALLDICT
3356
+ s0 s4 XCHG
3357
+ s0 s3 XCHG
3358
+ }>ELSE<{
3359
+ s4 POP
3360
+ }>
3361
+ s0 s3 s4 XCHG3
3362
+ }>
3363
+ _serializedDVNListIsValid PROCINLINE:<{
3364
+ CONT:<{
3365
+ c2 SAVE
3366
+ SAMEALTSAVE
3367
+ CTOS
3368
+ DUP
3369
+ SREFS
3370
+ 1 GTINT
3371
+ IF:<{
3372
+ DROP
3373
+ FALSE
3374
+ }>ELSE<{
3375
+ 0 PUSHINT
3376
+ WHILE:<{
3377
+ OVER
3378
+ SEMPTY
3379
+ 0 EQINT
3380
+ }>DO<{
3381
+ SWAP
3382
+ ~dvnListNext CALLDICT
3383
+ s0 s2 XCHG
3384
+ INC
3385
+ OVER
3386
+ SREFS
3387
+ 1 GTINT
3388
+ s0 s3 XCHG
3389
+ 0 EQINT
3390
+ s1 s3 XCHG
3391
+ OR
3392
+ s2 PUSH
3393
+ 8 PUSHPOW2DEC
3394
+ GREATER
3395
+ OR
3396
+ IFJMP:<{
3397
+ 2DROP
3398
+ FALSE
3399
+ RETALT
3400
+ }>
3401
+ SWAP
3402
+ }>
3403
+ 2DROP
3404
+ TRUE
3405
+ }>
3406
+ }>
3407
+ EXECUTE
3408
+ }>
3409
+ lz::UlnSendConfig::sanitize PROCREF:<{
3410
+ DUP
3411
+ 0 PUSHINT
3412
+ cl::get<uint32> INLINECALLDICT
3413
+ OVER
3414
+ 1 PUSHINT
3415
+ cl::get<uint32> INLINECALLDICT
3416
+ s2 PUSH
3417
+ 2 PUSHINT
3418
+ cl::get<bool> INLINECALLDICT
3419
+ s3 PUSH
3420
+ 3 PUSHINT
3421
+ cl::get<address> INLINECALLDICT
3422
+ s4 PUSH
3423
+ 4 PUSHINT
3424
+ cl::get<bool> INLINECALLDICT
3425
+ s5 PUSH
3426
+ 5 PUSHINT
3427
+ cl::get<cellRef> INLINECALLDICT
3428
+ s6 PUSH
3429
+ 6 PUSHINT
3430
+ cl::get<bool> INLINECALLDICT
3431
+ s0 s7 XCHG
3432
+ 7 PUSHINT
3433
+ cl::get<cellRef> INLINECALLDICT
3434
+ OVER
3435
+ _serializedDVNListIsValid INLINECALLDICT
3436
+ OVER
3437
+ _serializedDVNListIsValid INLINECALLDICT
3438
+ AND
3439
+ 1445 THROWIFNOT
3440
+ s6 s7 XCHG
3441
+ s5 s6 XCHG
3442
+ s4 s5 XCHG
3443
+ s3 s4 XCHG
3444
+ s1 s3 s0 XCHG3
3445
+ UlnSendConfig::New CALLDICT
3446
+ }>
3447
+ Uln::New PROC:<{
3448
+ 7695470 PUSHINT
3449
+ 9 PUSHINT
3450
+ s0 s4 XCHG
3451
+ BaseStorage::New INLINECALLDICT
3452
+ s1 s4 XCHG
3453
+ PAIR
3454
+ 5 PUSHINT
3455
+ s0 s3 XCHG2
3456
+ PAIR
3457
+ 5 PUSHINT
3458
+ ROT
3459
+ PAIR
3460
+ 9 PUSHINT
3461
+ UlnReceiveConfig::NewWithDefaults INLINECALLDICT
3462
+ PAIR
3463
+ 9 PUSHINT
3464
+ UlnSendConfig::NewWithDefaults CALLDICT
3465
+ PAIR
3466
+ 9 PUSHINT
3467
+ <b b> PUSHREF
3468
+ PAIR
3469
+ 9 PUSHINT
3470
+ cl::dict256::New INLINECALLDICT
3471
+ PAIR
3472
+ 4 PUSHINT
3473
+ 0 PUSHINT
3474
+ PAIR
3475
+ 8 TUPLE
3476
+ cl::declare INLINECALLDICT
3477
+ }>
3478
+ event::checkPermissions::success::basic PROC:<{
3479
+ DROP
3480
+ 2005 PUSHINT
3481
+ spoofCaller INLINECALLDICT
3482
+ 3812333683 PUSHINT
3483
+ cl::nullObject INLINECALLDICT
3484
+ test::permissions::shouldPass PREPAREDICT
3485
+ 3 2 CALLXARGS
3486
+ }>
3487
+ initialize::checkPermissions::success::basic PROC:<{
3488
+ DROP
3489
+ 4133284232 PUSHINT
3490
+ cl::nullObject INLINECALLDICT
3491
+ test::permissions::shouldPass PREPAREDICT
3492
+ 3 2 CALLXARGS
3493
+ }>
3494
+ initialize::checkPermissions::revert::notOwner PROC:<{
3495
+ DROP
3496
+ 2004 PUSHINT
3497
+ spoofCaller INLINECALLDICT
3498
+ 4133284232 PUSHINT
3499
+ cl::nullObject INLINECALLDICT
3500
+ test::permissions::shouldFail PREPAREDICT
3501
+ 3 2 CALLXARGS
3502
+ }>
3503
+ initialize::handler::revert::notAuthenticated PROC:<{
3504
+ DROP
3505
+ createContractStorage CALLDICT
3506
+ DROP
3507
+ CONT:<{
3508
+ initialize CALLDICT
3509
+ }>
3510
+ cl::nullObject INLINECALLDICT
3511
+ 2032 PUSHINT
3512
+ test::handler::shouldFail PREPAREDICT
3513
+ 4 2 CALLXARGS
3514
+ }>
3515
+ initialize::handler::success::basic PROC:<{
3516
+ DROP
3517
+ createContractStorage CALLDICT
3518
+ DROP
3519
+ authenticate CALLDICT
3520
+ getContractStorage INLINECALLDICT
3521
+ CONT:<{
3522
+ initialize CALLDICT
3523
+ }>
3524
+ cl::nullObject INLINECALLDICT
3525
+ emptyActions INLINECALLDICT
3526
+ 0 PUSHINT
3527
+ s4 s0 PUSH2
3528
+ cl::get<objRef> INLINECALLDICT
3529
+ 2 PUSHINT
3530
+ TRUE
3531
+ cl::set INLINECALLDICT
3532
+ s2 s5 XCHG
3533
+ cl::set INLINECALLDICT
3534
+ txnContext GETGLOB
3535
+ s3 s4 XCHG
3536
+ s2 s3 XCHG
3537
+ test::handler::shouldPass CALLDICT
3538
+ }>
3539
+ initialize::handler::success::alreadyInitialized PROC:<{
3540
+ DROP
3541
+ createInitializedStorage CALLDICT
3542
+ DROP
3543
+ CONT:<{
3544
+ initialize CALLDICT
3545
+ }>
3546
+ cl::nullObject INLINECALLDICT
3547
+ emptyActions INLINECALLDICT
3548
+ getContractStorage INLINECALLDICT
3549
+ txnContext GETGLOB
3550
+ test::handler::shouldPass CALLDICT
3551
+ }>
3552
+ }END>c
3553
+ 2 boc+>B "build/BaseContract.test.boc" B>file