Skip to content

Commit

Permalink
feat: add SendOnlyEstimateFee and fix comment in stdlib
Browse files Browse the repository at this point in the history
  • Loading branch information
Gusarich committed Sep 3, 2024
1 parent 4438116 commit 656434c
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 27 deletions.
53 changes: 27 additions & 26 deletions src/imports/stdlib.ts
Original file line number Diff line number Diff line change
Expand Up @@ -224,31 +224,32 @@ files['std/send.tact'] =
'YXNtIGZ1biBuYXRpdmVTZW5kTWVzc2FnZShjZWxsOiBDZWxsLCBtb2RlOiBJbnQpIHsgU0VORFJBV01TRyB9CgpAbmFtZShzZW5kX21lc3NhZ2UpCm5hdGl2ZSBuYXRp' +
'dmVTZW5kTWVzc2FnZVJldHVybkZvcndhcmRGZWUoY2VsbDogQ2VsbCwgbW9kZTogSW50KTogSW50OwoKY29uc3QgU2VuZFJlbWFpbmluZ0JhbGFuY2U6IEludCA9IDEy' +
'ODsKY29uc3QgU2VuZFJlbWFpbmluZ1ZhbHVlOiBJbnQgPSA2NDsKY29uc3QgU2VuZElnbm9yZUVycm9yczogSW50ID0gMjsKY29uc3QgU2VuZFBheUdhc1NlcGFyYXRl' +
'bHk6IEludCA9IDE7CmNvbnN0IFNlbmREZXN0cm95SWZaZXJvOiBJbnQgPSAzMjsKY29uc3QgU2VuZEJvdW5jZUlmQWN0aW9uRmFpbDogSW50ID0gMTY7CgpzdHJ1Y3Qg' +
'U2VuZFBhcmFtZXRlcnMgewogICAgYm91bmNlOiBCb29sID0gdHJ1ZTsKICAgIHRvOiBBZGRyZXNzOwogICAgdmFsdWU6IEludDsKICAgIG1vZGU6IEludCA9IDA7CiAg' +
'ICBib2R5OiBDZWxsPyA9IG51bGw7CiAgICBjb2RlOiBDZWxsPyA9IG51bGw7CiAgICBkYXRhOiBDZWxsPyA9IG51bGw7Cn0KCmZ1biBzZW5kKHBhcmFtczogU2VuZFBh' +
'cmFtZXRlcnMpOiBJbnQgewogICAgbGV0IGI6IEJ1aWxkZXIgPSBiZWdpbkNlbGwoKTsKICAgIGIgPSBiLnN0b3JlSW50KDEsIDIpOyAvLyBpbnRlcm5hbF9tZXNzYWdl' +
'ICsgaWhkX2Rpc2FibGVkCiAgICBiID0gYi5zdG9yZUJvb2wocGFyYW1zLmJvdW5jZSk7IC8vIGJvdW5jZQogICAgYiA9IGIuc3RvcmVJbnQoMCwgMyk7IC8vIGJvdW5j' +
'ZWQgKyBmcm9tCiAgICBiID0gYi5zdG9yZUFkZHJlc3MocGFyYW1zLnRvKTsgLy8gVG8KICAgIGIgPSBiLnN0b3JlQ29pbnMocGFyYW1zLnZhbHVlKTsgLy8gVmFsdWUK' +
'ICAgIGIgPSBiLnN0b3JlSW50KDAsIDEgKyA0ICsgNCArIDY0ICsgMzIpOyAvLyBjdXJyZW5jeV9jb2xsZWN0aW9uICsgSUhSIGZlZXMgKyBGd2QgZmVlcyArIENyZWF0' +
'ZWRMVCArIENyZWF0ZWRBdAoKICAgIC8vIFN0YXRlaW5pdAogICAgaWYgKHBhcmFtcy5jb2RlICE9IG51bGwgfHwgcGFyYW1zLmRhdGEgIT0gbnVsbCkgewogICAgICAg' +
'IGIgPSBiLnN0b3JlQm9vbCh0cnVlKTsgLy8gU3RhdGUgaW5pdAoKICAgICAgICAvLyBBc3NlbWJsZSBzdGF0ZSBpbml0IGNlbGwKICAgICAgICBsZXQgYmM6IEJ1aWxk' +
'ZXIgPSBiZWdpbkNlbGwoKTsKICAgICAgICBiYyA9IGJjLnN0b3JlQm9vbChmYWxzZSk7IC8vIFNwbGl0RGVwdGgKICAgICAgICBiYyA9IGJjLnN0b3JlQm9vbChmYWxz' +
'ZSk7IC8vIFRpY2tUb2NrCiAgICAgICAgaWYgKHBhcmFtcy5jb2RlICE9IG51bGwpIHsKICAgICAgICAgICAgYmMgPSBiYy5zdG9yZUJvb2wodHJ1ZSk7IC8vIENvZGUg' +
'cHJlc2VuY2UKICAgICAgICAgICAgYmMgPSBiYy5zdG9yZVJlZihwYXJhbXMuY29kZSEhKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBiYyA9IGJjLnN0b3Jl' +
'Qm9vbChmYWxzZSk7IC8vIENvZGUgcHJlc2VuY2UKICAgICAgICB9CiAgICAgICAgaWYgKHBhcmFtcy5kYXRhICE9IG51bGwpIHsKICAgICAgICAgICAgYmMgPSBiYy5z' +
'dG9yZUJvb2wodHJ1ZSk7IC8vIERhdGEgcHJlc2VuY2UKICAgICAgICAgICAgYmMgPSBiYy5zdG9yZVJlZihwYXJhbXMuZGF0YSEhKTsKICAgICAgICB9IGVsc2Ugewog' +
'ICAgICAgICAgICBiYyA9IGJjLnN0b3JlQm9vbChmYWxzZSk7IC8vIERhdGEgcHJlc2VuY2UKICAgICAgICB9CiAgICAgICAgYmMgPSBiYy5zdG9yZUJvb2woZmFsc2Up' +
'OyAvLyBMaWJyYXJ5CgogICAgICAgIGIgPSBiLnN0b3JlQm9vbCh0cnVlKTsgLy8gU3RvcmUgYXMgcmVmCiAgICAgICAgYiA9IGIuc3RvcmVSZWYoYmMuZW5kQ2VsbCgp' +
'KTsKICAgIH0gZWxzZSB7CiAgICAgICAgYiA9IGIuc3RvcmVCb29sKGZhbHNlKTsgLy8gTm8gc3RhdGUgaW5pdAogICAgfQoKICAgIC8vIEJvZHkKICAgIGxldCBib2R5' +
'OiBDZWxsPyA9IHBhcmFtcy5ib2R5OwogICAgaWYgKGJvZHkgIT0gbnVsbCkgewogICAgICAgIGIgPSBiLnN0b3JlQm9vbCh0cnVlKTsKICAgICAgICBiID0gYi5zdG9y' +
'ZVJlZihib2R5ISEpOwogICAgfSBlbHNlIHsKICAgICAgICBiID0gYi5zdG9yZUJvb2woZmFsc2UpOyAvLyBObyBib2R5CiAgICB9CgogICAgLy8gU2VuZAogICAgbGV0' +
'IGM6IENlbGwgPSBiLmVuZENlbGwoKTsKICAgIHJldHVybiBuYXRpdmVTZW5kTWVzc2FnZVJldHVybkZvcndhcmRGZWUoYywgcGFyYW1zLm1vZGUpOwp9CgppbmxpbmUg' +
'ZnVuIGVtaXQoYm9keTogQ2VsbCkgewogICAgLy8gZXh0X291dF9tc2dfaW5mbyQxMSBzcmM6TXNnQWRkcmVzc0ludCBkZXN0Ok1zZ0FkZHJlc3NFeHQgY3JlYXRlZF9s' +
'dDp1aW50NjQgY3JlYXRlZF9hdDp1aW50MzIKICAgIC8vICAgICAgICAgICAgICAgICAgICAgbWF5YmU6IHN0YXRlSW5pdCAoZmFsc2UpIGJvZHlSZWY6IGJvb2wgKHRy' +
'dWUpCiAgICBsZXQgYzogQ2VsbCA9IGJlZ2luQ2VsbCgpCiAgICAgICAgLnN0b3JlVWludCgxNTIxMTgwNzIwMjczODc1MjgxNzk2MDQzODQ2NDUxMywgMTA0KQogICAg' +
'ICAgIC5zdG9yZVJlZihib2R5KQogICAgICAgIC5lbmRDZWxsKCk7CiAgICBuYXRpdmVTZW5kTWVzc2FnZShjLCAwKTsKfQoKYXNtIGZ1biBhY2NlcHRNZXNzYWdlKCkg' +
'eyBBQ0NFUFQgfQoKYXNtIGZ1biBjb21taXQoKSB7IENPTU1JVCB9Cg==';
'bHk6IEludCA9IDE7CmNvbnN0IFNlbmREZXN0cm95SWZaZXJvOiBJbnQgPSAzMjsKY29uc3QgU2VuZEJvdW5jZUlmQWN0aW9uRmFpbDogSW50ID0gMTY7CmNvbnN0IFNl' +
'bmRPbmx5RXN0aW1hdGVGZWU6IEludCA9IDEwMjQ7CgpzdHJ1Y3QgU2VuZFBhcmFtZXRlcnMgewogICAgYm91bmNlOiBCb29sID0gdHJ1ZTsKICAgIHRvOiBBZGRyZXNz' +
'OwogICAgdmFsdWU6IEludDsKICAgIG1vZGU6IEludCA9IDA7CiAgICBib2R5OiBDZWxsPyA9IG51bGw7CiAgICBjb2RlOiBDZWxsPyA9IG51bGw7CiAgICBkYXRhOiBD' +
'ZWxsPyA9IG51bGw7Cn0KCmZ1biBzZW5kKHBhcmFtczogU2VuZFBhcmFtZXRlcnMpOiBJbnQgeyAvLyByZXR1cm5zIGZvcndhcmQgZmVlCiAgICBsZXQgYjogQnVpbGRl' +
'ciA9IGJlZ2luQ2VsbCgpOwogICAgYiA9IGIuc3RvcmVJbnQoMSwgMik7IC8vIGludGVybmFsX21lc3NhZ2UgKyBpaGRfZGlzYWJsZWQKICAgIGIgPSBiLnN0b3JlQm9v' +
'bChwYXJhbXMuYm91bmNlKTsgLy8gYm91bmNlCiAgICBiID0gYi5zdG9yZUludCgwLCAzKTsgLy8gYm91bmNlZCArIGZyb20KICAgIGIgPSBiLnN0b3JlQWRkcmVzcyhw' +
'YXJhbXMudG8pOyAvLyBUbwogICAgYiA9IGIuc3RvcmVDb2lucyhwYXJhbXMudmFsdWUpOyAvLyBWYWx1ZQogICAgYiA9IGIuc3RvcmVJbnQoMCwgMSArIDQgKyA0ICsg' +
'NjQgKyAzMik7IC8vIGN1cnJlbmN5X2NvbGxlY3Rpb24gKyBJSFIgZmVlcyArIEZ3ZCBmZWVzICsgQ3JlYXRlZExUICsgQ3JlYXRlZEF0CgogICAgLy8gU3RhdGVpbml0' +
'CiAgICBpZiAocGFyYW1zLmNvZGUgIT0gbnVsbCB8fCBwYXJhbXMuZGF0YSAhPSBudWxsKSB7CiAgICAgICAgYiA9IGIuc3RvcmVCb29sKHRydWUpOyAvLyBTdGF0ZSBp' +
'bml0CgogICAgICAgIC8vIEFzc2VtYmxlIHN0YXRlIGluaXQgY2VsbAogICAgICAgIGxldCBiYzogQnVpbGRlciA9IGJlZ2luQ2VsbCgpOwogICAgICAgIGJjID0gYmMu' +
'c3RvcmVCb29sKGZhbHNlKTsgLy8gU3BsaXREZXB0aAogICAgICAgIGJjID0gYmMuc3RvcmVCb29sKGZhbHNlKTsgLy8gVGlja1RvY2sKICAgICAgICBpZiAocGFyYW1z' +
'LmNvZGUgIT0gbnVsbCkgewogICAgICAgICAgICBiYyA9IGJjLnN0b3JlQm9vbCh0cnVlKTsgLy8gQ29kZSBwcmVzZW5jZQogICAgICAgICAgICBiYyA9IGJjLnN0b3Jl' +
'UmVmKHBhcmFtcy5jb2RlISEpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGJjID0gYmMuc3RvcmVCb29sKGZhbHNlKTsgLy8gQ29kZSBwcmVzZW5jZQogICAg' +
'ICAgIH0KICAgICAgICBpZiAocGFyYW1zLmRhdGEgIT0gbnVsbCkgewogICAgICAgICAgICBiYyA9IGJjLnN0b3JlQm9vbCh0cnVlKTsgLy8gRGF0YSBwcmVzZW5jZQog' +
'ICAgICAgICAgICBiYyA9IGJjLnN0b3JlUmVmKHBhcmFtcy5kYXRhISEpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGJjID0gYmMuc3RvcmVCb29sKGZhbHNl' +
'KTsgLy8gRGF0YSBwcmVzZW5jZQogICAgICAgIH0KICAgICAgICBiYyA9IGJjLnN0b3JlQm9vbChmYWxzZSk7IC8vIExpYnJhcnkKCiAgICAgICAgYiA9IGIuc3RvcmVC' +
'b29sKHRydWUpOyAvLyBTdG9yZSBhcyByZWYKICAgICAgICBiID0gYi5zdG9yZVJlZihiYy5lbmRDZWxsKCkpOwogICAgfSBlbHNlIHsKICAgICAgICBiID0gYi5zdG9y' +
'ZUJvb2woZmFsc2UpOyAvLyBObyBzdGF0ZSBpbml0CiAgICB9CgogICAgLy8gQm9keQogICAgbGV0IGJvZHk6IENlbGw/ID0gcGFyYW1zLmJvZHk7CiAgICBpZiAoYm9k' +
'eSAhPSBudWxsKSB7CiAgICAgICAgYiA9IGIuc3RvcmVCb29sKHRydWUpOwogICAgICAgIGIgPSBiLnN0b3JlUmVmKGJvZHkhISk7CiAgICB9IGVsc2UgewogICAgICAg' +
'IGIgPSBiLnN0b3JlQm9vbChmYWxzZSk7IC8vIE5vIGJvZHkKICAgIH0KCiAgICAvLyBTZW5kCiAgICBsZXQgYzogQ2VsbCA9IGIuZW5kQ2VsbCgpOwogICAgcmV0dXJu' +
'IG5hdGl2ZVNlbmRNZXNzYWdlUmV0dXJuRm9yd2FyZEZlZShjLCBwYXJhbXMubW9kZSk7Cn0KCmlubGluZSBmdW4gZW1pdChib2R5OiBDZWxsKSB7CiAgICAvLyBleHRf' +
'b3V0X21zZ19pbmZvJDExIHNyYzpNc2dBZGRyZXNzSW50IGRlc3Q6TXNnQWRkcmVzc0V4dCBjcmVhdGVkX2x0OnVpbnQ2NCBjcmVhdGVkX2F0OnVpbnQzMgogICAgLy8g' +
'ICAgICAgICAgICAgICAgICAgICBtYXliZTogc3RhdGVJbml0IChmYWxzZSkgYm9keVJlZjogYm9vbCAodHJ1ZSkKICAgIGxldCBjOiBDZWxsID0gYmVnaW5DZWxsKCkK' +
'ICAgICAgICAuc3RvcmVVaW50KDE1MjExODA3MjAyNzM4NzUyODE3OTYwNDM4NDY0NTEzLCAxMDQpCiAgICAgICAgLnN0b3JlUmVmKGJvZHkpCiAgICAgICAgLmVuZENl' +
'bGwoKTsKICAgIG5hdGl2ZVNlbmRNZXNzYWdlKGMsIDApOwp9Cgphc20gZnVuIGFjY2VwdE1lc3NhZ2UoKSB7IEFDQ0VQVCB9Cgphc20gZnVuIGNvbW1pdCgpIHsgQ09N' +
'TUlUIH0K';
files['std/text.tact'] =
'Ly8KLy8gU3RyaW5nIGJ1aWxkZXIKLy8KCkBuYW1lKF9fdGFjdF9zdHJpbmdfYnVpbGRlcl9zdGFydF9zdHJpbmcpCm5hdGl2ZSBiZWdpblN0cmluZygpOiBTdHJpbmdC' +
'dWlsZGVyOwoKQG5hbWUoX190YWN0X3N0cmluZ19idWlsZGVyX3N0YXJ0X2NvbW1lbnQpCm5hdGl2ZSBiZWdpbkNvbW1lbnQoKTogU3RyaW5nQnVpbGRlcjsKCkBuYW1l' +
Expand Down Expand Up @@ -479,7 +480,7 @@ files['stdlib.fc'] =
'KHggYiBsZW4pICJTVFVYIjsKCjs7OyBTdG9yZXMgYSBzaWduZWQgW2xlbl0tYml0IGludGVnZXIgYHhgIGludG8gYGJgIGZvcmAgMCDiiaQgbGVuIOKJpCAyNTdgLgo7' +
'OyBidWlsZGVyIHN0b3JlX2ludChidWlsZGVyIGIsIGludCB4LCBpbnQgbGVuKSBhc20oeCBiIGxlbikgIlNUSVgiOwoKCjs7OyBTdG9yZXMgYHNsaWNlYCBbc10gaW50' +
'byBgYnVpbGRlcmAgW2JdCmJ1aWxkZXIgc3RvcmVfc2xpY2UoYnVpbGRlciBiLCBzbGljZSBzKSBhc20gIlNUU0xJQ0VSIjsKCjs7OyBTdG9yZXMgKHNlcmlhbGl6ZXMp' +
'IGFuIGludGVnZXIgW3hdIGluIHRoZSByYW5nZSBgMC4uMl4xMjgg4oiSIDFgIGludG8gYGJ1aWxkZXJgIFtiXS4KOzs7IFRoZSBzZXJpYWxpemF0aW9uIG9mIFt4XSBj' +
'IGFuIGludGVnZXIgW3hdIGluIHRoZSByYW5nZSBgMC4uMl4xMjAg4oiSIDFgIGludG8gYGJ1aWxkZXJgIFtiXS4KOzs7IFRoZSBzZXJpYWxpemF0aW9uIG9mIFt4XSBj' +
'b25zaXN0cyBvZiBhIDQtYml0IHVuc2lnbmVkIGJpZy1lbmRpYW4gaW50ZWdlciBgbGAsCjs7OyB3aGljaCBpcyB0aGUgc21hbGxlc3QgaW50ZWdlciBgbCDiiaUgMGAs' +
'IHN1Y2ggdGhhdCBgeCA8IDJeOGxgLAo7OzsgZm9sbG93ZWQgYnkgYW4gYDhsYC1iaXQgdW5zaWduZWQgYmlnLWVuZGlhbiByZXByZXNlbnRhdGlvbiBvZiBbeF0uCjs7' +
'OyBJZiBbeF0gZG9lcyBub3QgYmVsb25nIHRvIHRoZSBzdXBwb3J0ZWQgcmFuZ2UsIGEgcmFuZ2UgY2hlY2sgZXhjZXB0aW9uIGlzIHRocm93bi4KOzs7Cjs7OyBTdG9y' +
Expand Down
1 change: 1 addition & 0 deletions stdlib/std/send.tact
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ const SendIgnoreErrors: Int = 2;
const SendPayGasSeparately: Int = 1;
const SendDestroyIfZero: Int = 32;
const SendBounceIfActionFail: Int = 16;
const SendOnlyEstimateFee: Int = 1024;

struct SendParameters {
bounce: Bool = true;
Expand Down
2 changes: 1 addition & 1 deletion stdlib/stdlib.fc
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ builder store_ref(builder b, cell c) asm(c b) "STREF";
;;; Stores `slice` [s] into `builder` [b]
builder store_slice(builder b, slice s) asm "STSLICER";

;;; Stores (serializes) an integer [x] in the range `0..2^128 − 1` into `builder` [b].
;;; Stores (serializes) an integer [x] in the range `0..2^120 − 1` into `builder` [b].
;;; The serialization of [x] consists of a 4-bit unsigned big-endian integer `l`,
;;; which is the smallest integer `l ≥ 0`, such that `x < 2^8l`,
;;; followed by an `8l`-bit unsigned big-endian representation of [x].
Expand Down

0 comments on commit 656434c

Please sign in to comment.