@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
package/build/Uln.fif ADDED
@@ -0,0 +1,4841 @@
1
+ "Asm.fif" include
2
+ // automatically generated from `src/protocol/msglibs/ultralightnode/uln/main.fc` incl:`src/protocol/msglibs/ultralightnode/uln/handler.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/protocolHandler.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/handlerCore.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/actions/utils.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/actions/../utils.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/actions/../constants.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/actions/../stdlib.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/actions/../txnContext.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/actions/../classlib.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/actions/../stringlib.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/baseInterface.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/abstract/handlerAbstract.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/actions/call.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/actions/deploy.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/actions/event.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/actions/payment.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../baseStorage.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../interfaces.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../channel/interface.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../channel/callbackOpcodes.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../controller/interface.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../endpoint/interface.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../msglibs/interface.fc` incl:`src/protocol/msglibs/ultralightnode/uln/interface.fc` incl:`src/protocol/msglibs/ultralightnode/uln/storage.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../msgdata/UlnReceiveConfig.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../msgdata/UlnSendConfig.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../workerInterface.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../../../tests/consts.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../workerUtils.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../BytesEncoder.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../../classes/lz/Path.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../../classes/lz/Packet.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../msgdata/UlnWorkerInfo.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../../classes/msgdata/MdAddress.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../../classes/msgdata/MdObj.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../msgdata/UlnSend.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../msgdata/UlnWorkerEvents.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../ulnConnection/interface.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../ulnConnection/storage.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../ulnConnection/../../../../funC++/dataStructures/PipelinedOutOfOrder.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../ulnConnection/../../../../classes/lz/Attestation.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../../classes/msgdata/SetAddress.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../../classes/msgdata/MsglibSendCallback.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../../funC++/dataStructures/DeterministicInsertionCircularQueue.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/protocolMain.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/contractMain.fc` incl:`src/protocol/msglibs/ultralightnode/uln/../../../core/abstract/../../../funC++/abstract/contractMainAbstract.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
+ 103343 DECLMETHOD UlnReceiveConfig::New
127
+ 77303 DECLMETHOD UlnReceiveConfig::NewWithDefaults
128
+ DECLPROC UlnReceiveConfig::utils::getDVNs
129
+ DECLPROC UlnReceiveConfig::utils::getUlnReceiveConfig
130
+ DECLPROC UlnReceiveConfig::utils::readConfig
131
+ DECLPROC UlnReceiveConfig::sanitize
132
+ 78563 DECLMETHOD UlnSendConfig::New
133
+ 89503 DECLMETHOD UlnSendConfig::NewWithDefaults
134
+ DECLPROC _serializeDVNList
135
+ DECLPROC ~dvnListNext
136
+ DECLPROC lz::UlnSendConfig::GetUlnSendConfig
137
+ DECLPROC _serializedDVNListIsValid
138
+ DECLPROC lz::UlnSendConfig::sanitize
139
+ 85777 DECLMETHOD Uln::New
140
+ 67373 DECLMETHOD lz::Path::New
141
+ DECLPROC lz::Path::endpointPath
142
+ DECLPROC lz::Path::reverse
143
+ DECLPROC lz::Path::optimizedReverse
144
+ 88187 DECLMETHOD lz::Packet::New
145
+ 96366 DECLMETHOD lz::Packet::nonceless
146
+ DECLPROC lz::Packet::_assertValidLinkedList
147
+ DECLPROC lz::Packet::assertValidSendMessage
148
+ DECLPROC lz::Packet::assertValidReceiveMessage
149
+ 114194 DECLMETHOD lz::Packet::calculateGuid
150
+ 67130 DECLMETHOD lz::Packet::replaceTwoFieldsAtOffsets
151
+ DECLPROC BytesEncoder::New
152
+ DECLPROC BytesEncoder::feed
153
+ DECLPROC BytesEncoder::serialize
154
+ DECLPROC BytesEncoder::feed<uint8>
155
+ DECLPROC BytesEncoder::feed<uint16>
156
+ DECLPROC BytesEncoder::feed<uint32>
157
+ DECLPROC BytesEncoder::feed<uint64>
158
+ DECLPROC BytesEncoder::feed<coins>
159
+ DECLPROC BytesEncoder::feed<uint256>
160
+ DECLPROC BytesEncoder::feed<cellRef>
161
+ DECLPROC BytesEncoder::build<PacketV1>
162
+ 96093 DECLMETHOD UlnWorkerInfo::New
163
+ 84761 DECLMETHOD md::MdAddress::New
164
+ 88345 DECLMETHOD md::MdObj::New
165
+ 91722 DECLMETHOD md::UlnSend::New
166
+ 87740 DECLMETHOD md::UlnWorkerEvents::New
167
+ DECLPROC UlnWorkerEventsBuilder::create
168
+ DECLPROC UlnWorkerEventsBuilder::push
169
+ DECLPROC UlnWorkerEvents::FromBuilder
170
+ 106165 DECLMETHOD POOO::set
171
+ 76066 DECLMETHOD POOO::New
172
+ 126005 DECLMETHOD POOO::NewWithBitsSets
173
+ 116795 DECLMETHOD POOO::isBitSet
174
+ 68887 DECLMETHOD POOO::maxSettableBit
175
+ 93134 DECLMETHOD lz::Attestation::New
176
+ 91381 DECLMETHOD lz::Attestation::isValid
177
+ 85009 DECLMETHOD UlnConnection::New
178
+ 77914 DECLMETHOD md::SetAddress::New
179
+ 85911 DECLMETHOD md::MsglibSendCallback::New
180
+ DECLPROC serializePayees
181
+ DECLPROC deserializePayees
182
+ DECLPROC DeterministicInsertionCircularQueue::_buildLevel
183
+ DECLPROC DeterministicInsertionCircularQueue::get
184
+ DECLPROC DeterministicInsertionCircularQueue::_setRaw
185
+ DECLPROC DeterministicInsertionCircularQueue::set
186
+ DECLPROC DeterministicInsertionCircularQueue::delete
187
+ 96090 DECLMETHOD DeterministicInsertionCircularQueue::create
188
+ DECLPROC assertConnection
189
+ DECLPROC assertWorkerIdentity
190
+ DECLPROC _quoteWorker
191
+ 23432 DECLMETHOD _quoteWorkers
192
+ DECLPROC ulnQuote
193
+ DECLPROC ulnSend
194
+ DECLPROC ulnCommitPacket
195
+ DECLPROC ulnVerify
196
+ DECLPROC _setWorkerInfo
197
+ DECLPROC updateUlnWorker
198
+ DECLPROC deregisterUlnWorker
199
+ DECLPROC ulnWorkerSetStorage
200
+ DECLPROC collectWorkerRent
201
+ DECLPROC setDefaultUlnSendConfig
202
+ DECLPROC setDefaultUlnReceiveConfig
203
+ DECLPROC _executeOpcode
204
+ DECLPROC _executeAction
205
+ DECLPROC main
206
+ DECLGLOBVAR txnContext
207
+ cell_is_empty PROCINLINE:<{
208
+ HASHCU
209
+ 68134197439415885698044414435951397869210496020759160419881882418413283430343 PUSHINT
210
+ EQUAL
211
+ }>
212
+ throwError PROCINLINE:<{
213
+ DUP
214
+ STRDUMP
215
+ DROP
216
+ HASHSU
217
+ 11 PUSHPOW2DEC
218
+ AND
219
+ THROWANY
220
+ }>
221
+ throwErrorUnless PROCINLINE:<{
222
+ SWAP
223
+ IFNOT:<{
224
+ throwError INLINECALLDICT
225
+ }>ELSE<{
226
+ DROP
227
+ }>
228
+ }>
229
+ getContractStateSize PROCINLINE:<{
230
+ 6 PUSHINT
231
+ NEWC
232
+ 5 STU
233
+ s1 s2 XCHG
234
+ STREF
235
+ STREF
236
+ ENDC
237
+ 16 PUSHPOW2DEC
238
+ CDATASIZE
239
+ DROP
240
+ }>
241
+ calculateStorageFees PROCINLINE:<{
242
+ 0 PUSHINT
243
+ GETSTORAGEFEE
244
+ }>
245
+ treeShapeEqual PROCINLINE:<{
246
+ SWAP
247
+ CTOS
248
+ SWAP
249
+ CTOS
250
+ OVER
251
+ SBITREFS
252
+ s2 PUSH
253
+ SBITREFS
254
+ s3 s3 XCHG2
255
+ NEQ
256
+ s1 s2 PUXC
257
+ NEQ
258
+ s1 s2 XCHG
259
+ OR
260
+ IF:<{
261
+ 3 BLKDROP
262
+ FALSE
263
+ }>ELSE<{
264
+ DUP
265
+ 0 EQINT
266
+ IFJMP:<{
267
+ 3 BLKDROP
268
+ TRUE
269
+ }>
270
+ TRUE
271
+ 0 PUSHINT
272
+ WHILE:<{
273
+ s2 PUSH
274
+ 0 GTINT
275
+ }>DO<{
276
+ s4 s0 PUSH2
277
+ PLDREFVAR
278
+ s4 s1 PUSH2
279
+ PLDREFVAR
280
+ treeShapeEqual INLINECALLDICT
281
+ s1 s2 XCHG
282
+ AND
283
+ SWAP
284
+ }>
285
+ s1 s4 XCHG
286
+ 4 BLKDROP
287
+ }>
288
+ }>
289
+ str::asciiUint256ToStr PROC:<{
290
+ DUP
291
+ NEWC
292
+ 256 STU
293
+ ENDC
294
+ CTOS
295
+ SDCNTLEAD0
296
+ 8 PUSHPOW2
297
+ SWAP
298
+ SUB
299
+ POW2
300
+ DEC
301
+ 8627645864741206717834700843784589212596587092734002810783114102550390051603 PUSHINT
302
+ SWAP
303
+ NOT
304
+ AND
305
+ OR
306
+ NEWC
307
+ 256 STU
308
+ ENDC
309
+ CTOS
310
+ }>
311
+ ~str::concat PROC:<{
312
+ OVER
313
+ SBITS
314
+ OVER
315
+ SBITS
316
+ ADD
317
+ 32385 PUSHINT
318
+ GREATER
319
+ IF:<{
320
+ x{43616e6e6f7420636f6e636174656e6174653a20737472696e6720746f6f206c6f6e67} PUSHSLICE
321
+ throwError INLINECALLDICT
322
+ }>
323
+ NEWC
324
+ ROT
325
+ STSLICER
326
+ SWAP
327
+ STSLICER
328
+ ENDC
329
+ CTOS
330
+ }>
331
+ str::concat PROC:<{
332
+ ~str::concat CALLDICT
333
+ }>
334
+ ~str::concatInt PROC:<{
335
+ <b b> <s PUSHSLICE
336
+ OVER
337
+ 0 LESSINT
338
+ IF:<{
339
+ s0 s2 XCHG
340
+ x{2d} PUSHSLICE
341
+ ~str::concat CALLDICT
342
+ SWAP
343
+ NEGATE
344
+ ROT
345
+ }>
346
+ OVER
347
+ 0 EQINT
348
+ IF:<{
349
+ 48 PUSHINT
350
+ NEWC
351
+ 8 STU
352
+ ENDC
353
+ CTOS
354
+ ~str::concat CALLDICT
355
+ }>
356
+ WHILE:<{
357
+ OVER
358
+ 0 GTINT
359
+ }>DO<{
360
+ OVER
361
+ 10 PUSHINT
362
+ MOD
363
+ 48 ADDCONST
364
+ NEWC
365
+ 8 STU
366
+ ENDC
367
+ CTOS
368
+ SWAP
369
+ str::concat CALLDICT
370
+ SWAP
371
+ 10 PUSHINT
372
+ DIV
373
+ SWAP
374
+ }>
375
+ NIP
376
+ str::concat CALLDICT
377
+ }>
378
+ str::concatInt PROC:<{
379
+ ~str::concatInt CALLDICT
380
+ }>
381
+ ~str::concatHex PROC:<{
382
+ <b b> <s PUSHSLICE
383
+ OVER
384
+ 0 EQINT
385
+ IF:<{
386
+ 48 PUSHINT
387
+ NEWC
388
+ 8 STU
389
+ ENDC
390
+ CTOS
391
+ ~str::concat CALLDICT
392
+ }>
393
+ WHILE:<{
394
+ OVER
395
+ 0 GTINT
396
+ }>DO<{
397
+ OVER
398
+ 4 MODPOW2#
399
+ 10 LESSINT
400
+ IF:<{
401
+ OVER
402
+ 4 MODPOW2#
403
+ 48 ADDCONST
404
+ NEWC
405
+ 8 STU
406
+ ENDC
407
+ CTOS
408
+ SWAP
409
+ str::concat CALLDICT
410
+ }>ELSE<{
411
+ OVER
412
+ 4 MODPOW2#
413
+ 65 ADDCONST
414
+ -10 ADDCONST
415
+ NEWC
416
+ 8 STU
417
+ ENDC
418
+ CTOS
419
+ SWAP
420
+ str::concat CALLDICT
421
+ }>
422
+ SWAP
423
+ 4 RSHIFT#
424
+ SWAP
425
+ }>
426
+ NIP
427
+ str::concat CALLDICT
428
+ }>
429
+ str::concatHex PROC:<{
430
+ ~str::concatHex CALLDICT
431
+ }>
432
+ str::console::log<int> PROC:<{
433
+ SWAP
434
+ x{3a20} PUSHSLICE
435
+ str::concat CALLDICT
436
+ SWAP
437
+ str::concatInt CALLDICT
438
+ STRDUMP
439
+ DROP
440
+ }>
441
+ basechainAddressStdToHashpart PROCINLINE:<{
442
+ REWRITESTDADDR
443
+ NIP
444
+ }>
445
+ hashpartToBasechainAddressStd PROCINLINE:<{
446
+ 0 PUSHINT
447
+ 4 PUSHINT
448
+ NEWC
449
+ 3 STU
450
+ 8 STI
451
+ 256 STU
452
+ ENDC CTOS
453
+ }>
454
+ getContractAddress PROCINLINE:<{
455
+ MYADDR
456
+ 11 PUSHINT
457
+ 8 PUSHPOW2
458
+ SDSUBSTR
459
+ 256 PLDU
460
+ }>
461
+ cl::objToSlice PROCINLINE:<{
462
+ CTOS
463
+ }>
464
+ _getTypeWidth PROCINLINE:<{
465
+ DUP
466
+ 9 LESSINT
467
+ IF:<{
468
+ POW2
469
+ }>ELSE<{
470
+ DROP
471
+ 0 PUSHINT
472
+ }>
473
+ }>
474
+ cl::hash PROCINLINE:<{
475
+ HASHCU
476
+ }>
477
+ cl::isNull PROCINLINE:<{
478
+ cell_is_empty INLINECALLDICT
479
+ }>
480
+ cl::noRefFields PROC:<{
481
+ c2 SAVE
482
+ SAMEALTSAVE
483
+ CTOS
484
+ DUP
485
+ SREFS
486
+ DUP
487
+ 0 EQINT
488
+ IFJMP:<{
489
+ 2DROP
490
+ TRUE
491
+ }>
492
+ DUP
493
+ 3 LESSINT
494
+ IFJMP:<{
495
+ 2DROP
496
+ FALSE
497
+ RETALT
498
+ }>
499
+ DUP
500
+ 2 GTINT
501
+ IF:<{
502
+ OVER
503
+ 0 PUSHINT
504
+ PLDREFVAR
505
+ cell_is_empty INLINECALLDICT
506
+ 0 EQINT
507
+ s2 PUSH
508
+ 1 PUSHINT
509
+ PLDREFVAR
510
+ cell_is_empty INLINECALLDICT
511
+ 0 EQINT
512
+ OR
513
+ s2 PUSH
514
+ 2 PUSHINT
515
+ PLDREFVAR
516
+ CTOS
517
+ SREFS
518
+ 0 NEQINT
519
+ OR
520
+ IFJMP:<{
521
+ 2DROP
522
+ FALSE
523
+ RETALT
524
+ }>
525
+ }>
526
+ 3 GTINT
527
+ IF:<{
528
+ 3 PUSHINT
529
+ PLDREFVAR
530
+ CTOS
531
+ SREFS
532
+ 0 NEQINT
533
+ IFJMP:<{
534
+ FALSE
535
+ RETALT
536
+ }>
537
+ }>ELSE<{
538
+ DROP
539
+ }>
540
+ TRUE
541
+ }>
542
+ cl::equalObjTypeShallow PROC:<{
543
+ c2 SAVE
544
+ SAMEALTSAVE
545
+ SWAP
546
+ CTOS
547
+ SWAP
548
+ CTOS
549
+ OVER
550
+ SREFS
551
+ OVER
552
+ SREFS
553
+ s1 s(-1) PUXC
554
+ NEQ
555
+ s3 PUSH
556
+ SBITS
557
+ s3 PUSH
558
+ SBITS
559
+ NEQ
560
+ OR
561
+ IFJMP:<{
562
+ 3 BLKDROP
563
+ FALSE
564
+ }>
565
+ 2 PUSHINT
566
+ WHILE:<{
567
+ s0 s1 PUSH2
568
+ LESS
569
+ }>DO<{
570
+ s3 s0 PUSH2
571
+ PLDREFVAR
572
+ CTOS
573
+ SREFS
574
+ s3 s1 PUSH2
575
+ PLDREFVAR
576
+ CTOS
577
+ SREFS
578
+ NEQ
579
+ s4 s1 PUSH2
580
+ PLDREFVAR
581
+ CTOS
582
+ SBITS
583
+ s4 s2 PUSH2
584
+ PLDREFVAR
585
+ CTOS
586
+ SBITS
587
+ NEQ
588
+ OR
589
+ IFJMP:<{
590
+ 4 BLKDROP
591
+ FALSE
592
+ RETALT
593
+ }>
594
+ INC
595
+ }>
596
+ 4 BLKDROP
597
+ TRUE
598
+ }>
599
+ setContractStorage PROCINLINE:<{
600
+ c4 POP
601
+ }>
602
+ getContractStorage PROCINLINE:<{
603
+ c4 PUSH
604
+ }>
605
+ computeContractAddress PROCINLINE:<{
606
+ 6 PUSHINT
607
+ NEWC
608
+ 5 STU
609
+ STREF
610
+ STREF
611
+ ENDC
612
+ HASHCU
613
+ }>
614
+ cl::typeof PROCINLINE:<{
615
+ DUP
616
+ cl::isNull INLINECALLDICT
617
+ IF:<{
618
+ DROP
619
+ 1314212940 PUSHINT
620
+ }>ELSE<{
621
+ CTOS
622
+ 80 PLDU
623
+ }>
624
+ }>
625
+ cl::declare PROCINLINE:<{
626
+ PUSHNULL
627
+ NEWC
628
+ PAIR
629
+ OVER
630
+ TLEN
631
+ s0 s3 XCHG
632
+ NEWC
633
+ 80 STU
634
+ 1 PUSHINT
635
+ DUP
636
+ 2 PUSHINT
637
+ 350 PUSHINT
638
+ 0 PUSHINT
639
+ DUP
640
+ WHILE:<{
641
+ s0 s9 PUSH2
642
+ LESS
643
+ }>DO<{
644
+ s8 s0 PUSH2
645
+ INDEXVAR
646
+ DUP
647
+ 0 INDEX
648
+ DUP
649
+ _getTypeWidth INLINECALLDICT
650
+ s5 s0 PUSH2
651
+ ADD
652
+ 10 PUSHPOW2DEC
653
+ GREATER
654
+ IF:<{
655
+ s5 POP
656
+ s0 s7 XCHG
657
+ INC
658
+ 0 PUSHINT
659
+ s10 PUSH
660
+ TLEN
661
+ s2 s(-1) PUXC
662
+ GEQ
663
+ IF:<{
664
+ s0 s10 XCHG
665
+ NEWC
666
+ TPUSH
667
+ s0 s10 XCHG
668
+ }>
669
+ s8 s5 XCHG2
670
+ }>
671
+ s4 PUSH
672
+ INC
673
+ s7 PUSH
674
+ GREATER
675
+ IF:<{
676
+ s4 POP
677
+ s5 POP
678
+ s0 s5 XCHG
679
+ INC
680
+ 0 PUSHINT
681
+ 4 PUSHINT
682
+ s10 PUSH
683
+ TLEN
684
+ s3 s(-1) PUXC
685
+ GEQ
686
+ IF:<{
687
+ s0 s10 XCHG
688
+ NEWC
689
+ TPUSH
690
+ s0 s10 XCHG
691
+ }>
692
+ s7 s6 s6 XCHG3
693
+ s0 s4 XCHG
694
+ }>
695
+ OVER
696
+ 9 LESSINT
697
+ IF:<{
698
+ s0 s2 XCHG
699
+ 1 INDEX
700
+ ABS
701
+ s10 s8 PUSH2
702
+ INDEXVAR
703
+ s3 PUSH
704
+ STUX
705
+ s10 s0 s8 XC2PU
706
+ SETINDEXVAR
707
+ }>ELSE<{
708
+ OVER
709
+ 9 EQINT
710
+ IF:<{
711
+ s0 s2 XCHG
712
+ 1 INDEX
713
+ s10 s7 PUSH2
714
+ INDEXVAR
715
+ STREF
716
+ s10 s0 s7 XC2PU
717
+ SETINDEXVAR
718
+ }>ELSE<{
719
+ s0 s2 XCHG
720
+ 1 INDEX
721
+ s10 s7 PUSH2
722
+ INDEXVAR
723
+ STREF
724
+ s10 s0 s7 XC2PU
725
+ SETINDEXVAR
726
+ }>
727
+ }>
728
+ s9 s8 XCHG2
729
+ 4 STU
730
+ s8 PUSH
731
+ 0 GTINT
732
+ IF:<{
733
+ 3 PUSHINT
734
+ s7 PUSH
735
+ 1 EQINT
736
+ IF:<{
737
+ 0 PUSHINT
738
+ }>ELSE<{
739
+ s7 PUSH
740
+ }>
741
+ ROT
742
+ 2 STU
743
+ s4 s(-1) PUXC
744
+ 10 STU
745
+ 2 STU
746
+ s3 s8 XCHG2
747
+ ADD
748
+ }>ELSE<{
749
+ s8 POP
750
+ 10 PUSHPOW2DEC
751
+ s5 PUSH
752
+ 1 EQINT
753
+ IF:<{
754
+ 0 PUSHINT
755
+ }>ELSE<{
756
+ s5 PUSH
757
+ }>
758
+ s0 s9 XCHG2
759
+ 2 STU
760
+ s1 s8 XCHG
761
+ 10 STU
762
+ s1 s(-1) PUXC
763
+ 2 STU
764
+ SWAP
765
+ INC
766
+ s7 s0 s7 XCHG3
767
+ }>
768
+ s0 s2 XCHG
769
+ INC
770
+ s6 s7 XCHG
771
+ }>
772
+ 6 BLKDROP
773
+ 2 2 BLKDROP2
774
+ OVER
775
+ 1 INDEX
776
+ s2 PUSH
777
+ TLEN
778
+ DEC
779
+ DUP
780
+ 1 GTINT
781
+ IF:<{
782
+ OVER
783
+ BREFS
784
+ 0 EQINT
785
+ IF:<{
786
+ <b b> PUSHREF
787
+ <b b> PUSHREF
788
+ s0 s3 XCHG2
789
+ STREF
790
+ s1 s2 XCHG
791
+ STREF
792
+ }>ELSE<{
793
+ OVER
794
+ BREFS
795
+ 1 EQINT
796
+ IF:<{
797
+ <b b> PUSHREF
798
+ ROT
799
+ STREF
800
+ SWAP
801
+ }>
802
+ SWAP
803
+ }>
804
+ SWAP
805
+ }>
806
+ 350 PUSHINT
807
+ s3 PUSH
808
+ BBITS
809
+ SUB
810
+ s1 s3 XCHG
811
+ STONES
812
+ SWAP
813
+ STBR
814
+ OVER
815
+ 1 EQINT
816
+ IF:<{
817
+ 2 1 BLKDROP2
818
+ ENDC
819
+ }>ELSE<{
820
+ SWAP
821
+ 2 EQINT
822
+ IFJMP:<{
823
+ SWAP
824
+ 2 INDEX
825
+ ENDC
826
+ SWAP
827
+ STREF
828
+ ENDC
829
+ }>
830
+ OVER
831
+ 3 INDEX
832
+ ENDC
833
+ s0 s2 XCHG
834
+ 2 INDEX
835
+ ENDC
836
+ SWAP
837
+ STREF
838
+ STREF
839
+ ENDC
840
+ }>
841
+ }>
842
+ cl::nullObject PROCINLINE:<{
843
+ <b b> PUSHREF
844
+ }>
845
+ cl::set PROCINLINE:<{
846
+ s0 s2 XCHG
847
+ CTOS
848
+ SWAP
849
+ 18 MULCONST
850
+ 80 ADDCONST
851
+ 2DUP
852
+ 4 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH, headerSlice]
853
+ 2 PUSHINT // STACK [_CELL_ID_WIDTH, fieldInfoOffset + _FIELD_TYPE_WIDTH, headerSlice]
854
+ SDSUBSTR // STACK [substring]
855
+ 2 PLDU // STACK [2BitUnsignInt]
856
+ s2 s1 PUSH2
857
+ // STACK [fieldInfoOffset, headerSlice]
858
+ 4 PUSHINT // STACK [_FIELD_TYPE_WIDTH, fieldInfoOffset, headerSlice]
859
+ SDSUBSTR // STACK [substring]
860
+ 4 PLDU // STACK [2BitUnsignInt]
861
+ 2OVER
862
+ 6 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH + _CELL_ID_WIDTH, headerSlice]
863
+ 10 PUSHINT // STACK [_DATA_OFFSET_WIDTH, fieldInfoOffset +_FIELD_TYPE_WIDTH + _CELL_ID_WIDTH, headerSlice]
864
+ SDSUBSTR // STACK [substring]
865
+ 10 PLDU // STACK [10BitUnsignInt]
866
+ s4 s3 PUXC
867
+ 16 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH + _CELL_ID_WIDTH + _DATA_OFFSET_WIDTH, headerSlice]
868
+ 2 PUSHINT // STACK [_REF_OFFSET_WIDTH, fieldInfoOffset + _FIELD_TYPE_WIDTH + _CELL_ID_WIDTH + _DATA_OFFSET_WIDTH headerSlice]
869
+ SDSUBSTR // STACK [substring]
870
+ 2 PLDU // STACK [10BitUnsignInt]
871
+ OVER
872
+ _getTypeWidth INLINECALLDICT
873
+ s3 PUSH
874
+ 0 EQINT
875
+ IF:<{
876
+ s5 PUSH
877
+ }>ELSE<{
878
+ s5 s3 PUSH2
879
+ PLDREFVAR
880
+ CTOS
881
+ }>
882
+ OVER
883
+ 0 NEQINT
884
+ IF:<{
885
+ 4 PUSHINT
886
+ s3 POP
887
+ }>
888
+ NEWC
889
+ OVER
890
+ SBITS
891
+ s7 PUSH
892
+ MIN
893
+ s2 PUSH
894
+ SREFS
895
+ s5 s(-1) PUXC
896
+ MIN
897
+ s3 PUSH
898
+ -ROT
899
+ SCUTFIRST
900
+ STSLICER
901
+ s4 PUSH
902
+ 9 EQINT
903
+ IF:<{
904
+ s2 POP
905
+ s3 POP
906
+ s4 POP
907
+ s5 s5 XCHG2
908
+ s0 s3 XCHG
909
+ STREF
910
+ 0 PUSHINT
911
+ s3 PUSH
912
+ SREFS
913
+ s0 s6 XCHG2
914
+ SUB
915
+ DEC
916
+ s3 s5 s0 XCHG3
917
+ SCUTLAST
918
+ s1 s3 XCHG
919
+ STSLICER
920
+ }>ELSE<{
921
+ s0 s4 XCHG
922
+ 9 EQINT
923
+ IF:<{
924
+ NIP
925
+ s4 POP
926
+ s5 s5 XCHG2
927
+ STREF
928
+ 0 PUSHINT
929
+ s3 PUSH
930
+ SREFS
931
+ s0 s6 XCHG2
932
+ SUB
933
+ DEC
934
+ s3 s5 s0 XCHG3
935
+ SCUTLAST
936
+ s1 s3 XCHG
937
+ STSLICER
938
+ }>ELSE<{
939
+ s2 POP
940
+ s0 s6 XCHG
941
+ ABS
942
+ s0 s2 s6 XC2PU
943
+ STUX
944
+ s3 s5 XCHG2
945
+ ADD
946
+ s2 PUSH
947
+ SREFS
948
+ s2 s3 XCHG
949
+ SSKIPFIRST
950
+ s1 s3 XCHG
951
+ STSLICER
952
+ }>
953
+ }>
954
+ s2 PUSH
955
+ 0 GTINT
956
+ IF:<{
957
+ ENDC
958
+ NEWC
959
+ s2 PUSH
960
+ SBITS
961
+ s3 s4 s(-1) PU2XC
962
+ SCUTFIRST
963
+ STSLICER
964
+ STREF
965
+ 0 PUSHINT
966
+ s2 PUSH
967
+ SREFS
968
+ s0 s4 XCHG2
969
+ SUB
970
+ DEC
971
+ s1 s3 XCHG
972
+ SCUTLAST
973
+ STSLICER
974
+ ENDC
975
+ }>ELSE<{
976
+ 2 1 BLKDROP2
977
+ ENDC
978
+ }>
979
+ }>
980
+ cl::get<uint> PROCINLINE:<{
981
+ s0 s2 XCHG
982
+ CTOS
983
+ SWAP
984
+ 18 MULCONST
985
+ 80 ADDCONST
986
+ 2DUP
987
+ 4 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH, headerSlice]
988
+ 2 PUSHINT // STACK [_CELL_ID_WIDTH, fieldInfoOffset + _FIELD_TYPE_WIDTH, headerSlice]
989
+ SDSUBSTR // STACK [substring]
990
+ 2 PLDU // STACK [2BitUnsignInt]
991
+ s2 s1 PUXC
992
+ 6 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH + _CELL_ID_WIDTH, headerSlice]
993
+ 10 PUSHINT // STACK [_DATA_OFFSET_WIDTH, fieldInfoOffset +_FIELD_TYPE_WIDTH + _CELL_ID_WIDTH, headerSlice]
994
+ SDSUBSTR // STACK [substring]
995
+ 10 PLDU // STACK [10BitUnsignInt]
996
+ OVER
997
+ 0 EQINT
998
+ IF:<{
999
+ NIP
1000
+ s2 PUSH
1001
+ SDSUBSTR // STACK [substring]
1002
+ s1 XCHG0
1003
+ PLDUX // STACK [10BitUnsignInt] (CC +1 )
1004
+ }>ELSE<{
1005
+ -ROT
1006
+ PLDREFVAR
1007
+ CTOS
1008
+ s1 s2 XCPU
1009
+ SDSUBSTR // STACK [substring]
1010
+ s1 XCHG0
1011
+ PLDUX // STACK [10BitUnsignInt] (CC +1 )
1012
+ }>
1013
+ }>
1014
+ cl::get<cellRef> PROCINLINE:<{
1015
+ SWAP
1016
+ CTOS
1017
+ SWAP
1018
+ 18 MULCONST
1019
+ 80 ADDCONST
1020
+ 2DUP
1021
+ 4 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH, headerSlice]
1022
+ 2 PUSHINT // STACK [_CELL_ID_WIDTH, fieldInfoOffset + _FIELD_TYPE_WIDTH, headerSlice]
1023
+ SDSUBSTR // STACK [substring]
1024
+ 2 PLDU // STACK [2BitUnsignInt]
1025
+ s2 s1 PUXC
1026
+ 16 ADDCONST // STACK [fieldInfoOffset + _FIELD_TYPE_WIDTH + _CELL_ID_WIDTH + _DATA_OFFSET_WIDTH, headerSlice]
1027
+ 2 PUSHINT // STACK [_REF_OFFSET_WIDTH, fieldInfoOffset + _FIELD_TYPE_WIDTH + _CELL_ID_WIDTH + _DATA_OFFSET_WIDTH headerSlice]
1028
+ SDSUBSTR // STACK [substring]
1029
+ 2 PLDU // STACK [10BitUnsignInt]
1030
+ OVER
1031
+ 0 EQINT
1032
+ IF:<{
1033
+ NIP
1034
+ PLDREFVAR
1035
+ }>ELSE<{
1036
+ -ROT
1037
+ PLDREFVAR
1038
+ CTOS
1039
+ SWAP
1040
+ PLDREFVAR
1041
+ }>
1042
+ }>
1043
+ cl::getWithCell<cellRef> PROCINLINE:<{
1044
+ cl::get<cellRef> INLINECALLDICT
1045
+ }>
1046
+ cl::get<objRef> PROCINLINE:<{
1047
+ cl::get<cellRef> INLINECALLDICT
1048
+ }>
1049
+ cl::get<uint8> PROCINLINE:<{
1050
+ 8 PUSHINT
1051
+ cl::get<uint> INLINECALLDICT
1052
+ }>
1053
+ cl::get<uint16> PROCINLINE:<{
1054
+ 16 PUSHINT
1055
+ cl::get<uint> INLINECALLDICT
1056
+ }>
1057
+ cl::get<uint32> PROCINLINE:<{
1058
+ 32 PUSHINT
1059
+ cl::get<uint> INLINECALLDICT
1060
+ }>
1061
+ cl::get<uint64> PROCINLINE:<{
1062
+ 64 PUSHINT
1063
+ cl::get<uint> INLINECALLDICT
1064
+ }>
1065
+ cl::get<coins> PROCINLINE:<{
1066
+ 7 PUSHPOW2
1067
+ cl::get<uint> INLINECALLDICT
1068
+ }>
1069
+ cl::get<uint256> PROCINLINE:<{
1070
+ 8 PUSHPOW2
1071
+ cl::get<uint> INLINECALLDICT
1072
+ }>
1073
+ cl::get<std_address> PROCINLINE:<{
1074
+ 8 PUSHPOW2
1075
+ cl::get<uint> INLINECALLDICT
1076
+ hashpartToBasechainAddressStd INLINECALLDICT
1077
+ }>
1078
+ cl::get<bool> PROCINLINE:<{
1079
+ 1 PUSHINT
1080
+ cl::get<uint> INLINECALLDICT
1081
+ 0 NEQINT
1082
+ }>
1083
+ cl::get<dict256> PROCINLINE:<{
1084
+ cl::get<cellRef> INLINECALLDICT
1085
+ }>
1086
+ cl::get<address> PROCINLINE:<{
1087
+ 8 PUSHPOW2
1088
+ cl::get<uint> INLINECALLDICT
1089
+ }>
1090
+ typeofField PROCINLINE:<{
1091
+ SWAP
1092
+ CTOS
1093
+ SWAP
1094
+ 18 MULCONST
1095
+ 80 ADDCONST
1096
+ 4 PUSHINT
1097
+ SDSUBSTR
1098
+ 4 PLDU
1099
+ }>
1100
+ compareObjectFields PROCINLINE:<{
1101
+ CONT:<{
1102
+ c2 SAVE
1103
+ SAMEALTSAVE
1104
+ OVER
1105
+ cl::typeof INLINECALLDICT
1106
+ OVER
1107
+ cl::typeof INLINECALLDICT
1108
+ NEQ
1109
+ DUP
1110
+ IF:<{
1111
+ 3 BLKDROP
1112
+ 16 PUSHINT
1113
+ }>ELSE<{
1114
+ s2 PUSH
1115
+ cl::typeof INLINECALLDICT
1116
+ 1314212940 PUSHINT
1117
+ EQUAL
1118
+ IFJMP:<{
1119
+ 3 BLKDROP
1120
+ -1 PUSHINT
1121
+ }>
1122
+ 0 PUSHINT
1123
+ WHILE:<{
1124
+ DUP
1125
+ 16 LESSINT
1126
+ }>DO<{
1127
+ s3 s0 PUSH2
1128
+ typeofField INLINECALLDICT
1129
+ DUP
1130
+ 9 EQINT
1131
+ IF:<{
1132
+ DROP
1133
+ NIP
1134
+ s2 s0 PUSH2
1135
+ cl::get<objRef> INLINECALLDICT
1136
+ cl::hash INLINECALLDICT
1137
+ s2 s1 PUSH2
1138
+ cl::get<objRef> INLINECALLDICT
1139
+ cl::hash INLINECALLDICT
1140
+ NEQ
1141
+ DUP
1142
+ IF:<{
1143
+ s3 s1 PUSH2
1144
+ cl::get<objRef> INLINECALLDICT
1145
+ HASHCU
1146
+ s0 DUMP
1147
+ DROP
1148
+ s2 s1 PUSH2
1149
+ cl::get<objRef> INLINECALLDICT
1150
+ HASHCU
1151
+ s0 DUMP
1152
+ DROP
1153
+ }>
1154
+ }>ELSE<{
1155
+ DUP
1156
+ 9 LESSINT
1157
+ IF:<{
1158
+ 1 2 BLKDROP2
1159
+ _getTypeWidth INLINECALLDICT
1160
+ s3 s1 s0 PUSH3
1161
+ cl::get<uint> INLINECALLDICT
1162
+ s3 s2 s1 PUSH3
1163
+ cl::get<uint> INLINECALLDICT
1164
+ NEQ
1165
+ DUP
1166
+ IF:<{
1167
+ x{6c68733a20} PUSHSLICE
1168
+ s5 s3 s2 PUSH3
1169
+ cl::get<uint> INLINECALLDICT
1170
+ str::console::log<int> CALLDICT
1171
+ 2OVER
1172
+ x{7268733a20} PUSHSLICE
1173
+ s0 s4 XCHG
1174
+ cl::get<uint> INLINECALLDICT
1175
+ s1 s2 XCHG
1176
+ str::console::log<int> CALLDICT
1177
+ }>ELSE<{
1178
+ NIP
1179
+ }>
1180
+ }>ELSE<{
1181
+ 2DROP
1182
+ 16 PUSHINT
1183
+ SWAP
1184
+ }>
1185
+ }>
1186
+ DUP
1187
+ IFJMP:<{
1188
+ s1 s3 XCHG
1189
+ 3 BLKDROP
1190
+ x{4d616c666f726d6564206669656c643a20} PUSHSLICE
1191
+ OVER
1192
+ str::console::log<int> CALLDICT
1193
+ RETALT
1194
+ }>
1195
+ SWAP
1196
+ INC
1197
+ }>
1198
+ 4 BLKDROP
1199
+ -1 PUSHINT
1200
+ }>
1201
+ }>
1202
+ EXECUTE
1203
+ }>
1204
+ objectsAreEqual PROCINLINE:<{
1205
+ compareObjectFields INLINECALLDICT
1206
+ -1 EQINT
1207
+ }>
1208
+ _typeToStr PROC:<{
1209
+ DUP
1210
+ 3 EQINT
1211
+ IFJMP:<{
1212
+ DROP
1213
+ x{75696e7438} PUSHSLICE
1214
+ }>
1215
+ DUP
1216
+ 4 EQINT
1217
+ IFJMP:<{
1218
+ DROP
1219
+ x{75696e743136} PUSHSLICE
1220
+ }>
1221
+ DUP
1222
+ 5 EQINT
1223
+ IFJMP:<{
1224
+ DROP
1225
+ x{75696e743332} PUSHSLICE
1226
+ }>
1227
+ DUP
1228
+ 6 EQINT
1229
+ IFJMP:<{
1230
+ DROP
1231
+ x{75696e743634} PUSHSLICE
1232
+ }>
1233
+ DUP
1234
+ 8 EQINT
1235
+ IFJMP:<{
1236
+ DROP
1237
+ x{75696e74323536} PUSHSLICE
1238
+ }>
1239
+ DUP
1240
+ 7 EQINT
1241
+ IFJMP:<{
1242
+ DROP
1243
+ x{636f696e73} PUSHSLICE
1244
+ }>
1245
+ DUP
1246
+ 8 EQINT
1247
+ IFJMP:<{
1248
+ DROP
1249
+ x{61646472657373} PUSHSLICE
1250
+ }>
1251
+ DUP
1252
+ 9 EQINT
1253
+ IFJMP:<{
1254
+ DROP
1255
+ x{64696374323536} PUSHSLICE
1256
+ }>
1257
+ DUP
1258
+ 9 EQINT
1259
+ IFJMP:<{
1260
+ DROP
1261
+ x{6f626a526566} PUSHSLICE
1262
+ }>
1263
+ DUP
1264
+ 9 EQINT
1265
+ IFJMP:<{
1266
+ DROP
1267
+ x{63656c6c526566} PUSHSLICE
1268
+ }>
1269
+ 0 EQINT
1270
+ IFJMP:<{
1271
+ x{626f6f6c} PUSHSLICE
1272
+ }>
1273
+ x{756e6b6e6f776e} PUSHSLICE
1274
+ }>
1275
+ printField PROCINLINE:<{
1276
+ OVER
1277
+ CTOS
1278
+ s2 s1 PUSH2
1279
+ typeofField INLINECALLDICT
1280
+ s2 PUSH
1281
+ 18 MULCONST
1282
+ 80 ADDCONST
1283
+ DUP
1284
+ 4 ADDCONST
1285
+ s3 s(-1) PUXC
1286
+ 2 PUSHINT
1287
+ SDSUBSTR
1288
+ 2 PLDU
1289
+ OVER
1290
+ 4 ADDCONST
1291
+ 2 ADDCONST
1292
+ 10 ADDCONST
1293
+ s4 s(-1) PUXC
1294
+ 2 PUSHINT
1295
+ SDSUBSTR
1296
+ 2 PLDU
1297
+ s3 PUSH
1298
+ _getTypeWidth INLINECALLDICT
1299
+ s0 s3 XCHG
1300
+ 4 ADDCONST
1301
+ 2 ADDCONST
1302
+ s1 s5 XCHG
1303
+ 10 PUSHINT
1304
+ SDSUBSTR
1305
+ 10 PLDU
1306
+ s3 PUSH
1307
+ _typeToStr CALLDICT
1308
+ x{20} PUSHSLICE
1309
+ str::concat CALLDICT
1310
+ s6 PUSH
1311
+ str::concatInt CALLDICT
1312
+ x{2061742063} PUSHSLICE
1313
+ str::concat CALLDICT
1314
+ ROT
1315
+ str::concatInt CALLDICT
1316
+ s2 PUSH
1317
+ 0 GTINT
1318
+ IF:<{
1319
+ s4 POP
1320
+ s0 s3 XCHG
1321
+ x{2e62} PUSHSLICE
1322
+ str::concat CALLDICT
1323
+ s0 s3 XCHG2
1324
+ str::concatInt CALLDICT
1325
+ }>ELSE<{
1326
+ NIP
1327
+ x{2e72} PUSHSLICE
1328
+ str::concat CALLDICT
1329
+ s0 s3 XCHG2
1330
+ str::concatInt CALLDICT
1331
+ }>
1332
+ OVER
1333
+ 9 LESSINT
1334
+ IF:<{
1335
+ NIP
1336
+ x{203d20} PUSHSLICE
1337
+ str::concat CALLDICT
1338
+ 3 -ROLL
1339
+ cl::get<uint> INLINECALLDICT
1340
+ str::concatInt CALLDICT
1341
+ STRDUMP
1342
+ DROP
1343
+ }>ELSE<{
1344
+ s2 POP
1345
+ 9 EQINT
1346
+ IF:<{
1347
+ x{2068617368203d20} PUSHSLICE
1348
+ str::concat CALLDICT
1349
+ -ROT
1350
+ cl::get<objRef> INLINECALLDICT
1351
+ cl::hash INLINECALLDICT
1352
+ str::concatInt CALLDICT
1353
+ STRDUMP
1354
+ DROP
1355
+ }>ELSE<{
1356
+ x{2068617368203d20} PUSHSLICE
1357
+ str::concat CALLDICT
1358
+ -ROT
1359
+ cl::get<cellRef> INLINECALLDICT
1360
+ HASHCU
1361
+ str::concatInt CALLDICT
1362
+ STRDUMP
1363
+ DROP
1364
+ }>
1365
+ }>
1366
+ }>
1367
+ uint256ToSlice PROCINLINE:<{
1368
+ NEWC
1369
+ 256 STU
1370
+ ENDC CTOS
1371
+ }>
1372
+ sliceToUint256 PROCINLINE:<{
1373
+ 256 PLDU
1374
+ }>
1375
+ cl::dict256::New PROCINLINE:<{
1376
+ <b b> PUSHREF
1377
+ }>
1378
+ cl::dict256::get PROCINLINE:<{
1379
+ OVER
1380
+ cell_is_empty INLINECALLDICT
1381
+ IF:<{
1382
+ NIP
1383
+ NEWDICT
1384
+ 8 PUSHPOW2
1385
+ DICTUGET
1386
+ NULLSWAPIFNOT
1387
+ }>ELSE<{
1388
+ SWAP
1389
+ 8 PUSHPOW2
1390
+ DICTUGET
1391
+ NULLSWAPIFNOT
1392
+ }>
1393
+ }>
1394
+ cl::dict256::get<uint256> PROCINLINE:<{
1395
+ cl::dict256::get INLINECALLDICT
1396
+ IF:<{
1397
+ sliceToUint256 INLINECALLDICT
1398
+ TRUE
1399
+ }>ELSE<{
1400
+ DROP
1401
+ 0 PUSHINT
1402
+ FALSE
1403
+ }>
1404
+ }>
1405
+ cl::dict256::get<cellRef> PROCINLINE:<{
1406
+ OVER
1407
+ cell_is_empty INLINECALLDICT
1408
+ IF:<{
1409
+ 2DROP
1410
+ <b b> PUSHREF
1411
+ FALSE
1412
+ }>ELSE<{
1413
+ SWAP
1414
+ 8 PUSHPOW2
1415
+ DICTUGETREF
1416
+ NULLSWAPIFNOT
1417
+ }>
1418
+ }>
1419
+ cl::dict256::setRef PROCINLINE:<{
1420
+ s2 PUSH
1421
+ cell_is_empty INLINECALLDICT
1422
+ IF:<{
1423
+ 1 2 BLKDROP2
1424
+ NEWDICT
1425
+ s1 s2 XCHG
1426
+ 8 PUSHPOW2
1427
+ DICTUSETREF
1428
+ }>ELSE<{
1429
+ s0 s2 XCHG
1430
+ 8 PUSHPOW2
1431
+ DICTUSETREF
1432
+ }>
1433
+ }>
1434
+ cl::dict256::set PROCINLINE:<{
1435
+ DUP
1436
+ <{ TRY:<{ SBITS DROP -1 PUSHINT }>CATCH<{ 2DROP 0 PUSHINT }> }>CONT 1 1 CALLXARGS
1437
+ IF:<{
1438
+ }>ELSE<{
1439
+ uint256ToSlice INLINECALLDICT
1440
+ }>
1441
+ s2 PUSH
1442
+ cell_is_empty INLINECALLDICT
1443
+ IF:<{
1444
+ s2 POP
1445
+ NEWDICT
1446
+ 8 PUSHPOW2
1447
+ DICTUSET
1448
+ }>ELSE<{
1449
+ s0 s2 XCHG
1450
+ 8 PUSHPOW2
1451
+ DICTUSET
1452
+ }>
1453
+ }>
1454
+ cl::dict256::delete PROC:<{
1455
+ OVER
1456
+ cell_is_empty INLINECALLDICT
1457
+ IFJMP:<{
1458
+ DROP
1459
+ }>
1460
+ SWAP
1461
+ 8 PUSHPOW2
1462
+ DICTUDEL
1463
+ DROP
1464
+ DUP
1465
+ <{ TRY:<{ CTOS DROP -1 PUSHINT }>CATCH<{ 2DROP 0 PUSHINT }> }>CONT 1 1 CALLXARGS
1466
+ IF:<{
1467
+ }>ELSE<{
1468
+ DROP
1469
+ cl::dict256::New INLINECALLDICT
1470
+ }>
1471
+ }>
1472
+ cl::dict256::getMin<slice> PROC:<{
1473
+ DUP
1474
+ cell_is_empty INLINECALLDICT
1475
+ IFJMP:<{
1476
+ DROP
1477
+ -1 PUSHINT
1478
+ PUSHNULL
1479
+ }>
1480
+ 8 PUSHPOW2
1481
+ DICTUMIN
1482
+ NULLSWAPIFNOT2
1483
+ IFJMP:<{
1484
+ SWAP
1485
+ }>
1486
+ 2DROP
1487
+ -1 PUSHINT
1488
+ PUSHNULL
1489
+ }>
1490
+ cl::dict256::getMin<uint256> PROC:<{
1491
+ DUP
1492
+ cell_is_empty INLINECALLDICT
1493
+ IFJMP:<{
1494
+ DROP
1495
+ -1 PUSHINT
1496
+ PUSHNULL
1497
+ }>
1498
+ 8 PUSHPOW2
1499
+ DICTUMIN
1500
+ NULLSWAPIFNOT2
1501
+ IFJMP:<{
1502
+ SWAP
1503
+ 256 PLDU
1504
+ }>
1505
+ 2DROP
1506
+ -1 PUSHINT
1507
+ PUSHNULL
1508
+ }>
1509
+ cl::dict256::getMin<cellRef> PROC:<{
1510
+ DUP
1511
+ cell_is_empty INLINECALLDICT
1512
+ IFJMP:<{
1513
+ DROP
1514
+ -1 PUSHINT
1515
+ PUSHNULL
1516
+ }>
1517
+ 8 PUSHPOW2
1518
+ DICTUMINREF
1519
+ NULLSWAPIFNOT2
1520
+ IFJMP:<{
1521
+ SWAP
1522
+ }>
1523
+ 2DROP
1524
+ -1 PUSHINT
1525
+ PUSHNULL
1526
+ }>
1527
+ cl::dict256::getNext<slice> PROC:<{
1528
+ OVER
1529
+ cell_is_empty INLINECALLDICT
1530
+ IFJMP:<{
1531
+ 2DROP
1532
+ -1 PUSHINT
1533
+ PUSHNULL
1534
+ }>
1535
+ SWAP
1536
+ 8 PUSHPOW2
1537
+ DICTUGETNEXT
1538
+ NULLSWAPIFNOT2
1539
+ IFJMP:<{
1540
+ SWAP
1541
+ }>
1542
+ 2DROP
1543
+ -1 PUSHINT
1544
+ PUSHNULL
1545
+ }>
1546
+ cl::dict256::getNext<uint256> PROC:<{
1547
+ OVER
1548
+ cell_is_empty INLINECALLDICT
1549
+ IFJMP:<{
1550
+ 2DROP
1551
+ -1 PUSHINT
1552
+ PUSHNULL
1553
+ }>
1554
+ SWAP
1555
+ 8 PUSHPOW2
1556
+ DICTUGETNEXT
1557
+ NULLSWAPIFNOT2
1558
+ IFJMP:<{
1559
+ SWAP
1560
+ 256 PLDU
1561
+ }>
1562
+ 2DROP
1563
+ -1 PUSHINT
1564
+ PUSHNULL
1565
+ }>
1566
+ cl::dict256::getNext<cellRef> PROC:<{
1567
+ OVER
1568
+ cell_is_empty INLINECALLDICT
1569
+ IFJMP:<{
1570
+ 2DROP
1571
+ -1 PUSHINT
1572
+ PUSHNULL
1573
+ }>
1574
+ SWAP
1575
+ 8 PUSHPOW2
1576
+ DICTUGETNEXT
1577
+ NULLSWAPIFNOT2
1578
+ IFJMP:<{
1579
+ SWAP
1580
+ 0 PLDREFIDX
1581
+ }>
1582
+ 2DROP
1583
+ -1 PUSHINT
1584
+ PUSHNULL
1585
+ }>
1586
+ cl::dict256::size PROCINLINE:<{
1587
+ 0 PUSHINT
1588
+ OVER
1589
+ cl::dict256::getMin<slice> CALLDICT
1590
+ DROP
1591
+ WHILE:<{
1592
+ DUP
1593
+ -1 GTINT
1594
+ }>DO<{
1595
+ s2 s(-1) PUXC
1596
+ cl::dict256::getNext<slice> CALLDICT
1597
+ DROP
1598
+ SWAP
1599
+ INC
1600
+ SWAP
1601
+ }>
1602
+ DROP
1603
+ NIP
1604
+ }>
1605
+ cl::nestedDict256::set PROCINLINE:<{
1606
+ 2OVER
1607
+ cl::get<dict256> INLINECALLDICT
1608
+ -ROT
1609
+ cl::dict256::set INLINECALLDICT
1610
+ cl::set INLINECALLDICT
1611
+ }>
1612
+ cl::nestedDict256::setRef PROCINLINE:<{
1613
+ 2OVER
1614
+ cl::get<dict256> INLINECALLDICT
1615
+ -ROT
1616
+ cl::dict256::setRef INLINECALLDICT
1617
+ cl::set INLINECALLDICT
1618
+ }>
1619
+ cl::nestedDict256::delete PROCINLINE:<{
1620
+ s2 s1 PUSH2
1621
+ cl::get<dict256> INLINECALLDICT
1622
+ SWAP
1623
+ cl::dict256::delete CALLDICT
1624
+ cl::set INLINECALLDICT
1625
+ }>
1626
+ cl::nestedDict256::get<uint256> PROCINLINE:<{
1627
+ -ROT
1628
+ cl::get<dict256> INLINECALLDICT
1629
+ SWAP
1630
+ cl::dict256::get<uint256> INLINECALLDICT
1631
+ }>
1632
+ cl::nestedDict256::get<slice> PROCINLINE:<{
1633
+ -ROT
1634
+ cl::get<dict256> INLINECALLDICT
1635
+ SWAP
1636
+ cl::dict256::get INLINECALLDICT
1637
+ }>
1638
+ cl::nestedDict256::get<cellRef> PROCINLINE:<{
1639
+ -ROT
1640
+ cl::get<dict256> INLINECALLDICT
1641
+ SWAP
1642
+ cl::dict256::get INLINECALLDICT
1643
+ DUP
1644
+ IF:<{
1645
+ SWAP
1646
+ 0 PLDREFIDX
1647
+ SWAP
1648
+ }>ELSE<{
1649
+ NIP
1650
+ <b b> PUSHREF
1651
+ SWAP
1652
+ }>
1653
+ }>
1654
+ getMsgValue PROCINLINE:<{
1655
+ txnContext GETGLOB
1656
+ 6 INDEX
1657
+ }>
1658
+ getOpcode PROCINLINE:<{
1659
+ txnContext GETGLOB
1660
+ 3 INDEX
1661
+ }>
1662
+ txnIsBounced PROCINLINE:<{
1663
+ txnContext GETGLOB
1664
+ 0 INDEX
1665
+ }>
1666
+ getContractBalance PROCINLINE:<{
1667
+ txnContext GETGLOB
1668
+ 5 INDEX
1669
+ }>
1670
+ getInitialContractBalance PROCINLINE:<{
1671
+ getContractBalance INLINECALLDICT
1672
+ getMsgValue INLINECALLDICT
1673
+ SUB
1674
+ }>
1675
+ getCaller PROCINLINE:<{
1676
+ txnContext GETGLOB
1677
+ 1 INDEX
1678
+ }>
1679
+ getOrigin PROCINLINE:<{
1680
+ txnContext GETGLOB
1681
+ 9 INDEX
1682
+ }>
1683
+ getOriginStd PROCINLINE:<{
1684
+ getOrigin INLINECALLDICT
1685
+ hashpartToBasechainAddressStd INLINECALLDICT
1686
+ }>
1687
+ getDonationNanos PROCINLINE:<{
1688
+ txnContext GETGLOB
1689
+ 10 INDEX
1690
+ }>
1691
+ setDonationNanos PROCINLINE:<{
1692
+ txnContext GETGLOB
1693
+ SWAP
1694
+ 10 PUSHINT
1695
+ SETINDEXVAR
1696
+ txnContext SETGLOB
1697
+ }>
1698
+ getMsgData PROCINLINE:<{
1699
+ txnContext GETGLOB
1700
+ 11 INDEX
1701
+ }>
1702
+ setOrigin PROCINLINE:<{
1703
+ txnContext GETGLOB
1704
+ SWAP
1705
+ 9 PUSHINT
1706
+ SETINDEXVAR
1707
+ txnContext SETGLOB
1708
+ }>
1709
+ initTxnContext PROCINLINE:<{
1710
+ OVER
1711
+ CTOS
1712
+ 4 PUSHINT
1713
+ LDUX
1714
+ FALSE
1715
+ s0 s2 XCHG
1716
+ 1 PUSHINT
1717
+ AND
1718
+ IF:<{
1719
+ NIP
1720
+ TRUE
1721
+ s0 s2 XCHG
1722
+ 32 PUSHINT
1723
+ SDSKIPFIRST
1724
+ -ROT
1725
+ }>
1726
+ -1 PUSHINT
1727
+ DUP
1728
+ 0 PUSHINT
1729
+ PUSHNULL
1730
+ s0 s4 XCHG
1731
+ LDMSGADDR
1732
+ LDMSGADDR
1733
+ NIP
1734
+ LDGRAMS
1735
+ NIP
1736
+ 1 PUSHINT
1737
+ SDSKIPFIRST
1738
+ LDGRAMS
1739
+ NIP
1740
+ SWAP
1741
+ basechainAddressStdToHashpart INLINECALLDICT
1742
+ s0 s7 PUSH2
1743
+ SEMPTY
1744
+ IFNOT:<{
1745
+ 3 3 BLKDROP2
1746
+ s0 s5 XCHG
1747
+ 32 PUSHINT
1748
+ LDUX
1749
+ 64 PUSHINT
1750
+ LDUX
1751
+ LDGRAMS
1752
+ DUP
1753
+ SBITS
1754
+ 267 PUSHINT
1755
+ GEQ
1756
+ IF:<{
1757
+ s8 POP
1758
+ s7 PUSH
1759
+ 11 PUSHINT
1760
+ 8 PUSHPOW2
1761
+ SDSUBSTR
1762
+ 256 PLDU
1763
+ s0 s8 XCHG
1764
+ }>
1765
+ DUP
1766
+ SREMPTY
1767
+ IFNOT:<{
1768
+ s6 POP
1769
+ s5 PUSH
1770
+ PLDREF
1771
+ s0 s6 XCHG
1772
+ }>
1773
+ s0 s8 XCHG
1774
+ s3 s5 XCHG
1775
+ s4 s3 s0 XCHG3
1776
+ s1 s2 XCHG
1777
+ }>
1778
+ s0 s2 XCHG
1779
+ LDGRAMS
1780
+ DROP
1781
+ 3 PUSHINT
1782
+ 1 MULRSHIFT#
1783
+ s7 s11 XCHG
1784
+ s10 s9 XCHG2
1785
+ s5 s8 XCHG
1786
+ s4 s7 XCHG
1787
+ s4 s6 XCHG
1788
+ s3 s3 XCHG2
1789
+ s0 s5 XCHG
1790
+ s0 s4 XCHG
1791
+ 12 TUPLE
1792
+ txnContext SETGLOB
1793
+ }>
1794
+ emptyActions PROCINLINE:<{
1795
+ 0 PUSHINT
1796
+ SINGLE
1797
+ }>
1798
+ sendTerminalAction PROCINLINE:<{
1799
+ 24 PUSHINT
1800
+ NEWC
1801
+ 6 STU
1802
+ s0 s4 XCHG
1803
+ hashpartToBasechainAddressStd INLINECALLDICT
1804
+ s1 s4 XCHG
1805
+ STSLICER
1806
+ 0 PUSHINT
1807
+ STGRAMS
1808
+ OVER
1809
+ ISNULL
1810
+ IF:<{
1811
+ 1 PUSHINT
1812
+ s2 POP
1813
+ 107 STU
1814
+ }>ELSE<{
1815
+ 7 PUSHINT
1816
+ SWAP
1817
+ 108 STU
1818
+ STREF
1819
+ }>
1820
+ STREF
1821
+ ENDC
1822
+ 7 PUSHPOW2
1823
+ ROT
1824
+ OR
1825
+ SENDRAWMSG
1826
+ }>
1827
+ sendNonTerminalAction PROCINLINE:<{
1828
+ 1 PUSHINT
1829
+ s0 s5 XCHG
1830
+ NEWC
1831
+ 6 STU
1832
+ s0 s3 XCHG
1833
+ hashpartToBasechainAddressStd INLINECALLDICT
1834
+ s1 s3 XCHG
1835
+ STSLICER
1836
+ s0 s3 XCHG2
1837
+ STGRAMS
1838
+ s1 s3 XCHG
1839
+ 107 STU
1840
+ STREF
1841
+ ENDC
1842
+ SWAP
1843
+ SENDRAWMSG
1844
+ }>
1845
+ buildLayerzeroMessageBody PROCINLINE:<{
1846
+ SWAP
1847
+ txnContext GETGLOB 4 INDEX SWAP NEWC 32 STU 64 STU
1848
+ ROT
1849
+ STGRAMS
1850
+ getOriginStd INLINECALLDICT
1851
+ STSLICER
1852
+ STREF
1853
+ ENDC
1854
+ }>
1855
+ assertInitialized PROCINLINE:<{
1856
+ getContractStorage INLINECALLDICT
1857
+ 0 PUSHINT
1858
+ cl::get<objRef> INLINECALLDICT
1859
+ 2 PUSHINT
1860
+ cl::get<bool> INLINECALLDICT
1861
+ 1160 THROWIFNOT
1862
+ }>
1863
+ checkPermissions PROCINLINE:<{
1864
+ OVER
1865
+ 3812333683 PUSHINT
1866
+ EQUAL
1867
+ IF:<{
1868
+ 2DROP
1869
+ }>ELSE<{
1870
+ OVER
1871
+ 4133284232 PUSHINT
1872
+ EQUAL
1873
+ IF:<{
1874
+ 2DROP
1875
+ assertOwner INLINECALLDICT
1876
+ }>ELSE<{
1877
+ _checkPermissions INLINECALLDICT
1878
+ }>
1879
+ }>
1880
+ }>
1881
+ initialize PROCINLINE:<{
1882
+ assertAuthenticated INLINECALLDICT
1883
+ getContractStorage INLINECALLDICT
1884
+ 0 PUSHINT
1885
+ cl::get<objRef> INLINECALLDICT
1886
+ 2 PUSHINT
1887
+ cl::get<bool> INLINECALLDICT
1888
+ IF:<{
1889
+ DROP
1890
+ emptyActions INLINECALLDICT
1891
+ }>ELSE<{
1892
+ _initialize INLINECALLDICT
1893
+ 0 PUSHINT
1894
+ s2 s0 PUSH2
1895
+ cl::get<objRef> INLINECALLDICT
1896
+ 2 PUSHINT
1897
+ TRUE
1898
+ cl::set INLINECALLDICT
1899
+ s2 s3 XCHG
1900
+ cl::set INLINECALLDICT
1901
+ setContractStorage INLINECALLDICT
1902
+ }>
1903
+ }>
1904
+ authenticateIfNecessary PROCINLINE:<{
1905
+ getContractStorage INLINECALLDICT
1906
+ 0 PUSHINT
1907
+ cl::get<objRef> INLINECALLDICT
1908
+ 1 PUSHINT
1909
+ cl::get<bool> INLINECALLDICT
1910
+ 0 EQINT
1911
+ IF:<{
1912
+ authenticate CALLDICT
1913
+ }>
1914
+ }>
1915
+ assertOwner PROCINLINE:<{
1916
+ getContractStorage INLINECALLDICT
1917
+ 0 PUSHINT
1918
+ cl::get<objRef> INLINECALLDICT
1919
+ getCaller INLINECALLDICT
1920
+ SWAP
1921
+ 0 PUSHINT
1922
+ cl::get<address> INLINECALLDICT
1923
+ EQUAL
1924
+ 163 THROWIFNOT
1925
+ }>
1926
+ _checkPermissions PROCINLINE:<{
1927
+ CONT:<{
1928
+ c2 SAVE
1929
+ SAMEALTSAVE
1930
+ OVER
1931
+ 1575388051 PUSHINT
1932
+ EQUAL
1933
+ s2 PUSH
1934
+ 135634014 PUSHINT
1935
+ EQUAL
1936
+ OR
1937
+ IF:<{
1938
+ NIP
1939
+ assertConnection INLINECALLDICT
1940
+ }>ELSE<{
1941
+ OVER
1942
+ 2571808590 PUSHINT
1943
+ EQUAL
1944
+ IFJMP:<{
1945
+ 2DROP
1946
+ RETALT
1947
+ }>
1948
+ OVER
1949
+ 1529911255 PUSHINT
1950
+ EQUAL
1951
+ s2 PUSH
1952
+ 1576272773 PUSHINT
1953
+ EQUAL
1954
+ OR
1955
+ IFJMP:<{
1956
+ 2DROP
1957
+ RETALT
1958
+ }>
1959
+ OVER
1960
+ 781973186 PUSHINT
1961
+ EQUAL
1962
+ IFJMP:<{
1963
+ NIP
1964
+ assertWorkerIdentity INLINECALLDICT
1965
+ RETALT
1966
+ }>
1967
+ DROP
1968
+ DUP
1969
+ 4197393501 PUSHINT
1970
+ EQUAL
1971
+ SWAP
1972
+ 1176833684 PUSHINT
1973
+ EQUAL
1974
+ OR
1975
+ IF:<{
1976
+ assertOwner INLINECALLDICT
1977
+ }>ELSE<{
1978
+ 1199 THROW
1979
+ }>
1980
+ }>
1981
+ }>
1982
+ EXECUTE
1983
+ }>
1984
+ preamble PROCINLINE:<{
1985
+ getContractStorage INLINECALLDICT
1986
+ emptyActions INLINECALLDICT
1987
+ }>
1988
+ action::call::New PROCINLINE:<{
1989
+ 459904164859953153141868 PUSHINT
1990
+ 3 -ROLL
1991
+ 4 TUPLE
1992
+ }>
1993
+ action::call::equals PROC:<{
1994
+ OVER
1995
+ 3 INDEX
1996
+ OVER
1997
+ 3 INDEX
1998
+ compareObjectFields INLINECALLDICT
1999
+ s2 PUSH
2000
+ 0 INDEX
2001
+ s2 PUSH
2002
+ 0 INDEX
2003
+ EQUAL
2004
+ s3 PUSH
2005
+ 1 INDEX
2006
+ s3 PUSH
2007
+ 1 INDEX
2008
+ EQUAL
2009
+ AND
2010
+ s0 s3 XCHG
2011
+ 2 INDEX
2012
+ s0 s2 XCHG
2013
+ 2 INDEX
2014
+ s1 s2 XCHG
2015
+ EQUAL
2016
+ s1 s2 XCHG
2017
+ AND
2018
+ SWAP
2019
+ -1 EQINT
2020
+ AND
2021
+ }>
2022
+ _newAction<call> PROCINLINE:<{
2023
+ action::call::New INLINECALLDICT
2024
+ }>
2025
+ ~pushAction<call> PROCINLINE:<{
2026
+ _newAction<call> INLINECALLDICT
2027
+ TPUSH
2028
+ }>
2029
+ executeCall PROCINLINE:<{
2030
+ DUP
2031
+ 1 INDEX
2032
+ 0 PUSHINT
2033
+ s2 PUSH
2034
+ 2 INDEX
2035
+ s0 s3 XCHG
2036
+ 3 INDEX
2037
+ s1 s3 s0 XCHG3
2038
+ buildLayerzeroMessageBody INLINECALLDICT
2039
+ PUSHNULL
2040
+ 0 PUSHINT
2041
+ sendTerminalAction INLINECALLDICT
2042
+ FALSE
2043
+ }>
2044
+ action::deploy::New PROCINLINE:<{
2045
+ 110386840629113 PUSHINT
2046
+ 6 -ROLL
2047
+ 7 TUPLE
2048
+ }>
2049
+ action::deploy::equals PROC:<{
2050
+ OVER
2051
+ 2 INDEX
2052
+ OVER
2053
+ 2 INDEX
2054
+ compareObjectFields INLINECALLDICT
2055
+ s2 PUSH
2056
+ 5 INDEX
2057
+ s2 PUSH
2058
+ 5 INDEX
2059
+ compareObjectFields INLINECALLDICT
2060
+ s3 PUSH
2061
+ 0 INDEX
2062
+ s3 PUSH
2063
+ 0 INDEX
2064
+ EQUAL
2065
+ s4 PUSH
2066
+ 1 INDEX
2067
+ HASHCU
2068
+ s4 PUSH
2069
+ 1 INDEX
2070
+ HASHCU
2071
+ EQUAL
2072
+ AND
2073
+ s0 s2 XCHG
2074
+ -1 EQINT
2075
+ s1 s2 XCHG
2076
+ AND
2077
+ s3 PUSH
2078
+ 3 INDEX
2079
+ s3 PUSH
2080
+ 3 INDEX
2081
+ EQUAL
2082
+ AND
2083
+ s3 PUSH
2084
+ 4 INDEX
2085
+ s3 PUSH
2086
+ 4 INDEX
2087
+ EQUAL
2088
+ AND
2089
+ SWAP
2090
+ -1 EQINT
2091
+ AND
2092
+ s0 s2 XCHG
2093
+ 6 INDEX
2094
+ SWAP
2095
+ 6 INDEX
2096
+ EQUAL
2097
+ AND
2098
+ }>
2099
+ _newAction<deployAndCall> PROCINLINE:<{
2100
+ action::deploy::New INLINECALLDICT
2101
+ }>
2102
+ ~pushAction<deployAndCall> PROCINLINE:<{
2103
+ _newAction<deployAndCall> INLINECALLDICT
2104
+ TPUSH
2105
+ }>
2106
+ executeDeploy PROCINLINE:<{
2107
+ DUP
2108
+ 2 INDEX
2109
+ OVER
2110
+ 1 INDEX
2111
+ 2DUP
2112
+ computeContractAddress INLINECALLDICT
2113
+ s3 PUSH
2114
+ 3 INDEX
2115
+ s4 PUSH
2116
+ 4 INDEX
2117
+ s0 s5 XCHG
2118
+ 5 INDEX
2119
+ s1 s5 s0 XCHG3
2120
+ buildLayerzeroMessageBody INLINECALLDICT
2121
+ 6 PUSHINT
2122
+ NEWC
2123
+ 5 STU
2124
+ s1 s2 XCHG
2125
+ STREF
2126
+ s1 s2 XCHG
2127
+ STREF
2128
+ ENDC
2129
+ 0 PUSHINT
2130
+ sendTerminalAction INLINECALLDICT
2131
+ FALSE
2132
+ }>
2133
+ _getEventSink PROCINLINE:<{
2134
+ getContractAddress INLINECALLDICT
2135
+ }>
2136
+ action::event::New PROCINLINE:<{
2137
+ 435778055796 PUSHINT
2138
+ 8 PUSHINT
2139
+ s0 s4 XCHG2
2140
+ PAIR
2141
+ 9 PUSHINT
2142
+ s0 s3 XCHG2
2143
+ PAIR
2144
+ 9 PUSHINT
2145
+ ROT
2146
+ PAIR
2147
+ TRIPLE
2148
+ cl::declare INLINECALLDICT
2149
+ 435778055796 PUSHINT
2150
+ SWAP
2151
+ PAIR
2152
+ }>
2153
+ action::event::equals PROC:<{
2154
+ OVER
2155
+ 1 INDEX
2156
+ OVER
2157
+ 1 INDEX
2158
+ compareObjectFields INLINECALLDICT
2159
+ s0 s2 XCHG
2160
+ 0 INDEX
2161
+ SWAP
2162
+ 0 INDEX
2163
+ EQUAL
2164
+ SWAP
2165
+ -1 EQINT
2166
+ AND
2167
+ }>
2168
+ _newAction<event> PROCINLINE:<{
2169
+ getInitialStorage INLINECALLDICT
2170
+ action::event::New INLINECALLDICT
2171
+ }>
2172
+ ~pushAction<event> PROCINLINE:<{
2173
+ _newAction<event> INLINECALLDICT
2174
+ TPUSH
2175
+ }>
2176
+ executeEvent PROCINLINE:<{
2177
+ 16 PUSHINT
2178
+ 0 PUSHINT
2179
+ _getEventSink INLINECALLDICT
2180
+ OVER
2181
+ 3812333683 PUSHINT
2182
+ s0 s5 XCHG
2183
+ 1 INDEX
2184
+ s1 s5 s0 XCHG3
2185
+ buildLayerzeroMessageBody INLINECALLDICT
2186
+ s1 s3 s0 XCHG3
2187
+ 1 PUSHINT
2188
+ sendNonTerminalAction INLINECALLDICT
2189
+ TRUE
2190
+ }>
2191
+ action::payment::New PROCINLINE:<{
2192
+ 31632371545894516 PUSHINT
2193
+ 3 -ROLL
2194
+ 4 TUPLE
2195
+ }>
2196
+ action::payment::equals PROC:<{
2197
+ OVER
2198
+ 0 INDEX
2199
+ OVER
2200
+ 0 INDEX
2201
+ EQUAL
2202
+ s2 PUSH
2203
+ 1 INDEX
2204
+ s2 PUSH
2205
+ 1 INDEX
2206
+ EQUAL
2207
+ AND
2208
+ s2 PUSH
2209
+ 2 INDEX
2210
+ s2 PUSH
2211
+ 2 INDEX
2212
+ EQUAL
2213
+ AND
2214
+ s0 s2 XCHG
2215
+ 3 INDEX
2216
+ SWAP
2217
+ 3 INDEX
2218
+ EQUAL
2219
+ AND
2220
+ }>
2221
+ _newAction<payment> PROCINLINE:<{
2222
+ action::payment::New INLINECALLDICT
2223
+ }>
2224
+ ~pushAction<payment> PROCINLINE:<{
2225
+ DUP
2226
+ 0 GTINT
2227
+ IF:<{
2228
+ s3 PUSH
2229
+ 0 INDEX
2230
+ OVER
2231
+ ADD
2232
+ s1 s4 XCHG
2233
+ 0 PUSHINT
2234
+ SETINDEXVAR
2235
+ s0 s3 XCHG
2236
+ }>
2237
+ _newAction<payment> INLINECALLDICT
2238
+ TPUSH
2239
+ }>
2240
+ executePayment PROCINLINE:<{
2241
+ 16 PUSHINT
2242
+ 1 PUSHINT
2243
+ 0 PUSHINT
2244
+ DUP
2245
+ GETFORWARDFEE
2246
+ s2 PUSH
2247
+ 2 INDEX
2248
+ ADD
2249
+ s0 s2 XCHG
2250
+ 1 INDEX
2251
+ <b b> PUSHREF
2252
+ s2 s3 XCHG
2253
+ 0 PUSHINT
2254
+ sendNonTerminalAction INLINECALLDICT
2255
+ TRUE
2256
+ }>
2257
+ BaseStorage::New PROCINLINE:<{
2258
+ 1814802986876646945381 PUSHINT
2259
+ 8 PUSHINT
2260
+ ROT
2261
+ PAIR
2262
+ 0 PUSHINT
2263
+ FALSE
2264
+ PAIR
2265
+ 0 PUSHINT
2266
+ FALSE
2267
+ PAIR
2268
+ 9 PUSHINT
2269
+ cl::nullObject INLINECALLDICT
2270
+ PAIR
2271
+ 4 TUPLE
2272
+ cl::declare INLINECALLDICT
2273
+ }>
2274
+ getOwner PROCINLINE:<{
2275
+ getContractStorage INLINECALLDICT
2276
+ 0 PUSHINT
2277
+ cl::get<objRef> INLINECALLDICT
2278
+ 0 PUSHINT
2279
+ cl::get<address> INLINECALLDICT
2280
+ }>
2281
+ getInitialStorage PROCINLINE:<{
2282
+ getContractStorage INLINECALLDICT
2283
+ 0 PUSHINT
2284
+ cl::get<objRef> INLINECALLDICT
2285
+ 3 PUSHINT
2286
+ cl::get<objRef> INLINECALLDICT
2287
+ }>
2288
+ assertAuthenticated PROCINLINE:<{
2289
+ getContractStorage INLINECALLDICT
2290
+ 0 PUSHINT
2291
+ cl::get<objRef> INLINECALLDICT
2292
+ 1 PUSHINT
2293
+ cl::get<bool> INLINECALLDICT
2294
+ 2032 THROWIFNOT
2295
+ }>
2296
+ authenticate PROC:<{
2297
+ assertOwner INLINECALLDICT
2298
+ getContractStorage INLINECALLDICT
2299
+ 0 PUSHINT
2300
+ 2DUP
2301
+ cl::get<objRef> INLINECALLDICT
2302
+ 3 PUSHINT
2303
+ getContractStorage INLINECALLDICT
2304
+ cl::set INLINECALLDICT
2305
+ 1 PUSHINT
2306
+ TRUE
2307
+ cl::set INLINECALLDICT
2308
+ cl::set INLINECALLDICT
2309
+ setContractStorage INLINECALLDICT
2310
+ }>
2311
+ _initialize PROCINLINE:<{
2312
+ DROP
2313
+ preamble INLINECALLDICT
2314
+ }>
2315
+ UlnReceiveConfig::New PROC:<{
2316
+ 24044593853984358 PUSHINT
2317
+ 0 PUSHINT
2318
+ s0 s10 XCHG2
2319
+ PAIR
2320
+ 5 PUSHINT
2321
+ s0 s9 XCHG2
2322
+ PAIR
2323
+ 0 PUSHINT
2324
+ s0 s8 XCHG2
2325
+ PAIR
2326
+ 6 PUSHINT
2327
+ s0 s7 XCHG2
2328
+ PAIR
2329
+ 0 PUSHINT
2330
+ s0 s6 XCHG2
2331
+ PAIR
2332
+ 9 PUSHINT
2333
+ s0 s5 XCHG2
2334
+ PAIR
2335
+ 0 PUSHINT
2336
+ s0 s4 XCHG2
2337
+ PAIR
2338
+ 9 PUSHINT
2339
+ s0 s3 XCHG2
2340
+ PAIR
2341
+ 3 PUSHINT
2342
+ ROT
2343
+ PAIR
2344
+ 9 TUPLE
2345
+ cl::declare INLINECALLDICT
2346
+ }>
2347
+ UlnReceiveConfig::NewWithDefaults PROCINLINE:<{
2348
+ TRUE
2349
+ 0 PUSHINT
2350
+ TRUE
2351
+ OVER
2352
+ TRUE
2353
+ cl::dict256::New INLINECALLDICT
2354
+ TRUE
2355
+ cl::dict256::New INLINECALLDICT
2356
+ s4 PUSH
2357
+ UlnReceiveConfig::New CALLDICT
2358
+ }>
2359
+ UlnReceiveConfig::utils::getDVNs PROCINLINE:<{
2360
+ OVER
2361
+ 5 PUSHINT
2362
+ cl::get<dict256> INLINECALLDICT
2363
+ s2 PUSH
2364
+ 7 PUSHINT
2365
+ cl::get<dict256> INLINECALLDICT
2366
+ s3 PUSH
2367
+ 8 PUSHINT
2368
+ cl::get<uint8> INLINECALLDICT
2369
+ s4 PUSH
2370
+ 4 PUSHINT
2371
+ cl::get<bool> INLINECALLDICT
2372
+ IF:<{
2373
+ s2 POP
2374
+ s2 PUSH
2375
+ 5 PUSHINT
2376
+ cl::get<dict256> INLINECALLDICT
2377
+ s0 s2 XCHG
2378
+ }>
2379
+ s0 s4 XCHG
2380
+ 6 PUSHINT
2381
+ cl::get<bool> INLINECALLDICT
2382
+ IF:<{
2383
+ DROP
2384
+ s2 POP
2385
+ DUP
2386
+ 7 PUSHINT
2387
+ cl::get<dict256> INLINECALLDICT
2388
+ SWAP
2389
+ 8 PUSHINT
2390
+ cl::get<uint8> INLINECALLDICT
2391
+ s0 s2 XCHG
2392
+ }>ELSE<{
2393
+ s2 POP
2394
+ }>
2395
+ s0 s2 XCHG
2396
+ }>
2397
+ UlnReceiveConfig::utils::getUlnReceiveConfig PROCINLINE:<{
2398
+ 2DUP
2399
+ UlnReceiveConfig::utils::getDVNs INLINECALLDICT
2400
+ s4 PUSH
2401
+ 3 PUSHINT
2402
+ cl::get<uint64> INLINECALLDICT
2403
+ s0 s5 XCHG
2404
+ 2 PUSHINT
2405
+ cl::get<bool> INLINECALLDICT
2406
+ IF:<{
2407
+ s4 POP
2408
+ s0 s2 XCHG
2409
+ 3 PUSHINT
2410
+ cl::get<uint64> INLINECALLDICT
2411
+ s3 s1 s3 XCHG3
2412
+ }>ELSE<{
2413
+ s3 POP
2414
+ }>
2415
+ s0 s0 s3 XCHG3
2416
+ }>
2417
+ UlnReceiveConfig::utils::readConfig PROCINLINE:<{
2418
+ DUP
2419
+ 0 PUSHINT
2420
+ cl::get<bool> INLINECALLDICT
2421
+ OVER
2422
+ 1 PUSHINT
2423
+ cl::get<uint32> INLINECALLDICT
2424
+ s2 PUSH
2425
+ 2 PUSHINT
2426
+ cl::get<bool> INLINECALLDICT
2427
+ s3 PUSH
2428
+ 3 PUSHINT
2429
+ cl::get<uint64> INLINECALLDICT
2430
+ s4 PUSH
2431
+ 4 PUSHINT
2432
+ cl::get<bool> INLINECALLDICT
2433
+ s5 PUSH
2434
+ 5 PUSHINT
2435
+ cl::get<dict256> INLINECALLDICT
2436
+ s6 PUSH
2437
+ 6 PUSHINT
2438
+ cl::get<bool> INLINECALLDICT
2439
+ s7 PUSH
2440
+ 7 PUSHINT
2441
+ cl::get<dict256> INLINECALLDICT
2442
+ s0 s8 XCHG
2443
+ 8 PUSHINT
2444
+ cl::get<uint8> INLINECALLDICT
2445
+ s7 s8 XCHG
2446
+ s6 s7 XCHG
2447
+ s5 s6 XCHG
2448
+ s4 s5 XCHG
2449
+ s3 s4 XCHG
2450
+ s1 s3 s0 XCHG3
2451
+ }>
2452
+ UlnReceiveConfig::sanitize PROC:<{
2453
+ UlnReceiveConfig::utils::readConfig INLINECALLDICT
2454
+ s3 PUSH
2455
+ cl::dict256::size INLINECALLDICT
2456
+ s2 PUSH
2457
+ cl::dict256::size INLINECALLDICT
2458
+ s10 PUSH
2459
+ 0 EQINT
2460
+ s10 PUSH
2461
+ 1 LESSINT
2462
+ AND
2463
+ 778 THROWIF
2464
+ s2 s0 PUSH2
2465
+ GREATER
2466
+ 1465 THROWIF
2467
+ DUP
2468
+ 0 GTINT
2469
+ s3 PUSH
2470
+ 1 LESSINT
2471
+ AND
2472
+ 740 THROWIF
2473
+ s6 PUSH
2474
+ 0 EQINT
2475
+ s5 PUSH
2476
+ 0 EQINT
2477
+ AND
2478
+ s0 s2 XCHG
2479
+ 0 EQINT
2480
+ s1 s2 XCHG
2481
+ AND
2482
+ SWAP
2483
+ 0 EQINT
2484
+ AND
2485
+ 1869 THROWIF
2486
+ UlnReceiveConfig::New CALLDICT
2487
+ }>
2488
+ UlnSendConfig::New PROC:<{
2489
+ 24044593853984358 PUSHINT
2490
+ 5 PUSHINT
2491
+ s0 s9 XCHG2
2492
+ PAIR
2493
+ 5 PUSHINT
2494
+ s0 s8 XCHG2
2495
+ PAIR
2496
+ 0 PUSHINT
2497
+ s0 s7 XCHG2
2498
+ PAIR
2499
+ 8 PUSHINT
2500
+ s0 s6 XCHG2
2501
+ PAIR
2502
+ 0 PUSHINT
2503
+ s0 s5 XCHG2
2504
+ PAIR
2505
+ 9 PUSHINT
2506
+ s0 s4 XCHG2
2507
+ PAIR
2508
+ 0 PUSHINT
2509
+ s0 s3 XCHG2
2510
+ PAIR
2511
+ 9 PUSHINT
2512
+ ROT
2513
+ PAIR
2514
+ 8 TUPLE
2515
+ cl::declare INLINECALLDICT
2516
+ }>
2517
+ UlnSendConfig::NewWithDefaults PROC:<{
2518
+ 32 PUSHPOW2DEC
2519
+ DUP
2520
+ TRUE
2521
+ 0 PUSHINT
2522
+ TRUE
2523
+ <b b> PUSHREF
2524
+ TRUE
2525
+ <b b> PUSHREF
2526
+ UlnSendConfig::New CALLDICT
2527
+ }>
2528
+ _serializeDVNList PROC:<{
2529
+ NEWC
2530
+ SINGLE
2531
+ 0 PUSHINT
2532
+ WHILE:<{
2533
+ s2 PUSH
2534
+ TLEN
2535
+ s1 s(-1) PUXC
2536
+ LESS
2537
+ }>DO<{
2538
+ OVER
2539
+ TLEN
2540
+ DEC
2541
+ s2 s(-1) PUXC
2542
+ INDEXVAR
2543
+ BBITS
2544
+ 8 PUSHPOW2
2545
+ ADD
2546
+ 10 PUSHPOW2DEC
2547
+ GREATER
2548
+ IF:<{
2549
+ SWAP
2550
+ NEWC
2551
+ TPUSH
2552
+ SWAP
2553
+ }>
2554
+ OVER
2555
+ TLEN
2556
+ DEC
2557
+ s2 s(-1) PUXC
2558
+ INDEXVAR
2559
+ s3 s1 PUSH2
2560
+ INDEXVAR
2561
+ SWAP
2562
+ 256 STU
2563
+ s2 PUSH
2564
+ TLEN
2565
+ DEC
2566
+ s2 s3 XCHG
2567
+ SETINDEXVAR
2568
+ SWAP
2569
+ INC
2570
+ }>
2571
+ DROP
2572
+ NIP
2573
+ TPOP
2574
+ WHILE:<{
2575
+ OVER
2576
+ TLEN
2577
+ 0 GTINT
2578
+ }>DO<{
2579
+ SWAP
2580
+ TPOP
2581
+ s0 s2 XCHG
2582
+ ENDC
2583
+ ROT
2584
+ STREF
2585
+ }>
2586
+ NIP
2587
+ ENDC
2588
+ }>
2589
+ ~dvnListNext PROC:<{
2590
+ c2 SAVE
2591
+ SAMEALTSAVE
2592
+ DUP
2593
+ SBITS
2594
+ 0 EQINT
2595
+ IF:<{
2596
+ DUP
2597
+ SREMPTY
2598
+ IFJMP:<{
2599
+ 0 PUSHINT
2600
+ RETALT
2601
+ }>
2602
+ 0 PLDREFIDX
2603
+ CTOS
2604
+ }>
2605
+ 256 LDU SWAP
2606
+ }>
2607
+ lz::UlnSendConfig::GetUlnSendConfig PROC:<{
2608
+ OVER
2609
+ 0 PUSHINT
2610
+ cl::get<uint32> INLINECALLDICT
2611
+ DUP
2612
+ 0 EQINT
2613
+ IF:<{
2614
+ DROP
2615
+ DUP
2616
+ 0 PUSHINT
2617
+ cl::get<uint32> INLINECALLDICT
2618
+ }>
2619
+ s2 PUSH
2620
+ 1 PUSHINT
2621
+ cl::get<uint32> INLINECALLDICT
2622
+ DUP
2623
+ 0 EQINT
2624
+ IF:<{
2625
+ DROP
2626
+ OVER
2627
+ 1 PUSHINT
2628
+ cl::get<uint32> INLINECALLDICT
2629
+ }>
2630
+ s3 PUSH
2631
+ 3 PUSHINT
2632
+ cl::get<address> INLINECALLDICT
2633
+ s4 PUSH
2634
+ 2 PUSHINT
2635
+ cl::get<bool> INLINECALLDICT
2636
+ IF:<{
2637
+ DROP
2638
+ s2 PUSH
2639
+ 3 PUSHINT
2640
+ cl::get<address> INLINECALLDICT
2641
+ }>
2642
+ s4 PUSH
2643
+ 5 PUSHINT
2644
+ cl::get<cellRef> INLINECALLDICT
2645
+ s5 PUSH
2646
+ 4 PUSHINT
2647
+ cl::get<bool> INLINECALLDICT
2648
+ IF:<{
2649
+ DROP
2650
+ s3 PUSH
2651
+ 5 PUSHINT
2652
+ cl::get<cellRef> INLINECALLDICT
2653
+ }>
2654
+ s5 PUSH
2655
+ 7 PUSHINT
2656
+ cl::get<cellRef> INLINECALLDICT
2657
+ s0 s6 XCHG
2658
+ 6 PUSHINT
2659
+ cl::get<bool> INLINECALLDICT
2660
+ IF:<{
2661
+ s5 POP
2662
+ s0 s3 XCHG
2663
+ 7 PUSHINT
2664
+ cl::get<cellRef> INLINECALLDICT
2665
+ s0 s4 XCHG
2666
+ s0 s3 XCHG
2667
+ }>ELSE<{
2668
+ s4 POP
2669
+ }>
2670
+ s0 s3 s4 XCHG3
2671
+ }>
2672
+ _serializedDVNListIsValid PROCINLINE:<{
2673
+ CONT:<{
2674
+ c2 SAVE
2675
+ SAMEALTSAVE
2676
+ CTOS
2677
+ DUP
2678
+ SREFS
2679
+ 1 GTINT
2680
+ IF:<{
2681
+ DROP
2682
+ FALSE
2683
+ }>ELSE<{
2684
+ 0 PUSHINT
2685
+ WHILE:<{
2686
+ OVER
2687
+ SEMPTY
2688
+ 0 EQINT
2689
+ }>DO<{
2690
+ SWAP
2691
+ ~dvnListNext CALLDICT
2692
+ s0 s2 XCHG
2693
+ INC
2694
+ OVER
2695
+ SREFS
2696
+ 1 GTINT
2697
+ s0 s3 XCHG
2698
+ 0 EQINT
2699
+ s1 s3 XCHG
2700
+ OR
2701
+ s2 PUSH
2702
+ 8 PUSHPOW2DEC
2703
+ GREATER
2704
+ OR
2705
+ IFJMP:<{
2706
+ 2DROP
2707
+ FALSE
2708
+ RETALT
2709
+ }>
2710
+ SWAP
2711
+ }>
2712
+ 2DROP
2713
+ TRUE
2714
+ }>
2715
+ }>
2716
+ EXECUTE
2717
+ }>
2718
+ lz::UlnSendConfig::sanitize PROCREF:<{
2719
+ DUP
2720
+ 0 PUSHINT
2721
+ cl::get<uint32> INLINECALLDICT
2722
+ OVER
2723
+ 1 PUSHINT
2724
+ cl::get<uint32> INLINECALLDICT
2725
+ s2 PUSH
2726
+ 2 PUSHINT
2727
+ cl::get<bool> INLINECALLDICT
2728
+ s3 PUSH
2729
+ 3 PUSHINT
2730
+ cl::get<address> INLINECALLDICT
2731
+ s4 PUSH
2732
+ 4 PUSHINT
2733
+ cl::get<bool> INLINECALLDICT
2734
+ s5 PUSH
2735
+ 5 PUSHINT
2736
+ cl::get<cellRef> INLINECALLDICT
2737
+ s6 PUSH
2738
+ 6 PUSHINT
2739
+ cl::get<bool> INLINECALLDICT
2740
+ s0 s7 XCHG
2741
+ 7 PUSHINT
2742
+ cl::get<cellRef> INLINECALLDICT
2743
+ OVER
2744
+ _serializedDVNListIsValid INLINECALLDICT
2745
+ OVER
2746
+ _serializedDVNListIsValid INLINECALLDICT
2747
+ AND
2748
+ 1445 THROWIFNOT
2749
+ s6 s7 XCHG
2750
+ s5 s6 XCHG
2751
+ s4 s5 XCHG
2752
+ s3 s4 XCHG
2753
+ s1 s3 s0 XCHG3
2754
+ UlnSendConfig::New CALLDICT
2755
+ }>
2756
+ Uln::New PROC:<{
2757
+ 7695470 PUSHINT
2758
+ 9 PUSHINT
2759
+ s0 s4 XCHG
2760
+ BaseStorage::New INLINECALLDICT
2761
+ s1 s4 XCHG
2762
+ PAIR
2763
+ 5 PUSHINT
2764
+ s0 s3 XCHG2
2765
+ PAIR
2766
+ 5 PUSHINT
2767
+ ROT
2768
+ PAIR
2769
+ 9 PUSHINT
2770
+ UlnReceiveConfig::NewWithDefaults INLINECALLDICT
2771
+ PAIR
2772
+ 9 PUSHINT
2773
+ UlnSendConfig::NewWithDefaults CALLDICT
2774
+ PAIR
2775
+ 9 PUSHINT
2776
+ <b b> PUSHREF
2777
+ PAIR
2778
+ 9 PUSHINT
2779
+ cl::dict256::New INLINECALLDICT
2780
+ PAIR
2781
+ 4 PUSHINT
2782
+ 0 PUSHINT
2783
+ PAIR
2784
+ 8 TUPLE
2785
+ cl::declare INLINECALLDICT
2786
+ }>
2787
+ lz::Path::New PROCINLINE:<{
2788
+ 1885434984 PUSHINT
2789
+ 5 PUSHINT
2790
+ s0 s5 XCHG2
2791
+ PAIR
2792
+ 8 PUSHINT
2793
+ s0 s4 XCHG2
2794
+ PAIR
2795
+ 5 PUSHINT
2796
+ s0 s3 XCHG2
2797
+ PAIR
2798
+ 8 PUSHINT
2799
+ ROT
2800
+ PAIR
2801
+ 4 TUPLE
2802
+ cl::declare INLINECALLDICT
2803
+ }>
2804
+ lz::Path::endpointPath PROCINLINE:<{
2805
+ 0 PUSHINT
2806
+ TUCK
2807
+ lz::Path::New INLINECALLDICT
2808
+ }>
2809
+ lz::Path::reverse PROCINLINE:<{
2810
+ DUP
2811
+ 0 PUSHINT
2812
+ cl::get<uint32> INLINECALLDICT
2813
+ OVER
2814
+ 1 PUSHINT
2815
+ cl::get<address> INLINECALLDICT
2816
+ s2 PUSH
2817
+ 2 PUSHINT
2818
+ cl::get<uint32> INLINECALLDICT
2819
+ s0 s3 XCHG
2820
+ 3 PUSHINT
2821
+ cl::get<address> INLINECALLDICT
2822
+ -ROT
2823
+ lz::Path::New INLINECALLDICT
2824
+ }>
2825
+ lz::Path::optimizedReverse PROCINLINE:<{
2826
+ CTOS
2827
+ NEWC
2828
+ OVER
2829
+ 350 PUSHINT
2830
+ 0 PUSHINT
2831
+ SCUTFIRST
2832
+ STSLICER
2833
+ OVER
2834
+ 638 PUSHINT
2835
+ 288 PUSHINT
2836
+ SDSUBSTR
2837
+ STSLICER
2838
+ SWAP
2839
+ 350 PUSHINT
2840
+ 288 PUSHINT
2841
+ SDSUBSTR
2842
+ STSLICER
2843
+ ENDC
2844
+ }>
2845
+ lz::Packet::New PROCINLINE:<{
2846
+ 88379210032500 PUSHINT
2847
+ 9 PUSHINT
2848
+ s0 s4 XCHG2
2849
+ PAIR
2850
+ 9 PUSHINT
2851
+ s0 s3 XCHG2
2852
+ PAIR
2853
+ 6 PUSHINT
2854
+ ROT
2855
+ PAIR
2856
+ 8 PUSHINT
2857
+ 0 PUSHINT
2858
+ PAIR
2859
+ 4 TUPLE
2860
+ cl::declare INLINECALLDICT
2861
+ }>
2862
+ lz::Packet::nonceless PROCINLINE:<{
2863
+ 0 PUSHINT
2864
+ lz::Packet::New INLINECALLDICT
2865
+ }>
2866
+ lz::Packet::_assertValidLinkedList PROCINLINE:<{
2867
+ CONT:<{
2868
+ c2 SAVE
2869
+ SAMEALTSAVE
2870
+ SWAP
2871
+ CTOS
2872
+ SWAP
2873
+ REPEAT:<{
2874
+ DUP
2875
+ SBITREFS
2876
+ DUP
2877
+ 0 EQINT
2878
+ IFJMP:<{
2879
+ DROP
2880
+ NIP
2881
+ 3 MODPOW2#
2882
+ 0 NEQINT
2883
+ 1402 THROWIF
2884
+ RETALT
2885
+ }>
2886
+ 1 NEQINT
2887
+ SWAP
2888
+ 1016 PUSHINT
2889
+ NEQ
2890
+ OR
2891
+ 1402 THROWIF
2892
+ 0 PLDREFIDX
2893
+ CTOS
2894
+ }>
2895
+ DROP
2896
+ 1402 THROW
2897
+ }>
2898
+ EXECUTE
2899
+ }>
2900
+ lz::Packet::assertValidSendMessage PROCINLINE:<{
2901
+ 1 PUSHINT
2902
+ cl::get<cellRef> INLINECALLDICT
2903
+ 8 PUSHPOW2DEC
2904
+ lz::Packet::_assertValidLinkedList INLINECALLDICT
2905
+ }>
2906
+ lz::Packet::assertValidReceiveMessage PROCINLINE:<{
2907
+ 1 PUSHINT
2908
+ cl::get<cellRef> INLINECALLDICT
2909
+ 32 PUSHINT
2910
+ lz::Packet::_assertValidLinkedList INLINECALLDICT
2911
+ }>
2912
+ lz::Packet::calculateGuid PROCINLINE:<{
2913
+ OVER
2914
+ 3 PUSHINT
2915
+ cl::get<address> INLINECALLDICT
2916
+ s2 PUSH
2917
+ 2 PUSHINT
2918
+ cl::get<uint32> INLINECALLDICT
2919
+ s3 PUSH
2920
+ 1 PUSHINT
2921
+ cl::get<address> INLINECALLDICT
2922
+ s0 s4 XCHG
2923
+ 0 PUSHINT
2924
+ cl::get<uint32> INLINECALLDICT
2925
+ s0 s3 XCHG
2926
+ NEWC
2927
+ 64 STU
2928
+ s1 s3 XCHG
2929
+ 32 STU
2930
+ s1 s3 XCHG
2931
+ 256 STU
2932
+ 32 STU
2933
+ 256 STU
2934
+ 1 PUSHINT HASHEXT_KECCAK256
2935
+ }>
2936
+ lz::Packet::replaceTwoFieldsAtOffsets PROCINLINE:<{
2937
+ s4 PUSH
2938
+ 127 PUSHINT
2939
+ MOD
2940
+ 3 LSHIFT#
2941
+ s0 s5 XCHG
2942
+ 127 PUSHINT
2943
+ DIV
2944
+ s2 PUSH
2945
+ 127 PUSHINT
2946
+ MOD
2947
+ 3 LSHIFT#
2948
+ s0 s3 XCHG
2949
+ 127 PUSHINT
2950
+ DIV
2951
+ s0 s8 XCHG
2952
+ CTOS
2953
+ s5 PUSH
2954
+ 3 LSHIFT#
2955
+ s3 PUSH
2956
+ 3 LSHIFT#
2957
+ s8 s1 PUSH2
2958
+ ADD
2959
+ s6 s1 PUSH2
2960
+ ADD
2961
+ s9 s6 XCHG2
2962
+ MAX
2963
+ 127 GTINT
2964
+ s8 s5 PUSH2
2965
+ MAX
2966
+ 1016 PUSHINT
2967
+ GREATER
2968
+ OR
2969
+ 637 THROWIF
2970
+ s10 PUSH
2971
+ 0 EQINT
2972
+ IF:<{
2973
+ s3 POP
2974
+ s9 POP
2975
+ DUP
2976
+ NEWC
2977
+ s0 s8 XCHG
2978
+ 0 PUSHINT
2979
+ SCUTFIRST
2980
+ s1 s7 XCHG
2981
+ STSLICER
2982
+ s7 s0 s8 XCHG3
2983
+ STUX
2984
+ 0 PUSHINT
2985
+ s2 s4 XCPU
2986
+ SUB
2987
+ s2 s5 PUSH2
2988
+ s0 s4 XCHG
2989
+ s3 s6 XCHG
2990
+ -ROT
2991
+ SUBSLICE
2992
+ s1 s2 XCHG
2993
+ STSLICER
2994
+ s1 s0 s4 XCHG3
2995
+ STUX
2996
+ s2 PUSH
2997
+ SBITS
2998
+ ROT
2999
+ SUB
3000
+ s2 PUSH
3001
+ SREFS
3002
+ s2 s3 XCHG
3003
+ SCUTLAST
3004
+ STSLICER
3005
+ ENDC
3006
+ }>ELSE<{
3007
+ s4 POP
3008
+ s6 POP
3009
+ NIL
3010
+ 0 PUSHINT
3011
+ UNTIL:<{
3012
+ s0 s3 PUSH2
3013
+ EQUAL
3014
+ s4 s11 PUSH2
3015
+ EQUAL
3016
+ AND
3017
+ IF:<{
3018
+ s2 s8 PUSH2
3019
+ 0 PUSHINT
3020
+ SCUTFIRST
3021
+ s9 s8 PUSH2
3022
+ ADD
3023
+ 0 PUSHINT
3024
+ s8 s11 PUSH2
3025
+ SUB
3026
+ s11 PUSH
3027
+ SUB
3028
+ s1 s6 PUSH2
3029
+ 4 -ROLL
3030
+ SUBSLICE
3031
+ s4 PUSH
3032
+ SBITS
3033
+ s7 s8 PUSH2
3034
+ ADD
3035
+ SUB
3036
+ s5 PUSH
3037
+ SREFS
3038
+ s6 PUSH
3039
+ -ROT
3040
+ SCUTLAST
3041
+ NEWC
3042
+ s0 s3 XCHG2
3043
+ STSLICER
3044
+ s12 s10 s(-1) PU2XC
3045
+ STUX
3046
+ SWAP
3047
+ STSLICER
3048
+ s8 s6 s(-1) PU2XC
3049
+ STUX
3050
+ SWAP
3051
+ STSLICER
3052
+ s1 s2 XCHG
3053
+ TPUSH
3054
+ }>ELSE<{
3055
+ s0 s3 PUSH2
3056
+ EQUAL
3057
+ IF:<{
3058
+ NEWC
3059
+ s3 s9 PUSH2
3060
+ 0 PUSHINT
3061
+ SCUTFIRST
3062
+ STSLICER
3063
+ s10 s8 s(-1) PU2XC
3064
+ STUX
3065
+ s3 PUSH
3066
+ SBITS
3067
+ s9 s10 PUSH2
3068
+ ADD
3069
+ SUB
3070
+ s4 PUSH
3071
+ SREFS
3072
+ s5 PUSH
3073
+ -ROT
3074
+ SCUTLAST
3075
+ STSLICER
3076
+ s1 s2 XCHG
3077
+ TPUSH
3078
+ }>ELSE<{
3079
+ s0 s10 PUSH2
3080
+ EQUAL
3081
+ IF:<{
3082
+ NEWC
3083
+ s3 s6 PUSH2
3084
+ 0 PUSHINT
3085
+ SCUTFIRST
3086
+ STSLICER
3087
+ s7 s5 s(-1) PU2XC
3088
+ STUX
3089
+ s3 PUSH
3090
+ SBITS
3091
+ s6 s7 PUSH2
3092
+ ADD
3093
+ SUB
3094
+ s4 PUSH
3095
+ SREFS
3096
+ s5 PUSH
3097
+ -ROT
3098
+ SCUTLAST
3099
+ STSLICER
3100
+ s1 s2 XCHG
3101
+ TPUSH
3102
+ }>ELSE<{
3103
+ NEWC
3104
+ s3 PUSH
3105
+ STSLICER
3106
+ s1 s2 XCHG
3107
+ TPUSH
3108
+ }>
3109
+ }>
3110
+ }>
3111
+ s2 PUSH
3112
+ SREFS
3113
+ 0 GTINT
3114
+ IF:<{
3115
+ s0 s2 XCHG
3116
+ 0 PLDREFIDX
3117
+ CTOS
3118
+ s0 s2 XCHG
3119
+ }>
3120
+ SWAP
3121
+ INC
3122
+ s0 s10 PUSH2
3123
+ GEQ
3124
+ }>
3125
+ s1 s9 XCHG
3126
+ 9 BLKDROP
3127
+ s0 s1 PUSH2
3128
+ INDEXVAR
3129
+ ENDC
3130
+ WHILE:<{
3131
+ s2 PUSH
3132
+ 0 GTINT
3133
+ }>DO<{
3134
+ s0 s2 XCHG
3135
+ DEC
3136
+ 2DUP
3137
+ INDEXVAR
3138
+ s1 s3 XCHG
3139
+ STREF
3140
+ ENDC
3141
+ }>
3142
+ 2 1 BLKDROP2
3143
+ }>
3144
+ }>
3145
+ BytesEncoder::New PROCINLINE:<{
3146
+ NEWC
3147
+ SINGLE
3148
+ }>
3149
+ BytesEncoder::feed PROCINLINE:<{
3150
+ WHILE:<{
3151
+ DUP
3152
+ ISNULL
3153
+ NOT
3154
+ }>DO<{
3155
+ DUP
3156
+ SREFS
3157
+ 1 GTINT
3158
+ 1999 THROWIF
3159
+ OVER
3160
+ TLEN
3161
+ DEC
3162
+ s2 s0 PUSH2
3163
+ INDEXVAR
3164
+ DUP
3165
+ BBITS
3166
+ 3 RSHIFT#
3167
+ s3 PUSH
3168
+ SBITS
3169
+ 3 RSHIFT#
3170
+ 2DUP
3171
+ ADD
3172
+ 127 EQINT
3173
+ s5 PUSH
3174
+ SBITS
3175
+ 3 MODPOW2#
3176
+ 0 NEQINT
3177
+ 819 THROWIF
3178
+ s2 s1 PUSH2
3179
+ ADD
3180
+ 1 2 BLKDROP2
3181
+ 127 GTINT
3182
+ IF:<{
3183
+ 127 PUSHINT
3184
+ ROT
3185
+ SUB
3186
+ DUP
3187
+ 3 LSHIFT#
3188
+ s5 s(-1) PUXC
3189
+ PLDSLICEX
3190
+ s1 s3 XCHG
3191
+ STSLICER
3192
+ s5 s0 s3 XC2PU
3193
+ SETINDEXVAR
3194
+ SWAP
3195
+ 3 LSHIFT#
3196
+ s1 s3 XCHG
3197
+ SDSKIPFIRST
3198
+ SWAP
3199
+ INC
3200
+ NEWC
3201
+ s3 s3 XCPU
3202
+ TPUSH
3203
+ s1 s3 s4 XCHG3
3204
+ }>ELSE<{
3205
+ NIP
3206
+ }>
3207
+ s3 PUSH
3208
+ 0 PUSHINT
3209
+ SDSKIPFIRST
3210
+ s1 s2 XCHG
3211
+ STSLICER
3212
+ s4 s0 s4 XCHG3
3213
+ SETINDEXVAR
3214
+ OVER
3215
+ SREMPTY
3216
+ IF:<{
3217
+ 2 1 BLKDROP2
3218
+ PUSHNULL
3219
+ }>ELSE<{
3220
+ s0 s2 XCHG
3221
+ IF:<{
3222
+ SWAP
3223
+ NEWC
3224
+ TPUSH
3225
+ SWAP
3226
+ }>
3227
+ 0 PLDREFIDX
3228
+ CTOS
3229
+ }>
3230
+ }>
3231
+ DROP
3232
+ }>
3233
+ BytesEncoder::serialize PROCINLINE:<{
3234
+ DUP
3235
+ TLEN
3236
+ DEC
3237
+ DUP
3238
+ 0 EQINT
3239
+ IF:<{
3240
+ INDEXVAR
3241
+ ENDC
3242
+ }>ELSE<{
3243
+ DUP
3244
+ 1 EQINT
3245
+ IFJMP:<{
3246
+ DROP
3247
+ DUP
3248
+ 1 INDEX
3249
+ ENDC
3250
+ SWAP
3251
+ 0 INDEX
3252
+ STREF
3253
+ ENDC
3254
+ }>
3255
+ 2DUP
3256
+ INDEXVAR
3257
+ OVER
3258
+ DEC
3259
+ s3 s(-1) PUXC
3260
+ INDEXVAR
3261
+ WHILE:<{
3262
+ s2 PUSH
3263
+ 1 GTINT
3264
+ }>DO<{
3265
+ s0 s2 XCHG
3266
+ DEC
3267
+ SWAP
3268
+ ENDC
3269
+ ROT
3270
+ STREF
3271
+ s2 s1 PUSH2
3272
+ INDEXVAR
3273
+ }>
3274
+ s3 POP
3275
+ NIP
3276
+ ENDC
3277
+ SWAP
3278
+ STREF
3279
+ ENDC
3280
+ }>
3281
+ }>
3282
+ BytesEncoder::feed<uint8> PROCINLINE:<{
3283
+ NEWC
3284
+ 8 STU
3285
+ ENDC CTOS
3286
+ BytesEncoder::feed INLINECALLDICT
3287
+ }>
3288
+ BytesEncoder::feed<uint16> PROCINLINE:<{
3289
+ NEWC
3290
+ 16 STU
3291
+ ENDC CTOS
3292
+ BytesEncoder::feed INLINECALLDICT
3293
+ }>
3294
+ BytesEncoder::feed<uint32> PROCINLINE:<{
3295
+ NEWC
3296
+ 32 STU
3297
+ ENDC CTOS
3298
+ BytesEncoder::feed INLINECALLDICT
3299
+ }>
3300
+ BytesEncoder::feed<uint64> PROCINLINE:<{
3301
+ NEWC
3302
+ 64 STU
3303
+ ENDC CTOS
3304
+ BytesEncoder::feed INLINECALLDICT
3305
+ }>
3306
+ BytesEncoder::feed<coins> PROCINLINE:<{
3307
+ NEWC
3308
+ 128 STU
3309
+ ENDC CTOS
3310
+ BytesEncoder::feed INLINECALLDICT
3311
+ }>
3312
+ BytesEncoder::feed<uint256> PROCINLINE:<{
3313
+ NEWC
3314
+ 256 STU
3315
+ ENDC CTOS
3316
+ BytesEncoder::feed INLINECALLDICT
3317
+ }>
3318
+ BytesEncoder::feed<cellRef> PROCINLINE:<{
3319
+ CTOS
3320
+ BytesEncoder::feed INLINECALLDICT
3321
+ }>
3322
+ BytesEncoder::build<PacketV1> PROCINLINE:<{
3323
+ DUP
3324
+ 0 PUSHINT
3325
+ cl::get<objRef> INLINECALLDICT
3326
+ OVER
3327
+ 3 PUSHINT
3328
+ cl::get<uint256> INLINECALLDICT
3329
+ OVER
3330
+ 3 PUSHINT
3331
+ cl::get<uint256> INLINECALLDICT
3332
+ s2 PUSH
3333
+ 2 PUSHINT
3334
+ cl::get<uint32> INLINECALLDICT
3335
+ s3 PUSH
3336
+ 1 PUSHINT
3337
+ cl::get<uint256> INLINECALLDICT
3338
+ s0 s4 XCHG
3339
+ 0 PUSHINT
3340
+ cl::get<uint32> INLINECALLDICT
3341
+ s5 PUSH
3342
+ 2 PUSHINT
3343
+ cl::get<uint64> INLINECALLDICT
3344
+ 1 PUSHINT
3345
+ NEWC
3346
+ 8 STU
3347
+ 64 STU
3348
+ 32 STU
3349
+ s1 s4 XCHG
3350
+ 256 STU
3351
+ s1 s3 XCHG
3352
+ 32 STU
3353
+ s1 s2 XCHG
3354
+ 256 STU
3355
+ 256 STU
3356
+ SINGLE
3357
+ SWAP
3358
+ 1 PUSHINT
3359
+ cl::get<cellRef> INLINECALLDICT
3360
+ BytesEncoder::feed<cellRef> INLINECALLDICT
3361
+ }>
3362
+ UlnWorkerInfo::New PROCINLINE:<{
3363
+ 403401350353352739677807 PUSHINT
3364
+ 8 PUSHINT
3365
+ s0 s8 XCHG2
3366
+ PAIR
3367
+ 9 PUSHINT
3368
+ s0 s7 XCHG2
3369
+ PAIR
3370
+ 9 PUSHINT
3371
+ s0 s6 XCHG2
3372
+ PAIR
3373
+ 8 PUSHINT
3374
+ s0 s5 XCHG2
3375
+ PAIR
3376
+ 5 PUSHINT
3377
+ s0 s4 XCHG2
3378
+ PAIR
3379
+ 7 PUSHINT
3380
+ s0 s3 XCHG2
3381
+ PAIR
3382
+ 6 PUSHINT
3383
+ 0 PUSHINT
3384
+ PAIR
3385
+ 0 PUSHINT
3386
+ s0 s3 XCHG2
3387
+ PAIR
3388
+ s1 s2 XCHG
3389
+ 8 TUPLE
3390
+ cl::declare INLINECALLDICT
3391
+ }>
3392
+ md::MdAddress::New PROCINLINE:<{
3393
+ 85092989166706 PUSHINT
3394
+ 9 PUSHINT
3395
+ s0 s3 XCHG2
3396
+ PAIR
3397
+ 8 PUSHINT
3398
+ ROT
3399
+ PAIR
3400
+ PAIR
3401
+ cl::declare INLINECALLDICT
3402
+ }>
3403
+ md::MdObj::New PROCINLINE:<{
3404
+ 332395405930 PUSHINT
3405
+ 9 PUSHINT
3406
+ s0 s3 XCHG2
3407
+ PAIR
3408
+ 9 PUSHINT
3409
+ ROT
3410
+ PAIR
3411
+ PAIR
3412
+ cl::declare INLINECALLDICT
3413
+ }>
3414
+ md::UlnSend::New PROCINLINE:<{
3415
+ 24044594121764452 PUSHINT
3416
+ 9 PUSHINT
3417
+ s0 s5 XCHG2
3418
+ PAIR
3419
+ 9 PUSHINT
3420
+ s0 s4 XCHG2
3421
+ PAIR
3422
+ 9 PUSHINT
3423
+ s0 s3 XCHG2
3424
+ PAIR
3425
+ 8 PUSHINT
3426
+ ROT
3427
+ PAIR
3428
+ 4 TUPLE
3429
+ cl::declare INLINECALLDICT
3430
+ }>
3431
+ md::UlnWorkerEvents::New PROCINLINE:<{
3432
+ 403401350353352673095284 PUSHINT
3433
+ 8 PUSHINT
3434
+ s0 s8 XCHG2
3435
+ PAIR
3436
+ 9 PUSHINT
3437
+ s0 s7 XCHG2
3438
+ PAIR
3439
+ 8 PUSHINT
3440
+ s0 s6 XCHG2
3441
+ PAIR
3442
+ 9 PUSHINT
3443
+ s0 s5 XCHG2
3444
+ PAIR
3445
+ 8 PUSHINT
3446
+ s0 s4 XCHG2
3447
+ PAIR
3448
+ 9 PUSHINT
3449
+ s0 s3 XCHG2
3450
+ PAIR
3451
+ 9 PUSHINT
3452
+ ROT
3453
+ PAIR
3454
+ 7 TUPLE
3455
+ cl::declare INLINECALLDICT
3456
+ }>
3457
+ UlnWorkerEventsBuilder::create PROC:<{
3458
+ NIL
3459
+ }>
3460
+ UlnWorkerEventsBuilder::push PROC:<{
3461
+ PAIR
3462
+ TPUSH
3463
+ }>
3464
+ UlnWorkerEvents::FromBuilder PROCINLINE:<{
3465
+ DUP
3466
+ TLEN
3467
+ 1 EQINT
3468
+ IF:<{
3469
+ DUP
3470
+ 0 INDEX
3471
+ 0 INDEX
3472
+ SWAP
3473
+ 0 INDEX
3474
+ 1 INDEX
3475
+ 0 PUSHINT
3476
+ cl::nullObject INLINECALLDICT
3477
+ OVER
3478
+ cl::nullObject INLINECALLDICT
3479
+ cl::nullObject INLINECALLDICT
3480
+ md::UlnWorkerEvents::New INLINECALLDICT
3481
+ }>ELSE<{
3482
+ DUP
3483
+ TLEN
3484
+ 2 EQINT
3485
+ IFJMP:<{
3486
+ DUP
3487
+ 0 INDEX
3488
+ 0 INDEX
3489
+ OVER
3490
+ 0 INDEX
3491
+ 1 INDEX
3492
+ s2 PUSH
3493
+ 1 INDEX
3494
+ 0 INDEX
3495
+ s0 s3 XCHG
3496
+ 1 INDEX
3497
+ 1 INDEX
3498
+ 0 PUSHINT
3499
+ cl::nullObject INLINECALLDICT
3500
+ cl::nullObject INLINECALLDICT
3501
+ s5 s6 XCHG
3502
+ s4 s5 XCHG
3503
+ md::UlnWorkerEvents::New INLINECALLDICT
3504
+ }>
3505
+ DUP
3506
+ TLEN
3507
+ 3 EQINT
3508
+ IFJMP:<{
3509
+ DUP
3510
+ 0 INDEX
3511
+ 0 INDEX
3512
+ OVER
3513
+ 0 INDEX
3514
+ 1 INDEX
3515
+ s2 PUSH
3516
+ 1 INDEX
3517
+ 0 INDEX
3518
+ s3 PUSH
3519
+ 1 INDEX
3520
+ 1 INDEX
3521
+ s4 PUSH
3522
+ 2 INDEX
3523
+ 0 INDEX
3524
+ s0 s5 XCHG
3525
+ 2 INDEX
3526
+ 1 INDEX
3527
+ cl::nullObject INLINECALLDICT
3528
+ s5 s6 XCHG
3529
+ s4 s5 XCHG
3530
+ s3 s4 XCHG
3531
+ s2 s3 XCHG
3532
+ md::UlnWorkerEvents::New INLINECALLDICT
3533
+ }>
3534
+ DUP
3535
+ TLEN
3536
+ 5 EQINT
3537
+ IFJMP:<{
3538
+ DUP
3539
+ 0 INDEX
3540
+ 0 INDEX
3541
+ OVER
3542
+ 0 INDEX
3543
+ 1 INDEX
3544
+ s2 PUSH
3545
+ 1 INDEX
3546
+ 0 INDEX
3547
+ s3 PUSH
3548
+ 1 INDEX
3549
+ 1 INDEX
3550
+ s4 PUSH
3551
+ 2 INDEX
3552
+ 0 INDEX
3553
+ s5 PUSH
3554
+ 2 INDEX
3555
+ 1 INDEX
3556
+ s6 PUSH
3557
+ 3 INDEX
3558
+ 0 INDEX
3559
+ s7 PUSH
3560
+ 3 INDEX
3561
+ 1 INDEX
3562
+ s8 PUSH
3563
+ 4 INDEX
3564
+ 0 INDEX
3565
+ s0 s9 XCHG
3566
+ 4 INDEX
3567
+ 1 INDEX
3568
+ 0 PUSHINT
3569
+ cl::nullObject INLINECALLDICT
3570
+ cl::nullObject INLINECALLDICT
3571
+ s5 s6 XCHG
3572
+ s4 s5 XCHG
3573
+ s4 s12 XCHG
3574
+ md::UlnWorkerEvents::New INLINECALLDICT
3575
+ s5 s6 XCHG
3576
+ s4 s5 XCHG
3577
+ s3 s4 XCHG
3578
+ s1 s3 s0 XCHG3
3579
+ md::UlnWorkerEvents::New INLINECALLDICT
3580
+ }>
3581
+ DROP
3582
+ x{546869732073686f756c64206e657665722068617070656e} PUSHSLICE
3583
+ STRDUMP
3584
+ DROP
3585
+ 1234 THROW
3586
+ PUSHNULL
3587
+ }>
3588
+ }>
3589
+ POOO::set PROCINLINE:<{
3590
+ DUP
3591
+ 0 LESSINT
3592
+ 1587 THROWIF
3593
+ OVER
3594
+ 1 PUSHINT
3595
+ cl::get<cellRef> INLINECALLDICT
3596
+ CTOS
3597
+ s2 PUSH
3598
+ 0 PUSHINT
3599
+ cl::get<uint64> INLINECALLDICT
3600
+ s2 s0 PUSH2
3601
+ LESS
3602
+ IF:<{
3603
+ 3 BLKDROP
3604
+ }>ELSE<{
3605
+ s2 s2 XCPU
3606
+ SUB
3607
+ 1 PUSHINT
3608
+ NEWC
3609
+ 2OVER
3610
+ 0 PUSHINT
3611
+ SCUTFIRST
3612
+ STSLICER
3613
+ 1 STU
3614
+ 10 PUSHPOW2DEC
3615
+ ROT
3616
+ SUB
3617
+ DEC
3618
+ s1 s2 XCHG
3619
+ 0 PUSHINT
3620
+ SCUTLAST
3621
+ STSLICER
3622
+ ENDC CTOS
3623
+ LDONES
3624
+ 1 PUSHINT
3625
+ NEWC
3626
+ ROT
3627
+ STSLICER
3628
+ s2 PUSH
3629
+ STZEROES
3630
+ ENDC
3631
+ s2 s4 XCHG
3632
+ cl::set INLINECALLDICT
3633
+ SWAP
3634
+ 0 PUSHINT
3635
+ s0 s3 XCHG
3636
+ ADD
3637
+ s1 s2 XCHG
3638
+ cl::set INLINECALLDICT
3639
+ }>
3640
+ }>
3641
+ POOO::New PROCINLINE:<{
3642
+ 1347374927 PUSHINT
3643
+ 6 PUSHINT
3644
+ 1 PUSHINT
3645
+ PAIR
3646
+ 9 PUSHINT
3647
+ NEWC
3648
+ 10 PUSHPOW2DEC
3649
+ STZEROES
3650
+ ENDC
3651
+ PAIR
3652
+ PAIR
3653
+ cl::declare INLINECALLDICT
3654
+ }>
3655
+ POOO::NewWithBitsSets PROC:<{
3656
+ 1347374927 PUSHINT
3657
+ 6 PUSHINT
3658
+ 1 PUSHINT
3659
+ PAIR
3660
+ 9 PUSHINT
3661
+ NEWC
3662
+ 1 PUSHINT
3663
+ STZEROES
3664
+ s4 s5 PUXC
3665
+ SUB
3666
+ s1 s5 XCHG
3667
+ STONES
3668
+ 10 PUSHPOW2DEC
3669
+ s0 s4 XCHG2
3670
+ SUB
3671
+ s1 s3 XCHG
3672
+ STZEROES
3673
+ ENDC
3674
+ s1 s3 XCHG
3675
+ PAIR
3676
+ PAIR
3677
+ cl::declare INLINECALLDICT
3678
+ }>
3679
+ POOO::isBitSet PROCINLINE:<{
3680
+ OVER
3681
+ 0 PUSHINT
3682
+ cl::get<uint64> INLINECALLDICT
3683
+ SUB
3684
+ SWAP
3685
+ 1 PUSHINT
3686
+ cl::get<cellRef> INLINECALLDICT
3687
+ CTOS
3688
+ SWAP
3689
+ 1 PUSHINT
3690
+ SDSUBSTR
3691
+ 1 PLDU
3692
+ 1 EQINT
3693
+ }>
3694
+ POOO::maxSettableBit PROCINLINE:<{
3695
+ 0 PUSHINT
3696
+ cl::get<uint64> INLINECALLDICT
3697
+ 1022 PUSHINT
3698
+ ADD
3699
+ }>
3700
+ lz::Attestation::New PROCINLINE:<{
3701
+ 71968424817524 PUSHINT
3702
+ 8 PUSHINT
3703
+ s0 s3 XCHG2
3704
+ PAIR
3705
+ 6 PUSHINT
3706
+ ROT
3707
+ PAIR
3708
+ PAIR
3709
+ cl::declare INLINECALLDICT
3710
+ }>
3711
+ lz::Attestation::isValid PROCINLINE:<{
3712
+ s2 PUSH
3713
+ 0 PUSHINT
3714
+ cl::get<uint256> INLINECALLDICT
3715
+ ROT
3716
+ EQUAL
3717
+ s0 s2 XCHG
3718
+ 1 PUSHINT
3719
+ cl::get<uint64> INLINECALLDICT
3720
+ SWAP
3721
+ LEQ
3722
+ AND
3723
+ }>
3724
+ UlnConnection::New PROC:<{
3725
+ 469569827805346075864942 PUSHINT
3726
+ 9 PUSHINT
3727
+ s0 s4 XCHG
3728
+ BaseStorage::New INLINECALLDICT
3729
+ s1 s4 XCHG
3730
+ PAIR
3731
+ 9 PUSHINT
3732
+ s0 s3 XCHG2
3733
+ PAIR
3734
+ 8 PUSHINT
3735
+ 0 PUSHINT
3736
+ PAIR
3737
+ 8 PUSHINT
3738
+ 0 PUSHINT
3739
+ PAIR
3740
+ 8 PUSHINT
3741
+ s0 s4 XCHG2
3742
+ PAIR
3743
+ 9 PUSHINT
3744
+ UlnSendConfig::NewWithDefaults CALLDICT
3745
+ PAIR
3746
+ 9 PUSHINT
3747
+ UlnReceiveConfig::NewWithDefaults INLINECALLDICT
3748
+ PAIR
3749
+ 9 PUSHINT
3750
+ cl::dict256::New INLINECALLDICT
3751
+ PAIR
3752
+ 9 PUSHINT
3753
+ POOO::New INLINECALLDICT
3754
+ PAIR
3755
+ 0 PUSHINT
3756
+ FALSE
3757
+ PAIR
3758
+ s7 s8 XCHG
3759
+ s6 s7 XCHG
3760
+ 10 TUPLE
3761
+ cl::declare INLINECALLDICT
3762
+ }>
3763
+ md::SetAddress::New PROCINLINE:<{
3764
+ 544943643768618328879987 PUSHINT
3765
+ 8 PUSHINT
3766
+ ROT
3767
+ PAIR
3768
+ SINGLE
3769
+ cl::declare INLINECALLDICT
3770
+ }>
3771
+ md::MsglibSendCallback::New PROCINLINE:<{
3772
+ 7811883139124708194 PUSHINT
3773
+ 7 PUSHINT
3774
+ s0 s12 XCHG2
3775
+ PAIR
3776
+ 7 PUSHINT
3777
+ s0 s11 XCHG2
3778
+ PAIR
3779
+ 9 PUSHINT
3780
+ s0 s10 XCHG2
3781
+ PAIR
3782
+ 9 PUSHINT
3783
+ s0 s9 XCHG2
3784
+ PAIR
3785
+ 9 PUSHINT
3786
+ s0 s8 XCHG2
3787
+ PAIR
3788
+ 4 PUSHINT
3789
+ s0 s7 XCHG2
3790
+ PAIR
3791
+ 3 PUSHINT
3792
+ s0 s6 XCHG2
3793
+ PAIR
3794
+ 4 PUSHINT
3795
+ s0 s5 XCHG2
3796
+ PAIR
3797
+ 3 PUSHINT
3798
+ s0 s4 XCHG2
3799
+ PAIR
3800
+ 9 PUSHINT
3801
+ s0 s3 XCHG2
3802
+ PAIR
3803
+ 3 PUSHINT
3804
+ ROT
3805
+ PAIR
3806
+ 11 TUPLE
3807
+ cl::declare INLINECALLDICT
3808
+ }>
3809
+ serializePayees PROCINLINE:<{
3810
+ DUP
3811
+ TLEN
3812
+ DUP
3813
+ 0 EQINT
3814
+ IF:<{
3815
+ 2DROP
3816
+ <b b> PUSHREF
3817
+ }>ELSE<{
3818
+ NEWC
3819
+ 1 PUSHINT
3820
+ WHILE:<{
3821
+ s0 s2 PUSH2
3822
+ LEQ
3823
+ }>DO<{
3824
+ s2 s0 PUSH2
3825
+ SUB
3826
+ s4 s(-1) PUXC
3827
+ INDEXVAR
3828
+ OVER
3829
+ 3 PUSHINT
3830
+ MOD
3831
+ 0 EQINT
3832
+ IF:<{
3833
+ DUP
3834
+ 1 INDEX
3835
+ SWAP
3836
+ 0 INDEX
3837
+ s0 s3 XCHG
3838
+ ENDC
3839
+ NEWC
3840
+ STREF
3841
+ s1 s3 XCHG
3842
+ 256 STU
3843
+ s1 s2 XCHG
3844
+ 64 STU
3845
+ }>ELSE<{
3846
+ DUP
3847
+ 1 INDEX
3848
+ SWAP
3849
+ 0 INDEX
3850
+ s0 s3 XCHG2
3851
+ 256 STU
3852
+ s1 s2 XCHG
3853
+ 64 STU
3854
+ }>
3855
+ SWAP
3856
+ INC
3857
+ }>
3858
+ s1 s3 XCHG
3859
+ 3 BLKDROP
3860
+ ENDC
3861
+ }>
3862
+ }>
3863
+ deserializePayees PROCINLINE:<{
3864
+ CTOS
3865
+ DUP
3866
+ SEMPTY
3867
+ IF:<{
3868
+ DROP
3869
+ NIL
3870
+ }>ELSE<{
3871
+ NIL
3872
+ WHILE:<{
3873
+ OVER
3874
+ SEMPTY
3875
+ NOT
3876
+ }>DO<{
3877
+ SWAP
3878
+ 256 LDU SWAP
3879
+ SWAP
3880
+ 64 LDU SWAP
3881
+ s1 s2 XCHG
3882
+ PAIR
3883
+ s1 s2 XCHG
3884
+ TPUSH
3885
+ OVER
3886
+ SBITS
3887
+ 320 PUSHINT
3888
+ GEQ
3889
+ IF:<{
3890
+ SWAP
3891
+ 256 LDU SWAP
3892
+ SWAP
3893
+ 64 LDU SWAP
3894
+ s1 s2 XCHG
3895
+ PAIR
3896
+ s1 s2 XCHG
3897
+ TPUSH
3898
+ }>
3899
+ OVER
3900
+ SBITS
3901
+ 320 PUSHINT
3902
+ GEQ
3903
+ IF:<{
3904
+ SWAP
3905
+ 256 LDU SWAP
3906
+ SWAP
3907
+ 64 LDU SWAP
3908
+ s1 s2 XCHG
3909
+ PAIR
3910
+ s1 s2 XCHG
3911
+ TPUSH
3912
+ }>
3913
+ OVER
3914
+ SREFS
3915
+ 0 GTINT
3916
+ IF:<{
3917
+ SWAP
3918
+ 0 PLDREFIDX
3919
+ CTOS
3920
+ SWAP
3921
+ }>
3922
+ }>
3923
+ NIP
3924
+ }>
3925
+ }>
3926
+ DeterministicInsertionCircularQueue::_buildLevel PROCINLINE:<{
3927
+ OVER
3928
+ 0 EQINT
3929
+ IF:<{
3930
+ NIP
3931
+ DUP
3932
+ NEWC
3933
+ STREF
3934
+ s1 s(-1) PUXC
3935
+ STREF
3936
+ s1 s(-1) PUXC
3937
+ STREF
3938
+ STREF
3939
+ ENDC
3940
+ }>ELSE<{
3941
+ SWAP
3942
+ DEC
3943
+ s0 s1 PUSH2
3944
+ DeterministicInsertionCircularQueue::_buildLevel INLINECALLDICT
3945
+ s1 s2 PUSH2
3946
+ DeterministicInsertionCircularQueue::_buildLevel INLINECALLDICT
3947
+ s2 s3 PUSH2
3948
+ DeterministicInsertionCircularQueue::_buildLevel INLINECALLDICT
3949
+ s3 s4 XCHG2
3950
+ DeterministicInsertionCircularQueue::_buildLevel INLINECALLDICT
3951
+ NEWC
3952
+ STREF
3953
+ s1 s3 XCHG
3954
+ STREF
3955
+ STREF
3956
+ STREF
3957
+ ENDC
3958
+ }>
3959
+ }>
3960
+ DeterministicInsertionCircularQueue::get PROCINLINE:<{
3961
+ 10 PUSHPOW2DEC
3962
+ MOD
3963
+ SWAP
3964
+ CTOS
3965
+ OVER
3966
+ 8 RSHIFT#
3967
+ PLDREFVAR
3968
+ CTOS
3969
+ OVER
3970
+ 8 MODPOW2#
3971
+ 6 RSHIFT#
3972
+ PLDREFVAR
3973
+ CTOS
3974
+ OVER
3975
+ 6 MODPOW2#
3976
+ 4 RSHIFT#
3977
+ PLDREFVAR
3978
+ CTOS
3979
+ OVER
3980
+ 4 MODPOW2#
3981
+ 2 RSHIFT#
3982
+ PLDREFVAR
3983
+ CTOS
3984
+ SWAP
3985
+ 2 MODPOW2#
3986
+ PLDREFVAR
3987
+ CTOS
3988
+ 1 LDI
3989
+ 8 PUSHINT
3990
+ LDUX
3991
+ s2 PUSH
3992
+ IF:<{
3993
+ DUP
3994
+ 64 PLDU
3995
+ SWAP
3996
+ 0 PLDREFIDX
3997
+ s0 s0 s3 XCHG3
3998
+ }>ELSE<{
3999
+ 2DROP
4000
+ -1 PUSHINT
4001
+ <b b> PUSHREF
4002
+ s0 s0 s2 XCPUXC
4003
+ }>
4004
+ }>
4005
+ DeterministicInsertionCircularQueue::_setRaw PROCINLINE:<{
4006
+ SWAP
4007
+ 10 PUSHPOW2DEC
4008
+ MOD
4009
+ s0 s2 XCHG
4010
+ CTOS
4011
+ s2 PUSH
4012
+ 8 RSHIFT#
4013
+ s3 PUSH
4014
+ 8 MODPOW2#
4015
+ 6 RSHIFT#
4016
+ s4 PUSH
4017
+ 6 MODPOW2#
4018
+ 4 RSHIFT#
4019
+ s5 PUSH
4020
+ 4 MODPOW2#
4021
+ 2 RSHIFT#
4022
+ s0 s6 XCHG
4023
+ 2 MODPOW2#
4024
+ s4 s3 PUSH2
4025
+ PLDREFVAR
4026
+ CTOS
4027
+ s0 s3 PUSH2
4028
+ PLDREFVAR
4029
+ CTOS
4030
+ s0 s3 PUSH2
4031
+ PLDREFVAR
4032
+ CTOS
4033
+ s0 s9 PUSH2
4034
+ PLDREFVAR
4035
+ CTOS
4036
+ NEWC
4037
+ OVER
4038
+ 0 PUSHINT
4039
+ s7 PUSH
4040
+ SCUTFIRST
4041
+ STSLICER
4042
+ s1 s10 XCHG
4043
+ STREF
4044
+ 0 PUSHINT
4045
+ 3 PUSHINT
4046
+ s0 s6 XCHG2
4047
+ SUB
4048
+ s10 s5 s0 XCHG3
4049
+ SCUTLAST
4050
+ s1 s3 XCHG
4051
+ STSLICER
4052
+ ENDC
4053
+ NEWC
4054
+ s8 PUSH
4055
+ 0 PUSHINT
4056
+ s11 PUSH
4057
+ SCUTFIRST
4058
+ STSLICER
4059
+ STREF
4060
+ 0 PUSHINT
4061
+ 3 PUSHINT
4062
+ s0 s10 XCHG2
4063
+ SUB
4064
+ s8 s9 s0 XCHG3
4065
+ SCUTLAST
4066
+ s1 s7 XCHG
4067
+ STSLICER
4068
+ ENDC
4069
+ NEWC
4070
+ s7 PUSH
4071
+ 0 PUSHINT
4072
+ s4 PUSH
4073
+ SCUTFIRST
4074
+ STSLICER
4075
+ STREF
4076
+ 0 PUSHINT
4077
+ 3 PUSHINT
4078
+ s0 s3 XCHG2
4079
+ SUB
4080
+ s7 s7 s0 XCHG3
4081
+ SCUTLAST
4082
+ s1 s5 XCHG
4083
+ STSLICER
4084
+ ENDC
4085
+ NEWC
4086
+ s4 PUSH
4087
+ 0 PUSHINT
4088
+ s7 PUSH
4089
+ SCUTFIRST
4090
+ STSLICER
4091
+ STREF
4092
+ 0 PUSHINT
4093
+ 3 PUSHINT
4094
+ s0 s6 XCHG2
4095
+ SUB
4096
+ 5 1 REVERSE
4097
+ SCUTLAST
4098
+ s1 s3 XCHG
4099
+ STSLICER
4100
+ ENDC
4101
+ NEWC
4102
+ s3 PUSH
4103
+ 0 PUSHINT
4104
+ s4 PUSH
4105
+ SCUTFIRST
4106
+ STSLICER
4107
+ STREF
4108
+ 0 PUSHINT
4109
+ 3 PUSHINT
4110
+ s0 s3 XCHG2
4111
+ SUB
4112
+ s3 s3 s0 XCHG3
4113
+ SCUTLAST
4114
+ STSLICER
4115
+ ENDC
4116
+ }>
4117
+ DeterministicInsertionCircularQueue::set PROCINLINE:<{
4118
+ TRUE
4119
+ NEWC
4120
+ 1 STI
4121
+ 8 STU
4122
+ s2 s(-1) PUXC
4123
+ 64 STU
4124
+ STREF
4125
+ ENDC
4126
+ DeterministicInsertionCircularQueue::_setRaw INLINECALLDICT
4127
+ }>
4128
+ DeterministicInsertionCircularQueue::delete PROCINLINE:<{
4129
+ <b b> PUSHREF
4130
+ 0 PUSHINT
4131
+ DUP
4132
+ FALSE
4133
+ NEWC
4134
+ 1 STI
4135
+ 8 STU
4136
+ 64 STU
4137
+ STREF
4138
+ ENDC
4139
+ DeterministicInsertionCircularQueue::_setRaw INLINECALLDICT
4140
+ }>
4141
+ DeterministicInsertionCircularQueue::create PROC:<{
4142
+ <b b> PUSHREF
4143
+ 0 PUSHINT
4144
+ DUP
4145
+ FALSE
4146
+ NEWC
4147
+ 1 STI
4148
+ 8 STU
4149
+ 64 STU
4150
+ STREF
4151
+ ENDC
4152
+ 4 PUSHINT
4153
+ SWAP
4154
+ DeterministicInsertionCircularQueue::_buildLevel INLINECALLDICT
4155
+ }>
4156
+ assertConnection PROCINLINE:<{
4157
+ DROP
4158
+ }>
4159
+ assertWorkerIdentity PROCINLINE:<{
4160
+ DROP
4161
+ }>
4162
+ _quoteWorker PROCINLINE:<{
4163
+ 6 PUSHINT
4164
+ s3 s0 s2 PUXC2
4165
+ cl::nestedDict256::get<cellRef> INLINECALLDICT
4166
+ DUP
4167
+ IFNOT:<{
4168
+ 4 BLKDROP
4169
+ 0 PUSHINT
4170
+ PUSHNULL
4171
+ }>ELSE<{
4172
+ s1 s1 PUSH2
4173
+ 3 PUSHINT
4174
+ cl::get<address> INLINECALLDICT
4175
+ DUP
4176
+ 0 EQINT
4177
+ IFNOT:<{
4178
+ 2 1 BLKDROP2
4179
+ s1 s3 XCHG
4180
+ 6 PUSHINT
4181
+ SWAP
4182
+ cl::nestedDict256::get<cellRef> INLINECALLDICT
4183
+ s1 s3 XCHG
4184
+ }>ELSE<{
4185
+ DROP
4186
+ s4 POP
4187
+ }>
4188
+ IFNOTJMP:<{
4189
+ 3 BLKDROP
4190
+ 0 PUSHINT
4191
+ PUSHNULL
4192
+ }>
4193
+ DUP
4194
+ 2 PUSHINT
4195
+ cl::get<objRef> INLINECALLDICT
4196
+ s0 s3 XCHG
4197
+ 2 PUSHINT
4198
+ cl::get<objRef> INLINECALLDICT
4199
+ s3 s0 s3 XCHG3
4200
+ TRIPLE
4201
+ 107686 PUSHINT
4202
+ 2 PUSHINT
4203
+ s0 s3 XCHG
4204
+ 1 PUSHINT
4205
+ cl::get<cellRef> INLINECALLDICT
4206
+ CTOS
4207
+ s1 s3 s0 XCHG3
4208
+ 1000000 PUSHINT
4209
+ // Setup // callerStack: [ inputs, methodIdCRC, nOutputs, code, gasLimit ] ; len(callerStack) = 5
4210
+ // // STACK [ ..., inputs, methodIdCRC, nOutputs, code, nOutputs, gasLimit ]
4211
+ DEPTH 5 PUSHINT SUB // STACK [ ..., inputs, methodIdCRC, nOutputs, code, gasLimit, len(callerStack) ]
4212
+ 3 PUSHINT SETGLOBVAR // STACK [ ..., inputs, methodIdCRC, nOutputs, code, gasLimit ]
4213
+ // Globvars[3] = len(...)
4214
+ // Arrange the stack for RUNVM
4215
+ // nArgs is actually numberOfInputs + 1
4216
+ 2 PUSHINT // STACK [ ..., inputs, methodIdCRC, nOutputs, code, gasLimit, nArgs ]
4217
+ s1 XCHG0 // STACK [ ..., inputs, methodIdCRC, nOutputs, code, nArgs, gasLimit ]
4218
+ s1 s3 XCHG // STACK [ ..., inputs, methodIdCRC, nArgs, code, nOutputs, gasLimit ]
4219
+ // Run the given methodId in a sandbox child VM with flag 256 + 8 + 1
4220
+ // +1 : set c3 to code
4221
+ // +8: take gas limit g_l from stack, return consumed gas g_c
4222
+ // +256: pop integer r, return exactly r values from the top of the stack (only if exitcode=0 or 1; if not enough then exitcode=stack_underflow)
4223
+ // here, r := nOutputs
4224
+ 265 RUNVM
4225
+ // STACK [ ..., childStack]
4226
+ // childStack is capped at nOutputs
4227
+ // Cleanup the return values
4228
+ // 1. Figure out the length of the childStack
4229
+ DEPTH // STACK [ ..., childStack, len(...) + len(childStack) ]
4230
+ 3 PUSHINT GETGLOBVAR // STACK [ ..., childStack, len(...) + len(childStack), len(...) ]
4231
+ // calculate len(childStack) = len(currentStack) - len(...)
4232
+ SUB ABS // STACK [ ..., childStack, len(childStack) ]
4233
+ // 2. Turn the entire child stack into a tuple
4234
+ // Tuplevar takes x1, ..., xn and n, and turns it into a tuple (x1, ..., xn)
4235
+ // wouldn't know how many elements to take without the n
4236
+ TUPLEVAR // STACK [ ..., tuple[*childStack] ]
4237
+ DUP
4238
+ 0 INDEX
4239
+ SWAP
4240
+ 1 INDEX
4241
+ }>
4242
+ }>
4243
+ _quoteWorkers PROCINLINE:<{
4244
+ CONT:<{
4245
+ c2 SAVE
4246
+ SAMEALTSAVE
4247
+ DUP
4248
+ 0 INDEX
4249
+ OVER
4250
+ 1 INDEX
4251
+ s2 PUSH
4252
+ 2 INDEX
4253
+ s3 PUSH
4254
+ 3 INDEX
4255
+ CTOS
4256
+ s0 s4 XCHG
4257
+ 4 INDEX
4258
+ CTOS
4259
+ NIL
4260
+ UlnWorkerEventsBuilder::create CALLDICT
4261
+ s5 s3 s4 PUSH3
4262
+ _quoteWorker INLINECALLDICT
4263
+ DUP
4264
+ ISNULL
4265
+ IF:<{
4266
+ 9 BLKDROP
4267
+ PUSHNULL
4268
+ }>ELSE<{
4269
+ s5 s1 PUSH2
4270
+ PAIR
4271
+ s1 s4 XCHG
4272
+ TPUSH
4273
+ s5 s3 XCHG2
4274
+ UlnWorkerEventsBuilder::push CALLDICT
4275
+ WHILE:<{
4276
+ s6 PUSH
4277
+ SEMPTY
4278
+ 0 EQINT
4279
+ }>DO<{
4280
+ s0 s6 XCHG
4281
+ ~dvnListNext CALLDICT
4282
+ s6 s0 s5 PUSH3
4283
+ _quoteWorker INLINECALLDICT
4284
+ DUP
4285
+ ISNULL
4286
+ IFJMP:<{
4287
+ 10 BLKDROP
4288
+ PUSHNULL
4289
+ RETALT
4290
+ }>
4291
+ s6 s1 XCPU
4292
+ ADD
4293
+ s2 s1 PUXC
4294
+ PAIR
4295
+ s1 s4 XCHG
4296
+ TPUSH
4297
+ s8 s1 s5 XCHG3
4298
+ UlnWorkerEventsBuilder::push CALLDICT
4299
+ s1 s3 XCHG
4300
+ }>
4301
+ s6 POP
4302
+ WHILE:<{
4303
+ OVER
4304
+ SEMPTY
4305
+ 0 EQINT
4306
+ }>DO<{
4307
+ SWAP
4308
+ ~dvnListNext CALLDICT
4309
+ s5 s0 s4 PUSH3
4310
+ _quoteWorker INLINECALLDICT
4311
+ DUP
4312
+ ISNULL
4313
+ IFJMP:<{
4314
+ 9 BLKDROP
4315
+ PUSHNULL
4316
+ RETALT
4317
+ }>
4318
+ s5 s1 XCPU
4319
+ ADD
4320
+ s2 s1 PUXC
4321
+ PAIR
4322
+ s1 s4 XCHG
4323
+ TPUSH
4324
+ s7 s1 s4 XCHG3
4325
+ UlnWorkerEventsBuilder::push CALLDICT
4326
+ s1 s5 s5 XCHG3
4327
+ }>
4328
+ NIP
4329
+ s3 POP
4330
+ 0 PUSHINT
4331
+ <b b> PUSHREF
4332
+ s0 s4 XCHG
4333
+ serializePayees INLINECALLDICT
4334
+ 1 PUSHINT
4335
+ 8 PUSHINT
4336
+ 81 PUSHINT
4337
+ 32 PUSHINT
4338
+ s0 s9 XCHG
4339
+ UlnWorkerEvents::FromBuilder INLINECALLDICT
4340
+ s5 PUSH
4341
+ s7 s10 XCHG
4342
+ s6 s9 XCHG
4343
+ s6 s7 XCHG
4344
+ s5 s6 XCHG
4345
+ s4 s5 XCHG
4346
+ s3 s4 XCHG
4347
+ s2 s3 XCHG
4348
+ md::MsglibSendCallback::New INLINECALLDICT
4349
+ }>
4350
+ }>
4351
+ EXECUTE
4352
+ }>
4353
+ ulnQuote PROCINLINE:<{
4354
+ DROP
4355
+ preamble INLINECALLDICT
4356
+ NIP
4357
+ 1015759408 PUSHINT
4358
+ THROWANY
4359
+ }>
4360
+ ulnSend PROCINLINE:<{
4361
+ preamble INLINECALLDICT
4362
+ s2 PUSH
4363
+ 0 PUSHINT
4364
+ cl::get<objRef> INLINECALLDICT
4365
+ s3 PUSH
4366
+ 1 PUSHINT
4367
+ cl::get<objRef> INLINECALLDICT
4368
+ s3 PUSH
4369
+ 4 PUSHINT
4370
+ cl::get<objRef> INLINECALLDICT
4371
+ lz::UlnSendConfig::GetUlnSendConfig CALLDICT
4372
+ s3 POP
4373
+ s4 PUSH
4374
+ s4 s7 XCHG
4375
+ s0 s3 XCHG
4376
+ 5 TUPLE
4377
+ 23432 PUSHINT
4378
+ 1 PUSHINT
4379
+ MYCODE
4380
+ CTOS
4381
+ 4 ROLL
4382
+ s0 s6 XCHG
4383
+ // Setup // callerStack: [ inputs, methodIdCRC, nOutputs, code, gasLimit ] ; len(callerStack) = 5
4384
+ // // STACK [ ..., inputs, methodIdCRC, nOutputs, code, nOutputs, gasLimit ]
4385
+ DEPTH 5 PUSHINT SUB // STACK [ ..., inputs, methodIdCRC, nOutputs, code, gasLimit, len(callerStack) ]
4386
+ 3 PUSHINT SETGLOBVAR // STACK [ ..., inputs, methodIdCRC, nOutputs, code, gasLimit ]
4387
+ // Globvars[3] = len(...)
4388
+ // Arrange the stack for RUNVM
4389
+ // nArgs is actually numberOfInputs + 1
4390
+ 2 PUSHINT // STACK [ ..., inputs, methodIdCRC, nOutputs, code, gasLimit, nArgs ]
4391
+ s1 XCHG0 // STACK [ ..., inputs, methodIdCRC, nOutputs, code, nArgs, gasLimit ]
4392
+ s1 s3 XCHG // STACK [ ..., inputs, methodIdCRC, nArgs, code, nOutputs, gasLimit ]
4393
+ // Run the given methodId in a sandbox child VM with flag 256 + 8 + 1
4394
+ // +1 : set c3 to code
4395
+ // +8: take gas limit g_l from stack, return consumed gas g_c
4396
+ // +256: pop integer r, return exactly r values from the top of the stack (only if exitcode=0 or 1; if not enough then exitcode=stack_underflow)
4397
+ // here, r := nOutputs
4398
+ 265 RUNVM
4399
+ // STACK [ ..., childStack]
4400
+ // childStack is capped at nOutputs
4401
+ // Cleanup the return values
4402
+ // 1. Figure out the length of the childStack
4403
+ DEPTH // STACK [ ..., childStack, len(...) + len(childStack) ]
4404
+ 3 PUSHINT GETGLOBVAR // STACK [ ..., childStack, len(...) + len(childStack), len(...) ]
4405
+ // calculate len(childStack) = len(currentStack) - len(...)
4406
+ SUB ABS // STACK [ ..., childStack, len(childStack) ]
4407
+ // 2. Turn the entire child stack into a tuple
4408
+ // Tuplevar takes x1, ..., xn and n, and turns it into a tuple (x1, ..., xn)
4409
+ // wouldn't know how many elements to take without the n
4410
+ TUPLEVAR // STACK [ ..., tuple[*childStack] ]
4411
+ 0 INDEX
4412
+ DUP
4413
+ ISNULL
4414
+ IF:<{
4415
+ DROP
4416
+ 0 PUSHINT
4417
+ DUP
4418
+ <b b> PUSHREF
4419
+ <b b> PUSHREF
4420
+ s2 s2 s2 PUSH3
4421
+ DUP
4422
+ cl::nullObject INLINECALLDICT
4423
+ s8 s9 XCHG
4424
+ s7 s8 XCHG
4425
+ s7 s10 XCHG
4426
+ 232 PUSHINT
4427
+ md::MsglibSendCallback::New INLINECALLDICT
4428
+ SWAP
4429
+ }>ELSE<{
4430
+ s2 POP
4431
+ }>
4432
+ s0 s2 XCHG
4433
+ 3 PUSHINT
4434
+ cl::get<address> INLINECALLDICT
4435
+ 1109137957 PUSHINT
4436
+ ROT
4437
+ ~pushAction<call> INLINECALLDICT
4438
+ }>
4439
+ ulnCommitPacket PROCINLINE:<{
4440
+ preamble INLINECALLDICT
4441
+ NIP
4442
+ OVER
4443
+ 1 PUSHINT
4444
+ cl::get<address> INLINECALLDICT
4445
+ 4191386496 PUSHINT
4446
+ s0 s3 XCHG
4447
+ 0 PUSHINT
4448
+ cl::get<objRef> INLINECALLDICT
4449
+ s1 s3 s0 XCHG3
4450
+ ~pushAction<call> INLINECALLDICT
4451
+ }>
4452
+ ulnVerify PROCINLINE:<{
4453
+ preamble INLINECALLDICT
4454
+ s2 PUSH
4455
+ 1 PUSHINT
4456
+ cl::get<address> INLINECALLDICT
4457
+ 1321793546 PUSHINT
4458
+ s0 s4 XCHG
4459
+ 0 PUSHINT
4460
+ cl::get<objRef> INLINECALLDICT
4461
+ s0 s3 XCHG
4462
+ 3 PUSHINT
4463
+ cl::get<objRef> INLINECALLDICT
4464
+ s1 s3 XCHG
4465
+ md::MdObj::New INLINECALLDICT
4466
+ s1 s3 XCHG
4467
+ ~pushAction<call> INLINECALLDICT
4468
+ }>
4469
+ _setWorkerInfo PROC:<{
4470
+ getContractStorage INLINECALLDICT
4471
+ OVER
4472
+ 0 PUSHINT
4473
+ cl::get<address> INLINECALLDICT
4474
+ s1 s2 XCHG
4475
+ 6 PUSHINT
4476
+ s0 s2 XCHG
4477
+ cl::nestedDict256::setRef INLINECALLDICT
4478
+ setContractStorage INLINECALLDICT
4479
+ }>
4480
+ updateUlnWorker PROCINLINE:<{
4481
+ preamble INLINECALLDICT
4482
+ s2 PUSH
4483
+ 0 PUSHINT
4484
+ cl::get<address> INLINECALLDICT
4485
+ s1 s2 XCHG
4486
+ 6 PUSHINT
4487
+ SWAP
4488
+ cl::nestedDict256::get<cellRef> INLINECALLDICT
4489
+ NIP
4490
+ IFNOT:<{
4491
+ OVER
4492
+ 5 PUSHINT
4493
+ cl::get<coins> INLINECALLDICT
4494
+ DUP
4495
+ 259200000 PUSHINT
4496
+ GEQ
4497
+ 60 THROWIFNOT
4498
+ s0 s2 XCHG
4499
+ 6 PUSHINT
4500
+ NOW
4501
+ cl::set INLINECALLDICT
4502
+ getOwner INLINECALLDICT
4503
+ s0 s3 XCHG2
4504
+ 0 PUSHINT
4505
+ ~pushAction<payment> INLINECALLDICT
4506
+ }>
4507
+ OVER
4508
+ _setWorkerInfo CALLDICT
4509
+ 2303014539151513497721185155501932080212115464873841017993951045767748 PUSHINT
4510
+ ROT
4511
+ ~pushAction<event> INLINECALLDICT
4512
+ }>
4513
+ deregisterUlnWorker PROCINLINE:<{
4514
+ DROP
4515
+ preamble INLINECALLDICT
4516
+ getCaller INLINECALLDICT
4517
+ s2 PUSH
4518
+ 6 PUSHINT
4519
+ s2 PUSH
4520
+ cl::nestedDict256::get<cellRef> INLINECALLDICT
4521
+ IF:<{
4522
+ s1 s3 XCHG
4523
+ 6 PUSHINT
4524
+ s0 s4 XCHG2
4525
+ cl::nestedDict256::delete INLINECALLDICT
4526
+ setContractStorage INLINECALLDICT
4527
+ 150930360837833588586655590350974620808781199105971978842912309953546179140 PUSHINT
4528
+ ROT
4529
+ ~pushAction<event> INLINECALLDICT
4530
+ }>ELSE<{
4531
+ s2 s3 XCHG
4532
+ 3 BLKDROP
4533
+ }>
4534
+ }>
4535
+ ulnWorkerSetStorage PROCINLINE:<{
4536
+ preamble INLINECALLDICT
4537
+ 6 PUSHINT
4538
+ getCaller INLINECALLDICT
4539
+ s3 PUSH
4540
+ -ROT
4541
+ cl::nestedDict256::get<cellRef> INLINECALLDICT
4542
+ 152 THROWIFNOT
4543
+ s3 PUSH
4544
+ 4 PUSHINT
4545
+ CDATASIZEQ NULLSWAPIFNOT2 NULLSWAPIFNOT
4546
+ 3 1 BLKDROP2
4547
+ 384 THROWIFNOT
4548
+ 6 PUSHINT
4549
+ getCaller INLINECALLDICT
4550
+ s1 s2 XCHG
4551
+ 2 PUSHINT
4552
+ s0 s6 XCHG2
4553
+ cl::set INLINECALLDICT
4554
+ s1 s4 s0 XCHG3
4555
+ cl::nestedDict256::setRef INLINECALLDICT
4556
+ setContractStorage INLINECALLDICT
4557
+ }>
4558
+ collectWorkerRent PROCINLINE:<{
4559
+ preamble INLINECALLDICT
4560
+ 6 PUSHINT
4561
+ s3 PUSH
4562
+ 0 PUSHINT
4563
+ cl::get<address> INLINECALLDICT
4564
+ s3 PUSH
4565
+ -ROT
4566
+ cl::nestedDict256::get<cellRef> INLINECALLDICT
4567
+ 152 THROWIFNOT
4568
+ NOW
4569
+ OVER
4570
+ 6 PUSHINT
4571
+ cl::get<uint64> INLINECALLDICT
4572
+ s1 s(-1) PUXC
4573
+ SUB
4574
+ DUP
4575
+ 0 GTINT
4576
+ 1767 THROWIFNOT
4577
+ 100 MULCONST
4578
+ s2 PUSH
4579
+ 5 PUSHINT
4580
+ cl::get<coins> INLINECALLDICT
4581
+ s0 s1 PUSH2
4582
+ GEQ
4583
+ IF:<{
4584
+ s5 POP
4585
+ s5 POP
4586
+ s0 s3 XCHG
4587
+ 5 PUSHINT
4588
+ s0 s5 XCHG
4589
+ SUB
4590
+ s1 s4 s0 XCHG3
4591
+ cl::set INLINECALLDICT
4592
+ 6 PUSHINT
4593
+ ROT
4594
+ cl::set INLINECALLDICT
4595
+ DUP
4596
+ _setWorkerInfo CALLDICT
4597
+ 38638172374485398678183831129849502927021386854121545542306104478498437615188 PUSHINT
4598
+ SWAP
4599
+ ~pushAction<event> INLINECALLDICT
4600
+ }>ELSE<{
4601
+ 3 BLKDROP
4602
+ 6 PUSHINT
4603
+ s0 s4 XCHG
4604
+ 0 PUSHINT
4605
+ cl::get<address> INLINECALLDICT
4606
+ 4 1 REVERSE
4607
+ cl::nestedDict256::delete INLINECALLDICT
4608
+ setContractStorage INLINECALLDICT
4609
+ 589571722022787455416623399808494612534301323481025566169945898608772420 PUSHINT
4610
+ ROT
4611
+ ~pushAction<event> INLINECALLDICT
4612
+ }>
4613
+ }>
4614
+ setDefaultUlnSendConfig PROCINLINE:<{
4615
+ preamble INLINECALLDICT
4616
+ 4 PUSHINT
4617
+ s3 PUSH
4618
+ lz::UlnSendConfig::sanitize INLINECALLDICT
4619
+ s2 s3 XCHG
4620
+ cl::set INLINECALLDICT
4621
+ setContractStorage INLINECALLDICT
4622
+ 38638172374485398678183831129849502927022669352087494869081246263568567059796 PUSHINT
4623
+ ROT
4624
+ ~pushAction<event> INLINECALLDICT
4625
+ }>
4626
+ setDefaultUlnReceiveConfig PROCINLINE:<{
4627
+ preamble INLINECALLDICT
4628
+ 3 PUSHINT
4629
+ s3 PUSH
4630
+ UlnReceiveConfig::sanitize CALLDICT
4631
+ s2 s3 XCHG
4632
+ cl::set INLINECALLDICT
4633
+ setContractStorage INLINECALLDICT
4634
+ 38638172374485398678183831129849502927022669352087493617635681559038875878740 PUSHINT
4635
+ ROT
4636
+ ~pushAction<event> INLINECALLDICT
4637
+ }>
4638
+ _executeOpcode PROCINLINE:<{
4639
+ CONT:<{
4640
+ c2 SAVE
4641
+ SAMEALTSAVE
4642
+ OVER
4643
+ 3694527094 PUSHINT
4644
+ EQUAL
4645
+ IF:<{
4646
+ NIP
4647
+ ulnQuote INLINECALLDICT
4648
+ }>ELSE<{
4649
+ OVER
4650
+ 1575388051 PUSHINT
4651
+ EQUAL
4652
+ IFJMP:<{
4653
+ NIP
4654
+ ulnSend INLINECALLDICT
4655
+ RETALT
4656
+ }>
4657
+ OVER
4658
+ 135634014 PUSHINT
4659
+ EQUAL
4660
+ IFJMP:<{
4661
+ NIP
4662
+ ulnCommitPacket INLINECALLDICT
4663
+ RETALT
4664
+ }>
4665
+ OVER
4666
+ 2571808590 PUSHINT
4667
+ EQUAL
4668
+ IFJMP:<{
4669
+ NIP
4670
+ ulnVerify INLINECALLDICT
4671
+ RETALT
4672
+ }>
4673
+ OVER
4674
+ 1176833684 PUSHINT
4675
+ EQUAL
4676
+ IFJMP:<{
4677
+ NIP
4678
+ updateUlnWorker INLINECALLDICT
4679
+ RETALT
4680
+ }>
4681
+ OVER
4682
+ 1529911255 PUSHINT
4683
+ EQUAL
4684
+ IFJMP:<{
4685
+ NIP
4686
+ deregisterUlnWorker INLINECALLDICT
4687
+ RETALT
4688
+ }>
4689
+ OVER
4690
+ 781973186 PUSHINT
4691
+ EQUAL
4692
+ IFJMP:<{
4693
+ NIP
4694
+ ulnWorkerSetStorage INLINECALLDICT
4695
+ RETALT
4696
+ }>
4697
+ SWAP
4698
+ 1576272773 PUSHINT
4699
+ EQUAL
4700
+ IFJMP:<{
4701
+ collectWorkerRent INLINECALLDICT
4702
+ RETALT
4703
+ }>
4704
+ DROP
4705
+ 1199 THROW
4706
+ PUSHNULL
4707
+ }>
4708
+ }>
4709
+ EXECUTE
4710
+ }>
4711
+ _executeAction PROCINLINE:<{
4712
+ CONT:<{
4713
+ c2 SAVE
4714
+ SAMEALTSAVE
4715
+ OVER
4716
+ 435778055796 PUSHINT
4717
+ EQUAL
4718
+ IF:<{
4719
+ NIP
4720
+ executeEvent INLINECALLDICT
4721
+ }>ELSE<{
4722
+ OVER
4723
+ 459904164859953153141868 PUSHINT
4724
+ EQUAL
4725
+ IFJMP:<{
4726
+ NIP
4727
+ executeCall INLINECALLDICT
4728
+ RETALT
4729
+ }>
4730
+ OVER
4731
+ 31632371545894516 PUSHINT
4732
+ EQUAL
4733
+ IFJMP:<{
4734
+ NIP
4735
+ executePayment INLINECALLDICT
4736
+ RETALT
4737
+ }>
4738
+ SWAP
4739
+ 110386840629113 PUSHINT
4740
+ EQUAL
4741
+ IFJMP:<{
4742
+ executeDeploy INLINECALLDICT
4743
+ RETALT
4744
+ }>
4745
+ DROP
4746
+ 1693 THROW
4747
+ FALSE
4748
+ }>
4749
+ }>
4750
+ EXECUTE
4751
+ }>
4752
+ main PROCINLINE:<{
4753
+ 3 -ROLL
4754
+ s3 PUSH
4755
+ initTxnContext INLINECALLDICT
4756
+ txnIsBounced INLINECALLDICT
4757
+ IF:<{
4758
+ DROP
4759
+ }>ELSE<{
4760
+ authenticateIfNecessary INLINECALLDICT
4761
+ SEMPTY
4762
+ IFJMP:<{
4763
+ }>
4764
+ getOpcode INLINECALLDICT
4765
+ getMsgData INLINECALLDICT
4766
+ 2DUP
4767
+ checkPermissions INLINECALLDICT
4768
+ OVER
4769
+ 3812333683 PUSHINT
4770
+ EQUAL
4771
+ IF:<{
4772
+ 488 THROW
4773
+ }>
4774
+ OVER
4775
+ 4133284232 PUSHINT
4776
+ EQUAL
4777
+ IF:<{
4778
+ NIP
4779
+ initialize INLINECALLDICT
4780
+ }>ELSE<{
4781
+ assertInitialized INLINECALLDICT
4782
+ _executeOpcode INLINECALLDICT
4783
+ }>
4784
+ DUP
4785
+ 0 INDEX
4786
+ getContractBalance INLINECALLDICT
4787
+ STORAGEFEES
4788
+ SUB
4789
+ getMsgValue INLINECALLDICT
4790
+ getDonationNanos INLINECALLDICT
4791
+ SUB
4792
+ SUB
4793
+ s0 s1 PUSH2
4794
+ GEQ
4795
+ 37 THROWIFNOT
4796
+ SWAP
4797
+ SUB
4798
+ 0 PUSHINT
4799
+ RAWRESERVE
4800
+ TRUE
4801
+ 1 PUSHINT
4802
+ s2 PUSH
4803
+ TLEN
4804
+ WHILE:<{
4805
+ 2DUP
4806
+ LESS
4807
+ }>DO<{
4808
+ s3 s1 PUSH2
4809
+ INDEXVAR
4810
+ DUP
4811
+ 0 INDEX
4812
+ s0 s3 XCHG
4813
+ INC
4814
+ s3 s3 XCHG2
4815
+ _executeAction INLINECALLDICT
4816
+ s1 s3 XCHG
4817
+ AND
4818
+ s0 s2 XCHG
4819
+ }>
4820
+ s2 s3 XCHG
4821
+ 3 BLKDROP
4822
+ IF:<{
4823
+ <b b> PUSHREF
4824
+ 1 PUSHINT
4825
+ 16 PUSHINT
4826
+ NEWC
4827
+ 6 STU
4828
+ getOriginStd INLINECALLDICT
4829
+ STSLICER
4830
+ 0 PUSHINT
4831
+ STGRAMS
4832
+ 107 STU
4833
+ STREF
4834
+ ENDC
4835
+ 7 PUSHPOW2
4836
+ SENDRAWMSG
4837
+ }>
4838
+ }>
4839
+ }>
4840
+ }END>c
4841
+ 2 boc+>B "build/Uln.boc" B>file